浏览代码

Updated builds.

Mr.doob 5 年之前
父节点
当前提交
fb6cf2dc86
共有 3 个文件被更改,包括 204 次插入155 次删除
  1. 25 1
      build/three.js
  2. 154 153
      build/three.min.js
  3. 25 1
      build/three.module.js

+ 25 - 1
build/three.js

@@ -28859,6 +28859,21 @@
 
 		this.generateMipmaps = false;
 
+		var scope = this;
+
+		function updateVideo() {
+
+			scope.needsUpdate = true;
+			video.requestVideoFrameCallback( updateVideo );
+
+		}
+
+		if ( 'requestVideoFrameCallback' in video ) {
+
+			video.requestVideoFrameCallback( updateVideo );
+
+		}
+
 	}
 
 	VideoTexture.prototype = Object.assign( Object.create( Texture.prototype ), {
@@ -28870,8 +28885,9 @@
 		update: function () {
 
 			var video = this.image;
+			var hasVideoFrameCallback = 'requestVideoFrameCallback' in video;
 
-			if ( video.readyState >= video.HAVE_CURRENT_DATA ) {
+			if ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {
 
 				this.needsUpdate = true;
 
@@ -37048,6 +37064,7 @@
 
 			var loader = new FileLoader( scope.manager );
 			loader.setPath( scope.path );
+			loader.setRequestHeader( scope.requestHeader );
 			loader.load( url, function ( text ) {
 
 				try {
@@ -37122,6 +37139,7 @@
 			var loader = new FileLoader( this.manager );
 			loader.setPath( this.path );
 			loader.setResponseType( 'arraybuffer' );
+			loader.setRequestHeader( this.requestHeader );
 
 			var loaded = 0;
 
@@ -37246,6 +37264,7 @@
 
 			var loader = new FileLoader( this.manager );
 			loader.setResponseType( 'arraybuffer' );
+			loader.setRequestHeader( this.requestHeader );
 			loader.setPath( this.path );
 			loader.load( url, function ( buffer ) {
 
@@ -40593,6 +40612,7 @@
 
 			var loader = new FileLoader( scope.manager );
 			loader.setPath( scope.path );
+			loader.setRequestHeader( scope.requestHeader );
 			loader.load( url, function ( text ) {
 
 				try {
@@ -41031,6 +41051,7 @@
 
 			var loader = new FileLoader( scope.manager );
 			loader.setPath( scope.path );
+			loader.setRequestHeader( scope.requestHeader );
 			loader.load( url, function ( text ) {
 
 				try {
@@ -41253,6 +41274,7 @@
 
 			var loader = new FileLoader( scope.manager );
 			loader.setPath( this.path );
+			loader.setRequestHeader( this.requestHeader );
 			loader.load( url, function ( text ) {
 
 				var json = null;
@@ -42737,6 +42759,7 @@
 
 			var loader = new FileLoader( this.manager );
 			loader.setPath( this.path );
+			loader.setRequestHeader( this.requestHeader );
 			loader.load( url, function ( text ) {
 
 				var json;
@@ -42817,6 +42840,7 @@
 			var loader = new FileLoader( scope.manager );
 			loader.setResponseType( 'arraybuffer' );
 			loader.setPath( scope.path );
+			loader.setRequestHeader( scope.requestHeader );
 			loader.load( url, function ( buffer ) {
 
 				try {

+ 154 - 153
build/three.min.js

@@ -235,113 +235,114 @@ Kc.x-e*Kc.y,Ld.y=e*Kc.x+f*Kc.y):Ld.copy(Kc);a.copy(b);a.x+=Ld.x;a.y+=Ld.y;a.appl
 b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);this.frame=-1;if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new T)}function ng(){y.call(this);this.type="Bone"}function Qe(a,b,c){Z.call(this,a,b);this.instanceMatrix=new F(new Float32Array(16*c),16);this.count=
 c;this.frustumCulled=!1}function ia(a){K.call(this);this.type="LineBasicMaterial";this.color=new H(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.morphTargets=!1;this.setValues(a)}function Ja(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");y.call(this);this.type="Line";this.geometry=void 0!==a?a:new D;this.material=void 0!==b?b:new ia;this.updateMorphTargets()}function da(a,b){Ja.call(this,a,b);this.type=
 "LineSegments"}function Re(a,b){Ja.call(this,a,b);this.type="LineLoop"}function Wa(a){K.call(this);this.type="PointsMaterial";this.color=new H(16777215);this.alphaMap=this.map=null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Lc(a,b){y.call(this);this.type="Points";this.geometry=void 0!==a?a:new D;this.material=void 0!==b?b:new Wa;this.updateMorphTargets()}function og(a,b,c,d,e,f,g){var h=pg.distanceSqToPoint(a);h<c&&(c=new m,pg.closestPointToPoint(a,c),c.applyMatrix4(d),
-a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}function qg(a,b,c,d,e,f,g,h,l){V.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function Mc(a,b,c,d,e,f,g,h,l,n,q,p){V.call(this,null,f,g,h,l,n,d,e,q,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Nd(a,b,c,d,e,f,g,h,l){V.call(this,
-a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Od(a,b,c,d,e,f,g,h,l,n){n=void 0!==n?n:1026;if(1026!==n&&1027!==n)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===n&&(c=1012);void 0===c&&1027===n&&(c=1020);V.call(this,null,d,e,f,g,h,n,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Nc(a){D.call(this);this.type="WireframeGeometry";var b=
-[],c=[0,0],d={},e=["a","b","c"];if(a&&a.isGeometry){for(var f=a.faces,g=0,h=f.length;g<h;g++)for(var l=f[g],n=0;3>n;n++){var q=l[e[n]],p=l[e[(n+1)%3]];c[0]=Math.min(q,p);c[1]=Math.max(q,p);q=c[0]+","+c[1];void 0===d[q]&&(d[q]={index1:c[0],index2:c[1]})}for(var k in d)c=d[k],f=a.vertices[c.index1],b.push(f.x,f.y,f.z),f=a.vertices[c.index2],b.push(f.x,f.y,f.z)}else if(a&&a.isBufferGeometry)if(k=new m,null!==a.index){e=a.attributes.position;g=a.index;a=a.groups;0===a.length&&(a=[{start:0,count:g.count,
-materialIndex:0}]);h=0;for(l=a.length;h<l;++h)for(q=a[h],n=p=q.start,q=p+q.count;n<q;n+=3)for(p=0;3>p;p++){var r=g.getX(n+p),t=g.getX(n+(p+1)%3);c[0]=Math.min(r,t);c[1]=Math.max(r,t);r=c[0]+","+c[1];void 0===d[r]&&(d[r]={index1:c[0],index2:c[1]})}for(f in d)c=d[f],k.fromBufferAttribute(e,c.index1),b.push(k.x,k.y,k.z),k.fromBufferAttribute(e,c.index2),b.push(k.x,k.y,k.z)}else for(d=a.attributes.position,c=0,f=d.count/3;c<f;c++)for(a=0;3>a;a++)k.fromBufferAttribute(d,3*c+a),b.push(k.x,k.y,k.z),k.fromBufferAttribute(d,
-3*c+(a+1)%3),b.push(k.x,k.y,k.z);this.setAttribute("position",new C(b,3))}function Pd(a,b,c){J.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Oc(a,b,c));this.mergeVertices()}function Oc(a,b,c){D.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new m,l=new m,n=new m,q=new m,k=new m;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");
-for(var v=b+1,r=0;r<=c;r++)for(var t=r/c,u=0;u<=b;u++){var z=u/b;a(z,t,l);e.push(l.x,l.y,l.z);0<=z-1E-5?(a(z-1E-5,t,n),q.subVectors(l,n)):(a(z+1E-5,t,n),q.subVectors(n,l));0<=t-1E-5?(a(z,t-1E-5,n),k.subVectors(l,n)):(a(z,t+1E-5,n),k.subVectors(n,l));h.crossVectors(q,k).normalize();f.push(h.x,h.y,h.z);g.push(z,t)}for(a=0;a<c;a++)for(h=0;h<b;h++)l=a*v+h+1,n=(a+1)*v+h+1,q=(a+1)*v+h,d.push(a*v+h,l,q),d.push(l,n,q);this.setIndex(d);this.setAttribute("position",new C(e,3));this.setAttribute("normal",new C(f,
-3));this.setAttribute("uv",new C(g,2))}function Qd(a,b,c,d){J.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new ha(a,b,c,d));this.mergeVertices()}function ha(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}D.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,
-radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new m,d=new m,g=new m,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);for(var l=c,n=d,k=g,A=Math.pow(2,a),x=[],w=0;w<=A;w++){x[w]=[];for(var W=l.clone().lerp(k,w/A),N=n.clone().lerp(k,w/A),B=A-w,y=0;y<=B;y++)x[w][y]=0===y&&w===A?W:W.clone().lerp(N,y/B)}for(l=0;l<A;l++)for(n=0;n<2*(A-l)-1;n++)k=Math.floor(n/2),0===n%2?(e(x[l][k+1]),e(x[l+1][k]),e(x[l][k])):(e(x[l][k+1]),e(x[l+1][k+1]),e(x[l+1][k]))}})(d);(function(a){for(var b=
-new m,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new m,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new m;b=new m;for(var c=new m,d=new m,e=new w,f=new w,k=new w,z=0,A=0;z<h.length;z+=9,A+=6){a.set(h[z+0],h[z+1],h[z+2]);b.set(h[z+3],h[z+4],h[z+5]);c.set(h[z+6],h[z+7],h[z+8]);e.set(l[A+0],
-l[A+1]);f.set(l[A+2],l[A+3]);k.set(l[A+4],l[A+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,A+0,a,x);g(f,A+2,b,x);g(k,A+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.setAttribute("position",new C(h,3));this.setAttribute("normal",new C(h.slice(),3));this.setAttribute("uv",new C(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Rd(a,
-b){J.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Pc(a,b));this.mergeVertices()}function Pc(a,b){ha.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Sd(a,b){J.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new bc(a,b));this.mergeVertices()}function bc(a,b){ha.call(this,[1,0,0,
--1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Td(a,b){J.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Qc(a,b));this.mergeVertices()}function Qc(a,b){var c=(1+Math.sqrt(5))/2;ha.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[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],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Ud(a,b){J.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rc(a,b));this.mergeVertices()}function Rc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;ha.call(this,[-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,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,
-0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[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],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Vd(a,b,c,d,e,f){J.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,
-closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new cc(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function cc(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(var n=0;n<=d;n++){var p=n/d*Math.PI*2,r=Math.sin(p);p=-Math.cos(p);l.x=p*f.x+r*e.x;l.y=p*f.y+r*e.y;l.z=p*f.z+r*e.z;l.normalize();v.push(l.x,l.y,l.z);h.x=q.x+c*l.x;h.y=q.y+c*l.y;
-h.z=q.z+c*l.z;k.push(h.x,h.y,h.z)}}D.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new m,l=new m,n=new w,q=new m,k=[],v=[],r=[],t=[];(function(){for(var a=0;a<b;a++)f(a);f(!1===e?b:0);for(a=0;a<=b;a++)for(var c=0;c<=d;c++)n.x=a/b,n.y=c/d,r.push(n.x,n.y);for(a=1;a<=b;a++)for(c=1;c<=d;c++){var g=
-(d+1)*a+(c-1),h=(d+1)*a+c,l=(d+1)*(a-1)+c;t.push((d+1)*(a-1)+(c-1),g,l);t.push(g,h,l)}})();this.setIndex(t);this.setAttribute("position",new C(k,3));this.setAttribute("normal",new C(v,3));this.setAttribute("uv",new C(r,2))}function Wd(a,b,c,d,e,f,g){J.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Sc(a,
-b,c,d,e,f));this.mergeVertices()}function Sc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}D.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;for(var h=[],l=[],n=[],q=[],k=new m,v=new m,r=new m,t=new m,u=new m,z=new m,A=new m,x=0;x<=c;++x){var w=x/c*e*Math.PI*2;g(w,
-e,f,a,r);g(w+.01,e,f,a,t);z.subVectors(t,r);A.addVectors(t,r);u.crossVectors(z,A);A.crossVectors(u,z);u.normalize();A.normalize();for(w=0;w<=d;++w){var y=w/d*Math.PI*2,N=-b*Math.cos(y);y=b*Math.sin(y);k.x=r.x+(N*A.x+y*u.x);k.y=r.y+(N*A.y+y*u.y);k.z=r.z+(N*A.z+y*u.z);l.push(k.x,k.y,k.z);v.subVectors(k,r).normalize();n.push(v.x,v.y,v.z);q.push(x/c);q.push(w/d)}}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*a+(b-1),f=(d+1)*a+b,k=(d+1)*(a-1)+b,h.push((d+1)*(a-1)+(b-1),e,k),h.push(e,f,k);this.setIndex(h);
-this.setAttribute("position",new C(l,3));this.setAttribute("normal",new C(n,3));this.setAttribute("uv",new C(q,2))}function Xd(a,b,c,d,e){J.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Tc(a,b,c,d,e));this.mergeVertices()}function Tc(a,b,c,d,e){D.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||
-6;e=e||2*Math.PI;for(var f=[],g=[],h=[],l=[],n=new m,k=new m,p=new m,v=0;v<=c;v++)for(var r=0;r<=d;r++){var t=r/d*e,u=v/c*Math.PI*2;k.x=(a+b*Math.cos(u))*Math.cos(t);k.y=(a+b*Math.cos(u))*Math.sin(t);k.z=b*Math.sin(u);g.push(k.x,k.y,k.z);n.x=a*Math.cos(t);n.y=a*Math.sin(t);p.subVectors(k,n).normalize();h.push(p.x,p.y,p.z);l.push(r/d);l.push(v/c)}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*(a-1)+b-1,n=(d+1)*(a-1)+b,k=(d+1)*a+b,f.push((d+1)*a+b-1,e,k),f.push(e,n,k);this.setIndex(f);this.setAttribute("position",
-new C(g,3));this.setAttribute("normal",new C(h,3));this.setAttribute("uv",new C(l,2))}function Xh(a,b,c,d,e){for(var f,g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=Yh(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=Yh(e,a[e],a[e+1],f);f&&Se(f,f.next)&&(Yd(f),f=f.next);return f}function Jb(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!Se(a,a.next)&&0!==ja(a.prev,a,a.next))a=a.next;else{Yd(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}
-function Zd(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=rg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var n,k,p,v,r=1;do{l=h;var t=h=null;for(k=0;l;){k++;var m=l;for(n=p=0;n<r&&(p++,m=m.nextZ,m);n++);for(v=r;0<p||0<v&&m;)0!==p&&(0===v||!m||l.z<=m.z)?(n=l,l=l.nextZ,p--):(n=m,m=m.nextZ,v--),t?t.nextZ=n:h=n,n.prevZ=t,t=n;l=m}t.nextZ=null;r*=2}while(1<k)}for(h=a;a.prev!==a.next;){l=a.prev;m=a.next;if(f)t=Ck(a,d,e,f);else a:if(t=
-a,k=t.prev,p=t,r=t.next,0<=ja(k,p,r))t=!1;else{for(n=t.next.next;n!==t.prev;){if(Uc(k.x,k.y,p.x,p.y,r.x,r.y,n.x,n.y)&&0<=ja(n.prev,n,n.next)){t=!1;break a}n=n.next}t=!0}if(t)b.push(l.i/c),b.push(a.i/c),b.push(m.i/c),Yd(a),h=a=m.next;else if(a=m,a===h){if(!g)Zd(Jb(a),b,c,d,e,f,1);else if(1===g){a=Jb(a);g=b;h=c;l=a;do m=l.prev,t=l.next.next,!Se(m,t)&&Zh(m,l,l.next,t)&&$d(m,t)&&$d(t,m)&&(g.push(m.i/h),g.push(l.i/h),g.push(t.i/h),Yd(l),Yd(l.next),l=a=t),l=l.next;while(l!==a);a=Jb(l);Zd(a,b,c,d,e,f,2)}else if(2===
-g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;m=h;if(t=l.next.i!==m.i&&l.prev.i!==m.i){b:{t=l;do{if(t.i!==l.i&&t.next.i!==l.i&&t.i!==m.i&&t.next.i!==m.i&&Zh(t,t.next,l,m)){t=!0;break b}t=t.next}while(t!==l);t=!1}t=!t}if(t){if(t=$d(l,m)&&$d(m,l)){t=l;k=!1;p=(l.x+m.x)/2;r=(l.y+m.y)/2;do t.y>r!==t.next.y>r&&t.next.y!==t.y&&p<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(k=!k),t=t.next;while(t!==l);t=k}t=t&&(ja(l.prev,l,m.prev)||ja(l,m.prev,m))||Se(l,m)&&0<ja(l.prev,l,l.next)&&0<ja(m.prev,
-m,m.next)}l=t}if(l){a=$h(g,h);g=Jb(g,g.next);a=Jb(a,a.next);Zd(g,b,c,d,e,f);Zd(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Ck(a,b,c,d){var e=a.prev,f=a.next;if(0<=ja(e,a,f))return!1;var g=e.x>a.x?e.x>f.x?e.x:f.x:a.x>f.x?a.x:f.x,h=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=rg(e.x<a.x?e.x<f.x?e.x:f.x:a.x<f.x?a.x:f.x,e.y<a.y?e.y<f.y?e.y:f.y:a.y<f.y?a.y:f.y,b,c,d);b=rg(g,h,b,c,d);c=a.prevZ;for(d=a.nextZ;c&&c.z>=l&&d&&d.z<=b;){if(c!==a.prev&&c!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,
-f.y,c.x,c.y)&&0<=ja(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ja(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ja(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==a.prev&&d!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ja(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function Dk(a,b){return a.x-b.x}function Ek(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=
-c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h;b=h;g=h.x;var l=h.y,n=Infinity;c=h;do{if(d>=c.x&&c.x>=g&&d!==c.x&&Uc(e<l?d:f,e,g,l,e<l?f:d,e,c.x,c.y)){var k=Math.abs(e-c.y)/(d-c.x);var p;if((p=$d(c,a))&&!(p=k<n)&&(p=k===n)&&!(p=c.x>h.x)&&(p=c.x===h.x)){p=h;var m=c;p=0>ja(p.prev,p,m.prev)&&0>ja(m.next,
-p,p.next)}p&&(h=c,n=k)}c=c.next}while(c!==b);return h}function rg(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Fk(a){var b=a,c=a;do{if(b.x<c.x||b.x===c.x&&b.y<c.y)c=b;b=b.next}while(b!==a);return c}function Uc(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function ja(a,
-b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function Se(a,b){return a.x===b.x&&a.y===b.y}function Zh(a,b,c,d){var e=Te(ja(a,b,c)),f=Te(ja(a,b,d)),g=Te(ja(c,d,a)),h=Te(ja(c,d,b));return e!==f&&g!==h||0===e&&Ue(a,c,b)||0===f&&Ue(a,d,b)||0===g&&Ue(c,a,d)||0===h&&Ue(c,b,d)?!0:!1}function Ue(a,b,c){return b.x<=Math.max(a.x,c.x)&&b.x>=Math.min(a.x,c.x)&&b.y<=Math.max(a.y,c.y)&&b.y>=Math.min(a.y,c.y)}function Te(a){return 0<a?1:0>a?-1:0}function $d(a,b){return 0>ja(a.prev,a,a.next)?0<=ja(a,b,a.next)&&
-0<=ja(a,a.prev,b):0>ja(a,b,a.prev)||0>ja(a,a.next,b)}function $h(a,b){var c=new sg(a.i,a.x,a.y),d=new sg(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function Yh(a,b,c,d){a=new sg(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);return a}function Yd(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function sg(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=
-this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function ai(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function bi(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function dc(a,b){J.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new fb(a,b));this.mergeVertices()}function fb(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}
-function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),n=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/n-h)*g-(c.y+f/n-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new w(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new w(f/e,d/
-e)}function h(a,b){for(var c=a.length;0<=--c;){var f=c,g=c-1;0>g&&(g=a.length-1);for(var h=0,l=x+2*C;h<l;h++){var n=V*h,k=V*(h+1),q=b+g+n,p=b+g+k;k=b+f+k;t(b+f+n);t(q);t(k);t(q);t(p);t(k);n=e.length/3;n=G.generateSideWallUV(d,e,n-6,n-3,n-2,n-1);u(n[0]);u(n[1]);u(n[3]);u(n[1]);u(n[2]);u(n[3])}}}function l(a,b,c){z.push(a);z.push(b);z.push(c)}function k(a,b,c){t(a);t(b);t(c);a=e.length/3;a=G.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function t(a){e.push(z[3*a]);e.push(z[3*a+1]);e.push(z[3*
-a+2])}function u(a){f.push(a.x);f.push(a.y)}var z=[],A=void 0!==b.curveSegments?b.curveSegments:12,x=void 0!==b.steps?b.steps:1,y=void 0!==b.depth?b.depth:100,W=void 0!==b.bevelEnabled?b.bevelEnabled:!0,N=void 0!==b.bevelThickness?b.bevelThickness:6,B=void 0!==b.bevelSize?b.bevelSize:N-2,O=void 0!==b.bevelOffset?b.bevelOffset:0,C=void 0!==b.bevelSegments?b.bevelSegments:3,E=b.extrudePath,G=void 0!==b.UVGenerator?b.UVGenerator:Gk;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),
-y=b.amount);var D=!1;if(E){var H=E.getSpacedPoints(x);D=!0;W=!1;var F=E.computeFrenetFrames(x,!1);var I=new m;var K=new m;var J=new m}W||(O=B=N=C=0);a=a.extractPoints(A);E=a.shape;var P=a.holes;if(!pb.isClockWise(E))for(E=E.reverse(),a=0,A=P.length;a<A;a++){var M=P[a];pb.isClockWise(M)&&(P[a]=M.reverse())}var T=pb.triangulateShape(E,P),U=E;a=0;for(A=P.length;a<A;a++)E=E.concat(P[a]);var V=E.length,aa=T.length;a=[];A=0;M=U.length;for(var ca=M-1,Q=A+1;A<M;A++,ca++,Q++)ca===M&&(ca=0),Q===M&&(Q=0),a[A]=
-g(U[A],U[ca],U[Q]);A=[];M=a.concat();Q=0;for(var R=P.length;Q<R;Q++){var S=P[Q];ca=[];for(var X=0,Y=S.length,ba=Y-1,Z=X+1;X<Y;X++,ba++,Z++)ba===Y&&(ba=0),Z===Y&&(Z=0),ca[X]=g(S[X],S[ba],S[Z]);A.push(ca);M=M.concat(ca)}for(Q=0;Q<C;Q++){ca=Q/C;R=N*Math.cos(ca*Math.PI/2);S=B*Math.sin(ca*Math.PI/2)+O;ca=0;for(X=U.length;ca<X;ca++)Y=c(U[ca],a[ca],S),l(Y.x,Y.y,-R);X=0;for(Y=P.length;X<Y;X++){ba=P[X];ca=A[X];Z=0;for(var da=ba.length;Z<da;Z++){var ea=c(ba[Z],ca[Z],S);l(ea.x,ea.y,-R)}}}ca=B+O;for(Q=0;Q<V;Q++)R=
-W?c(E[Q],M[Q],ca):E[Q],D?(K.copy(F.normals[0]).multiplyScalar(R.x),I.copy(F.binormals[0]).multiplyScalar(R.y),J.copy(H[0]).add(K).add(I),l(J.x,J.y,J.z)):l(R.x,R.y,0);for(Q=1;Q<=x;Q++)for(R=0;R<V;R++)S=W?c(E[R],M[R],ca):E[R],D?(K.copy(F.normals[Q]).multiplyScalar(S.x),I.copy(F.binormals[Q]).multiplyScalar(S.y),J.copy(H[Q]).add(K).add(I),l(J.x,J.y,J.z)):l(S.x,S.y,y/x*Q);for(F=C-1;0<=F;F--){K=F/C;I=N*Math.cos(K*Math.PI/2);K=B*Math.sin(K*Math.PI/2)+O;J=0;for(E=U.length;J<E;J++)M=c(U[J],a[J],K),l(M.x,
-M.y,y+I);J=0;for(E=P.length;J<E;J++)for(M=P[J],ca=A[J],Q=0,R=M.length;Q<R;Q++)S=c(M[Q],ca[Q],K),D?l(S.x,S.y+H[x-1].y,H[x-1].x+I):l(S.x,S.y,y+I)}(function(){var a=e.length/3;if(W){for(var b=0*V,c=0;c<aa;c++){var f=T[c];k(f[2]+b,f[1]+b,f[0]+b)}b=V*(x+2*C);for(c=0;c<aa;c++)f=T[c],k(f[0]+b,f[1]+b,f[2]+b)}else{for(b=0;b<aa;b++)c=T[b],k(c[2],c[1],c[0]);for(b=0;b<aa;b++)c=T[b],k(c[0]+V*x,c[1]+V*x,c[2]+V*x)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(U,b);b+=U.length;for(var c=0,f=
-P.length;c<f;c++){var g=P[c];h(g,b);b+=g.length}d.addGroup(a,e.length/3-a,1)})()}D.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.setAttribute("position",new C(e,3));this.setAttribute("uv",new C(f,2));this.computeVertexNormals()}function ci(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&
-(c.options.extrudePath=b.extrudePath.toJSON());return c}function ae(a,b){J.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Vc(a,b));this.mergeVertices()}function Vc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new J;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=
-8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);fb.call(this,a,b);this.type="TextBufferGeometry"}function be(a,b,c,d,e,f,g){J.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new ec(a,b,c,d,e,f,g));this.mergeVertices()}function ec(a,b,c,d,e,f,g){D.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,
-thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;for(var h=Math.min(f+g,Math.PI),l=0,n=[],k=new m,p=new m,v=[],r=[],t=[],u=[],z=0;z<=c;z++){var A=[],x=z/c,w=0;0==z&&0==f?w=.5/b:z==c&&h==Math.PI&&(w=-.5/b);for(var y=0;y<=b;y++){var N=y/b;k.x=-a*Math.cos(d+N*e)*Math.sin(f+x*g);k.y=a*Math.cos(f+x*g);k.z=a*Math.sin(d+N*e)*Math.sin(f+x*g);r.push(k.x,k.y,k.z);p.copy(k).normalize();t.push(p.x,
-p.y,p.z);u.push(N+w,1-x);A.push(l++)}n.push(A)}for(a=0;a<c;a++)for(d=0;d<b;d++)e=n[a][d+1],g=n[a][d],l=n[a+1][d],k=n[a+1][d+1],(0!==a||0<f)&&v.push(e,g,k),(a!==c-1||h<Math.PI)&&v.push(g,l,k);this.setIndex(v);this.setAttribute("position",new C(r,3));this.setAttribute("normal",new C(t,3));this.setAttribute("uv",new C(u,2))}function ce(a,b,c,d,e,f){J.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new Wc(a,
-b,c,d,e,f));this.mergeVertices()}function Wc(a,b,c,d,e,f){D.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=[],h=[],l=[],n=[],k=a;a=(b-a)/d;for(var p=new m,v=new w,r=0;r<=d;r++){for(var t=0;t<=c;t++){var u=e+t/c*f;p.x=k*Math.cos(u);p.y=k*Math.sin(u);h.push(p.x,p.y,p.z);l.push(0,0,1);
-v.x=(p.x/b+1)/2;v.y=(p.y/b+1)/2;n.push(v.x,v.y)}k+=a}for(b=0;b<d;b++)for(e=b*(c+1),f=0;f<c;f++)k=f+e,a=k+c+1,p=k+c+2,v=k+1,g.push(k,a,v),g.push(a,p,v);this.setIndex(g);this.setAttribute("position",new C(h,3));this.setAttribute("normal",new C(l,3));this.setAttribute("uv",new C(n,2))}function de(a,b,c,d){J.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Xc(a,b,c,d));this.mergeVertices()}function Xc(a,b,c,d){D.call(this);this.type=
-"LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=P.clamp(d,0,2*Math.PI);for(var e=[],f=[],g=[],h=1/b,l=new m,n=new w,k=0;k<=b;k++){var p=c+k*h*d,v=Math.sin(p);p=Math.cos(p);for(var r=0;r<=a.length-1;r++)l.x=a[r].x*v,l.y=a[r].y,l.z=a[r].x*p,f.push(l.x,l.y,l.z),n.x=k/b,n.y=r/(a.length-1),g.push(n.x,n.y)}for(c=0;c<b;c++)for(h=0;h<a.length-1;h++)l=h+c*a.length,n=l+a.length,k=l+a.length+1,v=l+1,e.push(l,n,v),e.push(n,k,v);this.setIndex(e);
-this.setAttribute("position",new C(f,3));this.setAttribute("uv",new C(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new m,f=new m,g=new m,b=b*a.length*3,h=c=0;c<a.length;c++,h+=3)e.x=d[h+0],e.y=d[h+1],e.z=d[h+2],f.x=d[b+h+0],f.y=d[b+h+1],f.z=d[b+h+2],g.addVectors(e,f).normalize(),d[h+0]=d[b+h+0]=g.x,d[h+1]=d[b+h+1]=g.y,d[h+2]=d[b+h+2]=g.z}function fc(a,b){J.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),
-b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new gc(a,b));this.mergeVertices()}function gc(a,b){function c(a){var c=e.length/3,h=a.extractPoints(b);a=h.shape;var n=h.holes;!1===pb.isClockWise(a)&&(a=a.reverse());h=0;for(var k=n.length;h<k;h++){var q=n[h];!0===pb.isClockWise(q)&&(n[h]=q.reverse())}h=pb.triangulateShape(a,n);k=0;for(q=n.length;k<q;k++)a=a.concat(n[k]);n=0;for(k=a.length;n<k;n++)q=a[n],e.push(q.x,q.y,0),f.push(0,0,1),g.push(q.x,q.y);a=0;for(n=
-h.length;a<n;a++)k=h[a],d.push(k[0]+c,k[1]+c,k[2]+c),l+=3}D.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=0;if(!1===Array.isArray(a))c(a);else for(var n=0;n<a.length;n++)c(a[n]),this.addGroup(h,l,n),h+=l,l=0;this.setIndex(d);this.setAttribute("position",new C(e,3));this.setAttribute("normal",new C(f,3));this.setAttribute("uv",new C(g,2))}function di(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);
-else b.shapes.push(a.uuid);return b}function Yc(a,b){D.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new J;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var n=g[h],k=0;3>k;k++){var p=n[f[k]];var m=n[f[(k+1)%3]];d[0]=Math.min(p,m);d[1]=Math.max(p,m);p=d[0]+","+d[1];void 0===
-e[p]?e[p]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[p].face2=h}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new C(c,3))}function hc(a,b,c,d,e,f,g,h){J.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new qb(a,b,c,d,e,
-f,g,h));this.mergeVertices()}function qb(a,b,c,d,e,f,g,h){function l(c){var e,f=new w,l=new m,q=0,u=!0===c?a:b,x=!0===c?1:-1;var y=t;for(e=1;e<=d;e++)p.push(0,z*x,0),v.push(0,x,0),r.push(.5,.5),t++;e=t;for(var C=0;C<=d;C++){var D=C/d*h+g,F=Math.cos(D);D=Math.sin(D);l.x=u*D;l.y=z*x;l.z=u*F;p.push(l.x,l.y,l.z);v.push(0,x,0);f.x=.5*F+.5;f.y=.5*D*x+.5;r.push(f.x,f.y);t++}for(f=0;f<d;f++)l=y+f,u=e+f,!0===c?k.push(u,u+1,l):k.push(u+1,u,l),q+=3;n.addGroup(A,q,!0===c?1:2);A+=q}D.call(this);this.type="CylinderBufferGeometry";
-this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var n=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==h?h:2*Math.PI;var k=[],p=[],v=[],r=[],t=0,u=[],z=c/2,A=0;(function(){for(var f=new m,l=new m,q=0,w=(b-a)/c,B=0;B<=e;B++){for(var y=[],C=B/e,E=C*(b-a)+a,D=0;D<=d;D++){var F=D/d,G=F*h+g,H=Math.sin(G);G=Math.cos(G);l.x=E*H;l.y=-C*c+z;l.z=E*G;
-p.push(l.x,l.y,l.z);f.set(H,w,G).normalize();v.push(f.x,f.y,f.z);r.push(F,1-C);y.push(t++)}u.push(y)}for(f=0;f<d;f++)for(l=0;l<e;l++)w=u[l+1][f],B=u[l+1][f+1],y=u[l][f+1],k.push(u[l][f],w,y),k.push(w,B,y),q+=6;n.addGroup(A,q,0);A+=q})();!1===f&&(0<a&&l(!0),0<b&&l(!1));this.setIndex(k);this.setAttribute("position",new C(p,3));this.setAttribute("normal",new C(v,3));this.setAttribute("uv",new C(r,2))}function ee(a,b,c,d,e,f,g){hc.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,
-height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function fe(a,b,c,d,e,f,g){qb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function ge(a,b,c,d){J.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new Zc(a,b,c,d));this.mergeVertices()}function Zc(a,b,c,d){D.call(this);
-this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l=new m,n=new w;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);for(var k=0,p=3;k<=b;k++,p+=3){var v=c+k/b*d;l.x=a*Math.cos(v);l.y=a*Math.sin(v);f.push(l.x,l.y,l.z);g.push(0,0,1);n.x=(f[p]/a+1)/2;n.y=(f[p+1]/a+1)/2;h.push(n.x,n.y)}for(a=1;a<=b;a++)e.push(a,a+1,0);this.setIndex(e);this.setAttribute("position",
-new C(f,3));this.setAttribute("normal",new C(g,3));this.setAttribute("uv",new C(h,2))}function ic(a){K.call(this);this.type="ShadowMaterial";this.color=new H(0);this.transparent=!0;this.setValues(a)}function rb(a){Ba.call(this,a);this.type="RawShaderMaterial"}function gb(a){K.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new H(16777215);this.roughness=1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=
-new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexTangents=this.morphNormals=this.morphTargets=this.skinning=
-!1;this.setValues(a)}function Kb(a){gb.call(this);this.defines={STANDARD:"",PHYSICAL:""};this.type="MeshPhysicalMaterial";this.clearcoat=0;this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new w(1,1);this.clearcoatNormalMap=null;this.reflectivity=.5;this.sheen=null;this.transmission=0;this.transmissionMap=null;this.setValues(a)}function Lb(a){K.call(this);this.type="MeshPhongMaterial";this.color=new H(16777215);this.specular=new H(1118481);
-this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=
-1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function jc(a){K.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.color=new H(16777215);this.lightMap=this.gradientMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,
-1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function kc(a){K.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=
-0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function lc(a){K.call(this);this.type="MeshLambertMaterial";this.color=new H(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=
-1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function mc(a){K.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new H(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=
-!1;this.setValues(a)}function nc(a){ia.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Ka(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Ve(a,b,c,d){Ka.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function he(a,b,c,d){Ka.call(this,a,b,c,d)}function We(a,b,c,d){Ka.call(this,a,b,c,d)}function ta(a,
-b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=X.convertArray(b,this.TimeBufferType);this.values=X.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Xe(a,b,c){ta.call(this,a,b,c)}function Ye(a,b,c,d){ta.call(this,a,b,c,d)}function $c(a,b,c,d){ta.call(this,a,b,c,d)}function Ze(a,b,c,d){Ka.call(this,a,
-b,c,d)}function ie(a,b,c,d){ta.call(this,a,b,c,d)}function $e(a,b,c,d){ta.call(this,a,b,c,d)}function ad(a,b,c,d){ta.call(this,a,b,c,d)}function Qa(a,b,c,d){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.blendMode=void 0!==d?d:2500;this.uuid=P.generateUUID();0>this.duration&&this.resetDuration()}function Hk(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return $c;case "vector":case "vector2":case "vector3":case "vector4":return ad;case "color":return Ye;
-case "quaternion":return ie;case "bool":case "boolean":return Xe;case "string":return $e}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function Ik(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=Hk(a.type);if(void 0===a.times){var c=[],d=[];X.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function tg(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0,l=[];
-this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;return this};this.addHandler=function(a,b){l.push(a,b);return this};this.removeHandler=
-function(a){a=l.indexOf(a);-1!==a&&l.splice(a,2);return this};this.getHandler=function(a){for(var b=0,c=l.length;b<c;b+=2){var d=l[b],e=l[b+1];d.global&&(d.lastIndex=0);if(d.test(a))return e}return null}}function U(a){this.manager=void 0!==a?a:ei;this.crossOrigin="anonymous";this.resourcePath=this.path="";this.requestHeader={}}function Ra(a){U.call(this,a)}function ug(a){U.call(this,a)}function vg(a){U.call(this,a)}function af(a){U.call(this,a)}function bd(a){U.call(this,a)}function bf(a){U.call(this,
-a)}function cf(a){U.call(this,a)}function I(){this.type="Curve";this.arcLengthDivisions=200}function La(a,b,c,d,e,f,g,h){I.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function cd(a,b,c,d,e,f){La.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function wg(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,l){e=l*(g-e);h=l*(h-f);a=f;b=e;c=-3*f+3*g-
-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,l,n,k){e=((f-e)/l-(g-e)/(l+n)+(g-f)/n)*n;h=((g-f)/n-(h-f)/(n+k)+(h-g)/k)*n;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function ua(a,b,c,d){I.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=void 0!==d?d:.5}function fi(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function je(a,
-b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function ke(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Xa(a,b,c,d){I.call(this);this.type="CubicBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w;this.v3=d||new w}function hb(a,b,c,d){I.call(this);this.type="CubicBezierCurve3";this.v0=a||new m;this.v1=b||new m;this.v2=c||new m;this.v3=d||new m}function va(a,b){I.call(this);this.type="LineCurve";this.v1=a||new w;this.v2=b||new w}function Ya(a,b){I.call(this);
-this.type="LineCurve3";this.v1=a||new m;this.v2=b||new m}function Za(a,b,c){I.call(this);this.type="QuadraticBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w}function ib(a,b,c){I.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new m;this.v1=b||new m;this.v2=c||new m}function $a(a){I.call(this);this.type="SplineCurve";this.points=a||[]}function sb(){I.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function ab(a){sb.call(this);this.type="Path";this.currentPoint=
-new w;a&&this.setFromPoints(a)}function Mb(a){ab.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function aa(a,b){y.call(this);this.type="Light";this.color=new H(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function df(a,b,c){aa.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(y.DefaultUp);this.updateMatrix();this.groundColor=new H(b)}function jb(a){this.camera=a;this.normalBias=this.bias=0;this.radius=1;this.mapSize=new w(512,
-512);this.mapPass=this.map=null;this.matrix=new T;this.autoUpdate=!0;this.needsUpdate=!1;this._frustum=new Ec;this._frameExtents=new w(1,1);this._viewportCount=1;this._viewports=[new ba(0,0,1,1)]}function ef(){jb.call(this,new ma(50,1,.5,500))}function ff(a,b,c,d,e,f){aa.call(this,a,b);this.type="SpotLight";this.position.copy(y.DefaultUp);this.updateMatrix();this.target=new y;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});
-this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new ef}function xg(){jb.call(this,new ma(90,1,.5,500));this._frameExtents=new w(4,2);this._viewportCount=6;this._viewports=[new ba(2,1,1,1),new ba(0,1,1,1),new ba(3,1,1,1),new ba(1,1,1,1),new ba(3,0,1,1),new ba(1,0,1,1)];this._cubeDirections=[new m(1,0,0),new m(-1,0,0),new m(0,0,1),new m(0,0,-1),new m(0,1,0),new m(0,-1,0)];this._cubeUps=[new m(0,1,0),new m(0,1,0),new m(0,
-1,0),new m(0,1,0),new m(0,0,1),new m(0,0,-1)]}function gf(a,b,c,d){aa.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new xg}function dd(a,b,c,d,e,f){eb.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==
-d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function hf(){jb.call(this,new dd(-5,5,5,-5,.5,500))}function jf(a,b){aa.call(this,a,b);this.type="DirectionalLight";this.position.copy(y.DefaultUp);this.updateMatrix();this.target=new y;this.shadow=new hf}function kf(a,b){aa.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function lf(a,b,c,d){aa.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function mf(){this.coefficients=
-[];for(var a=0;9>a;a++)this.coefficients.push(new m)}function Sa(a,b){aa.call(this,void 0,b);this.type="LightProbe";this.sh=void 0!==a?a:new mf}function nf(a){U.call(this,a);this.textures={}}function le(){D.call(this);this.type="InstancedBufferGeometry";this.instanceCount=Infinity}function of(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));F.call(this,a,b,c);this.meshPerAttribute=d||1}function pf(a){U.call(this,
-a)}function qf(a){U.call(this,a)}function yg(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");U.call(this,a);this.options={premultiplyAlpha:"none"}}function zg(){this.type="ShapePath";this.color=new H;this.subPaths=[];this.currentPath=null}function Ag(a){this.type="Font";this.data=a}function Bg(a){U.call(this,a)}function rf(a){U.call(this,
-a)}function Cg(a,b,c){Sa.call(this,void 0,c);a=(new H).set(a);c=(new H).set(b);b=new m(a.r,a.g,a.b);a=new m(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}function Dg(a,b){Sa.call(this,void 0,b);a=(new H).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function gi(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new ma;
-this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new ma;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}function Eg(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Fg(){y.call(this);this.type="AudioListener";this.context=Gg.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);
-this.filter=null;this.timeDelta=0;this._clock=new Eg}function ed(a){y.call(this);this.type="Audio";this.listener=a;this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.detune=0;this.loop=!1;this.offset=this.loopEnd=this.loopStart=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this._progress=this._startedAt=0;this.filters=[]}function Hg(a){ed.call(this,a);this.panner=
-this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}function Ig(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function Jg(a,b,c){this.binding=a;this.valueSize=c;switch(b){case "quaternion":a=this._slerp;b=this._slerpAdditive;var d=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(6*c);this._workIndex=5;break;case "string":case "bool":b=
-a=this._select;d=this._setAdditiveIdentityOther;this.buffer=Array(5*c);break;default:a=this._lerp,b=this._lerpAdditive,d=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*c)}this._mixBufferRegion=a;this._mixBufferRegionAdditive=b;this._setIdentity=d;this._origIndex=3;this._addIndex=4;this.referenceCount=this.useCount=this.cumulativeWeightAdditive=this.cumulativeWeight=0}function hi(a,b,c){c=c||pa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function pa(a,b,
-c){this.path=b;this.parsedPath=c||pa.parseTrackName(b);this.node=pa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function ii(){this.uuid=P.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-
-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function ji(a,b,c,d){this._mixer=a;this._clip=b;this._localRoot=c||null;this.blendMode=d||b.blendMode;a=b.tracks;b=a.length;c=Array(b);d={endingStart:2400,endingEnd:2400};for(var e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=
-2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function Kg(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function sf(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function Lg(a,b,c){Ia.call(this,
-a,b);this.meshPerAttribute=c||1}function Mg(a,b,c,d){this.ray=new Vb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.layers=new Ce;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function ki(a,b){return a.distance-b.distance}function Ng(a,b,c,d){a.layers.test(b.layers)&&a.raycast(b,
-c);if(!0===d){a=a.children;d=0;for(var e=a.length;d<e;d++)Ng(a[d],b,c,!0)}}function li(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function mi(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function Og(a,b){this.min=void 0!==a?a:new w(Infinity,Infinity);this.max=void 0!==b?b:new w(-Infinity,-Infinity)}function Pg(a,b){this.start=void 0!==a?a:new m;this.end=void 0!==b?b:new m}function me(a){y.call(this);
-this.material=a;this.render=function(){};this.hasUvs=this.hasColors=this.hasNormals=this.hasPositions=!1;this.uvArray=this.colorArray=this.normalArray=this.positionArray=null;this.count=0}function fd(a,b){y.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new D;b=[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(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,
-Math.cos(f),Math.sin(f),1)}a.setAttribute("position",new C(b,3));b=new ia({fog:!1,toneMapped:!1});this.cone=new da(a,b);this.add(this.cone);this.update()}function ni(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ni(a.children[c]));return b}function oc(a){for(var b=ni(a),c=new D,d=[],e=[],f=new H(0,0,1),g=new H(0,1,0),h=0;h<b.length;h++){var l=b[h];l.parent&&l.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.setAttribute("position",
-new C(d,3));c.setAttribute("color",new C(e,3));d=new ia({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});da.call(this,c,d);this.type="SkeletonHelper";this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1}function gd(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new ec(b,4,2);b=new Na({wireframe:!0,fog:!1,toneMapped:!1});Z.call(this,a,b);this.type="PointLightHelper";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}
-function hd(a,b,c){y.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new bc(b);a.rotateY(.5*Math.PI);this.material=new Na({wireframe:!0,fog:!1,toneMapped:!1});void 0===this.color&&(this.material.vertexColors=!0);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.setAttribute("color",new F(b,3));this.add(new Z(a,this.material));this.update()}function tf(a,b,c,d){a=a||10;b=b||10;c=new H(void 0!==c?c:4473924);d=new H(void 0!==
-d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,n=0,k=-g;l<=b;l++,k+=f){a.push(-g,0,k,g,0,k);a.push(k,0,-g,k,0,g);var p=l===e?c:d;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3}b=new D;b.setAttribute("position",new C(a,3));b.setAttribute("color",new C(h,3));c=new ia({vertexColors:!0,toneMapped:!1});da.call(this,b,c);this.type="GridHelper"}function uf(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new H(void 0!==e?e:4473924);f=new H(void 0!==f?f:8947848);for(var g=
-[],h=[],l=0;l<=b;l++){var n=l/b*2*Math.PI,k=Math.sin(n)*a;n=Math.cos(n)*a;g.push(0,0,0);g.push(k,0,n);k=l&1?e:f;h.push(k.r,k.g,k.b);h.push(k.r,k.g,k.b)}for(b=0;b<=c;b++)for(l=b&1?e:f,k=a-a/c*b,n=0;n<d;n++){var p=n/d*2*Math.PI,m=Math.sin(p)*k;p=Math.cos(p)*k;g.push(m,0,p);h.push(l.r,l.g,l.b);p=(n+1)/d*2*Math.PI;m=Math.sin(p)*k;p=Math.cos(p)*k;g.push(m,0,p);h.push(l.r,l.g,l.b)}a=new D;a.setAttribute("position",new C(g,3));a.setAttribute("color",new C(h,3));g=new ia({vertexColors:!0,toneMapped:!1});
-da.call(this,a,g);this.type="PolarGridHelper"}function id(a,b,c){y.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;void 0===b&&(b=1);a=new D;a.setAttribute("position",new C([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new ia({fog:!1,toneMapped:!1});this.lightPlane=new Ja(a,b);this.add(this.lightPlane);a=new D;a.setAttribute("position",new C([0,0,0,0,0,1],3));this.targetLine=new Ja(a,b);this.add(this.targetLine);this.update()}function ne(a){function b(a,
-b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new D,e=new ia({color:16777215,vertexColors:!0,toneMapped:!1}),f=[],g=[],h={},l=new H(16755200),n=new H(16711680),k=new H(43775),p=new H(16777215),m=new H(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",n);b("p","n2",n);b("p",
-"n3",n);b("p","n4",n);b("u1","u2",k);b("u2","u3",k);b("u3","u1",k);b("c","t",p);b("p","c",m);b("cn1","cn2",m);b("cn3","cn4",m);b("cf1","cf2",m);b("cf3","cf4",m);d.setAttribute("position",new C(f,3));d.setAttribute("color",new C(g,3));da.call(this,d,e);this.type="CameraHelper";this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function R(a,b,c,d,e,f,g){vf.set(e,f,g).unproject(d);a=b[a];
-if(void 0!==a)for(c=c.getAttribute("position"),b=0,d=a.length;b<d;b++)c.setXYZ(a[b],vf.x,vf.y,vf.z)}function tb(a,b){this.object=a;void 0===b&&(b=16776960);a=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]);var c=new Float32Array(24),d=new D;d.setIndex(new F(a,1));d.setAttribute("position",new F(c,3));da.call(this,d,new ia({color:b,toneMapped:!1}));this.type="BoxHelper";this.matrixAutoUpdate=!1;this.update()}function oe(a,b){this.type="Box3Helper";this.box=a;void 0===b&&(b=16776960);
-a=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]);var c=new D;c.setIndex(new F(a,1));c.setAttribute("position",new C([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));da.call(this,c,new ia({color:b,toneMapped:!1}));this.type="Box3Helper";this.geometry.computeBoundingSphere()}function pe(a,b,c){this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new D;b.setAttribute("position",new C([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,0,1,0,0,0],
-3));b.computeBoundingSphere();Ja.call(this,b,new ia({color:a,toneMapped:!1}));this.type="PlaneHelper";b=new D;b.setAttribute("position",new C([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new Z(b,new Na({color:a,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}function ub(a,b,c,d,e,f){y.call(this);this.type="ArrowHelper";void 0===a&&(a=new m(0,0,1));void 0===b&&(b=new m(0,0,0));void 0===c&&(c=1);void 0===d&&(d=16776960);void 0===e&&(e=.2*c);void 0===f&&
-(f=.2*e);void 0===wf&&(wf=new D,wf.setAttribute("position",new C([0,0,0,0,1,0],3)),Qg=new qb(0,.5,1,5,1),Qg.translate(0,-.5,0));this.position.copy(b);this.line=new Ja(wf,new ia({color:d,toneMapped:!1}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new Z(Qg,new Na({color:d,toneMapped:!1}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function qe(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new D;a.setAttribute("position",new C(b,
-3));a.setAttribute("color",new C([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ia({vertexColors:!0,toneMapped:!1});da.call(this,a,b);this.type="AxesHelper"}function Rg(a){this._renderer=a;this._pingPongRenderTarget=null;a=new Float32Array(20);var b=new m(0,1,0);this._blurMaterial=new rb({name:"SphericalGaussianBlur",defines:{n:20},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:a},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:b},inputEncoding:{value:kb[3E3]},
-outputEncoding:{value:kb[3E3]}},vertexShader:Sg(),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"+Tg()+"\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\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",
+a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}function qg(a,b,c,d,e,f,g,h,l){function n(){q.needsUpdate=!0;a.requestVideoFrameCallback(n)}V.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1;var q=this;"requestVideoFrameCallback"in a&&a.requestVideoFrameCallback(n)}function Mc(a,b,c,d,e,f,g,h,l,n,q,p){V.call(this,null,
+f,g,h,l,n,d,e,q,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Nd(a,b,c,d,e,f,g,h,l){V.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Od(a,b,c,d,e,f,g,h,l,n){n=void 0!==n?n:1026;if(1026!==n&&1027!==n)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===n&&(c=1012);void 0===c&&1027===n&&(c=1020);V.call(this,null,d,e,f,g,h,n,c,l);this.image={width:a,height:b};this.magFilter=void 0!==
+g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Nc(a){D.call(this);this.type="WireframeGeometry";var b=[],c=[0,0],d={},e=["a","b","c"];if(a&&a.isGeometry){for(var f=a.faces,g=0,h=f.length;g<h;g++)for(var l=f[g],n=0;3>n;n++){var q=l[e[n]],p=l[e[(n+1)%3]];c[0]=Math.min(q,p);c[1]=Math.max(q,p);q=c[0]+","+c[1];void 0===d[q]&&(d[q]={index1:c[0],index2:c[1]})}for(var k in d)c=d[k],f=a.vertices[c.index1],b.push(f.x,f.y,f.z),f=a.vertices[c.index2],b.push(f.x,f.y,f.z)}else if(a&&
+a.isBufferGeometry)if(k=new m,null!==a.index){e=a.attributes.position;g=a.index;a=a.groups;0===a.length&&(a=[{start:0,count:g.count,materialIndex:0}]);h=0;for(l=a.length;h<l;++h)for(q=a[h],n=p=q.start,q=p+q.count;n<q;n+=3)for(p=0;3>p;p++){var r=g.getX(n+p),t=g.getX(n+(p+1)%3);c[0]=Math.min(r,t);c[1]=Math.max(r,t);r=c[0]+","+c[1];void 0===d[r]&&(d[r]={index1:c[0],index2:c[1]})}for(f in d)c=d[f],k.fromBufferAttribute(e,c.index1),b.push(k.x,k.y,k.z),k.fromBufferAttribute(e,c.index2),b.push(k.x,k.y,k.z)}else for(d=
+a.attributes.position,c=0,f=d.count/3;c<f;c++)for(a=0;3>a;a++)k.fromBufferAttribute(d,3*c+a),b.push(k.x,k.y,k.z),k.fromBufferAttribute(d,3*c+(a+1)%3),b.push(k.x,k.y,k.z);this.setAttribute("position",new C(b,3))}function Pd(a,b,c){J.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Oc(a,b,c));this.mergeVertices()}function Oc(a,b,c){D.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],
+f=[],g=[],h=new m,l=new m,n=new m,q=new m,k=new m;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");for(var v=b+1,r=0;r<=c;r++)for(var t=r/c,u=0;u<=b;u++){var z=u/b;a(z,t,l);e.push(l.x,l.y,l.z);0<=z-1E-5?(a(z-1E-5,t,n),q.subVectors(l,n)):(a(z+1E-5,t,n),q.subVectors(n,l));0<=t-1E-5?(a(z,t-1E-5,n),k.subVectors(l,n)):(a(z,t+1E-5,n),k.subVectors(n,l));h.crossVectors(q,k).normalize();f.push(h.x,h.y,h.z);g.push(z,t)}for(a=0;a<c;a++)for(h=0;h<b;h++)l=
+a*v+h+1,n=(a+1)*v+h+1,q=(a+1)*v+h,d.push(a*v+h,l,q),d.push(l,n,q);this.setIndex(d);this.setAttribute("position",new C(e,3));this.setAttribute("normal",new C(f,3));this.setAttribute("uv",new C(g,2))}function Qd(a,b,c,d){J.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new ha(a,b,c,d));this.mergeVertices()}function ha(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,
+b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}D.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new m,d=new m,g=new m,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);for(var l=c,n=d,k=g,A=Math.pow(2,a),x=[],w=0;w<=A;w++){x[w]=[];for(var W=l.clone().lerp(k,w/A),N=n.clone().lerp(k,w/A),B=A-w,y=0;y<=B;y++)x[w][y]=0===y&&w===A?W:W.clone().lerp(N,y/B)}for(l=0;l<
+A;l++)for(n=0;n<2*(A-l)-1;n++)k=Math.floor(n/2),0===n%2?(e(x[l][k+1]),e(x[l+1][k]),e(x[l][k])):(e(x[l][k+1]),e(x[l+1][k+1]),e(x[l+1][k]))}})(d);(function(a){for(var b=new m,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new m,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new m;b=new m;for(var c=
+new m,d=new m,e=new w,f=new w,k=new w,z=0,A=0;z<h.length;z+=9,A+=6){a.set(h[z+0],h[z+1],h[z+2]);b.set(h[z+3],h[z+4],h[z+5]);c.set(h[z+6],h[z+7],h[z+8]);e.set(l[A+0],l[A+1]);f.set(l[A+2],l[A+3]);k.set(l[A+4],l[A+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,A+0,a,x);g(f,A+2,b,x);g(k,A+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.setAttribute("position",
+new C(h,3));this.setAttribute("normal",new C(h.slice(),3));this.setAttribute("uv",new C(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Rd(a,b){J.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Pc(a,b));this.mergeVertices()}function Pc(a,b){ha.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Sd(a,b){J.call(this);
+this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new bc(a,b));this.mergeVertices()}function bc(a,b){ha.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Td(a,b){J.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Qc(a,b));this.mergeVertices()}function Qc(a,b){var c=
+(1+Math.sqrt(5))/2;ha.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[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],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Ud(a,b){J.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rc(a,b));this.mergeVertices()}function Rc(a,b){var c=
+(1+Math.sqrt(5))/2,d=1/c;ha.call(this,[-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,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[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],a,b);this.type="DodecahedronBufferGeometry";this.parameters=
+{radius:a,detail:b}}function Vd(a,b,c,d,e,f){J.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new cc(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function cc(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(var n=0;n<=d;n++){var p=n/
+d*Math.PI*2,r=Math.sin(p);p=-Math.cos(p);l.x=p*f.x+r*e.x;l.y=p*f.y+r*e.y;l.z=p*f.z+r*e.z;l.normalize();v.push(l.x,l.y,l.z);h.x=q.x+c*l.x;h.y=q.y+c*l.y;h.z=q.z+c*l.z;k.push(h.x,h.y,h.z)}}D.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new m,l=new m,n=new w,q=new m,k=[],v=[],r=[],t=[];
+(function(){for(var a=0;a<b;a++)f(a);f(!1===e?b:0);for(a=0;a<=b;a++)for(var c=0;c<=d;c++)n.x=a/b,n.y=c/d,r.push(n.x,n.y);for(a=1;a<=b;a++)for(c=1;c<=d;c++){var g=(d+1)*a+(c-1),h=(d+1)*a+c,l=(d+1)*(a-1)+c;t.push((d+1)*(a-1)+(c-1),g,l);t.push(g,h,l)}})();this.setIndex(t);this.setAttribute("position",new C(k,3));this.setAttribute("normal",new C(v,3));this.setAttribute("uv",new C(r,2))}function Wd(a,b,c,d,e,f,g){J.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,
+radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Sc(a,b,c,d,e,f));this.mergeVertices()}function Sc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}D.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;
+c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;for(var h=[],l=[],n=[],q=[],k=new m,v=new m,r=new m,t=new m,u=new m,z=new m,A=new m,x=0;x<=c;++x){var w=x/c*e*Math.PI*2;g(w,e,f,a,r);g(w+.01,e,f,a,t);z.subVectors(t,r);A.addVectors(t,r);u.crossVectors(z,A);A.crossVectors(u,z);u.normalize();A.normalize();for(w=0;w<=d;++w){var y=w/d*Math.PI*2,N=-b*Math.cos(y);y=b*Math.sin(y);k.x=r.x+(N*A.x+y*u.x);k.y=r.y+(N*A.y+y*u.y);k.z=r.z+(N*A.z+y*u.z);l.push(k.x,k.y,k.z);v.subVectors(k,r).normalize();n.push(v.x,
+v.y,v.z);q.push(x/c);q.push(w/d)}}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*a+(b-1),f=(d+1)*a+b,k=(d+1)*(a-1)+b,h.push((d+1)*(a-1)+(b-1),e,k),h.push(e,f,k);this.setIndex(h);this.setAttribute("position",new C(l,3));this.setAttribute("normal",new C(n,3));this.setAttribute("uv",new C(q,2))}function Xd(a,b,c,d,e){J.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Tc(a,b,c,d,e));this.mergeVertices()}function Tc(a,
+b,c,d,e){D.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;for(var f=[],g=[],h=[],l=[],n=new m,k=new m,p=new m,v=0;v<=c;v++)for(var r=0;r<=d;r++){var t=r/d*e,u=v/c*Math.PI*2;k.x=(a+b*Math.cos(u))*Math.cos(t);k.y=(a+b*Math.cos(u))*Math.sin(t);k.z=b*Math.sin(u);g.push(k.x,k.y,k.z);n.x=a*Math.cos(t);n.y=a*Math.sin(t);p.subVectors(k,n).normalize();h.push(p.x,p.y,p.z);
+l.push(r/d);l.push(v/c)}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*(a-1)+b-1,n=(d+1)*(a-1)+b,k=(d+1)*a+b,f.push((d+1)*a+b-1,e,k),f.push(e,n,k);this.setIndex(f);this.setAttribute("position",new C(g,3));this.setAttribute("normal",new C(h,3));this.setAttribute("uv",new C(l,2))}function Xh(a,b,c,d,e){for(var f,g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=Yh(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=Yh(e,a[e],a[e+1],f);f&&Se(f,f.next)&&(Yd(f),f=f.next);return f}
+function Jb(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!Se(a,a.next)&&0!==ja(a.prev,a,a.next))a=a.next;else{Yd(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function Zd(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=rg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var n,k,p,v,r=1;do{l=h;var t=h=null;for(k=0;l;){k++;var m=l;for(n=p=0;n<r&&(p++,m=m.nextZ,m);n++);for(v=r;0<p||0<v&&m;)0!==p&&(0===v||!m||
+l.z<=m.z)?(n=l,l=l.nextZ,p--):(n=m,m=m.nextZ,v--),t?t.nextZ=n:h=n,n.prevZ=t,t=n;l=m}t.nextZ=null;r*=2}while(1<k)}for(h=a;a.prev!==a.next;){l=a.prev;m=a.next;if(f)t=Ck(a,d,e,f);else a:if(t=a,k=t.prev,p=t,r=t.next,0<=ja(k,p,r))t=!1;else{for(n=t.next.next;n!==t.prev;){if(Uc(k.x,k.y,p.x,p.y,r.x,r.y,n.x,n.y)&&0<=ja(n.prev,n,n.next)){t=!1;break a}n=n.next}t=!0}if(t)b.push(l.i/c),b.push(a.i/c),b.push(m.i/c),Yd(a),h=a=m.next;else if(a=m,a===h){if(!g)Zd(Jb(a),b,c,d,e,f,1);else if(1===g){a=Jb(a);g=b;h=c;l=
+a;do m=l.prev,t=l.next.next,!Se(m,t)&&Zh(m,l,l.next,t)&&$d(m,t)&&$d(t,m)&&(g.push(m.i/h),g.push(l.i/h),g.push(t.i/h),Yd(l),Yd(l.next),l=a=t),l=l.next;while(l!==a);a=Jb(l);Zd(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;m=h;if(t=l.next.i!==m.i&&l.prev.i!==m.i){b:{t=l;do{if(t.i!==l.i&&t.next.i!==l.i&&t.i!==m.i&&t.next.i!==m.i&&Zh(t,t.next,l,m)){t=!0;break b}t=t.next}while(t!==l);t=!1}t=!t}if(t){if(t=$d(l,m)&&$d(m,l)){t=l;k=!1;p=(l.x+m.x)/2;r=(l.y+m.y)/2;
+do t.y>r!==t.next.y>r&&t.next.y!==t.y&&p<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(k=!k),t=t.next;while(t!==l);t=k}t=t&&(ja(l.prev,l,m.prev)||ja(l,m.prev,m))||Se(l,m)&&0<ja(l.prev,l,l.next)&&0<ja(m.prev,m,m.next)}l=t}if(l){a=$h(g,h);g=Jb(g,g.next);a=Jb(a,a.next);Zd(g,b,c,d,e,f);Zd(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Ck(a,b,c,d){var e=a.prev,f=a.next;if(0<=ja(e,a,f))return!1;var g=e.x>a.x?e.x>f.x?e.x:f.x:a.x>f.x?a.x:f.x,h=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,
+l=rg(e.x<a.x?e.x<f.x?e.x:f.x:a.x<f.x?a.x:f.x,e.y<a.y?e.y<f.y?e.y:f.y:a.y<f.y?a.y:f.y,b,c,d);b=rg(g,h,b,c,d);c=a.prevZ;for(d=a.nextZ;c&&c.z>=l&&d&&d.z<=b;){if(c!==a.prev&&c!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ja(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ja(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=ja(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=
+b;){if(d!==a.prev&&d!==a.next&&Uc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=ja(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function Dk(a,b){return a.x-b.x}function Ek(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h;b=h;g=h.x;var l=h.y,n=Infinity;c=h;do{if(d>=c.x&&
+c.x>=g&&d!==c.x&&Uc(e<l?d:f,e,g,l,e<l?f:d,e,c.x,c.y)){var k=Math.abs(e-c.y)/(d-c.x);var p;if((p=$d(c,a))&&!(p=k<n)&&(p=k===n)&&!(p=c.x>h.x)&&(p=c.x===h.x)){p=h;var m=c;p=0>ja(p.prev,p,m.prev)&&0>ja(m.next,p,p.next)}p&&(h=c,n=k)}c=c.next}while(c!==b);return h}function rg(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Fk(a){var b=
+a,c=a;do{if(b.x<c.x||b.x===c.x&&b.y<c.y)c=b;b=b.next}while(b!==a);return c}function Uc(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function ja(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function Se(a,b){return a.x===b.x&&a.y===b.y}function Zh(a,b,c,d){var e=Te(ja(a,b,c)),f=Te(ja(a,b,d)),g=Te(ja(c,d,a)),h=Te(ja(c,d,b));return e!==f&&g!==h||0===e&&Ue(a,c,b)||0===f&&Ue(a,d,b)||0===g&&Ue(c,a,d)||0===h&&Ue(c,b,d)?!0:!1}function Ue(a,
+b,c){return b.x<=Math.max(a.x,c.x)&&b.x>=Math.min(a.x,c.x)&&b.y<=Math.max(a.y,c.y)&&b.y>=Math.min(a.y,c.y)}function Te(a){return 0<a?1:0>a?-1:0}function $d(a,b){return 0>ja(a.prev,a,a.next)?0<=ja(a,b,a.next)&&0<=ja(a,a.prev,b):0>ja(a,b,a.prev)||0>ja(a,a.next,b)}function $h(a,b){var c=new sg(a.i,a.x,a.y),d=new sg(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function Yh(a,b,c,d){a=new sg(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=
+a,d.next=a):(a.prev=a,a.next=a);return a}function Yd(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function sg(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function ai(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function bi(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function dc(a,b){J.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};
+this.fromBufferGeometry(new fb(a,b));this.mergeVertices()}function fb(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),n=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/n-h)*g-(c.y+f/n-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new w(f,d);e=Math.sqrt(e/
+2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new w(f/e,d/e)}function h(a,b){for(var c=a.length;0<=--c;){var f=c,g=c-1;0>g&&(g=a.length-1);for(var h=0,l=x+2*C;h<l;h++){var n=V*h,k=V*(h+1),q=b+g+n,p=b+g+k;k=b+f+k;t(b+f+n);t(q);t(k);t(q);t(p);t(k);n=e.length/3;n=G.generateSideWallUV(d,e,n-6,n-3,n-2,n-1);u(n[0]);u(n[1]);u(n[3]);u(n[1]);u(n[2]);u(n[3])}}}function l(a,
+b,c){z.push(a);z.push(b);z.push(c)}function k(a,b,c){t(a);t(b);t(c);a=e.length/3;a=G.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function t(a){e.push(z[3*a]);e.push(z[3*a+1]);e.push(z[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var z=[],A=void 0!==b.curveSegments?b.curveSegments:12,x=void 0!==b.steps?b.steps:1,y=void 0!==b.depth?b.depth:100,W=void 0!==b.bevelEnabled?b.bevelEnabled:!0,N=void 0!==b.bevelThickness?b.bevelThickness:6,B=void 0!==b.bevelSize?b.bevelSize:N-2,O=void 0!==b.bevelOffset?
+b.bevelOffset:0,C=void 0!==b.bevelSegments?b.bevelSegments:3,E=b.extrudePath,G=void 0!==b.UVGenerator?b.UVGenerator:Gk;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),y=b.amount);var D=!1;if(E){var H=E.getSpacedPoints(x);D=!0;W=!1;var F=E.computeFrenetFrames(x,!1);var I=new m;var K=new m;var J=new m}W||(O=B=N=C=0);a=a.extractPoints(A);E=a.shape;var P=a.holes;if(!pb.isClockWise(E))for(E=E.reverse(),a=0,A=P.length;a<A;a++){var M=P[a];pb.isClockWise(M)&&
+(P[a]=M.reverse())}var T=pb.triangulateShape(E,P),U=E;a=0;for(A=P.length;a<A;a++)E=E.concat(P[a]);var V=E.length,aa=T.length;a=[];A=0;M=U.length;for(var ca=M-1,Q=A+1;A<M;A++,ca++,Q++)ca===M&&(ca=0),Q===M&&(Q=0),a[A]=g(U[A],U[ca],U[Q]);A=[];M=a.concat();Q=0;for(var R=P.length;Q<R;Q++){var S=P[Q];ca=[];for(var X=0,Y=S.length,ba=Y-1,Z=X+1;X<Y;X++,ba++,Z++)ba===Y&&(ba=0),Z===Y&&(Z=0),ca[X]=g(S[X],S[ba],S[Z]);A.push(ca);M=M.concat(ca)}for(Q=0;Q<C;Q++){ca=Q/C;R=N*Math.cos(ca*Math.PI/2);S=B*Math.sin(ca*
+Math.PI/2)+O;ca=0;for(X=U.length;ca<X;ca++)Y=c(U[ca],a[ca],S),l(Y.x,Y.y,-R);X=0;for(Y=P.length;X<Y;X++){ba=P[X];ca=A[X];Z=0;for(var da=ba.length;Z<da;Z++){var ea=c(ba[Z],ca[Z],S);l(ea.x,ea.y,-R)}}}ca=B+O;for(Q=0;Q<V;Q++)R=W?c(E[Q],M[Q],ca):E[Q],D?(K.copy(F.normals[0]).multiplyScalar(R.x),I.copy(F.binormals[0]).multiplyScalar(R.y),J.copy(H[0]).add(K).add(I),l(J.x,J.y,J.z)):l(R.x,R.y,0);for(Q=1;Q<=x;Q++)for(R=0;R<V;R++)S=W?c(E[R],M[R],ca):E[R],D?(K.copy(F.normals[Q]).multiplyScalar(S.x),I.copy(F.binormals[Q]).multiplyScalar(S.y),
+J.copy(H[Q]).add(K).add(I),l(J.x,J.y,J.z)):l(S.x,S.y,y/x*Q);for(F=C-1;0<=F;F--){K=F/C;I=N*Math.cos(K*Math.PI/2);K=B*Math.sin(K*Math.PI/2)+O;J=0;for(E=U.length;J<E;J++)M=c(U[J],a[J],K),l(M.x,M.y,y+I);J=0;for(E=P.length;J<E;J++)for(M=P[J],ca=A[J],Q=0,R=M.length;Q<R;Q++)S=c(M[Q],ca[Q],K),D?l(S.x,S.y+H[x-1].y,H[x-1].x+I):l(S.x,S.y,y+I)}(function(){var a=e.length/3;if(W){for(var b=0*V,c=0;c<aa;c++){var f=T[c];k(f[2]+b,f[1]+b,f[0]+b)}b=V*(x+2*C);for(c=0;c<aa;c++)f=T[c],k(f[0]+b,f[1]+b,f[2]+b)}else{for(b=
+0;b<aa;b++)c=T[b],k(c[2],c[1],c[0]);for(b=0;b<aa;b++)c=T[b],k(c[0]+V*x,c[1]+V*x,c[2]+V*x)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(U,b);b+=U.length;for(var c=0,f=P.length;c<f;c++){var g=P[c];h(g,b);b+=g.length}d.addGroup(a,e.length/3-a,1)})()}D.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.setAttribute("position",new C(e,3));this.setAttribute("uv",new C(f,
+2));this.computeVertexNormals()}function ci(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function ae(a,b){J.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Vc(a,b));this.mergeVertices()}function Vc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),
+new J;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);fb.call(this,a,b);this.type="TextBufferGeometry"}function be(a,b,c,d,e,f,g){J.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new ec(a,b,c,d,e,f,g));this.mergeVertices()}function ec(a,
+b,c,d,e,f,g){D.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;for(var h=Math.min(f+g,Math.PI),l=0,n=[],k=new m,p=new m,v=[],r=[],t=[],u=[],z=0;z<=c;z++){var A=[],x=z/c,w=0;0==z&&0==f?w=.5/b:z==c&&h==Math.PI&&(w=-.5/b);for(var y=0;y<=b;y++){var N=
+y/b;k.x=-a*Math.cos(d+N*e)*Math.sin(f+x*g);k.y=a*Math.cos(f+x*g);k.z=a*Math.sin(d+N*e)*Math.sin(f+x*g);r.push(k.x,k.y,k.z);p.copy(k).normalize();t.push(p.x,p.y,p.z);u.push(N+w,1-x);A.push(l++)}n.push(A)}for(a=0;a<c;a++)for(d=0;d<b;d++)e=n[a][d+1],g=n[a][d],l=n[a+1][d],k=n[a+1][d+1],(0!==a||0<f)&&v.push(e,g,k),(a!==c-1||h<Math.PI)&&v.push(g,l,k);this.setIndex(v);this.setAttribute("position",new C(r,3));this.setAttribute("normal",new C(t,3));this.setAttribute("uv",new C(u,2))}function ce(a,b,c,d,e,
+f){J.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new Wc(a,b,c,d,e,f));this.mergeVertices()}function Wc(a,b,c,d,e,f){D.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=
+[],h=[],l=[],n=[],k=a;a=(b-a)/d;for(var p=new m,v=new w,r=0;r<=d;r++){for(var t=0;t<=c;t++){var u=e+t/c*f;p.x=k*Math.cos(u);p.y=k*Math.sin(u);h.push(p.x,p.y,p.z);l.push(0,0,1);v.x=(p.x/b+1)/2;v.y=(p.y/b+1)/2;n.push(v.x,v.y)}k+=a}for(b=0;b<d;b++)for(e=b*(c+1),f=0;f<c;f++)k=f+e,a=k+c+1,p=k+c+2,v=k+1,g.push(k,a,v),g.push(a,p,v);this.setIndex(g);this.setAttribute("position",new C(h,3));this.setAttribute("normal",new C(l,3));this.setAttribute("uv",new C(n,2))}function de(a,b,c,d){J.call(this);this.type=
+"LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Xc(a,b,c,d));this.mergeVertices()}function Xc(a,b,c,d){D.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=P.clamp(d,0,2*Math.PI);for(var e=[],f=[],g=[],h=1/b,l=new m,n=new w,k=0;k<=b;k++){var p=c+k*h*d,v=Math.sin(p);p=Math.cos(p);for(var r=0;r<=a.length-1;r++)l.x=a[r].x*v,l.y=a[r].y,l.z=a[r].x*p,
+f.push(l.x,l.y,l.z),n.x=k/b,n.y=r/(a.length-1),g.push(n.x,n.y)}for(c=0;c<b;c++)for(h=0;h<a.length-1;h++)l=h+c*a.length,n=l+a.length,k=l+a.length+1,v=l+1,e.push(l,n,v),e.push(n,k,v);this.setIndex(e);this.setAttribute("position",new C(f,3));this.setAttribute("uv",new C(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new m,f=new m,g=new m,b=b*a.length*3,h=c=0;c<a.length;c++,h+=3)e.x=d[h+0],e.y=d[h+1],e.z=d[h+2],f.x=d[b+h+0],f.y=d[b+h+1],f.z=d[b+h+2],g.addVectors(e,
+f).normalize(),d[h+0]=d[b+h+0]=g.x,d[h+1]=d[b+h+1]=g.y,d[h+2]=d[b+h+2]=g.z}function fc(a,b){J.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new gc(a,b));this.mergeVertices()}function gc(a,b){function c(a){var c=e.length/3,h=a.extractPoints(b);a=h.shape;var n=h.holes;!1===pb.isClockWise(a)&&(a=a.reverse());h=0;for(var k=n.length;h<
+k;h++){var q=n[h];!0===pb.isClockWise(q)&&(n[h]=q.reverse())}h=pb.triangulateShape(a,n);k=0;for(q=n.length;k<q;k++)a=a.concat(n[k]);n=0;for(k=a.length;n<k;n++)q=a[n],e.push(q.x,q.y,0),f.push(0,0,1),g.push(q.x,q.y);a=0;for(n=h.length;a<n;a++)k=h[a],d.push(k[0]+c,k[1]+c,k[2]+c),l+=3}D.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=0;if(!1===Array.isArray(a))c(a);else for(var n=0;n<a.length;n++)c(a[n]),this.addGroup(h,l,n),
+h+=l,l=0;this.setIndex(d);this.setAttribute("position",new C(e,3));this.setAttribute("normal",new C(f,3));this.setAttribute("uv",new C(g,2))}function di(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function Yc(a,b){D.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new J;g.fromBufferGeometry(a)}else g=
+a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var n=g[h],k=0;3>k;k++){var p=n[f[k]];var m=n[f[(k+1)%3]];d[0]=Math.min(p,m);d[1]=Math.max(p,m);p=d[0]+","+d[1];void 0===e[p]?e[p]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[p].face2=h}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new C(c,3))}function hc(a,
+b,c,d,e,f,g,h){J.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new qb(a,b,c,d,e,f,g,h));this.mergeVertices()}function qb(a,b,c,d,e,f,g,h){function l(c){var e,f=new w,l=new m,q=0,u=!0===c?a:b,x=!0===c?1:-1;var y=t;for(e=1;e<=d;e++)p.push(0,z*x,0),v.push(0,x,0),r.push(.5,.5),t++;e=t;for(var C=0;C<=d;C++){var D=C/d*h+g,F=Math.cos(D);D=Math.sin(D);l.x=u*D;l.y=
+z*x;l.z=u*F;p.push(l.x,l.y,l.z);v.push(0,x,0);f.x=.5*F+.5;f.y=.5*D*x+.5;r.push(f.x,f.y);t++}for(f=0;f<d;f++)l=y+f,u=e+f,!0===c?k.push(u,u+1,l):k.push(u+1,u,l),q+=3;n.addGroup(A,q,!0===c?1:2);A+=q}D.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var n=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==
+h?h:2*Math.PI;var k=[],p=[],v=[],r=[],t=0,u=[],z=c/2,A=0;(function(){for(var f=new m,l=new m,q=0,w=(b-a)/c,B=0;B<=e;B++){for(var y=[],C=B/e,E=C*(b-a)+a,D=0;D<=d;D++){var F=D/d,G=F*h+g,H=Math.sin(G);G=Math.cos(G);l.x=E*H;l.y=-C*c+z;l.z=E*G;p.push(l.x,l.y,l.z);f.set(H,w,G).normalize();v.push(f.x,f.y,f.z);r.push(F,1-C);y.push(t++)}u.push(y)}for(f=0;f<d;f++)for(l=0;l<e;l++)w=u[l+1][f],B=u[l+1][f+1],y=u[l][f+1],k.push(u[l][f],w,y),k.push(w,B,y),q+=6;n.addGroup(A,q,0);A+=q})();!1===f&&(0<a&&l(!0),0<b&&
+l(!1));this.setIndex(k);this.setAttribute("position",new C(p,3));this.setAttribute("normal",new C(v,3));this.setAttribute("uv",new C(r,2))}function ee(a,b,c,d,e,f,g){hc.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function fe(a,b,c,d,e,f,g){qb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,
+thetaLength:g}}function ge(a,b,c,d){J.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new Zc(a,b,c,d));this.mergeVertices()}function Zc(a,b,c,d){D.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l=new m,n=new w;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);for(var k=
+0,p=3;k<=b;k++,p+=3){var v=c+k/b*d;l.x=a*Math.cos(v);l.y=a*Math.sin(v);f.push(l.x,l.y,l.z);g.push(0,0,1);n.x=(f[p]/a+1)/2;n.y=(f[p+1]/a+1)/2;h.push(n.x,n.y)}for(a=1;a<=b;a++)e.push(a,a+1,0);this.setIndex(e);this.setAttribute("position",new C(f,3));this.setAttribute("normal",new C(g,3));this.setAttribute("uv",new C(h,2))}function ic(a){K.call(this);this.type="ShadowMaterial";this.color=new H(0);this.transparent=!0;this.setValues(a)}function rb(a){Ba.call(this,a);this.type="RawShaderMaterial"}function gb(a){K.call(this);
+this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new H(16777215);this.roughness=1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=
+null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexTangents=this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Kb(a){gb.call(this);this.defines={STANDARD:"",PHYSICAL:""};this.type="MeshPhysicalMaterial";this.clearcoat=0;this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new w(1,1);this.clearcoatNormalMap=
+null;this.reflectivity=.5;this.sheen=null;this.transmission=0;this.transmissionMap=null;this.setValues(a)}function Lb(a){K.call(this);this.type="MeshPhongMaterial";this.color=new H(16777215);this.specular=new H(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=
+null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function jc(a){K.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.color=new H(16777215);this.lightMap=this.gradientMap=this.map=null;this.lightMapIntensity=
+1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function kc(a){K.call(this);this.type=
+"MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function lc(a){K.call(this);this.type="MeshLambertMaterial";this.color=new H(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;
+this.emissive=new H(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function mc(a){K.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new H(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=
+1;this.normalMap=null;this.normalMapType=0;this.normalScale=new w(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function nc(a){ia.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Ka(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=
+c}function Ve(a,b,c,d){Ka.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function he(a,b,c,d){Ka.call(this,a,b,c,d)}function We(a,b,c,d){Ka.call(this,a,b,c,d)}function ta(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=X.convertArray(b,this.TimeBufferType);this.values=X.convertArray(c,this.ValueBufferType);
+this.setInterpolation(d||this.DefaultInterpolation)}function Xe(a,b,c){ta.call(this,a,b,c)}function Ye(a,b,c,d){ta.call(this,a,b,c,d)}function $c(a,b,c,d){ta.call(this,a,b,c,d)}function Ze(a,b,c,d){Ka.call(this,a,b,c,d)}function ie(a,b,c,d){ta.call(this,a,b,c,d)}function $e(a,b,c,d){ta.call(this,a,b,c,d)}function ad(a,b,c,d){ta.call(this,a,b,c,d)}function Qa(a,b,c,d){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.blendMode=void 0!==d?d:2500;this.uuid=P.generateUUID();0>this.duration&&
+this.resetDuration()}function Hk(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return $c;case "vector":case "vector2":case "vector3":case "vector4":return ad;case "color":return Ye;case "quaternion":return ie;case "bool":case "boolean":return Xe;case "string":return $e}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function Ik(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=Hk(a.type);
+if(void 0===a.times){var c=[],d=[];X.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function tg(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0,l=[];this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};
+this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;return this};this.addHandler=function(a,b){l.push(a,b);return this};this.removeHandler=function(a){a=l.indexOf(a);-1!==a&&l.splice(a,2);return this};this.getHandler=function(a){for(var b=0,c=l.length;b<c;b+=2){var d=l[b],e=l[b+1];d.global&&(d.lastIndex=0);if(d.test(a))return e}return null}}function U(a){this.manager=void 0!==a?a:ei;this.crossOrigin="anonymous";
+this.resourcePath=this.path="";this.requestHeader={}}function Ra(a){U.call(this,a)}function ug(a){U.call(this,a)}function vg(a){U.call(this,a)}function af(a){U.call(this,a)}function bd(a){U.call(this,a)}function bf(a){U.call(this,a)}function cf(a){U.call(this,a)}function I(){this.type="Curve";this.arcLengthDivisions=200}function La(a,b,c,d,e,f,g,h){I.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;
+this.aClockwise=g||!1;this.aRotation=h||0}function cd(a,b,c,d,e,f){La.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function wg(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,l){e=l*(g-e);h=l*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,l,n,k){e=((f-e)/l-(g-e)/(l+n)+(g-f)/n)*n;h=((g-f)/n-(h-f)/(n+k)+(h-g)/k)*n;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function ua(a,b,c,d){I.call(this);this.type=
+"CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=void 0!==d?d:.5}function fi(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function je(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function ke(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Xa(a,b,c,d){I.call(this);this.type="CubicBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w;this.v3=d||new w}function hb(a,
+b,c,d){I.call(this);this.type="CubicBezierCurve3";this.v0=a||new m;this.v1=b||new m;this.v2=c||new m;this.v3=d||new m}function va(a,b){I.call(this);this.type="LineCurve";this.v1=a||new w;this.v2=b||new w}function Ya(a,b){I.call(this);this.type="LineCurve3";this.v1=a||new m;this.v2=b||new m}function Za(a,b,c){I.call(this);this.type="QuadraticBezierCurve";this.v0=a||new w;this.v1=b||new w;this.v2=c||new w}function ib(a,b,c){I.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new m;this.v1=b||
+new m;this.v2=c||new m}function $a(a){I.call(this);this.type="SplineCurve";this.points=a||[]}function sb(){I.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function ab(a){sb.call(this);this.type="Path";this.currentPoint=new w;a&&this.setFromPoints(a)}function Mb(a){ab.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function aa(a,b){y.call(this);this.type="Light";this.color=new H(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function df(a,b,c){aa.call(this,
+a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(y.DefaultUp);this.updateMatrix();this.groundColor=new H(b)}function jb(a){this.camera=a;this.normalBias=this.bias=0;this.radius=1;this.mapSize=new w(512,512);this.mapPass=this.map=null;this.matrix=new T;this.autoUpdate=!0;this.needsUpdate=!1;this._frustum=new Ec;this._frameExtents=new w(1,1);this._viewportCount=1;this._viewports=[new ba(0,0,1,1)]}function ef(){jb.call(this,new ma(50,1,.5,500))}function ff(a,b,c,d,e,f){aa.call(this,
+a,b);this.type="SpotLight";this.position.copy(y.DefaultUp);this.updateMatrix();this.target=new y;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new ef}function xg(){jb.call(this,new ma(90,1,.5,500));this._frameExtents=new w(4,2);this._viewportCount=6;this._viewports=[new ba(2,1,1,1),new ba(0,
+1,1,1),new ba(3,1,1,1),new ba(1,1,1,1),new ba(3,0,1,1),new ba(1,0,1,1)];this._cubeDirections=[new m(1,0,0),new m(-1,0,0),new m(0,0,1),new m(0,0,-1),new m(0,1,0),new m(0,-1,0)];this._cubeUps=[new m(0,1,0),new m(0,1,0),new m(0,1,0),new m(0,1,0),new m(0,0,1),new m(0,0,-1)]}function gf(a,b,c,d){aa.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=
+void 0!==d?d:1;this.shadow=new xg}function dd(a,b,c,d,e,f){eb.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function hf(){jb.call(this,new dd(-5,5,5,-5,.5,500))}function jf(a,b){aa.call(this,a,b);this.type="DirectionalLight";this.position.copy(y.DefaultUp);this.updateMatrix();this.target=new y;
+this.shadow=new hf}function kf(a,b){aa.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function lf(a,b,c,d){aa.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function mf(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new m)}function Sa(a,b){aa.call(this,void 0,b);this.type="LightProbe";this.sh=void 0!==a?a:new mf}function nf(a){U.call(this,a);this.textures={}}function le(){D.call(this);this.type="InstancedBufferGeometry";
+this.instanceCount=Infinity}function of(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));F.call(this,a,b,c);this.meshPerAttribute=d||1}function pf(a){U.call(this,a)}function qf(a){U.call(this,a)}function yg(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");
+U.call(this,a);this.options={premultiplyAlpha:"none"}}function zg(){this.type="ShapePath";this.color=new H;this.subPaths=[];this.currentPath=null}function Ag(a){this.type="Font";this.data=a}function Bg(a){U.call(this,a)}function rf(a){U.call(this,a)}function Cg(a,b,c){Sa.call(this,void 0,c);a=(new H).set(a);c=(new H).set(b);b=new m(a.r,a.g,a.b);a=new m(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}
+function Dg(a,b){Sa.call(this,void 0,b);a=(new H).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function gi(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new ma;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new ma;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}function Eg(a){this.autoStart=void 0!==a?a:
+!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Fg(){y.call(this);this.type="AudioListener";this.context=Gg.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Eg}function ed(a){y.call(this);this.type="Audio";this.listener=a;this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.detune=0;this.loop=!1;this.offset=
+this.loopEnd=this.loopStart=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this._progress=this._startedAt=0;this.filters=[]}function Hg(a){ed.call(this,a);this.panner=this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}function Ig(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}
+function Jg(a,b,c){this.binding=a;this.valueSize=c;switch(b){case "quaternion":a=this._slerp;b=this._slerpAdditive;var d=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(6*c);this._workIndex=5;break;case "string":case "bool":b=a=this._select;d=this._setAdditiveIdentityOther;this.buffer=Array(5*c);break;default:a=this._lerp,b=this._lerpAdditive,d=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*c)}this._mixBufferRegion=a;this._mixBufferRegionAdditive=b;this._setIdentity=
+d;this._origIndex=3;this._addIndex=4;this.referenceCount=this.useCount=this.cumulativeWeightAdditive=this.cumulativeWeight=0}function hi(a,b,c){c=c||pa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function pa(a,b,c){this.path=b;this.parsedPath=c||pa.parseTrackName(b);this.node=pa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function ii(){this.uuid=P.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=
+a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function ji(a,b,c,d){this._mixer=a;this._clip=b;this._localRoot=c||null;this.blendMode=d||b.blendMode;a=b.tracks;b=a.length;c=Array(b);d={endingStart:2400,endingEnd:2400};for(var e=
+0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=
+!0}function Kg(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function sf(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function Lg(a,b,c){Ia.call(this,a,b);this.meshPerAttribute=c||1}function Mg(a,b,c,d){this.ray=new Vb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.layers=new Ce;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,
+{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function ki(a,b){return a.distance-b.distance}function Ng(a,b,c,d){a.layers.test(b.layers)&&a.raycast(b,c);if(!0===d){a=a.children;d=0;for(var e=a.length;d<e;d++)Ng(a[d],b,c,!0)}}function li(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function mi(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=
+void 0!==c?c:0;return this}function Og(a,b){this.min=void 0!==a?a:new w(Infinity,Infinity);this.max=void 0!==b?b:new w(-Infinity,-Infinity)}function Pg(a,b){this.start=void 0!==a?a:new m;this.end=void 0!==b?b:new m}function me(a){y.call(this);this.material=a;this.render=function(){};this.hasUvs=this.hasColors=this.hasNormals=this.hasPositions=!1;this.uvArray=this.colorArray=this.normalArray=this.positionArray=null;this.count=0}function fd(a,b){y.call(this);this.light=a;this.light.updateMatrixWorld();
+this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new D;b=[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(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.setAttribute("position",new C(b,3));b=new ia({fog:!1,toneMapped:!1});this.cone=new da(a,b);this.add(this.cone);this.update()}function ni(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ni(a.children[c]));
+return b}function oc(a){for(var b=ni(a),c=new D,d=[],e=[],f=new H(0,0,1),g=new H(0,1,0),h=0;h<b.length;h++){var l=b[h];l.parent&&l.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.setAttribute("position",new C(d,3));c.setAttribute("color",new C(e,3));d=new ia({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});da.call(this,c,d);this.type="SkeletonHelper";this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1}function gd(a,
+b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new ec(b,4,2);b=new Na({wireframe:!0,fog:!1,toneMapped:!1});Z.call(this,a,b);this.type="PointLightHelper";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function hd(a,b,c){y.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new bc(b);a.rotateY(.5*Math.PI);this.material=new Na({wireframe:!0,fog:!1,toneMapped:!1});void 0===this.color&&(this.material.vertexColors=
+!0);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.setAttribute("color",new F(b,3));this.add(new Z(a,this.material));this.update()}function tf(a,b,c,d){a=a||10;b=b||10;c=new H(void 0!==c?c:4473924);d=new H(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,n=0,k=-g;l<=b;l++,k+=f){a.push(-g,0,k,g,0,k);a.push(k,0,-g,k,0,g);var p=l===e?c:d;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3}b=new D;b.setAttribute("position",new C(a,3));b.setAttribute("color",
+new C(h,3));c=new ia({vertexColors:!0,toneMapped:!1});da.call(this,b,c);this.type="GridHelper"}function uf(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new H(void 0!==e?e:4473924);f=new H(void 0!==f?f:8947848);for(var g=[],h=[],l=0;l<=b;l++){var n=l/b*2*Math.PI,k=Math.sin(n)*a;n=Math.cos(n)*a;g.push(0,0,0);g.push(k,0,n);k=l&1?e:f;h.push(k.r,k.g,k.b);h.push(k.r,k.g,k.b)}for(b=0;b<=c;b++)for(l=b&1?e:f,k=a-a/c*b,n=0;n<d;n++){var p=n/d*2*Math.PI,m=Math.sin(p)*k;p=Math.cos(p)*k;g.push(m,0,p);h.push(l.r,
+l.g,l.b);p=(n+1)/d*2*Math.PI;m=Math.sin(p)*k;p=Math.cos(p)*k;g.push(m,0,p);h.push(l.r,l.g,l.b)}a=new D;a.setAttribute("position",new C(g,3));a.setAttribute("color",new C(h,3));g=new ia({vertexColors:!0,toneMapped:!1});da.call(this,a,g);this.type="PolarGridHelper"}function id(a,b,c){y.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;void 0===b&&(b=1);a=new D;a.setAttribute("position",new C([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));
+b=new ia({fog:!1,toneMapped:!1});this.lightPlane=new Ja(a,b);this.add(this.lightPlane);a=new D;a.setAttribute("position",new C([0,0,0,0,0,1],3));this.targetLine=new Ja(a,b);this.add(this.targetLine);this.update()}function ne(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new D,e=new ia({color:16777215,vertexColors:!0,toneMapped:!1}),f=[],g=[],h={},l=new H(16755200),n=new H(16711680),k=new H(43775),p=new H(16777215),
+m=new H(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",n);b("p","n2",n);b("p","n3",n);b("p","n4",n);b("u1","u2",k);b("u2","u3",k);b("u3","u1",k);b("c","t",p);b("p","c",m);b("cn1","cn2",m);b("cn3","cn4",m);b("cf1","cf2",m);b("cf3","cf4",m);d.setAttribute("position",new C(f,3));d.setAttribute("color",new C(g,3));da.call(this,d,e);this.type="CameraHelper";
+this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function R(a,b,c,d,e,f,g){vf.set(e,f,g).unproject(d);a=b[a];if(void 0!==a)for(c=c.getAttribute("position"),b=0,d=a.length;b<d;b++)c.setXYZ(a[b],vf.x,vf.y,vf.z)}function tb(a,b){this.object=a;void 0===b&&(b=16776960);a=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]);var c=new Float32Array(24),d=new D;d.setIndex(new F(a,
+1));d.setAttribute("position",new F(c,3));da.call(this,d,new ia({color:b,toneMapped:!1}));this.type="BoxHelper";this.matrixAutoUpdate=!1;this.update()}function oe(a,b){this.type="Box3Helper";this.box=a;void 0===b&&(b=16776960);a=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]);var c=new D;c.setIndex(new F(a,1));c.setAttribute("position",new C([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));da.call(this,c,new ia({color:b,toneMapped:!1}));this.type="Box3Helper";this.geometry.computeBoundingSphere()}
+function pe(a,b,c){this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new D;b.setAttribute("position",new C([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,0,1,0,0,0],3));b.computeBoundingSphere();Ja.call(this,b,new ia({color:a,toneMapped:!1}));this.type="PlaneHelper";b=new D;b.setAttribute("position",new C([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new Z(b,new Na({color:a,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}function ub(a,
+b,c,d,e,f){y.call(this);this.type="ArrowHelper";void 0===a&&(a=new m(0,0,1));void 0===b&&(b=new m(0,0,0));void 0===c&&(c=1);void 0===d&&(d=16776960);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===wf&&(wf=new D,wf.setAttribute("position",new C([0,0,0,0,1,0],3)),Qg=new qb(0,.5,1,5,1),Qg.translate(0,-.5,0));this.position.copy(b);this.line=new Ja(wf,new ia({color:d,toneMapped:!1}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new Z(Qg,new Na({color:d,toneMapped:!1}));this.cone.matrixAutoUpdate=
+!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function qe(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new D;a.setAttribute("position",new C(b,3));a.setAttribute("color",new C([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ia({vertexColors:!0,toneMapped:!1});da.call(this,a,b);this.type="AxesHelper"}function Rg(a){this._renderer=a;this._pingPongRenderTarget=null;a=new Float32Array(20);var b=new m(0,1,0);this._blurMaterial=new rb({name:"SphericalGaussianBlur",defines:{n:20},
+uniforms:{envMap:{value:null},samples:{value:1},weights:{value:a},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:b},inputEncoding:{value:kb[3E3]},outputEncoding:{value:kb[3E3]}},vertexShader:Sg(),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"+
+Tg()+"\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\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",
 blending:0,depthTest:!1,depthWrite:!1});this._cubemapShader=this._equirectShader=null;this._compileMaterial(this._blurMaterial)}function oi(a){a=new Ea(3*lb,3*lb,a);a.texture.mapping=306;a.texture.name="PMREM.cubeUv";a.scissorTest=!0;return a}function xf(a,b,c,d,e){a.viewport.set(b,c,d,e);a.scissor.set(b,c,d,e)}function pi(){var a=new w(1,1);return new rb({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:a},inputEncoding:{value:kb[3E3]},outputEncoding:{value:kb[3E3]}},
 vertexShader:Sg(),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 vec2 texelSize;\n\n\t\t\t"+Tg()+"\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",
 blending:0,depthTest:!1,depthWrite:!1})}function qi(){return new rb({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:kb[3E3]},outputEncoding:{value:kb[3E3]}},vertexShader:Sg(),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 samplerCube envMap;\n\n\t\t\t"+Tg()+"\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",
@@ -723,19 +724,19 @@ c=[],d=0,e=b.count;d<e;d+=2)Of.fromBufferAttribute(b,d),Pf.fromBufferAttribute(b
 {constructor:Re,isLineLoop:!0});Wa.prototype=Object.create(K.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isPointsMaterial=!0;Wa.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=a.morphTargets;return this};var Mi=new T,pg=new Vb,Ae=new db,Qf=new m;Lc.prototype=Object.assign(Object.create(y.prototype),{constructor:Lc,isPoints:!0,copy:function(a){y.prototype.copy.call(this,
 a);this.material=a.material;this.geometry=a.geometry;return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ae.copy(c.boundingSphere);Ae.applyMatrix4(d);Ae.radius+=e;if(!1!==a.ray.intersectsSphere(Ae))if(Mi.getInverse(d),pg.copy(a.ray).applyMatrix4(Mi),e/=(this.scale.x+this.scale.y+this.scale.z)/3,e*=e,c.isBufferGeometry){var f=c.index;c=c.attributes.position.array;if(null!==f){f=f.array;for(var g=0,
 h=f.length;g<h;g++){var l=f[g];Qf.fromArray(c,3*l);og(Qf,l,e,d,a,b,this)}}else for(f=0,g=c.length/3;f<g;f++)Qf.fromArray(c,3*f),og(Qf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)og(c[f],f,e,d,a,b,this)},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);
-this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});qg.prototype=Object.assign(Object.create(V.prototype),{constructor:qg,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Mc.prototype=Object.create(V.prototype);Mc.prototype.constructor=Mc;Mc.prototype.isCompressedTexture=!0;Nd.prototype=
-Object.create(V.prototype);Nd.prototype.constructor=Nd;Nd.prototype.isCanvasTexture=!0;Od.prototype=Object.create(V.prototype);Od.prototype.constructor=Od;Od.prototype.isDepthTexture=!0;Nc.prototype=Object.create(D.prototype);Nc.prototype.constructor=Nc;Pd.prototype=Object.create(J.prototype);Pd.prototype.constructor=Pd;Oc.prototype=Object.create(D.prototype);Oc.prototype.constructor=Oc;Qd.prototype=Object.create(J.prototype);Qd.prototype.constructor=Qd;ha.prototype=Object.create(D.prototype);ha.prototype.constructor=
-ha;Rd.prototype=Object.create(J.prototype);Rd.prototype.constructor=Rd;Pc.prototype=Object.create(ha.prototype);Pc.prototype.constructor=Pc;Sd.prototype=Object.create(J.prototype);Sd.prototype.constructor=Sd;bc.prototype=Object.create(ha.prototype);bc.prototype.constructor=bc;Td.prototype=Object.create(J.prototype);Td.prototype.constructor=Td;Qc.prototype=Object.create(ha.prototype);Qc.prototype.constructor=Qc;Ud.prototype=Object.create(J.prototype);Ud.prototype.constructor=Ud;Rc.prototype=Object.create(ha.prototype);
-Rc.prototype.constructor=Rc;Vd.prototype=Object.create(J.prototype);Vd.prototype.constructor=Vd;cc.prototype=Object.create(D.prototype);cc.prototype.constructor=cc;cc.prototype.toJSON=function(){var a=D.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};Wd.prototype=Object.create(J.prototype);Wd.prototype.constructor=Wd;Sc.prototype=Object.create(D.prototype);Sc.prototype.constructor=Sc;Xd.prototype=Object.create(J.prototype);Xd.prototype.constructor=Xd;Tc.prototype=Object.create(D.prototype);
-Tc.prototype.constructor=Tc;var Tk={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=Xh(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var h;if(d){var l=c;d=[];var k;var m=0;for(k=b.length;m<k;m++){var p=b[m]*l;var v=m<k-1?b[m+1]*l:a.length;p=Xh(a,p,v,l,!1);p===p.next&&(p.steiner=!0);d.push(Fk(p))}d.sort(Dk);for(m=0;m<d.length;m++){l=d[m];b=f;if(b=Ek(l,b))l=$h(b,l),Jb(b,b.next),Jb(l,l.next);f=Jb(f,f.next)}}if(a.length>80*c){var r=h=a[0];var t=d=a[1];for(l=c;l<e;l+=c)m=
-a[l],b=a[l+1],m<r&&(r=m),b<t&&(t=b),m>h&&(h=m),b>d&&(d=b);h=Math.max(h-r,d-t);h=0!==h?1/h:0}Zd(f,g,c,r,t,h);return g}},pb={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},isClockWise:function(a){return 0>pb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];ai(a);bi(c,a);a=a.length;b.forEach(ai);for(var f=0;f<b.length;f++)d.push(a),a+=b[f].length,bi(c,b[f]);b=Tk.triangulate(c,d);for(c=0;c<b.length;c+=3)e.push(b.slice(c,c+3));return e}};
-dc.prototype=Object.create(J.prototype);dc.prototype.constructor=dc;dc.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);return ci(this.parameters.shapes,this.parameters.options,a)};fb.prototype=Object.create(D.prototype);fb.prototype.constructor=fb;fb.prototype.toJSON=function(){var a=D.prototype.toJSON.call(this);return ci(this.parameters.shapes,this.parameters.options,a)};var Gk={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];e=b[3*e+1];return[new w(b[3*c],b[3*
-c+1]),new w(a,d),new w(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var h=b[3*d],l=b[3*d+1];d=b[3*d+2];var k=b[3*e],m=b[3*e+1];e=b[3*e+2];var p=b[3*f],v=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new w(a,1-c),new w(h,1-d),new w(k,1-e),new w(p,1-b)]:[new w(g,1-c),new w(l,1-d),new w(m,1-e),new w(v,1-b)]}};ae.prototype=Object.create(J.prototype);ae.prototype.constructor=ae;Vc.prototype=Object.create(fb.prototype);Vc.prototype.constructor=Vc;be.prototype=Object.create(J.prototype);
-be.prototype.constructor=be;ec.prototype=Object.create(D.prototype);ec.prototype.constructor=ec;ce.prototype=Object.create(J.prototype);ce.prototype.constructor=ce;Wc.prototype=Object.create(D.prototype);Wc.prototype.constructor=Wc;de.prototype=Object.create(J.prototype);de.prototype.constructor=de;Xc.prototype=Object.create(D.prototype);Xc.prototype.constructor=Xc;fc.prototype=Object.create(J.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);
-return di(this.parameters.shapes,a)};gc.prototype=Object.create(D.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=D.prototype.toJSON.call(this);return di(this.parameters.shapes,a)};Yc.prototype=Object.create(D.prototype);Yc.prototype.constructor=Yc;hc.prototype=Object.create(J.prototype);hc.prototype.constructor=hc;qb.prototype=Object.create(D.prototype);qb.prototype.constructor=qb;ee.prototype=Object.create(hc.prototype);ee.prototype.constructor=ee;fe.prototype=Object.create(qb.prototype);
-fe.prototype.constructor=fe;ge.prototype=Object.create(J.prototype);ge.prototype.constructor=ge;Zc.prototype=Object.create(D.prototype);Zc.prototype.constructor=Zc;var Da=Object.freeze({__proto__:null,WireframeGeometry:Nc,ParametricGeometry:Pd,ParametricBufferGeometry:Oc,TetrahedronGeometry:Rd,TetrahedronBufferGeometry:Pc,OctahedronGeometry:Sd,OctahedronBufferGeometry:bc,IcosahedronGeometry:Td,IcosahedronBufferGeometry:Qc,DodecahedronGeometry:Ud,DodecahedronBufferGeometry:Rc,PolyhedronGeometry:Qd,
-PolyhedronBufferGeometry:ha,TubeGeometry:Vd,TubeBufferGeometry:cc,TorusKnotGeometry:Wd,TorusKnotBufferGeometry:Sc,TorusGeometry:Xd,TorusBufferGeometry:Tc,TextGeometry:ae,TextBufferGeometry:Vc,SphereGeometry:be,SphereBufferGeometry:ec,RingGeometry:ce,RingBufferGeometry:Wc,PlaneGeometry:Ed,PlaneBufferGeometry:$b,LatheGeometry:de,LatheBufferGeometry:Xc,ShapeGeometry:fc,ShapeBufferGeometry:gc,ExtrudeGeometry:dc,ExtrudeBufferGeometry:fb,EdgesGeometry:Yc,ConeGeometry:ee,ConeBufferGeometry:fe,CylinderGeometry:hc,
-CylinderBufferGeometry:qb,CircleGeometry:ge,CircleBufferGeometry:Zc,BoxGeometry:hh,BoxBufferGeometry:Fd});ic.prototype=Object.create(K.prototype);ic.prototype.constructor=ic;ic.prototype.isShadowMaterial=!0;ic.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);return this};rb.prototype=Object.create(Ba.prototype);rb.prototype.constructor=rb;rb.prototype.isRawShaderMaterial=!0;gb.prototype=Object.create(K.prototype);gb.prototype.constructor=gb;gb.prototype.isMeshStandardMaterial=
+this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});qg.prototype=Object.assign(Object.create(V.prototype),{constructor:qg,isVideoTexture:!0,update:function(){var a=this.image;!1==="requestVideoFrameCallback"in a&&a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Mc.prototype=Object.create(V.prototype);Mc.prototype.constructor=Mc;Mc.prototype.isCompressedTexture=
+!0;Nd.prototype=Object.create(V.prototype);Nd.prototype.constructor=Nd;Nd.prototype.isCanvasTexture=!0;Od.prototype=Object.create(V.prototype);Od.prototype.constructor=Od;Od.prototype.isDepthTexture=!0;Nc.prototype=Object.create(D.prototype);Nc.prototype.constructor=Nc;Pd.prototype=Object.create(J.prototype);Pd.prototype.constructor=Pd;Oc.prototype=Object.create(D.prototype);Oc.prototype.constructor=Oc;Qd.prototype=Object.create(J.prototype);Qd.prototype.constructor=Qd;ha.prototype=Object.create(D.prototype);
+ha.prototype.constructor=ha;Rd.prototype=Object.create(J.prototype);Rd.prototype.constructor=Rd;Pc.prototype=Object.create(ha.prototype);Pc.prototype.constructor=Pc;Sd.prototype=Object.create(J.prototype);Sd.prototype.constructor=Sd;bc.prototype=Object.create(ha.prototype);bc.prototype.constructor=bc;Td.prototype=Object.create(J.prototype);Td.prototype.constructor=Td;Qc.prototype=Object.create(ha.prototype);Qc.prototype.constructor=Qc;Ud.prototype=Object.create(J.prototype);Ud.prototype.constructor=
+Ud;Rc.prototype=Object.create(ha.prototype);Rc.prototype.constructor=Rc;Vd.prototype=Object.create(J.prototype);Vd.prototype.constructor=Vd;cc.prototype=Object.create(D.prototype);cc.prototype.constructor=cc;cc.prototype.toJSON=function(){var a=D.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};Wd.prototype=Object.create(J.prototype);Wd.prototype.constructor=Wd;Sc.prototype=Object.create(D.prototype);Sc.prototype.constructor=Sc;Xd.prototype=Object.create(J.prototype);Xd.prototype.constructor=
+Xd;Tc.prototype=Object.create(D.prototype);Tc.prototype.constructor=Tc;var Tk={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=Xh(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var h;if(d){var l=c;d=[];var k;var m=0;for(k=b.length;m<k;m++){var p=b[m]*l;var v=m<k-1?b[m+1]*l:a.length;p=Xh(a,p,v,l,!1);p===p.next&&(p.steiner=!0);d.push(Fk(p))}d.sort(Dk);for(m=0;m<d.length;m++){l=d[m];b=f;if(b=Ek(l,b))l=$h(b,l),Jb(b,b.next),Jb(l,l.next);f=Jb(f,f.next)}}if(a.length>80*c){var r=
+h=a[0];var t=d=a[1];for(l=c;l<e;l+=c)m=a[l],b=a[l+1],m<r&&(r=m),b<t&&(t=b),m>h&&(h=m),b>d&&(d=b);h=Math.max(h-r,d-t);h=0!==h?1/h:0}Zd(f,g,c,r,t,h);return g}},pb={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},isClockWise:function(a){return 0>pb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];ai(a);bi(c,a);a=a.length;b.forEach(ai);for(var f=0;f<b.length;f++)d.push(a),a+=b[f].length,bi(c,b[f]);b=Tk.triangulate(c,d);for(c=0;c<b.length;c+=
+3)e.push(b.slice(c,c+3));return e}};dc.prototype=Object.create(J.prototype);dc.prototype.constructor=dc;dc.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);return ci(this.parameters.shapes,this.parameters.options,a)};fb.prototype=Object.create(D.prototype);fb.prototype.constructor=fb;fb.prototype.toJSON=function(){var a=D.prototype.toJSON.call(this);return ci(this.parameters.shapes,this.parameters.options,a)};var Gk={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];
+e=b[3*e+1];return[new w(b[3*c],b[3*c+1]),new w(a,d),new w(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var h=b[3*d],l=b[3*d+1];d=b[3*d+2];var k=b[3*e],m=b[3*e+1];e=b[3*e+2];var p=b[3*f],v=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new w(a,1-c),new w(h,1-d),new w(k,1-e),new w(p,1-b)]:[new w(g,1-c),new w(l,1-d),new w(m,1-e),new w(v,1-b)]}};ae.prototype=Object.create(J.prototype);ae.prototype.constructor=ae;Vc.prototype=Object.create(fb.prototype);Vc.prototype.constructor=
+Vc;be.prototype=Object.create(J.prototype);be.prototype.constructor=be;ec.prototype=Object.create(D.prototype);ec.prototype.constructor=ec;ce.prototype=Object.create(J.prototype);ce.prototype.constructor=ce;Wc.prototype=Object.create(D.prototype);Wc.prototype.constructor=Wc;de.prototype=Object.create(J.prototype);de.prototype.constructor=de;Xc.prototype=Object.create(D.prototype);Xc.prototype.constructor=Xc;fc.prototype=Object.create(J.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=
+J.prototype.toJSON.call(this);return di(this.parameters.shapes,a)};gc.prototype=Object.create(D.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=D.prototype.toJSON.call(this);return di(this.parameters.shapes,a)};Yc.prototype=Object.create(D.prototype);Yc.prototype.constructor=Yc;hc.prototype=Object.create(J.prototype);hc.prototype.constructor=hc;qb.prototype=Object.create(D.prototype);qb.prototype.constructor=qb;ee.prototype=Object.create(hc.prototype);ee.prototype.constructor=
+ee;fe.prototype=Object.create(qb.prototype);fe.prototype.constructor=fe;ge.prototype=Object.create(J.prototype);ge.prototype.constructor=ge;Zc.prototype=Object.create(D.prototype);Zc.prototype.constructor=Zc;var Da=Object.freeze({__proto__:null,WireframeGeometry:Nc,ParametricGeometry:Pd,ParametricBufferGeometry:Oc,TetrahedronGeometry:Rd,TetrahedronBufferGeometry:Pc,OctahedronGeometry:Sd,OctahedronBufferGeometry:bc,IcosahedronGeometry:Td,IcosahedronBufferGeometry:Qc,DodecahedronGeometry:Ud,DodecahedronBufferGeometry:Rc,
+PolyhedronGeometry:Qd,PolyhedronBufferGeometry:ha,TubeGeometry:Vd,TubeBufferGeometry:cc,TorusKnotGeometry:Wd,TorusKnotBufferGeometry:Sc,TorusGeometry:Xd,TorusBufferGeometry:Tc,TextGeometry:ae,TextBufferGeometry:Vc,SphereGeometry:be,SphereBufferGeometry:ec,RingGeometry:ce,RingBufferGeometry:Wc,PlaneGeometry:Ed,PlaneBufferGeometry:$b,LatheGeometry:de,LatheBufferGeometry:Xc,ShapeGeometry:fc,ShapeBufferGeometry:gc,ExtrudeGeometry:dc,ExtrudeBufferGeometry:fb,EdgesGeometry:Yc,ConeGeometry:ee,ConeBufferGeometry:fe,
+CylinderGeometry:hc,CylinderBufferGeometry:qb,CircleGeometry:ge,CircleBufferGeometry:Zc,BoxGeometry:hh,BoxBufferGeometry:Fd});ic.prototype=Object.create(K.prototype);ic.prototype.constructor=ic;ic.prototype.isShadowMaterial=!0;ic.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);return this};rb.prototype=Object.create(Ba.prototype);rb.prototype.constructor=rb;rb.prototype.isRawShaderMaterial=!0;gb.prototype=Object.create(K.prototype);gb.prototype.constructor=gb;gb.prototype.isMeshStandardMaterial=
 !0;gb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=
 a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=
 a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.vertexTangents=a.vertexTangents;return this};Kb.prototype=Object.create(gb.prototype);Kb.prototype.constructor=Kb;Kb.prototype.isMeshPhysicalMaterial=!0;Kb.prototype.copy=function(a){gb.prototype.copy.call(this,a);this.defines={STANDARD:"",PHYSICAL:""};this.clearcoat=a.clearcoat;this.clearcoatMap=a.clearcoatMap;this.clearcoatRoughness=a.clearcoatRoughness;this.clearcoatRoughnessMap=
@@ -779,18 +780,18 @@ a);a=this.manager.resolveURL(a);var e=this,f=sc.get(a);if(void 0!==f)return e.ma
 var m="blob"===k?new Blob([n.buffer],{type:c}):n.buffer;break;case "document":m=(new DOMParser).parseFromString(g,c);break;case "json":m=JSON.parse(g);break;default:m=g}setTimeout(function(){b&&b(m);e.manager.itemEnd(a)},0)}catch(v){setTimeout(function(){d&&d(v);e.manager.itemError(a);e.manager.itemEnd(a)},0)}}else{cb[a]=[];cb[a].push({onLoad:b,onProgress:c,onError:d});var p=new XMLHttpRequest;p.open("GET",a,!0);p.addEventListener("load",function(b){var c=this.response,d=cb[a];delete cb[a];if(200===
 this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received.");sc.add(a,c);b=0;for(var f=d.length;b<f;b++){var g=d[b];if(g.onLoad)g.onLoad(c)}}else{c=0;for(f=d.length;c<f;c++)if(g=d[c],g.onError)g.onError(b);e.manager.itemError(a)}e.manager.itemEnd(a)},!1);p.addEventListener("progress",function(b){for(var c=cb[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f.onProgress)f.onProgress(b)}},!1);p.addEventListener("error",function(b){var c=cb[a];delete cb[a];for(var d=
 0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);p.addEventListener("abort",function(b){var c=cb[a];delete cb[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);void 0!==this.responseType&&(p.responseType=this.responseType);void 0!==this.withCredentials&&(p.withCredentials=this.withCredentials);p.overrideMimeType&&p.overrideMimeType(void 0!==this.mimeType?this.mimeType:
-"text/plain");for(h in this.requestHeader)p.setRequestHeader(h,this.requestHeader[h]);p.send(null)}e.manager.itemStart(a);return p}},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this}});ug.prototype=Object.assign(Object.create(U.prototype),{constructor:ug,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?
-d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){for(var b=[],c=0;c<a.length;c++){var d=Qa.parse(a[c]);b.push(d)}return b}});vg.prototype=Object.assign(Object.create(U.prototype),{constructor:vg,load:function(a,b,c,d){function e(e){k.load(a[e],function(a){a=f.parse(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};n+=1;6===n&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Mc;h.image=g;
-var k=new Ra(this.manager);k.setPath(this.path);k.setResponseType("arraybuffer");var n=0;if(Array.isArray(a))for(var m=0,p=a.length;m<p;++m)e(m);else k.load(a,function(a){a=f.parse(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else h.image.width=a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&
-(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h}});af.prototype=Object.assign(Object.create(U.prototype),{constructor:af,load:function(a,b,c,d){var e=this,f=new Zb,g=new Ra(this.manager);g.setResponseType("arraybuffer");g.setPath(this.path);g.load(a,function(a){if(a=e.parse(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,
-f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1006,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps,f.minFilter=1008),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});bd.prototype=Object.assign(Object.create(U.prototype),{constructor:bd,load:function(a,b,c,d){function e(){k.removeEventListener("load",e,
-!1);k.removeEventListener("error",f,!1);sc.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){k.removeEventListener("load",e,!1);k.removeEventListener("error",f,!1);d&&d(b);g.manager.itemError(a);g.manager.itemEnd(a)}void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,h=sc.get(a);if(void 0!==h)return g.manager.itemStart(a),setTimeout(function(){b&&b(h);g.manager.itemEnd(a)},0),h;var k=document.createElementNS("http://www.w3.org/1999/xhtml","img");k.addEventListener("load",
-e,!1);k.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(k.crossOrigin=this.crossOrigin);g.manager.itemStart(a);k.src=a;return k}});bf.prototype=Object.assign(Object.create(U.prototype),{constructor:bf,load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new ob,g=new bd(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f}});
-cf.prototype=Object.assign(Object.create(U.prototype),{constructor:cf,load:function(a,b,c,d){var e=new V,f=new bd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(I.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);
-return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var b=
-[],c=this.getPoint(0),d=0;b.push(0);for(var e=1;e<=a;e++){var f=this.getPoint(e/a);d+=f.distanceTo(c);b.push(d);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a,b){var c=
-a-1E-4;a+=1E-4;0>c&&(c=0);1<a&&(a=1);c=this.getPoint(c);a=this.getPoint(a);b=b||(c.isVector2?new w:new m);b.copy(a).sub(c).normalize();return b},getTangentAt:function(a,b){a=this.getUtoTmapping(a);return this.getTangent(a,b)},computeFrenetFrames:function(a,b){for(var c=new m,d=[],e=[],f=[],g=new m,h=new T,k=0;k<=a;k++)d[k]=this.getTangentAt(k/a,new m),d[k].normalize();e[0]=new m;f[0]=new m;k=Number.MAX_VALUE;var n=Math.abs(d[0].x),q=Math.abs(d[0].y),p=Math.abs(d[0].z);n<=k&&(k=n,c.set(1,0,0));q<=
-k&&(k=q,c.set(0,1,0));p<=k&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(c=1;c<=a;c++)e[c]=e[c-1].clone(),f[c]=f[c-1].clone(),g.crossVectors(d[c-1],d[c]),g.length()>Number.EPSILON&&(g.normalize(),k=Math.acos(P.clamp(d[c-1].dot(d[c]),-1,1)),e[c].applyMatrix4(h.makeRotationAxis(g,k))),f[c].crossVectors(d[c],e[c]);if(!0===b)for(b=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),b/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(b=-b),g=1;g<=a;g++)e[g].applyMatrix4(h.makeRotationAxis(d[g],
+"text/plain");for(h in this.requestHeader)p.setRequestHeader(h,this.requestHeader[h]);p.send(null)}e.manager.itemStart(a);return p}},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this}});ug.prototype=Object.assign(Object.create(U.prototype),{constructor:ug,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,
+function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){for(var b=[],c=0;c<a.length;c++){var d=Qa.parse(a[c]);b.push(d)}return b}});vg.prototype=Object.assign(Object.create(U.prototype),{constructor:vg,load:function(a,b,c,d){function e(e){k.load(a[e],function(a){a=f.parse(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};n+=1;6===n&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=
+!0,b&&b(h))},c,d)}var f=this,g=[],h=new Mc;h.image=g;var k=new Ra(this.manager);k.setPath(this.path);k.setResponseType("arraybuffer");k.setRequestHeader(this.requestHeader);var n=0;if(Array.isArray(a))for(var m=0,p=a.length;m<p;++m)e(m);else k.load(a,function(a){a=f.parse(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else h.image.width=
+a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h}});af.prototype=Object.assign(Object.create(U.prototype),{constructor:af,load:function(a,b,c,d){var e=this,f=new Zb,g=new Ra(this.manager);g.setResponseType("arraybuffer");g.setRequestHeader(this.requestHeader);g.setPath(this.path);g.load(a,function(a){if(a=e.parse(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=
+a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1006,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps,f.minFilter=1008),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});bd.prototype=Object.assign(Object.create(U.prototype),
+{constructor:bd,load:function(a,b,c,d){function e(){k.removeEventListener("load",e,!1);k.removeEventListener("error",f,!1);sc.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){k.removeEventListener("load",e,!1);k.removeEventListener("error",f,!1);d&&d(b);g.manager.itemError(a);g.manager.itemEnd(a)}void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,h=sc.get(a);if(void 0!==h)return g.manager.itemStart(a),setTimeout(function(){b&&b(h);g.manager.itemEnd(a)},0),h;var k=
+document.createElementNS("http://www.w3.org/1999/xhtml","img");k.addEventListener("load",e,!1);k.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(k.crossOrigin=this.crossOrigin);g.manager.itemStart(a);k.src=a;return k}});bf.prototype=Object.assign(Object.create(U.prototype),{constructor:bf,load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new ob,g=new bd(this.manager);g.setCrossOrigin(this.crossOrigin);
+g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f}});cf.prototype=Object.assign(Object.create(U.prototype),{constructor:cf,load:function(a,b,c,d){var e=new V,f=new bd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/\.jpe?g($|\?)/i)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(I.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");
+return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;
+this.needsUpdate=!1;var b=[],c=this.getPoint(0),d=0;b.push(0);for(var e=1;e<=a;e++){var f=this.getPoint(e/a);d+=f.distanceTo(c);b.push(d);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a,
+b){var c=a-1E-4;a+=1E-4;0>c&&(c=0);1<a&&(a=1);c=this.getPoint(c);a=this.getPoint(a);b=b||(c.isVector2?new w:new m);b.copy(a).sub(c).normalize();return b},getTangentAt:function(a,b){a=this.getUtoTmapping(a);return this.getTangent(a,b)},computeFrenetFrames:function(a,b){for(var c=new m,d=[],e=[],f=[],g=new m,h=new T,k=0;k<=a;k++)d[k]=this.getTangentAt(k/a,new m),d[k].normalize();e[0]=new m;f[0]=new m;k=Number.MAX_VALUE;var n=Math.abs(d[0].x),q=Math.abs(d[0].y),p=Math.abs(d[0].z);n<=k&&(k=n,c.set(1,
+0,0));q<=k&&(k=q,c.set(0,1,0));p<=k&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(c=1;c<=a;c++)e[c]=e[c-1].clone(),f[c]=f[c-1].clone(),g.crossVectors(d[c-1],d[c]),g.length()>Number.EPSILON&&(g.normalize(),k=Math.acos(P.clamp(d[c-1].dot(d[c]),-1,1)),e[c].applyMatrix4(h.makeRotationAxis(g,k))),f[c].crossVectors(d[c],e[c]);if(!0===b)for(b=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),b/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(b=-b),g=1;g<=a;g++)e[g].applyMatrix4(h.makeRotationAxis(d[g],
 b*g)),f[g].crossVectors(d[g],e[g]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});La.prototype=Object.create(I.prototype);La.prototype.constructor=
 La;La.prototype.isEllipseCurve=!0;La.prototype.getPoint=function(a,b){b=b||new w;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,
 f)};La.prototype.copy=function(a){I.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};La.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=
@@ -834,7 +835,7 @@ b.copy(e[0]).multiplyScalar(.282095);b.addScaledVector(e[1],.488603*d);b.addScal
 1.023328*a);b.addScaledVector(e[3],1.023328*c);b.addScaledVector(e[4],.858086*c*d);b.addScaledVector(e[5],.858086*d*a);b.addScaledVector(e[6],.743125*a*a-.247708);b.addScaledVector(e[7],.858086*c*a);b.addScaledVector(e[8],.429043*(c*c-d*d));return b},add:function(a){for(var b=0;9>b;b++)this.coefficients[b].add(a.coefficients[b]);return this},addScaledSH:function(a,b){for(var c=0;9>c;c++)this.coefficients[c].addScaledVector(a.coefficients[c],b);return this},scale:function(a){for(var b=0;9>b;b++)this.coefficients[b].multiplyScalar(a);
 return this},lerp:function(a,b){for(var c=0;9>c;c++)this.coefficients[c].lerp(a.coefficients[c],b);return this},equals:function(a){for(var b=0;9>b;b++)if(!this.coefficients[b].equals(a.coefficients[b]))return!1;return!0},copy:function(a){return this.set(a.coefficients)},clone:function(){return(new this.constructor).copy(this)},fromArray:function(a,b){void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].fromArray(a,b+3*d);return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&
 (b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].toArray(a,b+3*d);return a}});Object.assign(mf,{getBasisAt:function(a,b){var c=a.x,d=a.y;a=a.z;b[0]=.282095;b[1]=.488603*d;b[2]=.488603*a;b[3]=.488603*c;b[4]=1.092548*c*d;b[5]=1.092548*d*a;b[6]=.315392*(3*a*a-1);b[7]=1.092548*c*a;b[8]=.546274*(c*c-d*d)}});Sa.prototype=Object.assign(Object.create(aa.prototype),{constructor:Sa,isLightProbe:!0,copy:function(a){aa.prototype.copy.call(this,a);this.sh.copy(a.sh);return this},fromJSON:function(a){this.intensity=
-a.intensity;this.sh.fromArray(a.sh);return this},toJSON:function(a){a=aa.prototype.toJSON.call(this,a);a.object.sh=this.sh.toArray();return a}});nf.prototype=Object.assign(Object.create(U.prototype),{constructor:nf,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",
+a.intensity;this.sh.fromArray(a.sh);return this},toJSON:function(a){a=aa.prototype.toJSON.call(this,a);a.object.sh=this.sh.toArray();return a}});nf.prototype=Object.assign(Object.create(U.prototype),{constructor:nf,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",
 a);return c[a]}var c=this.textures,d=new Uk[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==a.sheen&&(d.sheen=(new H).setHex(a.sheen));void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearcoat&&(d.clearcoat=a.clearcoat);
 void 0!==a.clearcoatRoughness&&(d.clearcoatRoughness=a.clearcoatRoughness);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.flatShading&&(d.flatShading=a.flatShading);void 0!==a.blending&&(d.blending=a.blending);void 0!==a.combine&&(d.combine=a.combine);void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=
 a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.stencilWrite&&(d.stencilWrite=a.stencilWrite);void 0!==a.stencilWriteMask&&(d.stencilWriteMask=a.stencilWriteMask);void 0!==a.stencilFunc&&(d.stencilFunc=a.stencilFunc);void 0!==a.stencilRef&&(d.stencilRef=a.stencilRef);void 0!==a.stencilFuncMask&&(d.stencilFuncMask=a.stencilFuncMask);void 0!==a.stencilFail&&(d.stencilFail=a.stencilFail);void 0!==a.stencilZFail&&(d.stencilZFail=a.stencilZFail);void 0!==a.stencilZPass&&(d.stencilZPass=
@@ -848,11 +849,11 @@ void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));void 0!==a.envMap&&(d.e
 void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));void 0!==a.clearcoatMap&&(d.clearcoatMap=b(a.clearcoatMap));void 0!==a.clearcoatRoughnessMap&&(d.clearcoatRoughnessMap=b(a.clearcoatRoughnessMap));void 0!==a.clearcoatNormalMap&&(d.clearcoatNormalMap=b(a.clearcoatNormalMap));void 0!==a.clearcoatNormalScale&&(d.clearcoatNormalScale=(new w).fromArray(a.clearcoatNormalScale));void 0!==a.transmission&&(d.transmission=a.transmission);void 0!==a.transmissionMap&&(d.transmissionMap=b(a.transmissionMap));
 return d},setTextures:function(a){this.textures=a;return this}});var nh={decodeText:function(a){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(a);for(var b="",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};le.prototype=Object.assign(Object.create(D.prototype),{constructor:le,isInstancedBufferGeometry:!0,copy:function(a){D.prototype.copy.call(this,
 a);this.instanceCount=a.instanceCount;return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a=D.prototype.toJSON.call(this);a.instanceCount=this.instanceCount;a.isInstancedBufferGeometry=!0;return a}});of.prototype=Object.assign(Object.create(F.prototype),{constructor:of,isInstancedBufferAttribute:!0,copy:function(a){F.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=F.prototype.toJSON.call(this);a.meshPerAttribute=
-this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});pf.prototype=Object.assign(Object.create(U.prototype),{constructor:pf,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a,b){if(void 0!==c[b])return c[b];var e=a.interleavedBuffers[b];var f=e.buffer;void 0!==d[f]?f=d[f]:(a=(new Uint32Array(a.arrayBuffers[f])).buffer,f=
-d[f]=a);f=new Sf[e.type](f);f=new Ia(f,e.stride);f.uuid=e.uuid;return c[b]=f}var c={},d={},e=a.isInstancedBufferGeometry?new le:new D,f=a.data.index;void 0!==f&&(f=new Sf[f.type](f.array),e.setIndex(new F(f,1)));f=a.data.attributes;for(var g in f){var h=f[g],k=void 0;h.isInterleavedBufferAttribute?(k=b(a.data,h.data),k=new Hb(k,h.itemSize,h.offset,h.normalized)):(k=new Sf[h.type](h.array),k=new (h.isInstancedBufferAttribute?of:F)(k,h.itemSize,h.normalized));void 0!==h.name&&(k.name=h.name);e.setAttribute(g,
+this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});pf.prototype=Object.assign(Object.create(U.prototype),{constructor:pf,load:function(a,b,c,d){var e=this,f=new Ra(e.manager);f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a,b){if(void 0!==c[b])return c[b];var e=a.interleavedBuffers[b];var f=e.buffer;void 0!==d[f]?f=d[f]:(a=(new Uint32Array(a.arrayBuffers[f])).buffer,
+f=d[f]=a);f=new Sf[e.type](f);f=new Ia(f,e.stride);f.uuid=e.uuid;return c[b]=f}var c={},d={},e=a.isInstancedBufferGeometry?new le:new D,f=a.data.index;void 0!==f&&(f=new Sf[f.type](f.array),e.setIndex(new F(f,1)));f=a.data.attributes;for(var g in f){var h=f[g],k=void 0;h.isInterleavedBufferAttribute?(k=b(a.data,h.data),k=new Hb(k,h.itemSize,h.offset,h.normalized)):(k=new Sf[h.type](h.array),k=new (h.isInstancedBufferAttribute?of:F)(k,h.itemSize,h.normalized));void 0!==h.name&&(k.name=h.name);e.setAttribute(g,
 k)}if(g=a.data.morphAttributes)for(var n in g){f=g[n];h=[];k=0;for(var q=f.length;k<q;k++){var p=f[k],v=void 0;p.isInterleavedBufferAttribute?(v=b(a.data,p.data),v=new Hb(v,p.itemSize,p.offset,p.normalized)):(v=new Sf[p.type](p.array),v=new F(v,p.itemSize,p.normalized));void 0!==p.name&&(v.name=p.name);h.push(v)}e.morphAttributes[n]=h}a.data.morphTargetsRelative&&(e.morphTargetsRelative=!0);n=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==n)for(g=0,f=n.length;g!==f;++g)h=n[g],e.addGroup(h.start,
 h.count,h.materialIndex);n=a.data.boundingSphere;void 0!==n&&(g=new m,void 0!==n.center&&g.fromArray(n.center),e.boundingSphere=new db(g,n.radius));a.name&&(e.name=a.name);a.userData&&(e.userData=a.userData);return e}});var Sf={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};
-qf.prototype=Object.assign(Object.create(U.prototype),{constructor:qf,load:function(a,b,c,d){var e=this,f=""===this.path?nh.extractUrlBase(a):this.path;this.resourcePath=this.resourcePath||f;f=new Ra(e.manager);f.setPath(this.path);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+
+qf.prototype=Object.assign(Object.create(U.prototype),{constructor:qf,load:function(a,b,c,d){var e=this,f=""===this.path?nh.extractUrlBase(a):this.path;this.resourcePath=this.resourcePath||f;f=new Ra(e.manager);f.setPath(this.path);f.setRequestHeader(this.requestHeader);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+
 a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,function(){void 0!==b&&b(e)});d=this.parseTextures(a.textures,d);d=this.parseMaterials(a.materials,d);var e=this.parseObject(a.object,c,d);a.animations&&(e.animations=this.parseAnimations(a.animations));void 0!==a.images&&0!==a.images.length||void 0===b||b(e);return e},parseShape:function(a){var b={};if(void 0!==a)for(var c=0,d=a.length;c<d;c++){var e=(new Mb).fromJSON(a[c]);
 b[e.uuid]=e}return b},parseGeometries:function(a,b){var c={};if(void 0!==a)for(var d=new pf,e=0,f=a.length;e<f;e++){var g=void 0;var h=a[e];switch(h.type){case "PlaneGeometry":case "PlaneBufferGeometry":g=new Da[h.type](h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":g=new Da[h.type](h.width,h.height,h.depth,h.widthSegments,h.heightSegments,h.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":g=new Da[h.type](h.radius,
 h.segments,h.thetaStart,h.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":g=new Da[h.type](h.radiusTop,h.radiusBottom,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":g=new Da[h.type](h.radius,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":g=new Da[h.type](h.radius,h.widthSegments,h.heightSegments,
@@ -879,23 +880,23 @@ Object.assign(zg.prototype,{moveTo:function(a,b){this.currentPath=new ab;this.su
 if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Mb;h.curves=g.curves;b.push(h);return b}var k=!e(f[0].getPoints());k=a?!k:k;h=[];var n=[],m=[],p=0;n[p]=void 0;m[p]=[];for(var v=0,r=f.length;v<r;v++){g=f[v];var t=g.getPoints();var u=e(t);(u=a?!u:u)?(!k&&n[p]&&p++,n[p]={s:new Mb,p:t},n[p].s.curves=g.curves,k&&p++,m[p]=[]):m[p].push({h:g,p:t[0]})}if(!n[0])return c(f);if(1<n.length){a=!1;e=[];f=0;for(g=n.length;f<g;f++)h[f]=[];f=0;for(g=n.length;f<g;f++)for(u=m[f],k=0;k<u.length;k++){p=
 u[k];t=!0;for(v=0;v<n.length;v++)d(p.p,n[v].p)&&(f!==v&&e.push({froms:f,tos:v,hole:k}),t?(t=!1,h[v].push(p)):a=!0);t&&h[f].push(p)}0<e.length&&(a||(m=h))}e=0;for(f=n.length;e<f;e++)for(h=n[e].s,b.push(h),a=m[e],g=0,u=a.length;g<u;g++)h.holes.push(a[g].h);return b}});Object.assign(Ag.prototype,{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*
 d;a=[];for(var g=0,h=0,k=0;k<e.length;k++){var n=e[k];if("\n"===n)g=0,h-=f;else{var m=n;n=d;var p=g,v=h,r=b,t=r.glyphs[m]||r.glyphs["?"];if(t){m=new zg;if(t.o){r=t._cachedOutline||(t._cachedOutline=t.o.split(" "));for(var u=0,w=r.length;u<w;)switch(r[u++]){case "m":var A=r[u++]*n+p;var x=r[u++]*n+v;m.moveTo(A,x);break;case "l":A=r[u++]*n+p;x=r[u++]*n+v;m.lineTo(A,x);break;case "q":var y=r[u++]*n+p;var C=r[u++]*n+v;var D=r[u++]*n+p;var B=r[u++]*n+v;m.quadraticCurveTo(D,B,y,C);break;case "b":y=r[u++]*
-n+p,C=r[u++]*n+v,D=r[u++]*n+p,B=r[u++]*n+v,A=r[u++]*n+p,x=r[u++]*n+v,m.bezierCurveTo(D,B,A,x,y,C)}}n={offsetX:t.ha*n,path:m}}else console.error('THREE.Font: character "'+m+'" does not exists in font family '+r.familyName+"."),n=void 0;g+=n.offsetX;a.push(n.path)}}b=0;for(e=a.length;b<e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Bg.prototype=Object.assign(Object.create(U.prototype),{constructor:Bg,load:function(a,b,c,d){var e=this,f=new Ra(this.manager);f.setPath(this.path);f.load(a,
-function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new Ag(a)}});var Tf,Gg={getContext:function(){void 0===Tf&&(Tf=new (window.AudioContext||window.webkitAudioContext));return Tf},setContext:function(a){Tf=a}};rf.prototype=Object.assign(Object.create(U.prototype),{constructor:rf,load:function(a,b,c,d){var e=this,
-f=new Ra(e.manager);f.setResponseType("arraybuffer");f.setPath(e.path);f.load(a,function(c){try{var f=c.slice(0);Gg.getContext().decodeAudioData(f,function(a){b(a)})}catch(l){d?d(l):console.error(l),e.manager.itemError(a)}},c,d)}});Cg.prototype=Object.assign(Object.create(Sa.prototype),{constructor:Cg,isHemisphereLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});Dg.prototype=Object.assign(Object.create(Sa.prototype),
-{constructor:Dg,isAmbientLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});var Pi=new T,Qi=new T;Object.assign(gi.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==a.aspect*this.aspect||b.near!==a.near||b.far!==a.far||b.zoom!==a.zoom||b.eyeSep!==this.eyeSep){b.focus=a.focus;b.fov=a.fov;b.aspect=a.aspect*this.aspect;b.near=a.near;b.far=a.far;b.zoom=a.zoom;b.eyeSep=this.eyeSep;
-var c=a.projectionMatrix.clone(),d=b.eyeSep/2,e=d*b.near/b.focus,f=b.near*Math.tan(P.DEG2RAD*b.fov*.5)/b.zoom;Qi.elements[12]=-d;Pi.elements[12]=d;d=-f*b.aspect+e;var g=f*b.aspect+e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraL.projectionMatrix.copy(c);d=-f*b.aspect-e;g=f*b.aspect-e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraR.projectionMatrix.copy(c)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(Qi);this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(Pi)}});
-Object.assign(Eg.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=
-b;this.elapsedTime+=a}return a}});var tc=new m,Ri=new S,Wk=new m,uc=new m;Fg.prototype=Object.assign(Object.create(y.prototype),{constructor:Fg,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null);return this},getFilter:function(){return this.filter},setFilter:function(a){null!==this.filter?(this.gain.disconnect(this.filter),
-this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(a){y.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;var b=this.up;this.timeDelta=this._clock.getDelta();
-this.matrixWorld.decompose(tc,Ri,Wk);uc.set(0,0,-1).applyQuaternion(Ri);if(a.positionX){var c=this.context.currentTime+this.timeDelta;a.positionX.linearRampToValueAtTime(tc.x,c);a.positionY.linearRampToValueAtTime(tc.y,c);a.positionZ.linearRampToValueAtTime(tc.z,c);a.forwardX.linearRampToValueAtTime(uc.x,c);a.forwardY.linearRampToValueAtTime(uc.y,c);a.forwardZ.linearRampToValueAtTime(uc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,c);a.upZ.linearRampToValueAtTime(b.z,
-c)}else a.setPosition(tc.x,tc.y,tc.z),a.setOrientation(uc.x,uc.y,uc.z,b.x,b.y,b.z)}});ed.prototype=Object.assign(Object.create(y.prototype),{constructor:ed,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();return this},setMediaStreamSource:function(a){this.hasPlaybackControl=
-!1;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(a){void 0===a&&(a=0);if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._startedAt=this.context.currentTime+a,a=this.context.createBufferSource(),
-a.buffer=this.buffer,a.loop=this.loop,a.loopStart=this.loopStart,a.loopEnd=this.loopEnd,a.onended=this.onEnded.bind(this),a.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=a,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-
-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress%=this.duration||this.buffer.duration),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var a=1,b=this.filters.length;a<
-b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},
-setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=a,this.connect()):this.filters=a;return this},setDetune:function(a){this.detune=a;if(void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()[0]},setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
-else return this.playbackRate=a,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=
-a,!0===this.isPlaying&&(this.source.loop=this.loop),this},setLoopStart:function(a){this.loopStart=a;return this},setLoopEnd:function(a){this.loopEnd=a;return this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});var vc=new m,Si=new S,Xk=new m,wc=new m;Hg.prototype=Object.assign(Object.create(ed.prototype),{constructor:Hg,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},
+n+p,C=r[u++]*n+v,D=r[u++]*n+p,B=r[u++]*n+v,A=r[u++]*n+p,x=r[u++]*n+v,m.bezierCurveTo(D,B,A,x,y,C)}}n={offsetX:t.ha*n,path:m}}else console.error('THREE.Font: character "'+m+'" does not exists in font family '+r.familyName+"."),n=void 0;g+=n.offsetX;a.push(n.path)}}b=0;for(e=a.length;b<e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Bg.prototype=Object.assign(Object.create(U.prototype),{constructor:Bg,load:function(a,b,c,d){var e=this,f=new Ra(this.manager);f.setPath(this.path);f.setRequestHeader(this.requestHeader);
+f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new Ag(a)}});var Tf,Gg={getContext:function(){void 0===Tf&&(Tf=new (window.AudioContext||window.webkitAudioContext));return Tf},setContext:function(a){Tf=a}};rf.prototype=Object.assign(Object.create(U.prototype),{constructor:rf,load:function(a,b,c,d){var e=
+this,f=new Ra(e.manager);f.setResponseType("arraybuffer");f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,function(c){try{var f=c.slice(0);Gg.getContext().decodeAudioData(f,function(a){b(a)})}catch(l){d?d(l):console.error(l),e.manager.itemError(a)}},c,d)}});Cg.prototype=Object.assign(Object.create(Sa.prototype),{constructor:Cg,isHemisphereLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});Dg.prototype=
+Object.assign(Object.create(Sa.prototype),{constructor:Dg,isAmbientLightProbe:!0,copy:function(a){Sa.prototype.copy.call(this,a);return this},toJSON:function(a){return Sa.prototype.toJSON.call(this,a)}});var Pi=new T,Qi=new T;Object.assign(gi.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==a.aspect*this.aspect||b.near!==a.near||b.far!==a.far||b.zoom!==a.zoom||b.eyeSep!==this.eyeSep){b.focus=a.focus;b.fov=a.fov;b.aspect=a.aspect*this.aspect;b.near=a.near;
+b.far=a.far;b.zoom=a.zoom;b.eyeSep=this.eyeSep;var c=a.projectionMatrix.clone(),d=b.eyeSep/2,e=d*b.near/b.focus,f=b.near*Math.tan(P.DEG2RAD*b.fov*.5)/b.zoom;Qi.elements[12]=-d;Pi.elements[12]=d;d=-f*b.aspect+e;var g=f*b.aspect+e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraL.projectionMatrix.copy(c);d=-f*b.aspect-e;g=f*b.aspect-e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraR.projectionMatrix.copy(c)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(Qi);
+this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(Pi)}});Object.assign(Eg.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?
+Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=b;this.elapsedTime+=a}return a}});var tc=new m,Ri=new S,Wk=new m,uc=new m;Fg.prototype=Object.assign(Object.create(y.prototype),{constructor:Fg,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null);return this},getFilter:function(){return this.filter},setFilter:function(a){null!==
+this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(a){y.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;
+var b=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(tc,Ri,Wk);uc.set(0,0,-1).applyQuaternion(Ri);if(a.positionX){var c=this.context.currentTime+this.timeDelta;a.positionX.linearRampToValueAtTime(tc.x,c);a.positionY.linearRampToValueAtTime(tc.y,c);a.positionZ.linearRampToValueAtTime(tc.z,c);a.forwardX.linearRampToValueAtTime(uc.x,c);a.forwardY.linearRampToValueAtTime(uc.y,c);a.forwardZ.linearRampToValueAtTime(uc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,
+c);a.upZ.linearRampToValueAtTime(b.z,c)}else a.setPosition(tc.x,tc.y,tc.z),a.setOrientation(uc.x,uc.y,uc.z,b.x,b.y,b.z)}});ed.prototype=Object.assign(Object.create(y.prototype),{constructor:ed,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();
+return this},setMediaStreamSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(a){void 0===a&&(a=0);if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else return this._startedAt=this.context.currentTime+a,a=this.context.createBufferSource(),a.buffer=this.buffer,a.loop=this.loop,a.loopStart=this.loopStart,a.loopEnd=this.loopEnd,a.onended=this.onEnded.bind(this),a.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=a,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress%=this.duration||this.buffer.duration),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);
+for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},
+getFilters:function(){return this.filters},setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=a,this.connect()):this.filters=a;return this},setDetune:function(a){this.detune=a;if(void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()[0]},setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===
+this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.playbackRate=a,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else return this.loop=a,!0===this.isPlaying&&(this.source.loop=this.loop),this},setLoopStart:function(a){this.loopStart=a;return this},setLoopEnd:function(a){this.loopEnd=a;return this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});var vc=new m,Si=new S,Xk=new m,wc=new m;Hg.prototype=Object.assign(Object.create(ed.prototype),{constructor:Hg,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},
 setRefDistance:function(a){this.panner.refDistance=a;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=a;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a;return this},setDirectionalCone:function(a,b,c){this.panner.coneInnerAngle=
 a;this.panner.coneOuterAngle=b;this.panner.coneOuterGain=c;return this},updateMatrixWorld:function(a){y.prototype.updateMatrixWorld.call(this,a);if(!0!==this.hasPlaybackControl||!1!==this.isPlaying)if(this.matrixWorld.decompose(vc,Si,Xk),wc.set(0,0,1).applyQuaternion(Si),a=this.panner,a.positionX){var b=this.context.currentTime+this.listener.timeDelta;a.positionX.linearRampToValueAtTime(vc.x,b);a.positionY.linearRampToValueAtTime(vc.y,b);a.positionZ.linearRampToValueAtTime(vc.z,b);a.orientationX.linearRampToValueAtTime(wc.x,
 b);a.orientationY.linearRampToValueAtTime(wc.y,b);a.orientationZ.linearRampToValueAtTime(wc.z,b)}else a.setPosition(vc.x,vc.y,vc.z),a.setOrientation(wc.x,wc.y,wc.z)}});Object.assign(Ig.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=b[c];return a/b.length}});Object.assign(Jg.prototype,{accumulate:function(a,b){var c=this.buffer,d=this.valueSize;a=a*d+d;

+ 25 - 1
build/three.module.js

@@ -28857,6 +28857,21 @@ function VideoTexture( video, mapping, wrapS, wrapT, magFilter, minFilter, forma
 
 	this.generateMipmaps = false;
 
+	const scope = this;
+
+	function updateVideo() {
+
+		scope.needsUpdate = true;
+		video.requestVideoFrameCallback( updateVideo );
+
+	}
+
+	if ( 'requestVideoFrameCallback' in video ) {
+
+		video.requestVideoFrameCallback( updateVideo );
+
+	}
+
 }
 
 VideoTexture.prototype = Object.assign( Object.create( Texture.prototype ), {
@@ -28868,8 +28883,9 @@ VideoTexture.prototype = Object.assign( Object.create( Texture.prototype ), {
 	update: function () {
 
 		const video = this.image;
+		const hasVideoFrameCallback = 'requestVideoFrameCallback' in video;
 
-		if ( video.readyState >= video.HAVE_CURRENT_DATA ) {
+		if ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {
 
 			this.needsUpdate = true;
 
@@ -37044,6 +37060,7 @@ AnimationLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 		const loader = new FileLoader( scope.manager );
 		loader.setPath( scope.path );
+		loader.setRequestHeader( scope.requestHeader );
 		loader.load( url, function ( text ) {
 
 			try {
@@ -37118,6 +37135,7 @@ CompressedTextureLoader.prototype = Object.assign( Object.create( Loader.prototy
 		const loader = new FileLoader( this.manager );
 		loader.setPath( this.path );
 		loader.setResponseType( 'arraybuffer' );
+		loader.setRequestHeader( this.requestHeader );
 
 		let loaded = 0;
 
@@ -37242,6 +37260,7 @@ DataTextureLoader.prototype = Object.assign( Object.create( Loader.prototype ),
 
 		const loader = new FileLoader( this.manager );
 		loader.setResponseType( 'arraybuffer' );
+		loader.setRequestHeader( this.requestHeader );
 		loader.setPath( this.path );
 		loader.load( url, function ( buffer ) {
 
@@ -40589,6 +40608,7 @@ MaterialLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 		const loader = new FileLoader( scope.manager );
 		loader.setPath( scope.path );
+		loader.setRequestHeader( scope.requestHeader );
 		loader.load( url, function ( text ) {
 
 			try {
@@ -41027,6 +41047,7 @@ BufferGeometryLoader.prototype = Object.assign( Object.create( Loader.prototype
 
 		const loader = new FileLoader( scope.manager );
 		loader.setPath( scope.path );
+		loader.setRequestHeader( scope.requestHeader );
 		loader.load( url, function ( text ) {
 
 			try {
@@ -41249,6 +41270,7 @@ ObjectLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 		const loader = new FileLoader( scope.manager );
 		loader.setPath( this.path );
+		loader.setRequestHeader( this.requestHeader );
 		loader.load( url, function ( text ) {
 
 			let json = null;
@@ -42733,6 +42755,7 @@ FontLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 		const loader = new FileLoader( this.manager );
 		loader.setPath( this.path );
+		loader.setRequestHeader( this.requestHeader );
 		loader.load( url, function ( text ) {
 
 			let json;
@@ -42813,6 +42836,7 @@ AudioLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 		const loader = new FileLoader( scope.manager );
 		loader.setResponseType( 'arraybuffer' );
 		loader.setPath( scope.path );
+		loader.setRequestHeader( scope.requestHeader );
 		loader.load( url, function ( buffer ) {
 
 			try {