{
  "version": 3,
  "sources": ["ssg:https://ga.jspm.io/npm:three@0.166.1/build/three.module.js", "ssg:https://framerusercontent.com/modules/UTNrCTBIpmm6bMgbKI1b/HEuL5JE4Jcg7V9fl9H4k/Plasma.js", "ssg:https://framerusercontent.com/modules/mL9j4gPU0IDb56c1vWMo/U5qtZUJcp5JbSsVrpGgH/vtMx1ujdK.js", "ssg:https://framerusercontent.com/modules/sVS2923rnJ2S1PWHkIb0/yELWFB9yH5WF4iy9UmgQ/ZzFqlwOYd.js", "ssg:https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js", "ssg:https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js", "ssg:https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js", "ssg:https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js", "ssg:https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js", "ssg:https://framer.com/m/framer/useAutoMotionValue.js@0.3.0", "ssg:https://jspm.dev/npm:lottie-web@5.7.8!cjs", "ssg:https://framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js"],
  "sourcesContent": ["/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst t=\"166\";const e={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};const n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};const i=0;const r=1;const s=2;const a=3;const o=0;const l=1;const c=2;const h=3;const u=0;const d=1;const p=2;const f=0;const m=1;const g=2;const _=3;const x=4;const y=5;const M=100;const S=101;const b=102;const T=103;const w=104;const E=200;const A=201;const C=202;const R=203;const P=204;const L=205;const I=206;const U=207;const D=208;const N=209;const B=210;const O=211;const V=212;const F=213;const z=214;const G=0;const k=1;const H=2;const W=3;const X=4;const j=5;const q=6;const Y=7;const K=0;const Z=1;const J=2;const Q=0;const $=1;const tt=2;const et=3;const nt=4;const it=5;const rt=6;const st=7;const at=\"attached\";const ot=\"detached\";const lt=300;const ct=301;const ht=302;const ut=303;const dt=304;const pt=306;const ft=1e3;const mt=1001;const gt=1002;const vt=1003;const _t=1004;const xt=1004;const yt=1005;const Mt=1005;const St=1006;const bt=1007;const Tt=1007;const wt=1008;const Et=1008;const At=1009;const Ct=1010;const Rt=1011;const Pt=1012;const Lt=1013;const It=1014;const Ut=1015;const Dt=1016;const Nt=1017;const Bt=1018;const Ot=1020;const Vt=35902;const Ft=1021;const zt=1022;const Gt=1023;const kt=1024;const Ht=1025;const Wt=1026;const Xt=1027;const jt=1028;const qt=1029;const Yt=1030;const Kt=1031;const Zt=1032;const Jt=1033;const Qt=33776;const $t=33777;const te=33778;const ee=33779;const ne=35840;const ie=35841;const re=35842;const se=35843;const ae=36196;const oe=37492;const le=37496;const ce=37808;const he=37809;const ue=37810;const de=37811;const pe=37812;const fe=37813;const me=37814;const ge=37815;const ve=37816;const _e=37817;const xe=37818;const ye=37819;const Me=37820;const Se=37821;const be=36492;const Te=36494;const we=36495;const Ee=36283;const Ae=36284;const Ce=36285;const Re=36286;const Pe=2200;const Le=2201;const Ie=2202;const Ue=2300;const De=2301;const Ne=2302;const Be=2400;const Oe=2401;const Ve=2402;const Fe=2500;const ze=2501;const Ge=0;const ke=1;const He=2;const We=3200;const Xe=3201;const je=0;const qe=1;const Ye=\"\";const Ke=\"srgb\";const Ze=\"srgb-linear\";const Je=\"display-p3\";const Qe=\"display-p3-linear\";const $e=\"linear\";const tn=\"srgb\";const en=\"rec709\";const nn=\"p3\";const rn=0;const sn=7680;const an=7681;const on=7682;const ln=7683;const cn=34055;const hn=34056;const un=5386;const dn=512;const pn=513;const fn=514;const mn=515;const gn=516;const vn=517;const _n=518;const xn=519;const yn=512;const Mn=513;const Sn=514;const bn=515;const Tn=516;const wn=517;const En=518;const An=519;const Cn=35044;const Rn=35048;const Pn=35040;const Ln=35045;const In=35049;const Un=35041;const Dn=35046;const Nn=35050;const Bn=35042;const On=\"100\";const Vn=\"300 es\";const Fn=2e3;const zn=2001;class EventDispatcher{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[t]===void 0&&(n[t]=[]);n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return false;const n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const n=this._listeners;const i=n[t];if(i!==void 0){const t=i.indexOf(e);t!==-1&&i.splice(t,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const e=this._listeners;const n=e[t.type];if(n!==void 0){t.target=this;const e=n.slice(0);for(let n=0,i=e.length;n<i;n++)e[n].call(this,t);t.target=null}}}const Gn=[\"00\",\"01\",\"02\",\"03\",\"04\",\"05\",\"06\",\"07\",\"08\",\"09\",\"0a\",\"0b\",\"0c\",\"0d\",\"0e\",\"0f\",\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"1a\",\"1b\",\"1c\",\"1d\",\"1e\",\"1f\",\"20\",\"21\",\"22\",\"23\",\"24\",\"25\",\"26\",\"27\",\"28\",\"29\",\"2a\",\"2b\",\"2c\",\"2d\",\"2e\",\"2f\",\"30\",\"31\",\"32\",\"33\",\"34\",\"35\",\"36\",\"37\",\"38\",\"39\",\"3a\",\"3b\",\"3c\",\"3d\",\"3e\",\"3f\",\"40\",\"41\",\"42\",\"43\",\"44\",\"45\",\"46\",\"47\",\"48\",\"49\",\"4a\",\"4b\",\"4c\",\"4d\",\"4e\",\"4f\",\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"5a\",\"5b\",\"5c\",\"5d\",\"5e\",\"5f\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"6a\",\"6b\",\"6c\",\"6d\",\"6e\",\"6f\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\",\"77\",\"78\",\"79\",\"7a\",\"7b\",\"7c\",\"7d\",\"7e\",\"7f\",\"80\",\"81\",\"82\",\"83\",\"84\",\"85\",\"86\",\"87\",\"88\",\"89\",\"8a\",\"8b\",\"8c\",\"8d\",\"8e\",\"8f\",\"90\",\"91\",\"92\",\"93\",\"94\",\"95\",\"96\",\"97\",\"98\",\"99\",\"9a\",\"9b\",\"9c\",\"9d\",\"9e\",\"9f\",\"a0\",\"a1\",\"a2\",\"a3\",\"a4\",\"a5\",\"a6\",\"a7\",\"a8\",\"a9\",\"aa\",\"ab\",\"ac\",\"ad\",\"ae\",\"af\",\"b0\",\"b1\",\"b2\",\"b3\",\"b4\",\"b5\",\"b6\",\"b7\",\"b8\",\"b9\",\"ba\",\"bb\",\"bc\",\"bd\",\"be\",\"bf\",\"c0\",\"c1\",\"c2\",\"c3\",\"c4\",\"c5\",\"c6\",\"c7\",\"c8\",\"c9\",\"ca\",\"cb\",\"cc\",\"cd\",\"ce\",\"cf\",\"d0\",\"d1\",\"d2\",\"d3\",\"d4\",\"d5\",\"d6\",\"d7\",\"d8\",\"d9\",\"da\",\"db\",\"dc\",\"dd\",\"de\",\"df\",\"e0\",\"e1\",\"e2\",\"e3\",\"e4\",\"e5\",\"e6\",\"e7\",\"e8\",\"e9\",\"ea\",\"eb\",\"ec\",\"ed\",\"ee\",\"ef\",\"f0\",\"f1\",\"f2\",\"f3\",\"f4\",\"f5\",\"f6\",\"f7\",\"f8\",\"f9\",\"fa\",\"fb\",\"fc\",\"fd\",\"fe\",\"ff\"];let kn=1234567;const Hn=Math.PI/180;const Wn=180/Math.PI;function generateUUID(){const t=Math.random()*4294967295|0;const e=Math.random()*4294967295|0;const n=Math.random()*4294967295|0;const i=Math.random()*4294967295|0;const r=Gn[t&255]+Gn[t>>8&255]+Gn[t>>16&255]+Gn[t>>24&255]+\"-\"+Gn[e&255]+Gn[e>>8&255]+\"-\"+Gn[e>>16&15|64]+Gn[e>>24&255]+\"-\"+Gn[n&63|128]+Gn[n>>8&255]+\"-\"+Gn[n>>16&255]+Gn[n>>24&255]+Gn[i&255]+Gn[i>>8&255]+Gn[i>>16&255]+Gn[i>>24&255];return r.toLowerCase()}function clamp(t,e,n){return Math.max(e,Math.min(n,t))}function euclideanModulo(t,e){return(t%e+e)%e}function mapLinear(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)}function inverseLerp(t,e,n){return t!==e?(n-t)/(e-t):0}function lerp(t,e,n){return(1-n)*t+n*e}function damp(t,e,n,i){return lerp(t,e,1-Math.exp(-n*i))}function pingpong(t,e=1){return e-Math.abs(euclideanModulo(t,e*2)-e)}function smoothstep(t,e,n){if(t<=e)return 0;if(t>=n)return 1;t=(t-e)/(n-e);return t*t*(3-2*t)}function smootherstep(t,e,n){if(t<=e)return 0;if(t>=n)return 1;t=(t-e)/(n-e);return t*t*t*(t*(t*6-15)+10)}function randInt(t,e){return t+Math.floor(Math.random()*(e-t+1))}function randFloat(t,e){return t+Math.random()*(e-t)}function randFloatSpread(t){return t*(.5-Math.random())}function seededRandom(t){t!==void 0&&(kn=t);let e=kn+=1831565813;e=Math.imul(e^e>>>15,e|1);e^=e+Math.imul(e^e>>>7,e|61);return((e^e>>>14)>>>0)/4294967296}function degToRad(t){return t*Hn}function radToDeg(t){return t*Wn}function isPowerOfTwo(t){return(t&t-1)===0&&t!==0}function ceilPowerOfTwo(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function floorPowerOfTwo(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function setQuaternionFromProperEuler(t,e,n,i,r){const s=Math.cos;const a=Math.sin;const o=s(n/2);const l=a(n/2);const c=s((e+i)/2);const h=a((e+i)/2);const u=s((e-i)/2);const d=a((e-i)/2);const p=s((i-e)/2);const f=a((i-e)/2);switch(r){case\"XYX\":t.set(o*h,l*u,l*d,o*c);break;case\"YZY\":t.set(l*d,o*h,l*u,o*c);break;case\"ZXZ\":t.set(l*u,l*d,o*h,o*c);break;case\"XZX\":t.set(o*h,l*f,l*p,o*c);break;case\"YXY\":t.set(l*p,o*h,l*f,o*c);break;case\"ZYZ\":t.set(l*f,l*p,o*h,o*c);break;default:console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \"+r)}}function denormalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error(\"Invalid component type.\")}}function normalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error(\"Invalid component type.\")}}const Xn={DEG2RAD:Hn,RAD2DEG:Wn,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:mapLinear,inverseLerp:inverseLerp,lerp:lerp,damp:damp,pingpong:pingpong,smoothstep:smoothstep,smootherstep:smootherstep,randInt:randInt,randFloat:randFloat,randFloatSpread:randFloatSpread,seededRandom:seededRandom,degToRad:degToRad,radToDeg:radToDeg,isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:setQuaternionFromProperEuler,normalize:normalize,denormalize:denormalize};class Vector2{constructor(t=0,e=0){Vector2.prototype.isVector2=true;this.x=t;this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){this.x=t;this.y=e;return this}setScalar(t){this.x=t;this.y=t;return this}setX(t){this.x=t;return this}setY(t){this.y=t;return this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){this.x=t.x;this.y=t.y;return this}add(t){this.x+=t.x;this.y+=t.y;return this}addScalar(t){this.x+=t;this.y+=t;return this}addVectors(t,e){this.x=t.x+e.x;this.y=t.y+e.y;return this}addScaledVector(t,e){this.x+=t.x*e;this.y+=t.y*e;return this}sub(t){this.x-=t.x;this.y-=t.y;return this}subScalar(t){this.x-=t;this.y-=t;return this}subVectors(t,e){this.x=t.x-e.x;this.y=t.y-e.y;return this}multiply(t){this.x*=t.x;this.y*=t.y;return this}multiplyScalar(t){this.x*=t;this.y*=t;return this}divide(t){this.x/=t.x;this.y/=t.y;return this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y;const i=t.elements;this.x=i[0]*e+i[3]*n+i[6];this.y=i[1]*e+i[4]*n+i[7];return this}min(t){this.x=Math.min(this.x,t.x);this.y=Math.min(this.y,t.y);return this}max(t){this.x=Math.max(this.x,t.x);this.y=Math.max(this.y,t.y);return this}clamp(t,e){this.x=Math.max(t.x,Math.min(e.x,this.x));this.y=Math.max(t.y,Math.min(e.y,this.y));return this}clampScalar(t,e){this.x=Math.max(t,Math.min(e,this.x));this.y=Math.max(t,Math.min(e,this.y));return this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);return this}negate(){this.x=-this.x;this.y=-this.y;return this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const t=Math.atan2(-this.y,-this.x)+Math.PI;return t}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){this.x+=(t.x-this.x)*e;this.y+=(t.y-this.y)*e;return this}lerpVectors(t,e,n){this.x=t.x+(e.x-t.x)*n;this.y=t.y+(e.y-t.y)*n;return this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){this.x=t[e];this.y=t[e+1];return this}toArray(t=[],e=0){t[e]=this.x;t[e+1]=this.y;return t}fromBufferAttribute(t,e){this.x=t.getX(e);this.y=t.getY(e);return this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e);const r=this.x-t.x;const s=this.y-t.y;this.x=r*n-s*i+t.x;this.y=r*i+s*n+t.y;return this}random(){this.x=Math.random();this.y=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y}}class Matrix3{constructor(t,e,n,i,r,s,a,o,l){Matrix3.prototype.isMatrix3=true;this.elements=[1,0,0,0,1,0,0,0,1];t!==void 0&&this.set(t,e,n,i,r,s,a,o,l)}set(t,e,n,i,r,s,a,o,l){const c=this.elements;c[0]=t;c[1]=i;c[2]=a;c[3]=e;c[4]=r;c[5]=o;c[6]=n;c[7]=s;c[8]=l;return this}identity(){this.set(1,0,0,0,1,0,0,0,1);return this}copy(t){const e=this.elements;const n=t.elements;e[0]=n[0];e[1]=n[1];e[2]=n[2];e[3]=n[3];e[4]=n[4];e[5]=n[5];e[6]=n[6];e[7]=n[7];e[8]=n[8];return this}extractBasis(t,e,n){t.setFromMatrix3Column(this,0);e.setFromMatrix3Column(this,1);n.setFromMatrix3Column(this,2);return this}setFromMatrix4(t){const e=t.elements;this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]);return this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements;const i=e.elements;const r=this.elements;const s=n[0],a=n[3],o=n[6];const l=n[1],c=n[4],h=n[7];const u=n[2],d=n[5],p=n[8];const f=i[0],m=i[3],g=i[6];const _=i[1],x=i[4],y=i[7];const M=i[2],S=i[5],b=i[8];r[0]=s*f+a*_+o*M;r[3]=s*m+a*x+o*S;r[6]=s*g+a*y+o*b;r[1]=l*f+c*_+h*M;r[4]=l*m+c*x+h*S;r[7]=l*g+c*y+h*b;r[2]=u*f+d*_+p*M;r[5]=u*m+d*x+p*S;r[8]=u*g+d*y+p*b;return this}multiplyScalar(t){const e=this.elements;e[0]*=t;e[3]*=t;e[6]*=t;e[1]*=t;e[4]*=t;e[7]*=t;e[2]*=t;e[5]*=t;e[8]*=t;return this}determinant(){const t=this.elements;const e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;t[0]=h*f;t[1]=(i*l-c*n)*f;t[2]=(a*n-i*s)*f;t[3]=u*f;t[4]=(c*e-i*o)*f;t[5]=(i*r-a*e)*f;t[6]=d*f;t[7]=(n*o-l*e)*f;t[8]=(s*e-n*r)*f;return this}transpose(){let t;const e=this.elements;t=e[1];e[1]=e[3];e[3]=t;t=e[2];e[2]=e[6];e[6]=t;t=e[5];e[5]=e[7];e[7]=t;return this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;t[0]=e[0];t[1]=e[3];t[2]=e[6];t[3]=e[1];t[4]=e[4];t[5]=e[7];t[6]=e[2];t[7]=e[5];t[8]=e[8];return this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r);const l=Math.sin(r);this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1);return this}scale(t,e){this.premultiply(jn.makeScale(t,e));return this}rotate(t){this.premultiply(jn.makeRotation(-t));return this}translate(t,e){this.premultiply(jn.makeTranslation(t,e));return this}makeTranslation(t,e){t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1);return this}makeRotation(t){const e=Math.cos(t);const n=Math.sin(t);this.set(e,-n,0,n,e,0,0,0,1);return this}makeScale(t,e){this.set(t,0,0,0,e,0,0,0,1);return this}equals(t){const e=this.elements;const n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return false;return true}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;t[e]=n[0];t[e+1]=n[1];t[e+2]=n[2];t[e+3]=n[3];t[e+4]=n[4];t[e+5]=n[5];t[e+6]=n[6];t[e+7]=n[7];t[e+8]=n[8];return t}clone(){return(new this.constructor).fromArray(this.elements)}}const jn=new Matrix3;function arrayNeedsUint32(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return true;return false}const qn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(t,e){return new qn[t](e)}function createElementNS(t){return document.createElementNS(\"http://www.w3.org/1999/xhtml\",t)}function createCanvasElement(){const t=createElementNS(\"canvas\");t.style.display=\"block\";return t}const Yn={};function warnOnce(t){if(!(t in Yn)){Yn[t]=true;console.warn(t)}}function probeAsync(t,e,n){return new Promise((function(i,r){function probe(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:r();break;case t.TIMEOUT_EXPIRED:setTimeout(probe,n);break;default:i()}}setTimeout(probe,n)}))}const Kn=(new Matrix3).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199);const Zn=(new Matrix3).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735);const Jn={[Ze]:{transfer:$e,primaries:en,toReference:t=>t,fromReference:t=>t},[Ke]:{transfer:tn,primaries:en,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[Qe]:{transfer:$e,primaries:nn,toReference:t=>t.applyMatrix3(Zn),fromReference:t=>t.applyMatrix3(Kn)},[Je]:{transfer:tn,primaries:nn,toReference:t=>t.convertSRGBToLinear().applyMatrix3(Zn),fromReference:t=>t.applyMatrix3(Kn).convertLinearToSRGB()}};const Qn=new Set([Ze,Qe]);const $n={enabled:true,_workingColorSpace:Ze,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!Qn.has(t))throw new Error(`Unsupported working color space, \"${t}\".`);this._workingColorSpace=t},convert:function(t,e,n){if(this.enabled===false||e===n||!e||!n)return t;const i=Jn[e].toReference;const r=Jn[n].fromReference;return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return Jn[t].primaries},getTransfer:function(t){return t===Ye?$e:Jn[t].transfer}};function SRGBToLinear(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function LinearToSRGB(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let ti;class ImageUtils{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(typeof HTMLCanvasElement===\"undefined\")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{ti===void 0&&(ti=createElementNS(\"canvas\"));ti.width=t.width;ti.height=t.height;const n=ti.getContext(\"2d\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height);e=ti}if(e.width>2048||e.height>2048){console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",t);return e.toDataURL(\"image/jpeg\",.6)}return e.toDataURL(\"image/png\")}static sRGBToLinear(t){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==\"undefined\"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==\"undefined\"&&t instanceof ImageBitmap){const e=createElementNS(\"canvas\");e.width=t.width;e.height=t.height;const n=e.getContext(\"2d\");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height);const r=i.data;for(let t=0;t<r.length;t++)r[t]=SRGBToLinear(r[t]/255)*255;n.putImageData(i,0,0);return e}if(t.data){const e=t.data.slice(0);for(let t=0;t<e.length;t++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[t]=Math.floor(SRGBToLinear(e[t]/255)*255):e[t]=SRGBToLinear(e[t]);return{data:e,width:t.width,height:t.height}}console.warn(\"THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.\");return t}}let ei=0;class Source{constructor(t=null){this.isSource=true;Object.defineProperty(this,\"id\",{value:ei++});this.uuid=generateUUID();this.data=t;this.dataReady=true;this.version=0}set needsUpdate(t){t===true&&this.version++}toJSON(t){const e=t===void 0||typeof t===\"string\";if(!e&&t.images[this.uuid]!==void 0)return t.images[this.uuid];const n={uuid:this.uuid,url:\"\"};const i=this.data;if(i!==null){let t;if(Array.isArray(i)){t=[];for(let e=0,n=i.length;e<n;e++)i[e].isDataTexture?t.push(serializeImage(i[e].image)):t.push(serializeImage(i[e]))}else t=serializeImage(i);n.url=t}e||(t.images[this.uuid]=n);return n}}function serializeImage(t){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==\"undefined\"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==\"undefined\"&&t instanceof ImageBitmap)return ImageUtils.getDataURL(t);if(t.data)return{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name};console.warn(\"THREE.Texture: Unable to serialize Texture.\");return{}}let ni=0;class Texture extends EventDispatcher{constructor(t=Texture.DEFAULT_IMAGE,e=Texture.DEFAULT_MAPPING,n=mt,i=mt,r=St,s=wt,a=Gt,o=At,l=Texture.DEFAULT_ANISOTROPY,c=Ye){super();this.isTexture=true;Object.defineProperty(this,\"id\",{value:ni++});this.uuid=generateUUID();this.name=\"\";this.source=new Source(t);this.mipmaps=[];this.mapping=e;this.channel=0;this.wrapS=n;this.wrapT=i;this.magFilter=r;this.minFilter=s;this.anisotropy=l;this.format=a;this.internalFormat=null;this.type=o;this.offset=new Vector2(0,0);this.repeat=new Vector2(1,1);this.center=new Vector2(0,0);this.rotation=0;this.matrixAutoUpdate=true;this.matrix=new Matrix3;this.generateMipmaps=true;this.premultiplyAlpha=false;this.flipY=true;this.unpackAlignment=4;this.colorSpace=c;this.userData={};this.version=0;this.onUpdate=null;this.isRenderTargetTexture=false;this.pmremVersion=0}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name;this.source=t.source;this.mipmaps=t.mipmaps.slice(0);this.mapping=t.mapping;this.channel=t.channel;this.wrapS=t.wrapS;this.wrapT=t.wrapT;this.magFilter=t.magFilter;this.minFilter=t.minFilter;this.anisotropy=t.anisotropy;this.format=t.format;this.internalFormat=t.internalFormat;this.type=t.type;this.offset.copy(t.offset);this.repeat.copy(t.repeat);this.center.copy(t.center);this.rotation=t.rotation;this.matrixAutoUpdate=t.matrixAutoUpdate;this.matrix.copy(t.matrix);this.generateMipmaps=t.generateMipmaps;this.premultiplyAlpha=t.premultiplyAlpha;this.flipY=t.flipY;this.unpackAlignment=t.unpackAlignment;this.colorSpace=t.colorSpace;this.userData=JSON.parse(JSON.stringify(t.userData));this.needsUpdate=true;return this}toJSON(t){const e=t===void 0||typeof t===\"string\";if(!e&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];const n={metadata:{version:4.6,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};Object.keys(this.userData).length>0&&(n.userData=this.userData);e||(t.textures[this.uuid]=n);return n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(t){if(this.mapping!==lt)return t;t.applyMatrix3(this.matrix);if(t.x<0||t.x>1)switch(this.wrapS){case ft:t.x=t.x-Math.floor(t.x);break;case mt:t.x=t.x<0?0:1;break;case gt:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case ft:t.y=t.y-Math.floor(t.y);break;case mt:t.y=t.y<0?0:1;break;case gt:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}this.flipY&&(t.y=1-t.y);return t}set needsUpdate(t){if(t===true){this.version++;this.source.needsUpdate=true}}set needsPMREMUpdate(t){t===true&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=lt;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(t=0,e=0,n=0,i=1){Vector4.prototype.isVector4=true;this.x=t;this.y=e;this.z=n;this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){this.x=t;this.y=e;this.z=n;this.w=i;return this}setScalar(t){this.x=t;this.y=t;this.z=t;this.w=t;return this}setX(t){this.x=t;return this}setY(t){this.y=t;return this}setZ(t){this.z=t;return this}setW(t){this.w=t;return this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){this.x=t.x;this.y=t.y;this.z=t.z;this.w=t.w!==void 0?t.w:1;return this}add(t){this.x+=t.x;this.y+=t.y;this.z+=t.z;this.w+=t.w;return this}addScalar(t){this.x+=t;this.y+=t;this.z+=t;this.w+=t;return this}addVectors(t,e){this.x=t.x+e.x;this.y=t.y+e.y;this.z=t.z+e.z;this.w=t.w+e.w;return this}addScaledVector(t,e){this.x+=t.x*e;this.y+=t.y*e;this.z+=t.z*e;this.w+=t.w*e;return this}sub(t){this.x-=t.x;this.y-=t.y;this.z-=t.z;this.w-=t.w;return this}subScalar(t){this.x-=t;this.y-=t;this.z-=t;this.w-=t;return this}subVectors(t,e){this.x=t.x-e.x;this.y=t.y-e.y;this.z=t.z-e.z;this.w=t.w-e.w;return this}multiply(t){this.x*=t.x;this.y*=t.y;this.z*=t.z;this.w*=t.w;return this}multiplyScalar(t){this.x*=t;this.y*=t;this.z*=t;this.w*=t;return this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w;const s=t.elements;this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r;this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r;this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r;this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r;return this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);if(e<1e-4){this.x=1;this.y=0;this.z=0}else{this.x=t.x/e;this.y=t.y/e;this.z=t.z/e}return this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-f)<s&&Math.abs(p-m)<s){if(Math.abs(c+u)<a&&Math.abs(h+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+g-3)<a){this.set(1,0,0,0);return this}e=Math.PI;const t=(l+1)/2;const o=(d+1)/2;const _=(g+1)/2;const x=(c+u)/4;const y=(h+f)/4;const M=(p+m)/4;if(t>o&&t>_)if(t<s){n=0;i=.707106781;r=.707106781}else{n=Math.sqrt(t);i=x/n;r=y/n}else if(o>_)if(o<s){n=.707106781;i=0;r=.707106781}else{i=Math.sqrt(o);n=x/i;r=M/i}else if(_<s){n=.707106781;i=.707106781;r=0}else{r=Math.sqrt(_);n=y/r;i=M/r}this.set(n,i,r,e);return this}let _=Math.sqrt((m-p)*(m-p)+(h-f)*(h-f)+(u-c)*(u-c));Math.abs(_)<.001&&(_=1);this.x=(m-p)/_;this.y=(h-f)/_;this.z=(u-c)/_;this.w=Math.acos((l+d+g-1)/2);return this}setFromMatrixPosition(t){const e=t.elements;this.x=e[12];this.y=e[13];this.z=e[14];this.w=e[15];return this}min(t){this.x=Math.min(this.x,t.x);this.y=Math.min(this.y,t.y);this.z=Math.min(this.z,t.z);this.w=Math.min(this.w,t.w);return this}max(t){this.x=Math.max(this.x,t.x);this.y=Math.max(this.y,t.y);this.z=Math.max(this.z,t.z);this.w=Math.max(this.w,t.w);return this}clamp(t,e){this.x=Math.max(t.x,Math.min(e.x,this.x));this.y=Math.max(t.y,Math.min(e.y,this.y));this.z=Math.max(t.z,Math.min(e.z,this.z));this.w=Math.max(t.w,Math.min(e.w,this.w));return this}clampScalar(t,e){this.x=Math.max(t,Math.min(e,this.x));this.y=Math.max(t,Math.min(e,this.y));this.z=Math.max(t,Math.min(e,this.z));this.w=Math.max(t,Math.min(e,this.w));return this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);this.w=Math.trunc(this.w);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){this.x+=(t.x-this.x)*e;this.y+=(t.y-this.y)*e;this.z+=(t.z-this.z)*e;this.w+=(t.w-this.w)*e;return this}lerpVectors(t,e,n){this.x=t.x+(e.x-t.x)*n;this.y=t.y+(e.y-t.y)*n;this.z=t.z+(e.z-t.z)*n;this.w=t.w+(e.w-t.w)*n;return this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){this.x=t[e];this.y=t[e+1];this.z=t[e+2];this.w=t[e+3];return this}toArray(t=[],e=0){t[e]=this.x;t[e+1]=this.y;t[e+2]=this.z;t[e+3]=this.w;return t}fromBufferAttribute(t,e){this.x=t.getX(e);this.y=t.getY(e);this.z=t.getZ(e);this.w=t.getW(e);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z;yield this.w}}class RenderTarget extends EventDispatcher{constructor(t=1,e=1,n={}){super();this.isRenderTarget=true;this.width=t;this.height=e;this.depth=1;this.scissor=new Vector4(0,0,t,e);this.scissorTest=false;this.viewport=new Vector4(0,0,t,e);const i={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:false,internalFormat:null,minFilter:St,depthBuffer:true,stencilBuffer:false,resolveDepthBuffer:true,resolveStencilBuffer:true,depthTexture:null,samples:0,count:1},n);const r=new Texture(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=false;r.generateMipmaps=n.generateMipmaps;r.internalFormat=n.internalFormat;this.textures=[];const s=n.count;for(let t=0;t<s;t++){this.textures[t]=r.clone();this.textures[t].isRenderTargetTexture=true}this.depthBuffer=n.depthBuffer;this.stencilBuffer=n.stencilBuffer;this.resolveDepthBuffer=n.resolveDepthBuffer;this.resolveStencilBuffer=n.resolveStencilBuffer;this.depthTexture=n.depthTexture;this.samples=n.samples}get texture(){return this.textures[0]}set texture(t){this.textures[0]=t}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t;this.height=e;this.depth=n;for(let i=0,r=this.textures.length;i<r;i++){this.textures[i].image.width=t;this.textures[i].image.height=e;this.textures[i].image.depth=n}this.dispose()}this.viewport.set(0,0,t,e);this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.width=t.width;this.height=t.height;this.depth=t.depth;this.scissor.copy(t.scissor);this.scissorTest=t.scissorTest;this.viewport.copy(t.viewport);this.textures.length=0;for(let e=0,n=t.textures.length;e<n;e++){this.textures[e]=t.textures[e].clone();this.textures[e].isRenderTargetTexture=true}const e=Object.assign({},t.texture.image);this.texture.source=new Source(e);this.depthBuffer=t.depthBuffer;this.stencilBuffer=t.stencilBuffer;this.resolveDepthBuffer=t.resolveDepthBuffer;this.resolveStencilBuffer=t.resolveStencilBuffer;t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone());this.samples=t.samples;return this}dispose(){this.dispatchEvent({type:\"dispose\"})}}class WebGLRenderTarget extends RenderTarget{constructor(t=1,e=1,n={}){super(t,e,n);this.isWebGLRenderTarget=true}}class DataArrayTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null);this.isDataArrayTexture=true;this.image={data:t,width:e,height:n,depth:i};this.magFilter=vt;this.minFilter=vt;this.wrapR=mt;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1;this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i);this.isWebGLArrayRenderTarget=true;this.depth=n;this.texture=new DataArrayTexture(null,t,e,n);this.texture.isRenderTargetTexture=true}}class Data3DTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null);this.isData3DTexture=true;this.image={data:t,width:e,height:n,depth:i};this.magFilter=vt;this.minFilter=vt;this.wrapR=mt;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i);this.isWebGL3DRenderTarget=true;this.depth=n;this.texture=new Data3DTexture(null,t,e,n);this.texture.isRenderTargetTexture=true}}class Quaternion{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=true;this._x=t;this._y=e;this._z=n;this._w=i}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=r[s+0],d=r[s+1],p=r[s+2],f=r[s+3];if(a!==0)if(a!==1){if(h!==f||o!==u||l!==d||c!==p){let t=1-a;const e=o*u+l*d+c*p+h*f,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r;a=Math.sin(a*s)/r}const r=a*n;o=o*t+u*r;l=l*t+d*r;c=c*t+p*r;h=h*t+f*r;if(t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t;l*=t;c*=t;h*=t}}t[e]=o;t[e+1]=l;t[e+2]=c;t[e+3]=h}else{t[e+0]=u;t[e+1]=d;t[e+2]=p;t[e+3]=f}else{t[e+0]=o;t[e+1]=l;t[e+2]=c;t[e+3]=h}}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i];const o=n[i+1];const l=n[i+2];const c=n[i+3];const h=r[s];const u=r[s+1];const d=r[s+2];const p=r[s+3];t[e]=a*p+c*h+o*d-l*u;t[e+1]=o*p+c*u+l*h-a*d;t[e+2]=l*p+c*d+a*u-o*h;t[e+3]=c*p-a*h-o*u-l*d;return t}get x(){return this._x}set x(t){this._x=t;this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t;this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t;this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t;this._onChangeCallback()}set(t,e,n,i){this._x=t;this._y=e;this._z=n;this._w=i;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){this._x=t.x;this._y=t.y;this._z=t.z;this._w=t.w;this._onChangeCallback();return this}setFromEuler(t,e=true){const n=t._x,i=t._y,r=t._z,s=t._order;const a=Math.cos;const o=Math.sin;const l=a(n/2);const c=a(i/2);const h=a(r/2);const u=o(n/2);const d=o(i/2);const p=o(r/2);switch(s){case\"XYZ\":this._x=u*c*h+l*d*p;this._y=l*d*h-u*c*p;this._z=l*c*p+u*d*h;this._w=l*c*h-u*d*p;break;case\"YXZ\":this._x=u*c*h+l*d*p;this._y=l*d*h-u*c*p;this._z=l*c*p-u*d*h;this._w=l*c*h+u*d*p;break;case\"ZXY\":this._x=u*c*h-l*d*p;this._y=l*d*h+u*c*p;this._z=l*c*p+u*d*h;this._w=l*c*h-u*d*p;break;case\"ZYX\":this._x=u*c*h-l*d*p;this._y=l*d*h+u*c*p;this._z=l*c*p-u*d*h;this._w=l*c*h+u*d*p;break;case\"YZX\":this._x=u*c*h+l*d*p;this._y=l*d*h+u*c*p;this._z=l*c*p-u*d*h;this._w=l*c*h-u*d*p;break;case\"XZY\":this._x=u*c*h-l*d*p;this._y=l*d*h-u*c*p;this._z=l*c*p+u*d*h;this._w=l*c*h+u*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+s)}e===true&&this._onChangeCallback();return this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);this._x=t.x*i;this._y=t.y*i;this._z=t.z*i;this._w=Math.cos(n);this._onChangeCallback();return this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t;this._x=(c-o)*t;this._y=(r-l)*t;this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t;this._x=.25*t;this._y=(i+s)/t;this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t;this._x=(i+s)/t;this._y=.25*t;this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t;this._x=(r+l)/t;this._y=(o+c)/t;this._z=.25*t}this._onChangeCallback();return this}setFromUnitVectors(t,e){let n=t.dot(e)+1;if(n<Number.EPSILON){n=0;if(Math.abs(t.x)>Math.abs(t.z)){this._x=-t.y;this._y=t.x;this._z=0;this._w=n}else{this._x=0;this._y=-t.z;this._z=t.y;this._w=n}}else{this._x=t.y*e.z-t.z*e.y;this._y=t.z*e.x-t.x*e.z;this._z=t.x*e.y-t.y*e.x;this._w=n}return this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(clamp(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(n===0)return this;const i=Math.min(1,e/n);this.slerp(t,i);return this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){this._x*=-1;this._y*=-1;this._z*=-1;this._onChangeCallback();return this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();if(t===0){this._x=0;this._y=0;this._z=0;this._w=1}else{t=1/t;this._x=this._x*t;this._y=this._y*t;this._z=this._z*t;this._w=this._w*t}this._onChangeCallback();return this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w;const a=e._x,o=e._y,l=e._z,c=e._w;this._x=n*c+s*a+i*l-r*o;this._y=i*c+s*o+r*a-n*l;this._z=r*c+s*l+n*o-i*a;this._w=s*c-n*a-i*o-r*l;this._onChangeCallback();return this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0){this._w=-t._w;this._x=-t._x;this._y=-t._y;this._z=-t._z;a=-a}else this.copy(t);if(a>=1){this._w=s;this._x=n;this._y=i;this._z=r;return this}const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;this._w=t*s+e*this._w;this._x=t*n+e*this._x;this._y=t*i+e*this._y;this._z=t*r+e*this._z;this.normalize();return this}const l=Math.sqrt(o);const c=Math.atan2(l,a);const h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;this._w=s*h+this._w*u;this._x=n*h+this._x*u;this._y=i*h+this._y*u;this._z=r*h+this._z*u;this._onChangeCallback();return this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random();const e=2*Math.PI*Math.random();const n=Math.random();const i=Math.sqrt(1-n);const r=Math.sqrt(n);return this.set(i*Math.sin(t),i*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){this._x=t[e];this._y=t[e+1];this._z=t[e+2];this._w=t[e+3];this._onChangeCallback();return this}toArray(t=[],e=0){t[e]=this._x;t[e+1]=this._y;t[e+2]=this._z;t[e+3]=this._w;return t}fromBufferAttribute(t,e){this._x=t.getX(e);this._y=t.getY(e);this._z=t.getZ(e);this._w=t.getW(e);this._onChangeCallback();return this}toJSON(){return this.toArray()}_onChange(t){this._onChangeCallback=t;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._w}}class Vector3{constructor(t=0,e=0,n=0){Vector3.prototype.isVector3=true;this.x=t;this.y=e;this.z=n}set(t,e,n){n===void 0&&(n=this.z);this.x=t;this.y=e;this.z=n;return this}setScalar(t){this.x=t;this.y=t;this.z=t;return this}setX(t){this.x=t;return this}setY(t){this.y=t;return this}setZ(t){this.z=t;return this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){this.x=t.x;this.y=t.y;this.z=t.z;return this}add(t){this.x+=t.x;this.y+=t.y;this.z+=t.z;return this}addScalar(t){this.x+=t;this.y+=t;this.z+=t;return this}addVectors(t,e){this.x=t.x+e.x;this.y=t.y+e.y;this.z=t.z+e.z;return this}addScaledVector(t,e){this.x+=t.x*e;this.y+=t.y*e;this.z+=t.z*e;return this}sub(t){this.x-=t.x;this.y-=t.y;this.z-=t.z;return this}subScalar(t){this.x-=t;this.y-=t;this.z-=t;return this}subVectors(t,e){this.x=t.x-e.x;this.y=t.y-e.y;this.z=t.z-e.z;return this}multiply(t){this.x*=t.x;this.y*=t.y;this.z*=t.z;return this}multiplyScalar(t){this.x*=t;this.y*=t;this.z*=t;return this}multiplyVectors(t,e){this.x=t.x*e.x;this.y=t.y*e.y;this.z=t.z*e.z;return this}applyEuler(t){return this.applyQuaternion(ri.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ri.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z;const r=t.elements;this.x=r[0]*e+r[3]*n+r[6]*i;this.y=r[1]*e+r[4]*n+r[7]*i;this.z=r[2]*e+r[5]*n+r[8]*i;return this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z;const r=t.elements;const s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s;this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s;this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s;return this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z;const r=t.x,s=t.y,a=t.z,o=t.w;const l=2*(s*i-a*n);const c=2*(a*e-r*i);const h=2*(r*n-s*e);this.x=e+o*l+s*h-a*c;this.y=n+o*c+a*l-r*h;this.z=i+o*h+r*c-s*l;return this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z;const r=t.elements;this.x=r[0]*e+r[4]*n+r[8]*i;this.y=r[1]*e+r[5]*n+r[9]*i;this.z=r[2]*e+r[6]*n+r[10]*i;return this.normalize()}divide(t){this.x/=t.x;this.y/=t.y;this.z/=t.z;return this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){this.x=Math.min(this.x,t.x);this.y=Math.min(this.y,t.y);this.z=Math.min(this.z,t.z);return this}max(t){this.x=Math.max(this.x,t.x);this.y=Math.max(this.y,t.y);this.z=Math.max(this.z,t.z);return this}clamp(t,e){this.x=Math.max(t.x,Math.min(e.x,this.x));this.y=Math.max(t.y,Math.min(e.y,this.y));this.z=Math.max(t.z,Math.min(e.z,this.z));return this}clampScalar(t,e){this.x=Math.max(t,Math.min(e,this.x));this.y=Math.max(t,Math.min(e,this.y));this.z=Math.max(t,Math.min(e,this.z));return this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this}roundToZero(){this.x=Math.trunc(this.x);this.y=Math.trunc(this.y);this.z=Math.trunc(this.z);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){this.x+=(t.x-this.x)*e;this.y+=(t.y-this.y)*e;this.z+=(t.z-this.z)*e;return this}lerpVectors(t,e,n){this.x=t.x+(e.x-t.x)*n;this.y=t.y+(e.y-t.y)*n;this.z=t.z+(e.z-t.z)*n;return this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z;const s=e.x,a=e.y,o=e.z;this.x=i*o-r*a;this.y=r*s-n*o;this.z=n*a-i*s;return this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){ii.copy(this).projectOnVector(t);return this.sub(ii)}reflect(t){return this.sub(ii.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;this.x=i*Math.sin(n);this.y=Math.cos(e)*t;this.z=i*Math.cos(n);return this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){this.x=t*Math.sin(e);this.y=n;this.z=t*Math.cos(e);return this}setFromMatrixPosition(t){const e=t.elements;this.x=e[12];this.y=e[13];this.z=e[14];return this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length();const n=this.setFromMatrixColumn(t,1).length();const i=this.setFromMatrixColumn(t,2).length();this.x=e;this.y=n;this.z=i;return this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){this.x=t._x;this.y=t._y;this.z=t._z;return this}setFromColor(t){this.x=t.r;this.y=t.g;this.z=t.b;return this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){this.x=t[e];this.y=t[e+1];this.z=t[e+2];return this}toArray(t=[],e=0){t[e]=this.x;t[e+1]=this.y;t[e+2]=this.z;return t}fromBufferAttribute(t,e){this.x=t.getX(e);this.y=t.getY(e);this.z=t.getZ(e);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}randomDirection(){const t=Math.random()*Math.PI*2;const e=Math.random()*2-1;const n=Math.sqrt(1-e*e);this.x=n*Math.cos(t);this.y=e;this.z=n*Math.sin(t);return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z}}const ii=new Vector3;const ri=new Quaternion;class Box3{constructor(t=new Vector3(Infinity,Infinity,Infinity),e=new Vector3(-Infinity,-Infinity,-Infinity)){this.isBox3=true;this.min=t;this.max=e}set(t,e){this.min.copy(t);this.max.copy(e);return this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e+=3)this.expandByPoint(ai.fromArray(t,e));return this}setFromBufferAttribute(t){this.makeEmpty();for(let e=0,n=t.count;e<n;e++)this.expandByPoint(ai.fromBufferAttribute(t,e));return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=ai.copy(e).multiplyScalar(.5);this.min.copy(t).sub(n);this.max.copy(t).add(n);return this}setFromObject(t,e=false){this.makeEmpty();return this.expandByObject(t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.min.copy(t.min);this.max.copy(t.max);return this}makeEmpty(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){this.min.min(t);this.max.max(t);return this}expandByVector(t){this.min.sub(t);this.max.add(t);return this}expandByScalar(t){this.min.addScalar(-t);this.max.addScalar(t);return this}expandByObject(t,e=false){t.updateWorldMatrix(false,false);const n=t.geometry;if(n!==void 0){const i=n.getAttribute(\"position\");if(e===true&&i!==void 0&&t.isInstancedMesh!==true)for(let e=0,n=i.count;e<n;e++){t.isMesh===true?t.getVertexPosition(e,ai):ai.fromBufferAttribute(i,e);ai.applyMatrix4(t.matrixWorld);this.expandByPoint(ai)}else{if(t.boundingBox!==void 0){t.boundingBox===null&&t.computeBoundingBox();oi.copy(t.boundingBox)}else{n.boundingBox===null&&n.computeBoundingBox();oi.copy(n.boundingBox)}oi.applyMatrix4(t.matrixWorld);this.union(oi)}}const i=t.children;for(let t=0,n=i.length;t<n;t++)this.expandByObject(i[t],e);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){this.clampPoint(t.center,ai);return ai.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;if(t.normal.x>0){e=t.normal.x*this.min.x;n=t.normal.x*this.max.x}else{e=t.normal.x*this.max.x;n=t.normal.x*this.min.x}if(t.normal.y>0){e+=t.normal.y*this.min.y;n+=t.normal.y*this.max.y}else{e+=t.normal.y*this.max.y;n+=t.normal.y*this.min.y}if(t.normal.z>0){e+=t.normal.z*this.min.z;n+=t.normal.z*this.max.z}else{e+=t.normal.z*this.max.z;n+=t.normal.z*this.min.z}return e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return false;this.getCenter(fi);mi.subVectors(this.max,fi);li.subVectors(t.a,fi);ci.subVectors(t.b,fi);hi.subVectors(t.c,fi);ui.subVectors(ci,li);di.subVectors(hi,ci);pi.subVectors(li,hi);let e=[0,-ui.z,ui.y,0,-di.z,di.y,0,-pi.z,pi.y,ui.z,0,-ui.x,di.z,0,-di.x,pi.z,0,-pi.x,-ui.y,ui.x,0,-di.y,di.x,0,-pi.y,pi.x,0];if(!satForAxes(e,li,ci,hi,mi))return false;e=[1,0,0,0,1,0,0,0,1];if(!satForAxes(e,li,ci,hi,mi))return false;gi.crossVectors(ui,di);e=[gi.x,gi.y,gi.z];return satForAxes(e,li,ci,hi,mi)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,ai).distanceTo(t)}getBoundingSphere(t){if(this.isEmpty())t.makeEmpty();else{this.getCenter(t.center);t.radius=this.getSize(ai).length()*.5}return t}intersect(t){this.min.max(t.min);this.max.min(t.max);this.isEmpty()&&this.makeEmpty();return this}union(t){this.min.min(t.min);this.max.max(t.max);return this}applyMatrix4(t){if(this.isEmpty())return this;si[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t);si[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t);si[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t);si[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t);si[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t);si[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t);si[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t);si[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t);this.setFromPoints(si);return this}translate(t){this.min.add(t);this.max.add(t);return this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const si=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3];const ai=new Vector3;const oi=new Box3;const li=new Vector3;const ci=new Vector3;const hi=new Vector3;const ui=new Vector3;const di=new Vector3;const pi=new Vector3;const fi=new Vector3;const mi=new Vector3;const gi=new Vector3;const vi=new Vector3;function satForAxes(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){vi.fromArray(t,s);const a=r.x*Math.abs(vi.x)+r.y*Math.abs(vi.y)+r.z*Math.abs(vi.z);const o=e.dot(vi);const l=n.dot(vi);const c=i.dot(vi);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return false}return true}const _i=new Box3;const xi=new Vector3;const yi=new Vector3;class Sphere{constructor(t=new Vector3,e=-1){this.isSphere=true;this.center=t;this.radius=e}set(t,e){this.center.copy(t);this.radius=e;return this}setFromPoints(t,e){const n=this.center;e!==void 0?n.copy(e):_i.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,n.distanceToSquared(t[e]));this.radius=Math.sqrt(i);return this}copy(t){this.center.copy(t.center);this.radius=t.radius;return this}isEmpty(){return this.radius<0}makeEmpty(){this.center.set(0,0,0);this.radius=-1;return this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);e.copy(t);if(n>this.radius*this.radius){e.sub(this.center).normalize();e.multiplyScalar(this.radius).add(this.center)}return e}getBoundingBox(t){if(this.isEmpty()){t.makeEmpty();return t}t.set(this.center,this.center);t.expandByScalar(this.radius);return t}applyMatrix4(t){this.center.applyMatrix4(t);this.radius=this.radius*t.getMaxScaleOnAxis();return this}translate(t){this.center.add(t);return this}expandByPoint(t){if(this.isEmpty()){this.center.copy(t);this.radius=0;return this}xi.subVectors(t,this.center);const e=xi.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e);const n=.5*(t-this.radius);this.center.addScaledVector(xi,n/t);this.radius+=n}return this}union(t){if(t.isEmpty())return this;if(this.isEmpty()){this.copy(t);return this}if(this.center.equals(t.center)===true)this.radius=Math.max(this.radius,t.radius);else{yi.subVectors(t.center,this.center).setLength(t.radius);this.expandByPoint(xi.copy(t.center).add(yi));this.expandByPoint(xi.copy(t.center).sub(yi))}return this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Mi=new Vector3;const Si=new Vector3;const bi=new Vector3;const Ti=new Vector3;const wi=new Vector3;const Ei=new Vector3;const Ai=new Vector3;class Ray{constructor(t=new Vector3,e=new Vector3(0,0,-1)){this.origin=t;this.direction=e}set(t,e){this.origin.copy(t);this.direction.copy(e);return this}copy(t){this.origin.copy(t.origin);this.direction.copy(t.direction);return this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){this.direction.copy(t).sub(this.origin).normalize();return this}recast(t){this.origin.copy(this.at(t,Mi));return this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Mi.subVectors(t,this.origin).dot(this.direction);if(e<0)return this.origin.distanceToSquared(t);Mi.copy(this.origin).addScaledVector(this.direction,e);return Mi.distanceToSquared(t)}distanceSqToSegment(t,e,n,i){Si.copy(t).add(e).multiplyScalar(.5);bi.copy(e).sub(t).normalize();Ti.copy(this.origin).sub(Si);const r=t.distanceTo(e)*.5;const s=-this.direction.dot(bi);const a=Ti.dot(this.direction);const o=-Ti.dot(bi);const l=Ti.lengthSq();const c=Math.abs(1-s*s);let h,u,d,p;if(c>0){h=s*o-a;u=s*a-o;p=r*c;if(h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t;u*=t;d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else{u=r;h=Math.max(0,-(s*u+a));d=-h*h+u*(u+2*o)+l}else{u=-r;h=Math.max(0,-(s*u+a));d=-h*h+u*(u+2*o)+l}else if(u<=-p){h=Math.max(0,-(-s*r+a));u=h>0?-r:Math.min(Math.max(-r,-o),r);d=-h*h+u*(u+2*o)+l}else if(u<=p){h=0;u=Math.min(Math.max(-r,-o),r);d=u*(u+2*o)+l}else{h=Math.max(0,-(s*r+a));u=h>0?r:Math.min(Math.max(-r,-o),r);d=-h*h+u*(u+2*o)+l}}else{u=s>0?-r:r;h=Math.max(0,-(s*u+a));d=-h*h+u*(u+2*o)+l}n&&n.copy(this.origin).addScaledVector(this.direction,h);i&&i.copy(Si).addScaledVector(bi,u);return d}intersectSphere(t,e){Mi.subVectors(t.center,this.origin);const n=Mi.dot(this.direction);const i=Mi.dot(Mi)-n*n;const r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i);const a=n-s;const o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(e===0)return true;const n=t.normal.dot(this.direction);return n*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z;const u=this.origin;if(l>=0){n=(t.min.x-u.x)*l;i=(t.max.x-u.x)*l}else{n=(t.max.x-u.x)*l;i=(t.min.x-u.x)*l}if(c>=0){r=(t.min.y-u.y)*c;s=(t.max.y-u.y)*c}else{r=(t.max.y-u.y)*c;s=(t.min.y-u.y)*c}if(n>s||r>i)return null;(r>n||isNaN(n))&&(n=r);(s<i||isNaN(i))&&(i=s);if(h>=0){a=(t.min.z-u.z)*h;o=(t.max.z-u.z)*h}else{a=(t.max.z-u.z)*h;o=(t.min.z-u.z)*h}if(n>o||a>i)return null;(a>n||n!==n)&&(n=a);(o<i||i!==i)&&(i=o);return i<0?null:this.at(n>=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,Mi)!==null}intersectTriangle(t,e,n,i,r){wi.subVectors(e,t);Ei.subVectors(n,t);Ai.crossVectors(wi,Ei);let s=this.direction.dot(Ai);let a;if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1;s=-s}Ti.subVectors(this.origin,t);const o=a*this.direction.dot(Ei.crossVectors(Ti,Ei));if(o<0)return null;const l=a*this.direction.dot(wi.cross(Ti));if(l<0)return null;if(o+l>s)return null;const c=-a*Ti.dot(Ai);return c<0?null:this.at(c/s,r)}applyMatrix4(t){this.origin.applyMatrix4(t);this.direction.transformDirection(t);return this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Matrix4{constructor(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m){Matrix4.prototype.isMatrix4=true;this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];t!==void 0&&this.set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m)}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;g[0]=t;g[4]=e;g[8]=n;g[12]=i;g[1]=r;g[5]=s;g[9]=a;g[13]=o;g[2]=l;g[6]=c;g[10]=h;g[14]=u;g[3]=d;g[7]=p;g[11]=f;g[15]=m;return this}identity(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this}clone(){return(new Matrix4).fromArray(this.elements)}copy(t){const e=this.elements;const n=t.elements;e[0]=n[0];e[1]=n[1];e[2]=n[2];e[3]=n[3];e[4]=n[4];e[5]=n[5];e[6]=n[6];e[7]=n[7];e[8]=n[8];e[9]=n[9];e[10]=n[10];e[11]=n[11];e[12]=n[12];e[13]=n[13];e[14]=n[14];e[15]=n[15];return this}copyPosition(t){const e=this.elements,n=t.elements;e[12]=n[12];e[13]=n[13];e[14]=n[14];return this}setFromMatrix3(t){const e=t.elements;this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1);return this}extractBasis(t,e,n){t.setFromMatrixColumn(this,0);e.setFromMatrixColumn(this,1);n.setFromMatrixColumn(this,2);return this}makeBasis(t,e,n){this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1);return this}extractRotation(t){const e=this.elements;const n=t.elements;const i=1/Ci.setFromMatrixColumn(t,0).length();const r=1/Ci.setFromMatrixColumn(t,1).length();const s=1/Ci.setFromMatrixColumn(t,2).length();e[0]=n[0]*i;e[1]=n[1]*i;e[2]=n[2]*i;e[3]=0;e[4]=n[4]*r;e[5]=n[5]*r;e[6]=n[6]*r;e[7]=0;e[8]=n[8]*s;e[9]=n[9]*s;e[10]=n[10]*s;e[11]=0;e[12]=0;e[13]=0;e[14]=0;e[15]=1;return this}makeRotationFromEuler(t){const e=this.elements;const n=t.x,i=t.y,r=t.z;const s=Math.cos(n),a=Math.sin(n);const o=Math.cos(i),l=Math.sin(i);const c=Math.cos(r),h=Math.sin(r);if(t.order===\"XYZ\"){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c;e[4]=-o*h;e[8]=l;e[1]=n+i*l;e[5]=t-r*l;e[9]=-a*o;e[2]=r-t*l;e[6]=i+n*l;e[10]=s*o}else if(t.order===\"YXZ\"){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a;e[4]=i*a-n;e[8]=s*l;e[1]=s*h;e[5]=s*c;e[9]=-a;e[2]=n*a-i;e[6]=r+t*a;e[10]=s*o}else if(t.order===\"ZXY\"){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a;e[4]=-s*h;e[8]=i+n*a;e[1]=n+i*a;e[5]=s*c;e[9]=r-t*a;e[2]=-s*l;e[6]=a;e[10]=s*o}else if(t.order===\"ZYX\"){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c;e[4]=i*l-n;e[8]=t*l+r;e[1]=o*h;e[5]=r*l+t;e[9]=n*l-i;e[2]=-l;e[6]=a*o;e[10]=s*o}else if(t.order===\"YZX\"){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c;e[4]=r-t*h;e[8]=i*h+n;e[1]=h;e[5]=s*c;e[9]=-a*c;e[2]=-l*c;e[6]=n*h+i;e[10]=t-r*h}else if(t.order===\"XZY\"){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c;e[4]=-h;e[8]=l*c;e[1]=t*h+r;e[5]=s*c;e[9]=n*h-i;e[2]=i*h-n;e[6]=a*c;e[10]=r*h+t}e[3]=0;e[7]=0;e[11]=0;e[12]=0;e[13]=0;e[14]=0;e[15]=1;return this}makeRotationFromQuaternion(t){return this.compose(Pi,t,Li)}lookAt(t,e,n){const i=this.elements;Di.subVectors(t,e);Di.lengthSq()===0&&(Di.z=1);Di.normalize();Ii.crossVectors(n,Di);if(Ii.lengthSq()===0){Math.abs(n.z)===1?Di.x+=1e-4:Di.z+=1e-4;Di.normalize();Ii.crossVectors(n,Di)}Ii.normalize();Ui.crossVectors(Di,Ii);i[0]=Ii.x;i[4]=Ui.x;i[8]=Di.x;i[1]=Ii.y;i[5]=Ui.y;i[9]=Di.y;i[2]=Ii.z;i[6]=Ui.z;i[10]=Di.z;return this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements;const i=e.elements;const r=this.elements;const s=n[0],a=n[4],o=n[8],l=n[12];const c=n[1],h=n[5],u=n[9],d=n[13];const p=n[2],f=n[6],m=n[10],g=n[14];const _=n[3],x=n[7],y=n[11],M=n[15];const S=i[0],b=i[4],T=i[8],w=i[12];const E=i[1],A=i[5],C=i[9],R=i[13];const P=i[2],L=i[6],I=i[10],U=i[14];const D=i[3],N=i[7],B=i[11],O=i[15];r[0]=s*S+a*E+o*P+l*D;r[4]=s*b+a*A+o*L+l*N;r[8]=s*T+a*C+o*I+l*B;r[12]=s*w+a*R+o*U+l*O;r[1]=c*S+h*E+u*P+d*D;r[5]=c*b+h*A+u*L+d*N;r[9]=c*T+h*C+u*I+d*B;r[13]=c*w+h*R+u*U+d*O;r[2]=p*S+f*E+m*P+g*D;r[6]=p*b+f*A+m*L+g*N;r[10]=p*T+f*C+m*I+g*B;r[14]=p*w+f*R+m*U+g*O;r[3]=_*S+x*E+y*P+M*D;r[7]=_*b+x*A+y*L+M*N;r[11]=_*T+x*C+y*I+M*B;r[15]=_*w+x*R+y*U+M*O;return this}multiplyScalar(t){const e=this.elements;e[0]*=t;e[4]*=t;e[8]*=t;e[12]*=t;e[1]*=t;e[5]*=t;e[9]*=t;e[13]*=t;e[2]*=t;e[6]*=t;e[10]*=t;e[14]*=t;e[3]*=t;e[7]*=t;e[11]*=t;e[15]*=t;return this}determinant(){const t=this.elements;const e=t[0],n=t[4],i=t[8],r=t[12];const s=t[1],a=t[5],o=t[9],l=t[13];const c=t[2],h=t[6],u=t[10],d=t[14];const p=t[3],f=t[7],m=t[11],g=t[15];return p*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+f*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+m*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+g*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;e=t[1];t[1]=t[4];t[4]=e;e=t[2];t[2]=t[8];t[8]=e;e=t[6];t[6]=t[9];t[9]=e;e=t[3];t[3]=t[12];t[12]=e;e=t[7];t[7]=t[13];t[13]=e;e=t[11];t[11]=t[14];t[14]=e;return this}setPosition(t,e,n){const i=this.elements;if(t.isVector3){i[12]=t.x;i[13]=t.y;i[14]=t.z}else{i[12]=t;i[13]=e;i[14]=n}return this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],_=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,x=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,y=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,M=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m;const S=e*_+n*x+i*y+r*M;if(S===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const b=1/S;t[0]=_*b;t[1]=(f*u*r-h*m*r-f*i*d+n*m*d+h*i*g-n*u*g)*b;t[2]=(a*m*r-f*o*r+f*i*l-n*m*l-a*i*g+n*o*g)*b;t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*b;t[4]=x*b;t[5]=(c*m*r-p*u*r+p*i*d-e*m*d-c*i*g+e*u*g)*b;t[6]=(p*o*r-s*m*r-p*i*l+e*m*l+s*i*g-e*o*g)*b;t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*b;t[8]=y*b;t[9]=(p*h*r-c*f*r-p*n*d+e*f*d+c*n*g-e*h*g)*b;t[10]=(s*f*r-p*a*r+p*n*l-e*f*l-s*n*g+e*a*g)*b;t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*b;t[12]=M*b;t[13]=(c*f*i-p*h*i+p*n*u-e*f*u-c*n*m+e*h*m)*b;t[14]=(p*a*i-s*f*i-p*n*o+e*f*o+s*n*m-e*a*m)*b;t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*b;return this}scale(t){const e=this.elements;const n=t.x,i=t.y,r=t.z;e[0]*=n;e[4]*=i;e[8]*=r;e[1]*=n;e[5]*=i;e[9]*=r;e[2]*=n;e[6]*=i;e[10]*=r;e[3]*=n;e[7]*=i;e[11]*=r;return this}getMaxScaleOnAxis(){const t=this.elements;const e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];const n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6];const i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1);return this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1);return this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1);return this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1);return this}makeRotationAxis(t,e){const n=Math.cos(e);const i=Math.sin(e);const r=1-n;const s=t.x,a=t.y,o=t.z;const l=r*s,c=r*a;this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1);return this}makeScale(t,e,n){this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1);return this}makeShear(t,e,n,i,r,s){this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1);return this}compose(t,e,n){const i=this.elements;const r=e._x,s=e._y,a=e._z,o=e._w;const l=r+r,c=s+s,h=a+a;const u=r*l,d=r*c,p=r*h;const f=s*c,m=s*h,g=a*h;const _=o*l,x=o*c,y=o*h;const M=n.x,S=n.y,b=n.z;i[0]=(1-(f+g))*M;i[1]=(d+y)*M;i[2]=(p-x)*M;i[3]=0;i[4]=(d-y)*S;i[5]=(1-(u+g))*S;i[6]=(m+_)*S;i[7]=0;i[8]=(p+x)*b;i[9]=(m-_)*b;i[10]=(1-(u+f))*b;i[11]=0;i[12]=t.x;i[13]=t.y;i[14]=t.z;i[15]=1;return this}decompose(t,e,n){const i=this.elements;let r=Ci.set(i[0],i[1],i[2]).length();const s=Ci.set(i[4],i[5],i[6]).length();const a=Ci.set(i[8],i[9],i[10]).length();const o=this.determinant();o<0&&(r=-r);t.x=i[12];t.y=i[13];t.z=i[14];Ri.copy(this);const l=1/r;const c=1/s;const h=1/a;Ri.elements[0]*=l;Ri.elements[1]*=l;Ri.elements[2]*=l;Ri.elements[4]*=c;Ri.elements[5]*=c;Ri.elements[6]*=c;Ri.elements[8]*=h;Ri.elements[9]*=h;Ri.elements[10]*=h;e.setFromRotationMatrix(Ri);n.x=r;n.y=s;n.z=a;return this}makePerspective(t,e,n,i,r,s,a=Fn){const o=this.elements;const l=2*r/(e-t);const c=2*r/(n-i);const h=(e+t)/(e-t);const u=(n+i)/(n-i);let d,p;if(a===Fn){d=-(s+r)/(s-r);p=-2*s*r/(s-r)}else{if(a!==zn)throw new Error(\"THREE.Matrix4.makePerspective(): Invalid coordinate system: \"+a);d=-s/(s-r);p=-s*r/(s-r)}o[0]=l;o[4]=0;o[8]=h;o[12]=0;o[1]=0;o[5]=c;o[9]=u;o[13]=0;o[2]=0;o[6]=0;o[10]=d;o[14]=p;o[3]=0;o[7]=0;o[11]=-1;o[15]=0;return this}makeOrthographic(t,e,n,i,r,s,a=Fn){const o=this.elements;const l=1/(e-t);const c=1/(n-i);const h=1/(s-r);const u=(e+t)*l;const d=(n+i)*c;let p,f;if(a===Fn){p=(s+r)*h;f=-2*h}else{if(a!==zn)throw new Error(\"THREE.Matrix4.makeOrthographic(): Invalid coordinate system: \"+a);p=r*h;f=-1*h}o[0]=2*l;o[4]=0;o[8]=0;o[12]=-u;o[1]=0;o[5]=2*c;o[9]=0;o[13]=-d;o[2]=0;o[6]=0;o[10]=f;o[14]=-p;o[3]=0;o[7]=0;o[11]=0;o[15]=1;return this}equals(t){const e=this.elements;const n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return false;return true}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;t[e]=n[0];t[e+1]=n[1];t[e+2]=n[2];t[e+3]=n[3];t[e+4]=n[4];t[e+5]=n[5];t[e+6]=n[6];t[e+7]=n[7];t[e+8]=n[8];t[e+9]=n[9];t[e+10]=n[10];t[e+11]=n[11];t[e+12]=n[12];t[e+13]=n[13];t[e+14]=n[14];t[e+15]=n[15];return t}}const Ci=new Vector3;const Ri=new Matrix4;const Pi=new Vector3(0,0,0);const Li=new Vector3(1,1,1);const Ii=new Vector3;const Ui=new Vector3;const Di=new Vector3;const Ni=new Matrix4;const Bi=new Quaternion;class Euler{constructor(t=0,e=0,n=0,i=Euler.DEFAULT_ORDER){this.isEuler=true;this._x=t;this._y=e;this._z=n;this._order=i}get x(){return this._x}set x(t){this._x=t;this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t;this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t;this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t;this._onChangeCallback()}set(t,e,n,i=this._order){this._x=t;this._y=e;this._z=n;this._order=i;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){this._x=t._x;this._y=t._y;this._z=t._z;this._order=t._order;this._onChangeCallback();return this}setFromRotationMatrix(t,e=this._order,n=true){const i=t.elements;const r=i[0],s=i[4],a=i[8];const o=i[1],l=i[5],c=i[9];const h=i[2],u=i[6],d=i[10];switch(e){case\"XYZ\":this._y=Math.asin(clamp(a,-1,1));if(Math.abs(a)<.9999999){this._x=Math.atan2(-c,d);this._z=Math.atan2(-s,r)}else{this._x=Math.atan2(u,l);this._z=0}break;case\"YXZ\":this._x=Math.asin(-clamp(c,-1,1));if(Math.abs(c)<.9999999){this._y=Math.atan2(a,d);this._z=Math.atan2(o,l)}else{this._y=Math.atan2(-h,r);this._z=0}break;case\"ZXY\":this._x=Math.asin(clamp(u,-1,1));if(Math.abs(u)<.9999999){this._y=Math.atan2(-h,d);this._z=Math.atan2(-s,l)}else{this._y=0;this._z=Math.atan2(o,r)}break;case\"ZYX\":this._y=Math.asin(-clamp(h,-1,1));if(Math.abs(h)<.9999999){this._x=Math.atan2(u,d);this._z=Math.atan2(o,r)}else{this._x=0;this._z=Math.atan2(-s,l)}break;case\"YZX\":this._z=Math.asin(clamp(o,-1,1));if(Math.abs(o)<.9999999){this._x=Math.atan2(-c,l);this._y=Math.atan2(-h,r)}else{this._x=0;this._y=Math.atan2(a,d)}break;case\"XZY\":this._z=Math.asin(-clamp(s,-1,1));if(Math.abs(s)<.9999999){this._x=Math.atan2(u,l);this._y=Math.atan2(a,r)}else{this._x=Math.atan2(-c,d);this._y=0}break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+e)}this._order=e;n===true&&this._onChangeCallback();return this}setFromQuaternion(t,e,n){Ni.makeRotationFromQuaternion(t);return this.setFromRotationMatrix(Ni,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){Bi.setFromEuler(this);return this.setFromQuaternion(Bi,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){this._x=t[0];this._y=t[1];this._z=t[2];t[3]!==void 0&&(this._order=t[3]);this._onChangeCallback();return this}toArray(t=[],e=0){t[e]=this._x;t[e+1]=this._y;t[e+2]=this._z;t[e+3]=this._order;return t}_onChange(t){this._onChangeCallback=t;return this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x;yield this._y;yield this._z;yield this._order}}Euler.DEFAULT_ORDER=\"XYZ\";class Layers{constructor(){this.mask=1}set(t){this.mask=(1<<t|0)>>>0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return(this.mask&t.mask)!==0}isEnabled(t){return(this.mask&(1<<t|0))!==0}}let Oi=0;const Vi=new Vector3;const Fi=new Quaternion;const zi=new Matrix4;const Gi=new Vector3;const ki=new Vector3;const Hi=new Vector3;const Wi=new Quaternion;const Xi=new Vector3(1,0,0);const ji=new Vector3(0,1,0);const qi=new Vector3(0,0,1);const Yi={type:\"added\"};const Ki={type:\"removed\"};const Zi={type:\"childadded\",child:null};const Ji={type:\"childremoved\",child:null};class Object3D extends EventDispatcher{constructor(){super();this.isObject3D=true;Object.defineProperty(this,\"id\",{value:Oi++});this.uuid=generateUUID();this.name=\"\";this.type=\"Object3D\";this.parent=null;this.children=[];this.up=Object3D.DEFAULT_UP.clone();const t=new Vector3;const e=new Euler;const n=new Quaternion;const i=new Vector3(1,1,1);function onRotationChange(){n.setFromEuler(e,false)}function onQuaternionChange(){e.setFromQuaternion(n,void 0,false)}e._onChange(onRotationChange);n._onChange(onQuaternionChange);Object.defineProperties(this,{position:{configurable:true,enumerable:true,value:t},rotation:{configurable:true,enumerable:true,value:e},quaternion:{configurable:true,enumerable:true,value:n},scale:{configurable:true,enumerable:true,value:i},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}});this.matrix=new Matrix4;this.matrixWorld=new Matrix4;this.matrixAutoUpdate=Object3D.DEFAULT_MATRIX_AUTO_UPDATE;this.matrixWorldAutoUpdate=Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE;this.matrixWorldNeedsUpdate=false;this.layers=new Layers;this.visible=true;this.castShadow=false;this.receiveShadow=false;this.frustumCulled=true;this.renderOrder=0;this.animations=[];this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix();this.matrix.premultiply(t);this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){this.quaternion.premultiply(t);return this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,true)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){Fi.setFromAxisAngle(t,e);this.quaternion.multiply(Fi);return this}rotateOnWorldAxis(t,e){Fi.setFromAxisAngle(t,e);this.quaternion.premultiply(Fi);return this}rotateX(t){return this.rotateOnAxis(Xi,t)}rotateY(t){return this.rotateOnAxis(ji,t)}rotateZ(t){return this.rotateOnAxis(qi,t)}translateOnAxis(t,e){Vi.copy(t).applyQuaternion(this.quaternion);this.position.add(Vi.multiplyScalar(e));return this}translateX(t){return this.translateOnAxis(Xi,t)}translateY(t){return this.translateOnAxis(ji,t)}translateZ(t){return this.translateOnAxis(qi,t)}localToWorld(t){this.updateWorldMatrix(true,false);return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){this.updateWorldMatrix(true,false);return t.applyMatrix4(zi.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Gi.copy(t):Gi.set(t,e,n);const i=this.parent;this.updateWorldMatrix(true,false);ki.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?zi.lookAt(ki,Gi,this.up):zi.lookAt(Gi,ki,this.up);this.quaternion.setFromRotationMatrix(zi);if(i){zi.extractRotation(i.matrixWorld);Fi.setFromRotationMatrix(zi);this.quaternion.premultiply(Fi.invert())}}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}if(t===this){console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",t);return this}if(t&&t.isObject3D){t.removeFromParent();t.parent=this;this.children.push(t);t.dispatchEvent(Yi);Zi.child=t;this.dispatchEvent(Zi);Zi.child=null}else console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",t);return this}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);if(e!==-1){t.parent=null;this.children.splice(e,1);t.dispatchEvent(Ki);Ji.child=t;this.dispatchEvent(Ji);Ji.child=null}return this}removeFromParent(){const t=this.parent;t!==null&&t.remove(this);return this}clear(){return this.remove(...this.children)}attach(t){this.updateWorldMatrix(true,false);zi.copy(this.matrixWorld).invert();if(t.parent!==null){t.parent.updateWorldMatrix(true,false);zi.multiply(t.parent.matrixWorld)}t.applyMatrix4(zi);t.removeFromParent();t.parent=this;this.children.push(t);t.updateWorldMatrix(false,true);t.dispatchEvent(Yi);Zi.child=t;this.dispatchEvent(Zi);Zi.child=null;return this}getObjectById(t){return this.getObjectByProperty(\"id\",t)}getObjectByName(t){return this.getObjectByProperty(\"name\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n];const r=i.getObjectByProperty(t,e);if(r!==void 0)return r}}getObjectsByProperty(t,e,n=[]){this[t]===e&&n.push(this);const i=this.children;for(let r=0,s=i.length;r<s;r++)i[r].getObjectsByProperty(t,e,n);return n}getWorldPosition(t){this.updateWorldMatrix(true,false);return t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(ki,t,Hi);return t}getWorldScale(t){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(ki,Wi,t);return t}getWorldDirection(t){this.updateWorldMatrix(true,false);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(this.visible===false)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;if(e!==null){t(e);e.traverseAncestors(t)}}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=true}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||t){this.matrixWorldAutoUpdate===true&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix));this.matrixWorldNeedsUpdate=false;t=true}const e=this.children;for(let n=0,i=e.length;n<i;n++){const i=e[n];i.updateMatrixWorld(t)}}updateWorldMatrix(t,e){const n=this.parent;t===true&&n!==null&&n.updateWorldMatrix(true,false);this.matrixAutoUpdate&&this.updateMatrix();this.matrixWorldAutoUpdate===true&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix));if(e===true){const t=this.children;for(let e=0,n=t.length;e<n;e++){const n=t[e];n.updateWorldMatrix(false,true)}}}toJSON(t){const e=t===void 0||typeof t===\"string\";const n={};if(e){t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}};n.metadata={version:4.6,type:\"Object\",generator:\"Object3D.toJSON\"}}const i={};i.uuid=this.uuid;i.type=this.type;this.name!==\"\"&&(i.name=this.name);this.castShadow===true&&(i.castShadow=true);this.receiveShadow===true&&(i.receiveShadow=true);this.visible===false&&(i.visible=false);this.frustumCulled===false&&(i.frustumCulled=false);this.renderOrder!==0&&(i.renderOrder=this.renderOrder);Object.keys(this.userData).length>0&&(i.userData=this.userData);i.layers=this.layers.mask;i.matrix=this.matrix.toArray();i.up=this.up.toArray();this.matrixAutoUpdate===false&&(i.matrixAutoUpdate=false);if(this.isInstancedMesh){i.type=\"InstancedMesh\";i.count=this.count;i.instanceMatrix=this.instanceMatrix.toJSON();this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())}if(this.isBatchedMesh){i.type=\"BatchedMesh\";i.perObjectFrustumCulled=this.perObjectFrustumCulled;i.sortObjects=this.sortObjects;i.drawRanges=this._drawRanges;i.reservedRanges=this._reservedRanges;i.visibility=this._visibility;i.active=this._active;i.bounds=this._bounds.map((t=>({boxInitialized:t.boxInitialized,boxMin:t.box.min.toArray(),boxMax:t.box.max.toArray(),sphereInitialized:t.sphereInitialized,sphereRadius:t.sphere.radius,sphereCenter:t.sphere.center.toArray()})));i.maxInstanceCount=this._maxInstanceCount;i.maxVertexCount=this._maxVertexCount;i.maxIndexCount=this._maxIndexCount;i.geometryInitialized=this._geometryInitialized;i.geometryCount=this._geometryCount;i.matricesTexture=this._matricesTexture.toJSON(t);this._colorsTexture!==null&&(i.colorsTexture=this._colorsTexture.toJSON(t));this.boundingSphere!==null&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius});this.boundingBox!==null&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})}function serialize(e,n){e[n.uuid]===void 0&&(e[n.uuid]=n.toJSON(t));return n.uuid}if(this.isScene){this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid));this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==true&&(i.environment=this.environment.toJSON(t).uuid)}else if(this.isMesh||this.isLine||this.isPoints){i.geometry=serialize(t.geometries,this.geometry);const e=this.geometry.parameters;if(e!==void 0&&e.shapes!==void 0){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];serialize(t.shapes,i)}else serialize(t.shapes,n)}}if(this.isSkinnedMesh){i.bindMode=this.bindMode;i.bindMatrix=this.bindMatrix.toArray();if(this.skeleton!==void 0){serialize(t.skeletons,this.skeleton);i.skeleton=this.skeleton.uuid}}if(this.material!==void 0)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(serialize(t.materials,this.material[n]));i.material=e}else i.material=serialize(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(serialize(t.animations,n))}}if(e){const e=extractFromCache(t.geometries);const i=extractFromCache(t.materials);const r=extractFromCache(t.textures);const s=extractFromCache(t.images);const a=extractFromCache(t.shapes);const o=extractFromCache(t.skeletons);const l=extractFromCache(t.animations);const c=extractFromCache(t.nodes);e.length>0&&(n.geometries=e);i.length>0&&(n.materials=i);r.length>0&&(n.textures=r);s.length>0&&(n.images=s);a.length>0&&(n.shapes=a);o.length>0&&(n.skeletons=o);l.length>0&&(n.animations=l);c.length>0&&(n.nodes=c)}n.object=i;return n;function extractFromCache(t){const e=[];for(const n in t){const i=t[n];delete i.metadata;e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=true){this.name=t.name;this.up.copy(t.up);this.position.copy(t.position);this.rotation.order=t.rotation.order;this.quaternion.copy(t.quaternion);this.scale.copy(t.scale);this.matrix.copy(t.matrix);this.matrixWorld.copy(t.matrixWorld);this.matrixAutoUpdate=t.matrixAutoUpdate;this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate;this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate;this.layers.mask=t.layers.mask;this.visible=t.visible;this.castShadow=t.castShadow;this.receiveShadow=t.receiveShadow;this.frustumCulled=t.frustumCulled;this.renderOrder=t.renderOrder;this.animations=t.animations.slice();this.userData=JSON.parse(JSON.stringify(t.userData));if(e===true)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}Object3D.DEFAULT_UP=new Vector3(0,1,0);Object3D.DEFAULT_MATRIX_AUTO_UPDATE=true;Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=true;const Qi=new Vector3;const $i=new Vector3;const tr=new Vector3;const er=new Vector3;const nr=new Vector3;const ir=new Vector3;const rr=new Vector3;const sr=new Vector3;const ar=new Vector3;const or=new Vector3;class Triangle{constructor(t=new Vector3,e=new Vector3,n=new Vector3){this.a=t;this.b=e;this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e);Qi.subVectors(t,e);i.cross(Qi);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){Qi.subVectors(i,e);$i.subVectors(n,e);tr.subVectors(t,e);const s=Qi.dot(Qi);const a=Qi.dot($i);const o=Qi.dot(tr);const l=$i.dot($i);const c=$i.dot(tr);const h=s*l-a*a;if(h===0){r.set(0,0,0);return null}const u=1/h;const d=(l*o-a*c)*u;const p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,er)!==null&&(er.x>=0&&er.y>=0&&er.x+er.y<=1)}static getInterpolation(t,e,n,i,r,s,a,o){if(this.getBarycoord(t,e,n,i,er)===null){o.x=0;o.y=0;\"z\"in o&&(o.z=0);\"w\"in o&&(o.w=0);return null}o.setScalar(0);o.addScaledVector(r,er.x);o.addScaledVector(s,er.y);o.addScaledVector(a,er.z);return o}static isFrontFacing(t,e,n,i){Qi.subVectors(n,e);$i.subVectors(t,e);return Qi.cross($i).dot(i)<0}set(t,e,n){this.a.copy(t);this.b.copy(e);this.c.copy(n);return this}setFromPointsAndIndices(t,e,n,i){this.a.copy(t[e]);this.b.copy(t[n]);this.c.copy(t[i]);return this}setFromAttributeAndIndices(t,e,n,i){this.a.fromBufferAttribute(t,e);this.b.fromBufferAttribute(t,n);this.c.fromBufferAttribute(t,i);return this}clone(){return(new this.constructor).copy(this)}copy(t){this.a.copy(t.a);this.b.copy(t.b);this.c.copy(t.c);return this}getArea(){Qi.subVectors(this.c,this.b);$i.subVectors(this.a,this.b);return Qi.cross($i).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Triangle.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Triangle.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,i,r){return Triangle.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Triangle.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Triangle.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;nr.subVectors(i,n);ir.subVectors(r,n);sr.subVectors(t,n);const o=nr.dot(sr);const l=ir.dot(sr);if(o<=0&&l<=0)return e.copy(n);ar.subVectors(t,i);const c=nr.dot(ar);const h=ir.dot(ar);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0){s=o/(o-c);return e.copy(n).addScaledVector(nr,s)}or.subVectors(t,r);const d=nr.dot(or);const p=ir.dot(or);if(p>=0&&d<=p)return e.copy(r);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0){a=l/(l-p);return e.copy(n).addScaledVector(ir,a)}const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0){rr.subVectors(r,i);a=(h-c)/(h-c+(d-p));return e.copy(i).addScaledVector(rr,a)}const g=1/(m+f+u);s=f*g;a=u*g;return e.copy(n).addScaledVector(nr,s).addScaledVector(ir,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const lr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};const cr={h:0,s:0,l:0};const hr={h:0,s:0,l:0};function hue2rgb(t,e,n){n<0&&(n+=1);n>1&&(n-=1);return n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Color{constructor(t,e,n){this.isColor=true;this.r=1;this.g=1;this.b=1;return this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){const e=t;e&&e.isColor?this.copy(e):typeof e===\"number\"?this.setHex(e):typeof e===\"string\"&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){this.r=t;this.g=t;this.b=t;return this}setHex(t,e=Ke){t=Math.floor(t);this.r=(t>>16&255)/255;this.g=(t>>8&255)/255;this.b=(t&255)/255;$n.toWorkingColorSpace(this,e);return this}setRGB(t,e,n,i=$n.workingColorSpace){this.r=t;this.g=e;this.b=n;$n.toWorkingColorSpace(this,i);return this}setHSL(t,e,n,i=$n.workingColorSpace){t=euclideanModulo(t,1);e=clamp(e,0,1);n=clamp(n,0,1);if(e===0)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e;const r=2*n-i;this.r=hue2rgb(r,i,t+1/3);this.g=hue2rgb(r,i,t);this.b=hue2rgb(r,i,t-1/3)}$n.toWorkingColorSpace(this,i);return this}setStyle(t,e=Ke){function handleAlpha(e){e!==void 0&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}let n;if(n=/^(\\w+)\\(([^\\)]*)\\)/.exec(t)){let i;const r=n[1];const s=n[2];switch(r){case\"rgb\":case\"rgba\":if(i=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(s)){handleAlpha(i[4]);return this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,e)}if(i=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(s)){handleAlpha(i[4]);return this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,e)}break;case\"hsl\":case\"hsla\":if(i=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(s)){handleAlpha(i[4]);return this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,e)}break;default:console.warn(\"THREE.Color: Unknown color model \"+t)}}else if(n=/^\\#([A-Fa-f\\d]+)$/.exec(t)){const i=n[1];const r=i.length;if(r===3)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,e);if(r===6)return this.setHex(parseInt(i,16),e);console.warn(\"THREE.Color: Invalid hex color \"+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=Ke){const n=lr[t.toLowerCase()];n!==void 0?this.setHex(n,e):console.warn(\"THREE.Color: Unknown color \"+t);return this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){this.r=t.r;this.g=t.g;this.b=t.b;return this}copySRGBToLinear(t){this.r=SRGBToLinear(t.r);this.g=SRGBToLinear(t.g);this.b=SRGBToLinear(t.b);return this}copyLinearToSRGB(t){this.r=LinearToSRGB(t.r);this.g=LinearToSRGB(t.g);this.b=LinearToSRGB(t.b);return this}convertSRGBToLinear(){this.copySRGBToLinear(this);return this}convertLinearToSRGB(){this.copyLinearToSRGB(this);return this}getHex(t=Ke){$n.fromWorkingColorSpace(ur.copy(this),t);return Math.round(clamp(ur.r*255,0,255))*65536+Math.round(clamp(ur.g*255,0,255))*256+Math.round(clamp(ur.b*255,0,255))}getHexString(t=Ke){return(\"000000\"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=$n.workingColorSpace){$n.fromWorkingColorSpace(ur.copy(this),e);const n=ur.r,i=ur.g,r=ur.b;const s=Math.max(n,i,r);const a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s){o=0;l=0}else{const t=s-a;l=c<=.5?t/(s+a):t/(2-s-a);switch(s){case n:o=(i-r)/t+(i<r?6:0);break;case i:o=(r-n)/t+2;break;case r:o=(n-i)/t+4;break}o/=6}t.h=o;t.s=l;t.l=c;return t}getRGB(t,e=$n.workingColorSpace){$n.fromWorkingColorSpace(ur.copy(this),e);t.r=ur.r;t.g=ur.g;t.b=ur.b;return t}getStyle(t=Ke){$n.fromWorkingColorSpace(ur.copy(this),t);const e=ur.r,n=ur.g,i=ur.b;return t!==Ke?`color(${t} ${e.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)})`:`rgb(${Math.round(e*255)},${Math.round(n*255)},${Math.round(i*255)})`}offsetHSL(t,e,n){this.getHSL(cr);return this.setHSL(cr.h+t,cr.s+e,cr.l+n)}add(t){this.r+=t.r;this.g+=t.g;this.b+=t.b;return this}addColors(t,e){this.r=t.r+e.r;this.g=t.g+e.g;this.b=t.b+e.b;return this}addScalar(t){this.r+=t;this.g+=t;this.b+=t;return this}sub(t){this.r=Math.max(0,this.r-t.r);this.g=Math.max(0,this.g-t.g);this.b=Math.max(0,this.b-t.b);return this}multiply(t){this.r*=t.r;this.g*=t.g;this.b*=t.b;return this}multiplyScalar(t){this.r*=t;this.g*=t;this.b*=t;return this}lerp(t,e){this.r+=(t.r-this.r)*e;this.g+=(t.g-this.g)*e;this.b+=(t.b-this.b)*e;return this}lerpColors(t,e,n){this.r=t.r+(e.r-t.r)*n;this.g=t.g+(e.g-t.g)*n;this.b=t.b+(e.b-t.b)*n;return this}lerpHSL(t,e){this.getHSL(cr);t.getHSL(hr);const n=lerp(cr.h,hr.h,e);const i=lerp(cr.s,hr.s,e);const r=lerp(cr.l,hr.l,e);this.setHSL(n,i,r);return this}setFromVector3(t){this.r=t.x;this.g=t.y;this.b=t.z;return this}applyMatrix3(t){const e=this.r,n=this.g,i=this.b;const r=t.elements;this.r=r[0]*e+r[3]*n+r[6]*i;this.g=r[1]*e+r[4]*n+r[7]*i;this.b=r[2]*e+r[5]*n+r[8]*i;return this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){this.r=t[e];this.g=t[e+1];this.b=t[e+2];return this}toArray(t=[],e=0){t[e]=this.r;t[e+1]=this.g;t[e+2]=this.b;return t}fromBufferAttribute(t,e){this.r=t.getX(e);this.g=t.getY(e);this.b=t.getZ(e);return this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r;yield this.g;yield this.b}}const ur=new Color;Color.NAMES=lr;let dr=0;class Material extends EventDispatcher{constructor(){super();this.isMaterial=true;Object.defineProperty(this,\"id\",{value:dr++});this.uuid=generateUUID();this.name=\"\";this.type=\"Material\";this.blending=m;this.side=u;this.vertexColors=false;this.opacity=1;this.transparent=false;this.alphaHash=false;this.blendSrc=P;this.blendDst=L;this.blendEquation=M;this.blendSrcAlpha=null;this.blendDstAlpha=null;this.blendEquationAlpha=null;this.blendColor=new Color(0,0,0);this.blendAlpha=0;this.depthFunc=W;this.depthTest=true;this.depthWrite=true;this.stencilWriteMask=255;this.stencilFunc=xn;this.stencilRef=0;this.stencilFuncMask=255;this.stencilFail=sn;this.stencilZFail=sn;this.stencilZPass=sn;this.stencilWrite=false;this.clippingPlanes=null;this.clipIntersection=false;this.clipShadows=false;this.shadowSide=null;this.colorWrite=true;this.precision=null;this.polygonOffset=false;this.polygonOffsetFactor=0;this.polygonOffsetUnits=0;this.dithering=false;this.alphaToCoverage=false;this.premultipliedAlpha=false;this.forceSinglePass=false;this.visible=true;this.toneMapped=true;this.userData={};this.version=0;this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!==t>0&&this.version++;this._alphaTest=t}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];i!==void 0?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=t===void 0||typeof t===\"string\";e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:\"Material\",generator:\"Material.toJSON\"}};n.uuid=this.uuid;n.type=this.type;this.name!==\"\"&&(n.name=this.name);this.color&&this.color.isColor&&(n.color=this.color.getHex());this.roughness!==void 0&&(n.roughness=this.roughness);this.metalness!==void 0&&(n.metalness=this.metalness);this.sheen!==void 0&&(n.sheen=this.sheen);this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex());this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness);this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex());this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex());this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity);this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex());this.shininess!==void 0&&(n.shininess=this.shininess);this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat);this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid);this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid);if(this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture){n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid;n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()}this.dispersion!==void 0&&(n.dispersion=this.dispersion);this.iridescence!==void 0&&(n.iridescence=this.iridescence);this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR);this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange);this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid);this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid);this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy);this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation);this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid);this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid);this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid);this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid);if(this.lightMap&&this.lightMap.isTexture){n.lightMap=this.lightMap.toJSON(t).uuid;n.lightMapIntensity=this.lightMapIntensity}if(this.aoMap&&this.aoMap.isTexture){n.aoMap=this.aoMap.toJSON(t).uuid;n.aoMapIntensity=this.aoMapIntensity}if(this.bumpMap&&this.bumpMap.isTexture){n.bumpMap=this.bumpMap.toJSON(t).uuid;n.bumpScale=this.bumpScale}if(this.normalMap&&this.normalMap.isTexture){n.normalMap=this.normalMap.toJSON(t).uuid;n.normalMapType=this.normalMapType;n.normalScale=this.normalScale.toArray()}if(this.displacementMap&&this.displacementMap.isTexture){n.displacementMap=this.displacementMap.toJSON(t).uuid;n.displacementScale=this.displacementScale;n.displacementBias=this.displacementBias}this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid);this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid);this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid);this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid);if(this.envMap&&this.envMap.isTexture){n.envMap=this.envMap.toJSON(t).uuid;this.combine!==void 0&&(n.combine=this.combine)}this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray());this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity);this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity);this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio);this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid);this.transmission!==void 0&&(n.transmission=this.transmission);this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid);this.thickness!==void 0&&(n.thickness=this.thickness);this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid);this.attenuationDistance!==void 0&&this.attenuationDistance!==Infinity&&(n.attenuationDistance=this.attenuationDistance);this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex());this.size!==void 0&&(n.size=this.size);this.shadowSide!==null&&(n.shadowSide=this.shadowSide);this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation);this.blending!==m&&(n.blending=this.blending);this.side!==u&&(n.side=this.side);this.vertexColors===true&&(n.vertexColors=true);this.opacity<1&&(n.opacity=this.opacity);this.transparent===true&&(n.transparent=true);this.blendSrc!==P&&(n.blendSrc=this.blendSrc);this.blendDst!==L&&(n.blendDst=this.blendDst);this.blendEquation!==M&&(n.blendEquation=this.blendEquation);this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha);this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha);this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha);this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex());this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha);this.depthFunc!==W&&(n.depthFunc=this.depthFunc);this.depthTest===false&&(n.depthTest=this.depthTest);this.depthWrite===false&&(n.depthWrite=this.depthWrite);this.colorWrite===false&&(n.colorWrite=this.colorWrite);this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask);this.stencilFunc!==xn&&(n.stencilFunc=this.stencilFunc);this.stencilRef!==0&&(n.stencilRef=this.stencilRef);this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask);this.stencilFail!==sn&&(n.stencilFail=this.stencilFail);this.stencilZFail!==sn&&(n.stencilZFail=this.stencilZFail);this.stencilZPass!==sn&&(n.stencilZPass=this.stencilZPass);this.stencilWrite===true&&(n.stencilWrite=this.stencilWrite);this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation);this.polygonOffset===true&&(n.polygonOffset=true);this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor);this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits);this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth);this.dashSize!==void 0&&(n.dashSize=this.dashSize);this.gapSize!==void 0&&(n.gapSize=this.gapSize);this.scale!==void 0&&(n.scale=this.scale);this.dithering===true&&(n.dithering=true);this.alphaTest>0&&(n.alphaTest=this.alphaTest);this.alphaHash===true&&(n.alphaHash=true);this.alphaToCoverage===true&&(n.alphaToCoverage=true);this.premultipliedAlpha===true&&(n.premultipliedAlpha=true);this.forceSinglePass===true&&(n.forceSinglePass=true);this.wireframe===true&&(n.wireframe=true);this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth);this.wireframeLinecap!==\"round\"&&(n.wireframeLinecap=this.wireframeLinecap);this.wireframeLinejoin!==\"round\"&&(n.wireframeLinejoin=this.wireframeLinejoin);this.flatShading===true&&(n.flatShading=true);this.visible===false&&(n.visible=false);this.toneMapped===false&&(n.toneMapped=false);this.fog===false&&(n.fog=false);Object.keys(this.userData).length>0&&(n.userData=this.userData);function extractFromCache(t){const e=[];for(const n in t){const i=t[n];delete i.metadata;e.push(i)}return e}if(e){const e=extractFromCache(t.textures);const i=extractFromCache(t.images);e.length>0&&(n.textures=e);i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name;this.blending=t.blending;this.side=t.side;this.vertexColors=t.vertexColors;this.opacity=t.opacity;this.transparent=t.transparent;this.blendSrc=t.blendSrc;this.blendDst=t.blendDst;this.blendEquation=t.blendEquation;this.blendSrcAlpha=t.blendSrcAlpha;this.blendDstAlpha=t.blendDstAlpha;this.blendEquationAlpha=t.blendEquationAlpha;this.blendColor.copy(t.blendColor);this.blendAlpha=t.blendAlpha;this.depthFunc=t.depthFunc;this.depthTest=t.depthTest;this.depthWrite=t.depthWrite;this.stencilWriteMask=t.stencilWriteMask;this.stencilFunc=t.stencilFunc;this.stencilRef=t.stencilRef;this.stencilFuncMask=t.stencilFuncMask;this.stencilFail=t.stencilFail;this.stencilZFail=t.stencilZFail;this.stencilZPass=t.stencilZPass;this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(e!==null){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}this.clippingPlanes=n;this.clipIntersection=t.clipIntersection;this.clipShadows=t.clipShadows;this.shadowSide=t.shadowSide;this.colorWrite=t.colorWrite;this.precision=t.precision;this.polygonOffset=t.polygonOffset;this.polygonOffsetFactor=t.polygonOffsetFactor;this.polygonOffsetUnits=t.polygonOffsetUnits;this.dithering=t.dithering;this.alphaTest=t.alphaTest;this.alphaHash=t.alphaHash;this.alphaToCoverage=t.alphaToCoverage;this.premultipliedAlpha=t.premultipliedAlpha;this.forceSinglePass=t.forceSinglePass;this.visible=t.visible;this.toneMapped=t.toneMapped;this.userData=JSON.parse(JSON.stringify(t.userData));return this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(t){t===true&&this.version++}onBuild(){console.warn(\"Material: onBuild() has been removed.\")}onBeforeRender(){console.warn(\"Material: onBeforeRender() has been removed.\")}}class MeshBasicMaterial extends Material{constructor(t){super();this.isMeshBasicMaterial=true;this.type=\"MeshBasicMaterial\";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=K;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.specularMap=t.specularMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.combine=t.combine;this.reflectivity=t.reflectivity;this.refractionRatio=t.refractionRatio;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.fog=t.fog;return this}}const pr=_generateTables();function _generateTables(){const t=new ArrayBuffer(4);const e=new Float32Array(t);const n=new Uint32Array(t);const i=new Uint32Array(512);const r=new Uint32Array(512);for(let t=0;t<256;++t){const e=t-127;if(e<-27){i[t]=0;i[t|256]=32768;r[t]=24;r[t|256]=24}else if(e<-14){i[t]=1024>>-e-14;i[t|256]=1024>>-e-14|32768;r[t]=-e-1;r[t|256]=-e-1}else if(e<=15){i[t]=e+15<<10;i[t|256]=e+15<<10|32768;r[t]=13;r[t|256]=13}else if(e<128){i[t]=31744;i[t|256]=64512;r[t]=24;r[t|256]=24}else{i[t]=31744;i[t|256]=64512;r[t]=13;r[t|256]=13}}const s=new Uint32Array(2048);const a=new Uint32Array(64);const o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13;let n=0;while((e&8388608)===0){e<<=1;n-=8388608}e&=-8388609;n+=947912704;s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944;a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)t!==32&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function toHalfFloat(t){Math.abs(t)>65504&&console.warn(\"THREE.DataUtils.toHalfFloat(): Value out of range.\");t=clamp(t,-65504,65504);pr.floatView[0]=t;const e=pr.uint32View[0];const n=e>>23&511;return pr.baseTable[n]+((e&8388607)>>pr.shiftTable[n])}function fromHalfFloat(t){const e=t>>10;pr.uint32View[0]=pr.mantissaTable[pr.offsetTable[e]+(t&1023)]+pr.exponentTable[e];return pr.floatView[0]}const fr={toHalfFloat:toHalfFloat,fromHalfFloat:fromHalfFloat};const mr=new Vector3;const gr=new Vector2;class BufferAttribute{constructor(t,e,n=false){if(Array.isArray(t))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.isBufferAttribute=true;this.name=\"\";this.array=t;this.itemSize=e;this.count=t!==void 0?t.length/e:0;this.normalized=n;this.usage=Cn;this._updateRange={offset:0,count:-1};this.updateRanges=[];this.gpuType=Ut;this.version=0}onUploadCallback(){}set needsUpdate(t){t===true&&this.version++}get updateRange(){warnOnce(\"THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.\");return this._updateRange}setUsage(t){this.usage=t;return this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){this.name=t.name;this.array=new t.array.constructor(t.array);this.itemSize=t.itemSize;this.count=t.count;this.normalized=t.normalized;this.usage=t.usage;this.gpuType=t.gpuType;return this}copyAt(t,e,n){t*=this.itemSize;n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){this.array.set(t);return this}applyMatrix3(t){if(this.itemSize===2)for(let e=0,n=this.count;e<n;e++){gr.fromBufferAttribute(this,e);gr.applyMatrix3(t);this.setXY(e,gr.x,gr.y)}else if(this.itemSize===3)for(let e=0,n=this.count;e<n;e++){mr.fromBufferAttribute(this,e);mr.applyMatrix3(t);this.setXYZ(e,mr.x,mr.y,mr.z)}return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++){mr.fromBufferAttribute(this,e);mr.applyMatrix4(t);this.setXYZ(e,mr.x,mr.y,mr.z)}return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++){mr.fromBufferAttribute(this,e);mr.applyNormalMatrix(t);this.setXYZ(e,mr.x,mr.y,mr.z)}return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++){mr.fromBufferAttribute(this,e);mr.transformDirection(t);this.setXYZ(e,mr.x,mr.y,mr.z)}return this}set(t,e=0){this.array.set(t,e);return this}getComponent(t,e){let n=this.array[t*this.itemSize+e];this.normalized&&(n=denormalize(n,this.array));return n}setComponent(t,e,n){this.normalized&&(n=normalize(n,this.array));this.array[t*this.itemSize+e]=n;return this}getX(t){let e=this.array[t*this.itemSize];this.normalized&&(e=denormalize(e,this.array));return e}setX(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize]=e;return this}getY(t){let e=this.array[t*this.itemSize+1];this.normalized&&(e=denormalize(e,this.array));return e}setY(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+1]=e;return this}getZ(t){let e=this.array[t*this.itemSize+2];this.normalized&&(e=denormalize(e,this.array));return e}setZ(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+2]=e;return this}getW(t){let e=this.array[t*this.itemSize+3];this.normalized&&(e=denormalize(e,this.array));return e}setW(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+3]=e;return this}setXY(t,e,n){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array)}this.array[t+0]=e;this.array[t+1]=n;return this}setXYZ(t,e,n,i){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array)}this.array[t+0]=e;this.array[t+1]=n;this.array[t+2]=i;return this}setXYZW(t,e,n,i,r){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array);r=normalize(r,this.array)}this.array[t+0]=e;this.array[t+1]=n;this.array[t+2]=i;this.array[t+3]=r;return this}onUpload(t){this.onUploadCallback=t;return this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};this.name!==\"\"&&(t.name=this.name);this.usage!==Cn&&(t.usage=this.usage);return t}}class Int8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int8Array(t),e,n)}}class Uint8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class Int16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int16Array(t),e,n)}}class Uint16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Int32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int32Array(t),e,n)}}class Uint32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class Float16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n);this.isFloat16BufferAttribute=true}getX(t){let e=fromHalfFloat(this.array[t*this.itemSize]);this.normalized&&(e=denormalize(e,this.array));return e}setX(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize]=toHalfFloat(e);return this}getY(t){let e=fromHalfFloat(this.array[t*this.itemSize+1]);this.normalized&&(e=denormalize(e,this.array));return e}setY(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+1]=toHalfFloat(e);return this}getZ(t){let e=fromHalfFloat(this.array[t*this.itemSize+2]);this.normalized&&(e=denormalize(e,this.array));return e}setZ(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+2]=toHalfFloat(e);return this}getW(t){let e=fromHalfFloat(this.array[t*this.itemSize+3]);this.normalized&&(e=denormalize(e,this.array));return e}setW(t,e){this.normalized&&(e=normalize(e,this.array));this.array[t*this.itemSize+3]=toHalfFloat(e);return this}setXY(t,e,n){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array)}this.array[t+0]=toHalfFloat(e);this.array[t+1]=toHalfFloat(n);return this}setXYZ(t,e,n,i){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array)}this.array[t+0]=toHalfFloat(e);this.array[t+1]=toHalfFloat(n);this.array[t+2]=toHalfFloat(i);return this}setXYZW(t,e,n,i,r){t*=this.itemSize;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array);r=normalize(r,this.array)}this.array[t+0]=toHalfFloat(e);this.array[t+1]=toHalfFloat(n);this.array[t+2]=toHalfFloat(i);this.array[t+3]=toHalfFloat(r);return this}}class Float32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Float32Array(t),e,n)}}let vr=0;const _r=new Matrix4;const xr=new Object3D;const yr=new Vector3;const Mr=new Box3;const Sr=new Box3;const br=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super();this.isBufferGeometry=true;Object.defineProperty(this,\"id\",{value:vr++});this.uuid=generateUUID();this.name=\"\";this.type=\"BufferGeometry\";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=false;this.groups=[];this.boundingBox=null;this.boundingSphere=null;this.drawRange={start:0,count:Infinity};this.userData={}}getIndex(){return this.index}setIndex(t){Array.isArray(t)?this.index=new(arrayNeedsUint32(t)?Uint32BufferAttribute:Uint16BufferAttribute)(t,1):this.index=t;return this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){this.attributes[t]=e;return this}deleteAttribute(t){delete this.attributes[t];return this}hasAttribute(t){return this.attributes[t]!==void 0}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t;this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;if(e!==void 0){e.applyMatrix4(t);e.needsUpdate=true}const n=this.attributes.normal;if(n!==void 0){const e=(new Matrix3).getNormalMatrix(t);n.applyNormalMatrix(e);n.needsUpdate=true}const i=this.attributes.tangent;if(i!==void 0){i.transformDirection(t);i.needsUpdate=true}this.boundingBox!==null&&this.computeBoundingBox();this.boundingSphere!==null&&this.computeBoundingSphere();return this}applyQuaternion(t){_r.makeRotationFromQuaternion(t);this.applyMatrix4(_r);return this}rotateX(t){_r.makeRotationX(t);this.applyMatrix4(_r);return this}rotateY(t){_r.makeRotationY(t);this.applyMatrix4(_r);return this}rotateZ(t){_r.makeRotationZ(t);this.applyMatrix4(_r);return this}translate(t,e,n){_r.makeTranslation(t,e,n);this.applyMatrix4(_r);return this}scale(t,e,n){_r.makeScale(t,e,n);this.applyMatrix4(_r);return this}lookAt(t){xr.lookAt(t);xr.updateMatrix();this.applyMatrix4(xr.matrix);return this}center(){this.computeBoundingBox();this.boundingBox.getCenter(yr).negate();this.translate(yr.x,yr.y,yr.z);return this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}this.setAttribute(\"position\",new Float32BufferAttribute(e,3));return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const t=this.attributes.position;const e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error(\"THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.\",this);this.boundingBox.set(new Vector3(-Infinity,-Infinity,-Infinity),new Vector3(Infinity,Infinity,Infinity))}else{if(t!==void 0){this.boundingBox.setFromBufferAttribute(t);if(e)for(let t=0,n=e.length;t<n;t++){const n=e[t];Mr.setFromBufferAttribute(n);if(this.morphTargetsRelative){br.addVectors(this.boundingBox.min,Mr.min);this.boundingBox.expandByPoint(br);br.addVectors(this.boundingBox.max,Mr.max);this.boundingBox.expandByPoint(br)}else{this.boundingBox.expandByPoint(Mr.min);this.boundingBox.expandByPoint(Mr.max)}}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere);const t=this.attributes.position;const e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error(\"THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.\",this);this.boundingSphere.set(new Vector3,Infinity)}else if(t){const n=this.boundingSphere.center;Mr.setFromBufferAttribute(t);if(e)for(let t=0,n=e.length;t<n;t++){const n=e[t];Sr.setFromBufferAttribute(n);if(this.morphTargetsRelative){br.addVectors(Mr.min,Sr.min);Mr.expandByPoint(br);br.addVectors(Mr.max,Sr.max);Mr.expandByPoint(br)}else{Mr.expandByPoint(Sr.min);Mr.expandByPoint(Sr.max)}}Mr.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++){br.fromBufferAttribute(t,e);i=Math.max(i,n.distanceToSquared(br))}if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r];const a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++){br.fromBufferAttribute(s,e);if(a){yr.fromBufferAttribute(t,e);br.add(yr)}i=Math.max(i,n.distanceToSquared(br))}}this.boundingSphere.radius=Math.sqrt(i);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index;const e=this.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");return}const n=e.position;const i=e.normal;const r=e.uv;this.hasAttribute(\"tangent\")===false&&this.setAttribute(\"tangent\",new BufferAttribute(new Float32Array(4*n.count),4));const s=this.getAttribute(\"tangent\");const a=[],o=[];for(let t=0;t<n.count;t++){a[t]=new Vector3;o[t]=new Vector3}const l=new Vector3,c=new Vector3,h=new Vector3,u=new Vector2,d=new Vector2,p=new Vector2,f=new Vector3,m=new Vector3;function handleTriangle(t,e,i){l.fromBufferAttribute(n,t);c.fromBufferAttribute(n,e);h.fromBufferAttribute(n,i);u.fromBufferAttribute(r,t);d.fromBufferAttribute(r,e);p.fromBufferAttribute(r,i);c.sub(l);h.sub(l);d.sub(u);p.sub(u);const s=1/(d.x*p.y-p.x*d.y);if(isFinite(s)){f.copy(c).multiplyScalar(p.y).addScaledVector(h,-d.y).multiplyScalar(s);m.copy(h).multiplyScalar(d.x).addScaledVector(c,-p.x).multiplyScalar(s);a[t].add(f);a[e].add(f);a[i].add(f);o[t].add(m);o[e].add(m);o[i].add(m)}}let g=this.groups;g.length===0&&(g=[{start:0,count:t.count}]);for(let e=0,n=g.length;e<n;++e){const n=g[e];const i=n.start;const r=n.count;for(let e=i,n=i+r;e<n;e+=3)handleTriangle(t.getX(e+0),t.getX(e+1),t.getX(e+2))}const _=new Vector3,x=new Vector3;const y=new Vector3,M=new Vector3;function handleVertex(t){y.fromBufferAttribute(i,t);M.copy(y);const e=a[t];_.copy(e);_.sub(y.multiplyScalar(y.dot(e))).normalize();x.crossVectors(M,e);const n=x.dot(o[t]);const r=n<0?-1:1;s.setXYZW(t,_.x,_.y,_.z,r)}for(let e=0,n=g.length;e<n;++e){const n=g[e];const i=n.start;const r=n.count;for(let e=i,n=i+r;e<n;e+=3){handleVertex(t.getX(e+0));handleVertex(t.getX(e+1));handleVertex(t.getX(e+2))}}}computeVertexNormals(){const t=this.index;const e=this.getAttribute(\"position\");if(e!==void 0){let n=this.getAttribute(\"normal\");if(n===void 0){n=new BufferAttribute(new Float32Array(e.count*3),3);this.setAttribute(\"normal\",n)}else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Vector3,r=new Vector3,s=new Vector3;const a=new Vector3,o=new Vector3,l=new Vector3;const c=new Vector3,h=new Vector3;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0);const p=t.getX(u+1);const f=t.getX(u+2);i.fromBufferAttribute(e,d);r.fromBufferAttribute(e,p);s.fromBufferAttribute(e,f);c.subVectors(s,r);h.subVectors(i,r);c.cross(h);a.fromBufferAttribute(n,d);o.fromBufferAttribute(n,p);l.fromBufferAttribute(n,f);a.add(c);o.add(c);l.add(c);n.setXYZ(d,a.x,a.y,a.z);n.setXYZ(p,o.x,o.y,o.z);n.setXYZ(f,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3){i.fromBufferAttribute(e,t+0);r.fromBufferAttribute(e,t+1);s.fromBufferAttribute(e,t+2);c.subVectors(s,r);h.subVectors(i,r);c.cross(h);n.setXYZ(t+0,c.x,c.y,c.z);n.setXYZ(t+1,c.x,c.y,c.z);n.setXYZ(t+2,c.x,c.y,c.z)}this.normalizeNormals();n.needsUpdate=true}}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++){br.fromBufferAttribute(t,e);br.normalize();t.setXYZ(e,br.x,br.y,br.z)}}toNonIndexed(){function convertBufferAttribute(t,e){const n=t.array;const i=t.itemSize;const r=t.normalized;const s=new n.constructor(e.length*i);let a=0,o=0;for(let r=0,l=e.length;r<l;r++){a=t.isInterleavedBufferAttribute?e[r]*t.data.stride+t.offset:e[r]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new BufferAttribute(s,i,r)}if(this.index===null){console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\");return this}const t=new BufferGeometry;const e=this.index.array;const n=this.attributes;for(const i in n){const r=n[i];const s=convertBufferAttribute(r,e);t.setAttribute(i,s)}const i=this.morphAttributes;for(const n in i){const r=[];const s=i[n];for(let t=0,n=s.length;t<n;t++){const n=s[t];const i=convertBufferAttribute(n,e);r.push(i)}t.morphAttributes[n]=r}t.morphTargetsRelative=this.morphTargetsRelative;const r=this.groups;for(let e=0,n=r.length;e<n;e++){const n=r[e];t.addGroup(n.start,n.count,n.materialIndex)}return t}toJSON(){const t={metadata:{version:4.6,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};t.uuid=this.uuid;t.type=this.type;this.name!==\"\"&&(t.name=this.name);Object.keys(this.userData).length>0&&(t.userData=this.userData);if(this.parameters!==void 0){const e=this.parameters;for(const n in e)e[n]!==void 0&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=false;for(const e in this.morphAttributes){const n=this.morphAttributes[e];const s=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];s.push(i.toJSON(t.data))}if(s.length>0){i[e]=s;r=true}}if(r){t.data.morphAttributes=i;t.data.morphTargetsRelative=this.morphTargetsRelative}const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;a!==null&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius});return t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingBox=null;this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;n!==null&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[];const i=r[t];for(let t=0,r=i.length;t<r;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let t=0,e=s.length;t<e;t++){const e=s[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());const o=t.boundingSphere;o!==null&&(this.boundingSphere=o.clone());this.drawRange.start=t.drawRange.start;this.drawRange.count=t.drawRange.count;this.userData=t.userData;return this}dispose(){this.dispatchEvent({type:\"dispose\"})}}const Tr=new Matrix4;const wr=new Ray;const Er=new Sphere;const Ar=new Vector3;const Cr=new Vector3;const Rr=new Vector3;const Pr=new Vector3;const Lr=new Vector3;const Ir=new Vector3;const Ur=new Vector2;const Dr=new Vector2;const Nr=new Vector2;const Br=new Vector3;const Or=new Vector3;const Vr=new Vector3;const Fr=new Vector3;const zr=new Vector3;class Mesh extends Object3D{constructor(t=new BufferGeometry,e=new MeshBasicMaterial){super();this.isMesh=true;this.type=\"Mesh\";this.geometry=t;this.material=e;this.updateMorphTargets()}copy(t,e){super.copy(t,e);t.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=t.morphTargetInfluences.slice());t.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary));this.material=Array.isArray(t.material)?t.material.slice():t.material;this.geometry=t.geometry;return this}updateMorphTargets(){const t=this.geometry;const e=t.morphAttributes;const n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(t!==void 0){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=e}}}}getVertexPosition(t,e){const n=this.geometry;const i=n.attributes.position;const r=n.morphAttributes.position;const s=n.morphTargetsRelative;e.fromBufferAttribute(i,t);const a=this.morphTargetInfluences;if(r&&a){Ir.set(0,0,0);for(let n=0,i=r.length;n<i;n++){const i=a[n];const o=r[n];if(i!==0){Lr.fromBufferAttribute(o,t);s?Ir.addScaledVector(Lr,i):Ir.addScaledVector(Lr.sub(e),i)}}e.add(Ir)}return e}raycast(t,e){const n=this.geometry;const i=this.material;const r=this.matrixWorld;if(i!==void 0){n.boundingSphere===null&&n.computeBoundingSphere();Er.copy(n.boundingSphere);Er.applyMatrix4(r);wr.copy(t.ray).recast(t.near);if(Er.containsPoint(wr.origin)===false){if(wr.intersectSphere(Er,Ar)===null)return;if(wr.origin.distanceToSquared(Ar)>(t.far-t.near)**2)return}Tr.copy(r).invert();wr.copy(t.ray).applyMatrix4(Tr);n.boundingBox!==null&&wr.intersectsBox(n.boundingBox)===false||this._computeIntersections(t,e,wr)}}_computeIntersections(t,e,n){let i;const r=this.geometry;const s=this.material;const a=r.index;const o=r.attributes.position;const l=r.attributes.uv;const c=r.attributes.uv1;const h=r.attributes.normal;const u=r.groups;const d=r.drawRange;if(a!==null)if(Array.isArray(s))for(let r=0,o=u.length;r<o;r++){const o=u[r];const p=s[o.materialIndex];const f=Math.max(o.start,d.start);const m=Math.min(a.count,Math.min(o.start+o.count,d.start+d.count));for(let r=f,s=m;r<s;r+=3){const s=a.getX(r);const u=a.getX(r+1);const d=a.getX(r+2);i=checkGeometryIntersection(this,p,t,n,l,c,h,s,u,d);if(i){i.faceIndex=Math.floor(r/3);i.face.materialIndex=o.materialIndex;e.push(i)}}}else{const r=Math.max(0,d.start);const o=Math.min(a.count,d.start+d.count);for(let u=r,d=o;u<d;u+=3){const r=a.getX(u);const o=a.getX(u+1);const d=a.getX(u+2);i=checkGeometryIntersection(this,s,t,n,l,c,h,r,o,d);if(i){i.faceIndex=Math.floor(u/3);e.push(i)}}}else if(o!==void 0)if(Array.isArray(s))for(let r=0,a=u.length;r<a;r++){const a=u[r];const p=s[a.materialIndex];const f=Math.max(a.start,d.start);const m=Math.min(o.count,Math.min(a.start+a.count,d.start+d.count));for(let r=f,s=m;r<s;r+=3){const s=r;const o=r+1;const u=r+2;i=checkGeometryIntersection(this,p,t,n,l,c,h,s,o,u);if(i){i.faceIndex=Math.floor(r/3);i.face.materialIndex=a.materialIndex;e.push(i)}}}else{const r=Math.max(0,d.start);const a=Math.min(o.count,d.start+d.count);for(let o=r,u=a;o<u;o+=3){const r=o;const a=o+1;const u=o+2;i=checkGeometryIntersection(this,s,t,n,l,c,h,r,a,u);if(i){i.faceIndex=Math.floor(o/3);e.push(i)}}}}}function checkIntersection$1(t,e,n,i,r,s,a,o){let l;l=e.side===d?i.intersectTriangle(a,s,r,true,o):i.intersectTriangle(r,s,a,e.side===u,o);if(l===null)return null;zr.copy(o);zr.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(zr);return c<n.near||c>n.far?null:{distance:c,point:zr.clone(),object:t}}function checkGeometryIntersection(t,e,n,i,r,s,a,o,l,c){t.getVertexPosition(o,Cr);t.getVertexPosition(l,Rr);t.getVertexPosition(c,Pr);const h=checkIntersection$1(t,e,n,i,Cr,Rr,Pr,Fr);if(h){if(r){Ur.fromBufferAttribute(r,o);Dr.fromBufferAttribute(r,l);Nr.fromBufferAttribute(r,c);h.uv=Triangle.getInterpolation(Fr,Cr,Rr,Pr,Ur,Dr,Nr,new Vector2)}if(s){Ur.fromBufferAttribute(s,o);Dr.fromBufferAttribute(s,l);Nr.fromBufferAttribute(s,c);h.uv1=Triangle.getInterpolation(Fr,Cr,Rr,Pr,Ur,Dr,Nr,new Vector2)}if(a){Br.fromBufferAttribute(a,o);Or.fromBufferAttribute(a,l);Vr.fromBufferAttribute(a,c);h.normal=Triangle.getInterpolation(Fr,Cr,Rr,Pr,Br,Or,Vr,new Vector3);h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1)}const t={a:o,b:l,c:c,normal:new Vector3,materialIndex:0};Triangle.getNormal(Cr,Rr,Pr,t.normal);h.face=t}return h}class BoxGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super();this.type=\"BoxGeometry\";this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i);r=Math.floor(r);s=Math.floor(s);const o=[];const l=[];const c=[];const h=[];let u=0;let d=0;buildPlane(\"z\",\"y\",\"x\",-1,-1,n,e,t,s,r,0);buildPlane(\"z\",\"y\",\"x\",1,-1,n,e,-t,s,r,1);buildPlane(\"x\",\"z\",\"y\",1,1,t,n,e,i,s,2);buildPlane(\"x\",\"z\",\"y\",1,-1,t,n,-e,i,s,3);buildPlane(\"x\",\"y\",\"z\",1,-1,t,e,n,i,r,4);buildPlane(\"x\",\"y\",\"z\",-1,-1,t,e,-n,i,r,5);this.setIndex(o);this.setAttribute(\"position\",new Float32BufferAttribute(l,3));this.setAttribute(\"normal\",new Float32BufferAttribute(c,3));this.setAttribute(\"uv\",new Float32BufferAttribute(h,2));function buildPlane(t,e,n,i,r,s,p,f,m,g,_){const x=s/m;const y=p/g;const M=s/2;const S=p/2;const b=f/2;const T=m+1;const w=g+1;let E=0;let A=0;const C=new Vector3;for(let s=0;s<w;s++){const a=s*y-S;for(let o=0;o<T;o++){const u=o*x-M;C[t]=u*i;C[e]=a*r;C[n]=b;l.push(C.x,C.y,C.z);C[t]=0;C[e]=0;C[n]=f>0?1:-1;c.push(C.x,C.y,C.z);h.push(o/m);h.push(1-s/g);E+=1}}for(let t=0;t<g;t++)for(let e=0;e<m;e++){const n=u+e+T*t;const i=u+e+T*(t+1);const r=u+(e+1)+T*(t+1);const s=u+(e+1)+T*t;o.push(n,i,s);o.push(i,r,s);A+=6}a.addGroup(d,A,_);d+=A;u+=E}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new BoxGeometry(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function cloneUniforms(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];if(r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion))if(r.isRenderTargetTexture){console.warn(\"UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().\");e[n][i]=null}else e[n][i]=r.clone();else Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function mergeUniforms(t){const e={};for(let n=0;n<t.length;n++){const i=cloneUniforms(t[n]);for(const t in i)e[t]=i[t]}return e}function cloneUniformsGroups(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function getUnlitUniformColorSpace(t){const e=t.getRenderTarget();return e===null?t.outputColorSpace:e.isXRRenderTarget===true?e.texture.colorSpace:$n.workingColorSpace}const Gr={clone:cloneUniforms,merge:mergeUniforms};var kr=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";var Hr=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";class ShaderMaterial extends Material{constructor(t){super();this.isShaderMaterial=true;this.type=\"ShaderMaterial\";this.defines={};this.uniforms={};this.uniformsGroups=[];this.vertexShader=kr;this.fragmentShader=Hr;this.linewidth=1;this.wireframe=false;this.wireframeLinewidth=1;this.fog=false;this.lights=false;this.clipping=false;this.forceSinglePass=true;this.extensions={clipCullDistance:false,multiDraw:false};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=false;this.glslVersion=null;t!==void 0&&this.setValues(t)}copy(t){super.copy(t);this.fragmentShader=t.fragmentShader;this.vertexShader=t.vertexShader;this.uniforms=cloneUniforms(t.uniforms);this.uniformsGroups=cloneUniformsGroups(t.uniformsGroups);this.defines=Object.assign({},t.defines);this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.fog=t.fog;this.lights=t.lights;this.clipping=t.clipping;this.extensions=Object.assign({},t.extensions);this.glslVersion=t.glslVersion;return this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion;e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n];const r=i.value;r&&r.isTexture?e.uniforms[n]={type:\"t\",value:r.toJSON(t).uuid}:r&&r.isColor?e.uniforms[n]={type:\"c\",value:r.getHex()}:r&&r.isVector2?e.uniforms[n]={type:\"v2\",value:r.toArray()}:r&&r.isVector3?e.uniforms[n]={type:\"v3\",value:r.toArray()}:r&&r.isVector4?e.uniforms[n]={type:\"v4\",value:r.toArray()}:r&&r.isMatrix3?e.uniforms[n]={type:\"m3\",value:r.toArray()}:r&&r.isMatrix4?e.uniforms[n]={type:\"m4\",value:r.toArray()}:e.uniforms[n]={value:r}}Object.keys(this.defines).length>0&&(e.defines=this.defines);e.vertexShader=this.vertexShader;e.fragmentShader=this.fragmentShader;e.lights=this.lights;e.clipping=this.clipping;const n={};for(const t in this.extensions)this.extensions[t]===true&&(n[t]=true);Object.keys(n).length>0&&(e.extensions=n);return e}}class Camera extends Object3D{constructor(){super();this.isCamera=true;this.type=\"Camera\";this.matrixWorldInverse=new Matrix4;this.projectionMatrix=new Matrix4;this.projectionMatrixInverse=new Matrix4;this.coordinateSystem=Fn}copy(t,e){super.copy(t,e);this.matrixWorldInverse.copy(t.matrixWorldInverse);this.projectionMatrix.copy(t.projectionMatrix);this.projectionMatrixInverse.copy(t.projectionMatrixInverse);this.coordinateSystem=t.coordinateSystem;return this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t);this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e);this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const Wr=new Vector3;const Xr=new Vector2;const jr=new Vector2;class PerspectiveCamera extends Camera{constructor(t=50,e=1,n=.1,i=2e3){super();this.isPerspectiveCamera=true;this.type=\"PerspectiveCamera\";this.fov=t;this.zoom=1;this.near=n;this.far=i;this.focus=10;this.aspect=e;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}copy(t,e){super.copy(t,e);this.fov=t.fov;this.zoom=t.zoom;this.near=t.near;this.far=t.far;this.focus=t.focus;this.aspect=t.aspect;this.view=t.view===null?null:Object.assign({},t.view);this.filmGauge=t.filmGauge;this.filmOffset=t.filmOffset;return this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=Wn*2*Math.atan(e);this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(Hn*.5*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return Wn*2*Math.atan(Math.tan(Hn*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){Wr.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse);e.set(Wr.x,Wr.y).multiplyScalar(-t/Wr.z);Wr.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse);n.set(Wr.x,Wr.y).multiplyScalar(-t/Wr.z)}getViewSize(t,e){this.getViewBounds(t,Xr,jr);return e.subVectors(jr,Xr)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e;this.view===null&&(this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=true;this.view.fullWidth=t;this.view.fullHeight=e;this.view.offsetX=n;this.view.offsetY=i;this.view.width=r;this.view.height=s;this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=false);this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(Hn*.5*this.fov)/this.zoom;let n=2*e;let i=this.aspect*n;let r=-.5*i;const s=this.view;if(this.view!==null&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t;e-=s.offsetY*n/a;i*=s.width/t;n*=s.height/a}const a=this.filmOffset;a!==0&&(r+=t*a/this.getFilmWidth());this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far,this.coordinateSystem);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);e.object.fov=this.fov;e.object.zoom=this.zoom;e.object.near=this.near;e.object.far=this.far;e.object.focus=this.focus;e.object.aspect=this.aspect;this.view!==null&&(e.object.view=Object.assign({},this.view));e.object.filmGauge=this.filmGauge;e.object.filmOffset=this.filmOffset;return e}}const qr=-90;const Yr=1;class CubeCamera extends Object3D{constructor(t,e,n){super();this.type=\"CubeCamera\";this.renderTarget=n;this.coordinateSystem=null;this.activeMipmapLevel=0;const i=new PerspectiveCamera(qr,Yr,t,e);i.layers=this.layers;this.add(i);const r=new PerspectiveCamera(qr,Yr,t,e);r.layers=this.layers;this.add(r);const s=new PerspectiveCamera(qr,Yr,t,e);s.layers=this.layers;this.add(s);const a=new PerspectiveCamera(qr,Yr,t,e);a.layers=this.layers;this.add(a);const o=new PerspectiveCamera(qr,Yr,t,e);o.layers=this.layers;this.add(o);const l=new PerspectiveCamera(qr,Yr,t,e);l.layers=this.layers;this.add(l)}updateCoordinateSystem(){const t=this.coordinateSystem;const e=this.children.concat();const[n,i,r,s,a,o]=e;for(const t of e)this.remove(t);if(t===Fn){n.up.set(0,1,0);n.lookAt(1,0,0);i.up.set(0,1,0);i.lookAt(-1,0,0);r.up.set(0,0,-1);r.lookAt(0,1,0);s.up.set(0,0,1);s.lookAt(0,-1,0);a.up.set(0,1,0);a.lookAt(0,0,1);o.up.set(0,1,0);o.lookAt(0,0,-1)}else{if(t!==zn)throw new Error(\"THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: \"+t);n.up.set(0,-1,0);n.lookAt(-1,0,0);i.up.set(0,-1,0);i.lookAt(1,0,0);r.up.set(0,0,1);r.lookAt(0,1,0);s.up.set(0,0,-1);s.lookAt(0,-1,0);a.up.set(0,-1,0);a.lookAt(0,0,1);o.up.set(0,-1,0);o.lookAt(0,0,-1)}for(const t of e){this.add(t);t.updateMatrixWorld()}}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;if(this.coordinateSystem!==t.coordinateSystem){this.coordinateSystem=t.coordinateSystem;this.updateCoordinateSystem()}const[r,s,a,o,l,c]=this.children;const h=t.getRenderTarget();const u=t.getActiveCubeFace();const d=t.getActiveMipmapLevel();const p=t.xr.enabled;t.xr.enabled=false;const f=n.texture.generateMipmaps;n.texture.generateMipmaps=false;t.setRenderTarget(n,0,i);t.render(e,r);t.setRenderTarget(n,1,i);t.render(e,s);t.setRenderTarget(n,2,i);t.render(e,a);t.setRenderTarget(n,3,i);t.render(e,o);t.setRenderTarget(n,4,i);t.render(e,l);n.texture.generateMipmaps=f;t.setRenderTarget(n,5,i);t.render(e,c);t.setRenderTarget(h,u,d);t.xr.enabled=p;n.texture.needsPMREMUpdate=true}}class CubeTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l,c){t=t!==void 0?t:[];e=e!==void 0?e:ct;super(t,e,n,i,r,s,a,o,l,c);this.isCubeTexture=true;this.flipY=false}get images(){return this.image}set images(t){this.image=t}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(t=1,e={}){super(t,t,e);this.isWebGLCubeRenderTarget=true;const n={width:t,height:t,depth:1};const i=[n,n,n,n,n,n];this.texture=new CubeTexture(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace);this.texture.isRenderTargetTexture=true;this.texture.generateMipmaps=e.generateMipmaps!==void 0&&e.generateMipmaps;this.texture.minFilter=e.minFilter!==void 0?e.minFilter:St}fromEquirectangularTexture(t,e){this.texture.type=e.type;this.texture.colorSpace=e.colorSpace;this.texture.generateMipmaps=e.generateMipmaps;this.texture.minFilter=e.minFilter;this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"};const i=new BoxGeometry(5,5,5);const r=new ShaderMaterial({name:\"CubemapFromEquirect\",uniforms:cloneUniforms(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:f});r.uniforms.tEquirect.value=e;const s=new Mesh(i,r);const a=e.minFilter;e.minFilter===wt&&(e.minFilter=St);const o=new CubeCamera(1,10,this);o.update(t,s);e.minFilter=a;s.geometry.dispose();s.material.dispose();return this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++){t.setRenderTarget(this,r);t.clear(e,n,i)}t.setRenderTarget(r)}}const Kr=new Vector3;const Zr=new Vector3;const Jr=new Matrix3;class Plane{constructor(t=new Vector3(1,0,0),e=0){this.isPlane=true;this.normal=t;this.constant=e}set(t,e){this.normal.copy(t);this.constant=e;return this}setComponents(t,e,n,i){this.normal.set(t,e,n);this.constant=i;return this}setFromNormalAndCoplanarPoint(t,e){this.normal.copy(t);this.constant=-e.dot(this.normal);return this}setFromCoplanarPoints(t,e,n){const i=Kr.subVectors(n,e).cross(Zr.subVectors(t,e)).normalize();this.setFromNormalAndCoplanarPoint(i,t);return this}copy(t){this.normal.copy(t.normal);this.constant=t.constant;return this}normalize(){const t=1/this.normal.length();this.normal.multiplyScalar(t);this.constant*=t;return this}negate(){this.constant*=-1;this.normal.negate();return this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(Kr);const i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start);const n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Jr.getNormalMatrix(t);const i=this.coplanarPoint(Kr).applyMatrix4(t);const r=this.normal.applyMatrix3(n).normalize();this.constant=-i.dot(r);return this}translate(t){this.constant-=t.dot(this.normal);return this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Qr=new Sphere;const $r=new Vector3;class Frustum{constructor(t=new Plane,e=new Plane,n=new Plane,i=new Plane,r=new Plane,s=new Plane){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;a[0].copy(t);a[1].copy(e);a[2].copy(n);a[3].copy(i);a[4].copy(r);a[5].copy(s);return this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=Fn){const n=this.planes;const i=t.elements;const r=i[0],s=i[1],a=i[2],o=i[3];const l=i[4],c=i[5],h=i[6],u=i[7];const d=i[8],p=i[9],f=i[10],m=i[11];const g=i[12],_=i[13],x=i[14],y=i[15];n[0].setComponents(o-r,u-l,m-d,y-g).normalize();n[1].setComponents(o+r,u+l,m+d,y+g).normalize();n[2].setComponents(o+s,u+c,m+p,y+_).normalize();n[3].setComponents(o-s,u-c,m-p,y-_).normalize();n[4].setComponents(o-a,u-h,m-f,y-x).normalize();if(e===Fn)n[5].setComponents(o+a,u+h,m+f,y+x).normalize();else{if(e!==zn)throw new Error(\"THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: \"+e);n[5].setComponents(a,h,f,x).normalize()}return this}intersectsObject(t){if(t.boundingSphere!==void 0){t.boundingSphere===null&&t.computeBoundingSphere();Qr.copy(t.boundingSphere).applyMatrix4(t.matrixWorld)}else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere();Qr.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Qr)}intersectsSprite(t){Qr.center.set(0,0,0);Qr.radius=.7071067811865476;Qr.applyMatrix4(t.matrixWorld);return this.intersectsSphere(Qr)}intersectsSphere(t){const e=this.planes;const n=t.center;const i=-t.radius;for(let t=0;t<6;t++){const r=e[t].distanceToPoint(n);if(r<i)return false}return true}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];$r.x=i.normal.x>0?t.max.x:t.min.x;$r.y=i.normal.y>0?t.max.y:t.min.y;$r.z=i.normal.z>0?t.max.z:t.min.z;if(i.distanceToPoint($r)<0)return false}return true}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return false;return true}clone(){return(new this.constructor).copy(this)}}function WebGLAnimation(){let t=null;let e=false;let n=null;let i=null;function onAnimationFrame(e,r){n(e,r);i=t.requestAnimationFrame(onAnimationFrame)}return{start:function(){if(e!==true&&n!==null){i=t.requestAnimationFrame(onAnimationFrame);e=true}},stop:function(){t.cancelAnimationFrame(i);e=false},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function WebGLAttributes(t){const e=new WeakMap;function createBuffer(e,n){const i=e.array;const r=e.usage;const s=i.byteLength;const a=t.createBuffer();t.bindBuffer(n,a);t.bufferData(n,i,r);e.onUploadCallback();let o;if(i instanceof Float32Array)o=t.FLOAT;else if(i instanceof Uint16Array)o=e.isFloat16BufferAttribute?t.HALF_FLOAT:t.UNSIGNED_SHORT;else if(i instanceof Int16Array)o=t.SHORT;else if(i instanceof Uint32Array)o=t.UNSIGNED_INT;else if(i instanceof Int32Array)o=t.INT;else if(i instanceof Int8Array)o=t.BYTE;else if(i instanceof Uint8Array)o=t.UNSIGNED_BYTE;else{if(!(i instanceof Uint8ClampedArray))throw new Error(\"THREE.WebGLAttributes: Unsupported buffer data format: \"+i);o=t.UNSIGNED_BYTE}return{buffer:a,type:o,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version,size:s}}function updateBuffer(e,n,i){const r=n.array;const s=n._updateRange;const a=n.updateRanges;t.bindBuffer(i,e);s.count===-1&&a.length===0&&t.bufferSubData(i,0,r);if(a.length!==0){for(let e=0,n=a.length;e<n;e++){const n=a[e];t.bufferSubData(i,n.start*r.BYTES_PER_ELEMENT,r,n.start,n.count)}n.clearUpdateRanges()}if(s.count!==-1){t.bufferSubData(i,s.offset*r.BYTES_PER_ELEMENT,r,s.offset,s.count);s.count=-1}n.onUploadCallback()}function get(t){t.isInterleavedBufferAttribute&&(t=t.data);return e.get(t)}function remove(n){n.isInterleavedBufferAttribute&&(n=n.data);const i=e.get(n);if(i){t.deleteBuffer(i.buffer);e.delete(n)}}function update(t,n){if(t.isGLBufferAttribute){const n=e.get(t);(!n||n.version<t.version)&&e.set(t,{buffer:t.buffer,type:t.type,bytesPerElement:t.elementSize,version:t.version});return}t.isInterleavedBufferAttribute&&(t=t.data);const i=e.get(t);if(i===void 0)e.set(t,createBuffer(t,n));else if(i.version<t.version){if(i.size!==t.array.byteLength)throw new Error(\"THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.\");updateBuffer(i.buffer,t,n);i.version=t.version}}return{get:get,remove:remove,update:update}}class PlaneGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1){super();this.type=\"PlaneGeometry\";this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2;const s=e/2;const a=Math.floor(n);const o=Math.floor(i);const l=a+1;const c=o+1;const h=t/a;const u=e/o;const d=[];const p=[];const f=[];const m=[];for(let t=0;t<c;t++){const e=t*u-s;for(let n=0;n<l;n++){const i=n*h-r;p.push(i,-e,0);f.push(0,0,1);m.push(n/a);m.push(1-t/o)}}for(let t=0;t<o;t++)for(let e=0;e<a;e++){const n=e+l*t;const i=e+l*(t+1);const r=e+1+l*(t+1);const s=e+1+l*t;d.push(n,i,s);d.push(i,r,s)}this.setIndex(d);this.setAttribute(\"position\",new Float32BufferAttribute(p,3));this.setAttribute(\"normal\",new Float32BufferAttribute(f,3));this.setAttribute(\"uv\",new Float32BufferAttribute(m,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new PlaneGeometry(t.width,t.height,t.widthSegments,t.heightSegments)}}var ts=\"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";var es=\"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";var ns=\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";var is=\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";var rs=\"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";var ss=\"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";var as=\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";var os=\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";var ls=\"#ifdef USE_BATCHING\\n\\t#if ! defined( GL_ANGLE_multi_draw )\\n\\t#define gl_DrawID _gl_DrawID\\n\\tuniform int _gl_DrawID;\\n\\t#endif\\n\\tuniform highp sampler2D batchingTexture;\\n\\tuniform highp usampler2D batchingIdTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n\\tfloat getIndirectIndex( const in int i ) {\\n\\t\\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\\t\\tint x = i % size;\\n\\t\\tint y = i / size;\\n\\t\\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tuniform sampler2D batchingColorTexture;\\n\\tvec3 getBatchingColor( const in float i ) {\\n\\t\\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\\t\\tint j = int( i );\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\\t}\\n#endif\";var cs=\"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";var hs=\"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";var us=\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";var ds=\"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";var ps=\"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660,  0.0556434,\\n\\t\\t-1.5371385,  1.8760108, -0.2040259,\\n\\t\\t-0.4985314,  0.0415560,  1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";var fs=\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";var ms=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var gs=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";var vs=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";var _s=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";var xs=\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";var ys=\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";var Ms=\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";var Ss=\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\\tvColor.xyz *= batchingColor.xyz;\\n#endif\";var bs=\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat luminance( const in vec3 rgb ) {\\n\\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\\n\\treturn dot( weights, rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";var Ts=\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";var ws=\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";var Es=\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";var As=\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";var Cs=\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";var Rs=\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";var Ps=\"gl_FragColor = linearToOutputTexel( gl_FragColor );\";var Ls=\"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn sRGBTransferOETF( value );\\n}\";var Is=\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";var Us=\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";var Ds=\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";var Ns=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";var Bs=\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var Os=\"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";var Vs=\"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";var Fs=\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";var zs=\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";var Gs=\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";var ks=\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";var Hs=\"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";var Ws=\"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";var Xs=\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";var js=\"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";var qs=\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";var Ys=\"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";var Ks=\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";var Zs=\"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";var Js=\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";var Qs=\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\tfloat dispersion;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n    float x2 = x * x;\\n    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(    0, 1,    0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";var $s=\"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";var ta=\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";var ea=\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";var na=\"#if defined( USE_LOGDEPTHBUF )\\n\\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";var ia=\"#if defined( USE_LOGDEPTHBUF )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";var ra=\"#ifdef USE_LOGDEPTHBUF\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";var sa=\"#ifdef USE_LOGDEPTHBUF\\n\\tvFragDepth = 1.0 + gl_Position.w;\\n\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";var aa=\"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";var oa=\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";var la=\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";var ca=\"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";var ha=\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";var ua=\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";var da=\"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";var pa=\"#if defined( USE_MORPHCOLORS )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";var fa=\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";var ma=\"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t#endif\\n\\tuniform sampler2DArray morphTargetsTexture;\\n\\tuniform ivec2 morphTargetsTextureSize;\\n\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t}\\n#endif\";var ga=\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";var va=\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";var _a=\"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";var xa=\"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";var ya=\"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";var Ma=\"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";var Sa=\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";var ba=\"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";var Ta=\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";var wa=\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";var Ea=\"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";var Aa=\"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";var Ca=\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec2 packDepthToRG( in highp float v ) {\\n\\treturn packDepthToRGBA( v ).yx;\\n}\\nfloat unpackRGToDepth( const in highp vec2 v ) {\\n\\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";var Ra=\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";var Pa=\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";var La=\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";var Ia=\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";var Ua=\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";var Da=\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";var Na=\"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\t\\n\\t\\tfloat lightToPositionLength = length( lightToPosition );\\n\\t\\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\\t\\t\\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\t\\tdp += shadowBias;\\n\\t\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\t\\tshadow = (\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n#endif\";var Ba=\"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";var Oa=\"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";var Va=\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";var Fa=\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";var za=\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";var Ga=\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";var ka=\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";var Ha=\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";var Wa=\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";var Xa=\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";var ja=\"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(  1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,  1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tconst float StartCompression = 0.8 - 0.04;\\n\\tconst float Desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min( color.r, min( color.g, color.b ) );\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\\tif ( peak < StartCompression ) return color;\\n\\tfloat d = 1. - StartCompression;\\n\\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";var qa=\"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";var Ya=\"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec4 transmittedLight;\\n\\t\\tvec3 transmittance;\\n\\t\\t#ifdef USE_DISPERSION\\n\\t\\t\\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\\t\\t\\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\\t\\t\\tfor ( int i = 0; i < 3; i ++ ) {\\n\\t\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\\t\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\n\\t\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\n\\t\\t\\t\\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\\t\\t\\t\\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\\t\\t\\t\\ttransmittedLight.a += transmissionSample.a;\\n\\t\\t\\t\\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\\t\\t\\t}\\n\\t\\t\\ttransmittedLight.a /= 3.0;\\n\\t\\t\\n\\t\\t#else\\n\\t\\t\\n\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\t\\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t\\n\\t\\t#endif\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";var Ka=\"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";var Za=\"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";var Ja=\"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";var Qa=\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";const $a=\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";const to=\"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const eo=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\";const no=\"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const io=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\";const ro=\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const so=\"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";const ao=\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <clipping_planes_fragment>\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";const oo=\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\";const lo=\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";const co=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\";const ho=\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n}\";const uo=\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\";const po=\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";const fo=\"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinbase_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const mo=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const go=\"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const vo=\"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_lambert_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_lambert_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const _o=\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\";const xo=\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const yo=\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";const Mo=\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";const So=\"#define PHONG\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const bo=\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const To=\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";const wo=\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\tuniform vec2 anisotropyVector;\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tuniform sampler2D anisotropyMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <iridescence_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_physical_pars_fragment>\\n#include <transmission_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <iridescence_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\\t#endif\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Eo=\"#define TOON\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ao=\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Co=\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include <color_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphcolor_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ro=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";const Po=\"#include <common>\\n#include <batching_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <batching_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphinstance_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Lo=\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <logdepthbuf_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\t#include <logdepthbuf_fragment>\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n}\";const Io=\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\";const Uo=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <alphahash_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <opaque_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <colorspace_fragment>\\n\\t#include <fog_fragment>\\n}\";const Do={alphahash_fragment:ts,alphahash_pars_fragment:es,alphamap_fragment:ns,alphamap_pars_fragment:is,alphatest_fragment:rs,alphatest_pars_fragment:ss,aomap_fragment:as,aomap_pars_fragment:os,batching_pars_vertex:ls,batching_vertex:cs,begin_vertex:hs,beginnormal_vertex:us,bsdfs:ds,iridescence_fragment:ps,bumpmap_pars_fragment:fs,clipping_planes_fragment:ms,clipping_planes_pars_fragment:gs,clipping_planes_pars_vertex:vs,clipping_planes_vertex:_s,color_fragment:xs,color_pars_fragment:ys,color_pars_vertex:Ms,color_vertex:Ss,common:bs,cube_uv_reflection_fragment:Ts,defaultnormal_vertex:ws,displacementmap_pars_vertex:Es,displacementmap_vertex:As,emissivemap_fragment:Cs,emissivemap_pars_fragment:Rs,colorspace_fragment:Ps,colorspace_pars_fragment:Ls,envmap_fragment:Is,envmap_common_pars_fragment:Us,envmap_pars_fragment:Ds,envmap_pars_vertex:Ns,envmap_physical_pars_fragment:js,envmap_vertex:Bs,fog_vertex:Os,fog_pars_vertex:Vs,fog_fragment:Fs,fog_pars_fragment:zs,gradientmap_pars_fragment:Gs,lightmap_pars_fragment:ks,lights_lambert_fragment:Hs,lights_lambert_pars_fragment:Ws,lights_pars_begin:Xs,lights_toon_fragment:qs,lights_toon_pars_fragment:Ys,lights_phong_fragment:Ks,lights_phong_pars_fragment:Zs,lights_physical_fragment:Js,lights_physical_pars_fragment:Qs,lights_fragment_begin:$s,lights_fragment_maps:ta,lights_fragment_end:ea,logdepthbuf_fragment:na,logdepthbuf_pars_fragment:ia,logdepthbuf_pars_vertex:ra,logdepthbuf_vertex:sa,map_fragment:aa,map_pars_fragment:oa,map_particle_fragment:la,map_particle_pars_fragment:ca,metalnessmap_fragment:ha,metalnessmap_pars_fragment:ua,morphinstance_vertex:da,morphcolor_vertex:pa,morphnormal_vertex:fa,morphtarget_pars_vertex:ma,morphtarget_vertex:ga,normal_fragment_begin:va,normal_fragment_maps:_a,normal_pars_fragment:xa,normal_pars_vertex:ya,normal_vertex:Ma,normalmap_pars_fragment:Sa,clearcoat_normal_fragment_begin:ba,clearcoat_normal_fragment_maps:Ta,clearcoat_pars_fragment:wa,iridescence_pars_fragment:Ea,opaque_fragment:Aa,packing:Ca,premultiplied_alpha_fragment:Ra,project_vertex:Pa,dithering_fragment:La,dithering_pars_fragment:Ia,roughnessmap_fragment:Ua,roughnessmap_pars_fragment:Da,shadowmap_pars_fragment:Na,shadowmap_pars_vertex:Ba,shadowmap_vertex:Oa,shadowmask_pars_fragment:Va,skinbase_vertex:Fa,skinning_pars_vertex:za,skinning_vertex:Ga,skinnormal_vertex:ka,specularmap_fragment:Ha,specularmap_pars_fragment:Wa,tonemapping_fragment:Xa,tonemapping_pars_fragment:ja,transmission_fragment:qa,transmission_pars_fragment:Ya,uv_pars_fragment:Ka,uv_pars_vertex:Za,uv_vertex:Ja,worldpos_vertex:Qa,background_vert:$a,background_frag:to,backgroundCube_vert:eo,backgroundCube_frag:no,cube_vert:io,cube_frag:ro,depth_vert:so,depth_frag:ao,distanceRGBA_vert:oo,distanceRGBA_frag:lo,equirect_vert:co,equirect_frag:ho,linedashed_vert:uo,linedashed_frag:po,meshbasic_vert:fo,meshbasic_frag:mo,meshlambert_vert:go,meshlambert_frag:vo,meshmatcap_vert:_o,meshmatcap_frag:xo,meshnormal_vert:yo,meshnormal_frag:Mo,meshphong_vert:So,meshphong_frag:bo,meshphysical_vert:To,meshphysical_frag:wo,meshtoon_vert:Eo,meshtoon_frag:Ao,points_vert:Co,points_frag:Ro,shadow_vert:Po,shadow_frag:Lo,sprite_vert:Io,sprite_frag:Uo};const No={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}};const Bo={basic:{uniforms:mergeUniforms([No.common,No.specularmap,No.envmap,No.aomap,No.lightmap,No.fog]),vertexShader:Do.meshbasic_vert,fragmentShader:Do.meshbasic_frag},lambert:{uniforms:mergeUniforms([No.common,No.specularmap,No.envmap,No.aomap,No.lightmap,No.emissivemap,No.bumpmap,No.normalmap,No.displacementmap,No.fog,No.lights,{emissive:{value:new Color(0)}}]),vertexShader:Do.meshlambert_vert,fragmentShader:Do.meshlambert_frag},phong:{uniforms:mergeUniforms([No.common,No.specularmap,No.envmap,No.aomap,No.lightmap,No.emissivemap,No.bumpmap,No.normalmap,No.displacementmap,No.fog,No.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:Do.meshphong_vert,fragmentShader:Do.meshphong_frag},standard:{uniforms:mergeUniforms([No.common,No.envmap,No.aomap,No.lightmap,No.emissivemap,No.bumpmap,No.normalmap,No.displacementmap,No.roughnessmap,No.metalnessmap,No.fog,No.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Do.meshphysical_vert,fragmentShader:Do.meshphysical_frag},toon:{uniforms:mergeUniforms([No.common,No.aomap,No.lightmap,No.emissivemap,No.bumpmap,No.normalmap,No.displacementmap,No.gradientmap,No.fog,No.lights,{emissive:{value:new Color(0)}}]),vertexShader:Do.meshtoon_vert,fragmentShader:Do.meshtoon_frag},matcap:{uniforms:mergeUniforms([No.common,No.bumpmap,No.normalmap,No.displacementmap,No.fog,{matcap:{value:null}}]),vertexShader:Do.meshmatcap_vert,fragmentShader:Do.meshmatcap_frag},points:{uniforms:mergeUniforms([No.points,No.fog]),vertexShader:Do.points_vert,fragmentShader:Do.points_frag},dashed:{uniforms:mergeUniforms([No.common,No.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Do.linedashed_vert,fragmentShader:Do.linedashed_frag},depth:{uniforms:mergeUniforms([No.common,No.displacementmap]),vertexShader:Do.depth_vert,fragmentShader:Do.depth_frag},normal:{uniforms:mergeUniforms([No.common,No.bumpmap,No.normalmap,No.displacementmap,{opacity:{value:1}}]),vertexShader:Do.meshnormal_vert,fragmentShader:Do.meshnormal_frag},sprite:{uniforms:mergeUniforms([No.sprite,No.fog]),vertexShader:Do.sprite_vert,fragmentShader:Do.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Do.background_vert,fragmentShader:Do.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:Do.backgroundCube_vert,fragmentShader:Do.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Do.cube_vert,fragmentShader:Do.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Do.equirect_vert,fragmentShader:Do.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([No.common,No.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Do.distanceRGBA_vert,fragmentShader:Do.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([No.lights,No.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:Do.shadow_vert,fragmentShader:Do.shadow_frag}};Bo.physical={uniforms:mergeUniforms([Bo.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:Do.meshphysical_vert,fragmentShader:Do.meshphysical_frag};const Oo={r:0,b:0,g:0};const Vo=new Euler;const Fo=new Matrix4;function WebGLBackground(t,e,n,i,r,s,a){const o=new Color(0);let l=s===true?0:1;let c;let h;let p=null;let f=0;let m=null;function getBackground(t){let i=t.isScene===true?t.background:null;if(i&&i.isTexture){const r=t.backgroundBlurriness>0;i=(r?n:e).get(i)}return i}function render(e){let n=false;const r=getBackground(e);if(r===null)setClear(o,l);else if(r&&r.isColor){setClear(r,1);n=true}const s=t.xr.getEnvironmentBlendMode();s===\"additive\"?i.buffers.color.setClear(0,0,0,1,a):s===\"alpha-blend\"&&i.buffers.color.setClear(0,0,0,0,a);if(t.autoClear||n){i.buffers.depth.setTest(true);i.buffers.depth.setMask(true);i.buffers.color.setMask(true);t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil)}}function addToRenderList(e,n){const i=getBackground(n);if(i&&(i.isCubeTexture||i.mapping===pt)){if(h===void 0){h=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:\"BackgroundCubeMaterial\",uniforms:cloneUniforms(Bo.backgroundCube.uniforms),vertexShader:Bo.backgroundCube.vertexShader,fragmentShader:Bo.backgroundCube.fragmentShader,side:d,depthTest:false,depthWrite:false,fog:false}));h.geometry.deleteAttribute(\"normal\");h.geometry.deleteAttribute(\"uv\");h.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)};Object.defineProperty(h.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}});r.update(h)}Vo.copy(n.backgroundRotation);Vo.x*=-1;Vo.y*=-1;Vo.z*=-1;if(i.isCubeTexture&&i.isRenderTargetTexture===false){Vo.y*=-1;Vo.z*=-1}h.material.uniforms.envMap.value=i;h.material.uniforms.flipEnvMap.value=i.isCubeTexture&&i.isRenderTargetTexture===false?-1:1;h.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness;h.material.uniforms.backgroundIntensity.value=n.backgroundIntensity;h.material.uniforms.backgroundRotation.value.setFromMatrix4(Fo.makeRotationFromEuler(Vo));h.material.toneMapped=$n.getTransfer(i.colorSpace)!==tn;if(p!==i||f!==i.version||m!==t.toneMapping){h.material.needsUpdate=true;p=i;f=i.version;m=t.toneMapping}h.layers.enableAll();e.unshift(h,h.geometry,h.material,0,0,null)}else if(i&&i.isTexture){if(c===void 0){c=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:\"BackgroundMaterial\",uniforms:cloneUniforms(Bo.background.uniforms),vertexShader:Bo.background.vertexShader,fragmentShader:Bo.background.fragmentShader,side:u,depthTest:false,depthWrite:false,fog:false}));c.geometry.deleteAttribute(\"normal\");Object.defineProperty(c.material,\"map\",{get:function(){return this.uniforms.t2D.value}});r.update(c)}c.material.uniforms.t2D.value=i;c.material.uniforms.backgroundIntensity.value=n.backgroundIntensity;c.material.toneMapped=$n.getTransfer(i.colorSpace)!==tn;i.matrixAutoUpdate===true&&i.updateMatrix();c.material.uniforms.uvTransform.value.copy(i.matrix);if(p!==i||f!==i.version||m!==t.toneMapping){c.material.needsUpdate=true;p=i;f=i.version;m=t.toneMapping}c.layers.enableAll();e.unshift(c,c.geometry,c.material,0,0,null)}}function setClear(e,n){e.getRGB(Oo,getUnlitUniformColorSpace(t));i.buffers.color.setClear(Oo.r,Oo.g,Oo.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t);l=e;setClear(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t;setClear(o,l)},render:render,addToRenderList:addToRenderList}}function WebGLBindingStates(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS);const i={};const r=createBindingState(null);let s=r;let a=false;function setup(n,i,r,o,l){let c=false;const h=getBindingState(o,r,i);if(s!==h){s=h;bindVertexArrayObject(s.object)}c=needsUpdate(n,o,r,l);c&&saveCache(n,o,r,l);l!==null&&e.update(l,t.ELEMENT_ARRAY_BUFFER);if(c||a){a=false;setupVertexAttributes(n,i,r,o);l!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(l).buffer)}}function createVertexArrayObject(){return t.createVertexArray()}function bindVertexArrayObject(e){return t.bindVertexArray(e)}function deleteVertexArrayObject(e){return t.deleteVertexArray(e)}function getBindingState(t,e,n){const r=n.wireframe===true;let s=i[t.id];if(s===void 0){s={};i[t.id]=s}let a=s[e.id];if(a===void 0){a={};s[e.id]=a}let o=a[r];if(o===void 0){o=createBindingState(createVertexArrayObject());a[r]=o}return o}function createBindingState(t){const e=[];const i=[];const r=[];for(let t=0;t<n;t++){e[t]=0;i[t]=0;r[t]=0}return{geometry:null,program:null,wireframe:false,newAttributes:e,enabledAttributes:i,attributeDivisors:r,object:t,attributes:{},index:null}}function needsUpdate(t,e,n,i){const r=s.attributes;const a=e.attributes;let o=0;const l=n.getAttributes();for(const e in l){const n=l[e];if(n.location>=0){const n=r[e];let i=a[e];if(i===void 0){e===\"instanceMatrix\"&&t.instanceMatrix&&(i=t.instanceMatrix);e===\"instanceColor\"&&t.instanceColor&&(i=t.instanceColor)}if(n===void 0)return true;if(n.attribute!==i)return true;if(i&&n.data!==i.data)return true;o++}}return s.attributesNum!==o||s.index!==i}function saveCache(t,e,n,i){const r={};const a=e.attributes;let o=0;const l=n.getAttributes();for(const e in l){const n=l[e];if(n.location>=0){let n=a[e];if(n===void 0){e===\"instanceMatrix\"&&t.instanceMatrix&&(n=t.instanceMatrix);e===\"instanceColor\"&&t.instanceColor&&(n=t.instanceColor)}const i={};i.attribute=n;n&&n.data&&(i.data=n.data);r[e]=i;o++}}s.attributes=r;s.attributesNum=o;s.index=i}function initAttributes(){const t=s.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function enableAttribute(t){enableAttributeAndDivisor(t,0)}function enableAttributeAndDivisor(e,n){const i=s.newAttributes;const r=s.enabledAttributes;const a=s.attributeDivisors;i[e]=1;if(r[e]===0){t.enableVertexAttribArray(e);r[e]=1}if(a[e]!==n){t.vertexAttribDivisor(e,n);a[e]=n}}function disableUnusedAttributes(){const e=s.newAttributes;const n=s.enabledAttributes;for(let i=0,r=n.length;i<r;i++)if(n[i]!==e[i]){t.disableVertexAttribArray(i);n[i]=0}}function vertexAttribPointer(e,n,i,r,s,a,o){o===true?t.vertexAttribIPointer(e,n,i,s,a):t.vertexAttribPointer(e,n,i,r,s,a)}function setupVertexAttributes(n,i,r,s){initAttributes();const a=s.attributes;const o=r.getAttributes();const l=i.defaultAttributeValues;for(const i in o){const r=o[i];if(r.location>=0){let o=a[i];if(o===void 0){i===\"instanceMatrix\"&&n.instanceMatrix&&(o=n.instanceMatrix);i===\"instanceColor\"&&n.instanceColor&&(o=n.instanceColor)}if(o!==void 0){const i=o.normalized;const a=o.itemSize;const l=e.get(o);if(l===void 0)continue;const c=l.buffer;const h=l.type;const u=l.bytesPerElement;const d=h===t.INT||h===t.UNSIGNED_INT||o.gpuType===Lt;if(o.isInterleavedBufferAttribute){const e=o.data;const l=e.stride;const p=o.offset;if(e.isInstancedInterleavedBuffer){for(let t=0;t<r.locationSize;t++)enableAttributeAndDivisor(r.location+t,e.meshPerAttribute);n.isInstancedMesh!==true&&s._maxInstanceCount===void 0&&(s._maxInstanceCount=e.meshPerAttribute*e.count)}else for(let t=0;t<r.locationSize;t++)enableAttribute(r.location+t);t.bindBuffer(t.ARRAY_BUFFER,c);for(let t=0;t<r.locationSize;t++)vertexAttribPointer(r.location+t,a/r.locationSize,h,i,l*u,(p+a/r.locationSize*t)*u,d)}else{if(o.isInstancedBufferAttribute){for(let t=0;t<r.locationSize;t++)enableAttributeAndDivisor(r.location+t,o.meshPerAttribute);n.isInstancedMesh!==true&&s._maxInstanceCount===void 0&&(s._maxInstanceCount=o.meshPerAttribute*o.count)}else for(let t=0;t<r.locationSize;t++)enableAttribute(r.location+t);t.bindBuffer(t.ARRAY_BUFFER,c);for(let t=0;t<r.locationSize;t++)vertexAttribPointer(r.location+t,a/r.locationSize,h,i,a*u,a/r.locationSize*t*u,d)}}else if(l!==void 0){const e=l[i];if(e!==void 0)switch(e.length){case 2:t.vertexAttrib2fv(r.location,e);break;case 3:t.vertexAttrib3fv(r.location,e);break;case 4:t.vertexAttrib4fv(r.location,e);break;default:t.vertexAttrib1fv(r.location,e)}}}}disableUnusedAttributes()}function dispose(){reset();for(const t in i){const e=i[t];for(const t in e){const n=e[t];for(const t in n){deleteVertexArrayObject(n[t].object);delete n[t]}delete e[t]}delete i[t]}}function releaseStatesOfGeometry(t){if(i[t.id]===void 0)return;const e=i[t.id];for(const t in e){const n=e[t];for(const t in n){deleteVertexArrayObject(n[t].object);delete n[t]}delete e[t]}delete i[t.id]}function releaseStatesOfProgram(t){for(const e in i){const n=i[e];if(n[t.id]===void 0)continue;const r=n[t.id];for(const t in r){deleteVertexArrayObject(r[t].object);delete r[t]}delete n[t.id]}}function reset(){resetDefaultState();a=true;if(s!==r){s=r;bindVertexArrayObject(s.object)}}function resetDefaultState(){r.geometry=null;r.program=null;r.wireframe=false}return{setup:setup,reset:reset,resetDefaultState:resetDefaultState,dispose:dispose,releaseStatesOfGeometry:releaseStatesOfGeometry,releaseStatesOfProgram:releaseStatesOfProgram,initAttributes:initAttributes,enableAttribute:enableAttribute,disableUnusedAttributes:disableUnusedAttributes}}function WebGLBufferRenderer(t,e,n){let i;function setMode(t){i=t}function render(e,r){t.drawArrays(i,e,r);n.update(r,i,1)}function renderInstances(e,r,s){if(s!==0){t.drawArraysInstanced(i,e,r,s);n.update(r,i,s)}}function renderMultiDraw(t,r,s){if(s===0)return;const a=e.get(\"WEBGL_multi_draw\");a.multiDrawArraysWEBGL(i,t,0,r,0,s);let o=0;for(let t=0;t<s;t++)o+=r[t];n.update(o,i,1)}function renderMultiDrawInstances(t,r,s,a){if(s===0)return;const o=e.get(\"WEBGL_multi_draw\");if(o===null)for(let e=0;e<t.length;e++)renderInstances(t[e],r[e],a[e]);else{o.multiDrawArraysInstancedWEBGL(i,t,0,r,0,a,0,s);let e=0;for(let t=0;t<s;t++)e+=r[t];for(let t=0;t<a.length;t++)n.update(e,i,a[t])}}this.setMode=setMode;this.render=render;this.renderInstances=renderInstances;this.renderMultiDraw=renderMultiDraw;this.renderMultiDrawInstances=renderMultiDrawInstances}function WebGLCapabilities(t,e,n,i){let r;function getMaxAnisotropy(){if(r!==void 0)return r;if(e.has(\"EXT_texture_filter_anisotropic\")===true){const n=e.get(\"EXT_texture_filter_anisotropic\");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r}function textureFormatReadable(e){return e===Gt||i.convert(e)===t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT)}function textureTypeReadable(n){const r=n===Dt&&(e.has(\"EXT_color_buffer_half_float\")||e.has(\"EXT_color_buffer_float\"));return!(n!==At&&i.convert(n)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&n!==Ut&&!r)}function getMaxPrecision(e){if(e===\"highp\"){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\"highp\";e=\"mediump\"}return e===\"mediump\"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}let s=n.precision!==void 0?n.precision:\"highp\";const a=getMaxPrecision(s);if(a!==s){console.warn(\"THREE.WebGLRenderer:\",s,\"not supported, using\",a,\"instead.\");s=a}const o=n.logarithmicDepthBuffer===true;const l=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);const c=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS);const h=t.getParameter(t.MAX_TEXTURE_SIZE);const u=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE);const d=t.getParameter(t.MAX_VERTEX_ATTRIBS);const p=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS);const f=t.getParameter(t.MAX_VARYING_VECTORS);const m=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS);const g=c>0;const _=t.getParameter(t.MAX_SAMPLES);return{isWebGL2:true,getMaxAnisotropy:getMaxAnisotropy,getMaxPrecision:getMaxPrecision,textureFormatReadable:textureFormatReadable,textureTypeReadable:textureTypeReadable,precision:s,logarithmicDepthBuffer:o,maxTextures:l,maxVertexTextures:c,maxTextureSize:h,maxCubemapSize:u,maxAttributes:d,maxVertexUniforms:p,maxVaryings:f,maxFragmentUniforms:m,vertexTextures:g,maxSamples:_}}function WebGLClipping(t){const e=this;let n=null,i=0,r=false,s=false;const a=new Plane,o=new Matrix3,l={value:null,needsUpdate:false};this.uniform=l;this.numPlanes=0;this.numIntersection=0;this.init=function(t,e){const n=t.length!==0||e||i!==0||r;r=e;i=t.length;return n};this.beginShadows=function(){s=true;projectPlanes(null)};this.endShadows=function(){s=false};this.setGlobalState=function(t,e){n=projectPlanes(t,e,0)};this.setState=function(e,a,o){const c=e.clippingPlanes,h=e.clipIntersection,u=e.clipShadows;const d=t.get(e);if(!r||c===null||c.length===0||s&&!u)s?projectPlanes(null):resetGlobalState();else{const t=s?0:i,e=t*4;let r=d.clippingState||null;l.value=r;r=projectPlanes(c,a,e,o);for(let t=0;t!==e;++t)r[t]=n[t];d.clippingState=r;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=t}};function resetGlobalState(){if(l.value!==n){l.value=n;l.needsUpdate=i>0}e.numPlanes=i;e.numIntersection=0}function projectPlanes(t,n,i,r){const s=t!==null?t.length:0;let c=null;if(s!==0){c=l.value;if(r!==true||c===null){const e=i+s*4,r=n.matrixWorldInverse;o.getNormalMatrix(r);(c===null||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==s;++e,n+=4){a.copy(t[e]).applyMatrix4(r,o);a.normal.toArray(c,n);c[n+3]=a.constant}}l.value=c;l.needsUpdate=true}e.numPlanes=s;e.numIntersection=0;return c}}function WebGLCubeMaps(t){let e=new WeakMap;function mapTextureMapping(t,e){e===ut?t.mapping=ct:e===dt&&(t.mapping=ht);return t}function get(n){if(n&&n.isTexture){const i=n.mapping;if(i===ut||i===dt){if(e.has(n)){const t=e.get(n).texture;return mapTextureMapping(t,n.mapping)}{const i=n.image;if(i&&i.height>0){const r=new WebGLCubeRenderTarget(i.height);r.fromEquirectangularTexture(t,n);e.set(n,r);n.addEventListener(\"dispose\",onTextureDispose);return mapTextureMapping(r.texture,n.mapping)}return null}}}return n}function onTextureDispose(t){const n=t.target;n.removeEventListener(\"dispose\",onTextureDispose);const i=e.get(n);if(i!==void 0){e.delete(n);i.dispose()}}function dispose(){e=new WeakMap}return{get:get,dispose:dispose}}class OrthographicCamera extends Camera{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super();this.isOrthographicCamera=true;this.type=\"OrthographicCamera\";this.zoom=1;this.view=null;this.left=t;this.right=e;this.top=n;this.bottom=i;this.near=r;this.far=s;this.updateProjectionMatrix()}copy(t,e){super.copy(t,e);this.left=t.left;this.right=t.right;this.top=t.top;this.bottom=t.bottom;this.near=t.near;this.far=t.far;this.zoom=t.zoom;this.view=t.view===null?null:Object.assign({},t.view);return this}setViewOffset(t,e,n,i,r,s){this.view===null&&(this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=true;this.view.fullWidth=t;this.view.fullHeight=e;this.view.offsetX=n;this.view.offsetY=i;this.view.width=r;this.view.height=s;this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=false);this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom);const e=(this.top-this.bottom)/(2*this.zoom);const n=(this.right+this.left)/2;const i=(this.top+this.bottom)/2;let r=n-t;let s=n+t;let a=i+e;let o=i-e;if(this.view!==null&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom;const e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX;s=r+t*this.view.width;a-=e*this.view.offsetY;o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far,this.coordinateSystem);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);e.object.zoom=this.zoom;e.object.left=this.left;e.object.right=this.right;e.object.top=this.top;e.object.bottom=this.bottom;e.object.near=this.near;e.object.far=this.far;this.view!==null&&(e.object.view=Object.assign({},this.view));return e}}const zo=4;const Go=[.125,.215,.35,.446,.526,.582];const ko=20;const Ho=new OrthographicCamera;const Wo=new Color;let Xo=null;let jo=0;let qo=0;let Yo=false;const Ko=(1+Math.sqrt(5))/2;const Zo=1/Ko;const Jo=[new Vector3(-Ko,Zo,0),new Vector3(Ko,Zo,0),new Vector3(-Zo,0,Ko),new Vector3(Zo,0,Ko),new Vector3(0,Ko,-Zo),new Vector3(0,Ko,Zo),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(t){this._renderer=t;this._pingPongRenderTarget=null;this._lodMax=0;this._cubeSize=0;this._lodPlanes=[];this._sizeLods=[];this._sigmas=[];this._blurMaterial=null;this._cubemapMaterial=null;this._equirectMaterial=null;this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Xo=this._renderer.getRenderTarget();jo=this._renderer.getActiveCubeFace();qo=this._renderer.getActiveMipmapLevel();Yo=this._renderer.xr.enabled;this._renderer.xr.enabled=false;this._setSize(256);const r=this._allocateTargets();r.depthBuffer=true;this._sceneToCubeUV(t,n,i,r);e>0&&this._blur(r,0,0,e);this._applyPMREM(r);this._cleanup(r);return r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){if(this._cubemapMaterial===null){this._cubemapMaterial=_getCubemapMaterial();this._compileMaterial(this._cubemapMaterial)}}compileEquirectangularShader(){if(this._equirectMaterial===null){this._equirectMaterial=_getEquirectMaterial();this._compileMaterial(this._equirectMaterial)}}dispose(){this._dispose();this._cubemapMaterial!==null&&this._cubemapMaterial.dispose();this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t));this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose();this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t<this._lodPlanes.length;t++)this._lodPlanes[t].dispose()}_cleanup(t){this._renderer.setRenderTarget(Xo,jo,qo);this._renderer.xr.enabled=Yo;t.scissorTest=false;_setViewport(t,0,0,t.width,t.height)}_fromTexture(t,e){t.mapping===ct||t.mapping===ht?this._setSize(t.image.length===0?16:t.image[0].width||t.image[0].image.width):this._setSize(t.image.width/4);Xo=this._renderer.getRenderTarget();jo=this._renderer.getActiveCubeFace();qo=this._renderer.getActiveMipmapLevel();Yo=this._renderer.xr.enabled;this._renderer.xr.enabled=false;const n=e||this._allocateTargets();this._textureToCubeUV(t,n);this._applyPMREM(n);this._cleanup(n);return n}_allocateTargets(){const t=3*Math.max(this._cubeSize,112);const e=4*this._cubeSize;const n={magFilter:St,minFilter:St,generateMipmaps:false,type:Dt,format:Gt,colorSpace:Ze,depthBuffer:false};const i=_createRenderTarget(t,e,n);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==t||this._pingPongRenderTarget.height!==e){this._pingPongRenderTarget!==null&&this._dispose();this._pingPongRenderTarget=_createRenderTarget(t,e,n);const{_lodMax:i}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_createPlanes(i));this._blurMaterial=_getBlurShader(i,t,e)}return i}_compileMaterial(t){const e=new Mesh(this._lodPlanes[0],t);this._renderer.compile(e,Ho)}_sceneToCubeUV(t,e,n,i){const r=90;const s=1;const a=new PerspectiveCamera(r,s,e,n);const o=[1,-1,1,1,1,1];const l=[1,1,1,-1,-1,-1];const c=this._renderer;const h=c.autoClear;const u=c.toneMapping;c.getClearColor(Wo);c.toneMapping=Q;c.autoClear=false;const p=new MeshBasicMaterial({name:\"PMREM.Background\",side:d,depthWrite:false,depthTest:false});const f=new Mesh(new BoxGeometry,p);let m=false;const g=t.background;if(g){if(g.isColor){p.color.copy(g);t.background=null;m=true}}else{p.color.copy(Wo);m=true}for(let e=0;e<6;e++){const n=e%3;if(n===0){a.up.set(0,o[e],0);a.lookAt(l[e],0,0)}else if(n===1){a.up.set(0,0,o[e]);a.lookAt(0,l[e],0)}else{a.up.set(0,o[e],0);a.lookAt(0,0,l[e])}const r=this._cubeSize;_setViewport(i,n*r,e>2?r:0,r,r);c.setRenderTarget(i);m&&c.render(f,a);c.render(t,a)}f.geometry.dispose();f.material.dispose();c.toneMapping=u;c.autoClear=h;t.background=g}_textureToCubeUV(t,e){const n=this._renderer;const i=t.mapping===ct||t.mapping===ht;if(i){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial());this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===false?-1:1}else this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const r=i?this._cubemapMaterial:this._equirectMaterial;const s=new Mesh(this._lodPlanes[0],r);const a=r.uniforms;a.envMap.value=t;const o=this._cubeSize;_setViewport(e,0,0,3*o,2*o);n.setRenderTarget(e);n.render(s,Ho)}_applyPMREM(t){const e=this._renderer;const n=e.autoClear;e.autoClear=false;const i=this._lodPlanes.length;for(let e=1;e<i;e++){const n=Math.sqrt(this._sigmas[e]*this._sigmas[e]-this._sigmas[e-1]*this._sigmas[e-1]);const r=Jo[(i-e-1)%Jo.length];this._blur(t,e-1,e,n,r)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,\"latitudinal\",r);this._halfBlur(s,t,n,n,i,\"longitudinal\",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer;const l=this._blurMaterial;s!==\"latitudinal\"&&s!==\"longitudinal\"&&console.error(\"blur direction must be either latitudinal or longitudinal!\");const c=3;const h=new Mesh(this._lodPlanes[i],l);const u=l.uniforms;const d=this._sizeLods[n]-1;const p=isFinite(r)?Math.PI/(2*d):2*Math.PI/(2*ko-1);const f=r/p;const m=isFinite(r)?1+Math.floor(c*f):ko;m>ko&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${ko}`);const g=[];let _=0;for(let t=0;t<ko;++t){const e=t/f;const n=Math.exp(-e*e/2);g.push(n);t===0?_+=n:t<m&&(_+=2*n)}for(let t=0;t<g.length;t++)g[t]=g[t]/_;u.envMap.value=t.texture;u.samples.value=m;u.weights.value=g;u.latitudinal.value=s===\"latitudinal\";a&&(u.poleAxis.value=a);const{_lodMax:x}=this;u.dTheta.value=p;u.mipInt.value=x-n;const y=this._sizeLods[i];const M=3*y*(i>x-zo?i-x+zo:0);const S=4*(this._cubeSize-y);_setViewport(e,M,S,3*y,2*y);o.setRenderTarget(e);o.render(h,Ho)}}function _createPlanes(t){const e=[];const n=[];const i=[];let r=t;const s=t-zo+1+Go.length;for(let a=0;a<s;a++){const s=Math.pow(2,r);n.push(s);let o=1/s;a>t-zo?o=Go[a-t+zo-1]:a===0&&(o=0);i.push(o);const l=1/(s-2);const c=-l;const h=1+l;const u=[c,c,h,c,h,h,c,c,h,h,c,h];const d=6;const p=6;const f=3;const m=2;const g=1;const _=new Float32Array(f*p*d);const x=new Float32Array(m*p*d);const y=new Float32Array(g*p*d);for(let t=0;t<d;t++){const e=t%3*2/3-1;const n=t>2?0:-1;const i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];_.set(i,f*p*t);x.set(u,m*p*t);const r=[t,t,t,t,t,t];y.set(r,g*p*t)}const M=new BufferGeometry;M.setAttribute(\"position\",new BufferAttribute(_,f));M.setAttribute(\"uv\",new BufferAttribute(x,m));M.setAttribute(\"faceIndex\",new BufferAttribute(y,g));e.push(M);r>zo&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function _createRenderTarget(t,e,n){const i=new WebGLRenderTarget(t,e,n);i.texture.mapping=pt;i.texture.name=\"PMREM.cubeUv\";i.scissorTest=true;return i}function _setViewport(t,e,n,i,r){t.viewport.set(e,n,i,r);t.scissor.set(e,n,i,r)}function _getBlurShader(t,e,n){const i=new Float32Array(ko);const r=new Vector3(0,1,0);const s=new ShaderMaterial({name:\"SphericalGaussianBlur\",defines:{n:ko,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:false},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:_getCommonVertexShader(),fragmentShader:\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include <cube_uv_reflection_fragment>\\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\t\\t\",blending:f,depthTest:false,depthWrite:false});return s}function _getEquirectMaterial(){return new ShaderMaterial({name:\"EquirectangularToCubeUV\",uniforms:{envMap:{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\n\\t\\t\\t#include <common>\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\\n\\n\\t\\t\\t}\\n\\t\\t\",blending:f,depthTest:false,depthWrite:false})}function _getCubemapMaterial(){return new ShaderMaterial({name:\"CubemapToCubeUV\",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:\"\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tuniform float flipEnvMap;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\\n\\n\\t\\t\\t}\\n\\t\\t\",blending:f,depthTest:false,depthWrite:false})}function _getCommonVertexShader(){return\"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"}function WebGLCubeUVMaps(t){let e=new WeakMap;let n=null;function get(i){if(i&&i.isTexture){const r=i.mapping;const s=r===ut||r===dt;const a=r===ct||r===ht;if(s||a){let r=e.get(i);const o=r!==void 0?r.texture.pmremVersion:0;if(i.isRenderTargetTexture&&i.pmremVersion!==o){n===null&&(n=new PMREMGenerator(t));r=s?n.fromEquirectangular(i,r):n.fromCubemap(i,r);r.texture.pmremVersion=i.pmremVersion;e.set(i,r);return r.texture}if(r!==void 0)return r.texture;{const o=i.image;if(s&&o&&o.height>0||a&&o&&isCubeTextureComplete(o)){n===null&&(n=new PMREMGenerator(t));r=s?n.fromEquirectangular(i):n.fromCubemap(i);r.texture.pmremVersion=i.pmremVersion;e.set(i,r);i.addEventListener(\"dispose\",onTextureDispose);return r.texture}return null}}}return i}function isCubeTextureComplete(t){let e=0;const n=6;for(let i=0;i<n;i++)t[i]!==void 0&&e++;return e===n}function onTextureDispose(t){const n=t.target;n.removeEventListener(\"dispose\",onTextureDispose);const i=e.get(n);if(i!==void 0){e.delete(n);i.dispose()}}function dispose(){e=new WeakMap;if(n!==null){n.dispose();n=null}}return{get:get,dispose:dispose}}function WebGLExtensions(t){const e={};function getExtension(n){if(e[n]!==void 0)return e[n];let i;switch(n){case\"WEBGL_depth_texture\":i=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":i=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":i=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":i=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:i=t.getExtension(n)}e[n]=i;return i}return{has:function(t){return getExtension(t)!==null},init:function(){getExtension(\"EXT_color_buffer_float\");getExtension(\"WEBGL_clip_cull_distance\");getExtension(\"OES_texture_float_linear\");getExtension(\"EXT_color_buffer_half_float\");getExtension(\"WEBGL_multisampled_render_to_texture\");getExtension(\"WEBGL_render_shared_exponent\")},get:function(t){const e=getExtension(t);e===null&&warnOnce(\"THREE.WebGLRenderer: \"+t+\" extension not supported.\");return e}}}function WebGLGeometries(t,e,n,i){const r={};const s=new WeakMap;function onGeometryDispose(t){const a=t.target;a.index!==null&&e.remove(a.index);for(const t in a.attributes)e.remove(a.attributes[t]);for(const t in a.morphAttributes){const n=a.morphAttributes[t];for(let t=0,i=n.length;t<i;t++)e.remove(n[t])}a.removeEventListener(\"dispose\",onGeometryDispose);delete r[a.id];const o=s.get(a);if(o){e.remove(o);s.delete(a)}i.releaseStatesOfGeometry(a);a.isInstancedBufferGeometry===true&&delete a._maxInstanceCount;n.memory.geometries--}function get(t,e){if(r[e.id]===true)return e;e.addEventListener(\"dispose\",onGeometryDispose);r[e.id]=true;n.memory.geometries++;return e}function update(n){const i=n.attributes;for(const n in i)e.update(i[n],t.ARRAY_BUFFER);const r=n.morphAttributes;for(const n in r){const i=r[n];for(let n=0,r=i.length;n<r;n++)e.update(i[n],t.ARRAY_BUFFER)}}function updateWireframeAttribute(t){const n=[];const i=t.index;const r=t.attributes.position;let a=0;if(i!==null){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0];const r=t[e+1];const s=t[e+2];n.push(i,r,r,s,s,i)}}else{if(r===void 0)return;{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0;const i=e+1;const r=e+2;n.push(t,i,i,r,r,t)}}}const o=new(arrayNeedsUint32(n)?Uint32BufferAttribute:Uint16BufferAttribute)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l);s.set(t,o)}function getWireframeAttribute(t){const e=s.get(t);if(e){const n=t.index;n!==null&&e.version<n.version&&updateWireframeAttribute(t)}else updateWireframeAttribute(t);return s.get(t)}return{get:get,update:update,getWireframeAttribute:getWireframeAttribute}}function WebGLIndexedBufferRenderer(t,e,n){let i;function setMode(t){i=t}let r,s;function setIndex(t){r=t.type;s=t.bytesPerElement}function render(e,a){t.drawElements(i,a,r,e*s);n.update(a,i,1)}function renderInstances(e,a,o){if(o!==0){t.drawElementsInstanced(i,a,r,e*s,o);n.update(a,i,o)}}function renderMultiDraw(t,s,a){if(a===0)return;const o=e.get(\"WEBGL_multi_draw\");o.multiDrawElementsWEBGL(i,s,0,r,t,0,a);let l=0;for(let t=0;t<a;t++)l+=s[t];n.update(l,i,1)}function renderMultiDrawInstances(t,a,o,l){if(o===0)return;const c=e.get(\"WEBGL_multi_draw\");if(c===null)for(let e=0;e<t.length;e++)renderInstances(t[e]/s,a[e],l[e]);else{c.multiDrawElementsInstancedWEBGL(i,a,0,r,t,0,l,0,o);let e=0;for(let t=0;t<o;t++)e+=a[t];for(let t=0;t<l.length;t++)n.update(e,i,l[t])}}this.setMode=setMode;this.setIndex=setIndex;this.render=render;this.renderInstances=renderInstances;this.renderMultiDraw=renderMultiDraw;this.renderMultiDrawInstances=renderMultiDrawInstances}function WebGLInfo(t){const e={geometries:0,textures:0};const n={frame:0,calls:0,triangles:0,points:0,lines:0};function update(e,i,r){n.calls++;switch(i){case t.TRIANGLES:n.triangles+=r*(e/3);break;case t.LINES:n.lines+=r*(e/2);break;case t.LINE_STRIP:n.lines+=r*(e-1);break;case t.LINE_LOOP:n.lines+=r*e;break;case t.POINTS:n.points+=r*e;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",i);break}}function reset(){n.calls=0;n.triangles=0;n.points=0;n.lines=0}return{memory:e,render:n,programs:null,autoReset:true,reset:reset,update:update}}function WebGLMorphtargets(t,e,n){const i=new WeakMap;const r=new Vector4;function update(s,a,o){const l=s.morphTargetInfluences;const c=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color;const h=c!==void 0?c.length:0;let u=i.get(a);if(u===void 0||u.count!==h){u!==void 0&&u.texture.dispose();const d=a.morphAttributes.position!==void 0;const p=a.morphAttributes.normal!==void 0;const f=a.morphAttributes.color!==void 0;const m=a.morphAttributes.position||[];const g=a.morphAttributes.normal||[];const _=a.morphAttributes.color||[];let x=0;d===true&&(x=1);p===true&&(x=2);f===true&&(x=3);let y=a.attributes.position.count*x;let M=1;if(y>e.maxTextureSize){M=Math.ceil(y/e.maxTextureSize);y=e.maxTextureSize}const S=new Float32Array(y*M*4*h);const b=new DataArrayTexture(S,y,M,h);b.type=Ut;b.needsUpdate=true;const T=x*4;for(let w=0;w<h;w++){const E=m[w];const A=g[w];const C=_[w];const R=y*M*4*w;for(let P=0;P<E.count;P++){const L=P*T;if(d===true){r.fromBufferAttribute(E,P);S[R+L+0]=r.x;S[R+L+1]=r.y;S[R+L+2]=r.z;S[R+L+3]=0}if(p===true){r.fromBufferAttribute(A,P);S[R+L+4]=r.x;S[R+L+5]=r.y;S[R+L+6]=r.z;S[R+L+7]=0}if(f===true){r.fromBufferAttribute(C,P);S[R+L+8]=r.x;S[R+L+9]=r.y;S[R+L+10]=r.z;S[R+L+11]=C.itemSize===4?r.w:1}}}u={count:h,texture:b,size:new Vector2(y,M)};i.set(a,u);function disposeTexture(){b.dispose();i.delete(a);a.removeEventListener(\"dispose\",disposeTexture)}a.addEventListener(\"dispose\",disposeTexture)}if(s.isInstancedMesh===true&&s.morphTexture!==null)o.getUniforms().setValue(t,\"morphTexture\",s.morphTexture,n);else{let I=0;for(let D=0;D<l.length;D++)I+=l[D];const U=a.morphTargetsRelative?1:1-I;o.getUniforms().setValue(t,\"morphTargetBaseInfluence\",U);o.getUniforms().setValue(t,\"morphTargetInfluences\",l)}o.getUniforms().setValue(t,\"morphTargetsTexture\",u.texture,n);o.getUniforms().setValue(t,\"morphTargetsTextureSize\",u.size)}return{update:update}}function WebGLObjects(t,e,n,i){let r=new WeakMap;function update(s){const a=i.render.frame;const o=s.geometry;const l=e.get(s,o);if(r.get(l)!==a){e.update(l);r.set(l,a)}if(s.isInstancedMesh){s.hasEventListener(\"dispose\",onInstancedMeshDispose)===false&&s.addEventListener(\"dispose\",onInstancedMeshDispose);if(r.get(s)!==a){n.update(s.instanceMatrix,t.ARRAY_BUFFER);s.instanceColor!==null&&n.update(s.instanceColor,t.ARRAY_BUFFER);r.set(s,a)}}if(s.isSkinnedMesh){const t=s.skeleton;if(r.get(t)!==a){t.update();r.set(t,a)}}return l}function dispose(){r=new WeakMap}function onInstancedMeshDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onInstancedMeshDispose);n.remove(e.instanceMatrix);e.instanceColor!==null&&n.remove(e.instanceColor)}return{update:update,dispose:dispose}}class DepthTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l,c=Wt){if(c!==Wt&&c!==Xt)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");n===void 0&&c===Wt&&(n=It);n===void 0&&c===Xt&&(n=Ot);super(null,i,r,s,a,o,c,n,l);this.isDepthTexture=true;this.image={width:t,height:e};this.magFilter=a!==void 0?a:vt;this.minFilter=o!==void 0?o:vt;this.flipY=false;this.generateMipmaps=false;this.compareFunction=null}copy(t){super.copy(t);this.compareFunction=t.compareFunction;return this}toJSON(t){const e=super.toJSON(t);this.compareFunction!==null&&(e.compareFunction=this.compareFunction);return e}}const Qo=new Texture;const $o=new DepthTexture(1,1);const tl=new DataArrayTexture;const el=new Data3DTexture;const nl=new CubeTexture;const il=[];const rl=[];const sl=new Float32Array(16);const al=new Float32Array(9);const ol=new Float32Array(4);function flatten(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=il[r];if(s===void 0){s=new Float32Array(r);il[r]=s}if(e!==0){i.toArray(s,0);for(let i=1,r=0;i!==e;++i){r+=n;t[i].toArray(s,r)}}return s}function arraysEqual(t,e){if(t.length!==e.length)return false;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return false;return true}function copyArray(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function allocTexUnits(t,e){let n=rl[e];if(n===void 0){n=new Int32Array(e);rl[e]=n}for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function setValueV1f(t,e){const n=this.cache;if(n[0]!==e){t.uniform1f(this.addr,e);n[0]=e}}function setValueV2f(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y){t.uniform2f(this.addr,e.x,e.y);n[0]=e.x;n[1]=e.y}}else{if(arraysEqual(n,e))return;t.uniform2fv(this.addr,e);copyArray(n,e)}}function setValueV3f(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z){t.uniform3f(this.addr,e.x,e.y,e.z);n[0]=e.x;n[1]=e.y;n[2]=e.z}}else if(e.r!==void 0){if(n[0]!==e.r||n[1]!==e.g||n[2]!==e.b){t.uniform3f(this.addr,e.r,e.g,e.b);n[0]=e.r;n[1]=e.g;n[2]=e.b}}else{if(arraysEqual(n,e))return;t.uniform3fv(this.addr,e);copyArray(n,e)}}function setValueV4f(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w){t.uniform4f(this.addr,e.x,e.y,e.z,e.w);n[0]=e.x;n[1]=e.y;n[2]=e.z;n[3]=e.w}}else{if(arraysEqual(n,e))return;t.uniform4fv(this.addr,e);copyArray(n,e)}}function setValueM2(t,e){const n=this.cache;const i=e.elements;if(i===void 0){if(arraysEqual(n,e))return;t.uniformMatrix2fv(this.addr,false,e);copyArray(n,e)}else{if(arraysEqual(n,i))return;ol.set(i);t.uniformMatrix2fv(this.addr,false,ol);copyArray(n,i)}}function setValueM3(t,e){const n=this.cache;const i=e.elements;if(i===void 0){if(arraysEqual(n,e))return;t.uniformMatrix3fv(this.addr,false,e);copyArray(n,e)}else{if(arraysEqual(n,i))return;al.set(i);t.uniformMatrix3fv(this.addr,false,al);copyArray(n,i)}}function setValueM4(t,e){const n=this.cache;const i=e.elements;if(i===void 0){if(arraysEqual(n,e))return;t.uniformMatrix4fv(this.addr,false,e);copyArray(n,e)}else{if(arraysEqual(n,i))return;sl.set(i);t.uniformMatrix4fv(this.addr,false,sl);copyArray(n,i)}}function setValueV1i(t,e){const n=this.cache;if(n[0]!==e){t.uniform1i(this.addr,e);n[0]=e}}function setValueV2i(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y){t.uniform2i(this.addr,e.x,e.y);n[0]=e.x;n[1]=e.y}}else{if(arraysEqual(n,e))return;t.uniform2iv(this.addr,e);copyArray(n,e)}}function setValueV3i(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z){t.uniform3i(this.addr,e.x,e.y,e.z);n[0]=e.x;n[1]=e.y;n[2]=e.z}}else{if(arraysEqual(n,e))return;t.uniform3iv(this.addr,e);copyArray(n,e)}}function setValueV4i(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w){t.uniform4i(this.addr,e.x,e.y,e.z,e.w);n[0]=e.x;n[1]=e.y;n[2]=e.z;n[3]=e.w}}else{if(arraysEqual(n,e))return;t.uniform4iv(this.addr,e);copyArray(n,e)}}function setValueV1ui(t,e){const n=this.cache;if(n[0]!==e){t.uniform1ui(this.addr,e);n[0]=e}}function setValueV2ui(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y){t.uniform2ui(this.addr,e.x,e.y);n[0]=e.x;n[1]=e.y}}else{if(arraysEqual(n,e))return;t.uniform2uiv(this.addr,e);copyArray(n,e)}}function setValueV3ui(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z){t.uniform3ui(this.addr,e.x,e.y,e.z);n[0]=e.x;n[1]=e.y;n[2]=e.z}}else{if(arraysEqual(n,e))return;t.uniform3uiv(this.addr,e);copyArray(n,e)}}function setValueV4ui(t,e){const n=this.cache;if(e.x!==void 0){if(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w){t.uniform4ui(this.addr,e.x,e.y,e.z,e.w);n[0]=e.x;n[1]=e.y;n[2]=e.z;n[3]=e.w}}else{if(arraysEqual(n,e))return;t.uniform4uiv(this.addr,e);copyArray(n,e)}}function setValueT1(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}let s;if(this.type===t.SAMPLER_2D_SHADOW){$o.compareFunction=bn;s=$o}else s=Qo;n.setTexture2D(e||s,r)}function setValueT3D1(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}n.setTexture3D(e||el,r)}function setValueT6(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}n.setTextureCube(e||nl,r)}function setValueT2DArray1(t,e,n){const i=this.cache;const r=n.allocateTextureUnit();if(i[0]!==r){t.uniform1i(this.addr,r);i[0]=r}n.setTexture2DArray(e||tl,r)}function getSingularSetter(t){switch(t){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1}}function setValueV1fArray(t,e){t.uniform1fv(this.addr,e)}function setValueV2fArray(t,e){const n=flatten(e,this.size,2);t.uniform2fv(this.addr,n)}function setValueV3fArray(t,e){const n=flatten(e,this.size,3);t.uniform3fv(this.addr,n)}function setValueV4fArray(t,e){const n=flatten(e,this.size,4);t.uniform4fv(this.addr,n)}function setValueM2Array(t,e){const n=flatten(e,this.size,4);t.uniformMatrix2fv(this.addr,false,n)}function setValueM3Array(t,e){const n=flatten(e,this.size,9);t.uniformMatrix3fv(this.addr,false,n)}function setValueM4Array(t,e){const n=flatten(e,this.size,16);t.uniformMatrix4fv(this.addr,false,n)}function setValueV1iArray(t,e){t.uniform1iv(this.addr,e)}function setValueV2iArray(t,e){t.uniform2iv(this.addr,e)}function setValueV3iArray(t,e){t.uniform3iv(this.addr,e)}function setValueV4iArray(t,e){t.uniform4iv(this.addr,e)}function setValueV1uiArray(t,e){t.uniform1uiv(this.addr,e)}function setValueV2uiArray(t,e){t.uniform2uiv(this.addr,e)}function setValueV3uiArray(t,e){t.uniform3uiv(this.addr,e)}function setValueV4uiArray(t,e){t.uniform4uiv(this.addr,e)}function setValueT1Array(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTexture2D(e[t]||Qo,s[t])}function setValueT3DArray(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTexture3D(e[t]||el,s[t])}function setValueT6Array(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTextureCube(e[t]||nl,s[t])}function setValueT2DArrayArray(t,e,n){const i=this.cache;const r=e.length;const s=allocTexUnits(n,r);if(!arraysEqual(i,s)){t.uniform1iv(this.addr,s);copyArray(i,s)}for(let t=0;t!==r;++t)n.setTexture2DArray(e[t]||tl,s[t])}function getPureArraySetter(t){switch(t){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray}}class SingleUniform{constructor(t,e,n){this.id=t;this.addr=n;this.cache=[];this.type=e.type;this.setValue=getSingularSetter(e.type)}}class PureArrayUniform{constructor(t,e,n){this.id=t;this.addr=n;this.cache=[];this.type=e.type;this.size=e.size;this.setValue=getPureArraySetter(e.type)}}class StructuredUniform{constructor(t){this.id=t;this.seq=[];this.map={}}setValue(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}}}const ll=/(\\w+)(\\])?(\\[|\\.)?/g;function addUniform(t,e){t.seq.push(e);t.map[e.id]=e}function parseUniform(t,e,n){const i=t.name,r=i.length;ll.lastIndex=0;while(true){const s=ll.exec(i),a=ll.lastIndex;let o=s[1];const l=s[2]===\"]\",c=s[3];l&&(o|=0);if(c===void 0||c===\"[\"&&a+2===r){addUniform(n,c===void 0?new SingleUniform(o,t,e):new PureArrayUniform(o,t,e));break}{const t=n.map;let e=t[o];if(e===void 0){e=new StructuredUniform(o);addUniform(n,e)}n=e}}}class WebGLUniforms{constructor(t,e){this.seq=[];this.map={};const n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i),r=t.getUniformLocation(e,n.name);parseUniform(n,r,this)}}setValue(t,e,n,i){const r=this.map[e];r!==void 0&&r.setValue(t,n,i)}setOptional(t,e,n){const i=e[n];i!==void 0&&this.setValue(t,n,i)}static upload(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];a.needsUpdate!==false&&s.setValue(t,a.value,i)}}static seqWithValue(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n}}function WebGLShader(t,e,n){const i=t.createShader(e);t.shaderSource(i,n);t.compileShader(i);return i}const cl=37297;let hl=0;function handleSource(t,e){const n=t.split(\"\\n\");const i=[];const r=Math.max(e-6,0);const s=Math.min(e+6,n.length);for(let t=r;t<s;t++){const r=t+1;i.push(`${r===e?\">\":\" \"} ${r}: ${n[t]}`)}return i.join(\"\\n\")}function getEncodingComponents(t){const e=$n.getPrimaries($n.workingColorSpace);const n=$n.getPrimaries(t);let i;e===n?i=\"\":e===nn&&n===en?i=\"LinearDisplayP3ToLinearSRGB\":e===en&&n===nn&&(i=\"LinearSRGBToLinearDisplayP3\");switch(t){case Ze:case Qe:return[i,\"LinearTransferOETF\"];case Ke:case Je:return[i,\"sRGBTransferOETF\"];default:console.warn(\"THREE.WebGLProgram: Unsupported color space:\",t);return[i,\"LinearTransferOETF\"]}}function getShaderErrors(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS);const r=t.getShaderInfoLog(e).trim();if(i&&r===\"\")return\"\";const s=/ERROR: 0:(\\d+)/.exec(r);if(s){const i=parseInt(s[1]);return n.toUpperCase()+\"\\n\\n\"+r+\"\\n\\n\"+handleSource(t.getShaderSource(e),i)}return r}function getTexelEncodingFunction(t,e){const n=getEncodingComponents(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function getToneMappingFunction(t,e){let n;switch(e){case $:n=\"Linear\";break;case tt:n=\"Reinhard\";break;case et:n=\"OptimizedCineon\";break;case nt:n=\"ACESFilmic\";break;case rt:n=\"AgX\";break;case st:n=\"Neutral\";break;case it:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e);n=\"Linear\"}return\"vec3 \"+t+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}function generateVertexExtensions(t){const e=[t.extensionClipCullDistance?\"#extension GL_ANGLE_clip_cull_distance : require\":\"\",t.extensionMultiDraw?\"#extension GL_ANGLE_multi_draw : require\":\"\"];return e.filter(filterEmptyLine).join(\"\\n\")}function generateDefines(t){const e=[];for(const n in t){const i=t[n];i!==false&&e.push(\"#define \"+n+\" \"+i)}return e.join(\"\\n\")}function fetchAttributeLocations(t,e){const n={};const i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r);const s=i.name;let a=1;i.type===t.FLOAT_MAT2&&(a=2);i.type===t.FLOAT_MAT3&&(a=3);i.type===t.FLOAT_MAT4&&(a=4);n[s]={type:i.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}function filterEmptyLine(t){return t!==\"\"}function replaceLightNums(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function replaceClippingPlaneNums(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const ul=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function resolveIncludes(t){return t.replace(ul,includeReplacer)}const dl=new Map;function includeReplacer(t,e){let n=Do[e];if(n===void 0){const t=dl.get(e);if(t===void 0)throw new Error(\"Can not resolve #include <\"+e+\">\");n=Do[t];console.warn('THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.',e,t)}return resolveIncludes(n)}const pl=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function unrollLoops(t){return t.replace(pl,loopReplacer)}function loopReplacer(t,e,n,i){let r=\"\";for(let t=parseInt(e);t<parseInt(n);t++)r+=i.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+t+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,t);return r}function generatePrecision(t){let e=`precision ${t.precision} float;\\n\\tprecision ${t.precision} int;\\n\\tprecision ${t.precision} sampler2D;\\n\\tprecision ${t.precision} samplerCube;\\n\\tprecision ${t.precision} sampler3D;\\n\\tprecision ${t.precision} sampler2DArray;\\n\\tprecision ${t.precision} sampler2DShadow;\\n\\tprecision ${t.precision} samplerCubeShadow;\\n\\tprecision ${t.precision} sampler2DArrayShadow;\\n\\tprecision ${t.precision} isampler2D;\\n\\tprecision ${t.precision} isampler3D;\\n\\tprecision ${t.precision} isamplerCube;\\n\\tprecision ${t.precision} isampler2DArray;\\n\\tprecision ${t.precision} usampler2D;\\n\\tprecision ${t.precision} usampler3D;\\n\\tprecision ${t.precision} usamplerCube;\\n\\tprecision ${t.precision} usampler2DArray;\\n\\t`;t.precision===\"highp\"?e+=\"\\n#define HIGH_PRECISION\":t.precision===\"mediump\"?e+=\"\\n#define MEDIUM_PRECISION\":t.precision===\"lowp\"&&(e+=\"\\n#define LOW_PRECISION\");return e}function generateShadowMapTypeDefine(t){let e=\"SHADOWMAP_TYPE_BASIC\";t.shadowMapType===l?e=\"SHADOWMAP_TYPE_PCF\":t.shadowMapType===c?e=\"SHADOWMAP_TYPE_PCF_SOFT\":t.shadowMapType===h&&(e=\"SHADOWMAP_TYPE_VSM\");return e}function generateEnvMapTypeDefine(t){let e=\"ENVMAP_TYPE_CUBE\";if(t.envMap)switch(t.envMapMode){case ct:case ht:e=\"ENVMAP_TYPE_CUBE\";break;case pt:e=\"ENVMAP_TYPE_CUBE_UV\";break}return e}function generateEnvMapModeDefine(t){let e=\"ENVMAP_MODE_REFLECTION\";if(t.envMap)switch(t.envMapMode){case ht:e=\"ENVMAP_MODE_REFRACTION\";break}return e}function generateEnvMapBlendingDefine(t){let e=\"ENVMAP_BLENDING_NONE\";if(t.envMap)switch(t.combine){case K:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case Z:e=\"ENVMAP_BLENDING_MIX\";break;case J:e=\"ENVMAP_BLENDING_ADD\";break}return e}function generateCubeUVSize(t){const e=t.envMapCubeUVHeight;if(e===null)return null;const n=Math.log2(e)-2;const i=1/e;const r=1/(3*Math.max(Math.pow(2,n),112));return{texelWidth:r,texelHeight:i,maxMip:n}}function WebGLProgram(t,e,n,i){const r=t.getContext();const s=n.defines;let a=n.vertexShader;let o=n.fragmentShader;const l=generateShadowMapTypeDefine(n);const c=generateEnvMapTypeDefine(n);const h=generateEnvMapModeDefine(n);const u=generateEnvMapBlendingDefine(n);const d=generateCubeUVSize(n);const p=generateVertexExtensions(n);const f=generateDefines(s);const m=r.createProgram();let g,_;let x=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";if(n.isRawShaderMaterial){g=[\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f].filter(filterEmptyLine).join(\"\\n\");g.length>0&&(g+=\"\\n\");_=[\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f].filter(filterEmptyLine).join(\"\\n\");_.length>0&&(_+=\"\\n\")}else{g=[generatePrecision(n),\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f,n.extensionClipCullDistance?\"#define USE_CLIP_DISTANCE\":\"\",n.batching?\"#define USE_BATCHING\":\"\",n.batchingColor?\"#define USE_BATCHING_COLOR\":\"\",n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.instancingMorph?\"#define USE_INSTANCING_MORPH\":\"\",n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMapObjectSpace?\"#define USE_NORMALMAP_OBJECTSPACE\":\"\",n.normalMapTangentSpace?\"#define USE_NORMALMAP_TANGENTSPACE\":\"\",n.displacementMap?\"#define USE_DISPLACEMENTMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.anisotropy?\"#define USE_ANISOTROPY\":\"\",n.anisotropyMap?\"#define USE_ANISOTROPYMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.iridescenceMap?\"#define USE_IRIDESCENCEMAP\":\"\",n.iridescenceThicknessMap?\"#define USE_IRIDESCENCE_THICKNESSMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.specularColorMap?\"#define USE_SPECULAR_COLORMAP\":\"\",n.specularIntensityMap?\"#define USE_SPECULAR_INTENSITYMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.alphaHash?\"#define USE_ALPHAHASH\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.sheenColorMap?\"#define USE_SHEEN_COLORMAP\":\"\",n.sheenRoughnessMap?\"#define USE_SHEEN_ROUGHNESSMAP\":\"\",n.mapUv?\"#define MAP_UV \"+n.mapUv:\"\",n.alphaMapUv?\"#define ALPHAMAP_UV \"+n.alphaMapUv:\"\",n.lightMapUv?\"#define LIGHTMAP_UV \"+n.lightMapUv:\"\",n.aoMapUv?\"#define AOMAP_UV \"+n.aoMapUv:\"\",n.emissiveMapUv?\"#define EMISSIVEMAP_UV \"+n.emissiveMapUv:\"\",n.bumpMapUv?\"#define BUMPMAP_UV \"+n.bumpMapUv:\"\",n.normalMapUv?\"#define NORMALMAP_UV \"+n.normalMapUv:\"\",n.displacementMapUv?\"#define DISPLACEMENTMAP_UV \"+n.displacementMapUv:\"\",n.metalnessMapUv?\"#define METALNESSMAP_UV \"+n.metalnessMapUv:\"\",n.roughnessMapUv?\"#define ROUGHNESSMAP_UV \"+n.roughnessMapUv:\"\",n.anisotropyMapUv?\"#define ANISOTROPYMAP_UV \"+n.anisotropyMapUv:\"\",n.clearcoatMapUv?\"#define CLEARCOATMAP_UV \"+n.clearcoatMapUv:\"\",n.clearcoatNormalMapUv?\"#define CLEARCOAT_NORMALMAP_UV \"+n.clearcoatNormalMapUv:\"\",n.clearcoatRoughnessMapUv?\"#define CLEARCOAT_ROUGHNESSMAP_UV \"+n.clearcoatRoughnessMapUv:\"\",n.iridescenceMapUv?\"#define IRIDESCENCEMAP_UV \"+n.iridescenceMapUv:\"\",n.iridescenceThicknessMapUv?\"#define IRIDESCENCE_THICKNESSMAP_UV \"+n.iridescenceThicknessMapUv:\"\",n.sheenColorMapUv?\"#define SHEEN_COLORMAP_UV \"+n.sheenColorMapUv:\"\",n.sheenRoughnessMapUv?\"#define SHEEN_ROUGHNESSMAP_UV \"+n.sheenRoughnessMapUv:\"\",n.specularMapUv?\"#define SPECULARMAP_UV \"+n.specularMapUv:\"\",n.specularColorMapUv?\"#define SPECULAR_COLORMAP_UV \"+n.specularColorMapUv:\"\",n.specularIntensityMapUv?\"#define SPECULAR_INTENSITYMAP_UV \"+n.specularIntensityMapUv:\"\",n.transmissionMapUv?\"#define TRANSMISSIONMAP_UV \"+n.transmissionMapUv:\"\",n.thicknessMapUv?\"#define THICKNESSMAP_UV \"+n.thicknessMapUv:\"\",n.vertexTangents&&n.flatShading===false?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUv1s?\"#define USE_UV1\":\"\",n.vertexUv2s?\"#define USE_UV2\":\"\",n.vertexUv3s?\"#define USE_UV3\":\"\",n.pointsUvs?\"#define USE_POINTS_UV\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&n.flatShading===false?\"#define USE_MORPHNORMALS\":\"\",n.morphColors?\"#define USE_MORPHCOLORS\":\"\",n.morphTargetsCount>0?\"#define MORPHTARGETS_TEXTURE_STRIDE \"+n.morphTextureStride:\"\",n.morphTargetsCount>0?\"#define MORPHTARGETS_COUNT \"+n.morphTargetsCount:\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.numLightProbes>0?\"#define USE_LIGHT_PROBES\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"#ifdef USE_INSTANCING_MORPH\",\"\\tuniform sampler2D morphTexture;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_UV1\",\"\\tattribute vec2 uv1;\",\"#endif\",\"#ifdef USE_UV2\",\"\\tattribute vec2 uv2;\",\"#endif\",\"#ifdef USE_UV3\",\"\\tattribute vec2 uv3;\",\"#endif\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(filterEmptyLine).join(\"\\n\");_=[generatePrecision(n),\"#define SHADER_TYPE \"+n.shaderType,\"#define SHADER_NAME \"+n.shaderName,f,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.alphaToCoverage?\"#define ALPHA_TO_COVERAGE\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+c:\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+u:\"\",d?\"#define CUBEUV_TEXEL_WIDTH \"+d.texelWidth:\"\",d?\"#define CUBEUV_TEXEL_HEIGHT \"+d.texelHeight:\"\",d?\"#define CUBEUV_MAX_MIP \"+d.maxMip+\".0\":\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMapObjectSpace?\"#define USE_NORMALMAP_OBJECTSPACE\":\"\",n.normalMapTangentSpace?\"#define USE_NORMALMAP_TANGENTSPACE\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.anisotropy?\"#define USE_ANISOTROPY\":\"\",n.anisotropyMap?\"#define USE_ANISOTROPYMAP\":\"\",n.clearcoat?\"#define USE_CLEARCOAT\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.dispersion?\"#define USE_DISPERSION\":\"\",n.iridescence?\"#define USE_IRIDESCENCE\":\"\",n.iridescenceMap?\"#define USE_IRIDESCENCEMAP\":\"\",n.iridescenceThicknessMap?\"#define USE_IRIDESCENCE_THICKNESSMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.specularColorMap?\"#define USE_SPECULAR_COLORMAP\":\"\",n.specularIntensityMap?\"#define USE_SPECULAR_INTENSITYMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.alphaTest?\"#define USE_ALPHATEST\":\"\",n.alphaHash?\"#define USE_ALPHAHASH\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.sheenColorMap?\"#define USE_SHEEN_COLORMAP\":\"\",n.sheenRoughnessMap?\"#define USE_SHEEN_ROUGHNESSMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents&&n.flatShading===false?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor||n.batchingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUv1s?\"#define USE_UV1\":\"\",n.vertexUv2s?\"#define USE_UV2\":\"\",n.vertexUv3s?\"#define USE_UV3\":\"\",n.pointsUvs?\"#define USE_POINTS_UV\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.numLightProbes>0?\"#define USE_LIGHT_PROBES\":\"\",n.decodeVideoTexture?\"#define DECODE_VIDEO_TEXTURE\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",n.toneMapping!==Q?\"#define TONE_MAPPING\":\"\",n.toneMapping!==Q?Do.tonemapping_pars_fragment:\"\",n.toneMapping!==Q?getToneMappingFunction(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",n.opaque?\"#define OPAQUE\":\"\",Do.colorspace_pars_fragment,getTexelEncodingFunction(\"linearToOutputTexel\",n.outputColorSpace),n.useDepthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(filterEmptyLine).join(\"\\n\")}a=resolveIncludes(a);a=replaceLightNums(a,n);a=replaceClippingPlaneNums(a,n);o=resolveIncludes(o);o=replaceLightNums(o,n);o=replaceClippingPlaneNums(o,n);a=unrollLoops(a);o=unrollLoops(o);if(n.isRawShaderMaterial!==true){x=\"#version 300 es\\n\";g=[p,\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+g;_=[\"#define varying in\",n.glslVersion===Vn?\"\":\"layout(location = 0) out highp vec4 pc_fragColor;\",n.glslVersion===Vn?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+_}const y=x+g+a;const M=x+_+o;const S=WebGLShader(r,r.VERTEX_SHADER,y);const b=WebGLShader(r,r.FRAGMENT_SHADER,M);r.attachShader(m,S);r.attachShader(m,b);n.index0AttributeName!==void 0?r.bindAttribLocation(m,0,n.index0AttributeName):n.morphTargets===true&&r.bindAttribLocation(m,0,\"position\");r.linkProgram(m);function onFirstUse(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(m).trim();const i=r.getShaderInfoLog(S).trim();const s=r.getShaderInfoLog(b).trim();let a=true;let o=true;if(r.getProgramParameter(m,r.LINK_STATUS)===false){a=false;if(typeof t.debug.onShaderError===\"function\")t.debug.onShaderError(r,m,S,b);else{const t=getShaderErrors(r,S,\"vertex\");const i=getShaderErrors(r,b,\"fragment\");console.error(\"THREE.WebGLProgram: Shader Error \"+r.getError()+\" - VALIDATE_STATUS \"+r.getProgramParameter(m,r.VALIDATE_STATUS)+\"\\n\\nMaterial Name: \"+e.name+\"\\nMaterial Type: \"+e.type+\"\\n\\nProgram Info Log: \"+n+\"\\n\"+t+\"\\n\"+i)}}else n!==\"\"?console.warn(\"THREE.WebGLProgram: Program Info Log:\",n):i!==\"\"&&s!==\"\"||(o=false);o&&(e.diagnostics={runnable:a,programLog:n,vertexShader:{log:i,prefix:g},fragmentShader:{log:s,prefix:_}})}r.deleteShader(S);r.deleteShader(b);T=new WebGLUniforms(r,m);w=fetchAttributeLocations(r,m)}let T;this.getUniforms=function(){T===void 0&&onFirstUse(this);return T};let w;this.getAttributes=function(){w===void 0&&onFirstUse(this);return w};let E=n.rendererExtensionParallelShaderCompile===false;this.isReady=function(){E===false&&(E=r.getProgramParameter(m,cl));return E};this.destroy=function(){i.releaseStatesOfProgram(this);r.deleteProgram(m);this.program=void 0};this.type=n.shaderType;this.name=n.shaderName;this.id=hl++;this.cacheKey=e;this.usedTimes=1;this.program=m;this.vertexShader=S;this.fragmentShader=b;return this}let fl=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map;this.materialCache=new Map}update(t){const e=t.vertexShader;const n=t.fragmentShader;const i=this._getShaderStage(e);const r=this._getShaderStage(n);const s=this._getShaderCacheForMaterial(t);if(s.has(i)===false){s.add(i);i.usedTimes++}if(s.has(r)===false){s.add(r);r.usedTimes++}return this}remove(t){const e=this.materialCache.get(t);for(const t of e){t.usedTimes--;t.usedTimes===0&&this.shaderCache.delete(t.code)}this.materialCache.delete(t);return this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear();this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);if(n===void 0){n=new Set;e.set(t,n)}return n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);if(n===void 0){n=new WebGLShaderStage(t);e.set(t,n)}return n}}class WebGLShaderStage{constructor(t){this.id=fl++;this.code=t;this.usedTimes=0}}function WebGLPrograms(t,e,n,i,r,s,a){const o=new Layers;const l=new WebGLShaderCache;const c=new Set;const h=[];const u=r.logarithmicDepthBuffer;const f=r.vertexTextures;let g=r.precision;const _={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"};function getChannel(t){c.add(t);return t===0?\"uv\":`uv${t}`}function getParameters(s,o,h,x,y){const M=x.fog;const S=y.geometry;const b=s.isMeshStandardMaterial?x.environment:null;const T=(s.isMeshStandardMaterial?n:e).get(s.envMap||b);const w=!T||T.mapping!==pt?null:T.image.height;const E=_[s.type];if(s.precision!==null){g=r.getMaxPrecision(s.precision);g!==s.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",s.precision,\"not supported, using\",g,\"instead.\")}const A=S.morphAttributes.position||S.morphAttributes.normal||S.morphAttributes.color;const C=A!==void 0?A.length:0;let R=0;S.morphAttributes.position!==void 0&&(R=1);S.morphAttributes.normal!==void 0&&(R=2);S.morphAttributes.color!==void 0&&(R=3);let P,L;let I,U;if(E){const t=Bo[E];P=t.vertexShader;L=t.fragmentShader}else{P=s.vertexShader;L=s.fragmentShader;l.update(s);I=l.getVertexShaderID(s);U=l.getFragmentShaderID(s)}const D=t.getRenderTarget();const N=y.isInstancedMesh===true;const B=y.isBatchedMesh===true;const O=!!s.map;const V=!!s.matcap;const F=!!T;const z=!!s.aoMap;const G=!!s.lightMap;const k=!!s.bumpMap;const H=!!s.normalMap;const W=!!s.displacementMap;const X=!!s.emissiveMap;const j=!!s.metalnessMap;const q=!!s.roughnessMap;const Y=s.anisotropy>0;const K=s.clearcoat>0;const Z=s.dispersion>0;const J=s.iridescence>0;const $=s.sheen>0;const tt=s.transmission>0;const et=Y&&!!s.anisotropyMap;const nt=K&&!!s.clearcoatMap;const it=K&&!!s.clearcoatNormalMap;const rt=K&&!!s.clearcoatRoughnessMap;const st=J&&!!s.iridescenceMap;const at=J&&!!s.iridescenceThicknessMap;const ot=$&&!!s.sheenColorMap;const lt=$&&!!s.sheenRoughnessMap;const ct=!!s.specularMap;const ht=!!s.specularColorMap;const ut=!!s.specularIntensityMap;const dt=tt&&!!s.transmissionMap;const ft=tt&&!!s.thicknessMap;const mt=!!s.gradientMap;const gt=!!s.alphaMap;const vt=s.alphaTest>0;const _t=!!s.alphaHash;const xt=!!s.extensions;let yt=Q;s.toneMapped&&(D!==null&&D.isXRRenderTarget!==true||(yt=t.toneMapping));const Mt={shaderID:E,shaderType:s.type,shaderName:s.name,vertexShader:P,fragmentShader:L,defines:s.defines,customVertexShaderID:I,customFragmentShaderID:U,isRawShaderMaterial:s.isRawShaderMaterial===true,glslVersion:s.glslVersion,precision:g,batching:B,batchingColor:B&&y._colorsTexture!==null,instancing:N,instancingColor:N&&y.instanceColor!==null,instancingMorph:N&&y.morphTexture!==null,supportsVertexTextures:f,outputColorSpace:D===null?t.outputColorSpace:D.isXRRenderTarget===true?D.texture.colorSpace:Ze,alphaToCoverage:!!s.alphaToCoverage,map:O,matcap:V,envMap:F,envMapMode:F&&T.mapping,envMapCubeUVHeight:w,aoMap:z,lightMap:G,bumpMap:k,normalMap:H,displacementMap:f&&W,emissiveMap:X,normalMapObjectSpace:H&&s.normalMapType===qe,normalMapTangentSpace:H&&s.normalMapType===je,metalnessMap:j,roughnessMap:q,anisotropy:Y,anisotropyMap:et,clearcoat:K,clearcoatMap:nt,clearcoatNormalMap:it,clearcoatRoughnessMap:rt,dispersion:Z,iridescence:J,iridescenceMap:st,iridescenceThicknessMap:at,sheen:$,sheenColorMap:ot,sheenRoughnessMap:lt,specularMap:ct,specularColorMap:ht,specularIntensityMap:ut,transmission:tt,transmissionMap:dt,thicknessMap:ft,gradientMap:mt,opaque:s.transparent===false&&s.blending===m&&s.alphaToCoverage===false,alphaMap:gt,alphaTest:vt,alphaHash:_t,combine:s.combine,mapUv:O&&getChannel(s.map.channel),aoMapUv:z&&getChannel(s.aoMap.channel),lightMapUv:G&&getChannel(s.lightMap.channel),bumpMapUv:k&&getChannel(s.bumpMap.channel),normalMapUv:H&&getChannel(s.normalMap.channel),displacementMapUv:W&&getChannel(s.displacementMap.channel),emissiveMapUv:X&&getChannel(s.emissiveMap.channel),metalnessMapUv:j&&getChannel(s.metalnessMap.channel),roughnessMapUv:q&&getChannel(s.roughnessMap.channel),anisotropyMapUv:et&&getChannel(s.anisotropyMap.channel),clearcoatMapUv:nt&&getChannel(s.clearcoatMap.channel),clearcoatNormalMapUv:it&&getChannel(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:rt&&getChannel(s.clearcoatRoughnessMap.channel),iridescenceMapUv:st&&getChannel(s.iridescenceMap.channel),iridescenceThicknessMapUv:at&&getChannel(s.iridescenceThicknessMap.channel),sheenColorMapUv:ot&&getChannel(s.sheenColorMap.channel),sheenRoughnessMapUv:lt&&getChannel(s.sheenRoughnessMap.channel),specularMapUv:ct&&getChannel(s.specularMap.channel),specularColorMapUv:ht&&getChannel(s.specularColorMap.channel),specularIntensityMapUv:ut&&getChannel(s.specularIntensityMap.channel),transmissionMapUv:dt&&getChannel(s.transmissionMap.channel),thicknessMapUv:ft&&getChannel(s.thicknessMap.channel),alphaMapUv:gt&&getChannel(s.alphaMap.channel),vertexTangents:!!S.attributes.tangent&&(H||Y),vertexColors:s.vertexColors,vertexAlphas:s.vertexColors===true&&!!S.attributes.color&&S.attributes.color.itemSize===4,pointsUvs:y.isPoints===true&&!!S.attributes.uv&&(O||gt),fog:!!M,useFog:s.fog===true,fogExp2:!!M&&M.isFogExp2,flatShading:s.flatShading===true,sizeAttenuation:s.sizeAttenuation===true,logarithmicDepthBuffer:u,skinning:y.isSkinnedMesh===true,morphTargets:S.morphAttributes.position!==void 0,morphNormals:S.morphAttributes.normal!==void 0,morphColors:S.morphAttributes.color!==void 0,morphTargetsCount:C,morphTextureStride:R,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&h.length>0,shadowMapType:t.shadowMap.type,toneMapping:yt,decodeVideoTexture:O&&s.map.isVideoTexture===true&&$n.getTransfer(s.map.colorSpace)===tn,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===p,flipSided:s.side===d,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionClipCullDistance:xt&&s.extensions.clipCullDistance===true&&i.has(\"WEBGL_clip_cull_distance\"),extensionMultiDraw:(xt&&s.extensions.multiDraw===true||B)&&i.has(\"WEBGL_multi_draw\"),rendererExtensionParallelShaderCompile:i.has(\"KHR_parallel_shader_compile\"),customProgramCacheKey:s.customProgramCacheKey()};Mt.vertexUv1s=c.has(1);Mt.vertexUv2s=c.has(2);Mt.vertexUv3s=c.has(3);c.clear();return Mt}function getProgramCacheKey(e){const n=[];if(e.shaderID)n.push(e.shaderID);else{n.push(e.customVertexShaderID);n.push(e.customFragmentShaderID)}if(e.defines!==void 0)for(const t in e.defines){n.push(t);n.push(e.defines[t])}if(e.isRawShaderMaterial===false){getProgramCacheKeyParameters(n,e);getProgramCacheKeyBooleans(n,e);n.push(t.outputColorSpace)}n.push(e.customProgramCacheKey);return n.join()}function getProgramCacheKeyParameters(t,e){t.push(e.precision);t.push(e.outputColorSpace);t.push(e.envMapMode);t.push(e.envMapCubeUVHeight);t.push(e.mapUv);t.push(e.alphaMapUv);t.push(e.lightMapUv);t.push(e.aoMapUv);t.push(e.bumpMapUv);t.push(e.normalMapUv);t.push(e.displacementMapUv);t.push(e.emissiveMapUv);t.push(e.metalnessMapUv);t.push(e.roughnessMapUv);t.push(e.anisotropyMapUv);t.push(e.clearcoatMapUv);t.push(e.clearcoatNormalMapUv);t.push(e.clearcoatRoughnessMapUv);t.push(e.iridescenceMapUv);t.push(e.iridescenceThicknessMapUv);t.push(e.sheenColorMapUv);t.push(e.sheenRoughnessMapUv);t.push(e.specularMapUv);t.push(e.specularColorMapUv);t.push(e.specularIntensityMapUv);t.push(e.transmissionMapUv);t.push(e.thicknessMapUv);t.push(e.combine);t.push(e.fogExp2);t.push(e.sizeAttenuation);t.push(e.morphTargetsCount);t.push(e.morphAttributeCount);t.push(e.numDirLights);t.push(e.numPointLights);t.push(e.numSpotLights);t.push(e.numSpotLightMaps);t.push(e.numHemiLights);t.push(e.numRectAreaLights);t.push(e.numDirLightShadows);t.push(e.numPointLightShadows);t.push(e.numSpotLightShadows);t.push(e.numSpotLightShadowsWithMaps);t.push(e.numLightProbes);t.push(e.shadowMapType);t.push(e.toneMapping);t.push(e.numClippingPlanes);t.push(e.numClipIntersection);t.push(e.depthPacking)}function getProgramCacheKeyBooleans(t,e){o.disableAll();e.supportsVertexTextures&&o.enable(0);e.instancing&&o.enable(1);e.instancingColor&&o.enable(2);e.instancingMorph&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);e.alphaHash&&o.enable(18);e.batching&&o.enable(19);e.dispersion&&o.enable(20);e.batchingColor&&o.enable(21);t.push(o.mask);o.disableAll();e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.doubleSided&&o.enable(10);e.flipSided&&o.enable(11);e.useDepthPacking&&o.enable(12);e.dithering&&o.enable(13);e.transmission&&o.enable(14);e.sheen&&o.enable(15);e.opaque&&o.enable(16);e.pointsUvs&&o.enable(17);e.decodeVideoTexture&&o.enable(18);e.alphaToCoverage&&o.enable(19);t.push(o.mask)}function getUniforms(t){const e=_[t.type];let n;if(e){const t=Bo[e];n=Gr.clone(t.uniforms)}else n=t.uniforms;return n}function acquireProgram(e,n){let i;for(let t=0,e=h.length;t<e;t++){const e=h[t];if(e.cacheKey===n){i=e;++i.usedTimes;break}}if(i===void 0){i=new WebGLProgram(t,n,e,s);h.push(i)}return i}function releaseProgram(t){if(--t.usedTimes===0){const e=h.indexOf(t);h[e]=h[h.length-1];h.pop();t.destroy()}}function releaseShaderCache(t){l.remove(t)}function dispose(){l.dispose()}return{getParameters:getParameters,getProgramCacheKey:getProgramCacheKey,getUniforms:getUniforms,acquireProgram:acquireProgram,releaseProgram:releaseProgram,releaseShaderCache:releaseShaderCache,programs:h,dispose:dispose}}function WebGLProperties(){let t=new WeakMap;function get(e){let n=t.get(e);if(n===void 0){n={};t.set(e,n)}return n}function remove(e){t.delete(e)}function update(e,n,i){t.get(e)[n]=i}function dispose(){t=new WeakMap}return{get:get,remove:remove,update:update,dispose:dispose}}function painterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function reversePainterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function WebGLRenderList(){const t=[];let e=0;const n=[];const i=[];const r=[];function init(){e=0;n.length=0;i.length=0;r.length=0}function getNextRenderItem(n,i,r,s,a,o){let l=t[e];if(l===void 0){l={id:n.id,object:n,geometry:i,material:r,groupOrder:s,renderOrder:n.renderOrder,z:a,group:o};t[e]=l}else{l.id=n.id;l.object=n;l.geometry=i;l.material=r;l.groupOrder=s;l.renderOrder=n.renderOrder;l.z=a;l.group=o}e++;return l}function push(t,e,s,a,o,l){const c=getNextRenderItem(t,e,s,a,o,l);s.transmission>0?i.push(c):s.transparent===true?r.push(c):n.push(c)}function unshift(t,e,s,a,o,l){const c=getNextRenderItem(t,e,s,a,o,l);s.transmission>0?i.unshift(c):s.transparent===true?r.unshift(c):n.unshift(c)}function sort(t,e){n.length>1&&n.sort(t||painterSortStable);i.length>1&&i.sort(e||reversePainterSortStable);r.length>1&&r.sort(e||reversePainterSortStable)}function finish(){for(let n=e,i=t.length;n<i;n++){const e=t[n];if(e.id===null)break;e.id=null;e.object=null;e.geometry=null;e.material=null;e.group=null}}return{opaque:n,transmissive:i,transparent:r,init:init,push:push,unshift:unshift,finish:finish,sort:sort}}function WebGLRenderLists(){let t=new WeakMap;function get(e,n){const i=t.get(e);let r;if(i===void 0){r=new WebGLRenderList;t.set(e,[r])}else if(n>=i.length){r=new WebGLRenderList;i.push(r)}else r=i[n];return r}function dispose(){t=new WeakMap}return{get:get,dispose:dispose}}function UniformsCache(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={direction:new Vector3,color:new Color};break;case\"SpotLight\":n={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new Vector3,color:new Color,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case\"RectAreaLight\":n={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}t[e.id]=n;return n}}}function ShadowUniformsCache(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case\"SpotLight\":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case\"PointLight\":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}t[e.id]=n;return n}}}let ml=0;function shadowCastingAndTexturingLightsFirst(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function WebGLLights(t){const e=new UniformsCache;const n=ShadowUniformsCache();const i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let t=0;t<9;t++)i.probe.push(new Vector3);const r=new Vector3;const s=new Matrix4;const a=new Matrix4;function setup(r){let s=0,a=0,o=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let l=0;let c=0;let h=0;let u=0;let d=0;let p=0;let f=0;let m=0;let g=0;let _=0;let x=0;r.sort(shadowCastingAndTexturingLightsFirst);for(let t=0,y=r.length;t<y;t++){const y=r[t];const M=y.color;const S=y.intensity;const b=y.distance;const T=y.shadow&&y.shadow.map?y.shadow.map.texture:null;if(y.isAmbientLight){s+=M.r*S;a+=M.g*S;o+=M.b*S}else if(y.isLightProbe){for(let t=0;t<9;t++)i.probe[t].addScaledVector(y.sh.coefficients[t],S);x++}else if(y.isDirectionalLight){const t=e.get(y);t.color.copy(y.color).multiplyScalar(y.intensity);if(y.castShadow){const t=y.shadow;const e=n.get(y);e.shadowIntensity=t.intensity;e.shadowBias=t.bias;e.shadowNormalBias=t.normalBias;e.shadowRadius=t.radius;e.shadowMapSize=t.mapSize;i.directionalShadow[l]=e;i.directionalShadowMap[l]=T;i.directionalShadowMatrix[l]=y.shadow.matrix;p++}i.directional[l]=t;l++}else if(y.isSpotLight){const t=e.get(y);t.position.setFromMatrixPosition(y.matrixWorld);t.color.copy(M).multiplyScalar(S);t.distance=b;t.coneCos=Math.cos(y.angle);t.penumbraCos=Math.cos(y.angle*(1-y.penumbra));t.decay=y.decay;i.spot[h]=t;const r=y.shadow;if(y.map){i.spotLightMap[g]=y.map;g++;r.updateMatrices(y);y.castShadow&&_++}i.spotLightMatrix[h]=r.matrix;if(y.castShadow){const t=n.get(y);t.shadowIntensity=r.intensity;t.shadowBias=r.bias;t.shadowNormalBias=r.normalBias;t.shadowRadius=r.radius;t.shadowMapSize=r.mapSize;i.spotShadow[h]=t;i.spotShadowMap[h]=T;m++}h++}else if(y.isRectAreaLight){const t=e.get(y);t.color.copy(M).multiplyScalar(S);t.halfWidth.set(y.width*.5,0,0);t.halfHeight.set(0,y.height*.5,0);i.rectArea[u]=t;u++}else if(y.isPointLight){const t=e.get(y);t.color.copy(y.color).multiplyScalar(y.intensity);t.distance=y.distance;t.decay=y.decay;if(y.castShadow){const t=y.shadow;const e=n.get(y);e.shadowIntensity=t.intensity;e.shadowBias=t.bias;e.shadowNormalBias=t.normalBias;e.shadowRadius=t.radius;e.shadowMapSize=t.mapSize;e.shadowCameraNear=t.camera.near;e.shadowCameraFar=t.camera.far;i.pointShadow[c]=e;i.pointShadowMap[c]=T;i.pointShadowMatrix[c]=y.shadow.matrix;f++}i.point[c]=t;c++}else if(y.isHemisphereLight){const t=e.get(y);t.skyColor.copy(y.color).multiplyScalar(S);t.groundColor.copy(y.groundColor).multiplyScalar(S);i.hemi[d]=t;d++}}if(u>0)if(t.has(\"OES_texture_float_linear\")===true){i.rectAreaLTC1=No.LTC_FLOAT_1;i.rectAreaLTC2=No.LTC_FLOAT_2}else{i.rectAreaLTC1=No.LTC_HALF_1;i.rectAreaLTC2=No.LTC_HALF_2}i.ambient[0]=s;i.ambient[1]=a;i.ambient[2]=o;const y=i.hash;if(y.directionalLength!==l||y.pointLength!==c||y.spotLength!==h||y.rectAreaLength!==u||y.hemiLength!==d||y.numDirectionalShadows!==p||y.numPointShadows!==f||y.numSpotShadows!==m||y.numSpotMaps!==g||y.numLightProbes!==x){i.directional.length=l;i.spot.length=h;i.rectArea.length=u;i.point.length=c;i.hemi.length=d;i.directionalShadow.length=p;i.directionalShadowMap.length=p;i.pointShadow.length=f;i.pointShadowMap.length=f;i.spotShadow.length=m;i.spotShadowMap.length=m;i.directionalShadowMatrix.length=p;i.pointShadowMatrix.length=f;i.spotLightMatrix.length=m+g-_;i.spotLightMap.length=g;i.numSpotLightShadowsWithMaps=_;i.numLightProbes=x;y.directionalLength=l;y.pointLength=c;y.spotLength=h;y.rectAreaLength=u;y.hemiLength=d;y.numDirectionalShadows=p;y.numPointShadows=f;y.numSpotShadows=m;y.numSpotMaps=g;y.numLightProbes=x;i.version=ml++}}function setupView(t,e){let n=0;let o=0;let l=0;let c=0;let h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld);r.setFromMatrixPosition(d.target.matrixWorld);t.direction.sub(r);t.direction.transformDirection(u);n++}else if(d.isSpotLight){const t=i.spot[l];t.position.setFromMatrixPosition(d.matrixWorld);t.position.applyMatrix4(u);t.direction.setFromMatrixPosition(d.matrixWorld);r.setFromMatrixPosition(d.target.matrixWorld);t.direction.sub(r);t.direction.transformDirection(u);l++}else if(d.isRectAreaLight){const t=i.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld);t.position.applyMatrix4(u);a.identity();s.copy(d.matrixWorld);s.premultiply(u);a.extractRotation(s);t.halfWidth.set(d.width*.5,0,0);t.halfHeight.set(0,d.height*.5,0);t.halfWidth.applyMatrix4(a);t.halfHeight.applyMatrix4(a);c++}else if(d.isPointLight){const t=i.point[o];t.position.setFromMatrixPosition(d.matrixWorld);t.position.applyMatrix4(u);o++}else if(d.isHemisphereLight){const t=i.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld);t.direction.transformDirection(u);h++}}}return{setup:setup,setupView:setupView,state:i}}function WebGLRenderState(t){const e=new WebGLLights(t);const n=[];const i=[];function init(t){r.camera=t;n.length=0;i.length=0}function pushLight(t){n.push(t)}function pushShadow(t){i.push(t)}function setupLights(){e.setup(n)}function setupLightsView(t){e.setupView(n,t)}const r={lightsArray:n,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:init,state:r,setupLights:setupLights,setupLightsView:setupLightsView,pushLight:pushLight,pushShadow:pushShadow}}function WebGLRenderStates(t){let e=new WeakMap;function get(n,i=0){const r=e.get(n);let s;if(r===void 0){s=new WebGLRenderState(t);e.set(n,[s])}else if(i>=r.length){s=new WebGLRenderState(t);r.push(s)}else s=r[i];return s}function dispose(){e=new WeakMap}return{get:get,dispose:dispose}}class MeshDepthMaterial extends Material{constructor(t){super();this.isMeshDepthMaterial=true;this.type=\"MeshDepthMaterial\";this.depthPacking=We;this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.setValues(t)}copy(t){super.copy(t);this.depthPacking=t.depthPacking;this.map=t.map;this.alphaMap=t.alphaMap;this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;return this}}class MeshDistanceMaterial extends Material{constructor(t){super();this.isMeshDistanceMaterial=true;this.type=\"MeshDistanceMaterial\";this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.setValues(t)}copy(t){super.copy(t);this.map=t.map;this.alphaMap=t.alphaMap;this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;return this}}const gl=\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";const vl=\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";function WebGLShadowMap(t,e,n){let i=new Frustum;const r=new Vector2,s=new Vector2,a=new Vector4,o=new MeshDepthMaterial({depthPacking:Xe}),c=new MeshDistanceMaterial,m={},g=n.maxTextureSize;const _={[u]:d,[d]:u,[p]:p};const x=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:gl,fragmentShader:vl});const y=x.clone();y.defines.HORIZONTAL_PASS=1;const M=new BufferGeometry;M.setAttribute(\"position\",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const S=new Mesh(M,x);const b=this;this.enabled=false;this.autoUpdate=true;this.needsUpdate=false;this.type=l;let T=this.type;this.render=function(e,n,o){if(b.enabled===false)return;if(b.autoUpdate===false&&b.needsUpdate===false)return;if(e.length===0)return;const l=t.getRenderTarget();const c=t.getActiveCubeFace();const u=t.getActiveMipmapLevel();const d=t.state;d.setBlending(f);d.buffers.color.setClear(1,1,1,1);d.buffers.depth.setTest(true);d.setScissorTest(false);const p=T!==h&&this.type===h;const m=T===h&&this.type!==h;for(let l=0,c=e.length;l<c;l++){const c=e[l];const u=c.shadow;if(u===void 0){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(u.autoUpdate===false&&u.needsUpdate===false)continue;r.copy(u.mapSize);const f=u.getFrameExtents();r.multiply(f);s.copy(u.mapSize);if(r.x>g||r.y>g){if(r.x>g){s.x=Math.floor(g/f.x);r.x=s.x*f.x;u.mapSize.x=s.x}if(r.y>g){s.y=Math.floor(g/f.y);r.y=s.y*f.y;u.mapSize.y=s.y}}if(u.map===null||p===true||m===true){const t=this.type!==h?{minFilter:vt,magFilter:vt}:{};u.map!==null&&u.map.dispose();u.map=new WebGLRenderTarget(r.x,r.y,t);u.map.texture.name=c.name+\".shadowMap\";u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map);t.clear();const _=u.getViewportCount();for(let t=0;t<_;t++){const e=u.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w);d.viewport(a);u.updateMatrices(c,t);i=u.getFrustum();renderObject(n,o,u.camera,c,this.type)}u.isPointLightShadow!==true&&this.type===h&&VSMPass(u,o);u.needsUpdate=false}T=this.type;b.needsUpdate=false;t.setRenderTarget(l,c,u)};function VSMPass(n,i){const s=e.update(S);if(x.defines.VSM_SAMPLES!==n.blurSamples){x.defines.VSM_SAMPLES=n.blurSamples;y.defines.VSM_SAMPLES=n.blurSamples;x.needsUpdate=true;y.needsUpdate=true}n.mapPass===null&&(n.mapPass=new WebGLRenderTarget(r.x,r.y));x.uniforms.shadow_pass.value=n.map.texture;x.uniforms.resolution.value=n.mapSize;x.uniforms.radius.value=n.radius;t.setRenderTarget(n.mapPass);t.clear();t.renderBufferDirect(i,null,s,x,S,null);y.uniforms.shadow_pass.value=n.mapPass.texture;y.uniforms.resolution.value=n.mapSize;y.uniforms.radius.value=n.radius;t.setRenderTarget(n.map);t.clear();t.renderBufferDirect(i,null,s,y,S,null)}function getDepthMaterial(e,n,i,r){let s=null;const a=i.isPointLight===true?e.customDistanceMaterial:e.customDepthMaterial;if(a!==void 0)s=a;else{s=i.isPointLight===true?c:o;if(t.localClippingEnabled&&n.clipShadows===true&&Array.isArray(n.clippingPlanes)&&n.clippingPlanes.length!==0||n.displacementMap&&n.displacementScale!==0||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=m[t];if(i===void 0){i={};m[t]=i}let r=i[e];if(r===void 0){r=s.clone();i[e]=r;n.addEventListener(\"dispose\",onMaterialDispose)}s=r}}s.visible=n.visible;s.wireframe=n.wireframe;s.side=r===h?n.shadowSide!==null?n.shadowSide:n.side:n.shadowSide!==null?n.shadowSide:_[n.side];s.alphaMap=n.alphaMap;s.alphaTest=n.alphaTest;s.map=n.map;s.clipShadows=n.clipShadows;s.clippingPlanes=n.clippingPlanes;s.clipIntersection=n.clipIntersection;s.displacementMap=n.displacementMap;s.displacementScale=n.displacementScale;s.displacementBias=n.displacementBias;s.wireframeLinewidth=n.wireframeLinewidth;s.linewidth=n.linewidth;if(i.isPointLight===true&&s.isMeshDistanceMaterial===true){const e=t.properties.get(s);e.light=i}return s}function renderObject(n,r,s,a,o){if(n.visible===false)return;const l=n.layers.test(r.layers);if(l&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===h)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n);const l=n.material;if(Array.isArray(l)){const e=i.groups;for(let c=0,h=e.length;c<h;c++){const h=e[c];const u=l[h.materialIndex];if(u&&u.visible){const e=getDepthMaterial(n,u,a,o);n.onBeforeShadow(t,n,r,s,i,e,h);t.renderBufferDirect(s,null,i,e,n,h);n.onAfterShadow(t,n,r,s,i,e,h)}}}else if(l.visible){const e=getDepthMaterial(n,l,a,o);n.onBeforeShadow(t,n,r,s,i,e,null);t.renderBufferDirect(s,null,i,e,n,null);n.onAfterShadow(t,n,r,s,i,e,null)}}const c=n.children;for(let t=0,e=c.length;t<e;t++)renderObject(c[t],r,s,a,o)}function onMaterialDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onMaterialDispose);for(const e in m){const n=m[e];const i=t.target.uuid;if(i in n){const t=n[i];t.dispose();delete n[i]}}}}function WebGLState(t){function ColorBuffer(){let e=false;const n=new Vector4;let i=null;const r=new Vector4(0,0,0,0);return{setMask:function(n){if(i!==n&&!e){t.colorMask(n,n,n,n);i=n}},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){if(o===true){e*=a;i*=a;s*=a}n.set(e,i,s,a);if(r.equals(n)===false){t.clearColor(e,i,s,a);r.copy(n)}},reset:function(){e=false;i=null;r.set(-1,0,0,0)}}}function DepthBuffer(){let e=false;let n=null;let i=null;let r=null;return{setTest:function(e){e?enable(t.DEPTH_TEST):disable(t.DEPTH_TEST)},setMask:function(i){if(n!==i&&!e){t.depthMask(i);n=i}},setFunc:function(e){if(i!==e){switch(e){case G:t.depthFunc(t.NEVER);break;case k:t.depthFunc(t.ALWAYS);break;case H:t.depthFunc(t.LESS);break;case W:t.depthFunc(t.LEQUAL);break;case X:t.depthFunc(t.EQUAL);break;case j:t.depthFunc(t.GEQUAL);break;case q:t.depthFunc(t.GREATER);break;case Y:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}i=e}},setLocked:function(t){e=t},setClear:function(e){if(r!==e){t.clearDepth(e);r=e}},reset:function(){e=false;n=null;i=null;r=null}}}function StencilBuffer(){let e=false;let n=null;let i=null;let r=null;let s=null;let a=null;let o=null;let l=null;let c=null;return{setTest:function(n){e||(n?enable(t.STENCIL_TEST):disable(t.STENCIL_TEST))},setMask:function(i){if(n!==i&&!e){t.stencilMask(i);n=i}},setFunc:function(e,n,a){if(i!==e||r!==n||s!==a){t.stencilFunc(e,n,a);i=e;r=n;s=a}},setOp:function(e,n,i){if(a!==e||o!==n||l!==i){t.stencilOp(e,n,i);a=e;o=n;l=i}},setLocked:function(t){e=t},setClear:function(e){if(c!==e){t.clearStencil(e);c=e}},reset:function(){e=false;n=null;i=null;r=null;s=null;a=null;o=null;l=null;c=null}}}const e=new ColorBuffer;const n=new DepthBuffer;const a=new StencilBuffer;const o=new WeakMap;const l=new WeakMap;let c={};let h={};let u=new WeakMap;let K=[];let Z=null;let J=false;let Q=null;let $=null;let tt=null;let et=null;let nt=null;let it=null;let rt=null;let st=new Color(0,0,0);let at=0;let ot=false;let lt=null;let ct=null;let ht=null;let ut=null;let dt=null;const pt=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let ft=false;let mt=0;const gt=t.getParameter(t.VERSION);if(gt.indexOf(\"WebGL\")!==-1){mt=parseFloat(/^WebGL (\\d)/.exec(gt)[1]);ft=mt>=1}else if(gt.indexOf(\"OpenGL ES\")!==-1){mt=parseFloat(/^OpenGL ES (\\d)/.exec(gt)[1]);ft=mt>=2}let vt=null;let _t={};const xt=t.getParameter(t.SCISSOR_BOX);const yt=t.getParameter(t.VIEWPORT);const Mt=(new Vector4).fromArray(xt);const St=(new Vector4).fromArray(yt);function createTexture(e,n,i,r){const s=new Uint8Array(4);const a=t.createTexture();t.bindTexture(e,a);t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST);t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let a=0;a<i;a++)e===t.TEXTURE_3D||e===t.TEXTURE_2D_ARRAY?t.texImage3D(n,0,t.RGBA,1,1,r,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(n+a,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,s);return a}const bt={};bt[t.TEXTURE_2D]=createTexture(t.TEXTURE_2D,t.TEXTURE_2D,1);bt[t.TEXTURE_CUBE_MAP]=createTexture(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6);bt[t.TEXTURE_2D_ARRAY]=createTexture(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1);bt[t.TEXTURE_3D]=createTexture(t.TEXTURE_3D,t.TEXTURE_3D,1,1);e.setClear(0,0,0,1);n.setClear(1);a.setClear(0);enable(t.DEPTH_TEST);n.setFunc(W);setFlipSided(false);setCullFace(r);enable(t.CULL_FACE);setBlending(f);function enable(e){if(c[e]!==true){t.enable(e);c[e]=true}}function disable(e){if(c[e]!==false){t.disable(e);c[e]=false}}function bindFramebuffer(e,n){if(h[e]!==n){t.bindFramebuffer(e,n);h[e]=n;e===t.DRAW_FRAMEBUFFER&&(h[t.FRAMEBUFFER]=n);e===t.FRAMEBUFFER&&(h[t.DRAW_FRAMEBUFFER]=n);return true}return false}function drawBuffers(e,n){let i=K;let r=false;if(e){i=u.get(n);if(i===void 0){i=[];u.set(n,i)}const s=e.textures;if(i.length!==s.length||i[0]!==t.COLOR_ATTACHMENT0){for(let e=0,n=s.length;e<n;e++)i[e]=t.COLOR_ATTACHMENT0+e;i.length=s.length;r=true}}else if(i[0]!==t.BACK){i[0]=t.BACK;r=true}r&&t.drawBuffers(i)}function useProgram(e){if(Z!==e){t.useProgram(e);Z=e;return true}return false}const Tt={[M]:t.FUNC_ADD,[S]:t.FUNC_SUBTRACT,[b]:t.FUNC_REVERSE_SUBTRACT};Tt[T]=t.MIN;Tt[w]=t.MAX;const wt={[E]:t.ZERO,[A]:t.ONE,[C]:t.SRC_COLOR,[P]:t.SRC_ALPHA,[B]:t.SRC_ALPHA_SATURATE,[D]:t.DST_COLOR,[I]:t.DST_ALPHA,[R]:t.ONE_MINUS_SRC_COLOR,[L]:t.ONE_MINUS_SRC_ALPHA,[N]:t.ONE_MINUS_DST_COLOR,[U]:t.ONE_MINUS_DST_ALPHA,[O]:t.CONSTANT_COLOR,[V]:t.ONE_MINUS_CONSTANT_COLOR,[F]:t.CONSTANT_ALPHA,[z]:t.ONE_MINUS_CONSTANT_ALPHA};function setBlending(e,n,i,r,s,a,o,l,c,h){if(e!==f){if(J===false){enable(t.BLEND);J=true}if(e===y){s=s||n;a=a||i;o=o||r;if(n!==$||s!==nt){t.blendEquationSeparate(Tt[n],Tt[s]);$=n;nt=s}if(i!==tt||r!==et||a!==it||o!==rt){t.blendFuncSeparate(wt[i],wt[r],wt[a],wt[o]);tt=i;et=r;it=a;rt=o}if(l.equals(st)===false||c!==at){t.blendColor(l.r,l.g,l.b,c);st.copy(l);at=c}Q=e;ot=false}else if(e!==Q||h!==ot){if($!==M||nt!==M){t.blendEquation(t.FUNC_ADD);$=M;nt=M}if(h)switch(e){case m:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case g:t.blendFunc(t.ONE,t.ONE);break;case _:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case x:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e);break}else switch(e){case m:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case g:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case _:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case x:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e);break}tt=null;et=null;it=null;rt=null;st.set(0,0,0);at=0;Q=e;ot=h}}else if(J===true){disable(t.BLEND);J=false}}function setMaterial(i,r){i.side===p?disable(t.CULL_FACE):enable(t.CULL_FACE);let s=i.side===d;r&&(s=!s);setFlipSided(s);i.blending===m&&i.transparent===false?setBlending(f):setBlending(i.blending,i.blendEquation,i.blendSrc,i.blendDst,i.blendEquationAlpha,i.blendSrcAlpha,i.blendDstAlpha,i.blendColor,i.blendAlpha,i.premultipliedAlpha);n.setFunc(i.depthFunc);n.setTest(i.depthTest);n.setMask(i.depthWrite);e.setMask(i.colorWrite);const o=i.stencilWrite;a.setTest(o);if(o){a.setMask(i.stencilWriteMask);a.setFunc(i.stencilFunc,i.stencilRef,i.stencilFuncMask);a.setOp(i.stencilFail,i.stencilZFail,i.stencilZPass)}setPolygonOffset(i.polygonOffset,i.polygonOffsetFactor,i.polygonOffsetUnits);i.alphaToCoverage===true?enable(t.SAMPLE_ALPHA_TO_COVERAGE):disable(t.SAMPLE_ALPHA_TO_COVERAGE)}function setFlipSided(e){if(lt!==e){e?t.frontFace(t.CW):t.frontFace(t.CCW);lt=e}}function setCullFace(e){if(e!==i){enable(t.CULL_FACE);e!==ct&&(e===r?t.cullFace(t.BACK):e===s?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))}else disable(t.CULL_FACE);ct=e}function setLineWidth(e){if(e!==ht){ft&&t.lineWidth(e);ht=e}}function setPolygonOffset(e,n,i){if(e){enable(t.POLYGON_OFFSET_FILL);if(ut!==n||dt!==i){t.polygonOffset(n,i);ut=n;dt=i}}else disable(t.POLYGON_OFFSET_FILL)}function setScissorTest(e){e?enable(t.SCISSOR_TEST):disable(t.SCISSOR_TEST)}function activeTexture(e){e===void 0&&(e=t.TEXTURE0+pt-1);if(vt!==e){t.activeTexture(e);vt=e}}function bindTexture(e,n,i){i===void 0&&(i=vt===null?t.TEXTURE0+pt-1:vt);let r=_t[i];if(r===void 0){r={type:void 0,texture:void 0};_t[i]=r}if(r.type!==e||r.texture!==n){if(vt!==i){t.activeTexture(i);vt=i}t.bindTexture(e,n||bt[e]);r.type=e;r.texture=n}}function unbindTexture(){const e=_t[vt];if(e!==void 0&&e.type!==void 0){t.bindTexture(e.type,null);e.type=void 0;e.texture=void 0}}function compressedTexImage2D(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function compressedTexImage3D(){try{t.compressedTexImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texSubImage2D(){try{t.texSubImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texSubImage3D(){try{t.texSubImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function compressedTexSubImage2D(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function compressedTexSubImage3D(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texStorage2D(){try{t.texStorage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texStorage3D(){try{t.texStorage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texImage2D(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function texImage3D(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}}function scissor(e){if(Mt.equals(e)===false){t.scissor(e.x,e.y,e.z,e.w);Mt.copy(e)}}function viewport(e){if(St.equals(e)===false){t.viewport(e.x,e.y,e.z,e.w);St.copy(e)}}function updateUBOMapping(e,n){let i=l.get(n);if(i===void 0){i=new WeakMap;l.set(n,i)}let r=i.get(e);if(r===void 0){r=t.getUniformBlockIndex(n,e.name);i.set(e,r)}}function uniformBlockBinding(e,n){const i=l.get(n);const r=i.get(e);if(o.get(n)!==r){t.uniformBlockBinding(n,r,e.__bindingPointIndex);o.set(n,r)}}function reset(){t.disable(t.BLEND);t.disable(t.CULL_FACE);t.disable(t.DEPTH_TEST);t.disable(t.POLYGON_OFFSET_FILL);t.disable(t.SCISSOR_TEST);t.disable(t.STENCIL_TEST);t.disable(t.SAMPLE_ALPHA_TO_COVERAGE);t.blendEquation(t.FUNC_ADD);t.blendFunc(t.ONE,t.ZERO);t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO);t.blendColor(0,0,0,0);t.colorMask(true,true,true,true);t.clearColor(0,0,0,0);t.depthMask(true);t.depthFunc(t.LESS);t.clearDepth(1);t.stencilMask(4294967295);t.stencilFunc(t.ALWAYS,0,4294967295);t.stencilOp(t.KEEP,t.KEEP,t.KEEP);t.clearStencil(0);t.cullFace(t.BACK);t.frontFace(t.CCW);t.polygonOffset(0,0);t.activeTexture(t.TEXTURE0);t.bindFramebuffer(t.FRAMEBUFFER,null);t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null);t.bindFramebuffer(t.READ_FRAMEBUFFER,null);t.useProgram(null);t.lineWidth(1);t.scissor(0,0,t.canvas.width,t.canvas.height);t.viewport(0,0,t.canvas.width,t.canvas.height);c={};vt=null;_t={};h={};u=new WeakMap;K=[];Z=null;J=false;Q=null;$=null;tt=null;et=null;nt=null;it=null;rt=null;st=new Color(0,0,0);at=0;ot=false;lt=null;ct=null;ht=null;ut=null;dt=null;Mt.set(0,0,t.canvas.width,t.canvas.height);St.set(0,0,t.canvas.width,t.canvas.height);e.reset();n.reset();a.reset()}return{buffers:{color:e,depth:n,stencil:a},enable:enable,disable:disable,bindFramebuffer:bindFramebuffer,drawBuffers:drawBuffers,useProgram:useProgram,setBlending:setBlending,setMaterial:setMaterial,setFlipSided:setFlipSided,setCullFace:setCullFace,setLineWidth:setLineWidth,setPolygonOffset:setPolygonOffset,setScissorTest:setScissorTest,activeTexture:activeTexture,bindTexture:bindTexture,unbindTexture:unbindTexture,compressedTexImage2D:compressedTexImage2D,compressedTexImage3D:compressedTexImage3D,texImage2D:texImage2D,texImage3D:texImage3D,updateUBOMapping:updateUBOMapping,uniformBlockBinding:uniformBlockBinding,texStorage2D:texStorage2D,texStorage3D:texStorage3D,texSubImage2D:texSubImage2D,texSubImage3D:texSubImage3D,compressedTexSubImage2D:compressedTexSubImage2D,compressedTexSubImage3D:compressedTexSubImage3D,scissor:scissor,viewport:viewport,reset:reset}}function contain(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;if(n>e){t.repeat.x=1;t.repeat.y=n/e;t.offset.x=0;t.offset.y=(1-t.repeat.y)/2}else{t.repeat.x=e/n;t.repeat.y=1;t.offset.x=(1-t.repeat.x)/2;t.offset.y=0}return t}function cover(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;if(n>e){t.repeat.x=e/n;t.repeat.y=1;t.offset.x=(1-t.repeat.x)/2;t.offset.y=0}else{t.repeat.x=1;t.repeat.y=n/e;t.offset.x=0;t.offset.y=(1-t.repeat.y)/2}return t}function fill(t){t.repeat.x=1;t.repeat.y=1;t.offset.x=0;t.offset.y=0;return t}function getByteLength(t,e,n,i){const r=getTextureTypeByteLength(i);switch(n){case Ft:return t*e;case kt:return t*e;case Ht:return t*e*2;case jt:return t*e/r.components*r.byteLength;case qt:return t*e/r.components*r.byteLength;case Yt:return t*e*2/r.components*r.byteLength;case Kt:return t*e*2/r.components*r.byteLength;case zt:return t*e*3/r.components*r.byteLength;case Gt:return t*e*4/r.components*r.byteLength;case Jt:return t*e*4/r.components*r.byteLength;case Qt:case $t:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case te:case ee:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case ie:case se:return Math.max(t,16)*Math.max(e,8)/4;case ne:case re:return Math.max(t,8)*Math.max(e,8)/2;case ae:case oe:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case le:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case ce:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case he:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case ue:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case de:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case pe:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case fe:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case me:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case ge:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case ve:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case _e:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case xe:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case ye:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case Me:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case Se:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case be:case Te:case we:return Math.ceil(t/4)*Math.ceil(e/4)*16;case Ee:case Ae:return Math.ceil(t/4)*Math.ceil(e/4)*8;case Ce:case Re:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function getTextureTypeByteLength(t){switch(t){case At:case Ct:return{byteLength:1,components:1};case Pt:case Rt:case Dt:return{byteLength:2,components:1};case Nt:case Bt:return{byteLength:2,components:4};case It:case Lt:case Ut:return{byteLength:4,components:1};case Vt:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}const _l={contain:contain,cover:cover,fill:fill,getByteLength:getByteLength};function WebGLTextures(t,e,n,i,r,s,a){const o=e.has(\"WEBGL_multisampled_render_to_texture\")?e.get(\"WEBGL_multisampled_render_to_texture\"):null;const l=typeof navigator!==\"undefined\"&&/OculusBrowser/g.test(navigator.userAgent);const c=new Vector2;const h=new WeakMap;let u;const d=new WeakMap;let p=false;try{p=typeof OffscreenCanvas!==\"undefined\"&&new OffscreenCanvas(1,1).getContext(\"2d\")!==null}catch(t){}function createCanvas(t,e){return p?new OffscreenCanvas(t,e):createElementNS(\"canvas\")}function resizeImage(t,e,n){let i=1;const r=getDimensions(t);(r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height));if(i<1){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==\"undefined\"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==\"undefined\"&&t instanceof ImageBitmap||typeof VideoFrame!==\"undefined\"&&t instanceof VideoFrame){const n=Math.floor(i*r.width);const s=Math.floor(i*r.height);u===void 0&&(u=createCanvas(n,s));const a=e?createCanvas(n,s):u;a.width=n;a.height=s;const o=a.getContext(\"2d\");o.drawImage(t,0,0,n,s);console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+r.width+\"x\"+r.height+\") to (\"+n+\"x\"+s+\").\");return a}\"data\"in t&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+r.width+\"x\"+r.height+\").\");return t}return t}function textureNeedsGenerateMipmaps(t){return t.generateMipmaps&&t.minFilter!==vt&&t.minFilter!==St}function generateMipmap(e){t.generateMipmap(e)}function getInternalFormat(n,i,r,s,a=false){if(n!==null){if(t[n]!==void 0)return t[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let o=i;if(i===t.RED){r===t.FLOAT&&(o=t.R32F);r===t.HALF_FLOAT&&(o=t.R16F);r===t.UNSIGNED_BYTE&&(o=t.R8)}if(i===t.RED_INTEGER){r===t.UNSIGNED_BYTE&&(o=t.R8UI);r===t.UNSIGNED_SHORT&&(o=t.R16UI);r===t.UNSIGNED_INT&&(o=t.R32UI);r===t.BYTE&&(o=t.R8I);r===t.SHORT&&(o=t.R16I);r===t.INT&&(o=t.R32I)}if(i===t.RG){r===t.FLOAT&&(o=t.RG32F);r===t.HALF_FLOAT&&(o=t.RG16F);r===t.UNSIGNED_BYTE&&(o=t.RG8)}if(i===t.RG_INTEGER){r===t.UNSIGNED_BYTE&&(o=t.RG8UI);r===t.UNSIGNED_SHORT&&(o=t.RG16UI);r===t.UNSIGNED_INT&&(o=t.RG32UI);r===t.BYTE&&(o=t.RG8I);r===t.SHORT&&(o=t.RG16I);r===t.INT&&(o=t.RG32I)}i===t.RGB&&r===t.UNSIGNED_INT_5_9_9_9_REV&&(o=t.RGB9_E5);if(i===t.RGBA){const e=a?$e:$n.getTransfer(s);r===t.FLOAT&&(o=t.RGBA32F);r===t.HALF_FLOAT&&(o=t.RGBA16F);r===t.UNSIGNED_BYTE&&(o=e===tn?t.SRGB8_ALPHA8:t.RGBA8);r===t.UNSIGNED_SHORT_4_4_4_4&&(o=t.RGBA4);r===t.UNSIGNED_SHORT_5_5_5_1&&(o=t.RGB5_A1)}o!==t.R16F&&o!==t.R32F&&o!==t.RG16F&&o!==t.RG32F&&o!==t.RGBA16F&&o!==t.RGBA32F||e.get(\"EXT_color_buffer_float\");return o}function getInternalDepthFormat(e,n){let i;if(e){if(n===null||n===It||n===Ot)i=t.DEPTH24_STENCIL8;else if(n===Ut)i=t.DEPTH32F_STENCIL8;else if(n===Pt){i=t.DEPTH24_STENCIL8;console.warn(\"DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.\")}}else n===null||n===It||n===Ot?i=t.DEPTH_COMPONENT24:n===Ut?i=t.DEPTH_COMPONENT32F:n===Pt&&(i=t.DEPTH_COMPONENT16);return i}function getMipLevels(t,e){return textureNeedsGenerateMipmaps(t)===true||t.isFramebufferTexture&&t.minFilter!==vt&&t.minFilter!==St?Math.log2(Math.max(e.width,e.height))+1:t.mipmaps!==void 0&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function onTextureDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onTextureDispose);deallocateTexture(e);e.isVideoTexture&&h.delete(e)}function onRenderTargetDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onRenderTargetDispose);deallocateRenderTarget(e)}function deallocateTexture(t){const e=i.get(t);if(e.__webglInit===void 0)return;const n=t.source;const r=d.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--;i.usedTimes===0&&deleteTexture(t);Object.keys(r).length===0&&d.delete(n)}i.remove(t)}function deleteTexture(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source;const s=d.get(r);delete s[n.__cacheKey];a.memory.textures--}function deallocateRenderTarget(e){const n=i.get(e);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++){if(Array.isArray(n.__webglFramebuffer[e]))for(let i=0;i<n.__webglFramebuffer[e].length;i++)t.deleteFramebuffer(n.__webglFramebuffer[e][i]);else t.deleteFramebuffer(n.__webglFramebuffer[e]);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[e])}else{if(Array.isArray(n.__webglFramebuffer))for(let e=0;e<n.__webglFramebuffer.length;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer);n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer);if(n.__webglColorRenderbuffer)for(let e=0;e<n.__webglColorRenderbuffer.length;e++)n.__webglColorRenderbuffer[e]&&t.deleteRenderbuffer(n.__webglColorRenderbuffer[e]);n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer)}const r=e.textures;for(let e=0,n=r.length;e<n;e++){const n=i.get(r[e]);if(n.__webglTexture){t.deleteTexture(n.__webglTexture);a.memory.textures--}i.remove(r[e])}i.remove(e)}let f=0;function resetTextureUnits(){f=0}function allocateTextureUnit(){const t=f;t>=r.maxTextures&&console.warn(\"THREE.WebGLTextures: Trying to use \"+t+\" texture units while this GPU supports only \"+r.maxTextures);f+=1;return t}function getTextureCacheKey(t){const e=[];e.push(t.wrapS);e.push(t.wrapT);e.push(t.wrapR||0);e.push(t.magFilter);e.push(t.minFilter);e.push(t.anisotropy);e.push(t.internalFormat);e.push(t.format);e.push(t.type);e.push(t.generateMipmaps);e.push(t.premultiplyAlpha);e.push(t.flipY);e.push(t.unpackAlignment);e.push(t.colorSpace);return e.join()}function setTexture2D(e,r){const s=i.get(e);e.isVideoTexture&&updateVideoTexture(e);if(e.isRenderTargetTexture===false&&e.version>0&&s.__version!==e.version){const t=e.image;if(t===null)console.warn(\"THREE.WebGLRenderer: Texture marked for update but no image data found.\");else{if(t.complete!==false){uploadTexture(s,e,r);return}console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}function setTexture2DArray(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?uploadTexture(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)}function setTexture3D(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?uploadTexture(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)}function setTextureCube(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?uploadCubeTexture(s,e,r):n.bindTexture(t.TEXTURE_CUBE_MAP,s.__webglTexture,t.TEXTURE0+r)}const m={[ft]:t.REPEAT,[mt]:t.CLAMP_TO_EDGE,[gt]:t.MIRRORED_REPEAT};const g={[vt]:t.NEAREST,[_t]:t.NEAREST_MIPMAP_NEAREST,[yt]:t.NEAREST_MIPMAP_LINEAR,[St]:t.LINEAR,[bt]:t.LINEAR_MIPMAP_NEAREST,[wt]:t.LINEAR_MIPMAP_LINEAR};const _={[yn]:t.NEVER,[An]:t.ALWAYS,[Mn]:t.LESS,[bn]:t.LEQUAL,[Sn]:t.EQUAL,[En]:t.GEQUAL,[Tn]:t.GREATER,[wn]:t.NOTEQUAL};function setTextureParameters(n,s){s.type!==Ut||e.has(\"OES_texture_float_linear\")!==false||s.magFilter!==St&&s.magFilter!==bt&&s.magFilter!==yt&&s.magFilter!==wt&&s.minFilter!==St&&s.minFilter!==bt&&s.minFilter!==yt&&s.minFilter!==wt||console.warn(\"THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.\");t.texParameteri(n,t.TEXTURE_WRAP_S,m[s.wrapS]);t.texParameteri(n,t.TEXTURE_WRAP_T,m[s.wrapT]);n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,m[s.wrapR]);t.texParameteri(n,t.TEXTURE_MAG_FILTER,g[s.magFilter]);t.texParameteri(n,t.TEXTURE_MIN_FILTER,g[s.minFilter]);if(s.compareFunction){t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE);t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,_[s.compareFunction])}if(e.has(\"EXT_texture_filter_anisotropic\")===true){if(s.magFilter===vt)return;if(s.minFilter!==yt&&s.minFilter!==wt)return;if(s.type===Ut&&e.has(\"OES_texture_float_linear\")===false)return;if(s.anisotropy>1||i.get(s).__currentAnisotropy){const a=e.get(\"EXT_texture_filter_anisotropic\");t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy()));i.get(s).__currentAnisotropy=s.anisotropy}}}function initTexture(e,n){let i=false;if(e.__webglInit===void 0){e.__webglInit=true;n.addEventListener(\"dispose\",onTextureDispose)}const r=n.source;let s=d.get(r);if(s===void 0){s={};d.set(r,s)}const o=getTextureCacheKey(n);if(o!==e.__cacheKey){if(s[o]===void 0){s[o]={texture:t.createTexture(),usedTimes:0};a.memory.textures++;i=true}s[o].usedTimes++;const r=s[e.__cacheKey];if(r!==void 0){s[e.__cacheKey].usedTimes--;r.usedTimes===0&&deleteTexture(n)}e.__cacheKey=o;e.__webglTexture=s[o].texture}return i}function uploadTexture(e,a,o){let l=t.TEXTURE_2D;(a.isDataArrayTexture||a.isCompressedArrayTexture)&&(l=t.TEXTURE_2D_ARRAY);a.isData3DTexture&&(l=t.TEXTURE_3D);const c=initTexture(e,a);const h=a.source;n.bindTexture(l,e.__webglTexture,t.TEXTURE0+o);const u=i.get(h);if(h.version!==u.__version||c===true){n.activeTexture(t.TEXTURE0+o);const e=$n.getPrimaries($n.workingColorSpace);const i=a.colorSpace===Ye?null:$n.getPrimaries(a.colorSpace);const d=a.colorSpace===Ye||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY);t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment);t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=resizeImage(a.image,false,r.maxTextureSize);p=verifyColorSpace(a,p);const f=s.convert(a.format,a.colorSpace);const m=s.convert(a.type);let g=getInternalFormat(a.internalFormat,f,m,a.colorSpace,a.isVideoTexture);setTextureParameters(l,a);let _;const x=a.mipmaps;const y=a.isVideoTexture!==true;const M=u.__version===void 0||c===true;const S=h.dataReady;const b=getMipLevels(a,p);if(a.isDepthTexture){g=getInternalDepthFormat(a.format===Xt,a.type);M&&(y?n.texStorage2D(t.TEXTURE_2D,1,g,p.width,p.height):n.texImage2D(t.TEXTURE_2D,0,g,p.width,p.height,0,f,m,null))}else if(a.isDataTexture)if(x.length>0){y&&M&&n.texStorage2D(t.TEXTURE_2D,b,g,x[0].width,x[0].height);for(let e=0,i=x.length;e<i;e++){_=x[e];y?S&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,_.width,_.height,f,m,_.data):n.texImage2D(t.TEXTURE_2D,e,g,_.width,_.height,0,f,m,_.data)}a.generateMipmaps=false}else if(y){M&&n.texStorage2D(t.TEXTURE_2D,b,g,p.width,p.height);S&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,p.width,p.height,f,m,p.data)}else n.texImage2D(t.TEXTURE_2D,0,g,p.width,p.height,0,f,m,p.data);else if(a.isCompressedTexture)if(a.isCompressedArrayTexture){y&&M&&n.texStorage3D(t.TEXTURE_2D_ARRAY,b,g,x[0].width,x[0].height,p.depth);for(let e=0,i=x.length;e<i;e++){_=x[e];if(a.format!==Gt)if(f!==null)if(y){if(S)if(a.layerUpdates.size>0){const i=getByteLength(_.width,_.height,a.format,a.type);for(const r of a.layerUpdates){const s=_.data.subarray(r*i/_.data.BYTES_PER_ELEMENT,(r+1)*i/_.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,r,_.width,_.height,1,f,s,0,0)}a.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,_.width,_.height,p.depth,f,_.data,0,0)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,e,g,_.width,_.height,p.depth,0,_.data,0,0);else console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");else y?S&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,_.width,_.height,p.depth,f,m,_.data):n.texImage3D(t.TEXTURE_2D_ARRAY,e,g,_.width,_.height,p.depth,0,f,m,_.data)}}else{y&&M&&n.texStorage2D(t.TEXTURE_2D,b,g,x[0].width,x[0].height);for(let e=0,i=x.length;e<i;e++){_=x[e];a.format!==Gt?f!==null?y?S&&n.compressedTexSubImage2D(t.TEXTURE_2D,e,0,0,_.width,_.height,f,_.data):n.compressedTexImage2D(t.TEXTURE_2D,e,g,_.width,_.height,0,_.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):y?S&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,_.width,_.height,f,m,_.data):n.texImage2D(t.TEXTURE_2D,e,g,_.width,_.height,0,f,m,_.data)}}else if(a.isDataArrayTexture)if(y){M&&n.texStorage3D(t.TEXTURE_2D_ARRAY,b,g,p.width,p.height,p.depth);if(S)if(a.layerUpdates.size>0){const e=getByteLength(p.width,p.height,a.format,a.type);for(const i of a.layerUpdates){const r=p.data.subarray(i*e/p.data.BYTES_PER_ELEMENT,(i+1)*e/p.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,i,p.width,p.height,1,f,m,r)}a.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,p.width,p.height,p.depth,f,m,p.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,g,p.width,p.height,p.depth,0,f,m,p.data);else if(a.isData3DTexture)if(y){M&&n.texStorage3D(t.TEXTURE_3D,b,g,p.width,p.height,p.depth);S&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,p.width,p.height,p.depth,f,m,p.data)}else n.texImage3D(t.TEXTURE_3D,0,g,p.width,p.height,p.depth,0,f,m,p.data);else if(a.isFramebufferTexture){if(M)if(y)n.texStorage2D(t.TEXTURE_2D,b,g,p.width,p.height);else{let e=p.width,i=p.height;for(let r=0;r<b;r++){n.texImage2D(t.TEXTURE_2D,r,g,e,i,0,f,m,null);e>>=1;i>>=1}}}else if(x.length>0){if(y&&M){const e=getDimensions(x[0]);n.texStorage2D(t.TEXTURE_2D,b,g,e.width,e.height)}for(let e=0,i=x.length;e<i;e++){_=x[e];y?S&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,f,m,_):n.texImage2D(t.TEXTURE_2D,e,g,f,m,_)}a.generateMipmaps=false}else if(y){if(M){const e=getDimensions(p);n.texStorage2D(t.TEXTURE_2D,b,g,e.width,e.height)}S&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,f,m,p)}else n.texImage2D(t.TEXTURE_2D,0,g,f,m,p);textureNeedsGenerateMipmaps(a)&&generateMipmap(l);u.__version=h.version;a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function uploadCubeTexture(e,a,o){if(a.image.length!==6)return;const l=initTexture(e,a);const c=a.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+o);const h=i.get(c);if(c.version!==h.__version||l===true){n.activeTexture(t.TEXTURE0+o);const e=$n.getPrimaries($n.workingColorSpace);const i=a.colorSpace===Ye?null:$n.getPrimaries(a.colorSpace);const u=a.colorSpace===Ye||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY);t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment);t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,u);const d=a.isCompressedTexture||a.image[0].isCompressedTexture;const p=a.image[0]&&a.image[0].isDataTexture;const f=[];for(let t=0;t<6;t++){f[t]=d||p?p?a.image[t].image:a.image[t]:resizeImage(a.image[t],true,r.maxCubemapSize);f[t]=verifyColorSpace(a,f[t])}const m=f[0],g=s.convert(a.format,a.colorSpace),_=s.convert(a.type),x=getInternalFormat(a.internalFormat,g,_,a.colorSpace);const y=a.isVideoTexture!==true;const M=h.__version===void 0||l===true;const S=c.dataReady;let b=getMipLevels(a,m);setTextureParameters(t.TEXTURE_CUBE_MAP,a);let T;if(d){y&&M&&n.texStorage2D(t.TEXTURE_CUBE_MAP,b,x,m.width,m.height);for(let e=0;e<6;e++){T=f[e].mipmaps;for(let i=0;i<T.length;i++){const r=T[i];a.format!==Gt?g!==null?y?S&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,g,r.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,x,r.width,r.height,0,r.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,g,_,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,x,r.width,r.height,0,g,_,r.data)}}}else{T=a.mipmaps;if(y&&M){T.length>0&&b++;const e=getDimensions(f[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,b,x,e.width,e.height)}for(let e=0;e<6;e++)if(p){y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,f[e].width,f[e].height,g,_,f[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,x,f[e].width,f[e].height,0,g,_,f[e].data);for(let i=0;i<T.length;i++){const r=T[i];const s=r.image[e].image;y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,s.width,s.height,g,_,s.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,x,s.width,s.height,0,g,_,s.data)}}else{y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,g,_,f[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,x,g,_,f[e]);for(let i=0;i<T.length;i++){const r=T[i];y?S&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,g,_,r.image[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,x,g,_,r.image[e])}}}textureNeedsGenerateMipmaps(a)&&generateMipmap(t.TEXTURE_CUBE_MAP);h.__version=c.version;a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function setupFrameBufferTexture(e,r,a,l,c,h){const u=s.convert(a.format,a.colorSpace);const d=s.convert(a.type);const p=getInternalFormat(a.internalFormat,u,d,a.colorSpace);const f=i.get(r);if(!f.__hasExternalTextures){const e=Math.max(1,r.width>>h);const i=Math.max(1,r.height>>h);c===t.TEXTURE_3D||c===t.TEXTURE_2D_ARRAY?n.texImage3D(c,h,p,e,i,r.depth,0,u,d,null):n.texImage2D(c,h,p,e,i,0,u,d,null)}n.bindFramebuffer(t.FRAMEBUFFER,e);useMultisampledRTT(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,l,c,i.get(a).__webglTexture,0,getRenderTargetSamples(r)):(c===t.TEXTURE_2D||c>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&c<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,l,c,i.get(a).__webglTexture,h);n.bindFramebuffer(t.FRAMEBUFFER,null)}function setupRenderBufferStorage(e,n,i){t.bindRenderbuffer(t.RENDERBUFFER,e);if(n.depthBuffer){const r=n.depthTexture;const s=r&&r.isDepthTexture?r.type:null;const a=getInternalDepthFormat(n.stencilBuffer,s);const l=n.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;const c=getRenderTargetSamples(n);const h=useMultisampledRTT(n);h?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,c,a,n.width,n.height):i?t.renderbufferStorageMultisample(t.RENDERBUFFER,c,a,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,a,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,l,t.RENDERBUFFER,e)}else{const e=n.textures;for(let r=0;r<e.length;r++){const a=e[r];const l=s.convert(a.format,a.colorSpace);const c=s.convert(a.type);const h=getInternalFormat(a.internalFormat,l,c,a.colorSpace);const u=getRenderTargetSamples(n);i&&useMultisampledRTT(n)===false?t.renderbufferStorageMultisample(t.RENDERBUFFER,u,h,n.width,n.height):useMultisampledRTT(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,u,h,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,h,n.width,n.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function setupDepthTexture(e,r){const s=r&&r.isWebGLCubeRenderTarget;if(s)throw new Error(\"Depth Texture with cube render targets is not supported\");n.bindFramebuffer(t.FRAMEBUFFER,e);if(!(r.depthTexture&&r.depthTexture.isDepthTexture))throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");if(!i.get(r.depthTexture).__webglTexture||r.depthTexture.image.width!==r.width||r.depthTexture.image.height!==r.height){r.depthTexture.image.width=r.width;r.depthTexture.image.height=r.height;r.depthTexture.needsUpdate=true}setTexture2D(r.depthTexture,0);const a=i.get(r.depthTexture).__webglTexture;const l=getRenderTargetSamples(r);if(r.depthTexture.format===Wt)useMultisampledRTT(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,a,0,l):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,a,0);else{if(r.depthTexture.format!==Xt)throw new Error(\"Unknown depthTexture format\");useMultisampledRTT(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,a,0,l):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,a,0)}}function setupDepthRenderbuffer(e){const r=i.get(e);const s=e.isWebGLCubeRenderTarget===true;if(e.depthTexture&&!r.__autoAllocateDepthBuffer){if(s)throw new Error(\"target.depthTexture not supported in Cube render targets\");setupDepthTexture(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++){n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer[i]);r.__webglDepthbuffer[i]=t.createRenderbuffer();setupRenderBufferStorage(r.__webglDepthbuffer[i],e,false)}}else{n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer);r.__webglDepthbuffer=t.createRenderbuffer();setupRenderBufferStorage(r.__webglDepthbuffer,e,false)}n.bindFramebuffer(t.FRAMEBUFFER,null)}function rebindTextures(e,n,r){const s=i.get(e);n!==void 0&&setupFrameBufferTexture(s.__webglFramebuffer,e,e.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0);r!==void 0&&setupDepthRenderbuffer(e)}function setupRenderTarget(e){const r=e.texture;const o=i.get(e);const l=i.get(r);e.addEventListener(\"dispose\",onRenderTargetDispose);const c=e.textures;const h=e.isWebGLCubeRenderTarget===true;const u=c.length>1;if(!u){l.__webglTexture===void 0&&(l.__webglTexture=t.createTexture());l.__version=r.version;a.memory.textures++}if(h){o.__webglFramebuffer=[];for(let e=0;e<6;e++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[e]=[];for(let n=0;n<r.mipmaps.length;n++)o.__webglFramebuffer[e][n]=t.createFramebuffer()}else o.__webglFramebuffer[e]=t.createFramebuffer()}else{if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer=[];for(let e=0;e<r.mipmaps.length;e++)o.__webglFramebuffer[e]=t.createFramebuffer()}else o.__webglFramebuffer=t.createFramebuffer();if(u)for(let e=0,n=c.length;e<n;e++){const n=i.get(c[e]);if(n.__webglTexture===void 0){n.__webglTexture=t.createTexture();a.memory.textures++}}if(e.samples>0&&useMultisampledRTT(e)===false){o.__webglMultisampledFramebuffer=t.createFramebuffer();o.__webglColorRenderbuffer=[];n.bindFramebuffer(t.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n<c.length;n++){const i=c[n];o.__webglColorRenderbuffer[n]=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,o.__webglColorRenderbuffer[n]);const r=s.convert(i.format,i.colorSpace);const a=s.convert(i.type);const l=getInternalFormat(i.internalFormat,r,a,i.colorSpace,e.isXRRenderTarget===true);const h=getRenderTargetSamples(e);t.renderbufferStorageMultisample(t.RENDERBUFFER,h,l,e.width,e.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+n,t.RENDERBUFFER,o.__webglColorRenderbuffer[n])}t.bindRenderbuffer(t.RENDERBUFFER,null);if(e.depthBuffer){o.__webglDepthRenderbuffer=t.createRenderbuffer();setupRenderBufferStorage(o.__webglDepthRenderbuffer,e,true)}n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(h){n.bindTexture(t.TEXTURE_CUBE_MAP,l.__webglTexture);setTextureParameters(t.TEXTURE_CUBE_MAP,r);for(let n=0;n<6;n++)if(r.mipmaps&&r.mipmaps.length>0)for(let i=0;i<r.mipmaps.length;i++)setupFrameBufferTexture(o.__webglFramebuffer[n][i],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,i);else setupFrameBufferTexture(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,0);textureNeedsGenerateMipmaps(r)&&generateMipmap(t.TEXTURE_CUBE_MAP);n.unbindTexture()}else if(u){for(let r=0,s=c.length;r<s;r++){const s=c[r];const a=i.get(s);n.bindTexture(t.TEXTURE_2D,a.__webglTexture);setTextureParameters(t.TEXTURE_2D,s);setupFrameBufferTexture(o.__webglFramebuffer,e,s,t.COLOR_ATTACHMENT0+r,t.TEXTURE_2D,0);textureNeedsGenerateMipmaps(s)&&generateMipmap(t.TEXTURE_2D)}n.unbindTexture()}else{let i=t.TEXTURE_2D;(e.isWebGL3DRenderTarget||e.isWebGLArrayRenderTarget)&&(i=e.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY);n.bindTexture(i,l.__webglTexture);setTextureParameters(i,r);if(r.mipmaps&&r.mipmaps.length>0)for(let n=0;n<r.mipmaps.length;n++)setupFrameBufferTexture(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,i,n);else setupFrameBufferTexture(o.__webglFramebuffer,e,r,t.COLOR_ATTACHMENT0,i,0);textureNeedsGenerateMipmaps(r)&&generateMipmap(i);n.unbindTexture()}e.depthBuffer&&setupDepthRenderbuffer(e)}function updateRenderTargetMipmap(e){const r=e.textures;for(let s=0,a=r.length;s<a;s++){const a=r[s];if(textureNeedsGenerateMipmaps(a)){const r=e.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D;const s=i.get(a).__webglTexture;n.bindTexture(r,s);generateMipmap(r);n.unbindTexture()}}}const x=[];const y=[];function updateMultisampleRenderTarget(e){if(e.samples>0)if(useMultisampledRTT(e)===false){const r=e.textures;const s=e.width;const a=e.height;let o=t.COLOR_BUFFER_BIT;const c=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;const h=i.get(e);const u=r.length>1;if(u)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,h.__webglMultisampledFramebuffer);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,null);n.bindFramebuffer(t.FRAMEBUFFER,h.__webglFramebuffer);t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,null,0)}n.bindFramebuffer(t.READ_FRAMEBUFFER,h.__webglMultisampledFramebuffer);n.bindFramebuffer(t.DRAW_FRAMEBUFFER,h.__webglFramebuffer);for(let n=0;n<r.length;n++){if(e.resolveDepthBuffer){e.depthBuffer&&(o|=t.DEPTH_BUFFER_BIT);e.stencilBuffer&&e.resolveStencilBuffer&&(o|=t.STENCIL_BUFFER_BIT)}if(u){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,h.__webglColorRenderbuffer[n]);const e=i.get(r[n]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0)}t.blitFramebuffer(0,0,s,a,0,0,s,a,o,t.NEAREST);if(l===true){x.length=0;y.length=0;x.push(t.COLOR_ATTACHMENT0+n);if(e.depthBuffer&&e.resolveDepthBuffer===false){x.push(c);y.push(c);t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,y)}t.invalidateFramebuffer(t.READ_FRAMEBUFFER,x)}}n.bindFramebuffer(t.READ_FRAMEBUFFER,null);n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null);if(u)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,h.__webglMultisampledFramebuffer);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,h.__webglColorRenderbuffer[e]);const s=i.get(r[e]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,h.__webglFramebuffer);t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,s,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,h.__webglMultisampledFramebuffer)}else if(e.depthBuffer&&e.resolveDepthBuffer===false&&l){const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[n])}}function getRenderTargetSamples(t){return Math.min(r.maxSamples,t.samples)}function useMultisampledRTT(t){const n=i.get(t);return t.samples>0&&e.has(\"WEBGL_multisampled_render_to_texture\")===true&&n.__useRenderToTexture!==false}function updateVideoTexture(t){const e=a.render.frame;if(h.get(t)!==e){h.set(t,e);t.update()}}function verifyColorSpace(t,e){const n=t.colorSpace;const i=t.format;const r=t.type;if(t.isCompressedTexture===true||t.isVideoTexture===true)return e;n!==Ze&&n!==Ye&&($n.getTransfer(n)===tn?i===Gt&&r===At||console.warn(\"THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.\"):console.error(\"THREE.WebGLTextures: Unsupported texture color space:\",n));return e}function getDimensions(t){if(typeof HTMLImageElement!==\"undefined\"&&t instanceof HTMLImageElement){c.width=t.naturalWidth||t.width;c.height=t.naturalHeight||t.height}else if(typeof VideoFrame!==\"undefined\"&&t instanceof VideoFrame){c.width=t.displayWidth;c.height=t.displayHeight}else{c.width=t.width;c.height=t.height}return c}this.allocateTextureUnit=allocateTextureUnit;this.resetTextureUnits=resetTextureUnits;this.setTexture2D=setTexture2D;this.setTexture2DArray=setTexture2DArray;this.setTexture3D=setTexture3D;this.setTextureCube=setTextureCube;this.rebindTextures=rebindTextures;this.setupRenderTarget=setupRenderTarget;this.updateRenderTargetMipmap=updateRenderTargetMipmap;this.updateMultisampleRenderTarget=updateMultisampleRenderTarget;this.setupDepthRenderbuffer=setupDepthRenderbuffer;this.setupFrameBufferTexture=setupFrameBufferTexture;this.useMultisampledRTT=useMultisampledRTT}function WebGLUtils(t,e){function convert(n,i=Ye){let r;const s=$n.getTransfer(i);if(n===At)return t.UNSIGNED_BYTE;if(n===Nt)return t.UNSIGNED_SHORT_4_4_4_4;if(n===Bt)return t.UNSIGNED_SHORT_5_5_5_1;if(n===Vt)return t.UNSIGNED_INT_5_9_9_9_REV;if(n===Ct)return t.BYTE;if(n===Rt)return t.SHORT;if(n===Pt)return t.UNSIGNED_SHORT;if(n===Lt)return t.INT;if(n===It)return t.UNSIGNED_INT;if(n===Ut)return t.FLOAT;if(n===Dt)return t.HALF_FLOAT;if(n===Ft)return t.ALPHA;if(n===zt)return t.RGB;if(n===Gt)return t.RGBA;if(n===kt)return t.LUMINANCE;if(n===Ht)return t.LUMINANCE_ALPHA;if(n===Wt)return t.DEPTH_COMPONENT;if(n===Xt)return t.DEPTH_STENCIL;if(n===jt)return t.RED;if(n===qt)return t.RED_INTEGER;if(n===Yt)return t.RG;if(n===Kt)return t.RG_INTEGER;if(n===Jt)return t.RGBA_INTEGER;if(n===Qt||n===$t||n===te||n===ee)if(s===tn){r=e.get(\"WEBGL_compressed_texture_s3tc_srgb\");if(r===null)return null;if(n===Qt)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===$t)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===te)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===ee)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{r=e.get(\"WEBGL_compressed_texture_s3tc\");if(r===null)return null;if(n===Qt)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===$t)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===te)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===ee)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===ne||n===ie||n===re||n===se){r=e.get(\"WEBGL_compressed_texture_pvrtc\");if(r===null)return null;if(n===ne)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===ie)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===re)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===se)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===ae||n===oe||n===le){r=e.get(\"WEBGL_compressed_texture_etc\");if(r===null)return null;if(n===ae||n===oe)return s===tn?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===le)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(n===ce||n===he||n===ue||n===de||n===pe||n===fe||n===me||n===ge||n===ve||n===_e||n===xe||n===ye||n===Me||n===Se){r=e.get(\"WEBGL_compressed_texture_astc\");if(r===null)return null;if(n===ce)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===he)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===ue)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===de)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===pe)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===fe)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===me)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===ge)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===ve)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===_e)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===xe)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===ye)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Me)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Se)return s===tn?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===be||n===Te||n===we){r=e.get(\"EXT_texture_compression_bptc\");if(r===null)return null;if(n===be)return s===tn?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===Te)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===we)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}if(n===Ee||n===Ae||n===Ce||n===Re){r=e.get(\"EXT_texture_compression_rgtc\");if(r===null)return null;if(n===be)return r.COMPRESSED_RED_RGTC1_EXT;if(n===Ae)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Ce)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===Re)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}return n===Ot?t.UNSIGNED_INT_24_8:t[n]!==void 0?t[n]:null}return{convert:convert}}class ArrayCamera extends PerspectiveCamera{constructor(t=[]){super();this.isArrayCamera=true;this.cameras=t}}class Group extends Object3D{constructor(){super();this.isGroup=true;this.type=\"Group\"}}const xl={type:\"move\"};class WebXRController{constructor(){this._targetRay=null;this._grip=null;this._hand=null}getHandSpace(){if(this._hand===null){this._hand=new Group;this._hand.matrixAutoUpdate=false;this._hand.visible=false;this._hand.joints={};this._hand.inputState={pinching:false}}return this._hand}getTargetRaySpace(){if(this._targetRay===null){this._targetRay=new Group;this._targetRay.matrixAutoUpdate=false;this._targetRay.visible=false;this._targetRay.hasLinearVelocity=false;this._targetRay.linearVelocity=new Vector3;this._targetRay.hasAngularVelocity=false;this._targetRay.angularVelocity=new Vector3}return this._targetRay}getGripSpace(){if(this._grip===null){this._grip=new Group;this._grip.matrixAutoUpdate=false;this._grip.visible=false;this._grip.hasLinearVelocity=false;this._grip.linearVelocity=new Vector3;this._grip.hasAngularVelocity=false;this._grip.angularVelocity=new Vector3}return this._grip}dispatchEvent(t){this._targetRay!==null&&this._targetRay.dispatchEvent(t);this._grip!==null&&this._grip.dispatchEvent(t);this._hand!==null&&this._hand.dispatchEvent(t);return this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}this.dispatchEvent({type:\"connected\",data:t});return this}disconnect(t){this.dispatchEvent({type:\"disconnected\",data:t});this._targetRay!==null&&(this._targetRay.visible=false);this._grip!==null&&(this._grip.visible=false);this._hand!==null&&(this._hand.visible=false);return this}update(t,e,n){let i=null;let r=null;let s=null;const a=this._targetRay;const o=this._grip;const l=this._hand;if(t&&e.session.visibilityState!==\"visible-blurred\"){if(l&&t.hand){s=true;for(const i of t.hand.values()){const t=e.getJointPose(i,n);const r=this._getHandJoint(l,i);if(t!==null){r.matrix.fromArray(t.transform.matrix);r.matrix.decompose(r.position,r.rotation,r.scale);r.matrixWorldNeedsUpdate=true;r.jointRadius=t.radius}r.visible=t!==null}const i=l.joints[\"index-finger-tip\"];const r=l.joints[\"thumb-tip\"];const a=i.position.distanceTo(r.position);const o=.02;const c=.005;if(l.inputState.pinching&&a>o+c){l.inputState.pinching=false;this.dispatchEvent({type:\"pinchend\",handedness:t.handedness,target:this})}else if(!l.inputState.pinching&&a<=o-c){l.inputState.pinching=true;this.dispatchEvent({type:\"pinchstart\",handedness:t.handedness,target:this})}}else if(o!==null&&t.gripSpace){r=e.getPose(t.gripSpace,n);if(r!==null){o.matrix.fromArray(r.transform.matrix);o.matrix.decompose(o.position,o.rotation,o.scale);o.matrixWorldNeedsUpdate=true;if(r.linearVelocity){o.hasLinearVelocity=true;o.linearVelocity.copy(r.linearVelocity)}else o.hasLinearVelocity=false;if(r.angularVelocity){o.hasAngularVelocity=true;o.angularVelocity.copy(r.angularVelocity)}else o.hasAngularVelocity=false}}if(a!==null){i=e.getPose(t.targetRaySpace,n);i===null&&r!==null&&(i=r);if(i!==null){a.matrix.fromArray(i.transform.matrix);a.matrix.decompose(a.position,a.rotation,a.scale);a.matrixWorldNeedsUpdate=true;if(i.linearVelocity){a.hasLinearVelocity=true;a.linearVelocity.copy(i.linearVelocity)}else a.hasLinearVelocity=false;if(i.angularVelocity){a.hasAngularVelocity=true;a.angularVelocity.copy(i.angularVelocity)}else a.hasAngularVelocity=false;this.dispatchEvent(xl)}}}a!==null&&(a.visible=i!==null);o!==null&&(o.visible=r!==null);l!==null&&(l.visible=s!==null);return this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){const n=new Group;n.matrixAutoUpdate=false;n.visible=false;t.joints[e.jointName]=n;t.add(n)}return t.joints[e.jointName]}}const yl=\"\\nvoid main() {\\n\\n\\tgl_Position = vec4( position, 1.0 );\\n\\n}\";const Ml=\"\\nuniform sampler2DArray depthColor;\\nuniform float depthWidth;\\nuniform float depthHeight;\\n\\nvoid main() {\\n\\n\\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\\n\\n\\tif ( coord.x >= 1.0 ) {\\n\\n\\t\\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\\n\\n\\t} else {\\n\\n\\t\\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\\n\\n\\t}\\n\\n}\";class WebXRDepthSensing{constructor(){this.texture=null;this.mesh=null;this.depthNear=0;this.depthFar=0}init(t,e,n){if(this.texture===null){const i=new Texture;const r=t.properties.get(i);r.__webglTexture=e.texture;if(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar){this.depthNear=e.depthNear;this.depthFar=e.depthFar}this.texture=i}}getMesh(t){if(this.texture!==null&&this.mesh===null){const e=t.cameras[0].viewport;const n=new ShaderMaterial({vertexShader:yl,fragmentShader:Ml,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),n)}return this.mesh}reset(){this.texture=null;this.mesh=null}getDepthTexture(){return this.texture}}class WebXRManager extends EventDispatcher{constructor(t,e){super();const n=this;let i=null;let r=1;let s=null;let a=\"local-floor\";let o=1;let l=null;let c=null;let h=null;let u=null;let d=null;let p=null;const f=new WebXRDepthSensing;const m=e.getContextAttributes();let g=null;let _=null;const x=[];const y=[];const M=new Vector2;let S=null;const b=new PerspectiveCamera;b.layers.enable(1);b.viewport=new Vector4;const T=new PerspectiveCamera;T.layers.enable(2);T.viewport=new Vector4;const w=[b,T];const E=new ArrayCamera;E.layers.enable(1);E.layers.enable(2);let A=null;let C=null;this.cameraAutoUpdate=true;this.enabled=false;this.isPresenting=false;this.getController=function(t){let e=x[t];if(e===void 0){e=new WebXRController;x[t]=e}return e.getTargetRaySpace()};this.getControllerGrip=function(t){let e=x[t];if(e===void 0){e=new WebXRController;x[t]=e}return e.getGripSpace()};this.getHand=function(t){let e=x[t];if(e===void 0){e=new WebXRController;x[t]=e}return e.getHandSpace()};function onSessionEvent(t){const e=y.indexOf(t.inputSource);if(e===-1)return;const n=x[e];if(n!==void 0){n.update(t.inputSource,t.frame,l||s);n.dispatchEvent({type:t.type,data:t.inputSource})}}function onSessionEnd(){i.removeEventListener(\"select\",onSessionEvent);i.removeEventListener(\"selectstart\",onSessionEvent);i.removeEventListener(\"selectend\",onSessionEvent);i.removeEventListener(\"squeeze\",onSessionEvent);i.removeEventListener(\"squeezestart\",onSessionEvent);i.removeEventListener(\"squeezeend\",onSessionEvent);i.removeEventListener(\"end\",onSessionEnd);i.removeEventListener(\"inputsourceschange\",onInputSourcesChange);for(let t=0;t<x.length;t++){const e=y[t];if(e!==null){y[t]=null;x[t].disconnect(e)}}A=null;C=null;f.reset();t.setRenderTarget(g);d=null;u=null;h=null;i=null;_=null;I.stop();n.isPresenting=false;t.setPixelRatio(S);t.setSize(M.width,M.height,false);n.dispatchEvent({type:\"sessionend\"})}this.setFramebufferScaleFactor=function(t){r=t;n.isPresenting===true&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")};this.setReferenceSpaceType=function(t){a=t;n.isPresenting===true&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")};this.getReferenceSpace=function(){return l||s};this.setReferenceSpace=function(t){l=t};this.getBaseLayer=function(){return u!==null?u:d};this.getBinding=function(){return h};this.getFrame=function(){return p};this.getSession=function(){return i};this.setSession=async function(c){i=c;if(i!==null){g=t.getRenderTarget();i.addEventListener(\"select\",onSessionEvent);i.addEventListener(\"selectstart\",onSessionEvent);i.addEventListener(\"selectend\",onSessionEvent);i.addEventListener(\"squeeze\",onSessionEvent);i.addEventListener(\"squeezestart\",onSessionEvent);i.addEventListener(\"squeezeend\",onSessionEvent);i.addEventListener(\"end\",onSessionEnd);i.addEventListener(\"inputsourceschange\",onInputSourcesChange);m.xrCompatible!==true&&await e.makeXRCompatible();S=t.getPixelRatio();t.getSize(M);if(i.renderState.layers===void 0){const n={antialias:m.antialias,alpha:true,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n);i.updateRenderState({baseLayer:d});t.setPixelRatio(1);t.setSize(d.framebufferWidth,d.framebufferHeight,false);_=new WebGLRenderTarget(d.framebufferWidth,d.framebufferHeight,{format:Gt,type:At,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null;let s=null;let a=null;if(m.depth){a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24;n=m.stencil?Xt:Wt;s=m.stencil?Ot:It}const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e);u=h.createProjectionLayer(o);i.updateRenderState({layers:[u]});t.setPixelRatio(1);t.setSize(u.textureWidth,u.textureHeight,false);_=new WebGLRenderTarget(u.textureWidth,u.textureHeight,{format:Gt,type:At,depthTexture:new DepthTexture(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0,resolveDepthBuffer:u.ignoreDepthValues===false})}_.isXRRenderTarget=true;this.setFoveation(o);l=null;s=await i.requestReferenceSpace(a);I.setContext(i);I.start();n.isPresenting=true;n.dispatchEvent({type:\"sessionstart\"})}};this.getEnvironmentBlendMode=function(){if(i!==null)return i.environmentBlendMode};this.getDepthTexture=function(){return f.getDepthTexture()};function onInputSourcesChange(t){for(let e=0;e<t.removed.length;e++){const n=t.removed[e];const i=y.indexOf(n);if(i>=0){y[i]=null;x[i].disconnect(n)}}for(let e=0;e<t.added.length;e++){const n=t.added[e];let i=y.indexOf(n);if(i===-1){for(let t=0;t<x.length;t++){if(t>=y.length){y.push(n);i=t;break}if(y[t]===null){y[t]=n;i=t;break}}if(i===-1)break}const r=x[i];r&&r.connect(n)}}const R=new Vector3;const P=new Vector3;function setProjectionFromUnion(t,e,n){R.setFromMatrixPosition(e.matrixWorld);P.setFromMatrixPosition(n.matrixWorld);const i=R.distanceTo(P);const r=e.projectionMatrix.elements;const s=n.projectionMatrix.elements;const a=r[14]/(r[10]-1);const o=r[14]/(r[10]+1);const l=(r[9]+1)/r[5];const c=(r[9]-1)/r[5];const h=(r[8]-1)/r[0];const u=(s[8]+1)/s[0];const d=a*h;const p=a*u;const f=i/(-h+u);const m=f*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale);t.translateX(m);t.translateZ(f);t.matrixWorld.compose(t.position,t.quaternion,t.scale);t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f;const _=o+f;const x=d-m;const y=p+(i-m);const M=l*o/_*g;const S=c*o/_*g;t.projectionMatrix.makePerspective(x,y,M,S,g,_);t.projectionMatrixInverse.copy(t.projectionMatrix).invert()}function updateCamera(t,e){e===null?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix);t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(i===null)return;if(f.texture!==null){t.near=f.depthNear;t.far=f.depthFar}E.near=T.near=b.near=t.near;E.far=T.far=b.far=t.far;if(A!==E.near||C!==E.far){i.updateRenderState({depthNear:E.near,depthFar:E.far});A=E.near;C=E.far;b.near=A;b.far=C;T.near=A;T.far=C;b.updateProjectionMatrix();T.updateProjectionMatrix();t.updateProjectionMatrix()}const e=t.parent;const n=E.cameras;updateCamera(E,e);for(let t=0;t<n.length;t++)updateCamera(n[t],e);n.length===2?setProjectionFromUnion(E,b,T):E.projectionMatrix.copy(b.projectionMatrix);updateUserCamera(t,E,e)};function updateUserCamera(t,e,n){if(n===null)t.matrix.copy(e.matrixWorld);else{t.matrix.copy(n.matrixWorld);t.matrix.invert();t.matrix.multiply(e.matrixWorld)}t.matrix.decompose(t.position,t.quaternion,t.scale);t.updateMatrixWorld(true);t.projectionMatrix.copy(e.projectionMatrix);t.projectionMatrixInverse.copy(e.projectionMatrixInverse);if(t.isPerspectiveCamera){t.fov=Wn*2*Math.atan(1/t.projectionMatrix.elements[5]);t.zoom=1}}this.getCamera=function(){return E};this.getFoveation=function(){if(u!==null||d!==null)return o};this.setFoveation=function(t){o=t;u!==null&&(u.fixedFoveation=t);d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=t)};this.hasDepthSensing=function(){return f.texture!==null};this.getDepthSensingMesh=function(){return f.getMesh(E)};let L=null;function onAnimationFrame(e,r){c=r.getViewerPose(l||s);p=r;if(c!==null){const e=c.views;if(d!==null){t.setRenderTargetFramebuffer(_,d.framebuffer);t.setRenderTarget(_)}let n=false;if(e.length!==E.cameras.length){E.cameras.length=0;n=true}for(let i=0;i<e.length;i++){const r=e[i];let s=null;if(d!==null)s=d.getViewport(r);else{const e=h.getViewSubImage(u,r);s=e.viewport;if(i===0){t.setRenderTargetTextures(_,e.colorTexture,u.ignoreDepthValues?void 0:e.depthStencilTexture);t.setRenderTarget(_)}}let a=w[i];if(a===void 0){a=new PerspectiveCamera;a.layers.enable(i);a.viewport=new Vector4;w[i]=a}a.matrix.fromArray(r.transform.matrix);a.matrix.decompose(a.position,a.quaternion,a.scale);a.projectionMatrix.fromArray(r.projectionMatrix);a.projectionMatrixInverse.copy(a.projectionMatrix).invert();a.viewport.set(s.x,s.y,s.width,s.height);if(i===0){E.matrix.copy(a.matrix);E.matrix.decompose(E.position,E.quaternion,E.scale)}n===true&&E.cameras.push(a)}const r=i.enabledFeatures;if(r&&r.includes(\"depth-sensing\")){const n=h.getDepthInformation(e[0]);n&&n.isValid&&n.texture&&f.init(t,n,i.renderState)}}for(let t=0;t<x.length;t++){const e=y[t];const n=x[t];e!==null&&n!==void 0&&n.update(e,r,l||s)}L&&L(e,r);r.detectedPlanes&&n.dispatchEvent({type:\"planesdetected\",data:r});p=null}const I=new WebGLAnimation;I.setAnimationLoop(onAnimationFrame);this.setAnimationLoop=function(t){L=t};this.dispose=function(){}}}const Sl=new Euler;const bl=new Matrix4;function WebGLMaterials(t,e){function refreshTransformUniform(t,e){t.matrixAutoUpdate===true&&t.updateMatrix();e.value.copy(t.matrix)}function refreshFogUniforms(e,n){n.color.getRGB(e.fogColor.value,getUnlitUniformColorSpace(t));if(n.isFog){e.fogNear.value=n.near;e.fogFar.value=n.far}else n.isFogExp2&&(e.fogDensity.value=n.density)}function refreshMaterialUniforms(t,e,n,i,r){if(e.isMeshBasicMaterial)refreshUniformsCommon(t,e);else if(e.isMeshLambertMaterial)refreshUniformsCommon(t,e);else if(e.isMeshToonMaterial){refreshUniformsCommon(t,e);refreshUniformsToon(t,e)}else if(e.isMeshPhongMaterial){refreshUniformsCommon(t,e);refreshUniformsPhong(t,e)}else if(e.isMeshStandardMaterial){refreshUniformsCommon(t,e);refreshUniformsStandard(t,e);e.isMeshPhysicalMaterial&&refreshUniformsPhysical(t,e,r)}else if(e.isMeshMatcapMaterial){refreshUniformsCommon(t,e);refreshUniformsMatcap(t,e)}else if(e.isMeshDepthMaterial)refreshUniformsCommon(t,e);else if(e.isMeshDistanceMaterial){refreshUniformsCommon(t,e);refreshUniformsDistance(t,e)}else if(e.isMeshNormalMaterial)refreshUniformsCommon(t,e);else if(e.isLineBasicMaterial){refreshUniformsLine(t,e);e.isLineDashedMaterial&&refreshUniformsDash(t,e)}else if(e.isPointsMaterial)refreshUniformsPoints(t,e,n,i);else if(e.isSpriteMaterial)refreshUniformsSprites(t,e);else if(e.isShadowMaterial){t.color.value.copy(e.color);t.opacity.value=e.opacity}else e.isShaderMaterial&&(e.uniformsNeedUpdate=false)}function refreshUniformsCommon(t,n){t.opacity.value=n.opacity;n.color&&t.diffuse.value.copy(n.color);n.emissive&&t.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity);if(n.map){t.map.value=n.map;refreshTransformUniform(n.map,t.mapTransform)}if(n.alphaMap){t.alphaMap.value=n.alphaMap;refreshTransformUniform(n.alphaMap,t.alphaMapTransform)}if(n.bumpMap){t.bumpMap.value=n.bumpMap;refreshTransformUniform(n.bumpMap,t.bumpMapTransform);t.bumpScale.value=n.bumpScale;n.side===d&&(t.bumpScale.value*=-1)}if(n.normalMap){t.normalMap.value=n.normalMap;refreshTransformUniform(n.normalMap,t.normalMapTransform);t.normalScale.value.copy(n.normalScale);n.side===d&&t.normalScale.value.negate()}if(n.displacementMap){t.displacementMap.value=n.displacementMap;refreshTransformUniform(n.displacementMap,t.displacementMapTransform);t.displacementScale.value=n.displacementScale;t.displacementBias.value=n.displacementBias}if(n.emissiveMap){t.emissiveMap.value=n.emissiveMap;refreshTransformUniform(n.emissiveMap,t.emissiveMapTransform)}if(n.specularMap){t.specularMap.value=n.specularMap;refreshTransformUniform(n.specularMap,t.specularMapTransform)}n.alphaTest>0&&(t.alphaTest.value=n.alphaTest);const i=e.get(n);const r=i.envMap;const s=i.envMapRotation;if(r){t.envMap.value=r;Sl.copy(s);Sl.x*=-1;Sl.y*=-1;Sl.z*=-1;if(r.isCubeTexture&&r.isRenderTargetTexture===false){Sl.y*=-1;Sl.z*=-1}t.envMapRotation.value.setFromMatrix4(bl.makeRotationFromEuler(Sl));t.flipEnvMap.value=r.isCubeTexture&&r.isRenderTargetTexture===false?-1:1;t.reflectivity.value=n.reflectivity;t.ior.value=n.ior;t.refractionRatio.value=n.refractionRatio}if(n.lightMap){t.lightMap.value=n.lightMap;t.lightMapIntensity.value=n.lightMapIntensity;refreshTransformUniform(n.lightMap,t.lightMapTransform)}if(n.aoMap){t.aoMap.value=n.aoMap;t.aoMapIntensity.value=n.aoMapIntensity;refreshTransformUniform(n.aoMap,t.aoMapTransform)}}function refreshUniformsLine(t,e){t.diffuse.value.copy(e.color);t.opacity.value=e.opacity;if(e.map){t.map.value=e.map;refreshTransformUniform(e.map,t.mapTransform)}}function refreshUniformsDash(t,e){t.dashSize.value=e.dashSize;t.totalSize.value=e.dashSize+e.gapSize;t.scale.value=e.scale}function refreshUniformsPoints(t,e,n,i){t.diffuse.value.copy(e.color);t.opacity.value=e.opacity;t.size.value=e.size*n;t.scale.value=i*.5;if(e.map){t.map.value=e.map;refreshTransformUniform(e.map,t.uvTransform)}if(e.alphaMap){t.alphaMap.value=e.alphaMap;refreshTransformUniform(e.alphaMap,t.alphaMapTransform)}e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}function refreshUniformsSprites(t,e){t.diffuse.value.copy(e.color);t.opacity.value=e.opacity;t.rotation.value=e.rotation;if(e.map){t.map.value=e.map;refreshTransformUniform(e.map,t.mapTransform)}if(e.alphaMap){t.alphaMap.value=e.alphaMap;refreshTransformUniform(e.alphaMap,t.alphaMapTransform)}e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}function refreshUniformsPhong(t,e){t.specular.value.copy(e.specular);t.shininess.value=Math.max(e.shininess,1e-4)}function refreshUniformsToon(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}function refreshUniformsStandard(t,e){t.metalness.value=e.metalness;if(e.metalnessMap){t.metalnessMap.value=e.metalnessMap;refreshTransformUniform(e.metalnessMap,t.metalnessMapTransform)}t.roughness.value=e.roughness;if(e.roughnessMap){t.roughnessMap.value=e.roughnessMap;refreshTransformUniform(e.roughnessMap,t.roughnessMapTransform)}e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function refreshUniformsPhysical(t,e,n){t.ior.value=e.ior;if(e.sheen>0){t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen);t.sheenRoughness.value=e.sheenRoughness;if(e.sheenColorMap){t.sheenColorMap.value=e.sheenColorMap;refreshTransformUniform(e.sheenColorMap,t.sheenColorMapTransform)}if(e.sheenRoughnessMap){t.sheenRoughnessMap.value=e.sheenRoughnessMap;refreshTransformUniform(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)}}if(e.clearcoat>0){t.clearcoat.value=e.clearcoat;t.clearcoatRoughness.value=e.clearcoatRoughness;if(e.clearcoatMap){t.clearcoatMap.value=e.clearcoatMap;refreshTransformUniform(e.clearcoatMap,t.clearcoatMapTransform)}if(e.clearcoatRoughnessMap){t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap;refreshTransformUniform(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)}if(e.clearcoatNormalMap){t.clearcoatNormalMap.value=e.clearcoatNormalMap;refreshTransformUniform(e.clearcoatNormalMap,t.clearcoatNormalMapTransform);t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale);e.side===d&&t.clearcoatNormalScale.value.negate()}}e.dispersion>0&&(t.dispersion.value=e.dispersion);if(e.iridescence>0){t.iridescence.value=e.iridescence;t.iridescenceIOR.value=e.iridescenceIOR;t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0];t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1];if(e.iridescenceMap){t.iridescenceMap.value=e.iridescenceMap;refreshTransformUniform(e.iridescenceMap,t.iridescenceMapTransform)}if(e.iridescenceThicknessMap){t.iridescenceThicknessMap.value=e.iridescenceThicknessMap;refreshTransformUniform(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)}}if(e.transmission>0){t.transmission.value=e.transmission;t.transmissionSamplerMap.value=n.texture;t.transmissionSamplerSize.value.set(n.width,n.height);if(e.transmissionMap){t.transmissionMap.value=e.transmissionMap;refreshTransformUniform(e.transmissionMap,t.transmissionMapTransform)}t.thickness.value=e.thickness;if(e.thicknessMap){t.thicknessMap.value=e.thicknessMap;refreshTransformUniform(e.thicknessMap,t.thicknessMapTransform)}t.attenuationDistance.value=e.attenuationDistance;t.attenuationColor.value.copy(e.attenuationColor)}if(e.anisotropy>0){t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation));if(e.anisotropyMap){t.anisotropyMap.value=e.anisotropyMap;refreshTransformUniform(e.anisotropyMap,t.anisotropyMapTransform)}}t.specularIntensity.value=e.specularIntensity;t.specularColor.value.copy(e.specularColor);if(e.specularColorMap){t.specularColorMap.value=e.specularColorMap;refreshTransformUniform(e.specularColorMap,t.specularColorMapTransform)}if(e.specularIntensityMap){t.specularIntensityMap.value=e.specularIntensityMap;refreshTransformUniform(e.specularIntensityMap,t.specularIntensityMapTransform)}}function refreshUniformsMatcap(t,e){e.matcap&&(t.matcap.value=e.matcap)}function refreshUniformsDistance(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld);t.nearDistance.value=i.shadow.camera.near;t.farDistance.value=i.shadow.camera.far}return{refreshFogUniforms:refreshFogUniforms,refreshMaterialUniforms:refreshMaterialUniforms}}function WebGLUniformsGroups(t,e,n,i){let r={};let s={};let a=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function bind(t,e){const n=e.program;i.uniformBlockBinding(t,n)}function update(t,n){let a=r[t.id];if(a===void 0){prepareUniformsGroup(t);a=createBuffer(t);r[t.id]=a;t.addEventListener(\"dispose\",onUniformsGroupsDispose)}const o=n.program;i.updateUBOMapping(t,o);const l=e.render.frame;if(s[t.id]!==l){updateBufferData(t);s[t.id]=l}}function createBuffer(e){const n=allocateBindingPointIndex();e.__bindingPointIndex=n;const i=t.createBuffer();const r=e.__size;const s=e.usage;t.bindBuffer(t.UNIFORM_BUFFER,i);t.bufferData(t.UNIFORM_BUFFER,r,s);t.bindBuffer(t.UNIFORM_BUFFER,null);t.bindBufferBase(t.UNIFORM_BUFFER,n,i);return i}function allocateBindingPointIndex(){for(let t=0;t<o;t++)if(a.indexOf(t)===-1){a.push(t);return t}console.error(\"THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.\");return 0}function updateBufferData(e){const n=r[e.id];const i=e.uniforms;const s=e.__cache;t.bindBuffer(t.UNIFORM_BUFFER,n);for(let e=0,n=i.length;e<n;e++){const n=Array.isArray(i[e])?i[e]:[i[e]];for(let i=0,r=n.length;i<r;i++){const r=n[i];if(hasUniformChanged(r,e,i,s)===true){const e=r.__offset;const n=Array.isArray(r.value)?r.value:[r.value];let i=0;for(let s=0;s<n.length;s++){const a=n[s];const o=getUniformSize(a);if(typeof a===\"number\"||typeof a===\"boolean\"){r.__data[0]=a;t.bufferSubData(t.UNIFORM_BUFFER,e+i,r.__data)}else if(a.isMatrix3){r.__data[0]=a.elements[0];r.__data[1]=a.elements[1];r.__data[2]=a.elements[2];r.__data[3]=0;r.__data[4]=a.elements[3];r.__data[5]=a.elements[4];r.__data[6]=a.elements[5];r.__data[7]=0;r.__data[8]=a.elements[6];r.__data[9]=a.elements[7];r.__data[10]=a.elements[8];r.__data[11]=0}else{a.toArray(r.__data,i);i+=o.storage/Float32Array.BYTES_PER_ELEMENT}}t.bufferSubData(t.UNIFORM_BUFFER,e,r.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}function hasUniformChanged(t,e,n,i){const r=t.value;const s=e+\"_\"+n;if(i[s]===void 0){i[s]=typeof r===\"number\"||typeof r===\"boolean\"?r:r.clone();return true}{const t=i[s];if(typeof r===\"number\"||typeof r===\"boolean\"){if(t!==r){i[s]=r;return true}}else if(t.equals(r)===false){t.copy(r);return true}}return false}function prepareUniformsGroup(t){const e=t.uniforms;let n=0;const i=16;for(let t=0,r=e.length;t<r;t++){const r=Array.isArray(e[t])?e[t]:[e[t]];for(let t=0,e=r.length;t<e;t++){const e=r[t];const s=Array.isArray(e.value)?e.value:[e.value];for(let t=0,r=s.length;t<r;t++){const r=s[t];const a=getUniformSize(r);const o=n%i;o!==0&&i-o<a.boundary&&(n+=i-o);e.__data=new Float32Array(a.storage/Float32Array.BYTES_PER_ELEMENT);e.__offset=n;n+=a.storage}}}const r=n%i;r>0&&(n+=i-r);t.__size=n;t.__cache={};return this}function getUniformSize(t){const e={boundary:0,storage:0};if(typeof t===\"number\"||typeof t===\"boolean\"){e.boundary=4;e.storage=4}else if(t.isVector2){e.boundary=8;e.storage=8}else if(t.isVector3||t.isColor){e.boundary=16;e.storage=12}else if(t.isVector4){e.boundary=16;e.storage=16}else if(t.isMatrix3){e.boundary=48;e.storage=48}else if(t.isMatrix4){e.boundary=64;e.storage=64}else t.isTexture?console.warn(\"THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.\"):console.warn(\"THREE.WebGLRenderer: Unsupported uniform value type.\",t);return e}function onUniformsGroupsDispose(e){const n=e.target;n.removeEventListener(\"dispose\",onUniformsGroupsDispose);const i=a.indexOf(n.__bindingPointIndex);a.splice(i,1);t.deleteBuffer(r[n.id]);delete r[n.id];delete s[n.id]}function dispose(){for(const e in r)t.deleteBuffer(r[e]);a=[];r={};s={}}return{bind:bind,update:update,dispose:dispose}}class WebGLRenderer{constructor(e={}){const{canvas:n=createCanvasElement(),context:i=null,depth:r=true,stencil:s=false,alpha:a=false,antialias:o=false,premultipliedAlpha:l=true,preserveDrawingBuffer:c=false,powerPreference:h=\"default\",failIfMajorPerformanceCaveat:f=false}=e;this.isWebGLRenderer=true;let m;if(i!==null){if(typeof WebGLRenderingContext!==\"undefined\"&&i instanceof WebGLRenderingContext)throw new Error(\"THREE.WebGLRenderer: WebGL 1 is not supported since r163.\");m=i.getContextAttributes().alpha}else m=a;const g=new Uint32Array(4);const _=new Int32Array(4);let x=null;let y=null;const M=[];const S=[];this.domElement=n;this.debug={\n/**\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t\t * @type {boolean}\n\t\t\t */\ncheckShaderErrors:true,\n/**\n\t\t\t * Callback for custom error reporting.\n\t\t\t * @type {?Function}\n\t\t\t */\nonShaderError:null};this.autoClear=true;this.autoClearColor=true;this.autoClearDepth=true;this.autoClearStencil=true;this.sortObjects=true;this.clippingPlanes=[];this.localClippingEnabled=false;this._outputColorSpace=Ke;this.toneMapping=Q;this.toneMappingExposure=1;const b=this;let T=false;let w=0;let E=0;let A=null;let C=-1;let R=null;const P=new Vector4;const L=new Vector4;let I=null;const U=new Color(0);let D=0;let N=n.width;let B=n.height;let O=1;let V=null;let F=null;const z=new Vector4(0,0,N,B);const G=new Vector4(0,0,N,B);let k=false;const H=new Frustum;let W=false;let X=false;const j=new Matrix4;const q=new Vector3;const Y=new Vector4;const K={background:null,fog:null,environment:null,overrideMaterial:null,isScene:true};let Z=false;function getTargetPixelRatio(){return A===null?O:1}let J=i;function getContext(t,e){return n.getContext(t,e)}try{const e={alpha:true,depth:r,stencil:s,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:f};\"setAttribute\"in n&&n.setAttribute(\"data-engine\",`three.js r${t}`);n.addEventListener(\"webglcontextlost\",onContextLost,false);n.addEventListener(\"webglcontextrestored\",onContextRestore,false);n.addEventListener(\"webglcontextcreationerror\",onContextCreationError,false);if(J===null){const t=\"webgl2\";J=getContext(t,e);if(J===null)throw getContext(t)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}}catch(t){console.error(\"THREE.WebGLRenderer: \"+t.message);throw t}let $,tt,et,nt;let it,rt,st,at,ot,lt,ct;let ht,ut,dt,pt,ft,mt;let gt,vt,_t,xt;let yt,Mt,St;function initGLContext(){$=new WebGLExtensions(J);$.init();yt=new WebGLUtils(J,$);tt=new WebGLCapabilities(J,$,e,yt);et=new WebGLState(J);nt=new WebGLInfo(J);it=new WebGLProperties;rt=new WebGLTextures(J,$,et,it,tt,yt,nt);st=new WebGLCubeMaps(b);at=new WebGLCubeUVMaps(b);ot=new WebGLAttributes(J);Mt=new WebGLBindingStates(J,ot);lt=new WebGLGeometries(J,ot,nt,Mt);ct=new WebGLObjects(J,lt,ot,nt);vt=new WebGLMorphtargets(J,tt,rt);ft=new WebGLClipping(it);ht=new WebGLPrograms(b,st,at,$,tt,Mt,ft);ut=new WebGLMaterials(b,it);dt=new WebGLRenderLists;pt=new WebGLRenderStates($);gt=new WebGLBackground(b,st,at,et,ct,m,l);mt=new WebGLShadowMap(b,ct,tt);St=new WebGLUniformsGroups(J,nt,tt,et);_t=new WebGLBufferRenderer(J,$,nt);xt=new WebGLIndexedBufferRenderer(J,$,nt);nt.programs=ht.programs;b.capabilities=tt;b.extensions=$;b.properties=it;b.renderLists=dt;b.shadowMap=mt;b.state=et;b.info=nt}initGLContext();const bt=new WebXRManager(b,J);this.xr=bt;this.getContext=function(){return J};this.getContextAttributes=function(){return J.getContextAttributes()};this.forceContextLoss=function(){const t=$.get(\"WEBGL_lose_context\");t&&t.loseContext()};this.forceContextRestore=function(){const t=$.get(\"WEBGL_lose_context\");t&&t.restoreContext()};this.getPixelRatio=function(){return O};this.setPixelRatio=function(t){if(t!==void 0){O=t;this.setSize(N,B,false)}};this.getSize=function(t){return t.set(N,B)};this.setSize=function(t,e,i=true){if(bt.isPresenting)console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");else{N=t;B=e;n.width=Math.floor(t*O);n.height=Math.floor(e*O);if(i===true){n.style.width=t+\"px\";n.style.height=e+\"px\"}this.setViewport(0,0,t,e)}};this.getDrawingBufferSize=function(t){return t.set(N*O,B*O).floor()};this.setDrawingBufferSize=function(t,e,i){N=t;B=e;O=i;n.width=Math.floor(t*i);n.height=Math.floor(e*i);this.setViewport(0,0,t,e)};this.getCurrentViewport=function(t){return t.copy(P)};this.getViewport=function(t){return t.copy(z)};this.setViewport=function(t,e,n,i){t.isVector4?z.set(t.x,t.y,t.z,t.w):z.set(t,e,n,i);et.viewport(P.copy(z).multiplyScalar(O).round())};this.getScissor=function(t){return t.copy(G)};this.setScissor=function(t,e,n,i){t.isVector4?G.set(t.x,t.y,t.z,t.w):G.set(t,e,n,i);et.scissor(L.copy(G).multiplyScalar(O).round())};this.getScissorTest=function(){return k};this.setScissorTest=function(t){et.setScissorTest(k=t)};this.setOpaqueSort=function(t){V=t};this.setTransparentSort=function(t){F=t};this.getClearColor=function(t){return t.copy(gt.getClearColor())};this.setClearColor=function(){gt.setClearColor.apply(gt,arguments)};this.getClearAlpha=function(){return gt.getClearAlpha()};this.setClearAlpha=function(){gt.setClearAlpha.apply(gt,arguments)};this.clear=function(t=true,e=true,n=true){let i=0;if(t){let t=false;if(A!==null){const e=A.texture.format;t=e===Jt||e===Kt||e===qt}if(t){const t=A.texture.type;const e=t===At||t===It||t===Pt||t===Ot||t===Nt||t===Bt;const n=gt.getClearColor();const i=gt.getClearAlpha();const r=n.r;const s=n.g;const a=n.b;if(e){g[0]=r;g[1]=s;g[2]=a;g[3]=i;J.clearBufferuiv(J.COLOR,0,g)}else{_[0]=r;_[1]=s;_[2]=a;_[3]=i;J.clearBufferiv(J.COLOR,0,_)}}else i|=J.COLOR_BUFFER_BIT}e&&(i|=J.DEPTH_BUFFER_BIT);if(n){i|=J.STENCIL_BUFFER_BIT;this.state.buffers.stencil.setMask(4294967295)}J.clear(i)};this.clearColor=function(){this.clear(true,false,false)};this.clearDepth=function(){this.clear(false,true,false)};this.clearStencil=function(){this.clear(false,false,true)};this.dispose=function(){n.removeEventListener(\"webglcontextlost\",onContextLost,false);n.removeEventListener(\"webglcontextrestored\",onContextRestore,false);n.removeEventListener(\"webglcontextcreationerror\",onContextCreationError,false);dt.dispose();pt.dispose();it.dispose();st.dispose();at.dispose();ct.dispose();Mt.dispose();St.dispose();ht.dispose();bt.dispose();bt.removeEventListener(\"sessionstart\",onXRSessionStart);bt.removeEventListener(\"sessionend\",onXRSessionEnd);Et.stop()};function onContextLost(t){t.preventDefault();console.log(\"THREE.WebGLRenderer: Context Lost.\");T=true}function onContextRestore(){console.log(\"THREE.WebGLRenderer: Context Restored.\");T=false;const t=nt.autoReset;const e=mt.enabled;const n=mt.autoUpdate;const i=mt.needsUpdate;const r=mt.type;initGLContext();nt.autoReset=t;mt.enabled=e;mt.autoUpdate=n;mt.needsUpdate=i;mt.type=r}function onContextCreationError(t){console.error(\"THREE.WebGLRenderer: A WebGL context could not be created. Reason: \",t.statusMessage)}function onMaterialDispose(t){const e=t.target;e.removeEventListener(\"dispose\",onMaterialDispose);deallocateMaterial(e)}function deallocateMaterial(t){releaseMaterialProgramReferences(t);it.remove(t)}function releaseMaterialProgramReferences(t){const e=it.get(t).programs;if(e!==void 0){e.forEach((function(t){ht.releaseProgram(t)}));t.isShaderMaterial&&ht.releaseShaderCache(t)}}this.renderBufferDirect=function(t,e,n,i,r,s){e===null&&(e=K);const a=r.isMesh&&r.matrixWorld.determinant()<0;const o=setProgram(t,e,n,i,r);et.setMaterial(i,a);let l=n.index;let c=1;if(i.wireframe===true){l=lt.getWireframeAttribute(n);if(l===void 0)return;c=2}const h=n.drawRange;const u=n.attributes.position;let d=h.start*c;let p=(h.start+h.count)*c;if(s!==null){d=Math.max(d,s.start*c);p=Math.min(p,(s.start+s.count)*c)}if(l!==null){d=Math.max(d,0);p=Math.min(p,l.count)}else if(u!==void 0&&u!==null){d=Math.max(d,0);p=Math.min(p,u.count)}const f=p-d;if(f<0||f===Infinity)return;Mt.setup(r,i,o,n,l);let m;let g=_t;if(l!==null){m=ot.get(l);g=xt;g.setIndex(m)}if(r.isMesh)if(i.wireframe===true){et.setLineWidth(i.wireframeLinewidth*getTargetPixelRatio());g.setMode(J.LINES)}else g.setMode(J.TRIANGLES);else if(r.isLine){let t=i.linewidth;t===void 0&&(t=1);et.setLineWidth(t*getTargetPixelRatio());r.isLineSegments?g.setMode(J.LINES):r.isLineLoop?g.setMode(J.LINE_LOOP):g.setMode(J.LINE_STRIP)}else r.isPoints?g.setMode(J.POINTS):r.isSprite&&g.setMode(J.TRIANGLES);if(r.isBatchedMesh)if(r._multiDrawInstances!==null)g.renderMultiDrawInstances(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount,r._multiDrawInstances);else if($.get(\"WEBGL_multi_draw\"))g.renderMultiDraw(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount);else{const t=r._multiDrawStarts;const e=r._multiDrawCounts;const n=r._multiDrawCount;const s=l?ot.get(l).bytesPerElement:1;const a=it.get(i).currentProgram.getUniforms();for(let i=0;i<n;i++){a.setValue(J,\"_gl_DrawID\",i);g.render(t[i]/s,e[i])}}else if(r.isInstancedMesh)g.renderInstances(d,f,r.count);else if(n.isInstancedBufferGeometry){const t=n._maxInstanceCount!==void 0?n._maxInstanceCount:Infinity;const e=Math.min(n.instanceCount,t);g.renderInstances(d,f,e)}else g.render(d,f)};function prepareMaterial(t,e,n){if(t.transparent===true&&t.side===p&&t.forceSinglePass===false){t.side=d;t.needsUpdate=true;getProgram(t,e,n);t.side=u;t.needsUpdate=true;getProgram(t,e,n);t.side=p}else getProgram(t,e,n)}this.compile=function(t,e,n=null){n===null&&(n=t);y=pt.get(n);y.init(e);S.push(y);n.traverseVisible((function(t){if(t.isLight&&t.layers.test(e.layers)){y.pushLight(t);t.castShadow&&y.pushShadow(t)}}));t!==n&&t.traverseVisible((function(t){if(t.isLight&&t.layers.test(e.layers)){y.pushLight(t);t.castShadow&&y.pushShadow(t)}}));y.setupLights();const i=new Set;t.traverse((function(t){const e=t.material;if(e)if(Array.isArray(e))for(let r=0;r<e.length;r++){const s=e[r];prepareMaterial(s,n,t);i.add(s)}else{prepareMaterial(e,n,t);i.add(e)}}));S.pop();y=null;return i};this.compileAsync=function(t,e,n=null){const i=this.compile(t,e,n);return new Promise((e=>{function checkMaterialsReady(){i.forEach((function(t){const e=it.get(t);const n=e.currentProgram;n.isReady()&&i.delete(t)}));i.size!==0?setTimeout(checkMaterialsReady,10):e(t)}$.get(\"KHR_parallel_shader_compile\")!==null?checkMaterialsReady():setTimeout(checkMaterialsReady,10)}))};let Tt=null;function onAnimationFrame(t){Tt&&Tt(t)}function onXRSessionStart(){Et.stop()}function onXRSessionEnd(){Et.start()}const Et=new WebGLAnimation;Et.setAnimationLoop(onAnimationFrame);typeof self!==\"undefined\"&&Et.setContext(self);this.setAnimationLoop=function(t){Tt=t;bt.setAnimationLoop(t);t===null?Et.stop():Et.start()};bt.addEventListener(\"sessionstart\",onXRSessionStart);bt.addEventListener(\"sessionend\",onXRSessionEnd);this.render=function(t,e){if(e!==void 0&&e.isCamera!==true){console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");return}if(T===true)return;t.matrixWorldAutoUpdate===true&&t.updateMatrixWorld();e.parent===null&&e.matrixWorldAutoUpdate===true&&e.updateMatrixWorld();if(bt.enabled===true&&bt.isPresenting===true){bt.cameraAutoUpdate===true&&bt.updateCamera(e);e=bt.getCamera()}t.isScene===true&&t.onBeforeRender(b,t,e,A);y=pt.get(t,S.length);y.init(e);S.push(y);j.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);H.setFromProjectionMatrix(j);X=this.localClippingEnabled;W=ft.init(this.clippingPlanes,X);x=dt.get(t,M.length);x.init();M.push(x);if(bt.enabled===true&&bt.isPresenting===true){const t=b.xr.getDepthSensingMesh();t!==null&&projectObject(t,e,-Infinity,b.sortObjects)}projectObject(t,e,0,b.sortObjects);x.finish();b.sortObjects===true&&x.sort(V,F);Z=bt.enabled===false||bt.isPresenting===false||bt.hasDepthSensing()===false;Z&&gt.addToRenderList(x,t);this.info.render.frame++;W===true&&ft.beginShadows();const n=y.state.shadowsArray;mt.render(n,t,e);W===true&&ft.endShadows();this.info.autoReset===true&&this.info.reset();const i=x.opaque;const r=x.transmissive;y.setupLights();if(e.isArrayCamera){const n=e.cameras;if(r.length>0)for(let e=0,s=n.length;e<s;e++){const s=n[e];renderTransmissionPass(i,r,t,s)}Z&&gt.render(t);for(let e=0,i=n.length;e<i;e++){const i=n[e];renderScene(x,t,i,i.viewport)}}else{r.length>0&&renderTransmissionPass(i,r,t,e);Z&&gt.render(t);renderScene(x,t,e)}if(A!==null){rt.updateMultisampleRenderTarget(A);rt.updateRenderTargetMipmap(A)}t.isScene===true&&t.onAfterRender(b,t,e);Mt.resetDefaultState();C=-1;R=null;S.pop();if(S.length>0){y=S[S.length-1];W===true&&ft.setGlobalState(b.clippingPlanes,y.state.camera)}else y=null;M.pop();x=M.length>0?M[M.length-1]:null};function projectObject(t,e,n,i){if(t.visible===false)return;const r=t.layers.test(e.layers);if(r)if(t.isGroup)n=t.renderOrder;else if(t.isLOD)t.autoUpdate===true&&t.update(e);else if(t.isLight){y.pushLight(t);t.castShadow&&y.pushShadow(t)}else if(t.isSprite){if(!t.frustumCulled||H.intersectsSprite(t)){i&&Y.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=ct.update(t);const r=t.material;r.visible&&x.push(t,e,r,n,Y.z,null)}}else if((t.isMesh||t.isLine||t.isPoints)&&(!t.frustumCulled||H.intersectsObject(t))){const e=ct.update(t);const r=t.material;if(i){if(t.boundingSphere!==void 0){t.boundingSphere===null&&t.computeBoundingSphere();Y.copy(t.boundingSphere.center)}else{e.boundingSphere===null&&e.computeBoundingSphere();Y.copy(e.boundingSphere.center)}Y.applyMatrix4(t.matrixWorld).applyMatrix4(j)}if(Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s];const o=r[a.materialIndex];o&&o.visible&&x.push(t,e,o,n,Y.z,a)}}else r.visible&&x.push(t,e,r,n,Y.z,null)}const s=t.children;for(let t=0,r=s.length;t<r;t++)projectObject(s[t],e,n,i)}function renderScene(t,e,n,i){const r=t.opaque;const s=t.transmissive;const a=t.transparent;y.setupLightsView(n);W===true&&ft.setGlobalState(b.clippingPlanes,n);i&&et.viewport(P.copy(i));r.length>0&&renderObjects(r,e,n);s.length>0&&renderObjects(s,e,n);a.length>0&&renderObjects(a,e,n);et.buffers.depth.setTest(true);et.buffers.depth.setMask(true);et.buffers.color.setMask(true);et.setPolygonOffset(false)}function renderTransmissionPass(t,e,n,i){const r=n.isScene===true?n.overrideMaterial:null;if(r!==null)return;y.state.transmissionRenderTarget[i.id]===void 0&&(y.state.transmissionRenderTarget[i.id]=new WebGLRenderTarget(1,1,{generateMipmaps:true,type:$.has(\"EXT_color_buffer_half_float\")||$.has(\"EXT_color_buffer_float\")?Dt:At,minFilter:wt,samples:4,stencilBuffer:s,resolveDepthBuffer:false,resolveStencilBuffer:false,colorSpace:$n.workingColorSpace}));const a=y.state.transmissionRenderTarget[i.id];const o=i.viewport||P;a.setSize(o.z,o.w);const l=b.getRenderTarget();b.setRenderTarget(a);b.getClearColor(U);D=b.getClearAlpha();D<1&&b.setClearColor(16777215,.5);Z?gt.render(n):b.clear();const c=b.toneMapping;b.toneMapping=Q;const h=i.viewport;i.viewport!==void 0&&(i.viewport=void 0);y.setupLightsView(i);W===true&&ft.setGlobalState(b.clippingPlanes,i);renderObjects(t,n,i);rt.updateMultisampleRenderTarget(a);rt.updateRenderTargetMipmap(a);if($.has(\"WEBGL_multisampled_render_to_texture\")===false){let t=false;for(let r=0,s=e.length;r<s;r++){const s=e[r];const a=s.object;const o=s.geometry;const l=s.material;const c=s.group;if(l.side===p&&a.layers.test(i.layers)){const e=l.side;l.side=d;l.needsUpdate=true;renderObject(a,n,i,o,l,c);l.side=e;l.needsUpdate=true;t=true}}if(t===true){rt.updateMultisampleRenderTarget(a);rt.updateRenderTargetMipmap(a)}}b.setRenderTarget(l);b.setClearColor(U,D);h!==void 0&&(i.viewport=h);b.toneMapping=c}function renderObjects(t,e,n){const i=e.isScene===true?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r];const a=s.object;const o=s.geometry;const l=i===null?s.material:i;const c=s.group;a.layers.test(n.layers)&&renderObject(a,e,n,o,l,c)}}function renderObject(t,e,n,i,r,s){t.onBeforeRender(b,e,n,i,r,s);t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld);t.normalMatrix.getNormalMatrix(t.modelViewMatrix);if(r.transparent===true&&r.side===p&&r.forceSinglePass===false){r.side=d;r.needsUpdate=true;b.renderBufferDirect(n,e,i,r,t,s);r.side=u;r.needsUpdate=true;b.renderBufferDirect(n,e,i,r,t,s);r.side=p}else b.renderBufferDirect(n,e,i,r,t,s);t.onAfterRender(b,e,n,i,r,s)}function getProgram(t,e,n){e.isScene!==true&&(e=K);const i=it.get(t);const r=y.state.lights;const s=y.state.shadowsArray;const a=r.state.version;const o=ht.getParameters(t,r.state,s,e,n);const l=ht.getProgramCacheKey(o);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null;i.fog=e.fog;i.envMap=(t.isMeshStandardMaterial?at:st).get(t.envMap||i.environment);i.envMapRotation=i.environment!==null&&t.envMap===null?e.environmentRotation:t.envMapRotation;if(c===void 0){t.addEventListener(\"dispose\",onMaterialDispose);c=new Map;i.programs=c}let h=c.get(l);if(h!==void 0){if(i.currentProgram===h&&i.lightsStateVersion===a){updateCommonMaterialProperties(t,o);return h}}else{o.uniforms=ht.getUniforms(t);t.onBeforeCompile(o,b);h=ht.acquireProgram(o,l);c.set(l,h);i.uniforms=o.uniforms}const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&t.clipping!==true||(u.clippingPlanes=ft.uniform);updateCommonMaterialProperties(t,o);i.needsLights=materialNeedsLights(t);i.lightsStateVersion=a;if(i.needsLights){u.ambientLightColor.value=r.state.ambient;u.lightProbe.value=r.state.probe;u.directionalLights.value=r.state.directional;u.directionalLightShadows.value=r.state.directionalShadow;u.spotLights.value=r.state.spot;u.spotLightShadows.value=r.state.spotShadow;u.rectAreaLights.value=r.state.rectArea;u.ltc_1.value=r.state.rectAreaLTC1;u.ltc_2.value=r.state.rectAreaLTC2;u.pointLights.value=r.state.point;u.pointLightShadows.value=r.state.pointShadow;u.hemisphereLights.value=r.state.hemi;u.directionalShadowMap.value=r.state.directionalShadowMap;u.directionalShadowMatrix.value=r.state.directionalShadowMatrix;u.spotShadowMap.value=r.state.spotShadowMap;u.spotLightMatrix.value=r.state.spotLightMatrix;u.spotLightMap.value=r.state.spotLightMap;u.pointShadowMap.value=r.state.pointShadowMap;u.pointShadowMatrix.value=r.state.pointShadowMatrix}i.currentProgram=h;i.uniformsList=null;return h}function getUniformList(t){if(t.uniformsList===null){const e=t.currentProgram.getUniforms();t.uniformsList=WebGLUniforms.seqWithValue(e.seq,t.uniforms)}return t.uniformsList}function updateCommonMaterialProperties(t,e){const n=it.get(t);n.outputColorSpace=e.outputColorSpace;n.batching=e.batching;n.batchingColor=e.batchingColor;n.instancing=e.instancing;n.instancingColor=e.instancingColor;n.instancingMorph=e.instancingMorph;n.skinning=e.skinning;n.morphTargets=e.morphTargets;n.morphNormals=e.morphNormals;n.morphColors=e.morphColors;n.morphTargetsCount=e.morphTargetsCount;n.numClippingPlanes=e.numClippingPlanes;n.numIntersection=e.numClipIntersection;n.vertexAlphas=e.vertexAlphas;n.vertexTangents=e.vertexTangents;n.toneMapping=e.toneMapping}function setProgram(t,e,n,i,r){e.isScene!==true&&(e=K);rt.resetTextureUnits();const s=e.fog;const a=i.isMeshStandardMaterial?e.environment:null;const o=A===null?b.outputColorSpace:A.isXRRenderTarget===true?A.texture.colorSpace:Ze;const l=(i.isMeshStandardMaterial?at:st).get(i.envMap||a);const c=i.vertexColors===true&&!!n.attributes.color&&n.attributes.color.itemSize===4;const h=!!n.attributes.tangent&&(!!i.normalMap||i.anisotropy>0);const u=!!n.morphAttributes.position;const d=!!n.morphAttributes.normal;const p=!!n.morphAttributes.color;let f=Q;i.toneMapped&&(A!==null&&A.isXRRenderTarget!==true||(f=b.toneMapping));const m=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color;const g=m!==void 0?m.length:0;const _=it.get(i);const x=y.state.lights;if(W===true&&(X===true||t!==R)){const e=t===R&&i.id===C;ft.setState(i,t,e)}let M=false;if(i.version===_.__version)_.needsLights&&_.lightsStateVersion!==x.state.version||_.outputColorSpace!==o||r.isBatchedMesh&&_.batching===false?M=true:r.isBatchedMesh||_.batching!==true?r.isBatchedMesh&&_.batchingColor===true&&r.colorTexture===null||r.isBatchedMesh&&_.batchingColor===false&&r.colorTexture!==null||r.isInstancedMesh&&_.instancing===false?M=true:r.isInstancedMesh||_.instancing!==true?r.isSkinnedMesh&&_.skinning===false?M=true:r.isSkinnedMesh||_.skinning!==true?r.isInstancedMesh&&_.instancingColor===true&&r.instanceColor===null||r.isInstancedMesh&&_.instancingColor===false&&r.instanceColor!==null||r.isInstancedMesh&&_.instancingMorph===true&&r.morphTexture===null||r.isInstancedMesh&&_.instancingMorph===false&&r.morphTexture!==null||_.envMap!==l||i.fog===true&&_.fog!==s?M=true:_.numClippingPlanes===void 0||_.numClippingPlanes===ft.numPlanes&&_.numIntersection===ft.numIntersection?(_.vertexAlphas!==c||_.vertexTangents!==h||_.morphTargets!==u||_.morphNormals!==d||_.morphColors!==p||_.toneMapping!==f||_.morphTargetsCount!==g)&&(M=true):M=true:M=true:M=true:M=true;else{M=true;_.__version=i.version}let S=_.currentProgram;M===true&&(S=getProgram(i,e,r));let T=false;let w=false;let E=false;const P=S.getUniforms(),L=_.uniforms;if(et.useProgram(S.program)){T=true;w=true;E=true}if(i.id!==C){C=i.id;w=true}if(T||R!==t){P.setValue(J,\"projectionMatrix\",t.projectionMatrix);P.setValue(J,\"viewMatrix\",t.matrixWorldInverse);const e=P.map.cameraPosition;e!==void 0&&e.setValue(J,q.setFromMatrixPosition(t.matrixWorld));tt.logarithmicDepthBuffer&&P.setValue(J,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2));(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&P.setValue(J,\"isOrthographic\",t.isOrthographicCamera===true);if(R!==t){R=t;w=true;E=true}}if(r.isSkinnedMesh){P.setOptional(J,r,\"bindMatrix\");P.setOptional(J,r,\"bindMatrixInverse\");const t=r.skeleton;if(t){t.boneTexture===null&&t.computeBoneTexture();P.setValue(J,\"boneTexture\",t.boneTexture,rt)}}if(r.isBatchedMesh){P.setOptional(J,r,\"batchingTexture\");P.setValue(J,\"batchingTexture\",r._matricesTexture,rt);P.setOptional(J,r,\"batchingIdTexture\");P.setValue(J,\"batchingIdTexture\",r._indirectTexture,rt);P.setOptional(J,r,\"batchingColorTexture\");r._colorsTexture!==null&&P.setValue(J,\"batchingColorTexture\",r._colorsTexture,rt)}const I=n.morphAttributes;I.position===void 0&&I.normal===void 0&&I.color===void 0||vt.update(r,n,S);if(w||_.receiveShadow!==r.receiveShadow){_.receiveShadow=r.receiveShadow;P.setValue(J,\"receiveShadow\",r.receiveShadow)}if(i.isMeshGouraudMaterial&&i.envMap!==null){L.envMap.value=l;L.flipEnvMap.value=l.isCubeTexture&&l.isRenderTargetTexture===false?-1:1}i.isMeshStandardMaterial&&i.envMap===null&&e.environment!==null&&(L.envMapIntensity.value=e.environmentIntensity);if(w){P.setValue(J,\"toneMappingExposure\",b.toneMappingExposure);_.needsLights&&markUniformsLightsNeedsUpdate(L,E);s&&i.fog===true&&ut.refreshFogUniforms(L,s);ut.refreshMaterialUniforms(L,i,O,B,y.state.transmissionRenderTarget[t.id]);WebGLUniforms.upload(J,getUniformList(_),L,rt)}if(i.isShaderMaterial&&i.uniformsNeedUpdate===true){WebGLUniforms.upload(J,getUniformList(_),L,rt);i.uniformsNeedUpdate=false}i.isSpriteMaterial&&P.setValue(J,\"center\",r.center);P.setValue(J,\"modelViewMatrix\",r.modelViewMatrix);P.setValue(J,\"normalMatrix\",r.normalMatrix);P.setValue(J,\"modelMatrix\",r.matrixWorld);if(i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e<n;e++){const n=t[e];St.update(n,S);St.bind(n,S)}}return S}function markUniformsLightsNeedsUpdate(t,e){t.ambientLightColor.needsUpdate=e;t.lightProbe.needsUpdate=e;t.directionalLights.needsUpdate=e;t.directionalLightShadows.needsUpdate=e;t.pointLights.needsUpdate=e;t.pointLightShadows.needsUpdate=e;t.spotLights.needsUpdate=e;t.spotLightShadows.needsUpdate=e;t.rectAreaLights.needsUpdate=e;t.hemisphereLights.needsUpdate=e}function materialNeedsLights(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&t.lights===true}this.getActiveCubeFace=function(){return w};this.getActiveMipmapLevel=function(){return E};this.getRenderTarget=function(){return A};this.setRenderTargetTextures=function(t,e,n){it.get(t.texture).__webglTexture=e;it.get(t.depthTexture).__webglTexture=n;const i=it.get(t);i.__hasExternalTextures=true;i.__autoAllocateDepthBuffer=n===void 0;if(!i.__autoAllocateDepthBuffer&&$.has(\"WEBGL_multisampled_render_to_texture\")===true){console.warn(\"THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided\");i.__useRenderToTexture=false}};this.setRenderTargetFramebuffer=function(t,e){const n=it.get(t);n.__webglFramebuffer=e;n.__useDefaultFramebuffer=e===void 0};this.setRenderTarget=function(t,e=0,n=0){A=t;w=e;E=n;let i=true;let r=null;let s=false;let a=false;if(t){const o=it.get(t);if(o.__useDefaultFramebuffer!==void 0){et.bindFramebuffer(J.FRAMEBUFFER,null);i=false}else o.__webglFramebuffer===void 0?rt.setupRenderTarget(t):o.__hasExternalTextures&&rt.rebindTextures(t,it.get(t.texture).__webglTexture,it.get(t.depthTexture).__webglTexture);const l=t.texture;(l.isData3DTexture||l.isDataArrayTexture||l.isCompressedArrayTexture)&&(a=true);const c=it.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget){r=Array.isArray(c[e])?c[e][n]:c[e];s=true}else r=t.samples>0&&rt.useMultisampledRTT(t)===false?it.get(t).__webglMultisampledFramebuffer:Array.isArray(c)?c[n]:c;P.copy(t.viewport);L.copy(t.scissor);I=t.scissorTest}else{P.copy(z).multiplyScalar(O).floor();L.copy(G).multiplyScalar(O).floor();I=k}const o=et.bindFramebuffer(J.FRAMEBUFFER,r);o&&i&&et.drawBuffers(t,r);et.viewport(P);et.scissor(L);et.setScissorTest(I);if(s){const i=it.get(t.texture);J.framebufferTexture2D(J.FRAMEBUFFER,J.COLOR_ATTACHMENT0,J.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=it.get(t.texture);const r=e||0;J.framebufferTextureLayer(J.FRAMEBUFFER,J.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}C=-1};this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!(t&&t.isWebGLRenderTarget)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");return}let o=it.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget&&a!==void 0&&(o=o[a]);if(o){et.bindFramebuffer(J.FRAMEBUFFER,o);try{const a=t.texture;const o=a.format;const l=a.type;if(!tt.textureFormatReadable(o)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");return}if(!tt.textureTypeReadable(l)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");return}e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&J.readPixels(e,n,i,r,yt.convert(o),yt.convert(l),s)}finally{const t=A!==null?it.get(A).__webglFramebuffer:null;et.bindFramebuffer(J.FRAMEBUFFER,t)}}};this.readRenderTargetPixelsAsync=async function(t,e,n,i,r,s,a){if(!(t&&t.isWebGLRenderTarget))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let o=it.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget&&a!==void 0&&(o=o[a]);if(o){et.bindFramebuffer(J.FRAMEBUFFER,o);try{const a=t.texture;const o=a.format;const l=a.type;if(!tt.textureFormatReadable(o))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.\");if(!tt.textureTypeReadable(l))throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.\");if(e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r){const t=J.createBuffer();J.bindBuffer(J.PIXEL_PACK_BUFFER,t);J.bufferData(J.PIXEL_PACK_BUFFER,s.byteLength,J.STREAM_READ);J.readPixels(e,n,i,r,yt.convert(o),yt.convert(l),0);J.flush();const a=J.fenceSync(J.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(J,a,4);try{J.bindBuffer(J.PIXEL_PACK_BUFFER,t);J.getBufferSubData(J.PIXEL_PACK_BUFFER,0,s)}finally{J.deleteBuffer(t);J.deleteSync(a)}return s}}finally{const t=A!==null?it.get(A).__webglFramebuffer:null;et.bindFramebuffer(J.FRAMEBUFFER,t)}}};this.copyFramebufferToTexture=function(t,e=null,n=0){if(t.isTexture!==true){console.warn(\"WebGLRenderer: copyFramebufferToTexture function signature has changed.\");e=arguments[0]||null;t=arguments[1]}const i=Math.pow(2,-n);const r=Math.floor(t.image.width*i);const s=Math.floor(t.image.height*i);const a=e!==null?e.x:0;const o=e!==null?e.y:0;rt.setTexture2D(t,0);J.copyTexSubImage2D(J.TEXTURE_2D,n,0,0,a,o,r,s);et.unbindTexture()};this.copyTextureToTexture=function(t,e,n=null,i=null,r=0){if(t.isTexture!==true){console.warn(\"WebGLRenderer: copyTextureToTexture function signature has changed.\");i=arguments[0]||null;t=arguments[1];e=arguments[2];r=arguments[3]||0;n=null}let s,a,o,l;let c,h;if(n!==null){s=n.max.x-n.min.x;a=n.max.y-n.min.y;o=n.min.x;l=n.min.y}else{s=t.image.width;a=t.image.height;o=0;l=0}if(i!==null){c=i.x;h=i.y}else{c=0;h=0}const u=yt.convert(e.format);const d=yt.convert(e.type);rt.setTexture2D(e,0);J.pixelStorei(J.UNPACK_FLIP_Y_WEBGL,e.flipY);J.pixelStorei(J.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha);J.pixelStorei(J.UNPACK_ALIGNMENT,e.unpackAlignment);const p=J.getParameter(J.UNPACK_ROW_LENGTH);const f=J.getParameter(J.UNPACK_IMAGE_HEIGHT);const m=J.getParameter(J.UNPACK_SKIP_PIXELS);const g=J.getParameter(J.UNPACK_SKIP_ROWS);const _=J.getParameter(J.UNPACK_SKIP_IMAGES);const x=t.isCompressedTexture?t.mipmaps[r]:t.image;J.pixelStorei(J.UNPACK_ROW_LENGTH,x.width);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,x.height);J.pixelStorei(J.UNPACK_SKIP_PIXELS,o);J.pixelStorei(J.UNPACK_SKIP_ROWS,l);t.isDataTexture?J.texSubImage2D(J.TEXTURE_2D,r,c,h,s,a,u,d,x.data):t.isCompressedTexture?J.compressedTexSubImage2D(J.TEXTURE_2D,r,c,h,x.width,x.height,u,x.data):J.texSubImage2D(J.TEXTURE_2D,r,c,h,s,a,u,d,x);J.pixelStorei(J.UNPACK_ROW_LENGTH,p);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,f);J.pixelStorei(J.UNPACK_SKIP_PIXELS,m);J.pixelStorei(J.UNPACK_SKIP_ROWS,g);J.pixelStorei(J.UNPACK_SKIP_IMAGES,_);r===0&&e.generateMipmaps&&J.generateMipmap(J.TEXTURE_2D);et.unbindTexture()};this.copyTextureToTexture3D=function(t,e,n=null,i=null,r=0){if(t.isTexture!==true){console.warn(\"WebGLRenderer: copyTextureToTexture3D function signature has changed.\");n=arguments[0]||null;i=arguments[1]||null;t=arguments[2];e=arguments[3];r=arguments[4]||0}let s,a,o,l,c,h;let u,d,p;const f=t.isCompressedTexture?t.mipmaps[r]:t.image;if(n!==null){s=n.max.x-n.min.x;a=n.max.y-n.min.y;o=n.max.z-n.min.z;l=n.min.x;c=n.min.y;h=n.min.z}else{s=f.width;a=f.height;o=f.depth;l=0;c=0;h=0}if(i!==null){u=i.x;d=i.y;p=i.z}else{u=0;d=0;p=0}const m=yt.convert(e.format);const g=yt.convert(e.type);let _;if(e.isData3DTexture){rt.setTexture3D(e,0);_=J.TEXTURE_3D}else{if(!e.isDataArrayTexture&&!e.isCompressedArrayTexture){console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");return}rt.setTexture2DArray(e,0);_=J.TEXTURE_2D_ARRAY}J.pixelStorei(J.UNPACK_FLIP_Y_WEBGL,e.flipY);J.pixelStorei(J.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha);J.pixelStorei(J.UNPACK_ALIGNMENT,e.unpackAlignment);const x=J.getParameter(J.UNPACK_ROW_LENGTH);const y=J.getParameter(J.UNPACK_IMAGE_HEIGHT);const M=J.getParameter(J.UNPACK_SKIP_PIXELS);const S=J.getParameter(J.UNPACK_SKIP_ROWS);const b=J.getParameter(J.UNPACK_SKIP_IMAGES);J.pixelStorei(J.UNPACK_ROW_LENGTH,f.width);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,f.height);J.pixelStorei(J.UNPACK_SKIP_PIXELS,l);J.pixelStorei(J.UNPACK_SKIP_ROWS,c);J.pixelStorei(J.UNPACK_SKIP_IMAGES,h);t.isDataTexture||t.isData3DTexture?J.texSubImage3D(_,r,u,d,p,s,a,o,m,g,f.data):e.isCompressedArrayTexture?J.compressedTexSubImage3D(_,r,u,d,p,s,a,o,m,f.data):J.texSubImage3D(_,r,u,d,p,s,a,o,m,g,f);J.pixelStorei(J.UNPACK_ROW_LENGTH,x);J.pixelStorei(J.UNPACK_IMAGE_HEIGHT,y);J.pixelStorei(J.UNPACK_SKIP_PIXELS,M);J.pixelStorei(J.UNPACK_SKIP_ROWS,S);J.pixelStorei(J.UNPACK_SKIP_IMAGES,b);r===0&&e.generateMipmaps&&J.generateMipmap(_);et.unbindTexture()};this.initRenderTarget=function(t){it.get(t).__webglFramebuffer===void 0&&rt.setupRenderTarget(t)};this.initTexture=function(t){t.isCubeTexture?rt.setTextureCube(t,0):t.isData3DTexture?rt.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?rt.setTexture2DArray(t,0):rt.setTexture2D(t,0);et.unbindTexture()};this.resetState=function(){w=0;E=0;A=null;et.reset();Mt.reset()};typeof __THREE_DEVTOOLS__!==\"undefined\"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}get coordinateSystem(){return Fn}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===Je?\"display-p3\":\"srgb\";e.unpackColorSpace=$n.workingColorSpace===Qe?\"display-p3\":\"srgb\"}}class FogExp2{constructor(t,e=25e-5){this.isFogExp2=true;this.name=\"\";this.color=new Color(t);this.density=e}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:\"FogExp2\",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(t,e=1,n=1e3){this.isFog=true;this.name=\"\";this.color=new Color(t);this.near=e;this.far=n}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:\"Fog\",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super();this.isScene=true;this.type=\"Scene\";this.background=null;this.environment=null;this.fog=null;this.backgroundBlurriness=0;this.backgroundIntensity=1;this.backgroundRotation=new Euler;this.environmentIntensity=1;this.environmentRotation=new Euler;this.overrideMaterial=null;typeof __THREE_DEVTOOLS__!==\"undefined\"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(t,e){super.copy(t,e);t.background!==null&&(this.background=t.background.clone());t.environment!==null&&(this.environment=t.environment.clone());t.fog!==null&&(this.fog=t.fog.clone());this.backgroundBlurriness=t.backgroundBlurriness;this.backgroundIntensity=t.backgroundIntensity;this.backgroundRotation.copy(t.backgroundRotation);this.environmentIntensity=t.environmentIntensity;this.environmentRotation.copy(t.environmentRotation);t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone());this.matrixAutoUpdate=t.matrixAutoUpdate;return this}toJSON(t){const e=super.toJSON(t);this.fog!==null&&(e.object.fog=this.fog.toJSON());this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness);this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity);e.object.backgroundRotation=this.backgroundRotation.toArray();this.environmentIntensity!==1&&(e.object.environmentIntensity=this.environmentIntensity);e.object.environmentRotation=this.environmentRotation.toArray();return e}}class InterleavedBuffer{constructor(t,e){this.isInterleavedBuffer=true;this.array=t;this.stride=e;this.count=t!==void 0?t.length/e:0;this.usage=Cn;this._updateRange={offset:0,count:-1};this.updateRanges=[];this.version=0;this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(t){t===true&&this.version++}get updateRange(){warnOnce(\"THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.\");return this._updateRange}setUsage(t){this.usage=t;return this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){this.array=new t.array.constructor(t.array);this.count=t.count;this.stride=t.stride;this.usage=t.usage;return this}copyAt(t,e,n){t*=this.stride;n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){this.array.set(t,e);return this}clone(t){t.arrayBuffers===void 0&&(t.arrayBuffers={});this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=generateUUID());t.arrayBuffers[this.array.buffer._uuid]===void 0&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]);const n=new this.constructor(e,this.stride);n.setUsage(this.usage);return n}onUpload(t){this.onUploadCallback=t;return this}toJSON(t){t.arrayBuffers===void 0&&(t.arrayBuffers={});this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=generateUUID());t.arrayBuffers[this.array.buffer._uuid]===void 0&&(t.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer)));return{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const Tl=new Vector3;class InterleavedBufferAttribute{constructor(t,e,n,i=false){this.isInterleavedBufferAttribute=true;this.name=\"\";this.data=t;this.itemSize=e;this.offset=n;this.normalized=i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++){Tl.fromBufferAttribute(this,e);Tl.applyMatrix4(t);this.setXYZ(e,Tl.x,Tl.y,Tl.z)}return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++){Tl.fromBufferAttribute(this,e);Tl.applyNormalMatrix(t);this.setXYZ(e,Tl.x,Tl.y,Tl.z)}return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++){Tl.fromBufferAttribute(this,e);Tl.transformDirection(t);this.setXYZ(e,Tl.x,Tl.y,Tl.z)}return this}getComponent(t,e){let n=this.array[t*this.data.stride+this.offset+e];this.normalized&&(n=denormalize(n,this.array));return n}setComponent(t,e,n){this.normalized&&(n=normalize(n,this.array));this.data.array[t*this.data.stride+this.offset+e]=n;return this}setX(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset]=e;return this}setY(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset+1]=e;return this}setZ(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset+2]=e;return this}setW(t,e){this.normalized&&(e=normalize(e,this.array));this.data.array[t*this.data.stride+this.offset+3]=e;return this}getX(t){let e=this.data.array[t*this.data.stride+this.offset];this.normalized&&(e=denormalize(e,this.array));return e}getY(t){let e=this.data.array[t*this.data.stride+this.offset+1];this.normalized&&(e=denormalize(e,this.array));return e}getZ(t){let e=this.data.array[t*this.data.stride+this.offset+2];this.normalized&&(e=denormalize(e,this.array));return e}getW(t){let e=this.data.array[t*this.data.stride+this.offset+3];this.normalized&&(e=denormalize(e,this.array));return e}setXY(t,e,n){t=t*this.data.stride+this.offset;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array)}this.data.array[t+0]=e;this.data.array[t+1]=n;return this}setXYZ(t,e,n,i){t=t*this.data.stride+this.offset;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array)}this.data.array[t+0]=e;this.data.array[t+1]=n;this.data.array[t+2]=i;return this}setXYZW(t,e,n,i,r){t=t*this.data.stride+this.offset;if(this.normalized){e=normalize(e,this.array);n=normalize(n,this.array);i=normalize(i,this.array);r=normalize(r,this.array)}this.data.array[t+0]=e;this.data.array[t+1]=n;this.data.array[t+2]=i;this.data.array[t+3]=r;return this}clone(t){if(t===void 0){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new BufferAttribute(new this.array.constructor(t),this.itemSize,this.normalized)}t.interleavedBuffers===void 0&&(t.interleavedBuffers={});t.interleavedBuffers[this.data.uuid]===void 0&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t));return new InterleavedBufferAttribute(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(t===void 0){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}t.interleavedBuffers===void 0&&(t.interleavedBuffers={});t.interleavedBuffers[this.data.uuid]===void 0&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t));return{isInterleavedBufferAttribute:true,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class SpriteMaterial extends Material{constructor(t){super();this.isSpriteMaterial=true;this.type=\"SpriteMaterial\";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.rotation=0;this.sizeAttenuation=true;this.transparent=true;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.alphaMap=t.alphaMap;this.rotation=t.rotation;this.sizeAttenuation=t.sizeAttenuation;this.fog=t.fog;return this}}let wl;const El=new Vector3;const Al=new Vector3;const Cl=new Vector3;const Rl=new Vector2;const Pl=new Vector2;const Ll=new Matrix4;const Il=new Vector3;const Ul=new Vector3;const Dl=new Vector3;const Nl=new Vector2;const Bl=new Vector2;const Ol=new Vector2;class Sprite extends Object3D{constructor(t=new SpriteMaterial){super();this.isSprite=true;this.type=\"Sprite\";if(wl===void 0){wl=new BufferGeometry;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);const e=new InterleavedBuffer(t,5);wl.setIndex([0,1,2,0,2,3]);wl.setAttribute(\"position\",new InterleavedBufferAttribute(e,3,0,false));wl.setAttribute(\"uv\",new InterleavedBufferAttribute(e,2,3,false))}this.geometry=wl;this.material=t;this.center=new Vector2(.5,.5)}raycast(t,e){t.camera===null&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');Al.setFromMatrixScale(this.matrixWorld);Ll.copy(t.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld);Cl.setFromMatrixPosition(this.modelViewMatrix);t.camera.isPerspectiveCamera&&this.material.sizeAttenuation===false&&Al.multiplyScalar(-Cl.z);const n=this.material.rotation;let i,r;if(n!==0){r=Math.cos(n);i=Math.sin(n)}const s=this.center;transformVertex(Il.set(-.5,-.5,0),Cl,s,Al,i,r);transformVertex(Ul.set(.5,-.5,0),Cl,s,Al,i,r);transformVertex(Dl.set(.5,.5,0),Cl,s,Al,i,r);Nl.set(0,0);Bl.set(1,0);Ol.set(1,1);let a=t.ray.intersectTriangle(Il,Ul,Dl,false,El);if(a===null){transformVertex(Ul.set(-.5,.5,0),Cl,s,Al,i,r);Bl.set(0,1);a=t.ray.intersectTriangle(Il,Dl,Ul,false,El);if(a===null)return}const o=t.ray.origin.distanceTo(El);o<t.near||o>t.far||e.push({distance:o,point:El.clone(),uv:Triangle.getInterpolation(El,Il,Ul,Dl,Nl,Bl,Ol,new Vector2),face:null,object:this})}copy(t,e){super.copy(t,e);t.center!==void 0&&this.center.copy(t.center);this.material=t.material;return this}}function transformVertex(t,e,n,i,r,s){Rl.subVectors(t,n).addScalar(.5).multiply(i);if(r!==void 0){Pl.x=s*Rl.x-r*Rl.y;Pl.y=r*Rl.x+s*Rl.y}else Pl.copy(Rl);t.copy(e);t.x+=Pl.x;t.y+=Pl.y;t.applyMatrix4(Ll)}const Vl=new Vector3;const Fl=new Vector3;class LOD extends Object3D{constructor(){super();this._currentLevel=0;this.type=\"LOD\";Object.defineProperties(this,{levels:{enumerable:true,value:[]},isLOD:{value:true}});this.autoUpdate=true}copy(t){super.copy(t,false);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance,n.hysteresis)}this.autoUpdate=t.autoUpdate;return this}addLevel(t,e=0,n=0){e=Math.abs(e);const i=this.levels;let r;for(r=0;r<i.length;r++)if(e<i[r].distance)break;i.splice(r,0,{distance:e,hysteresis:n,object:t});this.add(t);return this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i;n++){let i=e[n].distance;e[n].object.visible&&(i-=i*e[n].hysteresis);if(t<i)break}return e[n-1].object}return null}raycast(t,e){const n=this.levels;if(n.length>0){Vl.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Vl);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Vl.setFromMatrixPosition(t.matrixWorld);Fl.setFromMatrixPosition(this.matrixWorld);const n=Vl.distanceTo(Fl)/t.zoom;e[0].object.visible=true;let i,r;for(i=1,r=e.length;i<r;i++){let t=e[i].distance;e[i].object.visible&&(t-=t*e[i].hysteresis);if(!(n>=t))break;e[i-1].object.visible=false;e[i].object.visible=true}this._currentLevel=i-1;for(;i<r;i++)e[i].object.visible=false}}toJSON(t){const e=super.toJSON(t);this.autoUpdate===false&&(e.object.autoUpdate=false);e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance,hysteresis:i.hysteresis})}return e}}const zl=new Vector3;const Gl=new Vector4;const kl=new Vector4;const Hl=new Vector3;const Wl=new Matrix4;const Xl=new Vector3;const jl=new Sphere;const ql=new Matrix4;const Yl=new Ray;class SkinnedMesh extends Mesh{constructor(t,e){super(t,e);this.isSkinnedMesh=true;this.type=\"SkinnedMesh\";this.bindMode=at;this.bindMatrix=new Matrix4;this.bindMatrixInverse=new Matrix4;this.boundingBox=null;this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new Box3);this.boundingBox.makeEmpty();const e=t.getAttribute(\"position\");for(let t=0;t<e.count;t++){this.getVertexPosition(t,Xl);this.boundingBox.expandByPoint(Xl)}}computeBoundingSphere(){const t=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new Sphere);this.boundingSphere.makeEmpty();const e=t.getAttribute(\"position\");for(let t=0;t<e.count;t++){this.getVertexPosition(t,Xl);this.boundingSphere.expandByPoint(Xl)}}copy(t,e){super.copy(t,e);this.bindMode=t.bindMode;this.bindMatrix.copy(t.bindMatrix);this.bindMatrixInverse.copy(t.bindMatrixInverse);this.skeleton=t.skeleton;t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone());t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone());return this}raycast(t,e){const n=this.material;const i=this.matrixWorld;if(n!==void 0){this.boundingSphere===null&&this.computeBoundingSphere();jl.copy(this.boundingSphere);jl.applyMatrix4(i);if(t.ray.intersectsSphere(jl)!==false){ql.copy(i).invert();Yl.copy(t.ray).applyMatrix4(ql);this.boundingBox!==null&&Yl.intersectsBox(this.boundingBox)===false||this._computeIntersections(t,e,Yl)}}}getVertexPosition(t,e){super.getVertexPosition(t,e);this.applyBoneTransform(t,e);return e}bind(t,e){this.skeleton=t;if(e===void 0){this.updateMatrixWorld(true);this.skeleton.calculateInverses();e=this.matrixWorld}this.bindMatrix.copy(e);this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new Vector4;const e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.fromBufferAttribute(e,n);const i=1/t.manhattanLength();i!==Infinity?t.multiplyScalar(i):t.set(1,0,0,0);e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t);this.bindMode===at?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===ot?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}applyBoneTransform(t,e){const n=this.skeleton;const i=this.geometry;Gl.fromBufferAttribute(i.attributes.skinIndex,t);kl.fromBufferAttribute(i.attributes.skinWeight,t);zl.copy(e).applyMatrix4(this.bindMatrix);e.set(0,0,0);for(let t=0;t<4;t++){const i=kl.getComponent(t);if(i!==0){const r=Gl.getComponent(t);Wl.multiplyMatrices(n.bones[r].matrixWorld,n.boneInverses[r]);e.addScaledVector(Hl.copy(zl).applyMatrix4(Wl),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super();this.isBone=true;this.type=\"Bone\"}}class DataTexture extends Texture{constructor(t=null,e=1,n=1,i,r,s,a,o,l=vt,c=vt,h,u){super(null,s,a,o,l,c,i,r,h,u);this.isDataTexture=true;this.image={data:t,width:e,height:n};this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}const Kl=new Matrix4;const Zl=new Matrix4;class Skeleton{constructor(t=[],e=[]){this.uuid=generateUUID();this.bones=t.slice(0);this.boneInverses=e;this.boneMatrices=null;this.boneTexture=null;this.init()}init(){const t=this.bones;const e=this.boneInverses;this.boneMatrices=new Float32Array(t.length*16);if(e.length===0)this.calculateInverses();else if(t.length!==e.length){console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\");this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new Matrix4;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert();this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];if(e){if(e.parent&&e.parent.isBone){e.matrix.copy(e.parent.matrixWorld).invert();e.matrix.multiply(e.matrixWorld)}else e.matrix.copy(e.matrixWorld);e.matrix.decompose(e.position,e.quaternion,e.scale)}}}update(){const t=this.bones;const e=this.boneInverses;const n=this.boneMatrices;const i=this.boneTexture;for(let i=0,r=t.length;i<r;i++){const r=t[i]?t[i].matrixWorld:Zl;Kl.multiplyMatrices(r,e[i]);Kl.toArray(n,i*16)}i!==null&&(i.needsUpdate=true)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(this.bones.length*4);t=Math.ceil(t/4)*4;t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new DataTexture(e,t,t,Gt,Ut);n.needsUpdate=true;this.boneMatrices=e;this.boneTexture=n;return this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){if(this.boneTexture!==null){this.boneTexture.dispose();this.boneTexture=null}}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];if(r===void 0){console.warn(\"THREE.Skeleton: No bone found with UUID:\",i);r=new Bone}this.bones.push(r);this.boneInverses.push((new Matrix4).fromArray(t.boneInverses[n]))}this.init();return this}toJSON(){const t={metadata:{version:4.6,type:\"Skeleton\",generator:\"Skeleton.toJSON\"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones;const n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}class InstancedBufferAttribute extends BufferAttribute{constructor(t,e,n,i=1){super(t,e,n);this.isInstancedBufferAttribute=true;this.meshPerAttribute=i}copy(t){super.copy(t);this.meshPerAttribute=t.meshPerAttribute;return this}toJSON(){const t=super.toJSON();t.meshPerAttribute=this.meshPerAttribute;t.isInstancedBufferAttribute=true;return t}}const Jl=new Matrix4;const Ql=new Matrix4;const $l=[];const tc=new Box3;const ec=new Matrix4;const nc=new Mesh;const ic=new Sphere;class InstancedMesh extends Mesh{constructor(t,e,n){super(t,e);this.isInstancedMesh=true;this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n*16),16);this.instanceColor=null;this.morphTexture=null;this.count=n;this.boundingBox=null;this.boundingSphere=null;for(let t=0;t<n;t++)this.setMatrixAt(t,ec)}computeBoundingBox(){const t=this.geometry;const e=this.count;this.boundingBox===null&&(this.boundingBox=new Box3);t.boundingBox===null&&t.computeBoundingBox();this.boundingBox.makeEmpty();for(let n=0;n<e;n++){this.getMatrixAt(n,Jl);tc.copy(t.boundingBox).applyMatrix4(Jl);this.boundingBox.union(tc)}}computeBoundingSphere(){const t=this.geometry;const e=this.count;this.boundingSphere===null&&(this.boundingSphere=new Sphere);t.boundingSphere===null&&t.computeBoundingSphere();this.boundingSphere.makeEmpty();for(let n=0;n<e;n++){this.getMatrixAt(n,Jl);ic.copy(t.boundingSphere).applyMatrix4(Jl);this.boundingSphere.union(ic)}}copy(t,e){super.copy(t,e);this.instanceMatrix.copy(t.instanceMatrix);t.morphTexture!==null&&(this.morphTexture=t.morphTexture.clone());t.instanceColor!==null&&(this.instanceColor=t.instanceColor.clone());this.count=t.count;t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone());t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone());return this}getColorAt(t,e){e.fromArray(this.instanceColor.array,t*3)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,t*16)}getMorphAt(t,e){const n=e.morphTargetInfluences;const i=this.morphTexture.source.data.data;const r=n.length+1;const s=t*r+1;for(let t=0;t<n.length;t++)n[t]=i[s+t]}raycast(t,e){const n=this.matrixWorld;const i=this.count;nc.geometry=this.geometry;nc.material=this.material;if(nc.material!==void 0){this.boundingSphere===null&&this.computeBoundingSphere();ic.copy(this.boundingSphere);ic.applyMatrix4(n);if(t.ray.intersectsSphere(ic)!==false)for(let r=0;r<i;r++){this.getMatrixAt(r,Jl);Ql.multiplyMatrices(n,Jl);nc.matrixWorld=Ql;nc.raycast(t,$l);for(let t=0,n=$l.length;t<n;t++){const n=$l[t];n.instanceId=r;n.object=this;e.push(n)}$l.length=0}}}setColorAt(t,e){this.instanceColor===null&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count*3),3));e.toArray(this.instanceColor.array,t*3)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,t*16)}setMorphAt(t,e){const n=e.morphTargetInfluences;const i=n.length+1;this.morphTexture===null&&(this.morphTexture=new DataTexture(new Float32Array(i*this.count),i,this.count,jt,Ut));const r=this.morphTexture.source.data.data;let s=0;for(let t=0;t<n.length;t++)s+=n[t];const a=this.geometry.morphTargetsRelative?1:1-s;const o=i*t;r[o]=a;r.set(n,o+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"});if(this.morphTexture!==null){this.morphTexture.dispose();this.morphTexture=null}return this}}function sortOpaque(t,e){return t.z-e.z}function sortTransparent(t,e){return e.z-t.z}class MultiDrawRenderList{constructor(){this.index=0;this.pool=[];this.list=[]}push(t,e,n){const i=this.pool;const r=this.list;this.index>=i.length&&i.push({start:-1,count:-1,z:-1,index:-1});const s=i[this.index];r.push(s);this.index++;s.start=t.start;s.count=t.count;s.z=e;s.index=n}reset(){this.list.length=0;this.index=0}}const rc=new Matrix4;const sc=new Matrix4;const ac=new Matrix4;const oc=new Color(1,1,1);const lc=new Matrix4;const cc=new Frustum;const hc=new Box3;const uc=new Sphere;const dc=new Vector3;const pc=new Vector3;const fc=new Vector3;const mc=new MultiDrawRenderList;const gc=new Mesh;const vc=[];function copyAttributeData(t,e,n=0){const i=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let s=0;s<r;s++)for(let r=0;r<i;r++)e.setComponent(s+n,r,t.getComponent(s,r))}else e.array.set(t.array,n*i);e.needsUpdate=true}class BatchedMesh extends Mesh{get maxInstanceCount(){return this._maxInstanceCount}constructor(t,e,n=e*2,i){super(new BufferGeometry,i);this.isBatchedMesh=true;this.perObjectFrustumCulled=true;this.sortObjects=true;this.boundingBox=null;this.boundingSphere=null;this.customSort=null;this._drawInfo=[];this._drawRanges=[];this._reservedRanges=[];this._bounds=[];this._maxInstanceCount=t;this._maxVertexCount=e;this._maxIndexCount=n;this._geometryInitialized=false;this._geometryCount=0;this._multiDrawCounts=new Int32Array(t);this._multiDrawStarts=new Int32Array(t);this._multiDrawCount=0;this._multiDrawInstances=null;this._visibilityChanged=true;this._matricesTexture=null;this._indirectTexture=null;this._colorsTexture=null;this._initMatricesTexture();this._initIndirectTexture()}_initMatricesTexture(){let t=Math.sqrt(this._maxInstanceCount*4);t=Math.ceil(t/4)*4;t=Math.max(t,4);const e=new Float32Array(t*t*4);const n=new DataTexture(e,t,t,Gt,Ut);this._matricesTexture=n}_initIndirectTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);const e=new Uint32Array(t*t);const n=new DataTexture(e,t,t,qt,It);this._indirectTexture=n}_initColorsTexture(){let t=Math.sqrt(this._maxIndexCount);t=Math.ceil(t);const e=new Float32Array(t*t*4).fill(1);const n=new DataTexture(e,t,t,Gt,Ut);n.colorSpace=$n.workingColorSpace;this._colorsTexture=n}_initializeGeometry(t){const e=this.geometry;const n=this._maxVertexCount;const i=this._maxIndexCount;if(this._geometryInitialized===false){for(const i in t.attributes){const r=t.getAttribute(i);const{array:s,itemSize:a,normalized:o}=r;const l=new s.constructor(n*a);const c=new BufferAttribute(l,a,o);e.setAttribute(i,c)}if(t.getIndex()!==null){const t=n>65535?new Uint32Array(i):new Uint16Array(i);e.setIndex(new BufferAttribute(t,1))}this._geometryInitialized=true}}_validateGeometry(t){const e=this.geometry;if(Boolean(t.getIndex())!==Boolean(e.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have \"index\".');for(const n in e.attributes){if(!t.hasAttribute(n))throw new Error(`BatchedMesh: Added geometry missing \"${n}\". All geometries must have consistent attributes.`);const i=t.getAttribute(n);const r=e.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw new Error(\"BatchedMesh: All attributes must have a consistent itemSize and normalized value.\")}}setCustomSort(t){this.customSort=t;return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const t=this._geometryCount;const e=this.boundingBox;const n=this._drawInfo;e.makeEmpty();for(let i=0;i<t;i++){if(n[i].active===false)continue;const t=n[i].geometryIndex;this.getMatrixAt(i,rc);this.getBoundingBoxAt(t,hc).applyMatrix4(rc);e.union(hc)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere);const t=this.boundingSphere;const e=this._drawInfo;t.makeEmpty();for(let n=0,i=e.length;n<i;n++){if(e[n].active===false)continue;const i=e[n].geometryIndex;this.getMatrixAt(n,rc);this.getBoundingSphereAt(i,uc).applyMatrix4(rc);t.union(uc)}}addInstance(t){if(this._drawInfo.length>=this._maxInstanceCount)throw new Error(\"BatchedMesh: Maximum item count reached.\");this._drawInfo.push({visible:true,active:true,geometryIndex:t});const e=this._drawInfo.length-1;const n=this._matricesTexture;const i=n.image.data;ac.toArray(i,e*16);n.needsUpdate=true;const r=this._colorsTexture;if(r){oc.toArray(r.image.data,e*4);r.needsUpdate=true}return e}addGeometry(t,e=-1,n=-1){this._initializeGeometry(t);this._validateGeometry(t);if(this._drawInfo.length>=this._maxInstanceCount)throw new Error(\"BatchedMesh: Maximum item count reached.\");const i={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let r=null;const s=this._reservedRanges;const a=this._drawRanges;const o=this._bounds;this._geometryCount!==0&&(r=s[s.length-1]);i.vertexCount=e===-1?t.getAttribute(\"position\").count:e;i.vertexStart=r===null?0:r.vertexStart+r.vertexCount;const l=t.getIndex();const c=l!==null;if(c){i.indexCount=n===-1?l.count:n;i.indexStart=r===null?0:r.indexStart+r.indexCount}if(i.indexStart!==-1&&i.indexStart+i.indexCount>this._maxIndexCount||i.vertexStart+i.vertexCount>this._maxVertexCount)throw new Error(\"BatchedMesh: Reserved space request exceeds the maximum buffer size.\");const h=this._geometryCount;this._geometryCount++;s.push(i);a.push({start:c?i.indexStart:i.vertexStart,count:-1});o.push({boxInitialized:false,box:new Box3,sphereInitialized:false,sphere:new Sphere});this.setGeometryAt(h,t);return h}setGeometryAt(t,e){if(t>=this._geometryCount)throw new Error(\"BatchedMesh: Maximum geometry count reached.\");this._validateGeometry(e);const n=this.geometry;const i=n.getIndex()!==null;const r=n.getIndex();const s=e.getIndex();const a=this._reservedRanges[t];if(i&&s.count>a.indexCount||e.attributes.position.count>a.vertexCount)throw new Error(\"BatchedMesh: Reserved space not large enough for provided geometry.\");const o=a.vertexStart;const l=a.vertexCount;for(const t in n.attributes){const i=e.getAttribute(t);const r=n.getAttribute(t);copyAttributeData(i,r,o);const s=i.itemSize;for(let t=i.count,e=l;t<e;t++){const e=o+t;for(let t=0;t<s;t++)r.setComponent(e,t,0)}r.needsUpdate=true;r.addUpdateRange(o*s,l*s)}if(i){const t=a.indexStart;for(let e=0;e<s.count;e++)r.setX(t+e,o+s.getX(e));for(let e=s.count,n=a.indexCount;e<n;e++)r.setX(t+e,o);r.needsUpdate=true;r.addUpdateRange(t,a.indexCount)}const c=this._bounds[t];if(e.boundingBox!==null){c.box.copy(e.boundingBox);c.boxInitialized=true}else c.boxInitialized=false;if(e.boundingSphere!==null){c.sphere.copy(e.boundingSphere);c.sphereInitialized=true}else c.sphereInitialized=false;const h=this._drawRanges[t];const u=e.getAttribute(\"position\");h.count=i?s.count:u.count;this._visibilityChanged=true;return t}getBoundingBoxAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t];const i=n.box;const r=this.geometry;if(n.boxInitialized===false){i.makeEmpty();const e=r.index;const s=r.attributes.position;const a=this._drawRanges[t];for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n));i.expandByPoint(dc.fromBufferAttribute(s,n))}n.boxInitialized=true}e.copy(i);return e}getBoundingSphereAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t];const i=n.sphere;const r=this.geometry;if(n.sphereInitialized===false){i.makeEmpty();this.getBoundingBoxAt(t,hc);hc.getCenter(i.center);const e=r.index;const s=r.attributes.position;const a=this._drawRanges[t];let o=0;for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n));dc.fromBufferAttribute(s,n);o=Math.max(o,i.center.distanceToSquared(dc))}i.radius=Math.sqrt(o);n.sphereInitialized=true}e.copy(i);return e}setMatrixAt(t,e){const n=this._drawInfo;const i=this._matricesTexture;const r=this._matricesTexture.image.data;if(t>=n.length||n[t].active===false)return this;e.toArray(r,t*16);i.needsUpdate=true;return this}getMatrixAt(t,e){const n=this._drawInfo;const i=this._matricesTexture.image.data;return t>=n.length||n[t].active===false?null:e.fromArray(i,t*16)}setColorAt(t,e){this._colorsTexture===null&&this._initColorsTexture();const n=this._colorsTexture;const i=this._colorsTexture.image.data;const r=this._drawInfo;if(t>=r.length||r[t].active===false)return this;e.toArray(i,t*4);n.needsUpdate=true;return this}getColorAt(t,e){const n=this._colorsTexture.image.data;const i=this._drawInfo;return t>=i.length||i[t].active===false?null:e.fromArray(n,t*4)}setVisibleAt(t,e){const n=this._drawInfo;if(t>=n.length||n[t].active===false||n[t].visible===e)return this;n[t].visible=e;this._visibilityChanged=true;return this}getVisibleAt(t){const e=this._drawInfo;return!(t>=e.length||e[t].active===false)&&e[t].visible}raycast(t,e){const n=this._drawInfo;const i=this._drawRanges;const r=this.matrixWorld;const s=this.geometry;gc.material=this.material;gc.geometry.index=s.index;gc.geometry.attributes=s.attributes;gc.geometry.boundingBox===null&&(gc.geometry.boundingBox=new Box3);gc.geometry.boundingSphere===null&&(gc.geometry.boundingSphere=new Sphere);for(let s=0,a=n.length;s<a;s++){if(!n[s].visible||!n[s].active)continue;const a=n[s].geometryIndex;const o=i[a];gc.geometry.setDrawRange(o.start,o.count);this.getMatrixAt(s,gc.matrixWorld).premultiply(r);this.getBoundingBoxAt(a,gc.geometry.boundingBox);this.getBoundingSphereAt(a,gc.geometry.boundingSphere);gc.raycast(t,vc);for(let t=0,n=vc.length;t<n;t++){const n=vc[t];n.object=this;n.batchId=s;e.push(n)}vc.length=0}gc.material=null;gc.geometry.index=null;gc.geometry.attributes={};gc.geometry.setDrawRange(0,Infinity)}copy(t){super.copy(t);this.geometry=t.geometry.clone();this.perObjectFrustumCulled=t.perObjectFrustumCulled;this.sortObjects=t.sortObjects;this.boundingBox=t.boundingBox!==null?t.boundingBox.clone():null;this.boundingSphere=t.boundingSphere!==null?t.boundingSphere.clone():null;this._drawRanges=t._drawRanges.map((t=>({...t})));this._reservedRanges=t._reservedRanges.map((t=>({...t})));this._drawInfo=t._drawInfo.map((t=>({...t})));this._bounds=t._bounds.map((t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})));this._maxInstanceCount=t._maxInstanceCount;this._maxVertexCount=t._maxVertexCount;this._maxIndexCount=t._maxIndexCount;this._geometryInitialized=t._geometryInitialized;this._geometryCount=t._geometryCount;this._multiDrawCounts=t._multiDrawCounts.slice();this._multiDrawStarts=t._multiDrawStarts.slice();this._matricesTexture=t._matricesTexture.clone();this._matricesTexture.image.data=this._matricesTexture.image.slice();if(this._colorsTexture!==null){this._colorsTexture=t._colorsTexture.clone();this._colorsTexture.image.data=this._colorsTexture.image.slice()}return this}dispose(){this.geometry.dispose();this._matricesTexture.dispose();this._matricesTexture=null;this._indirectTexture.dispose();this._indirectTexture=null;if(this._colorsTexture!==null){this._colorsTexture.dispose();this._colorsTexture=null}return this}onBeforeRender(t,e,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=i.getIndex();const a=s===null?1:s.array.BYTES_PER_ELEMENT;const o=this._drawInfo;const l=this._multiDrawStarts;const c=this._multiDrawCounts;const h=this._drawRanges;const u=this.perObjectFrustumCulled;const d=this._indirectTexture;const p=d.image.data;if(u){lc.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld);cc.setFromProjectionMatrix(lc,t.coordinateSystem)}let f=0;if(this.sortObjects){sc.copy(this.matrixWorld).invert();dc.setFromMatrixPosition(n.matrixWorld).applyMatrix4(sc);pc.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(sc);for(let t=0,e=o.length;t<e;t++)if(o[t].visible&&o[t].active){const e=o[t].geometryIndex;this.getMatrixAt(t,rc);this.getBoundingSphereAt(e,uc).applyMatrix4(rc);let n=false;u&&(n=!cc.intersectsSphere(uc));if(!n){const n=fc.subVectors(uc.center,dc).dot(pc);mc.push(h[e],n,t)}}const t=mc.list;const e=this.customSort;e===null?t.sort(r.transparent?sortTransparent:sortOpaque):e.call(this,t,n);for(let e=0,n=t.length;e<n;e++){const n=t[e];l[f]=n.start*a;c[f]=n.count;p[f]=n.index;f++}mc.reset()}else for(let t=0,e=o.length;t<e;t++)if(o[t].visible&&o[t].active){const e=o[t].geometryIndex;let n=false;if(u){this.getMatrixAt(t,rc);this.getBoundingSphereAt(e,uc).applyMatrix4(rc);n=!cc.intersectsSphere(uc)}if(!n){const n=h[e];l[f]=n.start*a;c[f]=n.count;p[f]=t;f++}}d.needsUpdate=true;this._multiDrawCount=f;this._visibilityChanged=false}onBeforeShadow(t,e,n,i,r,s){this.onBeforeRender(t,null,i,r,s)}}class LineBasicMaterial extends Material{constructor(t){super();this.isLineBasicMaterial=true;this.type=\"LineBasicMaterial\";this.color=new Color(16777215);this.map=null;this.linewidth=1;this.linecap=\"round\";this.linejoin=\"round\";this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.linewidth=t.linewidth;this.linecap=t.linecap;this.linejoin=t.linejoin;this.fog=t.fog;return this}}const _c=new Vector3;const xc=new Vector3;const yc=new Matrix4;const Mc=new Ray;const Sc=new Sphere;const bc=new Vector3;const Tc=new Vector3;class Line extends Object3D{constructor(t=new BufferGeometry,e=new LineBasicMaterial){super();this.isLine=true;this.type=\"Line\";this.geometry=t;this.material=e;this.updateMorphTargets()}copy(t,e){super.copy(t,e);this.material=Array.isArray(t.material)?t.material.slice():t.material;this.geometry=t.geometry;return this}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position;const n=[0];for(let t=1,i=e.count;t<i;t++){_c.fromBufferAttribute(e,t-1);xc.fromBufferAttribute(e,t);n[t]=n[t-1];n[t]+=_c.distanceTo(xc)}t.setAttribute(\"lineDistance\",new Float32BufferAttribute(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");return this}raycast(t,e){const n=this.geometry;const i=this.matrixWorld;const r=t.params.Line.threshold;const s=n.drawRange;n.boundingSphere===null&&n.computeBoundingSphere();Sc.copy(n.boundingSphere);Sc.applyMatrix4(i);Sc.radius+=r;if(t.ray.intersectsSphere(Sc)===false)return;yc.copy(i).invert();Mc.copy(t.ray).applyMatrix4(yc);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3);const o=a*a;const l=this.isLineSegments?2:1;const c=n.index;const h=n.attributes;const u=h.position;if(c!==null){const n=Math.max(0,s.start);const i=Math.min(c.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=l){const n=c.getX(r);const i=c.getX(r+1);const s=checkIntersection(this,t,Mc,o,n,i);s&&e.push(s)}if(this.isLineLoop){const r=c.getX(i-1);const s=c.getX(n);const a=checkIntersection(this,t,Mc,o,r,s);a&&e.push(a)}}else{const n=Math.max(0,s.start);const i=Math.min(u.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=l){const n=checkIntersection(this,t,Mc,o,r,r+1);n&&e.push(n)}if(this.isLineLoop){const r=checkIntersection(this,t,Mc,o,i-1,n);r&&e.push(r)}}}updateMorphTargets(){const t=this.geometry;const e=t.morphAttributes;const n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(t!==void 0){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=e}}}}}function checkIntersection(t,e,n,i,r,s){const a=t.geometry.attributes.position;_c.fromBufferAttribute(a,r);xc.fromBufferAttribute(a,s);const o=n.distanceSqToSegment(_c,xc,bc,Tc);if(o>i)return;bc.applyMatrix4(t.matrixWorld);const l=e.ray.origin.distanceTo(bc);return l<e.near||l>e.far?void 0:{distance:l,point:Tc.clone().applyMatrix4(t.matrixWorld),index:r,face:null,faceIndex:null,object:t}}const wc=new Vector3;const Ec=new Vector3;class LineSegments extends Line{constructor(t,e){super(t,e);this.isLineSegments=true;this.type=\"LineSegments\"}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position;const n=[];for(let t=0,i=e.count;t<i;t+=2){wc.fromBufferAttribute(e,t);Ec.fromBufferAttribute(e,t+1);n[t]=t===0?0:n[t-1];n[t+1]=n[t]+wc.distanceTo(Ec)}t.setAttribute(\"lineDistance\",new Float32BufferAttribute(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");return this}}class LineLoop extends Line{constructor(t,e){super(t,e);this.isLineLoop=true;this.type=\"LineLoop\"}}class PointsMaterial extends Material{constructor(t){super();this.isPointsMaterial=true;this.type=\"PointsMaterial\";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.size=1;this.sizeAttenuation=true;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.alphaMap=t.alphaMap;this.size=t.size;this.sizeAttenuation=t.sizeAttenuation;this.fog=t.fog;return this}}const Ac=new Matrix4;const Cc=new Ray;const Rc=new Sphere;const Pc=new Vector3;class Points extends Object3D{constructor(t=new BufferGeometry,e=new PointsMaterial){super();this.isPoints=true;this.type=\"Points\";this.geometry=t;this.material=e;this.updateMorphTargets()}copy(t,e){super.copy(t,e);this.material=Array.isArray(t.material)?t.material.slice():t.material;this.geometry=t.geometry;return this}raycast(t,e){const n=this.geometry;const i=this.matrixWorld;const r=t.params.Points.threshold;const s=n.drawRange;n.boundingSphere===null&&n.computeBoundingSphere();Rc.copy(n.boundingSphere);Rc.applyMatrix4(i);Rc.radius+=r;if(t.ray.intersectsSphere(Rc)===false)return;Ac.copy(i).invert();Cc.copy(t.ray).applyMatrix4(Ac);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3);const o=a*a;const l=n.index;const c=n.attributes;const h=c.position;if(l!==null){const n=Math.max(0,s.start);const r=Math.min(l.count,s.start+s.count);for(let s=n,a=r;s<a;s++){const n=l.getX(s);Pc.fromBufferAttribute(h,n);testPoint(Pc,n,o,i,t,e,this)}}else{const n=Math.max(0,s.start);const r=Math.min(h.count,s.start+s.count);for(let s=n,a=r;s<a;s++){Pc.fromBufferAttribute(h,s);testPoint(Pc,s,o,i,t,e,this)}}}updateMorphTargets(){const t=this.geometry;const e=t.morphAttributes;const n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(t!==void 0){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=e}}}}}function testPoint(t,e,n,i,r,s,a){const o=Cc.distanceSqToPoint(t);if(o<n){const n=new Vector3;Cc.closestPointToPoint(t,n);n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class VideoTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l);this.isVideoTexture=true;this.minFilter=s!==void 0?s:St;this.magFilter=r!==void 0?r:St;this.generateMipmaps=false;const c=this;function updateVideo(){c.needsUpdate=true;t.requestVideoFrameCallback(updateVideo)}\"requestVideoFrameCallback\"in t&&t.requestVideoFrameCallback(updateVideo)}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;const e=\"requestVideoFrameCallback\"in t;e===false&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=true)}}class FramebufferTexture extends Texture{constructor(t,e){super({width:t,height:e});this.isFramebufferTexture=true;this.magFilter=vt;this.minFilter=vt;this.generateMipmaps=false;this.needsUpdate=true}}class CompressedTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u);this.isCompressedTexture=true;this.image={width:e,height:n};this.mipmaps=t;this.flipY=false;this.generateMipmaps=false}}class CompressedArrayTexture extends CompressedTexture{constructor(t,e,n,i,r,s){super(t,e,n,r,s);this.isCompressedArrayTexture=true;this.image.depth=i;this.wrapR=mt;this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(t,e,n){super(void 0,t[0].width,t[0].height,e,n,ct);this.isCompressedCubeTexture=true;this.isCubeTexture=true;this.image=t}}class CanvasTexture extends Texture{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l);this.isCanvasTexture=true;this.needsUpdate=true}}class Curve{constructor(){this.type=\"Curve\";this.arcLengthDivisions=200}getPoint(){console.warn(\"THREE.Curve: .getPoint() not implemented.\");return null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=false;const e=[];let n,i=this.getPoint(0);let r=0;e.push(0);for(let s=1;s<=t;s++){n=this.getPoint(s/t);r+=n.distanceTo(i);e.push(r);i=n}this.cacheArcLengths=e;return e}updateArcLengths(){this.needsUpdate=true;this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;while(o<=l){i=Math.floor(o+(l-o)/2);a=n[i]-s;if(a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}}i=l;if(n[i]===s)return i/(r-1);const c=n[i];const h=n[i+1];const u=h-c;const d=(s-c)/u;const p=(i+d)/(r-1);return p}getTangent(t,e){const n=1e-4;let i=t-n;let r=t+n;i<0&&(i=0);r>1&&(r=1);const s=this.getPoint(i);const a=this.getPoint(r);const o=e||(s.isVector2?new Vector2:new Vector3);o.copy(a).sub(s).normalize();return o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Vector3;const i=[];const r=[];const s=[];const a=new Vector3;const o=new Matrix4;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Vector3)}r[0]=new Vector3;s[0]=new Vector3;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x);const h=Math.abs(i[0].y);const u=Math.abs(i[0].z);if(c<=l){l=c;n.set(1,0,0)}if(h<=l){l=h;n.set(0,1,0)}u<=l&&n.set(0,0,1);a.crossVectors(i[0],n).normalize();r[0].crossVectors(i[0],a);s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){r[e]=r[e-1].clone();s[e]=s[e-1].clone();a.crossVectors(i[e-1],i[e]);if(a.length()>Number.EPSILON){a.normalize();const t=Math.acos(clamp(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(e===true){let e=Math.acos(clamp(r[0].dot(r[t]),-1,1));e/=t;i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++){r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n));s[n].crossVectors(i[n],r[n])}}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){this.arcLengthDivisions=t.arcLengthDivisions;return this}toJSON(){const t={metadata:{version:4.6,type:\"Curve\",generator:\"Curve.toJSON\"}};t.arcLengthDivisions=this.arcLengthDivisions;t.type=this.type;return t}fromJSON(t){this.arcLengthDivisions=t.arcLengthDivisions;return this}}class EllipseCurve extends Curve{constructor(t=0,e=0,n=1,i=1,r=0,s=Math.PI*2,a=false,o=0){super();this.isEllipseCurve=true;this.type=\"EllipseCurve\";this.aX=t;this.aY=e;this.xRadius=n;this.yRadius=i;this.aStartAngle=r;this.aEndAngle=s;this.aClockwise=a;this.aRotation=o}getPoint(t,e=new Vector2){const n=e;const i=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;while(r<0)r+=i;while(r>i)r-=i;r<Number.EPSILON&&(r=s?0:i);this.aClockwise!==true||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a);let l=this.aY+this.yRadius*Math.sin(a);if(this.aRotation!==0){const t=Math.cos(this.aRotation);const e=Math.sin(this.aRotation);const n=o-this.aX;const i=l-this.aY;o=n*t-i*e+this.aX;l=n*e+i*t+this.aY}return n.set(o,l)}copy(t){super.copy(t);this.aX=t.aX;this.aY=t.aY;this.xRadius=t.xRadius;this.yRadius=t.yRadius;this.aStartAngle=t.aStartAngle;this.aEndAngle=t.aEndAngle;this.aClockwise=t.aClockwise;this.aRotation=t.aRotation;return this}toJSON(){const t=super.toJSON();t.aX=this.aX;t.aY=this.aY;t.xRadius=this.xRadius;t.yRadius=this.yRadius;t.aStartAngle=this.aStartAngle;t.aEndAngle=this.aEndAngle;t.aClockwise=this.aClockwise;t.aRotation=this.aRotation;return t}fromJSON(t){super.fromJSON(t);this.aX=t.aX;this.aY=t.aY;this.xRadius=t.xRadius;this.yRadius=t.yRadius;this.aStartAngle=t.aStartAngle;this.aEndAngle=t.aEndAngle;this.aClockwise=t.aClockwise;this.aRotation=t.aRotation;return this}}class ArcCurve extends EllipseCurve{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s);this.isArcCurve=true;this.type=\"ArcCurve\"}}function CubicPoly(){let t=0,e=0,n=0,i=0;function init(r,s,a,o){t=r;e=a;n=-3*r+3*s-2*a-o;i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,r){init(e,n,r*(n-t),r*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,r,s,a){let o=(e-t)/r-(n-t)/(r+s)+(n-e)/s;let l=(n-e)/s-(i-e)/(s+a)+(i-n)/a;o*=s;l*=s;init(e,n,o,l)},calc:function(r){const s=r*r;const a=s*r;return t+e*r+n*s+i*a}}}const Lc=new Vector3;const Ic=new CubicPoly;const Uc=new CubicPoly;const Dc=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(t=[],e=false,n=\"centripetal\",i=.5){super();this.isCatmullRomCurve3=true;this.type=\"CatmullRomCurve3\";this.points=t;this.closed=e;this.curveType=n;this.tension=i}getPoint(t,e=new Vector3){const n=e;const i=this.points;const r=i.length;const s=(r-(this.closed?0:1))*t;let a=Math.floor(s);let o=s-a;if(this.closed)a+=a>0?0:(Math.floor(Math.abs(a)/r)+1)*r;else if(o===0&&a===r-1){a=r-2;o=1}let l,c;if(this.closed||a>0)l=i[(a-1)%r];else{Lc.subVectors(i[0],i[1]).add(i[0]);l=Lc}const h=i[a%r];const u=i[(a+1)%r];if(this.closed||a+2<r)c=i[(a+2)%r];else{Lc.subVectors(i[r-1],i[r-2]).add(i[r-1]);c=Lc}if(this.curveType===\"centripetal\"||this.curveType===\"chordal\"){const t=this.curveType===\"chordal\"?.5:.25;let e=Math.pow(l.distanceToSquared(h),t);let n=Math.pow(h.distanceToSquared(u),t);let i=Math.pow(u.distanceToSquared(c),t);n<1e-4&&(n=1);e<1e-4&&(e=n);i<1e-4&&(i=n);Ic.initNonuniformCatmullRom(l.x,h.x,u.x,c.x,e,n,i);Uc.initNonuniformCatmullRom(l.y,h.y,u.y,c.y,e,n,i);Dc.initNonuniformCatmullRom(l.z,h.z,u.z,c.z,e,n,i)}else if(this.curveType===\"catmullrom\"){Ic.initCatmullRom(l.x,h.x,u.x,c.x,this.tension);Uc.initCatmullRom(l.y,h.y,u.y,c.y,this.tension);Dc.initCatmullRom(l.z,h.z,u.z,c.z,this.tension)}n.set(Ic.calc(o),Uc.calc(o),Dc.calc(o));return n}copy(t){super.copy(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}this.closed=t.closed;this.curveType=t.curveType;this.tension=t.tension;return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}t.closed=this.closed;t.curveType=this.curveType;t.tension=this.tension;return t}fromJSON(t){super.fromJSON(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector3).fromArray(n))}this.closed=t.closed;this.curveType=t.curveType;this.tension=t.tension;return this}}function CatmullRom(t,e,n,i,r){const s=.5*(i-e);const a=.5*(r-n);const o=t*t;const l=t*o;return(2*n-2*i+s+a)*l+(-3*n+3*i-2*s-a)*o+s*t+n}function QuadraticBezierP0(t,e){const n=1-t;return n*n*e}function QuadraticBezierP1(t,e){return 2*(1-t)*t*e}function QuadraticBezierP2(t,e){return t*t*e}function QuadraticBezier(t,e,n,i){return QuadraticBezierP0(t,e)+QuadraticBezierP1(t,n)+QuadraticBezierP2(t,i)}function CubicBezierP0(t,e){const n=1-t;return n*n*n*e}function CubicBezierP1(t,e){const n=1-t;return 3*n*n*t*e}function CubicBezierP2(t,e){return 3*(1-t)*t*t*e}function CubicBezierP3(t,e){return t*t*t*e}function CubicBezier(t,e,n,i,r){return CubicBezierP0(t,e)+CubicBezierP1(t,n)+CubicBezierP2(t,i)+CubicBezierP3(t,r)}class CubicBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2,i=new Vector2){super();this.isCubicBezierCurve=true;this.type=\"CubicBezierCurve\";this.v0=t;this.v1=e;this.v2=n;this.v3=i}getPoint(t,e=new Vector2){const n=e;const i=this.v0,r=this.v1,s=this.v2,a=this.v3;n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);this.v3.copy(t.v3);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();t.v3=this.v3.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);this.v3.fromArray(t.v3);return this}}class CubicBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3,i=new Vector3){super();this.isCubicBezierCurve3=true;this.type=\"CubicBezierCurve3\";this.v0=t;this.v1=e;this.v2=n;this.v3=i}getPoint(t,e=new Vector3){const n=e;const i=this.v0,r=this.v1,s=this.v2,a=this.v3;n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y),CubicBezier(t,i.z,r.z,s.z,a.z));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);this.v3.copy(t.v3);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();t.v3=this.v3.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);this.v3.fromArray(t.v3);return this}}class LineCurve extends Curve{constructor(t=new Vector2,e=new Vector2){super();this.isLineCurve=true;this.type=\"LineCurve\";this.v1=t;this.v2=e}getPoint(t,e=new Vector2){const n=e;if(t===1)n.copy(this.v2);else{n.copy(this.v2).sub(this.v1);n.multiplyScalar(t).add(this.v1)}return n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector2){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){super.copy(t);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class LineCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3){super();this.isLineCurve3=true;this.type=\"LineCurve3\";this.v1=t;this.v2=e}getPoint(t,e=new Vector3){const n=e;if(t===1)n.copy(this.v2);else{n.copy(this.v2).sub(this.v1);n.multiplyScalar(t).add(this.v1)}return n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector3){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){super.copy(t);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class QuadraticBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2){super();this.isQuadraticBezierCurve=true;this.type=\"QuadraticBezierCurve\";this.v0=t;this.v1=e;this.v2=n}getPoint(t,e=new Vector2){const n=e;const i=this.v0,r=this.v1,s=this.v2;n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class QuadraticBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3){super();this.isQuadraticBezierCurve3=true;this.type=\"QuadraticBezierCurve3\";this.v0=t;this.v1=e;this.v2=n}getPoint(t,e=new Vector3){const n=e;const i=this.v0,r=this.v1,s=this.v2;n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y),QuadraticBezier(t,i.z,r.z,s.z));return n}copy(t){super.copy(t);this.v0.copy(t.v0);this.v1.copy(t.v1);this.v2.copy(t.v2);return this}toJSON(){const t=super.toJSON();t.v0=this.v0.toArray();t.v1=this.v1.toArray();t.v2=this.v2.toArray();return t}fromJSON(t){super.fromJSON(t);this.v0.fromArray(t.v0);this.v1.fromArray(t.v1);this.v2.fromArray(t.v2);return this}}class SplineCurve extends Curve{constructor(t=[]){super();this.isSplineCurve=true;this.type=\"SplineCurve\";this.points=t}getPoint(t,e=new Vector2){const n=e;const i=this.points;const r=(i.length-1)*t;const s=Math.floor(r);const a=r-s;const o=i[s===0?s:s-1];const l=i[s];const c=i[s>i.length-2?i.length-1:s+1];const h=i[s>i.length-3?i.length-1:s+2];n.set(CatmullRom(a,o.x,l.x,c.x,h.x),CatmullRom(a,o.y,l.y,c.y,h.y));return n}copy(t){super.copy(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t);this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector2).fromArray(n))}return this}}var Nc=Object.freeze({__proto__:null,ArcCurve:ArcCurve,CatmullRomCurve3:CatmullRomCurve3,CubicBezierCurve:CubicBezierCurve,CubicBezierCurve3:CubicBezierCurve3,EllipseCurve:EllipseCurve,LineCurve:LineCurve,LineCurve3:LineCurve3,QuadraticBezierCurve:QuadraticBezierCurve,QuadraticBezierCurve3:QuadraticBezierCurve3,SplineCurve:SplineCurve});class CurvePath extends Curve{constructor(){super();this.type=\"CurvePath\";this.curves=[];this.autoClose=false}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0);const e=this.curves[this.curves.length-1].getPoint(1);if(!t.equals(e)){const n=t.isVector2===true?\"LineCurve\":\"LineCurve3\";this.curves.push(new Nc[n](e,t))}return this}getPoint(t,e){const n=t*this.getLength();const i=this.getCurveLengths();let r=0;while(r<i.length){if(i[r]>=n){const t=i[r]-n;const s=this.curves[r];const a=s.getLength();const o=a===0?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=true;this.cacheLengths=null;this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++){e+=this.curves[n].getLength();t.push(e)}this.cacheLengths=t;return t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));this.autoClose&&e.push(e[0]);return e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i];const a=s.isEllipseCurve?t*2:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?t*s.points.length:t;const o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];if(!n||!n.equals(i)){e.push(i);n=i}}}this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]);return e}copy(t){super.copy(t);this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}this.autoClose=t.autoClose;return this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose;t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t);this.autoClose=t.autoClose;this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new Nc[n.type]).fromJSON(n))}return this}}class Path extends CurvePath{constructor(t){super();this.type=\"Path\";this.currentPoint=new Vector2;t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){this.currentPoint.set(t,e);return this}lineTo(t,e){const n=new LineCurve(this.currentPoint.clone(),new Vector2(t,e));this.curves.push(n);this.currentPoint.set(t,e);return this}quadraticCurveTo(t,e,n,i){const r=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i));this.curves.push(r);this.currentPoint.set(n,i);return this}bezierCurveTo(t,e,n,i,r,s){const a=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i),new Vector2(r,s));this.curves.push(a);this.currentPoint.set(r,s);return this}splineThru(t){const e=[this.currentPoint.clone()].concat(t);const n=new SplineCurve(e);this.curves.push(n);this.currentPoint.copy(t[t.length-1]);return this}arc(t,e,n,i,r,s){const a=this.currentPoint.x;const o=this.currentPoint.y;this.absarc(t+a,e+o,n,i,r,s);return this}absarc(t,e,n,i,r,s){this.absellipse(t,e,n,n,i,r,s);return this}ellipse(t,e,n,i,r,s,a,o){const l=this.currentPoint.x;const c=this.currentPoint.y;this.absellipse(t+l,e+c,n,i,r,s,a,o);return this}absellipse(t,e,n,i,r,s,a,o){const l=new EllipseCurve(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);this.currentPoint.copy(c);return this}copy(t){super.copy(t);this.currentPoint.copy(t.currentPoint);return this}toJSON(){const t=super.toJSON();t.currentPoint=this.currentPoint.toArray();return t}fromJSON(t){super.fromJSON(t);this.currentPoint.fromArray(t.currentPoint);return this}}class LatheGeometry extends BufferGeometry{constructor(t=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],e=12,n=0,i=Math.PI*2){super();this.type=\"LatheGeometry\";this.parameters={points:t,segments:e,phiStart:n,phiLength:i};e=Math.floor(e);i=clamp(i,0,Math.PI*2);const r=[];const s=[];const a=[];const o=[];const l=[];const c=1/e;const h=new Vector3;const u=new Vector2;const d=new Vector3;const p=new Vector3;const f=new Vector3;let m=0;let g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:m=t[e+1].x-t[e].x;g=t[e+1].y-t[e].y;d.x=g*1;d.y=-m;d.z=g*0;f.copy(d);d.normalize();o.push(d.x,d.y,d.z);break;case t.length-1:o.push(f.x,f.y,f.z);break;default:m=t[e+1].x-t[e].x;g=t[e+1].y-t[e].y;d.x=g*1;d.y=-m;d.z=g*0;p.copy(d);d.x+=f.x;d.y+=f.y;d.z+=f.z;d.normalize();o.push(d.x,d.y,d.z);f.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i;const p=Math.sin(d);const f=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p;h.y=t[n].y;h.z=t[n].x*f;s.push(h.x,h.y,h.z);u.x=r/e;u.y=n/(t.length-1);a.push(u.x,u.y);const i=o[3*n+0]*p;const c=o[3*n+1];const d=o[3*n+0]*f;l.push(i,c,d)}}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length;const s=i;const a=i+t.length;const o=i+t.length+1;const l=i+1;r.push(s,a,l);r.push(o,l,a)}this.setIndex(r);this.setAttribute(\"position\",new Float32BufferAttribute(s,3));this.setAttribute(\"uv\",new Float32BufferAttribute(a,2));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new LatheGeometry(t.points,t.segments,t.phiStart,t.phiLength)}}class CapsuleGeometry extends LatheGeometry{constructor(t=1,e=1,n=4,i=8){const r=new Path;r.absarc(0,-e/2,t,Math.PI*1.5,0);r.absarc(0,e/2,t,0,Math.PI*.5);super(r.getPoints(n),i);this.type=\"CapsuleGeometry\";this.parameters={radius:t,length:e,capSegments:n,radialSegments:i}}static fromJSON(t){return new CapsuleGeometry(t.radius,t.length,t.capSegments,t.radialSegments)}}class CircleGeometry extends BufferGeometry{constructor(t=1,e=32,n=0,i=Math.PI*2){super();this.type=\"CircleGeometry\";this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i};e=Math.max(3,e);const r=[];const s=[];const a=[];const o=[];const l=new Vector3;const c=new Vector2;s.push(0,0,0);a.push(0,0,1);o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u);l.y=t*Math.sin(u);s.push(l.x,l.y,l.z);a.push(0,0,1);c.x=(s[h]/t+1)/2;c.y=(s[h+1]/t+1)/2;o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r);this.setAttribute(\"position\",new Float32BufferAttribute(s,3));this.setAttribute(\"normal\",new Float32BufferAttribute(a,3));this.setAttribute(\"uv\",new Float32BufferAttribute(o,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new CircleGeometry(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=32,r=1,s=false,a=0,o=Math.PI*2){super();this.type=\"CylinderGeometry\";this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i);r=Math.floor(r);const c=[];const h=[];const u=[];const d=[];let p=0;const f=[];const m=n/2;let g=0;generateTorso();if(s===false){t>0&&generateCap(true);e>0&&generateCap(false)}this.setIndex(c);this.setAttribute(\"position\",new Float32BufferAttribute(h,3));this.setAttribute(\"normal\",new Float32BufferAttribute(u,3));this.setAttribute(\"uv\",new Float32BufferAttribute(d,2));function generateTorso(){const s=new Vector3;const _=new Vector3;let x=0;const y=(e-t)/n;for(let l=0;l<=r;l++){const c=[];const g=l/r;const x=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i;const r=e*o+a;const l=Math.sin(r);const f=Math.cos(r);_.x=x*l;_.y=-g*n+m;_.z=x*f;h.push(_.x,_.y,_.z);s.set(l,y,f).normalize();u.push(s.x,s.y,s.z);d.push(e,1-g);c.push(p++)}f.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=f[e][t];const i=f[e+1][t];const r=f[e+1][t+1];const s=f[e][t+1];c.push(n,i,s);c.push(i,r,s);x+=6}l.addGroup(g,x,0);g+=x}function generateCap(n){const r=p;const s=new Vector2;const f=new Vector3;let _=0;const x=n===true?t:e;const y=n===true?1:-1;for(let t=1;t<=i;t++){h.push(0,m*y,0);u.push(0,y,0);d.push(.5,.5);p++}const M=p;for(let t=0;t<=i;t++){const e=t/i;const n=e*o+a;const r=Math.cos(n);const l=Math.sin(n);f.x=x*l;f.y=m*y;f.z=x*r;h.push(f.x,f.y,f.z);u.push(0,y,0);s.x=r*.5+.5;s.y=l*.5*y+.5;d.push(s.x,s.y);p++}for(let t=0;t<i;t++){const e=r+t;const i=M+t;n===true?c.push(i,i+1,e):c.push(i+1,i,e);_+=3}l.addGroup(g,_,n===true?1:2);g+=_}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new CylinderGeometry(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(t=1,e=1,n=32,i=1,r=false,s=0,a=Math.PI*2){super(0,t,e,n,i,r,s,a);this.type=\"ConeGeometry\";this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new ConeGeometry(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(t=[],e=[],n=1,i=0){super();this.type=\"PolyhedronGeometry\";this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[];const s=[];subdivide(i);applyRadius(n);generateUVs();this.setAttribute(\"position\",new Float32BufferAttribute(r,3));this.setAttribute(\"normal\",new Float32BufferAttribute(r.slice(),3));this.setAttribute(\"uv\",new Float32BufferAttribute(s,2));i===0?this.computeVertexNormals():this.normalizeNormals();function subdivide(t){const n=new Vector3;const i=new Vector3;const r=new Vector3;for(let s=0;s<e.length;s+=3){getVertexByIndex(e[s+0],n);getVertexByIndex(e[s+1],i);getVertexByIndex(e[s+2],r);subdivideFace(n,i,r,t)}}function subdivideFace(t,e,n,i){const r=i+1;const s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r);const o=e.clone().lerp(n,i/r);const l=r-i;for(let t=0;t<=l;t++)s[i][t]=t===0&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t<r;t++)for(let e=0;e<2*(r-t)-1;e++){const n=Math.floor(e/2);if(e%2===0){pushVertex(s[t][n+1]);pushVertex(s[t+1][n]);pushVertex(s[t][n])}else{pushVertex(s[t][n+1]);pushVertex(s[t+1][n+1]);pushVertex(s[t+1][n])}}}function applyRadius(t){const e=new Vector3;for(let n=0;n<r.length;n+=3){e.x=r[n+0];e.y=r[n+1];e.z=r[n+2];e.normalize().multiplyScalar(t);r[n+0]=e.x;r[n+1]=e.y;r[n+2]=e.z}}function generateUVs(){const t=new Vector3;for(let e=0;e<r.length;e+=3){t.x=r[e+0];t.y=r[e+1];t.z=r[e+2];const n=azimuth(t)/2/Math.PI+.5;const i=inclination(t)/Math.PI+.5;s.push(n,1-i)}correctUVs();correctSeam()}function correctSeam(){for(let t=0;t<s.length;t+=6){const e=s[t+0];const n=s[t+2];const i=s[t+4];const r=Math.max(e,n,i);const a=Math.min(e,n,i);if(r>.9&&a<.1){e<.2&&(s[t+0]+=1);n<.2&&(s[t+2]+=1);i<.2&&(s[t+4]+=1)}}}function pushVertex(t){r.push(t.x,t.y,t.z)}function getVertexByIndex(e,n){const i=e*3;n.x=t[i+0];n.y=t[i+1];n.z=t[i+2]}function correctUVs(){const t=new Vector3;const e=new Vector3;const n=new Vector3;const i=new Vector3;const a=new Vector2;const o=new Vector2;const l=new Vector2;for(let c=0,h=0;c<r.length;c+=9,h+=6){t.set(r[c+0],r[c+1],r[c+2]);e.set(r[c+3],r[c+4],r[c+5]);n.set(r[c+6],r[c+7],r[c+8]);a.set(s[h+0],s[h+1]);o.set(s[h+2],s[h+3]);l.set(s[h+4],s[h+5]);i.copy(t).add(e).add(n).divideScalar(3);const u=azimuth(i);correctUV(a,h+0,t,u);correctUV(o,h+2,e,u);correctUV(l,h+4,n,u)}}function correctUV(t,e,n,i){i<0&&t.x===1&&(s[e]=t.x-1);n.x===0&&n.z===0&&(s[e]=i/2/Math.PI+.5)}function azimuth(t){return Math.atan2(t.z,-t.x)}function inclination(t){return Math.atan2(-t.y,Math.sqrt(t.x*t.x+t.z*t.z))}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new PolyhedronGeometry(t.vertices,t.indices,t.radius,t.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;const i=1/n;const r=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i];const s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(r,s,t,e);this.type=\"DodecahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new DodecahedronGeometry(t.radius,t.detail)}}const Bc=new Vector3;const Oc=new Vector3;const Vc=new Vector3;const Fc=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(t=null,e=1){super();this.type=\"EdgesGeometry\";this.parameters={geometry:t,thresholdAngle:e};if(t!==null){const n=4;const i=Math.pow(10,n);const r=Math.cos(Hn*e);const s=t.getIndex();const a=t.getAttribute(\"position\");const o=s?s.count:a.count;const l=[0,0,0];const c=[\"a\",\"b\",\"c\"];const h=new Array(3);const u={};const d=[];for(let t=0;t<o;t+=3){if(s){l[0]=s.getX(t);l[1]=s.getX(t+1);l[2]=s.getX(t+2)}else{l[0]=t;l[1]=t+1;l[2]=t+2}const{a:e,b:n,c:o}=Fc;e.fromBufferAttribute(a,l[0]);n.fromBufferAttribute(a,l[1]);o.fromBufferAttribute(a,l[2]);Fc.getNormal(Vc);h[0]=`${Math.round(e.x*i)},${Math.round(e.y*i)},${Math.round(e.z*i)}`;h[1]=`${Math.round(n.x*i)},${Math.round(n.y*i)},${Math.round(n.z*i)}`;h[2]=`${Math.round(o.x*i)},${Math.round(o.y*i)},${Math.round(o.z*i)}`;if(h[0]!==h[1]&&h[1]!==h[2]&&h[2]!==h[0])for(let t=0;t<3;t++){const e=(t+1)%3;const n=h[t];const i=h[e];const s=Fc[c[t]];const a=Fc[c[e]];const o=`${n}_${i}`;const p=`${i}_${n}`;if(p in u&&u[p]){if(Vc.dot(u[p].normal)<=r){d.push(s.x,s.y,s.z);d.push(a.x,a.y,a.z)}u[p]=null}else o in u||(u[o]={index0:l[t],index1:l[e],normal:Vc.clone()})}}for(const t in u)if(u[t]){const{index0:e,index1:n}=u[t];Bc.fromBufferAttribute(a,e);Oc.fromBufferAttribute(a,n);d.push(Bc.x,Bc.y,Bc.z);d.push(Oc.x,Oc.y,Oc.z)}this.setAttribute(\"position\",new Float32BufferAttribute(d,3))}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}}class Shape extends Path{constructor(t){super(t);this.uuid=generateUUID();this.type=\"Shape\";this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t);this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid;t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t);this.uuid=t.uuid;this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new Path).fromJSON(n))}return this}}const zc={triangulate:function(t,e,n=2){const i=e&&e.length;const r=i?e[0]*n:t.length;let s=linkedList(t,0,r,n,true);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;i&&(s=eliminateHoles(t,e,s,n));if(t.length>80*n){o=c=t[0];l=h=t[1];for(let e=n;e<r;e+=n){u=t[e];d=t[e+1];u<o&&(o=u);d<l&&(l=d);u>c&&(c=u);d>h&&(h=d)}p=Math.max(c-o,h-l);p=p!==0?32767/p:0}earcutLinked(s,a,n,o,l,p,0);return a}};function linkedList(t,e,n,i,r){let s,a;if(r===signedArea(t,e,n,i)>0)for(s=e;s<n;s+=i)a=insertNode(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=insertNode(s,t[s],t[s+1],a);if(a&&equals(a,a.next)){removeNode(a);a=a.next}return a}function filterPoints(t,e){if(!t)return t;e||(e=t);let n,i=t;do{n=false;if(i.steiner||!equals(i,i.next)&&area(i.prev,i,i.next)!==0)i=i.next;else{removeNode(i);i=e=i.prev;if(i===i.next)break;n=true}}while(n||i!==e);return e}function earcutLinked(t,e,n,i,r,s,a){if(!t)return;!a&&s&&indexCurve(t,i,r,s);let o,l,c=t;while(t.prev!==t.next){o=t.prev;l=t.next;if(s?isEarHashed(t,i,r,s):isEar(t)){e.push(o.i/n|0);e.push(t.i/n|0);e.push(l.i/n|0);removeNode(t);t=l.next;c=l.next}else{t=l;if(t===c){if(a)if(a===1){t=cureLocalIntersections(filterPoints(t),e,n);earcutLinked(t,e,n,i,r,s,2)}else a===2&&splitEarcut(t,e,n,i,r,s);else earcutLinked(filterPoints(t),e,n,i,r,s,1);break}}}}function isEar(t){const e=t.prev,n=t,i=t.next;if(area(e,n,i)>=0)return false;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y;const h=r<s?r<a?r:a:s<a?s:a,u=o<l?o<c?o:c:l<c?l:c,d=r>s?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=i.next;while(f!==e){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&pointInTriangle(r,o,s,l,a,c,f.x,f.y)&&area(f.prev,f,f.next)>=0)return false;f=f.next}return true}function isEarHashed(t,e,n,i){const r=t.prev,s=t,a=t.next;if(area(r,s,a)>=0)return false;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y;const p=o<l?o<c?o:c:l<c?l:c,f=h<u?h<d?h:d:u<d?u:d,m=o>l?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d;const _=zOrder(p,f,e,n,i),x=zOrder(m,g,e,n,i);let y=t.prevZ,M=t.nextZ;while(y&&y.z>=_&&M&&M.z<=x){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==r&&y!==a&&pointInTriangle(o,h,l,u,c,d,y.x,y.y)&&area(y.prev,y,y.next)>=0)return false;y=y.prevZ;if(M.x>=p&&M.x<=m&&M.y>=f&&M.y<=g&&M!==r&&M!==a&&pointInTriangle(o,h,l,u,c,d,M.x,M.y)&&area(M.prev,M,M.next)>=0)return false;M=M.nextZ}while(y&&y.z>=_){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==r&&y!==a&&pointInTriangle(o,h,l,u,c,d,y.x,y.y)&&area(y.prev,y,y.next)>=0)return false;y=y.prevZ}while(M&&M.z<=x){if(M.x>=p&&M.x<=m&&M.y>=f&&M.y<=g&&M!==r&&M!==a&&pointInTriangle(o,h,l,u,c,d,M.x,M.y)&&area(M.prev,M,M.next)>=0)return false;M=M.nextZ}return true}function cureLocalIntersections(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;if(!equals(r,s)&&intersects(r,i,i.next,s)&&locallyInside(r,s)&&locallyInside(s,r)){e.push(r.i/n|0);e.push(i.i/n|0);e.push(s.i/n|0);removeNode(i);removeNode(i.next);i=t=s}i=i.next}while(i!==t);return filterPoints(i)}function splitEarcut(t,e,n,i,r,s){let a=t;do{let t=a.next.next;while(t!==a.prev){if(a.i!==t.i&&isValidDiagonal(a,t)){let o=splitPolygon(a,t);a=filterPoints(a,a.next);o=filterPoints(o,o.next);earcutLinked(a,e,n,i,r,s,0);earcutLinked(o,e,n,i,r,s,0);return}t=t.next}a=a.next}while(a!==t)}function eliminateHoles(t,e,n,i){const r=[];let s,a,o,l,c;for(s=0,a=e.length;s<a;s++){o=e[s]*i;l=s<a-1?e[s+1]*i:t.length;c=linkedList(t,o,l,i,false);c===c.next&&(c.steiner=true);r.push(getLeftmost(c))}r.sort(compareX);for(s=0;s<r.length;s++)n=eliminateHole(r[s],n);return n}function compareX(t,e){return t.x-e.x}function eliminateHole(t,e){const n=findHoleBridge(t,e);if(!n)return e;const i=splitPolygon(n,t);filterPoints(i,i.next);return filterPoints(n,n.next)}function findHoleBridge(t,e){let n,i=e,r=-Infinity;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r){r=t;n=i.x<i.next.x?i:i.next;if(t===s)return n}}i=i.next}while(i!==e);if(!n)return null;const o=n,l=n.x,c=n.y;let h,u=Infinity;i=n;do{if(s>=i.x&&i.x>=l&&s!==i.x&&pointInTriangle(a<c?s:r,a,l,c,a<c?r:s,a,i.x,i.y)){h=Math.abs(a-i.y)/(s-i.x);if(locallyInside(i,t)&&(h<u||h===u&&(i.x>n.x||i.x===n.x&&sectorContainsSector(n,i)))){n=i;u=h}}i=i.next}while(i!==o);return n}function sectorContainsSector(t,e){return area(t.prev,t,e.prev)<0&&area(e.next,t,t.next)<0}function indexCurve(t,e,n,i){let r=t;do{r.z===0&&(r.z=zOrder(r.x,r.y,e,n,i));r.prevZ=r.prev;r.nextZ=r.next;r=r.next}while(r!==t);r.prevZ.nextZ=null;r.prevZ=null;sortLinked(r)}function sortLinked(t){let e,n,i,r,s,a,o,l,c=1;do{n=t;t=null;s=null;a=0;while(n){a++;i=n;o=0;for(e=0;e<c;e++){o++;i=i.nextZ;if(!i)break}l=c;while(o>0||l>0&&i){if(o!==0&&(l===0||!i||n.z<=i.z)){r=n;n=n.nextZ;o--}else{r=i;i=i.nextZ;l--}s?s.nextZ=r:t=r;r.prevZ=s;s=r}n=i}s.nextZ=null;c*=2}while(a>1);return t}function zOrder(t,e,n,i,r){t=(t-n)*r|0;e=(e-i)*r|0;t=16711935&(t|t<<8);t=252645135&(t|t<<4);t=858993459&(t|t<<2);t=1431655765&(t|t<<1);e=16711935&(e|e<<8);e=252645135&(e|e<<4);e=858993459&(e|e<<2);e=1431655765&(e|e<<1);return t|e<<1}function getLeftmost(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e);e=e.next}while(e!==t);return n}function pointInTriangle(t,e,n,i,r,s,a,o){return(r-a)*(e-o)>=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function isValidDiagonal(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!intersectsPolygon(t,e)&&(locallyInside(t,e)&&locallyInside(e,t)&&middleInside(t,e)&&(area(t.prev,t,e.prev)||area(t,e.prev,e))||equals(t,e)&&area(t.prev,t,t.next)>0&&area(e.prev,e,e.next)>0)}function area(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function equals(t,e){return t.x===e.x&&t.y===e.y}function intersects(t,e,n,i){const r=sign(area(t,e,n));const s=sign(area(t,e,i));const a=sign(area(n,i,t));const o=sign(area(n,i,e));return r!==s&&a!==o||(!(r!==0||!onSegment(t,n,e))||(!(s!==0||!onSegment(t,i,e))||(!(a!==0||!onSegment(n,t,i))||!(o!==0||!onSegment(n,e,i)))))}function onSegment(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function sign(t){return t>0?1:t<0?-1:0}function intersectsPolygon(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&intersects(n,n.next,t,e))return true;n=n.next}while(n!==t);return false}function locallyInside(t,e){return area(t.prev,t,t.next)<0?area(t,e,t.next)>=0&&area(t,t.prev,e)>=0:area(t,e,t.prev)<0||area(t,t.next,e)<0}function middleInside(t,e){let n=t,i=false;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!==n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i);n=n.next}while(n!==t);return i}function splitPolygon(t,e){const n=new Node(t.i,t.x,t.y),i=new Node(e.i,e.x,e.y),r=t.next,s=e.prev;t.next=e;e.prev=t;n.next=r;r.prev=n;i.next=n;n.prev=i;s.next=i;i.prev=s;return i}function insertNode(t,e,n,i){const r=new Node(t,e,n);if(i){r.next=i.next;r.prev=i;i.next.prev=r;i.next=r}else{r.prev=r;r.next=r}return r}function removeNode(t){t.next.prev=t.prev;t.prev.next=t.next;t.prevZ&&(t.prevZ.nextZ=t.nextZ);t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Node(t,e,n){this.i=t;this.x=e;this.y=n;this.prev=null;this.next=null;this.z=0;this.prevZ=null;this.nextZ=null;this.steiner=false}function signedArea(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i){r+=(t[a]-t[s])*(t[s+1]+t[a+1]);a=s}return r}class ShapeUtils{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return n*.5}static isClockWise(t){return ShapeUtils.area(t)<0}static triangulateShape(t,e){const n=[];const i=[];const r=[];removeDupEndPts(t);addContour(n,t);let s=t.length;e.forEach(removeDupEndPts);for(let t=0;t<e.length;t++){i.push(s);s+=e[t].length;addContour(n,e[t])}const a=zc.triangulate(n,i);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}}function removeDupEndPts(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function addContour(t,e){for(let n=0;n<e.length;n++){t.push(e[n].x);t.push(e[n].y)}}class ExtrudeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e={}){super();this.type=\"ExtrudeGeometry\";this.parameters={shapes:t,options:e};t=Array.isArray(t)?t:[t];const n=this;const i=[];const r=[];for(let e=0,n=t.length;e<n;e++){const n=t[e];addShape(n)}this.setAttribute(\"position\",new Float32BufferAttribute(i,3));this.setAttribute(\"uv\",new Float32BufferAttribute(r,2));this.computeVertexNormals();function addShape(t){const s=[];const a=e.curveSegments!==void 0?e.curveSegments:12;const o=e.steps!==void 0?e.steps:1;const l=e.depth!==void 0?e.depth:1;let c=e.bevelEnabled===void 0||e.bevelEnabled;let h=e.bevelThickness!==void 0?e.bevelThickness:.2;let u=e.bevelSize!==void 0?e.bevelSize:h-.1;let d=e.bevelOffset!==void 0?e.bevelOffset:0;let p=e.bevelSegments!==void 0?e.bevelSegments:3;const f=e.extrudePath;const m=e.UVGenerator!==void 0?e.UVGenerator:Gc;let g,_=false;let x,y,M,S;if(f){g=f.getSpacedPoints(o);_=true;c=false;x=f.computeFrenetFrames(o,false);y=new Vector3;M=new Vector3;S=new Vector3}if(!c){p=0;h=0;u=0;d=0}const b=t.extractPoints(a);let T=b.shape;const w=b.holes;const E=!ShapeUtils.isClockWise(T);if(E){T=T.reverse();for(let t=0,e=w.length;t<e;t++){const e=w[t];ShapeUtils.isClockWise(e)&&(w[t]=e.reverse())}}const A=ShapeUtils.triangulateShape(T,w);const C=T;for(let t=0,e=w.length;t<e;t++){const e=w[t];T=T.concat(e)}function scalePt2(t,e,n){e||console.error(\"THREE.ExtrudeGeometry: vec does not exist\");return t.clone().addScaledVector(e,n)}const R=T.length,P=A.length;function getBevelVec(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y;const l=n.x-t.x,c=n.y-t.y;const h=a*a+o*o;const u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h);const d=Math.sqrt(l*l+c*c);const p=e.x-o/u;const f=e.y+a/u;const m=n.x-c/d;const g=n.y+l/d;const _=((m-p)*c-(g-f)*l)/(a*c-o*l);i=p+a*_-t.x;r=f+o*_-t.y;const x=i*i+r*r;if(x<=2)return new Vector2(i,r);s=Math.sqrt(x/2)}else{let t=false;a>Number.EPSILON?l>Number.EPSILON&&(t=true):a<-Number.EPSILON?l<-Number.EPSILON&&(t=true):Math.sign(o)===Math.sign(c)&&(t=true);if(t){i=-o;r=a;s=Math.sqrt(h)}else{i=a;r=o;s=Math.sqrt(h/2)}}return new Vector2(i/s,r/s)}const L=[];for(let t=0,e=C.length,n=e-1,i=t+1;t<e;t++,n++,i++){n===e&&(n=0);i===e&&(i=0);L[t]=getBevelVec(C[t],C[n],C[i])}const I=[];let U,D=L.concat();for(let t=0,e=w.length;t<e;t++){const e=w[t];U=[];for(let t=0,n=e.length,i=n-1,r=t+1;t<n;t++,i++,r++){i===n&&(i=0);r===n&&(r=0);U[t]=getBevelVec(e[t],e[i],e[r])}I.push(U);D=D.concat(U)}for(let t=0;t<p;t++){const e=t/p;const n=h*Math.cos(e*Math.PI/2);const i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=C.length;t<e;t++){const e=scalePt2(C[t],L[t],i);v(e.x,e.y,-n)}for(let t=0,e=w.length;t<e;t++){const e=w[t];U=I[t];for(let t=0,r=e.length;t<r;t++){const r=scalePt2(e[t],U[t],i);v(r.x,r.y,-n)}}}const N=u+d;for(let t=0;t<R;t++){const e=c?scalePt2(T[t],D[t],N):T[t];if(_){M.copy(x.normals[0]).multiplyScalar(e.x);y.copy(x.binormals[0]).multiplyScalar(e.y);S.copy(g[0]).add(M).add(y);v(S.x,S.y,S.z)}else v(e.x,e.y,0)}for(let t=1;t<=o;t++)for(let e=0;e<R;e++){const n=c?scalePt2(T[e],D[e],N):T[e];if(_){M.copy(x.normals[t]).multiplyScalar(n.x);y.copy(x.binormals[t]).multiplyScalar(n.y);S.copy(g[t]).add(M).add(y);v(S.x,S.y,S.z)}else v(n.x,n.y,l/o*t)}for(let t=p-1;t>=0;t--){const e=t/p;const n=h*Math.cos(e*Math.PI/2);const i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=C.length;t<e;t++){const e=scalePt2(C[t],L[t],i);v(e.x,e.y,l+n)}for(let t=0,e=w.length;t<e;t++){const e=w[t];U=I[t];for(let t=0,r=e.length;t<r;t++){const r=scalePt2(e[t],U[t],i);_?v(r.x,r.y+g[o-1].y,g[o-1].x+n):v(r.x,r.y,l+n)}}}buildLidFaces();buildSideFaces();function buildLidFaces(){const t=i.length/3;if(c){let t=0;let e=R*t;for(let t=0;t<P;t++){const n=A[t];f3(n[2]+e,n[1]+e,n[0]+e)}t=o+p*2;e=R*t;for(let t=0;t<P;t++){const n=A[t];f3(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<P;t++){const e=A[t];f3(e[2],e[1],e[0])}for(let t=0;t<P;t++){const e=A[t];f3(e[0]+R*o,e[1]+R*o,e[2]+R*o)}}n.addGroup(t,i.length/3-t,0)}function buildSideFaces(){const t=i.length/3;let e=0;sidewalls(C,e);e+=C.length;for(let t=0,n=w.length;t<n;t++){const n=w[t];sidewalls(n,e);e+=n.length}n.addGroup(t,i.length/3-t,1)}function sidewalls(t,e){let n=t.length;while(--n>=0){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+p*2;t<n;t++){const n=R*t;const s=R*(t+1);const a=e+i+n,o=e+r+n,l=e+r+s,c=e+i+s;f4(a,o,l,c)}}}function v(t,e,n){s.push(t);s.push(e);s.push(n)}function f3(t,e,r){addVertex(t);addVertex(e);addVertex(r);const s=i.length/3;const a=m.generateTopUV(n,i,s-3,s-2,s-1);addUV(a[0]);addUV(a[1]);addUV(a[2])}function f4(t,e,r,s){addVertex(t);addVertex(e);addVertex(s);addVertex(e);addVertex(r);addVertex(s);const a=i.length/3;const o=m.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);addUV(o[0]);addUV(o[1]);addUV(o[3]);addUV(o[1]);addUV(o[2]);addUV(o[3])}function addVertex(t){i.push(s[t*3+0]);i.push(s[t*3+1]);i.push(s[t*3+2])}function addUV(t){r.push(t.x);r.push(t.y)}}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}toJSON(){const t=super.toJSON();const e=this.parameters.shapes;const n=this.parameters.options;return toJSON$1(e,n,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}const i=t.options.extrudePath;i!==void 0&&(t.options.extrudePath=(new Nc[i.type]).fromJSON(i));return new ExtrudeGeometry(n,t.options)}}const Gc={generateTopUV:function(t,e,n,i,r){const s=e[n*3];const a=e[n*3+1];const o=e[i*3];const l=e[i*3+1];const c=e[r*3];const h=e[r*3+1];return[new Vector2(s,a),new Vector2(o,l),new Vector2(c,h)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[n*3];const o=e[n*3+1];const l=e[n*3+2];const c=e[i*3];const h=e[i*3+1];const u=e[i*3+2];const d=e[r*3];const p=e[r*3+1];const f=e[r*3+2];const m=e[s*3];const g=e[s*3+1];const _=e[s*3+2];return Math.abs(o-h)<Math.abs(a-c)?[new Vector2(a,1-l),new Vector2(c,1-u),new Vector2(d,1-f),new Vector2(m,1-_)]:[new Vector2(o,1-l),new Vector2(h,1-u),new Vector2(p,1-f),new Vector2(g,1-_)]}};function toJSON$1(t,e,n){n.shapes=[];if(Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);n.options=Object.assign({},e);e.extrudePath!==void 0&&(n.options.extrudePath=e.extrudePath.toJSON());return n}class IcosahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;const i=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1];const r=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];super(i,r,t,e);this.type=\"IcosahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new IcosahedronGeometry(t.radius,t.detail)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1];const i=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(n,i,t,e);this.type=\"OctahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new OctahedronGeometry(t.radius,t.detail)}}class RingGeometry extends BufferGeometry{constructor(t=.5,e=1,n=32,i=1,r=0,s=Math.PI*2){super();this.type=\"RingGeometry\";this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s};n=Math.max(3,n);i=Math.max(1,i);const a=[];const o=[];const l=[];const c=[];let h=t;const u=(e-t)/i;const d=new Vector3;const p=new Vector2;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=h*Math.cos(i);d.y=h*Math.sin(i);o.push(d.x,d.y,d.z);l.push(0,0,1);p.x=(d.x/e+1)/2;p.y=(d.y/e+1)/2;c.push(p.x,p.y)}h+=u}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e;const r=i;const s=i+n+1;const o=i+n+2;const l=i+1;a.push(r,s,l);a.push(s,o,l)}}this.setIndex(a);this.setAttribute(\"position\",new Float32BufferAttribute(o,3));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3));this.setAttribute(\"uv\",new Float32BufferAttribute(c,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new RingGeometry(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(0,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e=12){super();this.type=\"ShapeGeometry\";this.parameters={shapes:t,curveSegments:e};const n=[];const i=[];const r=[];const s=[];let a=0;let o=0;if(Array.isArray(t)===false)addShape(t);else for(let e=0;e<t.length;e++){addShape(t[e]);this.addGroup(a,o,e);a+=o;o=0}this.setIndex(n);this.setAttribute(\"position\",new Float32BufferAttribute(i,3));this.setAttribute(\"normal\",new Float32BufferAttribute(r,3));this.setAttribute(\"uv\",new Float32BufferAttribute(s,2));function addShape(t){const a=i.length/3;const l=t.extractPoints(e);let c=l.shape;const h=l.holes;ShapeUtils.isClockWise(c)===false&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];ShapeUtils.isClockWise(e)===true&&(h[t]=e.reverse())}const u=ShapeUtils.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0);r.push(0,0,1);s.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t];const i=e[0]+a;const r=e[1]+a;const s=e[2]+a;n.push(i,r,s);o+=3}}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}toJSON(){const t=super.toJSON();const e=this.parameters.shapes;return toJSON(e,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new ShapeGeometry(n,t.curveSegments)}}function toJSON(t,e){e.shapes=[];if(Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}class SphereGeometry extends BufferGeometry{constructor(t=1,e=32,n=16,i=0,r=Math.PI*2,s=0,a=Math.PI){super();this.type=\"SphereGeometry\";this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a};e=Math.max(3,Math.floor(e));n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[];const h=new Vector3;const u=new Vector3;const d=[];const p=[];const f=[];const m=[];for(let d=0;d<=n;d++){const g=[];const _=d/n;let x=0;d===0&&s===0?x=.5/e:d===n&&o===Math.PI&&(x=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(s+_*a);h.y=t*Math.cos(s+_*a);h.z=t*Math.sin(i+o*r)*Math.sin(s+_*a);p.push(h.x,h.y,h.z);u.copy(h).normalize();f.push(u.x,u.y,u.z);m.push(o+x,1-_);g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1];const r=c[t][i];const a=c[t+1][i];const l=c[t+1][i+1];(t!==0||s>0)&&d.push(e,r,l);(t!==n-1||o<Math.PI)&&d.push(r,a,l)}this.setIndex(d);this.setAttribute(\"position\",new Float32BufferAttribute(p,3));this.setAttribute(\"normal\",new Float32BufferAttribute(f,3));this.setAttribute(\"uv\",new Float32BufferAttribute(m,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new SphereGeometry(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1];const i=[2,1,0,0,3,2,1,3,0,2,3,1];super(n,i,t,e);this.type=\"TetrahedronGeometry\";this.parameters={radius:t,detail:e}}static fromJSON(t){return new TetrahedronGeometry(t.radius,t.detail)}}class TorusGeometry extends BufferGeometry{constructor(t=1,e=.4,n=12,i=48,r=Math.PI*2){super();this.type=\"TorusGeometry\";this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r};n=Math.floor(n);i=Math.floor(i);const s=[];const a=[];const o=[];const l=[];const c=new Vector3;const h=new Vector3;const u=new Vector3;for(let s=0;s<=n;s++)for(let d=0;d<=i;d++){const p=d/i*r;const f=s/n*Math.PI*2;h.x=(t+e*Math.cos(f))*Math.cos(p);h.y=(t+e*Math.cos(f))*Math.sin(p);h.z=e*Math.sin(f);a.push(h.x,h.y,h.z);c.x=t*Math.cos(p);c.y=t*Math.sin(p);u.subVectors(h,c).normalize();o.push(u.x,u.y,u.z);l.push(d/i);l.push(s/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+e-1;const r=(i+1)*(t-1)+e-1;const a=(i+1)*(t-1)+e;const o=(i+1)*t+e;s.push(n,r,o);s.push(r,a,o)}this.setIndex(s);this.setAttribute(\"position\",new Float32BufferAttribute(a,3));this.setAttribute(\"normal\",new Float32BufferAttribute(o,3));this.setAttribute(\"uv\",new Float32BufferAttribute(l,2))}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new TorusGeometry(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super();this.type=\"TorusKnotGeometry\";this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s};n=Math.floor(n);i=Math.floor(i);const a=[];const o=[];const l=[];const c=[];const h=new Vector3;const u=new Vector3;const d=new Vector3;const p=new Vector3;const f=new Vector3;const m=new Vector3;const g=new Vector3;for(let a=0;a<=n;++a){const _=a/n*r*Math.PI*2;calculatePositionOnCurve(_,r,s,t,d);calculatePositionOnCurve(_+.01,r,s,t,p);m.subVectors(p,d);g.addVectors(p,d);f.crossVectors(m,g);g.crossVectors(f,m);f.normalize();g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2;const s=-e*Math.cos(r);const p=e*Math.sin(r);h.x=d.x+(s*g.x+p*f.x);h.y=d.y+(s*g.y+p*f.y);h.z=d.z+(s*g.z+p*f.z);o.push(h.x,h.y,h.z);u.subVectors(h,d).normalize();l.push(u.x,u.y,u.z);c.push(a/n);c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1);const r=(i+1)*t+(e-1);const s=(i+1)*t+e;const o=(i+1)*(t-1)+e;a.push(n,r,o);a.push(r,s,o)}this.setIndex(a);this.setAttribute(\"position\",new Float32BufferAttribute(o,3));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3));this.setAttribute(\"uv\",new Float32BufferAttribute(c,2));function calculatePositionOnCurve(t,e,n,i,r){const s=Math.cos(t);const a=Math.sin(t);const o=n/e*t;const l=Math.cos(o);r.x=i*(2+l)*.5*s;r.y=i*(2+l)*a*.5;r.z=i*Math.sin(o)*.5}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}static fromJSON(t){return new TorusKnotGeometry(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class TubeGeometry extends BufferGeometry{constructor(t=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),e=64,n=1,i=8,r=false){super();this.type=\"TubeGeometry\";this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents;this.normals=s.normals;this.binormals=s.binormals;const a=new Vector3;const o=new Vector3;const l=new Vector2;let c=new Vector3;const h=[];const u=[];const d=[];const p=[];generateBufferData();this.setIndex(p);this.setAttribute(\"position\",new Float32BufferAttribute(h,3));this.setAttribute(\"normal\",new Float32BufferAttribute(u,3));this.setAttribute(\"uv\",new Float32BufferAttribute(d,2));function generateBufferData(){for(let t=0;t<e;t++)generateSegment(t);generateSegment(r===false?e:0);generateUVs();generateIndices()}function generateSegment(r){c=t.getPointAt(r/e,c);const l=s.normals[r];const d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2;const r=Math.sin(e);const s=-Math.cos(e);o.x=s*l.x+r*d.x;o.y=s*l.y+r*d.y;o.z=s*l.z+r*d.z;o.normalize();u.push(o.x,o.y,o.z);a.x=c.x+n*o.x;a.y=c.y+n*o.y;a.z=c.z+n*o.z;h.push(a.x,a.y,a.z)}}function generateIndices(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1);const r=(i+1)*t+(e-1);const s=(i+1)*t+e;const a=(i+1)*(t-1)+e;p.push(n,r,a);p.push(r,s,a)}}function generateUVs(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++){l.x=t/e;l.y=n/i;d.push(l.x,l.y)}}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}toJSON(){const t=super.toJSON();t.path=this.parameters.path.toJSON();return t}static fromJSON(t){return new TubeGeometry((new Nc[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class WireframeGeometry extends BufferGeometry{constructor(t=null){super();this.type=\"WireframeGeometry\";this.parameters={geometry:t};if(t!==null){const e=[];const n=new Set;const i=new Vector3;const r=new Vector3;if(t.index!==null){const s=t.attributes.position;const a=t.index;let o=t.groups;o.length===0&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,l=o.length;t<l;++t){const l=o[t];const c=l.start;const h=l.count;for(let t=c,o=c+h;t<o;t+=3)for(let o=0;o<3;o++){const l=a.getX(t+o);const c=a.getX(t+(o+1)%3);i.fromBufferAttribute(s,l);r.fromBufferAttribute(s,c);if(isUniqueEdge(i,r,n)===true){e.push(i.x,i.y,i.z);e.push(r.x,r.y,r.z)}}}}else{const s=t.attributes.position;for(let t=0,a=s.count/3;t<a;t++)for(let a=0;a<3;a++){const o=3*t+a;const l=3*t+(a+1)%3;i.fromBufferAttribute(s,o);r.fromBufferAttribute(s,l);if(isUniqueEdge(i,r,n)===true){e.push(i.x,i.y,i.z);e.push(r.x,r.y,r.z)}}}this.setAttribute(\"position\",new Float32BufferAttribute(e,3))}}copy(t){super.copy(t);this.parameters=Object.assign({},t.parameters);return this}}function isUniqueEdge(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`;const r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;if(n.has(i)===true||n.has(r)===true)return false;n.add(i);n.add(r);return true}var kc=Object.freeze({__proto__:null,BoxGeometry:BoxGeometry,CapsuleGeometry:CapsuleGeometry,CircleGeometry:CircleGeometry,ConeGeometry:ConeGeometry,CylinderGeometry:CylinderGeometry,DodecahedronGeometry:DodecahedronGeometry,EdgesGeometry:EdgesGeometry,ExtrudeGeometry:ExtrudeGeometry,IcosahedronGeometry:IcosahedronGeometry,LatheGeometry:LatheGeometry,OctahedronGeometry:OctahedronGeometry,PlaneGeometry:PlaneGeometry,PolyhedronGeometry:PolyhedronGeometry,RingGeometry:RingGeometry,ShapeGeometry:ShapeGeometry,SphereGeometry:SphereGeometry,TetrahedronGeometry:TetrahedronGeometry,TorusGeometry:TorusGeometry,TorusKnotGeometry:TorusKnotGeometry,TubeGeometry:TubeGeometry,WireframeGeometry:WireframeGeometry});class ShadowMaterial extends Material{constructor(t){super();this.isShadowMaterial=true;this.type=\"ShadowMaterial\";this.color=new Color(0);this.transparent=true;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.fog=t.fog;return this}}class RawShaderMaterial extends ShaderMaterial{constructor(t){super(t);this.isRawShaderMaterial=true;this.type=\"RawShaderMaterial\"}}class MeshStandardMaterial extends Material{constructor(t){super();this.isMeshStandardMaterial=true;this.defines={STANDARD:\"\"};this.type=\"MeshStandardMaterial\";this.color=new Color(16777215);this.roughness=1;this.metalness=0;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=je;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.roughnessMap=null;this.metalnessMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.envMapIntensity=1;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.defines={STANDARD:\"\"};this.color.copy(t.color);this.roughness=t.roughness;this.metalness=t.metalness;this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.roughnessMap=t.roughnessMap;this.metalnessMap=t.metalnessMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.envMapIntensity=t.envMapIntensity;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class MeshPhysicalMaterial extends MeshStandardMaterial{constructor(t){super();this.isMeshPhysicalMaterial=true;this.defines={STANDARD:\"\",PHYSICAL:\"\"};this.type=\"MeshPhysicalMaterial\";this.anisotropyRotation=0;this.anisotropyMap=null;this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new Vector2(1,1);this.clearcoatNormalMap=null;this.ior=1.5;Object.defineProperty(this,\"reflectivity\",{get:function(){return clamp(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}});this.iridescenceMap=null;this.iridescenceIOR=1.3;this.iridescenceThicknessRange=[100,400];this.iridescenceThicknessMap=null;this.sheenColor=new Color(0);this.sheenColorMap=null;this.sheenRoughness=1;this.sheenRoughnessMap=null;this.transmissionMap=null;this.thickness=0;this.thicknessMap=null;this.attenuationDistance=Infinity;this.attenuationColor=new Color(1,1,1);this.specularIntensity=1;this.specularIntensityMap=null;this.specularColor=new Color(1,1,1);this.specularColorMap=null;this._anisotropy=0;this._clearcoat=0;this._dispersion=0;this._iridescence=0;this._sheen=0;this._transmission=0;this.setValues(t)}get anisotropy(){return this._anisotropy}set anisotropy(t){this._anisotropy>0!==t>0&&this.version++;this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!==t>0&&this.version++;this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!==t>0&&this.version++;this._iridescence=t}get dispersion(){return this._dispersion}set dispersion(t){this._dispersion>0!==t>0&&this.version++;this._dispersion=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!==t>0&&this.version++;this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!==t>0&&this.version++;this._transmission=t}copy(t){super.copy(t);this.defines={STANDARD:\"\",PHYSICAL:\"\"};this.anisotropy=t.anisotropy;this.anisotropyRotation=t.anisotropyRotation;this.anisotropyMap=t.anisotropyMap;this.clearcoat=t.clearcoat;this.clearcoatMap=t.clearcoatMap;this.clearcoatRoughness=t.clearcoatRoughness;this.clearcoatRoughnessMap=t.clearcoatRoughnessMap;this.clearcoatNormalMap=t.clearcoatNormalMap;this.clearcoatNormalScale.copy(t.clearcoatNormalScale);this.dispersion=t.dispersion;this.ior=t.ior;this.iridescence=t.iridescence;this.iridescenceMap=t.iridescenceMap;this.iridescenceIOR=t.iridescenceIOR;this.iridescenceThicknessRange=[...t.iridescenceThicknessRange];this.iridescenceThicknessMap=t.iridescenceThicknessMap;this.sheen=t.sheen;this.sheenColor.copy(t.sheenColor);this.sheenColorMap=t.sheenColorMap;this.sheenRoughness=t.sheenRoughness;this.sheenRoughnessMap=t.sheenRoughnessMap;this.transmission=t.transmission;this.transmissionMap=t.transmissionMap;this.thickness=t.thickness;this.thicknessMap=t.thicknessMap;this.attenuationDistance=t.attenuationDistance;this.attenuationColor.copy(t.attenuationColor);this.specularIntensity=t.specularIntensity;this.specularIntensityMap=t.specularIntensityMap;this.specularColor.copy(t.specularColor);this.specularColorMap=t.specularColorMap;return this}}class MeshPhongMaterial extends Material{constructor(t){super();this.isMeshPhongMaterial=true;this.type=\"MeshPhongMaterial\";this.color=new Color(16777215);this.specular=new Color(1118481);this.shininess=30;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=je;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=K;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.specular.copy(t.specular);this.shininess=t.shininess;this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.specularMap=t.specularMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.combine=t.combine;this.reflectivity=t.reflectivity;this.refractionRatio=t.refractionRatio;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class MeshToonMaterial extends Material{constructor(t){super();this.isMeshToonMaterial=true;this.defines={TOON:\"\"};this.type=\"MeshToonMaterial\";this.color=new Color(16777215);this.map=null;this.gradientMap=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=je;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.gradientMap=t.gradientMap;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.alphaMap=t.alphaMap;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.fog=t.fog;return this}}class MeshNormalMaterial extends Material{constructor(t){super();this.isMeshNormalMaterial=true;this.type=\"MeshNormalMaterial\";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=je;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.flatShading=false;this.setValues(t)}copy(t){super.copy(t);this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.flatShading=t.flatShading;return this}}class MeshLambertMaterial extends Material{constructor(t){super();this.isMeshLambertMaterial=true;this.type=\"MeshLambertMaterial\";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=je;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.envMapRotation=new Euler;this.combine=K;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.color.copy(t.color);this.map=t.map;this.lightMap=t.lightMap;this.lightMapIntensity=t.lightMapIntensity;this.aoMap=t.aoMap;this.aoMapIntensity=t.aoMapIntensity;this.emissive.copy(t.emissive);this.emissiveMap=t.emissiveMap;this.emissiveIntensity=t.emissiveIntensity;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.specularMap=t.specularMap;this.alphaMap=t.alphaMap;this.envMap=t.envMap;this.envMapRotation.copy(t.envMapRotation);this.combine=t.combine;this.reflectivity=t.reflectivity;this.refractionRatio=t.refractionRatio;this.wireframe=t.wireframe;this.wireframeLinewidth=t.wireframeLinewidth;this.wireframeLinecap=t.wireframeLinecap;this.wireframeLinejoin=t.wireframeLinejoin;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class MeshMatcapMaterial extends Material{constructor(t){super();this.isMeshMatcapMaterial=true;this.defines={MATCAP:\"\"};this.type=\"MeshMatcapMaterial\";this.color=new Color(16777215);this.matcap=null;this.map=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=je;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.flatShading=false;this.fog=true;this.setValues(t)}copy(t){super.copy(t);this.defines={MATCAP:\"\"};this.color.copy(t.color);this.matcap=t.matcap;this.map=t.map;this.bumpMap=t.bumpMap;this.bumpScale=t.bumpScale;this.normalMap=t.normalMap;this.normalMapType=t.normalMapType;this.normalScale.copy(t.normalScale);this.displacementMap=t.displacementMap;this.displacementScale=t.displacementScale;this.displacementBias=t.displacementBias;this.alphaMap=t.alphaMap;this.flatShading=t.flatShading;this.fog=t.fog;return this}}class LineDashedMaterial extends LineBasicMaterial{constructor(t){super();this.isLineDashedMaterial=true;this.type=\"LineDashedMaterial\";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(t)}copy(t){super.copy(t);this.scale=t.scale;this.dashSize=t.dashSize;this.gapSize=t.gapSize;return this}}function convertArray(t,e,n){return!t||!n&&t.constructor===e?t:typeof e.BYTES_PER_ELEMENT===\"number\"?new e(t):Array.prototype.slice.call(t)}function isTypedArray(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function getKeyframeOrder(t){function compareTime(e,n){return t[e]-t[n]}const e=t.length;const n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;n.sort(compareTime);return n}function sortedArray(t,e,n){const i=t.length;const r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function flattenJSON(t,e,n,i){let r=1,s=t[0];while(s!==void 0&&s[i]===void 0)s=t[r++];if(s===void 0)return;let a=s[i];if(a!==void 0)if(Array.isArray(a))do{a=s[i];if(a!==void 0){e.push(s.time);n.push.apply(n,a)}s=t[r++]}while(s!==void 0);else if(a.toArray!==void 0)do{a=s[i];if(a!==void 0){e.push(s.time);a.toArray(n,n.length)}s=t[r++]}while(s!==void 0);else do{a=s[i];if(a!==void 0){e.push(s.time);n.push(a)}s=t[r++]}while(s!==void 0)}function subclip(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t<s.tracks.length;++t){const e=s.tracks[t];const o=e.getValueSize();const l=[];const c=[];for(let t=0;t<e.times.length;++t){const s=e.times[t]*r;if(!(s<n||s>=i)){l.push(e.times[t]);for(let n=0;n<o;++n)c.push(e.values[t*o+n])}}if(l.length!==0){e.times=convertArray(l,e.times.constructor);e.values=convertArray(c,e.values.constructor);a.push(e)}}s.tracks=a;let o=Infinity;for(let t=0;t<s.tracks.length;++t)o>s.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t<s.tracks.length;++t)s.tracks[t].shift(-1*o);s.resetDuration();return s}function makeClipAdditive(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length;const s=e/i;for(let e=0;e<r;++e){const i=n.tracks[e];const r=i.ValueTypeName;if(r===\"bool\"||r===\"string\")continue;const a=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===r}));if(a===void 0)continue;let o=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=i.times.length-1;let d;if(s<=i.times[0]){const t=o;const e=l-o;d=i.values.slice(t,e)}else if(s>=i.times[u]){const t=u*l+o;const e=t+l-o;d=i.values.slice(t,e)}else{const t=i.createInterpolant();const e=o;const n=l-o;t.evaluate(s);d=t.resultBuffer.slice(e,n)}if(r===\"quaternion\"){const t=(new Quaternion).fromArray(d).normalize().conjugate();t.toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(r===\"quaternion\")Quaternion.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-c*2;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}t.blendMode=ze;return t}const Hc={convertArray:convertArray,isTypedArray:isTypedArray,getKeyframeOrder:getKeyframeOrder,sortedArray:sortedArray,flattenJSON:flattenJSON,subclip:subclip,makeClipAdditive:makeClipAdditive};class Interpolant{constructor(t,e,n,i){this.parameterPositions=t;this._cachedIndex=0;this.resultBuffer=i!==void 0?i:new e.constructor(n);this.sampleValues=e;this.valueSize=n;this.settings=null;this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(i===void 0){if(t<r)break i;n=e.length;this._cachedIndex=n;return this.copySampleValue_(n-1)}if(n===s)break;r=i;i=e[++n];if(t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];if(t<a){n=2;r=a}for(let s=n-2;;){if(r===void 0){this._cachedIndex=0;return this.copySampleValue_(0)}if(n===s)break;i=r;r=e[--n-1];if(t>=r)break e}s=n;n=0}}while(n<s){const i=n+s>>>1;t<e[i]?s=i:n=i+1}i=e[n];r=e[n-1];if(r===void 0){this._cachedIndex=0;return this.copySampleValue_(0)}if(i===void 0){n=e.length;this._cachedIndex=n;return this.copySampleValue_(n-1)}}this._cachedIndex=n;this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=n[r+t];return e}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i);this._weightPrev=-0;this._offsetPrev=-0;this._weightNext=-0;this._offsetNext=-0;this.DefaultSettings_={endingStart:Be,endingEnd:Be}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(a===void 0)switch(this.getSettings_().endingStart){case Oe:r=t;a=2*e-n;break;case Ve:r=i.length-2;a=e+i[r]-i[r+1];break;default:r=t;a=n}if(o===void 0)switch(this.getSettings_().endingEnd){case Oe:s=t;o=2*n-e;break;case Ve:s=1;o=n+i[1]-i[0];break;default:s=t-1;o=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a);this._weightNext=l/(o-n);this._offsetPrev=r*c;this._offsetNext=s*c}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),f=p*p,m=f*p;const g=-u*m+2*u*f-u*p;const _=(1+u)*m+(-1.5-2*u)*f+(-.5+u)*p+1;const x=(-1-d)*m+(1.5+d)*f+.5*p;const y=d*m-d*f;for(let t=0;t!==a;++t)r[t]=g*s[c+t]+_*s[l+t]+x*s[o+t]+y*s[h+t];return r}}class LinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==a;++t)r[t]=s[l+t]*h+s[o+t]*c;return r}}class DiscreteInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class KeyframeTrack{constructor(t,e,n,i){if(t===void 0)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(e===void 0||e.length===0)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t;this.times=convertArray(e,this.TimeBufferType);this.values=convertArray(n,this.ValueBufferType);this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:convertArray(t.times,Array),values:convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}n.type=t.ValueTypeName;return n}InterpolantFactoryMethodDiscrete(t){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new LinearInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new CubicInterpolant(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case Ue:e=this.InterpolantFactoryMethodDiscrete;break;case De:e=this.InterpolantFactoryMethodLinear;break;case Ne:e=this.InterpolantFactoryMethodSmooth;break}if(e===void 0){const e=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(this.createInterpolant===void 0){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}console.warn(\"THREE.KeyframeTrack:\",e);return this}this.createInterpolant=e;return this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Ue;case this.InterpolantFactoryMethodLinear:return De;case this.InterpolantFactoryMethodSmooth:return Ne}}getValueSize(){return this.values.length/this.times.length}shift(t){if(t!==0){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(t!==1){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;while(r!==i&&n[r]<t)++r;while(s!==-1&&n[s]>e)--s;++s;if(r!==0||s!==i){if(r>=s){s=Math.max(s,1);r=s-1}const t=this.getValueSize();this.times=n.slice(r,s);this.values=this.values.slice(r*t,s*t)}return this}validate(){let t=true;const e=this.getValueSize();if(e-Math.floor(e)!==0){console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this);t=false}const n=this.times,i=this.values,r=n.length;if(r===0){console.error(\"THREE.KeyframeTrack: Track is empty.\",this);t=false}let s=null;for(let e=0;e!==r;e++){const i=n[e];if(typeof i===\"number\"&&isNaN(i)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,e,i);t=false;break}if(s!==null&&s>i){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,e,i,s);t=false;break}s=i}if(i!==void 0&&isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,e,n);t=false;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===Ne,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=false;const o=t[a];const l=t[a+1];if(o!==l&&(a!==1||o!==t[0]))if(i)r=true;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=true;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}if(s!==t.length){this.times=t.slice(0,s);this.values=e.slice(0,s*n)}else{this.times=t;this.values=e}return this}clone(){const t=this.times.slice();const e=this.values.slice();const n=this.constructor;const i=new n(this.name,t,e);i.createInterpolant=this.createInterpolant;return i}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=De;class BooleanKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}BooleanKeyframeTrack.prototype.ValueTypeName=\"bool\";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=Ue;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName=\"color\";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName=\"number\";class QuaternionLinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)Quaternion.slerpFlat(r,0,s,l-a,s,l,o);return r}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(t){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),t)}}QuaternionKeyframeTrack.prototype.ValueTypeName=\"quaternion\";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}StringKeyframeTrack.prototype.ValueTypeName=\"string\";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=Ue;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName=\"vector\";class AnimationClip{constructor(t=\"\",e=-1,n=[],i=Fe){this.name=t;this.tracks=n;this.duration=e;this.blendMode=i;this.uuid=generateUUID();this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(parseKeyframeTrack(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);r.uuid=t.uuid;return r}static toJSON(t){const e=[],n=t.tracks;const i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(KeyframeTrack.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length;const s=[];for(let t=0;t<r;t++){let a=[];let o=[];a.push((t+r-1)%r,t,(t+1)%r);o.push(0,1,0);const l=getKeyframeOrder(a);a=sortedArray(a,1,l);o=sortedArray(o,1,l);if(!i&&a[0]===0){a.push(r);o.push(o[0])}s.push(new NumberKeyframeTrack(\".morphTargetInfluences[\"+e[t].name+\"]\",a,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={};const r=/^([\\w-]*?)([\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e];const s=n.name.match(r);if(s&&s.length>1){const t=s[1];let e=i[t];e||(i[t]=e=[]);e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t){console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\");return null}const addNonemptyTrack=function(t,e,n,i,r){if(n.length!==0){const s=[];const a=[];flattenJSON(n,s,a,i);s.length!==0&&r.push(new t(e,s,a))}};const n=[];const i=t.name||\"default\";const r=t.fps||30;const s=t.blendMode;let a=t.length||-1;const o=t.hierarchy||[];for(let t=0;t<o.length;t++){const i=o[t].keys;if(i&&i.length!==0)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let n=0;n<i[e].morphTargets.length;n++)t[i[e].morphTargets[n]]=-1;for(const r in t){const t=[];const s=[];for(let n=0;n!==i[e].morphTargets.length;++n){const n=i[e];t.push(n.time);s.push(n.morphTarget===r?1:0)}n.push(new NumberKeyframeTrack(\".morphTargetInfluence[\"+r+\"]\",t,s))}a=t.length*r}else{const r=\".bones[\"+e[t].name+\"]\";addNonemptyTrack(VectorKeyframeTrack,r+\".position\",i,\"pos\",n);addNonemptyTrack(QuaternionKeyframeTrack,r+\".quaternion\",i,\"rot\",n);addNonemptyTrack(VectorKeyframeTrack,r+\".scale\",i,\"scl\",n)}}if(n.length===0)return null;const l=new this(i,a,n,s);return l}resetDuration(){const t=this.tracks;let e=0;for(let n=0,i=t.length;n!==i;++n){const t=this.tracks[n];e=Math.max(e,t.times[t.times.length-1])}this.duration=e;return this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=true;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function getTrackTypeForValueTypeName(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return NumberKeyframeTrack;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return VectorKeyframeTrack;case\"color\":return ColorKeyframeTrack;case\"quaternion\":return QuaternionKeyframeTrack;case\"bool\":case\"boolean\":return BooleanKeyframeTrack;case\"string\":return StringKeyframeTrack}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+t)}function parseKeyframeTrack(t){if(t.type===void 0)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const e=getTrackTypeForValueTypeName(t.type);if(t.times===void 0){const e=[],n=[];flattenJSON(t.keys,e,n,\"value\");t.times=e;t.values=n}return e.parse!==void 0?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Wc={enabled:false,files:{},add:function(t,e){this.enabled!==false&&(this.files[t]=e)},get:function(t){if(this.enabled!==false)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class LoadingManager{constructor(t,e,n){const i=this;let r=false;let s=0;let a=0;let o;const l=[];this.onStart=void 0;this.onLoad=t;this.onProgress=e;this.onError=n;this.itemStart=function(t){a++;r===false&&i.onStart!==void 0&&i.onStart(t,s,a);r=true};this.itemEnd=function(t){s++;i.onProgress!==void 0&&i.onProgress(t,s,a);if(s===a){r=false;i.onLoad!==void 0&&i.onLoad()}};this.itemError=function(t){i.onError!==void 0&&i.onError(t)};this.resolveURL=function(t){return o?o(t):t};this.setURLModifier=function(t){o=t;return this};this.addHandler=function(t,e){l.push(t,e);return this};this.removeHandler=function(t){const e=l.indexOf(t);e!==-1&&l.splice(e,2);return this};this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e];const i=l[e+1];n.global&&(n.lastIndex=0);if(n.test(t))return i}return null}}}const Xc=new LoadingManager;class Loader{constructor(t){this.manager=t!==void 0?t:Xc;this.crossOrigin=\"anonymous\";this.withCredentials=false;this.path=\"\";this.resourcePath=\"\";this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){this.crossOrigin=t;return this}setWithCredentials(t){this.withCredentials=t;return this}setPath(t){this.path=t;return this}setResourcePath(t){this.resourcePath=t;return this}setRequestHeader(t){this.requestHeader=t;return this}}Loader.DEFAULT_MATERIAL_NAME=\"__DEFAULT\";const jc={};class HttpError extends Error{constructor(t,e){super(t);this.response=e}}class FileLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){t===void 0&&(t=\"\");this.path!==void 0&&(t=this.path+t);t=this.manager.resolveURL(t);const r=Wc.get(t);if(r!==void 0){this.manager.itemStart(t);setTimeout((()=>{e&&e(r);this.manager.itemEnd(t)}),0);return r}if(jc[t]!==void 0){jc[t].push({onLoad:e,onProgress:n,onError:i});return}jc[t]=[];jc[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?\"include\":\"same-origin\"});const a=this.mimeType;const o=this.responseType;fetch(s).then((e=>{if(e.status===200||e.status===0){e.status===0&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\");if(typeof ReadableStream===\"undefined\"||e.body===void 0||e.body.getReader===void 0)return e;const n=jc[t];const i=e.body.getReader();const r=e.headers.get(\"X-File-Size\")||e.headers.get(\"Content-Length\");const s=r?parseInt(r):0;const a=s!==0;let o=0;const l=new ReadableStream({start(t){readData();function readData(){i.read().then((({done:e,value:i})=>{if(e)t.close();else{o+=i.byteLength;const e=new ProgressEvent(\"progress\",{lengthComputable:a,loaded:o,total:s});for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}t.enqueue(i);readData()}}),(e=>{t.error(e)}))}}});return new Response(l)}throw new HttpError(`fetch for \"${e.url}\" responded with ${e.status}: ${e.statusText}`,e)})).then((t=>{switch(o){case\"arraybuffer\":return t.arrayBuffer();case\"blob\":return t.blob();case\"document\":return t.text().then((t=>{const e=new DOMParser;return e.parseFromString(t,a)}));case\"json\":return t.json();default:if(a===void 0)return t.text();{const e=/charset=\"?([^;\"\\s]*)\"?/i;const n=e.exec(a);const i=n&&n[1]?n[1].toLowerCase():void 0;const r=new TextDecoder(i);return t.arrayBuffer().then((t=>r.decode(t)))}}})).then((e=>{Wc.add(t,e);const n=jc[t];delete jc[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onLoad&&i.onLoad(e)}})).catch((e=>{const n=jc[t];if(n===void 0){this.manager.itemError(t);throw e}delete jc[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}this.manager.itemError(t)})).finally((()=>{this.manager.itemEnd(t)}));this.manager.itemStart(t)}setResponseType(t){this.responseType=t;return this}setMimeType(t){this.mimeType=t;return this}}class AnimationLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new FileLoader(this.manager);s.setPath(this.path);s.setRequestHeader(this.requestHeader);s.setWithCredentials(this.withCredentials);s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e);r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=AnimationClip.parse(t[n]);e.push(i)}return e}}class CompressedTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=[];const a=new CompressedTexture;const o=new FileLoader(this.manager);o.setPath(this.path);o.setResponseType(\"arraybuffer\");o.setRequestHeader(this.requestHeader);o.setWithCredentials(r.withCredentials);let l=0;function loadTexture(c){o.load(t[c],(function(t){const n=r.parse(t,true);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps};l+=1;if(l===6){n.mipmapCount===1&&(a.minFilter=St);a.image=s;a.format=n.format;a.needsUpdate=true;e&&e(a)}}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)loadTexture(e);else o.load(t,(function(t){const n=r.parse(t,true);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++){s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]);s[e].format=n.format;s[e].width=n.width;s[e].height=n.height}}a.image=s}else{a.image.width=n.width;a.image.height=n.height;a.mipmaps=n.mipmaps}n.mipmapCount===1&&(a.minFilter=St);a.format=n.format;a.needsUpdate=true;e&&e(a)}),n,i);return a}}class ImageLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){this.path!==void 0&&(t=this.path+t);t=this.manager.resolveURL(t);const r=this;const s=Wc.get(t);if(s!==void 0){r.manager.itemStart(t);setTimeout((function(){e&&e(s);r.manager.itemEnd(t)}),0);return s}const a=createElementNS(\"img\");function onImageLoad(){removeEventListeners();Wc.add(t,this);e&&e(this);r.manager.itemEnd(t)}function onImageError(e){removeEventListeners();i&&i(e);r.manager.itemError(t);r.manager.itemEnd(t)}function removeEventListeners(){a.removeEventListener(\"load\",onImageLoad,false);a.removeEventListener(\"error\",onImageError,false)}a.addEventListener(\"load\",onImageLoad,false);a.addEventListener(\"error\",onImageError,false);t.slice(0,5)!==\"data:\"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin);r.manager.itemStart(t);a.src=t;return a}}class CubeTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new CubeTexture;r.colorSpace=Ke;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin);s.setPath(this.path);let a=0;function loadTexture(n){s.load(t[n],(function(t){r.images[n]=t;a++;if(a===6){r.needsUpdate=true;e&&e(r)}}),void 0,i)}for(let e=0;e<t.length;++e)loadTexture(e);return r}}class DataTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new DataTexture;const a=new FileLoader(this.manager);a.setResponseType(\"arraybuffer\");a.setRequestHeader(this.requestHeader);a.setPath(this.path);a.setWithCredentials(r.withCredentials);a.load(t,(function(t){let n;try{n=r.parse(t)}catch(t){if(i===void 0){console.error(t);return}i(t)}if(n.image!==void 0)s.image=n.image;else if(n.data!==void 0){s.image.width=n.width;s.image.height=n.height;s.image.data=n.data}s.wrapS=n.wrapS!==void 0?n.wrapS:mt;s.wrapT=n.wrapT!==void 0?n.wrapT:mt;s.magFilter=n.magFilter!==void 0?n.magFilter:St;s.minFilter=n.minFilter!==void 0?n.minFilter:St;s.anisotropy=n.anisotropy!==void 0?n.anisotropy:1;n.colorSpace!==void 0&&(s.colorSpace=n.colorSpace);n.flipY!==void 0&&(s.flipY=n.flipY);n.format!==void 0&&(s.format=n.format);n.type!==void 0&&(s.type=n.type);if(n.mipmaps!==void 0){s.mipmaps=n.mipmaps;s.minFilter=wt}n.mipmapCount===1&&(s.minFilter=St);n.generateMipmaps!==void 0&&(s.generateMipmaps=n.generateMipmaps);s.needsUpdate=true;e&&e(s,n)}),n,i);return s}}class TextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new Texture;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin);s.setPath(this.path);s.load(t,(function(t){r.image=t;r.needsUpdate=true;e!==void 0&&e(r)}),n,i);return r}}class Light extends Object3D{constructor(t,e=1){super();this.isLight=true;this.type=\"Light\";this.color=new Color(t);this.intensity=e}dispose(){}copy(t,e){super.copy(t,e);this.color.copy(t.color);this.intensity=t.intensity;return this}toJSON(t){const e=super.toJSON(t);e.object.color=this.color.getHex();e.object.intensity=this.intensity;this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex());this.distance!==void 0&&(e.object.distance=this.distance);this.angle!==void 0&&(e.object.angle=this.angle);this.decay!==void 0&&(e.object.decay=this.decay);this.penumbra!==void 0&&(e.object.penumbra=this.penumbra);this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON());this.target!==void 0&&(e.object.target=this.target.uuid);return e}}class HemisphereLight extends Light{constructor(t,e,n){super(t,n);this.isHemisphereLight=true;this.type=\"HemisphereLight\";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.groundColor=new Color(e)}copy(t,e){super.copy(t,e);this.groundColor.copy(t.groundColor);return this}}const qc=new Matrix4;const Yc=new Vector3;const Kc=new Vector3;class LightShadow{constructor(t){this.camera=t;this.intensity=1;this.bias=0;this.normalBias=0;this.radius=1;this.blurSamples=8;this.mapSize=new Vector2(512,512);this.map=null;this.mapPass=null;this.matrix=new Matrix4;this.autoUpdate=true;this.needsUpdate=false;this._frustum=new Frustum;this._frameExtents=new Vector2(1,1);this._viewportCount=1;this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera;const n=this.matrix;Yc.setFromMatrixPosition(t.matrixWorld);e.position.copy(Yc);Kc.setFromMatrixPosition(t.target.matrixWorld);e.lookAt(Kc);e.updateMatrixWorld();qc.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse);this._frustum.setFromProjectionMatrix(qc);n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);n.multiply(qc)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose();this.mapPass&&this.mapPass.dispose()}copy(t){this.camera=t.camera.clone();this.intensity=t.intensity;this.bias=t.bias;this.radius=t.radius;this.mapSize.copy(t.mapSize);return this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};this.intensity!==1&&(t.intensity=this.intensity);this.bias!==0&&(t.bias=this.bias);this.normalBias!==0&&(t.normalBias=this.normalBias);this.radius!==1&&(t.radius=this.radius);this.mapSize.x===512&&this.mapSize.y===512||(t.mapSize=this.mapSize.toArray());t.camera=this.camera.toJSON(false).object;delete t.camera.matrix;return t}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500));this.isSpotLightShadow=true;this.focus=1}updateMatrices(t){const e=this.camera;const n=Wn*2*t.angle*this.focus;const i=this.mapSize.width/this.mapSize.height;const r=t.distance||e.far;if(n!==e.fov||i!==e.aspect||r!==e.far){e.fov=n;e.aspect=i;e.far=r;e.updateProjectionMatrix()}super.updateMatrices(t)}copy(t){super.copy(t);this.focus=t.focus;return this}}class SpotLight extends Light{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e);this.isSpotLight=true;this.type=\"SpotLight\";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.target=new Object3D;this.distance=n;this.angle=i;this.penumbra=r;this.decay=s;this.map=null;this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){super.copy(t,e);this.distance=t.distance;this.angle=t.angle;this.penumbra=t.penumbra;this.decay=t.decay;this.target=t.target.clone();this.shadow=t.shadow.clone();return this}}const Zc=new Matrix4;const Jc=new Vector3;const Qc=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500));this.isPointLightShadow=true;this._frameExtents=new Vector2(4,2);this._viewportCount=6;this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)];this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)];this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera;const i=this.matrix;const r=t.distance||n.far;if(r!==n.far){n.far=r;n.updateProjectionMatrix()}Jc.setFromMatrixPosition(t.matrixWorld);n.position.copy(Jc);Qc.copy(n.position);Qc.add(this._cubeDirections[e]);n.up.copy(this._cubeUps[e]);n.lookAt(Qc);n.updateMatrixWorld();i.makeTranslation(-Jc.x,-Jc.y,-Jc.z);Zc.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse);this._frustum.setFromProjectionMatrix(Zc)}}class PointLight extends Light{constructor(t,e,n=0,i=2){super(t,e);this.isPointLight=true;this.type=\"PointLight\";this.distance=n;this.decay=i;this.shadow=new PointLightShadow}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){super.copy(t,e);this.distance=t.distance;this.decay=t.decay;this.shadow=t.shadow.clone();return this}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500));this.isDirectionalLightShadow=true}}class DirectionalLight extends Light{constructor(t,e){super(t,e);this.isDirectionalLight=true;this.type=\"DirectionalLight\";this.position.copy(Object3D.DEFAULT_UP);this.updateMatrix();this.target=new Object3D;this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(t){super.copy(t);this.target=t.target.clone();this.shadow=t.shadow.clone();return this}}class AmbientLight extends Light{constructor(t,e){super(t,e);this.isAmbientLight=true;this.type=\"AmbientLight\"}}class RectAreaLight extends Light{constructor(t,e,n=10,i=10){super(t,e);this.isRectAreaLight=true;this.type=\"RectAreaLight\";this.width=n;this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){super.copy(t);this.width=t.width;this.height=t.height;return this}toJSON(t){const e=super.toJSON(t);e.object.width=this.width;e.object.height=this.height;return e}}class SphericalHarmonics3{constructor(){this.isSphericalHarmonics3=true;this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Vector3)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z;const s=this.coefficients;e.copy(s[0]).multiplyScalar(.282095);e.addScaledVector(s[1],.488603*i);e.addScaledVector(s[2],.488603*r);e.addScaledVector(s[3],.488603*n);e.addScaledVector(s[4],n*i*1.092548);e.addScaledVector(s[5],i*r*1.092548);e.addScaledVector(s[6],.315392*(3*r*r-1));e.addScaledVector(s[7],n*r*1.092548);e.addScaledVector(s[8],.546274*(n*n-i*i));return e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z;const s=this.coefficients;e.copy(s[0]).multiplyScalar(.886227);e.addScaledVector(s[1],1.023328*i);e.addScaledVector(s[2],1.023328*r);e.addScaledVector(s[3],1.023328*n);e.addScaledVector(s[4],.858086*n*i);e.addScaledVector(s[5],.858086*i*r);e.addScaledVector(s[6],.743125*r*r-.247708);e.addScaledVector(s[7],.858086*n*r);e.addScaledVector(s[8],.429043*(n*n-i*i));return e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return false;return true}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+i*3);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+i*3);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095;e[1]=.488603*i;e[2]=.488603*r;e[3]=.488603*n;e[4]=1.092548*n*i;e[5]=1.092548*i*r;e[6]=.315392*(3*r*r-1);e[7]=1.092548*n*r;e[8]=.546274*(n*n-i*i)}}class LightProbe extends Light{constructor(t=new SphericalHarmonics3,e=1){super(void 0,e);this.isLightProbe=true;this.sh=t}copy(t){super.copy(t);this.sh.copy(t.sh);return this}fromJSON(t){this.intensity=t.intensity;this.sh.fromArray(t.sh);return this}toJSON(t){const e=super.toJSON(t);e.object.sh=this.sh.toArray();return e}}class MaterialLoader extends Loader{constructor(t){super(t);this.textures={}}load(t,e,n,i){const r=this;const s=new FileLoader(r.manager);s.setPath(r.path);s.setRequestHeader(r.requestHeader);s.setWithCredentials(r.withCredentials);s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e);r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function getTexture(t){e[t]===void 0&&console.warn(\"THREE.MaterialLoader: Undefined texture\",t);return e[t]}const n=MaterialLoader.createMaterialFromType(t.type);t.uuid!==void 0&&(n.uuid=t.uuid);t.name!==void 0&&(n.name=t.name);t.color!==void 0&&n.color!==void 0&&n.color.setHex(t.color);t.roughness!==void 0&&(n.roughness=t.roughness);t.metalness!==void 0&&(n.metalness=t.metalness);t.sheen!==void 0&&(n.sheen=t.sheen);t.sheenColor!==void 0&&(n.sheenColor=(new Color).setHex(t.sheenColor));t.sheenRoughness!==void 0&&(n.sheenRoughness=t.sheenRoughness);t.emissive!==void 0&&n.emissive!==void 0&&n.emissive.setHex(t.emissive);t.specular!==void 0&&n.specular!==void 0&&n.specular.setHex(t.specular);t.specularIntensity!==void 0&&(n.specularIntensity=t.specularIntensity);t.specularColor!==void 0&&n.specularColor!==void 0&&n.specularColor.setHex(t.specularColor);t.shininess!==void 0&&(n.shininess=t.shininess);t.clearcoat!==void 0&&(n.clearcoat=t.clearcoat);t.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=t.clearcoatRoughness);t.dispersion!==void 0&&(n.dispersion=t.dispersion);t.iridescence!==void 0&&(n.iridescence=t.iridescence);t.iridescenceIOR!==void 0&&(n.iridescenceIOR=t.iridescenceIOR);t.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=t.iridescenceThicknessRange);t.transmission!==void 0&&(n.transmission=t.transmission);t.thickness!==void 0&&(n.thickness=t.thickness);t.attenuationDistance!==void 0&&(n.attenuationDistance=t.attenuationDistance);t.attenuationColor!==void 0&&n.attenuationColor!==void 0&&n.attenuationColor.setHex(t.attenuationColor);t.anisotropy!==void 0&&(n.anisotropy=t.anisotropy);t.anisotropyRotation!==void 0&&(n.anisotropyRotation=t.anisotropyRotation);t.fog!==void 0&&(n.fog=t.fog);t.flatShading!==void 0&&(n.flatShading=t.flatShading);t.blending!==void 0&&(n.blending=t.blending);t.combine!==void 0&&(n.combine=t.combine);t.side!==void 0&&(n.side=t.side);t.shadowSide!==void 0&&(n.shadowSide=t.shadowSide);t.opacity!==void 0&&(n.opacity=t.opacity);t.transparent!==void 0&&(n.transparent=t.transparent);t.alphaTest!==void 0&&(n.alphaTest=t.alphaTest);t.alphaHash!==void 0&&(n.alphaHash=t.alphaHash);t.depthFunc!==void 0&&(n.depthFunc=t.depthFunc);t.depthTest!==void 0&&(n.depthTest=t.depthTest);t.depthWrite!==void 0&&(n.depthWrite=t.depthWrite);t.colorWrite!==void 0&&(n.colorWrite=t.colorWrite);t.blendSrc!==void 0&&(n.blendSrc=t.blendSrc);t.blendDst!==void 0&&(n.blendDst=t.blendDst);t.blendEquation!==void 0&&(n.blendEquation=t.blendEquation);t.blendSrcAlpha!==void 0&&(n.blendSrcAlpha=t.blendSrcAlpha);t.blendDstAlpha!==void 0&&(n.blendDstAlpha=t.blendDstAlpha);t.blendEquationAlpha!==void 0&&(n.blendEquationAlpha=t.blendEquationAlpha);t.blendColor!==void 0&&n.blendColor!==void 0&&n.blendColor.setHex(t.blendColor);t.blendAlpha!==void 0&&(n.blendAlpha=t.blendAlpha);t.stencilWriteMask!==void 0&&(n.stencilWriteMask=t.stencilWriteMask);t.stencilFunc!==void 0&&(n.stencilFunc=t.stencilFunc);t.stencilRef!==void 0&&(n.stencilRef=t.stencilRef);t.stencilFuncMask!==void 0&&(n.stencilFuncMask=t.stencilFuncMask);t.stencilFail!==void 0&&(n.stencilFail=t.stencilFail);t.stencilZFail!==void 0&&(n.stencilZFail=t.stencilZFail);t.stencilZPass!==void 0&&(n.stencilZPass=t.stencilZPass);t.stencilWrite!==void 0&&(n.stencilWrite=t.stencilWrite);t.wireframe!==void 0&&(n.wireframe=t.wireframe);t.wireframeLinewidth!==void 0&&(n.wireframeLinewidth=t.wireframeLinewidth);t.wireframeLinecap!==void 0&&(n.wireframeLinecap=t.wireframeLinecap);t.wireframeLinejoin!==void 0&&(n.wireframeLinejoin=t.wireframeLinejoin);t.rotation!==void 0&&(n.rotation=t.rotation);t.linewidth!==void 0&&(n.linewidth=t.linewidth);t.dashSize!==void 0&&(n.dashSize=t.dashSize);t.gapSize!==void 0&&(n.gapSize=t.gapSize);t.scale!==void 0&&(n.scale=t.scale);t.polygonOffset!==void 0&&(n.polygonOffset=t.polygonOffset);t.polygonOffsetFactor!==void 0&&(n.polygonOffsetFactor=t.polygonOffsetFactor);t.polygonOffsetUnits!==void 0&&(n.polygonOffsetUnits=t.polygonOffsetUnits);t.dithering!==void 0&&(n.dithering=t.dithering);t.alphaToCoverage!==void 0&&(n.alphaToCoverage=t.alphaToCoverage);t.premultipliedAlpha!==void 0&&(n.premultipliedAlpha=t.premultipliedAlpha);t.forceSinglePass!==void 0&&(n.forceSinglePass=t.forceSinglePass);t.visible!==void 0&&(n.visible=t.visible);t.toneMapped!==void 0&&(n.toneMapped=t.toneMapped);t.userData!==void 0&&(n.userData=t.userData);t.vertexColors!==void 0&&(typeof t.vertexColors===\"number\"?n.vertexColors=t.vertexColors>0:n.vertexColors=t.vertexColors);if(t.uniforms!==void 0)for(const e in t.uniforms){const i=t.uniforms[e];n.uniforms[e]={};switch(i.type){case\"t\":n.uniforms[e].value=getTexture(i.value);break;case\"c\":n.uniforms[e].value=(new Color).setHex(i.value);break;case\"v2\":n.uniforms[e].value=(new Vector2).fromArray(i.value);break;case\"v3\":n.uniforms[e].value=(new Vector3).fromArray(i.value);break;case\"v4\":n.uniforms[e].value=(new Vector4).fromArray(i.value);break;case\"m3\":n.uniforms[e].value=(new Matrix3).fromArray(i.value);break;case\"m4\":n.uniforms[e].value=(new Matrix4).fromArray(i.value);break;default:n.uniforms[e].value=i.value}}t.defines!==void 0&&(n.defines=t.defines);t.vertexShader!==void 0&&(n.vertexShader=t.vertexShader);t.fragmentShader!==void 0&&(n.fragmentShader=t.fragmentShader);t.glslVersion!==void 0&&(n.glslVersion=t.glslVersion);if(t.extensions!==void 0)for(const e in t.extensions)n.extensions[e]=t.extensions[e];t.lights!==void 0&&(n.lights=t.lights);t.clipping!==void 0&&(n.clipping=t.clipping);t.size!==void 0&&(n.size=t.size);t.sizeAttenuation!==void 0&&(n.sizeAttenuation=t.sizeAttenuation);t.map!==void 0&&(n.map=getTexture(t.map));t.matcap!==void 0&&(n.matcap=getTexture(t.matcap));t.alphaMap!==void 0&&(n.alphaMap=getTexture(t.alphaMap));t.bumpMap!==void 0&&(n.bumpMap=getTexture(t.bumpMap));t.bumpScale!==void 0&&(n.bumpScale=t.bumpScale);t.normalMap!==void 0&&(n.normalMap=getTexture(t.normalMap));t.normalMapType!==void 0&&(n.normalMapType=t.normalMapType);if(t.normalScale!==void 0){let e=t.normalScale;Array.isArray(e)===false&&(e=[e,e]);n.normalScale=(new Vector2).fromArray(e)}t.displacementMap!==void 0&&(n.displacementMap=getTexture(t.displacementMap));t.displacementScale!==void 0&&(n.displacementScale=t.displacementScale);t.displacementBias!==void 0&&(n.displacementBias=t.displacementBias);t.roughnessMap!==void 0&&(n.roughnessMap=getTexture(t.roughnessMap));t.metalnessMap!==void 0&&(n.metalnessMap=getTexture(t.metalnessMap));t.emissiveMap!==void 0&&(n.emissiveMap=getTexture(t.emissiveMap));t.emissiveIntensity!==void 0&&(n.emissiveIntensity=t.emissiveIntensity);t.specularMap!==void 0&&(n.specularMap=getTexture(t.specularMap));t.specularIntensityMap!==void 0&&(n.specularIntensityMap=getTexture(t.specularIntensityMap));t.specularColorMap!==void 0&&(n.specularColorMap=getTexture(t.specularColorMap));t.envMap!==void 0&&(n.envMap=getTexture(t.envMap));t.envMapRotation!==void 0&&n.envMapRotation.fromArray(t.envMapRotation);t.envMapIntensity!==void 0&&(n.envMapIntensity=t.envMapIntensity);t.reflectivity!==void 0&&(n.reflectivity=t.reflectivity);t.refractionRatio!==void 0&&(n.refractionRatio=t.refractionRatio);t.lightMap!==void 0&&(n.lightMap=getTexture(t.lightMap));t.lightMapIntensity!==void 0&&(n.lightMapIntensity=t.lightMapIntensity);t.aoMap!==void 0&&(n.aoMap=getTexture(t.aoMap));t.aoMapIntensity!==void 0&&(n.aoMapIntensity=t.aoMapIntensity);t.gradientMap!==void 0&&(n.gradientMap=getTexture(t.gradientMap));t.clearcoatMap!==void 0&&(n.clearcoatMap=getTexture(t.clearcoatMap));t.clearcoatRoughnessMap!==void 0&&(n.clearcoatRoughnessMap=getTexture(t.clearcoatRoughnessMap));t.clearcoatNormalMap!==void 0&&(n.clearcoatNormalMap=getTexture(t.clearcoatNormalMap));t.clearcoatNormalScale!==void 0&&(n.clearcoatNormalScale=(new Vector2).fromArray(t.clearcoatNormalScale));t.iridescenceMap!==void 0&&(n.iridescenceMap=getTexture(t.iridescenceMap));t.iridescenceThicknessMap!==void 0&&(n.iridescenceThicknessMap=getTexture(t.iridescenceThicknessMap));t.transmissionMap!==void 0&&(n.transmissionMap=getTexture(t.transmissionMap));t.thicknessMap!==void 0&&(n.thicknessMap=getTexture(t.thicknessMap));t.anisotropyMap!==void 0&&(n.anisotropyMap=getTexture(t.anisotropyMap));t.sheenColorMap!==void 0&&(n.sheenColorMap=getTexture(t.sheenColorMap));t.sheenRoughnessMap!==void 0&&(n.sheenRoughnessMap=getTexture(t.sheenRoughnessMap));return n}setTextures(t){this.textures=t;return this}static createMaterialFromType(t){const e={ShadowMaterial:ShadowMaterial,SpriteMaterial:SpriteMaterial,RawShaderMaterial:RawShaderMaterial,ShaderMaterial:ShaderMaterial,PointsMaterial:PointsMaterial,MeshPhysicalMaterial:MeshPhysicalMaterial,MeshStandardMaterial:MeshStandardMaterial,MeshPhongMaterial:MeshPhongMaterial,MeshToonMaterial:MeshToonMaterial,MeshNormalMaterial:MeshNormalMaterial,MeshLambertMaterial:MeshLambertMaterial,MeshDepthMaterial:MeshDepthMaterial,MeshDistanceMaterial:MeshDistanceMaterial,MeshBasicMaterial:MeshBasicMaterial,MeshMatcapMaterial:MeshMatcapMaterial,LineDashedMaterial:LineDashedMaterial,LineBasicMaterial:LineBasicMaterial,Material:Material};return new e[t]}}class LoaderUtils{static decodeText(t){console.warn(\"THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.\");if(typeof TextDecoder!==\"undefined\")return(new TextDecoder).decode(t);let e=\"\";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\"/\");return e===-1?\"./\":t.slice(0,e+1)}static resolveURL(t,e){if(typeof t!==\"string\"||t===\"\")return\"\";/^https?:\\/\\//i.test(e)&&/^\\//.test(t)&&(e=e.replace(/(^https?:\\/\\/[^\\/]+).*/i,\"$1\"));return/^(https?:)?\\/\\//i.test(t)||/^data:.*,.*$/i.test(t)||/^blob:.*$/i.test(t)?t:e+t}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super();this.isInstancedBufferGeometry=true;this.type=\"InstancedBufferGeometry\";this.instanceCount=Infinity}copy(t){super.copy(t);this.instanceCount=t.instanceCount;return this}toJSON(){const t=super.toJSON();t.instanceCount=this.instanceCount;t.isInstancedBufferGeometry=true;return t}}class BufferGeometryLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new FileLoader(r.manager);s.setPath(r.path);s.setRequestHeader(r.requestHeader);s.setWithCredentials(r.withCredentials);s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e);r.manager.itemError(t)}}),n,i)}parse(t){const e={};const n={};function getInterleavedBuffer(t,n){if(e[n]!==void 0)return e[n];const i=t.interleavedBuffers;const r=i[n];const s=getArrayBuffer(t,r.buffer);const a=getTypedArray(r.type,s);const o=new InterleavedBuffer(a,r.stride);o.uuid=r.uuid;e[n]=o;return o}function getArrayBuffer(t,e){if(n[e]!==void 0)return n[e];const i=t.arrayBuffers;const r=i[e];const s=new Uint32Array(r).buffer;n[e]=s;return s}const i=t.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry;const r=t.data.index;if(r!==void 0){const t=getTypedArray(r.type,r.array);i.setIndex(new BufferAttribute(t,1))}const s=t.data.attributes;for(const e in s){const n=s[e];let r;if(n.isInterleavedBufferAttribute){const e=getInterleavedBuffer(t.data,n.data);r=new InterleavedBufferAttribute(e,n.itemSize,n.offset,n.normalized)}else{const t=getTypedArray(n.type,n.array);const e=n.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute;r=new e(t,n.itemSize,n.normalized)}n.name!==void 0&&(r.name=n.name);n.usage!==void 0&&r.setUsage(n.usage);i.setAttribute(e,r)}const a=t.data.morphAttributes;if(a)for(const e in a){const n=a[e];const r=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];let s;if(i.isInterleavedBufferAttribute){const e=getInterleavedBuffer(t.data,i.data);s=new InterleavedBufferAttribute(e,i.itemSize,i.offset,i.normalized)}else{const t=getTypedArray(i.type,i.array);s=new BufferAttribute(t,i.itemSize,i.normalized)}i.name!==void 0&&(s.name=i.name);r.push(s)}i.morphAttributes[e]=r}const o=t.data.morphTargetsRelative;o&&(i.morphTargetsRelative=true);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(l!==void 0)for(let t=0,e=l.length;t!==e;++t){const e=l[t];i.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(c!==void 0){const t=new Vector3;c.center!==void 0&&t.fromArray(c.center);i.boundingSphere=new Sphere(t,c.radius)}t.name&&(i.name=t.name);t.userData&&(i.userData=t.userData);return i}}class ObjectLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=this.path===\"\"?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new FileLoader(this.manager);a.setPath(this.path);a.setRequestHeader(this.requestHeader);a.setWithCredentials(this.withCredentials);a.load(t,(function(n){let s=null;try{s=JSON.parse(n)}catch(e){i!==void 0&&i(e);console.error(\"THREE:ObjectLoader: Can't parse \"+t+\".\",e.message);return}const a=s.metadata;if(a!==void 0&&a.type!==void 0&&a.type.toLowerCase()!==\"geometry\")r.parse(s,e);else{i!==void 0&&i(new Error(\"THREE.ObjectLoader: Can't load \"+t));console.error(\"THREE.ObjectLoader: Can't load \"+t)}}),n,i)}async loadAsync(t,e){const n=this;const i=this.path===\"\"?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||i;const r=new FileLoader(this.manager);r.setPath(this.path);r.setRequestHeader(this.requestHeader);r.setWithCredentials(this.withCredentials);const s=await r.loadAsync(t,e);const a=JSON.parse(s);const o=a.metadata;if(o===void 0||o.type===void 0||o.type.toLowerCase()===\"geometry\")throw new Error(\"THREE.ObjectLoader: Can't load \"+t);return await n.parseAsync(a)}parse(t,e){const n=this.parseAnimations(t.animations);const i=this.parseShapes(t.shapes);const r=this.parseGeometries(t.geometries,i);const s=this.parseImages(t.images,(function(){e!==void 0&&e(l)}));const a=this.parseTextures(t.textures,s);const o=this.parseMaterials(t.materials,a);const l=this.parseObject(t.object,r,o,a,n);const c=this.parseSkeletons(t.skeletons,l);this.bindSkeletons(l,c);this.bindLightTargets(l);if(e!==void 0){let t=false;for(const e in s)if(s[e].data instanceof HTMLImageElement){t=true;break}t===false&&e(l)}return l}async parseAsync(t){const e=this.parseAnimations(t.animations);const n=this.parseShapes(t.shapes);const i=this.parseGeometries(t.geometries,n);const r=await this.parseImagesAsync(t.images);const s=this.parseTextures(t.textures,r);const a=this.parseMaterials(t.materials,s);const o=this.parseObject(t.object,i,a,s,e);const l=this.parseSkeletons(t.skeletons,o);this.bindSkeletons(o,l);this.bindLightTargets(o);return o}parseShapes(t){const e={};if(t!==void 0)for(let n=0,i=t.length;n<i;n++){const i=(new Shape).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={};const i={};e.traverse((function(t){t.isBone&&(i[t.uuid]=t)}));if(t!==void 0)for(let e=0,r=t.length;e<r;e++){const r=(new Skeleton).fromJSON(t[e],i);n[r.uuid]=r}return n}parseGeometries(t,e){const n={};if(t!==void 0){const i=new BufferGeometryLoader;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case\"BufferGeometry\":case\"InstancedBufferGeometry\":s=i.parse(a);break;default:a.type in kc?s=kc[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${a.type}\"`)}s.uuid=a.uuid;a.name!==void 0&&(s.name=a.name);a.userData!==void 0&&(s.userData=a.userData);n[a.uuid]=s}}return n}parseMaterials(t,e){const n={};const i={};if(t!==void 0){const r=new MaterialLoader;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];n[s.uuid]===void 0&&(n[s.uuid]=r.parse(s));i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(t!==void 0)for(let n=0;n<t.length;n++){const i=t[n];const r=AnimationClip.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this;const i={};let r;function loadImage(t){n.manager.itemStart(t);return r.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t);n.manager.itemEnd(t)}))}function deserializeImage(t){if(typeof t===\"string\"){const e=t;const i=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(e)?e:n.resourcePath+e;return loadImage(i)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(t!==void 0&&t.length>0){const n=new LoadingManager(e);r=new ImageLoader(n);r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e];const r=n.url;if(Array.isArray(r)){const t=[];for(let e=0,n=r.length;e<n;e++){const n=r[e];const i=deserializeImage(n);i!==null&&(i instanceof HTMLImageElement?t.push(i):t.push(new DataTexture(i.data,i.width,i.height)))}i[n.uuid]=new Source(t)}else{const t=deserializeImage(n.url);i[n.uuid]=new Source(t)}}}return i}async parseImagesAsync(t){const e=this;const n={};let i;async function deserializeImage(t){if(typeof t===\"string\"){const n=t;const r=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(t!==void 0&&t.length>0){i=new ImageLoader(this.manager);i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e];const r=i.url;if(Array.isArray(r)){const t=[];for(let e=0,n=r.length;e<n;e++){const n=r[e];const i=await deserializeImage(n);i!==null&&(i instanceof HTMLImageElement?t.push(i):t.push(new DataTexture(i.data,i.width,i.height)))}n[i.uuid]=new Source(t)}else{const t=await deserializeImage(i.url);n[i.uuid]=new Source(t)}}}return n}parseTextures(t,e){function parseConstant(t,e){if(typeof t===\"number\")return t;console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\",t);return e[t]}const n={};if(t!==void 0)for(let i=0,r=t.length;i<r;i++){const r=t[i];r.image===void 0&&console.warn('THREE.ObjectLoader: No \"image\" specified for',r.uuid);e[r.image]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined image\",r.image);const s=e[r.image];const a=s.data;let o;if(Array.isArray(a)){o=new CubeTexture;a.length===6&&(o.needsUpdate=true)}else{o=a&&a.data?new DataTexture:new Texture;a&&(o.needsUpdate=true)}o.source=s;o.uuid=r.uuid;r.name!==void 0&&(o.name=r.name);r.mapping!==void 0&&(o.mapping=parseConstant(r.mapping,$c));r.channel!==void 0&&(o.channel=r.channel);r.offset!==void 0&&o.offset.fromArray(r.offset);r.repeat!==void 0&&o.repeat.fromArray(r.repeat);r.center!==void 0&&o.center.fromArray(r.center);r.rotation!==void 0&&(o.rotation=r.rotation);if(r.wrap!==void 0){o.wrapS=parseConstant(r.wrap[0],th);o.wrapT=parseConstant(r.wrap[1],th)}r.format!==void 0&&(o.format=r.format);r.internalFormat!==void 0&&(o.internalFormat=r.internalFormat);r.type!==void 0&&(o.type=r.type);r.colorSpace!==void 0&&(o.colorSpace=r.colorSpace);r.minFilter!==void 0&&(o.minFilter=parseConstant(r.minFilter,eh));r.magFilter!==void 0&&(o.magFilter=parseConstant(r.magFilter,eh));r.anisotropy!==void 0&&(o.anisotropy=r.anisotropy);r.flipY!==void 0&&(o.flipY=r.flipY);r.generateMipmaps!==void 0&&(o.generateMipmaps=r.generateMipmaps);r.premultiplyAlpha!==void 0&&(o.premultiplyAlpha=r.premultiplyAlpha);r.unpackAlignment!==void 0&&(o.unpackAlignment=r.unpackAlignment);r.compareFunction!==void 0&&(o.compareFunction=r.compareFunction);r.userData!==void 0&&(o.userData=r.userData);n[r.uuid]=o}return n}parseObject(t,e,n,i,r){let s;function getGeometry(t){e[t]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined geometry\",t);return e[t]}function getMaterial(t){if(t!==void 0){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];n[r]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined material\",r);e.push(n[r])}return e}n[t]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined material\",t);return n[t]}}function getTexture(t){i[t]===void 0&&console.warn(\"THREE.ObjectLoader: Undefined texture\",t);return i[t]}let a,o;switch(t.type){case\"Scene\":s=new Scene;t.background!==void 0&&(Number.isInteger(t.background)?s.background=new Color(t.background):s.background=getTexture(t.background));t.environment!==void 0&&(s.environment=getTexture(t.environment));if(t.fog!==void 0){t.fog.type===\"Fog\"?s.fog=new Fog(t.fog.color,t.fog.near,t.fog.far):t.fog.type===\"FogExp2\"&&(s.fog=new FogExp2(t.fog.color,t.fog.density));t.fog.name!==\"\"&&(s.fog.name=t.fog.name)}t.backgroundBlurriness!==void 0&&(s.backgroundBlurriness=t.backgroundBlurriness);t.backgroundIntensity!==void 0&&(s.backgroundIntensity=t.backgroundIntensity);t.backgroundRotation!==void 0&&s.backgroundRotation.fromArray(t.backgroundRotation);t.environmentIntensity!==void 0&&(s.environmentIntensity=t.environmentIntensity);t.environmentRotation!==void 0&&s.environmentRotation.fromArray(t.environmentRotation);break;case\"PerspectiveCamera\":s=new PerspectiveCamera(t.fov,t.aspect,t.near,t.far);t.focus!==void 0&&(s.focus=t.focus);t.zoom!==void 0&&(s.zoom=t.zoom);t.filmGauge!==void 0&&(s.filmGauge=t.filmGauge);t.filmOffset!==void 0&&(s.filmOffset=t.filmOffset);t.view!==void 0&&(s.view=Object.assign({},t.view));break;case\"OrthographicCamera\":s=new OrthographicCamera(t.left,t.right,t.top,t.bottom,t.near,t.far);t.zoom!==void 0&&(s.zoom=t.zoom);t.view!==void 0&&(s.view=Object.assign({},t.view));break;case\"AmbientLight\":s=new AmbientLight(t.color,t.intensity);break;case\"DirectionalLight\":s=new DirectionalLight(t.color,t.intensity);s.target=t.target||\"\";break;case\"PointLight\":s=new PointLight(t.color,t.intensity,t.distance,t.decay);break;case\"RectAreaLight\":s=new RectAreaLight(t.color,t.intensity,t.width,t.height);break;case\"SpotLight\":s=new SpotLight(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);s.target=t.target||\"\";break;case\"HemisphereLight\":s=new HemisphereLight(t.color,t.groundColor,t.intensity);break;case\"LightProbe\":s=(new LightProbe).fromJSON(t);break;case\"SkinnedMesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);s=new SkinnedMesh(a,o);t.bindMode!==void 0&&(s.bindMode=t.bindMode);t.bindMatrix!==void 0&&s.bindMatrix.fromArray(t.bindMatrix);t.skeleton!==void 0&&(s.skeleton=t.skeleton);break;case\"Mesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);s=new Mesh(a,o);break;case\"InstancedMesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);const e=t.count;const n=t.instanceMatrix;const i=t.instanceColor;s=new InstancedMesh(a,o,e);s.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n.array),16);i!==void 0&&(s.instanceColor=new InstancedBufferAttribute(new Float32Array(i.array),i.itemSize));break;case\"BatchedMesh\":a=getGeometry(t.geometry);o=getMaterial(t.material);s=new BatchedMesh(t.maxInstanceCount,t.maxVertexCount,t.maxIndexCount,o);s.geometry=a;s.perObjectFrustumCulled=t.perObjectFrustumCulled;s.sortObjects=t.sortObjects;s._drawRanges=t.drawRanges;s._reservedRanges=t.reservedRanges;s._visibility=t.visibility;s._active=t.active;s._bounds=t.bounds.map((t=>{const e=new Box3;e.min.fromArray(t.boxMin);e.max.fromArray(t.boxMax);const n=new Sphere;n.radius=t.sphereRadius;n.center.fromArray(t.sphereCenter);return{boxInitialized:t.boxInitialized,box:e,sphereInitialized:t.sphereInitialized,sphere:n}}));s._maxInstanceCount=t.maxInstanceCount;s._maxVertexCount=t.maxVertexCount;s._maxIndexCount=t.maxIndexCount;s._geometryInitialized=t.geometryInitialized;s._geometryCount=t.geometryCount;s._matricesTexture=getTexture(t.matricesTexture.uuid);t.colorsTexture!==void 0&&(s._colorsTexture=getTexture(t.colorsTexture.uuid));break;case\"LOD\":s=new LOD;break;case\"Line\":s=new Line(getGeometry(t.geometry),getMaterial(t.material));break;case\"LineLoop\":s=new LineLoop(getGeometry(t.geometry),getMaterial(t.material));break;case\"LineSegments\":s=new LineSegments(getGeometry(t.geometry),getMaterial(t.material));break;case\"PointCloud\":case\"Points\":s=new Points(getGeometry(t.geometry),getMaterial(t.material));break;case\"Sprite\":s=new Sprite(getMaterial(t.material));break;case\"Group\":s=new Group;break;case\"Bone\":s=new Bone;break;default:s=new Object3D}s.uuid=t.uuid;t.name!==void 0&&(s.name=t.name);if(t.matrix!==void 0){s.matrix.fromArray(t.matrix);t.matrixAutoUpdate!==void 0&&(s.matrixAutoUpdate=t.matrixAutoUpdate);s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)}else{t.position!==void 0&&s.position.fromArray(t.position);t.rotation!==void 0&&s.rotation.fromArray(t.rotation);t.quaternion!==void 0&&s.quaternion.fromArray(t.quaternion);t.scale!==void 0&&s.scale.fromArray(t.scale)}t.up!==void 0&&s.up.fromArray(t.up);t.castShadow!==void 0&&(s.castShadow=t.castShadow);t.receiveShadow!==void 0&&(s.receiveShadow=t.receiveShadow);if(t.shadow){t.shadow.intensity!==void 0&&(s.shadow.intensity=t.shadow.intensity);t.shadow.bias!==void 0&&(s.shadow.bias=t.shadow.bias);t.shadow.normalBias!==void 0&&(s.shadow.normalBias=t.shadow.normalBias);t.shadow.radius!==void 0&&(s.shadow.radius=t.shadow.radius);t.shadow.mapSize!==void 0&&s.shadow.mapSize.fromArray(t.shadow.mapSize);t.shadow.camera!==void 0&&(s.shadow.camera=this.parseObject(t.shadow.camera))}t.visible!==void 0&&(s.visible=t.visible);t.frustumCulled!==void 0&&(s.frustumCulled=t.frustumCulled);t.renderOrder!==void 0&&(s.renderOrder=t.renderOrder);t.userData!==void 0&&(s.userData=t.userData);t.layers!==void 0&&(s.layers.mask=t.layers);if(t.children!==void 0){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(t.animations!==void 0){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if(t.type===\"LOD\"){t.autoUpdate!==void 0&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t];const i=s.getObjectByProperty(\"uuid\",n.object);i!==void 0&&s.addLevel(i,n.distance,n.hysteresis)}}return s}bindSkeletons(t,e){Object.keys(e).length!==0&&t.traverse((function(t){if(t.isSkinnedMesh===true&&t.skeleton!==void 0){const n=e[t.skeleton];n===void 0?console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\",t.skeleton):t.bind(n,t.bindMatrix)}}))}bindLightTargets(t){t.traverse((function(e){if(e.isDirectionalLight||e.isSpotLight){const n=e.target;const i=t.getObjectByProperty(\"uuid\",n);e.target=i!==void 0?i:new Object3D}}))}}const $c={UVMapping:lt,CubeReflectionMapping:ct,CubeRefractionMapping:ht,EquirectangularReflectionMapping:ut,EquirectangularRefractionMapping:dt,CubeUVReflectionMapping:pt};const th={RepeatWrapping:ft,ClampToEdgeWrapping:mt,MirroredRepeatWrapping:gt};const eh={NearestFilter:vt,NearestMipmapNearestFilter:_t,NearestMipmapLinearFilter:yt,LinearFilter:St,LinearMipmapNearestFilter:bt,LinearMipmapLinearFilter:wt};class ImageBitmapLoader extends Loader{constructor(t){super(t);this.isImageBitmapLoader=true;typeof createImageBitmap===\"undefined\"&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\");typeof fetch===\"undefined\"&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\");this.options={premultiplyAlpha:\"none\"}}setOptions(t){this.options=t;return this}load(t,e,n,i){t===void 0&&(t=\"\");this.path!==void 0&&(t=this.path+t);t=this.manager.resolveURL(t);const r=this;const s=Wc.get(t);if(s!==void 0){r.manager.itemStart(t);if(s.then){s.then((n=>{e&&e(n);r.manager.itemEnd(t)})).catch((t=>{i&&i(t)}));return}setTimeout((function(){e&&e(s);r.manager.itemEnd(t)}),0);return s}const a={};a.credentials=this.crossOrigin===\"anonymous\"?\"same-origin\":\"include\";a.headers=this.requestHeader;const o=fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:\"none\"}))})).then((function(n){Wc.add(t,n);e&&e(n);r.manager.itemEnd(t);return n})).catch((function(e){i&&i(e);Wc.remove(t);r.manager.itemError(t);r.manager.itemEnd(t)}));Wc.add(t,o);r.manager.itemStart(t)}}let nh;class AudioContext{static getContext(){nh===void 0&&(nh=new(window.AudioContext||window.webkitAudioContext));return nh}static setContext(t){nh=t}}class AudioLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this;const s=new FileLoader(this.manager);s.setResponseType(\"arraybuffer\");s.setPath(this.path);s.setRequestHeader(this.requestHeader);s.setWithCredentials(this.withCredentials);s.load(t,(function(t){try{const n=t.slice(0);const i=AudioContext.getContext();i.decodeAudioData(n,(function(t){e(t)})).catch(handleError)}catch(t){handleError(t)}}),n,i);function handleError(e){i?i(e):console.error(e);r.manager.itemError(t)}}}const ih=new Matrix4;const rh=new Matrix4;const sh=new Matrix4;class StereoCamera{constructor(){this.type=\"StereoCamera\";this.aspect=1;this.eyeSep=.064;this.cameraL=new PerspectiveCamera;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=false;this.cameraR=new PerspectiveCamera;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=false;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;const n=e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep;if(n){e.focus=t.focus;e.fov=t.fov;e.aspect=t.aspect*this.aspect;e.near=t.near;e.far=t.far;e.zoom=t.zoom;e.eyeSep=this.eyeSep;sh.copy(t.projectionMatrix);const n=e.eyeSep/2;const i=n*e.near/e.focus;const r=e.near*Math.tan(Hn*e.fov*.5)/e.zoom;let s,a;rh.elements[12]=-n;ih.elements[12]=n;s=-r*e.aspect+i;a=r*e.aspect+i;sh.elements[0]=2*e.near/(a-s);sh.elements[8]=(a+s)/(a-s);this.cameraL.projectionMatrix.copy(sh);s=-r*e.aspect-i;a=r*e.aspect-i;sh.elements[0]=2*e.near/(a-s);sh.elements[8]=(a+s)/(a-s);this.cameraR.projectionMatrix.copy(sh)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(rh);this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(ih)}}class Clock{constructor(t=true){this.autoStart=t;this.startTime=0;this.oldTime=0;this.elapsedTime=0;this.running=false}start(){this.startTime=now();this.oldTime=this.startTime;this.elapsedTime=0;this.running=true}stop(){this.getElapsedTime();this.running=false;this.autoStart=false}getElapsedTime(){this.getDelta();return this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running){this.start();return 0}if(this.running){const e=now();t=(e-this.oldTime)/1e3;this.oldTime=e;this.elapsedTime+=t}return t}}function now(){return(typeof performance===\"undefined\"?Date:performance).now()}const ah=new Vector3;const oh=new Quaternion;const lh=new Vector3;const ch=new Vector3;class AudioListener extends Object3D{constructor(){super();this.type=\"AudioListener\";this.context=AudioContext.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Clock}getInput(){return this.gain}removeFilter(){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination);this.gain.connect(this.context.destination);this.filter=null}return this}getFilter(){return this.filter}setFilter(t){if(this.filter!==null){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination)}else this.gain.disconnect(this.context.destination);this.filter=t;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01);return this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener;const n=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(ah,oh,lh);ch.set(0,0,-1).applyQuaternion(oh);if(e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(ah.x,t);e.positionY.linearRampToValueAtTime(ah.y,t);e.positionZ.linearRampToValueAtTime(ah.z,t);e.forwardX.linearRampToValueAtTime(ch.x,t);e.forwardY.linearRampToValueAtTime(ch.y,t);e.forwardZ.linearRampToValueAtTime(ch.z,t);e.upX.linearRampToValueAtTime(n.x,t);e.upY.linearRampToValueAtTime(n.y,t);e.upZ.linearRampToValueAtTime(n.z,t)}else{e.setPosition(ah.x,ah.y,ah.z);e.setOrientation(ch.x,ch.y,ch.z,n.x,n.y,n.z)}}}class Audio extends Object3D{constructor(t){super();this.type=\"Audio\";this.listener=t;this.context=t.context;this.gain=this.context.createGain();this.gain.connect(t.getInput());this.autoplay=false;this.buffer=null;this.detune=0;this.loop=false;this.loopStart=0;this.loopEnd=0;this.offset=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=false;this.hasPlaybackControl=true;this.source=null;this.sourceType=\"empty\";this._startedAt=0;this._progress=0;this._connected=false;this.filters=[]}getOutput(){return this.gain}setNodeSource(t){this.hasPlaybackControl=false;this.sourceType=\"audioNode\";this.source=t;this.connect();return this}setMediaElementSource(t){this.hasPlaybackControl=false;this.sourceType=\"mediaNode\";this.source=this.context.createMediaElementSource(t);this.connect();return this}setMediaStreamSource(t){this.hasPlaybackControl=false;this.sourceType=\"mediaStreamNode\";this.source=this.context.createMediaStreamSource(t);this.connect();return this}setBuffer(t){this.buffer=t;this.sourceType=\"buffer\";this.autoplay&&this.play();return this}play(t=0){if(this.isPlaying===true){console.warn(\"THREE.Audio: Audio is already playing.\");return}if(this.hasPlaybackControl===false){console.warn(\"THREE.Audio: this Audio has no playback control.\");return}this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();e.buffer=this.buffer;e.loop=this.loop;e.loopStart=this.loopStart;e.loopEnd=this.loopEnd;e.onended=this.onEnded.bind(this);e.start(this._startedAt,this._progress+this.offset,this.duration);this.isPlaying=true;this.source=e;this.setDetune(this.detune);this.setPlaybackRate(this.playbackRate);return this.connect()}pause(){if(this.hasPlaybackControl!==false){if(this.isPlaying===true){this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate;this.loop===true&&(this._progress=this._progress%(this.duration||this.buffer.duration));this.source.stop();this.source.onended=null;this.isPlaying=false}return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(this.hasPlaybackControl!==false){this._progress=0;if(this.source!==null){this.source.stop();this.source.onended=null}this.isPlaying=false;return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());this._connected=true;return this}disconnect(){if(this._connected!==false){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());this._connected=false;return this}}getFilters(){return this.filters}setFilters(t){t||(t=[]);if(this._connected===true){this.disconnect();this.filters=t.slice();this.connect()}else this.filters=t.slice();return this}setDetune(t){this.detune=t;this.isPlaying===true&&this.source.detune!==void 0&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01);return this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(this.hasPlaybackControl!==false){this.playbackRate=t;this.isPlaying===true&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01);return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=false}getLoop(){if(this.hasPlaybackControl===false){console.warn(\"THREE.Audio: this Audio has no playback control.\");return false}return this.loop}setLoop(t){if(this.hasPlaybackControl!==false){this.loop=t;this.isPlaying===true&&(this.source.loop=this.loop);return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(t){this.loopStart=t;return this}setLoopEnd(t){this.loopEnd=t;return this}getVolume(){return this.gain.gain.value}setVolume(t){this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01);return this}}const hh=new Vector3;const uh=new Quaternion;const dh=new Vector3;const ph=new Vector3;class PositionalAudio extends Audio{constructor(t){super(t);this.panner=this.context.createPanner();this.panner.panningModel=\"HRTF\";this.panner.connect(this.gain)}connect(){super.connect();this.panner.connect(this.gain)}disconnect(){super.disconnect();this.panner.disconnect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){this.panner.refDistance=t;return this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){this.panner.rolloffFactor=t;return this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){this.panner.distanceModel=t;return this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){this.panner.maxDistance=t;return this}setDirectionalCone(t,e,n){this.panner.coneInnerAngle=t;this.panner.coneOuterAngle=e;this.panner.coneOuterGain=n;return this}updateMatrixWorld(t){super.updateMatrixWorld(t);if(this.hasPlaybackControl===true&&this.isPlaying===false)return;this.matrixWorld.decompose(hh,uh,dh);ph.set(0,0,1).applyQuaternion(uh);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(hh.x,t);e.positionY.linearRampToValueAtTime(hh.y,t);e.positionZ.linearRampToValueAtTime(hh.z,t);e.orientationX.linearRampToValueAtTime(ph.x,t);e.orientationY.linearRampToValueAtTime(ph.y,t);e.orientationZ.linearRampToValueAtTime(ph.z,t)}else{e.setPosition(hh.x,hh.y,hh.z);e.setOrientation(ph.x,ph.y,ph.z)}}}class AudioAnalyser{constructor(t,e=2048){this.analyser=t.context.createAnalyser();this.analyser.fftSize=e;this.data=new Uint8Array(this.analyser.frequencyBinCount);t.getOutput().connect(this.analyser)}getFrequencyData(){this.analyser.getByteFrequencyData(this.data);return this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class PropertyMixer{constructor(t,e,n){this.binding=t;this.valueSize=n;let i,r,s;switch(e){case\"quaternion\":i=this._slerp;r=this._slerpAdditive;s=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(n*6);this._workIndex=5;break;case\"string\":case\"bool\":i=this._select;r=this._select;s=this._setAdditiveIdentityOther;this.buffer=new Array(n*5);break;default:i=this._lerp;r=this._lerpAdditive;s=this._setAdditiveIdentityNumeric;this.buffer=new Float64Array(n*5)}this._mixBufferRegion=i;this._mixBufferRegionAdditive=r;this._setIdentity=s;this._origIndex=3;this._addIndex=4;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;this.useCount=0;this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(s===0){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;this.cumulativeWeightAdditive===0&&this._setIdentity();this._mixBufferRegionAdditive(e,i,0,t,n);this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;if(r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding;const e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity();this.cumulativeWeight=0;this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=this.valueSize*3;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize;const e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric();this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize;const e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Quaternion.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Quaternion.multiplyQuaternionsFlat(t,s,t,e,t,n);Quaternion.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const fh=\"\\\\[\\\\]\\\\.:\\\\/\";const mh=new RegExp(\"[\"+fh+\"]\",\"g\");const gh=\"[^\"+fh+\"]\";const vh=\"[^\"+fh.replace(\"\\\\.\",\"\")+\"]\";const _h=/((?:WC+[\\/:])*)/.source.replace(\"WC\",gh);const xh=/(WCOD+)?/.source.replace(\"WCOD\",vh);const yh=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",gh);const Mh=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",gh);const Sh=new RegExp(\"^\"+_h+xh+yh+Mh+\"$\");const bh=[\"material\",\"materials\",\"bones\",\"map\"];class Composite{constructor(t,e,n){const i=n||PropertyBinding.parseTrackName(e);this._targetGroup=t;this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class PropertyBinding{constructor(t,e,n){this.path=e;this.parsedPath=n||PropertyBinding.parseTrackName(e);this.node=PropertyBinding.findNode(t,this.parsedPath.nodeName);this.rootNode=t;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new PropertyBinding.Composite(t,e,n):new PropertyBinding(t,e,n)}\n/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */static sanitizeNodeName(t){return t.replace(/\\s/g,\"_\").replace(mh,\"\")}static parseTrackName(t){const e=Sh.exec(t);if(e===null)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]};const i=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(i!==void 0&&i!==-1){const t=n.nodeName.substring(i+1);if(bh.indexOf(t)!==-1){n.nodeName=n.nodeName.substring(0,i);n.objectName=t}}if(n.propertyName===null||n.propertyName.length===0)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return n}static findNode(t,e){if(e===void 0||e===\"\"||e===\".\"||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const searchNodeSubtree=function(t){for(let n=0;n<t.length;n++){const i=t[n];if(i.name===e||i.uuid===e)return i;const r=searchNodeSubtree(i.children);if(r)return r}return null};const n=searchNodeSubtree(t.children);if(n)return n}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e];this.targetObject.needsUpdate=true}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=true}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e];this.targetObject.needsUpdate=true}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e);this.targetObject.needsUpdate=true}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e);this.targetObject.matrixWorldNeedsUpdate=true}_getValue_unbound(t,e){this.bind();this.getValue(t,e)}_setValue_unbound(t,e){this.bind();this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath;const n=e.objectName;const i=e.propertyName;let r=e.propertyIndex;if(!t){t=PropertyBinding.findNode(this.rootNode,e.nodeName);this.node=t}this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(!t){console.warn(\"THREE.PropertyBinding: No target node found for track: \"+this.path+\".\");return}if(n){let i=e.objectIndex;switch(n){case\"materials\":if(!t.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return}if(!t.material.materials){console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);return}t=t.material.materials;break;case\"bones\":if(!t.skeleton){console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);return}t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;case\"map\":if(\"map\"in t){t=t.map;break}if(!t.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return}if(!t.material.map){console.error(\"THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.\",this);return}t=t.material.map;break;default:if(t[n]===void 0){console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);return}t=t[n]}if(i!==void 0){if(t[i]===void 0){console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,t);return}t=t[i]}}const s=t[i];if(s===void 0){const n=e.nodeName;console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+i+\" but it wasn't found.\",t);return}let a=this.Versioning.None;this.targetObject=t;t.needsUpdate!==void 0?a=this.Versioning.NeedsUpdate:t.matrixWorldNeedsUpdate!==void 0&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(r!==void 0){if(i===\"morphTargetInfluences\"){if(!t.geometry){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);return}if(!t.geometry.morphAttributes){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);return}t.morphTargetDictionary[r]!==void 0&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement;this.resolvedProperty=s;this.propertyIndex=r}else if(s.fromArray!==void 0&&s.toArray!==void 0){o=this.BindingType.HasFromToArray;this.resolvedProperty=s}else if(Array.isArray(s)){o=this.BindingType.EntireArray;this.resolvedProperty=s}else this.propertyName=i;this.getValue=this.GetterByBindingType[o];this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}}PropertyBinding.Composite=Composite;PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray];PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.isAnimationObjectGroup=true;this.uuid=generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=e[u];if(d===void 0){d=o++;e[u]=d;t.push(h);for(let t=0,e=s;t!==e;++t)r[t].push(new PropertyBinding(h,n[t],i[t]))}else if(d<l){a=t[d];const o=--l,c=t[o];e[c.uuid]=d;t[d]=c;e[u]=o;t[o]=h;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s;a===void 0&&(a=new PropertyBinding(h,n[t],i[t]));e[o]=a}}else t[d]!==a&&console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\")}this.nCachedObjects_=l}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=e[o];if(l!==void 0&&l>=r){const s=r++,c=t[s];e[c.uuid]=l;t[l]=c;e[o]=s;t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i;e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a],l=o.uuid,c=e[l];if(c!==void 0){delete e[l];if(c<r){const a=--r,o=t[a],l=--s,h=t[l];e[o.uuid]=c;t[c]=o;e[h.uuid]=a;t[a]=h;t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[l];e[c]=i;e[a]=r;e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=c);t[c]=a;t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[c]=e[r];e.pop()}}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(i!==void 0)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length;n[t]=i;s.push(t);a.push(e);r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new PropertyBinding(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(n!==void 0){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a],l=t[a];e[l]=n;s[n]=o;s.pop();r[n]=r[a];r.pop();i[n]=i[a];i.pop()}}}class AnimationAction{constructor(t,e,n=null,i=e.blendMode){this._mixer=t;this._clip=e;this._localRoot=n;this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s);const o={endingStart:Be,endingEnd:Be};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e;e.settings=o}this._interpolantSettings=o;this._interpolants=a;this._propertyBindings=new Array(s);this._cacheIndex=null;this._byClipCacheIndex=null;this._timeScaleInterpolant=null;this._weightInterpolant=null;this.loop=Le;this._loopCount=-1;this._startTime=null;this.time=0;this.timeScale=1;this._effectiveTimeScale=1;this.weight=1;this._effectiveWeight=1;this.repetitions=Infinity;this.paused=false;this.enabled=true;this.clampWhenFinished=false;this.zeroSlopeAtStart=true;this.zeroSlopeAtEnd=true}play(){this._mixer._activateAction(this);return this}stop(){this._mixer._deactivateAction(this);return this.reset()}reset(){this.paused=false;this.enabled=true;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){this._startTime=t;return this}setLoop(t,e){this.loop=t;this.repetitions=e;return this}setEffectiveWeight(t){this.weight=t;this._effectiveWeight=this.enabled?t:0;return this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){t.fadeOut(e);this.fadeIn(e);if(n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e);this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;if(t!==null){this._weightInterpolant=null;this._mixer._takeBackControlInterpolant(t)}return this}setEffectiveTimeScale(t){this.timeScale=t;this._effectiveTimeScale=this.paused?0:t;return this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){this.timeScale=this._clip.duration/t;return this.stopWarping()}syncWith(t){this.time=t.time;this.timeScale=t.timeScale;return this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;if(a===null){a=i._lendControlInterpolant();this._timeScaleInterpolant=a}const o=a.parameterPositions,l=a.sampleValues;o[0]=r;o[1]=r+n;l[0]=t/s;l[1]=e/s;return this}stopWarping(){const t=this._timeScaleInterpolant;if(t!==null){this._timeScaleInterpolant=null;this._mixer._takeBackControlInterpolant(t)}return this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled){this._updateWeight(t);return}const r=this._startTime;if(r!==null){const i=(t-r)*n;if(i<0||n===0)e=0;else{this._startTime=null;e=n*i}}e*=this._updateTimeScale(t);const s=this._updateTime(e);const a=this._updateWeight(t);if(a>0){const t=this._interpolants;const e=this._propertyBindings;switch(this.blendMode){case ze:for(let n=0,i=t.length;n!==i;++n){t[n].evaluate(s);e[n].accumulateAdditive(a)}break;case Fe:default:for(let n=0,r=t.length;n!==r;++n){t[n].evaluate(s);e[n].accumulate(i,a)}}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(n!==null){const i=n.evaluate(t)[0];e*=i;if(t>n.parameterPositions[1]){this.stopFading();i===0&&(this.enabled=false)}}}this._effectiveWeight=e;return e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(n!==null){const i=n.evaluate(t)[0];e*=i;if(t>n.parameterPositions[1]){this.stopWarping();e===0?this.paused=true:this.timeScale=e}}}this._effectiveTimeScale=e;return e}_updateTime(t){const e=this._clip.duration;const n=this.loop;let i=this.time+t;let r=this._loopCount;const s=n===Ie;if(t===0)return r===-1?i:s&&(r&1)===1?e-i:i;if(n===Pe){if(r===-1){this._loopCount=0;this._setEndings(true,true,false)}t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=true:this.enabled=false;this.time=i;this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{if(r===-1)if(t>=0){r=0;this._setEndings(true,this.repetitions===0,s)}else this._setEndings(this.repetitions===0,true,s);if(i>=e||i<0){const n=Math.floor(i/e);i-=e*n;r+=Math.abs(n);const a=this.repetitions-r;if(a<=0){this.clampWhenFinished?this.paused=true:this.enabled=false;i=t>0?e:0;this.time=i;this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1})}else{if(a===1){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(false,false,s);this._loopCount=r;this.time=i;this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=i;if(s&&(r&1)===1)return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;if(n){i.endingStart=Oe;i.endingEnd=Oe}else{i.endingStart=t?this.zeroSlopeAtStart?Oe:Be:Ve;i.endingEnd=e?this.zeroSlopeAtEnd?Oe:Be:Ve}}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;if(s===null){s=i._lendControlInterpolant();this._weightInterpolant=s}const a=s.parameterPositions,o=s.sampleValues;a[0]=r;o[0]=e;a[1]=r+t;o[1]=n;return this}}const Th=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(t){super();this._root=t;this._initMemoryManager();this._accuIndex=0;this.time=0;this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];if(c===void 0){c={};l[o]=c}for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(h!==void 0){++h.referenceCount;s[t]=h}else{h=s[t];if(h!==void 0){if(h._cacheIndex===null){++h.referenceCount;this._addInactiveBinding(h,o,l)}continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new PropertyMixer(PropertyBinding.create(n,l,i),r.ValueTypeName,r.getValueSize());++h.referenceCount;this._addInactiveBinding(h,o,l);s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(t._cacheIndex===null){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]);this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];if(n.useCount++===0){this._lendBinding(n);n.saveOriginalState()}}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];if(--n.useCount===0){n.restoreOriginalState();this._takeBackBinding(n)}}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return e!==null&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(s===void 0){s={knownActions:[t],actionByRoot:{}};t._byClipCacheIndex=0;r[e]=s}else{const e=s.knownActions;t._byClipCacheIndex=e.length;e.push(t)}t._cacheIndex=i.length;i.push(t);s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i;e[i]=n;e.pop();t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,l=o[o.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c;o[c]=l;o.pop();t._byClipCacheIndex=null;const h=a.actionByRoot,u=(t._localRoot||this._root).uuid;delete h[u];o.length===0&&delete s[r];this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];--n.referenceCount===0&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];if(s===void 0){s={};i[e]=s}s[n]=t;t._cacheIndex=r.length;r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],l=t._cacheIndex;o._cacheIndex=l;e[l]=o;e.pop();delete a[r];Object.keys(a).length===0&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i;e[i]=t;r._cacheIndex=n;e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];if(n===void 0){n=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,Th);n.__cacheIndex=e;t[e]=n}return n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i;e[i]=t;r.__cacheIndex=n;e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s=typeof t===\"string\"?AnimationClip.findByName(i,t):t;const a=s!==null?s.uuid:t;const o=this._actionsByClip[a];let l=null;n===void 0&&(n=s!==null?s.blendMode:Fe);if(o!==void 0){const t=o.actionByRoot[r];if(t!==void 0&&t.blendMode===n)return t;l=o.knownActions[0];s===null&&(s=l._clip)}if(s===null)return null;const c=new AnimationAction(this,s,e,n);this._bindAction(c,l);this._addInactiveAction(c,a,r);return c}existingAction(t,e){const n=e||this._root,i=n.uuid,r=typeof t===\"string\"?AnimationClip.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return a!==void 0&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions,e=this._nActiveActions;for(let n=e-1;n>=0;--n)t[n].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){const n=e[a];n._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(r!==void 0){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null;i._byClipCacheIndex=null;s._cacheIndex=r;e[r]=s;e.pop();this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot,r=i[e];if(r!==void 0){this._deactivateAction(r);this._removeInactiveAction(r)}}const i=this._bindingsByRootAndName,r=i[e];if(r!==void 0)for(const t in r){const e=r[t];e.restoreOriginalState();this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);if(n!==null){this._deactivateAction(n);this._removeInactiveAction(n)}}}class Uniform{constructor(t){this.value=t}clone(){return new Uniform(this.value.clone===void 0?this.value:this.value.clone())}}let wh=0;class UniformsGroup extends EventDispatcher{constructor(){super();this.isUniformsGroup=true;Object.defineProperty(this,\"id\",{value:wh++});this.name=\"\";this.usage=Cn;this.uniforms=[]}add(t){this.uniforms.push(t);return this}remove(t){const e=this.uniforms.indexOf(t);e!==-1&&this.uniforms.splice(e,1);return this}setName(t){this.name=t;return this}setUsage(t){this.usage=t;return this}dispose(){this.dispatchEvent({type:\"dispose\"});return this}copy(t){this.name=t.name;this.usage=t.usage;const e=t.uniforms;this.uniforms.length=0;for(let t=0,n=e.length;t<n;t++){const n=Array.isArray(e[t])?e[t]:[e[t]];for(let t=0;t<n.length;t++)this.uniforms.push(n[t].clone())}return this}clone(){return(new this.constructor).copy(this)}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(t,e,n=1){super(t,e);this.isInstancedInterleavedBuffer=true;this.meshPerAttribute=n}copy(t){super.copy(t);this.meshPerAttribute=t.meshPerAttribute;return this}clone(t){const e=super.clone(t);e.meshPerAttribute=this.meshPerAttribute;return e}toJSON(t){const e=super.toJSON(t);e.isInstancedInterleavedBuffer=true;e.meshPerAttribute=this.meshPerAttribute;return e}}class GLBufferAttribute{constructor(t,e,n,i,r){this.isGLBufferAttribute=true;this.name=\"\";this.buffer=t;this.type=e;this.itemSize=n;this.elementSize=i;this.count=r;this.version=0}set needsUpdate(t){t===true&&this.version++}setBuffer(t){this.buffer=t;return this}setType(t,e){this.type=t;this.elementSize=e;return this}setItemSize(t){this.itemSize=t;return this}setCount(t){this.count=t;return this}}const Eh=new Matrix4;class Raycaster{constructor(t,e,n=0,i=Infinity){this.ray=new Ray(t,e);this.near=n;this.far=i;this.camera=null;this.layers=new Layers;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){if(e.isPerspectiveCamera){this.ray.origin.setFromMatrixPosition(e.matrixWorld);this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize();this.camera=e}else if(e.isOrthographicCamera){this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e);this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld);this.camera=e}else console.error(\"THREE.Raycaster: Unsupported camera type: \"+e.type)}setFromXRController(t){Eh.identity().extractRotation(t.matrixWorld);this.ray.origin.setFromMatrixPosition(t.matrixWorld);this.ray.direction.set(0,0,-1).applyMatrix4(Eh);return this}intersectObject(t,e=true,n=[]){intersect(t,this,n,e);n.sort(ascSort);return n}intersectObjects(t,e=true,n=[]){for(let i=0,r=t.length;i<r;i++)intersect(t[i],this,n,e);n.sort(ascSort);return n}}function ascSort(t,e){return t.distance-e.distance}function intersect(t,e,n,i){let r=true;if(t.layers.test(e.layers)){const i=t.raycast(e,n);i===false&&(r=false)}if(r===true&&i===true){const i=t.children;for(let t=0,r=i.length;t<r;t++)intersect(i[t],e,n,true)}}class Spherical{constructor(t=1,e=0,n=0){this.radius=t;this.phi=e;this.theta=n;return this}set(t,e,n){this.radius=t;this.phi=e;this.theta=n;return this}copy(t){this.radius=t.radius;this.phi=t.phi;this.theta=t.theta;return this}makeSafe(){const t=1e-6;this.phi=Math.max(t,Math.min(Math.PI-t,this.phi));return this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){this.radius=Math.sqrt(t*t+e*e+n*n);if(this.radius===0){this.theta=0;this.phi=0}else{this.theta=Math.atan2(t,n);this.phi=Math.acos(clamp(e/this.radius,-1,1))}return this}clone(){return(new this.constructor).copy(this)}}class Cylindrical{constructor(t=1,e=0,n=0){this.radius=t;this.theta=e;this.y=n;return this}set(t,e,n){this.radius=t;this.theta=e;this.y=n;return this}copy(t){this.radius=t.radius;this.theta=t.theta;this.y=t.y;return this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){this.radius=Math.sqrt(t*t+n*n);this.theta=Math.atan2(t,n);this.y=e;return this}clone(){return(new this.constructor).copy(this)}}const Ah=new Vector2;class Box2{constructor(t=new Vector2(Infinity,Infinity),e=new Vector2(-Infinity,-Infinity)){this.isBox2=true;this.min=t;this.max=e}set(t,e){this.min.copy(t);this.max.copy(e);return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Ah.copy(e).multiplyScalar(.5);this.min.copy(t).sub(n);this.max.copy(t).add(n);return this}clone(){return(new this.constructor).copy(this)}copy(t){this.min.copy(t.min);this.max.copy(t.max);return this}makeEmpty(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){this.min.min(t);this.max.max(t);return this}expandByVector(t){this.min.sub(t);this.max.add(t);return this}expandByScalar(t){this.min.addScalar(-t);this.max.addScalar(t);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Ah).distanceTo(t)}intersect(t){this.min.max(t.min);this.max.min(t.max);this.isEmpty()&&this.makeEmpty();return this}union(t){this.min.min(t.min);this.max.max(t.max);return this}translate(t){this.min.add(t);this.max.add(t);return this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Ch=new Vector3;const Rh=new Vector3;class Line3{constructor(t=new Vector3,e=new Vector3){this.start=t;this.end=e}set(t,e){this.start.copy(t);this.end.copy(e);return this}copy(t){this.start.copy(t.start);this.end.copy(t.end);return this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Ch.subVectors(t,this.start);Rh.subVectors(this.end,this.start);const n=Rh.dot(Rh);const i=Rh.dot(Ch);let r=i/n;e&&(r=clamp(r,0,1));return r}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){this.start.applyMatrix4(t);this.end.applyMatrix4(t);return this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Ph=new Vector3;class SpotLightHelper extends Object3D{constructor(t,e){super();this.light=t;this.matrixAutoUpdate=false;this.color=e;this.type=\"SpotLightHelper\";const n=new BufferGeometry;const i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t<n;t++,e++){const r=t/n*Math.PI*2;const s=e/n*Math.PI*2;i.push(Math.cos(r),Math.sin(r),1,Math.cos(s),Math.sin(s),1)}n.setAttribute(\"position\",new Float32BufferAttribute(i,3));const r=new LineBasicMaterial({fog:false,toneMapped:false});this.cone=new LineSegments(n,r);this.add(this.cone);this.update()}dispose(){this.cone.geometry.dispose();this.cone.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.light.target.updateWorldMatrix(true,false);if(this.parent){this.parent.updateWorldMatrix(true);this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)}else this.matrix.copy(this.light.matrixWorld);this.matrixWorld.copy(this.light.matrixWorld);const t=this.light.distance?this.light.distance:1e3;const e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t);Ph.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(Ph);this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const Lh=new Vector3;const Ih=new Matrix4;const Uh=new Matrix4;class SkeletonHelper extends LineSegments{constructor(t){const e=getBoneList(t);const n=new BufferGeometry;const i=[];const r=[];const s=new Color(0,0,1);const a=new Color(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];if(n.parent&&n.parent.isBone){i.push(0,0,0);i.push(0,0,0);r.push(s.r,s.g,s.b);r.push(a.r,a.g,a.b)}}n.setAttribute(\"position\",new Float32BufferAttribute(i,3));n.setAttribute(\"color\",new Float32BufferAttribute(r,3));const o=new LineBasicMaterial({vertexColors:true,depthTest:false,depthWrite:false,toneMapped:false,transparent:true});super(n,o);this.isSkeletonHelper=true;this.type=\"SkeletonHelper\";this.root=t;this.bones=e;this.matrix=t.matrixWorld;this.matrixAutoUpdate=false}updateMatrixWorld(t){const e=this.bones;const n=this.geometry;const i=n.getAttribute(\"position\");Uh.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const r=e[t];if(r.parent&&r.parent.isBone){Ih.multiplyMatrices(Uh,r.matrixWorld);Lh.setFromMatrixPosition(Ih);i.setXYZ(n,Lh.x,Lh.y,Lh.z);Ih.multiplyMatrices(Uh,r.parent.matrixWorld);Lh.setFromMatrixPosition(Ih);i.setXYZ(n+1,Lh.x,Lh.y,Lh.z);n+=2}}n.getAttribute(\"position\").needsUpdate=true;super.updateMatrixWorld(t)}dispose(){this.geometry.dispose();this.material.dispose()}}function getBoneList(t){const e=[];t.isBone===true&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,getBoneList(t.children[n]));return e}class PointLightHelper extends Mesh{constructor(t,e,n){const i=new SphereGeometry(e,4,2);const r=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});super(i,r);this.light=t;this.color=n;this.type=\"PointLightHelper\";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=false;this.update()}dispose(){this.geometry.dispose();this.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const Dh=new Vector3;const Nh=new Color;const Bh=new Color;class HemisphereLightHelper extends Object3D{constructor(t,e,n){super();this.light=t;this.matrix=t.matrixWorld;this.matrixAutoUpdate=false;this.color=n;this.type=\"HemisphereLightHelper\";const i=new OctahedronGeometry(e);i.rotateY(Math.PI*.5);this.material=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});this.color===void 0&&(this.material.vertexColors=true);const r=i.getAttribute(\"position\");const s=new Float32Array(r.count*3);i.setAttribute(\"color\",new BufferAttribute(s,3));this.add(new Mesh(i,this.material));this.update()}dispose(){this.children[0].geometry.dispose();this.children[0].material.dispose()}update(){const t=this.children[0];if(this.color!==void 0)this.material.color.set(this.color);else{const e=t.geometry.getAttribute(\"color\");Nh.copy(this.light.color);Bh.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?Nh:Bh;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=true}this.light.updateWorldMatrix(true,false);t.lookAt(Dh.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(t=10,e=10,n=4473924,i=8947848){n=new Color(n);i=new Color(i);const r=e/2;const s=t/e;const a=t/2;const o=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=s){o.push(-a,0,h,a,0,h);o.push(h,0,-a,h,0,a);const e=t===r?n:i;e.toArray(l,c);c+=3;e.toArray(l,c);c+=3;e.toArray(l,c);c+=3;e.toArray(l,c);c+=3}const c=new BufferGeometry;c.setAttribute(\"position\",new Float32BufferAttribute(o,3));c.setAttribute(\"color\",new Float32BufferAttribute(l,3));const h=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(c,h);this.type=\"GridHelper\"}dispose(){this.geometry.dispose();this.material.dispose()}}class PolarGridHelper extends LineSegments{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new Color(r);s=new Color(s);const a=[];const o=[];if(e>1)for(let n=0;n<e;n++){const i=n/e*(Math.PI*2);const l=Math.sin(i)*t;const c=Math.cos(i)*t;a.push(0,0,0);a.push(l,0,c);const h=n&1?r:s;o.push(h.r,h.g,h.b);o.push(h.r,h.g,h.b)}for(let e=0;e<n;e++){const l=e&1?r:s;const c=t-t/n*e;for(let t=0;t<i;t++){let e=t/i*(Math.PI*2);let n=Math.sin(e)*c;let r=Math.cos(e)*c;a.push(n,0,r);o.push(l.r,l.g,l.b);e=(t+1)/i*(Math.PI*2);n=Math.sin(e)*c;r=Math.cos(e)*c;a.push(n,0,r);o.push(l.r,l.g,l.b)}}const l=new BufferGeometry;l.setAttribute(\"position\",new Float32BufferAttribute(a,3));l.setAttribute(\"color\",new Float32BufferAttribute(o,3));const c=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(l,c);this.type=\"PolarGridHelper\"}dispose(){this.geometry.dispose();this.material.dispose()}}const Oh=new Vector3;const Vh=new Vector3;const Fh=new Vector3;class DirectionalLightHelper extends Object3D{constructor(t,e,n){super();this.light=t;this.matrix=t.matrixWorld;this.matrixAutoUpdate=false;this.color=n;this.type=\"DirectionalLightHelper\";e===void 0&&(e=1);let i=new BufferGeometry;i.setAttribute(\"position\",new Float32BufferAttribute([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new LineBasicMaterial({fog:false,toneMapped:false});this.lightPlane=new Line(i,r);this.add(this.lightPlane);i=new BufferGeometry;i.setAttribute(\"position\",new Float32BufferAttribute([0,0,0,0,0,1],3));this.targetLine=new Line(i,r);this.add(this.targetLine);this.update()}dispose(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(true,false);this.light.target.updateWorldMatrix(true,false);Oh.setFromMatrixPosition(this.light.matrixWorld);Vh.setFromMatrixPosition(this.light.target.matrixWorld);Fh.subVectors(Vh,Oh);this.lightPlane.lookAt(Vh);if(this.color!==void 0){this.lightPlane.material.color.set(this.color);this.targetLine.material.color.set(this.color)}else{this.lightPlane.material.color.copy(this.light.color);this.targetLine.material.color.copy(this.light.color)}this.targetLine.lookAt(Vh);this.targetLine.scale.z=Fh.length()}}const zh=new Vector3;const Gh=new Camera;class CameraHelper extends LineSegments{constructor(t){const e=new BufferGeometry;const n=new LineBasicMaterial({color:16777215,vertexColors:true,toneMapped:false});const i=[];const r=[];const s={};addLine(\"n1\",\"n2\");addLine(\"n2\",\"n4\");addLine(\"n4\",\"n3\");addLine(\"n3\",\"n1\");addLine(\"f1\",\"f2\");addLine(\"f2\",\"f4\");addLine(\"f4\",\"f3\");addLine(\"f3\",\"f1\");addLine(\"n1\",\"f1\");addLine(\"n2\",\"f2\");addLine(\"n3\",\"f3\");addLine(\"n4\",\"f4\");addLine(\"p\",\"n1\");addLine(\"p\",\"n2\");addLine(\"p\",\"n3\");addLine(\"p\",\"n4\");addLine(\"u1\",\"u2\");addLine(\"u2\",\"u3\");addLine(\"u3\",\"u1\");addLine(\"c\",\"t\");addLine(\"p\",\"c\");addLine(\"cn1\",\"cn2\");addLine(\"cn3\",\"cn4\");addLine(\"cf1\",\"cf2\");addLine(\"cf3\",\"cf4\");function addLine(t,e){addPoint(t);addPoint(e)}function addPoint(t){i.push(0,0,0);r.push(0,0,0);s[t]===void 0&&(s[t]=[]);s[t].push(i.length/3-1)}e.setAttribute(\"position\",new Float32BufferAttribute(i,3));e.setAttribute(\"color\",new Float32BufferAttribute(r,3));super(e,n);this.type=\"CameraHelper\";this.camera=t;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=t.matrixWorld;this.matrixAutoUpdate=false;this.pointMap=s;this.update();const a=new Color(16755200);const o=new Color(16711680);const l=new Color(43775);const c=new Color(16777215);const h=new Color(3355443);this.setColors(a,o,l,c,h)}setColors(t,e,n,i,r){const s=this.geometry;const a=s.getAttribute(\"color\");a.setXYZ(0,t.r,t.g,t.b);a.setXYZ(1,t.r,t.g,t.b);a.setXYZ(2,t.r,t.g,t.b);a.setXYZ(3,t.r,t.g,t.b);a.setXYZ(4,t.r,t.g,t.b);a.setXYZ(5,t.r,t.g,t.b);a.setXYZ(6,t.r,t.g,t.b);a.setXYZ(7,t.r,t.g,t.b);a.setXYZ(8,t.r,t.g,t.b);a.setXYZ(9,t.r,t.g,t.b);a.setXYZ(10,t.r,t.g,t.b);a.setXYZ(11,t.r,t.g,t.b);a.setXYZ(12,t.r,t.g,t.b);a.setXYZ(13,t.r,t.g,t.b);a.setXYZ(14,t.r,t.g,t.b);a.setXYZ(15,t.r,t.g,t.b);a.setXYZ(16,t.r,t.g,t.b);a.setXYZ(17,t.r,t.g,t.b);a.setXYZ(18,t.r,t.g,t.b);a.setXYZ(19,t.r,t.g,t.b);a.setXYZ(20,t.r,t.g,t.b);a.setXYZ(21,t.r,t.g,t.b);a.setXYZ(22,t.r,t.g,t.b);a.setXYZ(23,t.r,t.g,t.b);a.setXYZ(24,e.r,e.g,e.b);a.setXYZ(25,e.r,e.g,e.b);a.setXYZ(26,e.r,e.g,e.b);a.setXYZ(27,e.r,e.g,e.b);a.setXYZ(28,e.r,e.g,e.b);a.setXYZ(29,e.r,e.g,e.b);a.setXYZ(30,e.r,e.g,e.b);a.setXYZ(31,e.r,e.g,e.b);a.setXYZ(32,n.r,n.g,n.b);a.setXYZ(33,n.r,n.g,n.b);a.setXYZ(34,n.r,n.g,n.b);a.setXYZ(35,n.r,n.g,n.b);a.setXYZ(36,n.r,n.g,n.b);a.setXYZ(37,n.r,n.g,n.b);a.setXYZ(38,i.r,i.g,i.b);a.setXYZ(39,i.r,i.g,i.b);a.setXYZ(40,r.r,r.g,r.b);a.setXYZ(41,r.r,r.g,r.b);a.setXYZ(42,r.r,r.g,r.b);a.setXYZ(43,r.r,r.g,r.b);a.setXYZ(44,r.r,r.g,r.b);a.setXYZ(45,r.r,r.g,r.b);a.setXYZ(46,r.r,r.g,r.b);a.setXYZ(47,r.r,r.g,r.b);a.setXYZ(48,r.r,r.g,r.b);a.setXYZ(49,r.r,r.g,r.b);a.needsUpdate=true}update(){const t=this.geometry;const e=this.pointMap;const n=1,i=1;Gh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);setPoint(\"c\",e,t,Gh,0,0,-1);setPoint(\"t\",e,t,Gh,0,0,1);setPoint(\"n1\",e,t,Gh,-n,-i,-1);setPoint(\"n2\",e,t,Gh,n,-i,-1);setPoint(\"n3\",e,t,Gh,-n,i,-1);setPoint(\"n4\",e,t,Gh,n,i,-1);setPoint(\"f1\",e,t,Gh,-n,-i,1);setPoint(\"f2\",e,t,Gh,n,-i,1);setPoint(\"f3\",e,t,Gh,-n,i,1);setPoint(\"f4\",e,t,Gh,n,i,1);setPoint(\"u1\",e,t,Gh,n*.7,i*1.1,-1);setPoint(\"u2\",e,t,Gh,.7*-n,i*1.1,-1);setPoint(\"u3\",e,t,Gh,0,i*2,-1);setPoint(\"cf1\",e,t,Gh,-n,0,1);setPoint(\"cf2\",e,t,Gh,n,0,1);setPoint(\"cf3\",e,t,Gh,0,-i,1);setPoint(\"cf4\",e,t,Gh,0,i,1);setPoint(\"cn1\",e,t,Gh,-n,0,-1);setPoint(\"cn2\",e,t,Gh,n,0,-1);setPoint(\"cn3\",e,t,Gh,0,-i,-1);setPoint(\"cn4\",e,t,Gh,0,i,-1);t.getAttribute(\"position\").needsUpdate=true}dispose(){this.geometry.dispose();this.material.dispose()}}function setPoint(t,e,n,i,r,s,a){zh.set(r,s,a).unproject(i);const o=e[t];if(o!==void 0){const t=n.getAttribute(\"position\");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],zh.x,zh.y,zh.z)}}const kh=new Box3;class BoxHelper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const i=new Float32Array(24);const r=new BufferGeometry;r.setIndex(new BufferAttribute(n,1));r.setAttribute(\"position\",new BufferAttribute(i,3));super(r,new LineBasicMaterial({color:e,toneMapped:false}));this.object=t;this.type=\"BoxHelper\";this.matrixAutoUpdate=false;this.update()}update(t){t!==void 0&&console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\");this.object!==void 0&&kh.setFromObject(this.object);if(kh.isEmpty())return;const e=kh.min;const n=kh.max;const i=this.geometry.attributes.position;const r=i.array;r[0]=n.x;r[1]=n.y;r[2]=n.z;r[3]=e.x;r[4]=n.y;r[5]=n.z;r[6]=e.x;r[7]=e.y;r[8]=n.z;r[9]=n.x;r[10]=e.y;r[11]=n.z;r[12]=n.x;r[13]=n.y;r[14]=e.z;r[15]=e.x;r[16]=n.y;r[17]=e.z;r[18]=e.x;r[19]=e.y;r[20]=e.z;r[21]=n.x;r[22]=e.y;r[23]=e.z;i.needsUpdate=true;this.geometry.computeBoundingSphere()}setFromObject(t){this.object=t;this.update();return this}copy(t,e){super.copy(t,e);this.object=t.object;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class Box3Helper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const i=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1];const r=new BufferGeometry;r.setIndex(new BufferAttribute(n,1));r.setAttribute(\"position\",new Float32BufferAttribute(i,3));super(r,new LineBasicMaterial({color:e,toneMapped:false}));this.box=t;this.type=\"Box3Helper\";this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;if(!e.isEmpty()){e.getCenter(this.position);e.getSize(this.scale);this.scale.multiplyScalar(.5);super.updateMatrixWorld(t)}}dispose(){this.geometry.dispose();this.material.dispose()}}class PlaneHelper extends Line{constructor(t,e=1,n=16776960){const i=n;const r=[1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0];const s=new BufferGeometry;s.setAttribute(\"position\",new Float32BufferAttribute(r,3));s.computeBoundingSphere();super(s,new LineBasicMaterial({color:i,toneMapped:false}));this.type=\"PlaneHelper\";this.plane=t;this.size=e;const a=[1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0];const o=new BufferGeometry;o.setAttribute(\"position\",new Float32BufferAttribute(a,3));o.computeBoundingSphere();this.add(new Mesh(o,new MeshBasicMaterial({color:i,opacity:.2,transparent:true,depthWrite:false,toneMapped:false})))}updateMatrixWorld(t){this.position.set(0,0,0);this.scale.set(.5*this.size,.5*this.size,1);this.lookAt(this.plane.normal);this.translateZ(-this.plane.constant);super.updateMatrixWorld(t)}dispose(){this.geometry.dispose();this.material.dispose();this.children[0].geometry.dispose();this.children[0].material.dispose()}}const Hh=new Vector3;let Wh,Xh;class ArrowHelper extends Object3D{constructor(t=new Vector3(0,0,1),e=new Vector3(0,0,0),n=1,i=16776960,r=n*.2,s=r*.2){super();this.type=\"ArrowHelper\";if(Wh===void 0){Wh=new BufferGeometry;Wh.setAttribute(\"position\",new Float32BufferAttribute([0,0,0,0,1,0],3));Xh=new CylinderGeometry(0,.5,1,5,1);Xh.translate(0,-.5,0)}this.position.copy(e);this.line=new Line(Wh,new LineBasicMaterial({color:i,toneMapped:false}));this.line.matrixAutoUpdate=false;this.add(this.line);this.cone=new Mesh(Xh,new MeshBasicMaterial({color:i,toneMapped:false}));this.cone.matrixAutoUpdate=false;this.add(this.cone);this.setDirection(t);this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Hh.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Hh,e)}}setLength(t,e=t*.2,n=e*.2){this.line.scale.set(1,Math.max(1e-4,t-e),1);this.line.updateMatrix();this.cone.scale.set(n,e,n);this.cone.position.y=t;this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t);this.cone.material.color.set(t)}copy(t){super.copy(t,false);this.line.copy(t.line);this.cone.copy(t.cone);return this}dispose(){this.line.geometry.dispose();this.line.material.dispose();this.cone.geometry.dispose();this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t];const n=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1];const i=new BufferGeometry;i.setAttribute(\"position\",new Float32BufferAttribute(e,3));i.setAttribute(\"color\",new Float32BufferAttribute(n,3));const r=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(i,r);this.type=\"AxesHelper\"}setColors(t,e,n){const i=new Color;const r=this.geometry.attributes.color.array;i.set(t);i.toArray(r,0);i.toArray(r,3);i.set(e);i.toArray(r,6);i.toArray(r,9);i.set(n);i.toArray(r,12);i.toArray(r,15);this.geometry.attributes.color.needsUpdate=true;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class ShapePath{constructor(){this.type=\"ShapePath\";this.color=new Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){this.currentPath=new Path;this.subPaths.push(this.currentPath);this.currentPath.moveTo(t,e);return this}lineTo(t,e){this.currentPath.lineTo(t,e);return this}quadraticCurveTo(t,e,n,i){this.currentPath.quadraticCurveTo(t,e,n,i);return this}bezierCurveTo(t,e,n,i,r,s){this.currentPath.bezierCurveTo(t,e,n,i,r,s);return this}splineThru(t){this.currentPath.splineThru(t);return this}toShapes(t){function toShapesNoHoles(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];const r=new Shape;r.curves=i.curves;e.push(r)}return e}function isPointInsidePolygon(t,e){const n=e.length;let i=false;for(let r=n-1,s=0;s<n;r=s++){let n=e[r];let a=e[s];let o=a.x-n.x;let l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0){n=e[s];o=-o;a=e[r];l=-l}if(t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return true}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(e===0)return true;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return true}}return i}const e=ShapeUtils.isClockWise;const n=this.subPaths;if(n.length===0)return[];let i,r,s;const a=[];if(n.length===1){r=n[0];s=new Shape;s.curves=r.curves;a.push(s);return a}let o=!e(n[0].getPoints());o=t?!o:o;const l=[];const c=[];let h=[];let u=0;let d;c[u]=void 0;h[u]=[];for(let s=0,a=n.length;s<a;s++){r=n[s];d=r.getPoints();i=e(d);i=t?!i:i;if(i){!o&&c[u]&&u++;c[u]={s:new Shape,p:d};c[u].s.curves=r.curves;o&&u++;h[u]=[]}else h[u].push({h:r,p:d[0]})}if(!c[0])return toShapesNoHoles(n);if(c.length>1){let t=false;let e=0;for(let t=0,e=c.length;t<e;t++)l[t]=[];for(let n=0,i=c.length;n<i;n++){const i=h[n];for(let r=0;r<i.length;r++){const s=i[r];let a=true;for(let i=0;i<c.length;i++)if(isPointInsidePolygon(s.p,c[i].p)){n!==i&&e++;if(a){a=false;l[i].push(s)}else t=true}a&&l[n].push(s)}}e>0&&t===false&&(h=l)}let p;for(let t=0,e=c.length;t<e;t++){s=c[t].s;a.push(s);p=h[t];for(let t=0,e=p.length;t<e;t++)s.holes.push(p[t].h)}return a}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.');super(t,e,{...i,count:n});this.isWebGLMultipleRenderTargets=true}get texture(){return this.textures}}typeof __THREE_DEVTOOLS__!==\"undefined\"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:t}}));typeof window!==\"undefined\"&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=t);export{nt as ACESFilmicToneMapping,M as AddEquation,J as AddOperation,ze as AdditiveAnimationBlendMode,g as AdditiveBlending,rt as AgXToneMapping,Ft as AlphaFormat,An as AlwaysCompare,k as AlwaysDepth,xn as AlwaysStencilFunc,AmbientLight,AnimationAction,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,Hc as AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,at as AttachedBindMode,Audio,AudioAnalyser,AudioContext,AudioListener,AudioLoader,AxesHelper,d as BackSide,We as BasicDepthPacking,o as BasicShadowMap,BatchedMesh,Bone,BooleanKeyframeTrack,Box2,Box3,Box3Helper,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,Ct as ByteType,Wc as Cache,Camera,CameraHelper,CanvasTexture,CapsuleGeometry,CatmullRomCurve3,et as CineonToneMapping,CircleGeometry,mt as ClampToEdgeWrapping,Clock,Color,ColorKeyframeTrack,$n as ColorManagement,CompressedArrayTexture,CompressedCubeTexture,CompressedTexture,CompressedTextureLoader,ConeGeometry,F as ConstantAlphaFactor,O as ConstantColorFactor,CubeCamera,ct as CubeReflectionMapping,ht as CubeRefractionMapping,CubeTexture,CubeTextureLoader,pt as CubeUVReflectionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,r as CullFaceBack,s as CullFaceFront,a as CullFaceFrontBack,i as CullFaceNone,Curve,CurvePath,y as CustomBlending,it as CustomToneMapping,CylinderGeometry,Cylindrical,Data3DTexture,DataArrayTexture,DataTexture,DataTextureLoader,fr as DataUtils,ln as DecrementStencilOp,hn as DecrementWrapStencilOp,Xc as DefaultLoadingManager,Wt as DepthFormat,Xt as DepthStencilFormat,DepthTexture,ot as DetachedBindMode,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,Je as DisplayP3ColorSpace,DodecahedronGeometry,p as DoubleSide,I as DstAlphaFactor,D as DstColorFactor,Nn as DynamicCopyUsage,Rn as DynamicDrawUsage,In as DynamicReadUsage,EdgesGeometry,EllipseCurve,Sn as EqualCompare,X as EqualDepth,fn as EqualStencilFunc,ut as EquirectangularReflectionMapping,dt as EquirectangularRefractionMapping,Euler,EventDispatcher,ExtrudeGeometry,FileLoader,Float16BufferAttribute,Float32BufferAttribute,Ut as FloatType,Fog,FogExp2,FramebufferTexture,u as FrontSide,Frustum,GLBufferAttribute,On as GLSL1,Vn as GLSL3,Tn as GreaterCompare,q as GreaterDepth,En as GreaterEqualCompare,j as GreaterEqualDepth,_n as GreaterEqualStencilFunc,gn as GreaterStencilFunc,GridHelper,Group,Dt as HalfFloatType,HemisphereLight,HemisphereLightHelper,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,on as IncrementStencilOp,cn as IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16BufferAttribute,Int32BufferAttribute,Int8BufferAttribute,Lt as IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,Ue as InterpolateDiscrete,De as InterpolateLinear,Ne as InterpolateSmooth,un as InvertStencilOp,sn as KeepStencilOp,KeyframeTrack,LOD,LatheGeometry,Layers,Mn as LessCompare,H as LessDepth,bn as LessEqualCompare,W as LessEqualDepth,mn as LessEqualStencilFunc,pn as LessStencilFunc,Light,LightProbe,Line,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,LineSegments,Qe as LinearDisplayP3ColorSpace,St as LinearFilter,LinearInterpolant,Et as LinearMipMapLinearFilter,Tt as LinearMipMapNearestFilter,wt as LinearMipmapLinearFilter,bt as LinearMipmapNearestFilter,Ze as LinearSRGBColorSpace,$ as LinearToneMapping,$e as LinearTransfer,Loader,LoaderUtils,LoadingManager,Pe as LoopOnce,Ie as LoopPingPong,Le as LoopRepeat,Ht as LuminanceAlphaFormat,kt as LuminanceFormat,e as MOUSE,Material,MaterialLoader,Xn as MathUtils,Matrix3,Matrix4,w as MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,T as MinEquation,gt as MirroredRepeatWrapping,Z as MixOperation,x as MultiplyBlending,K as MultiplyOperation,vt as NearestFilter,Mt as NearestMipMapLinearFilter,xt as NearestMipMapNearestFilter,yt as NearestMipmapLinearFilter,_t as NearestMipmapNearestFilter,st as NeutralToneMapping,yn as NeverCompare,G as NeverDepth,dn as NeverStencilFunc,f as NoBlending,Ye as NoColorSpace,Q as NoToneMapping,Fe as NormalAnimationBlendMode,m as NormalBlending,wn as NotEqualCompare,Y as NotEqualDepth,vn as NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,qe as ObjectSpaceNormalMap,OctahedronGeometry,A as OneFactor,z as OneMinusConstantAlphaFactor,V as OneMinusConstantColorFactor,U as OneMinusDstAlphaFactor,N as OneMinusDstColorFactor,L as OneMinusSrcAlphaFactor,R as OneMinusSrcColorFactor,OrthographicCamera,nn as P3Primaries,l as PCFShadowMap,c as PCFSoftShadowMap,PMREMGenerator,Path,PerspectiveCamera,Plane,PlaneGeometry,PlaneHelper,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,Ce as RED_GREEN_RGTC2_Format,Ee as RED_RGTC1_Format,t as REVISION,Xe as RGBADepthPacking,Gt as RGBAFormat,Jt as RGBAIntegerFormat,ye as RGBA_ASTC_10x10_Format,ve as RGBA_ASTC_10x5_Format,_e as RGBA_ASTC_10x6_Format,xe as RGBA_ASTC_10x8_Format,Me as RGBA_ASTC_12x10_Format,Se as RGBA_ASTC_12x12_Format,ce as RGBA_ASTC_4x4_Format,he as RGBA_ASTC_5x4_Format,ue as RGBA_ASTC_5x5_Format,de as RGBA_ASTC_6x5_Format,pe as RGBA_ASTC_6x6_Format,fe as RGBA_ASTC_8x5_Format,me as RGBA_ASTC_8x6_Format,ge as RGBA_ASTC_8x8_Format,be as RGBA_BPTC_Format,le as RGBA_ETC2_EAC_Format,se as RGBA_PVRTC_2BPPV1_Format,re as RGBA_PVRTC_4BPPV1_Format,$t as RGBA_S3TC_DXT1_Format,te as RGBA_S3TC_DXT3_Format,ee as RGBA_S3TC_DXT5_Format,zt as RGBFormat,Zt as RGBIntegerFormat,Te as RGB_BPTC_SIGNED_Format,we as RGB_BPTC_UNSIGNED_Format,ae as RGB_ETC1_Format,oe as RGB_ETC2_Format,ie as RGB_PVRTC_2BPPV1_Format,ne as RGB_PVRTC_4BPPV1_Format,Qt as RGB_S3TC_DXT1_Format,Yt as RGFormat,Kt as RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,en as Rec709Primaries,RectAreaLight,jt as RedFormat,qt as RedIntegerFormat,tt as ReinhardToneMapping,RenderTarget,ft as RepeatWrapping,an as ReplaceStencilOp,b as ReverseSubtractEquation,RingGeometry,Re as SIGNED_RED_GREEN_RGTC2_Format,Ae as SIGNED_RED_RGTC1_Format,Ke as SRGBColorSpace,tn as SRGBTransfer,Scene,Do as ShaderChunk,Bo as ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeGeometry,ShapePath,ShapeUtils,Rt as ShortType,Skeleton,SkeletonHelper,SkinnedMesh,Source,Sphere,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,P as SrcAlphaFactor,B as SrcAlphaSaturateFactor,C as SrcColorFactor,Dn as StaticCopyUsage,Cn as StaticDrawUsage,Ln as StaticReadUsage,StereoCamera,Bn as StreamCopyUsage,Pn as StreamDrawUsage,Un as StreamReadUsage,StringKeyframeTrack,S as SubtractEquation,_ as SubtractiveBlending,n as TOUCH,je as TangentSpaceNormalMap,TetrahedronGeometry,Texture,TextureLoader,_l as TextureUtils,TorusGeometry,TorusKnotGeometry,Triangle,He as TriangleFanDrawMode,ke as TriangleStripDrawMode,Ge as TrianglesDrawMode,TubeGeometry,lt as UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,Uint8BufferAttribute,Uint8ClampedBufferAttribute,Uniform,UniformsGroup,No as UniformsLib,Gr as UniformsUtils,At as UnsignedByteType,Ot as UnsignedInt248Type,Vt as UnsignedInt5999Type,It as UnsignedIntType,Nt as UnsignedShort4444Type,Bt as UnsignedShort5551Type,Pt as UnsignedShortType,h as VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,VideoTexture,WebGL3DRenderTarget,WebGLArrayRenderTarget,Fn as WebGLCoordinateSystem,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLRenderTarget,WebGLRenderer,WebGLUtils,zn as WebGPUCoordinateSystem,WireframeGeometry,Ve as WrapAroundEnding,Be as ZeroCurvatureEnding,E as ZeroFactor,Oe as ZeroSlopeEnding,rn as ZeroStencilOp,createCanvasElement};\n//# sourceMappingURL=three.module.js.map\n", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import*as THREE from\"three\";const vertexShader=`\n  varying vec2 vUv;\n  void main() {\n    vUv = uv;\n    gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n  }\n`;const fragmentShader=`\n  #ifdef GL_ES\n  precision mediump float;\n  #endif\n\n  uniform vec2 iResolution;\n  uniform float iTime;\n  uniform vec3 iColor;\n  uniform float iGlow;\n  uniform float iLayer;\n  uniform float iSize;\n  uniform vec3 iBackgroundColor;\n\n  #define t iTime\n  mat2 m(float a) {\n    float c = cos(a), s = sin(a);\n    return mat2(c, -s, s, c);\n  }\n\n  float map(vec3 p) {\n    p.xz *= m(t * 0.4);\n    p.xy *= m(t * 0.3);\n    vec3 q = p * 2.0 + t;\n    return length(p + vec3(sin(t * 0.7))) * log(length(p) / iSize) + sin(q.x + sin(q.z + sin(q.y))) * 0.5 - 2.0;\n  }\n\n  void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n    vec2 p = fragCoord.xy / iResolution.y - vec2(1, 1);\n    vec3 cl = iBackgroundColor;\n    float d = 2.5;\n    for (int i = 0; i <= int(iLayer); i++) {\n      vec3 p = vec3(0.0, 0.0, 5.0) + normalize(vec3(p, -1.0)) * d;\n      float rz = map(p);\n      float f = clamp((rz - map(p + 0.1)) * 0.7, -0.1, 1.0);\n      vec3 l = (iColor/3.0) + vec3(5.0, 2.5, 3.0) * f;\n      cl += smoothstep(iGlow, 0.0, rz) * 0.2 * l;\n      d += min(rz, 1.0);\n    }\n    fragColor = vec4(cl, 1.0);\n  }\n\n  void main() {\n    mainImage(gl_FragColor, gl_FragCoord.xy);\n  }\n`;const useShader=(shader,containerRef,color,backgroundColor,speed,glow,layers,size)=>{useEffect(()=>{const container=containerRef.current;if(!container)return;const width=container.clientWidth;const height=container.clientHeight;const scene=new THREE.Scene;const camera=new THREE.OrthographicCamera(-1,1,1,-1,.1,10);camera.position.z=1;const renderer=new THREE.WebGLRenderer({alpha:true});renderer.setSize(width,height);renderer.setPixelRatio(window.devicePixelRatio);container.appendChild(renderer.domElement);const uniforms={iResolution:{value:new THREE.Vector2(width,height)},iTime:{value:0},iColor:{value:new THREE.Color(color)},iBackgroundColor:{value:new THREE.Color(backgroundColor)},iGlow:{value:glow},iLayer:{value:layers},iSize:{value:size}};const material=new THREE.ShaderMaterial({uniforms:uniforms,vertexShader:shader.vertex,fragmentShader:shader.fragment,transparent:true});const plane=new THREE.PlaneGeometry(2,2);const mesh=new THREE.Mesh(plane,material);scene.add(mesh);const clock=new THREE.Clock;const animate=()=>{requestAnimationFrame(animate);uniforms.iTime.value+=clock.getDelta()*speed;renderer.render(scene,camera);};animate();const handleResize=()=>{const newWidth=container.clientWidth;const newHeight=container.clientHeight;renderer.setSize(newWidth,newHeight);uniforms.iResolution.value.set(newWidth,newHeight);};const resizeObserver=new ResizeObserver(handleResize);resizeObserver.observe(container);return()=>{resizeObserver.disconnect();if(container){container.removeChild(renderer.domElement);}};},[shader,color,backgroundColor,speed,glow,layers,size]);};/**\n * Plasma Shader\n * Converted By Maharram Hasanli\n * Made By nimitz\n * Source: https://www.shadertoy.com/view/MsjSW3\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * MIT License\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */export default function Plasma(props){const containerRef=useRef(null);useShader({vertex:vertexShader,fragment:fragmentShader},containerRef,props.color,props.background,props.speed,props.glow,props.layer,props.size);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\"}});}Plasma.defaultProps={color:\"#ff0000\",background:\"#000000\",speed:1,glow:2.5,layers:5,size:.5};addPropertyControls(Plasma,{color:{type:ControlType.Color,title:\"Color\"},background:{type:ControlType.Color,title:\"Background Color\"},speed:{type:ControlType.Number,title:\"Speed\",min:.1,max:10,step:.1,defaultValue:1},glow:{type:ControlType.Number,title:\"Glow amount\",min:.01,max:5,step:.01,defaultValue:2.5},layer:{type:ControlType.Number,title:\"Layers\",min:.1,max:15,step:.1,defaultValue:5},size:{type:ControlType.Number,title:\"Size\",min:.1,max:2,step:.01,defaultValue:.5}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Plasma\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Plasma.map", "// Generated by Framer (e39ee10)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FR;InterDisplay\",\"FR;InterDisplay-Bold\",\"FR;InterDisplay-BoldItalic\",\"FR;InterDisplay-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/2uIBiALfCHVpWbHqRMZutfT7giU.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Zwfz6xbVe5pmcWRJRgBDHnMkOkI.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/U9LaDDmbRhzX3sB8g8glTy5feTE.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tVew2LzXJ1t7QfxP1gdTIdj2o0g.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DF7bjCRmStYPqSb945lAlMfCCVQ.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/nCpxWS6DaPlPe0lHzStXAPCo3lw.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/vebZUMjGyKkYsfcY73iwWTzLNag.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/I11LrmuBDQZweplJ62KkVsklU5Y.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/UjFZPDy3qGuDktQM4q9CxhKfIa8.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/8exwVHJy2DhJ4N5prYlVMrEKmQ.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/UTeedEK21hO5jDxEUldzdScUqpg.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/Ig8B8nzy11hzIWEIYnkg91sofjo.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/n9CXKI3tsmCPeC6MCT9NziShSuQ.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/qctQFoJqJ9aIbRSIp0AhCQpFxn8.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/fXvVh2JeZlehNcEhKHpHH0frSl0.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/7pScaNeb6M7n2HF2jKemDqzCIr4.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/qS4UjQYyATcVV9rODk0Zx9KhkY8.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/VfD2n20yM7v0hrUEBHEyafsmMBY.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/4oIO9fB59bn3cKFWz7piCj28z9s.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/TBccIZR9kIpkRce5i9ATfPp7a4.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/F5Lmfd3fCAu7TwiYbI4DLWw4ks.woff2\",weight:\"700\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/THWAFHoAcmqLMy81E8hCSdziVKA.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/sQxGYWDlRkDr0eOKqiNRl6g5rs.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NNTAT1XAm8ZRkr824inYPkjNeL4.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/P2qr9PAWBt905929rHfxmneMUG0.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/2BmSa4TZZvFKAZg2DydxTbvKlTU.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/djqIk3Er2JcAcz7Rup88BdINEw.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/KMFW46iYsEZaUBwXbwPc9nQm71o.woff2\",weight:\"400\"}]}];export const css=['.framer-CjEv1 .framer-styles-preset-1nu4r2j:not(.rich-text-wrapper), .framer-CjEv1 .framer-styles-preset-1nu4r2j.rich-text-wrapper p { --framer-font-family: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-bold: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-italic: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 140%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-3ecf9004-c795-4969-8dc2-46e9a5f93615, #d6d6d6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1439px) and (min-width: 810px) { .framer-CjEv1 .framer-styles-preset-1nu4r2j:not(.rich-text-wrapper), .framer-CjEv1 .framer-styles-preset-1nu4r2j.rich-text-wrapper p { --framer-font-family: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-bold: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-italic: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 140%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-3ecf9004-c795-4969-8dc2-46e9a5f93615, #d6d6d6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-CjEv1 .framer-styles-preset-1nu4r2j:not(.rich-text-wrapper), .framer-CjEv1 .framer-styles-preset-1nu4r2j.rich-text-wrapper p { --framer-font-family: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-bold: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-family-italic: \"Inter Display\", \"Inter Display Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 140%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-3ecf9004-c795-4969-8dc2-46e9a5f93615, #d6d6d6); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-CjEv1\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "// Generated by Framer (47ebf4a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={AyyPsEMNQ:{hover:true},hDWzKCGyS:{hover:true}};const cycleOrder=[\"hDWzKCGyS\",\"AyyPsEMNQ\"];const serializationHash=\"framer-yFDzl\";const variantClassNames={AyyPsEMNQ:\"framer-v-r02kpb\",hDWzKCGyS:\"framer-v-4v9ysa\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Main Button\":\"hDWzKCGyS\",\"Subscribe Button\":\"AyyPsEMNQ\"};const getProps=({height,id,title,width,...props})=>{return{...props,Fiu8QoOmF:title??props.Fiu8QoOmF??\"Request a Strategy Call\",variant:humanReadableVariantMap[props.variant]??props.variant??\"hDWzKCGyS\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,Fiu8QoOmF,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"hDWzKCGyS\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"AyyPsEMNQ-hover\")return false;if(baseVariant===\"AyyPsEMNQ\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:\"https://tally.so/r/mRjkvv\",motionChild:true,nodeId:\"hDWzKCGyS\",openInNewTab:true,scopeId:\"ZzFqlwOYd\",...addPropertyOverrides({AyyPsEMNQ:{href:\"https://calendar.app.google/aSq9n4cmQRb1L78C8\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-4v9ysa\",className,classNames)} framer-m7tx7x`,\"data-framer-name\":\"Main Button\",layoutDependency:layoutDependency,layoutId:\"hDWzKCGyS\",ref:refBinding,style:{...style},...addPropertyOverrides({\"AyyPsEMNQ-hover\":{\"data-framer-name\":undefined},\"hDWzKCGyS-hover\":{\"data-framer-name\":undefined},AyyPsEMNQ:{\"data-framer-name\":\"Subscribe Button\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1kapjau\",\"data-framer-name\":\"Button\",layoutDependency:layoutDependency,layoutId:\"AbbfNMncR\",style:{backgroundColor:\"rgb(59, 59, 59)\",borderBottomLeftRadius:11.5,borderBottomRightRadius:11.5,borderTopLeftRadius:11.5,borderTopRightRadius:11.5},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2alerf\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"yPsBeM1S6\",style:{backgroundColor:\"var(--token-4afc5ccf-bc51-4b9c-8168-fdeed00f09c1, rgb(12, 12, 12))\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-tggvgh\",\"data-framer-name\":\"Black\",layoutDependency:layoutDependency,layoutId:\"c7ja7bTrr\",style:{backgroundColor:\"rgb(0, 0, 0)\",filter:\"blur(5px)\",rotate:-30,WebkitFilter:\"blur(5px)\"}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ly5x9j\",\"data-framer-name\":\"Glow\",layoutDependency:layoutDependency,layoutId:\"THtqXlRKv\",style:{background:\"radial-gradient(50% 50% at 50% 50%, rgb(251, 155, 3) 0%, rgba(0, 0, 0, 0) 100%)\",borderBottomLeftRadius:999,borderBottomRightRadius:999,borderTopLeftRadius:999,borderTopRightRadius:999,filter:\"blur(10px)\",opacity:.41,WebkitFilter:\"blur(10px)\"},variants:{\"hDWzKCGyS-hover\":{opacity:.35}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-fwb147\",\"data-framer-name\":\"Glow\",layoutDependency:layoutDependency,layoutId:\"Y15dkQG2I\",style:{background:\"radial-gradient(50% 50% at 50% 50%, rgb(115, 115, 115) 0%, rgba(0, 0, 0, 0) 100%)\",borderBottomLeftRadius:999,borderBottomRightRadius:999,borderTopLeftRadius:999,borderTopRightRadius:999,filter:\"blur(10px)\",WebkitFilter:\"blur(10px)\"},variants:{\"hDWzKCGyS-hover\":{background:\"radial-gradient(50% 50% at 50% 50%, rgb(194, 194, 194) 0%, rgba(0, 0, 0, 0) 100%)\"}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-193va9v\",layoutDependency:layoutDependency,layoutId:\"WK9EF0Y87\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"RlI7SW50ZXJEaXNwbGF5\",\"--framer-font-family\":'\"Inter Display\", \"Inter Display Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Book a Call\"})}),className:\"framer-1v1gruv\",fonts:[\"FR;InterDisplay\"],layoutDependency:layoutDependency,layoutId:\"z8AcW3Gw6\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:Fiu8QoOmF,verticalAlignment:\"top\",withExternalLayout:true})})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-jembzp\",\"data-framer-name\":\"White Top\",layoutDependency:layoutDependency,layoutId:\"QbPS3e8U4\",style:{backgroundColor:\"rgb(167, 2, 204)\",filter:\"blur(8px)\",WebkitFilter:\"blur(8px)\"}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-8xw1m1\",\"data-framer-name\":\"Deep Blue\",layoutDependency:layoutDependency,layoutId:\"qTniuFp8Z\",style:{backgroundColor:\"rgb(252, 91, 47)\",filter:\"blur(8px)\",WebkitFilter:\"blur(8px)\"}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-avxnhg\",\"data-framer-name\":\"Light Blue\",layoutDependency:layoutDependency,layoutId:\"f23J8OtpA\",style:{backgroundColor:\"rgb(251, 155, 3)\",filter:\"blur(8px)\",WebkitFilter:\"blur(8px)\"}})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-arx4pf\",\"data-framer-name\":\"Glow\",layoutDependency:layoutDependency,layoutId:\"kc0kuVRYq\",style:{background:\"radial-gradient(50% 50% at 50% 50%, rgb(251, 155, 3) 0%, rgba(0, 0, 0, 0) 100%)\",borderBottomLeftRadius:999,borderBottomRightRadius:999,borderTopLeftRadius:999,borderTopRightRadius:999,filter:\"blur(10px)\",WebkitFilter:\"blur(10px)\"}}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-ylrl6j\",\"data-framer-name\":\"Glow\",layoutDependency:layoutDependency,layoutId:\"Rt7QBI70i\",style:{background:\"radial-gradient(50% 50% at 50% 50%, rgb(255, 255, 255) 0%, rgba(0, 0, 0, 0) 100%)\",borderBottomLeftRadius:21,borderBottomRightRadius:21,borderTopLeftRadius:21,borderTopRightRadius:21,filter:\"blur(10px)\",opacity:.62,WebkitFilter:\"blur(10px)\"}})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-yFDzl.framer-m7tx7x, .framer-yFDzl .framer-m7tx7x { display: block; }\",\".framer-yFDzl.framer-4v9ysa { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-yFDzl .framer-1kapjau { align-content: center; align-items: center; align-self: stretch; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 1.5px; position: relative; width: auto; will-change: var(--framer-will-change-override, transform); z-index: 2; }\",\".framer-yFDzl .framer-2alerf { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 7px 18px 9px 18px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); z-index: 4; }\",\".framer-yFDzl .framer-tggvgh { flex: none; height: 84px; left: calc(30.693069306930713% - 30px / 2); overflow: hidden; position: absolute; top: calc(51.21951219512197% - 84px / 2); width: 30px; z-index: 1; }\",\".framer-yFDzl .framer-1ly5x9j { flex: none; height: 39px; left: calc(1.5444015444015666% - 75px / 2); overflow: hidden; position: absolute; top: calc(90.66666666666669% - 39px / 2); width: 75px; will-change: var(--framer-will-change-override, transform); z-index: 1; }\",\".framer-yFDzl .framer-fwb147 { flex: none; height: 42px; left: calc(74.90347490347492% - 95px / 2); overflow: hidden; position: absolute; top: calc(2.220446049250313e-14% - 42px / 2); width: 95px; will-change: var(--framer-will-change-override, transform); z-index: 1; }\",\".framer-yFDzl .framer-193va9v { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; z-index: 2; }\",\".framer-yFDzl .framer-1v1gruv { -webkit-user-select: none; flex: none; height: auto; pointer-events: none; position: relative; user-select: none; white-space: pre; width: auto; z-index: 1; }\",\".framer-yFDzl .framer-jembzp { flex: none; height: 36px; overflow: hidden; position: absolute; right: -17px; top: -19px; width: 95px; z-index: 1; }\",\".framer-yFDzl .framer-8xw1m1 { bottom: -18px; flex: none; height: 46px; left: -22px; overflow: hidden; position: absolute; width: 54px; z-index: 1; }\",\".framer-yFDzl .framer-avxnhg { bottom: -17px; flex: none; height: 34px; left: -22px; overflow: hidden; position: absolute; width: 40px; z-index: 1; }\",\".framer-yFDzl .framer-arx4pf { flex: none; height: 29px; left: -11px; overflow: hidden; position: absolute; top: calc(83.95061728395063% - 29px / 2); width: 55px; will-change: var(--framer-will-change-override, transform); z-index: 1; }\",\".framer-yFDzl .framer-ylrl6j { flex: none; height: 41px; overflow: hidden; position: absolute; right: -12px; top: -7px; width: 73px; will-change: var(--framer-will-change-override, transform); z-index: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-yFDzl.framer-4v9ysa, .framer-yFDzl .framer-1kapjau, .framer-yFDzl .framer-2alerf, .framer-yFDzl .framer-193va9v { gap: 0px; } .framer-yFDzl.framer-4v9ysa > *, .framer-yFDzl .framer-1kapjau > *, .framer-yFDzl .framer-2alerf > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-yFDzl.framer-4v9ysa > :first-child, .framer-yFDzl .framer-1kapjau > :first-child, .framer-yFDzl .framer-2alerf > :first-child { margin-top: 0px; } .framer-yFDzl.framer-4v9ysa > :last-child, .framer-yFDzl .framer-1kapjau > :last-child, .framer-yFDzl .framer-2alerf > :last-child { margin-bottom: 0px; } .framer-yFDzl .framer-193va9v > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-yFDzl .framer-193va9v > :first-child { margin-left: 0px; } .framer-yFDzl .framer-193va9v > :last-child { margin-right: 0px; } }\",\".framer-yFDzl.framer-v-r02kpb.framer-4v9ysa { min-height: 41px; width: 338px; }\",\".framer-yFDzl.framer-v-4v9ysa.hover .framer-1kapjau { order: 0; }\",\".framer-yFDzl.framer-v-4v9ysa.hover .framer-fwb147 { overflow: visible; will-change: unset; }\",\".framer-yFDzl.framer-v-4v9ysa.hover .framer-8xw1m1 { bottom: -18px; height: 51px; width: 83px; }\",\".framer-yFDzl.framer-v-4v9ysa.hover .framer-avxnhg { bottom: -18px; height: 39px; width: 58px; }\",\".framer-yFDzl.framer-v-4v9ysa.hover .framer-arx4pf { order: 1; }\",\".framer-yFDzl.framer-v-4v9ysa.hover .framer-ylrl6j { order: 2; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 41\n * @framerIntrinsicWidth 222\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"AyyPsEMNQ\":{\"layout\":[\"fixed\",\"auto\"]},\"oL4AvjB3t\":{\"layout\":[\"auto\",\"auto\"]},\"sUX9Rpx5a\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"Fiu8QoOmF\":\"title\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZzFqlwOYd=withCSS(Component,css,\"framer-yFDzl\");export default FramerZzFqlwOYd;FramerZzFqlwOYd.displayName=\"Button\";FramerZzFqlwOYd.defaultProps={height:41,width:222};addPropertyControls(FramerZzFqlwOYd,{variant:{options:[\"hDWzKCGyS\",\"AyyPsEMNQ\"],optionTitles:[\"Main Button\",\"Subscribe Button\"],title:\"Variant\",type:ControlType.Enum},Fiu8QoOmF:{defaultValue:\"Request a Strategy Call\",displayTextArea:false,title:\"Title\",type:ControlType.String}});addFonts(FramerZzFqlwOYd,[{explicitInter:true,fonts:[{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/2uIBiALfCHVpWbHqRMZutfT7giU.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Zwfz6xbVe5pmcWRJRgBDHnMkOkI.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/U9LaDDmbRhzX3sB8g8glTy5feTE.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tVew2LzXJ1t7QfxP1gdTIdj2o0g.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DF7bjCRmStYPqSb945lAlMfCCVQ.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/nCpxWS6DaPlPe0lHzStXAPCo3lw.woff2\",weight:\"400\"},{family:\"Inter Display\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/vebZUMjGyKkYsfcY73iwWTzLNag.woff2\",weight:\"400\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZzFqlwOYd\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"41\",\"framerIntrinsicWidth\":\"222\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"AyyPsEMNQ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"oL4AvjB3t\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"sUX9Rpx5a\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"Fiu8QoOmF\\\":\\\"title\\\"}\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ZzFqlwOYd.map", "import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here \u2014 there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map", "import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map", "import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map", "import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map", "import{MotionValue}from\"framer\";// Basic MotionValue check\nexport const isMotionValue=v=>v instanceof MotionValue;\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./isMotionValue.map", "import{useCallback,useEffect,useRef}from\"react\";import{motionValue,animate,RenderTarget}from\"framer\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";export function useAutoMotionValue(inputValue,options){// Put options on a local ref\n// Might wanna just memo instead but it works for now\nconst optionsRef=useRef(options);const animation=useRef();const didInitialMount=useRef(false);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;// in-progress - trying to figure out effect hooks\nconst onChangeDeps=(options===null||options===void 0?void 0:options.onChangeDeps)?options.onChangeDeps:[];// Memoize the onChange handler\nconst onChange=useCallback(options===null||options===void 0?void 0:options.onChange,[...onChangeDeps,]);// Optionally scale the value from props\nconst transformer=useCallback(value=>{var ref;return((ref=optionsRef.current)===null||ref===void 0?void 0:ref.transform)?optionsRef.current.transform(value):value;},[]);// Create new MotionValue from inputValue\nconst value1=useConstant(()=>isMotionValue(inputValue)?inputValue:motionValue(transformer(inputValue)));// Setting value from prop change\nuseEffect(()=>{if(!isMotionValue(inputValue)&&didInitialMount.current){var ref,ref1;const newValue=transformer(inputValue);(ref=animation.current)===null||ref===void 0?void 0:ref.stop();// Call change callback\nif(onChange)onChange(newValue,value1);// Trigger animation to new value\nif(((ref1=optionsRef.current)===null||ref1===void 0?void 0:ref1.animate)&&!isOnCanvas){var ref2;// @ts-ignore\nanimation.current=animate(value1,newValue,(ref2=optionsRef.current)===null||ref2===void 0?void 0:ref2.transition);}else{value1.set(newValue);}}didInitialMount.current=true;},[inputValue,...onChangeDeps]);return value1;}\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useAutoMotionValue.map", "var _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nvar exports = {};\ntypeof navigator !== \"undefined\" && function (root, factory) {\n  if (exports) {\n    exports = factory(root);\n  } else {\n    root.lottie = factory(root);\n    root.bodymovin = root.lottie;\n  }\n}(window || {}, function (window) {\n  /* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\n  expressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix */\n\n  /* exported locationHref, subframeEnabled, expressionsPlugin */\n  'use strict';\n  /* exported svgNS, locationHref, initialDefaultFrame */\n\n  var svgNS = \"http://www.w3.org/2000/svg\";\n  var locationHref = \"\";\n  var initialDefaultFrame = -999999;\n  /* global createSizedArray */\n\n  /* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\n  defaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\n  BMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\n  addSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\n\n  var subframeEnabled = true;\n  var expressionsPlugin;\n  var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n  var cachedColors = {};\n  var bmRnd;\n  var bmPow = Math.pow;\n  var bmSqrt = Math.sqrt;\n  var bmFloor = Math.floor;\n  var bmMax = Math.max;\n  var bmMin = Math.min;\n  var BMMath = {};\n\n  (function () {\n    var propertyNames = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\n    var i;\n    var len = propertyNames.length;\n\n    for (i = 0; i < len; i += 1) {\n      BMMath[propertyNames[i]] = Math[propertyNames[i]];\n    }\n  })();\n\n  function ProjectInterface() {\n    return {};\n  }\n\n  BMMath.random = Math.random;\n\n  BMMath.abs = function (val) {\n    var tOfVal = typeof val;\n\n    if (tOfVal === \"object\" && val.length) {\n      var absArr = createSizedArray(val.length);\n      var i;\n      var len = val.length;\n\n      for (i = 0; i < len; i += 1) {\n        absArr[i] = Math.abs(val[i]);\n      }\n\n      return absArr;\n    }\n\n    return Math.abs(val);\n  };\n\n  var defaultCurveSegments = 150;\n  var degToRads = Math.PI / 180;\n  var roundCorner = 0.5519;\n\n  function roundValues(flag) {\n    if (flag) {\n      bmRnd = Math.round;\n    } else {\n      bmRnd = function (val) {\n        return val;\n      };\n    }\n  }\n\n  roundValues(false);\n\n  function styleDiv(element) {\n    element.style.position = \"absolute\";\n    element.style.top = 0;\n    element.style.left = 0;\n    element.style.display = \"block\";\n    element.style.transformOrigin = \"0 0\";\n    element.style.webkitTransformOrigin = \"0 0\";\n    element.style.backfaceVisibility = \"visible\";\n    element.style.webkitBackfaceVisibility = \"visible\";\n    element.style.transformStyle = \"preserve-3d\";\n    element.style.webkitTransformStyle = \"preserve-3d\";\n    element.style.mozTransformStyle = \"preserve-3d\";\n  }\n\n  function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentTime = currentTime;\n    (this || _global).totalTime = totalTime;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteEvent(type, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentLoop = currentLoop;\n    (this || _global).totalLoops = totalLoops;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n    (this || _global).type = type;\n    (this || _global).firstFrame = firstFrame;\n    (this || _global).totalFrames = totalFrames;\n  }\n\n  function BMDestroyEvent(type, target) {\n    (this || _global).type = type;\n    (this || _global).target = target;\n  }\n\n  function BMRenderFrameErrorEvent(nativeError, currentTime) {\n    (this || _global).type = \"renderFrameError\";\n    (this || _global).nativeError = nativeError;\n    (this || _global).currentTime = currentTime;\n  }\n\n  function BMConfigErrorEvent(nativeError) {\n    (this || _global).type = \"configError\";\n    (this || _global).nativeError = nativeError;\n  }\n\n  function BMAnimationConfigErrorEvent(type, nativeError) {\n    (this || _global).type = type;\n    (this || _global).nativeError = nativeError;\n  }\n\n  var createElementID = function () {\n    var _count = 0;\n    return function createID() {\n      _count += 1;\n      return \"__lottie_element_\" + _count;\n    };\n  }();\n\n  function HSVtoRGB(h, s, v) {\n    var r;\n    var g;\n    var b;\n    var i;\n    var f;\n    var p;\n    var q;\n    var t;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = v * (1 - s);\n    q = v * (1 - f * s);\n    t = v * (1 - (1 - f) * s);\n\n    switch (i % 6) {\n      case 0:\n        r = v;\n        g = t;\n        b = p;\n        break;\n\n      case 1:\n        r = q;\n        g = v;\n        b = p;\n        break;\n\n      case 2:\n        r = p;\n        g = v;\n        b = t;\n        break;\n\n      case 3:\n        r = p;\n        g = q;\n        b = v;\n        break;\n\n      case 4:\n        r = t;\n        g = p;\n        b = v;\n        break;\n\n      case 5:\n        r = v;\n        g = p;\n        b = q;\n        break;\n\n      default:\n        break;\n    }\n\n    return [r, g, b];\n  }\n\n  function RGBtoHSV(r, g, b) {\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var d = max - min;\n    var h;\n    var s = max === 0 ? 0 : d / max;\n    var v = max / 255;\n\n    switch (max) {\n      case min:\n        h = 0;\n        break;\n\n      case r:\n        h = g - b + d * (g < b ? 6 : 0);\n        h /= 6 * d;\n        break;\n\n      case g:\n        h = b - r + d * 2;\n        h /= 6 * d;\n        break;\n\n      case b:\n        h = r - g + d * 4;\n        h /= 6 * d;\n        break;\n\n      default:\n        break;\n    }\n\n    return [h, s, v];\n  }\n\n  function addSaturationToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[1] += offset;\n\n    if (hsv[1] > 1) {\n      hsv[1] = 1;\n    } else if (hsv[1] <= 0) {\n      hsv[1] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addBrightnessToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[2] += offset;\n\n    if (hsv[2] > 1) {\n      hsv[2] = 1;\n    } else if (hsv[2] < 0) {\n      hsv[2] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addHueToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[0] += offset / 360;\n\n    if (hsv[0] > 1) {\n      hsv[0] -= 1;\n    } else if (hsv[0] < 0) {\n      hsv[0] += 1;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  var rgbToHex = function () {\n    var colorMap = [];\n    var i;\n    var hex;\n\n    for (i = 0; i < 256; i += 1) {\n      hex = i.toString(16);\n      colorMap[i] = hex.length === 1 ? \"0\" + hex : hex;\n    }\n\n    return function (r, g, b) {\n      if (r < 0) {\n        r = 0;\n      }\n\n      if (g < 0) {\n        g = 0;\n      }\n\n      if (b < 0) {\n        b = 0;\n      }\n\n      return \"#\" + colorMap[r] + colorMap[g] + colorMap[b];\n    };\n  }();\n\n  function BaseEvent() {}\n\n  BaseEvent.prototype = {\n    triggerEvent: function (eventName, args) {\n      if ((this || _global)._cbs[eventName]) {\n        var len = (this || _global)._cbs[eventName].length;\n\n        for (var i = 0; i < len; i += 1) {\n          (this || _global)._cbs[eventName][i](args);\n        }\n      }\n    },\n    addEventListener: function (eventName, callback) {\n      if (!(this || _global)._cbs[eventName]) {\n        (this || _global)._cbs[eventName] = [];\n      }\n\n      (this || _global)._cbs[eventName].push(callback);\n\n      return function () {\n        this.removeEventListener(eventName, callback);\n      }.bind(this || _global);\n    },\n    removeEventListener: function (eventName, callback) {\n      if (!callback) {\n        (this || _global)._cbs[eventName] = null;\n      } else if ((this || _global)._cbs[eventName]) {\n        var i = 0;\n        var len = (this || _global)._cbs[eventName].length;\n\n        while (i < len) {\n          if ((this || _global)._cbs[eventName][i] === callback) {\n            (this || _global)._cbs[eventName].splice(i, 1);\n\n            i -= 1;\n            len -= 1;\n          }\n\n          i += 1;\n        }\n\n        if (!(this || _global)._cbs[eventName].length) {\n          (this || _global)._cbs[eventName] = null;\n        }\n      }\n    }\n  };\n  /* exported createTypedArray, createSizedArray */\n\n  var createTypedArray = function () {\n    function createRegularArray(type, len) {\n      var i = 0;\n      var arr = [];\n      var value;\n\n      switch (type) {\n        case \"int16\":\n        case \"uint8c\":\n          value = 1;\n          break;\n\n        default:\n          value = 1.1;\n          break;\n      }\n\n      for (i = 0; i < len; i += 1) {\n        arr.push(value);\n      }\n\n      return arr;\n    }\n\n    function createTypedArrayFactory(type, len) {\n      if (type === \"float32\") {\n        return new Float32Array(len);\n      }\n\n      if (type === \"int16\") {\n        return new Int16Array(len);\n      }\n\n      if (type === \"uint8c\") {\n        return new Uint8ClampedArray(len);\n      }\n\n      return createRegularArray(type, len);\n    }\n\n    if (typeof Uint8ClampedArray === \"function\" && typeof Float32Array === \"function\") {\n      return createTypedArrayFactory;\n    }\n\n    return createRegularArray;\n  }();\n\n  function createSizedArray(len) {\n    return Array.apply(null, {\n      length: len\n    });\n  }\n  /* global svgNS */\n\n  /* exported createNS */\n\n\n  function createNS(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElementNS(svgNS, type);\n  }\n  /* exported createTag */\n\n\n  function createTag(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElement(type);\n  }\n\n  function DynamicPropertyContainer() {}\n\n  DynamicPropertyContainer.prototype = {\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n\n        (this || _global).container.addDynamicProperty(this || _global);\n\n        (this || _global)._isAnimated = true;\n      }\n    },\n    iterateDynamicProperties: function () {\n      (this || _global)._mdf = false;\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).dynamicProperties[i].getValue();\n\n        if ((this || _global).dynamicProperties[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    },\n    initDynamicPropertyContainer: function (container) {\n      (this || _global).container = container;\n      (this || _global).dynamicProperties = [];\n      (this || _global)._mdf = false;\n      (this || _global)._isAnimated = false;\n    }\n  };\n  /* exported getBlendMode */\n\n  var getBlendMode = function () {\n    var blendModeEnums = {\n      0: \"source-over\",\n      1: \"multiply\",\n      2: \"screen\",\n      3: \"overlay\",\n      4: \"darken\",\n      5: \"lighten\",\n      6: \"color-dodge\",\n      7: \"color-burn\",\n      8: \"hard-light\",\n      9: \"soft-light\",\n      10: \"difference\",\n      11: \"exclusion\",\n      12: \"hue\",\n      13: \"saturation\",\n      14: \"color\",\n      15: \"luminosity\"\n    };\n    return function (mode) {\n      return blendModeEnums[mode] || \"\";\n    };\n  }();\n  /* global createTypedArray */\n\n  /*!\r\n   Transformation Matrix v2.0\r\n   (c) Epistemex 2014-2015\r\n   www.epistemex.com\r\n   By Ken Fyrstenberg\r\n   Contributions by leeoniya.\r\n   License: MIT, header required.\r\n   */\n\n  /**\r\n   * 2D transformation matrix object initialized with identity matrix.\r\n   *\r\n   * The matrix can synchronize a canvas context by supplying the context\r\n   * as an argument, or later apply current absolute transform to an\r\n   * existing context.\r\n   *\r\n   * All values are handled as floating point values.\r\n   *\r\n   * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n   * @prop {number} a - scale x\r\n   * @prop {number} b - shear y\r\n   * @prop {number} c - shear x\r\n   * @prop {number} d - scale y\r\n   * @prop {number} e - translate x\r\n   * @prop {number} f - translate y\r\n   * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n   * @constructor\r\n   */\n\n\n  var Matrix = function () {\n    var _cos = Math.cos;\n    var _sin = Math.sin;\n    var _tan = Math.tan;\n    var _rnd = Math.round;\n\n    function reset() {\n      (this || _global).props[0] = 1;\n      (this || _global).props[1] = 0;\n      (this || _global).props[2] = 0;\n      (this || _global).props[3] = 0;\n      (this || _global).props[4] = 0;\n      (this || _global).props[5] = 1;\n      (this || _global).props[6] = 0;\n      (this || _global).props[7] = 0;\n      (this || _global).props[8] = 0;\n      (this || _global).props[9] = 0;\n      (this || _global).props[10] = 1;\n      (this || _global).props[11] = 0;\n      (this || _global).props[12] = 0;\n      (this || _global).props[13] = 0;\n      (this || _global).props[14] = 0;\n      (this || _global).props[15] = 1;\n      return this || _global;\n    }\n\n    function rotate(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function rotateX(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateY(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateZ(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function shear(sx, sy) {\n      return this._t(1, sy, sx, 1, 0, 0);\n    }\n\n    function skew(ax, ay) {\n      return this.shear(_tan(ax), _tan(ay));\n    }\n\n    function skewFromAxis(ax, angle) {\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n    }\n\n    function scale(sx, sy, sz) {\n      if (!sz && sz !== 0) {\n        sz = 1;\n      }\n\n      if (sx === 1 && sy === 1 && sz === 1) {\n        return this || _global;\n      }\n\n      return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n    }\n\n    function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n      (this || _global).props[0] = a;\n      (this || _global).props[1] = b;\n      (this || _global).props[2] = c;\n      (this || _global).props[3] = d;\n      (this || _global).props[4] = e;\n      (this || _global).props[5] = f;\n      (this || _global).props[6] = g;\n      (this || _global).props[7] = h;\n      (this || _global).props[8] = i;\n      (this || _global).props[9] = j;\n      (this || _global).props[10] = k;\n      (this || _global).props[11] = l;\n      (this || _global).props[12] = m;\n      (this || _global).props[13] = n;\n      (this || _global).props[14] = o;\n      (this || _global).props[15] = p;\n      return this || _global;\n    }\n\n    function translate(tx, ty, tz) {\n      tz = tz || 0;\n\n      if (tx !== 0 || ty !== 0 || tz !== 0) {\n        return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n      }\n\n      return this || _global;\n    }\n\n    function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n      var _p = (this || _global).props;\n\n      if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n        // NOTE: commenting this condition because TurboFan deoptimizes code when present\n        // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n        _p[12] = _p[12] * a2 + _p[15] * m2;\n        _p[13] = _p[13] * f2 + _p[15] * n2;\n        _p[14] = _p[14] * k2 + _p[15] * o2;\n        _p[15] *= p2; // }\n\n        (this || _global)._identityCalculated = false;\n        return this || _global;\n      }\n\n      var a1 = _p[0];\n      var b1 = _p[1];\n      var c1 = _p[2];\n      var d1 = _p[3];\n      var e1 = _p[4];\n      var f1 = _p[5];\n      var g1 = _p[6];\n      var h1 = _p[7];\n      var i1 = _p[8];\n      var j1 = _p[9];\n      var k1 = _p[10];\n      var l1 = _p[11];\n      var m1 = _p[12];\n      var n1 = _p[13];\n      var o1 = _p[14];\n      var p1 = _p[15];\n      /* matrix order (canvas compatible):\r\n           * ace\r\n           * bdf\r\n           * 001\r\n           */\n\n      _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n      _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n      _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n      _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n      _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n      _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n      _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n      _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n      _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n      _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n      _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n      _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n      _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n      _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n      _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n      _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n      (this || _global)._identityCalculated = false;\n      return this || _global;\n    }\n\n    function isIdentity() {\n      if (!(this || _global)._identityCalculated) {\n        (this || _global)._identity = !((this || _global).props[0] !== 1 || (this || _global).props[1] !== 0 || (this || _global).props[2] !== 0 || (this || _global).props[3] !== 0 || (this || _global).props[4] !== 0 || (this || _global).props[5] !== 1 || (this || _global).props[6] !== 0 || (this || _global).props[7] !== 0 || (this || _global).props[8] !== 0 || (this || _global).props[9] !== 0 || (this || _global).props[10] !== 1 || (this || _global).props[11] !== 0 || (this || _global).props[12] !== 0 || (this || _global).props[13] !== 0 || (this || _global).props[14] !== 0 || (this || _global).props[15] !== 1);\n        (this || _global)._identityCalculated = true;\n      }\n\n      return (this || _global)._identity;\n    }\n\n    function equals(matr) {\n      var i = 0;\n\n      while (i < 16) {\n        if (matr.props[i] !== (this || _global).props[i]) {\n          return false;\n        }\n\n        i += 1;\n      }\n\n      return true;\n    }\n\n    function clone(matr) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        matr.props[i] = (this || _global).props[i];\n      }\n\n      return matr;\n    }\n\n    function cloneFromProps(props) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        (this || _global).props[i] = props[i];\n      }\n    }\n\n    function applyToPoint(x, y, z) {\n      return {\n        x: x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12],\n        y: x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13],\n        z: x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]\n      };\n      /* return {\r\n           x: x * me.a + y * me.c + me.e,\r\n           y: x * me.b + y * me.d + me.f\r\n           }; */\n    }\n\n    function applyToX(x, y, z) {\n      return x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12];\n    }\n\n    function applyToY(x, y, z) {\n      return x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13];\n    }\n\n    function applyToZ(x, y, z) {\n      return x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14];\n    }\n\n    function getInverseMatrix() {\n      var determinant = (this || _global).props[0] * (this || _global).props[5] - (this || _global).props[1] * (this || _global).props[4];\n      var a = (this || _global).props[5] / determinant;\n      var b = -(this || _global).props[1] / determinant;\n      var c = -(this || _global).props[4] / determinant;\n      var d = (this || _global).props[0] / determinant;\n      var e = ((this || _global).props[4] * (this || _global).props[13] - (this || _global).props[5] * (this || _global).props[12]) / determinant;\n      var f = -((this || _global).props[0] * (this || _global).props[13] - (this || _global).props[1] * (this || _global).props[12]) / determinant;\n      var inverseMatrix = new Matrix();\n      inverseMatrix.props[0] = a;\n      inverseMatrix.props[1] = b;\n      inverseMatrix.props[4] = c;\n      inverseMatrix.props[5] = d;\n      inverseMatrix.props[12] = e;\n      inverseMatrix.props[13] = f;\n      return inverseMatrix;\n    }\n\n    function inversePoint(pt) {\n      var inverseMatrix = this.getInverseMatrix();\n      return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n    }\n\n    function inversePoints(pts) {\n      var i;\n      var len = pts.length;\n      var retPts = [];\n\n      for (i = 0; i < len; i += 1) {\n        retPts[i] = inversePoint(pts[i]);\n      }\n\n      return retPts;\n    }\n\n    function applyToTriplePoints(pt1, pt2, pt3) {\n      var arr = createTypedArray(\"float32\", 6);\n\n      if (this.isIdentity()) {\n        arr[0] = pt1[0];\n        arr[1] = pt1[1];\n        arr[2] = pt2[0];\n        arr[3] = pt2[1];\n        arr[4] = pt3[0];\n        arr[5] = pt3[1];\n      } else {\n        var p0 = (this || _global).props[0];\n        var p1 = (this || _global).props[1];\n        var p4 = (this || _global).props[4];\n        var p5 = (this || _global).props[5];\n        var p12 = (this || _global).props[12];\n        var p13 = (this || _global).props[13];\n        arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n        arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n        arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n        arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n        arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n        arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n      }\n\n      return arr;\n    }\n\n    function applyToPointArray(x, y, z) {\n      var arr;\n\n      if (this.isIdentity()) {\n        arr = [x, y, z];\n      } else {\n        arr = [x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12], x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13], x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]];\n      }\n\n      return arr;\n    }\n\n    function applyToPointStringified(x, y) {\n      if (this.isIdentity()) {\n        return x + \",\" + y;\n      }\n\n      var _p = (this || _global).props;\n      return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + \",\" + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n    }\n\n    function toCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var i = 0;\n      var props = (this || _global).props;\n      var cssValue = \"matrix3d(\";\n      var v = 10000;\n\n      while (i < 16) {\n        cssValue += _rnd(props[i] * v) / v;\n        cssValue += i === 15 ? \")\" : \",\";\n        i += 1;\n      }\n\n      return cssValue;\n    }\n\n    function roundMatrixProperty(val) {\n      var v = 10000;\n\n      if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n        return _rnd(val * v) / v;\n      }\n\n      return val;\n    }\n\n    function to2dCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var props = (this || _global).props;\n\n      var _a = roundMatrixProperty(props[0]);\n\n      var _b = roundMatrixProperty(props[1]);\n\n      var _c = roundMatrixProperty(props[4]);\n\n      var _d = roundMatrixProperty(props[5]);\n\n      var _e = roundMatrixProperty(props[12]);\n\n      var _f = roundMatrixProperty(props[13]);\n\n      return \"matrix(\" + _a + \",\" + _b + \",\" + _c + \",\" + _d + \",\" + _e + \",\" + _f + \")\";\n    }\n\n    return function () {\n      (this || _global).reset = reset;\n      (this || _global).rotate = rotate;\n      (this || _global).rotateX = rotateX;\n      (this || _global).rotateY = rotateY;\n      (this || _global).rotateZ = rotateZ;\n      (this || _global).skew = skew;\n      (this || _global).skewFromAxis = skewFromAxis;\n      (this || _global).shear = shear;\n      (this || _global).scale = scale;\n      (this || _global).setTransform = setTransform;\n      (this || _global).translate = translate;\n      (this || _global).transform = transform;\n      (this || _global).applyToPoint = applyToPoint;\n      (this || _global).applyToX = applyToX;\n      (this || _global).applyToY = applyToY;\n      (this || _global).applyToZ = applyToZ;\n      (this || _global).applyToPointArray = applyToPointArray;\n      (this || _global).applyToTriplePoints = applyToTriplePoints;\n      (this || _global).applyToPointStringified = applyToPointStringified;\n      (this || _global).toCSS = toCSS;\n      (this || _global).to2dCSS = to2dCSS;\n      (this || _global).clone = clone;\n      (this || _global).cloneFromProps = cloneFromProps;\n      (this || _global).equals = equals;\n      (this || _global).inversePoints = inversePoints;\n      (this || _global).inversePoint = inversePoint;\n      (this || _global).getInverseMatrix = getInverseMatrix;\n      (this || _global)._t = (this || _global).transform;\n      (this || _global).isIdentity = isIdentity;\n      (this || _global)._identity = true;\n      (this || _global)._identityCalculated = false;\n      (this || _global).props = createTypedArray(\"float32\", 16);\n      this.reset();\n    };\n  }();\n  /* eslint-disable */\n\n  /*\r\n   Copyright 2014 David Bau.\r\n  \r\n   Permission is hereby granted, free of charge, to any person obtaining\r\n   a copy of this software and associated documentation files (the\r\n   \"Software\"), to deal in the Software without restriction, including\r\n   without limitation the rights to use, copy, modify, merge, publish,\r\n   distribute, sublicense, and/or sell copies of the Software, and to\r\n   permit persons to whom the Software is furnished to do so, subject to\r\n   the following conditions:\r\n  \r\n   The above copyright notice and this permission notice shall be\r\n   included in all copies or substantial portions of the Software.\r\n  \r\n   THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n  \r\n   */\n\n\n  (function (pool, math) {\n    //\n    // The following constants are related to IEEE 754 limits.\n    //\n    var global = this || _global,\n        width = 256,\n        // each RC4 output is 0 <= x < 256\n    chunks = 6,\n        // at least six RC4 outputs for each double\n    digits = 52,\n        // there are 52 significant digits in a double\n    rngname = \"random\",\n        // rngname: name for Math.random and Math.seedrandom\n    startdenom = math.pow(width, chunks),\n        significance = math.pow(2, digits),\n        overflow = significance * 2,\n        mask = width - 1,\n        nodecrypto; // node.js crypto module, initialized at the bottom.\n    //\n    // seedrandom()\n    // This is the seedrandom function described above.\n    //\n\n    function seedrandom(seed, options, callback) {\n      var key = [];\n      options = options === true ? {\n        entropy: true\n      } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n      var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n      var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n      // randomness in every bit of the mantissa of the IEEE 754 value.\n\n      var prng = function () {\n        var n = arc4.g(chunks),\n            // Start with a numerator n < 2 ^ 48\n        d = startdenom,\n            //   and denominator d = 2 ^ 48.\n        x = 0; //   and no 'extra last byte'.\n\n        while (n < significance) {\n          // Fill up all significant digits by\n          n = (n + x) * width; //   shifting numerator and\n\n          d *= width; //   denominator and generating a\n\n          x = arc4.g(1); //   new least-significant-byte.\n        }\n\n        while (n >= overflow) {\n          // To avoid rounding up, before adding\n          n /= 2; //   last byte, shift everything\n\n          d /= 2; //   right using integer math until\n\n          x >>>= 1; //   we have exactly the desired bits.\n        }\n\n        return (n + x) / d; // Form the number within [0, 1).\n      };\n\n      prng.int32 = function () {\n        return arc4.g(4) | 0;\n      };\n\n      prng.quick = function () {\n        return arc4.g(4) / 4294967296;\n      };\n\n      prng.double = prng; // Mix the randomness into accumulated entropy.\n\n      mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n      return (options.pass || callback || function (prng, seed, is_math_call, state) {\n        if (state) {\n          // Load the arc4 state from the given state if it has an S array.\n          if (state.S) {\n            copy(state, arc4);\n          } // Only provide the .state method if requested via options.state.\n\n\n          prng.state = function () {\n            return copy(arc4, {});\n          };\n        } // If called as a method of Math (Math.seedrandom()), mutate\n        // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n        if (is_math_call) {\n          math[rngname] = prng;\n          return seed;\n        } // Otherwise, it is a newer calling convention, so return the\n        // prng directly.\n        else return prng;\n      })(prng, shortseed, \"global\" in options ? options.global : (this || _global) == math, options.state);\n    }\n\n    math[\"seed\" + rngname] = seedrandom; //\n    // ARC4\n    //\n    // An ARC4 implementation.  The constructor takes a key in the form of\n    // an array of at most (width) integers that should be 0 <= x < (width).\n    //\n    // The g(count) method returns a pseudorandom integer that concatenates\n    // the next (count) outputs from ARC4.  Its return value is a number x\n    // that is in the range 0 <= x < (width ^ count).\n    //\n\n    function ARC4(key) {\n      var t,\n          keylen = key.length,\n          me = this || _global,\n          i = 0,\n          j = me.i = me.j = 0,\n          s = me.S = []; // The empty key [] is treated as [0].\n\n      if (!keylen) {\n        key = [keylen++];\n      } // Set up S using the standard key scheduling algorithm.\n\n\n      while (i < width) {\n        s[i] = i++;\n      }\n\n      for (i = 0; i < width; i++) {\n        s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n        s[j] = t;\n      } // The \"g\" method returns the next (count) outputs as one number.\n\n\n      me.g = function (count) {\n        // Using instance members instead of closure state nearly doubles speed.\n        var t,\n            r = 0,\n            i = me.i,\n            j = me.j,\n            s = me.S;\n\n        while (count--) {\n          t = s[i = mask & i + 1];\n          r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n        }\n\n        me.i = i;\n        me.j = j;\n        return r; // For robust unpredictability, the function call below automatically\n        // discards an initial batch of values.  This is called RC4-drop[256].\n        // See http://google.com/search?q=rsa+fluhrer+response&btnI\n      };\n    } //\n    // copy()\n    // Copies internal state of ARC4 to or from a plain object.\n    //\n\n\n    function copy(f, t) {\n      t.i = f.i;\n      t.j = f.j;\n      t.S = f.S.slice();\n      return t;\n    } //\n    // flatten()\n    // Converts an object tree to nested arrays of strings.\n    //\n\n\n    function flatten(obj, depth) {\n      var result = [],\n          typ = typeof obj,\n          prop;\n\n      if (depth && typ == \"object\") {\n        for (prop in obj) {\n          try {\n            result.push(flatten(obj[prop], depth - 1));\n          } catch (e) {}\n        }\n      }\n\n      return result.length ? result : typ == \"string\" ? obj : obj + \"\\0\";\n    } //\n    // mixkey()\n    // Mixes a string seed into a key that is an array of integers, and\n    // returns a shortened string seed that is equivalent to the result key.\n    //\n\n\n    function mixkey(seed, key) {\n      var stringseed = seed + \"\",\n          smear,\n          j = 0;\n\n      while (j < stringseed.length) {\n        key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n      }\n\n      return tostring(key);\n    } //\n    // autoseed()\n    // Returns an object for autoseeding, using window.crypto and Node crypto\n    // module if available.\n    //\n\n\n    function autoseed() {\n      try {\n        if (nodecrypto) {\n          return tostring(nodecrypto.randomBytes(width));\n        }\n\n        var out = new Uint8Array(width);\n        (global.crypto || global.msCrypto).getRandomValues(out);\n        return tostring(out);\n      } catch (e) {\n        var browser = global.navigator,\n            plugins = browser && browser.plugins;\n        return [+new Date(), global, plugins, global.screen, tostring(pool)];\n      }\n    } //\n    // tostring()\n    // Converts an array of charcodes to a string\n    //\n\n\n    function tostring(a) {\n      return String.fromCharCode.apply(0, a);\n    } //\n    // When seedrandom.js is loaded, we immediately mix a few bits\n    // from the built-in RNG into the entropy pool.  Because we do\n    // not want to interfere with deterministic PRNG state later,\n    // seedrandom will not call math.random on its own again after\n    // initialization.\n    //\n\n\n    mixkey(math.random(), pool); //\n    // Nodejs and AMD support: export the implementation as a module using\n    // either convention.\n    //\n    // End anonymous scope, and pass initial values.\n  })([], // pool: entropy pool starts empty\n  BMMath // math: package containing random, pow, and seedrandom\n  );\n  /* eslint-disable */\n\n\n  var BezierFactory = function () {\n    /**\r\n       * BezierEasing - use bezier curve for transition easing function\r\n       * by Ga\u00EBtan Renaudeau 2014 - 2015 \u2013 MIT License\r\n       *\r\n       * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n       * Usage:\r\n       * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n       * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n       *\r\n       */\n    var ob = {};\n    ob.getBezierEasing = getBezierEasing;\n    var beziers = {};\n\n    function getBezierEasing(a, b, c, d, nm) {\n      var str = nm || (\"bez_\" + a + \"_\" + b + \"_\" + c + \"_\" + d).replace(/\\./g, \"p\");\n\n      if (beziers[str]) {\n        return beziers[str];\n      }\n\n      var bezEasing = new BezierEasing([a, b, c, d]);\n      beziers[str] = bezEasing;\n      return bezEasing;\n    } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n    var NEWTON_ITERATIONS = 4;\n    var NEWTON_MIN_SLOPE = 0.001;\n    var SUBDIVISION_PRECISION = 1e-7;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1 / (kSplineTableSize - 1);\n    var float32ArraySupported = typeof Float32Array === \"function\";\n\n    function A(aA1, aA2) {\n      return 1 - 3 * aA2 + 3 * aA1;\n    }\n\n    function B(aA1, aA2) {\n      return 3 * aA2 - 6 * aA1;\n    }\n\n    function C(aA1) {\n      return 3 * aA1;\n    } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n    function calcBezier(aT, aA1, aA2) {\n      return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n    } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n    function getSlope(aT, aA1, aA2) {\n      return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n    }\n\n    function binarySubdivide(aX, aA, aB, mX1, mX2) {\n      var currentX,\n          currentT,\n          i = 0;\n\n      do {\n        currentT = aA + (aB - aA) / 2;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n        if (currentX > 0) {\n          aB = currentT;\n        } else {\n          aA = currentT;\n        }\n      } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n      return currentT;\n    }\n\n    function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n      for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0) return aGuessT;\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n      }\n\n      return aGuessT;\n    }\n    /**\r\n       * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n       */\n\n\n    function BezierEasing(points) {\n      (this || _global)._p = points;\n      (this || _global)._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      (this || _global)._precomputed = false;\n      (this || _global).get = (this || _global).get.bind(this || _global);\n    }\n\n    BezierEasing.prototype = {\n      get: function (x) {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        if (!(this || _global)._precomputed) this._precompute();\n        if (mX1 === mY1 && mX2 === mY2) return x; // linear\n        // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n        if (x === 0) return 0;\n        if (x === 1) return 1;\n        return calcBezier(this._getTForX(x), mY1, mY2);\n      },\n      // Private part\n      _precompute: function () {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        (this || _global)._precomputed = true;\n\n        if (mX1 !== mY1 || mX2 !== mY2) {\n          this._calcSampleValues();\n        }\n      },\n      _calcSampleValues: function () {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2];\n\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          (this || _global)._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n        }\n      },\n\n      /**\r\n           * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n           */\n      _getTForX: function (aX) {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2],\n            mSampleValues = (this || _global)._mSampleValues;\n        var intervalStart = 0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n\n        for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n          intervalStart += kSampleStepSize;\n        }\n\n        --currentSample; // Interpolate to provide an initial guess for t\n\n        var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n\n        if (initialSlope >= NEWTON_MIN_SLOPE) {\n          return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n\n        if (initialSlope === 0) {\n          return guessForT;\n        }\n\n        return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n      }\n    };\n    return ob;\n  }();\n\n  (function () {\n    var lastTime = 0;\n    var vendors = [\"ms\", \"moz\", \"webkit\", \"o\"];\n\n    for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n      // eslint-disable-line no-plusplus\n      window.requestAnimationFrame = window[vendors[x] + \"RequestAnimationFrame\"];\n      window.cancelAnimationFrame = window[vendors[x] + \"CancelAnimationFrame\"] || window[vendors[x] + \"CancelRequestAnimationFrame\"];\n    }\n\n    if (!window.requestAnimationFrame) {\n      window.requestAnimationFrame = function (callback) {\n        var currTime = new Date().getTime();\n        var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n        var id = setTimeout(function () {\n          callback(currTime + timeToCall);\n        }, timeToCall);\n        lastTime = currTime + timeToCall;\n        return id;\n      };\n    }\n\n    if (!window.cancelAnimationFrame) {\n      window.cancelAnimationFrame = function (id) {\n        clearTimeout(id);\n      };\n    }\n  })();\n  /* exported extendPrototype, getDescriptor, createProxyFunction */\n\n\n  function extendPrototype(sources, destination) {\n    var i;\n    var len = sources.length;\n    var sourcePrototype;\n\n    for (i = 0; i < len; i += 1) {\n      sourcePrototype = sources[i].prototype;\n\n      for (var attr in sourcePrototype) {\n        if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n      }\n    }\n  }\n\n  function getDescriptor(object, prop) {\n    return Object.getOwnPropertyDescriptor(object, prop);\n  }\n\n  function createProxyFunction(prototype) {\n    function ProxyFunction() {}\n\n    ProxyFunction.prototype = prototype;\n    return ProxyFunction;\n  }\n  /* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\n\n  /* exported bez */\n\n\n  function bezFunction() {\n    var math = Math;\n\n    function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n      var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n      return det1 > -0.001 && det1 < 0.001;\n    }\n\n    function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n      if (z1 === 0 && z2 === 0 && z3 === 0) {\n        return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n      }\n\n      var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n      var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n      var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n      var diffDist;\n\n      if (dist1 > dist2) {\n        if (dist1 > dist3) {\n          diffDist = dist1 - dist2 - dist3;\n        } else {\n          diffDist = dist3 - dist2 - dist1;\n        }\n      } else if (dist3 > dist2) {\n        diffDist = dist3 - dist2 - dist1;\n      } else {\n        diffDist = dist2 - dist1 - dist3;\n      }\n\n      return diffDist > -0.0001 && diffDist < 0.0001;\n    }\n\n    var getBezierLength = function () {\n      return function (pt1, pt2, pt3, pt4) {\n        var curveSegments = defaultCurveSegments;\n        var k;\n        var i;\n        var len;\n        var ptCoord;\n        var perc;\n        var addedLength = 0;\n        var ptDistance;\n        var point = [];\n        var lastPoint = [];\n        var lengthData = bezierLengthPool.newElement();\n        len = pt3.length;\n\n        for (k = 0; k < curveSegments; k += 1) {\n          perc = k / (curveSegments - 1);\n          ptDistance = 0;\n\n          for (i = 0; i < len; i += 1) {\n            ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n            point[i] = ptCoord;\n\n            if (lastPoint[i] !== null) {\n              ptDistance += bmPow(point[i] - lastPoint[i], 2);\n            }\n\n            lastPoint[i] = point[i];\n          }\n\n          if (ptDistance) {\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n          }\n\n          lengthData.percents[k] = perc;\n          lengthData.lengths[k] = addedLength;\n        }\n\n        lengthData.addedLength = addedLength;\n        return lengthData;\n      };\n    }();\n\n    function getSegmentsLength(shapeData) {\n      var segmentsLength = segmentsLengthPool.newElement();\n      var closed = shapeData.c;\n      var pathV = shapeData.v;\n      var pathO = shapeData.o;\n      var pathI = shapeData.i;\n      var i;\n      var len = shapeData._length;\n      var lengths = segmentsLength.lengths;\n      var totalLength = 0;\n\n      for (i = 0; i < len - 1; i += 1) {\n        lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      if (closed && len) {\n        lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      segmentsLength.totalLength = totalLength;\n      return segmentsLength;\n    }\n\n    function BezierData(length) {\n      (this || _global).segmentLength = 0;\n      (this || _global).points = new Array(length);\n    }\n\n    function PointData(partial, point) {\n      (this || _global).partialLength = partial;\n      (this || _global).point = point;\n    }\n\n    var buildBezierData = function () {\n      var storedData = {};\n      return function (pt1, pt2, pt3, pt4) {\n        var bezierName = (pt1[0] + \"_\" + pt1[1] + \"_\" + pt2[0] + \"_\" + pt2[1] + \"_\" + pt3[0] + \"_\" + pt3[1] + \"_\" + pt4[0] + \"_\" + pt4[1]).replace(/\\./g, \"p\");\n\n        if (!storedData[bezierName]) {\n          var curveSegments = defaultCurveSegments;\n          var k;\n          var i;\n          var len;\n          var ptCoord;\n          var perc;\n          var addedLength = 0;\n          var ptDistance;\n          var point;\n          var lastPoint = null;\n\n          if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n            curveSegments = 2;\n          }\n\n          var bezierData = new BezierData(curveSegments);\n          len = pt3.length;\n\n          for (k = 0; k < curveSegments; k += 1) {\n            point = createSizedArray(len);\n            perc = k / (curveSegments - 1);\n            ptDistance = 0;\n\n            for (i = 0; i < len; i += 1) {\n              ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n              point[i] = ptCoord;\n\n              if (lastPoint !== null) {\n                ptDistance += bmPow(point[i] - lastPoint[i], 2);\n              }\n            }\n\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n            bezierData.points[k] = new PointData(ptDistance, point);\n            lastPoint = point;\n          }\n\n          bezierData.segmentLength = addedLength;\n          storedData[bezierName] = bezierData;\n        }\n\n        return storedData[bezierName];\n      };\n    }();\n\n    function getDistancePerc(perc, bezierData) {\n      var percents = bezierData.percents;\n      var lengths = bezierData.lengths;\n      var len = percents.length;\n      var initPos = bmFloor((len - 1) * perc);\n      var lengthPos = perc * bezierData.addedLength;\n      var lPerc = 0;\n\n      if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n        return percents[initPos];\n      }\n\n      var dir = lengths[initPos] > lengthPos ? -1 : 1;\n      var flag = true;\n\n      while (flag) {\n        if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n          lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n          flag = false;\n        } else {\n          initPos += dir;\n        }\n\n        if (initPos < 0 || initPos >= len - 1) {\n          // FIX for TypedArrays that don't store floating point values with enough accuracy\n          if (initPos === len - 1) {\n            return percents[initPos];\n          }\n\n          flag = false;\n        }\n      }\n\n      return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n    }\n\n    function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n      var t1 = getDistancePerc(percent, bezierData);\n      var u1 = 1 - t1;\n      var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n      var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n      return [ptX, ptY];\n    }\n\n    var bezierSegmentPoints = createTypedArray(\"float32\", 8);\n\n    function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n      if (startPerc < 0) {\n        startPerc = 0;\n      } else if (startPerc > 1) {\n        startPerc = 1;\n      }\n\n      var t0 = getDistancePerc(startPerc, bezierData);\n      endPerc = endPerc > 1 ? 1 : endPerc;\n      var t1 = getDistancePerc(endPerc, bezierData);\n      var i;\n      var len = pt1.length;\n      var u0 = 1 - t0;\n      var u1 = 1 - t1;\n      var u0u0u0 = u0 * u0 * u0;\n      var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0t0 = t0 * t0 * t0; //\n\n      var u0u0u1 = u0 * u0 * u1;\n      var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0t1 = t0 * t0 * t1; //\n\n      var u0u1u1 = u0 * u1 * u1;\n      var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1t1 = t0 * t1 * t1; //\n\n      var u1u1u1 = u1 * u1 * u1;\n      var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1t1 = t1 * t1 * t1;\n\n      for (i = 0; i < len; i += 1) {\n        bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n      }\n\n      return bezierSegmentPoints;\n    }\n\n    return {\n      getSegmentsLength: getSegmentsLength,\n      getNewSegment: getNewSegment,\n      getPointInSegment: getPointInSegment,\n      buildBezierData: buildBezierData,\n      pointOnLine2D: pointOnLine2D,\n      pointOnLine3D: pointOnLine3D\n    };\n  }\n\n  var bez = bezFunction();\n  /* exported dataManager */\n\n  function dataFunctionManager() {\n    // var tCanvasHelper = createTag('canvas').getContext('2d');\n    function completeLayers(layers, comps, fontManager) {\n      var layerData;\n      var i;\n      var len = layers.length;\n      var j;\n      var jLen;\n      var k;\n      var kLen;\n\n      for (i = 0; i < len; i += 1) {\n        layerData = layers[i];\n\n        if (\"ks\" in layerData && !layerData.completed) {\n          layerData.completed = true;\n\n          if (layerData.tt) {\n            layers[i - 1].td = layerData.tt;\n          }\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                convertPathsToAbsoluteValues(maskProps[j].pt.k);\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 0) {\n            layerData.layers = findCompLayers(layerData.refId, comps);\n            completeLayers(layerData.layers, comps, fontManager);\n          } else if (layerData.ty === 4) {\n            completeShapes(layerData.shapes);\n          } else if (layerData.ty === 5) {\n            completeText(layerData, fontManager);\n          }\n        }\n      }\n    }\n\n    function findCompLayers(id, comps) {\n      var i = 0;\n      var len = comps.length;\n\n      while (i < len) {\n        if (comps[i].id === id) {\n          if (!comps[i].layers.__used) {\n            comps[i].layers.__used = true;\n            return comps[i].layers;\n          }\n\n          return JSON.parse(JSON.stringify(comps[i].layers));\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function completeShapes(arr) {\n      var i;\n      var len = arr.length;\n      var j;\n      var jLen;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if (arr[i].ty === \"sh\") {\n          if (arr[i].ks.k.i) {\n            convertPathsToAbsoluteValues(arr[i].ks.k);\n          } else {\n            jLen = arr[i].ks.k.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (arr[i].ks.k[j].s) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n              }\n\n              if (arr[i].ks.k[j].e) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n              }\n            }\n          }\n        } else if (arr[i].ty === \"gr\") {\n          completeShapes(arr[i].it);\n        }\n      }\n    }\n\n    function convertPathsToAbsoluteValues(path) {\n      var i;\n      var len = path.i.length;\n\n      for (i = 0; i < len; i += 1) {\n        path.i[i][0] += path.v[i][0];\n        path.i[i][1] += path.v[i][1];\n        path.o[i][0] += path.v[i][0];\n        path.o[i][1] += path.v[i][1];\n      }\n    }\n\n    function checkVersion(minimum, animVersionString) {\n      var animVersion = animVersionString ? animVersionString.split(\".\") : [100, 100, 100];\n\n      if (minimum[0] > animVersion[0]) {\n        return true;\n      }\n\n      if (animVersion[0] > minimum[0]) {\n        return false;\n      }\n\n      if (minimum[1] > animVersion[1]) {\n        return true;\n      }\n\n      if (animVersion[1] > minimum[1]) {\n        return false;\n      }\n\n      if (minimum[2] > animVersion[2]) {\n        return true;\n      }\n\n      if (animVersion[2] > minimum[2]) {\n        return false;\n      }\n\n      return null;\n    }\n\n    var checkText = function () {\n      var minimumVersion = [4, 4, 14];\n\n      function updateTextLayer(textLayer) {\n        var documentData = textLayer.t.d;\n        textLayer.t.d = {\n          k: [{\n            s: documentData,\n            t: 0\n          }]\n        };\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 5) {\n            updateTextLayer(layers[i]);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkChars = function () {\n      var minimumVersion = [4, 7, 99];\n      return function (animationData) {\n        if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n          var i;\n          var len = animationData.chars.length;\n          var j;\n          var jLen;\n          var pathData;\n          var paths;\n\n          for (i = 0; i < len; i += 1) {\n            if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\n              paths = animationData.chars[i].data.shapes[0].it;\n              jLen = paths.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                pathData = paths[j].ks.k;\n\n                if (!pathData.__converted) {\n                  convertPathsToAbsoluteValues(paths[j].ks.k);\n                  pathData.__converted = true;\n                }\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkColors = function () {\n      var minimumVersion = [4, 1, 9];\n\n      function iterateShapes(shapes) {\n        var i;\n        var len = shapes.length;\n        var j;\n        var jLen;\n\n        for (i = 0; i < len; i += 1) {\n          if (shapes[i].ty === \"gr\") {\n            iterateShapes(shapes[i].it);\n          } else if (shapes[i].ty === \"fl\" || shapes[i].ty === \"st\") {\n            if (shapes[i].c.k && shapes[i].c.k[0].i) {\n              jLen = shapes[i].c.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (shapes[i].c.k[j].s) {\n                  shapes[i].c.k[j].s[0] /= 255;\n                  shapes[i].c.k[j].s[1] /= 255;\n                  shapes[i].c.k[j].s[2] /= 255;\n                  shapes[i].c.k[j].s[3] /= 255;\n                }\n\n                if (shapes[i].c.k[j].e) {\n                  shapes[i].c.k[j].e[0] /= 255;\n                  shapes[i].c.k[j].e[1] /= 255;\n                  shapes[i].c.k[j].e[2] /= 255;\n                  shapes[i].c.k[j].e[3] /= 255;\n                }\n              }\n            } else {\n              shapes[i].c.k[0] /= 255;\n              shapes[i].c.k[1] /= 255;\n              shapes[i].c.k[2] /= 255;\n              shapes[i].c.k[3] /= 255;\n            }\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 4) {\n            iterateShapes(layers[i].shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkShapes = function () {\n      var minimumVersion = [4, 4, 18];\n\n      function completeClosingShapes(arr) {\n        var i;\n        var len = arr.length;\n        var j;\n        var jLen;\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          if (arr[i].ty === \"sh\") {\n            if (arr[i].ks.k.i) {\n              arr[i].ks.k.c = arr[i].closed;\n            } else {\n              jLen = arr[i].ks.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (arr[i].ks.k[j].s) {\n                  arr[i].ks.k[j].s[0].c = arr[i].closed;\n                }\n\n                if (arr[i].ks.k[j].e) {\n                  arr[i].ks.k[j].e[0].c = arr[i].closed;\n                }\n              }\n            }\n          } else if (arr[i].ty === \"gr\") {\n            completeClosingShapes(arr[i].it);\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var layerData;\n        var i;\n        var len = layers.length;\n        var j;\n        var jLen;\n        var k;\n        var kLen;\n\n        for (i = 0; i < len; i += 1) {\n          layerData = layers[i];\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                maskProps[j].pt.k.c = maskProps[j].cl;\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 4) {\n            completeClosingShapes(layerData.shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    function completeData(animationData, fontManager) {\n      if (animationData.__complete) {\n        return;\n      }\n\n      checkColors(animationData);\n      checkText(animationData);\n      checkChars(animationData);\n      checkShapes(animationData);\n      completeLayers(animationData.layers, animationData.assets, fontManager);\n      animationData.__complete = true;\n    }\n\n    function completeText(data) {\n      if (data.t.a.length === 0 && !(\"m\" in data.t.p)) {\n        data.singleShape = true;\n      }\n    }\n\n    var moduleOb = {};\n    moduleOb.completeData = completeData;\n    moduleOb.checkColors = checkColors;\n    moduleOb.checkChars = checkChars;\n    moduleOb.checkShapes = checkShapes;\n    moduleOb.completeLayers = completeLayers;\n    return moduleOb;\n  }\n\n  var dataManager = dataFunctionManager();\n  /* exported getFontProperties */\n\n  function getFontProperties(fontData) {\n    var styles = fontData.fStyle ? fontData.fStyle.split(\" \") : [];\n    var fWeight = \"normal\";\n    var fStyle = \"normal\";\n    var len = styles.length;\n    var styleName;\n\n    for (var i = 0; i < len; i += 1) {\n      styleName = styles[i].toLowerCase();\n\n      switch (styleName) {\n        case \"italic\":\n          fStyle = \"italic\";\n          break;\n\n        case \"bold\":\n          fWeight = \"700\";\n          break;\n\n        case \"black\":\n          fWeight = \"900\";\n          break;\n\n        case \"medium\":\n          fWeight = \"500\";\n          break;\n\n        case \"regular\":\n        case \"normal\":\n          fWeight = \"400\";\n          break;\n\n        case \"light\":\n        case \"thin\":\n          fWeight = \"200\";\n          break;\n\n        default:\n          break;\n      }\n    }\n\n    return {\n      style: fStyle,\n      weight: fontData.fWeight || fWeight\n    };\n  }\n  /* global createNS, createTag, getFontProperties */\n\n  /* exported FontManager */\n\n\n  var FontManager = function () {\n    var maxWaitingTime = 5000;\n    var emptyChar = {\n      w: 0,\n      size: 0,\n      shapes: []\n    };\n    var combinedCharacters = []; // Hindi characters\n\n    combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n\n    function trimFontOptions(font) {\n      var familyArray = font.split(\",\");\n      var i;\n      var len = familyArray.length;\n      var enabledFamilies = [];\n\n      for (i = 0; i < len; i += 1) {\n        if (familyArray[i] !== \"sans-serif\" && familyArray[i] !== \"monospace\") {\n          enabledFamilies.push(familyArray[i]);\n        }\n      }\n\n      return enabledFamilies.join(\",\");\n    }\n\n    function setUpNode(font, family) {\n      var parentNode = createTag(\"span\"); // Node is invisible to screen readers.\n\n      parentNode.setAttribute(\"aria-hidden\", true);\n      parentNode.style.fontFamily = family;\n      var node = createTag(\"span\"); // Characters that vary significantly among different fonts\n\n      node.innerText = \"giItT1WQy@!-/#\"; // Visible - so we can measure it - but not on the screen\n\n      parentNode.style.position = \"absolute\";\n      parentNode.style.left = \"-10000px\";\n      parentNode.style.top = \"-10000px\"; // Large font size makes even subtle changes obvious\n\n      parentNode.style.fontSize = \"300px\"; // Reset any font properties\n\n      parentNode.style.fontVariant = \"normal\";\n      parentNode.style.fontStyle = \"normal\";\n      parentNode.style.fontWeight = \"normal\";\n      parentNode.style.letterSpacing = \"0\";\n      parentNode.appendChild(node);\n      document.body.appendChild(parentNode); // Remember width with no applied web font\n\n      var width = node.offsetWidth;\n      node.style.fontFamily = trimFontOptions(font) + \", \" + family;\n      return {\n        node: node,\n        w: width,\n        parent: parentNode\n      };\n    }\n\n    function checkLoadedFonts() {\n      var i;\n      var len = (this || _global).fonts.length;\n      var node;\n      var w;\n      var loadedCount = len;\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).fonts[i].loaded) {\n          loadedCount -= 1;\n        } else if ((this || _global).fonts[i].fOrigin === \"n\" || (this || _global).fonts[i].origin === 0) {\n          (this || _global).fonts[i].loaded = true;\n        } else {\n          node = (this || _global).fonts[i].monoCase.node;\n          w = (this || _global).fonts[i].monoCase.w;\n\n          if (node.offsetWidth !== w) {\n            loadedCount -= 1;\n            (this || _global).fonts[i].loaded = true;\n          } else {\n            node = (this || _global).fonts[i].sansCase.node;\n            w = (this || _global).fonts[i].sansCase.w;\n\n            if (node.offsetWidth !== w) {\n              loadedCount -= 1;\n              (this || _global).fonts[i].loaded = true;\n            }\n          }\n\n          if ((this || _global).fonts[i].loaded) {\n            (this || _global).fonts[i].sansCase.parent.parentNode.removeChild((this || _global).fonts[i].sansCase.parent);\n\n            (this || _global).fonts[i].monoCase.parent.parentNode.removeChild((this || _global).fonts[i].monoCase.parent);\n          }\n        }\n      }\n\n      if (loadedCount !== 0 && Date.now() - (this || _global).initTime < maxWaitingTime) {\n        setTimeout((this || _global).checkLoadedFontsBinded, 20);\n      } else {\n        setTimeout((this || _global).setIsLoadedBinded, 10);\n      }\n    }\n\n    function createHelper(def, fontData) {\n      var tHelper = createNS(\"text\");\n      tHelper.style.fontSize = \"100px\"; // tHelper.style.fontFamily = fontData.fFamily;\n\n      var fontProps = getFontProperties(fontData);\n      tHelper.setAttribute(\"font-family\", fontData.fFamily);\n      tHelper.setAttribute(\"font-style\", fontProps.style);\n      tHelper.setAttribute(\"font-weight\", fontProps.weight);\n      tHelper.textContent = \"1\";\n\n      if (fontData.fClass) {\n        tHelper.style.fontFamily = \"inherit\";\n        tHelper.setAttribute(\"class\", fontData.fClass);\n      } else {\n        tHelper.style.fontFamily = fontData.fFamily;\n      }\n\n      def.appendChild(tHelper);\n      var tCanvasHelper = createTag(\"canvas\").getContext(\"2d\");\n      tCanvasHelper.font = fontData.fWeight + \" \" + fontData.fStyle + \" 100px \" + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n      return tHelper;\n    }\n\n    function addFonts(fontData, defs) {\n      if (!fontData) {\n        (this || _global).isLoaded = true;\n        return;\n      }\n\n      if ((this || _global).chars) {\n        (this || _global).isLoaded = true;\n        (this || _global).fonts = fontData.list;\n        return;\n      }\n\n      var fontArr = fontData.list;\n      var i;\n      var len = fontArr.length;\n      var _pendingFonts = len;\n\n      for (i = 0; i < len; i += 1) {\n        var shouldLoadFont = true;\n        var loadedSelector;\n        var j;\n        fontArr[i].loaded = false;\n        fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, \"monospace\");\n        fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, \"sans-serif\");\n\n        if (!fontArr[i].fPath) {\n          fontArr[i].loaded = true;\n          _pendingFonts -= 1;\n        } else if (fontArr[i].fOrigin === \"p\" || fontArr[i].origin === 3) {\n          loadedSelector = document.querySelectorAll(\"style[f-forigin=\\\"p\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"], style[f-origin=\\\"3\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"]\");\n\n          if (loadedSelector.length > 0) {\n            shouldLoadFont = false;\n          }\n\n          if (shouldLoadFont) {\n            var s = createTag(\"style\");\n            s.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            s.setAttribute(\"f-origin\", fontArr[i].origin);\n            s.setAttribute(\"f-family\", fontArr[i].fFamily);\n            s.type = \"text/css\";\n            s.innerText = \"@font-face {font-family: \" + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n            defs.appendChild(s);\n          }\n        } else if (fontArr[i].fOrigin === \"g\" || fontArr[i].origin === 1) {\n          loadedSelector = document.querySelectorAll(\"link[f-forigin=\\\"g\\\"], link[f-origin=\\\"1\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var l = createTag(\"link\");\n            l.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            l.setAttribute(\"f-origin\", fontArr[i].origin);\n            l.type = \"text/css\";\n            l.rel = \"stylesheet\";\n            l.href = fontArr[i].fPath;\n            document.body.appendChild(l);\n          }\n        } else if (fontArr[i].fOrigin === \"t\" || fontArr[i].origin === 2) {\n          loadedSelector = document.querySelectorAll(\"script[f-forigin=\\\"t\\\"], script[f-origin=\\\"2\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (fontArr[i].fPath === loadedSelector[j].src) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var sc = createTag(\"link\");\n            sc.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            sc.setAttribute(\"f-origin\", fontArr[i].origin);\n            sc.setAttribute(\"rel\", \"stylesheet\");\n            sc.setAttribute(\"href\", fontArr[i].fPath);\n            defs.appendChild(sc);\n          }\n        }\n\n        fontArr[i].helper = createHelper(defs, fontArr[i]);\n        fontArr[i].cache = {};\n\n        (this || _global).fonts.push(fontArr[i]);\n      }\n\n      if (_pendingFonts === 0) {\n        (this || _global).isLoaded = true;\n      } else {\n        // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n        // Adding this timeout seems to fix it\n        setTimeout((this || _global).checkLoadedFonts.bind(this || _global), 100);\n      }\n    }\n\n    function addChars(chars) {\n      if (!chars) {\n        return;\n      }\n\n      if (!(this || _global).chars) {\n        (this || _global).chars = [];\n      }\n\n      var i;\n      var len = chars.length;\n      var j;\n      var jLen = (this || _global).chars.length;\n      var found;\n\n      for (i = 0; i < len; i += 1) {\n        j = 0;\n        found = false;\n\n        while (j < jLen) {\n          if ((this || _global).chars[j].style === chars[i].style && (this || _global).chars[j].fFamily === chars[i].fFamily && (this || _global).chars[j].ch === chars[i].ch) {\n            found = true;\n          }\n\n          j += 1;\n        }\n\n        if (!found) {\n          (this || _global).chars.push(chars[i]);\n\n          jLen += 1;\n        }\n      }\n    }\n\n    function getCharData(char, style, font) {\n      var i = 0;\n      var len = (this || _global).chars.length;\n\n      while (i < len) {\n        if ((this || _global).chars[i].ch === char && (this || _global).chars[i].style === style && (this || _global).chars[i].fFamily === font) {\n          return (this || _global).chars[i];\n        }\n\n        i += 1;\n      }\n\n      if ((typeof char === \"string\" && char.charCodeAt(0) !== 13 || !char) && console && console.warn // eslint-disable-line no-console\n      && !(this || _global)._warned) {\n        (this || _global)._warned = true;\n        console.warn(\"Missing character from exported characters list: \", char, style, font); // eslint-disable-line no-console\n      }\n\n      return emptyChar;\n    }\n\n    function measureText(char, fontName, size) {\n      var fontData = this.getFontByName(fontName);\n      var index = char.charCodeAt(0);\n\n      if (!fontData.cache[index + 1]) {\n        var tHelper = fontData.helper; // Canvas version\n        // fontData.cache[index] = tHelper.measureText(char).width / 100;\n        // SVG version\n        // console.log(tHelper.getBBox().width)\n\n        if (char === \" \") {\n          tHelper.textContent = \"|\" + char + \"|\";\n          var doubleSize = tHelper.getComputedTextLength();\n          tHelper.textContent = \"||\";\n          var singleSize = tHelper.getComputedTextLength();\n          fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n        } else {\n          tHelper.textContent = char;\n          fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n        }\n      }\n\n      return fontData.cache[index + 1] * size;\n    }\n\n    function getFontByName(name) {\n      var i = 0;\n      var len = (this || _global).fonts.length;\n\n      while (i < len) {\n        if ((this || _global).fonts[i].fName === name) {\n          return (this || _global).fonts[i];\n        }\n\n        i += 1;\n      }\n\n      return (this || _global).fonts[0];\n    }\n\n    function getCombinedCharacterCodes() {\n      return combinedCharacters;\n    }\n\n    function setIsLoaded() {\n      (this || _global).isLoaded = true;\n    }\n\n    var Font = function () {\n      (this || _global).fonts = [];\n      (this || _global).chars = null;\n      (this || _global).typekitLoaded = 0;\n      (this || _global).isLoaded = false;\n      (this || _global)._warned = false;\n      (this || _global).initTime = Date.now();\n      (this || _global).setIsLoadedBinded = (this || _global).setIsLoaded.bind(this || _global);\n      (this || _global).checkLoadedFontsBinded = (this || _global).checkLoadedFonts.bind(this || _global);\n    }; // TODO: for now I'm adding these methods to the Class and not the prototype. Think of a better way to implement it.\n\n\n    Font.getCombinedCharacterCodes = getCombinedCharacterCodes;\n    var fontPrototype = {\n      addChars: addChars,\n      addFonts: addFonts,\n      getCharData: getCharData,\n      getFontByName: getFontByName,\n      measureText: measureText,\n      checkLoadedFonts: checkLoadedFonts,\n      setIsLoaded: setIsLoaded\n    };\n    Font.prototype = fontPrototype;\n    return Font;\n  }();\n  /* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\n\n  /* exported PropertyFactory */\n\n\n  var PropertyFactory = function () {\n    var initFrame = initialDefaultFrame;\n    var mathAbs = Math.abs;\n\n    function interpolateValue(frameNum, caching) {\n      var offsetTime = (this || _global).offsetTime;\n      var newValue;\n\n      if ((this || _global).propType === \"multidimensional\") {\n        newValue = createTypedArray(\"float32\", (this || _global).pv.length);\n      }\n\n      var iterationIndex = caching.lastIndex;\n      var i = iterationIndex;\n      var len = (this || _global).keyframes.length - 1;\n      var flag = true;\n      var keyData;\n      var nextKeyData;\n\n      while (flag) {\n        keyData = (this || _global).keyframes[i];\n        nextKeyData = (this || _global).keyframes[i + 1];\n\n        if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n          if (keyData.h) {\n            keyData = nextKeyData;\n          }\n\n          iterationIndex = 0;\n          break;\n        }\n\n        if (nextKeyData.t - offsetTime > frameNum) {\n          iterationIndex = i;\n          break;\n        }\n\n        if (i < len - 1) {\n          i += 1;\n        } else {\n          iterationIndex = 0;\n          flag = false;\n        }\n      }\n\n      var k;\n      var kLen;\n      var perc;\n      var jLen;\n      var j;\n      var fnc;\n      var nextKeyTime = nextKeyData.t - offsetTime;\n      var keyTime = keyData.t - offsetTime;\n      var endValue;\n\n      if (keyData.to) {\n        if (!keyData.bezierData) {\n          keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n        }\n\n        var bezierData = keyData.bezierData;\n\n        if (frameNum >= nextKeyTime || frameNum < keyTime) {\n          var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n          kLen = bezierData.points[ind].point.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            newValue[k] = bezierData.points[ind].point[k];\n          } // caching._lastKeyframeIndex = -1;\n\n        } else {\n          if (keyData.__fnct) {\n            fnc = keyData.__fnct;\n          } else {\n            fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n            keyData.__fnct = fnc;\n          }\n\n          perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n          var distanceInLine = bezierData.segmentLength * perc;\n          var segmentPerc;\n          var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n          j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n          flag = true;\n          jLen = bezierData.points.length;\n\n          while (flag) {\n            addedLength += bezierData.points[j].partialLength;\n\n            if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k];\n              }\n\n              break;\n            } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n              segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n              }\n\n              break;\n            }\n\n            if (j < jLen - 1) {\n              j += 1;\n            } else {\n              flag = false;\n            }\n          }\n\n          caching._lastPoint = j;\n          caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n          caching._lastKeyframeIndex = i;\n        }\n      } else {\n        var outX;\n        var outY;\n        var inX;\n        var inY;\n        var keyValue;\n        len = keyData.s.length;\n        endValue = nextKeyData.s || keyData.e;\n\n        if ((this || _global).sh && keyData.h !== 1) {\n          if (frameNum >= nextKeyTime) {\n            newValue[0] = endValue[0];\n            newValue[1] = endValue[1];\n            newValue[2] = endValue[2];\n          } else if (frameNum <= keyTime) {\n            newValue[0] = keyData.s[0];\n            newValue[1] = keyData.s[1];\n            newValue[2] = keyData.s[2];\n          } else {\n            var quatStart = createQuaternion(keyData.s);\n            var quatEnd = createQuaternion(endValue);\n            var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n            quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n          }\n        } else {\n          for (i = 0; i < len; i += 1) {\n            if (keyData.h !== 1) {\n              if (frameNum >= nextKeyTime) {\n                perc = 1;\n              } else if (frameNum < keyTime) {\n                perc = 0;\n              } else {\n                if (keyData.o.x.constructor === Array) {\n                  if (!keyData.__fnct) {\n                    keyData.__fnct = [];\n                  }\n\n                  if (!keyData.__fnct[i]) {\n                    outX = typeof keyData.o.x[i] === \"undefined\" ? keyData.o.x[0] : keyData.o.x[i];\n                    outY = typeof keyData.o.y[i] === \"undefined\" ? keyData.o.y[0] : keyData.o.y[i];\n                    inX = typeof keyData.i.x[i] === \"undefined\" ? keyData.i.x[0] : keyData.i.x[i];\n                    inY = typeof keyData.i.y[i] === \"undefined\" ? keyData.i.y[0] : keyData.i.y[i];\n                    fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                    keyData.__fnct[i] = fnc;\n                  } else {\n                    fnc = keyData.__fnct[i];\n                  }\n                } else if (!keyData.__fnct) {\n                  outX = keyData.o.x;\n                  outY = keyData.o.y;\n                  inX = keyData.i.x;\n                  inY = keyData.i.y;\n                  fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                  keyData.__fnct = fnc;\n                } else {\n                  fnc = keyData.__fnct;\n                }\n\n                perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n              }\n            }\n\n            endValue = nextKeyData.s || keyData.e;\n            keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n            if ((this || _global).propType === \"multidimensional\") {\n              newValue[i] = keyValue;\n            } else {\n              newValue = keyValue;\n            }\n          }\n        }\n      }\n\n      caching.lastIndex = iterationIndex;\n      return newValue;\n    } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n    function slerp(a, b, t) {\n      var out = [];\n      var ax = a[0];\n      var ay = a[1];\n      var az = a[2];\n      var aw = a[3];\n      var bx = b[0];\n      var by = b[1];\n      var bz = b[2];\n      var bw = b[3];\n      var omega;\n      var cosom;\n      var sinom;\n      var scale0;\n      var scale1;\n      cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n      if (cosom < 0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n      }\n\n      if (1 - cosom > 0.000001) {\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n      } else {\n        scale0 = 1 - t;\n        scale1 = t;\n      }\n\n      out[0] = scale0 * ax + scale1 * bx;\n      out[1] = scale0 * ay + scale1 * by;\n      out[2] = scale0 * az + scale1 * bz;\n      out[3] = scale0 * aw + scale1 * bw;\n      return out;\n    }\n\n    function quaternionToEuler(out, quat) {\n      var qx = quat[0];\n      var qy = quat[1];\n      var qz = quat[2];\n      var qw = quat[3];\n      var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n      var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n      var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n      out[0] = heading / degToRads;\n      out[1] = attitude / degToRads;\n      out[2] = bank / degToRads;\n    }\n\n    function createQuaternion(values) {\n      var heading = values[0] * degToRads;\n      var attitude = values[1] * degToRads;\n      var bank = values[2] * degToRads;\n      var c1 = Math.cos(heading / 2);\n      var c2 = Math.cos(attitude / 2);\n      var c3 = Math.cos(bank / 2);\n      var s1 = Math.sin(heading / 2);\n      var s2 = Math.sin(attitude / 2);\n      var s3 = Math.sin(bank / 2);\n      var w = c1 * c2 * c3 - s1 * s2 * s3;\n      var x = s1 * s2 * c3 + c1 * c2 * s3;\n      var y = s1 * c2 * c3 + c1 * s2 * s3;\n      var z = c1 * s2 * c3 - s1 * c2 * s3;\n      return [x, y, z, w];\n    }\n\n    function getValueAtCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n\n      if (!(frameNum === (this || _global)._caching.lastFrame || (this || _global)._caching.lastFrame !== initFrame && ((this || _global)._caching.lastFrame >= endTime && frameNum >= endTime || (this || _global)._caching.lastFrame < initTime && frameNum < initTime))) {\n        if ((this || _global)._caching.lastFrame >= frameNum) {\n          (this || _global)._caching._lastKeyframeIndex = -1;\n          (this || _global)._caching.lastIndex = 0;\n        }\n\n        var renderResult = this.interpolateValue(frameNum, (this || _global)._caching);\n        (this || _global).pv = renderResult;\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function setVValue(val) {\n      var multipliedValue;\n\n      if ((this || _global).propType === \"unidimensional\") {\n        multipliedValue = val * (this || _global).mult;\n\n        if (mathAbs((this || _global).v - multipliedValue) > 0.00001) {\n          (this || _global).v = multipliedValue;\n          (this || _global)._mdf = true;\n        }\n      } else {\n        var i = 0;\n        var len = (this || _global).v.length;\n\n        while (i < len) {\n          multipliedValue = val[i] * (this || _global).mult;\n\n          if (mathAbs((this || _global).v[i] - multipliedValue) > 0.00001) {\n            (this || _global).v[i] = multipliedValue;\n            (this || _global)._mdf = true;\n          }\n\n          i += 1;\n        }\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) {\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = (this || _global)._isFirstFrame;\n      var i;\n      var len = (this || _global).effectsSequence.length;\n      var finalValue = (this || _global).kf ? (this || _global).pv : (this || _global).data.k;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global)._isFirstFrame = false;\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    function ValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global).v = mult ? data.k * mult : data.k;\n      (this || _global).pv = data.k;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).vel = 0;\n      (this || _global).effectsSequence = [];\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function MultiDimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).frameId = -1;\n      var i;\n      var len = data.k.length;\n      (this || _global).v = createTypedArray(\"float32\", len);\n      (this || _global).pv = createTypedArray(\"float32\", len);\n      (this || _global).vel = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).v[i] = data.k[i] * (this || _global).mult;\n        (this || _global).pv[i] = data.k[i];\n      }\n\n      (this || _global)._isFirstFrame = true;\n      (this || _global).effectsSequence = [];\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).frameId = -1;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: 0,\n        _lastKeyframeIndex: -1\n      };\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global).data = data;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).v = initFrame;\n      (this || _global).pv = initFrame;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      var i;\n      var len = data.k.length;\n      var s;\n      var e;\n      var to;\n      var ti;\n\n      for (i = 0; i < len - 1; i += 1) {\n        if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n          s = data.k[i].s;\n          e = data.k[i + 1].s;\n          to = data.k[i].to;\n          ti = data.k[i].ti;\n\n          if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n            data.k[i].to = null;\n            data.k[i].ti = null;\n          }\n\n          if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n            if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n              data.k[i].to = null;\n              data.k[i].ti = null;\n            }\n          }\n        }\n      }\n\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).data = data;\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).frameId = -1;\n      var arrLen = data.k[0].s.length;\n      (this || _global).v = createTypedArray(\"float32\", arrLen);\n      (this || _global).pv = createTypedArray(\"float32\", arrLen);\n\n      for (i = 0; i < arrLen; i += 1) {\n        (this || _global).v[i] = initFrame;\n        (this || _global).pv[i] = initFrame;\n      }\n\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: createTypedArray(\"float32\", arrLen)\n      };\n      (this || _global).addEffect = addEffect;\n    }\n\n    function getProp(elem, data, type, mult, container) {\n      var p;\n\n      if (!data.k.length) {\n        p = new ValueProperty(elem, data, mult, container);\n      } else if (typeof data.k[0] === \"number\") {\n        p = new MultiDimensionalProperty(elem, data, mult, container);\n      } else {\n        switch (type) {\n          case 0:\n            p = new KeyframedValueProperty(elem, data, mult, container);\n            break;\n\n          case 1:\n            p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n            break;\n\n          default:\n            break;\n        }\n      }\n\n      if (p.effectsSequence.length) {\n        container.addDynamicProperty(p);\n      }\n\n      return p;\n    }\n\n    var ob = {\n      getProp: getProp\n    };\n    return ob;\n  }();\n  /* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  /* exported TransformPropertyFactory */\n\n\n  var TransformPropertyFactory = function () {\n    var defaultVector = [0, 0];\n\n    function applyToMatrix(mat) {\n      var _mdf = (this || _global)._mdf;\n      this.iterateDynamicProperties();\n      (this || _global)._mdf = (this || _global)._mdf || _mdf;\n\n      if ((this || _global).a) {\n        mat.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n      }\n\n      if ((this || _global).s) {\n        mat.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n      }\n\n      if ((this || _global).sk) {\n        mat.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n      }\n\n      if ((this || _global).r) {\n        mat.rotate(-(this || _global).r.v);\n      } else {\n        mat.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n      }\n\n      if ((this || _global).data.p.s) {\n        if ((this || _global).data.p.z) {\n          mat.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n        } else {\n          mat.translate((this || _global).px.v, (this || _global).py.v, 0);\n        }\n      } else {\n        mat.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n      }\n    }\n\n    function processKeys(forceRender) {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if ((this || _global)._isDirty) {\n        this.precalculateMatrix();\n        (this || _global)._isDirty = false;\n      }\n\n      this.iterateDynamicProperties();\n\n      if ((this || _global)._mdf || forceRender) {\n        var frameRate;\n\n        (this || _global).v.cloneFromProps((this || _global).pre.props);\n\n        if ((this || _global).appliedTransformations < 1) {\n          (this || _global).v.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n        }\n\n        if ((this || _global).appliedTransformations < 2) {\n          (this || _global).v.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n        }\n\n        if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n          (this || _global).v.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n        }\n\n        if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotate(-(this || _global).r.v);\n        } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n        }\n\n        if ((this || _global).autoOriented) {\n          var v1;\n          var v2;\n          frameRate = (this || _global).elem.globalData.frameRate;\n\n          if ((this || _global).p && (this || _global).p.keyframes && (this || _global).p.getValueAtTime) {\n            if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime <= (this || _global).p.keyframes[0].t) {\n              v1 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[0].t + 0.01) / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[0].t / frameRate, 0);\n            } else if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime >= (this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t) {\n              v1 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n            } else {\n              v1 = (this || _global).p.pv;\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime - 0.01) / frameRate, (this || _global).p.offsetTime);\n            }\n          } else if ((this || _global).px && (this || _global).px.keyframes && (this || _global).py.keyframes && (this || _global).px.getValueAtTime && (this || _global).py.getValueAtTime) {\n            v1 = [];\n            v2 = [];\n            var px = (this || _global).px;\n            var py = (this || _global).py;\n\n            if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n              v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n              v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n              v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n              v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n            } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n              v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n              v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n              v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n              v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n            } else {\n              v1 = [px.pv, py.pv];\n              v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n              v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n            }\n          } else {\n            v2 = defaultVector;\n            v1 = v2;\n          }\n\n          (this || _global).v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n        }\n\n        if ((this || _global).data.p && (this || _global).data.p.s) {\n          if ((this || _global).data.p.z) {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n          } else {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, 0);\n          }\n        } else {\n          (this || _global).v.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n        }\n      }\n\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function precalculateMatrix() {\n      if (!(this || _global).a.k) {\n        (this || _global).pre.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n\n        (this || _global).appliedTransformations = 1;\n      } else {\n        return;\n      }\n\n      if (!(this || _global).s.effectsSequence.length) {\n        (this || _global).pre.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n\n        (this || _global).appliedTransformations = 2;\n      } else {\n        return;\n      }\n\n      if ((this || _global).sk) {\n        if (!(this || _global).sk.effectsSequence.length && !(this || _global).sa.effectsSequence.length) {\n          (this || _global).pre.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n\n          (this || _global).appliedTransformations = 3;\n        } else {\n          return;\n        }\n      }\n\n      if ((this || _global).r) {\n        if (!(this || _global).r.effectsSequence.length) {\n          (this || _global).pre.rotate(-(this || _global).r.v);\n\n          (this || _global).appliedTransformations = 4;\n        }\n      } else if (!(this || _global).rz.effectsSequence.length && !(this || _global).ry.effectsSequence.length && !(this || _global).rx.effectsSequence.length && !(this || _global).or.effectsSequence.length) {\n        (this || _global).pre.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n\n        (this || _global).appliedTransformations = 4;\n      }\n    }\n\n    function autoOrient() {//\n      // var prevP = this.getValueAtTime();\n    }\n\n    function addDynamicProperty(prop) {\n      this._addDynamicProperty(prop);\n\n      (this || _global).elem.addDynamicProperty(prop);\n\n      (this || _global)._isDirty = true;\n    }\n\n    function TransformProperty(elem, data, container) {\n      (this || _global).elem = elem;\n      (this || _global).frameId = -1;\n      (this || _global).propType = \"transform\";\n      (this || _global).data = data;\n      (this || _global).v = new Matrix(); // Precalculated matrix with non animated properties\n\n      (this || _global).pre = new Matrix();\n      (this || _global).appliedTransformations = 0;\n      this.initDynamicPropertyContainer(container || elem);\n\n      if (data.p && data.p.s) {\n        (this || _global).px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this || _global);\n        (this || _global).py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this || _global);\n\n        if (data.p.z) {\n          (this || _global).pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this || _global);\n        }\n      } else {\n        (this || _global).p = PropertyFactory.getProp(elem, data.p || {\n          k: [0, 0, 0]\n        }, 1, 0, this || _global);\n      }\n\n      if (data.rx) {\n        (this || _global).rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this || _global);\n        (this || _global).ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this || _global);\n        (this || _global).rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this || _global);\n\n        if (data.or.k[0].ti) {\n          var i;\n          var len = data.or.k.length;\n\n          for (i = 0; i < len; i += 1) {\n            data.or.k[i].to = null;\n            data.or.k[i].ti = null;\n          }\n        }\n\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this || _global); // sh Indicates it needs to be capped between -180 and 180\n\n        (this || _global).or.sh = true;\n      } else {\n        (this || _global).r = PropertyFactory.getProp(elem, data.r || {\n          k: 0\n        }, 0, degToRads, this || _global);\n      }\n\n      if (data.sk) {\n        (this || _global).sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this || _global);\n        (this || _global).sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this || _global);\n      }\n\n      (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n        k: [0, 0, 0]\n      }, 1, 0, this || _global);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: [100, 100, 100]\n      }, 1, 0.01, this || _global); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n      if (data.o) {\n        (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n      } else {\n        (this || _global).o = {\n          _mdf: false,\n          v: 1\n        };\n      }\n\n      (this || _global)._isDirty = true;\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue(true);\n      }\n    }\n\n    TransformProperty.prototype = {\n      applyToMatrix: applyToMatrix,\n      getValue: processKeys,\n      precalculateMatrix: precalculateMatrix,\n      autoOrient: autoOrient\n    };\n    extendPrototype([DynamicPropertyContainer], TransformProperty);\n    TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n    TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n    function getTransformProperty(elem, data, container) {\n      return new TransformProperty(elem, data, container);\n    }\n\n    return {\n      getTransformProperty: getTransformProperty\n    };\n  }();\n  /* global createSizedArray, createSizedArray, pointPool */\n\n\n  function ShapePath() {\n    (this || _global).c = false;\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 8;\n    (this || _global).v = createSizedArray((this || _global)._maxLength);\n    (this || _global).o = createSizedArray((this || _global)._maxLength);\n    (this || _global).i = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapePath.prototype.setPathData = function (closed, len) {\n    (this || _global).c = closed;\n    this.setLength(len);\n    var i = 0;\n\n    while (i < len) {\n      (this || _global).v[i] = pointPool.newElement();\n      (this || _global).o[i] = pointPool.newElement();\n      (this || _global).i[i] = pointPool.newElement();\n      i += 1;\n    }\n  };\n\n  ShapePath.prototype.setLength = function (len) {\n    while ((this || _global)._maxLength < len) {\n      this.doubleArrayLength();\n    }\n\n    (this || _global)._length = len;\n  };\n\n  ShapePath.prototype.doubleArrayLength = function () {\n    (this || _global).v = (this || _global).v.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).i = (this || _global).i.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).o = (this || _global).o.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global)._maxLength *= 2;\n  };\n\n  ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n    var arr;\n    (this || _global)._length = Math.max((this || _global)._length, pos + 1);\n\n    if ((this || _global)._length >= (this || _global)._maxLength) {\n      this.doubleArrayLength();\n    }\n\n    switch (type) {\n      case \"v\":\n        arr = (this || _global).v;\n        break;\n\n      case \"i\":\n        arr = (this || _global).i;\n        break;\n\n      case \"o\":\n        arr = (this || _global).o;\n        break;\n\n      default:\n        arr = [];\n        break;\n    }\n\n    if (!arr[pos] || arr[pos] && !replace) {\n      arr[pos] = pointPool.newElement();\n    }\n\n    arr[pos][0] = x;\n    arr[pos][1] = y;\n  };\n\n  ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n    this.setXYAt(vX, vY, \"v\", pos, replace);\n    this.setXYAt(oX, oY, \"o\", pos, replace);\n    this.setXYAt(iX, iY, \"i\", pos, replace);\n  };\n\n  ShapePath.prototype.reverse = function () {\n    var newPath = new ShapePath();\n    newPath.setPathData((this || _global).c, (this || _global)._length);\n    var vertices = (this || _global).v;\n    var outPoints = (this || _global).o;\n    var inPoints = (this || _global).i;\n    var init = 0;\n\n    if ((this || _global).c) {\n      newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n      init = 1;\n    }\n\n    var cnt = (this || _global)._length - 1;\n    var len = (this || _global)._length;\n    var i;\n\n    for (i = init; i < len; i += 1) {\n      newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n      cnt -= 1;\n    }\n\n    return newPath;\n  };\n  /* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n    shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\n\n  /* exported ShapePropertyFactory */\n\n\n  var ShapePropertyFactory = function () {\n    var initFrame = -999999;\n\n    function interpolateShape(frameNum, previousValue, caching) {\n      var iterationIndex = caching.lastIndex;\n      var keyPropS;\n      var keyPropE;\n      var isHold;\n      var j;\n      var k;\n      var jLen;\n      var kLen;\n      var perc;\n      var vertexValue;\n      var kf = (this || _global).keyframes;\n\n      if (frameNum < kf[0].t - (this || _global).offsetTime) {\n        keyPropS = kf[0].s[0];\n        isHold = true;\n        iterationIndex = 0;\n      } else if (frameNum >= kf[kf.length - 1].t - (this || _global).offsetTime) {\n        keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n        /* if(kf[kf.length - 1].s){\r\n                  keyPropS = kf[kf.length - 1].s[0];\r\n              }else{\r\n                  keyPropS = kf[kf.length - 2].e[0];\r\n              } */\n\n        isHold = true;\n      } else {\n        var i = iterationIndex;\n        var len = kf.length - 1;\n        var flag = true;\n        var keyData;\n        var nextKeyData;\n\n        while (flag) {\n          keyData = kf[i];\n          nextKeyData = kf[i + 1];\n\n          if (nextKeyData.t - (this || _global).offsetTime > frameNum) {\n            break;\n          }\n\n          if (i < len - 1) {\n            i += 1;\n          } else {\n            flag = false;\n          }\n        }\n\n        isHold = keyData.h === 1;\n        iterationIndex = i;\n\n        if (!isHold) {\n          if (frameNum >= nextKeyData.t - (this || _global).offsetTime) {\n            perc = 1;\n          } else if (frameNum < keyData.t - (this || _global).offsetTime) {\n            perc = 0;\n          } else {\n            var fnc;\n\n            if (keyData.__fnct) {\n              fnc = keyData.__fnct;\n            } else {\n              fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n              keyData.__fnct = fnc;\n            }\n\n            perc = fnc((frameNum - (keyData.t - (this || _global).offsetTime)) / (nextKeyData.t - (this || _global).offsetTime - (keyData.t - (this || _global).offsetTime)));\n          }\n\n          keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n        }\n\n        keyPropS = keyData.s[0];\n      }\n\n      jLen = previousValue._length;\n      kLen = keyPropS.i[0].length;\n      caching.lastIndex = iterationIndex;\n\n      for (j = 0; j < jLen; j += 1) {\n        for (k = 0; k < kLen; k += 1) {\n          vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n          previousValue.i[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n          previousValue.o[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n          previousValue.v[j][k] = vertexValue;\n        }\n      }\n    }\n\n    function interpolateShapeCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n      var lastFrame = (this || _global)._caching.lastFrame;\n\n      if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n        /// /\n        (this || _global)._caching.lastIndex = lastFrame < frameNum ? (this || _global)._caching.lastIndex : 0;\n        this.interpolateShape(frameNum, (this || _global).pv, (this || _global)._caching); /// /\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function resetShape() {\n      (this || _global).paths = (this || _global).localShapeCollection;\n    }\n\n    function shapesEqual(shape1, shape2) {\n      if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n        return false;\n      }\n\n      var i;\n      var len = shape1._length;\n\n      for (i = 0; i < len; i += 1) {\n        if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    function setVValue(newPath) {\n      if (!shapesEqual((this || _global).v, newPath)) {\n        (this || _global).v = shapePool.clone(newPath);\n\n        (this || _global).localShapeCollection.releaseShapes();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global)._mdf = true;\n        (this || _global).paths = (this || _global).localShapeCollection;\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if (!(this || _global).effectsSequence.length) {\n        (this || _global)._mdf = false;\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = false;\n      var finalValue;\n\n      if ((this || _global).kf) {\n        finalValue = (this || _global).pv;\n      } else if ((this || _global).data.ks) {\n        finalValue = (this || _global).data.ks.k;\n      } else {\n        finalValue = (this || _global).data.pt.k;\n      }\n\n      var i;\n      var len = (this || _global).effectsSequence.length;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function ShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).container = elem;\n      (this || _global).elem = elem;\n      (this || _global).data = data;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global)._mdf = false;\n      var pathData = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).v = shapePool.clone(pathData);\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).reset = resetShape;\n      (this || _global).effectsSequence = [];\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    ShapeProperty.prototype.interpolateShape = interpolateShape;\n    ShapeProperty.prototype.getValue = processEffectsSequence;\n    ShapeProperty.prototype.setVValue = setVValue;\n    ShapeProperty.prototype.addEffect = addEffect;\n\n    function KeyframedShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).elem = elem;\n      (this || _global).container = elem;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).keyframes = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      var len = (this || _global).keyframes[0].s[0].i.length;\n      (this || _global).v = shapePool.newElement();\n\n      (this || _global).v.setPathData((this || _global).keyframes[0].s[0].c, len);\n\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).lastFrame = initFrame;\n      (this || _global).reset = resetShape;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0\n      };\n      (this || _global).effectsSequence = [interpolateShapeCurrentTime.bind(this || _global)];\n    }\n\n    KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n    KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n    KeyframedShapeProperty.prototype.setVValue = setVValue;\n    KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n    var EllShapeProperty = function () {\n      var cPoint = roundCorner;\n\n      function EllShapePropertyFactory(elem, data) {\n        /* this.v = {\r\n                  v: createSizedArray(4),\r\n                  i: createSizedArray(4),\r\n                  o: createSizedArray(4),\r\n                  c: true\r\n              }; */\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 4);\n\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).d = data.d;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertEllToPath();\n        }\n      }\n\n      EllShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertEllToPath();\n          }\n        },\n        convertEllToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var s0 = (this || _global).s.v[0] / 2;\n          var s1 = (this || _global).s.v[1] / 2;\n\n          var _cw = (this || _global).d !== 3;\n\n          var _v = (this || _global).v;\n          _v.v[0][0] = p0;\n          _v.v[0][1] = p1 - s1;\n          _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.v[1][1] = p1;\n          _v.v[2][0] = p0;\n          _v.v[2][1] = p1 + s1;\n          _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.v[3][1] = p1;\n          _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.i[0][1] = p1 - s1;\n          _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.i[1][1] = p1 - s1 * cPoint;\n          _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.i[2][1] = p1 + s1;\n          _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.i[3][1] = p1 + s1 * cPoint;\n          _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.o[0][1] = p1 - s1;\n          _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.o[1][1] = p1 + s1 * cPoint;\n          _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.o[2][1] = p1 + s1;\n          _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.o[3][1] = p1 - s1 * cPoint;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n      return EllShapePropertyFactory;\n    }();\n\n    var StarShapeProperty = function () {\n      function StarShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 0);\n\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).data = data;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n\n        if (data.sy === 1) {\n          (this || _global).ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this || _global);\n          (this || _global).is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this || _global);\n          (this || _global).convertToPath = (this || _global).convertStarToPath;\n        } else {\n          (this || _global).convertToPath = (this || _global).convertPolygonToPath;\n        }\n\n        (this || _global).pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this || _global);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this || _global);\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 0, 0, this || _global);\n        (this || _global).os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this || _global);\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertToPath();\n        }\n      }\n\n      StarShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertToPath();\n          }\n        },\n        convertStarToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v) * 2;\n          var angle = Math.PI * 2 / numPts;\n          /* this.v.v.length = numPts;\r\n                  this.v.i.length = numPts;\r\n                  this.v.o.length = numPts; */\n\n          var longFlag = true;\n          var longRad = (this || _global).or.v;\n          var shortRad = (this || _global).ir.v;\n          var longRound = (this || _global).os.v;\n          var shortRound = (this || _global).is.v;\n          var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n          var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n          var i;\n          var rad;\n          var roundness;\n          var perimSegment;\n          var currentAng = -Math.PI / 2;\n          currentAng += (this || _global).r.v;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            rad = longFlag ? longRad : shortRad;\n            roundness = longFlag ? longRound : shortRound;\n            perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n            /* this.v.v[i] = [x,y];\r\n                      this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n                      this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n                      this.v._length = numPts; */\n\n\n            longFlag = !longFlag;\n            currentAng += angle * dir;\n          }\n        },\n        convertPolygonToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v);\n          var angle = Math.PI * 2 / numPts;\n          var rad = (this || _global).or.v;\n          var roundness = (this || _global).os.v;\n          var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n          var i;\n          var currentAng = -Math.PI * 0.5;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          currentAng += (this || _global).r.v;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\n            currentAng += angle * dir;\n          }\n\n          (this || _global).paths.length = 0;\n          (this || _global).paths[0] = (this || _global).v;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n      return StarShapePropertyFactory;\n    }();\n\n    var RectShapeProperty = function () {\n      function RectShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n        (this || _global).v.c = true;\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertRectToPath();\n        }\n      }\n\n      RectShapePropertyFactory.prototype = {\n        convertRectToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var v0 = (this || _global).s.v[0] / 2;\n          var v1 = (this || _global).s.v[1] / 2;\n          var round = bmMin(v0, v1, (this || _global).r.v);\n          var cPoint = round * (1 - roundCorner);\n          (this || _global).v._length = 0;\n\n          if ((this || _global).d === 2 || (this || _global).d === 1) {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\n            (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n            }\n          } else {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n            }\n          }\n        },\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertRectToPath();\n          }\n        },\n        reset: resetShape\n      };\n      extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n      return RectShapePropertyFactory;\n    }();\n\n    function getShapeProp(elem, data, type) {\n      var prop;\n\n      if (type === 3 || type === 4) {\n        var dataProp = type === 3 ? data.pt : data.ks;\n        var keys = dataProp.k;\n\n        if (keys.length) {\n          prop = new KeyframedShapeProperty(elem, data, type);\n        } else {\n          prop = new ShapeProperty(elem, data, type);\n        }\n      } else if (type === 5) {\n        prop = new RectShapeProperty(elem, data);\n      } else if (type === 6) {\n        prop = new EllShapeProperty(elem, data);\n      } else if (type === 7) {\n        prop = new StarShapeProperty(elem, data);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    }\n\n    function getConstructorFunction() {\n      return ShapeProperty;\n    }\n\n    function getKeyframedConstructorFunction() {\n      return KeyframedShapeProperty;\n    }\n\n    var ob = {};\n    ob.getShapeProp = getShapeProp;\n    ob.getConstructorFunction = getConstructorFunction;\n    ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n    return ob;\n  }();\n  /* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\n\n  /* exported ShapeModifiers */\n\n\n  var ShapeModifiers = function () {\n    var ob = {};\n    var modifiers = {};\n    ob.registerModifier = registerModifier;\n    ob.getModifier = getModifier;\n\n    function registerModifier(nm, factory) {\n      if (!modifiers[nm]) {\n        modifiers[nm] = factory;\n      }\n    }\n\n    function getModifier(nm, elem, data) {\n      return new modifiers[nm](elem, data);\n    }\n\n    return ob;\n  }();\n\n  function ShapeModifier() {}\n\n  ShapeModifier.prototype.initModifierProperties = function () {};\n\n  ShapeModifier.prototype.addShapeToModifier = function () {};\n\n  ShapeModifier.prototype.addShape = function (data) {\n    if (!(this || _global).closed) {\n      // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n      data.sh.container.addDynamicProperty(data.sh);\n      var shapeData = {\n        shape: data.sh,\n        data: data,\n        localShapeCollection: shapeCollectionPool.newShapeCollection()\n      };\n\n      (this || _global).shapes.push(shapeData);\n\n      this.addShapeToModifier(shapeData);\n\n      if ((this || _global)._isAnimated) {\n        data.setAsAnimated();\n      }\n    }\n  };\n\n  ShapeModifier.prototype.init = function (elem, data) {\n    (this || _global).shapes = [];\n    (this || _global).elem = elem;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, data);\n    (this || _global).frameId = initialDefaultFrame;\n    (this || _global).closed = false;\n    (this || _global).k = false;\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  ShapeModifier.prototype.processKeys = function () {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  extendPrototype([DynamicPropertyContainer], ShapeModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\n\n  function TrimModifier() {}\n\n  extendPrototype([ShapeModifier], TrimModifier);\n\n  TrimModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0, this || _global);\n    (this || _global).sValue = 0;\n    (this || _global).eValue = 0;\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).m = data.m;\n    (this || _global)._isAnimated = !!(this || _global).s.effectsSequence.length || !!(this || _global).e.effectsSequence.length || !!(this || _global).o.effectsSequence.length;\n  };\n\n  TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n    shapeData.pathsData = [];\n  };\n\n  TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n    var segments = [];\n\n    if (e <= 1) {\n      segments.push({\n        s: s,\n        e: e\n      });\n    } else if (s >= 1) {\n      segments.push({\n        s: s - 1,\n        e: e - 1\n      });\n    } else {\n      segments.push({\n        s: s,\n        e: 1\n      });\n      segments.push({\n        s: 0,\n        e: e - 1\n      });\n    }\n\n    var shapeSegments = [];\n    var i;\n    var len = segments.length;\n    var segmentOb;\n\n    for (i = 0; i < len; i += 1) {\n      segmentOb = segments[i];\n\n      if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n        var shapeS;\n        var shapeE;\n\n        if (segmentOb.s * totalModifierLength <= addedLength) {\n          shapeS = 0;\n        } else {\n          shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n          shapeE = 1;\n        } else {\n          shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        shapeSegments.push([shapeS, shapeE]);\n      }\n    }\n\n    if (!shapeSegments.length) {\n      shapeSegments.push([0, 0]);\n    }\n\n    return shapeSegments;\n  };\n\n  TrimModifier.prototype.releasePathsData = function (pathsData) {\n    var i;\n    var len = pathsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      segmentsLengthPool.release(pathsData[i]);\n    }\n\n    pathsData.length = 0;\n    return pathsData;\n  };\n\n  TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n    var s;\n    var e;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var o = (this || _global).o.v % 360 / 360;\n\n      if (o < 0) {\n        o += 1;\n      }\n\n      if ((this || _global).s.v > 1) {\n        s = 1 + o;\n      } else if ((this || _global).s.v < 0) {\n        s = 0 + o;\n      } else {\n        s = (this || _global).s.v + o;\n      }\n\n      if ((this || _global).e.v > 1) {\n        e = 1 + o;\n      } else if ((this || _global).e.v < 0) {\n        e = 0 + o;\n      } else {\n        e = (this || _global).e.v + o;\n      }\n\n      if (s > e) {\n        var _s = s;\n        s = e;\n        e = _s;\n      }\n\n      s = Math.round(s * 10000) * 0.0001;\n      e = Math.round(e * 10000) * 0.0001;\n      (this || _global).sValue = s;\n      (this || _global).eValue = e;\n    } else {\n      s = (this || _global).sValue;\n      e = (this || _global).eValue;\n    }\n\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var pathsData;\n    var pathData;\n    var totalShapeLength;\n    var totalModifierLength = 0;\n\n    if (e === s) {\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].localShapeCollection.releaseShapes();\n\n        (this || _global).shapes[i].shape._mdf = true;\n        (this || _global).shapes[i].shape.paths = (this || _global).shapes[i].localShapeCollection;\n\n        if ((this || _global)._mdf) {\n          (this || _global).shapes[i].pathsData.length = 0;\n        }\n      }\n    } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n      var segments = [];\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n        if (!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame && (this || _global).m !== 2) {\n          shapeData.shape.paths = shapeData.localShapeCollection;\n        } else {\n          shapePaths = shapeData.shape.paths;\n          jLen = shapePaths._length;\n          totalShapeLength = 0;\n\n          if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n            totalShapeLength = shapeData.totalShapeLength;\n          } else {\n            pathsData = this.releasePathsData(shapeData.pathsData);\n\n            for (j = 0; j < jLen; j += 1) {\n              pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n              pathsData.push(pathData);\n              totalShapeLength += pathData.totalLength;\n            }\n\n            shapeData.totalShapeLength = totalShapeLength;\n            shapeData.pathsData = pathsData;\n          }\n\n          totalModifierLength += totalShapeLength;\n          shapeData.shape._mdf = true;\n        }\n      }\n\n      var shapeS = s;\n      var shapeE = e;\n      var addedLength = 0;\n      var edges;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shapeData = (this || _global).shapes[i];\n\n        if (shapeData.shape._mdf) {\n          localShapeCollection = shapeData.localShapeCollection;\n          localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n          if ((this || _global).m === 2 && len > 1) {\n            edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n            addedLength += shapeData.totalShapeLength;\n          } else {\n            edges = [[shapeS, shapeE]];\n          }\n\n          jLen = edges.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            shapeS = edges[j][0];\n            shapeE = edges[j][1];\n            segments.length = 0;\n\n            if (shapeE <= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength * shapeE\n              });\n            } else if (shapeS >= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * (shapeS - 1),\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            } else {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength\n              });\n              segments.push({\n                s: 0,\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            }\n\n            var newShapesData = this.addShapes(shapeData, segments[0]);\n\n            if (segments[0].s !== segments[0].e) {\n              if (segments.length > 1) {\n                var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n                if (lastShapeInCollection.c) {\n                  var lastShape = newShapesData.pop();\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n                } else {\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1]);\n                }\n              }\n\n              this.addPaths(newShapesData, localShapeCollection);\n            }\n          }\n\n          shapeData.shape.paths = localShapeCollection;\n        }\n      }\n    } else if ((this || _global)._mdf) {\n      for (i = 0; i < len; i += 1) {\n        // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n        // Don't remove this even if it's losing cached info.\n        (this || _global).shapes[i].pathsData.length = 0;\n        (this || _global).shapes[i].shape._mdf = true;\n      }\n    }\n  };\n\n  TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n    var i;\n    var len = newPaths.length;\n\n    for (i = 0; i < len; i += 1) {\n      localShapeCollection.addShape(newPaths[i]);\n    }\n  };\n\n  TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n    shapePath.setXYAt(pt2[0], pt2[1], \"o\", pos);\n    shapePath.setXYAt(pt3[0], pt3[1], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(pt1[0], pt1[1], \"v\", pos);\n    }\n\n    shapePath.setXYAt(pt4[0], pt4[1], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n    shapePath.setXYAt(points[1], points[5], \"o\", pos);\n    shapePath.setXYAt(points[2], points[6], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(points[0], points[4], \"v\", pos);\n    }\n\n    shapePath.setXYAt(points[3], points[7], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n    var pathsData = shapeData.pathsData;\n    var shapePaths = shapeData.shape.paths.shapes;\n    var i;\n    var len = shapeData.shape.paths._length;\n    var j;\n    var jLen;\n    var addedLength = 0;\n    var currentLengthData;\n    var segmentCount;\n    var lengths;\n    var segment;\n    var shapes = [];\n    var initPos;\n    var newShape = true;\n\n    if (!shapePath) {\n      shapePath = shapePool.newElement();\n      segmentCount = 0;\n      initPos = 0;\n    } else {\n      segmentCount = shapePath._length;\n      initPos = shapePath._length;\n    }\n\n    shapes.push(shapePath);\n\n    for (i = 0; i < len; i += 1) {\n      lengths = pathsData[i].lengths;\n      shapePath.c = shapePaths[i].c;\n      jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n      for (j = 1; j < jLen; j += 1) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n          addedLength += currentLengthData.addedLength;\n          shapePath.c = false;\n        } else if (addedLength > shapeSegment.e) {\n          shapePath.c = false;\n          break;\n        } else {\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n\n          addedLength += currentLengthData.addedLength;\n          segmentCount += 1;\n        }\n      }\n\n      if (shapePaths[i].c && lengths.length) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength <= shapeSegment.e) {\n          var segmentLength = lengths[j - 1].addedLength;\n\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n        } else {\n          shapePath.c = false;\n        }\n\n        addedLength += currentLengthData.addedLength;\n        segmentCount += 1;\n      }\n\n      if (shapePath._length) {\n        shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], \"i\", initPos);\n        shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], \"o\", shapePath._length - 1);\n      }\n\n      if (addedLength > shapeSegment.e) {\n        break;\n      }\n\n      if (i < len - 1) {\n        shapePath = shapePool.newElement();\n        newShape = true;\n        shapes.push(shapePath);\n        segmentCount = 0;\n      }\n    }\n\n    return shapes;\n  };\n\n  ShapeModifiers.registerModifier(\"tm\", TrimModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\n\n  function RoundCornersModifier() {}\n\n  extendPrototype([ShapeModifier], RoundCornersModifier);\n\n  RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).rd = PropertyFactory.getProp(elem, data.r, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).rd.effectsSequence.length;\n  };\n\n  RoundCornersModifier.prototype.processPath = function (path, round) {\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var i;\n    var len = path._length;\n    var currentV;\n    var currentI;\n    var currentO;\n    var closerV;\n    var distance;\n    var newPosPerc;\n    var index = 0;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < len; i += 1) {\n      currentV = path.v[i];\n      currentO = path.o[i];\n      currentI = path.i[i];\n\n      if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n        if ((i === 0 || i === len - 1) && !path.c) {\n          clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n          /* clonedPath.v[index] = currentV;\r\n                  clonedPath.o[index] = currentO;\r\n                  clonedPath.i[index] = currentI; */\n\n          index += 1;\n        } else {\n          if (i === 0) {\n            closerV = path.v[len - 1];\n          } else {\n            closerV = path.v[i - 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = iX;\n          iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n          vY = iY;\n          oX = vX - (vX - currentV[0]) * roundCorner;\n          oY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n\n          if (i === len - 1) {\n            closerV = path.v[0];\n          } else {\n            closerV = path.v[i + 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = oX;\n          oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n          vY = oY;\n          iX = vX - (vX - currentV[0]) * roundCorner;\n          iY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n        }\n      } else {\n        clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n        index += 1;\n      }\n    }\n\n    return clonedPath;\n  };\n\n  RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var rd = (this || _global).rd.v;\n\n    if (rd !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\n\n  function PuckerAndBloatModifier() {}\n\n  extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n  PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).amount = PropertyFactory.getProp(elem, data.a, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).amount.effectsSequence.length;\n  };\n\n  PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n    var percent = amount / 100;\n    var centerPoint = [0, 0];\n    var pathLength = path._length;\n    var i = 0;\n\n    for (i = 0; i < pathLength; i += 1) {\n      centerPoint[0] += path.v[i][0];\n      centerPoint[1] += path.v[i][1];\n    }\n\n    centerPoint[0] /= pathLength;\n    centerPoint[1] /= pathLength;\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < pathLength; i += 1) {\n      vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n      vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n      oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n      oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n      iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n      iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n      clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n    }\n\n    return clonedPath;\n  };\n\n  PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var amount = (this || _global).amount.v;\n\n    if (amount !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier);\n  /* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\n\n  function RepeaterModifier() {}\n\n  extendPrototype([ShapeModifier], RepeaterModifier);\n\n  RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 0, null, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, null, this || _global);\n    (this || _global).tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this || _global);\n    (this || _global).so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this || _global);\n    (this || _global).eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this || _global);\n    (this || _global).data = data;\n\n    if (!(this || _global).dynamicProperties.length) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = !!(this || _global).dynamicProperties.length;\n    (this || _global).pMatrix = new Matrix();\n    (this || _global).rMatrix = new Matrix();\n    (this || _global).sMatrix = new Matrix();\n    (this || _global).tMatrix = new Matrix();\n    (this || _global).matrix = new Matrix();\n  };\n\n  RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n    var dir = inv ? -1 : 1;\n    var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n    var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n    pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n    rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    rMatrix.rotate(-transform.r.v * dir * perc);\n    rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n    sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n    sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n  };\n\n  RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n    (this || _global).elem = elem;\n    (this || _global).arr = arr;\n    (this || _global).pos = pos;\n    (this || _global).elemsData = elemsData;\n    (this || _global)._currentCopies = 0;\n    (this || _global)._elements = [];\n    (this || _global)._groups = [];\n    (this || _global).frameId = -1;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, arr[pos]);\n\n    while (pos > 0) {\n      pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n      (this || _global)._elements.unshift(arr[pos]);\n    }\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  RepeaterModifier.prototype.resetElements = function (elements) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._processed = false;\n\n      if (elements[i].ty === \"gr\") {\n        this.resetElements(elements[i].it);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.cloneElements = function (elements) {\n    var newElements = JSON.parse(JSON.stringify(elements));\n    this.resetElements(newElements);\n    return newElements;\n  };\n\n  RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._render = renderFlag;\n\n      if (elements[i].ty === \"gr\") {\n        this.changeGroupRender(elements[i].it, renderFlag);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n    var items;\n    var itemsTransform;\n    var i;\n    var dir;\n    var cont;\n    var hasReloaded = false;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var copies = Math.ceil((this || _global).c.v);\n\n      if ((this || _global)._groups.length < copies) {\n        while ((this || _global)._groups.length < copies) {\n          var group = {\n            it: this.cloneElements((this || _global)._elements),\n            ty: \"gr\"\n          };\n          group.it.push({\n            a: {\n              a: 0,\n              ix: 1,\n              k: [0, 0]\n            },\n            nm: \"Transform\",\n            o: {\n              a: 0,\n              ix: 7,\n              k: 100\n            },\n            p: {\n              a: 0,\n              ix: 2,\n              k: [0, 0]\n            },\n            r: {\n              a: 1,\n              ix: 6,\n              k: [{\n                s: 0,\n                e: 0,\n                t: 0\n              }, {\n                s: 0,\n                e: 0,\n                t: 1\n              }]\n            },\n            s: {\n              a: 0,\n              ix: 3,\n              k: [100, 100]\n            },\n            sa: {\n              a: 0,\n              ix: 5,\n              k: 0\n            },\n            sk: {\n              a: 0,\n              ix: 4,\n              k: 0\n            },\n            ty: \"tr\"\n          });\n\n          (this || _global).arr.splice(0, 0, group);\n\n          (this || _global)._groups.splice(0, 0, group);\n\n          (this || _global)._currentCopies += 1;\n        }\n\n        (this || _global).elem.reloadShapes();\n\n        hasReloaded = true;\n      }\n\n      cont = 0;\n      var renderFlag;\n\n      for (i = 0; i <= (this || _global)._groups.length - 1; i += 1) {\n        renderFlag = cont < copies;\n        (this || _global)._groups[i]._render = renderFlag;\n        this.changeGroupRender((this || _global)._groups[i].it, renderFlag);\n\n        if (!renderFlag) {\n          var elems = (this || _global).elemsData[i].it;\n          var transformData = elems[elems.length - 1];\n\n          if (transformData.transform.op.v !== 0) {\n            transformData.transform.op._mdf = true;\n            transformData.transform.op.v = 0;\n          } else {\n            transformData.transform.op._mdf = false;\n          }\n        }\n\n        cont += 1;\n      }\n\n      (this || _global)._currentCopies = copies; /// /\n\n      var offset = (this || _global).o.v;\n      var offsetModulo = offset % 1;\n      var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n      var pProps = (this || _global).pMatrix.props;\n      var rProps = (this || _global).rMatrix.props;\n      var sProps = (this || _global).sMatrix.props;\n\n      (this || _global).pMatrix.reset();\n\n      (this || _global).rMatrix.reset();\n\n      (this || _global).sMatrix.reset();\n\n      (this || _global).tMatrix.reset();\n\n      (this || _global).matrix.reset();\n\n      var iteration = 0;\n\n      if (offset > 0) {\n        while (iteration < roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          iteration += 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, offsetModulo, false);\n          iteration += offsetModulo;\n        }\n      } else if (offset < 0) {\n        while (iteration > roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, true);\n          iteration -= 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, -offsetModulo, true);\n          iteration -= offsetModulo;\n        }\n      }\n\n      i = (this || _global).data.m === 1 ? 0 : (this || _global)._currentCopies - 1;\n      dir = (this || _global).data.m === 1 ? 1 : -1;\n      cont = (this || _global)._currentCopies;\n      var j;\n      var jLen;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        jLen = itemsTransform.length;\n        items[items.length - 1].transform.mProps._mdf = true;\n        items[items.length - 1].transform.op._mdf = true;\n        items[items.length - 1].transform.op.v = (this || _global)._currentCopies === 1 ? (this || _global).so.v : (this || _global).so.v + ((this || _global).eo.v - (this || _global).so.v) * (i / ((this || _global)._currentCopies - 1));\n\n        if (iteration !== 0) {\n          if (i !== 0 && dir === 1 || i !== (this || _global)._currentCopies - 1 && dir === -1) {\n            this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          }\n\n          (this || _global).matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n\n          (this || _global).matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n\n          (this || _global).matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n\n          (this || _global).matrix.reset();\n        } else {\n          (this || _global).matrix.reset();\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n        }\n\n        iteration += 1;\n        cont -= 1;\n        i += dir;\n      }\n    } else {\n      cont = (this || _global)._currentCopies;\n      i = 0;\n      dir = 1;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        items[items.length - 1].transform.mProps._mdf = false;\n        items[items.length - 1].transform.op._mdf = false;\n        cont -= 1;\n        i += dir;\n      }\n    }\n\n    return hasReloaded;\n  };\n\n  RepeaterModifier.prototype.addShape = function () {};\n\n  ShapeModifiers.registerModifier(\"rp\", RepeaterModifier);\n  /* global createSizedArray, shapePool */\n\n  function ShapeCollection() {\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 4;\n    (this || _global).shapes = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapeCollection.prototype.addShape = function (shapeData) {\n    if ((this || _global)._length === (this || _global)._maxLength) {\n      (this || _global).shapes = (this || _global).shapes.concat(createSizedArray((this || _global)._maxLength));\n      (this || _global)._maxLength *= 2;\n    }\n\n    (this || _global).shapes[(this || _global)._length] = shapeData;\n    (this || _global)._length += 1;\n  };\n\n  ShapeCollection.prototype.releaseShapes = function () {\n    var i;\n\n    for (i = 0; i < (this || _global)._length; i += 1) {\n      shapePool.release((this || _global).shapes[i]);\n    }\n\n    (this || _global)._length = 0;\n  };\n  /* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function DashProperty(elem, data, renderer, container) {\n    (this || _global).elem = elem;\n    (this || _global).frameId = -1;\n    (this || _global).dataProps = createSizedArray(data.length);\n    (this || _global).renderer = renderer;\n    (this || _global).k = false;\n    (this || _global).dashStr = \"\";\n    (this || _global).dashArray = createTypedArray(\"float32\", data.length ? data.length - 1 : 0);\n    (this || _global).dashoffset = createTypedArray(\"float32\", 1);\n    this.initDynamicPropertyContainer(container);\n    var i;\n    var len = data.length || 0;\n    var prop;\n\n    for (i = 0; i < len; i += 1) {\n      prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this || _global);\n      (this || _global).k = prop.k || (this || _global).k;\n      (this || _global).dataProps[i] = {\n        n: data[i].n,\n        p: prop\n      };\n    }\n\n    if (!(this || _global).k) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = (this || _global).k;\n  }\n\n  DashProperty.prototype.getValue = function (forceRender) {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId && !forceRender) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n    (this || _global)._mdf = (this || _global)._mdf || forceRender;\n\n    if ((this || _global)._mdf) {\n      var i = 0;\n      var len = (this || _global).dataProps.length;\n\n      if ((this || _global).renderer === \"svg\") {\n        (this || _global).dashStr = \"\";\n      }\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).dataProps[i].n !== \"o\") {\n          if ((this || _global).renderer === \"svg\") {\n            (this || _global).dashStr += \" \" + (this || _global).dataProps[i].p.v;\n          } else {\n            (this || _global).dashArray[i] = (this || _global).dataProps[i].p.v;\n          }\n        } else {\n          (this || _global).dashoffset[0] = (this || _global).dataProps[i].p.v;\n        }\n      }\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], DashProperty);\n  /* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function GradientProperty(elem, data, container) {\n    (this || _global).data = data;\n    (this || _global).c = createTypedArray(\"uint8c\", data.p * 4);\n    var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n    (this || _global).o = createTypedArray(\"float32\", cLength);\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n    (this || _global)._collapsable = this.checkCollapsable();\n    (this || _global)._hasOpacity = cLength;\n    this.initDynamicPropertyContainer(container);\n    (this || _global).prop = PropertyFactory.getProp(elem, data.k, 1, null, this || _global);\n    (this || _global).k = (this || _global).prop.k;\n    this.getValue(true);\n  }\n\n  GradientProperty.prototype.comparePoints = function (values, points) {\n    var i = 0;\n    var len = (this || _global).o.length / 2;\n    var diff;\n\n    while (i < len) {\n      diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n      if (diff > 0.01) {\n        return false;\n      }\n\n      i += 1;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.checkCollapsable = function () {\n    if ((this || _global).o.length / 2 !== (this || _global).c.length / 4) {\n      return false;\n    }\n\n    if ((this || _global).data.k.k[0].s) {\n      var i = 0;\n      var len = (this || _global).data.k.k.length;\n\n      while (i < len) {\n        if (!this.comparePoints((this || _global).data.k.k[i].s, (this || _global).data.p)) {\n          return false;\n        }\n\n        i += 1;\n      }\n    } else if (!this.comparePoints((this || _global).data.k.k, (this || _global).data.p)) {\n      return false;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.getValue = function (forceRender) {\n    (this || _global).prop.getValue();\n\n    (this || _global)._mdf = false;\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n\n    if ((this || _global).prop._mdf || forceRender) {\n      var i;\n      var len = (this || _global).data.p * 4;\n      var mult;\n      var val;\n\n      for (i = 0; i < len; i += 1) {\n        mult = i % 4 === 0 ? 100 : 255;\n        val = Math.round((this || _global).prop.v[i] * mult);\n\n        if ((this || _global).c[i] !== val) {\n          (this || _global).c[i] = val;\n          (this || _global)._cmdf = !forceRender;\n        }\n      }\n\n      if ((this || _global).o.length) {\n        len = (this || _global).prop.v.length;\n\n        for (i = (this || _global).data.p * 4; i < len; i += 1) {\n          mult = i % 2 === 0 ? 100 : 1;\n          val = i % 2 === 0 ? Math.round((this || _global).prop.v[i] * 100) : (this || _global).prop.v[i];\n\n          if ((this || _global).o[i - (this || _global).data.p * 4] !== val) {\n            (this || _global).o[i - (this || _global).data.p * 4] = val;\n            (this || _global)._omdf = !forceRender;\n          }\n        }\n      }\n\n      (this || _global)._mdf = !forceRender;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], GradientProperty);\n  /* exported buildShapeString */\n\n  var buildShapeString = function (pathNodes, length, closed, mat) {\n    if (length === 0) {\n      return \"\";\n    }\n\n    var _o = pathNodes.o;\n    var _i = pathNodes.i;\n    var _v = pathNodes.v;\n    var i;\n    var shapeString = \" M\" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n    for (i = 1; i < length; i += 1) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[i][0], _i[i][1]) + \" \" + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n    }\n\n    if (closed && length) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[0][0], _i[0][1]) + \" \" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n      shapeString += \"z\";\n    }\n\n    return shapeString;\n  };\n  /* global Howl */\n\n  /* exported audioControllerFactory */\n\n\n  var audioControllerFactory = function () {\n    function AudioController(audioFactory) {\n      (this || _global).audios = [];\n      (this || _global).audioFactory = audioFactory;\n      (this || _global)._volume = 1;\n      (this || _global)._isMuted = false;\n    }\n\n    AudioController.prototype = {\n      addAudio: function (audio) {\n        (this || _global).audios.push(audio);\n      },\n      pause: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].pause();\n        }\n      },\n      resume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].resume();\n        }\n      },\n      setRate: function (rateValue) {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].setRate(rateValue);\n        }\n      },\n      createAudio: function (assetPath) {\n        if ((this || _global).audioFactory) {\n          return this.audioFactory(assetPath);\n        }\n\n        if (Howl) {\n          return new Howl({\n            src: [assetPath]\n          });\n        }\n\n        return {\n          isPlaying: false,\n          play: function () {\n            (this || _global).isPlaying = true;\n          },\n          seek: function () {\n            (this || _global).isPlaying = false;\n          },\n          playing: function () {},\n          rate: function () {},\n          setVolume: function () {}\n        };\n      },\n      setAudioFactory: function (audioFactory) {\n        (this || _global).audioFactory = audioFactory;\n      },\n      setVolume: function (value) {\n        (this || _global)._volume = value;\n\n        this._updateVolume();\n      },\n      mute: function () {\n        (this || _global)._isMuted = true;\n\n        this._updateVolume();\n      },\n      unmute: function () {\n        (this || _global)._isMuted = false;\n\n        this._updateVolume();\n      },\n      getVolume: function () {\n        return (this || _global)._volume;\n      },\n      _updateVolume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].volume((this || _global)._volume * ((this || _global)._isMuted ? 0 : 1));\n        }\n      }\n    };\n    return function () {\n      return new AudioController();\n    };\n  }();\n  /* global createTag, createNS, isSafari, assetLoader */\n\n  /* exported ImagePreloader */\n\n\n  var ImagePreloader = function () {\n    var proxyImage = function () {\n      var canvas = createTag(\"canvas\");\n      canvas.width = 1;\n      canvas.height = 1;\n      var ctx = canvas.getContext(\"2d\");\n      ctx.fillStyle = \"rgba(0,0,0,0)\";\n      ctx.fillRect(0, 0, 1, 1);\n      return canvas;\n    }();\n\n    function imageLoaded() {\n      (this || _global).loadedAssets += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function footageLoaded() {\n      (this || _global).loadedFootagesCount += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function getAssetsPath(assetData, assetsPath, originalPath) {\n      var path = \"\";\n\n      if (assetData.e) {\n        path = assetData.p;\n      } else if (assetsPath) {\n        var imagePath = assetData.p;\n\n        if (imagePath.indexOf(\"images/\") !== -1) {\n          imagePath = imagePath.split(\"/\")[1];\n        }\n\n        path = assetsPath + imagePath;\n      } else {\n        path = originalPath;\n        path += assetData.u ? assetData.u : \"\";\n        path += assetData.p;\n      }\n\n      return path;\n    }\n\n    function testImageLoaded(img) {\n      var _count = 0;\n      var intervalId = setInterval(function () {\n        var box = img.getBBox();\n\n        if (box.width || _count > 500) {\n          this._imageLoaded();\n\n          clearInterval(intervalId);\n        }\n\n        _count += 1;\n      }.bind(this || _global), 50);\n    }\n\n    function createImageData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createNS(\"image\");\n\n      if (isSafari) {\n        this.testImageLoaded(img);\n      } else {\n        img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      }\n\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", path);\n\n      if ((this || _global)._elementHelper.append) {\n        (this || _global)._elementHelper.append(img);\n      } else {\n        (this || _global)._elementHelper.appendChild(img);\n      }\n\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createImgData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createTag(\"img\");\n      img.crossOrigin = \"anonymous\";\n      img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.src = path;\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createFootageData(data) {\n      var ob = {\n        assetData: data\n      };\n      var path = getAssetsPath(data, (this || _global).assetsPath, (this || _global).path);\n      assetLoader.load(path, function (footageData) {\n        ob.img = footageData;\n\n        this._footageLoaded();\n      }.bind(this || _global), function () {\n        ob.img = {};\n\n        this._footageLoaded();\n      }.bind(this || _global));\n      return ob;\n    }\n\n    function loadAssets(assets, cb) {\n      (this || _global).imagesLoadedCb = cb;\n      var i;\n      var len = assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (!assets[i].layers) {\n          if (!assets[i].t) {\n            (this || _global).totalImages += 1;\n\n            (this || _global).images.push(this._createImageData(assets[i]));\n          } else if (assets[i].t === 3) {\n            (this || _global).totalFootages += 1;\n\n            (this || _global).images.push(this.createFootageData(assets[i]));\n          }\n        }\n      }\n    }\n\n    function setPath(path) {\n      (this || _global).path = path || \"\";\n    }\n\n    function setAssetsPath(path) {\n      (this || _global).assetsPath = path || \"\";\n    }\n\n    function getAsset(assetData) {\n      var i = 0;\n      var len = (this || _global).images.length;\n\n      while (i < len) {\n        if ((this || _global).images[i].assetData === assetData) {\n          return (this || _global).images[i].img;\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function destroy() {\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images.length = 0;\n    }\n\n    function loadedImages() {\n      return (this || _global).totalImages === (this || _global).loadedAssets;\n    }\n\n    function loadedFootages() {\n      return (this || _global).totalFootages === (this || _global).loadedFootagesCount;\n    }\n\n    function setCacheType(type, elementHelper) {\n      if (type === \"svg\") {\n        (this || _global)._elementHelper = elementHelper;\n        (this || _global)._createImageData = (this || _global).createImageData.bind(this || _global);\n      } else {\n        (this || _global)._createImageData = (this || _global).createImgData.bind(this || _global);\n      }\n    }\n\n    function ImagePreloaderFactory() {\n      (this || _global)._imageLoaded = imageLoaded.bind(this || _global);\n      (this || _global)._footageLoaded = footageLoaded.bind(this || _global);\n      (this || _global).testImageLoaded = testImageLoaded.bind(this || _global);\n      (this || _global).createFootageData = createFootageData.bind(this || _global);\n      (this || _global).assetsPath = \"\";\n      (this || _global).path = \"\";\n      (this || _global).totalImages = 0;\n      (this || _global).totalFootages = 0;\n      (this || _global).loadedAssets = 0;\n      (this || _global).loadedFootagesCount = 0;\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images = [];\n    }\n\n    ImagePreloaderFactory.prototype = {\n      loadAssets: loadAssets,\n      setAssetsPath: setAssetsPath,\n      setPath: setPath,\n      loadedImages: loadedImages,\n      loadedFootages: loadedFootages,\n      destroy: destroy,\n      getAsset: getAsset,\n      createImgData: createImgData,\n      createImageData: createImageData,\n      imageLoaded: imageLoaded,\n      footageLoaded: footageLoaded,\n      setCacheType: setCacheType\n    };\n    return ImagePreloaderFactory;\n  }();\n  /* exported featureSupport */\n\n\n  var featureSupport = function () {\n    var ob = {\n      maskType: true\n    };\n\n    if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n      ob.maskType = false;\n    }\n\n    return ob;\n  }();\n  /* global createNS */\n\n  /* exported filtersFactory */\n\n\n  var filtersFactory = function () {\n    var ob = {};\n    ob.createFilter = createFilter;\n    ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n    function createFilter(filId, skipCoordinates) {\n      var fil = createNS(\"filter\");\n      fil.setAttribute(\"id\", filId);\n\n      if (skipCoordinates !== true) {\n        fil.setAttribute(\"filterUnits\", \"objectBoundingBox\");\n        fil.setAttribute(\"x\", \"0%\");\n        fil.setAttribute(\"y\", \"0%\");\n        fil.setAttribute(\"width\", \"100%\");\n        fil.setAttribute(\"height\", \"100%\");\n      }\n\n      return fil;\n    }\n\n    function createAlphaToLuminanceFilter() {\n      var feColorMatrix = createNS(\"feColorMatrix\");\n      feColorMatrix.setAttribute(\"type\", \"matrix\");\n      feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      feColorMatrix.setAttribute(\"values\", \"0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1\");\n      return feColorMatrix;\n    }\n\n    return ob;\n  }();\n  /* exported assetLoader */\n\n\n  var assetLoader = function () {\n    function formatResponse(xhr) {\n      if (xhr.response && typeof xhr.response === \"object\") {\n        return xhr.response;\n      }\n\n      if (xhr.response && typeof xhr.response === \"string\") {\n        return JSON.parse(xhr.response);\n      }\n\n      if (xhr.responseText) {\n        return JSON.parse(xhr.responseText);\n      }\n\n      return null;\n    }\n\n    function loadAsset(path, callback, errorCallback) {\n      var response;\n      var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n      try {\n        // This crashes on Android WebView prior to KitKat\n        xhr.responseType = \"json\";\n      } catch (err) {} // eslint-disable-line no-empty\n\n\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 4) {\n          if (xhr.status === 200) {\n            response = formatResponse(xhr);\n            callback(response);\n          } else {\n            try {\n              response = formatResponse(xhr);\n              callback(response);\n            } catch (err) {\n              if (errorCallback) {\n                errorCallback(err);\n              }\n            }\n          }\n        }\n      };\n\n      xhr.open(\"GET\", path, true);\n      xhr.send();\n    }\n\n    return {\n      load: loadAsset\n    };\n  }();\n  /* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n    addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\n\n\n  function TextAnimatorProperty(textData, renderType, elem) {\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._hasMaskedPath = false;\n    (this || _global)._frameId = -1;\n    (this || _global)._textData = textData;\n    (this || _global)._renderType = renderType;\n    (this || _global)._elem = elem;\n    (this || _global)._animatorsData = createSizedArray((this || _global)._textData.a.length);\n    (this || _global)._pathData = {};\n    (this || _global)._moreOptions = {\n      alignment: {}\n    };\n    (this || _global).renderedLetters = [];\n    (this || _global).lettersChangedFlag = false;\n    this.initDynamicPropertyContainer(elem);\n  }\n\n  TextAnimatorProperty.prototype.searchProperties = function () {\n    var i;\n    var len = (this || _global)._textData.a.length;\n    var animatorProps;\n    var getProp = PropertyFactory.getProp;\n\n    for (i = 0; i < len; i += 1) {\n      animatorProps = (this || _global)._textData.a[i];\n      (this || _global)._animatorsData[i] = new TextAnimatorDataProperty((this || _global)._elem, animatorProps, this || _global);\n    }\n\n    if ((this || _global)._textData.p && \"m\" in (this || _global)._textData.p) {\n      (this || _global)._pathData = {\n        f: getProp((this || _global)._elem, (this || _global)._textData.p.f, 0, 0, this || _global),\n        l: getProp((this || _global)._elem, (this || _global)._textData.p.l, 0, 0, this || _global),\n        r: (this || _global)._textData.p.r,\n        m: (this || _global)._elem.maskManager.getMaskProperty((this || _global)._textData.p.m)\n      };\n      (this || _global)._hasMaskedPath = true;\n    } else {\n      (this || _global)._hasMaskedPath = false;\n    }\n\n    (this || _global)._moreOptions.alignment = getProp((this || _global)._elem, (this || _global)._textData.m.a, 1, 0, this || _global);\n  };\n\n  TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n    (this || _global).lettersChangedFlag = lettersChangedFlag;\n\n    if (!(this || _global)._mdf && !(this || _global)._isFirstFrame && !lettersChangedFlag && (!(this || _global)._hasMaskedPath || !(this || _global)._pathData.m._mdf)) {\n      return;\n    }\n\n    (this || _global)._isFirstFrame = false;\n    var alignment = (this || _global)._moreOptions.alignment.v;\n    var animators = (this || _global)._animatorsData;\n    var textData = (this || _global)._textData;\n    var matrixHelper = (this || _global).mHelper;\n    var renderType = (this || _global)._renderType;\n    var renderedLettersCount = (this || _global).renderedLetters.length;\n    var xPos;\n    var yPos;\n    var i;\n    var len;\n    var letters = documentData.l;\n    var pathInfo;\n    var currentLength;\n    var currentPoint;\n    var segmentLength;\n    var flag;\n    var pointInd;\n    var segmentInd;\n    var prevPoint;\n    var points;\n    var segments;\n    var partialLength;\n    var totalLength;\n    var perc;\n    var tanAngle;\n    var mask;\n\n    if ((this || _global)._hasMaskedPath) {\n      mask = (this || _global)._pathData.m;\n\n      if (!(this || _global)._pathData.n || (this || _global)._pathData._mdf) {\n        var paths = mask.v;\n\n        if ((this || _global)._pathData.r) {\n          paths = paths.reverse();\n        } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n        pathInfo = {\n          tLength: 0,\n          segments: []\n        };\n        len = paths._length - 1;\n        var bezierData;\n        totalLength = 0;\n\n        for (i = 0; i < len; i += 1) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        i = len;\n\n        if (mask.v.c) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        (this || _global)._pathData.pi = pathInfo;\n      }\n\n      pathInfo = (this || _global)._pathData.pi;\n      currentLength = (this || _global)._pathData.f.v;\n      segmentInd = 0;\n      pointInd = 1;\n      segmentLength = 0;\n      flag = true;\n      segments = pathInfo.segments;\n\n      if (currentLength < 0 && mask.v.c) {\n        if (pathInfo.tLength < Math.abs(currentLength)) {\n          currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n        }\n\n        segmentInd = segments.length - 1;\n        points = segments[segmentInd].points;\n        pointInd = points.length - 1;\n\n        while (currentLength < 0) {\n          currentLength += points[pointInd].partialLength;\n          pointInd -= 1;\n\n          if (pointInd < 0) {\n            segmentInd -= 1;\n            points = segments[segmentInd].points;\n            pointInd = points.length - 1;\n          }\n        }\n      }\n\n      points = segments[segmentInd].points;\n      prevPoint = points[pointInd - 1];\n      currentPoint = points[pointInd];\n      partialLength = currentPoint.partialLength;\n    }\n\n    len = letters.length;\n    xPos = 0;\n    yPos = 0;\n    var yOff = documentData.finalSize * 1.2 * 0.714;\n    var firstLine = true;\n    var animatorProps;\n    var animatorSelector;\n    var j;\n    var jLen;\n    var letterValue;\n    jLen = animators.length;\n    var mult;\n    var ind = -1;\n    var offf;\n    var xPathPos;\n    var yPathPos;\n    var initPathPos = currentLength;\n    var initSegmentInd = segmentInd;\n    var initPointInd = pointInd;\n    var currentLine = -1;\n    var elemOpacity;\n    var sc;\n    var sw;\n    var fc;\n    var k;\n    var letterSw;\n    var letterSc;\n    var letterFc;\n    var letterM = \"\";\n    var letterP = (this || _global).defaultPropsArray;\n    var letterO; //\n\n    if (documentData.j === 2 || documentData.j === 1) {\n      var animatorJustifyOffset = 0;\n      var animatorFirstCharOffset = 0;\n      var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n      var lastIndex = 0;\n      var isNewLine = true;\n\n      for (i = 0; i < len; i += 1) {\n        if (letters[i].n) {\n          if (animatorJustifyOffset) {\n            animatorJustifyOffset += animatorFirstCharOffset;\n          }\n\n          while (lastIndex < i) {\n            letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n            lastIndex += 1;\n          }\n\n          animatorJustifyOffset = 0;\n          isNewLine = true;\n        } else {\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.t.propType) {\n              if (isNewLine && documentData.j === 2) {\n                animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n              }\n\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n              } else {\n                animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n              }\n            }\n          }\n\n          isNewLine = false;\n        }\n      }\n\n      if (animatorJustifyOffset) {\n        animatorJustifyOffset += animatorFirstCharOffset;\n      }\n\n      while (lastIndex < i) {\n        letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n        lastIndex += 1;\n      }\n    } //\n\n\n    for (i = 0; i < len; i += 1) {\n      matrixHelper.reset();\n      elemOpacity = 1;\n\n      if (letters[i].n) {\n        xPos = 0;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        currentLength = initPathPos;\n        firstLine = false;\n\n        if ((this || _global)._hasMaskedPath) {\n          segmentInd = initSegmentInd;\n          pointInd = initPointInd;\n          points = segments[segmentInd].points;\n          prevPoint = points[pointInd - 1];\n          currentPoint = points[pointInd];\n          partialLength = currentPoint.partialLength;\n          segmentLength = 0;\n        }\n\n        letterM = \"\";\n        letterFc = \"\";\n        letterSw = \"\";\n        letterO = \"\";\n        letterP = (this || _global).defaultPropsArray;\n      } else {\n        if ((this || _global)._hasMaskedPath) {\n          if (currentLine !== letters[i].line) {\n            switch (documentData.j) {\n              case 1:\n                currentLength += totalLength - documentData.lineWidths[letters[i].line];\n                break;\n\n              case 2:\n                currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n                break;\n\n              default:\n                break;\n            }\n\n            currentLine = letters[i].line;\n          }\n\n          if (ind !== letters[i].ind) {\n            if (letters[ind]) {\n              currentLength += letters[ind].extra;\n            }\n\n            currentLength += letters[i].an / 2;\n            ind = letters[i].ind;\n          }\n\n          currentLength += alignment[0] * letters[i].an * 0.005;\n          var animatorOffset = 0;\n\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.p.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.p.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.p.v[0] * mult;\n              }\n            }\n\n            if (animatorProps.a.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.a.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.a.v[0] * mult;\n              }\n            }\n          }\n\n          flag = true;\n\n          while (flag) {\n            if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n              perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n              xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n              yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n              matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n              flag = false;\n            } else if (points) {\n              segmentLength += currentPoint.partialLength;\n              pointInd += 1;\n\n              if (pointInd >= points.length) {\n                pointInd = 0;\n                segmentInd += 1;\n\n                if (!segments[segmentInd]) {\n                  if (mask.v.c) {\n                    pointInd = 0;\n                    segmentInd = 0;\n                    points = segments[segmentInd].points;\n                  } else {\n                    segmentLength -= currentPoint.partialLength;\n                    points = null;\n                  }\n                } else {\n                  points = segments[segmentInd].points;\n                }\n              }\n\n              if (points) {\n                prevPoint = currentPoint;\n                currentPoint = points[pointInd];\n                partialLength = currentPoint.partialLength;\n              }\n            }\n          }\n\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0);\n        } else {\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n          matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.t.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n            if (xPos !== 0 || documentData.j !== 0) {\n              if ((this || _global)._hasMaskedPath) {\n                if (mult.length) {\n                  currentLength += animatorProps.t.v * mult[0];\n                } else {\n                  currentLength += animatorProps.t.v * mult;\n                }\n              } else if (mult.length) {\n                xPos += animatorProps.t.v * mult[0];\n              } else {\n                xPos += animatorProps.t.v * mult;\n              }\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          sw = documentData.sw || 0;\n        }\n\n        if (documentData.strokeColorAnim) {\n          if (documentData.sc) {\n            sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n          } else {\n            sc = [0, 0, 0];\n          }\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.a.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.s.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n            } else {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n          animatorSelector = animators[j].s;\n          mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n          if (animatorProps.sk.propType) {\n            if (mult.length) {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n            } else {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n            }\n          }\n\n          if (animatorProps.r.propType) {\n            if (mult.length) {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n            } else {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult);\n            }\n          }\n\n          if (animatorProps.ry.propType) {\n            if (mult.length) {\n              matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n            } else {\n              matrixHelper.rotateY(animatorProps.ry.v * mult);\n            }\n          }\n\n          if (animatorProps.rx.propType) {\n            if (mult.length) {\n              matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n            } else {\n              matrixHelper.rotateX(animatorProps.rx.v * mult);\n            }\n          }\n\n          if (animatorProps.o.propType) {\n            if (mult.length) {\n              elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n            } else {\n              elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n            }\n          }\n\n          if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n            if (mult.length) {\n              sw += animatorProps.sw.v * mult[0];\n            } else {\n              sw += animatorProps.sw.v * mult;\n            }\n          }\n\n          if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n            for (k = 0; k < 3; k += 1) {\n              if (mult.length) {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n              } else {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n              }\n            }\n          }\n\n          if (documentData.fillColorAnim && documentData.fc) {\n            if (animatorProps.fc.propType) {\n              for (k = 0; k < 3; k += 1) {\n                if (mult.length) {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n                } else {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n                }\n              }\n            }\n\n            if (animatorProps.fh.propType) {\n              if (mult.length) {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n              } else {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n              }\n            }\n\n            if (animatorProps.fs.propType) {\n              if (mult.length) {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n              } else {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n              }\n            }\n\n            if (animatorProps.fb.propType) {\n              if (mult.length) {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n              } else {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n              }\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.p.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if ((this || _global)._hasMaskedPath) {\n              if (mult.length) {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n              } else {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n              }\n            } else if (mult.length) {\n              matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          letterSw = sw < 0 ? 0 : sw;\n        }\n\n        if (documentData.strokeColorAnim) {\n          letterSc = \"rgb(\" + Math.round(sc[0] * 255) + \",\" + Math.round(sc[1] * 255) + \",\" + Math.round(sc[2] * 255) + \")\";\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          letterFc = \"rgb(\" + Math.round(fc[0] * 255) + \",\" + Math.round(fc[1] * 255) + \",\" + Math.round(fc[2] * 255) + \")\";\n        }\n\n        if ((this || _global)._hasMaskedPath) {\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n          if (textData.p.p) {\n            tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n            var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n            if (currentPoint.point[0] < prevPoint.point[0]) {\n              rot += 180;\n            }\n\n            matrixHelper.rotate(-rot * Math.PI / 180);\n          }\n\n          matrixHelper.translate(xPathPos, yPathPos, 0);\n          currentLength -= alignment[0] * letters[i].an * 0.005;\n\n          if (letters[i + 1] && ind !== letters[i + 1].ind) {\n            currentLength += letters[i].an / 2;\n            currentLength += documentData.tr * 0.001 * documentData.finalSize;\n          }\n        } else {\n          matrixHelper.translate(xPos, yPos, 0);\n\n          if (documentData.ps) {\n            // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n            matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n          }\n\n          switch (documentData.j) {\n            case 1:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n              break;\n\n            case 2:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n              break;\n\n            default:\n              break;\n          }\n\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(offf, 0, 0);\n          matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n          xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n        }\n\n        if (renderType === \"html\") {\n          letterM = matrixHelper.toCSS();\n        } else if (renderType === \"svg\") {\n          letterM = matrixHelper.to2dCSS();\n        } else {\n          letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n        }\n\n        letterO = elemOpacity;\n      }\n\n      if (renderedLettersCount <= i) {\n        letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n\n        (this || _global).renderedLetters.push(letterValue);\n\n        renderedLettersCount += 1;\n        (this || _global).lettersChangedFlag = true;\n      } else {\n        letterValue = (this || _global).renderedLetters[i];\n        (this || _global).lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || (this || _global).lettersChangedFlag;\n      }\n    }\n  };\n\n  TextAnimatorProperty.prototype.getValue = function () {\n    if ((this || _global)._elem.globalData.frameId === (this || _global)._frameId) {\n      return;\n    }\n\n    (this || _global)._frameId = (this || _global)._elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  TextAnimatorProperty.prototype.mHelper = new Matrix();\n  TextAnimatorProperty.prototype.defaultPropsArray = [];\n  extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n  /* global PropertyFactory, degToRads, TextSelectorProp */\n\n  /* exported TextAnimatorDataProperty */\n\n  function TextAnimatorDataProperty(elem, animatorProps, container) {\n    var defaultData = {\n      propType: false\n    };\n    var getProp = PropertyFactory.getProp;\n    var textAnimatorAnimatables = animatorProps.a;\n    (this || _global).a = {\n      r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n      rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n      ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n      sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n      sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n      s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n      a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n      o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n      p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n      sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n      sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n      fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n      fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n      fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n      fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n      t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n    };\n    (this || _global).s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n    (this || _global).s.t = animatorProps.s.t;\n  }\n\n  function LetterProps(o, sw, sc, fc, m, p) {\n    (this || _global).o = o;\n    (this || _global).sw = sw;\n    (this || _global).sc = sc;\n    (this || _global).fc = fc;\n    (this || _global).m = m;\n    (this || _global).p = p;\n    (this || _global)._mdf = {\n      o: true,\n      sw: !!sw,\n      sc: !!sc,\n      fc: !!fc,\n      m: true,\n      p: true\n    };\n  }\n\n  LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n    (this || _global)._mdf.o = false;\n    (this || _global)._mdf.sw = false;\n    (this || _global)._mdf.sc = false;\n    (this || _global)._mdf.fc = false;\n    (this || _global)._mdf.m = false;\n    (this || _global)._mdf.p = false;\n    var updated = false;\n\n    if ((this || _global).o !== o) {\n      (this || _global).o = o;\n      (this || _global)._mdf.o = true;\n      updated = true;\n    }\n\n    if ((this || _global).sw !== sw) {\n      (this || _global).sw = sw;\n      (this || _global)._mdf.sw = true;\n      updated = true;\n    }\n\n    if ((this || _global).sc !== sc) {\n      (this || _global).sc = sc;\n      (this || _global)._mdf.sc = true;\n      updated = true;\n    }\n\n    if ((this || _global).fc !== fc) {\n      (this || _global).fc = fc;\n      (this || _global)._mdf.fc = true;\n      updated = true;\n    }\n\n    if ((this || _global).m !== m) {\n      (this || _global).m = m;\n      (this || _global)._mdf.m = true;\n      updated = true;\n    }\n\n    if (p.length && ((this || _global).p[0] !== p[0] || (this || _global).p[1] !== p[1] || (this || _global).p[4] !== p[4] || (this || _global).p[5] !== p[5] || (this || _global).p[12] !== p[12] || (this || _global).p[13] !== p[13])) {\n      (this || _global).p = p;\n      (this || _global)._mdf.p = true;\n      updated = true;\n    }\n\n    return updated;\n  };\n  /* global FontManager, initialDefaultFrame, getFontProperties */\n\n  /* exported TextProperty */\n\n\n  function TextProperty(elem, data) {\n    (this || _global)._frameId = initialDefaultFrame;\n    (this || _global).pv = \"\";\n    (this || _global).v = \"\";\n    (this || _global).kf = false;\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._mdf = false;\n    (this || _global).data = data;\n    (this || _global).elem = elem;\n    (this || _global).comp = (this || _global).elem.comp;\n    (this || _global).keysIndex = 0;\n    (this || _global).canResize = false;\n    (this || _global).minimumFontSize = 1;\n    (this || _global).effectsSequence = [];\n    (this || _global).currentData = {\n      ascent: 0,\n      boxWidth: (this || _global).defaultBoxWidth,\n      f: \"\",\n      fStyle: \"\",\n      fWeight: \"\",\n      fc: \"\",\n      j: \"\",\n      justifyOffset: \"\",\n      l: [],\n      lh: 0,\n      lineWidths: [],\n      ls: \"\",\n      of: \"\",\n      s: \"\",\n      sc: \"\",\n      sw: 0,\n      t: 0,\n      tr: 0,\n      sz: 0,\n      ps: null,\n      fillColorAnim: false,\n      strokeColorAnim: false,\n      strokeWidthAnim: false,\n      yOffset: 0,\n      finalSize: 0,\n      finalText: [],\n      finalLineHeight: 0,\n      __complete: false\n    };\n    this.copyData((this || _global).currentData, (this || _global).data.d.k[0].s);\n\n    if (!this.searchProperty()) {\n      this.completeTextData((this || _global).currentData);\n    }\n  }\n\n  TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n  TextProperty.prototype.copyData = function (obj, data) {\n    for (var s in data) {\n      if (Object.prototype.hasOwnProperty.call(data, s)) {\n        obj[s] = data[s];\n      }\n    }\n\n    return obj;\n  };\n\n  TextProperty.prototype.setCurrentData = function (data) {\n    if (!data.__complete) {\n      this.completeTextData(data);\n    }\n\n    (this || _global).currentData = data;\n    (this || _global).currentData.boxWidth = (this || _global).currentData.boxWidth || (this || _global).defaultBoxWidth;\n    (this || _global)._mdf = true;\n  };\n\n  TextProperty.prototype.searchProperty = function () {\n    return this.searchKeyframes();\n  };\n\n  TextProperty.prototype.searchKeyframes = function () {\n    (this || _global).kf = (this || _global).data.d.k.length > 1;\n\n    if ((this || _global).kf) {\n      this.addEffect((this || _global).getKeyframeValue.bind(this || _global));\n    }\n\n    return (this || _global).kf;\n  };\n\n  TextProperty.prototype.addEffect = function (effectFunction) {\n    (this || _global).effectsSequence.push(effectFunction);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.getValue = function (_finalValue) {\n    if (((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) && !_finalValue) {\n      return;\n    }\n\n    (this || _global).currentData.t = (this || _global).data.d.k[(this || _global).keysIndex].s.t;\n    var currentValue = (this || _global).currentData;\n    var currentIndex = (this || _global).keysIndex;\n\n    if ((this || _global).lock) {\n      this.setCurrentData((this || _global).currentData);\n      return;\n    }\n\n    (this || _global).lock = true;\n    (this || _global)._mdf = false;\n    var i;\n    var len = (this || _global).effectsSequence.length;\n    var finalValue = _finalValue || (this || _global).data.d.k[(this || _global).keysIndex].s;\n\n    for (i = 0; i < len; i += 1) {\n      // Checking if index changed to prevent creating a new object every time the expression updates.\n      if (currentIndex !== (this || _global).keysIndex) {\n        finalValue = (this || _global).effectsSequence[i](finalValue, finalValue.t);\n      } else {\n        finalValue = (this || _global).effectsSequence[i]((this || _global).currentData, finalValue.t);\n      }\n    }\n\n    if (currentValue !== finalValue) {\n      this.setCurrentData(finalValue);\n    }\n\n    (this || _global).v = (this || _global).currentData;\n    (this || _global).pv = (this || _global).v;\n    (this || _global).lock = false;\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n  };\n\n  TextProperty.prototype.getKeyframeValue = function () {\n    var textKeys = (this || _global).data.d.k;\n    var frameNum = (this || _global).elem.comp.renderedFrame;\n    var i = 0;\n    var len = textKeys.length;\n\n    while (i <= len - 1) {\n      if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    if ((this || _global).keysIndex !== i) {\n      (this || _global).keysIndex = i;\n    }\n\n    return (this || _global).data.d.k[(this || _global).keysIndex].s;\n  };\n\n  TextProperty.prototype.buildFinalText = function (text) {\n    var combinedCharacters = FontManager.getCombinedCharacterCodes();\n    var charactersArray = [];\n    var i = 0;\n    var len = text.length;\n    var charCode;\n\n    while (i < len) {\n      charCode = text.charCodeAt(i);\n\n      if (combinedCharacters.indexOf(charCode) !== -1) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n      } else if (charCode >= 55296 && charCode <= 56319) {\n        charCode = text.charCodeAt(i + 1);\n\n        if (charCode >= 56320 && charCode <= 57343) {\n          charactersArray.push(text.substr(i, 2));\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else {\n        charactersArray.push(text.charAt(i));\n      }\n\n      i += 1;\n    }\n\n    return charactersArray;\n  };\n\n  TextProperty.prototype.completeTextData = function (documentData) {\n    documentData.__complete = true;\n    var fontManager = (this || _global).elem.globalData.fontManager;\n    var data = (this || _global).data;\n    var letters = [];\n    var i;\n    var len;\n    var newLineFlag;\n    var index = 0;\n    var val;\n    var anchorGrouping = data.m.g;\n    var currentSize = 0;\n    var currentPos = 0;\n    var currentLine = 0;\n    var lineWidths = [];\n    var lineWidth = 0;\n    var maxLineWidth = 0;\n    var j;\n    var jLen;\n    var fontData = fontManager.getFontByName(documentData.f);\n    var charData;\n    var cLength = 0;\n    var fontProps = getFontProperties(fontData);\n    documentData.fWeight = fontProps.weight;\n    documentData.fStyle = fontProps.style;\n    documentData.finalSize = documentData.s;\n    documentData.finalText = this.buildFinalText(documentData.t);\n    len = documentData.finalText.length;\n    documentData.finalLineHeight = documentData.lh;\n    var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n    var charCode;\n\n    if (documentData.sz) {\n      var flag = true;\n      var boxWidth = documentData.sz[0];\n      var boxHeight = documentData.sz[1];\n      var currentHeight;\n      var finalText;\n\n      while (flag) {\n        finalText = this.buildFinalText(documentData.t);\n        currentHeight = 0;\n        lineWidth = 0;\n        len = finalText.length;\n        trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n        var lastSpaceIndex = -1;\n\n        for (i = 0; i < len; i += 1) {\n          charCode = finalText[i].charCodeAt(0);\n          newLineFlag = false;\n\n          if (finalText[i] === \" \") {\n            lastSpaceIndex = i;\n          } else if (charCode === 13 || charCode === 3) {\n            lineWidth = 0;\n            newLineFlag = true;\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n          }\n\n          if (fontManager.chars) {\n            charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n            cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n          } else {\n            // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n            cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n          }\n\n          if (lineWidth + cLength > boxWidth && finalText[i] !== \" \") {\n            if (lastSpaceIndex === -1) {\n              len += 1;\n            } else {\n              i = lastSpaceIndex;\n            }\n\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n            finalText.splice(i, lastSpaceIndex === i ? 1 : 0, \"\\r\"); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n            lastSpaceIndex = -1;\n            lineWidth = 0;\n          } else {\n            lineWidth += cLength;\n            lineWidth += trackingOffset;\n          }\n        }\n\n        currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n        if ((this || _global).canResize && documentData.finalSize > (this || _global).minimumFontSize && boxHeight < currentHeight) {\n          documentData.finalSize -= 1;\n          documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n        } else {\n          documentData.finalText = finalText;\n          len = documentData.finalText.length;\n          flag = false;\n        }\n      }\n    }\n\n    lineWidth = -trackingOffset;\n    cLength = 0;\n    var uncollapsedSpaces = 0;\n    var currentChar;\n\n    for (i = 0; i < len; i += 1) {\n      newLineFlag = false;\n      currentChar = documentData.finalText[i];\n      charCode = currentChar.charCodeAt(0);\n\n      if (charCode === 13 || charCode === 3) {\n        uncollapsedSpaces = 0;\n        lineWidths.push(lineWidth);\n        maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n        lineWidth = -2 * trackingOffset;\n        val = \"\";\n        newLineFlag = true;\n        currentLine += 1;\n      } else {\n        val = currentChar;\n      }\n\n      if (fontManager.chars) {\n        charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n        cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n      } else {\n        // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n        // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n        cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n      } //\n\n\n      if (currentChar === \" \") {\n        uncollapsedSpaces += cLength + trackingOffset;\n      } else {\n        lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n        uncollapsedSpaces = 0;\n      }\n\n      letters.push({\n        l: cLength,\n        an: cLength,\n        add: currentSize,\n        n: newLineFlag,\n        anIndexes: [],\n        val: val,\n        line: currentLine,\n        animatorJustifyOffset: 0\n      });\n\n      if (anchorGrouping == 2) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || val === \" \" || i === len - 1) {\n          if (val === \"\" || val === \" \") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          index += 1;\n          currentSize = 0;\n        }\n      } else if (anchorGrouping == 3) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || i === len - 1) {\n          if (val === \"\") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          currentSize = 0;\n          index += 1;\n        }\n      } else {\n        letters[index].ind = index;\n        letters[index].extra = 0;\n        index += 1;\n      }\n    }\n\n    documentData.l = letters;\n    maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n    lineWidths.push(lineWidth);\n\n    if (documentData.sz) {\n      documentData.boxWidth = documentData.sz[0];\n      documentData.justifyOffset = 0;\n    } else {\n      documentData.boxWidth = maxLineWidth;\n\n      switch (documentData.j) {\n        case 1:\n          documentData.justifyOffset = -documentData.boxWidth;\n          break;\n\n        case 2:\n          documentData.justifyOffset = -documentData.boxWidth / 2;\n          break;\n\n        default:\n          documentData.justifyOffset = 0;\n      }\n    }\n\n    documentData.lineWidths = lineWidths;\n    var animators = data.a;\n    var animatorData;\n    var letterData;\n    jLen = animators.length;\n    var based;\n    var ind;\n    var indexes = [];\n\n    for (j = 0; j < jLen; j += 1) {\n      animatorData = animators[j];\n\n      if (animatorData.a.sc) {\n        documentData.strokeColorAnim = true;\n      }\n\n      if (animatorData.a.sw) {\n        documentData.strokeWidthAnim = true;\n      }\n\n      if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n        documentData.fillColorAnim = true;\n      }\n\n      ind = 0;\n      based = animatorData.s.b;\n\n      for (i = 0; i < len; i += 1) {\n        letterData = letters[i];\n        letterData.anIndexes[j] = ind;\n\n        if (based == 1 && letterData.val !== \"\" || based == 2 && letterData.val !== \"\" && letterData.val !== \" \" || based == 3 && (letterData.n || letterData.val == \" \" || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n          // eslint-disable-line eqeqeq\n          if (animatorData.s.rn === 1) {\n            indexes.push(ind);\n          }\n\n          ind += 1;\n        }\n      }\n\n      data.a[j].s.totalChars = ind;\n      var currentInd = -1;\n      var newInd;\n\n      if (animatorData.s.rn === 1) {\n        for (i = 0; i < len; i += 1) {\n          letterData = letters[i];\n\n          if (currentInd != letterData.anIndexes[j]) {\n            // eslint-disable-line eqeqeq\n            currentInd = letterData.anIndexes[j];\n            newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n          }\n\n          letterData.anIndexes[j] = newInd;\n        }\n      }\n    }\n\n    documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n    documentData.ls = documentData.ls || 0;\n    documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n  };\n\n  TextProperty.prototype.updateDocumentData = function (newData, index) {\n    index = index === undefined ? (this || _global).keysIndex : index;\n    var dData = this.copyData({}, (this || _global).data.d.k[index].s);\n    dData = this.copyData(dData, newData);\n    (this || _global).data.d.k[index].s = dData;\n    this.recalculate(index);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.recalculate = function (index) {\n    var dData = (this || _global).data.d.k[index].s;\n    dData.__complete = false;\n    (this || _global).keysIndex = 0;\n    (this || _global)._isFirstFrame = true;\n    this.getValue(dData);\n  };\n\n  TextProperty.prototype.canResizeFont = function (_canResize) {\n    (this || _global).canResize = _canResize;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n    (this || _global).minimumFontSize = Math.floor(_fontValue) || 1;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n  /* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\n\n  /* exported TextSelectorProp */\n\n\n  var TextSelectorProp = function () {\n    var max = Math.max;\n    var min = Math.min;\n    var floor = Math.floor;\n\n    function TextSelectorPropFactory(elem, data) {\n      (this || _global)._currentTextLength = -1;\n      (this || _global).k = false;\n      (this || _global).data = data;\n      (this || _global).elem = elem;\n      (this || _global).comp = elem.comp;\n      (this || _global).finalS = 0;\n      (this || _global).finalE = 0;\n      this.initDynamicPropertyContainer(elem);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: 0\n      }, 0, 0, this || _global);\n\n      if (\"e\" in data) {\n        (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0, this || _global);\n      } else {\n        (this || _global).e = {\n          v: 100\n        };\n      }\n\n      (this || _global).o = PropertyFactory.getProp(elem, data.o || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).xe = PropertyFactory.getProp(elem, data.xe || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).ne = PropertyFactory.getProp(elem, data.ne || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this || _global);\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue();\n      }\n    }\n\n    TextSelectorPropFactory.prototype = {\n      getMult: function (ind) {\n        if ((this || _global)._currentTextLength !== (this || _global).elem.textProperty.currentData.l.length) {\n          this.getValue();\n        } // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\n\n\n        var x1 = 0;\n        var y1 = 0;\n        var x2 = 1;\n        var y2 = 1;\n\n        if ((this || _global).ne.v > 0) {\n          x1 = (this || _global).ne.v / 100;\n        } else {\n          y1 = -(this || _global).ne.v / 100;\n        }\n\n        if ((this || _global).xe.v > 0) {\n          x2 = 1 - (this || _global).xe.v / 100;\n        } else {\n          y2 = 1 + (this || _global).xe.v / 100;\n        }\n\n        var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n        var mult = 0;\n        var s = (this || _global).finalS;\n        var e = (this || _global).finalE;\n        var type = (this || _global).data.sh;\n\n        if (type === 2) {\n          if (e === s) {\n            mult = ind >= e ? 1 : 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 3) {\n          if (e === s) {\n            mult = ind >= e ? 0 : 1;\n          } else {\n            mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 4) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n            if (mult < 0.5) {\n              mult *= 2;\n            } else {\n              mult = 1 - 2 * (mult - 0.5);\n            }\n          }\n\n          mult = easer(mult);\n        } else if (type === 5) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            var tot = e - s;\n            /* ind += 0.5;\r\n                      mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            var x = -tot / 2 + ind;\n            var a = tot / 2;\n            mult = Math.sqrt(1 - x * x / (a * a));\n          }\n\n          mult = easer(mult);\n        } else if (type === 6) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n          }\n\n          mult = easer(mult);\n        } else {\n          if (ind >= floor(s)) {\n            if (ind - s < 0) {\n              mult = max(0, min(min(e, 1) - (s - ind), 1));\n            } else {\n              mult = max(0, min(e - ind, 1));\n            }\n          }\n\n          mult = easer(mult);\n        }\n\n        return mult * (this || _global).a.v;\n      },\n      getValue: function (newCharsFlag) {\n        this.iterateDynamicProperties();\n        (this || _global)._mdf = newCharsFlag || (this || _global)._mdf;\n        (this || _global)._currentTextLength = (this || _global).elem.textProperty.currentData.l.length || 0;\n\n        if (newCharsFlag && (this || _global).data.r === 2) {\n          (this || _global).e.v = (this || _global)._currentTextLength;\n        }\n\n        var divisor = (this || _global).data.r === 2 ? 1 : 100 / (this || _global).data.totalChars;\n        var o = (this || _global).o.v / divisor;\n        var s = (this || _global).s.v / divisor + o;\n        var e = (this || _global).e.v / divisor + o;\n\n        if (s > e) {\n          var _s = s;\n          s = e;\n          e = _s;\n        }\n\n        (this || _global).finalS = s;\n        (this || _global).finalE = e;\n      }\n    };\n    extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n    function getTextSelectorProp(elem, data, arr) {\n      return new TextSelectorPropFactory(elem, data, arr);\n    }\n\n    return {\n      getTextSelectorProp: getTextSelectorProp\n    };\n  }();\n  /* global createSizedArray, pooling */\n\n  /* exported poolFactory */\n\n\n  var poolFactory = function () {\n    return function (initialLength, _create, _release) {\n      var _length = 0;\n      var _maxLength = initialLength;\n      var pool = createSizedArray(_maxLength);\n      var ob = {\n        newElement: newElement,\n        release: release\n      };\n\n      function newElement() {\n        var element;\n\n        if (_length) {\n          _length -= 1;\n          element = pool[_length];\n        } else {\n          element = _create();\n        }\n\n        return element;\n      }\n\n      function release(element) {\n        if (_length === _maxLength) {\n          pool = pooling.double(pool);\n          _maxLength *= 2;\n        }\n\n        if (_release) {\n          _release(element);\n        }\n\n        pool[_length] = element;\n        _length += 1;\n      }\n\n      return ob;\n    };\n  }();\n  /* global createSizedArray */\n\n  /* exported pooling */\n\n\n  var pooling = function () {\n    function double(arr) {\n      return arr.concat(createSizedArray(arr.length));\n    }\n\n    return {\n      double: double\n    };\n  }();\n  /* global createTypedArray, poolFactory */\n\n  /* exported pointPool */\n\n\n  var pointPool = function () {\n    function create() {\n      return createTypedArray(\"float32\", 2);\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* global ShapePath, pointPool, poolFactory */\n\n  /* exported shapePool */\n\n\n  var shapePool = function () {\n    function create() {\n      return new ShapePath();\n    }\n\n    function release(shapePath) {\n      var len = shapePath._length;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        pointPool.release(shapePath.v[i]);\n        pointPool.release(shapePath.i[i]);\n        pointPool.release(shapePath.o[i]);\n        shapePath.v[i] = null;\n        shapePath.i[i] = null;\n        shapePath.o[i] = null;\n      }\n\n      shapePath._length = 0;\n      shapePath.c = false;\n    }\n\n    function clone(shape) {\n      var cloned = factory.newElement();\n      var i;\n      var len = shape._length === undefined ? shape.v.length : shape._length;\n      cloned.setLength(len);\n      cloned.c = shape.c;\n\n      for (i = 0; i < len; i += 1) {\n        cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n      }\n\n      return cloned;\n    }\n\n    var factory = poolFactory(4, create, release);\n    factory.clone = clone;\n    return factory;\n  }();\n  /* global createSizedArray, ShapeCollection, shapePool, pooling */\n\n  /* exported shapeCollectionPool */\n\n\n  var shapeCollectionPool = function () {\n    var ob = {\n      newShapeCollection: newShapeCollection,\n      release: release\n    };\n    var _length = 0;\n    var _maxLength = 4;\n    var pool = createSizedArray(_maxLength);\n\n    function newShapeCollection() {\n      var shapeCollection;\n\n      if (_length) {\n        _length -= 1;\n        shapeCollection = pool[_length];\n      } else {\n        shapeCollection = new ShapeCollection();\n      }\n\n      return shapeCollection;\n    }\n\n    function release(shapeCollection) {\n      var i;\n      var len = shapeCollection._length;\n\n      for (i = 0; i < len; i += 1) {\n        shapePool.release(shapeCollection.shapes[i]);\n      }\n\n      shapeCollection._length = 0;\n\n      if (_length === _maxLength) {\n        pool = pooling.double(pool);\n        _maxLength *= 2;\n      }\n\n      pool[_length] = shapeCollection;\n      _length += 1;\n    }\n\n    return ob;\n  }();\n  /* global poolFactory, bezierLengthPool */\n\n  /* exported segmentsLengthPool */\n\n\n  var segmentsLengthPool = function () {\n    function create() {\n      return {\n        lengths: [],\n        totalLength: 0\n      };\n    }\n\n    function release(element) {\n      var i;\n      var len = element.lengths.length;\n\n      for (i = 0; i < len; i += 1) {\n        bezierLengthPool.release(element.lengths[i]);\n      }\n\n      element.lengths.length = 0;\n    }\n\n    return poolFactory(8, create, release);\n  }();\n  /* global createTypedArray, defaultCurveSegments, poolFactory */\n\n  /* exported bezierLengthPool */\n\n\n  var bezierLengthPool = function () {\n    function create() {\n      return {\n        addedLength: 0,\n        percents: createTypedArray(\"float32\", defaultCurveSegments),\n        lengths: createTypedArray(\"float32\", defaultCurveSegments)\n      };\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* exported markerParser */\n\n\n  var markerParser = function () {\n    function parsePayloadLines(payload) {\n      var lines = payload.split(\"\\r\\n\");\n      var keys = {};\n      var line;\n      var keysCount = 0;\n\n      for (var i = 0; i < lines.length; i += 1) {\n        line = lines[i].split(\":\");\n\n        if (line.length === 2) {\n          keys[line[0]] = line[1].trim();\n          keysCount += 1;\n        }\n      }\n\n      if (keysCount === 0) {\n        throw new Error();\n      }\n\n      return keys;\n    }\n\n    return function (_markers) {\n      var markers = [];\n\n      for (var i = 0; i < _markers.length; i += 1) {\n        var _marker = _markers[i];\n        var markerData = {\n          time: _marker.tm,\n          duration: _marker.dr\n        };\n\n        try {\n          markerData.payload = JSON.parse(_markers[i].cm);\n        } catch (_) {\n          try {\n            markerData.payload = parsePayloadLines(_markers[i].cm);\n          } catch (__) {\n            markerData.payload = {\n              name: _markers[i]\n            };\n          }\n        }\n\n        markers.push(markerData);\n      }\n\n      return markers;\n    };\n  }();\n  /* global AudioElement, FootageElement, FontManager */\n\n\n  function BaseRenderer() {}\n\n  BaseRenderer.prototype.checkLayers = function (num) {\n    var i;\n    var len = (this || _global).layers.length;\n    var data;\n    (this || _global).completeLayers = true;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (!(this || _global).elements[i]) {\n        data = (this || _global).layers[i];\n\n        if (data.ip - data.st <= num - (this || _global).layers[i].st && data.op - data.st > num - (this || _global).layers[i].st) {\n          this.buildItem(i);\n        }\n      }\n\n      (this || _global).completeLayers = (this || _global).elements[i] ? (this || _global).completeLayers : false;\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.createItem = function (layer) {\n    switch (layer.ty) {\n      case 2:\n        return this.createImage(layer);\n\n      case 0:\n        return this.createComp(layer);\n\n      case 1:\n        return this.createSolid(layer);\n\n      case 3:\n        return this.createNull(layer);\n\n      case 4:\n        return this.createShape(layer);\n\n      case 5:\n        return this.createText(layer);\n\n      case 6:\n        return this.createAudio(layer);\n\n      case 13:\n        return this.createCamera(layer);\n\n      case 15:\n        return this.createFootage(layer);\n\n      default:\n        return this.createNull(layer);\n    }\n  };\n\n  BaseRenderer.prototype.createCamera = function () {\n    throw new Error(\"You're using a 3d camera. Try the html renderer.\");\n  };\n\n  BaseRenderer.prototype.createAudio = function (data) {\n    return new AudioElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.createFootage = function (data) {\n    return new FootageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.buildAllItems = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.buildItem(i);\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.includeLayers = function (newLayers) {\n    (this || _global).completeLayers = false;\n    var i;\n    var len = newLayers.length;\n    var j;\n    var jLen = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      j = 0;\n\n      while (j < jLen) {\n        if ((this || _global).layers[j].id === newLayers[i].id) {\n          (this || _global).layers[j] = newLayers[i];\n          break;\n        }\n\n        j += 1;\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n    (this || _global).globalData.projectInterface = pInterface;\n  };\n\n  BaseRenderer.prototype.initItems = function () {\n    if (!(this || _global).globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n  };\n\n  BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n    var elements = (this || _global).elements;\n    var layers = (this || _global).layers;\n    var i = 0;\n    var len = layers.length;\n\n    while (i < len) {\n      if (layers[i].ind == parentName) {\n        // eslint-disable-line eqeqeq\n        if (!elements[i] || elements[i] === true) {\n          this.buildItem(i);\n          this.addPendingElement(element);\n        } else {\n          hierarchy.push(elements[i]);\n          elements[i].setAsParent();\n\n          if (layers[i].parent !== undefined) {\n            this.buildElementParenting(element, layers[i].parent, hierarchy);\n          } else {\n            element.setHierarchy(hierarchy);\n          }\n        }\n      }\n\n      i += 1;\n    }\n  };\n\n  BaseRenderer.prototype.addPendingElement = function (element) {\n    (this || _global).pendingElements.push(element);\n  };\n\n  BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i]);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n    (this || _global).globalData.fontManager = new FontManager();\n\n    (this || _global).globalData.fontManager.addChars(animData.chars);\n\n    (this || _global).globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\n    (this || _global).globalData.getAssetData = (this || _global).animationItem.getAssetData.bind((this || _global).animationItem);\n    (this || _global).globalData.getAssetsPath = (this || _global).animationItem.getAssetsPath.bind((this || _global).animationItem);\n    (this || _global).globalData.imageLoader = (this || _global).animationItem.imagePreloader;\n    (this || _global).globalData.audioController = (this || _global).animationItem.audioController;\n    (this || _global).globalData.frameId = 0;\n    (this || _global).globalData.frameRate = animData.fr;\n    (this || _global).globalData.nm = animData.nm;\n    (this || _global).globalData.compSize = {\n      w: animData.w,\n      h: animData.h\n    };\n  };\n  /* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\n  IImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\n\n\n  function SVGRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).svgElement = createNS(\"svg\");\n    var ariaLabel = \"\";\n\n    if (config && config.title) {\n      var titleElement = createNS(\"title\");\n      var titleId = createElementID();\n      titleElement.setAttribute(\"id\", titleId);\n      titleElement.textContent = config.title;\n\n      (this || _global).svgElement.appendChild(titleElement);\n\n      ariaLabel += titleId;\n    }\n\n    if (config && config.description) {\n      var descElement = createNS(\"desc\");\n      var descId = createElementID();\n      descElement.setAttribute(\"id\", descId);\n      descElement.textContent = config.description;\n\n      (this || _global).svgElement.appendChild(descElement);\n\n      ariaLabel += \" \" + descId;\n    }\n\n    if (ariaLabel) {\n      (this || _global).svgElement.setAttribute(\"aria-labelledby\", ariaLabel);\n    }\n\n    var defs = createNS(\"defs\");\n\n    (this || _global).svgElement.appendChild(defs);\n\n    var maskElement = createNS(\"g\");\n\n    (this || _global).svgElement.appendChild(maskElement);\n\n    (this || _global).layerElement = maskElement;\n    (this || _global).renderConfig = {\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      progressiveLoad: config && config.progressiveLoad || false,\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      viewBoxOnly: config && config.viewBoxOnly || false,\n      viewBoxSize: config && config.viewBoxSize || false,\n      className: config && config.className || \"\",\n      id: config && config.id || \"\",\n      focusable: config && config.focusable,\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"100%\",\n        height: config && config.filterSize && config.filterSize.height || \"100%\",\n        x: config && config.filterSize && config.filterSize.x || \"0%\",\n        y: config && config.filterSize && config.filterSize.y || \"0%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      defs: defs,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).rendererType = \"svg\";\n  }\n\n  extendPrototype([BaseRenderer], SVGRenderer);\n\n  SVGRenderer.prototype.createNull = function (data) {\n    return new NullElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createShape = function (data) {\n    return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createText = function (data) {\n    return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createImage = function (data) {\n    return new IImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createComp = function (data) {\n    return new SVGCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createSolid = function (data) {\n    return new ISolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.configAnimation = function (animData) {\n    (this || _global).svgElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\n    if ((this || _global).renderConfig.viewBoxSize) {\n      (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).renderConfig.viewBoxSize);\n    } else {\n      (this || _global).svgElement.setAttribute(\"viewBox\", \"0 0 \" + animData.w + \" \" + animData.h);\n    }\n\n    if (!(this || _global).renderConfig.viewBoxOnly) {\n      (this || _global).svgElement.setAttribute(\"width\", animData.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", animData.h);\n\n      (this || _global).svgElement.style.width = \"100%\";\n      (this || _global).svgElement.style.height = \"100%\";\n      (this || _global).svgElement.style.transform = \"translate3d(0,0,0)\";\n    }\n\n    if ((this || _global).renderConfig.className) {\n      (this || _global).svgElement.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    if ((this || _global).renderConfig.id) {\n      (this || _global).svgElement.setAttribute(\"id\", (this || _global).renderConfig.id);\n    }\n\n    if ((this || _global).renderConfig.focusable !== undefined) {\n      (this || _global).svgElement.setAttribute(\"focusable\", (this || _global).renderConfig.focusable);\n    }\n\n    (this || _global).svgElement.setAttribute(\"preserveAspectRatio\", (this || _global).renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n    // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n\n    (this || _global).animationItem.wrapper.appendChild((this || _global).svgElement); // Mask animation\n\n\n    var defs = (this || _global).globalData.defs;\n    this.setupGlobalData(animData, defs);\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).data = animData;\n    var maskElement = createNS(\"clipPath\");\n    var rect = createNS(\"rect\");\n    rect.setAttribute(\"width\", animData.w);\n    rect.setAttribute(\"height\", animData.h);\n    rect.setAttribute(\"x\", 0);\n    rect.setAttribute(\"y\", 0);\n    var maskId = createElementID();\n    maskElement.setAttribute(\"id\", maskId);\n    maskElement.appendChild(rect);\n\n    (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + maskId + \")\");\n\n    defs.appendChild(maskElement);\n    (this || _global).layers = animData.layers;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n  };\n\n  SVGRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).layerElement = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  SVGRenderer.prototype.updateContainerSize = function () {};\n\n  SVGRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    elements[pos] = true;\n    var element = this.createItem((this || _global).layers[pos]);\n    elements[pos] = element;\n\n    if (expressionsPlugin) {\n      if ((this || _global).layers[pos].ty === 0) {\n        (this || _global).globalData.projectInterface.registerComposition(element);\n      }\n\n      element.initExpressions();\n    }\n\n    this.appendElementInPos(element, pos);\n\n    if ((this || _global).layers[pos].tt) {\n      if (!(this || _global).elements[pos - 1] || (this || _global).elements[pos - 1] === true) {\n        this.buildItem(pos - 1);\n        this.addPendingElement(element);\n      } else {\n        element.setMatte(elements[pos - 1].layerId);\n      }\n    }\n  };\n\n  SVGRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n\n      if (element.data.tt) {\n        var i = 0;\n        var len = (this || _global).elements.length;\n\n        while (i < len) {\n          if ((this || _global).elements[i] === element) {\n            element.setMatte((this || _global).elements[i - 1].layerId);\n            break;\n          }\n\n          i += 1;\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.renderFrame = function (num) {\n    if ((this || _global).renderedFrame === num || (this || _global).destroyed) {\n      return;\n    }\n\n    if (num === null) {\n      num = (this || _global).renderedFrame;\n    } else {\n      (this || _global).renderedFrame = num;\n    } // console.log('-------');\n    // console.log('FRAME ',num);\n\n\n    (this || _global).globalData.frameNum = num;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData.projectInterface.currentFrame = num;\n    (this || _global).globalData._mdf = false;\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newElement = element.getBaseElement();\n\n    if (!newElement) {\n      return;\n    }\n\n    var i = 0;\n    var nextElement;\n\n    while (i < pos) {\n      if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement()) {\n        nextElement = (this || _global).elements[i].getBaseElement();\n      }\n\n      i += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(newElement, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(newElement);\n    }\n  };\n\n  SVGRenderer.prototype.hide = function () {\n    (this || _global).layerElement.style.display = \"none\";\n  };\n\n  SVGRenderer.prototype.show = function () {\n    (this || _global).layerElement.style.display = \"block\";\n  };\n  /* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\n  CVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\n\n\n  function CanvasRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).renderConfig = {\n      clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n      context: config && config.context || null,\n      progressiveLoad: config && config.progressiveLoad || false,\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      className: config && config.className || \"\",\n      id: config && config.id || \"\"\n    };\n    (this || _global).renderConfig.dpr = config && config.dpr || 1;\n\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    (this || _global).renderedFrame = -1;\n    (this || _global).globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: (this || _global).renderConfig,\n      currentGlobalAlpha: -1\n    };\n    (this || _global).contextData = new CVContextData();\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).transformMat = new Matrix();\n    (this || _global).completeLayers = false;\n    (this || _global).rendererType = \"canvas\";\n  }\n\n  extendPrototype([BaseRenderer], CanvasRenderer);\n\n  CanvasRenderer.prototype.createShape = function (data) {\n    return new CVShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createText = function (data) {\n    return new CVTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createImage = function (data) {\n    return new CVImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createComp = function (data) {\n    return new CVCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createSolid = function (data) {\n    return new CVSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  CanvasRenderer.prototype.ctxTransform = function (props) {\n    if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n      return;\n    }\n\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\n      return;\n    }\n\n    (this || _global).transformMat.cloneFromProps(props);\n\n    var cProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n\n    (this || _global).contextData.cTr.cloneFromProps((this || _global).transformMat.props);\n\n    var trProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n  };\n\n  CanvasRenderer.prototype.ctxOpacity = function (op) {\n    /* if(op === 1){\r\n          return;\r\n      } */\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.globalAlpha *= op < 0 ? 0 : op;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n      return;\n    }\n\n    (this || _global).contextData.cO *= op < 0 ? 0 : op;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== (this || _global).contextData.cO) {\n      (this || _global).canvasContext.globalAlpha = (this || _global).contextData.cO;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n    }\n  };\n\n  CanvasRenderer.prototype.reset = function () {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    (this || _global).contextData.reset();\n  };\n\n  CanvasRenderer.prototype.save = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.save();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.save();\n    }\n\n    var props = (this || _global).contextData.cTr.props;\n\n    if ((this || _global).contextData._length <= (this || _global).contextData.cArrPos) {\n      (this || _global).contextData.duplicate();\n    }\n\n    var i;\n    var arr = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = props[i];\n    }\n\n    (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos] = (this || _global).contextData.cO;\n    (this || _global).contextData.cArrPos += 1;\n  };\n\n  CanvasRenderer.prototype.restore = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.restore();\n\n      (this || _global).globalData.blendMode = \"source-over\";\n    }\n\n    (this || _global).contextData.cArrPos -= 1;\n    var popped = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n    var i;\n    var arr = (this || _global).contextData.cTr.props;\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = popped[i];\n    }\n\n    (this || _global).canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\n    popped = (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos];\n    (this || _global).contextData.cO = popped;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== popped) {\n      (this || _global).canvasContext.globalAlpha = popped;\n      (this || _global).globalData.currentGlobalAlpha = popped;\n    }\n  };\n\n  CanvasRenderer.prototype.configAnimation = function (animData) {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.container = createTag(\"canvas\");\n      var containerStyle = (this || _global).animationItem.container.style;\n      containerStyle.width = \"100%\";\n      containerStyle.height = \"100%\";\n      var origin = \"0px 0px 0px\";\n      containerStyle.transformOrigin = origin;\n      containerStyle.mozTransformOrigin = origin;\n      containerStyle.webkitTransformOrigin = origin;\n      containerStyle[\"-webkit-transform\"] = origin;\n\n      (this || _global).animationItem.wrapper.appendChild((this || _global).animationItem.container);\n\n      (this || _global).canvasContext = (this || _global).animationItem.container.getContext(\"2d\");\n\n      if ((this || _global).renderConfig.className) {\n        (this || _global).animationItem.container.setAttribute(\"class\", (this || _global).renderConfig.className);\n      }\n\n      if ((this || _global).renderConfig.id) {\n        (this || _global).animationItem.container.setAttribute(\"id\", (this || _global).renderConfig.id);\n      }\n    } else {\n      (this || _global).canvasContext = (this || _global).renderConfig.context;\n    }\n\n    (this || _global).data = animData;\n    (this || _global).layers = animData.layers;\n    (this || _global).transformCanvas = {\n      w: animData.w,\n      h: animData.h,\n      sx: 0,\n      sy: 0,\n      tx: 0,\n      ty: 0\n    };\n    this.setupGlobalData(animData, document.body);\n    (this || _global).globalData.canvasContext = (this || _global).canvasContext;\n    (this || _global).globalData.renderer = this || _global;\n    (this || _global).globalData.isDashed = false;\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).globalData.transformCanvas = (this || _global).transformCanvas;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n    this.updateContainerSize();\n  };\n\n  CanvasRenderer.prototype.updateContainerSize = function () {\n    this.reset();\n    var elementWidth;\n    var elementHeight;\n\n    if ((this || _global).animationItem.wrapper && (this || _global).animationItem.container) {\n      elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n      elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n\n      (this || _global).animationItem.container.setAttribute(\"width\", elementWidth * (this || _global).renderConfig.dpr);\n\n      (this || _global).animationItem.container.setAttribute(\"height\", elementHeight * (this || _global).renderConfig.dpr);\n    } else {\n      elementWidth = (this || _global).canvasContext.canvas.width * (this || _global).renderConfig.dpr;\n      elementHeight = (this || _global).canvasContext.canvas.height * (this || _global).renderConfig.dpr;\n    }\n\n    var elementRel;\n    var animationRel;\n\n    if ((this || _global).renderConfig.preserveAspectRatio.indexOf(\"meet\") !== -1 || (this || _global).renderConfig.preserveAspectRatio.indexOf(\"slice\") !== -1) {\n      var par = (this || _global).renderConfig.preserveAspectRatio.split(\" \");\n\n      var fillType = par[1] || \"meet\";\n      var pos = par[0] || \"xMidYMid\";\n      var xPos = pos.substr(0, 4);\n      var yPos = pos.substr(4);\n      elementRel = elementWidth / elementHeight;\n      animationRel = (this || _global).transformCanvas.w / (this || _global).transformCanvas.h;\n\n      if (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\") {\n        (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      } else {\n        (this || _global).transformCanvas.sx = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      }\n\n      if (xPos === \"xMid\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (xPos === \"xMax\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.tx = 0;\n      }\n\n      if (yPos === \"YMid\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (yPos === \"YMax\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.ty = 0;\n      }\n    } else if ((this || _global).renderConfig.preserveAspectRatio === \"none\") {\n      (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    } else {\n      (this || _global).transformCanvas.sx = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.sy = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    }\n\n    (this || _global).transformCanvas.props = [(this || _global).transformCanvas.sx, 0, 0, 0, 0, (this || _global).transformCanvas.sy, 0, 0, 0, 0, 1, 0, (this || _global).transformCanvas.tx, (this || _global).transformCanvas.ty, 0, 1];\n    /* var i, len = this.elements.length;\r\n      for(i=0;i<len;i+=1){\r\n          if(this.elements[i] && this.elements[i].data.ty === 0){\r\n              this.elements[i].resize(this.globalData.transformCanvas);\r\n          }\r\n      } */\n\n    this.ctxTransform((this || _global).transformCanvas.props);\n\n    (this || _global).canvasContext.beginPath();\n\n    (this || _global).canvasContext.rect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n\n    (this || _global).canvasContext.closePath();\n\n    (this || _global).canvasContext.clip();\n\n    this.renderFrame((this || _global).renderedFrame, true);\n  };\n\n  CanvasRenderer.prototype.destroy = function () {\n    if ((this || _global).renderConfig.clearCanvas && (this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).globalData.canvasContext = null;\n    (this || _global).animationItem.container = null;\n    (this || _global).destroyed = true;\n  };\n\n  CanvasRenderer.prototype.renderFrame = function (num, forceRender) {\n    if ((this || _global).renderedFrame === num && (this || _global).renderConfig.clearCanvas === true && !forceRender || (this || _global).destroyed || num === -1) {\n      return;\n    }\n\n    (this || _global).renderedFrame = num;\n    (this || _global).globalData.frameNum = num - (this || _global).animationItem._isFirstFrame;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData._mdf = !(this || _global).renderConfig.clearCanvas || forceRender;\n    (this || _global).globalData.projectInterface.currentFrame = num; // console.log('--------');\n    // console.log('NEW: ',num);\n\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      if ((this || _global).renderConfig.clearCanvas === true) {\n        (this || _global).canvasContext.clearRect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n      } else {\n        this.save();\n      }\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n\n      if ((this || _global).renderConfig.clearCanvas !== true) {\n        this.restore();\n      }\n    }\n  };\n\n  CanvasRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    var element = this.createItem((this || _global).layers[pos], this || _global, (this || _global).globalData);\n    elements[pos] = element;\n    element.initExpressions();\n    /* if(this.layers[pos].ty === 0){\r\n          element.resize(this.globalData.transformCanvas);\r\n      } */\n  };\n\n  CanvasRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  CanvasRenderer.prototype.hide = function () {\n    (this || _global).animationItem.container.style.display = \"none\";\n  };\n\n  CanvasRenderer.prototype.show = function () {\n    (this || _global).animationItem.container.style.display = \"block\";\n  };\n  /* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\n  HTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\n  HSolidElement, styleDiv, createTag, createNS */\n\n\n  function HybridRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).renderConfig = {\n      className: config && config.className || \"\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"400%\",\n        height: config && config.filterSize && config.filterSize.height || \"400%\",\n        x: config && config.filterSize && config.filterSize.x || \"-100%\",\n        y: config && config.filterSize && config.filterSize.y || \"-100%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).pendingElements = [];\n    (this || _global).elements = [];\n    (this || _global).threeDElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).camera = null;\n    (this || _global).supports3d = true;\n    (this || _global).rendererType = \"html\";\n  }\n\n  extendPrototype([BaseRenderer], HybridRenderer);\n  HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n  HybridRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  HybridRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newDOMElement = element.getBaseElement();\n\n    if (!newDOMElement) {\n      return;\n    }\n\n    var layer = (this || _global).layers[pos];\n\n    if (!layer.ddd || !(this || _global).supports3d) {\n      if ((this || _global).threeDElements) {\n        this.addTo3dContainer(newDOMElement, pos);\n      } else {\n        var i = 0;\n        var nextDOMElement;\n        var nextLayer;\n        var tmpDOMElement;\n\n        while (i < pos) {\n          if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement) {\n            nextLayer = (this || _global).elements[i];\n            tmpDOMElement = (this || _global).layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n            nextDOMElement = tmpDOMElement || nextDOMElement;\n          }\n\n          i += 1;\n        }\n\n        if (nextDOMElement) {\n          if (!layer.ddd || !(this || _global).supports3d) {\n            (this || _global).layerElement.insertBefore(newDOMElement, nextDOMElement);\n          }\n        } else if (!layer.ddd || !(this || _global).supports3d) {\n          (this || _global).layerElement.appendChild(newDOMElement);\n        }\n      }\n    } else {\n      this.addTo3dContainer(newDOMElement, pos);\n    }\n  };\n\n  HybridRenderer.prototype.createShape = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createText = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createCamera = function (data) {\n    (this || _global).camera = new HCameraElement(data, (this || _global).globalData, this || _global);\n    return (this || _global).camera;\n  };\n\n  HybridRenderer.prototype.createImage = function (data) {\n    if (!(this || _global).supports3d) {\n      return new IImageElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createComp = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGCompElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createSolid = function (data) {\n    if (!(this || _global).supports3d) {\n      return new ISolidElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  HybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if ((this || _global).threeDElements[i].startPos <= pos && (this || _global).threeDElements[i].endPos >= pos) {\n        return (this || _global).threeDElements[i].perspectiveElem;\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  HybridRenderer.prototype.createThreeDContainer = function (pos, type) {\n    var perspectiveElem = createTag(\"div\");\n    var style;\n    var containerStyle;\n    styleDiv(perspectiveElem);\n    var container = createTag(\"div\");\n    styleDiv(container);\n\n    if (type === \"3d\") {\n      style = perspectiveElem.style;\n      style.width = (this || _global).globalData.compSize.w + \"px\";\n      style.height = (this || _global).globalData.compSize.h + \"px\";\n      var center = \"50% 50%\";\n      style.webkitTransformOrigin = center;\n      style.mozTransformOrigin = center;\n      style.transformOrigin = center;\n      containerStyle = container.style;\n      var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n      containerStyle.transform = matrix;\n      containerStyle.webkitTransform = matrix;\n    }\n\n    perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n    var threeDContainerData = {\n      container: container,\n      perspectiveElem: perspectiveElem,\n      startPos: pos,\n      endPos: pos,\n      type: type\n    };\n\n    (this || _global).threeDElements.push(threeDContainerData);\n\n    return threeDContainerData;\n  };\n\n  HybridRenderer.prototype.build3dContainers = function () {\n    var i;\n    var len = (this || _global).layers.length;\n    var lastThreeDContainerData;\n    var currentContainer = \"\";\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).layers[i].ddd && (this || _global).layers[i].ty !== 3) {\n        if (currentContainer !== \"3d\") {\n          currentContainer = \"3d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"3d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      } else {\n        if (currentContainer !== \"2d\") {\n          currentContainer = \"2d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"2d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      }\n    }\n\n    len = (this || _global).threeDElements.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      (this || _global).resizerElem.appendChild((this || _global).threeDElements[i].perspectiveElem);\n    }\n  };\n\n  HybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if (pos <= (this || _global).threeDElements[i].endPos) {\n        var j = (this || _global).threeDElements[i].startPos;\n        var nextElement;\n\n        while (j < pos) {\n          if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n            nextElement = (this || _global).elements[j].getBaseElement();\n          }\n\n          j += 1;\n        }\n\n        if (nextElement) {\n          (this || _global).threeDElements[i].container.insertBefore(elem, nextElement);\n        } else {\n          (this || _global).threeDElements[i].container.appendChild(elem);\n        }\n\n        break;\n      }\n\n      i += 1;\n    }\n  };\n\n  HybridRenderer.prototype.configAnimation = function (animData) {\n    var resizerElem = createTag(\"div\");\n    var wrapper = (this || _global).animationItem.wrapper;\n    var style = resizerElem.style;\n    style.width = animData.w + \"px\";\n    style.height = animData.h + \"px\";\n    (this || _global).resizerElem = resizerElem;\n    styleDiv(resizerElem);\n    style.transformStyle = \"flat\";\n    style.mozTransformStyle = \"flat\";\n    style.webkitTransformStyle = \"flat\";\n\n    if ((this || _global).renderConfig.className) {\n      resizerElem.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    wrapper.appendChild(resizerElem);\n    style.overflow = \"hidden\";\n    var svg = createNS(\"svg\");\n    svg.setAttribute(\"width\", \"1\");\n    svg.setAttribute(\"height\", \"1\");\n    styleDiv(svg);\n\n    (this || _global).resizerElem.appendChild(svg);\n\n    var defs = createNS(\"defs\");\n    svg.appendChild(defs);\n    (this || _global).data = animData; // Mask animation\n\n    this.setupGlobalData(animData, svg);\n    (this || _global).globalData.defs = defs;\n    (this || _global).layers = animData.layers;\n    (this || _global).layerElement = (this || _global).resizerElem;\n    this.build3dContainers();\n    this.updateContainerSize();\n  };\n\n  HybridRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).animationItem.container = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).elements[i].destroy();\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  HybridRenderer.prototype.updateContainerSize = function () {\n    var elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n    var elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n    var elementRel = elementWidth / elementHeight;\n    var animationRel = (this || _global).globalData.compSize.w / (this || _global).globalData.compSize.h;\n    var sx;\n    var sy;\n    var tx;\n    var ty;\n\n    if (animationRel > elementRel) {\n      sx = elementWidth / (this || _global).globalData.compSize.w;\n      sy = elementWidth / (this || _global).globalData.compSize.w;\n      tx = 0;\n      ty = (elementHeight - (this || _global).globalData.compSize.h * (elementWidth / (this || _global).globalData.compSize.w)) / 2;\n    } else {\n      sx = elementHeight / (this || _global).globalData.compSize.h;\n      sy = elementHeight / (this || _global).globalData.compSize.h;\n      tx = (elementWidth - (this || _global).globalData.compSize.w * (elementHeight / (this || _global).globalData.compSize.h)) / 2;\n      ty = 0;\n    }\n\n    var style = (this || _global).resizerElem.style;\n    style.webkitTransform = \"matrix3d(\" + sx + \",0,0,0,0,\" + sy + \",0,0,0,0,1,0,\" + tx + \",\" + ty + \",0,1)\";\n    style.transform = style.webkitTransform;\n  };\n\n  HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n  HybridRenderer.prototype.hide = function () {\n    (this || _global).resizerElem.style.display = \"none\";\n  };\n\n  HybridRenderer.prototype.show = function () {\n    (this || _global).resizerElem.style.display = \"block\";\n  };\n\n  HybridRenderer.prototype.initItems = function () {\n    this.buildAllItems();\n\n    if ((this || _global).camera) {\n      (this || _global).camera.setup();\n    } else {\n      var cWidth = (this || _global).globalData.compSize.w;\n      var cHeight = (this || _global).globalData.compSize.h;\n      var i;\n      var len = (this || _global).threeDElements.length;\n\n      for (i = 0; i < len; i += 1) {\n        var style = (this || _global).threeDElements[i].perspectiveElem.style;\n        style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + \"px\";\n        style.perspective = style.webkitPerspective;\n      }\n    }\n  };\n\n  HybridRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n    var floatingContainer = createTag(\"div\");\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i], floatingContainer, (this || _global).globalData.comp, null);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n  /* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\n\n\n  function MaskElement(data, element, globalData) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).globalData = globalData;\n    (this || _global).storedData = [];\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).maskElement = null;\n    var defs = (this || _global).globalData.defs;\n    var i;\n    var len = (this || _global).masksProperties ? (this || _global).masksProperties.length : 0;\n    (this || _global).viewData = createSizedArray(len);\n    (this || _global).solidPath = \"\";\n    var path;\n    var properties = (this || _global).masksProperties;\n    var count = 0;\n    var currentMasks = [];\n    var j;\n    var jLen;\n    var layerId = createElementID();\n    var rect;\n    var expansor;\n    var feMorph;\n    var x;\n    var maskType = \"clipPath\";\n    var maskRef = \"clip-path\";\n\n    for (i = 0; i < len; i += 1) {\n      if (properties[i].mode !== \"a\" && properties[i].mode !== \"n\" || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n        maskType = \"mask\";\n        maskRef = \"mask\";\n      }\n\n      if ((properties[i].mode === \"s\" || properties[i].mode === \"i\") && count === 0) {\n        rect = createNS(\"rect\");\n        rect.setAttribute(\"fill\", \"#ffffff\");\n        rect.setAttribute(\"width\", (this || _global).element.comp.data.w || 0);\n        rect.setAttribute(\"height\", (this || _global).element.comp.data.h || 0);\n        currentMasks.push(rect);\n      } else {\n        rect = null;\n      }\n\n      path = createNS(\"path\");\n\n      if (properties[i].mode === \"n\") {\n        // TODO move this to a factory or to a constructor\n        (this || _global).viewData[i] = {\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          elem: path,\n          lastPath: \"\"\n        };\n        defs.appendChild(path);\n      } else {\n        count += 1;\n        path.setAttribute(\"fill\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        path.setAttribute(\"clip-rule\", \"nonzero\");\n        var filterID;\n\n        if (properties[i].x.k !== 0) {\n          maskType = \"mask\";\n          maskRef = \"mask\";\n          x = PropertyFactory.getProp((this || _global).element, properties[i].x, 0, null, (this || _global).element);\n          filterID = createElementID();\n          expansor = createNS(\"filter\");\n          expansor.setAttribute(\"id\", filterID);\n          feMorph = createNS(\"feMorphology\");\n          feMorph.setAttribute(\"operator\", \"erode\");\n          feMorph.setAttribute(\"in\", \"SourceGraphic\");\n          feMorph.setAttribute(\"radius\", \"0\");\n          expansor.appendChild(feMorph);\n          defs.appendChild(expansor);\n          path.setAttribute(\"stroke\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        } else {\n          feMorph = null;\n          x = null;\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).storedData[i] = {\n          elem: path,\n          x: x,\n          expan: feMorph,\n          lastPath: \"\",\n          lastOperator: \"\",\n          filterId: filterID,\n          lastRadius: 0\n        };\n\n        if (properties[i].mode === \"i\") {\n          jLen = currentMasks.length;\n          var g = createNS(\"g\");\n\n          for (j = 0; j < jLen; j += 1) {\n            g.appendChild(currentMasks[j]);\n          }\n\n          var mask = createNS(\"mask\");\n          mask.setAttribute(\"mask-type\", \"alpha\");\n          mask.setAttribute(\"id\", layerId + \"_\" + count);\n          mask.appendChild(path);\n          defs.appendChild(mask);\n          g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + layerId + \"_\" + count + \")\");\n          currentMasks.length = 0;\n          currentMasks.push(g);\n        } else {\n          currentMasks.push(path);\n        }\n\n        if (properties[i].inv && !(this || _global).solidPath) {\n          (this || _global).solidPath = this.createLayerSolidPath();\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).viewData[i] = {\n          elem: path,\n          lastPath: \"\",\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          invRect: rect\n        };\n\n        if (!(this || _global).viewData[i].prop.k) {\n          this.drawPath(properties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n        }\n      }\n    }\n\n    (this || _global).maskElement = createNS(maskType);\n    len = currentMasks.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).maskElement.appendChild(currentMasks[i]);\n    }\n\n    if (count > 0) {\n      (this || _global).maskElement.setAttribute(\"id\", layerId);\n\n      (this || _global).element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\n\n      defs.appendChild((this || _global).maskElement);\n    }\n\n    if ((this || _global).viewData.length) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  MaskElement.prototype.getMaskProperty = function (pos) {\n    return (this || _global).viewData[pos].prop;\n  };\n\n  MaskElement.prototype.renderFrame = function (isFirstFrame) {\n    var finalMat = (this || _global).element.finalTransform.mat;\n    var i;\n    var len = (this || _global).masksProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).viewData[i].prop._mdf || isFirstFrame) {\n        this.drawPath((this || _global).masksProperties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n      }\n\n      if ((this || _global).viewData[i].op._mdf || isFirstFrame) {\n        (this || _global).viewData[i].elem.setAttribute(\"fill-opacity\", (this || _global).viewData[i].op.v);\n      }\n\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).viewData[i].invRect && ((this || _global).element.finalTransform.mProp._mdf || isFirstFrame)) {\n          (this || _global).viewData[i].invRect.setAttribute(\"transform\", finalMat.getInverseMatrix().to2dCSS());\n        }\n\n        if ((this || _global).storedData[i].x && ((this || _global).storedData[i].x._mdf || isFirstFrame)) {\n          var feMorph = (this || _global).storedData[i].expan;\n\n          if ((this || _global).storedData[i].x.v < 0) {\n            if ((this || _global).storedData[i].lastOperator !== \"erode\") {\n              (this || _global).storedData[i].lastOperator = \"erode\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + (this || _global).storedData[i].filterId + \")\");\n            }\n\n            feMorph.setAttribute(\"radius\", -(this || _global).storedData[i].x.v);\n          } else {\n            if ((this || _global).storedData[i].lastOperator !== \"dilate\") {\n              (this || _global).storedData[i].lastOperator = \"dilate\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", null);\n            }\n\n            (this || _global).storedData[i].elem.setAttribute(\"stroke-width\", (this || _global).storedData[i].x.v * 2);\n          }\n        }\n      }\n    }\n  };\n\n  MaskElement.prototype.getMaskelement = function () {\n    return (this || _global).maskElement;\n  };\n\n  MaskElement.prototype.createLayerSolidPath = function () {\n    var path = \"M0,0 \";\n    path += \" h\" + (this || _global).globalData.compSize.w;\n    path += \" v\" + (this || _global).globalData.compSize.h;\n    path += \" h-\" + (this || _global).globalData.compSize.w;\n    path += \" v-\" + (this || _global).globalData.compSize.h + \" \";\n    return path;\n  };\n\n  MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n    var pathString = \" M\" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    var i;\n    var len;\n    len = pathNodes._length;\n\n    for (i = 1; i < len; i += 1) {\n      // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[i][0] + \",\" + pathNodes.i[i][1] + \" \" + pathNodes.v[i][0] + \",\" + pathNodes.v[i][1];\n    } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n    if (pathNodes.c && len > 1) {\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[0][0] + \",\" + pathNodes.i[0][1] + \" \" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    } // pathNodes.__renderedString = pathString;\n\n\n    if (viewData.lastPath !== pathString) {\n      var pathShapeValue = \"\";\n\n      if (viewData.elem) {\n        if (pathNodes.c) {\n          pathShapeValue = pathData.inv ? (this || _global).solidPath + pathString : pathString;\n        }\n\n        viewData.elem.setAttribute(\"d\", pathShapeValue);\n      }\n\n      viewData.lastPath = pathString;\n    }\n  };\n\n  MaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n    (this || _global).globalData = null;\n    (this || _global).maskElement = null;\n    (this || _global).data = null;\n    (this || _global).masksProperties = null;\n  };\n  /**\r\n   * @file\r\n   * Handles AE's layer parenting property.\r\n   *\r\n   */\n\n\n  function HierarchyElement() {}\n\n  HierarchyElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes hierarchy properties\r\n       *\r\n       */\n    initHierarchy: function () {\n      // element's parent list\n      (this || _global).hierarchy = []; // if element is parent of another layer _isParent will be true\n\n      (this || _global)._isParent = false;\n      this.checkParenting();\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer's hierarchy.\r\n       * @param {array} hierarch\r\n       * layer's parent list\r\n       *\r\n       */\n    setHierarchy: function (hierarchy) {\n      (this || _global).hierarchy = hierarchy;\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer as parent.\r\n       *\r\n       */\n    setAsParent: function () {\n      (this || _global)._isParent = true;\n    },\n\n    /**\r\n       * @function\r\n       * Searches layer's parenting chain\r\n       *\r\n       */\n    checkParenting: function () {\n      if ((this || _global).data.parent !== undefined) {\n        (this || _global).comp.buildElementParenting(this || _global, (this || _global).data.parent, []);\n      }\n    }\n  };\n  /**\r\n   * @file\r\n   * Handles element's layer frame update.\r\n   * Checks layer in point and out point\r\n   *\r\n   */\n\n  function FrameElement() {}\n\n  FrameElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       */\n    initFrame: function () {\n      // set to true when inpoint is rendered\n      (this || _global)._isFirstFrame = false; // list of animated properties\n\n      (this || _global).dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n      (this || _global)._mdf = false;\n    },\n\n    /**\r\n       * @function\r\n       * Calculates all dynamic values\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       * @param {boolean} isVisible\r\n       * if layers is currently in range\r\n       *\r\n       */\n    prepareProperties: function (num, isVisible) {\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (isVisible || (this || _global)._isParent && (this || _global).dynamicProperties[i].propType === \"transform\") {\n          (this || _global).dynamicProperties[i].getValue();\n\n          if ((this || _global).dynamicProperties[i]._mdf) {\n            (this || _global).globalData._mdf = true;\n            (this || _global)._mdf = true;\n          }\n        }\n      }\n    },\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n      }\n    }\n  };\n  /* global TransformPropertyFactory, Matrix */\n\n  function TransformElement() {}\n\n  TransformElement.prototype = {\n    initTransform: function () {\n      (this || _global).finalTransform = {\n        mProp: (this || _global).data.ks ? TransformPropertyFactory.getTransformProperty(this || _global, (this || _global).data.ks, this || _global) : {\n          o: 0\n        },\n        _matMdf: false,\n        _opMdf: false,\n        mat: new Matrix()\n      };\n\n      if ((this || _global).data.ao) {\n        (this || _global).finalTransform.mProp.autoOriented = true;\n      } // TODO: check TYPE 11: Guided elements\n\n\n      if ((this || _global).data.ty !== 11) {// this.createElements();\n      }\n    },\n    renderTransform: function () {\n      (this || _global).finalTransform._opMdf = (this || _global).finalTransform.mProp.o._mdf || (this || _global)._isFirstFrame;\n      (this || _global).finalTransform._matMdf = (this || _global).finalTransform.mProp._mdf || (this || _global)._isFirstFrame;\n\n      if ((this || _global).hierarchy) {\n        var mat;\n        var finalMat = (this || _global).finalTransform.mat;\n        var i = 0;\n        var len = (this || _global).hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n        if (!(this || _global).finalTransform._matMdf) {\n          while (i < len) {\n            if ((this || _global).hierarchy[i].finalTransform.mProp._mdf) {\n              (this || _global).finalTransform._matMdf = true;\n              break;\n            }\n\n            i += 1;\n          }\n        }\n\n        if ((this || _global).finalTransform._matMdf) {\n          mat = (this || _global).finalTransform.mProp.v.props;\n          finalMat.cloneFromProps(mat);\n\n          for (i = 0; i < len; i += 1) {\n            mat = (this || _global).hierarchy[i].finalTransform.mProp.v.props;\n            finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n          }\n        }\n      }\n    },\n    globalToLocal: function (pt) {\n      var transforms = [];\n      transforms.push((this || _global).finalTransform);\n      var flag = true;\n      var comp = (this || _global).comp;\n\n      while (flag) {\n        if (comp.finalTransform) {\n          if (comp.data.hasMask) {\n            transforms.splice(0, 0, comp.finalTransform);\n          }\n\n          comp = comp.comp;\n        } else {\n          flag = false;\n        }\n      }\n\n      var i;\n      var len = transforms.length;\n      var ptNew;\n\n      for (i = 0; i < len; i += 1) {\n        ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n        pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n      }\n\n      return pt;\n    },\n    mHelper: new Matrix()\n  };\n\n  function RenderableElement() {}\n\n  RenderableElement.prototype = {\n    initRenderable: function () {\n      // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n      (this || _global).isInRange = false; // layer's display state\n\n      (this || _global).hidden = false; // If layer's transparency equals 0, it can be hidden\n\n      (this || _global).isTransparent = false; // list of animated components\n\n      (this || _global).renderableComponents = [];\n    },\n    addRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) === -1) {\n        (this || _global).renderableComponents.push(component);\n      }\n    },\n    removeRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) !== -1) {\n        (this || _global).renderableComponents.splice((this || _global).renderableComponents.indexOf(component), 1);\n      }\n    },\n    prepareRenderableFrame: function (num) {\n      this.checkLayerLimits(num);\n    },\n    checkTransparency: function () {\n      if ((this || _global).finalTransform.mProp.o.v <= 0) {\n        if (!(this || _global).isTransparent && (this || _global).globalData.renderConfig.hideOnTransparent) {\n          (this || _global).isTransparent = true;\n          this.hide();\n        }\n      } else if ((this || _global).isTransparent) {\n        (this || _global).isTransparent = false;\n        this.show();\n      }\n    },\n\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       *\r\n       */\n    checkLayerLimits: function (num) {\n      if ((this || _global).data.ip - (this || _global).data.st <= num && (this || _global).data.op - (this || _global).data.st > num) {\n        if ((this || _global).isInRange !== true) {\n          (this || _global).globalData._mdf = true;\n          (this || _global)._mdf = true;\n          (this || _global).isInRange = true;\n          this.show();\n        }\n      } else if ((this || _global).isInRange !== false) {\n        (this || _global).globalData._mdf = true;\n        (this || _global).isInRange = false;\n        this.hide();\n      }\n    },\n    renderRenderable: function () {\n      var i;\n      var len = (this || _global).renderableComponents.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).renderableComponents[i].renderFrame((this || _global)._isFirstFrame);\n      }\n      /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n          this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n    },\n    sourceRectAtTime: function () {\n      return {\n        top: 0,\n        left: 0,\n        width: 100,\n        height: 100\n      };\n    },\n    getLayerSize: function () {\n      if ((this || _global).data.ty === 5) {\n        return {\n          w: (this || _global).data.textData.width,\n          h: (this || _global).data.textData.height\n        };\n      }\n\n      return {\n        w: (this || _global).data.width,\n        h: (this || _global).data.height\n      };\n    }\n  };\n  /* global extendPrototype, RenderableElement, createProxyFunction */\n\n  function RenderableDOMElement() {}\n\n  (function () {\n    var _prototype = {\n      initElement: function (data, globalData, comp) {\n        this.initFrame();\n        this.initBaseData(data, globalData, comp);\n        this.initTransform(data, globalData, comp);\n        this.initHierarchy();\n        this.initRenderable();\n        this.initRendererElement();\n        this.createContainerElements();\n        this.createRenderableComponents();\n        this.createContent();\n        this.hide();\n      },\n      hide: function () {\n        if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n          var elem = (this || _global).baseElement || (this || _global).layerElement;\n          elem.style.display = \"none\";\n          (this || _global).hidden = true;\n        }\n      },\n      show: function () {\n        if ((this || _global).isInRange && !(this || _global).isTransparent) {\n          if (!(this || _global).data.hd) {\n            var elem = (this || _global).baseElement || (this || _global).layerElement;\n            elem.style.display = \"block\";\n          }\n\n          (this || _global).hidden = false;\n          (this || _global)._isFirstFrame = true;\n        }\n      },\n      renderFrame: function () {\n        // If it is exported as hidden (data.hd === true) no need to render\n        // If it is not visible no need to render\n        if ((this || _global).data.hd || (this || _global).hidden) {\n          return;\n        }\n\n        this.renderTransform();\n        this.renderRenderable();\n        this.renderElement();\n        this.renderInnerContent();\n\n        if ((this || _global)._isFirstFrame) {\n          (this || _global)._isFirstFrame = false;\n        }\n      },\n      renderInnerContent: function () {},\n      prepareFrame: function (num) {\n        (this || _global)._mdf = false;\n        this.prepareRenderableFrame(num);\n        this.prepareProperties(num, (this || _global).isInRange);\n        this.checkTransparency();\n      },\n      destroy: function () {\n        (this || _global).innerElem = null;\n        this.destroyBaseElement();\n      }\n    };\n    extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n  })();\n  /* exported ProcessedElement */\n\n\n  function ProcessedElement(element, position) {\n    (this || _global).elem = element;\n    (this || _global).pos = position;\n  }\n  /* global createNS */\n\n\n  function SVGStyleData(data, level) {\n    (this || _global).data = data;\n    (this || _global).type = data.ty;\n    (this || _global).d = \"\";\n    (this || _global).lvl = level;\n    (this || _global)._mdf = false;\n    (this || _global).closed = data.hd === true;\n    (this || _global).pElem = createNS(\"path\");\n    (this || _global).msElem = null;\n  }\n\n  SVGStyleData.prototype.reset = function () {\n    (this || _global).d = \"\";\n    (this || _global)._mdf = false;\n  };\n\n  function SVGShapeData(transformers, level, shape) {\n    (this || _global).caches = [];\n    (this || _global).styles = [];\n    (this || _global).transformers = transformers;\n    (this || _global).lStr = \"\";\n    (this || _global).sh = shape;\n    (this || _global).lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n    // For now, since shapes add up with other shapes. They have to be calculated every time.\n    // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n    (this || _global)._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n    var i = 0;\n    var len = transformers.length;\n\n    while (i < len) {\n      if (transformers[i].mProps.dynamicProperties.length) {\n        (this || _global)._isAnimated = true;\n        break;\n      }\n\n      i += 1;\n    }\n  }\n\n  SVGShapeData.prototype.setAsAnimated = function () {\n    (this || _global)._isAnimated = true;\n  };\n  /* exported SVGTransformData */\n\n\n  function SVGTransformData(mProps, op, container) {\n    (this || _global).transform = {\n      mProps: mProps,\n      op: op,\n      container: container\n    };\n    (this || _global).elements = [];\n    (this || _global)._isAnimated = (this || _global).transform.mProps.dynamicProperties.length || (this || _global).transform.op.effectsSequence.length;\n  }\n  /* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function SVGStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n  /* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function SVGFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n  /* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\n  extendPrototype, DynamicPropertyContainer */\n\n  function SVGGradientFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    this.initGradientData(elem, data, styleOb);\n  }\n\n  SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, null, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 1, null, this || _global);\n    (this || _global).h = PropertyFactory.getProp(elem, data.h || {\n      k: 0\n    }, 0, 0.01, this || _global);\n    (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n      k: 0\n    }, 0, degToRads, this || _global);\n    (this || _global).g = new GradientProperty(elem, data.g, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global).stops = [];\n    this.setGradientData(styleOb.pElem, data);\n    this.setGradientOpacity(data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n    var gradientId = createElementID();\n    var gfill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n    gfill.setAttribute(\"id\", gradientId);\n    gfill.setAttribute(\"spreadMethod\", \"pad\");\n    gfill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n    var stops = [];\n    var stop;\n    var j;\n    var jLen;\n    jLen = data.g.p * 4;\n\n    for (j = 0; j < jLen; j += 4) {\n      stop = createNS(\"stop\");\n      gfill.appendChild(stop);\n      stops.push(stop);\n    }\n\n    pathElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + gradientId + \")\");\n    (this || _global).gf = gfill;\n    (this || _global).cst = stops;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n    if ((this || _global).g._hasOpacity && !(this || _global).g._collapsable) {\n      var stop;\n      var j;\n      var jLen;\n      var mask = createNS(\"mask\");\n      var maskElement = createNS(\"path\");\n      mask.appendChild(maskElement);\n      var opacityId = createElementID();\n      var maskId = createElementID();\n      mask.setAttribute(\"id\", maskId);\n      var opFill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n      opFill.setAttribute(\"id\", opacityId);\n      opFill.setAttribute(\"spreadMethod\", \"pad\");\n      opFill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n      jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n      var stops = (this || _global).stops;\n\n      for (j = data.g.p * 4; j < jLen; j += 2) {\n        stop = createNS(\"stop\");\n        stop.setAttribute(\"stop-color\", \"rgb(255,255,255)\");\n        opFill.appendChild(stop);\n        stops.push(stop);\n      }\n\n      maskElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + opacityId + \")\");\n      (this || _global).of = opFill;\n      (this || _global).ms = mask;\n      (this || _global).ost = stops;\n      (this || _global).maskId = maskId;\n      styleOb.msElem = maskElement;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n  /* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\n\n  function SVGGradientStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    this.initGradientData(elem, data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n  /* global createNS */\n\n  /* exported ShapeGroupData */\n\n  function ShapeGroupData() {\n    (this || _global).it = [];\n    (this || _global).prevViewData = [];\n    (this || _global).gr = createNS(\"g\");\n  }\n  /* global Matrix, buildShapeString, bmFloor */\n\n  /* exported SVGElementsRenderer */\n\n\n  var SVGElementsRenderer = function () {\n    var _identityMatrix = new Matrix();\n\n    var _matrixHelper = new Matrix();\n\n    var ob = {\n      createRenderFunction: createRenderFunction\n    };\n\n    function createRenderFunction(data) {\n      switch (data.ty) {\n        case \"fl\":\n          return renderFill;\n\n        case \"gf\":\n          return renderGradient;\n\n        case \"gs\":\n          return renderGradientStroke;\n\n        case \"st\":\n          return renderStroke;\n\n        case \"sh\":\n        case \"el\":\n        case \"rc\":\n        case \"sr\":\n          return renderPath;\n\n        case \"tr\":\n          return renderContentTransform;\n\n        default:\n          return null;\n      }\n    }\n\n    function renderContentTransform(styleData, itemData, isFirstFrame) {\n      if (isFirstFrame || itemData.transform.op._mdf) {\n        itemData.transform.container.setAttribute(\"opacity\", itemData.transform.op.v);\n      }\n\n      if (isFirstFrame || itemData.transform.mProps._mdf) {\n        itemData.transform.container.setAttribute(\"transform\", itemData.transform.mProps.v.to2dCSS());\n      }\n    }\n\n    function renderPath(styleData, itemData, isFirstFrame) {\n      var j;\n      var jLen;\n      var pathStringTransformed;\n      var redraw;\n      var pathNodes;\n      var l;\n      var lLen = itemData.styles.length;\n      var lvl = itemData.lvl;\n      var paths;\n      var mat;\n      var props;\n      var iterations;\n      var k;\n\n      for (l = 0; l < lLen; l += 1) {\n        redraw = itemData.sh._mdf || isFirstFrame;\n\n        if (itemData.styles[l].lvl < lvl) {\n          mat = _matrixHelper.reset();\n          iterations = lvl - itemData.styles[l].lvl;\n          k = itemData.transformers.length - 1;\n\n          while (!redraw && iterations > 0) {\n            redraw = itemData.transformers[k].mProps._mdf || redraw;\n            iterations -= 1;\n            k -= 1;\n          }\n\n          if (redraw) {\n            iterations = lvl - itemData.styles[l].lvl;\n            k = itemData.transformers.length - 1;\n\n            while (iterations > 0) {\n              props = itemData.transformers[k].mProps.v.props;\n              mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n              iterations -= 1;\n              k -= 1;\n            }\n          }\n        } else {\n          mat = _identityMatrix;\n        }\n\n        paths = itemData.sh.paths;\n        jLen = paths._length;\n\n        if (redraw) {\n          pathStringTransformed = \"\";\n\n          for (j = 0; j < jLen; j += 1) {\n            pathNodes = paths.shapes[j];\n\n            if (pathNodes && pathNodes._length) {\n              pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n            }\n          }\n\n          itemData.caches[l] = pathStringTransformed;\n        } else {\n          pathStringTransformed = itemData.caches[l];\n        }\n\n        itemData.styles[l].d += styleData.hd === true ? \"\" : pathStringTransformed;\n        itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n      }\n    }\n\n    function renderFill(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n\n      if (itemData.c._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill-opacity\", itemData.o.v);\n      }\n    }\n\n    function renderGradientStroke(styleData, itemData, isFirstFrame) {\n      renderGradient(styleData, itemData, isFirstFrame);\n      renderStroke(styleData, itemData, isFirstFrame);\n    }\n\n    function renderGradient(styleData, itemData, isFirstFrame) {\n      var gfill = itemData.gf;\n      var hasOpacity = itemData.g._hasOpacity;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (itemData.o._mdf || isFirstFrame) {\n        var attr = styleData.ty === \"gf\" ? \"fill-opacity\" : \"stroke-opacity\";\n        itemData.style.pElem.setAttribute(attr, itemData.o.v);\n      }\n\n      if (itemData.s._mdf || isFirstFrame) {\n        var attr1 = styleData.t === 1 ? \"x1\" : \"cx\";\n        var attr2 = attr1 === \"x1\" ? \"y1\" : \"cy\";\n        gfill.setAttribute(attr1, pt1[0]);\n        gfill.setAttribute(attr2, pt1[1]);\n\n        if (hasOpacity && !itemData.g._collapsable) {\n          itemData.of.setAttribute(attr1, pt1[0]);\n          itemData.of.setAttribute(attr2, pt1[1]);\n        }\n      }\n\n      var stops;\n      var i;\n      var len;\n      var stop;\n\n      if (itemData.g._cmdf || isFirstFrame) {\n        stops = itemData.cst;\n        var cValues = itemData.g.c;\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n          stop.setAttribute(\"offset\", cValues[i * 4] + \"%\");\n          stop.setAttribute(\"stop-color\", \"rgb(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \")\");\n        }\n      }\n\n      if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n        var oValues = itemData.g.o;\n\n        if (itemData.g._collapsable) {\n          stops = itemData.cst;\n        } else {\n          stops = itemData.ost;\n        }\n\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n\n          if (!itemData.g._collapsable) {\n            stop.setAttribute(\"offset\", oValues[i * 2] + \"%\");\n          }\n\n          stop.setAttribute(\"stop-opacity\", oValues[i * 2 + 1]);\n        }\n      }\n\n      if (styleData.t === 1) {\n        if (itemData.e._mdf || isFirstFrame) {\n          gfill.setAttribute(\"x2\", pt2[0]);\n          gfill.setAttribute(\"y2\", pt2[1]);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"x2\", pt2[0]);\n            itemData.of.setAttribute(\"y2\", pt2[1]);\n          }\n        }\n      } else {\n        var rad;\n\n        if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n          rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          gfill.setAttribute(\"r\", rad);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"r\", rad);\n          }\n        }\n\n        if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n          if (!rad) {\n            rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          }\n\n          var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n          var percent = itemData.h.v;\n\n          if (percent >= 1) {\n            percent = 0.99;\n          } else if (percent <= -1) {\n            percent = -0.99;\n          }\n\n          var dist = rad * percent;\n          var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n          var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n          gfill.setAttribute(\"fx\", x);\n          gfill.setAttribute(\"fy\", y);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"fx\", x);\n            itemData.of.setAttribute(\"fy\", y);\n          }\n        } // gfill.setAttribute('fy','200');\n\n      }\n    }\n\n    function renderStroke(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n      var d = itemData.d;\n\n      if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n        styleElem.pElem.setAttribute(\"stroke-dasharray\", d.dashStr);\n        styleElem.pElem.setAttribute(\"stroke-dashoffset\", d.dashoffset[0]);\n      }\n\n      if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n        styleElem.pElem.setAttribute(\"stroke\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-opacity\", itemData.o.v);\n      }\n\n      if (itemData.w._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-width\", itemData.w.v);\n\n        if (styleElem.msElem) {\n          styleElem.msElem.setAttribute(\"stroke-width\", itemData.w.v);\n        }\n      }\n    }\n\n    return ob;\n  }();\n  /* global Matrix */\n\n\n  function ShapeTransformManager() {\n    (this || _global).sequences = {};\n    (this || _global).sequenceList = [];\n    (this || _global).transform_key_count = 0;\n  }\n\n  ShapeTransformManager.prototype = {\n    addTransformSequence: function (transforms) {\n      var i;\n      var len = transforms.length;\n      var key = \"_\";\n\n      for (i = 0; i < len; i += 1) {\n        key += transforms[i].transform.key + \"_\";\n      }\n\n      var sequence = (this || _global).sequences[key];\n\n      if (!sequence) {\n        sequence = {\n          transforms: [].concat(transforms),\n          finalTransform: new Matrix(),\n          _mdf: false\n        };\n        (this || _global).sequences[key] = sequence;\n\n        (this || _global).sequenceList.push(sequence);\n      }\n\n      return sequence;\n    },\n    processSequence: function (sequence, isFirstFrame) {\n      var i = 0;\n      var len = sequence.transforms.length;\n      var _mdf = isFirstFrame;\n\n      while (i < len && !isFirstFrame) {\n        if (sequence.transforms[i].transform.mProps._mdf) {\n          _mdf = true;\n          break;\n        }\n\n        i += 1;\n      }\n\n      if (_mdf) {\n        var props;\n        sequence.finalTransform.reset();\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          props = sequence.transforms[i].transform.mProps.v.props;\n          sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n        }\n      }\n\n      sequence._mdf = _mdf;\n    },\n    processSequences: function (isFirstFrame) {\n      var i;\n      var len = (this || _global).sequenceList.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.processSequence((this || _global).sequenceList[i], isFirstFrame);\n      }\n    },\n    getNewKey: function () {\n      (this || _global).transform_key_count += 1;\n      return \"_\" + (this || _global).transform_key_count;\n    }\n  };\n  /* global ShapePropertyFactory, SVGShapeData */\n\n  function CVShapeData(element, data, styles, transformsManager) {\n    (this || _global).styledShapes = [];\n    (this || _global).tr = [0, 0, 0, 0, 0, 0];\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    (this || _global).sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n    var i;\n    var len = styles.length;\n    var styledShape;\n\n    for (i = 0; i < len; i += 1) {\n      if (!styles[i].closed) {\n        styledShape = {\n          transforms: transformsManager.addTransformSequence(styles[i].transforms),\n          trNodes: []\n        };\n\n        (this || _global).styledShapes.push(styledShape);\n\n        styles[i].elements.push(styledShape);\n      }\n    }\n  }\n\n  CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n  /* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\n  TextExpressionInterface, getBlendMode,createElementID, EffectsManager */\n\n  function BaseElement() {}\n\n  BaseElement.prototype = {\n    checkMasks: function () {\n      if (!(this || _global).data.hasMask) {\n        return false;\n      }\n\n      var i = 0;\n      var len = (this || _global).data.masksProperties.length;\n\n      while (i < len) {\n        if ((this || _global).data.masksProperties[i].mode !== \"n\" && (this || _global).data.masksProperties[i].cl !== false) {\n          return true;\n        }\n\n        i += 1;\n      }\n\n      return false;\n    },\n    initExpressions: function () {\n      (this || _global).layerInterface = LayerExpressionInterface(this || _global);\n\n      if ((this || _global).data.hasMask && (this || _global).maskManager) {\n        (this || _global).layerInterface.registerMaskInterface((this || _global).maskManager);\n      }\n\n      var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this || _global, (this || _global).layerInterface);\n\n      (this || _global).layerInterface.registerEffectsInterface(effectsInterface);\n\n      if ((this || _global).data.ty === 0 || (this || _global).data.xt) {\n        (this || _global).compInterface = CompExpressionInterface(this || _global);\n      } else if ((this || _global).data.ty === 4) {\n        (this || _global).layerInterface.shapeInterface = ShapeExpressionInterface((this || _global).shapesData, (this || _global).itemsData, (this || _global).layerInterface);\n        (this || _global).layerInterface.content = (this || _global).layerInterface.shapeInterface;\n      } else if ((this || _global).data.ty === 5) {\n        (this || _global).layerInterface.textInterface = TextExpressionInterface(this || _global);\n        (this || _global).layerInterface.text = (this || _global).layerInterface.textInterface;\n      }\n    },\n    setBlendMode: function () {\n      var blendModeValue = getBlendMode((this || _global).data.bm);\n      var elem = (this || _global).baseElement || (this || _global).layerElement;\n      elem.style[\"mix-blend-mode\"] = blendModeValue;\n    },\n    initBaseData: function (data, globalData, comp) {\n      (this || _global).globalData = globalData;\n      (this || _global).comp = comp;\n      (this || _global).data = data;\n      (this || _global).layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n      if (!(this || _global).data.sr) {\n        (this || _global).data.sr = 1;\n      } // effects manager\n\n\n      (this || _global).effectsManager = new EffectsManager((this || _global).data, this || _global, (this || _global).dynamicProperties);\n    },\n    getType: function () {\n      return (this || _global).type;\n    },\n    sourceRectAtTime: function () {}\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\n\n  function NullElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initFrame();\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n  }\n\n  NullElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  NullElement.prototype.renderFrame = function () {};\n\n  NullElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  NullElement.prototype.destroy = function () {};\n\n  NullElement.prototype.sourceRectAtTime = function () {};\n\n  NullElement.prototype.hide = function () {};\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n  /* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\n\n  function SVGBaseElement() {}\n\n  SVGBaseElement.prototype = {\n    initRendererElement: function () {\n      (this || _global).layerElement = createNS(\"g\");\n    },\n    createContainerElements: function () {\n      (this || _global).matteElement = createNS(\"g\");\n      (this || _global).transformedElement = (this || _global).layerElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n      (this || _global)._sizeChanged = false;\n      var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n      var filId;\n      var fil;\n      var gg;\n\n      if ((this || _global).data.td) {\n        if ((this || _global).data.td == 3 || (this || _global).data.td == 1) {\n          // eslint-disable-line eqeqeq\n          var masker = createNS(\"mask\");\n          masker.setAttribute(\"id\", (this || _global).layerId);\n          masker.setAttribute(\"mask-type\", (this || _global).data.td == 3 ? \"luminance\" : \"alpha\"); // eslint-disable-line eqeqeq\n\n          masker.appendChild((this || _global).layerElement);\n          layerElementParent = masker;\n\n          (this || _global).globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n\n          if (!featureSupport.maskType && (this || _global).data.td == 1) {\n            // eslint-disable-line eqeqeq\n            masker.setAttribute(\"mask-type\", \"luminance\");\n            filId = createElementID();\n            fil = filtersFactory.createFilter(filId);\n\n            (this || _global).globalData.defs.appendChild(fil);\n\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            masker.appendChild(gg);\n            gg.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          }\n        } else if ((this || _global).data.td == 2) {\n          // eslint-disable-line eqeqeq\n          var maskGroup = createNS(\"mask\");\n          maskGroup.setAttribute(\"id\", (this || _global).layerId);\n          maskGroup.setAttribute(\"mask-type\", \"alpha\");\n          var maskGrouper = createNS(\"g\");\n          maskGroup.appendChild(maskGrouper);\n          filId = createElementID();\n          fil = filtersFactory.createFilter(filId); /// /\n          // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n          /* var feColorMatrix = createNS('feColorMatrix');\r\n                  feColorMatrix.setAttribute('type', 'matrix');\r\n                  feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n                  feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n                  fil.appendChild(feColorMatrix); */\n          /// /\n\n          var feCTr = createNS(\"feComponentTransfer\");\n          feCTr.setAttribute(\"in\", \"SourceGraphic\");\n          fil.appendChild(feCTr);\n          var feFunc = createNS(\"feFuncA\");\n          feFunc.setAttribute(\"type\", \"table\");\n          feFunc.setAttribute(\"tableValues\", \"1.0 0.0\");\n          feCTr.appendChild(feFunc); /// /\n\n          (this || _global).globalData.defs.appendChild(fil);\n\n          var alphaRect = createNS(\"rect\");\n          alphaRect.setAttribute(\"width\", (this || _global).comp.data.w);\n          alphaRect.setAttribute(\"height\", (this || _global).comp.data.h);\n          alphaRect.setAttribute(\"x\", \"0\");\n          alphaRect.setAttribute(\"y\", \"0\");\n          alphaRect.setAttribute(\"fill\", \"#ffffff\");\n          alphaRect.setAttribute(\"opacity\", \"0\");\n          maskGrouper.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          maskGrouper.appendChild(alphaRect);\n          maskGrouper.appendChild((this || _global).layerElement);\n          layerElementParent = maskGrouper;\n\n          if (!featureSupport.maskType) {\n            maskGroup.setAttribute(\"mask-type\", \"luminance\");\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            maskGrouper.appendChild(alphaRect);\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            maskGrouper.appendChild(gg);\n          }\n\n          (this || _global).globalData.defs.appendChild(maskGroup);\n        }\n      } else if ((this || _global).data.tt) {\n        (this || _global).matteElement.appendChild((this || _global).layerElement);\n\n        layerElementParent = (this || _global).matteElement;\n        (this || _global).baseElement = (this || _global).matteElement;\n      } else {\n        (this || _global).baseElement = (this || _global).layerElement;\n      }\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n      if ((this || _global).data.ty === 0 && !(this || _global).data.hd) {\n        var cp = createNS(\"clipPath\");\n        var pt = createNS(\"path\");\n        pt.setAttribute(\"d\", \"M0,0 L\" + (this || _global).data.w + \",0 L\" + (this || _global).data.w + \",\" + (this || _global).data.h + \" L0,\" + (this || _global).data.h + \"z\");\n        var clipId = createElementID();\n        cp.setAttribute(\"id\", clipId);\n        cp.appendChild(pt);\n\n        (this || _global).globalData.defs.appendChild(cp);\n\n        if (this.checkMasks()) {\n          var cpGroup = createNS(\"g\");\n          cpGroup.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n          cpGroup.appendChild((this || _global).layerElement);\n          (this || _global).transformedElement = cpGroup;\n\n          if (layerElementParent) {\n            layerElementParent.appendChild((this || _global).transformedElement);\n          } else {\n            (this || _global).baseElement = (this || _global).transformedElement;\n          }\n        } else {\n          (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n        }\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      if ((this || _global).finalTransform._matMdf) {\n        (this || _global).transformedElement.setAttribute(\"transform\", (this || _global).finalTransform.mat.to2dCSS());\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        (this || _global).transformedElement.setAttribute(\"opacity\", (this || _global).finalTransform.mProp.o.v);\n      }\n    },\n    destroyBaseElement: function () {\n      (this || _global).layerElement = null;\n      (this || _global).matteElement = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    getBaseElement: function () {\n      if ((this || _global).data.hd) {\n        return null;\n      }\n\n      return (this || _global).baseElement;\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n      (this || _global).renderableEffectsManager = new SVGEffects(this || _global);\n    },\n    setMatte: function (id) {\n      if (!(this || _global).matteElement) {\n        return;\n      }\n\n      (this || _global).matteElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n    }\n  };\n  /* global ProcessedElement */\n\n  function IShapeElement() {}\n\n  IShapeElement.prototype = {\n    addShapeToModifiers: function (data) {\n      var i;\n      var len = (this || _global).shapeModifiers.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapeModifiers[i].addShape(data);\n      }\n    },\n    isShapeInAnimatedModifiers: function (data) {\n      var i = 0;\n      var len = (this || _global).shapeModifiers.length;\n\n      while (i < len) {\n        if ((this || _global).shapeModifiers[i].isAnimatedWithShape(data)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n    renderModifiers: function () {\n      if (!(this || _global).shapeModifiers.length) {\n        return;\n      }\n\n      var i;\n      var len = (this || _global).shapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].sh.reset();\n      }\n\n      len = (this || _global).shapeModifiers.length;\n      var shouldBreakProcess;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shouldBreakProcess = (this || _global).shapeModifiers[i].processShapes((this || _global)._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n        // TODO: find a better solution for this\n\n        if (shouldBreakProcess) {\n          break;\n        }\n      }\n    },\n    lcEnum: {\n      1: \"butt\",\n      2: \"round\",\n      3: \"square\"\n    },\n    ljEnum: {\n      1: \"miter\",\n      2: \"round\",\n      3: \"bevel\"\n    },\n    searchProcessedElement: function (elem) {\n      var elements = (this || _global).processedElements;\n      var i = 0;\n      var len = elements.length;\n\n      while (i < len) {\n        if (elements[i].elem === elem) {\n          return elements[i].pos;\n        }\n\n        i += 1;\n      }\n\n      return 0;\n    },\n    addProcessedElement: function (elem, pos) {\n      var elements = (this || _global).processedElements;\n      var i = elements.length;\n\n      while (i) {\n        i -= 1;\n\n        if (elements[i].elem === elem) {\n          elements[i].pos = pos;\n          return;\n        }\n      }\n\n      elements.push(new ProcessedElement(elem, pos));\n    },\n    prepareFrame: function (num) {\n      this.prepareRenderableFrame(num);\n      this.prepareProperties(num, (this || _global).isInRange);\n    }\n  };\n  /* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\n\n  function ITextElement() {}\n\n  ITextElement.prototype.initElement = function (data, globalData, comp) {\n    (this || _global).lettersChangedFlag = true;\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    (this || _global).textProperty = new TextProperty(this || _global, data.t, (this || _global).dynamicProperties);\n    (this || _global).textAnimator = new TextAnimatorProperty(data.t, (this || _global).renderType, this || _global);\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n    this.initRenderable();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n    this.createContent();\n    this.hide();\n\n    (this || _global).textAnimator.searchProperties((this || _global).dynamicProperties);\n  };\n\n  ITextElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if ((this || _global).textProperty._mdf || (this || _global).textProperty._isFirstFrame) {\n      this.buildNewText();\n      (this || _global).textProperty._isFirstFrame = false;\n      (this || _global).textProperty._mdf = false;\n    }\n  };\n\n  ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n    var j;\n    var jLen = shapes.length;\n    var pathNodes;\n    var shapeStr = \"\";\n\n    for (j = 0; j < jLen; j += 1) {\n      pathNodes = shapes[j].ks.k;\n      shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n    }\n\n    return shapeStr;\n  };\n\n  ITextElement.prototype.updateDocumentData = function (newData, index) {\n    (this || _global).textProperty.updateDocumentData(newData, index);\n  };\n\n  ITextElement.prototype.canResizeFont = function (_canResize) {\n    (this || _global).textProperty.canResizeFont(_canResize);\n  };\n\n  ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n    (this || _global).textProperty.setMinimumFontSize(_fontSize);\n  };\n\n  ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n    if (documentData.ps) {\n      matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n    }\n\n    matrixHelper.translate(0, -documentData.ls, 0);\n\n    switch (documentData.j) {\n      case 1:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n        break;\n\n      case 2:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n        break;\n\n      default:\n        break;\n    }\n\n    matrixHelper.translate(xPos, yPos, 0);\n  };\n\n  ITextElement.prototype.buildColor = function (colorData) {\n    return \"rgb(\" + Math.round(colorData[0] * 255) + \",\" + Math.round(colorData[1] * 255) + \",\" + Math.round(colorData[2] * 255) + \")\";\n  };\n\n  ITextElement.prototype.emptyProp = new LetterProps();\n\n  ITextElement.prototype.destroy = function () {};\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\n\n\n  function ICompElement() {}\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n  ICompElement.prototype.initElement = function (data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initTransform(data, globalData, comp);\n    this.initRenderable();\n    this.initHierarchy();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n\n    if ((this || _global).data.xt || !globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n\n    this.hide();\n  };\n  /* ICompElement.prototype.hide = function(){\r\n      if(!this.hidden){\r\n          this.hideElement();\r\n          var i,len = this.elements.length;\r\n          for( i = 0; i < len; i+=1 ){\r\n              if(this.elements[i]){\r\n                  this.elements[i].hide();\r\n              }\r\n          }\r\n      }\r\n  }; */\n\n\n  ICompElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if (!(this || _global).isInRange && !(this || _global).data.xt) {\n      return;\n    }\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n\n      if (timeRemapped === (this || _global).data.op) {\n        timeRemapped = (this || _global).data.op - 1;\n      }\n\n      (this || _global).renderedFrame = timeRemapped;\n    } else {\n      (this || _global).renderedFrame = num / (this || _global).data.sr;\n    }\n\n    var i;\n    var len = (this || _global).elements.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers((this || _global).renderedFrame);\n    } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame((this || _global).renderedFrame - (this || _global).layers[i].st);\n\n        if ((this || _global).elements[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    }\n  };\n\n  ICompElement.prototype.renderInnerContent = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  ICompElement.prototype.setElements = function (elems) {\n    (this || _global).elements = elems;\n  };\n\n  ICompElement.prototype.getElements = function () {\n    return (this || _global).elements;\n  };\n\n  ICompElement.prototype.destroyElements = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n  };\n\n  ICompElement.prototype.destroy = function () {\n    this.destroyElements();\n    this.destroyBaseElement();\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\n\n\n  function IImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n    (this || _global).sourceRect = {\n      top: 0,\n      left: 0,\n      width: (this || _global).assetData.w,\n      height: (this || _global).assetData.h\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n  IImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).innerElem = createNS(\"image\");\n\n    (this || _global).innerElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"preserveAspectRatio\", (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio);\n\n    (this || _global).innerElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n    (this || _global).layerElement.appendChild((this || _global).innerElem);\n  };\n\n  IImageElement.prototype.sourceRectAtTime = function () {\n    return (this || _global).sourceRect;\n  };\n  /* global extendPrototype, IImageElement, createNS */\n\n\n  function ISolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([IImageElement], ISolidElement);\n\n  ISolidElement.prototype.createContent = function () {\n    var rect = createNS(\"rect\"); /// /rect.style.width = this.data.sw;\n    /// /rect.style.height = this.data.sh;\n    /// /rect.style.fill = this.data.sc;\n\n    rect.setAttribute(\"width\", (this || _global).data.sw);\n    rect.setAttribute(\"height\", (this || _global).data.sh);\n    rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\n\n\n  function AudioElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initBaseData(data, globalData, comp);\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).audio = (this || _global).globalData.audioController.createAudio(assetPath);\n    (this || _global)._currentTime = 0;\n\n    (this || _global).globalData.audioController.addAudio(this || _global);\n\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  AudioElement.prototype.prepareFrame = function (num) {\n    this.prepareRenderableFrame(num, true);\n    this.prepareProperties(num, true);\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n      (this || _global)._currentTime = timeRemapped;\n    } else {\n      (this || _global)._currentTime = num / (this || _global).data.sr;\n    }\n  };\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n  AudioElement.prototype.renderFrame = function () {\n    if ((this || _global).isInRange && (this || _global)._canPlay) {\n      if (!(this || _global)._isPlaying) {\n        (this || _global).audio.play();\n\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n\n        (this || _global)._isPlaying = true;\n      } else if (!(this || _global).audio.playing() || Math.abs((this || _global)._currentTime / (this || _global).globalData.frameRate - (this || _global).audio.seek()) > 0.1) {\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n      }\n    }\n  };\n\n  AudioElement.prototype.show = function () {// this.audio.play()\n  };\n\n  AudioElement.prototype.hide = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n  };\n\n  AudioElement.prototype.pause = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n  };\n\n  AudioElement.prototype.resume = function () {\n    (this || _global)._canPlay = true;\n  };\n\n  AudioElement.prototype.setRate = function (rateValue) {\n    (this || _global).audio.rate(rateValue);\n  };\n\n  AudioElement.prototype.volume = function (volumeValue) {\n    (this || _global).audio.volume(volumeValue);\n  };\n\n  AudioElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  AudioElement.prototype.destroy = function () {};\n\n  AudioElement.prototype.sourceRectAtTime = function () {};\n\n  AudioElement.prototype.initExpressions = function () {};\n  /* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\n\n\n  function FootageElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).footageData = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initBaseData(data, globalData, comp);\n  }\n\n  FootageElement.prototype.prepareFrame = function () {};\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n  FootageElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  FootageElement.prototype.renderFrame = function () {};\n\n  FootageElement.prototype.destroy = function () {};\n\n  FootageElement.prototype.initExpressions = function () {\n    (this || _global).layerInterface = FootageInterface(this || _global);\n  };\n\n  FootageElement.prototype.getFootageData = function () {\n    return (this || _global).footageData;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\n\n\n  function SVGCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = true;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : []; // this.layerElement = createNS('g');\n\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createNS */\n\n  function SVGTextLottieElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).renderType = \"svg\";\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n  SVGTextLottieElement.prototype.createContent = function () {\n    if ((this || _global).data.singleShape && !(this || _global).globalData.fontManager.chars) {\n      (this || _global).textContainer = createNS(\"text\");\n    }\n  };\n\n  SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n    var i = 0;\n    var len = textArray.length;\n    var textContents = [];\n    var currentTextContent = \"\";\n\n    while (i < len) {\n      if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n        textContents.push(currentTextContent);\n        currentTextContent = \"\";\n      } else {\n        currentTextContent += textArray[i];\n      }\n\n      i += 1;\n    }\n\n    textContents.push(currentTextContent);\n    return textContents;\n  };\n\n  SVGTextLottieElement.prototype.buildNewText = function () {\n    var i;\n    var len;\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n    if (documentData.fc) {\n      (this || _global).layerElement.setAttribute(\"fill\", this.buildColor(documentData.fc));\n    } else {\n      (this || _global).layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\");\n    }\n\n    if (documentData.sc) {\n      (this || _global).layerElement.setAttribute(\"stroke\", this.buildColor(documentData.sc));\n\n      (this || _global).layerElement.setAttribute(\"stroke-width\", documentData.sw);\n    }\n\n    (this || _global).layerElement.setAttribute(\"font-size\", documentData.finalSize);\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (fontData.fClass) {\n      (this || _global).layerElement.setAttribute(\"class\", fontData.fClass);\n    } else {\n      (this || _global).layerElement.setAttribute(\"font-family\", fontData.fFamily);\n\n      var fWeight = documentData.fWeight;\n      var fStyle = documentData.fStyle;\n\n      (this || _global).layerElement.setAttribute(\"font-style\", fStyle);\n\n      (this || _global).layerElement.setAttribute(\"font-weight\", fWeight);\n    }\n\n    (this || _global).layerElement.setAttribute(\"aria-label\", documentData.t);\n\n    var letters = documentData.l || [];\n    var usesGlyphs = !!(this || _global).globalData.fontManager.chars;\n    len = letters.length;\n    var tSpan;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var singleShape = (this || _global).data.singleShape;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n    if (singleShape && !usesGlyphs && !documentData.sz) {\n      var tElement = (this || _global).textContainer;\n      var justify = \"start\";\n\n      switch (documentData.j) {\n        case 1:\n          justify = \"end\";\n          break;\n\n        case 2:\n          justify = \"middle\";\n          break;\n\n        default:\n          justify = \"start\";\n          break;\n      }\n\n      tElement.setAttribute(\"text-anchor\", justify);\n      tElement.setAttribute(\"letter-spacing\", trackingOffset);\n      var textContent = this.buildTextContents(documentData.finalText);\n      len = textContent.length;\n      yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n      for (i = 0; i < len; i += 1) {\n        tSpan = (this || _global).textSpans[i] || createNS(\"tspan\");\n        tSpan.textContent = textContent[i];\n        tSpan.setAttribute(\"x\", 0);\n        tSpan.setAttribute(\"y\", yPos);\n        tSpan.style.display = \"inherit\";\n        tElement.appendChild(tSpan);\n        (this || _global).textSpans[i] = tSpan;\n        yPos += documentData.finalLineHeight;\n      }\n\n      (this || _global).layerElement.appendChild(tElement);\n    } else {\n      var cachedSpansLength = (this || _global).textSpans.length;\n      var shapeData;\n      var charData;\n\n      for (i = 0; i < len; i += 1) {\n        if (!usesGlyphs || !singleShape || i === 0) {\n          tSpan = cachedSpansLength > i ? (this || _global).textSpans[i] : createNS(usesGlyphs ? \"path\" : \"text\");\n\n          if (cachedSpansLength <= i) {\n            tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n            tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n            tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n            (this || _global).textSpans[i] = tSpan;\n\n            (this || _global).layerElement.appendChild(tSpan);\n          }\n\n          tSpan.style.display = \"inherit\";\n        }\n\n        matrixHelper.reset();\n        matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n        if (singleShape) {\n          if (letters[i].n) {\n            xPos = -trackingOffset;\n            yPos += documentData.yOffset;\n            yPos += firstLine ? 1 : 0;\n            firstLine = false;\n          }\n\n          this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n          xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n          xPos += trackingOffset;\n        }\n\n        if (usesGlyphs) {\n          charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n          shapeData = charData && charData.data || {};\n          shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\n          if (!singleShape) {\n            tSpan.setAttribute(\"d\", this.createPathShape(matrixHelper, shapes));\n          } else {\n            shapeStr += this.createPathShape(matrixHelper, shapes);\n          }\n        } else {\n          if (singleShape) {\n            tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\n          }\n\n          tSpan.textContent = letters[i].val;\n          tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n        } //\n\n      }\n\n      if (singleShape && tSpan) {\n        tSpan.setAttribute(\"d\", shapeStr);\n      }\n    }\n\n    while (i < (this || _global).textSpans.length) {\n      (this || _global).textSpans[i].style.display = \"none\";\n      i += 1;\n    }\n\n    (this || _global)._sizeChanged = true;\n  };\n\n  SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n    this.prepareFrame((this || _global).comp.renderedFrame - (this || _global).data.st);\n    this.renderInnerContent();\n\n    if ((this || _global)._sizeChanged) {\n      (this || _global)._sizeChanged = false;\n\n      var textBox = (this || _global).layerElement.getBBox();\n\n      (this || _global).bbox = {\n        top: textBox.y,\n        left: textBox.x,\n        width: textBox.width,\n        height: textBox.height\n      };\n    }\n\n    return (this || _global).bbox;\n  };\n\n  SVGTextLottieElement.prototype.renderInnerContent = function () {\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n      if ((this || _global).lettersChangedFlag || (this || _global).textAnimator.lettersChangedFlag) {\n        (this || _global)._sizeChanged = true;\n        var i;\n        var len;\n        var renderedLetters = (this || _global).textAnimator.renderedLetters;\n        var letters = (this || _global).textProperty.currentData.l;\n        len = letters.length;\n        var renderedLetter;\n        var textSpan;\n\n        for (i = 0; i < len; i += 1) {\n          if (!letters[i].n) {\n            renderedLetter = renderedLetters[i];\n            textSpan = (this || _global).textSpans[i];\n\n            if (renderedLetter._mdf.m) {\n              textSpan.setAttribute(\"transform\", renderedLetter.m);\n            }\n\n            if (renderedLetter._mdf.o) {\n              textSpan.setAttribute(\"opacity\", renderedLetter.o);\n            }\n\n            if (renderedLetter._mdf.sw) {\n              textSpan.setAttribute(\"stroke-width\", renderedLetter.sw);\n            }\n\n            if (renderedLetter._mdf.sc) {\n              textSpan.setAttribute(\"stroke\", renderedLetter.sc);\n            }\n\n            if (renderedLetter._mdf.fc) {\n              textSpan.setAttribute(\"fill\", renderedLetter.fc);\n            }\n          }\n        }\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\n  FrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\n  SVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\n  TransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers */\n\n\n  function SVGShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n  SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n  SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n  SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n  SVGShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n  };\n  /*\r\n  This method searches for multiple shapes that affect a single element and one of them is animated\r\n  */\n\n\n  SVGShapeElement.prototype.filterUniqueShapes = function () {\n    var i;\n    var len = (this || _global).shapes.length;\n    var shape;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n    var style;\n    var tempShapes = [];\n    var areAnimated = false;\n\n    for (j = 0; j < jLen; j += 1) {\n      style = (this || _global).stylesList[j];\n      areAnimated = false;\n      tempShapes.length = 0;\n\n      for (i = 0; i < len; i += 1) {\n        shape = (this || _global).shapes[i];\n\n        if (shape.styles.indexOf(style) !== -1) {\n          tempShapes.push(shape);\n          areAnimated = shape._isAnimated || areAnimated;\n        }\n      }\n\n      if (tempShapes.length > 1 && areAnimated) {\n        this.setShapesAsAnimated(tempShapes);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n    var i;\n    var len = shapes.length;\n\n    for (i = 0; i < len; i += 1) {\n      shapes[i].setAsAnimated();\n    }\n  };\n\n  SVGShapeElement.prototype.createStyleElement = function (data, level) {\n    // TODO: prevent drawing of hidden styles\n    var elementData;\n    var styleOb = new SVGStyleData(data, level);\n    var pathElement = styleOb.pElem;\n\n    if (data.ty === \"st\") {\n      elementData = new SVGStrokeStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"fl\") {\n      elementData = new SVGFillStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      var GradientConstructor = data.ty === \"gf\" ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n      elementData = new GradientConstructor(this || _global, data, styleOb);\n\n      (this || _global).globalData.defs.appendChild(elementData.gf);\n\n      if (elementData.maskId) {\n        (this || _global).globalData.defs.appendChild(elementData.ms);\n\n        (this || _global).globalData.defs.appendChild(elementData.of);\n\n        pathElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + elementData.maskId + \")\");\n      }\n    }\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      pathElement.setAttribute(\"stroke-linecap\", (this || _global).lcEnum[data.lc] || \"round\");\n      pathElement.setAttribute(\"stroke-linejoin\", (this || _global).ljEnum[data.lj] || \"round\");\n      pathElement.setAttribute(\"fill-opacity\", \"0\");\n\n      if (data.lj === 1) {\n        pathElement.setAttribute(\"stroke-miterlimit\", data.ml);\n      }\n    }\n\n    if (data.r === 2) {\n      pathElement.setAttribute(\"fill-rule\", \"evenodd\");\n    }\n\n    if (data.ln) {\n      pathElement.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      pathElement.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      pathElement.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    (this || _global).stylesList.push(styleOb);\n\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createGroupElement = function (data) {\n    var elementData = new ShapeGroupData();\n\n    if (data.ln) {\n      elementData.gr.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      elementData.gr.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      elementData.gr.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createTransformElement = function (data, container) {\n    var transformProperty = TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global);\n    var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    var shapeProperty = ShapePropertyFactory.getShapeProp(this || _global, data, ty, this || _global);\n    var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n    var i = 0;\n    var len = (this || _global).animatedContents.length;\n\n    while (i < len) {\n      if ((this || _global).animatedContents[i].element === element) {\n        return;\n      }\n\n      i += 1;\n    }\n\n    (this || _global).animatedContents.push({\n      fn: SVGElementsRenderer.createRenderFunction(data),\n      element: element,\n      data: data\n    });\n  };\n\n  SVGShapeElement.prototype.setElementStyles = function (elementData) {\n    var arr = elementData.styles;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      if (!(this || _global).stylesList[j].closed) {\n        arr.push((this || _global).stylesList[j]);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n  };\n\n  SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n    var ownTransformers = [].concat(transformers);\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var currentTransform;\n    var modifier;\n    var processedPos;\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._render = render;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], level);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].style.pElem);\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].gr);\n        }\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createTransformElement(arr[i], container);\n        }\n\n        currentTransform = itemsData[i].transform;\n        ownTransformers.push(currentTransform);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n        }\n\n        this.setElementStyles(itemsData[i]);\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"ms\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          render = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    len = ownStyles.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownStyles[i].closed = true;\n    }\n\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  SVGShapeElement.prototype.renderInnerContent = function () {\n    this.renderModifiers();\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).stylesList[i].reset();\n    }\n\n    this.renderShape();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).stylesList[i]._mdf || (this || _global)._isFirstFrame) {\n        if ((this || _global).stylesList[i].msElem) {\n          (this || _global).stylesList[i].msElem.setAttribute(\"d\", (this || _global).stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n\n          (this || _global).stylesList[i].d = \"M0 0\" + (this || _global).stylesList[i].d;\n        }\n\n        (this || _global).stylesList[i].pElem.setAttribute(\"d\", (this || _global).stylesList[i].d || \"M0 0\");\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.renderShape = function () {\n    var i;\n    var len = (this || _global).animatedContents.length;\n    var animatedContent;\n\n    for (i = 0; i < len; i += 1) {\n      animatedContent = (this || _global).animatedContents[i];\n\n      if (((this || _global)._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n        animatedContent.fn(animatedContent.data, animatedContent.element, (this || _global)._isFirstFrame);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.destroy = function () {\n    this.destroyBaseElement();\n    (this || _global).shapesData = null;\n    (this || _global).itemsData = null;\n  };\n  /* global createNS */\n\n\n  function SVGTintFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f2\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n\n    if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n      var feMerge = createNS(\"feMerge\");\n      filter.appendChild(feMerge);\n      var feMergeNode;\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n      feMerge.appendChild(feMergeNode);\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"f2\");\n      feMerge.appendChild(feMergeNode);\n    }\n  }\n\n  SVGTintFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var colorBlack = (this || _global).filterManager.effectElements[0].p.v;\n      var colorWhite = (this || _global).filterManager.effectElements[1].p.v;\n      var opacity = (this || _global).filterManager.effectElements[2].p.v / 100;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", colorWhite[0] - colorBlack[0] + \" 0 0 0 \" + colorBlack[0] + \" \" + (colorWhite[1] - colorBlack[1]) + \" 0 0 0 \" + colorBlack[1] + \" \" + (colorWhite[2] - colorBlack[2]) + \" 0 0 0 \" + colorBlack[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGFillFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n  }\n\n  SVGFillFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color = (this || _global).filterManager.effectElements[2].p.v;\n      var opacity = (this || _global).filterManager.effectElements[6].p.v;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", \"0 0 0 0 \" + color[0] + \" 0 0 0 0 \" + color[1] + \" 0 0 0 0 \" + color[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGGaussianBlurEffect(filter, filterManager) {\n    // Outset the filter region by 100% on all sides to accommodate blur expansion.\n    filter.setAttribute(\"x\", \"-100%\");\n    filter.setAttribute(\"y\", \"-100%\");\n    filter.setAttribute(\"width\", \"300%\");\n    filter.setAttribute(\"height\", \"300%\");\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    filter.appendChild(feGaussianBlur);\n    (this || _global).feGaussianBlur = feGaussianBlur;\n  }\n\n  SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      // Empirical value, matching AE's blur appearance.\n      var kBlurrinessToSigma = 0.3;\n      var sigma = (this || _global).filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n      //\n      //   1 -> horizontal & vertical\n      //   2 -> horizontal only\n      //   3 -> vertical only\n      //\n\n      var dimensions = (this || _global).filterManager.effectElements[1].p.v;\n      var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", sigmaX + \" \" + sigmaY); // Repeat edges mapping:\n      //\n      //   0 -> off -> duplicate\n      //   1 -> on  -> wrap\n\n\n      var edgeMode = (this || _global).filterManager.effectElements[2].p.v == 1 ? \"wrap\" : \"duplicate\"; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"edgeMode\", edgeMode);\n    }\n  };\n  /* global createNS, createElementID, locationHref, bmFloor */\n\n\n  function SVGStrokeEffect(elem, filterManager) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).elem = elem;\n    (this || _global).paths = [];\n  }\n\n  SVGStrokeEffect.prototype.initialize = function () {\n    var elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n    var path;\n    var groupPath;\n    var i;\n    var len;\n\n    if ((this || _global).filterManager.effectElements[1].p.v === 1) {\n      len = (this || _global).elem.maskManager.masksProperties.length;\n      i = 0;\n    } else {\n      i = (this || _global).filterManager.effectElements[0].p.v - 1;\n      len = i + 1;\n    }\n\n    groupPath = createNS(\"g\");\n    groupPath.setAttribute(\"fill\", \"none\");\n    groupPath.setAttribute(\"stroke-linecap\", \"round\");\n    groupPath.setAttribute(\"stroke-dashoffset\", 1);\n\n    for (i; i < len; i += 1) {\n      path = createNS(\"path\");\n      groupPath.appendChild(path);\n\n      (this || _global).paths.push({\n        p: path,\n        m: i\n      });\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 3) {\n      var mask = createNS(\"mask\");\n      var id = createElementID();\n      mask.setAttribute(\"id\", id);\n      mask.setAttribute(\"mask-type\", \"alpha\");\n      mask.appendChild(groupPath);\n\n      (this || _global).elem.globalData.defs.appendChild(mask);\n\n      var g = createNS(\"g\");\n      g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n\n      while (elemChildren[0]) {\n        g.appendChild(elemChildren[0]);\n      }\n\n      (this || _global).elem.layerElement.appendChild(g);\n\n      (this || _global).masker = mask;\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    } else if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if ((this || _global).filterManager.effectElements[10].p.v === 2) {\n        elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n\n        while (elemChildren.length) {\n          (this || _global).elem.layerElement.removeChild(elemChildren[0]);\n        }\n      }\n\n      (this || _global).elem.layerElement.appendChild(groupPath);\n\n      (this || _global).elem.layerElement.removeAttribute(\"mask\");\n\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    }\n\n    (this || _global).initialized = true;\n    (this || _global).pathMasker = groupPath;\n  };\n\n  SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n\n    var i;\n    var len = (this || _global).paths.length;\n    var mask;\n    var path;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).paths[i].m !== -1) {\n        mask = (this || _global).elem.maskManager.viewData[(this || _global).paths[i].m];\n        path = (this || _global).paths[i].p;\n\n        if (forceRender || (this || _global).filterManager._mdf || mask.prop._mdf) {\n          path.setAttribute(\"d\", mask.lastPath);\n        }\n\n        if (forceRender || (this || _global).filterManager.effectElements[9].p._mdf || (this || _global).filterManager.effectElements[4].p._mdf || (this || _global).filterManager.effectElements[7].p._mdf || (this || _global).filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n          var dasharrayValue;\n\n          if ((this || _global).filterManager.effectElements[7].p.v !== 0 || (this || _global).filterManager.effectElements[8].p.v !== 100) {\n            var s = Math.min((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var e = Math.max((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var l = path.getTotalLength();\n            dasharrayValue = \"0 0 0 \" + l * s + \" \";\n            var lineLength = l * (e - s);\n            var segment = 1 + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n            var units = Math.floor(lineLength / segment);\n            var j;\n\n            for (j = 0; j < units; j += 1) {\n              dasharrayValue += \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01 + \" \";\n            }\n\n            dasharrayValue += \"0 \" + l * 10 + \" 0 0\";\n          } else {\n            dasharrayValue = \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n          }\n\n          path.setAttribute(\"stroke-dasharray\", dasharrayValue);\n        }\n      }\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"stroke-width\", (this || _global).filterManager.effectElements[4].p.v * 2);\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[6].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"opacity\", (this || _global).filterManager.effectElements[6].p.v);\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if (forceRender || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var color = (this || _global).filterManager.effectElements[3].p.v;\n\n        (this || _global).pathMasker.setAttribute(\"stroke\", \"rgb(\" + bmFloor(color[0] * 255) + \",\" + bmFloor(color[1] * 255) + \",\" + bmFloor(color[2] * 255) + \")\");\n      }\n    }\n  };\n  /* global createNS */\n\n\n  function SVGTritoneFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n    feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.appendChild(feComponentTransfer);\n    (this || _global).matrixFilter = feComponentTransfer;\n    var feFuncR = createNS(\"feFuncR\");\n    feFuncR.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncR);\n    (this || _global).feFuncR = feFuncR;\n    var feFuncG = createNS(\"feFuncG\");\n    feFuncG.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncG);\n    (this || _global).feFuncG = feFuncG;\n    var feFuncB = createNS(\"feFuncB\");\n    feFuncB.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncB);\n    (this || _global).feFuncB = feFuncB;\n  }\n\n  SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color1 = (this || _global).filterManager.effectElements[0].p.v;\n      var color2 = (this || _global).filterManager.effectElements[1].p.v;\n      var color3 = (this || _global).filterManager.effectElements[2].p.v;\n      var tableR = color3[0] + \" \" + color2[0] + \" \" + color1[0];\n      var tableG = color3[1] + \" \" + color2[1] + \" \" + color1[1];\n      var tableB = color3[2] + \" \" + color2[2] + \" \" + color1[2];\n\n      (this || _global).feFuncR.setAttribute(\"tableValues\", tableR);\n\n      (this || _global).feFuncG.setAttribute(\"tableValues\", tableG);\n\n      (this || _global).feFuncB.setAttribute(\"tableValues\", tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n      // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n\n    }\n  };\n  /* global createNS */\n\n\n  function SVGProLevelsFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var effectElements = (this || _global).filterManager.effectElements;\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n\n    if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n      (this || _global).feFuncR = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n    }\n\n    if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n      (this || _global).feFuncG = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n    }\n\n    if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n      (this || _global).feFuncB = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n\n    if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n      (this || _global).feFuncA = this.createFeFunc(\"feFuncA\", feComponentTransfer);\n    }\n\n    if ((this || _global).feFuncR || (this || _global).feFuncG || (this || _global).feFuncB || (this || _global).feFuncA) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      feComponentTransfer = createNS(\"feComponentTransfer\");\n    }\n\n    if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      (this || _global).feFuncRComposed = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n      (this || _global).feFuncGComposed = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n      (this || _global).feFuncBComposed = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n  }\n\n  SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n    var feFunc = createNS(type);\n    feFunc.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFunc);\n    return feFunc;\n  };\n\n  SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n    var cnt = 0;\n    var segments = 256;\n    var perc;\n    var min = Math.min(inputBlack, inputWhite);\n    var max = Math.max(inputBlack, inputWhite);\n    var table = Array.call(null, {\n      length: segments\n    });\n    var colorValue;\n    var pos = 0;\n    var outputDelta = outputWhite - outputBlack;\n    var inputDelta = inputWhite - inputBlack;\n\n    while (cnt <= 256) {\n      perc = cnt / 256;\n\n      if (perc <= min) {\n        colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n      } else if (perc >= max) {\n        colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n      } else {\n        colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n      }\n\n      table[pos] = colorValue;\n      pos += 1;\n      cnt += 256 / (segments - 1);\n    }\n\n    return table.join(\" \");\n  };\n\n  SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var val;\n      var effectElements = (this || _global).filterManager.effectElements;\n\n      if ((this || _global).feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n        val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n\n        (this || _global).feFuncRComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncGComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncBComposed.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n        val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n\n        (this || _global).feFuncR.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n        val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n\n        (this || _global).feFuncG.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n        val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n\n        (this || _global).feFuncB.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n        val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n\n        (this || _global).feFuncA.setAttribute(\"tableValues\", val);\n      }\n    }\n  };\n  /* global createNS, rgbToHex, degToRads */\n\n\n  function SVGDropShadowEffect(filter, filterManager) {\n    var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n    filter.setAttribute(\"x\", filterSize.x);\n    filter.setAttribute(\"y\", filterSize.y);\n    filter.setAttribute(\"width\", filterSize.width);\n    filter.setAttribute(\"height\", filterSize.height);\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    feGaussianBlur.setAttribute(\"in\", \"SourceAlpha\");\n    feGaussianBlur.setAttribute(\"result\", \"drop_shadow_1\");\n    feGaussianBlur.setAttribute(\"stdDeviation\", \"0\");\n    (this || _global).feGaussianBlur = feGaussianBlur;\n    filter.appendChild(feGaussianBlur);\n    var feOffset = createNS(\"feOffset\");\n    feOffset.setAttribute(\"dx\", \"25\");\n    feOffset.setAttribute(\"dy\", \"0\");\n    feOffset.setAttribute(\"in\", \"drop_shadow_1\");\n    feOffset.setAttribute(\"result\", \"drop_shadow_2\");\n    (this || _global).feOffset = feOffset;\n    filter.appendChild(feOffset);\n    var feFlood = createNS(\"feFlood\");\n    feFlood.setAttribute(\"flood-color\", \"#00ff00\");\n    feFlood.setAttribute(\"flood-opacity\", \"1\");\n    feFlood.setAttribute(\"result\", \"drop_shadow_3\");\n    (this || _global).feFlood = feFlood;\n    filter.appendChild(feFlood);\n    var feComposite = createNS(\"feComposite\");\n    feComposite.setAttribute(\"in\", \"drop_shadow_3\");\n    feComposite.setAttribute(\"in2\", \"drop_shadow_2\");\n    feComposite.setAttribute(\"operator\", \"in\");\n    feComposite.setAttribute(\"result\", \"drop_shadow_4\");\n    filter.appendChild(feComposite);\n    var feMerge = createNS(\"feMerge\");\n    filter.appendChild(feMerge);\n    var feMergeNode;\n    feMergeNode = createNS(\"feMergeNode\");\n    feMerge.appendChild(feMergeNode);\n    feMergeNode = createNS(\"feMergeNode\");\n    feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n    (this || _global).feMergeNode = feMergeNode;\n    (this || _global).feMerge = feMerge;\n    (this || _global).originalNodeAdded = false;\n    feMerge.appendChild(feMergeNode);\n  }\n\n  SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n        (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", (this || _global).filterManager.effectElements[4].p.v / 4);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[0].p._mdf) {\n        var col = (this || _global).filterManager.effectElements[0].p.v;\n\n        (this || _global).feFlood.setAttribute(\"flood-color\", rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[1].p._mdf) {\n        (this || _global).feFlood.setAttribute(\"flood-opacity\", (this || _global).filterManager.effectElements[1].p.v / 255);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[2].p._mdf || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var distance = (this || _global).filterManager.effectElements[3].p.v;\n        var angle = ((this || _global).filterManager.effectElements[2].p.v - 90) * degToRads;\n        var x = distance * Math.cos(angle);\n        var y = distance * Math.sin(angle);\n\n        (this || _global).feOffset.setAttribute(\"dx\", x);\n\n        (this || _global).feOffset.setAttribute(\"dy\", y);\n      }\n      /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n              if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n                  this.feMerge.removeChild(this.feMergeNode);\r\n                  this.originalNodeAdded = false;\r\n              } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n                  this.feMerge.appendChild(this.feMergeNode);\r\n                  this.originalNodeAdded = true;\r\n              }\r\n          } */\n\n    }\n  };\n  /* global createElementID, createNS */\n\n\n  var _svgMatteSymbols = [];\n\n  function SVGMatte3Effect(filterElem, filterManager, elem) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).filterElem = filterElem;\n    (this || _global).elem = elem;\n    elem.matteElement = createNS(\"g\");\n    elem.matteElement.appendChild(elem.layerElement);\n    elem.matteElement.appendChild(elem.transformedElement);\n    elem.baseElement = elem.matteElement;\n  }\n\n  SVGMatte3Effect.prototype.findSymbol = function (mask) {\n    var i = 0;\n    var len = _svgMatteSymbols.length;\n\n    while (i < len) {\n      if (_svgMatteSymbols[i] === mask) {\n        return _svgMatteSymbols[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n    var parentNode = mask.layerElement.parentNode;\n\n    if (!parentNode) {\n      return;\n    }\n\n    var children = parentNode.children;\n    var i = 0;\n    var len = children.length;\n\n    while (i < len) {\n      if (children[i] === mask.layerElement) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    var nextChild;\n\n    if (i <= len - 2) {\n      nextChild = children[i + 1];\n    }\n\n    var useElem = createNS(\"use\");\n    useElem.setAttribute(\"href\", \"#\" + symbolId);\n\n    if (nextChild) {\n      parentNode.insertBefore(useElem, nextChild);\n    } else {\n      parentNode.appendChild(useElem);\n    }\n  };\n\n  SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n    if (!this.findSymbol(mask)) {\n      var symbolId = createElementID();\n      var masker = createNS(\"mask\");\n      masker.setAttribute(\"id\", mask.layerId);\n      masker.setAttribute(\"mask-type\", \"alpha\");\n\n      _svgMatteSymbols.push(mask);\n\n      var defs = elem.globalData.defs;\n      defs.appendChild(masker);\n      var symbol = createNS(\"symbol\");\n      symbol.setAttribute(\"id\", symbolId);\n      this.replaceInParent(mask, symbolId);\n      symbol.appendChild(mask.layerElement);\n      defs.appendChild(symbol);\n      var useElem = createNS(\"use\");\n      useElem.setAttribute(\"href\", \"#\" + symbolId);\n      masker.appendChild(useElem);\n      mask.data.hd = false;\n      mask.show();\n    }\n\n    elem.setMatte(mask.layerId);\n  };\n\n  SVGMatte3Effect.prototype.initialize = function () {\n    var ind = (this || _global).filterManager.effectElements[0].p.v;\n    var elements = (this || _global).elem.comp.elements;\n    var i = 0;\n    var len = elements.length;\n\n    while (i < len) {\n      if (elements[i] && elements[i].data.ind === ind) {\n        this.setElementAsMask((this || _global).elem, elements[i]);\n      }\n\n      i += 1;\n    }\n\n    (this || _global).initialized = true;\n  };\n\n  SVGMatte3Effect.prototype.renderFrame = function () {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n  };\n  /* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\n  SVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\n\n\n  function SVGEffects(elem) {\n    var i;\n    var len = elem.data.ef ? elem.data.ef.length : 0;\n    var filId = createElementID();\n    var fil = filtersFactory.createFilter(filId, true);\n    var count = 0;\n    (this || _global).filters = [];\n    var filterManager;\n\n    for (i = 0; i < len; i += 1) {\n      filterManager = null;\n\n      if (elem.data.ef[i].ty === 20) {\n        count += 1;\n        filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 21) {\n        count += 1;\n        filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 22) {\n        filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 23) {\n        count += 1;\n        filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 24) {\n        count += 1;\n        filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 25) {\n        count += 1;\n        filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 28) {\n        // count += 1;\n        filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n      } else if (elem.data.ef[i].ty === 29) {\n        count += 1;\n        filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n      }\n\n      if (filterManager) {\n        (this || _global).filters.push(filterManager);\n      }\n    }\n\n    if (count) {\n      elem.globalData.defs.appendChild(fil);\n      elem.layerElement.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n    }\n\n    if ((this || _global).filters.length) {\n      elem.addRenderableComponent(this || _global);\n    }\n  }\n\n  SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n    var i;\n    var len = (this || _global).filters.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).filters[i].renderFrame(_isFirstFrame);\n    }\n  };\n  /* global Matrix, createTypedArray */\n\n\n  function CVContextData() {\n    (this || _global).saved = [];\n    (this || _global).cArrPos = 0;\n    (this || _global).cTr = new Matrix();\n    (this || _global).cO = 1;\n    var i;\n    var len = 15;\n    (this || _global).savedOp = createTypedArray(\"float32\", len);\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = len;\n  }\n\n  CVContextData.prototype.duplicate = function () {\n    var newLength = (this || _global)._length * 2;\n    var currentSavedOp = (this || _global).savedOp;\n    (this || _global).savedOp = createTypedArray(\"float32\", newLength);\n\n    (this || _global).savedOp.set(currentSavedOp);\n\n    var i = 0;\n\n    for (i = (this || _global)._length; i < newLength; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = newLength;\n  };\n\n  CVContextData.prototype.reset = function () {\n    (this || _global).cArrPos = 0;\n\n    (this || _global).cTr.reset();\n\n    (this || _global).cO = 1;\n  };\n  /* global CVEffects, getBlendMode, CVMaskElement, Matrix */\n\n\n  function CVBaseElement() {}\n\n  CVBaseElement.prototype = {\n    createElements: function () {},\n    initRendererElement: function () {},\n    createContainerElements: function () {\n      (this || _global).canvasContext = (this || _global).globalData.canvasContext;\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n    },\n    createContent: function () {},\n    setBlendMode: function () {\n      var globalData = (this || _global).globalData;\n\n      if (globalData.blendMode !== (this || _global).data.bm) {\n        globalData.blendMode = (this || _global).data.bm;\n        var blendModeValue = getBlendMode((this || _global).data.bm);\n        globalData.canvasContext.globalCompositeOperation = blendModeValue;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new CVMaskElement((this || _global).data, this || _global);\n    },\n    hideElement: function () {\n      if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n        (this || _global).hidden = true;\n      }\n    },\n    showElement: function () {\n      if ((this || _global).isInRange && !(this || _global).isTransparent) {\n        (this || _global).hidden = false;\n        (this || _global)._isFirstFrame = true;\n        (this || _global).maskManager._isFirstFrame = true;\n      }\n    },\n    renderFrame: function () {\n      if ((this || _global).hidden || (this || _global).data.hd) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.setBlendMode();\n      var forceRealStack = (this || _global).data.ty === 0;\n\n      (this || _global).globalData.renderer.save(forceRealStack);\n\n      (this || _global).globalData.renderer.ctxTransform((this || _global).finalTransform.mat.props);\n\n      (this || _global).globalData.renderer.ctxOpacity((this || _global).finalTransform.mProp.o.v);\n\n      this.renderInnerContent();\n\n      (this || _global).globalData.renderer.restore(forceRealStack);\n\n      if ((this || _global).maskManager.hasMasks) {\n        (this || _global).globalData.renderer.restore(true);\n      }\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).canvasContext = null;\n      (this || _global).data = null;\n      (this || _global).globalData = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    mHelper: new Matrix()\n  };\n  CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n  CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\n  RenderableElement, SVGShapeElement, IImageElement, createTag */\n\n  function CVImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).img = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n  CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVImageElement.prototype.createContent = function () {\n    if ((this || _global).img.width && ((this || _global).assetData.w !== (this || _global).img.width || (this || _global).assetData.h !== (this || _global).img.height)) {\n      var canvas = createTag(\"canvas\");\n      canvas.width = (this || _global).assetData.w;\n      canvas.height = (this || _global).assetData.h;\n      var ctx = canvas.getContext(\"2d\");\n      var imgW = (this || _global).img.width;\n      var imgH = (this || _global).img.height;\n      var imgRel = imgW / imgH;\n      var canvasRel = (this || _global).assetData.w / (this || _global).assetData.h;\n      var widthCrop;\n      var heightCrop;\n      var par = (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio;\n\n      if (imgRel > canvasRel && par === \"xMidYMid slice\" || imgRel < canvasRel && par !== \"xMidYMid slice\") {\n        heightCrop = imgH;\n        widthCrop = heightCrop * canvasRel;\n      } else {\n        widthCrop = imgW;\n        heightCrop = widthCrop / canvasRel;\n      }\n\n      ctx.drawImage((this || _global).img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, (this || _global).assetData.w, (this || _global).assetData.h);\n      (this || _global).img = canvas;\n    }\n  };\n\n  CVImageElement.prototype.renderInnerContent = function () {\n    (this || _global).canvasContext.drawImage((this || _global).img, 0, 0);\n  };\n\n  CVImageElement.prototype.destroy = function () {\n    (this || _global).img = null;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\n\n\n  function CVCompElement(data, globalData, comp) {\n    (this || _global).completeLayers = false;\n    (this || _global).layers = data.layers;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = createSizedArray((this || _global).layers.length);\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\n\n  CVCompElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.beginPath();\n    ctx.moveTo(0, 0);\n    ctx.lineTo((this || _global).data.w, 0);\n    ctx.lineTo((this || _global).data.w, (this || _global).data.h);\n    ctx.lineTo(0, (this || _global).data.h);\n    ctx.lineTo(0, 0);\n    ctx.clip();\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  CVCompElement.prototype.destroy = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).layers = null;\n    (this || _global).elements = null;\n  };\n  /* global createSizedArray, ShapePropertyFactory, MaskElement */\n\n\n  function CVMaskElement(data, element) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).viewData = createSizedArray((this || _global).masksProperties.length);\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var hasMasks = false;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        hasMasks = true;\n      }\n\n      (this || _global).viewData[i] = ShapePropertyFactory.getShapeProp((this || _global).element, (this || _global).masksProperties[i], 3);\n    }\n\n    (this || _global).hasMasks = hasMasks;\n\n    if (hasMasks) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  CVMaskElement.prototype.renderFrame = function () {\n    if (!(this || _global).hasMasks) {\n      return;\n    }\n\n    var transform = (this || _global).element.finalTransform.mat;\n    var ctx = (this || _global).element.canvasContext;\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var pt;\n    var pts;\n    var data;\n    ctx.beginPath();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).masksProperties[i].inv) {\n          ctx.moveTo(0, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, 0);\n        }\n\n        data = (this || _global).viewData[i].v;\n        pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n        ctx.moveTo(pt[0], pt[1]);\n        var j;\n        var jLen = data._length;\n\n        for (j = 1; j < jLen; j += 1) {\n          pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n          ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n        }\n\n        pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n        ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n      }\n    }\n\n    (this || _global).element.globalData.renderer.save(true);\n\n    ctx.clip();\n  };\n\n  CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n  CVMaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n  };\n  /* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\n  HierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\n  DashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor */\n\n\n  function CVShapeElement(data, globalData, comp) {\n    (this || _global).shapes = [];\n    (this || _global).shapesData = data.shapes;\n    (this || _global).stylesList = [];\n    (this || _global).itemsData = [];\n    (this || _global).prevViewData = [];\n    (this || _global).shapeModifiers = [];\n    (this || _global).processedElements = [];\n    (this || _global).transformsManager = new ShapeTransformManager();\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n  CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n  CVShapeElement.prototype.transformHelper = {\n    opacity: 1,\n    _opMdf: false\n  };\n  CVShapeElement.prototype.dashResetter = [];\n\n  CVShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n  };\n\n  CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n    var styleElem = {\n      data: data,\n      type: data.ty,\n      preTransforms: (this || _global).transformsManager.addTransformSequence(transforms),\n      transforms: [],\n      elements: [],\n      closed: data.hd === true\n    };\n    var elementData = {};\n\n    if (data.ty === \"fl\" || data.ty === \"st\") {\n      elementData.c = PropertyFactory.getProp(this || _global, data.c, 1, 255, this || _global);\n\n      if (!elementData.c.k) {\n        styleElem.co = \"rgb(\" + bmFloor(elementData.c.v[0]) + \",\" + bmFloor(elementData.c.v[1]) + \",\" + bmFloor(elementData.c.v[2]) + \")\";\n      }\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      elementData.s = PropertyFactory.getProp(this || _global, data.s, 1, null, this || _global);\n      elementData.e = PropertyFactory.getProp(this || _global, data.e, 1, null, this || _global);\n      elementData.h = PropertyFactory.getProp(this || _global, data.h || {\n        k: 0\n      }, 0, 0.01, this || _global);\n      elementData.a = PropertyFactory.getProp(this || _global, data.a || {\n        k: 0\n      }, 0, degToRads, this || _global);\n      elementData.g = new GradientProperty(this || _global, data.g, this || _global);\n    }\n\n    elementData.o = PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global);\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      styleElem.lc = (this || _global).lcEnum[data.lc] || \"round\";\n      styleElem.lj = (this || _global).ljEnum[data.lj] || \"round\";\n\n      if (data.lj == 1) {\n        // eslint-disable-line eqeqeq\n        styleElem.ml = data.ml;\n      }\n\n      elementData.w = PropertyFactory.getProp(this || _global, data.w, 0, null, this || _global);\n\n      if (!elementData.w.k) {\n        styleElem.wi = elementData.w.v;\n      }\n\n      if (data.d) {\n        var d = new DashProperty(this || _global, data.d, \"canvas\", this || _global);\n        elementData.d = d;\n\n        if (!elementData.d.k) {\n          styleElem.da = elementData.d.dashArray;\n          styleElem.do = elementData.d.dashoffset[0];\n        }\n      }\n    } else {\n      styleElem.r = data.r === 2 ? \"evenodd\" : \"nonzero\";\n    }\n\n    (this || _global).stylesList.push(styleElem);\n\n    elementData.style = styleElem;\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createGroupElement = function () {\n    var elementData = {\n      it: [],\n      prevViewData: []\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createTransformElement = function (data) {\n    var elementData = {\n      transform: {\n        opacity: 1,\n        _opMdf: false,\n        key: (this || _global).transformsManager.getNewKey(),\n        op: PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global),\n        mProps: TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global)\n      }\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createShapeElement = function (data) {\n    var elementData = new CVShapeData(this || _global, data, (this || _global).stylesList, (this || _global).transformsManager);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    return elementData;\n  };\n\n  CVShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n  };\n\n  CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.push(transform);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.removeTransformFromStyleList = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.pop();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.closeStyles = function (styles) {\n    var i;\n    var len = styles.length;\n\n    for (i = 0; i < len; i += 1) {\n      styles[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var processedPos;\n    var modifier;\n    var currentTransform;\n    var ownTransforms = [].concat(transforms);\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._shouldRender = shouldRender;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          currentTransform = this.createTransformElement(arr[i]);\n          itemsData[i] = currentTransform;\n        }\n\n        ownTransforms.push(itemsData[i]);\n        this.addTransformToStyleList(itemsData[i]);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i]);\n        }\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          shouldRender = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    this.removeTransformFromStyleList();\n    this.closeStyles(ownStyles);\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.renderInnerContent = function () {\n    (this || _global).transformHelper.opacity = 1;\n    (this || _global).transformHelper._opMdf = false;\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n\n    this.renderShape((this || _global).transformHelper, (this || _global).shapesData, (this || _global).itemsData, true);\n  };\n\n  CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n    if (parentTransform._opMdf || groupTransform.op._mdf || (this || _global)._isFirstFrame) {\n      groupTransform.opacity = parentTransform.opacity;\n      groupTransform.opacity *= groupTransform.op.v;\n      groupTransform._opMdf = true;\n    }\n  };\n\n  CVShapeElement.prototype.drawLayer = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var elems;\n    var nodes;\n    var renderer = (this || _global).globalData.renderer;\n    var ctx = (this || _global).globalData.canvasContext;\n    var type;\n    var currentStyle;\n\n    for (i = 0; i < len; i += 1) {\n      currentStyle = (this || _global).stylesList[i];\n      type = currentStyle.type; // Skipping style when\n      // Stroke width equals 0\n      // style should not be rendered (extra unused repeaters)\n      // current opacity equals 0\n      // global opacity equals 0\n\n      if (!((type === \"st\" || type === \"gs\") && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || (this || _global).globalData.currentGlobalAlpha === 0)) {\n        renderer.save();\n        elems = currentStyle.elements;\n\n        if (type === \"st\" || type === \"gs\") {\n          ctx.strokeStyle = type === \"st\" ? currentStyle.co : currentStyle.grd;\n          ctx.lineWidth = currentStyle.wi;\n          ctx.lineCap = currentStyle.lc;\n          ctx.lineJoin = currentStyle.lj;\n          ctx.miterLimit = currentStyle.ml || 0;\n        } else {\n          ctx.fillStyle = type === \"fl\" ? currentStyle.co : currentStyle.grd;\n        }\n\n        renderer.ctxOpacity(currentStyle.coOp);\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.beginPath();\n        }\n\n        renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n        jLen = elems.length;\n\n        for (j = 0; j < jLen; j += 1) {\n          if (type === \"st\" || type === \"gs\") {\n            ctx.beginPath();\n\n            if (currentStyle.da) {\n              ctx.setLineDash(currentStyle.da);\n              ctx.lineDashOffset = currentStyle.do;\n            }\n          }\n\n          nodes = elems[j].trNodes;\n          kLen = nodes.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            if (nodes[k].t === \"m\") {\n              ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n            } else if (nodes[k].t === \"c\") {\n              ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n            } else {\n              ctx.closePath();\n            }\n          }\n\n          if (type === \"st\" || type === \"gs\") {\n            ctx.stroke();\n\n            if (currentStyle.da) {\n              ctx.setLineDash((this || _global).dashResetter);\n            }\n          }\n        }\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.fill(currentStyle.r);\n        }\n\n        renderer.restore();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n    var i;\n    var len = items.length - 1;\n    var groupTransform;\n    groupTransform = parentTransform;\n\n    for (i = len; i >= 0; i -= 1) {\n      if (items[i].ty === \"tr\") {\n        groupTransform = data[i].transform;\n        this.renderShapeTransform(parentTransform, groupTransform);\n      } else if (items[i].ty === \"sh\" || items[i].ty === \"el\" || items[i].ty === \"rc\" || items[i].ty === \"sr\") {\n        this.renderPath(items[i], data[i]);\n      } else if (items[i].ty === \"fl\") {\n        this.renderFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"st\") {\n        this.renderStroke(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gf\" || items[i].ty === \"gs\") {\n        this.renderGradientFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gr\") {\n        this.renderShape(groupTransform, items[i].it, data[i].it);\n      } else if (items[i].ty === \"tm\") {//\n      }\n    }\n\n    if (isMain) {\n      this.drawLayer();\n    }\n  };\n\n  CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n    if ((this || _global)._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n      var shapeNodes = styledShape.trNodes;\n      var paths = shape.paths;\n      var i;\n      var len;\n      var j;\n      var jLen = paths._length;\n      shapeNodes.length = 0;\n      var groupTransformMat = styledShape.transforms.finalTransform;\n\n      for (j = 0; j < jLen; j += 1) {\n        var pathNodes = paths.shapes[j];\n\n        if (pathNodes && pathNodes.v) {\n          len = pathNodes._length;\n\n          for (i = 1; i < len; i += 1) {\n            if (i === 1) {\n              shapeNodes.push({\n                t: \"m\",\n                p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n              });\n            }\n\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n            });\n          }\n\n          if (len === 1) {\n            shapeNodes.push({\n              t: \"m\",\n              p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n            });\n          }\n\n          if (pathNodes.c && len) {\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n            });\n            shapeNodes.push({\n              t: \"z\"\n            });\n          }\n        }\n      }\n\n      styledShape.trNodes = shapeNodes;\n    }\n  };\n\n  CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n    if (pathData.hd !== true && pathData._shouldRender) {\n      var i;\n      var len = itemData.styledShapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n  };\n\n  CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var grd;\n\n    if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n      var ctx = (this || _global).globalData.canvasContext;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (styleData.t === 1) {\n        grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n      } else {\n        var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n        var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n        var percent = itemData.h.v;\n\n        if (percent >= 1) {\n          percent = 0.99;\n        } else if (percent <= -1) {\n          percent = -0.99;\n        }\n\n        var dist = rad * percent;\n        var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n        var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n        grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n      }\n\n      var i;\n      var len = styleData.g.p;\n      var cValues = itemData.g.c;\n      var opacity = 1;\n\n      for (i = 0; i < len; i += 1) {\n        if (itemData.g._hasOpacity && itemData.g._collapsable) {\n          opacity = itemData.g.o[i * 2 + 1];\n        }\n\n        grd.addColorStop(cValues[i * 4] / 100, \"rgba(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \",\" + opacity + \")\");\n      }\n\n      styleElem.grd = grd;\n    }\n\n    styleElem.coOp = itemData.o.v * groupTransform.opacity;\n  };\n\n  CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var d = itemData.d;\n\n    if (d && (d._mdf || (this || _global)._isFirstFrame)) {\n      styleElem.da = d.dashArray;\n      styleElem.do = d.dashoffset[0];\n    }\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n\n    if (itemData.w._mdf || (this || _global)._isFirstFrame) {\n      styleElem.wi = itemData.w.v;\n    }\n  };\n\n  CVShapeElement.prototype.destroy = function () {\n    (this || _global).shapesData = null;\n    (this || _global).globalData = null;\n    (this || _global).canvasContext = null;\n    (this || _global).stylesList.length = 0;\n    (this || _global).itemsData.length = 0;\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\n  SVGShapeElement, IImageElement */\n\n\n  function CVSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n  CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVSolidElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.fillStyle = (this || _global).data.sc;\n    ctx.fillRect(0, 0, (this || _global).data.sw, (this || _global).data.sh); //\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\n  RenderableElement, ITextElement, createTag, createSizedArray */\n\n\n  function CVTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).yOffset = 0;\n    (this || _global).fillColorAnim = false;\n    (this || _global).strokeColorAnim = false;\n    (this || _global).strokeWidthAnim = false;\n    (this || _global).stroke = false;\n    (this || _global).fill = false;\n    (this || _global).justifyOffset = 0;\n    (this || _global).currentRender = null;\n    (this || _global).renderType = \"canvas\";\n    (this || _global).values = {\n      fill: \"rgba(0,0,0,0)\",\n      stroke: \"rgba(0,0,0,0)\",\n      sWidth: 0,\n      fValue: \"\"\n    };\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n  CVTextElement.prototype.tHelper = createTag(\"canvas\").getContext(\"2d\");\n\n  CVTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var hasFill = false;\n\n    if (documentData.fc) {\n      hasFill = true;\n      (this || _global).values.fill = this.buildColor(documentData.fc);\n    } else {\n      (this || _global).values.fill = \"rgba(0,0,0,0)\";\n    }\n\n    (this || _global).fill = hasFill;\n    var hasStroke = false;\n\n    if (documentData.sc) {\n      hasStroke = true;\n      (this || _global).values.stroke = this.buildColor(documentData.sc);\n      (this || _global).values.sWidth = documentData.sw;\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    var matrixHelper = (this || _global).mHelper;\n    (this || _global).stroke = hasStroke;\n    (this || _global).values.fValue = documentData.finalSize + \"px \" + (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily;\n    len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n    var charData;\n    var shapeData;\n    var k;\n    var kLen;\n    var shapes;\n    var j;\n    var jLen;\n    var pathNodes;\n    var commands;\n    var pathArr;\n    var singleShape = (this || _global).data.singleShape;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n      shapeData = charData && charData.data || {};\n      matrixHelper.reset();\n\n      if (singleShape && letters[i].n) {\n        xPos = -trackingOffset;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        firstLine = false;\n      }\n\n      shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n      jLen = shapes.length;\n      matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n      if (singleShape) {\n        this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n      }\n\n      commands = createSizedArray(jLen);\n\n      for (j = 0; j < jLen; j += 1) {\n        kLen = shapes[j].ks.k.i.length;\n        pathNodes = shapes[j].ks.k;\n        pathArr = [];\n\n        for (k = 1; k < kLen; k += 1) {\n          if (k === 1) {\n            pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n          }\n\n          pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n        }\n\n        pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n        commands[j] = pathArr;\n      }\n\n      if (singleShape) {\n        xPos += letters[i].l;\n        xPos += trackingOffset;\n      }\n\n      if ((this || _global).textSpans[cnt]) {\n        (this || _global).textSpans[cnt].elem = commands;\n      } else {\n        (this || _global).textSpans[cnt] = {\n          elem: commands\n        };\n      }\n\n      cnt += 1;\n    }\n  };\n\n  CVTextElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.font = (this || _global).values.fValue;\n    ctx.lineCap = \"butt\";\n    ctx.lineJoin = \"miter\";\n    ctx.miterLimit = 4;\n\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n    }\n\n    var i;\n    var len;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var lastFill = null;\n    var lastStroke = null;\n    var lastStrokeW = null;\n    var commands;\n    var pathArr;\n\n    for (i = 0; i < len; i += 1) {\n      if (!letters[i].n) {\n        renderedLetter = renderedLetters[i];\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.save();\n\n          (this || _global).globalData.renderer.ctxTransform(renderedLetter.p);\n\n          (this || _global).globalData.renderer.ctxOpacity(renderedLetter.o);\n        }\n\n        if ((this || _global).fill) {\n          if (renderedLetter && renderedLetter.fc) {\n            if (lastFill !== renderedLetter.fc) {\n              lastFill = renderedLetter.fc;\n              ctx.fillStyle = renderedLetter.fc;\n            }\n          } else if (lastFill !== (this || _global).values.fill) {\n            lastFill = (this || _global).values.fill;\n            ctx.fillStyle = (this || _global).values.fill;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n\n        }\n\n        if ((this || _global).stroke) {\n          if (renderedLetter && renderedLetter.sw) {\n            if (lastStrokeW !== renderedLetter.sw) {\n              lastStrokeW = renderedLetter.sw;\n              ctx.lineWidth = renderedLetter.sw;\n            }\n          } else if (lastStrokeW !== (this || _global).values.sWidth) {\n            lastStrokeW = (this || _global).values.sWidth;\n            ctx.lineWidth = (this || _global).values.sWidth;\n          }\n\n          if (renderedLetter && renderedLetter.sc) {\n            if (lastStroke !== renderedLetter.sc) {\n              lastStroke = renderedLetter.sc;\n              ctx.strokeStyle = renderedLetter.sc;\n            }\n          } else if (lastStroke !== (this || _global).values.stroke) {\n            lastStroke = (this || _global).values.stroke;\n            ctx.strokeStyle = (this || _global).values.stroke;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n\n        }\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.restore();\n        }\n      }\n    }\n  };\n\n  function CVEffects() {}\n\n  CVEffects.prototype.renderFrame = function () {};\n  /* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\n\n\n  function HBaseElement() {}\n\n  HBaseElement.prototype = {\n    checkBlendMode: function () {},\n    initRendererElement: function () {\n      (this || _global).baseElement = createTag((this || _global).data.tg || \"div\");\n\n      if ((this || _global).data.hasMask) {\n        (this || _global).svgElement = createNS(\"svg\");\n        (this || _global).layerElement = createNS(\"g\");\n        (this || _global).maskedElement = (this || _global).layerElement;\n\n        (this || _global).svgElement.appendChild((this || _global).layerElement);\n\n        (this || _global).baseElement.appendChild((this || _global).svgElement);\n      } else {\n        (this || _global).layerElement = (this || _global).baseElement;\n      }\n\n      styleDiv((this || _global).baseElement);\n    },\n    createContainerElements: function () {\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n      (this || _global).transformedElement = (this || _global).baseElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      var transformedElementStyle = (this || _global).transformedElement ? (this || _global).transformedElement.style : {};\n\n      if ((this || _global).finalTransform._matMdf) {\n        var matrixValue = (this || _global).finalTransform.mat.toCSS();\n\n        transformedElementStyle.transform = matrixValue;\n        transformedElementStyle.webkitTransform = matrixValue;\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        transformedElementStyle.opacity = (this || _global).finalTransform.mProp.o.v;\n      }\n    },\n    renderFrame: function () {\n      // If it is exported as hidden (data.hd === true) no need to render\n      // If it is not visible no need to render\n      if ((this || _global).data.hd || (this || _global).hidden) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.renderElement();\n      this.renderInnerContent();\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).layerElement = null;\n      (this || _global).transformedElement = null;\n\n      if ((this || _global).matteElement) {\n        (this || _global).matteElement = null;\n      }\n\n      if ((this || _global).maskManager) {\n        (this || _global).maskManager.destroy();\n\n        (this || _global).maskManager = null;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n    },\n    addEffects: function () {},\n    setMatte: function () {}\n  };\n  HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n  HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n  HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, createNS, createTag */\n\n  function HSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n  HSolidElement.prototype.createContent = function () {\n    var rect;\n\n    if ((this || _global).data.hasMask) {\n      rect = createNS(\"rect\");\n      rect.setAttribute(\"width\", (this || _global).data.sw);\n      rect.setAttribute(\"height\", (this || _global).data.sh);\n      rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.sw);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.sh);\n    } else {\n      rect = createTag(\"div\");\n      rect.style.width = (this || _global).data.sw + \"px\";\n      rect.style.height = (this || _global).data.sh + \"px\";\n      rect.style.backgroundColor = (this || _global).data.sc;\n    }\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\n\n\n  function HCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = !data.hasMask;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : [];\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\n  HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n  HCompElement.prototype.createContainerElements = function () {\n    this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.h);\n\n      (this || _global).transformedElement = (this || _global).baseElement;\n    } else {\n      (this || _global).transformedElement = (this || _global).layerElement;\n    }\n  };\n\n  HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n    var j = 0;\n    var nextElement;\n\n    while (j < pos) {\n      if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n        nextElement = (this || _global).elements[j].getBaseElement();\n      }\n\n      j += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(elem, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(elem);\n    }\n  };\n  /* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\n  HierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\n\n\n  function HShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    (this || _global).shapesContainer = createNS(\"g\");\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n  HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n  HShapeElement.prototype.createContent = function () {\n    var cont;\n    (this || _global).baseElement.style.fontSize = 0;\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).layerElement.appendChild((this || _global).shapesContainer);\n\n      cont = (this || _global).svgElement;\n    } else {\n      cont = createNS(\"svg\");\n      var size = (this || _global).comp.data ? (this || _global).comp.data : (this || _global).globalData.compSize;\n      cont.setAttribute(\"width\", size.w);\n      cont.setAttribute(\"height\", size.h);\n      cont.appendChild((this || _global).shapesContainer);\n\n      (this || _global).layerElement.appendChild(cont);\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).shapesContainer, 0, [], true);\n    this.filterUniqueShapes();\n    (this || _global).shapeCont = cont;\n  };\n\n  HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n    var i;\n    var len = transformers.length;\n\n    for (i = 0; i < len; i += 1) {\n      point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n    }\n\n    return point;\n  };\n\n  HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n    var shape = item.sh.v;\n    var transformers = item.transformers;\n    var i;\n    var len = shape._length;\n    var vPoint;\n    var oPoint;\n    var nextIPoint;\n    var nextVPoint;\n\n    if (len <= 1) {\n      return;\n    }\n\n    for (i = 0; i < len - 1; i += 1) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n\n    if (shape.c) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n  };\n\n  HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n    this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n    var bounds = (this || _global).shapeBoundingBox;\n    boundingBox.x = bmMin(bounds.left, boundingBox.x);\n    boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n    boundingBox.y = bmMin(bounds.top, boundingBox.y);\n    boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n  };\n\n  HShapeElement.prototype.shapeBoundingBox = {\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  };\n  HShapeElement.prototype.tempBoundingBox = {\n    x: 0,\n    xMax: 0,\n    y: 0,\n    yMax: 0,\n    width: 0,\n    height: 0\n  };\n\n  HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n    var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n    for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n      // eslint-disable-line no-plusplus\n      b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n      a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n      c = 3 * p1[i] - 3 * p0[i];\n      b |= 0; // eslint-disable-line no-bitwise\n\n      a |= 0; // eslint-disable-line no-bitwise\n\n      c |= 0; // eslint-disable-line no-bitwise\n\n      if (a === 0 && b === 0) {//\n      } else if (a === 0) {\n        t = -c / b;\n\n        if (t > 0 && t < 1) {\n          bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n        }\n      } else {\n        b2ac = b * b - 4 * c * a;\n\n        if (b2ac >= 0) {\n          t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n          if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n          t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n          if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n        }\n      }\n    }\n\n    (this || _global).shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n    (this || _global).shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n  };\n\n  HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n    return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n  };\n\n  HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n    var i;\n    var len = itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (itemsData[i] && itemsData[i].sh) {\n        this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n      } else if (itemsData[i] && itemsData[i].it) {\n        this.calculateBoundingBox(itemsData[i].it, boundingBox);\n      }\n    }\n  };\n\n  HShapeElement.prototype.currentBoxContains = function (box) {\n    return (this || _global).currentBBox.x <= box.x && (this || _global).currentBBox.y <= box.y && (this || _global).currentBBox.width + (this || _global).currentBBox.x >= box.x + box.width && (this || _global).currentBBox.height + (this || _global).currentBBox.y >= box.y + box.height;\n  };\n\n  HShapeElement.prototype.renderInnerContent = function () {\n    this._renderShapeFrame();\n\n    if (!(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var tempBoundingBox = (this || _global).tempBoundingBox;\n      var max = 999999;\n      tempBoundingBox.x = max;\n      tempBoundingBox.xMax = -max;\n      tempBoundingBox.y = max;\n      tempBoundingBox.yMax = -max;\n      this.calculateBoundingBox((this || _global).itemsData, tempBoundingBox);\n      tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n      tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n      if (this.currentBoxContains(tempBoundingBox)) {\n        return;\n      }\n\n      var changed = false;\n\n      if ((this || _global).currentBBox.w !== tempBoundingBox.width) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n\n        (this || _global).shapeCont.setAttribute(\"width\", tempBoundingBox.width);\n\n        changed = true;\n      }\n\n      if ((this || _global).currentBBox.h !== tempBoundingBox.height) {\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n\n        (this || _global).shapeCont.setAttribute(\"height\", tempBoundingBox.height);\n\n        changed = true;\n      }\n\n      if (changed || (this || _global).currentBBox.x !== tempBoundingBox.x || (this || _global).currentBBox.y !== tempBoundingBox.y) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n        (this || _global).currentBBox.x = tempBoundingBox.x;\n        (this || _global).currentBBox.y = tempBoundingBox.y;\n\n        (this || _global).shapeCont.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        var shapeStyle = (this || _global).shapeCont.style;\n        var shapeTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        shapeStyle.transform = shapeTransform;\n        shapeStyle.webkitTransform = shapeTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS */\n\n\n  function HTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).textPaths = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n    (this || _global).renderType = \"svg\";\n    (this || _global).isMasked = false;\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n  HTextElement.prototype.createContent = function () {\n    (this || _global).isMasked = this.checkMasks();\n\n    if ((this || _global).isMasked) {\n      (this || _global).renderType = \"svg\";\n      (this || _global).compW = (this || _global).comp.data.w;\n      (this || _global).compH = (this || _global).comp.data.h;\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).compW);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).compH);\n\n      var g = createNS(\"g\");\n\n      (this || _global).maskedElement.appendChild(g);\n\n      (this || _global).innerElem = g;\n    } else {\n      (this || _global).renderType = \"html\";\n      (this || _global).innerElem = (this || _global).layerElement;\n    }\n\n    this.checkParenting();\n  };\n\n  HTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var innerElemStyle = (this || _global).innerElem.style;\n    var textColor = documentData.fc ? this.buildColor(documentData.fc) : \"rgba(0,0,0,0)\";\n    innerElemStyle.fill = textColor;\n    innerElemStyle.color = textColor;\n\n    if (documentData.sc) {\n      innerElemStyle.stroke = this.buildColor(documentData.sc);\n      innerElemStyle.strokeWidth = documentData.sw + \"px\";\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (!(this || _global).globalData.fontManager.chars) {\n      innerElemStyle.fontSize = documentData.finalSize + \"px\";\n      innerElemStyle.lineHeight = documentData.finalSize + \"px\";\n\n      if (fontData.fClass) {\n        (this || _global).innerElem.className = fontData.fClass;\n      } else {\n        innerElemStyle.fontFamily = fontData.fFamily;\n        var fWeight = documentData.fWeight;\n        var fStyle = documentData.fStyle;\n        innerElemStyle.fontStyle = fStyle;\n        innerElemStyle.fontWeight = fWeight;\n      }\n    }\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    len = letters.length;\n    var tSpan;\n    var tParent;\n    var tCont;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).globalData.fontManager.chars) {\n        if (!(this || _global).textPaths[cnt]) {\n          tSpan = createNS(\"path\");\n          tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n          tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n          tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n        } else {\n          tSpan = (this || _global).textPaths[cnt];\n        }\n\n        if (!(this || _global).isMasked) {\n          if ((this || _global).textSpans[cnt]) {\n            tParent = (this || _global).textSpans[cnt];\n            tCont = tParent.children[0];\n          } else {\n            tParent = createTag(\"div\");\n            tParent.style.lineHeight = 0;\n            tCont = createNS(\"svg\");\n            tCont.appendChild(tSpan);\n            styleDiv(tParent);\n          }\n        }\n      } else if (!(this || _global).isMasked) {\n        if ((this || _global).textSpans[cnt]) {\n          tParent = (this || _global).textSpans[cnt];\n          tSpan = (this || _global).textPaths[cnt];\n        } else {\n          tParent = createTag(\"span\");\n          styleDiv(tParent);\n          tSpan = createTag(\"span\");\n          styleDiv(tSpan);\n          tParent.appendChild(tSpan);\n        }\n      } else {\n        tSpan = (this || _global).textPaths[cnt] ? (this || _global).textPaths[cnt] : createNS(\"text\");\n      } // tSpan.setAttribute('visibility', 'hidden');\n\n\n      if ((this || _global).globalData.fontManager.chars) {\n        var charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n\n        var shapeData;\n\n        if (charData) {\n          shapeData = charData.data;\n        } else {\n          shapeData = null;\n        }\n\n        matrixHelper.reset();\n\n        if (shapeData && shapeData.shapes) {\n          shapes = shapeData.shapes[0].it;\n          matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n          shapeStr = this.createPathShape(matrixHelper, shapes);\n          tSpan.setAttribute(\"d\", shapeStr);\n        }\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent);\n\n          if (shapeData && shapeData.shapes) {\n            // document.body.appendChild is needed to get exact measure of shape\n            document.body.appendChild(tCont);\n            var boundingBox = tCont.getBBox();\n            tCont.setAttribute(\"width\", boundingBox.width + 2);\n            tCont.setAttribute(\"height\", boundingBox.height + 2);\n            tCont.setAttribute(\"viewBox\", boundingBox.x - 1 + \" \" + (boundingBox.y - 1) + \" \" + (boundingBox.width + 2) + \" \" + (boundingBox.height + 2));\n            var tContStyle = tCont.style;\n            var tContTranslation = \"translate(\" + (boundingBox.x - 1) + \"px,\" + (boundingBox.y - 1) + \"px)\";\n            tContStyle.transform = tContTranslation;\n            tContStyle.webkitTransform = tContTranslation;\n            letters[i].yOffset = boundingBox.y - 1;\n          } else {\n            tCont.setAttribute(\"width\", 1);\n            tCont.setAttribute(\"height\", 1);\n          }\n\n          tParent.appendChild(tCont);\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } else {\n        tSpan.textContent = letters[i].val;\n        tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent); //\n\n\n          var tStyle = tSpan.style;\n          var tSpanTranslation = \"translate3d(0,\" + -documentData.finalSize / 1.2 + \"px,0)\";\n          tStyle.transform = tSpanTranslation;\n          tStyle.webkitTransform = tSpanTranslation;\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } //\n\n\n      if (!(this || _global).isMasked) {\n        (this || _global).textSpans[cnt] = tParent;\n      } else {\n        (this || _global).textSpans[cnt] = tSpan;\n      }\n\n      (this || _global).textSpans[cnt].style.display = \"block\";\n      (this || _global).textPaths[cnt] = tSpan;\n      cnt += 1;\n    }\n\n    while (cnt < (this || _global).textSpans.length) {\n      (this || _global).textSpans[cnt].style.display = \"none\";\n      cnt += 1;\n    }\n  };\n\n  HTextElement.prototype.renderInnerContent = function () {\n    var svgStyle;\n\n    if ((this || _global).data.singleShape) {\n      if (!(this || _global)._isFirstFrame && !(this || _global).lettersChangedFlag) {\n        return;\n      }\n\n      if ((this || _global).isMasked && (this || _global).finalTransform._matMdf) {\n        // Todo Benchmark if using this is better than getBBox\n        (this || _global).svgElement.setAttribute(\"viewBox\", -(this || _global).finalTransform.mProp.p.v[0] + \" \" + -(this || _global).finalTransform.mProp.p.v[1] + \" \" + (this || _global).compW + \" \" + (this || _global).compH);\n\n        svgStyle = (this || _global).svgElement.style;\n        var translation = \"translate(\" + -(this || _global).finalTransform.mProp.p.v[0] + \"px,\" + -(this || _global).finalTransform.mProp.p.v[1] + \"px)\";\n        svgStyle.transform = translation;\n        svgStyle.webkitTransform = translation;\n      }\n    }\n\n    (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n    if (!(this || _global).lettersChangedFlag && !(this || _global).textAnimator.lettersChangedFlag) {\n      return;\n    }\n\n    var i;\n    var len;\n    var count = 0;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var textSpan;\n    var textPath;\n\n    for (i = 0; i < len; i += 1) {\n      if (letters[i].n) {\n        count += 1;\n      } else {\n        textSpan = (this || _global).textSpans[i];\n        textPath = (this || _global).textPaths[i];\n        renderedLetter = renderedLetters[count];\n        count += 1;\n\n        if (renderedLetter._mdf.m) {\n          if (!(this || _global).isMasked) {\n            textSpan.style.webkitTransform = renderedLetter.m;\n            textSpan.style.transform = renderedLetter.m;\n          } else {\n            textSpan.setAttribute(\"transform\", renderedLetter.m);\n          }\n        } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n        textSpan.style.opacity = renderedLetter.o;\n\n        if (renderedLetter.sw && renderedLetter._mdf.sw) {\n          textPath.setAttribute(\"stroke-width\", renderedLetter.sw);\n        }\n\n        if (renderedLetter.sc && renderedLetter._mdf.sc) {\n          textPath.setAttribute(\"stroke\", renderedLetter.sc);\n        }\n\n        if (renderedLetter.fc && renderedLetter._mdf.fc) {\n          textPath.setAttribute(\"fill\", renderedLetter.fc);\n          textPath.style.color = renderedLetter.fc;\n        }\n      }\n    }\n\n    if ((this || _global).innerElem.getBBox && !(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var boundingBox = (this || _global).innerElem.getBBox();\n\n      if ((this || _global).currentBBox.w !== boundingBox.width) {\n        (this || _global).currentBBox.w = boundingBox.width;\n\n        (this || _global).svgElement.setAttribute(\"width\", boundingBox.width);\n      }\n\n      if ((this || _global).currentBBox.h !== boundingBox.height) {\n        (this || _global).currentBBox.h = boundingBox.height;\n\n        (this || _global).svgElement.setAttribute(\"height\", boundingBox.height);\n      }\n\n      var margin = 1;\n\n      if ((this || _global).currentBBox.w !== boundingBox.width + margin * 2 || (this || _global).currentBBox.h !== boundingBox.height + margin * 2 || (this || _global).currentBBox.x !== boundingBox.x - margin || (this || _global).currentBBox.y !== boundingBox.y - margin) {\n        (this || _global).currentBBox.w = boundingBox.width + margin * 2;\n        (this || _global).currentBBox.h = boundingBox.height + margin * 2;\n        (this || _global).currentBBox.x = boundingBox.x - margin;\n        (this || _global).currentBBox.y = boundingBox.y - margin;\n\n        (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        svgStyle = (this || _global).svgElement.style;\n        var svgTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        svgStyle.transform = svgTransform;\n        svgStyle.webkitTransform = svgTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\n  FrameElement, RenderableElement, createNS */\n\n\n  function HImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n  HImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    var img = new Image();\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).imageElem = createNS(\"image\");\n\n      (this || _global).imageElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n      (this || _global).imageElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n      (this || _global).imageElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n      (this || _global).layerElement.appendChild((this || _global).imageElem);\n\n      (this || _global).baseElement.setAttribute(\"width\", (this || _global).assetData.w);\n\n      (this || _global).baseElement.setAttribute(\"height\", (this || _global).assetData.h);\n    } else {\n      (this || _global).layerElement.appendChild(img);\n    }\n\n    img.crossOrigin = \"anonymous\";\n    img.src = assetPath;\n\n    if ((this || _global).data.ln) {\n      (this || _global).baseElement.setAttribute(\"id\", (this || _global).data.ln);\n    }\n  };\n  /* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\n\n\n  function HCameraElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initHierarchy();\n    var getProp = PropertyFactory.getProp;\n    (this || _global).pe = getProp(this || _global, data.pe, 0, 0, this || _global);\n\n    if (data.ks.p.s) {\n      (this || _global).px = getProp(this || _global, data.ks.p.x, 1, 0, this || _global);\n      (this || _global).py = getProp(this || _global, data.ks.p.y, 1, 0, this || _global);\n      (this || _global).pz = getProp(this || _global, data.ks.p.z, 1, 0, this || _global);\n    } else {\n      (this || _global).p = getProp(this || _global, data.ks.p, 1, 0, this || _global);\n    }\n\n    if (data.ks.a) {\n      (this || _global).a = getProp(this || _global, data.ks.a, 1, 0, this || _global);\n    }\n\n    if (data.ks.or.k.length && data.ks.or.k[0].to) {\n      var i;\n      var len = data.ks.or.k.length;\n\n      for (i = 0; i < len; i += 1) {\n        data.ks.or.k[i].to = null;\n        data.ks.or.k[i].ti = null;\n      }\n    }\n\n    (this || _global).or = getProp(this || _global, data.ks.or, 1, degToRads, this || _global);\n    (this || _global).or.sh = true;\n    (this || _global).rx = getProp(this || _global, data.ks.rx, 0, degToRads, this || _global);\n    (this || _global).ry = getProp(this || _global, data.ks.ry, 0, degToRads, this || _global);\n    (this || _global).rz = getProp(this || _global, data.ks.rz, 0, degToRads, this || _global);\n    (this || _global).mat = new Matrix();\n    (this || _global)._prevMat = new Matrix();\n    (this || _global)._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n    (this || _global).finalTransform = {\n      mProp: this || _global\n    };\n  }\n\n  extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n  HCameraElement.prototype.setup = function () {\n    var i;\n    var len = (this || _global).comp.threeDElements.length;\n    var comp;\n    var perspectiveStyle;\n    var containerStyle;\n\n    for (i = 0; i < len; i += 1) {\n      // [perspectiveElem,container]\n      comp = (this || _global).comp.threeDElements[i];\n\n      if (comp.type === \"3d\") {\n        perspectiveStyle = comp.perspectiveElem.style;\n        containerStyle = comp.container.style;\n        var perspective = (this || _global).pe.v + \"px\";\n        var origin = \"0px 0px 0px\";\n        var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n        perspectiveStyle.perspective = perspective;\n        perspectiveStyle.webkitPerspective = perspective;\n        containerStyle.transformOrigin = origin;\n        containerStyle.mozTransformOrigin = origin;\n        containerStyle.webkitTransformOrigin = origin;\n        perspectiveStyle.transform = matrix;\n        perspectiveStyle.webkitTransform = matrix;\n      }\n    }\n  };\n\n  HCameraElement.prototype.createElements = function () {};\n\n  HCameraElement.prototype.hide = function () {};\n\n  HCameraElement.prototype.renderFrame = function () {\n    var _mdf = (this || _global)._isFirstFrame;\n    var i;\n    var len;\n\n    if ((this || _global).hierarchy) {\n      len = (this || _global).hierarchy.length;\n\n      for (i = 0; i < len; i += 1) {\n        _mdf = (this || _global).hierarchy[i].finalTransform.mProp._mdf || _mdf;\n      }\n    }\n\n    if (_mdf || (this || _global).pe._mdf || (this || _global).p && (this || _global).p._mdf || (this || _global).px && ((this || _global).px._mdf || (this || _global).py._mdf || (this || _global).pz._mdf) || (this || _global).rx._mdf || (this || _global).ry._mdf || (this || _global).rz._mdf || (this || _global).or._mdf || (this || _global).a && (this || _global).a._mdf) {\n      (this || _global).mat.reset();\n\n      if ((this || _global).hierarchy) {\n        len = (this || _global).hierarchy.length - 1;\n\n        for (i = len; i >= 0; i -= 1) {\n          var mTransf = (this || _global).hierarchy[i].finalTransform.mProp;\n\n          (this || _global).mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\n          (this || _global).mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\n          (this || _global).mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n        }\n      }\n\n      if ((this || _global).p) {\n        (this || _global).mat.translate(-(this || _global).p.v[0], -(this || _global).p.v[1], (this || _global).p.v[2]);\n      } else {\n        (this || _global).mat.translate(-(this || _global).px.v, -(this || _global).py.v, (this || _global).pz.v);\n      }\n\n      if ((this || _global).a) {\n        var diffVector;\n\n        if ((this || _global).p) {\n          diffVector = [(this || _global).p.v[0] - (this || _global).a.v[0], (this || _global).p.v[1] - (this || _global).a.v[1], (this || _global).p.v[2] - (this || _global).a.v[2]];\n        } else {\n          diffVector = [(this || _global).px.v - (this || _global).a.v[0], (this || _global).py.v - (this || _global).a.v[1], (this || _global).pz.v - (this || _global).a.v[2]];\n        }\n\n        var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n        var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n        var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n        var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n        var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n\n        (this || _global).mat.rotateY(mRotationY).rotateX(-mRotationX);\n      }\n\n      (this || _global).mat.rotateX(-(this || _global).rx.v).rotateY(-(this || _global).ry.v).rotateZ((this || _global).rz.v);\n\n      (this || _global).mat.rotateX(-(this || _global).or.v[0]).rotateY(-(this || _global).or.v[1]).rotateZ((this || _global).or.v[2]);\n\n      (this || _global).mat.translate((this || _global).globalData.compSize.w / 2, (this || _global).globalData.compSize.h / 2, 0);\n\n      (this || _global).mat.translate(0, 0, (this || _global).pe.v);\n\n      var hasMatrixChanged = !(this || _global)._prevMat.equals((this || _global).mat);\n\n      if ((hasMatrixChanged || (this || _global).pe._mdf) && (this || _global).comp.threeDElements) {\n        len = (this || _global).comp.threeDElements.length;\n        var comp;\n        var perspectiveStyle;\n        var containerStyle;\n\n        for (i = 0; i < len; i += 1) {\n          comp = (this || _global).comp.threeDElements[i];\n\n          if (comp.type === \"3d\") {\n            if (hasMatrixChanged) {\n              var matValue = (this || _global).mat.toCSS();\n\n              containerStyle = comp.container.style;\n              containerStyle.transform = matValue;\n              containerStyle.webkitTransform = matValue;\n            }\n\n            if ((this || _global).pe._mdf) {\n              perspectiveStyle = comp.perspectiveElem.style;\n              perspectiveStyle.perspective = (this || _global).pe.v + \"px\";\n              perspectiveStyle.webkitPerspective = (this || _global).pe.v + \"px\";\n            }\n          }\n        }\n\n        (this || _global).mat.clone((this || _global)._prevMat);\n      }\n    }\n\n    (this || _global)._isFirstFrame = false;\n  };\n\n  HCameraElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  HCameraElement.prototype.destroy = function () {};\n\n  HCameraElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  function HEffects() {}\n\n  HEffects.prototype.renderFrame = function () {};\n  /* global createTag, AnimationItem */\n\n  /* exported animationManager */\n\n\n  var animationManager = function () {\n    var moduleOb = {};\n    var registeredAnimations = [];\n    var initTime = 0;\n    var len = 0;\n    var playingAnimationsNum = 0;\n    var _stopped = true;\n    var _isFrozen = false;\n\n    function removeElement(ev) {\n      var i = 0;\n      var animItem = ev.target;\n\n      while (i < len) {\n        if (registeredAnimations[i].animation === animItem) {\n          registeredAnimations.splice(i, 1);\n          i -= 1;\n          len -= 1;\n\n          if (!animItem.isPaused) {\n            subtractPlayingCount();\n          }\n        }\n\n        i += 1;\n      }\n    }\n\n    function registerAnimation(element, animationData) {\n      if (!element) {\n        return null;\n      }\n\n      var i = 0;\n\n      while (i < len) {\n        if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n          return registeredAnimations[i].animation;\n        }\n\n        i += 1;\n      }\n\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, element);\n      animItem.setData(element, animationData);\n      return animItem;\n    }\n\n    function getRegisteredAnimations() {\n      var i;\n      var lenAnims = registeredAnimations.length;\n      var animations = [];\n\n      for (i = 0; i < lenAnims; i += 1) {\n        animations.push(registeredAnimations[i].animation);\n      }\n\n      return animations;\n    }\n\n    function addPlayingCount() {\n      playingAnimationsNum += 1;\n      activate();\n    }\n\n    function subtractPlayingCount() {\n      playingAnimationsNum -= 1;\n    }\n\n    function setupAnimation(animItem, element) {\n      animItem.addEventListener(\"destroy\", removeElement);\n      animItem.addEventListener(\"_active\", addPlayingCount);\n      animItem.addEventListener(\"_idle\", subtractPlayingCount);\n      registeredAnimations.push({\n        elem: element,\n        animation: animItem\n      });\n      len += 1;\n    }\n\n    function loadAnimation(params) {\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, null);\n      animItem.setParams(params);\n      return animItem;\n    }\n\n    function setSpeed(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setSpeed(val, animation);\n      }\n    }\n\n    function setDirection(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setDirection(val, animation);\n      }\n    }\n\n    function play(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.play(animation);\n      }\n    }\n\n    function resume(nowTime) {\n      var elapsedTime = nowTime - initTime;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.advanceTime(elapsedTime);\n      }\n\n      initTime = nowTime;\n\n      if (playingAnimationsNum && !_isFrozen) {\n        window.requestAnimationFrame(resume);\n      } else {\n        _stopped = true;\n      }\n    }\n\n    function first(nowTime) {\n      initTime = nowTime;\n      window.requestAnimationFrame(resume);\n    }\n\n    function pause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.pause(animation);\n      }\n    }\n\n    function goToAndStop(value, isFrame, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n      }\n    }\n\n    function stop(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.stop(animation);\n      }\n    }\n\n    function togglePause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.togglePause(animation);\n      }\n    }\n\n    function destroy(animation) {\n      var i;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        registeredAnimations[i].animation.destroy(animation);\n      }\n    }\n\n    function searchAnimations(animationData, standalone, renderer) {\n      var animElements = [].concat([].slice.call(document.getElementsByClassName(\"lottie\")), [].slice.call(document.getElementsByClassName(\"bodymovin\")));\n      var i;\n      var lenAnims = animElements.length;\n\n      for (i = 0; i < lenAnims; i += 1) {\n        if (renderer) {\n          animElements[i].setAttribute(\"data-bm-type\", renderer);\n        }\n\n        registerAnimation(animElements[i], animationData);\n      }\n\n      if (standalone && lenAnims === 0) {\n        if (!renderer) {\n          renderer = \"svg\";\n        }\n\n        var body = document.getElementsByTagName(\"body\")[0];\n        body.innerText = \"\";\n        var div = createTag(\"div\");\n        div.style.width = \"100%\";\n        div.style.height = \"100%\";\n        div.setAttribute(\"data-bm-type\", renderer);\n        body.appendChild(div);\n        registerAnimation(div, animationData);\n      }\n    }\n\n    function resize() {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.resize();\n      }\n    }\n\n    function activate() {\n      if (!_isFrozen && playingAnimationsNum) {\n        if (_stopped) {\n          window.requestAnimationFrame(first);\n          _stopped = false;\n        }\n      }\n    }\n\n    function freeze() {\n      _isFrozen = true;\n    }\n\n    function unfreeze() {\n      _isFrozen = false;\n      activate();\n    }\n\n    function setVolume(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setVolume(val, animation);\n      }\n    }\n\n    function mute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.mute(animation);\n      }\n    }\n\n    function unmute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.unmute(animation);\n      }\n    }\n\n    moduleOb.registerAnimation = registerAnimation;\n    moduleOb.loadAnimation = loadAnimation;\n    moduleOb.setSpeed = setSpeed;\n    moduleOb.setDirection = setDirection;\n    moduleOb.play = play;\n    moduleOb.pause = pause;\n    moduleOb.stop = stop;\n    moduleOb.togglePause = togglePause;\n    moduleOb.searchAnimations = searchAnimations;\n    moduleOb.resize = resize; // moduleOb.start = start;\n\n    moduleOb.goToAndStop = goToAndStop;\n    moduleOb.destroy = destroy;\n    moduleOb.freeze = freeze;\n    moduleOb.unfreeze = unfreeze;\n    moduleOb.setVolume = setVolume;\n    moduleOb.mute = mute;\n    moduleOb.unmute = unmute;\n    moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n    return moduleOb;\n  }();\n  /* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\n  CanvasRenderer, SVGRenderer, HybridRenderer, assetLoader, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\n  BMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\n  BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\n\n\n  var AnimationItem = function () {\n    (this || _global)._cbs = [];\n    (this || _global).name = \"\";\n    (this || _global).path = \"\";\n    (this || _global).isLoaded = false;\n    (this || _global).currentFrame = 0;\n    (this || _global).currentRawFrame = 0;\n    (this || _global).firstFrame = 0;\n    (this || _global).totalFrames = 0;\n    (this || _global).frameRate = 0;\n    (this || _global).frameMult = 0;\n    (this || _global).playSpeed = 1;\n    (this || _global).playDirection = 1;\n    (this || _global).playCount = 0;\n    (this || _global).animationData = {};\n    (this || _global).assets = [];\n    (this || _global).isPaused = true;\n    (this || _global).autoplay = false;\n    (this || _global).loop = true;\n    (this || _global).renderer = null;\n    (this || _global).animationID = createElementID();\n    (this || _global).assetsPath = \"\";\n    (this || _global).timeCompleted = 0;\n    (this || _global).segmentPos = 0;\n    (this || _global).isSubframeEnabled = subframeEnabled;\n    (this || _global).segments = [];\n    (this || _global)._idle = true;\n    (this || _global)._completedLoop = false;\n    (this || _global).projectInterface = ProjectInterface();\n    (this || _global).imagePreloader = new ImagePreloader();\n    (this || _global).audioController = audioControllerFactory();\n    (this || _global).markers = [];\n  };\n\n  extendPrototype([BaseEvent], AnimationItem);\n\n  AnimationItem.prototype.setParams = function (params) {\n    if (params.wrapper || params.container) {\n      (this || _global).wrapper = params.wrapper || params.container;\n    }\n\n    var animType = \"svg\";\n\n    if (params.animType) {\n      animType = params.animType;\n    } else if (params.renderer) {\n      animType = params.renderer;\n    }\n\n    switch (animType) {\n      case \"canvas\":\n        (this || _global).renderer = new CanvasRenderer(this || _global, params.rendererSettings);\n        break;\n\n      case \"svg\":\n        (this || _global).renderer = new SVGRenderer(this || _global, params.rendererSettings);\n        break;\n\n      default:\n        (this || _global).renderer = new HybridRenderer(this || _global, params.rendererSettings);\n        break;\n    }\n\n    (this || _global).imagePreloader.setCacheType(animType, (this || _global).renderer.globalData.defs);\n\n    (this || _global).renderer.setProjectInterface((this || _global).projectInterface);\n\n    (this || _global).animType = animType;\n\n    if (params.loop === \"\" || params.loop === null || params.loop === undefined || params.loop === true) {\n      (this || _global).loop = true;\n    } else if (params.loop === false) {\n      (this || _global).loop = false;\n    } else {\n      (this || _global).loop = parseInt(params.loop, 10);\n    }\n\n    (this || _global).autoplay = \"autoplay\" in params ? params.autoplay : true;\n    (this || _global).name = params.name ? params.name : \"\";\n    (this || _global).autoloadSegments = Object.prototype.hasOwnProperty.call(params, \"autoloadSegments\") ? params.autoloadSegments : true;\n    (this || _global).assetsPath = params.assetsPath;\n    (this || _global).initialSegment = params.initialSegment;\n\n    if (params.audioFactory) {\n      (this || _global).audioController.setAudioFactory(params.audioFactory);\n    }\n\n    if (params.animationData) {\n      this.configAnimation(params.animationData);\n    } else if (params.path) {\n      if (params.path.lastIndexOf(\"\\\\\") !== -1) {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"\\\\\") + 1);\n      } else {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"/\") + 1);\n      }\n\n      (this || _global).fileName = params.path.substr(params.path.lastIndexOf(\"/\") + 1);\n      (this || _global).fileName = (this || _global).fileName.substr(0, (this || _global).fileName.lastIndexOf(\".json\"));\n      assetLoader.load(params.path, (this || _global).configAnimation.bind(this || _global), function () {\n        this.trigger(\"data_failed\");\n      }.bind(this || _global));\n    }\n  };\n\n  AnimationItem.prototype.setData = function (wrapper, animationData) {\n    if (animationData) {\n      if (typeof animationData !== \"object\") {\n        animationData = JSON.parse(animationData);\n      }\n    }\n\n    var params = {\n      wrapper: wrapper,\n      animationData: animationData\n    };\n    var wrapperAttributes = wrapper.attributes;\n    params.path = wrapperAttributes.getNamedItem(\"data-animation-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-animation-path\").value : wrapperAttributes.getNamedItem(\"data-bm-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-path\").value : wrapperAttributes.getNamedItem(\"bm-path\") ? wrapperAttributes.getNamedItem(\"bm-path\").value : \"\";\n    params.animType = wrapperAttributes.getNamedItem(\"data-anim-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-type\").value : wrapperAttributes.getNamedItem(\"data-bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-type\").value : wrapperAttributes.getNamedItem(\"bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"bm-type\").value : wrapperAttributes.getNamedItem(\"data-bm-renderer\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-renderer\").value : wrapperAttributes.getNamedItem(\"bm-renderer\") ? wrapperAttributes.getNamedItem(\"bm-renderer\").value : \"canvas\";\n    var loop = wrapperAttributes.getNamedItem(\"data-anim-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-loop\").value : wrapperAttributes.getNamedItem(\"data-bm-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-loop\").value : wrapperAttributes.getNamedItem(\"bm-loop\") ? wrapperAttributes.getNamedItem(\"bm-loop\").value : \"\";\n\n    if (loop === \"false\") {\n      params.loop = false;\n    } else if (loop === \"true\") {\n      params.loop = true;\n    } else if (loop !== \"\") {\n      params.loop = parseInt(loop, 10);\n    }\n\n    var autoplay = wrapperAttributes.getNamedItem(\"data-anim-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-autoplay\").value : wrapperAttributes.getNamedItem(\"data-bm-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-autoplay\").value : wrapperAttributes.getNamedItem(\"bm-autoplay\") ? wrapperAttributes.getNamedItem(\"bm-autoplay\").value : true;\n    params.autoplay = autoplay !== \"false\";\n    params.name = wrapperAttributes.getNamedItem(\"data-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-name\").value : wrapperAttributes.getNamedItem(\"data-bm-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-name\").value : wrapperAttributes.getNamedItem(\"bm-name\") ? wrapperAttributes.getNamedItem(\"bm-name\").value : \"\";\n    var prerender = wrapperAttributes.getNamedItem(\"data-anim-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-prerender\").value : wrapperAttributes.getNamedItem(\"data-bm-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-prerender\").value : wrapperAttributes.getNamedItem(\"bm-prerender\") ? wrapperAttributes.getNamedItem(\"bm-prerender\").value : \"\";\n\n    if (prerender === \"false\") {\n      params.prerender = false;\n    }\n\n    this.setParams(params);\n  };\n\n  AnimationItem.prototype.includeLayers = function (data) {\n    if (data.op > (this || _global).animationData.op) {\n      (this || _global).animationData.op = data.op;\n      (this || _global).totalFrames = Math.floor(data.op - (this || _global).animationData.ip);\n    }\n\n    var layers = (this || _global).animationData.layers;\n    var i;\n    var len = layers.length;\n    var newLayers = data.layers;\n    var j;\n    var jLen = newLayers.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      i = 0;\n\n      while (i < len) {\n        if (layers[i].id === newLayers[j].id) {\n          layers[i] = newLayers[j];\n          break;\n        }\n\n        i += 1;\n      }\n    }\n\n    if (data.chars || data.fonts) {\n      (this || _global).renderer.globalData.fontManager.addChars(data.chars);\n\n      (this || _global).renderer.globalData.fontManager.addFonts(data.fonts, (this || _global).renderer.globalData.defs);\n    }\n\n    if (data.assets) {\n      len = data.assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).animationData.assets.push(data.assets[i]);\n      }\n    }\n\n    (this || _global).animationData.__complete = false;\n    dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n    (this || _global).renderer.includeLayers(data.layers);\n\n    if (expressionsPlugin) {\n      expressionsPlugin.initExpressions(this || _global);\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.loadNextSegment = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments || segments.length === 0 || !(this || _global).autoloadSegments) {\n      this.trigger(\"data_ready\");\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      return;\n    }\n\n    var segment = segments.shift();\n    (this || _global).timeCompleted = segment.time * (this || _global).frameRate;\n    var segmentPath = (this || _global).path + (this || _global).fileName + \"_\" + (this || _global).segmentPos + \".json\";\n    (this || _global).segmentPos += 1;\n    assetLoader.load(segmentPath, (this || _global).includeLayers.bind(this || _global), function () {\n      this.trigger(\"data_failed\");\n    }.bind(this || _global));\n  };\n\n  AnimationItem.prototype.loadSegments = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments) {\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.imagesLoaded = function () {\n    this.trigger(\"loaded_images\");\n    this.checkLoaded();\n  };\n\n  AnimationItem.prototype.preloadImages = function () {\n    (this || _global).imagePreloader.setAssetsPath((this || _global).assetsPath);\n\n    (this || _global).imagePreloader.setPath((this || _global).path);\n\n    (this || _global).imagePreloader.loadAssets((this || _global).animationData.assets, (this || _global).imagesLoaded.bind(this || _global));\n  };\n\n  AnimationItem.prototype.configAnimation = function (animData) {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).animationData = animData;\n\n      if ((this || _global).initialSegment) {\n        (this || _global).totalFrames = Math.floor((this || _global).initialSegment[1] - (this || _global).initialSegment[0]);\n        (this || _global).firstFrame = Math.round((this || _global).initialSegment[0]);\n      } else {\n        (this || _global).totalFrames = Math.floor((this || _global).animationData.op - (this || _global).animationData.ip);\n        (this || _global).firstFrame = Math.round((this || _global).animationData.ip);\n      }\n\n      (this || _global).renderer.configAnimation(animData);\n\n      if (!animData.assets) {\n        animData.assets = [];\n      }\n\n      (this || _global).assets = (this || _global).animationData.assets;\n      (this || _global).frameRate = (this || _global).animationData.fr;\n      (this || _global).frameMult = (this || _global).animationData.fr / 1000;\n\n      (this || _global).renderer.searchExtraCompositions(animData.assets);\n\n      (this || _global).markers = markerParser(animData.markers || []);\n      this.trigger(\"config_ready\");\n      this.preloadImages();\n      this.loadSegments();\n      this.updaFrameModifier();\n      this.waitForFontsLoaded();\n\n      if ((this || _global).isPaused) {\n        (this || _global).audioController.pause();\n      }\n    } catch (error) {\n      this.triggerConfigError(error);\n    }\n  };\n\n  AnimationItem.prototype.waitForFontsLoaded = function () {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    if ((this || _global).renderer.globalData.fontManager.isLoaded) {\n      this.checkLoaded();\n    } else {\n      setTimeout((this || _global).waitForFontsLoaded.bind(this || _global), 20);\n    }\n  };\n\n  AnimationItem.prototype.checkLoaded = function () {\n    if (!(this || _global).isLoaded && (this || _global).renderer.globalData.fontManager.isLoaded && ((this || _global).imagePreloader.loadedImages() || (this || _global).renderer.rendererType !== \"canvas\") && (this || _global).imagePreloader.loadedFootages()) {\n      (this || _global).isLoaded = true;\n      dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n      if (expressionsPlugin) {\n        expressionsPlugin.initExpressions(this || _global);\n      }\n\n      (this || _global).renderer.initItems();\n\n      setTimeout(function () {\n        this.trigger(\"DOMLoaded\");\n      }.bind(this || _global), 0);\n      this.gotoFrame();\n\n      if ((this || _global).autoplay) {\n        this.play();\n      }\n    }\n  };\n\n  AnimationItem.prototype.resize = function () {\n    (this || _global).renderer.updateContainerSize();\n  };\n\n  AnimationItem.prototype.setSubframe = function (flag) {\n    (this || _global).isSubframeEnabled = !!flag;\n  };\n\n  AnimationItem.prototype.gotoFrame = function () {\n    (this || _global).currentFrame = (this || _global).isSubframeEnabled ? (this || _global).currentRawFrame : ~~(this || _global).currentRawFrame; // eslint-disable-line no-bitwise\n\n    if ((this || _global).timeCompleted !== (this || _global).totalFrames && (this || _global).currentFrame > (this || _global).timeCompleted) {\n      (this || _global).currentFrame = (this || _global).timeCompleted;\n    }\n\n    this.trigger(\"enterFrame\");\n    this.renderFrame();\n  };\n\n  AnimationItem.prototype.renderFrame = function () {\n    if ((this || _global).isLoaded === false || !(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).renderer.renderFrame((this || _global).currentFrame + (this || _global).firstFrame);\n    } catch (error) {\n      this.triggerRenderFrameError(error);\n    }\n  };\n\n  AnimationItem.prototype.play = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      (this || _global).isPaused = false;\n\n      (this || _global).audioController.resume();\n\n      if ((this || _global)._idle) {\n        (this || _global)._idle = false;\n        this.trigger(\"_active\");\n      }\n    }\n  };\n\n  AnimationItem.prototype.pause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === false) {\n      (this || _global).isPaused = true;\n      (this || _global)._idle = true;\n      this.trigger(\"_idle\");\n\n      (this || _global).audioController.pause();\n    }\n  };\n\n  AnimationItem.prototype.togglePause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n\n  AnimationItem.prototype.stop = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    this.pause();\n    (this || _global).playCount = 0;\n    (this || _global)._completedLoop = false;\n    this.setCurrentRawFrameValue(0);\n  };\n\n  AnimationItem.prototype.getMarkerData = function (markerName) {\n    var marker;\n\n    for (var i = 0; i < (this || _global).markers.length; i += 1) {\n      marker = (this || _global).markers[i];\n\n      if (marker.payload && marker.payload.name === markerName) {\n        return marker;\n      }\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        this.goToAndStop(marker.time, true);\n      }\n    } else if (isFrame) {\n      this.setCurrentRawFrameValue(value);\n    } else {\n      this.setCurrentRawFrameValue(value * (this || _global).frameModifier);\n    }\n\n    this.pause();\n  };\n\n  AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        if (!marker.duration) {\n          this.goToAndStop(marker.time, true);\n        } else {\n          this.playSegments([marker.time, marker.time + marker.duration], true);\n        }\n      }\n    } else {\n      this.goToAndStop(numValue, isFrame, name);\n    }\n\n    this.play();\n  };\n\n  AnimationItem.prototype.advanceTime = function (value) {\n    if ((this || _global).isPaused === true || (this || _global).isLoaded === false) {\n      return;\n    }\n\n    var nextValue = (this || _global).currentRawFrame + value * (this || _global).frameModifier;\n    var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n    // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n    if (nextValue >= (this || _global).totalFrames - 1 && (this || _global).frameModifier > 0) {\n      if (!(this || _global).loop || (this || _global).playCount === (this || _global).loop) {\n        if (!this.checkSegments(nextValue > (this || _global).totalFrames ? nextValue % (this || _global).totalFrames : 0)) {\n          _isComplete = true;\n          nextValue = (this || _global).totalFrames - 1;\n        }\n      } else if (nextValue >= (this || _global).totalFrames) {\n        (this || _global).playCount += 1;\n\n        if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n          this.setCurrentRawFrameValue(nextValue % (this || _global).totalFrames);\n          (this || _global)._completedLoop = true;\n          this.trigger(\"loopComplete\");\n        }\n      } else {\n        this.setCurrentRawFrameValue(nextValue);\n      }\n    } else if (nextValue < 0) {\n      if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n        if ((this || _global).loop && !((this || _global).playCount-- <= 0 && (this || _global).loop !== true)) {\n          // eslint-disable-line no-plusplus\n          this.setCurrentRawFrameValue((this || _global).totalFrames + nextValue % (this || _global).totalFrames);\n\n          if (!(this || _global)._completedLoop) {\n            (this || _global)._completedLoop = true;\n          } else {\n            this.trigger(\"loopComplete\");\n          }\n        } else {\n          _isComplete = true;\n          nextValue = 0;\n        }\n      }\n    } else {\n      this.setCurrentRawFrameValue(nextValue);\n    }\n\n    if (_isComplete) {\n      this.setCurrentRawFrameValue(nextValue);\n      this.pause();\n      this.trigger(\"complete\");\n    }\n  };\n\n  AnimationItem.prototype.adjustSegment = function (arr, offset) {\n    (this || _global).playCount = 0;\n\n    if (arr[1] < arr[0]) {\n      if ((this || _global).frameModifier > 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(-1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[0] - arr[1];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[1];\n      this.setCurrentRawFrameValue((this || _global).totalFrames - 0.001 - offset);\n    } else if (arr[1] > arr[0]) {\n      if ((this || _global).frameModifier < 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[1] - arr[0];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[0];\n      this.setCurrentRawFrameValue(0.001 + offset);\n    }\n\n    this.trigger(\"segmentStart\");\n  };\n\n  AnimationItem.prototype.setSegment = function (init, end) {\n    var pendingFrame = -1;\n\n    if ((this || _global).isPaused) {\n      if ((this || _global).currentRawFrame + (this || _global).firstFrame < init) {\n        pendingFrame = init;\n      } else if ((this || _global).currentRawFrame + (this || _global).firstFrame > end) {\n        pendingFrame = end - init;\n      }\n    }\n\n    (this || _global).firstFrame = init;\n    (this || _global).totalFrames = end - init;\n    (this || _global).timeCompleted = (this || _global).totalFrames;\n\n    if (pendingFrame !== -1) {\n      this.goToAndStop(pendingFrame, true);\n    }\n  };\n\n  AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n    if (forceFlag) {\n      (this || _global).segments.length = 0;\n    }\n\n    if (typeof arr[0] === \"object\") {\n      var i;\n      var len = arr.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).segments.push(arr[i]);\n      }\n    } else {\n      (this || _global).segments.push(arr);\n    }\n\n    if ((this || _global).segments.length && forceFlag) {\n      this.adjustSegment((this || _global).segments.shift(), 0);\n    }\n\n    if ((this || _global).isPaused) {\n      this.play();\n    }\n  };\n\n  AnimationItem.prototype.resetSegments = function (forceFlag) {\n    (this || _global).segments.length = 0;\n\n    (this || _global).segments.push([(this || _global).animationData.ip, (this || _global).animationData.op]); // this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\n\n\n    if (forceFlag) {\n      this.checkSegments(0);\n    }\n  };\n\n  AnimationItem.prototype.checkSegments = function (offset) {\n    if ((this || _global).segments.length) {\n      this.adjustSegment((this || _global).segments.shift(), offset);\n      return true;\n    }\n\n    return false;\n  };\n\n  AnimationItem.prototype.destroy = function (name) {\n    if (name && (this || _global).name !== name || !(this || _global).renderer) {\n      return;\n    }\n\n    (this || _global).renderer.destroy();\n\n    (this || _global).imagePreloader.destroy();\n\n    this.trigger(\"destroy\");\n    (this || _global)._cbs = null;\n    (this || _global).onEnterFrame = null;\n    (this || _global).onLoopComplete = null;\n    (this || _global).onComplete = null;\n    (this || _global).onSegmentStart = null;\n    (this || _global).onDestroy = null;\n    (this || _global).renderer = null;\n    (this || _global).renderer = null;\n    (this || _global).imagePreloader = null;\n    (this || _global).projectInterface = null;\n  };\n\n  AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n    (this || _global).currentRawFrame = value;\n    this.gotoFrame();\n  };\n\n  AnimationItem.prototype.setSpeed = function (val) {\n    (this || _global).playSpeed = val;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setDirection = function (val) {\n    (this || _global).playDirection = val < 0 ? -1 : 1;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setVolume = function (val, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.setVolume(val);\n  };\n\n  AnimationItem.prototype.getVolume = function () {\n    return (this || _global).audioController.getVolume();\n  };\n\n  AnimationItem.prototype.mute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.mute();\n  };\n\n  AnimationItem.prototype.unmute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.unmute();\n  };\n\n  AnimationItem.prototype.updaFrameModifier = function () {\n    (this || _global).frameModifier = (this || _global).frameMult * (this || _global).playSpeed * (this || _global).playDirection;\n\n    (this || _global).audioController.setRate((this || _global).playSpeed * (this || _global).playDirection);\n  };\n\n  AnimationItem.prototype.getPath = function () {\n    return (this || _global).path;\n  };\n\n  AnimationItem.prototype.getAssetsPath = function (assetData) {\n    var path = \"\";\n\n    if (assetData.e) {\n      path = assetData.p;\n    } else if ((this || _global).assetsPath) {\n      var imagePath = assetData.p;\n\n      if (imagePath.indexOf(\"images/\") !== -1) {\n        imagePath = imagePath.split(\"/\")[1];\n      }\n\n      path = (this || _global).assetsPath + imagePath;\n    } else {\n      path = (this || _global).path;\n      path += assetData.u ? assetData.u : \"\";\n      path += assetData.p;\n    }\n\n    return path;\n  };\n\n  AnimationItem.prototype.getAssetData = function (id) {\n    var i = 0;\n    var len = (this || _global).assets.length;\n\n    while (i < len) {\n      if (id === (this || _global).assets[i].id) {\n        return (this || _global).assets[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.hide = function () {\n    (this || _global).renderer.hide();\n  };\n\n  AnimationItem.prototype.show = function () {\n    (this || _global).renderer.show();\n  };\n\n  AnimationItem.prototype.getDuration = function (isFrame) {\n    return isFrame ? (this || _global).totalFrames : (this || _global).totalFrames / (this || _global).frameRate;\n  };\n\n  AnimationItem.prototype.trigger = function (name) {\n    if ((this || _global)._cbs && (this || _global)._cbs[name]) {\n      switch (name) {\n        case \"enterFrame\":\n          this.triggerEvent(name, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameModifier));\n          break;\n\n        case \"loopComplete\":\n          this.triggerEvent(name, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n          break;\n\n        case \"complete\":\n          this.triggerEvent(name, new BMCompleteEvent(name, (this || _global).frameMult));\n          break;\n\n        case \"segmentStart\":\n          this.triggerEvent(name, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n          break;\n\n        case \"destroy\":\n          this.triggerEvent(name, new BMDestroyEvent(name, this || _global));\n          break;\n\n        default:\n          this.triggerEvent(name);\n      }\n    }\n\n    if (name === \"enterFrame\" && (this || _global).onEnterFrame) {\n      (this || _global).onEnterFrame.call(this || _global, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameMult));\n    }\n\n    if (name === \"loopComplete\" && (this || _global).onLoopComplete) {\n      (this || _global).onLoopComplete.call(this || _global, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n    }\n\n    if (name === \"complete\" && (this || _global).onComplete) {\n      (this || _global).onComplete.call(this || _global, new BMCompleteEvent(name, (this || _global).frameMult));\n    }\n\n    if (name === \"segmentStart\" && (this || _global).onSegmentStart) {\n      (this || _global).onSegmentStart.call(this || _global, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n    }\n\n    if (name === \"destroy\" && (this || _global).onDestroy) {\n      (this || _global).onDestroy.call(this || _global, new BMDestroyEvent(name, this || _global));\n    }\n  };\n\n  AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n    var error = new BMRenderFrameErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n\n  AnimationItem.prototype.triggerConfigError = function (nativeError) {\n    var error = new BMConfigErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n  /* global CompExpressionInterface, expressionsPlugin: writable */\n\n  /* exported expressionsPlugin */\n\n\n  var Expressions = function () {\n    var ob = {};\n    ob.initExpressions = initExpressions;\n\n    function initExpressions(animation) {\n      var stackCount = 0;\n      var registers = [];\n\n      function pushExpression() {\n        stackCount += 1;\n      }\n\n      function popExpression() {\n        stackCount -= 1;\n\n        if (stackCount === 0) {\n          releaseInstances();\n        }\n      }\n\n      function registerExpressionProperty(expression) {\n        if (registers.indexOf(expression) === -1) {\n          registers.push(expression);\n        }\n      }\n\n      function releaseInstances() {\n        var i;\n        var len = registers.length;\n\n        for (i = 0; i < len; i += 1) {\n          registers[i].release();\n        }\n\n        registers.length = 0;\n      }\n\n      animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n      animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n      animation.renderer.globalData.pushExpression = pushExpression;\n      animation.renderer.globalData.popExpression = popExpression;\n      animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n    }\n\n    return ob;\n  }();\n\n  expressionsPlugin = Expressions;\n  /* eslint-disable camelcase, no-unused-vars */\n\n  /* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\n\n  var ExpressionManager = function () {\n    'use strict';\n\n    var ob = {};\n    var Math = BMMath;\n    var window = null;\n    var document = null;\n\n    function $bm_isInstanceOfArray(arr) {\n      return arr.constructor === Array || arr.constructor === Float32Array;\n    }\n\n    function isNumerable(tOfV, v) {\n      return tOfV === \"number\" || tOfV === \"boolean\" || tOfV === \"string\" || v instanceof Number;\n    }\n\n    function $bm_neg(a) {\n      var tOfA = typeof a;\n\n      if (tOfA === \"number\" || tOfA === \"boolean\" || a instanceof Number) {\n        return -a;\n      }\n\n      if ($bm_isInstanceOfArray(a)) {\n        var i;\n        var lenA = a.length;\n        var retArr = [];\n\n        for (i = 0; i < lenA; i += 1) {\n          retArr[i] = -a[i];\n        }\n\n        return retArr;\n      }\n\n      if (a.propType) {\n        return a.v;\n      }\n\n      return -a;\n    }\n\n    var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, \"easeIn\").get;\n    var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, \"easeOut\").get;\n    var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, \"easeInOut\").get;\n\n    function sum(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (tOfA === \"string\" || tOfB === \"string\") {\n        return a + b;\n      }\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a + b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] += b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a + b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] + b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    var add = sum;\n\n    function sub(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        if (tOfA === \"string\") {\n          a = parseInt(a, 10);\n        }\n\n        if (tOfB === \"string\") {\n          b = parseInt(b, 10);\n        }\n\n        return a - b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] -= b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a - b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] - b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    function mul(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a * b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] * b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a * b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function div(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a / b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] / b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a / b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function mod(a, b) {\n      if (typeof a === \"string\") {\n        a = parseInt(a, 10);\n      }\n\n      if (typeof b === \"string\") {\n        b = parseInt(b, 10);\n      }\n\n      return a % b;\n    }\n\n    var $bm_sum = sum;\n    var $bm_sub = sub;\n    var $bm_mul = mul;\n    var $bm_div = div;\n    var $bm_mod = mod;\n\n    function clamp(num, min, max) {\n      if (min > max) {\n        var mm = max;\n        max = min;\n        min = mm;\n      }\n\n      return Math.min(Math.max(num, min), max);\n    }\n\n    function radiansToDegrees(val) {\n      return val / degToRads;\n    }\n\n    var radians_to_degrees = radiansToDegrees;\n\n    function degreesToRadians(val) {\n      return val * degToRads;\n    }\n\n    var degrees_to_radians = radiansToDegrees;\n    var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n    function length(arr1, arr2) {\n      if (typeof arr1 === \"number\" || arr1 instanceof Number) {\n        arr2 = arr2 || 0;\n        return Math.abs(arr1 - arr2);\n      }\n\n      if (!arr2) {\n        arr2 = helperLengthArray;\n      }\n\n      var i;\n      var len = Math.min(arr1.length, arr2.length);\n      var addedLength = 0;\n\n      for (i = 0; i < len; i += 1) {\n        addedLength += Math.pow(arr2[i] - arr1[i], 2);\n      }\n\n      return Math.sqrt(addedLength);\n    }\n\n    function normalize(vec) {\n      return div(vec, length(vec));\n    }\n\n    function rgbToHsl(val) {\n      var r = val[0];\n      var g = val[1];\n      var b = val[2];\n      var max = Math.max(r, g, b);\n      var min = Math.min(r, g, b);\n      var h;\n      var s;\n      var l = (max + min) / 2;\n\n      if (max === min) {\n        h = 0; // achromatic\n\n        s = 0; // achromatic\n      } else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n        switch (max) {\n          case r:\n            h = (g - b) / d + (g < b ? 6 : 0);\n            break;\n\n          case g:\n            h = (b - r) / d + 2;\n            break;\n\n          case b:\n            h = (r - g) / d + 4;\n            break;\n\n          default:\n            break;\n        }\n\n        h /= 6;\n      }\n\n      return [h, s, l, val[3]];\n    }\n\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n\n    function hslToRgb(val) {\n      var h = val[0];\n      var s = val[1];\n      var l = val[2];\n      var r;\n      var g;\n      var b;\n\n      if (s === 0) {\n        r = l; // achromatic\n\n        b = l; // achromatic\n\n        g = l; // achromatic\n      } else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n      }\n\n      return [r, g, b, val[3]];\n    }\n\n    function linear(t, tMin, tMax, value1, value2) {\n      if (value1 === undefined || value2 === undefined) {\n        value1 = tMin;\n        value2 = tMax;\n        tMin = 0;\n        tMax = 1;\n      }\n\n      if (tMax < tMin) {\n        var _tMin = tMax;\n        tMax = tMin;\n        tMin = _tMin;\n      }\n\n      if (t <= tMin) {\n        return value1;\n      }\n\n      if (t >= tMax) {\n        return value2;\n      }\n\n      var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n      if (!value1.length) {\n        return value1 + (value2 - value1) * perc;\n      }\n\n      var i;\n      var len = value1.length;\n      var arr = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n      }\n\n      return arr;\n    }\n\n    function random(min, max) {\n      if (max === undefined) {\n        if (min === undefined) {\n          min = 0;\n          max = 1;\n        } else {\n          max = min;\n          min = undefined;\n        }\n      }\n\n      if (max.length) {\n        var i;\n        var len = max.length;\n\n        if (!min) {\n          min = createTypedArray(\"float32\", len);\n        }\n\n        var arr = createTypedArray(\"float32\", len);\n        var rnd = BMMath.random();\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = min[i] + rnd * (max[i] - min[i]);\n        }\n\n        return arr;\n      }\n\n      if (min === undefined) {\n        min = 0;\n      }\n\n      var rndm = BMMath.random();\n      return min + rndm * (max - min);\n    }\n\n    function createPath(points, inTangents, outTangents, closed) {\n      var i;\n      var len = points.length;\n      var path = shapePool.newElement();\n      path.setPathData(!!closed, len);\n      var arrPlaceholder = [0, 0];\n      var inVertexPoint;\n      var outVertexPoint;\n\n      for (i = 0; i < len; i += 1) {\n        inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n        outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n        path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n      }\n\n      return path;\n    }\n\n    function initiateExpression(elem, data, property) {\n      var val = data.x;\n      var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n      var _needsRandom = val.indexOf(\"random\") !== -1;\n\n      var elemType = elem.data.ty;\n      var transform;\n      var $bm_transform;\n      var content;\n      var effect;\n      var thisProperty = property;\n      thisProperty.valueAtTime = thisProperty.getValueAtTime;\n      Object.defineProperty(thisProperty, \"value\", {\n        get: function () {\n          return thisProperty.v;\n        }\n      });\n      elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n      elem.comp.displayStartTime = 0;\n      var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      var width = elem.data.sw ? elem.data.sw : 0;\n      var height = elem.data.sh ? elem.data.sh : 0;\n      var name = elem.data.nm;\n      var loopIn;\n      var loop_in;\n      var loopOut;\n      var loop_out;\n      var smooth;\n      var toWorld;\n      var fromWorld;\n      var fromComp;\n      var toComp;\n      var fromCompToSurface;\n      var position;\n      var rotation;\n      var anchorPoint;\n      var scale;\n      var thisLayer;\n      var thisComp;\n      var mask;\n      var valueAtTime;\n      var velocityAtTime;\n      var scoped_bm_rt;\n      var expression_function = eval(\"[function _expression_function(){\" + val + \";scoped_bm_rt=$bm_rt}]\")[0]; // eslint-disable-line no-eval\n\n      var numKeys = property.kf ? data.k.length : 0;\n      var active = !(this || _global).data || (this || _global).data.hd !== true;\n\n      var wiggle = function wiggle(freq, amp) {\n        var iWiggle;\n        var j;\n        var lenWiggle = (this || _global).pv.length ? (this || _global).pv.length : 1;\n        var addedAmps = createTypedArray(\"float32\", lenWiggle);\n        freq = 5;\n        var iterations = Math.floor(time * freq);\n        iWiggle = 0;\n        j = 0;\n\n        while (iWiggle < iterations) {\n          // var rnd = BMMath.random();\n          for (j = 0; j < lenWiggle; j += 1) {\n            addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n          }\n\n          iWiggle += 1;\n        } // var rnd2 = BMMath.random();\n\n\n        var periods = time * freq;\n        var perc = periods - Math.floor(periods);\n        var arr = createTypedArray(\"float32\", lenWiggle);\n\n        if (lenWiggle > 1) {\n          for (j = 0; j < lenWiggle; j += 1) {\n            arr[j] = (this || _global).pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n            // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n          }\n\n          return arr;\n        }\n\n        return (this || _global).pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n      }.bind(this || _global);\n\n      if (thisProperty.loopIn) {\n        loopIn = thisProperty.loopIn.bind(thisProperty);\n        loop_in = loopIn;\n      }\n\n      if (thisProperty.loopOut) {\n        loopOut = thisProperty.loopOut.bind(thisProperty);\n        loop_out = loopOut;\n      }\n\n      if (thisProperty.smooth) {\n        smooth = thisProperty.smooth.bind(thisProperty);\n      }\n\n      function loopInDuration(type, duration) {\n        return loopIn(type, duration, true);\n      }\n\n      function loopOutDuration(type, duration) {\n        return loopOut(type, duration, true);\n      }\n\n      if ((this || _global).getValueAtTime) {\n        valueAtTime = (this || _global).getValueAtTime.bind(this || _global);\n      }\n\n      if ((this || _global).getVelocityAtTime) {\n        velocityAtTime = (this || _global).getVelocityAtTime.bind(this || _global);\n      }\n\n      var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n      function lookAt(elem1, elem2) {\n        var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n        var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n        var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n        return [yaw, pitch, 0];\n      }\n\n      function easeOut(t, tMin, tMax, val1, val2) {\n        return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function easeIn(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n      }\n\n      function ease(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function applyEase(fn, t, tMin, tMax, val1, val2) {\n        if (val1 === undefined) {\n          val1 = tMin;\n          val2 = tMax;\n        } else {\n          t = (t - tMin) / (tMax - tMin);\n        }\n\n        if (t > 1) {\n          t = 1;\n        } else if (t < 0) {\n          t = 0;\n        }\n\n        var mult = fn(t);\n\n        if ($bm_isInstanceOfArray(val1)) {\n          var iKey;\n          var lenKey = val1.length;\n          var arr = createTypedArray(\"float32\", lenKey);\n\n          for (iKey = 0; iKey < lenKey; iKey += 1) {\n            arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n          }\n\n          return arr;\n        }\n\n        return (val2 - val1) * mult + val1;\n      }\n\n      function nearestKey(time) {\n        var iKey;\n        var lenKey = data.k.length;\n        var index;\n        var keyTime;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          index = 0;\n          keyTime = 0;\n        } else {\n          index = -1;\n          time *= elem.comp.globalData.frameRate;\n\n          if (time < data.k[0].t) {\n            index = 1;\n            keyTime = data.k[0].t;\n          } else {\n            for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n              if (time === data.k[iKey].t) {\n                index = iKey + 1;\n                keyTime = data.k[iKey].t;\n                break;\n              } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n                if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n                  index = iKey + 2;\n                  keyTime = data.k[iKey + 1].t;\n                } else {\n                  index = iKey + 1;\n                  keyTime = data.k[iKey].t;\n                }\n\n                break;\n              }\n            }\n\n            if (index === -1) {\n              index = iKey + 1;\n              keyTime = data.k[iKey].t;\n            }\n          }\n        }\n\n        var obKey = {};\n        obKey.index = index;\n        obKey.time = keyTime / elem.comp.globalData.frameRate;\n        return obKey;\n      }\n\n      function key(ind) {\n        var obKey;\n        var iKey;\n        var lenKey;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          throw new Error(\"The property has no keyframe at index \" + ind);\n        }\n\n        ind -= 1;\n        obKey = {\n          time: data.k[ind].t / elem.comp.globalData.frameRate,\n          value: []\n        };\n        var arr = Object.prototype.hasOwnProperty.call(data.k[ind], \"s\") ? data.k[ind].s : data.k[ind - 1].e;\n        lenKey = arr.length;\n\n        for (iKey = 0; iKey < lenKey; iKey += 1) {\n          obKey[iKey] = arr[iKey];\n          obKey.value[iKey] = arr[iKey];\n        }\n\n        return obKey;\n      }\n\n      function framesToTime(frames, fps) {\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return frames / fps;\n      }\n\n      function timeToFrames(t, fps) {\n        if (!t && t !== 0) {\n          t = time;\n        }\n\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return t * fps;\n      }\n\n      function seedRandom(seed) {\n        BMMath.seedrandom(randSeed + seed);\n      }\n\n      function sourceRectAtTime() {\n        return elem.sourceRectAtTime();\n      }\n\n      function substring(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substring(init);\n          }\n\n          return value.substring(init, end);\n        }\n\n        return \"\";\n      }\n\n      function substr(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substr(init);\n          }\n\n          return value.substr(init, end);\n        }\n\n        return \"\";\n      }\n\n      function posterizeTime(framesPerSecond) {\n        time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n        value = valueAtTime(time);\n      }\n\n      var time;\n      var velocity;\n      var value;\n      var text;\n      var textIndex;\n      var textTotal;\n      var selectorValue;\n      var index = elem.data.ind;\n      var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n      var parent;\n      var randSeed = Math.floor(Math.random() * 1000000);\n      var globalData = elem.globalData;\n\n      function executeExpression(_value) {\n        // globalData.pushExpression();\n        value = _value;\n\n        if (_needsRandom) {\n          seedRandom(randSeed);\n        }\n\n        if ((this || _global).frameExpressionId === elem.globalData.frameId && (this || _global).propType !== \"textSelector\") {\n          return value;\n        }\n\n        if ((this || _global).propType === \"textSelector\") {\n          textIndex = (this || _global).textIndex;\n          textTotal = (this || _global).textTotal;\n          selectorValue = (this || _global).selectorValue;\n        }\n\n        if (!thisLayer) {\n          text = elem.layerInterface.text;\n          thisLayer = elem.layerInterface;\n          thisComp = elem.comp.compInterface;\n          toWorld = thisLayer.toWorld.bind(thisLayer);\n          fromWorld = thisLayer.fromWorld.bind(thisLayer);\n          fromComp = thisLayer.fromComp.bind(thisLayer);\n          toComp = thisLayer.toComp.bind(thisLayer);\n          mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n          fromCompToSurface = fromComp;\n        }\n\n        if (!transform) {\n          transform = elem.layerInterface(\"ADBE Transform Group\");\n          $bm_transform = transform;\n\n          if (transform) {\n            anchorPoint = transform.anchorPoint;\n            /* position = transform.position;\r\n                      rotation = transform.rotation;\r\n                      scale = transform.scale; */\n          }\n        }\n\n        if (elemType === 4 && !content) {\n          content = thisLayer(\"ADBE Root Vectors Group\");\n        }\n\n        if (!effect) {\n          effect = thisLayer(4);\n        }\n\n        hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n        if (hasParent && !parent) {\n          parent = elem.hierarchy[0].layerInterface;\n        }\n\n        time = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n\n        if (needsVelocity) {\n          velocity = velocityAtTime(time);\n        }\n\n        expression_function();\n        (this || _global).frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n\n        if (scoped_bm_rt.propType === \"shape\") {\n          scoped_bm_rt = scoped_bm_rt.v;\n        } // globalData.popExpression();\n\n\n        return scoped_bm_rt;\n      }\n\n      return executeExpression;\n    }\n\n    ob.initiateExpression = initiateExpression;\n    return ob;\n  }();\n  /* global ExpressionManager, createTypedArray */\n\n  /* exported expressionHelpers */\n\n\n  var expressionHelpers = function () {\n    function searchExpressions(elem, data, prop) {\n      if (data.x) {\n        prop.k = true;\n        prop.x = true;\n        prop.initiateExpression = ExpressionManager.initiateExpression;\n        prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n      }\n    }\n\n    function getValueAtTime(frameNum) {\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastFrame) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastFrame < frameNum ? (this || _global)._cachingAtTime.lastIndex : 0;\n        (this || _global)._cachingAtTime.value = this.interpolateValue(frameNum, (this || _global)._cachingAtTime);\n        (this || _global)._cachingAtTime.lastFrame = frameNum;\n      }\n\n      return (this || _global)._cachingAtTime.value;\n    }\n\n    function getSpeedAtTime(frameNum) {\n      var delta = -0.01;\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var speed = 0;\n\n      if (v1.length) {\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          speed += Math.pow(v2[i] - v1[i], 2);\n        }\n\n        speed = Math.sqrt(speed) * 100;\n      } else {\n        speed = 0;\n      }\n\n      return speed;\n    }\n\n    function getVelocityAtTime(frameNum) {\n      if ((this || _global).vel !== undefined) {\n        return (this || _global).vel;\n      }\n\n      var delta = -0.001; // frameNum += this.elem.data.st;\n\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var velocity;\n\n      if (v1.length) {\n        velocity = createTypedArray(\"float32\", v1.length);\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          // removing frameRate\n          // if needed, don't add it here\n          // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n          velocity[i] = (v2[i] - v1[i]) / delta;\n        }\n      } else {\n        velocity = (v2 - v1) / delta;\n      }\n\n      return velocity;\n    }\n\n    function getStaticValueAtTime() {\n      return (this || _global).pv;\n    }\n\n    function setGroupProperty(propertyGroup) {\n      (this || _global).propertyGroup = propertyGroup;\n    }\n\n    return {\n      searchExpressions: searchExpressions,\n      getSpeedAtTime: getSpeedAtTime,\n      getVelocityAtTime: getVelocityAtTime,\n      getValueAtTime: getValueAtTime,\n      getStaticValueAtTime: getStaticValueAtTime,\n      setGroupProperty: setGroupProperty\n    };\n  }();\n  /* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\n  initialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\n\n\n  (function addPropertyDecorator() {\n    function loopOut(type, duration, durationFlag) {\n      if (!(this || _global).k || !(this || _global).keyframes) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n      if (currentFrame <= lastKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var firstKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, lastKeyFrame - (this || _global).elem.data.ip);\n        } else {\n          cycleDuration = Math.abs(lastKeyFrame - (this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        firstKeyFrame = lastKeyFrame - cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if (iterations % 2 !== 0) {\n          return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n\n        var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n          }\n\n          return ret;\n        }\n\n        return (endV - initV) * repeats + current;\n      } else if (type === \"continue\") {\n        var lastValue = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(lastValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / (this || _global).comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n          }\n\n          return ret;\n        }\n\n        return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n      }\n\n      return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function loopIn(type, duration, durationFlag) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var firstKeyFrame = keyframes[0].t;\n\n      if (currentFrame >= firstKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var lastKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        lastKeyFrame = keyframes[duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, (this || _global).elem.data.op - firstKeyFrame);\n        } else {\n          cycleDuration = Math.abs((this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        lastKeyFrame = firstKeyFrame + cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n        if (iterations % 2 === 0) {\n          return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0);\n        var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n          }\n\n          return ret;\n        }\n\n        return current - (endV - initV) * repeats;\n      } else if (type === \"continue\") {\n        var firstValue = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(firstValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n          }\n\n          return ret;\n        }\n\n        return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n      }\n\n      return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function smooth(width, samples) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      width = (width || 0.4) * 0.5;\n      samples = Math.floor(samples || 5);\n\n      if (samples <= 1) {\n        return (this || _global).pv;\n      }\n\n      var currentTime = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n      var initFrame = currentTime - width;\n      var endFrame = currentTime + width;\n      var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n      var i = 0;\n      var j = 0;\n      var value;\n\n      if ((this || _global).pv.length) {\n        value = createTypedArray(\"float32\", (this || _global).pv.length);\n      } else {\n        value = 0;\n      }\n\n      var sampleValue;\n\n      while (i < samples) {\n        sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n        if ((this || _global).pv.length) {\n          for (j = 0; j < (this || _global).pv.length; j += 1) {\n            value[j] += sampleValue[j];\n          }\n        } else {\n          value += sampleValue;\n        }\n\n        i += 1;\n      }\n\n      if ((this || _global).pv.length) {\n        for (j = 0; j < (this || _global).pv.length; j += 1) {\n          value[j] /= samples;\n        }\n      } else {\n        value /= samples;\n      }\n\n      return value;\n    }\n\n    function getTransformValueAtTime(time) {\n      if (!(this || _global)._transformCachingAtTime) {\n        (this || _global)._transformCachingAtTime = {\n          v: new Matrix()\n        };\n      } /// /\n\n\n      var matrix = (this || _global)._transformCachingAtTime.v;\n      matrix.cloneFromProps((this || _global).pre.props);\n\n      if ((this || _global).appliedTransformations < 1) {\n        var anchor = (this || _global).a.getValueAtTime(time);\n\n        matrix.translate(-anchor[0] * (this || _global).a.mult, -anchor[1] * (this || _global).a.mult, anchor[2] * (this || _global).a.mult);\n      }\n\n      if ((this || _global).appliedTransformations < 2) {\n        var scale = (this || _global).s.getValueAtTime(time);\n\n        matrix.scale(scale[0] * (this || _global).s.mult, scale[1] * (this || _global).s.mult, scale[2] * (this || _global).s.mult);\n      }\n\n      if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n        var skew = (this || _global).sk.getValueAtTime(time);\n\n        var skewAxis = (this || _global).sa.getValueAtTime(time);\n\n        matrix.skewFromAxis(-skew * (this || _global).sk.mult, skewAxis * (this || _global).sa.mult);\n      }\n\n      if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotation = (this || _global).r.getValueAtTime(time);\n\n        matrix.rotate(-rotation * (this || _global).r.mult);\n      } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotationZ = (this || _global).rz.getValueAtTime(time);\n\n        var rotationY = (this || _global).ry.getValueAtTime(time);\n\n        var rotationX = (this || _global).rx.getValueAtTime(time);\n\n        var orientation = (this || _global).or.getValueAtTime(time);\n\n        matrix.rotateZ(-rotationZ * (this || _global).rz.mult).rotateY(rotationY * (this || _global).ry.mult).rotateX(rotationX * (this || _global).rx.mult).rotateZ(-orientation[2] * (this || _global).or.mult).rotateY(orientation[1] * (this || _global).or.mult).rotateX(orientation[0] * (this || _global).or.mult);\n      }\n\n      if ((this || _global).data.p && (this || _global).data.p.s) {\n        var positionX = (this || _global).px.getValueAtTime(time);\n\n        var positionY = (this || _global).py.getValueAtTime(time);\n\n        if ((this || _global).data.p.z) {\n          var positionZ = (this || _global).pz.getValueAtTime(time);\n\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, -positionZ * (this || _global).pz.mult);\n        } else {\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, 0);\n        }\n      } else {\n        var position = (this || _global).p.getValueAtTime(time);\n\n        matrix.translate(position[0] * (this || _global).p.mult, position[1] * (this || _global).p.mult, -position[2] * (this || _global).p.mult);\n      }\n\n      return matrix; /// /\n    }\n\n    function getTransformStaticValueAtTime() {\n      return (this || _global).v.clone(new Matrix());\n    }\n\n    var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n    TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n      var prop = getTransformProperty(elem, data, container);\n\n      if (prop.dynamicProperties.length) {\n        prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      return prop;\n    };\n\n    var propertyGetProp = PropertyFactory.getProp;\n\n    PropertyFactory.getProp = function (elem, data, type, mult, container) {\n      var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n      // prop.loopOut = loopOut;\n      // prop.loopIn = loopIn;\n\n      if (prop.kf) {\n        prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      prop.loopOut = loopOut;\n      prop.loopIn = loopIn;\n      prop.smooth = smooth;\n      prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n      prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n      prop.numKeys = data.a === 1 ? data.k.length : 0;\n      prop.propertyIndex = data.ix;\n      var value = 0;\n\n      if (type !== 0) {\n        value = createTypedArray(\"float32\", data.a === 1 ? data.k[0].s.length : data.k.length);\n      }\n\n      prop._cachingAtTime = {\n        lastFrame: initialDefaultFrame,\n        lastIndex: 0,\n        value: value\n      };\n      expressionHelpers.searchExpressions(elem, data, prop);\n\n      if (prop.k) {\n        container.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n\n    function getShapeValueAtTime(frameNum) {\n      // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n      if (!(this || _global)._cachingAtTime) {\n        (this || _global)._cachingAtTime = {\n          shapeValue: shapePool.clone((this || _global).pv),\n          lastIndex: 0,\n          lastTime: initialDefaultFrame\n        };\n      }\n\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastTime) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastTime < frameNum ? (this || _global)._caching.lastIndex : 0;\n        (this || _global)._cachingAtTime.lastTime = frameNum;\n        this.interpolateShape(frameNum, (this || _global)._cachingAtTime.shapeValue, (this || _global)._cachingAtTime);\n      }\n\n      return (this || _global)._cachingAtTime.shapeValue;\n    }\n\n    var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n    var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n    function ShapeExpressions() {}\n\n    ShapeExpressions.prototype = {\n      vertices: function (prop, time) {\n        if ((this || _global).k) {\n          this.getValue();\n        }\n\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        var i;\n        var len = shapePath._length;\n        var vertices = shapePath[prop];\n        var points = shapePath.v;\n        var arr = createSizedArray(len);\n\n        for (i = 0; i < len; i += 1) {\n          if (prop === \"i\" || prop === \"o\") {\n            arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n          } else {\n            arr[i] = [vertices[i][0], vertices[i][1]];\n          }\n        }\n\n        return arr;\n      },\n      points: function (time) {\n        return this.vertices(\"v\", time);\n      },\n      inTangents: function (time) {\n        return this.vertices(\"i\", time);\n      },\n      outTangents: function (time) {\n        return this.vertices(\"o\", time);\n      },\n      isClosed: function () {\n        return (this || _global).v.c;\n      },\n      pointOnPath: function (perc, time) {\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        if (!(this || _global)._segmentsLength) {\n          (this || _global)._segmentsLength = bez.getSegmentsLength(shapePath);\n        }\n\n        var segmentsLength = (this || _global)._segmentsLength;\n        var lengths = segmentsLength.lengths;\n        var lengthPos = segmentsLength.totalLength * perc;\n        var i = 0;\n        var len = lengths.length;\n        var accumulatedLength = 0;\n        var pt;\n\n        while (i < len) {\n          if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n            var initIndex = i;\n            var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n            var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n            pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n            break;\n          } else {\n            accumulatedLength += lengths[i].addedLength;\n          }\n\n          i += 1;\n        }\n\n        if (!pt) {\n          pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n        }\n\n        return pt;\n      },\n      vectorOnPath: function (perc, time, vectorType) {\n        // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n        if (perc == 1) {\n          // eslint-disable-line eqeqeq\n          perc = (this || _global).v.c;\n        } else if (perc == 0) {\n          // eslint-disable-line eqeqeq\n          perc = 0.999;\n        }\n\n        var pt1 = this.pointOnPath(perc, time);\n        var pt2 = this.pointOnPath(perc + 0.001, time);\n        var xLength = pt2[0] - pt1[0];\n        var yLength = pt2[1] - pt1[1];\n        var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n        if (magnitude === 0) {\n          return [0, 0];\n        }\n\n        var unitVector = vectorType === \"tangent\" ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n        return unitVector;\n      },\n      tangentOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"tangent\");\n      },\n      normalOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"normal\");\n      },\n      setGroupProperty: expressionHelpers.setGroupProperty,\n      getValueAtTime: expressionHelpers.getStaticValueAtTime\n    };\n    extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n    extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n    KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n    KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n    var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n    ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n      var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n      prop.propertyIndex = data.ix;\n      prop.lock = false;\n\n      if (type === 3) {\n        expressionHelpers.searchExpressions(elem, data.pt, prop);\n      } else if (type === 4) {\n        expressionHelpers.searchExpressions(elem, data.ks, prop);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n  })();\n  /* global ExpressionManager, TextProperty */\n\n\n  (function addDecorator() {\n    function searchExpressions() {\n      if ((this || _global).data.d.x) {\n        (this || _global).calculateExpression = ExpressionManager.initiateExpression.bind(this || _global)((this || _global).elem, (this || _global).data.d, this || _global);\n        this.addEffect((this || _global).getExpressionValue.bind(this || _global));\n        return true;\n      }\n\n      return null;\n    }\n\n    TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n      var newValue = this.calculateExpression(text);\n\n      if (currentValue.t !== newValue) {\n        var newData = {};\n        this.copyData(newData, currentValue);\n        newData.t = newValue.toString();\n        newData.__complete = false;\n        return newData;\n      }\n\n      return currentValue;\n    };\n\n    TextProperty.prototype.searchProperty = function () {\n      var isKeyframed = this.searchKeyframes();\n      var hasExpressions = this.searchExpressions();\n      (this || _global).kf = isKeyframed || hasExpressions;\n      return (this || _global).kf;\n    };\n\n    TextProperty.prototype.searchExpressions = searchExpressions;\n  })();\n  /* global propertyGroupFactory, PropertyInterface */\n\n  /* exported ShapePathInterface */\n\n\n  var ShapePathInterface = function () {\n    return function pathInterfaceFactory(shape, view, propertyGroup) {\n      var prop = view.sh;\n\n      function interfaceFunction(val) {\n        if (val === \"Shape\" || val === \"shape\" || val === \"Path\" || val === \"path\" || val === \"ADBE Vector Shape\" || val === 2) {\n          return interfaceFunction.path;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      prop.setGroupProperty(PropertyInterface(\"Path\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        path: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        shape: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        ix: {\n          value: shape.ix\n        },\n        propertyIndex: {\n          value: shape.ix\n        },\n        mn: {\n          value: shape.mn\n        },\n        propertyGroup: {\n          value: propertyGroup\n        }\n      });\n      return interfaceFunction;\n    };\n  }();\n  /* exported propertyGroupFactory */\n\n\n  var propertyGroupFactory = function () {\n    return function (interfaceFunction, parentPropertyGroup) {\n      return function (val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return parentPropertyGroup(val - 1);\n      };\n    };\n  }();\n  /* exported PropertyInterface */\n\n\n  var PropertyInterface = function () {\n    return function (propertyName, propertyGroup) {\n      var interfaceFunction = {\n        _name: propertyName\n      };\n\n      function _propertyGroup(val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return propertyGroup(val - 1);\n      }\n\n      return _propertyGroup;\n    };\n  }();\n  /* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\n\n  /* exported ShapeExpressionInterface */\n\n\n  var ShapeExpressionInterface = function () {\n    function iterateElements(shapes, view, propertyGroup) {\n      var arr = [];\n      var i;\n      var len = shapes ? shapes.length : 0;\n\n      for (i = 0; i < len; i += 1) {\n        if (shapes[i].ty === \"gr\") {\n          arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"fl\") {\n          arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"st\") {\n          arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tm\") {\n          arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tr\") {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n        } else if (shapes[i].ty === \"el\") {\n          arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sr\") {\n          arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sh\") {\n          arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rc\") {\n          arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rd\") {\n          arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rp\") {\n          arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n        }\n      }\n\n      return arr;\n    }\n\n    function contentsInterfaceFactory(shape, view, propertyGroup) {\n      var interfaces;\n\n      var interfaceFunction = function _interfaceFunction(value) {\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        if (typeof value === \"number\") {\n          return interfaces[value - 1];\n        }\n\n        return null;\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n      interfaceFunction.numProperties = interfaces.length;\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.transform = transformInterface;\n      interfaceFunction.propertyIndex = shape.cix;\n      interfaceFunction._name = shape.nm;\n      return interfaceFunction;\n    }\n\n    function groupInterfaceFactory(shape, view, propertyGroup) {\n      var interfaceFunction = function _interfaceFunction(value) {\n        switch (value) {\n          case \"ADBE Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return interfaceFunction.content;\n          // Not necessary for now. Keeping them here in case a new case appears\n          // case 'ADBE Vector Transform Group':\n          // case 3:\n\n          default:\n            return interfaceFunction.transform;\n        }\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.content = content;\n      interfaceFunction.transform = transformInterface;\n      Object.defineProperty(interfaceFunction, \"_name\", {\n        get: function () {\n          return shape.nm;\n        }\n      }); // interfaceFunction.content = interfaceFunction;\n\n      interfaceFunction.numProperties = shape.np;\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.nm = shape.nm;\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function fillInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", propertyGroup));\n      return interfaceFunction;\n    }\n\n    function strokeInterfaceFactory(shape, view, propertyGroup) {\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n      function addPropertyToDashOb(i) {\n        Object.defineProperty(dashOb, shape.d[i].nm, {\n          get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n        });\n      }\n\n      var i;\n      var len = shape.d ? shape.d.length : 0;\n      var dashOb = {};\n\n      for (i = 0; i < len; i += 1) {\n        addPropertyToDashOb(i);\n        view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n      }\n\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (val === \"Stroke Width\" || val === \"stroke width\") {\n          return interfaceFunction.strokeWidth;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        strokeWidth: {\n          get: ExpressionPropertyInterface(view.w)\n        },\n        dash: {\n          get: function () {\n            return dashOb;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.w.setGroupProperty(PropertyInterface(\"Stroke Width\", _propertyGroup));\n      return interfaceFunction;\n    }\n\n    function trimInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === shape.e.ix || val === \"End\" || val === \"end\") {\n          return interfaceFunction.end;\n        }\n\n        if (val === shape.s.ix) {\n          return interfaceFunction.start;\n        }\n\n        if (val === shape.o.ix) {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      view.s.setGroupProperty(PropertyInterface(\"Start\", _propertyGroup));\n      view.e.setGroupProperty(PropertyInterface(\"End\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.propertyGroup = propertyGroup;\n      Object.defineProperties(interfaceFunction, {\n        start: {\n          get: ExpressionPropertyInterface(view.s)\n        },\n        end: {\n          get: ExpressionPropertyInterface(view.e)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function transformInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.a.ix === value || value === \"Anchor Point\") {\n          return interfaceFunction.anchorPoint;\n        }\n\n        if (shape.o.ix === value || value === \"Opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (shape.p.ix === value || value === \"Position\") {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value || value === \"Rotation\" || value === \"ADBE Vector Rotation\") {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.s.ix === value || value === \"Scale\") {\n          return interfaceFunction.scale;\n        }\n\n        if (shape.sk && shape.sk.ix === value || value === \"Skew\") {\n          return interfaceFunction.skew;\n        }\n\n        if (shape.sa && shape.sa.ix === value || value === \"Skew Axis\") {\n          return interfaceFunction.skewAxis;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      view.transform.mProps.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.transform.mProps.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      view.transform.mProps.a.setGroupProperty(PropertyInterface(\"Anchor Point\", _propertyGroup));\n      view.transform.mProps.s.setGroupProperty(PropertyInterface(\"Scale\", _propertyGroup));\n      view.transform.mProps.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (view.transform.mProps.sk) {\n        view.transform.mProps.sk.setGroupProperty(PropertyInterface(\"Skew\", _propertyGroup));\n        view.transform.mProps.sa.setGroupProperty(PropertyInterface(\"Skew Angle\", _propertyGroup));\n      }\n\n      view.transform.op.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        opacity: {\n          get: ExpressionPropertyInterface(view.transform.mProps.o)\n        },\n        position: {\n          get: ExpressionPropertyInterface(view.transform.mProps.p)\n        },\n        anchorPoint: {\n          get: ExpressionPropertyInterface(view.transform.mProps.a)\n        },\n        scale: {\n          get: ExpressionPropertyInterface(view.transform.mProps.s)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(view.transform.mProps.r)\n        },\n        skew: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sk)\n        },\n        skewAxis: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sa)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.ty = \"tr\";\n      interfaceFunction.mn = shape.mn;\n      interfaceFunction.propertyGroup = propertyGroup;\n      return interfaceFunction;\n    }\n\n    function ellipseInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.s.ix === value) {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function starInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.pt.ix === value) {\n          return interfaceFunction.points;\n        }\n\n        if (shape.or.ix === value || value === \"ADBE Vector Star Outer Radius\") {\n          return interfaceFunction.outerRadius;\n        }\n\n        if (shape.os.ix === value) {\n          return interfaceFunction.outerRoundness;\n        }\n\n        if (shape.ir && (shape.ir.ix === value || value === \"ADBE Vector Star Inner Radius\")) {\n          return interfaceFunction.innerRadius;\n        }\n\n        if (shape.is && shape.is.ix === value) {\n          return interfaceFunction.innerRoundness;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.or.setGroupProperty(PropertyInterface(\"Outer Radius\", _propertyGroup));\n      prop.os.setGroupProperty(PropertyInterface(\"Outer Roundness\", _propertyGroup));\n      prop.pt.setGroupProperty(PropertyInterface(\"Points\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (shape.ir) {\n        prop.ir.setGroupProperty(PropertyInterface(\"Inner Radius\", _propertyGroup));\n        prop.is.setGroupProperty(PropertyInterface(\"Inner Roundness\", _propertyGroup));\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        points: {\n          get: ExpressionPropertyInterface(prop.pt)\n        },\n        outerRadius: {\n          get: ExpressionPropertyInterface(prop.or)\n        },\n        outerRoundness: {\n          get: ExpressionPropertyInterface(prop.os)\n        },\n        innerRadius: {\n          get: ExpressionPropertyInterface(prop.ir)\n        },\n        innerRoundness: {\n          get: ExpressionPropertyInterface(prop.is)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function rectInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.roundness;\n        }\n\n        if (shape.s.ix === value || value === \"Size\" || value === \"ADBE Vector Rect Size\") {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        roundness: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function roundedInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.r.ix === value || value === \"Round Corners 1\") {\n          return interfaceFunction.radius;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.rd.setGroupProperty(PropertyInterface(\"Radius\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        radius: {\n          get: ExpressionPropertyInterface(prop.rd)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function repeaterInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.c.ix === value || value === \"Copies\") {\n          return interfaceFunction.copies;\n        }\n\n        if (shape.o.ix === value || value === \"Offset\") {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.c.setGroupProperty(PropertyInterface(\"Copies\", _propertyGroup));\n      prop.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        copies: {\n          get: ExpressionPropertyInterface(prop.c)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(prop.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    return function (shapes, view, propertyGroup) {\n      var interfaces;\n\n      function _interfaceFunction(value) {\n        if (typeof value === \"number\") {\n          value = value === undefined ? 1 : value;\n\n          if (value === 0) {\n            return propertyGroup;\n          }\n\n          return interfaces[value - 1];\n        }\n\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      function parentGroupWrapper() {\n        return propertyGroup;\n      }\n\n      _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n      interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n      _interfaceFunction.numProperties = interfaces.length;\n      _interfaceFunction._name = \"Contents\";\n      return _interfaceFunction;\n    };\n  }();\n  /* exported TextExpressionInterface */\n\n\n  var TextExpressionInterface = function () {\n    return function (elem) {\n      var _prevValue;\n\n      var _sourceText;\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Text Document\":\n            return _thisLayerFunction.sourceText;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"sourceText\", {\n        get: function () {\n          elem.textProperty.getValue();\n          var stringValue = elem.textProperty.currentData.t;\n\n          if (stringValue !== _prevValue) {\n            elem.textProperty.currentData.t = _prevValue;\n            _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n            // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n            _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n          }\n\n          return _sourceText;\n        }\n      });\n      return _thisLayerFunction;\n    };\n  }();\n  /* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\n\n  /* exported LayerExpressionInterface */\n\n\n  var LayerExpressionInterface = function () {\n    function getMatrix(time) {\n      var toWorldMat = new Matrix();\n\n      if (time !== undefined) {\n        var propMatrix = (this || _global)._elem.finalTransform.mProp.getValueAtTime(time);\n\n        propMatrix.clone(toWorldMat);\n      } else {\n        var transformMat = (this || _global)._elem.finalTransform.mProp;\n        transformMat.applyToMatrix(toWorldMat);\n      }\n\n      return toWorldMat;\n    }\n\n    function toWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function toWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function fromWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function fromWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function applyPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n    }\n\n    function invertPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.inversePoint(arr);\n    }\n\n    function fromComp(arr) {\n      var toWorldMat = new Matrix();\n      toWorldMat.reset();\n\n      (this || _global)._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n        }\n\n        return toWorldMat.inversePoint(arr);\n      }\n\n      return toWorldMat.inversePoint(arr);\n    }\n\n    function sampleImage() {\n      return [1, 1, 1, 1];\n    }\n\n    return function (elem) {\n      var transformInterface;\n\n      function _registerMaskInterface(maskManager) {\n        _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n      }\n\n      function _registerEffectsInterface(effects) {\n        _thisLayerFunction.effect = effects;\n      }\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Root Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return _thisLayerFunction.shapeInterface;\n\n          case 1:\n          case 6:\n          case \"Transform\":\n          case \"transform\":\n          case \"ADBE Transform Group\":\n            return transformInterface;\n\n          case 4:\n          case \"ADBE Effect Parade\":\n          case \"effects\":\n          case \"Effects\":\n            return _thisLayerFunction.effect;\n\n          case \"ADBE Text Properties\":\n            return _thisLayerFunction.textInterface;\n\n          default:\n            return null;\n        }\n      }\n\n      _thisLayerFunction.getMatrix = getMatrix;\n      _thisLayerFunction.invertPoint = invertPoint;\n      _thisLayerFunction.applyPoint = applyPoint;\n      _thisLayerFunction.toWorld = toWorld;\n      _thisLayerFunction.toWorldVec = toWorldVec;\n      _thisLayerFunction.fromWorld = fromWorld;\n      _thisLayerFunction.fromWorldVec = fromWorldVec;\n      _thisLayerFunction.toComp = toWorld;\n      _thisLayerFunction.fromComp = fromComp;\n      _thisLayerFunction.sampleImage = sampleImage;\n      _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n      _thisLayerFunction._elem = elem;\n      transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n      var anchorPointDescriptor = getDescriptor(transformInterface, \"anchorPoint\");\n      Object.defineProperties(_thisLayerFunction, {\n        hasParent: {\n          get: function () {\n            return elem.hierarchy.length;\n          }\n        },\n        parent: {\n          get: function () {\n            return elem.hierarchy[0].layerInterface;\n          }\n        },\n        rotation: getDescriptor(transformInterface, \"rotation\"),\n        scale: getDescriptor(transformInterface, \"scale\"),\n        position: getDescriptor(transformInterface, \"position\"),\n        opacity: getDescriptor(transformInterface, \"opacity\"),\n        anchorPoint: anchorPointDescriptor,\n        anchor_point: anchorPointDescriptor,\n        transform: {\n          get: function () {\n            return transformInterface;\n          }\n        },\n        active: {\n          get: function () {\n            return elem.isInRange;\n          }\n        }\n      });\n      _thisLayerFunction.startTime = elem.data.st;\n      _thisLayerFunction.index = elem.data.ind;\n      _thisLayerFunction.source = elem.data.refId;\n      _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n      _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n      _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      _thisLayerFunction._name = elem.data.nm;\n      _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n      _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global */\n\n  /* exported FootageInterface */\n\n\n  var FootageInterface = function () {\n    var outlineInterfaceFactory = function (elem) {\n      var currentPropertyName = \"\";\n      var currentProperty = elem.getFootageData();\n\n      function init() {\n        currentPropertyName = \"\";\n        currentProperty = elem.getFootageData();\n        return searchProperty;\n      }\n\n      function searchProperty(value) {\n        if (currentProperty[value]) {\n          currentPropertyName = value;\n          currentProperty = currentProperty[value];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        var propertyNameIndex = value.indexOf(currentPropertyName);\n\n        if (propertyNameIndex !== -1) {\n          var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n          currentProperty = currentProperty[index];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        return \"\";\n      }\n\n      return init;\n    };\n\n    var dataInterfaceFactory = function (elem) {\n      function interfaceFunction(value) {\n        if (value === \"Outline\") {\n          return interfaceFunction.outlineInterface();\n        }\n\n        return null;\n      }\n\n      interfaceFunction._name = \"Outline\";\n      interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n      return interfaceFunction;\n    };\n\n    return function (elem) {\n      function _interfaceFunction(value) {\n        if (value === \"Data\") {\n          return _interfaceFunction.dataInterface;\n        }\n\n        return null;\n      }\n\n      _interfaceFunction._name = \"Data\";\n      _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n      return _interfaceFunction;\n    };\n  }();\n  /* exported CompExpressionInterface */\n\n\n  var CompExpressionInterface = function () {\n    return function (comp) {\n      function _thisLayerFunction(name) {\n        var i = 0;\n        var len = comp.layers.length;\n\n        while (i < len) {\n          if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n            return comp.elements[i].layerInterface;\n          }\n\n          i += 1;\n        }\n\n        return null; // return {active:false};\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"_name\", {\n        value: comp.data.nm\n      });\n      _thisLayerFunction.layer = _thisLayerFunction;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n      _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n      _thisLayerFunction.displayStartTime = 0;\n      _thisLayerFunction.numLayers = comp.layers.length;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global ExpressionPropertyInterface */\n\n  /* exported TransformExpressionInterface */\n\n\n  var TransformExpressionInterface = function () {\n    return function (transform) {\n      function _thisFunction(name) {\n        switch (name) {\n          case \"scale\":\n          case \"Scale\":\n          case \"ADBE Scale\":\n          case 6:\n            return _thisFunction.scale;\n\n          case \"rotation\":\n          case \"Rotation\":\n          case \"ADBE Rotation\":\n          case \"ADBE Rotate Z\":\n          case 10:\n            return _thisFunction.rotation;\n\n          case \"ADBE Rotate X\":\n            return _thisFunction.xRotation;\n\n          case \"ADBE Rotate Y\":\n            return _thisFunction.yRotation;\n\n          case \"position\":\n          case \"Position\":\n          case \"ADBE Position\":\n          case 2:\n            return _thisFunction.position;\n\n          case \"ADBE Position_0\":\n            return _thisFunction.xPosition;\n\n          case \"ADBE Position_1\":\n            return _thisFunction.yPosition;\n\n          case \"ADBE Position_2\":\n            return _thisFunction.zPosition;\n\n          case \"anchorPoint\":\n          case \"AnchorPoint\":\n          case \"Anchor Point\":\n          case \"ADBE AnchorPoint\":\n          case 1:\n            return _thisFunction.anchorPoint;\n\n          case \"opacity\":\n          case \"Opacity\":\n          case 11:\n            return _thisFunction.opacity;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"rotation\", {\n        get: ExpressionPropertyInterface(transform.r || transform.rz)\n      });\n      Object.defineProperty(_thisFunction, \"zRotation\", {\n        get: ExpressionPropertyInterface(transform.rz || transform.r)\n      });\n      Object.defineProperty(_thisFunction, \"xRotation\", {\n        get: ExpressionPropertyInterface(transform.rx)\n      });\n      Object.defineProperty(_thisFunction, \"yRotation\", {\n        get: ExpressionPropertyInterface(transform.ry)\n      });\n      Object.defineProperty(_thisFunction, \"scale\", {\n        get: ExpressionPropertyInterface(transform.s)\n      });\n\n      var _px;\n\n      var _py;\n\n      var _pz;\n\n      var _transformFactory;\n\n      if (transform.p) {\n        _transformFactory = ExpressionPropertyInterface(transform.p);\n      } else {\n        _px = ExpressionPropertyInterface(transform.px);\n        _py = ExpressionPropertyInterface(transform.py);\n\n        if (transform.pz) {\n          _pz = ExpressionPropertyInterface(transform.pz);\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"position\", {\n        get: function () {\n          if (transform.p) {\n            return _transformFactory();\n          }\n\n          return [_px(), _py(), _pz ? _pz() : 0];\n        }\n      });\n      Object.defineProperty(_thisFunction, \"xPosition\", {\n        get: ExpressionPropertyInterface(transform.px)\n      });\n      Object.defineProperty(_thisFunction, \"yPosition\", {\n        get: ExpressionPropertyInterface(transform.py)\n      });\n      Object.defineProperty(_thisFunction, \"zPosition\", {\n        get: ExpressionPropertyInterface(transform.pz)\n      });\n      Object.defineProperty(_thisFunction, \"anchorPoint\", {\n        get: ExpressionPropertyInterface(transform.a)\n      });\n      Object.defineProperty(_thisFunction, \"opacity\", {\n        get: ExpressionPropertyInterface(transform.o)\n      });\n      Object.defineProperty(_thisFunction, \"skew\", {\n        get: ExpressionPropertyInterface(transform.sk)\n      });\n      Object.defineProperty(_thisFunction, \"skewAxis\", {\n        get: ExpressionPropertyInterface(transform.sa)\n      });\n      Object.defineProperty(_thisFunction, \"orientation\", {\n        get: ExpressionPropertyInterface(transform.or)\n      });\n      return _thisFunction;\n    };\n  }();\n  /* exported ProjectInterface */\n\n\n  ProjectInterface = function () {\n    function registerComposition(comp) {\n      (this || _global).compositions.push(comp);\n    }\n\n    return function () {\n      function _thisProjectFunction(name) {\n        var i = 0;\n        var len = (this || _global).compositions.length;\n\n        while (i < len) {\n          if ((this || _global).compositions[i].data && (this || _global).compositions[i].data.nm === name) {\n            if ((this || _global).compositions[i].prepareFrame && (this || _global).compositions[i].data.xt) {\n              (this || _global).compositions[i].prepareFrame((this || _global).currentFrame);\n            }\n\n            return (this || _global).compositions[i].compInterface;\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      _thisProjectFunction.compositions = [];\n      _thisProjectFunction.currentFrame = 0;\n      _thisProjectFunction.registerComposition = registerComposition;\n      return _thisProjectFunction;\n    };\n  }();\n  /* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\n\n  /* exported EffectsExpressionInterface */\n\n\n  var EffectsExpressionInterface = function () {\n    var ob = {\n      createEffectsInterface: createEffectsInterface\n    };\n\n    function createEffectsInterface(elem, propertyGroup) {\n      if (elem.effectsManager) {\n        var effectElements = [];\n        var effectsData = elem.data.ef;\n        var i;\n        var len = elem.effectsManager.effectElements.length;\n\n        for (i = 0; i < len; i += 1) {\n          effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n        }\n\n        var effects = elem.data.ef || [];\n\n        var groupInterface = function (name) {\n          i = 0;\n          len = effects.length;\n\n          while (i < len) {\n            if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n              return effectElements[i];\n            }\n\n            i += 1;\n          }\n\n          return null;\n        };\n\n        Object.defineProperty(groupInterface, \"numProperties\", {\n          get: function () {\n            return effects.length;\n          }\n        });\n        return groupInterface;\n      }\n\n      return null;\n    }\n\n    function createGroupInterface(data, elements, propertyGroup, elem) {\n      function groupInterface(name) {\n        var effects = data.ef;\n        var i = 0;\n        var len = effects.length;\n\n        while (i < len) {\n          if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n            if (effects[i].ty === 5) {\n              return effectElements[i];\n            }\n\n            return effectElements[i]();\n          }\n\n          i += 1;\n        }\n\n        throw new Error();\n      }\n\n      var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n      var effectElements = [];\n      var i;\n      var len = data.ef.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (data.ef[i].ty === 5) {\n          effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n        } else {\n          effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n        }\n      }\n\n      if (data.mn === \"ADBE Color Control\") {\n        Object.defineProperty(groupInterface, \"color\", {\n          get: function () {\n            return effectElements[0]();\n          }\n        });\n      }\n\n      Object.defineProperties(groupInterface, {\n        numProperties: {\n          get: function () {\n            return data.np;\n          }\n        },\n        _name: {\n          value: data.nm\n        },\n        propertyGroup: {\n          value: _propertyGroup\n        }\n      });\n      groupInterface.enabled = data.en !== 0;\n      groupInterface.active = groupInterface.enabled;\n      return groupInterface;\n    }\n\n    function createValueInterface(element, type, elem, propertyGroup) {\n      var expressionProperty = ExpressionPropertyInterface(element.p);\n\n      function interfaceFunction() {\n        if (type === 10) {\n          return elem.comp.compInterface(element.p.v);\n        }\n\n        return expressionProperty();\n      }\n\n      if (element.p.setGroupProperty) {\n        element.p.setGroupProperty(PropertyInterface(\"\", propertyGroup));\n      }\n\n      return interfaceFunction;\n    }\n\n    return ob;\n  }();\n  /* global createSizedArray */\n\n  /* exported MaskManagerInterface */\n\n\n  var MaskManagerInterface = function () {\n    function MaskInterface(mask, data) {\n      (this || _global)._mask = mask;\n      (this || _global)._data = data;\n    }\n\n    Object.defineProperty(MaskInterface.prototype, \"maskPath\", {\n      get: function () {\n        if ((this || _global)._mask.prop.k) {\n          (this || _global)._mask.prop.getValue();\n        }\n\n        return (this || _global)._mask.prop;\n      }\n    });\n    Object.defineProperty(MaskInterface.prototype, \"maskOpacity\", {\n      get: function () {\n        if ((this || _global)._mask.op.k) {\n          (this || _global)._mask.op.getValue();\n        }\n\n        return (this || _global)._mask.op.v * 100;\n      }\n    });\n\n    var MaskManager = function (maskManager) {\n      var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n      var i;\n      var len = maskManager.viewData.length;\n\n      for (i = 0; i < len; i += 1) {\n        _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n      }\n\n      var maskFunction = function (name) {\n        i = 0;\n\n        while (i < len) {\n          if (maskManager.masksProperties[i].nm === name) {\n            return _masksInterfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      };\n\n      return maskFunction;\n    };\n\n    return MaskManager;\n  }();\n  /* global createTypedArray */\n\n  /* exported ExpressionPropertyInterface */\n\n\n  var ExpressionPropertyInterface = function () {\n    var defaultUnidimensionalValue = {\n      pv: 0,\n      v: 0,\n      mult: 1\n    };\n    var defaultMultidimensionalValue = {\n      pv: [0, 0, 0],\n      v: [0, 0, 0],\n      mult: 1\n    };\n\n    function completeProperty(expressionValue, property, type) {\n      Object.defineProperty(expressionValue, \"velocity\", {\n        get: function () {\n          return property.getVelocityAtTime(property.comp.currentFrame);\n        }\n      });\n      expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n      expressionValue.key = function (pos) {\n        if (!expressionValue.numKeys) {\n          return 0;\n        }\n\n        var value = \"\";\n\n        if (\"s\" in property.keyframes[pos - 1]) {\n          value = property.keyframes[pos - 1].s;\n        } else if (\"e\" in property.keyframes[pos - 2]) {\n          value = property.keyframes[pos - 2].e;\n        } else {\n          value = property.keyframes[pos - 2].s;\n        }\n\n        var valueProp = type === \"unidimensional\" ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n        valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n        valueProp.value = type === \"unidimensional\" ? value[0] : value;\n        return valueProp;\n      };\n\n      expressionValue.valueAtTime = property.getValueAtTime;\n      expressionValue.speedAtTime = property.getSpeedAtTime;\n      expressionValue.velocityAtTime = property.getVelocityAtTime;\n      expressionValue.propertyGroup = property.propertyGroup;\n    }\n\n    function UnidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultUnidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var val = property.pv * mult;\n      var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n      expressionValue.value = val;\n      completeProperty(expressionValue, property, \"unidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        val = property.v * mult;\n\n        if (expressionValue.value !== val) {\n          expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n          expressionValue.value = val;\n          completeProperty(expressionValue, property, \"unidimensional\");\n        }\n\n        return expressionValue;\n      };\n    }\n\n    function MultidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultMultidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var len = property.data && property.data.l || property.pv.length;\n      var expressionValue = createTypedArray(\"float32\", len);\n      var arrValue = createTypedArray(\"float32\", len);\n      expressionValue.value = arrValue;\n      completeProperty(expressionValue, property, \"multidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        for (var i = 0; i < len; i += 1) {\n          arrValue[i] = property.v[i] * mult;\n          expressionValue[i] = arrValue[i];\n        }\n\n        return expressionValue;\n      };\n    } // TODO: try to avoid using this getter\n\n\n    function defaultGetter() {\n      return defaultUnidimensionalValue;\n    }\n\n    return function (property) {\n      if (!property) {\n        return defaultGetter;\n      }\n\n      if (property.propType === \"unidimensional\") {\n        return UnidimensionalPropertyInterface(property);\n      }\n\n      return MultidimensionalPropertyInterface(property);\n    };\n  }();\n  /* global expressionHelpers, TextSelectorProp, ExpressionManager */\n\n  /* exported TextExpressionSelectorProp */\n\n\n  (function () {\n    var TextExpressionSelectorProp = function () {\n      // eslint-disable-line no-unused-vars\n      function getValueProxy(index, total) {\n        (this || _global).textIndex = index + 1;\n        (this || _global).textTotal = total;\n        (this || _global).v = this.getValue() * (this || _global).mult;\n        return (this || _global).v;\n      }\n\n      return function TextExpressionSelectorPropFactory(elem, data) {\n        (this || _global).pv = 1;\n        (this || _global).comp = elem.comp;\n        (this || _global).elem = elem;\n        (this || _global).mult = 0.01;\n        (this || _global).propType = \"textSelector\";\n        (this || _global).textTotal = data.totalChars;\n        (this || _global).selectorValue = 100;\n        (this || _global).lastValue = [1, 1, 1];\n        (this || _global).k = true;\n        (this || _global).x = true;\n        (this || _global).getValue = ExpressionManager.initiateExpression.bind(this || _global)(elem, data, this || _global);\n        (this || _global).getMult = getValueProxy;\n        (this || _global).getVelocityAtTime = expressionHelpers.getVelocityAtTime;\n\n        if ((this || _global).kf) {\n          (this || _global).getValueAtTime = expressionHelpers.getValueAtTime.bind(this || _global);\n        } else {\n          (this || _global).getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this || _global);\n        }\n\n        (this || _global).setGroupProperty = expressionHelpers.setGroupProperty;\n      };\n    }();\n\n    var propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\n\n    TextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\n      if (data.t === 1) {\n        return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\n      }\n\n      return propertyGetTextProp(elem, data, arr);\n    };\n  })();\n  /* global PropertyFactory */\n\n  /* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\n\n\n  function SliderEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function AngleEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function ColorEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function PointEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function LayerIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function MaskIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function CheckboxEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function NoValueEffect() {\n    (this || _global).p = {};\n  }\n  /* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\n  MaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\n\n\n  function EffectsManager(data, element) {\n    var effects = data.ef || [];\n    (this || _global).effectElements = [];\n    var i;\n    var len = effects.length;\n    var effectItem;\n\n    for (i = 0; i < len; i += 1) {\n      effectItem = new GroupEffect(effects[i], element);\n\n      (this || _global).effectElements.push(effectItem);\n    }\n  }\n\n  function GroupEffect(data, element) {\n    this.init(data, element);\n  }\n\n  extendPrototype([DynamicPropertyContainer], GroupEffect);\n  GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n  GroupEffect.prototype.init = function (data, element) {\n    (this || _global).data = data;\n    (this || _global).effectElements = [];\n    this.initDynamicPropertyContainer(element);\n    var i;\n    var len = (this || _global).data.ef.length;\n    var eff;\n    var effects = (this || _global).data.ef;\n\n    for (i = 0; i < len; i += 1) {\n      eff = null;\n\n      switch (effects[i].ty) {\n        case 0:\n          eff = new SliderEffect(effects[i], element, this || _global);\n          break;\n\n        case 1:\n          eff = new AngleEffect(effects[i], element, this || _global);\n          break;\n\n        case 2:\n          eff = new ColorEffect(effects[i], element, this || _global);\n          break;\n\n        case 3:\n          eff = new PointEffect(effects[i], element, this || _global);\n          break;\n\n        case 4:\n        case 7:\n          eff = new CheckboxEffect(effects[i], element, this || _global);\n          break;\n\n        case 10:\n          eff = new LayerIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 11:\n          eff = new MaskIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 5:\n          eff = new EffectsManager(effects[i], element, this || _global);\n          break;\n        // case 6:\n\n        default:\n          eff = new NoValueEffect(effects[i], element, this || _global);\n          break;\n      }\n\n      if (eff) {\n        (this || _global).effectElements.push(eff);\n      }\n    }\n  };\n\n  var lottie = {};\n\n  function setLocationHref(href) {\n    locationHref = href;\n  }\n\n  function searchAnimations() {\n    if (standalone === true) {\n      animationManager.searchAnimations(animationData, standalone, renderer);\n    } else {\n      animationManager.searchAnimations();\n    }\n  }\n\n  function setSubframeRendering(flag) {\n    subframeEnabled = flag;\n  }\n\n  function loadAnimation(params) {\n    if (standalone === true) {\n      params.animationData = JSON.parse(animationData);\n    }\n\n    return animationManager.loadAnimation(params);\n  }\n\n  function setQuality(value) {\n    if (typeof value === \"string\") {\n      switch (value) {\n        case \"high\":\n          defaultCurveSegments = 200;\n          break;\n\n        default:\n        case \"medium\":\n          defaultCurveSegments = 50;\n          break;\n\n        case \"low\":\n          defaultCurveSegments = 10;\n          break;\n      }\n    } else if (!isNaN(value) && value > 1) {\n      defaultCurveSegments = value;\n    }\n\n    if (defaultCurveSegments >= 50) {\n      roundValues(false);\n    } else {\n      roundValues(true);\n    }\n  }\n\n  function inBrowser() {\n    return typeof navigator !== \"undefined\";\n  }\n\n  function installPlugin(type, plugin) {\n    if (type === \"expressions\") {\n      expressionsPlugin = plugin;\n    }\n  }\n\n  function getFactory(name) {\n    switch (name) {\n      case \"propertyFactory\":\n        return PropertyFactory;\n\n      case \"shapePropertyFactory\":\n        return ShapePropertyFactory;\n\n      case \"matrix\":\n        return Matrix;\n\n      default:\n        return null;\n    }\n  }\n\n  lottie.play = animationManager.play;\n  lottie.pause = animationManager.pause;\n  lottie.setLocationHref = setLocationHref;\n  lottie.togglePause = animationManager.togglePause;\n  lottie.setSpeed = animationManager.setSpeed;\n  lottie.setDirection = animationManager.setDirection;\n  lottie.stop = animationManager.stop;\n  lottie.searchAnimations = searchAnimations;\n  lottie.registerAnimation = animationManager.registerAnimation;\n  lottie.loadAnimation = loadAnimation;\n  lottie.setSubframeRendering = setSubframeRendering;\n  lottie.resize = animationManager.resize; // lottie.start = start;\n\n  lottie.goToAndStop = animationManager.goToAndStop;\n  lottie.destroy = animationManager.destroy;\n  lottie.setQuality = setQuality;\n  lottie.inBrowser = inBrowser;\n  lottie.installPlugin = installPlugin;\n  lottie.freeze = animationManager.freeze;\n  lottie.unfreeze = animationManager.unfreeze;\n  lottie.setVolume = animationManager.setVolume;\n  lottie.mute = animationManager.mute;\n  lottie.unmute = animationManager.unmute;\n  lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n  lottie.__getFactory = getFactory;\n  lottie.version = \"5.7.8\";\n\n  function checkReady() {\n    if (document.readyState === \"complete\") {\n      clearInterval(readyStateCheckInterval);\n      searchAnimations();\n    }\n  }\n\n  function getQueryVariable(variable) {\n    var vars = queryString.split(\"&\");\n\n    for (var i = 0; i < vars.length; i += 1) {\n      var pair = vars[i].split(\"=\");\n\n      if (decodeURIComponent(pair[0]) == variable) {\n        // eslint-disable-line eqeqeq\n        return decodeURIComponent(pair[1]);\n      }\n    }\n\n    return null;\n  }\n\n  var standalone = \"__[STANDALONE]__\";\n  var animationData = \"__[ANIMATIONDATA]__\";\n  var renderer = \"\";\n  var queryString;\n\n  if (standalone) {\n    var scripts = document.getElementsByTagName(\"script\");\n    var index = scripts.length - 1;\n    var myScript = scripts[index] || {\n      src: \"\"\n    };\n    queryString = myScript.src.replace(/^[^\\?]+\\??/, \"\"); // eslint-disable-line no-useless-escape\n\n    renderer = getQueryVariable(\"renderer\");\n  }\n\n  var readyStateCheckInterval = setInterval(checkReady, 100);\n  return lottie;\n});\nvar exports$1 = exports;\n\nexport default exports$1;\n\n//# sourceMappingURL=npm:lottie-web@5.7.8!cjs.map", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useCallback,useEffect}from\"react\";import{motion,addPropertyControls,ControlType,RenderTarget}from\"framer\";import{defaultEvents}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useAutoMotionValue}from\"https://framer.com/m/framer/useAutoMotionValue.js@0.3.0\";import lottie from\"https://jspm.dev/lottie-web@5.7.8\";var SrcType;(function(SrcType){SrcType[\"File\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));var Poster;(function(Poster){Poster[\"Auto\"]=\"Auto\";Poster[\"Custom\"]=\"Custom\";})(Poster||(Poster={}));const placeholderUrl=\"https://misc.framerstatic.com/lottie/logo.json\";/**\n * LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 350\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Lottie(props){const{style,srcUrl,srcFile,srcType,poster,progress:progressRaw,playing,loop,posterProgress,pauseOnCanvas,isForwardsDirection,speed,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,onComplete}=props;const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldPlay=(!pauseOnCanvas||!isOnCanvas)&&playing;const direction=isForwardsDirection?1:-1;const isCustomPoster=poster===\"Custom\";const el=useRef();const didInitialMount=useRef(false);const animationInfo=useRef({data:null,animation:null,duration:null});const progress=useAutoMotionValue(progressRaw,{transform:v=>v*.01});const play=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.play();};const pause=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.pause();};const destroy=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.destroy();};const scrubTo=useCallback((normalizedProgress,shouldPlayAfter)=>{if(!animationInfo.current.duration||!animationInfo.current.animation)return;// Lottie gets weird when scrubbing to the exact last frame\nconst frameNumberTarget=normalizedProgress===1?animationInfo.current.duration-1:normalizedProgress*animationInfo.current.duration;if(shouldPlayAfter)animationInfo.current.animation.goToAndPlay(frameNumberTarget,true);else animationInfo.current.animation.goToAndStop(frameNumberTarget,true);},[]);const fetchLottieData=useCallback(async url=>{if(!url)return null;const data=await fetch(url,{method:\"GET\",credentials:\"omit\",redirect:\"follow\"}).then(d=>d.json());return data;},[]);// Fetch lottie animation & start setup\nconst init=useCallback(async()=>{// Clear current animation\ndestroy();let dataUrl;if(srcType===\"URL\")dataUrl=srcUrl;if(srcType===\"Upload\")dataUrl=srcFile;if(!dataUrl){console.warn(\"No valid Lottie animation provided\");dataUrl=placeholderUrl;}const data=await fetchLottieData(dataUrl);animationInfo.current.data=data;return setup(didInitialMount.current);},[srcType,srcUrl,srcFile]);// Create Lottie animation\nconst setup=useCallback(shouldPlayAfter=>{if(!el.current)return;destroy();const options={container:el.current,renderer:\"svg\",loop:loop,autoplay:shouldPlay,animationData:animationInfo.current.data,rendererSettings:{preserveAspectRatio:\"xMidYMid slice\"}};const anim=animationInfo.current.animation=lottie.loadAnimation(options);animationInfo.current.duration=anim.getDuration(true);anim.setDirection(direction);anim.setSpeed(speed);didInitialMount.current=true;if(isOnCanvas&&isCustomPoster)scrubTo(posterProgress,false);else scrubTo(progress.get(),shouldPlay||shouldPlayAfter);return()=>{anim.destroy();};},[loop,shouldPlay,speed,direction,isOnCanvas,isCustomPoster,posterProgress]);// Initial setup or re-init when source changes\nuseEffect(()=>{let cleanup;init().then(c=>cleanup=c);return()=>{if(cleanup)cleanup();};},[srcType,srcFile,srcUrl]);// No run-time option for loop option, recreating anim\nuseEffect(()=>{if(!didInitialMount.current)return;return setup(false);},[loop]);// Perf hack lets see if anyone notices\nuseEffect(()=>lottie.setQuality(isOnCanvas?\"low\":\"medium\"),[]);// useEffect(() => {\n//     if (!isOnCanvas) return\n//     const normalizedProgress = progress.get() * 0.01\n//     if (shouldPlay) scrubTo(normalizedProgress, true)\n//     else scrubTo(normalizedProgress, false)\n// }, [progressRaw, shouldPlay])\nuseEffect(()=>progress.onChange(val=>{if(isOnCanvas)return;if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);}),[]);useEffect(()=>{const val=progress.get();if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);},[progressRaw]);useEffect(()=>{if(!isOnCanvas)return;const normalizedPosterProgress=posterProgress*.01;if(isCustomPoster)scrubTo(normalizedPosterProgress,false);else scrubTo(progress.get(),false);},[isCustomPoster,posterProgress]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setDirection(direction);scrubTo(progress.get(),true);},[direction]);useEffect(()=>{if(shouldPlay)play();else pause();},[shouldPlay]);return /*#__PURE__*/_jsx(motion.div,{ref:el,style:style,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp});}Lottie.defaultProps={height:200,width:200,srcType:\"URL\",pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:\"Auto\",posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",placeholder:\"../example.json\",hidden:props=>props.srcType===\"Upload\"},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===\"URL\"},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\npauseOnCanvas:{type:ControlType.Boolean,title:\"Canvas\",disabledTitle:\"Play\",enabledTitle:\"Pause\",hidden:props=>props.playing===false},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},isForwardsDirection:{title:\"Direction\",type:ControlType.Boolean,enabledTitle:\"Normal\",disabledTitle:\"Reverse\"},speed:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5,displayStepper:true,unit:\"x\"},poster:{title:\"Poster\",type:ControlType.Enum,options:[\"Auto\",\"Custom\"],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({poster})=>poster===\"Auto\"},progress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\",description:\"This component is made for JSON files. [Learn more here](https://lottiefiles.com/what-is-lottie).\"},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Lottie\":{\"type\":\"reactComponent\",\"name\":\"Lottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"350\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map"],
  "mappings": "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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAw6HC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAo+dC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA0pLC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAi4BC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmZC,GAAG;AAAA;AAAA,QAAkJC,GAAG;AAAA;AAAA;AAAA;AAAA,QAA2IC,GAAG;AAAA;AAAA;AAAA,QAAmGC,GAAG;AAAA;AAAA;AAAA,QAAgJC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAyaC,GAAG;AAAA;AAAA,QAAuDC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA8WC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmRC,GAAG;AAAA;AAAA;AAAA;AAAA,QAAuLC,GAAG;AAAA;AAAA,QAAyEC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA2VC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA8cC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,QAA2QC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAuqBC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,QAAyQC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAA+yCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAokBC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAqJC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAqJC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAuOC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAy2BC,GAAG;AAAA;AAAA,QAAiFC,GAAG;AAAA;AAAA;AAAA;AAAA,QAAkPC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAuRC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,QAAwKC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uDAA0LC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA0uDC,GAAG;AAAA;AAAA,QAAgFC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAAkSC,GAAG;AAAA;AAAA,QAAoFC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA+UC,GAAG;AAAA;AAAA;AAAA;AAAA,QAAuLC,GAAG;AAAA;AAAA,QAAyEC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAg5SC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAg5CC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAq+CC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA8+CC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,QAAsOC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAolBC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmYC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAydC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAyMC,GAAG;AAAA;AAAA,QAAuEC,GAAG;AAAA;AAAA,QAAiGC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wDAAkmHC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAumCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA+nMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA0nDC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAqrCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAo+DC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA0hCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAqjDC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA4lCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAkvBC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAmrCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAklEC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAowCC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
  "names": ["t", "i", "r", "s", "l", "c", "h", "u", "d", "p", "f", "m", "g", "_", "x", "y", "M", "S", "b", "T", "w", "E", "A", "C", "R", "P", "L", "I", "U", "D", "N", "B", "O", "V", "F", "z", "G", "k", "H", "W", "X", "j", "q", "Y", "K", "Z", "J", "Q", "$", "tt", "et", "nt", "it", "rt", "st", "lt", "ct", "ht", "ut", "dt", "pt", "ft", "mt", "gt", "vt", "_t", "yt", "St", "bt", "wt", "At", "Ct", "Rt", "Pt", "Lt", "It", "Ut", "Dt", "Nt", "Bt", "Ot", "Vt", "Ft", "zt", "Gt", "kt", "Ht", "Wt", "Xt", "jt", "qt", "Yt", "Kt", "Jt", "Qt", "$t", "te", "ee", "ne", "ie", "re", "se", "ae", "oe", "le", "ce", "he", "ue", "de", "pe", "fe", "me", "ge", "ve", "_e", "xe", "ye", "Me", "Se", "be", "Te", "we", "Ee", "Ae", "Ce", "Re", "Ue", "De", "Ne", "Be", "Oe", "Ve", "We", "Xe", "je", "qe", "Ye", "Ke", "Ze", "Je", "Qe", "$e", "tn", "en", "nn", "sn", "xn", "yn", "Mn", "Sn", "bn", "Tn", "wn", "En", "An", "Cn", "Vn", "Fn", "zn", "EventDispatcher", "t", "e", "i", "n", "Gn", "Hn", "Wn", "generateUUID", "t", "n", "i", "Gn", "clamp", "euclideanModulo", "lerp", "t", "n", "denormalize", "t", "normalize", "Vector2", "_Vector2", "t", "e", "i", "clamp", "r", "s", "Matrix3", "_Matrix3", "a", "o", "l", "c", "h", "u", "p", "f", "m", "g", "_", "x", "y", "M", "S", "b", "jn", "arrayNeedsUint32", "createElementNS", "t", "createCanvasElement", "Yn", "warnOnce", "probeAsync", "n", "i", "r", "probe", "Kn", "Matrix3", "Zn", "Jn", "Ze", "$e", "en", "Ke", "tn", "Qe", "nn", "Je", "Qn", "$n", "Ye", "SRGBToLinear", "LinearToSRGB", "ti", "ImageUtils", "e", "ei", "Source", "generateUUID", "serializeImage", "ni", "Texture", "_Texture", "EventDispatcher", "mt", "St", "s", "wt", "a", "Gt", "o", "At", "l", "c", "Vector2", "lt", "ft", "gt", "Vector4", "_Vector4", "h", "u", "p", "f", "m", "g", "_", "x", "y", "M", "RenderTarget", "WebGLRenderTarget", "DataArrayTexture", "vt", "Data3DTexture", "Texture", "t", "e", "i", "vt", "mt", "Quaternion", "t", "e", "i", "r", "s", "a", "o", "l", "c", "h", "u", "p", "f", "n", "clamp", "Vector3", "_Vector3", "ri", "ii", "Box3", "ai", "oi", "fi", "mi", "li", "ci", "hi", "ui", "di", "pi", "satForAxes", "gi", "vi", "_i", "xi", "yi", "Sphere", "Mi", "Si", "bi", "Ti", "wi", "Ei", "Ai", "Ray", "Matrix4", "_Matrix4", "m", "g", "Ci", "Pi", "Li", "Di", "Ii", "Ui", "_", "x", "y", "M", "S", "b", "T", "E", "A", "C", "R", "P", "L", "I", "U", "D", "N", "B", "O", "Ri", "Fn", "zn", "Ni", "Bi", "Euler", "_Euler", "Layers", "Oi", "Vi", "Fi", "zi", "Gi", "ki", "Hi", "Wi", "Xi", "ji", "qi", "Yi", "Ki", "Zi", "Ji", "Object3D", "_Object3D", "EventDispatcher", "generateUUID", "onRotationChange", "onQuaternionChange", "Matrix3", "serialize", "extractFromCache", "Qi", "$i", "tr", "er", "nr", "ir", "rr", "sr", "ar", "or", "Triangle", "_Triangle", "lr", "cr", "hr", "hue2rgb", "Color", "Ke", "$n", "euclideanModulo", "handleAlpha", "SRGBToLinear", "LinearToSRGB", "ur", "lerp", "dr", "Material", "W", "xn", "sn", "MeshBasicMaterial", "K", "pr", "_generateTables", "mr", "Vector3", "gr", "Vector2", "BufferAttribute", "t", "e", "Cn", "Ut", "warnOnce", "i", "r", "denormalize", "normalize", "Uint16BufferAttribute", "BufferAttribute", "t", "e", "Uint32BufferAttribute", "BufferAttribute", "t", "e", "Float32BufferAttribute", "BufferAttribute", "t", "e", "vr", "_r", "Matrix4", "xr", "Object3D", "yr", "Vector3", "Mr", "Box3", "Sr", "br", "BufferGeometry", "_BufferGeometry", "EventDispatcher", "generateUUID", "arrayNeedsUint32", "Uint32BufferAttribute", "Uint16BufferAttribute", "Matrix3", "i", "n", "Sphere", "r", "s", "a", "o", "l", "c", "h", "u", "Vector2", "p", "f", "m", "handleTriangle", "_", "y", "handleVertex", "d", "convertBufferAttribute", "Tr", "wr", "Ray", "Er", "Ar", "Cr", "Rr", "Pr", "Lr", "Ir", "Ur", "Dr", "Nr", "Br", "Or", "Vr", "Fr", "zr", "Mesh", "MeshBasicMaterial", "checkGeometryIntersection", "checkIntersection$1", "Triangle", "BoxGeometry", "_BoxGeometry", "buildPlane", "g", "x", "M", "S", "b", "T", "w", "E", "A", "C", "cloneUniforms", "mergeUniforms", "cloneUniformsGroups", "getUnlitUniformColorSpace", "$n", "Gr", "kr", "Hr", "ShaderMaterial", "Material", "Camera", "Fn", "Wr", "Xr", "jr", "PerspectiveCamera", "Wn", "Hn", "qr", "Yr", "CubeCamera", "zn", "CubeTexture", "Texture", "ct", "WebGLCubeRenderTarget", "WebGLRenderTarget", "St", "wt", "Kr", "Zr", "Jr", "Plane", "Qr", "$r", "Frustum", "WebGLAnimation", "onAnimationFrame", "WebGLAttributes", "createBuffer", "updateBuffer", "get", "remove", "update", "PlaneGeometry", "_PlaneGeometry", "ts", "es", "ns", "is", "rs", "ss", "as", "os", "ls", "cs", "hs", "us", "ds", "ps", "fs", "ms", "gs", "vs", "_s", "xs", "ys", "Ms", "Ss", "bs", "Ts", "ws", "Es", "As", "Cs", "Rs", "Ps", "Ls", "Is", "Us", "Ds", "Ns", "Bs", "Os", "Vs", "Fs", "zs", "Gs", "ks", "Hs", "Ws", "Xs", "js", "qs", "Ys", "Ks", "Zs", "Js", "Qs", "$s", "ta", "ea", "na", "ia", "ra", "sa", "aa", "oa", "la", "ca", "ha", "ua", "da", "pa", "fa", "ma", "ga", "va", "_a", "xa", "ya", "Ma", "Sa", "ba", "Ta", "wa", "Ea", "Aa", "Ca", "Ra", "Pa", "La", "Ia", "Ua", "Da", "Na", "Ba", "Oa", "Va", "Fa", "za", "Ga", "ka", "Ha", "Wa", "Xa", "ja", "qa", "Ya", "Ka", "Za", "Ja", "Qa", "$a", "to", "eo", "no", "io", "ro", "so", "ao", "oo", "lo", "co", "ho", "uo", "po", "fo", "mo", "go", "vo", "_o", "xo", "yo", "Mo", "So", "bo", "To", "wo", "Eo", "Ao", "Co", "Ro", "Po", "Lo", "Io", "Uo", "Do", "No", "Color", "Bo", "Oo", "Vo", "Euler", "Fo", "WebGLBackground", "getBackground", "render", "setClear", "addToRenderList", "pt", "tn", "WebGLBindingStates", "createBindingState", "setup", "getBindingState", "bindVertexArrayObject", "needsUpdate", "saveCache", "setupVertexAttributes", "createVertexArrayObject", "deleteVertexArrayObject", "initAttributes", "enableAttribute", "enableAttributeAndDivisor", "disableUnusedAttributes", "vertexAttribPointer", "Lt", "dispose", "reset", "releaseStatesOfGeometry", "releaseStatesOfProgram", "resetDefaultState", "WebGLBufferRenderer", "setMode", "renderInstances", "renderMultiDraw", "renderMultiDrawInstances", "WebGLCapabilities", "getMaxAnisotropy", "textureFormatReadable", "Gt", "textureTypeReadable", "Dt", "At", "Ut", "getMaxPrecision", "WebGLClipping", "projectPlanes", "resetGlobalState", "WebGLCubeMaps", "mapTextureMapping", "ut", "dt", "ht", "onTextureDispose", "OrthographicCamera", "zo", "Go", "ko", "Ho", "Wo", "Xo", "jo", "qo", "Yo", "Ko", "Zo", "Jo", "PMREMGenerator", "_getCubemapMaterial", "_getEquirectMaterial", "_setViewport", "Ze", "_createRenderTarget", "_createPlanes", "_getBlurShader", "Q", "_getCommonVertexShader", "WebGLCubeUVMaps", "isCubeTextureComplete", "WebGLExtensions", "getExtension", "warnOnce", "WebGLGeometries", "onGeometryDispose", "updateWireframeAttribute", "getWireframeAttribute", "WebGLIndexedBufferRenderer", "setIndex", "WebGLInfo", "WebGLMorphtargets", "Vector4", "disposeTexture", "DataArrayTexture", "R", "P", "I", "D", "U", "WebGLObjects", "onInstancedMeshDispose", "DepthTexture", "Wt", "Xt", "It", "Ot", "vt", "Qo", "$o", "tl", "el", "Data3DTexture", "nl", "il", "rl", "sl", "al", "ol", "flatten", "arraysEqual", "copyArray", "allocTexUnits", "setValueV1f", "setValueV2f", "setValueV3f", "setValueV4f", "setValueM2", "setValueM3", "setValueM4", "setValueV1i", "setValueV2i", "setValueV3i", "setValueV4i", "setValueV1ui", "setValueV2ui", "setValueV3ui", "setValueV4ui", "setValueT1", "bn", "setValueT3D1", "setValueT6", "setValueT2DArray1", "getSingularSetter", "setValueV1fArray", "setValueV2fArray", "setValueV3fArray", "setValueV4fArray", "setValueM2Array", "setValueM3Array", "setValueM4Array", "setValueV1iArray", "setValueV2iArray", "setValueV3iArray", "setValueV4iArray", "setValueV1uiArray", "setValueV2uiArray", "setValueV3uiArray", "setValueV4uiArray", "setValueT1Array", "setValueT3DArray", "setValueT6Array", "setValueT2DArrayArray", "getPureArraySetter", "SingleUniform", "PureArrayUniform", "StructuredUniform", "ll", "addUniform", "parseUniform", "WebGLUniforms", "WebGLShader", "cl", "hl", "handleSource", "getEncodingComponents", "nn", "en", "Qe", "Ke", "Je", "getShaderErrors", "getTexelEncodingFunction", "getToneMappingFunction", "$", "tt", "et", "nt", "rt", "st", "it", "generateVertexExtensions", "filterEmptyLine", "generateDefines", "fetchAttributeLocations", "replaceLightNums", "replaceClippingPlaneNums", "ul", "resolveIncludes", "includeReplacer", "dl", "pl", "unrollLoops", "loopReplacer", "generatePrecision", "generateShadowMapTypeDefine", "generateEnvMapTypeDefine", "generateEnvMapModeDefine", "generateEnvMapBlendingDefine", "K", "Z", "J", "generateCubeUVSize", "WebGLProgram", "Vn", "onFirstUse", "fl", "WebGLShaderCache", "WebGLShaderStage", "WebGLPrograms", "Layers", "getChannel", "getParameters", "L", "N", "B", "O", "V", "F", "z", "G", "k", "H", "W", "X", "j", "q", "Y", "at", "ot", "lt", "ft", "mt", "gt", "_t", "xt", "yt", "Mt", "qe", "je", "getProgramCacheKey", "getProgramCacheKeyParameters", "getProgramCacheKeyBooleans", "getUniforms", "acquireProgram", "releaseProgram", "releaseShaderCache", "WebGLProperties", "painterSortStable", "reversePainterSortStable", "WebGLRenderList", "init", "getNextRenderItem", "push", "unshift", "sort", "finish", "WebGLRenderLists", "UniformsCache", "ShadowUniformsCache", "ml", "shadowCastingAndTexturingLightsFirst", "WebGLLights", "setupView", "WebGLRenderState", "pushLight", "pushShadow", "setupLights", "setupLightsView", "WebGLRenderStates", "MeshDepthMaterial", "We", "MeshDistanceMaterial", "gl", "vl", "WebGLShadowMap", "Xe", "renderObject", "VSMPass", "getDepthMaterial", "onMaterialDispose", "WebGLState", "ColorBuffer", "DepthBuffer", "enable", "disable", "StencilBuffer", "createTexture", "bt", "setFlipSided", "setCullFace", "setBlending", "bindFramebuffer", "drawBuffers", "useProgram", "Tt", "setMaterial", "setPolygonOffset", "setLineWidth", "setScissorTest", "activeTexture", "bindTexture", "unbindTexture", "compressedTexImage2D", "compressedTexImage3D", "texSubImage2D", "texSubImage3D", "compressedTexSubImage2D", "compressedTexSubImage3D", "texStorage2D", "texStorage3D", "texImage2D", "texImage3D", "scissor", "viewport", "updateUBOMapping", "uniformBlockBinding", "getByteLength", "t", "n", "i", "r", "getTextureTypeByteLength", "Ft", "kt", "Ht", "jt", "qt", "Yt", "Kt", "zt", "Gt", "Jt", "Qt", "$t", "te", "ee", "ie", "se", "ne", "re", "ae", "oe", "le", "ce", "he", "ue", "de", "pe", "fe", "me", "ge", "ve", "_e", "xe", "ye", "Me", "Se", "be", "Te", "we", "Ee", "Ae", "Ce", "Re", "At", "Ct", "Pt", "Rt", "Dt", "Nt", "Bt", "It", "Lt", "Ut", "Vt", "WebGLTextures", "t", "n", "i", "r", "s", "a", "o", "l", "navigator", "Vector2", "h", "u", "d", "p", "createCanvas", "e", "createElementNS", "resizeImage", "getDimensions", "textureNeedsGenerateMipmaps", "vt", "St", "generateMipmap", "getInternalFormat", "$e", "$n", "tn", "getInternalDepthFormat", "It", "Ot", "Ut", "Pt", "getMipLevels", "onTextureDispose", "deallocateTexture", "onRenderTargetDispose", "deallocateRenderTarget", "deleteTexture", "f", "resetTextureUnits", "allocateTextureUnit", "getTextureCacheKey", "setTexture2D", "updateVideoTexture", "uploadTexture", "setTexture2DArray", "setTexture3D", "setTextureCube", "uploadCubeTexture", "m", "ft", "mt", "gt", "g", "_t", "yt", "bt", "wt", "_", "yn", "An", "Mn", "bn", "Sn", "En", "Tn", "wn", "setTextureParameters", "initTexture", "c", "Ye", "verifyColorSpace", "x", "y", "M", "S", "b", "Xt", "Gt", "getByteLength", "T", "setupFrameBufferTexture", "useMultisampledRTT", "getRenderTargetSamples", "setupRenderBufferStorage", "setupDepthTexture", "Wt", "setupDepthRenderbuffer", "rebindTextures", "setupRenderTarget", "updateRenderTargetMipmap", "updateMultisampleRenderTarget", "Ze", "At", "WebGLUtils", "convert", "Nt", "Bt", "Vt", "Ct", "Rt", "Lt", "Dt", "Ft", "zt", "kt", "Ht", "jt", "qt", "Yt", "Kt", "Jt", "Qt", "$t", "te", "ee", "ne", "ie", "re", "se", "ae", "oe", "le", "ce", "he", "ue", "de", "pe", "fe", "me", "ge", "ve", "_e", "xe", "ye", "Me", "Se", "be", "Te", "we", "Ee", "Ae", "Ce", "Re", "ArrayCamera", "PerspectiveCamera", "Group", "Object3D", "xl", "WebXRController", "Vector3", "yl", "Ml", "WebXRDepthSensing", "Texture", "ShaderMaterial", "Mesh", "PlaneGeometry", "WebXRManager", "EventDispatcher", "Vector4", "E", "A", "C", "onSessionEvent", "onSessionEnd", "onInputSourcesChange", "I", "WebGLRenderTarget", "DepthTexture", "R", "P", "setProjectionFromUnion", "updateCamera", "updateUserCamera", "Wn", "L", "onAnimationFrame", "WebGLAnimation", "Sl", "Euler", "bl", "Matrix4", "WebGLMaterials", "refreshTransformUniform", "refreshFogUniforms", "getUnlitUniformColorSpace", "refreshMaterialUniforms", "refreshUniformsCommon", "refreshUniformsToon", "refreshUniformsPhong", "refreshUniformsStandard", "refreshUniformsPhysical", "refreshUniformsMatcap", "refreshUniformsDistance", "refreshUniformsLine", "refreshUniformsDash", "refreshUniformsPoints", "refreshUniformsSprites", "WebGLUniformsGroups", "bind", "update", "prepareUniformsGroup", "createBuffer", "onUniformsGroupsDispose", "updateBufferData", "allocateBindingPointIndex", "hasUniformChanged", "getUniformSize", "dispose", "WebGLRenderer", "createCanvasElement", "Ke", "Q", "w", "U", "Color", "D", "N", "B", "O", "V", "F", "z", "G", "k", "H", "Frustum", "W", "X", "j", "q", "Y", "K", "Z", "getTargetPixelRatio", "J", "getContext", "onContextLost", "onContextRestore", "onContextCreationError", "$", "tt", "et", "nt", "it", "rt", "st", "at", "ot", "lt", "ct", "ht", "ut", "dt", "pt", "xt", "Mt", "initGLContext", "WebGLExtensions", "WebGLCapabilities", "WebGLState", "WebGLInfo", "WebGLProperties", "WebGLCubeMaps", "WebGLCubeUVMaps", "WebGLAttributes", "WebGLBindingStates", "WebGLGeometries", "WebGLObjects", "WebGLMorphtargets", "WebGLClipping", "WebGLPrograms", "WebGLRenderLists", "WebGLRenderStates", "WebGLBackground", "WebGLShadowMap", "WebGLBufferRenderer", "WebGLIndexedBufferRenderer", "onXRSessionStart", "onXRSessionEnd", "Et", "onMaterialDispose", "deallocateMaterial", "releaseMaterialProgramReferences", "setProgram", "prepareMaterial", "getProgram", "checkMaterialsReady", "Tt", "projectObject", "renderTransmissionPass", "renderScene", "renderObjects", "renderObject", "updateCommonMaterialProperties", "materialNeedsLights", "getUniformList", "WebGLUniforms", "markUniformsLightsNeedsUpdate", "probeAsync", "Fn", "Je", "Qe", "Scene", "Object3D", "Euler", "t", "e", "Tl", "Vector3", "El", "Vector3", "Al", "Cl", "Rl", "Vector2", "Pl", "Ll", "Matrix4", "Il", "Ul", "Dl", "Nl", "Bl", "Ol", "Vl", "Vector3", "Fl", "zl", "Vector3", "Gl", "Vector4", "kl", "Hl", "Wl", "Matrix4", "Xl", "jl", "Sphere", "ql", "Yl", "Ray", "Kl", "Matrix4", "Zl", "Jl", "Matrix4", "Ql", "tc", "Box3", "ec", "Matrix4", "nc", "Mesh", "ic", "Sphere", "MultiDrawRenderList", "t", "e", "i", "r", "s", "rc", "Matrix4", "sc", "ac", "oc", "Color", "lc", "cc", "Frustum", "hc", "Box3", "uc", "Sphere", "dc", "Vector3", "pc", "fc", "mc", "gc", "Mesh", "_c", "Vector3", "xc", "yc", "Matrix4", "Mc", "Ray", "Sc", "Sphere", "bc", "Tc", "wc", "Vector3", "Ec", "Ac", "Matrix4", "Cc", "Ray", "Rc", "Sphere", "Pc", "Vector3", "Curve", "t", "e", "i", "r", "s", "a", "o", "l", "c", "u", "Vector2", "Vector3", "Matrix4", "n", "h", "clamp", "EllipseCurve", "ArcCurve", "CubicPoly", "init", "Lc", "Ic", "Uc", "Dc", "CatmullRomCurve3", "CatmullRom", "QuadraticBezierP0", "QuadraticBezierP1", "QuadraticBezierP2", "QuadraticBezier", "CubicBezierP0", "CubicBezierP1", "CubicBezierP2", "CubicBezierP3", "CubicBezier", "CubicBezierCurve", "CubicBezierCurve3", "LineCurve", "LineCurve3", "QuadraticBezierCurve", "QuadraticBezierCurve3", "SplineCurve", "Nc", "CurvePath", "Path", "LatheGeometry", "_LatheGeometry", "BufferGeometry", "p", "f", "m", "g", "d", "Float32BufferAttribute", "CapsuleGeometry", "_CapsuleGeometry", "CircleGeometry", "_CircleGeometry", "CylinderGeometry", "_CylinderGeometry", "generateTorso", "generateCap", "_", "x", "y", "M", "ConeGeometry", "_ConeGeometry", "PolyhedronGeometry", "_PolyhedronGeometry", "subdivide", "applyRadius", "generateUVs", "getVertexByIndex", "subdivideFace", "pushVertex", "azimuth", "inclination", "correctUVs", "correctSeam", "correctUV", "DodecahedronGeometry", "_DodecahedronGeometry", "Bc", "Oc", "Vc", "Fc", "Triangle", "EdgesGeometry", "Hn", "Shape", "generateUUID", "zc", "linkedList", "eliminateHoles", "earcutLinked", "signedArea", "insertNode", "equals", "removeNode", "filterPoints", "area", "indexCurve", "isEarHashed", "isEar", "cureLocalIntersections", "splitEarcut", "pointInTriangle", "zOrder", "intersects", "locallyInside", "isValidDiagonal", "splitPolygon", "getLeftmost", "compareX", "eliminateHole", "findHoleBridge", "sectorContainsSector", "sortLinked", "intersectsPolygon", "middleInside", "sign", "onSegment", "Node", "ShapeUtils", "_ShapeUtils", "removeDupEndPts", "addContour", "ExtrudeGeometry", "_ExtrudeGeometry", "addShape", "Gc", "S", "b", "w", "A", "C", "scalePt2", "R", "P", "getBevelVec", "L", "I", "U", "D", "v", "N", "buildLidFaces", "buildSideFaces", "f3", "sidewalls", "f4", "addVertex", "addUV", "toJSON$1", "IcosahedronGeometry", "_IcosahedronGeometry", "OctahedronGeometry", "_OctahedronGeometry", "RingGeometry", "_RingGeometry", "ShapeGeometry", "_ShapeGeometry", "toJSON", "SphereGeometry", "_SphereGeometry", "TetrahedronGeometry", "_TetrahedronGeometry", "TorusGeometry", "_TorusGeometry", "TorusKnotGeometry", "_TorusKnotGeometry", "calculatePositionOnCurve", "TubeGeometry", "_TubeGeometry", "generateBufferData", "generateSegment", "generateIndices", "WireframeGeometry", "isUniqueEdge", "kc", "BoxGeometry", "PlaneGeometry", "convertArray", "t", "n", "isTypedArray", "Interpolant", "t", "e", "i", "r", "s", "n", "a", "CubicInterpolant", "Be", "o", "Oe", "Ve", "l", "c", "h", "u", "p", "f", "m", "g", "_", "x", "y", "LinearInterpolant", "DiscreteInterpolant", "KeyframeTrack", "convertArray", "Ue", "De", "Ne", "isTypedArray", "BooleanKeyframeTrack", "ColorKeyframeTrack", "NumberKeyframeTrack", "QuaternionLinearInterpolant", "Quaternion", "QuaternionKeyframeTrack", "StringKeyframeTrack", "VectorKeyframeTrack", "LoadingManager", "t", "e", "i", "r", "s", "a", "o", "l", "n", "Xc", "Loader", "qc", "Matrix4", "Yc", "Vector3", "Kc", "Zc", "Matrix4", "Jc", "Vector3", "Qc", "ih", "Matrix4", "rh", "sh", "Clock", "t", "now", "e", "ah", "Vector3", "oh", "Quaternion", "lh", "ch", "hh", "Vector3", "uh", "Quaternion", "dh", "ph", "fh", "mh", "gh", "vh", "_h", "xh", "yh", "Mh", "Sh", "bh", "Composite", "t", "e", "i", "PropertyBinding", "r", "_PropertyBinding", "searchNodeSubtree", "n", "s", "a", "o", "Th", "Eh", "Matrix4", "Ah", "Vector2", "Ch", "Vector3", "Rh", "Ph", "Vector3", "Lh", "Vector3", "Ih", "Matrix4", "Uh", "Dh", "Vector3", "Nh", "Color", "Bh", "Oh", "Vector3", "Vh", "Fh", "zh", "Vector3", "Gh", "Camera", "kh", "Box3", "Hh", "Vector3", "t", "window", "vertexShader", "fragmentShader", "useShader", "shader", "containerRef", "color", "backgroundColor", "speed", "glow", "layers", "size", "ue", "container", "width", "height", "scene", "Scene", "camera", "OrthographicCamera", "renderer", "WebGLRenderer", "window", "uniforms", "Vector2", "Color", "material", "ShaderMaterial", "plane", "PlaneGeometry", "mesh", "Mesh", "clock", "Clock", "animate", "handleResize", "newWidth", "newHeight", "resizeObserver", "Plasma", "props", "pe", "p", "addPropertyControls", "ControlType", "fontStore", "fonts", "css", "className", "enabledGestures", "cycleOrder", "serializationHash", "variantClassNames", "addPropertyOverrides", "overrides", "variants", "nextOverrides", "variant", "transition1", "Transition", "value", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "Variants", "motion", "x", "humanReadableVariantMap", "getProps", "height", "id", "title", "width", "props", "createLayoutDependency", "Component", "Y", "ref", "fallbackRef", "pe", "refBinding", "defaultLayoutId", "ae", "activeLocale", "setLocale", "useLocaleInfo", "componentViewport", "useComponentViewport", "style", "className", "layoutId", "Fiu8QoOmF", "restProps", "baseVariant", "classNames", "clearLoadingGesture", "gestureHandlers", "gestureVariant", "isLoading", "setGestureState", "setVariant", "useVariantState", "layoutDependency", "scopingClassNames", "cx", "isDisplayed", "LayoutGroup", "Link", "u", "RichText", "css", "FramerZzFqlwOYd", "withCSS", "ZzFqlwOYd_default", "addPropertyControls", "ControlType", "addFonts", "containerStyles", "emptyStateStyle", "defaultEvents", "ControlType", "fontSizeOptions", "fontControls", "font", "useConstant", "init", "ref", "pe", "useIsOnCanvas", "se", "RenderTarget", "useRadius", "props", "borderRadius", "isMixedBorderRadius", "topLeftRadius", "topRightRadius", "bottomRightRadius", "bottomLeftRadius", "se", "borderRadiusControl", "ControlType", "paddingControl", "ControlType", "isMotionValue", "v", "MotionValue", "useAutoMotionValue", "inputValue", "options", "optionsRef", "pe", "animation", "didInitialMount", "isOnCanvas", "RenderTarget", "onChangeDeps", "onChange", "te", "transformer", "value", "ref", "value1", "useConstant", "isMotionValue", "motionValue", "ue", "ref1", "newValue", "ref2", "animate2", "_global", "global", "exports", "navigator", "root", "factory", "window", "propertyNames", "i", "len", "val", "tOfVal", "absArr", "flag", "element", "type", "currentTime", "totalTime", "frameMultiplier", "totalLoops", "currentLoop", "firstFrame", "totalFrames", "target", "nativeError", "_count", "h", "s", "v", "r", "g", "b", "f", "p", "q", "t", "max", "min", "d", "color", "offset", "hsv", "colorMap", "hex", "eventName", "args", "callback", "createRegularArray", "arr", "value", "createTypedArrayFactory", "prop", "container", "blendModeEnums", "mode", "_cos", "_sin", "_tan", "_rnd", "reset", "rotate", "angle", "mCos", "mSin", "rotateX", "rotateY", "rotateZ", "shear", "sx", "sy", "skew", "ax", "ay", "skewFromAxis", "scale", "sz", "setTransform", "a", "c", "e", "j", "k", "l", "m", "n", "o", "translate", "tx", "ty", "tz", "transform", "a2", "b2", "c2", "d2", "e2", "f2", "g2", "h2", "i2", "j2", "k2", "l2", "m2", "n2", "o2", "p2", "_p", "a1", "b1", "c1", "d1", "e1", "f1", "g1", "h1", "i1", "j1", "k1", "l1", "m1", "n1", "o1", "p1", "isIdentity", "equals", "matr", "clone", "cloneFromProps", "props", "applyToPoint", "x", "y", "z", "applyToX", "applyToY", "applyToZ", "getInverseMatrix", "determinant", "inverseMatrix", "inversePoint", "pt", "inversePoints", "pts", "retPts", "applyToTriplePoints", "pt1", "pt2", "pt3", "p0", "p4", "p5", "p12", "p13", "applyToPointArray", "applyToPointStringified", "toCSS", "cssValue", "roundMatrixProperty", "to2dCSS", "_a", "_b", "_c", "_d", "_e", "_f", "pool", "math", "width", "chunks", "digits", "rngname", "startdenom", "significance", "overflow", "mask", "nodecrypto", "seedrandom", "seed", "options", "key", "shortseed", "mixkey", "flatten", "tostring", "autoseed", "arc4", "ARC4", "prng", "is_math_call", "state", "copy", "keylen", "me", "count", "obj", "depth", "result", "typ", "stringseed", "smear", "out", "browser", "plugins", "ob", "getBezierEasing", "beziers", "nm", "str", "bezEasing", "BezierEasing", "NEWTON_ITERATIONS", "NEWTON_MIN_SLOPE", "SUBDIVISION_PRECISION", "SUBDIVISION_MAX_ITERATIONS", "kSplineTableSize", "kSampleStepSize", "float32ArraySupported", "A", "aA1", "aA2", "B", "C", "calcBezier", "aT", "getSlope", "binarySubdivide", "aX", "aA", "aB", "mX1", "mX2", "currentX", "currentT", "newtonRaphsonIterate", "aGuessT", "currentSlope", "points", "mY1", "mY2", "mSampleValues", "intervalStart", "currentSample", "lastSample", "dist", "guessForT", "initialSlope", "lastTime", "vendors", "currTime", "timeToCall", "id", "sources", "destination", "sourcePrototype", "attr", "object", "prototype", "ProxyFunction", "pointOnLine2D", "x1", "y1", "x2", "y2", "x3", "y3", "det1", "pointOnLine3D", "z1", "z2", "z3", "dist1", "dist2", "dist3", "diffDist", "getBezierLength", "pt4", "curveSegments", "ptCoord", "perc", "addedLength", "ptDistance", "point", "lastPoint", "lengthData", "getSegmentsLength", "shapeData", "segmentsLength", "closed", "pathV", "pathO", "pathI", "lengths", "totalLength", "BezierData", "length", "PointData", "partial", "buildBezierData", "storedData", "bezierName", "bezierData", "getDistancePerc", "percents", "initPos", "lengthPos", "lPerc", "dir", "getPointInSegment", "percent", "t1", "u1", "ptX", "ptY", "bezierSegmentPoints", "getNewSegment", "startPerc", "endPerc", "t0", "u0", "u0u0u0", "t0u0u0_3", "t0t0u0_3", "t0t0t0", "u0u0u1", "t0u0u1_3", "t0t0u1_3", "t0t0t1", "u0u1u1", "t0u1u1_3", "t0t1u1_3", "t0t1t1", "u1u1u1", "t1u1u1_3", "t1t1u1_3", "t1t1t1", "completeLayers", "layers", "comps", "fontManager", "layerData", "jLen", "kLen", "maskProps", "convertPathsToAbsoluteValues", "findCompLayers", "completeShapes", "completeText", "path", "checkVersion", "minimum", "animVersionString", "animVersion", "checkText", "minimumVersion", "updateTextLayer", "textLayer", "documentData", "iterateLayers", "animationData", "checkChars", "pathData", "paths", "checkColors", "iterateShapes", "shapes", "checkShapes", "completeClosingShapes", "completeData", "data", "moduleOb", "fontData", "styles", "fWeight", "fStyle", "styleName", "maxWaitingTime", "emptyChar", "combinedCharacters", "trimFontOptions", "font", "familyArray", "enabledFamilies", "setUpNode", "family", "parentNode", "node", "checkLoadedFonts", "w", "loadedCount", "createHelper", "def", "tHelper", "fontProps", "tCanvasHelper", "addFonts", "defs", "fontArr", "_pendingFonts", "shouldLoadFont", "loadedSelector", "sc", "addChars", "chars", "found", "getCharData", "char", "style", "measureText", "fontName", "size", "index", "doubleSize", "singleSize", "getFontByName", "name", "getCombinedCharacterCodes", "setIsLoaded", "Font", "fontPrototype", "initFrame", "mathAbs", "interpolateValue", "frameNum", "caching", "offsetTime", "newValue", "iterationIndex", "keyData", "nextKeyData", "fnc", "nextKeyTime", "keyTime", "endValue", "ind", "distanceInLine", "segmentPerc", "outX", "outY", "inX", "inY", "keyValue", "quatStart", "createQuaternion", "quatEnd", "time", "quaternionToEuler", "slerp", "az", "aw", "bx", "by", "bz", "bw", "omega", "cosom", "sinom", "scale0", "scale1", "quat", "qx", "qy", "qz", "qw", "heading", "attitude", "bank", "values", "c3", "s1", "s2", "s3", "getValueAtCurrentTime", "initTime", "endTime", "renderResult", "setVValue", "multipliedValue", "processEffectsSequence", "finalValue", "addEffect", "effectFunction", "ValueProperty", "elem", "mult", "MultiDimensionalProperty", "KeyframedValueProperty", "KeyframedMultidimensionalProperty", "to", "ti", "arrLen", "getProp", "defaultVector", "applyToMatrix", "mat", "_mdf", "processKeys", "forceRender", "frameRate", "v1", "v2", "px", "py", "precalculateMatrix", "autoOrient", "addDynamicProperty", "TransformProperty", "getTransformProperty", "pos", "replace", "vX", "vY", "oX", "oY", "iX", "iY", "newPath", "vertices", "outPoints", "inPoints", "init", "cnt", "interpolateShape", "previousValue", "keyPropS", "keyPropE", "isHold", "vertexValue", "kf", "interpolateShapeCurrentTime", "lastFrame", "resetShape", "shapesEqual", "shape1", "shape2", "ShapeProperty", "KeyframedShapeProperty", "EllShapeProperty", "cPoint", "EllShapePropertyFactory", "s0", "_cw", "_v", "StarShapeProperty", "StarShapePropertyFactory", "numPts", "longFlag", "longRad", "shortRad", "longRound", "shortRound", "longPerimSegment", "shortPerimSegment", "rad", "roundness", "perimSegment", "currentAng", "ox", "oy", "RectShapeProperty", "RectShapePropertyFactory", "v0", "round", "getShapeProp", "dataProp", "keys", "getConstructorFunction", "getKeyframedConstructorFunction", "modifiers", "registerModifier", "getModifier", "shapeLength", "totalModifierLength", "segments", "shapeSegments", "segmentOb", "shapeS", "shapeE", "pathsData", "_isFirstFrame", "_s", "shapePaths", "totalShapeLength", "localShapeCollection", "edges", "newShapesData", "lastShapeInCollection", "lastShape", "newPaths", "shapePath", "newShape", "shapeSegment", "currentLengthData", "segmentCount", "segment", "segmentLength", "clonedPath", "currentV", "currentI", "currentO", "closerV", "distance", "newPosPerc", "rd", "amount", "centerPoint", "pathLength", "pMatrix", "rMatrix", "sMatrix", "inv", "scaleX", "scaleY", "elemsData", "elements", "newElements", "renderFlag", "items", "itemsTransform", "cont", "hasReloaded", "copies", "group", "elems", "transformData", "offsetModulo", "roundOffset", "pProps", "rProps", "sProps", "iteration", "renderer", "cLength", "diff", "pathNodes", "_o", "_i", "shapeString", "AudioController", "audioFactory", "audio", "rateValue", "assetPath", "proxyImage", "canvas", "ctx", "imageLoaded", "footageLoaded", "getAssetsPath", "assetData", "assetsPath", "originalPath", "imagePath", "testImageLoaded", "img", "intervalId", "box", "createImageData", "createImgData", "createFootageData", "footageData", "loadAssets", "assets", "cb", "setPath", "setAssetsPath", "getAsset", "destroy", "loadedImages", "loadedFootages", "setCacheType", "elementHelper", "ImagePreloaderFactory", "createFilter", "createAlphaToLuminanceFilter", "filId", "skipCoordinates", "fil", "feColorMatrix", "formatResponse", "xhr", "loadAsset", "errorCallback", "response", "err", "textData", "renderType", "animatorProps", "lettersChangedFlag", "alignment", "animators", "matrixHelper", "renderedLettersCount", "xPos", "yPos", "letters", "pathInfo", "currentLength", "currentPoint", "pointInd", "segmentInd", "prevPoint", "partialLength", "tanAngle", "yOff", "firstLine", "animatorSelector", "letterValue", "offf", "xPathPos", "yPathPos", "initPathPos", "initSegmentInd", "initPointInd", "currentLine", "elemOpacity", "sw", "fc", "letterSw", "letterSc", "letterFc", "letterM", "letterP", "letterO", "animatorJustifyOffset", "animatorFirstCharOffset", "justifyOffsetMult", "lastIndex", "isNewLine", "animatorOffset", "rot", "defaultData", "textAnimatorAnimatables", "updated", "_finalValue", "currentValue", "currentIndex", "textKeys", "text", "charactersArray", "charCode", "newLineFlag", "anchorGrouping", "currentSize", "currentPos", "lineWidths", "lineWidth", "maxLineWidth", "charData", "trackingOffset", "boxWidth", "boxHeight", "currentHeight", "finalText", "lastSpaceIndex", "uncollapsedSpaces", "currentChar", "animatorData", "letterData", "based", "indexes", "currentInd", "newInd", "newData", "dData", "_canResize", "_fontValue", "floor", "TextSelectorPropFactory", "easer", "tot", "newCharsFlag", "divisor", "getTextSelectorProp", "initialLength", "_create", "_release", "_length", "_maxLength", "newElement", "release", "double", "create", "shape", "cloned", "newShapeCollection", "shapeCollection", "parsePayloadLines", "payload", "lines", "line", "keysCount", "_markers", "markers", "_marker", "markerData", "num", "layer", "newLayers", "pInterface", "parentName", "hierarchy", "comp", "animData", "fontsContainer", "animationItem", "config", "ariaLabel", "titleElement", "titleId", "descElement", "descId", "maskElement", "rect", "maskId", "nextElement", "cProps", "trProps", "op", "actionFlag", "popped", "containerStyle", "origin", "elementWidth", "elementHeight", "elementRel", "animationRel", "par", "fillType", "newDOMElement", "nextDOMElement", "nextLayer", "tmpDOMElement", "perspectiveElem", "center", "matrix", "threeDContainerData", "lastThreeDContainerData", "currentContainer", "resizerElem", "wrapper", "svg", "cWidth", "cHeight", "floatingContainer", "globalData", "properties", "currentMasks", "layerId", "expansor", "feMorph", "maskType", "maskRef", "filterID", "isFirstFrame", "finalMat", "viewData", "pathString", "pathShapeValue", "isVisible", "transforms", "ptNew", "component", "_prototype", "position", "level", "transformers", "mProps", "styleOb", "pathElement", "gradientId", "gfill", "stops", "stop", "opacityId", "opFill", "_identityMatrix", "_matrixHelper", "createRenderFunction", "renderFill", "renderGradient", "renderGradientStroke", "renderStroke", "renderPath", "renderContentTransform", "styleData", "itemData", "pathStringTransformed", "redraw", "lLen", "lvl", "iterations", "styleElem", "hasOpacity", "attr1", "attr2", "cValues", "oValues", "ang", "sequence", "transformsManager", "styledShape", "effectsInterface", "blendModeValue", "layerElementParent", "gg", "masker", "maskGroup", "maskGrouper", "feCTr", "feFunc", "alphaRect", "cp", "clipId", "cpGroup", "shouldBreakProcess", "shapeStr", "_fontSize", "lineNumber", "colorData", "timeRemapped", "volumeValue", "textArray", "textContents", "currentTextContent", "usesGlyphs", "tSpan", "singleShape", "tElement", "justify", "textContent", "cachedSpansLength", "textBox", "renderedLetters", "renderedLetter", "textSpan", "tempShapes", "areAnimated", "elementData", "GradientConstructor", "transformProperty", "ownTransformers", "shapeProperty", "itemsData", "prevViewData", "render", "ownStyles", "ownModifiers", "currentTransform", "modifier", "processedPos", "animatedContent", "filter", "filterManager", "feMerge", "feMergeNode", "colorBlack", "colorWhite", "opacity", "feGaussianBlur", "kBlurrinessToSigma", "sigma", "dimensions", "sigmaX", "sigmaY", "edgeMode", "elemChildren", "groupPath", "dasharrayValue", "lineLength", "units", "feComponentTransfer", "feFuncR", "feFuncG", "feFuncB", "color1", "color2", "color3", "tableR", "tableG", "tableB", "effectElements", "inputBlack", "inputWhite", "gamma", "outputBlack", "outputWhite", "table", "colorValue", "outputDelta", "inputDelta", "filterSize", "feOffset", "feFlood", "feComposite", "col", "filterElem", "symbolId", "children", "nextChild", "useElem", "symbol", "newLength", "currentSavedOp", "forceRealStack", "imgW", "imgH", "imgRel", "canvasRel", "widthCrop", "heightCrop", "hasMasks", "shouldRender", "ownTransforms", "parentTransform", "groupTransform", "nodes", "currentStyle", "isMain", "shapeNodes", "groupTransformMat", "grd", "hasFill", "hasStroke", "commands", "pathArr", "lastFill", "lastStroke", "lastStrokeW", "transformedElementStyle", "matrixValue", "item", "boundingBox", "vPoint", "oPoint", "nextIPoint", "nextVPoint", "bounds", "p3", "b2ac", "t2", "tempBoundingBox", "changed", "shapeStyle", "shapeTransform", "innerElemStyle", "textColor", "tParent", "tCont", "tContStyle", "tContTranslation", "tStyle", "tSpanTranslation", "svgStyle", "translation", "textPath", "margin", "svgTransform", "perspectiveStyle", "perspective", "mTransf", "diffVector", "mag", "lookDir", "lookLengthOnXZ", "mRotationX", "mRotationY", "hasMatrixChanged", "matValue", "registeredAnimations", "playingAnimationsNum", "_stopped", "_isFrozen", "removeElement", "ev", "animItem", "subtractPlayingCount", "registerAnimation", "setupAnimation", "getRegisteredAnimations", "lenAnims", "animations", "addPlayingCount", "activate", "loadAnimation", "params", "setSpeed", "animation", "setDirection", "play", "resume", "nowTime", "elapsedTime", "first", "pause", "goToAndStop", "isFrame", "togglePause", "searchAnimations", "standalone", "animElements", "body", "div", "resize", "freeze", "unfreeze", "setVolume", "mute", "unmute", "animType", "wrapperAttributes", "loop", "autoplay", "prerender", "segmentPath", "error", "markerName", "marker", "numValue", "nextValue", "_isComplete", "end", "pendingFrame", "forceFlag", "initExpressions", "stackCount", "registers", "pushExpression", "popExpression", "releaseInstances", "registerExpressionProperty", "expression", "tOfV", "tOfA", "lenA", "retArr", "tOfB", "lenB", "mm", "arr1", "arr2", "vec", "tMin", "tMax", "value1", "value2", "_tMin", "rnd", "rndm", "inTangents", "outTangents", "arrPlaceholder", "inVertexPoint", "outVertexPoint", "wiggle", "freq", "amp", "iWiggle", "lenWiggle", "addedAmps", "periods", "duration", "elem1", "elem2", "fVec", "pitch", "yaw", "val1", "val2", "fn", "iKey", "lenKey", "obKey", "frames", "fps", "framesPerSecond", "_value", "searchExpressions", "getValueAtTime", "getSpeedAtTime", "delta", "speed", "getVelocityAtTime", "velocity", "getStaticValueAtTime", "setGroupProperty", "propertyGroup", "addPropertyDecorator", "loopOut", "durationFlag", "currentFrame", "keyframes", "lastKeyFrame", "cycleDuration", "firstKeyFrame", "ret", "initV", "endV", "current", "repeats", "lastValue", "nextLastValue", "loopIn", "firstValue", "nextFirstValue", "smooth", "samples", "endFrame", "sampleFrequency", "sampleValue", "getTransformValueAtTime", "anchor", "skewAxis", "rotation", "rotationZ", "rotationY", "rotationX", "orientation", "positionX", "positionY", "positionZ", "getTransformStaticValueAtTime", "propertyGetProp", "getShapeValueAtTime", "ShapePropertyConstructorFunction", "KeyframedShapePropertyConstructorFunction", "ShapeExpressions", "accumulatedLength", "initIndex", "endIndex", "vectorType", "xLength", "yLength", "magnitude", "unitVector", "propertyGetShapeProp", "trims", "addDecorator", "isKeyframed", "hasExpressions", "view", "interfaceFunction", "_propertyGroup", "parentPropertyGroup", "propertyName", "iterateElements", "groupInterfaceFactory", "fillInterfaceFactory", "strokeInterfaceFactory", "trimInterfaceFactory", "ellipseInterfaceFactory", "starInterfaceFactory", "rectInterfaceFactory", "roundedInterfaceFactory", "repeaterInterfaceFactory", "contentsInterfaceFactory", "interfaces", "transformInterface", "transformInterfaceFactory", "content", "_dashPropertyGroup", "dashOb", "addPropertyToDashOb", "_interfaceFunction", "parentGroupWrapper", "_prevValue", "_sourceText", "_thisLayerFunction", "stringValue", "getMatrix", "toWorldMat", "propMatrix", "transformMat", "toWorldVec", "toWorld", "fromWorldVec", "fromWorld", "applyPoint", "invertPoint", "fromComp", "sampleImage", "_registerMaskInterface", "maskManager", "_registerEffectsInterface", "effects", "anchorPointDescriptor", "outlineInterfaceFactory", "currentPropertyName", "currentProperty", "searchProperty", "propertyNameIndex", "dataInterfaceFactory", "_thisFunction", "_px", "_py", "_pz", "_transformFactory", "registerComposition", "_thisProjectFunction", "createEffectsInterface", "effectsData", "createGroupInterface", "groupInterface", "createValueInterface", "expressionProperty", "MaskInterface", "MaskManager", "_masksInterfaces", "maskFunction", "defaultUnidimensionalValue", "defaultMultidimensionalValue", "completeProperty", "expressionValue", "property", "valueProp", "UnidimensionalPropertyInterface", "MultidimensionalPropertyInterface", "arrValue", "defaultGetter", "TextExpressionSelectorProp", "getValueProxy", "total", "propertyGetTextProp", "effectItem", "eff", "href", "plugin", "variable", "vars", "pair", "exports$1", "npm_lottie_web_5_7_default", "SrcType", "Poster", "placeholderUrl", "Lottie", "props", "style", "srcUrl", "srcFile", "srcType", "poster", "progressRaw", "playing", "loop", "posterProgress", "pauseOnCanvas", "isForwardsDirection", "speed", "onClick", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onComplete", "isOnCanvas", "RenderTarget", "shouldPlay", "direction", "isCustomPoster", "el", "pe", "didInitialMount", "animationInfo", "progress", "useAutoMotionValue", "v", "play", "_animationInfo_current_animation", "_animationInfo_current", "pause", "destroy", "scrubTo", "te", "normalizedProgress", "shouldPlayAfter", "frameNumberTarget", "fetchLottieData", "url", "d", "init", "dataUrl", "data", "setup", "options", "anim", "npm_lottie_web_5_7_default", "ue", "cleanup", "c", "val", "normalizedPosterProgress", "p", "motion", "addPropertyControls", "ControlType", "defaultEvents"]
}
