{"id":19151,"artifact_id":18150,"version":1,"data":{"version":1,"artifact":{"chain":"tezos","title":"Dream #20211204","artist":"tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F","tokenId":"571698","description":"An interactive 3D artwork, created by @neoyume\nOptimal experience :\n🔉 with sound ON (after a click on Chrome)\n🎧 with headphones\n🖥 on a computer\n\nMade with \nPolygonJs / ThreeJs\niPhone 12 Pro LiDAR 3D Scanner\nBlender \nLogic Pro X\n\nMore information\n➡️ neoyume.com","contractAddress":"KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton"},"snapshot":{"net":[{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","host":"ipfs.arkivo.art","path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ","type":"http","query":"?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","method":"GET","headers":{"sec-ch-ua":"\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"Linux\"","upgrade-insecure-requests":"1"},"fragment":"","postData":null,"protocol":"https:"},"type":1,"external":false,"timestamp":1723918417080},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","body":"","status":301,"headers":{"date":"Sat, 17 Aug 2024 18:13:37 GMT","server":"nginx/1.27.0","location":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","connection":"keep-alive","x-ipfs-path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ","content-type":"text/html; charset=utf-8","x-ipfs-roots":"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ","content-length":"162","access-control-allow-origin":"*","access-control-allow-headers":"Content-Type\nRange\nUser-Agent\nX-Requested-With","access-control-allow-methods":"GET\nHEAD\nOPTIONS","access-control-expose-headers":"Content-Length\nContent-Range\nX-Chunked-Output\nX-Ipfs-Path\nX-Ipfs-Roots\nX-Stream-Output"}},"type":2,"external":false,"timestamp":1723918417122},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","host":"ipfs.arkivo.art","path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/","type":"http","query":"?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","method":"GET","headers":{"sec-ch-ua":"\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"Linux\"","upgrade-insecure-requests":"1"},"fragment":"","postData":null,"protocol":"https:"},"type":1,"external":false,"timestamp":1723918417123},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","body":"","status":200,"headers":{"date":"Sat, 17 Aug 2024 18:13:37 GMT","etag":"\"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ\"","server":"nginx/1.27.0","connection":"keep-alive","x-ipfs-path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/","content-type":"text/html","x-ipfs-roots":"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ","accept-ranges":"bytes","cache-control":"public, max-age=29030400, immutable","content-length":"2728","access-control-allow-origin":"*","access-control-allow-headers":"Content-Type\nRange\nUser-Agent\nX-Requested-With","access-control-allow-methods":"GET\nHEAD\nOPTIONS","access-control-expose-headers":"Content-Length\nContent-Range\nX-Chunked-Output\nX-Ipfs-Path\nX-Ipfs-Roots\nX-Stream-Output"}},"type":2,"external":false,"timestamp":1723918417135},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/style.css","host":"ipfs.arkivo.art","path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/style.css","type":"http","query":"","method":"GET","headers":{"referer":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","sec-ch-ua":"\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"Linux\""},"fragment":"","postData":null,"protocol":"https:"},"type":1,"external":false,"timestamp":1723918417156},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/viewer.js","host":"ipfs.arkivo.art","path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/viewer.js","type":"http","query":"","method":"GET","headers":{"referer":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","sec-ch-ua":"\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"Linux\""},"fragment":"","postData":null,"protocol":"https:"},"type":1,"external":false,"timestamp":1723918417156},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/style.css","body":"","status":200,"headers":{"date":"Sat, 17 Aug 2024 18:13:37 GMT","etag":"\"QmPbsQLLXNhFAwKHqFy7nJfyFfmhwqU4gypXMEAr9LWc7Y\"","server":"nginx/1.27.0","connection":"keep-alive","x-ipfs-path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/style.css","content-type":"text/css; charset=utf-8","x-ipfs-roots":"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ,QmPbsQLLXNhFAwKHqFy7nJfyFfmhwqU4gypXMEAr9LWc7Y","accept-ranges":"bytes","cache-control":"public, max-age=29030400, immutable","content-length":"243","access-control-allow-origin":"*","access-control-allow-headers":"Content-Type, Range, User-Agent, X-Requested-With","access-control-allow-methods":"GET, HEAD, OPTIONS","access-control-expose-headers":"Content-Length, Content-Range, X-Chunked-Output, X-Ipfs-Path, X-Ipfs-Roots, X-Stream-Output"}},"type":2,"external":false,"timestamp":1723918417169},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/viewer.js","body":"","status":200,"headers":{"date":"Sat, 17 Aug 2024 18:13:37 GMT","etag":"\"QmRBYaJ9nRSUg8YGywhpJmBWfv65FRnaph84RVyJxa95PJ\"","server":"nginx/1.27.0","connection":"keep-alive","x-ipfs-path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/viewer.js","content-type":"text/javascript; charset=utf-8","x-ipfs-roots":"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ,QmRBYaJ9nRSUg8YGywhpJmBWfv65FRnaph84RVyJxa95PJ","accept-ranges":"bytes","cache-control":"public, max-age=29030400, immutable","content-length":"11766","access-control-allow-origin":"*","access-control-allow-headers":"Content-Type, Range, User-Agent, X-Requested-With","access-control-allow-methods":"GET, HEAD, OPTIONS","access-control-expose-headers":"Content-Length, Content-Range, X-Chunked-Output, X-Ipfs-Path, X-Ipfs-Roots, X-Stream-Output"}},"type":2,"external":false,"timestamp":1723918417170},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/dream04.polygonjs","host":"ipfs.arkivo.art","path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/dream04.polygonjs","type":"http","query":"","method":"GET","headers":{"referer":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","sec-ch-ua":"\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"Linux\""},"fragment":"","postData":null,"protocol":"https:"},"type":1,"external":false,"timestamp":1723918417190},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/poster.jpg","host":"ipfs.arkivo.art","path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/poster.jpg","type":"http","query":"","method":"GET","headers":{"referer":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/?creator=tz1djshvCnhi5p5wAebiBb2XQLcvVKBqyH7F&viewer=&objkt=571698","sec-ch-ua":"\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"Linux\""},"fragment":"","postData":null,"protocol":"https:"},"type":1,"external":false,"timestamp":1723918417190},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/poster.jpg","body":"","status":200,"headers":{"date":"Sat, 17 Aug 2024 18:13:37 GMT","etag":"\"QmZL9nKXMbWvK2GBRd2WMcV1TGmgHVf9VSeVp4nVfKHkoh\"","server":"nginx/1.27.0","connection":"keep-alive","x-ipfs-path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/poster.jpg","content-type":"image/jpeg","x-ipfs-roots":"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ,QmZL9nKXMbWvK2GBRd2WMcV1TGmgHVf9VSeVp4nVfKHkoh","accept-ranges":"bytes","cache-control":"public, max-age=29030400, immutable","content-length":"37860","access-control-allow-origin":"*","access-control-allow-headers":"Content-Type, Range, User-Agent, X-Requested-With","access-control-allow-methods":"GET, HEAD, OPTIONS","access-control-expose-headers":"Content-Length, Content-Range, X-Chunked-Output, X-Ipfs-Path, X-Ipfs-Roots, X-Stream-Output"}},"type":2,"external":false,"timestamp":1723918417203},{"data":{"url":"https://ipfs.arkivo.art/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/dream04.polygonjs","body":"","status":200,"headers":{"date":"Sat, 17 Aug 2024 18:13:37 GMT","etag":"\"QmT49xG59bdJRLoQQEFguSvrBFWdStsN9CuTECfBigLMBr\"","server":"nginx/1.27.0","connection":"keep-alive","x-ipfs-path":"/ipfs/QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ/dream04.polygonjs","content-type":"application/zip","x-ipfs-roots":"QmUQGz7QstA9urRFEBjZec3eizgfitNuwBf9AB3rBgHMiQ,QmT49xG59bdJRLoQQEFguSvrBFWdStsN9CuTECfBigLMBr","accept-ranges":"bytes","cache-control":"public, max-age=29030400, immutable","content-length":"7536234","access-control-allow-origin":"*","access-control-allow-headers":"Content-Type, Range, User-Agent, X-Requested-With","access-control-allow-methods":"GET, HEAD, OPTIONS","access-control-expose-headers":"Content-Length, Content-Range, X-Chunked-Output, X-Ipfs-Path, X-Ipfs-Roots, X-Stream-Output"}},"type":2,"external":false,"timestamp":1723918417211},{"data":{"url":"blob:https://ipfs.arkivo.art/2a9ef962-28e8-4344-ae1d-f5c14bfb956c","host":"","path":"https://ipfs.arkivo.art/2a9ef962-28e8-4344-ae1d-f5c14bfb956c","type":"http","query":"","method":"GET","headers":{"origin":"https://ipfs.arkivo.art","referer":"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36"},"fragment":"","postData":null,"protocol":"blob:"},"type":1,"external":false,"timestamp":1723918418009},{"data":{"url":"blob:https://ipfs.arkivo.art/251aa33b-d62c-4975-b851-8cfeb5d2fe00","host":"","path":"https://ipfs.arkivo.art/251aa33b-d62c-4975-b851-8cfeb5d2fe00","type":"http","query":"","method":"GET","headers":{"origin":"https://ipfs.arkivo.art","referer":"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36"},"fragment":"","postData":null,"protocol":"blob:"},"type":1,"external":false,"timestamp":1723918418011},{"data":{"url":"blob:https://ipfs.arkivo.art/251aa33b-d62c-4975-b851-8cfeb5d2fe00","body":"\"var POLY=function(t){var e={};function s(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,s),r.l=!0,r.exports}return s.m=t,s.c=e,s.d=function(t,e,i){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},s.r=function(t){\\\\\\\"undefined\\\\\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\\\\\\\"Module\\\\\\\"}),Object.defineProperty(t,\\\\\\\"__esModule\\\\\\\",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&\\\\\\\"object\\\\\\\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,\\\\\\\"default\\\\\\\",{enumerable:!0,value:t}),2&e&&\\\\\\\"string\\\\\\\"!=typeof t)for(var r in t)s.d(i,r,function(e){return t[e]}.bind(null,r));return i},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,\\\\\\\"a\\\\\\\",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p=\\\\\\\"https://unpkg.com/@polygonjs/polygonjs@1.1.204/dist/\\\\\\\",s(s.s=219)}([function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(3),r=s(8);class n{constructor(t=0,e=0,s=0){this.x=t,this.y=e,this.z=s}set(t,e,s){return void 0===s&&(s=this.z),this.x=t,this.y=e,this.z=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\\\\\\\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\\\\\\\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\"),this.applyQuaternion(o.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(o.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,s=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*s+r[6]*i,this.y=r[1]*e+r[4]*s+r[7]*i,this.z=r[2]*e+r[5]*s+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,s=this.y,i=this.z,r=t.elements,n=1/(r[3]*e+r[7]*s+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*s+r[8]*i+r[12])*n,this.y=(r[1]*e+r[5]*s+r[9]*i+r[13])*n,this.z=(r[2]*e+r[6]*s+r[10]*i+r[14])*n,this}applyQuaternion(t){const e=this.x,s=this.y,i=this.z,r=t.x,n=t.y,a=t.z,o=t.w,h=o*e+n*i-a*s,u=o*s+a*e-r*i,c=o*i+r*s-n*e,l=-r*e-n*s-a*i;return this.x=h*o+l*-r+u*-a-c*-n,this.y=u*o+l*-n+c*-r-h*-a,this.z=c*o+l*-a+h*-n-u*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,s=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*s+r[8]*i,this.y=r[1]*e+r[5]*s+r[9]*i,this.z=r[2]*e+r[6]*s+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const s=this.length();return this.divideScalar(s||1).multiplyScalar(Math.max(t,Math.min(e,s)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,s){return this.x=t.x+(e.x-t.x)*s,this.y=t.y+(e.y-t.y)*s,this.z=t.z+(e.z-t.z)*s,this}cross(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\\\\\\\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const s=t.x,i=t.y,r=t.z,n=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*n-s*o,this.z=s*a-i*n,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const s=t.dot(this)/e;return this.copy(t).multiplyScalar(s)}projectOnPlane(t){return a.copy(this).projectOnVector(t),this.sub(a)}reflect(t){return this.sub(a.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const s=this.dot(t)/e;return Math.acos(i.d(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,s=this.y-t.y,i=this.z-t.z;return e*e+s*s+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,s){const i=Math.sin(e)*t;return this.x=i*Math.sin(s),this.y=Math.cos(e)*t,this.z=i*Math.cos(s),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,s){return this.x=t*Math.sin(e),this.y=s,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),s=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=s,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,s){return void 0!==s&&console.warn(\\\\\\\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,s=Math.sqrt(1-t**2);return this.x=s*Math.cos(e),this.y=s*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}n.prototype.isVector3=!0;const a=new n,o=new r.a},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"hb\\\\\\\",(function(){return i})),s.d(e,\\\\\\\"Tc\\\\\\\",(function(){return r})),s.d(e,\\\\\\\"u\\\\\\\",(function(){return n})),s.d(e,\\\\\\\"s\\\\\\\",(function(){return a})),s.d(e,\\\\\\\"t\\\\\\\",(function(){return o})),s.d(e,\\\\\\\"k\\\\\\\",(function(){return h})),s.d(e,\\\\\\\"Fb\\\\\\\",(function(){return u})),s.d(e,\\\\\\\"Gb\\\\\\\",(function(){return c})),s.d(e,\\\\\\\"gd\\\\\\\",(function(){return l})),s.d(e,\\\\\\\"H\\\\\\\",(function(){return d})),s.d(e,\\\\\\\"i\\\\\\\",(function(){return p})),s.d(e,\\\\\\\"z\\\\\\\",(function(){return m})),s.d(e,\\\\\\\"F\\\\\\\",(function(){return f})),s.d(e,\\\\\\\"ub\\\\\\\",(function(){return y})),s.d(e,\\\\\\\"xb\\\\\\\",(function(){return g})),s.d(e,\\\\\\\"e\\\\\\\",(function(){return x})),s.d(e,\\\\\\\"Sc\\\\\\\",(function(){return b})),s.d(e,\\\\\\\"mb\\\\\\\",(function(){return M})),s.d(e,\\\\\\\"v\\\\\\\",(function(){return w})),s.d(e,\\\\\\\"b\\\\\\\",(function(){return v})),s.d(e,\\\\\\\"Rc\\\\\\\",(function(){return _})),s.d(e,\\\\\\\"xc\\\\\\\",(function(){return T})),s.d(e,\\\\\\\"jb\\\\\\\",(function(){return S})),s.d(e,\\\\\\\"ib\\\\\\\",(function(){return A})),s.d(e,\\\\\\\"jd\\\\\\\",(function(){return E})),s.d(e,\\\\\\\"Ab\\\\\\\",(function(){return z})),s.d(e,\\\\\\\"Pc\\\\\\\",(function(){return R})),s.d(e,\\\\\\\"Eb\\\\\\\",(function(){return I})),s.d(e,\\\\\\\"Nc\\\\\\\",(function(){return k})),s.d(e,\\\\\\\"Db\\\\\\\",(function(){return L})),s.d(e,\\\\\\\"A\\\\\\\",(function(){return O})),s.d(e,\\\\\\\"Bb\\\\\\\",(function(){return P})),s.d(e,\\\\\\\"B\\\\\\\",(function(){return B})),s.d(e,\\\\\\\"Cb\\\\\\\",(function(){return N})),s.d(e,\\\\\\\"Oc\\\\\\\",(function(){return C})),s.d(e,\\\\\\\"tb\\\\\\\",(function(){return F})),s.d(e,\\\\\\\"g\\\\\\\",(function(){return V})),s.d(e,\\\\\\\"S\\\\\\\",(function(){return H})),s.d(e,\\\\\\\"T\\\\\\\",(function(){return U})),s.d(e,\\\\\\\"C\\\\\\\",(function(){return j})),s.d(e,\\\\\\\"L\\\\\\\",(function(){return D})),s.d(e,\\\\\\\"K\\\\\\\",(function(){return G})),s.d(e,\\\\\\\"yb\\\\\\\",(function(){return W})),s.d(e,\\\\\\\"nb\\\\\\\",(function(){return q})),s.d(e,\\\\\\\"lb\\\\\\\",(function(){return X})),s.d(e,\\\\\\\"c\\\\\\\",(function(){return Y})),s.d(e,\\\\\\\"vb\\\\\\\",(function(){return Z})),s.d(e,\\\\\\\"ab\\\\\\\",(function(){return J})),s.d(e,\\\\\\\"vc\\\\\\\",(function(){return K})),s.d(e,\\\\\\\"m\\\\\\\",(function(){return Q})),s.d(e,\\\\\\\"a\\\\\\\",(function(){return $})),s.d(e,\\\\\\\"w\\\\\\\",(function(){return tt})),s.d(e,\\\\\\\"Yc\\\\\\\",(function(){return et})),s.d(e,\\\\\\\"o\\\\\\\",(function(){return st})),s.d(e,\\\\\\\"p\\\\\\\",(function(){return it})),s.d(e,\\\\\\\"D\\\\\\\",(function(){return rt})),s.d(e,\\\\\\\"E\\\\\\\",(function(){return nt})),s.d(e,\\\\\\\"q\\\\\\\",(function(){return at})),s.d(e,\\\\\\\"r\\\\\\\",(function(){return ot})),s.d(e,\\\\\\\"wc\\\\\\\",(function(){return ht})),s.d(e,\\\\\\\"n\\\\\\\",(function(){return ut})),s.d(e,\\\\\\\"kb\\\\\\\",(function(){return ct})),s.d(e,\\\\\\\"ob\\\\\\\",(function(){return lt})),s.d(e,\\\\\\\"sb\\\\\\\",(function(){return dt})),s.d(e,\\\\\\\"qb\\\\\\\",(function(){return pt})),s.d(e,\\\\\\\"rb\\\\\\\",(function(){return mt})),s.d(e,\\\\\\\"pb\\\\\\\",(function(){return ft})),s.d(e,\\\\\\\"V\\\\\\\",(function(){return yt})),s.d(e,\\\\\\\"Z\\\\\\\",(function(){return gt})),s.d(e,\\\\\\\"X\\\\\\\",(function(){return xt})),s.d(e,\\\\\\\"Y\\\\\\\",(function(){return bt})),s.d(e,\\\\\\\"W\\\\\\\",(function(){return Mt})),s.d(e,\\\\\\\"Zc\\\\\\\",(function(){return wt})),s.d(e,\\\\\\\"l\\\\\\\",(function(){return vt})),s.d(e,\\\\\\\"Mc\\\\\\\",(function(){return _t})),s.d(e,\\\\\\\"fd\\\\\\\",(function(){return Tt})),s.d(e,\\\\\\\"N\\\\\\\",(function(){return St})),s.d(e,\\\\\\\"bd\\\\\\\",(function(){return At})),s.d(e,\\\\\\\"G\\\\\\\",(function(){return Et})),s.d(e,\\\\\\\"M\\\\\\\",(function(){return zt})),s.d(e,\\\\\\\"cd\\\\\\\",(function(){return Rt})),s.d(e,\\\\\\\"dd\\\\\\\",(function(){return It})),s.d(e,\\\\\\\"ed\\\\\\\",(function(){return kt})),s.d(e,\\\\\\\"ad\\\\\\\",(function(){return Lt})),s.d(e,\\\\\\\"f\\\\\\\",(function(){return Ot})),s.d(e,\\\\\\\"ic\\\\\\\",(function(){return Pt})),s.d(e,\\\\\\\"Ib\\\\\\\",(function(){return Bt})),s.d(e,\\\\\\\"gb\\\\\\\",(function(){return Nt})),s.d(e,\\\\\\\"fb\\\\\\\",(function(){return Ct})),s.d(e,\\\\\\\"hc\\\\\\\",(function(){return Ft})),s.d(e,\\\\\\\"x\\\\\\\",(function(){return Vt})),s.d(e,\\\\\\\"y\\\\\\\",(function(){return Ht})),s.d(e,\\\\\\\"tc\\\\\\\",(function(){return Ut})),s.d(e,\\\\\\\"uc\\\\\\\",(function(){return jt})),s.d(e,\\\\\\\"rc\\\\\\\",(function(){return Dt})),s.d(e,\\\\\\\"sc\\\\\\\",(function(){return Gt})),s.d(e,\\\\\\\"jc\\\\\\\",(function(){return Wt})),s.d(e,\\\\\\\"Jb\\\\\\\",(function(){return qt})),s.d(e,\\\\\\\"qc\\\\\\\",(function(){return Xt})),s.d(e,\\\\\\\"cc\\\\\\\",(function(){return Yt})),s.d(e,\\\\\\\"dc\\\\\\\",(function(){return Zt})),s.d(e,\\\\\\\"ec\\\\\\\",(function(){return Jt})),s.d(e,\\\\\\\"pc\\\\\\\",(function(){return Kt})),s.d(e,\\\\\\\"oc\\\\\\\",(function(){return Qt})),s.d(e,\\\\\\\"bc\\\\\\\",(function(){return $t})),s.d(e,\\\\\\\"ac\\\\\\\",(function(){return te})),s.d(e,\\\\\\\"mc\\\\\\\",(function(){return ee})),s.d(e,\\\\\\\"nc\\\\\\\",(function(){return se})),s.d(e,\\\\\\\"Zb\\\\\\\",(function(){return ie})),s.d(e,\\\\\\\"Qb\\\\\\\",(function(){return re})),s.d(e,\\\\\\\"Rb\\\\\\\",(function(){return ne})),s.d(e,\\\\\\\"Sb\\\\\\\",(function(){return ae})),s.d(e,\\\\\\\"Tb\\\\\\\",(function(){return oe})),s.d(e,\\\\\\\"Ub\\\\\\\",(function(){return he})),s.d(e,\\\\\\\"Vb\\\\\\\",(function(){return ue})),s.d(e,\\\\\\\"Wb\\\\\\\",(function(){return ce})),s.d(e,\\\\\\\"Xb\\\\\\\",(function(){return le})),s.d(e,\\\\\\\"Lb\\\\\\\",(function(){return de})),s.d(e,\\\\\\\"Mb\\\\\\\",(function(){return pe})),s.d(e,\\\\\\\"Nb\\\\\\\",(function(){return me})),s.d(e,\\\\\\\"Kb\\\\\\\",(function(){return fe})),s.d(e,\\\\\\\"Ob\\\\\\\",(function(){return ye})),s.d(e,\\\\\\\"Pb\\\\\\\",(function(){return ge})),s.d(e,\\\\\\\"Yb\\\\\\\",(function(){return xe})),s.d(e,\\\\\\\"Ec\\\\\\\",(function(){return be})),s.d(e,\\\\\\\"Fc\\\\\\\",(function(){return Me})),s.d(e,\\\\\\\"Gc\\\\\\\",(function(){return we})),s.d(e,\\\\\\\"Hc\\\\\\\",(function(){return ve})),s.d(e,\\\\\\\"Ic\\\\\\\",(function(){return _e})),s.d(e,\\\\\\\"Jc\\\\\\\",(function(){return Te})),s.d(e,\\\\\\\"Kc\\\\\\\",(function(){return Se})),s.d(e,\\\\\\\"Lc\\\\\\\",(function(){return Ae})),s.d(e,\\\\\\\"zc\\\\\\\",(function(){return Ee})),s.d(e,\\\\\\\"Ac\\\\\\\",(function(){return ze})),s.d(e,\\\\\\\"Bc\\\\\\\",(function(){return Re})),s.d(e,\\\\\\\"yc\\\\\\\",(function(){return Ie})),s.d(e,\\\\\\\"Cc\\\\\\\",(function(){return ke})),s.d(e,\\\\\\\"Dc\\\\\\\",(function(){return Le})),s.d(e,\\\\\\\"cb\\\\\\\",(function(){return Oe})),s.d(e,\\\\\\\"eb\\\\\\\",(function(){return Pe})),s.d(e,\\\\\\\"db\\\\\\\",(function(){return Be})),s.d(e,\\\\\\\"O\\\\\\\",(function(){return Ne})),s.d(e,\\\\\\\"P\\\\\\\",(function(){return Ce})),s.d(e,\\\\\\\"Q\\\\\\\",(function(){return Fe})),s.d(e,\\\\\\\"id\\\\\\\",(function(){return Ve})),s.d(e,\\\\\\\"kd\\\\\\\",(function(){return He})),s.d(e,\\\\\\\"hd\\\\\\\",(function(){return Ue})),s.d(e,\\\\\\\"wb\\\\\\\",(function(){return je})),s.d(e,\\\\\\\"d\\\\\\\",(function(){return De})),s.d(e,\\\\\\\"Xc\\\\\\\",(function(){return Ge})),s.d(e,\\\\\\\"Wc\\\\\\\",(function(){return We})),s.d(e,\\\\\\\"Vc\\\\\\\",(function(){return qe})),s.d(e,\\\\\\\"U\\\\\\\",(function(){return Xe})),s.d(e,\\\\\\\"ld\\\\\\\",(function(){return Ye})),s.d(e,\\\\\\\"J\\\\\\\",(function(){return Ze})),s.d(e,\\\\\\\"gc\\\\\\\",(function(){return Je})),s.d(e,\\\\\\\"bb\\\\\\\",(function(){return Ke})),s.d(e,\\\\\\\"lc\\\\\\\",(function(){return Qe})),s.d(e,\\\\\\\"kc\\\\\\\",(function(){return $e})),s.d(e,\\\\\\\"fc\\\\\\\",(function(){return ts})),s.d(e,\\\\\\\"j\\\\\\\",(function(){return es})),s.d(e,\\\\\\\"Hb\\\\\\\",(function(){return ss})),s.d(e,\\\\\\\"Uc\\\\\\\",(function(){return is})),s.d(e,\\\\\\\"zb\\\\\\\",(function(){return rs})),s.d(e,\\\\\\\"R\\\\\\\",(function(){return ns})),s.d(e,\\\\\\\"h\\\\\\\",(function(){return as})),s.d(e,\\\\\\\"Qc\\\\\\\",(function(){return os})),s.d(e,\\\\\\\"I\\\\\\\",(function(){return hs}));const i={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},r={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},n=0,a=1,o=2,h=0,u=1,c=2,l=3,d=0,p=1,m=2,f=1,y=0,g=1,x=2,b=3,M=4,w=5,v=100,_=101,T=102,S=103,A=104,E=200,z=201,R=202,I=203,k=204,L=205,O=206,P=207,B=208,N=209,C=210,F=0,V=1,H=2,U=3,j=4,D=5,G=6,W=7,q=0,X=1,Y=2,Z=0,J=1,K=2,Q=3,$=4,tt=5,et=300,st=301,it=302,rt=303,nt=304,at=306,ot=307,ht=1e3,ut=1001,ct=1002,lt=1003,dt=1004,pt=1004,mt=1005,ft=1005,yt=1006,gt=1007,xt=1007,bt=1008,Mt=1008,wt=1009,vt=1010,_t=1011,Tt=1012,St=1013,At=1014,Et=1015,zt=1016,Rt=1017,It=1018,kt=1019,Lt=1020,Ot=1021,Pt=1022,Bt=1023,Nt=1024,Ct=1025,Ft=Bt,Vt=1026,Ht=1027,Ut=1028,jt=1029,Dt=1030,Gt=1031,Wt=1032,qt=1033,Xt=33776,Yt=33777,Zt=33778,Jt=33779,Kt=35840,Qt=35841,$t=35842,te=35843,ee=36196,se=37492,ie=37496,re=37808,ne=37809,ae=37810,oe=37811,he=37812,ue=37813,ce=37814,le=37815,de=37816,pe=37817,me=37818,fe=37819,ye=37820,ge=37821,xe=36492,be=37840,Me=37841,we=37842,ve=37843,_e=37844,Te=37845,Se=37846,Ae=37847,Ee=37848,ze=37849,Re=37850,Ie=37851,ke=37852,Le=37853,Oe=2200,Pe=2201,Be=2202,Ne=2300,Ce=2301,Fe=2302,Ve=2400,He=2401,Ue=2402,je=2500,De=2501,Ge=0,We=1,qe=2,Xe=3e3,Ye=3001,Ze=3007,Je=3002,Ke=3003,Qe=3004,$e=3005,ts=3006,es=3200,ss=3201,is=0,rs=1,ns=7680,as=519,os=35044,hs=\\\\\\\"300 es\\\\\\\"},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,s=this.y,i=t.elements;return this.x=i[0]*e+i[3]*s+i[6],this.y=i[1]*e+i[4]*s+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const s=this.length();return this.divideScalar(s||1).multiplyScalar(Math.max(t,Math.min(e,s)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,s=this.y-t.y;return e*e+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,s){return this.x=t.x+(e.x-t.x)*s,this.y=t.y+(e.y-t.y)*s,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,s){return void 0!==s&&console.warn(\\\\\\\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const s=Math.cos(e),i=Math.sin(e),r=this.x-t.x,n=this.y-t.y;return this.x=r*s-n*i+t.x,this.y=r*i+n*s+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}i.prototype.isVector2=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i})),s.d(e,\\\\\\\"b\\\\\\\",(function(){return r})),s.d(e,\\\\\\\"h\\\\\\\",(function(){return o})),s.d(e,\\\\\\\"d\\\\\\\",(function(){return h})),s.d(e,\\\\\\\"f\\\\\\\",(function(){return u})),s.d(e,\\\\\\\"j\\\\\\\",(function(){return c})),s.d(e,\\\\\\\"e\\\\\\\",(function(){return l})),s.d(e,\\\\\\\"k\\\\\\\",(function(){return d})),s.d(e,\\\\\\\"i\\\\\\\",(function(){return p})),s.d(e,\\\\\\\"c\\\\\\\",(function(){return m})),s.d(e,\\\\\\\"g\\\\\\\",(function(){return f}));const i=Math.PI/180,r=180/Math.PI,n=[];for(let t=0;t<256;t++)n[t]=(t<16?\\\\\\\"0\\\\\\\":\\\\\\\"\\\\\\\")+t.toString(16);const a=\\\\\\\"undefined\\\\\\\"!=typeof crypto&&\\\\\\\"randomUUID\\\\\\\"in crypto;function o(){if(a)return crypto.randomUUID().toUpperCase();const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,s=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(n[255&t]+n[t>>8&255]+n[t>>16&255]+n[t>>24&255]+\\\\\\\"-\\\\\\\"+n[255&e]+n[e>>8&255]+\\\\\\\"-\\\\\\\"+n[e>>16&15|64]+n[e>>24&255]+\\\\\\\"-\\\\\\\"+n[63&s|128]+n[s>>8&255]+\\\\\\\"-\\\\\\\"+n[s>>16&255]+n[s>>24&255]+n[255&i]+n[i>>8&255]+n[i>>16&255]+n[i>>24&255]).toUpperCase()}function h(t,e,s){return Math.max(e,Math.min(s,t))}function u(t,e){return(t%e+e)%e}function c(t,e,s){return(1-s)*t+s*e}function l(t){return t*i}function d(t){return t*r}function p(t){return 0==(t&t-1)&&0!==t}function m(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function f(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"d\\\\\\\",(function(){return M})),s.d(e,\\\\\\\"c\\\\\\\",(function(){return b})),s.d(e,\\\\\\\"b\\\\\\\",(function(){return x})),s.d(e,\\\\\\\"i\\\\\\\",(function(){return g})),s.d(e,\\\\\\\"f\\\\\\\",(function(){return y})),s.d(e,\\\\\\\"h\\\\\\\",(function(){return f})),s.d(e,\\\\\\\"e\\\\\\\",(function(){return m})),s.d(e,\\\\\\\"k\\\\\\\",(function(){return p})),s.d(e,\\\\\\\"j\\\\\\\",(function(){return d})),s.d(e,\\\\\\\"g\\\\\\\",(function(){return l})),s.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=s(9),r=s(0),n=s(2),a=s(6),o=s(1);const h=new r.a,u=new n.a;class c{constructor(t,e,s){if(Array.isArray(t))throw new TypeError(\\\\\\\"THREE.BufferAttribute: array should be a Typed Array.\\\\\\\");this.name=\\\\\\\"\\\\\\\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===s,this.usage=o.Qc,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,s){t*=this.itemSize,s*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[s+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let s=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyColorsArray(): color is undefined\\\\\\\",i),r=new a.a),e[s++]=r.r,e[s++]=r.g,e[s++]=r.b}return this}copyVector2sArray(t){const e=this.array;let s=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\\\\\\\",i),r=new n.a),e[s++]=r.x,e[s++]=r.y}return this}copyVector3sArray(t){const e=this.array;let s=0;for(let i=0,n=t.length;i<n;i++){let n=t[i];void 0===n&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\\\\\\\",i),n=new r.a),e[s++]=n.x,e[s++]=n.y,e[s++]=n.z}return this}copyVector4sArray(t){const e=this.array;let s=0;for(let r=0,n=t.length;r<n;r++){let n=t[r];void 0===n&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\\\\\\\",r),n=new i.a),e[s++]=n.x,e[s++]=n.y,e[s++]=n.z,e[s++]=n.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,s=this.count;e<s;e++)u.fromBufferAttribute(this,e),u.applyMatrix3(t),this.setXY(e,u.x,u.y);else if(3===this.itemSize)for(let e=0,s=this.count;e<s;e++)h.fromBufferAttribute(this,e),h.applyMatrix3(t),this.setXYZ(e,h.x,h.y,h.z);return this}applyMatrix4(t){for(let e=0,s=this.count;e<s;e++)h.x=this.getX(e),h.y=this.getY(e),h.z=this.getZ(e),h.applyMatrix4(t),this.setXYZ(e,h.x,h.y,h.z);return this}applyNormalMatrix(t){for(let e=0,s=this.count;e<s;e++)h.x=this.getX(e),h.y=this.getY(e),h.z=this.getZ(e),h.applyNormalMatrix(t),this.setXYZ(e,h.x,h.y,h.z);return this}transformDirection(t){for(let e=0,s=this.count;e<s;e++)h.x=this.getX(e),h.y=this.getY(e),h.z=this.getZ(e),h.transformDirection(t),this.setXYZ(e,h.x,h.y,h.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,s){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=s,this}setXYZ(t,e,s,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=s,this.array[t+2]=i,this}setXYZW(t,e,s,i,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=s,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),this.usage!==o.Qc&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}c.prototype.isBufferAttribute=!0;class l extends c{constructor(t,e,s){super(new Int8Array(t),e,s)}}class d extends c{constructor(t,e,s){super(new Uint8Array(t),e,s)}}class p extends c{constructor(t,e,s){super(new Uint8ClampedArray(t),e,s)}}class m extends c{constructor(t,e,s){super(new Int16Array(t),e,s)}}class f extends c{constructor(t,e,s){super(new Uint16Array(t),e,s)}}class y extends c{constructor(t,e,s){super(new Int32Array(t),e,s)}}class g extends c{constructor(t,e,s){super(new Uint32Array(t),e,s)}}class x extends c{constructor(t,e,s){super(new Uint16Array(t),e,s)}}x.prototype.isFloat16BufferAttribute=!0;class b extends c{constructor(t,e,s){super(new Float32Array(t),e,s)}}class M extends c{constructor(t,e,s){super(new Float64Array(t),e,s)}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(0);class r{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\\\\\\\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\\\\\\\")}set(t,e,s,i,r,n,a,o,h,u,c,l,d,p,m,f){const y=this.elements;return y[0]=t,y[4]=e,y[8]=s,y[12]=i,y[1]=r,y[5]=n,y[9]=a,y[13]=o,y[2]=h,y[6]=u,y[10]=c,y[14]=l,y[3]=d,y[7]=p,y[11]=m,y[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new r).fromArray(this.elements)}copy(t){const e=this.elements,s=t.elements;return e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],e[4]=s[4],e[5]=s[5],e[6]=s[6],e[7]=s[7],e[8]=s[8],e[9]=s[9],e[10]=s[10],e[11]=s[11],e[12]=s[12],e[13]=s[13],e[14]=s[14],e[15]=s[15],this}copyPosition(t){const e=this.elements,s=t.elements;return e[12]=s[12],e[13]=s[13],e[14]=s[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,s){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),s.setFromMatrixColumn(this,2),this}makeBasis(t,e,s){return this.set(t.x,e.x,s.x,0,t.y,e.y,s.y,0,t.z,e.z,s.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,s=t.elements,i=1/n.setFromMatrixColumn(t,0).length(),r=1/n.setFromMatrixColumn(t,1).length(),a=1/n.setFromMatrixColumn(t,2).length();return e[0]=s[0]*i,e[1]=s[1]*i,e[2]=s[2]*i,e[3]=0,e[4]=s[4]*r,e[5]=s[5]*r,e[6]=s[6]*r,e[7]=0,e[8]=s[8]*a,e[9]=s[9]*a,e[10]=s[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\\\\\\\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\\\\\\\");const e=this.elements,s=t.x,i=t.y,r=t.z,n=Math.cos(s),a=Math.sin(s),o=Math.cos(i),h=Math.sin(i),u=Math.cos(r),c=Math.sin(r);if(\\\\\\\"XYZ\\\\\\\"===t.order){const t=n*u,s=n*c,i=a*u,r=a*c;e[0]=o*u,e[4]=-o*c,e[8]=h,e[1]=s+i*h,e[5]=t-r*h,e[9]=-a*o,e[2]=r-t*h,e[6]=i+s*h,e[10]=n*o}else if(\\\\\\\"YXZ\\\\\\\"===t.order){const t=o*u,s=o*c,i=h*u,r=h*c;e[0]=t+r*a,e[4]=i*a-s,e[8]=n*h,e[1]=n*c,e[5]=n*u,e[9]=-a,e[2]=s*a-i,e[6]=r+t*a,e[10]=n*o}else if(\\\\\\\"ZXY\\\\\\\"===t.order){const t=o*u,s=o*c,i=h*u,r=h*c;e[0]=t-r*a,e[4]=-n*c,e[8]=i+s*a,e[1]=s+i*a,e[5]=n*u,e[9]=r-t*a,e[2]=-n*h,e[6]=a,e[10]=n*o}else if(\\\\\\\"ZYX\\\\\\\"===t.order){const t=n*u,s=n*c,i=a*u,r=a*c;e[0]=o*u,e[4]=i*h-s,e[8]=t*h+r,e[1]=o*c,e[5]=r*h+t,e[9]=s*h-i,e[2]=-h,e[6]=a*o,e[10]=n*o}else if(\\\\\\\"YZX\\\\\\\"===t.order){const t=n*o,s=n*h,i=a*o,r=a*h;e[0]=o*u,e[4]=r-t*c,e[8]=i*c+s,e[1]=c,e[5]=n*u,e[9]=-a*u,e[2]=-h*u,e[6]=s*c+i,e[10]=t-r*c}else if(\\\\\\\"XZY\\\\\\\"===t.order){const t=n*o,s=n*h,i=a*o,r=a*h;e[0]=o*u,e[4]=-c,e[8]=h*u,e[1]=t*c+r,e[5]=n*u,e[9]=s*c-i,e[2]=i*c-s,e[6]=a*u,e[10]=r*c+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(o,t,h)}lookAt(t,e,s){const i=this.elements;return l.subVectors(t,e),0===l.lengthSq()&&(l.z=1),l.normalize(),u.crossVectors(s,l),0===u.lengthSq()&&(1===Math.abs(s.z)?l.x+=1e-4:l.z+=1e-4,l.normalize(),u.crossVectors(s,l)),u.normalize(),c.crossVectors(l,u),i[0]=u.x,i[4]=c.x,i[8]=l.x,i[1]=u.y,i[5]=c.y,i[9]=l.y,i[2]=u.z,i[6]=c.z,i[10]=l.z,this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\\\\\\\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const s=t.elements,i=e.elements,r=this.elements,n=s[0],a=s[4],o=s[8],h=s[12],u=s[1],c=s[5],l=s[9],d=s[13],p=s[2],m=s[6],f=s[10],y=s[14],g=s[3],x=s[7],b=s[11],M=s[15],w=i[0],v=i[4],_=i[8],T=i[12],S=i[1],A=i[5],E=i[9],z=i[13],R=i[2],I=i[6],k=i[10],L=i[14],O=i[3],P=i[7],B=i[11],N=i[15];return r[0]=n*w+a*S+o*R+h*O,r[4]=n*v+a*A+o*I+h*P,r[8]=n*_+a*E+o*k+h*B,r[12]=n*T+a*z+o*L+h*N,r[1]=u*w+c*S+l*R+d*O,r[5]=u*v+c*A+l*I+d*P,r[9]=u*_+c*E+l*k+d*B,r[13]=u*T+c*z+l*L+d*N,r[2]=p*w+m*S+f*R+y*O,r[6]=p*v+m*A+f*I+y*P,r[10]=p*_+m*E+f*k+y*B,r[14]=p*T+m*z+f*L+y*N,r[3]=g*w+x*S+b*R+M*O,r[7]=g*v+x*A+b*I+M*P,r[11]=g*_+x*E+b*k+M*B,r[15]=g*T+x*z+b*L+M*N,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],s=t[4],i=t[8],r=t[12],n=t[1],a=t[5],o=t[9],h=t[13],u=t[2],c=t[6],l=t[10],d=t[14];return t[3]*(+r*o*c-i*h*c-r*a*l+s*h*l+i*a*d-s*o*d)+t[7]*(+e*o*d-e*h*l+r*n*l-i*n*d+i*h*u-r*o*u)+t[11]*(+e*h*c-e*a*d-r*n*c+s*n*d+r*a*u-s*h*u)+t[15]*(-i*a*u-e*o*c+e*a*l+i*n*c-s*n*l+s*o*u)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,s){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=s),this}invert(){const t=this.elements,e=t[0],s=t[1],i=t[2],r=t[3],n=t[4],a=t[5],o=t[6],h=t[7],u=t[8],c=t[9],l=t[10],d=t[11],p=t[12],m=t[13],f=t[14],y=t[15],g=c*f*h-m*l*h+m*o*d-a*f*d-c*o*y+a*l*y,x=p*l*h-u*f*h-p*o*d+n*f*d+u*o*y-n*l*y,b=u*m*h-p*c*h+p*a*d-n*m*d-u*a*y+n*c*y,M=p*c*o-u*m*o-p*a*l+n*m*l+u*a*f-n*c*f,w=e*g+s*x+i*b+r*M;if(0===w)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const v=1/w;return t[0]=g*v,t[1]=(m*l*r-c*f*r-m*i*d+s*f*d+c*i*y-s*l*y)*v,t[2]=(a*f*r-m*o*r+m*i*h-s*f*h-a*i*y+s*o*y)*v,t[3]=(c*o*r-a*l*r-c*i*h+s*l*h+a*i*d-s*o*d)*v,t[4]=x*v,t[5]=(u*f*r-p*l*r+p*i*d-e*f*d-u*i*y+e*l*y)*v,t[6]=(p*o*r-n*f*r-p*i*h+e*f*h+n*i*y-e*o*y)*v,t[7]=(n*l*r-u*o*r+u*i*h-e*l*h-n*i*d+e*o*d)*v,t[8]=b*v,t[9]=(p*c*r-u*m*r-p*s*d+e*m*d+u*s*y-e*c*y)*v,t[10]=(n*m*r-p*a*r+p*s*h-e*m*h-n*s*y+e*a*y)*v,t[11]=(u*a*r-n*c*r-u*s*h+e*c*h+n*s*d-e*a*d)*v,t[12]=M*v,t[13]=(u*m*i-p*c*i+p*s*l-e*m*l-u*s*f+e*c*f)*v,t[14]=(p*a*i-n*m*i-p*s*o+e*m*o+n*s*f-e*a*f)*v,t[15]=(n*c*i-u*a*i+u*s*o-e*c*o-n*s*l+e*a*l)*v,this}scale(t){const e=this.elements,s=t.x,i=t.y,r=t.z;return e[0]*=s,e[4]*=i,e[8]*=r,e[1]*=s,e[5]*=i,e[9]*=r,e[2]*=s,e[6]*=i,e[10]*=r,e[3]*=s,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],s=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,s,i))}makeTranslation(t,e,s){return this.set(1,0,0,t,0,1,0,e,0,0,1,s,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),s=Math.sin(t);return this.set(1,0,0,0,0,e,-s,0,0,s,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),s=Math.sin(t);return this.set(e,0,s,0,0,1,0,0,-s,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),s=Math.sin(t);return this.set(e,-s,0,0,s,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const s=Math.cos(e),i=Math.sin(e),r=1-s,n=t.x,a=t.y,o=t.z,h=r*n,u=r*a;return this.set(h*n+s,h*a-i*o,h*o+i*a,0,h*a+i*o,u*a+s,u*o-i*n,0,h*o-i*a,u*o+i*n,r*o*o+s,0,0,0,0,1),this}makeScale(t,e,s){return this.set(t,0,0,0,0,e,0,0,0,0,s,0,0,0,0,1),this}makeShear(t,e,s,i,r,n){return this.set(1,s,r,0,t,1,n,0,e,i,1,0,0,0,0,1),this}compose(t,e,s){const i=this.elements,r=e._x,n=e._y,a=e._z,o=e._w,h=r+r,u=n+n,c=a+a,l=r*h,d=r*u,p=r*c,m=n*u,f=n*c,y=a*c,g=o*h,x=o*u,b=o*c,M=s.x,w=s.y,v=s.z;return i[0]=(1-(m+y))*M,i[1]=(d+b)*M,i[2]=(p-x)*M,i[3]=0,i[4]=(d-b)*w,i[5]=(1-(l+y))*w,i[6]=(f+g)*w,i[7]=0,i[8]=(p+x)*v,i[9]=(f-g)*v,i[10]=(1-(l+m))*v,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,s){const i=this.elements;let r=n.set(i[0],i[1],i[2]).length();const o=n.set(i[4],i[5],i[6]).length(),h=n.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],a.copy(this);const u=1/r,c=1/o,l=1/h;return a.elements[0]*=u,a.elements[1]*=u,a.elements[2]*=u,a.elements[4]*=c,a.elements[5]*=c,a.elements[6]*=c,a.elements[8]*=l,a.elements[9]*=l,a.elements[10]*=l,e.setFromRotationMatrix(a),s.x=r,s.y=o,s.z=h,this}makePerspective(t,e,s,i,r,n){void 0===n&&console.warn(\\\\\\\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\\\\\\\");const a=this.elements,o=2*r/(e-t),h=2*r/(s-i),u=(e+t)/(e-t),c=(s+i)/(s-i),l=-(n+r)/(n-r),d=-2*n*r/(n-r);return a[0]=o,a[4]=0,a[8]=u,a[12]=0,a[1]=0,a[5]=h,a[9]=c,a[13]=0,a[2]=0,a[6]=0,a[10]=l,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,s,i,r,n){const a=this.elements,o=1/(e-t),h=1/(s-i),u=1/(n-r),c=(e+t)*o,l=(s+i)*h,d=(n+r)*u;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-c,a[1]=0,a[5]=2*h,a[9]=0,a[13]=-l,a[2]=0,a[6]=0,a[10]=-2*u,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,s=t.elements;for(let t=0;t<16;t++)if(e[t]!==s[t])return!1;return!0}fromArray(t,e=0){for(let s=0;s<16;s++)this.elements[s]=t[s+e];return this}toArray(t=[],e=0){const s=this.elements;return t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3],t[e+4]=s[4],t[e+5]=s[5],t[e+6]=s[6],t[e+7]=s[7],t[e+8]=s[8],t[e+9]=s[9],t[e+10]=s[10],t[e+11]=s[11],t[e+12]=s[12],t[e+13]=s[13],t[e+14]=s[14],t[e+15]=s[15],t}}r.prototype.isMatrix4=!0;const n=new i.a,a=new r,o=new i.a(0,0,0),h=new i.a(1,1,1),u=new i.a,c=new i.a,l=new i.a},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=s(3);const r={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},n={h:0,s:0,l:0},a={h:0,s:0,l:0};function o(t,e,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?t+6*(e-t)*s:s<.5?e:s<2/3?t+6*(e-t)*(2/3-s):t}function h(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function u(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class c{constructor(t,e,s){return void 0===e&&void 0===s?this.set(t):this.setRGB(t,e,s)}set(t){return t&&t.isColor?this.copy(t):\\\\\\\"number\\\\\\\"==typeof t?this.setHex(t):\\\\\\\"string\\\\\\\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,s){return this.r=t,this.g=e,this.b=s,this}setHSL(t,e,s){if(t=i.f(t,1),e=i.d(e,0,1),s=i.d(s,0,1),0===e)this.r=this.g=this.b=s;else{const i=s<=.5?s*(1+e):s+e-s*e,r=2*s-i;this.r=o(r,i,t+1/3),this.g=o(r,i,t),this.b=o(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\\\\\\\"THREE.Color: Alpha component of \\\\\\\"+t+\\\\\\\" will be ignored.\\\\\\\")}let s;if(s=/^((?:rgb|hsl)a?)\\\\(([^\\\\)]*)\\\\)/.exec(t)){let t;const i=s[1],r=s[2];switch(i){case\\\\\\\"rgb\\\\\\\":case\\\\\\\"rgba\\\\\\\":if(t=/^\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\\\\\\\"hsl\\\\\\\":case\\\\\\\"hsla\\\\\\\":if(t=/^\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(r)){const s=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(s,i,r)}}}else if(s=/^\\\\#([A-Fa-f\\\\d]+)$/.exec(t)){const t=s[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=r[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\\\\\\\"THREE.Color: Unknown color \\\\\\\"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const s=e>0?1/e:1;return this.r=Math.pow(t.r,s),this.g=Math.pow(t.g,s),this.b=Math.pow(t.b,s),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=h(t.r),this.g=h(t.g),this.b=h(t.b),this}copyLinearToSRGB(t){return this.r=u(t.r),this.g=u(t.g),this.b=u(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\\\\\\\"000000\\\\\\\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,s=this.g,i=this.b,r=Math.max(e,s,i),n=Math.min(e,s,i);let a,o;const h=(n+r)/2;if(n===r)a=0,o=0;else{const t=r-n;switch(o=h<=.5?t/(r+n):t/(2-r-n),r){case e:a=(s-i)/t+(s<i?6:0);break;case s:a=(i-e)/t+2;break;case i:a=(e-s)/t+4}a/=6}return t.h=a,t.s=o,t.l=h,t}getStyle(){return\\\\\\\"rgb(\\\\\\\"+(255*this.r|0)+\\\\\\\",\\\\\\\"+(255*this.g|0)+\\\\\\\",\\\\\\\"+(255*this.b|0)+\\\\\\\")\\\\\\\"}offsetHSL(t,e,s){return this.getHSL(n),n.h+=t,n.s+=e,n.l+=s,this.setHSL(n.h,n.s,n.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,s){return this.r=t.r+(e.r-t.r)*s,this.g=t.g+(e.g-t.g)*s,this.b=t.b+(e.b-t.b)*s,this}lerpHSL(t,e){this.getHSL(n),t.getHSL(a);const s=i.j(n.h,a.h,e),r=i.j(n.s,a.s,e),o=i.j(n.l,a.l,e);return this.setHSL(s,r,o),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}c.NAMES=r,c.prototype.isColor=!0,c.prototype.r=1,c.prototype.g=1,c.prototype.b=1},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return w}));var i=s(0),r=s(2),n=s(16),a=s(15),o=s(4),h=s(18),u=s(10),c=s(5),l=s(11),d=s(3),p=s(20);let m=0;const f=new c.a,y=new u.a,g=new i.a,x=new n.a,b=new n.a,M=new i.a;class w extends a.a{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:m++}),this.uuid=d.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"BufferGeometry\\\\\\\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(Object(p.a)(t)>65535?o.i:o.h)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,s=0){this.groups.push({start:t,count:e,materialIndex:s})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const s=this.attributes.normal;if(void 0!==s){const e=(new l.a).getNormalMatrix(t);s.applyNormalMatrix(e),s.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return f.makeRotationFromQuaternion(t),this.applyMatrix4(f),this}rotateX(t){return f.makeRotationX(t),this.applyMatrix4(f),this}rotateY(t){return f.makeRotationY(t),this.applyMatrix4(f),this}rotateZ(t){return f.makeRotationZ(t),this.applyMatrix4(f),this}translate(t,e,s){return f.makeTranslation(t,e,s),this.applyMatrix4(f),this}scale(t,e,s){return f.makeScale(t,e,s),this.applyMatrix4(f),this}lookAt(t){return y.lookAt(t),y.updateMatrix(),this.applyMatrix4(y.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(g).negate(),this.translate(g.x,g.y,g.z),this}setFromPoints(t){const e=[];for(let s=0,i=t.length;s<i;s++){const i=t[s];e.push(i.x,i.y,i.z||0)}return this.setAttribute(\\\\\\\"position\\\\\\\",new o.c(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new n.a);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".',this),void this.boundingBox.set(new i.a(-1/0,-1/0,-1/0),new i.a(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,s=e.length;t<s;t++){const s=e[t];x.setFromBufferAttribute(s),this.morphTargetsRelative?(M.addVectors(this.boundingBox.min,x.min),this.boundingBox.expandByPoint(M),M.addVectors(this.boundingBox.max,x.max),this.boundingBox.expandByPoint(M)):(this.boundingBox.expandByPoint(x.min),this.boundingBox.expandByPoint(x.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new h.a);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".',this),void this.boundingSphere.set(new i.a,1/0);if(t){const s=this.boundingSphere.center;if(x.setFromBufferAttribute(t),e)for(let t=0,s=e.length;t<s;t++){const s=e[t];b.setFromBufferAttribute(s),this.morphTargetsRelative?(M.addVectors(x.min,b.min),x.expandByPoint(M),M.addVectors(x.max,b.max),x.expandByPoint(M)):(x.expandByPoint(b.min),x.expandByPoint(b.max))}x.getCenter(s);let i=0;for(let e=0,r=t.count;e<r;e++)M.fromBufferAttribute(t,e),i=Math.max(i,s.distanceToSquared(M));if(e)for(let r=0,n=e.length;r<n;r++){const n=e[r],a=this.morphTargetsRelative;for(let e=0,r=n.count;e<r;e++)M.fromBufferAttribute(n,e),a&&(g.fromBufferAttribute(t,e),M.add(g)),i=Math.max(i,s.distanceToSquared(M))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\\\\\\\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\\\\\\\");const s=t.array,n=e.position.array,a=e.normal.array,h=e.uv.array,u=n.length/3;void 0===e.tangent&&this.setAttribute(\\\\\\\"tangent\\\\\\\",new o.a(new Float32Array(4*u),4));const c=e.tangent.array,l=[],d=[];for(let t=0;t<u;t++)l[t]=new i.a,d[t]=new i.a;const p=new i.a,m=new i.a,f=new i.a,y=new r.a,g=new r.a,x=new r.a,b=new i.a,M=new i.a;function w(t,e,s){p.fromArray(n,3*t),m.fromArray(n,3*e),f.fromArray(n,3*s),y.fromArray(h,2*t),g.fromArray(h,2*e),x.fromArray(h,2*s),m.sub(p),f.sub(p),g.sub(y),x.sub(y);const i=1/(g.x*x.y-x.x*g.y);isFinite(i)&&(b.copy(m).multiplyScalar(x.y).addScaledVector(f,-g.y).multiplyScalar(i),M.copy(f).multiplyScalar(g.x).addScaledVector(m,-x.x).multiplyScalar(i),l[t].add(b),l[e].add(b),l[s].add(b),d[t].add(M),d[e].add(M),d[s].add(M))}let v=this.groups;0===v.length&&(v=[{start:0,count:s.length}]);for(let t=0,e=v.length;t<e;++t){const e=v[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)w(s[t+0],s[t+1],s[t+2])}const _=new i.a,T=new i.a,S=new i.a,A=new i.a;function E(t){S.fromArray(a,3*t),A.copy(S);const e=l[t];_.copy(e),_.sub(S.multiplyScalar(S.dot(e))).normalize(),T.crossVectors(A,e);const s=T.dot(d[t])<0?-1:1;c[4*t]=_.x,c[4*t+1]=_.y,c[4*t+2]=_.z,c[4*t+3]=s}for(let t=0,e=v.length;t<e;++t){const e=v[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)E(s[t+0]),E(s[t+1]),E(s[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\\\\\\\"position\\\\\\\");if(void 0!==e){let s=this.getAttribute(\\\\\\\"normal\\\\\\\");if(void 0===s)s=new o.a(new Float32Array(3*e.count),3),this.setAttribute(\\\\\\\"normal\\\\\\\",s);else for(let t=0,e=s.count;t<e;t++)s.setXYZ(t,0,0,0);const r=new i.a,n=new i.a,a=new i.a,h=new i.a,u=new i.a,c=new i.a,l=new i.a,d=new i.a;if(t)for(let i=0,o=t.count;i<o;i+=3){const o=t.getX(i+0),p=t.getX(i+1),m=t.getX(i+2);r.fromBufferAttribute(e,o),n.fromBufferAttribute(e,p),a.fromBufferAttribute(e,m),l.subVectors(a,n),d.subVectors(r,n),l.cross(d),h.fromBufferAttribute(s,o),u.fromBufferAttribute(s,p),c.fromBufferAttribute(s,m),h.add(l),u.add(l),c.add(l),s.setXYZ(o,h.x,h.y,h.z),s.setXYZ(p,u.x,u.y,u.z),s.setXYZ(m,c.x,c.y,c.z)}else for(let t=0,i=e.count;t<i;t+=3)r.fromBufferAttribute(e,t+0),n.fromBufferAttribute(e,t+1),a.fromBufferAttribute(e,t+2),l.subVectors(a,n),d.subVectors(r,n),l.cross(d),s.setXYZ(t+0,l.x,l.y,l.z),s.setXYZ(t+1,l.x,l.y,l.z),s.setXYZ(t+2,l.x,l.y,l.z);this.normalizeNormals(),s.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\\\\\\\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\\\\\\\",t);void 0===e&&(e=0,console.warn(\\\\\\\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\\\\\\\"));const s=this.attributes;for(const i in s){if(void 0===t.attributes[i])continue;const r=s[i].array,n=t.attributes[i],a=n.array,o=n.itemSize*e,h=Math.min(a.length,r.length-o);for(let t=0,e=o;t<h;t++,e++)r[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,s=t.count;e<s;e++)M.fromBufferAttribute(t,e),M.normalize(),t.setXYZ(e,M.x,M.y,M.z)}toNonIndexed(){function t(t,e){const s=t.array,i=t.itemSize,r=t.normalized,n=new s.constructor(e.length*i);let a=0,h=0;for(let r=0,o=e.length;r<o;r++){a=t.isInterleavedBufferAttribute?e[r]*t.data.stride+t.offset:e[r]*i;for(let t=0;t<i;t++)n[h++]=s[a++]}return new o.a(n,i,r)}if(null===this.index)return console.warn(\\\\\\\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\\\\\\\"),this;const e=new w,s=this.index.array,i=this.attributes;for(const r in i){const n=t(i[r],s);e.setAttribute(r,n)}const r=this.morphAttributes;for(const i in r){const n=[],a=r[i];for(let e=0,i=a.length;e<i;e++){const i=t(a[e],s);n.push(i)}e.morphAttributes[i]=n}e.morphTargetsRelative=this.morphTargetsRelative;const n=this.groups;for(let t=0,s=n.length;t<s;t++){const s=n[t];e.addGroup(s.start,s.count,s.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"BufferGeometry\\\\\\\",generator:\\\\\\\"BufferGeometry.toJSON\\\\\\\"}};if(t.uuid=this.uuid,t.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const s in e)void 0!==e[s]&&(t[s]=e[s]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const s=this.attributes;for(const e in s){const i=s[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const s=this.morphAttributes[e],n=[];for(let e=0,i=s.length;e<i;e++){const i=s[e];n.push(i.toJSON(t.data))}n.length>0&&(i[e]=n,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const n=this.groups;n.length>0&&(t.data.groups=JSON.parse(JSON.stringify(n)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const s=t.index;null!==s&&this.setIndex(s.clone(e));const i=t.attributes;for(const t in i){const s=i[t];this.setAttribute(t,s.clone(e))}const r=t.morphAttributes;for(const t in r){const s=[],i=r[t];for(let t=0,r=i.length;t<r;t++)s.push(i[t].clone(e));this.morphAttributes[t]=s}this.morphTargetsRelative=t.morphTargetsRelative;const n=t.groups;for(let t=0,e=n.length;t<e;t++){const e=n[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,void 0!==t.parameters&&(this.parameters=Object.assign({},t.parameters)),this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}w.prototype.isBufferGeometry=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(3);class r{constructor(t=0,e=0,s=0,i=1){this._x=t,this._y=e,this._z=s,this._w=i}static slerp(t,e,s,i){return console.warn(\\\\\\\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\\\\\\\"),s.slerpQuaternions(t,e,i)}static slerpFlat(t,e,s,i,r,n,a){let o=s[i+0],h=s[i+1],u=s[i+2],c=s[i+3];const l=r[n+0],d=r[n+1],p=r[n+2],m=r[n+3];if(0===a)return t[e+0]=o,t[e+1]=h,t[e+2]=u,void(t[e+3]=c);if(1===a)return t[e+0]=l,t[e+1]=d,t[e+2]=p,void(t[e+3]=m);if(c!==m||o!==l||h!==d||u!==p){let t=1-a;const e=o*l+h*d+u*p+c*m,s=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),n=Math.atan2(r,e*s);t=Math.sin(t*n)/r,a=Math.sin(a*n)/r}const r=a*s;if(o=o*t+l*r,h=h*t+d*r,u=u*t+p*r,c=c*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+h*h+u*u+c*c);o*=t,h*=t,u*=t,c*=t}}t[e]=o,t[e+1]=h,t[e+2]=u,t[e+3]=c}static multiplyQuaternionsFlat(t,e,s,i,r,n){const a=s[i],o=s[i+1],h=s[i+2],u=s[i+3],c=r[n],l=r[n+1],d=r[n+2],p=r[n+3];return t[e]=a*p+u*c+o*d-h*l,t[e+1]=o*p+u*l+h*c-a*d,t[e+2]=h*p+u*d+a*l-o*c,t[e+3]=u*p-a*c-o*l-h*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,s,i){return this._x=t,this._y=e,this._z=s,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\\\\\\\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\");const s=t._x,i=t._y,r=t._z,n=t._order,a=Math.cos,o=Math.sin,h=a(s/2),u=a(i/2),c=a(r/2),l=o(s/2),d=o(i/2),p=o(r/2);switch(n){case\\\\\\\"XYZ\\\\\\\":this._x=l*u*c+h*d*p,this._y=h*d*c-l*u*p,this._z=h*u*p+l*d*c,this._w=h*u*c-l*d*p;break;case\\\\\\\"YXZ\\\\\\\":this._x=l*u*c+h*d*p,this._y=h*d*c-l*u*p,this._z=h*u*p-l*d*c,this._w=h*u*c+l*d*p;break;case\\\\\\\"ZXY\\\\\\\":this._x=l*u*c-h*d*p,this._y=h*d*c+l*u*p,this._z=h*u*p+l*d*c,this._w=h*u*c-l*d*p;break;case\\\\\\\"ZYX\\\\\\\":this._x=l*u*c-h*d*p,this._y=h*d*c+l*u*p,this._z=h*u*p-l*d*c,this._w=h*u*c+l*d*p;break;case\\\\\\\"YZX\\\\\\\":this._x=l*u*c+h*d*p,this._y=h*d*c+l*u*p,this._z=h*u*p-l*d*c,this._w=h*u*c-l*d*p;break;case\\\\\\\"XZY\\\\\\\":this._x=l*u*c-h*d*p,this._y=h*d*c-l*u*p,this._z=h*u*p+l*d*c,this._w=h*u*c+l*d*p;break;default:console.warn(\\\\\\\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \\\\\\\"+n)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const s=e/2,i=Math.sin(s);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(s),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,s=e[0],i=e[4],r=e[8],n=e[1],a=e[5],o=e[9],h=e[2],u=e[6],c=e[10],l=s+a+c;if(l>0){const t=.5/Math.sqrt(l+1);this._w=.25/t,this._x=(u-o)*t,this._y=(r-h)*t,this._z=(n-i)*t}else if(s>a&&s>c){const t=2*Math.sqrt(1+s-a-c);this._w=(u-o)/t,this._x=.25*t,this._y=(i+n)/t,this._z=(r+h)/t}else if(a>c){const t=2*Math.sqrt(1+a-s-c);this._w=(r-h)/t,this._x=(i+n)/t,this._y=.25*t,this._z=(o+u)/t}else{const t=2*Math.sqrt(1+c-s-a);this._w=(n-i)/t,this._x=(r+h)/t,this._y=(o+u)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let s=t.dot(e)+1;return s<Number.EPSILON?(s=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=s):(this._x=0,this._y=-t.z,this._z=t.y,this._w=s)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=s),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(i.d(this.dot(t),-1,1)))}rotateTowards(t,e){const s=this.angleTo(t);if(0===s)return this;const i=Math.min(1,e/s);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\\\\\\\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const s=t._x,i=t._y,r=t._z,n=t._w,a=e._x,o=e._y,h=e._z,u=e._w;return this._x=s*u+n*a+i*h-r*o,this._y=i*u+n*o+r*a-s*h,this._z=r*u+n*h+s*o-i*a,this._w=n*u-s*a-i*o-r*h,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const s=this._x,i=this._y,r=this._z,n=this._w;let a=n*t._w+s*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=n,this._x=s,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*n+e*this._w,this._x=t*s+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const h=Math.sqrt(o),u=Math.atan2(h,a),c=Math.sin((1-e)*u)/h,l=Math.sin(e*u)/h;return this._w=n*c+this._w*l,this._x=s*c+this._x*l,this._y=i*c+this._y*l,this._z=r*c+this._z*l,this._onChangeCallback(),this}slerpQuaternions(t,e,s){this.copy(t).slerp(e,s)}random(){const t=Math.random(),e=Math.sqrt(1-t),s=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),s*Math.sin(r),s*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}r.prototype.isQuaternion=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(t=0,e=0,s=0,i=1){this.x=t,this.y=e,this.z=s,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,s,i){return this.x=t,this.y=e,this.z=s,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,s=this.y,i=this.z,r=this.w,n=t.elements;return this.x=n[0]*e+n[4]*s+n[8]*i+n[12]*r,this.y=n[1]*e+n[5]*s+n[9]*i+n[13]*r,this.z=n[2]*e+n[6]*s+n[10]*i+n[14]*r,this.w=n[3]*e+n[7]*s+n[11]*i+n[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,s,i,r;const n=.01,a=.1,o=t.elements,h=o[0],u=o[4],c=o[8],l=o[1],d=o[5],p=o[9],m=o[2],f=o[6],y=o[10];if(Math.abs(u-l)<n&&Math.abs(c-m)<n&&Math.abs(p-f)<n){if(Math.abs(u+l)<a&&Math.abs(c+m)<a&&Math.abs(p+f)<a&&Math.abs(h+d+y-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(h+1)/2,o=(d+1)/2,g=(y+1)/2,x=(u+l)/4,b=(c+m)/4,M=(p+f)/4;return t>o&&t>g?t<n?(s=0,i=.707106781,r=.707106781):(s=Math.sqrt(t),i=x/s,r=b/s):o>g?o<n?(s=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),s=x/i,r=M/i):g<n?(s=.707106781,i=.707106781,r=0):(r=Math.sqrt(g),s=b/r,i=M/r),this.set(s,i,r,e),this}let g=Math.sqrt((f-p)*(f-p)+(c-m)*(c-m)+(l-u)*(l-u));return Math.abs(g)<.001&&(g=1),this.x=(f-p)/g,this.y=(c-m)/g,this.z=(l-u)/g,this.w=Math.acos((h+d+y-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const s=this.length();return this.divideScalar(s||1).multiplyScalar(Math.max(t,Math.min(e,s)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,s){return this.x=t.x+(e.x-t.x)*s,this.y=t.y+(e.y-t.y)*s,this.z=t.z+(e.z-t.z)*s,this.w=t.w+(e.w-t.w)*s,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,s){return void 0!==s&&console.warn(\\\\\\\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}i.prototype.isVector4=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return T}));var i=s(8),r=s(0),n=s(5),a=s(15),o=s(27),h=s(36),u=s(11),c=s(3);let l=0;const d=new r.a,p=new i.a,m=new n.a,f=new r.a,y=new r.a,g=new r.a,x=new i.a,b=new r.a(1,0,0),M=new r.a(0,1,0),w=new r.a(0,0,1),v={type:\\\\\\\"added\\\\\\\"},_={type:\\\\\\\"removed\\\\\\\"};class T extends a.a{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:l++}),this.uuid=c.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Object3D\\\\\\\",this.parent=null,this.children=[],this.up=T.DefaultUp.clone();const t=new r.a,e=new o.a,s=new i.a,a=new r.a(1,1,1);e._onChange((function(){s.setFromEuler(e,!1)})),s._onChange((function(){e.setFromQuaternion(s,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:s},scale:{configurable:!0,enumerable:!0,value:a},modelViewMatrix:{value:new n.a},normalMatrix:{value:new u.a}}),this.matrix=new n.a,this.matrixWorld=new n.a,this.matrixAutoUpdate=T.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new h.a,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return p.setFromAxisAngle(t,e),this.quaternion.multiply(p),this}rotateOnWorldAxis(t,e){return p.setFromAxisAngle(t,e),this.quaternion.premultiply(p),this}rotateX(t){return this.rotateOnAxis(b,t)}rotateY(t){return this.rotateOnAxis(M,t)}rotateZ(t){return this.rotateOnAxis(w,t)}translateOnAxis(t,e){return d.copy(t).applyQuaternion(this.quaternion),this.position.add(d.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(b,t)}translateY(t){return this.translateOnAxis(M,t)}translateZ(t){return this.translateOnAxis(w,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(m.copy(this.matrixWorld).invert())}lookAt(t,e,s){t.isVector3?f.copy(t):f.set(t,e,s);const i=this.parent;this.updateWorldMatrix(!0,!1),y.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?m.lookAt(y,f,this.up):m.lookAt(f,y,this.up),this.quaternion.setFromRotationMatrix(m),i&&(m.extractRotation(i.matrixWorld),p.setFromRotationMatrix(m),this.quaternion.premultiply(p.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\\\\\\\"THREE.Object3D.add: object can't be added as a child of itself.\\\\\\\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(v)):console.error(\\\\\\\"THREE.Object3D.add: object not an instance of THREE.Object3D.\\\\\\\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(_)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(_)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),m.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),m.multiply(t.parent.matrixWorld)),t.applyMatrix4(m),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\\\\\\\"id\\\\\\\",t)}getObjectByName(t){return this.getObjectByProperty(\\\\\\\"name\\\\\\\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let s=0,i=this.children.length;s<i;s++){const i=this.children[s].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(y,t,g),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(y,x,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let s=0,i=e.length;s<i;s++)e[s].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let s=0,i=e.length;s<i;s++)e[s].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let s=0,i=e.length;s<i;s++)e[s].updateMatrixWorld(t)}updateWorldMatrix(t,e){const s=this.parent;if(!0===t&&null!==s&&s.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,s=t.length;e<s;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t,s={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},s.metadata={version:4.5,type:\\\\\\\"Object\\\\\\\",generator:\\\\\\\"Object3D.toJSON\\\\\\\"});const i={};function r(e,s){return void 0===e[s.uuid]&&(e[s.uuid]=s.toJSON(t)),s.uuid}if(i.uuid=this.uuid,i.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),\\\\\\\"{}\\\\\\\"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type=\\\\\\\"InstancedMesh\\\\\\\",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const s=e.shapes;if(Array.isArray(s))for(let e=0,i=s.length;e<i;e++){const i=s[e];r(t.shapes,i)}else r(t.shapes,s)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let s=0,i=this.material.length;s<i;s++)e.push(r(t.materials,this.material[s]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const s=this.animations[e];i.animations.push(r(t.animations,s))}}if(e){const e=n(t.geometries),i=n(t.materials),r=n(t.textures),a=n(t.images),o=n(t.shapes),h=n(t.skeletons),u=n(t.animations);e.length>0&&(s.geometries=e),i.length>0&&(s.materials=i),r.length>0&&(s.textures=r),a.length>0&&(s.images=a),o.length>0&&(s.shapes=o),h.length>0&&(s.skeletons=h),u.length>0&&(s.animations=u)}return s.object=i,s;function n(t){const e=[];for(const s in t){const i=t[s];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const s=t.children[e];this.add(s.clone())}return this}}T.DefaultUp=new r.a(0,1,0),T.DefaultMatrixAutoUpdate=!0,T.prototype.isObject3D=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\\\\\\\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\\\\\\\")}set(t,e,s,i,r,n,a,o,h){const u=this.elements;return u[0]=t,u[1]=i,u[2]=a,u[3]=e,u[4]=r,u[5]=o,u[6]=s,u[7]=n,u[8]=h,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,s=t.elements;return e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],e[4]=s[4],e[5]=s[5],e[6]=s[6],e[7]=s[7],e[8]=s[8],this}extractBasis(t,e,s){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),s.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const s=t.elements,i=e.elements,r=this.elements,n=s[0],a=s[3],o=s[6],h=s[1],u=s[4],c=s[7],l=s[2],d=s[5],p=s[8],m=i[0],f=i[3],y=i[6],g=i[1],x=i[4],b=i[7],M=i[2],w=i[5],v=i[8];return r[0]=n*m+a*g+o*M,r[3]=n*f+a*x+o*w,r[6]=n*y+a*b+o*v,r[1]=h*m+u*g+c*M,r[4]=h*f+u*x+c*w,r[7]=h*y+u*b+c*v,r[2]=l*m+d*g+p*M,r[5]=l*f+d*x+p*w,r[8]=l*y+d*b+p*v,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],s=t[1],i=t[2],r=t[3],n=t[4],a=t[5],o=t[6],h=t[7],u=t[8];return e*n*u-e*a*h-s*r*u+s*a*o+i*r*h-i*n*o}invert(){const t=this.elements,e=t[0],s=t[1],i=t[2],r=t[3],n=t[4],a=t[5],o=t[6],h=t[7],u=t[8],c=u*n-a*h,l=a*o-u*r,d=h*r-n*o,p=e*c+s*l+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=c*m,t[1]=(i*h-u*s)*m,t[2]=(a*s-i*n)*m,t[3]=l*m,t[4]=(u*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(s*o-h*e)*m,t[8]=(n*e-s*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,s,i,r,n,a){const o=Math.cos(r),h=Math.sin(r);return this.set(s*o,s*h,-s*(o*n+h*a)+n+t,-i*h,i*o,-i*(-h*n+o*a)+a+e,0,0,1),this}scale(t,e){const s=this.elements;return s[0]*=t,s[3]*=t,s[6]*=t,s[1]*=e,s[4]*=e,s[7]*=e,this}rotate(t){const e=Math.cos(t),s=Math.sin(t),i=this.elements,r=i[0],n=i[3],a=i[6],o=i[1],h=i[4],u=i[7];return i[0]=e*r+s*o,i[3]=e*n+s*h,i[6]=e*a+s*u,i[1]=-s*r+e*o,i[4]=-s*n+e*h,i[7]=-s*a+e*u,this}translate(t,e){const s=this.elements;return s[0]+=t*s[2],s[3]+=t*s[5],s[6]+=t*s[8],s[1]+=e*s[2],s[4]+=e*s[5],s[7]+=e*s[8],this}equals(t){const e=this.elements,s=t.elements;for(let t=0;t<9;t++)if(e[t]!==s[t])return!1;return!0}fromArray(t,e=0){for(let s=0;s<9;s++)this.elements[s]=t[s+e];return this}toArray(t=[],e=0){const s=this.elements;return t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3],t[e+4]=s[4],t[e+5]=s[5],t[e+6]=s[6],t[e+7]=s[7],t[e+8]=s[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}i.prototype.isMatrix3=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=s(15),r=s(1),n=s(3);let a=0;class o extends i.a{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:a++}),this.uuid=n.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Material\\\\\\\",this.fog=!0,this.blending=r.xb,this.side=r.H,this.vertexColors=!1,this.opacity=1,this.format=r.Ib,this.transparent=!1,this.blendSrc=r.Nc,this.blendDst=r.Db,this.blendEquation=r.b,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=r.T,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=r.h,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=r.R,this.stencilZFail=r.R,this.stencilZPass=r.R,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const s=t[e];if(void 0===s){console.warn(\\\\\\\"THREE.Material: '\\\\\\\"+e+\\\\\\\"' parameter is undefined.\\\\\\\");continue}if(\\\\\\\"shading\\\\\\\"===e){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .shading has been removed. Use the boolean .flatShading instead.\\\\\\\"),this.flatShading=s===r.F;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(s):i&&i.isVector3&&s&&s.isVector3?i.copy(s):this[e]=s:console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": '\\\\\\\"+e+\\\\\\\"' is not a property of this material.\\\\\\\")}}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t;e&&(t={textures:{},images:{}});const s={metadata:{version:4.5,type:\\\\\\\"Material\\\\\\\",generator:\\\\\\\"Material.toJSON\\\\\\\"}};function i(t){const e=[];for(const s in t){const i=t[s];delete i.metadata,e.push(i)}return e}if(s.uuid=this.uuid,s.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(s.name=this.name),this.color&&this.color.isColor&&(s.color=this.color.getHex()),void 0!==this.roughness&&(s.roughness=this.roughness),void 0!==this.metalness&&(s.metalness=this.metalness),void 0!==this.sheen&&(s.sheen=this.sheen),this.sheenTint&&this.sheenTint.isColor&&(s.sheenTint=this.sheenTint.getHex()),void 0!==this.sheenRoughness&&(s.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(s.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(s.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(s.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(s.specularIntensity=this.specularIntensity),this.specularTint&&this.specularTint.isColor&&(s.specularTint=this.specularTint.getHex()),void 0!==this.shininess&&(s.shininess=this.shininess),void 0!==this.clearcoat&&(s.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(s.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(s.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(s.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(s.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,s.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(s.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(s.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(s.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(s.lightMap=this.lightMap.toJSON(t).uuid,s.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(s.aoMap=this.aoMap.toJSON(t).uuid,s.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(s.bumpMap=this.bumpMap.toJSON(t).uuid,s.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(s.normalMap=this.normalMap.toJSON(t).uuid,s.normalMapType=this.normalMapType,s.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(s.displacementMap=this.displacementMap.toJSON(t).uuid,s.displacementScale=this.displacementScale,s.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(s.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(s.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(s.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(s.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(s.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularTintMap&&this.specularTintMap.isTexture&&(s.specularTintMap=this.specularTintMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(s.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(s.combine=this.combine)),void 0!==this.envMapIntensity&&(s.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(s.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(s.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(s.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(s.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(s.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(s.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(s.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(s.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationTint&&(s.attenuationTint=this.attenuationTint.getHex()),void 0!==this.size&&(s.size=this.size),null!==this.shadowSide&&(s.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(s.sizeAttenuation=this.sizeAttenuation),this.blending!==r.xb&&(s.blending=this.blending),this.side!==r.H&&(s.side=this.side),this.vertexColors&&(s.vertexColors=!0),this.opacity<1&&(s.opacity=this.opacity),this.format!==r.Ib&&(s.format=this.format),!0===this.transparent&&(s.transparent=this.transparent),s.depthFunc=this.depthFunc,s.depthTest=this.depthTest,s.depthWrite=this.depthWrite,s.colorWrite=this.colorWrite,s.stencilWrite=this.stencilWrite,s.stencilWriteMask=this.stencilWriteMask,s.stencilFunc=this.stencilFunc,s.stencilRef=this.stencilRef,s.stencilFuncMask=this.stencilFuncMask,s.stencilFail=this.stencilFail,s.stencilZFail=this.stencilZFail,s.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(s.rotation=this.rotation),!0===this.polygonOffset&&(s.polygonOffset=!0),0!==this.polygonOffsetFactor&&(s.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(s.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(s.linewidth=this.linewidth),void 0!==this.dashSize&&(s.dashSize=this.dashSize),void 0!==this.gapSize&&(s.gapSize=this.gapSize),void 0!==this.scale&&(s.scale=this.scale),!0===this.dithering&&(s.dithering=!0),this.alphaTest>0&&(s.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(s.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(s.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(s.wireframe=this.wireframe),this.wireframeLinewidth>1&&(s.wireframeLinewidth=this.wireframeLinewidth),\\\\\\\"round\\\\\\\"!==this.wireframeLinecap&&(s.wireframeLinecap=this.wireframeLinecap),\\\\\\\"round\\\\\\\"!==this.wireframeLinejoin&&(s.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(s.flatShading=this.flatShading),!1===this.visible&&(s.visible=!1),!1===this.toneMapped&&(s.toneMapped=!1),\\\\\\\"{}\\\\\\\"!==JSON.stringify(this.userData)&&(s.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(s.textures=e),r.length>0&&(s.images=r)}return s}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.format=t.format,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let s=null;if(null!==e){const t=e.length;s=new Array(t);for(let i=0;i!==t;++i)s[i]=e[i].clone()}return this.clippingPlanes=s,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}set needsUpdate(t){!0===t&&this.version++}}o.prototype.isMaterial=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(28);class r{constructor(t){this.manager=void 0!==t?t:i.a,this.crossOrigin=\\\\\\\"anonymous\\\\\\\",this.withCredentials=!1,this.path=\\\\\\\"\\\\\\\",this.resourcePath=\\\\\\\"\\\\\\\",this.requestHeader={}}load(){}loadAsync(t,e){const s=this;return new Promise((function(i,r){s.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return I}));var i=s(0),r=s(2),n=s(18),a=s(39),o=s(5),h=s(10),u=s(40),c=s(1),l=s(29),d=s(7);const p=new o.a,m=new a.a,f=new n.a,y=new i.a,g=new i.a,x=new i.a,b=new i.a,M=new i.a,w=new i.a,v=new i.a,_=new i.a,T=new i.a,S=new r.a,A=new r.a,E=new r.a,z=new i.a,R=new i.a;class I extends h.a{constructor(t=new d.a,e=new l.a){super(),this.type=\\\\\\\"Mesh\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,s=Object.keys(e);if(s.length>0){const t=e[s[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,s=t.length;e<s;e++){const s=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[s]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}raycast(t,e){const s=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===s.boundingSphere&&s.computeBoundingSphere(),f.copy(s.boundingSphere),f.applyMatrix4(r),!1===t.ray.intersectsSphere(f))return;if(p.copy(r).invert(),m.copy(t.ray).applyMatrix4(p),null!==s.boundingBox&&!1===m.intersectsBox(s.boundingBox))return;let n;if(s.isBufferGeometry){const r=s.index,a=s.attributes.position,o=s.morphAttributes.position,h=s.morphTargetsRelative,u=s.attributes.uv,c=s.attributes.uv2,l=s.groups,d=s.drawRange;if(null!==r)if(Array.isArray(i))for(let s=0,p=l.length;s<p;s++){const p=l[s],f=i[p.materialIndex];for(let s=Math.max(p.start,d.start),i=Math.min(r.count,Math.min(p.start+p.count,d.start+d.count));s<i;s+=3){const i=r.getX(s),l=r.getX(s+1),d=r.getX(s+2);n=k(this,f,t,m,a,o,h,u,c,i,l,d),n&&(n.faceIndex=Math.floor(s/3),n.face.materialIndex=p.materialIndex,e.push(n))}}else{for(let s=Math.max(0,d.start),l=Math.min(r.count,d.start+d.count);s<l;s+=3){const l=r.getX(s),d=r.getX(s+1),p=r.getX(s+2);n=k(this,i,t,m,a,o,h,u,c,l,d,p),n&&(n.faceIndex=Math.floor(s/3),e.push(n))}}else if(void 0!==a)if(Array.isArray(i))for(let s=0,r=l.length;s<r;s++){const r=l[s],p=i[r.materialIndex];for(let s=Math.max(r.start,d.start),i=Math.min(a.count,Math.min(r.start+r.count,d.start+d.count));s<i;s+=3){n=k(this,p,t,m,a,o,h,u,c,s,s+1,s+2),n&&(n.faceIndex=Math.floor(s/3),n.face.materialIndex=r.materialIndex,e.push(n))}}else{for(let s=Math.max(0,d.start),r=Math.min(a.count,d.start+d.count);s<r;s+=3){n=k(this,i,t,m,a,o,h,u,c,s,s+1,s+2),n&&(n.faceIndex=Math.floor(s/3),e.push(n))}}}else s.isGeometry&&console.error(\\\\\\\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}function k(t,e,s,n,a,o,h,l,d,p,m,f){y.fromBufferAttribute(a,p),g.fromBufferAttribute(a,m),x.fromBufferAttribute(a,f);const I=t.morphTargetInfluences;if(o&&I){v.set(0,0,0),_.set(0,0,0),T.set(0,0,0);for(let t=0,e=o.length;t<e;t++){const e=I[t],s=o[t];0!==e&&(b.fromBufferAttribute(s,p),M.fromBufferAttribute(s,m),w.fromBufferAttribute(s,f),h?(v.addScaledVector(b,e),_.addScaledVector(M,e),T.addScaledVector(w,e)):(v.addScaledVector(b.sub(y),e),_.addScaledVector(M.sub(g),e),T.addScaledVector(w.sub(x),e)))}y.add(v),g.add(_),x.add(T)}t.isSkinnedMesh&&(t.boneTransform(p,y),t.boneTransform(m,g),t.boneTransform(f,x));const k=function(t,e,s,i,r,n,a,o){let h;if(h=e.side===c.i?i.intersectTriangle(a,n,r,!0,o):i.intersectTriangle(r,n,a,e.side!==c.z,o),null===h)return null;R.copy(o),R.applyMatrix4(t.matrixWorld);const u=s.ray.origin.distanceTo(R);return u<s.near||u>s.far?null:{distance:u,point:R.clone(),object:t}}(t,e,s,n,y,g,x,z);if(k){l&&(S.fromBufferAttribute(l,p),A.fromBufferAttribute(l,m),E.fromBufferAttribute(l,f),k.uv=u.a.getUV(z,y,g,x,S,A,E,new r.a)),d&&(S.fromBufferAttribute(d,p),A.fromBufferAttribute(d,m),E.fromBufferAttribute(d,f),k.uv2=u.a.getUV(z,y,g,x,S,A,E,new r.a));const t={a:p,b:m,c:f,normal:new i.a,materialIndex:0};u.a.getNormal(y,g,x,t.normal),k.face=t}return k}I.prototype.isMesh=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const s=this._listeners;void 0===s[t]&&(s[t]=[]),-1===s[t].indexOf(e)&&s[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const s=this._listeners;return void 0!==s[t]&&-1!==s[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const s=this._listeners[t];if(void 0!==s){const t=s.indexOf(e);-1!==t&&s.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const s=e.slice(0);for(let e=0,i=s.length;e<i;e++)s[e].call(this,t);t.target=null}}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(0);class r{constructor(t=new i.a(1/0,1/0,1/0),e=new i.a(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,s=1/0,i=1/0,r=-1/0,n=-1/0,a=-1/0;for(let o=0,h=t.length;o<h;o+=3){const h=t[o],u=t[o+1],c=t[o+2];h<e&&(e=h),u<s&&(s=u),c<i&&(i=c),h>r&&(r=h),u>n&&(n=u),c>a&&(a=c)}return this.min.set(e,s,i),this.max.set(r,n,a),this}setFromBufferAttribute(t){let e=1/0,s=1/0,i=1/0,r=-1/0,n=-1/0,a=-1/0;for(let o=0,h=t.count;o<h;o++){const h=t.getX(o),u=t.getY(o),c=t.getZ(o);h<e&&(e=h),u<s&&(s=u),c<i&&(i=c),h>r&&(r=h),u>n&&(n=u),c>a&&(a=c)}return this.min.set(e,s,i),this.max.set(r,n,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,s=t.length;e<s;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const s=a.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(s),this.max.copy(t).add(s),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),o.copy(e.boundingBox),o.applyMatrix4(t.matrixWorld),this.union(o));const s=t.children;for(let t=0,e=s.length;t<e;t++)this.expandByObject(s[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,a),a.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,s;return t.normal.x>0?(e=t.normal.x*this.min.x,s=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,s=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,s+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,s+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,s+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,s+=t.normal.z*this.min.z),e<=-t.constant&&s>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(m),f.subVectors(this.max,m),h.subVectors(t.a,m),u.subVectors(t.b,m),c.subVectors(t.c,m),l.subVectors(u,h),d.subVectors(c,u),p.subVectors(h,c);let e=[0,-l.z,l.y,0,-d.z,d.y,0,-p.z,p.y,l.z,0,-l.x,d.z,0,-d.x,p.z,0,-p.x,-l.y,l.x,0,-d.y,d.x,0,-p.y,p.x,0];return!!x(e,h,u,c,f)&&(e=[1,0,0,0,1,0,0,0,1],!!x(e,h,u,c,f)&&(y.crossVectors(l,d),e=[y.x,y.y,y.z],x(e,h,u,c,f)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return a.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(a).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(n[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),n[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),n[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),n[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),n[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),n[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),n[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),n[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(n)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}r.prototype.isBox3=!0;const n=[new i.a,new i.a,new i.a,new i.a,new i.a,new i.a,new i.a,new i.a],a=new i.a,o=new r,h=new i.a,u=new i.a,c=new i.a,l=new i.a,d=new i.a,p=new i.a,m=new i.a,f=new i.a,y=new i.a,g=new i.a;function x(t,e,s,i,r){for(let n=0,a=t.length-3;n<=a;n+=3){g.fromArray(t,n);const a=r.x*Math.abs(g.x)+r.y*Math.abs(g.y)+r.z*Math.abs(g.z),o=e.dot(g),h=s.dot(g),u=i.dot(g);if(Math.max(-Math.max(o,h,u),Math.min(o,h,u))>a)return!1}return!0}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));const i={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=s(16),r=s(0);const n=new i.a,a=new r.a,o=new r.a,h=new r.a;class u{constructor(t=new r.a,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const s=this.center;void 0!==e?s.copy(e):n.setFromPoints(t).getCenter(s);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,s.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const s=this.center.distanceToSquared(t);return e.copy(t),s>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){h.subVectors(t,this.center);const e=h.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),s=.5*(t-this.radius);this.center.add(h.multiplyScalar(s/t)),this.radius+=s}return this}union(t){return o.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(a.copy(t.center).add(o)),this.expandByPoint(a.copy(t.center).sub(o)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(8),r=s(1);const n={arraySlice:function(t,e,s){return n.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==s?s:t.length)):t.slice(e,s)},convertArray:function(t,e,s){return!t||!s&&t.constructor===e?t:\\\\\\\"number\\\\\\\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,s=new Array(e);for(let t=0;t!==e;++t)s[t]=t;return s.sort((function(e,s){return t[e]-t[s]})),s},sortedArray:function(t,e,s){const i=t.length,r=new t.constructor(i);for(let n=0,a=0;a!==i;++n){const i=s[n]*e;for(let s=0;s!==e;++s)r[a++]=t[i+s]}return r},flattenJSON:function(t,e,s,i){let r=1,n=t[0];for(;void 0!==n&&void 0===n[i];)n=t[r++];if(void 0===n)return;let a=n[i];if(void 0!==a)if(Array.isArray(a))do{a=n[i],void 0!==a&&(e.push(n.time),s.push.apply(s,a)),n=t[r++]}while(void 0!==n);else if(void 0!==a.toArray)do{a=n[i],void 0!==a&&(e.push(n.time),a.toArray(s,s.length)),n=t[r++]}while(void 0!==n);else do{a=n[i],void 0!==a&&(e.push(n.time),s.push(a)),n=t[r++]}while(void 0!==n)},subclip:function(t,e,s,i,r=30){const a=t.clone();a.name=e;const o=[];for(let t=0;t<a.tracks.length;++t){const e=a.tracks[t],h=e.getValueSize(),u=[],c=[];for(let t=0;t<e.times.length;++t){const n=e.times[t]*r;if(!(n<s||n>=i)){u.push(e.times[t]);for(let s=0;s<h;++s)c.push(e.values[t*h+s])}}0!==u.length&&(e.times=n.convertArray(u,e.times.constructor),e.values=n.convertArray(c,e.values.constructor),o.push(e))}a.tracks=o;let h=1/0;for(let t=0;t<a.tracks.length;++t)h>a.tracks[t].times[0]&&(h=a.tracks[t].times[0]);for(let t=0;t<a.tracks.length;++t)a.tracks[t].shift(-1*h);return a.resetDuration(),a},makeClipAdditive:function(t,e=0,s=t,a=30){a<=0&&(a=30);const o=s.tracks.length,h=e/a;for(let e=0;e<o;++e){const r=s.tracks[e],a=r.ValueTypeName;if(\\\\\\\"bool\\\\\\\"===a||\\\\\\\"string\\\\\\\"===a)continue;const o=t.tracks.find((function(t){return t.name===r.name&&t.ValueTypeName===a}));if(void 0===o)continue;let u=0;const c=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(u=c/3);let l=0;const d=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(l=d/3);const p=r.times.length-1;let m;if(h<=r.times[0]){const t=u,e=c-u;m=n.arraySlice(r.values,t,e)}else if(h>=r.times[p]){const t=p*c+u,e=t+c-u;m=n.arraySlice(r.values,t,e)}else{const t=r.createInterpolant(),e=u,s=c-u;t.evaluate(h),m=n.arraySlice(t.resultBuffer,e,s)}if(\\\\\\\"quaternion\\\\\\\"===a){(new i.a).fromArray(m).normalize().conjugate().toArray(m)}const f=o.times.length;for(let t=0;t<f;++t){const e=t*d+l;if(\\\\\\\"quaternion\\\\\\\"===a)i.a.multiplyQuaternionsFlat(o.values,e,m,0,o.values,e);else{const t=d-2*l;for(let s=0;s<t;++s)o.values[e+s]-=m[s]}}}return t.blendMode=r.d,t}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";function i(t){if(0===t.length)return-1/0;let e=t[0];for(let s=1,i=t.length;s<i;++s)t[s]>e&&(e=t[s]);return e}s.d(e,\\\\\\\"a\\\\\\\",(function(){return i})),s.d(e,\\\\\\\"c\\\\\\\",(function(){return n})),s.d(e,\\\\\\\"b\\\\\\\",(function(){return a}));const r={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function n(t,e){return new r[t](e)}function a(t){return document.createElementNS(\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\",t)}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(10);class r extends i.a{constructor(){super(),this.type=\\\\\\\"Group\\\\\\\"}}r.prototype.isGroup=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=s(17),r=s(13);const n={};class a extends r.a{constructor(t){super(t)}load(t,e,s,r){void 0===t&&(t=\\\\\\\"\\\\\\\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const a=this,o=i.a.get(t);if(void 0!==o)return a.manager.itemStart(t),setTimeout((function(){e&&e(o),a.manager.itemEnd(t)}),0),o;if(void 0!==n[t])return void n[t].push({onLoad:e,onProgress:s,onError:r});const h=t.match(/^data:(.*?)(;base64)?,(.*)$/);let u;if(h){const s=h[1],i=!!h[2];let n=h[3];n=decodeURIComponent(n),i&&(n=atob(n));try{let i;const r=(this.responseType||\\\\\\\"\\\\\\\").toLowerCase();switch(r){case\\\\\\\"arraybuffer\\\\\\\":case\\\\\\\"blob\\\\\\\":const t=new Uint8Array(n.length);for(let e=0;e<n.length;e++)t[e]=n.charCodeAt(e);i=\\\\\\\"blob\\\\\\\"===r?new Blob([t.buffer],{type:s}):t.buffer;break;case\\\\\\\"document\\\\\\\":const e=new DOMParser;i=e.parseFromString(n,s);break;case\\\\\\\"json\\\\\\\":i=JSON.parse(n);break;default:i=n}setTimeout((function(){e&&e(i),a.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){r&&r(e),a.manager.itemError(t),a.manager.itemEnd(t)}),0)}}else{n[t]=[],n[t].push({onLoad:e,onProgress:s,onError:r}),u=new XMLHttpRequest,u.open(\\\\\\\"GET\\\\\\\",t,!0),u.addEventListener(\\\\\\\"load\\\\\\\",(function(e){const s=this.response,r=n[t];if(delete n[t],200===this.status||0===this.status){0===this.status&&console.warn(\\\\\\\"THREE.FileLoader: HTTP Status 0 received.\\\\\\\"),i.a.add(t,s);for(let t=0,e=r.length;t<e;t++){const e=r[t];e.onLoad&&e.onLoad(s)}a.manager.itemEnd(t)}else{for(let t=0,s=r.length;t<s;t++){const s=r[t];s.onError&&s.onError(e)}a.manager.itemError(t),a.manager.itemEnd(t)}}),!1),u.addEventListener(\\\\\\\"progress\\\\\\\",(function(e){const s=n[t];for(let t=0,i=s.length;t<i;t++){const i=s[t];i.onProgress&&i.onProgress(e)}}),!1),u.addEventListener(\\\\\\\"error\\\\\\\",(function(e){const s=n[t];delete n[t];for(let t=0,i=s.length;t<i;t++){const i=s[t];i.onError&&i.onError(e)}a.manager.itemError(t),a.manager.itemEnd(t)}),!1),u.addEventListener(\\\\\\\"abort\\\\\\\",(function(e){const s=n[t];delete n[t];for(let t=0,i=s.length;t<i;t++){const i=s[t];i.onError&&i.onError(e)}a.manager.itemError(t),a.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(u.responseType=this.responseType),void 0!==this.withCredentials&&(u.withCredentials=this.withCredentials),u.overrideMimeType&&u.overrideMimeType(void 0!==this.mimeType?this.mimeType:\\\\\\\"text/plain\\\\\\\");for(const t in this.requestHeader)u.setRequestHeader(t,this.requestHeader[t]);u.send(null)}return a.manager.itemStart(t),u}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=s(15),r=s(1),n=s(3),a=s(2),o=s(11),h=s(20);let u;let c=0;class l extends i.a{constructor(t=l.DEFAULT_IMAGE,e=l.DEFAULT_MAPPING,s=r.n,i=r.n,h=r.V,u=r.Y,d=r.Ib,p=r.Zc,m=1,f=r.U){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:c++}),this.uuid=n.h(),this.name=\\\\\\\"\\\\\\\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=s,this.wrapT=i,this.magFilter=h,this.minFilter=u,this.anisotropy=m,this.format=d,this.internalFormat=null,this.type=p,this.offset=new a.a(0,0),this.repeat=new a.a(1,1),this.center=new a.a(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new o.a,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=f,this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const s={metadata:{version:4.5,type:\\\\\\\"Texture\\\\\\\",generator:\\\\\\\"Texture.toJSON\\\\\\\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=n.h()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,s=i.length;t<s;t++)i[t].isDataTexture?e.push(d(i[t].image)):e.push(d(i[t]))}else e=d(i);t.images[i.uuid]={uuid:i.uuid,url:e}}s.image=i.uuid}return e||(t.textures[this.uuid]=s),s}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}transformUv(t){if(this.mapping!==r.Yc)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case r.wc:t.x=t.x-Math.floor(t.x);break;case r.n:t.x=t.x<0?0:1;break;case r.kb:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case r.wc:t.y=t.y-Math.floor(t.y);break;case r.n:t.y=t.y<0?0:1;break;case r.kb:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function d(t){return\\\\\\\"undefined\\\\\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\\\\\"undefined\\\\\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\\\\\"undefined\\\\\\\"!=typeof ImageBitmap&&t instanceof ImageBitmap?class{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\\\\\\\"undefined\\\\\\\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===u&&(u=Object(h.b)(\\\\\\\"canvas\\\\\\\")),u.width=t.width,u.height=t.height;const s=u.getContext(\\\\\\\"2d\\\\\\\");t instanceof ImageData?s.putImageData(t,0,0):s.drawImage(t,0,0,t.width,t.height),e=u}return e.width>2048||e.height>2048?(console.warn(\\\\\\\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\\\\\\\",t),e.toDataURL(\\\\\\\"image/jpeg\\\\\\\",.6)):e.toDataURL(\\\\\\\"image/png\\\\\\\")}}.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\\\\\\\"THREE.Texture: Unable to serialize Texture.\\\\\\\"),{})}l.DEFAULT_IMAGE=void 0,l.DEFAULT_MAPPING=r.Yc,l.prototype.isTexture=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(12),r=s(6);class n extends i.a{constructor(t){super(),this.type=\\\\\\\"LineBasicMaterial\\\\\\\",this.color=new r.a(16777215),this.linewidth=1,this.linecap=\\\\\\\"round\\\\\\\",this.linejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this}}n.prototype.isLineBasicMaterial=!0},,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=s(1),r=s(70),n=s(71),a=s(38);class o extends a.a{constructor(t,e,s,i){super(t,e,s,i)}interpolate_(t){return this.copySampleValue_(t-1)}}var h=s(19);class u{constructor(t,e,s,i){if(void 0===t)throw new Error(\\\\\\\"THREE.KeyframeTrack: track name is undefined\\\\\\\");if(void 0===e||0===e.length)throw new Error(\\\\\\\"THREE.KeyframeTrack: no keyframes in track named \\\\\\\"+t);this.name=t,this.times=h.a.convertArray(e,this.TimeBufferType),this.values=h.a.convertArray(s,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let s;if(e.toJSON!==this.toJSON)s=e.toJSON(t);else{s={name:t.name,times:h.a.convertArray(t.times,Array),values:h.a.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(s.interpolation=e)}return s.type=t.ValueTypeName,s}InterpolantFactoryMethodDiscrete(t){return new o(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new n.a(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new r.a(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case i.O:e=this.InterpolantFactoryMethodDiscrete;break;case i.P:e=this.InterpolantFactoryMethodLinear;break;case i.Q:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\\\\\\\"unsupported interpolation for \\\\\\\"+this.ValueTypeName+\\\\\\\" keyframe track named \\\\\\\"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\\\\\\\"THREE.KeyframeTrack:\\\\\\\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return i.O;case this.InterpolantFactoryMethodLinear:return i.P;case this.InterpolantFactoryMethodSmooth:return i.Q}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let s=0,i=e.length;s!==i;++s)e[s]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let s=0,i=e.length;s!==i;++s)e[s]*=t}return this}trim(t,e){const s=this.times,i=s.length;let r=0,n=i-1;for(;r!==i&&s[r]<t;)++r;for(;-1!==n&&s[n]>e;)--n;if(++n,0!==r||n!==i){r>=n&&(n=Math.max(n,1),r=n-1);const t=this.getValueSize();this.times=h.a.arraySlice(s,r,n),this.values=h.a.arraySlice(this.values,r*t,n*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\\\\\\\"THREE.KeyframeTrack: Invalid value size in track.\\\\\\\",this),t=!1);const s=this.times,i=this.values,r=s.length;0===r&&(console.error(\\\\\\\"THREE.KeyframeTrack: Track is empty.\\\\\\\",this),t=!1);let n=null;for(let e=0;e!==r;e++){const i=s[e];if(\\\\\\\"number\\\\\\\"==typeof i&&isNaN(i)){console.error(\\\\\\\"THREE.KeyframeTrack: Time is not a valid number.\\\\\\\",this,e,i),t=!1;break}if(null!==n&&n>i){console.error(\\\\\\\"THREE.KeyframeTrack: Out of order keys.\\\\\\\",this,e,i,n),t=!1;break}n=i}if(void 0!==i&&h.a.isTypedArray(i))for(let e=0,s=i.length;e!==s;++e){const s=i[e];if(isNaN(s)){console.error(\\\\\\\"THREE.KeyframeTrack: Value is not a valid number.\\\\\\\",this,e,s),t=!1;break}}return t}optimize(){const t=h.a.arraySlice(this.times),e=h.a.arraySlice(this.values),s=this.getValueSize(),r=this.getInterpolation()===i.Q,n=t.length-1;let a=1;for(let i=1;i<n;++i){let n=!1;const o=t[i];if(o!==t[i+1]&&(1!==i||o!==t[0]))if(r)n=!0;else{const t=i*s,r=t-s,a=t+s;for(let i=0;i!==s;++i){const s=e[t+i];if(s!==e[r+i]||s!==e[a+i]){n=!0;break}}}if(n){if(i!==a){t[a]=t[i];const r=i*s,n=a*s;for(let t=0;t!==s;++t)e[n+t]=e[r+t]}++a}}if(n>0){t[a]=t[n];for(let t=n*s,i=a*s,r=0;r!==s;++r)e[i+r]=e[t+r];++a}return a!==t.length?(this.times=h.a.arraySlice(t,0,a),this.values=h.a.arraySlice(e,0,a*s)):(this.times=t,this.values=e),this}clone(){const t=h.a.arraySlice(this.times,0),e=h.a.arraySlice(this.values,0),s=new(0,this.constructor)(this.name,t,e);return s.createInterpolant=this.createInterpolant,s}}u.prototype.TimeBufferType=Float32Array,u.prototype.ValueBufferType=Float32Array,u.prototype.DefaultInterpolation=i.P},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=s(8),r=s(0),n=s(5),a=s(3);const o=new n.a,h=new i.a;class u{constructor(t=0,e=0,s=0,i=u.DefaultOrder){this._x=t,this._y=e,this._z=s,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,s,i=this._order){return this._x=t,this._y=e,this._z=s,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,s=!0){const i=t.elements,r=i[0],n=i[4],o=i[8],h=i[1],u=i[5],c=i[9],l=i[2],d=i[6],p=i[10];switch(e){case\\\\\\\"XYZ\\\\\\\":this._y=Math.asin(Object(a.d)(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,p),this._z=Math.atan2(-n,r)):(this._x=Math.atan2(d,u),this._z=0);break;case\\\\\\\"YXZ\\\\\\\":this._x=Math.asin(-Object(a.d)(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(o,p),this._z=Math.atan2(h,u)):(this._y=Math.atan2(-l,r),this._z=0);break;case\\\\\\\"ZXY\\\\\\\":this._x=Math.asin(Object(a.d)(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-l,p),this._z=Math.atan2(-n,u)):(this._y=0,this._z=Math.atan2(h,r));break;case\\\\\\\"ZYX\\\\\\\":this._y=Math.asin(-Object(a.d)(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(h,r)):(this._x=0,this._z=Math.atan2(-n,u));break;case\\\\\\\"YZX\\\\\\\":this._z=Math.asin(Object(a.d)(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-c,u),this._y=Math.atan2(-l,r)):(this._x=0,this._y=Math.atan2(o,p));break;case\\\\\\\"XZY\\\\\\\":this._z=Math.asin(-Object(a.d)(n,-1,1)),Math.abs(n)<.9999999?(this._x=Math.atan2(d,u),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-c,p),this._y=0);break;default:console.warn(\\\\\\\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \\\\\\\"+e)}return this._order=e,!0===s&&this._onChangeCallback(),this}setFromQuaternion(t,e,s){return o.makeRotationFromQuaternion(t),this.setFromRotationMatrix(o,e,s)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return h.setFromEuler(this),this.setFromQuaternion(h,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new r.a(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}u.prototype.isEuler=!0,u.DefaultOrder=\\\\\\\"XYZ\\\\\\\",u.RotationOrders=[\\\\\\\"XYZ\\\\\\\",\\\\\\\"YZX\\\\\\\",\\\\\\\"ZXY\\\\\\\",\\\\\\\"XZY\\\\\\\",\\\\\\\"YXZ\\\\\\\",\\\\\\\"ZYX\\\\\\\"]},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r})),s.d(e,\\\\\\\"b\\\\\\\",(function(){return i}));class i{constructor(t,e,s){const i=this;let r,n=!1,a=0,o=0;const h=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=s,this.itemStart=function(t){o++,!1===n&&void 0!==i.onStart&&i.onStart(t,a,o),n=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(n=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return h.push(t,e),this},this.removeHandler=function(t){const e=h.indexOf(t);return-1!==e&&h.splice(e,2),this},this.getHandler=function(t){for(let e=0,s=h.length;e<s;e+=2){const s=h[e],i=h[e+1];if(s.global&&(s.lastIndex=0),s.test(t))return i}return null}}}const r=new i},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=s(12),r=s(1),n=s(6);class a extends i.a{constructor(t){super(),this.type=\\\\\\\"MeshBasicMaterial\\\\\\\",this.color=new n.a(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=r.nb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}a.prototype.isMeshBasicMaterial=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(44),r=s(3);class n extends i.a{constructor(t=50,e=1,s=.1,i=2e3){super(),this.type=\\\\\\\"PerspectiveCamera\\\\\\\",this.fov=t,this.zoom=1,this.near=s,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*r.b*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*r.a*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*r.b*Math.atan(Math.tan(.5*r.a*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,s,i,r,n){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=s,this.view.offsetY=i,this.view.width=r,this.view.height=n,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*r.a*this.fov)/this.zoom,s=2*e,i=this.aspect*s,n=-.5*i;const a=this.view;if(null!==this.view&&this.view.enabled){const t=a.fullWidth,r=a.fullHeight;n+=a.offsetX*i/t,e-=a.offsetY*s/r,i*=a.width/t,s*=a.height/r}const o=this.filmOffset;0!==o&&(n+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(n,n+i,e,e-s,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}n.prototype.isPerspectiveCamera=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=s(11),r=s(0);const n=new r.a,a=new r.a,o=new i.a;class h{constructor(t=new r.a(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,s,i){return this.normal.set(t,e,s),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,s){const i=n.subVectors(s,e).cross(a.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const s=t.delta(n),i=this.normal.dot(s);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(s).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),s=this.distanceToPoint(t.end);return e<0&&s>0||s<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const s=e||o.getNormalMatrix(t),i=this.coplanarPoint(n).applyMatrix4(t),r=this.normal.applyMatrix3(s).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}h.prototype.isPlane=!0},,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(10),r=s(6);class n extends i.a{constructor(t,e=1){super(),this.type=\\\\\\\"Light\\\\\\\",this.color=new r.a(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}n.prototype.isLight=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(23),r=s(1);class n extends i.a{constructor(t=null,e=1,s=1,i,n,a,o,h,u=r.ob,c=r.ob,l,d){super(null,a,o,h,u,c,i,n,l,d),this.image={data:t,width:e,height:s},this.magFilter=u,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}n.prototype.isDataTexture=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=s(41),r=s(0),n=s(4);const a=new r.a,o=new r.a;class h extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"LineSegments\\\\\\\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,s=[];for(let t=0,i=e.count;t<i;t+=2)a.fromBufferAttribute(e,t),o.fromBufferAttribute(e,t+1),s[t]=0===t?0:s[t-1],s[t+1]=s[t]+a.distanceTo(o);t.setAttribute(\\\\\\\"lineDistance\\\\\\\",new n.c(s,1))}else console.warn(\\\\\\\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");else t.isGeometry&&console.error(\\\\\\\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");return this}}h.prototype.isLineSegments=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(44);class r extends i.a{constructor(t=-1,e=1,s=1,i=-1,r=.1,n=2e3){super(),this.type=\\\\\\\"OrthographicCamera\\\\\\\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=s,this.bottom=i,this.near=r,this.far=n,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,s,i,r,n){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=s,this.view.offsetY=i,this.view.width=r,this.view.height=n,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),s=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=s-t,n=s+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,n=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,n,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}r.prototype.isOrthographicCamera=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(t,e,s,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(s),this.sampleValues=e,this.valueSize=s,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let s=this._cachedIndex,i=e[s],r=e[s-1];t:{e:{let n;s:{i:if(!(t<i)){for(let n=s+2;;){if(void 0===i){if(t<r)break i;return s=e.length,this._cachedIndex=s,this.afterEnd_(s-1,t,r)}if(s===n)break;if(r=i,i=e[++s],t<i)break e}n=e.length;break s}if(t>=r)break t;{const a=e[1];t<a&&(s=2,r=a);for(let n=s-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(s===n)break;if(i=r,r=e[--s-1],t>=r)break e}n=s,s=0}}for(;s<n;){const i=s+n>>>1;t<e[i]?n=i:s=i+1}if(i=e[s],r=e[s-1],void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return s=e.length,this._cachedIndex=s,this.afterEnd_(s-1,r,t)}this._cachedIndex=s,this.intervalChanged_(s,r,i)}return this.interpolate_(s,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,s=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=s[r+t];return e}interpolate_(){throw new Error(\\\\\\\"call to abstract method\\\\\\\")}intervalChanged_(){}}i.prototype.beforeStart_=i.prototype.copySampleValue_,i.prototype.afterEnd_=i.prototype.copySampleValue_},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=s(0);const r=new i.a,n=new i.a,a=new i.a,o=new i.a,h=new i.a,u=new i.a,c=new i.a;class l{constructor(t=new i.a,e=new i.a(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,r)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const s=e.dot(this.direction);return s<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(s).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=r.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(r.copy(this.direction).multiplyScalar(e).add(this.origin),r.distanceToSquared(t))}distanceSqToSegment(t,e,s,i){n.copy(t).add(e).multiplyScalar(.5),a.copy(e).sub(t).normalize(),o.copy(this.origin).sub(n);const r=.5*t.distanceTo(e),h=-this.direction.dot(a),u=o.dot(this.direction),c=-o.dot(a),l=o.lengthSq(),d=Math.abs(1-h*h);let p,m,f,y;if(d>0)if(p=h*c-u,m=h*u-c,y=r*d,p>=0)if(m>=-y)if(m<=y){const t=1/d;p*=t,m*=t,f=p*(p+h*m+2*u)+m*(h*p+m+2*c)+l}else m=r,p=Math.max(0,-(h*m+u)),f=-p*p+m*(m+2*c)+l;else m=-r,p=Math.max(0,-(h*m+u)),f=-p*p+m*(m+2*c)+l;else m<=-y?(p=Math.max(0,-(-h*r+u)),m=p>0?-r:Math.min(Math.max(-r,-c),r),f=-p*p+m*(m+2*c)+l):m<=y?(p=0,m=Math.min(Math.max(-r,-c),r),f=m*(m+2*c)+l):(p=Math.max(0,-(h*r+u)),m=p>0?r:Math.min(Math.max(-r,-c),r),f=-p*p+m*(m+2*c)+l);else m=h>0?-r:r,p=Math.max(0,-(h*m+u)),f=-p*p+m*(m+2*c)+l;return s&&s.copy(this.direction).multiplyScalar(p).add(this.origin),i&&i.copy(a).multiplyScalar(m).add(n),f}intersectSphere(t,e){r.subVectors(t.center,this.origin);const s=r.dot(this.direction),i=r.dot(r)-s*s,n=t.radius*t.radius;if(i>n)return null;const a=Math.sqrt(n-i),o=s-a,h=s+a;return o<0&&h<0?null:o<0?this.at(h,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const s=-(this.origin.dot(t.normal)+t.constant)/e;return s>=0?s:null}intersectPlane(t,e){const s=this.distanceToPlane(t);return null===s?null:this.at(s,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let s,i,r,n,a,o;const h=1/this.direction.x,u=1/this.direction.y,c=1/this.direction.z,l=this.origin;return h>=0?(s=(t.min.x-l.x)*h,i=(t.max.x-l.x)*h):(s=(t.max.x-l.x)*h,i=(t.min.x-l.x)*h),u>=0?(r=(t.min.y-l.y)*u,n=(t.max.y-l.y)*u):(r=(t.max.y-l.y)*u,n=(t.min.y-l.y)*u),s>n||r>i?null:((r>s||s!=s)&&(s=r),(n<i||i!=i)&&(i=n),c>=0?(a=(t.min.z-l.z)*c,o=(t.max.z-l.z)*c):(a=(t.max.z-l.z)*c,o=(t.min.z-l.z)*c),s>o||a>i?null:((a>s||s!=s)&&(s=a),(o<i||i!=i)&&(i=o),i<0?null:this.at(s>=0?s:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,r)}intersectTriangle(t,e,s,i,r){h.subVectors(e,t),u.subVectors(s,t),c.crossVectors(h,u);let n,a=this.direction.dot(c);if(a>0){if(i)return null;n=1}else{if(!(a<0))return null;n=-1,a=-a}o.subVectors(this.origin,t);const l=n*this.direction.dot(u.crossVectors(o,u));if(l<0)return null;const d=n*this.direction.dot(h.cross(o));if(d<0)return null;if(l+d>a)return null;const p=-n*o.dot(c);return p<0?null:this.at(p/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return m}));var i=s(0);const r=new i.a,n=new i.a,a=new i.a,o=new i.a,h=new i.a,u=new i.a,c=new i.a,l=new i.a,d=new i.a,p=new i.a;class m{constructor(t=new i.a,e=new i.a,s=new i.a){this.a=t,this.b=e,this.c=s}static getNormal(t,e,s,i){i.subVectors(s,e),r.subVectors(t,e),i.cross(r);const n=i.lengthSq();return n>0?i.multiplyScalar(1/Math.sqrt(n)):i.set(0,0,0)}static getBarycoord(t,e,s,i,o){r.subVectors(i,e),n.subVectors(s,e),a.subVectors(t,e);const h=r.dot(r),u=r.dot(n),c=r.dot(a),l=n.dot(n),d=n.dot(a),p=h*l-u*u;if(0===p)return o.set(-2,-1,-1);const m=1/p,f=(l*c-u*d)*m,y=(h*d-u*c)*m;return o.set(1-f-y,y,f)}static containsPoint(t,e,s,i){return this.getBarycoord(t,e,s,i,o),o.x>=0&&o.y>=0&&o.x+o.y<=1}static getUV(t,e,s,i,r,n,a,h){return this.getBarycoord(t,e,s,i,o),h.set(0,0),h.addScaledVector(r,o.x),h.addScaledVector(n,o.y),h.addScaledVector(a,o.z),h}static isFrontFacing(t,e,s,i){return r.subVectors(s,e),n.subVectors(t,e),r.cross(n).dot(i)<0}set(t,e,s){return this.a.copy(t),this.b.copy(e),this.c.copy(s),this}setFromPointsAndIndices(t,e,s,i){return this.a.copy(t[e]),this.b.copy(t[s]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,s,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,s),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return r.subVectors(this.c,this.b),n.subVectors(this.a,this.b),.5*r.cross(n).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return m.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return m.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,s,i,r){return m.getUV(t,this.a,this.b,this.c,e,s,i,r)}containsPoint(t){return m.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return m.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const s=this.a,i=this.b,r=this.c;let n,a;h.subVectors(i,s),u.subVectors(r,s),l.subVectors(t,s);const o=h.dot(l),m=u.dot(l);if(o<=0&&m<=0)return e.copy(s);d.subVectors(t,i);const f=h.dot(d),y=u.dot(d);if(f>=0&&y<=f)return e.copy(i);const g=o*y-f*m;if(g<=0&&o>=0&&f<=0)return n=o/(o-f),e.copy(s).addScaledVector(h,n);p.subVectors(t,r);const x=h.dot(p),b=u.dot(p);if(b>=0&&x<=b)return e.copy(r);const M=x*m-o*b;if(M<=0&&m>=0&&b<=0)return a=m/(m-b),e.copy(s).addScaledVector(u,a);const w=f*b-x*y;if(w<=0&&y-f>=0&&x-b>=0)return c.subVectors(r,i),a=(y-f)/(y-f+(x-b)),e.copy(i).addScaledVector(c,a);const v=1/(w+M+g);return n=M*v,a=g*v,e.copy(s).addScaledVector(h,n).addScaledVector(u,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return y}));var i=s(18),r=s(39),n=s(5),a=s(10),o=s(0),h=s(24),u=s(7),c=s(4);const l=new o.a,d=new o.a,p=new n.a,m=new r.a,f=new i.a;class y extends a.a{constructor(t=new u.a,e=new h.a){super(),this.type=\\\\\\\"Line\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,s=[0];for(let t=1,i=e.count;t<i;t++)l.fromBufferAttribute(e,t-1),d.fromBufferAttribute(e,t),s[t]=s[t-1],s[t]+=l.distanceTo(d);t.setAttribute(\\\\\\\"lineDistance\\\\\\\",new c.c(s,1))}else console.warn(\\\\\\\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");else t.isGeometry&&console.error(\\\\\\\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");return this}raycast(t,e){const s=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,n=s.drawRange;if(null===s.boundingSphere&&s.computeBoundingSphere(),f.copy(s.boundingSphere),f.applyMatrix4(i),f.radius+=r,!1===t.ray.intersectsSphere(f))return;p.copy(i).invert(),m.copy(t.ray).applyMatrix4(p);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),h=a*a,u=new o.a,c=new o.a,l=new o.a,d=new o.a,y=this.isLineSegments?2:1;if(s.isBufferGeometry){const i=s.index,r=s.attributes.position;if(null!==i){for(let s=Math.max(0,n.start),a=Math.min(i.count,n.start+n.count)-1;s<a;s+=y){const n=i.getX(s),a=i.getX(s+1);u.fromBufferAttribute(r,n),c.fromBufferAttribute(r,a);if(m.distanceSqToSegment(u,c,d,l)>h)continue;d.applyMatrix4(this.matrixWorld);const o=t.ray.origin.distanceTo(d);o<t.near||o>t.far||e.push({distance:o,point:l.clone().applyMatrix4(this.matrixWorld),index:s,face:null,faceIndex:null,object:this})}}else{for(let s=Math.max(0,n.start),i=Math.min(r.count,n.start+n.count)-1;s<i;s+=y){u.fromBufferAttribute(r,s),c.fromBufferAttribute(r,s+1);if(m.distanceSqToSegment(u,c,d,l)>h)continue;d.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(d);i<t.near||i>t.far||e.push({distance:i,point:l.clone().applyMatrix4(this.matrixWorld),index:s,face:null,faceIndex:null,object:this})}}}else s.isGeometry&&console.error(\\\\\\\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,s=Object.keys(e);if(s.length>0){const t=e[s[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,s=t.length;e<s;e++){const s=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[s]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}}y.prototype.isLine=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(12),r=s(6);class n extends i.a{constructor(t){super(),this.type=\\\\\\\"PointsMaterial\\\\\\\",this.color=new r.a(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this}}n.prototype.isPointsMaterial=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{static decodeText(t){if(\\\\\\\"undefined\\\\\\\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\\\\\\\"\\\\\\\";for(let s=0,i=t.length;s<i;s++)e+=String.fromCharCode(t[s]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\\\\\\\"/\\\\\\\");return-1===e?\\\\\\\"./\\\\\\\":t.substr(0,e+1)}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(5),r=s(10);class n extends r.a{constructor(){super(),this.type=\\\\\\\"Camera\\\\\\\",this.matrixWorldInverse=new i.a,this.projectionMatrix=new i.a,this.projectionMatrixInverse=new i.a}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}n.prototype.isCamera=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=s(5),r=s(2),n=s(0),a=s(9),o=s(60);const h=new i.a,u=new n.a,c=new n.a;class l{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new r.a(512,512),this.map=null,this.mapPass=null,this.matrix=new i.a,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new o.a,this._frameExtents=new r.a(1,1),this._viewportCount=1,this._viewports=[new a.a(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,s=this.matrix;u.setFromMatrixPosition(t.matrixWorld),e.position.copy(u),c.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(c),e.updateMatrixWorld(),h.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(h),s.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),s.multiply(e.projectionMatrix),s.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}},,,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return m}));var i=s(18),r=s(39),n=s(5),a=s(10),o=s(0),h=s(42),u=s(7);const c=new n.a,l=new r.a,d=new i.a,p=new o.a;class m extends a.a{constructor(t=new u.a,e=new h.a){super(),this.type=\\\\\\\"Points\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const s=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,n=s.drawRange;if(null===s.boundingSphere&&s.computeBoundingSphere(),d.copy(s.boundingSphere),d.applyMatrix4(i),d.radius+=r,!1===t.ray.intersectsSphere(d))return;c.copy(i).invert(),l.copy(t.ray).applyMatrix4(c);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a;if(s.isBufferGeometry){const r=s.index,a=s.attributes.position;if(null!==r){for(let s=Math.max(0,n.start),h=Math.min(r.count,n.start+n.count);s<h;s++){const n=r.getX(s);p.fromBufferAttribute(a,n),f(p,n,o,i,t,e,this)}}else{for(let s=Math.max(0,n.start),r=Math.min(a.count,n.start+n.count);s<r;s++)p.fromBufferAttribute(a,s),f(p,s,o,i,t,e,this)}}else console.error(\\\\\\\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,s=Object.keys(e);if(s.length>0){const t=e[s[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,s=t.length;e<s;e++){const s=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[s]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}}function f(t,e,s,i,r,n,a){const h=l.distanceSqToPoint(t);if(h<s){const s=new o.a;l.closestPointToPoint(t,s),s.applyMatrix4(i);const u=r.ray.origin.distanceTo(s);if(u<r.near||u>r.far)return;n.push({distance:u,distanceToRay:Math.sqrt(h),point:s,index:e,face:null,object:a})}}m.prototype.isPoints=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(26);class r extends i.a{}r.prototype.ValueTypeName=\\\\\\\"number\\\\\\\"},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(26);class r extends i.a{}r.prototype.ValueTypeName=\\\\\\\"vector\\\\\\\"},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(10);class r extends i.a{constructor(){super(),this.type=\\\\\\\"Bone\\\\\\\"}}r.prototype.isBone=!0},,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=s(1),r=s(26),n=s(38),a=s(8);class o extends n.a{constructor(t,e,s,i){super(t,e,s,i)}interpolate_(t,e,s,i){const r=this.resultBuffer,n=this.sampleValues,o=this.valueSize,h=(s-e)/(i-e);let u=t*o;for(let t=u+o;u!==t;u+=4)a.a.slerpFlat(r,0,n,u-o,n,u,h);return r}}class h extends r.a{InterpolantFactoryMethodLinear(t){return new o(this.times,this.values,this.getValueSize(),t)}}h.prototype.ValueTypeName=\\\\\\\"quaternion\\\\\\\",h.prototype.DefaultInterpolation=i.P,h.prototype.InterpolantFactoryMethodSmooth=void 0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=s(1),r=s(12),n=s(2),a=s(6);class o extends r.a{constructor(t){super(),this.defines={STANDARD:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshStandardMaterial\\\\\\\",this.color=new a.a(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new a.a(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=i.Uc,this.normalScale=new n.a(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\\\\\\\"\\\\\\\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}o.prototype.isMeshStandardMaterial=!0},,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return m}));var i=s(33),r=s(45),n=s(30),a=s(5),o=s(2),h=s(0),u=s(9);const c=new a.a,l=new h.a,d=new h.a;class p extends r.a{constructor(){super(new n.a(90,1,.5,500)),this._frameExtents=new o.a(4,2),this._viewportCount=6,this._viewports=[new u.a(2,1,1,1),new u.a(0,1,1,1),new u.a(3,1,1,1),new u.a(1,1,1,1),new u.a(3,0,1,1),new u.a(1,0,1,1)],this._cubeDirections=[new h.a(1,0,0),new h.a(-1,0,0),new h.a(0,0,1),new h.a(0,0,-1),new h.a(0,1,0),new h.a(0,-1,0)],this._cubeUps=[new h.a(0,1,0),new h.a(0,1,0),new h.a(0,1,0),new h.a(0,1,0),new h.a(0,0,1),new h.a(0,0,-1)]}updateMatrices(t,e=0){const s=this.camera,i=this.matrix,r=t.distance||s.far;r!==s.far&&(s.far=r,s.updateProjectionMatrix()),l.setFromMatrixPosition(t.matrixWorld),s.position.copy(l),d.copy(s.position),d.add(this._cubeDirections[e]),s.up.copy(this._cubeUps[e]),s.lookAt(d),s.updateMatrixWorld(),i.makeTranslation(-l.x,-l.y,-l.z),c.multiplyMatrices(s.projectionMatrix,s.matrixWorldInverse),this._frustum.setFromProjectionMatrix(c)}}p.prototype.isPointLightShadow=!0;class m extends i.a{constructor(t,e,s=0,i=1){super(t,e),this.type=\\\\\\\"PointLight\\\\\\\",this.distance=s,this.decay=i,this.shadow=new p}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}m.prototype.isPointLight=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=s(2),r=s(55),n=s(6),a=s(3);class o extends r.a{constructor(t){super(),this.defines={STANDARD:\\\\\\\"\\\\\\\",PHYSICAL:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshPhysicalMaterial\\\\\\\",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new i.a(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,\\\\\\\"reflectivity\\\\\\\",{get:function(){return a.d(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.sheenTint=new n.a(0),this.sheenRoughness=1,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationTint=new n.a(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularTint=new n.a(1,1,1),this.specularTintMap=null,this._sheen=0,this._clearcoat=0,this._transmission=0,this.setValues(t)}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:\\\\\\\"\\\\\\\",PHYSICAL:\\\\\\\"\\\\\\\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.sheen=t.sheen,this.sheenTint.copy(t.sheenTint),this.sheenRoughness=t.sheenRoughness,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationTint.copy(t.attenuationTint),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularTint.copy(t.specularTint),this.specularTintMap=t.specularTintMap,this}}o.prototype.isMeshPhysicalMaterial=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=s(0),r=s(18),n=s(31);const a=new r.a,o=new i.a;class h{constructor(t=new n.a,e=new n.a,s=new n.a,i=new n.a,r=new n.a,a=new n.a){this.planes=[t,e,s,i,r,a]}set(t,e,s,i,r,n){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(s),a[3].copy(i),a[4].copy(r),a[5].copy(n),this}copy(t){const e=this.planes;for(let s=0;s<6;s++)e[s].copy(t.planes[s]);return this}setFromProjectionMatrix(t){const e=this.planes,s=t.elements,i=s[0],r=s[1],n=s[2],a=s[3],o=s[4],h=s[5],u=s[6],c=s[7],l=s[8],d=s[9],p=s[10],m=s[11],f=s[12],y=s[13],g=s[14],x=s[15];return e[0].setComponents(a-i,c-o,m-l,x-f).normalize(),e[1].setComponents(a+i,c+o,m+l,x+f).normalize(),e[2].setComponents(a+r,c+h,m+d,x+y).normalize(),e[3].setComponents(a-r,c-h,m-d,x-y).normalize(),e[4].setComponents(a-n,c-u,m-p,x-g).normalize(),e[5].setComponents(a+n,c+u,m+p,x+g).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),a.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(a)}intersectsSprite(t){return a.center.set(0,0,0),a.radius=.7071067811865476,a.applyMatrix4(t.matrixWorld),this.intersectsSphere(a)}intersectsSphere(t){const e=this.planes,s=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(s)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let s=0;s<6;s++){const i=e[s];if(o.x=i.normal.x>0?t.max.x:t.min.x,o.y=i.normal.y>0?t.max.y:t.min.y,o.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(o)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let s=0;s<6;s++)if(e[s].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}},,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=s(17),r=s(13),n=s(20);class a extends r.a{constructor(t){super(t)}load(t,e,s,r){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const a=this,o=i.a.get(t);if(void 0!==o)return a.manager.itemStart(t),setTimeout((function(){e&&e(o),a.manager.itemEnd(t)}),0),o;const h=Object(n.b)(\\\\\\\"img\\\\\\\");function u(){h.removeEventListener(\\\\\\\"load\\\\\\\",u,!1),h.removeEventListener(\\\\\\\"error\\\\\\\",c,!1),i.a.add(t,this),e&&e(this),a.manager.itemEnd(t)}function c(e){h.removeEventListener(\\\\\\\"load\\\\\\\",u,!1),h.removeEventListener(\\\\\\\"error\\\\\\\",c,!1),r&&r(e),a.manager.itemError(t),a.manager.itemEnd(t)}return h.addEventListener(\\\\\\\"load\\\\\\\",u,!1),h.addEventListener(\\\\\\\"error\\\\\\\",c,!1),\\\\\\\"data:\\\\\\\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(h.crossOrigin=this.crossOrigin),a.manager.itemStart(t),h.src=t,h}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return p}));var i=s(19),r=s(26),n=s(1);class a extends r.a{}a.prototype.ValueTypeName=\\\\\\\"bool\\\\\\\",a.prototype.ValueBufferType=Array,a.prototype.DefaultInterpolation=n.O,a.prototype.InterpolantFactoryMethodLinear=void 0,a.prototype.InterpolantFactoryMethodSmooth=void 0;class o extends r.a{}o.prototype.ValueTypeName=\\\\\\\"color\\\\\\\";var h=s(50),u=s(54);class c extends r.a{}c.prototype.ValueTypeName=\\\\\\\"string\\\\\\\",c.prototype.ValueBufferType=Array,c.prototype.DefaultInterpolation=n.O,c.prototype.InterpolantFactoryMethodLinear=void 0,c.prototype.InterpolantFactoryMethodSmooth=void 0;var l=s(51),d=s(3);class p{constructor(t,e=-1,s,i=n.wb){this.name=t,this.tracks=s,this.duration=e,this.blendMode=i,this.uuid=d.h(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],s=t.tracks,i=1/(t.fps||1);for(let t=0,r=s.length;t!==r;++t)e.push(m(s[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],s=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=s.length;t!==i;++t)e.push(r.a.toJSON(s[t]));return i}static CreateFromMorphTargetSequence(t,e,s,r){const n=e.length,a=[];for(let t=0;t<n;t++){let o=[],u=[];o.push((t+n-1)%n,t,(t+1)%n),u.push(0,1,0);const c=i.a.getKeyframeOrder(o);o=i.a.sortedArray(o,1,c),u=i.a.sortedArray(u,1,c),r||0!==o[0]||(o.push(n),u.push(u[0])),a.push(new h.a(\\\\\\\".morphTargetInfluences[\\\\\\\"+e[t].name+\\\\\\\"]\\\\\\\",o,u).scale(1/s))}return new this(t,-1,a)}static findByName(t,e){let s=t;if(!Array.isArray(t)){const e=t;s=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<s.length;t++)if(s[t].name===e)return s[t];return null}static CreateClipsFromMorphTargetSequences(t,e,s){const i={},r=/^([\\\\w-]*?)([\\\\d]+)$/;for(let e=0,s=t.length;e<s;e++){const s=t[e],n=s.name.match(r);if(n&&n.length>1){const t=n[1];let e=i[t];e||(i[t]=e=[]),e.push(s)}}const n=[];for(const t in i)n.push(this.CreateFromMorphTargetSequence(t,i[t],e,s));return n}static parseAnimation(t,e){if(!t)return console.error(\\\\\\\"THREE.AnimationClip: No animation in JSONLoader data.\\\\\\\"),null;const s=function(t,e,s,r,n){if(0!==s.length){const a=[],o=[];i.a.flattenJSON(s,a,o,r),0!==a.length&&n.push(new t(e,a,o))}},r=[],n=t.name||\\\\\\\"default\\\\\\\",a=t.fps||30,o=t.blendMode;let c=t.length||-1;const d=t.hierarchy||[];for(let t=0;t<d.length;t++){const i=d[t].keys;if(i&&0!==i.length)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let s=0;s<i[e].morphTargets.length;s++)t[i[e].morphTargets[s]]=-1;for(const s in t){const t=[],n=[];for(let r=0;r!==i[e].morphTargets.length;++r){const r=i[e];t.push(r.time),n.push(r.morphTarget===s?1:0)}r.push(new h.a(\\\\\\\".morphTargetInfluence[\\\\\\\"+s+\\\\\\\"]\\\\\\\",t,n))}c=t.length*(a||1)}else{const n=\\\\\\\".bones[\\\\\\\"+e[t].name+\\\\\\\"]\\\\\\\";s(l.a,n+\\\\\\\".position\\\\\\\",i,\\\\\\\"pos\\\\\\\",r),s(u.a,n+\\\\\\\".quaternion\\\\\\\",i,\\\\\\\"rot\\\\\\\",r),s(l.a,n+\\\\\\\".scale\\\\\\\",i,\\\\\\\"scl\\\\\\\",r)}}if(0===r.length)return null;return new this(n,c,r,o)}resetDuration(){let t=0;for(let e=0,s=this.tracks.length;e!==s;++e){const s=this.tracks[e];t=Math.max(t,s.times[s.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function m(t){if(void 0===t.type)throw new Error(\\\\\\\"THREE.KeyframeTrack: track type undefined, can not parse\\\\\\\");const e=function(t){switch(t.toLowerCase()){case\\\\\\\"scalar\\\\\\\":case\\\\\\\"double\\\\\\\":case\\\\\\\"float\\\\\\\":case\\\\\\\"number\\\\\\\":case\\\\\\\"integer\\\\\\\":return h.a;case\\\\\\\"vector\\\\\\\":case\\\\\\\"vector2\\\\\\\":case\\\\\\\"vector3\\\\\\\":case\\\\\\\"vector4\\\\\\\":return l.a;case\\\\\\\"color\\\\\\\":return o;case\\\\\\\"quaternion\\\\\\\":return u.a;case\\\\\\\"bool\\\\\\\":case\\\\\\\"boolean\\\\\\\":return a;case\\\\\\\"string\\\\\\\":return c}throw new Error(\\\\\\\"THREE.KeyframeTrack: Unsupported typeName: \\\\\\\"+t)}(t.type);if(void 0===t.times){const e=[],s=[];i.a.flattenJSON(t.keys,e,s,\\\\\\\"value\\\\\\\"),t.times=e,t.values=s}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=s(0),r=s(4);const n=new i.a;class a{constructor(t,e,s,i=!1){this.name=\\\\\\\"\\\\\\\",this.data=t,this.itemSize=e,this.offset=s,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,s=this.data.count;e<s;e++)n.x=this.getX(e),n.y=this.getY(e),n.z=this.getZ(e),n.applyMatrix4(t),this.setXYZ(e,n.x,n.y,n.z);return this}applyNormalMatrix(t){for(let e=0,s=this.count;e<s;e++)n.x=this.getX(e),n.y=this.getY(e),n.z=this.getZ(e),n.applyNormalMatrix(t),this.setXYZ(e,n.x,n.y,n.z);return this}transformDirection(t){for(let e=0,s=this.count;e<s;e++)n.x=this.getX(e),n.y=this.getY(e),n.z=this.getZ(e),n.transformDirection(t),this.setXYZ(e,n.x,n.y,n.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,s){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=s,this}setXYZ(t,e,s,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=s,this.data.array[t+2]=i,this}setXYZW(t,e,s,i,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=s,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){console.log(\\\\\\\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\\\\\\\");const t=[];for(let e=0;e<this.count;e++){const s=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[s+e])}return new r.a(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new a(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\\\\\\\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\\\\\\\");const t=[];for(let e=0;e<this.count;e++){const s=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[s+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}a.prototype.isInterleavedBufferAttribute=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return p}));const i=\\\\\\\"\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/\\\\\\\",r=new RegExp(\\\\\\\"[\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/]\\\\\\\",\\\\\\\"g\\\\\\\"),n=\\\\\\\"[^\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/]\\\\\\\",a=\\\\\\\"[^\\\\\\\"+i.replace(\\\\\\\"\\\\\\\\.\\\\\\\",\\\\\\\"\\\\\\\")+\\\\\\\"]\\\\\\\",o=/((?:WC+[\\\\/:])*)/.source.replace(\\\\\\\"WC\\\\\\\",n),h=/(WCOD+)?/.source.replace(\\\\\\\"WCOD\\\\\\\",a),u=/(?:\\\\.(WC+)(?:\\\\[(.+)\\\\])?)?/.source.replace(\\\\\\\"WC\\\\\\\",n),c=/\\\\.(WC+)(?:\\\\[(.+)\\\\])?/.source.replace(\\\\\\\"WC\\\\\\\",n),l=new RegExp(\\\\\\\"^\\\\\\\"+o+h+u+c+\\\\\\\"$\\\\\\\"),d=[\\\\\\\"material\\\\\\\",\\\\\\\"materials\\\\\\\",\\\\\\\"bones\\\\\\\"];class p{constructor(t,e,s){this.path=e,this.parsedPath=s||p.parseTrackName(e),this.node=p.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,s){return t&&t.isAnimationObjectGroup?new p.Composite(t,e,s):new p(t,e,s)}static sanitizeNodeName(t){return t.replace(/\\\\s/g,\\\\\\\"_\\\\\\\").replace(r,\\\\\\\"\\\\\\\")}static parseTrackName(t){const e=l.exec(t);if(!e)throw new Error(\\\\\\\"PropertyBinding: Cannot parse trackName: \\\\\\\"+t);const s={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=s.nodeName&&s.nodeName.lastIndexOf(\\\\\\\".\\\\\\\");if(void 0!==i&&-1!==i){const t=s.nodeName.substring(i+1);-1!==d.indexOf(t)&&(s.nodeName=s.nodeName.substring(0,i),s.objectName=t)}if(null===s.propertyName||0===s.propertyName.length)throw new Error(\\\\\\\"PropertyBinding: can not parse propertyName from trackName: \\\\\\\"+t);return s}static findNode(t,e){if(!e||\\\\\\\"\\\\\\\"===e||\\\\\\\".\\\\\\\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const s=t.skeleton.getBoneByName(e);if(void 0!==s)return s}if(t.children){const s=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const n=s(r.children);if(n)return n}return null},i=s(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const s=this.resolvedProperty;for(let i=0,r=s.length;i!==r;++i)t[e++]=s[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const s=this.resolvedProperty;for(let i=0,r=s.length;i!==r;++i)s[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const s=this.resolvedProperty;for(let i=0,r=s.length;i!==r;++i)s[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const s=this.resolvedProperty;for(let i=0,r=s.length;i!==r;++i)s[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,s=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=p.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to update node for track: \\\\\\\"+this.path+\\\\\\\" but it wasn't found.\\\\\\\");if(s){let i=e.objectIndex;switch(s){case\\\\\\\"materials\\\\\\\":if(!t.material)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\\\\\\\",this);if(!t.material.materials)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\\\\\\\",this);t=t.material.materials;break;case\\\\\\\"bones\\\\\\\":if(!t.skeleton)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\\\\\\\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[s])return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\\\\\\\",this);t=t[s]}if(void 0!==i){if(void 0===t[i])return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\\\\\\\",this,t);t=t[i]}}const n=t[i];if(void 0===n){const s=e.nodeName;return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to update property for track: \\\\\\\"+s+\\\\\\\".\\\\\\\"+i+\\\\\\\" but it wasn't found.\\\\\\\",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if(\\\\\\\"morphTargetInfluences\\\\\\\"===i){if(!t.geometry)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\\\\\\\",this);if(!t.geometry.isBufferGeometry)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\",this);if(!t.geometry.morphAttributes)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\\\\\\\",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=n,this.propertyIndex=r}else void 0!==n.fromArray&&void 0!==n.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=n):Array.isArray(n)?(o=this.BindingType.EntireArray,this.resolvedProperty=n):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}p.Composite=class{constructor(t,e,s){const i=s||p.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const s=this._targetGroup.nCachedObjects_,i=this._bindings[s];void 0!==i&&i.getValue(t,e)}setValue(t,e){const s=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=s.length;i!==r;++i)s[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,s=t.length;e!==s;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,s=t.length;e!==s;++e)t[e].unbind()}},p.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},p.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},p.prototype.GetterByBindingType=[p.prototype._getValue_direct,p.prototype._getValue_array,p.prototype._getValue_arrayElement,p.prototype._getValue_toArray],p.prototype.SetterByBindingTypeAndVersioning=[[p.prototype._setValue_direct,p.prototype._setValue_direct_setNeedsUpdate,p.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[p.prototype._setValue_array,p.prototype._setValue_array_setNeedsUpdate,p.prototype._setValue_array_setMatrixWorldNeedsUpdate],[p.prototype._setValue_arrayElement,p.prototype._setValue_arrayElement_setNeedsUpdate,p.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[p.prototype._setValue_fromArray,p.prototype._setValue_fromArray_setNeedsUpdate,p.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]]},,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return d}));var i=s(14),r=s(5),n=s(0),a=s(9);const o=new n.a,h=new a.a,u=new a.a,c=new n.a,l=new r.a;class d extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"SkinnedMesh\\\\\\\",this.bindMode=\\\\\\\"attached\\\\\\\",this.bindMatrix=new r.a,this.bindMatrixInverse=new r.a}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new a.a,e=this.geometry.attributes.skinWeight;for(let s=0,i=e.count;s<i;s++){t.x=e.getX(s),t.y=e.getY(s),t.z=e.getZ(s),t.w=e.getW(s);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(s,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\\\\\\\"attached\\\\\\\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\\\\\\\"detached\\\\\\\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\\\\\\\"THREE.SkinnedMesh: Unrecognized bindMode: \\\\\\\"+this.bindMode)}boneTransform(t,e){const s=this.skeleton,i=this.geometry;h.fromBufferAttribute(i.attributes.skinIndex,t),u.fromBufferAttribute(i.attributes.skinWeight,t),o.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=u.getComponent(t);if(0!==i){const r=h.getComponent(t);l.multiplyMatrices(s.bones[r].matrixWorld,s.boneInverses[r]),e.addScaledVector(c.copy(o).applyMatrix4(l),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}d.prototype.isSkinnedMesh=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(1),r=s(38);class n extends r.a{constructor(t,e,s,r){super(t,e,s,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:i.id,endingEnd:i.id}}intervalChanged_(t,e,s){const r=this.parameterPositions;let n=t-2,a=t+1,o=r[n],h=r[a];if(void 0===o)switch(this.getSettings_().endingStart){case i.kd:n=t,o=2*e-s;break;case i.hd:n=r.length-2,o=e+r[n]-r[n+1];break;default:n=t,o=s}if(void 0===h)switch(this.getSettings_().endingEnd){case i.kd:a=t,h=2*s-e;break;case i.hd:a=1,h=s+r[1]-r[0];break;default:a=t-1,h=e}const u=.5*(s-e),c=this.valueSize;this._weightPrev=u/(e-o),this._weightNext=u/(h-s),this._offsetPrev=n*c,this._offsetNext=a*c}interpolate_(t,e,s,i){const r=this.resultBuffer,n=this.sampleValues,a=this.valueSize,o=t*a,h=o-a,u=this._offsetPrev,c=this._offsetNext,l=this._weightPrev,d=this._weightNext,p=(s-e)/(i-e),m=p*p,f=m*p,y=-l*f+2*l*m-l*p,g=(1+l)*f+(-1.5-2*l)*m+(-.5+l)*p+1,x=(-1-d)*f+(1.5+d)*m+.5*p,b=d*f-d*m;for(let t=0;t!==a;++t)r[t]=y*n[u+t]+g*n[h+t]+x*n[o+t]+b*n[c+t];return r}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(38);class r extends i.a{constructor(t,e,s,i){super(t,e,s,i)}interpolate_(t,e,s,i){const r=this.resultBuffer,n=this.sampleValues,a=this.valueSize,o=t*a,h=o-a,u=(s-e)/(i-e),c=1-u;for(let t=0;t!==a;++t)r[t]=n[h+t]*c+n[o+t]*u;return r}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=s(33),r=s(45),n=s(37);class a extends r.a{constructor(){super(new n.a(-5,5,5,-5,.5,500))}}a.prototype.isDirectionalLightShadow=!0;var o=s(10);class h extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"DirectionalLight\\\\\\\",this.position.copy(o.a.DefaultUp),this.updateMatrix(),this.target=new o.a,this.shadow=new a}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}h.prototype.isDirectionalLight=!0},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=s(33),r=s(45),n=s(3),a=s(30);class o extends r.a{constructor(){super(new a.a(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,s=2*n.b*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;s===e.fov&&i===e.aspect&&r===e.far||(e.fov=s,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}o.prototype.isSpotLightShadow=!0;var h=s(10);class u extends i.a{constructor(t,e,s=0,i=Math.PI/3,r=0,n=1){super(t,e),this.type=\\\\\\\"SpotLight\\\\\\\",this.position.copy(h.a.DefaultUp),this.updateMatrix(),this.target=new h.a,this.distance=s,this.angle=i,this.penumbra=r,this.decay=n,this.shadow=new o}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}u.prototype.isSpotLight=!0},,,,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return n}));var i=s(3),r=s(1);class n{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=r.Qc,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=i.h()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,s){t*=this.stride,s*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[s+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=i.h()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),s=new this.constructor(e,this.stride);return s.setUsage(this.usage),s}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=i.h()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}n.prototype.isInterleavedBuffer=!0},,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=s(63),r=s(23),n=s(13);class a extends n.a{constructor(t){super(t)}load(t,e,s,n){const a=new r.a,o=new i.a(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,(function(t){a.image=t,a.needsUpdate=!0,void 0!==e&&e(a)}),s,n),a}}},function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=s(1),r=s(52),n=s(5),a=s(34),o=s(3);const h=new n.a,u=new n.a;class c{constructor(t=[],e=[]){this.uuid=o.h(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn(\\\\\\\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\\\\\\\"),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new n.a)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new n.a;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,s=this.boneMatrices,i=this.boneTexture;for(let i=0,r=t.length;i<r;i++){const r=t[i]?t[i].matrixWorld:u;h.multiplyMatrices(r,e[i]),h.toArray(s,16*i)}null!==i&&(i.needsUpdate=!0)}clone(){return new c(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=o.c(t),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const s=new a.a(e,t,t,i.Ib,i.G);return this.boneMatrices=e,this.boneTexture=s,this.boneTextureSize=t,this}getBoneByName(t){for(let e=0,s=this.bones.length;e<s;e++){const s=this.bones[e];if(s.name===t)return s}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let s=0,i=t.bones.length;s<i;s++){const i=t.bones[s];let a=e[i];void 0===a&&(console.warn(\\\\\\\"THREE.Skeleton: No bone found with UUID:\\\\\\\",i),a=new r.a),this.bones.push(a),this.boneInverses.push((new n.a).fromArray(t.boneInverses[s]))}return this.init(),this}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"Skeleton\\\\\\\",generator:\\\\\\\"Skeleton.toJSON\\\\\\\"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,s=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const n=s[i];t.boneInverses.push(n.toArray())}return t}}},,,,,,,,,,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=s(41);class r extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"LineLoop\\\\\\\"}}r.prototype.isLineLoop=!0},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,s){\\\\\\\"use strict\\\\\\\";s.r(e),s.d(e,\\\\\\\"GLTFLoader\\\\\\\",(function(){return J}));var i=s(64),r=s(52),n=s(16),a=s(4),o=s(7),h=s(1),u=s(6),c=s(72),l=s(22),d=s(21),p=s(17),m=s(13);class f extends m.a{constructor(t){super(t),\\\\\\\"undefined\\\\\\\"==typeof createImageBitmap&&console.warn(\\\\\\\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\\\\\\\"),\\\\\\\"undefined\\\\\\\"==typeof fetch&&console.warn(\\\\\\\"THREE.ImageBitmapLoader: fetch() not supported.\\\\\\\"),this.options={premultiplyAlpha:\\\\\\\"none\\\\\\\"}}setOptions(t){return this.options=t,this}load(t,e,s,i){void 0===t&&(t=\\\\\\\"\\\\\\\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,n=p.a.get(t);if(void 0!==n)return r.manager.itemStart(t),setTimeout((function(){e&&e(n),r.manager.itemEnd(t)}),0),n;const a={};a.credentials=\\\\\\\"anonymous\\\\\\\"===this.crossOrigin?\\\\\\\"same-origin\\\\\\\":\\\\\\\"include\\\\\\\",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:\\\\\\\"none\\\\\\\"}))})).then((function(s){p.a.add(t,s),e&&e(s),r.manager.itemEnd(t)})).catch((function(e){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}f.prototype.isImageBitmapLoader=!0;var y=s(78),g=s(65),x=s(38),b=s(41),M=s(24),w=s(92),v=s(35),_=s(43),T=s(12),S=s(3),A=s(5),E=s(14),z=s(29),R=s(59),I=s(55),k=s(50),L=s(10),O=s(37),P=s(30),B=s(58),N=s(49),C=s(42),F=s(66),V=s(8),H=s(54),U=s(81),j=s(69),D=s(18),G=s(73),W=s(23),q=s(80),X=s(2),Y=s(0),Z=s(51);class J extends m.a{constructor(t){super(t),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register((function(t){return new et(t)})),this.register((function(t){return new at(t)})),this.register((function(t){return new ot(t)})),this.register((function(t){return new st(t)})),this.register((function(t){return new it(t)})),this.register((function(t){return new rt(t)})),this.register((function(t){return new nt(t)})),this.register((function(t){return new $(t)})),this.register((function(t){return new ht(t)}))}load(t,e,s,i){const r=this;let n;n=\\\\\\\"\\\\\\\"!==this.resourcePath?this.resourcePath:\\\\\\\"\\\\\\\"!==this.path?this.path:_.a.extractUrlBase(t),this.manager.itemStart(t);const a=function(e){i?i(e):console.error(e),r.manager.itemError(t),r.manager.itemEnd(t)},o=new l.a(this.manager);o.setPath(this.path),o.setResponseType(\\\\\\\"arraybuffer\\\\\\\"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,(function(s){try{r.parse(s,n,(function(s){e(s),r.manager.itemEnd(t)}),a)}catch(t){a(t)}}),s,a)}setDRACOLoader(t){return this.dracoLoader=t,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: \\\\\\\"MSFT_texture_dds\\\\\\\" no longer supported. Please update to \\\\\\\"KHR_texture_basisu\\\\\\\".')}setKTX2Loader(t){return this.ktx2Loader=t,this}setMeshoptDecoder(t){return this.meshoptDecoder=t,this}register(t){return-1===this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.push(t),this}unregister(t){return-1!==this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,s,i){let r;const n={},a={};if(\\\\\\\"string\\\\\\\"==typeof t)r=t;else{if(_.a.decodeText(new Uint8Array(t,0,4))===ut){try{n[Q.KHR_BINARY_GLTF]=new dt(t)}catch(t){return void(i&&i(t))}r=n[Q.KHR_BINARY_GLTF].content}else r=_.a.decodeText(new Uint8Array(t))}const o=JSON.parse(r);if(void 0===o.asset||o.asset.version[0]<2)return void(i&&i(new Error(\\\\\\\"THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.\\\\\\\")));const h=new Wt(o,{path:e||this.resourcePath||\\\\\\\"\\\\\\\",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});h.fileLoader.setRequestHeader(this.requestHeader);for(let t=0;t<this.pluginCallbacks.length;t++){const e=this.pluginCallbacks[t](h);a[e.name]=e,n[e.name]=!0}if(o.extensionsUsed)for(let t=0;t<o.extensionsUsed.length;++t){const e=o.extensionsUsed[t],s=o.extensionsRequired||[];switch(e){case Q.KHR_MATERIALS_UNLIT:n[e]=new tt;break;case Q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:n[e]=new yt;break;case Q.KHR_DRACO_MESH_COMPRESSION:n[e]=new pt(o,this.dracoLoader);break;case Q.KHR_TEXTURE_TRANSFORM:n[e]=new mt;break;case Q.KHR_MESH_QUANTIZATION:n[e]=new gt;break;default:s.indexOf(e)>=0&&void 0===a[e]&&console.warn('THREE.GLTFLoader: Unknown extension \\\\\\\"'+e+'\\\\\\\".')}}h.setExtensions(n),h.setPlugins(a),h.parse(s,i)}}function K(){let t={};return{get:function(e){return t[e]},add:function(e,s){t[e]=s},remove:function(e){delete t[e]},removeAll:function(){t={}}}}const Q={KHR_BINARY_GLTF:\\\\\\\"KHR_binary_glTF\\\\\\\",KHR_DRACO_MESH_COMPRESSION:\\\\\\\"KHR_draco_mesh_compression\\\\\\\",KHR_LIGHTS_PUNCTUAL:\\\\\\\"KHR_lights_punctual\\\\\\\",KHR_MATERIALS_CLEARCOAT:\\\\\\\"KHR_materials_clearcoat\\\\\\\",KHR_MATERIALS_IOR:\\\\\\\"KHR_materials_ior\\\\\\\",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:\\\\\\\"KHR_materials_pbrSpecularGlossiness\\\\\\\",KHR_MATERIALS_SPECULAR:\\\\\\\"KHR_materials_specular\\\\\\\",KHR_MATERIALS_TRANSMISSION:\\\\\\\"KHR_materials_transmission\\\\\\\",KHR_MATERIALS_UNLIT:\\\\\\\"KHR_materials_unlit\\\\\\\",KHR_MATERIALS_VOLUME:\\\\\\\"KHR_materials_volume\\\\\\\",KHR_TEXTURE_BASISU:\\\\\\\"KHR_texture_basisu\\\\\\\",KHR_TEXTURE_TRANSFORM:\\\\\\\"KHR_texture_transform\\\\\\\",KHR_MESH_QUANTIZATION:\\\\\\\"KHR_mesh_quantization\\\\\\\",EXT_TEXTURE_WEBP:\\\\\\\"EXT_texture_webp\\\\\\\",EXT_MESHOPT_COMPRESSION:\\\\\\\"EXT_meshopt_compression\\\\\\\"};class ${constructor(t){this.parser=t,this.name=Q.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let s=0,i=e.length;s<i;s++){const i=e[s];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&t._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(t){const e=this.parser,s=\\\\\\\"light:\\\\\\\"+t;let i=e.cache.get(s);if(i)return i;const r=e.json,n=((r.extensions&&r.extensions[this.name]||{}).lights||[])[t];let a;const o=new u.a(16777215);void 0!==n.color&&o.fromArray(n.color);const h=void 0!==n.range?n.range:0;switch(n.type){case\\\\\\\"directional\\\\\\\":a=new c.a(o),a.target.position.set(0,0,-1),a.add(a.target);break;case\\\\\\\"point\\\\\\\":a=new B.a(o),a.distance=h;break;case\\\\\\\"spot\\\\\\\":a=new G.a(o),a.distance=h,n.spot=n.spot||{},n.spot.innerConeAngle=void 0!==n.spot.innerConeAngle?n.spot.innerConeAngle:0,n.spot.outerConeAngle=void 0!==n.spot.outerConeAngle?n.spot.outerConeAngle:Math.PI/4,a.angle=n.spot.outerConeAngle,a.penumbra=1-n.spot.innerConeAngle/n.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error(\\\\\\\"THREE.GLTFLoader: Unexpected light type: \\\\\\\"+n.type)}return a.position.set(0,0,0),a.decay=2,void 0!==n.intensity&&(a.intensity=n.intensity),a.name=e.createUniqueName(n.name||\\\\\\\"light_\\\\\\\"+t),i=Promise.resolve(a),e.cache.add(s,i),i}createNodeAttachment(t){const e=this,s=this.parser,i=s.json.nodes[t],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then((function(t){return s._getNodeRef(e.cache,r,t)}))}}class tt{constructor(){this.name=Q.KHR_MATERIALS_UNLIT}getMaterialType(){return z.a}extendParams(t,e,s){const i=[];t.color=new u.a(1,1,1),t.opacity=1;const r=e.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const e=r.baseColorFactor;t.color.fromArray(e),t.opacity=e[3]}void 0!==r.baseColorTexture&&i.push(s.assignTexture(t,\\\\\\\"map\\\\\\\",r.baseColorTexture))}return Promise.all(i)}}class et{constructor(t){this.parser=t,this.name=Q.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?R.a:null}extendMaterialParams(t,e){const s=this.parser,i=s.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],n=i.extensions[this.name];if(void 0!==n.clearcoatFactor&&(e.clearcoat=n.clearcoatFactor),void 0!==n.clearcoatTexture&&r.push(s.assignTexture(e,\\\\\\\"clearcoatMap\\\\\\\",n.clearcoatTexture)),void 0!==n.clearcoatRoughnessFactor&&(e.clearcoatRoughness=n.clearcoatRoughnessFactor),void 0!==n.clearcoatRoughnessTexture&&r.push(s.assignTexture(e,\\\\\\\"clearcoatRoughnessMap\\\\\\\",n.clearcoatRoughnessTexture)),void 0!==n.clearcoatNormalTexture&&(r.push(s.assignTexture(e,\\\\\\\"clearcoatNormalMap\\\\\\\",n.clearcoatNormalTexture)),void 0!==n.clearcoatNormalTexture.scale)){const t=n.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new X.a(t,t)}return Promise.all(r)}}class st{constructor(t){this.parser=t,this.name=Q.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?R.a:null}extendMaterialParams(t,e){const s=this.parser,i=s.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],n=i.extensions[this.name];return void 0!==n.transmissionFactor&&(e.transmission=n.transmissionFactor),void 0!==n.transmissionTexture&&r.push(s.assignTexture(e,\\\\\\\"transmissionMap\\\\\\\",n.transmissionTexture)),Promise.all(r)}}class it{constructor(t){this.parser=t,this.name=Q.KHR_MATERIALS_VOLUME}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?R.a:null}extendMaterialParams(t,e){const s=this.parser,i=s.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],n=i.extensions[this.name];e.thickness=void 0!==n.thicknessFactor?n.thicknessFactor:0,void 0!==n.thicknessTexture&&r.push(s.assignTexture(e,\\\\\\\"thicknessMap\\\\\\\",n.thicknessTexture)),e.attenuationDistance=n.attenuationDistance||0;const a=n.attenuationColor||[1,1,1];return e.attenuationTint=new u.a(a[0],a[1],a[2]),Promise.all(r)}}class rt{constructor(t){this.parser=t,this.name=Q.KHR_MATERIALS_IOR}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?R.a:null}extendMaterialParams(t,e){const s=this.parser.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const i=s.extensions[this.name];return e.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class nt{constructor(t){this.parser=t,this.name=Q.KHR_MATERIALS_SPECULAR}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?R.a:null}extendMaterialParams(t,e){const s=this.parser,i=s.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],n=i.extensions[this.name];e.specularIntensity=void 0!==n.specularFactor?n.specularFactor:1,void 0!==n.specularTexture&&r.push(s.assignTexture(e,\\\\\\\"specularIntensityMap\\\\\\\",n.specularTexture));const a=n.specularColorFactor||[1,1,1];return e.specularTint=new u.a(a[0],a[1],a[2]),void 0!==n.specularColorTexture&&r.push(s.assignTexture(e,\\\\\\\"specularTintMap\\\\\\\",n.specularColorTexture).then((function(t){t.encoding=h.ld}))),Promise.all(r)}}class at{constructor(t){this.parser=t,this.name=Q.KHR_TEXTURE_BASISU}loadTexture(t){const e=this.parser,s=e.json,i=s.textures[t];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],n=s.images[r.source],a=e.options.ktx2Loader;if(!a){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error(\\\\\\\"THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures\\\\\\\");return null}return e.loadTextureImage(t,n,a)}}class ot{constructor(t){this.parser=t,this.name=Q.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,s=this.parser,i=s.json,r=i.textures[t];if(!r.extensions||!r.extensions[e])return null;const n=r.extensions[e],a=i.images[n.source];let o=s.textureLoader;if(a.uri){const t=s.options.manager.getHandler(a.uri);null!==t&&(o=t)}return this.detectSupport().then((function(r){if(r)return s.loadTextureImage(t,a,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(e)>=0)throw new Error(\\\\\\\"THREE.GLTFLoader: WebP required by asset but unsupported.\\\\\\\");return s.loadTexture(t)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(t){const e=new Image;e.src=\\\\\\\"data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA\\\\\\\",e.onload=e.onerror=function(){t(1===e.height)}}))),this.isSupported}}class ht{constructor(t){this.name=Q.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,s=e.bufferViews[t];if(s.extensions&&s.extensions[this.name]){const t=s.extensions[this.name],i=this.parser.getDependency(\\\\\\\"buffer\\\\\\\",t.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error(\\\\\\\"THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files\\\\\\\");return null}return Promise.all([i,r.ready]).then((function(e){const s=t.byteOffset||0,i=t.byteLength||0,n=t.count,a=t.byteStride,o=new ArrayBuffer(n*a),h=new Uint8Array(e[0],s,i);return r.decodeGltfBuffer(new Uint8Array(o),n,a,h,t.mode,t.filter),o}))}return null}}const ut=\\\\\\\"glTF\\\\\\\",ct=1313821514,lt=5130562;class dt{constructor(t){this.name=Q.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(t,0,12);if(this.header={magic:_.a.decodeText(new Uint8Array(t.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==ut)throw new Error(\\\\\\\"THREE.GLTFLoader: Unsupported glTF-Binary header.\\\\\\\");if(this.header.version<2)throw new Error(\\\\\\\"THREE.GLTFLoader: Legacy binary file detected.\\\\\\\");const s=this.header.length-12,i=new DataView(t,12);let r=0;for(;r<s;){const e=i.getUint32(r,!0);r+=4;const s=i.getUint32(r,!0);if(r+=4,s===ct){const s=new Uint8Array(t,12+r,e);this.content=_.a.decodeText(s)}else if(s===lt){const s=12+r;this.body=t.slice(s,s+e)}r+=e}if(null===this.content)throw new Error(\\\\\\\"THREE.GLTFLoader: JSON content not found.\\\\\\\")}}class pt{constructor(t,e){if(!e)throw new Error(\\\\\\\"THREE.GLTFLoader: No DRACOLoader instance provided.\\\\\\\");this.name=Q.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(t,e){const s=this.json,i=this.dracoLoader,r=t.extensions[this.name].bufferView,n=t.extensions[this.name].attributes,a={},o={},h={};for(const t in n){const e=Lt[t]||t.toLowerCase();a[e]=n[t]}for(const e in t.attributes){const i=Lt[e]||e.toLowerCase();if(void 0!==n[e]){const r=s.accessors[t.attributes[e]],n=zt[r.componentType];h[i]=n,o[i]=!0===r.normalized}}return e.getDependency(\\\\\\\"bufferView\\\\\\\",r).then((function(t){return new Promise((function(e){i.decodeDracoFile(t,(function(t){for(const e in t.attributes){const s=t.attributes[e],i=o[e];void 0!==i&&(s.normalized=i)}e(t)}),a,h)}))}))}}class mt{constructor(){this.name=Q.KHR_TEXTURE_TRANSFORM}extendTexture(t,e){return void 0!==e.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in \\\\\\\"'+this.name+'\\\\\\\" extension not yet supported.'),void 0===e.offset&&void 0===e.rotation&&void 0===e.scale||(t=t.clone(),void 0!==e.offset&&t.offset.fromArray(e.offset),void 0!==e.rotation&&(t.rotation=e.rotation),void 0!==e.scale&&t.repeat.fromArray(e.scale),t.needsUpdate=!0),t}}class ft extends I.a{constructor(t){super(),this.isGLTFSpecularGlossinessMaterial=!0;const e=[\\\\\\\"#ifdef USE_SPECULARMAP\\\\\\\",\\\\\\\"\\\\tuniform sampler2D specularMap;\\\\\\\",\\\\\\\"#endif\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\"),s=[\\\\\\\"#ifdef USE_GLOSSINESSMAP\\\\\\\",\\\\\\\"\\\\tuniform sampler2D glossinessMap;\\\\\\\",\\\\\\\"#endif\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\"),i=[\\\\\\\"vec3 specularFactor = specular;\\\\\\\",\\\\\\\"#ifdef USE_SPECULARMAP\\\\\\\",\\\\\\\"\\\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\\\\\\",\\\\\\\"\\\\ttexelSpecular = sRGBToLinear( texelSpecular );\\\\\\\",\\\\\\\"\\\\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture\\\\\\\",\\\\\\\"\\\\tspecularFactor *= texelSpecular.rgb;\\\\\\\",\\\\\\\"#endif\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\"),r=[\\\\\\\"float glossinessFactor = glossiness;\\\\\\\",\\\\\\\"#ifdef USE_GLOSSINESSMAP\\\\\\\",\\\\\\\"\\\\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );\\\\\\\",\\\\\\\"\\\\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture\\\\\\\",\\\\\\\"\\\\tglossinessFactor *= texelGlossiness.a;\\\\\\\",\\\\\\\"#endif\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\"),n=[\\\\\\\"PhysicalMaterial material;\\\\\\\",\\\\\\\"material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );\\\\\\\",\\\\\\\"vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\\\\\\",\\\\\\\"float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\\\\\\",\\\\\\\"material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.\\\\\\\",\\\\\\\"material.roughness += geometryRoughness;\\\\\\\",\\\\\\\"material.roughness = min( material.roughness, 1.0 );\\\\\\\",\\\\\\\"material.specularColor = specularFactor;\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\"),a={specular:{value:(new u.a).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=a,this.onBeforeCompile=function(t){for(const e in a)t.uniforms[e]=a[e];t.fragmentShader=t.fragmentShader.replace(\\\\\\\"uniform float roughness;\\\\\\\",\\\\\\\"uniform vec3 specular;\\\\\\\").replace(\\\\\\\"uniform float metalness;\\\\\\\",\\\\\\\"uniform float glossiness;\\\\\\\").replace(\\\\\\\"#include <roughnessmap_pars_fragment>\\\\\\\",e).replace(\\\\\\\"#include <metalnessmap_pars_fragment>\\\\\\\",s).replace(\\\\\\\"#include <roughnessmap_fragment>\\\\\\\",i).replace(\\\\\\\"#include <metalnessmap_fragment>\\\\\\\",r).replace(\\\\\\\"#include <lights_physical_fragment>\\\\\\\",n)},Object.defineProperties(this,{specular:{get:function(){return a.specular.value},set:function(t){a.specular.value=t}},specularMap:{get:function(){return a.specularMap.value},set:function(t){a.specularMap.value=t,t?this.defines.USE_SPECULARMAP=\\\\\\\"\\\\\\\":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return a.glossiness.value},set:function(t){a.glossiness.value=t}},glossinessMap:{get:function(){return a.glossinessMap.value},set:function(t){a.glossinessMap.value=t,t?(this.defines.USE_GLOSSINESSMAP=\\\\\\\"\\\\\\\",this.defines.USE_UV=\\\\\\\"\\\\\\\"):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(t)}copy(t){return super.copy(t),this.specularMap=t.specularMap,this.specular.copy(t.specular),this.glossinessMap=t.glossinessMap,this.glossiness=t.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class yt{constructor(){this.name=Q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=[\\\\\\\"color\\\\\\\",\\\\\\\"map\\\\\\\",\\\\\\\"lightMap\\\\\\\",\\\\\\\"lightMapIntensity\\\\\\\",\\\\\\\"aoMap\\\\\\\",\\\\\\\"aoMapIntensity\\\\\\\",\\\\\\\"emissive\\\\\\\",\\\\\\\"emissiveIntensity\\\\\\\",\\\\\\\"emissiveMap\\\\\\\",\\\\\\\"bumpMap\\\\\\\",\\\\\\\"bumpScale\\\\\\\",\\\\\\\"normalMap\\\\\\\",\\\\\\\"normalMapType\\\\\\\",\\\\\\\"displacementMap\\\\\\\",\\\\\\\"displacementScale\\\\\\\",\\\\\\\"displacementBias\\\\\\\",\\\\\\\"specularMap\\\\\\\",\\\\\\\"specular\\\\\\\",\\\\\\\"glossinessMap\\\\\\\",\\\\\\\"glossiness\\\\\\\",\\\\\\\"alphaMap\\\\\\\",\\\\\\\"envMap\\\\\\\",\\\\\\\"envMapIntensity\\\\\\\",\\\\\\\"refractionRatio\\\\\\\"]}getMaterialType(){return ft}extendParams(t,e,s){const i=e.extensions[this.name];t.color=new u.a(1,1,1),t.opacity=1;const r=[];if(Array.isArray(i.diffuseFactor)){const e=i.diffuseFactor;t.color.fromArray(e),t.opacity=e[3]}if(void 0!==i.diffuseTexture&&r.push(s.assignTexture(t,\\\\\\\"map\\\\\\\",i.diffuseTexture)),t.emissive=new u.a(0,0,0),t.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,t.specular=new u.a(1,1,1),Array.isArray(i.specularFactor)&&t.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const e=i.specularGlossinessTexture;r.push(s.assignTexture(t,\\\\\\\"glossinessMap\\\\\\\",e)),r.push(s.assignTexture(t,\\\\\\\"specularMap\\\\\\\",e))}return Promise.all(r)}createMaterial(t){const e=new ft(t);return e.fog=!0,e.color=t.color,e.map=void 0===t.map?null:t.map,e.lightMap=null,e.lightMapIntensity=1,e.aoMap=void 0===t.aoMap?null:t.aoMap,e.aoMapIntensity=1,e.emissive=t.emissive,e.emissiveIntensity=1,e.emissiveMap=void 0===t.emissiveMap?null:t.emissiveMap,e.bumpMap=void 0===t.bumpMap?null:t.bumpMap,e.bumpScale=1,e.normalMap=void 0===t.normalMap?null:t.normalMap,e.normalMapType=h.Uc,t.normalScale&&(e.normalScale=t.normalScale),e.displacementMap=null,e.displacementScale=1,e.displacementBias=0,e.specularMap=void 0===t.specularMap?null:t.specularMap,e.specular=t.specular,e.glossinessMap=void 0===t.glossinessMap?null:t.glossinessMap,e.glossiness=t.glossiness,e.alphaMap=null,e.envMap=void 0===t.envMap?null:t.envMap,e.envMapIntensity=1,e.refractionRatio=.98,e}}class gt{constructor(){this.name=Q.KHR_MESH_QUANTIZATION}}class xt extends x.a{constructor(t,e,s,i){super(t,e,s,i)}copySampleValue_(t){const e=this.resultBuffer,s=this.sampleValues,i=this.valueSize,r=t*i*3+i;for(let t=0;t!==i;t++)e[t]=s[r+t];return e}}xt.prototype.beforeStart_=xt.prototype.copySampleValue_,xt.prototype.afterEnd_=xt.prototype.copySampleValue_,xt.prototype.interpolate_=function(t,e,s,i){const r=this.resultBuffer,n=this.sampleValues,a=this.valueSize,o=2*a,h=3*a,u=i-e,c=(s-e)/u,l=c*c,d=l*c,p=t*h,m=p-h,f=-2*d+3*l,y=d-l,g=1-f,x=y-l+c;for(let t=0;t!==a;t++){const e=n[m+t+a],s=n[m+t+o]*u,i=n[p+t+a],h=n[p+t]*u;r[t]=g*e+x*s+f*i+y*h}return r};const bt=new V.a;class Mt extends xt{interpolate_(t,e,s,i){const r=super.interpolate_(t,e,s,i);return bt.fromArray(r).normalize().toArray(r),r}}const wt=0,vt=1,_t=2,Tt=3,St=4,At=5,Et=6,zt={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Rt={9728:h.ob,9729:h.V,9984:h.sb,9985:h.Z,9986:h.rb,9987:h.Y},It={33071:h.n,33648:h.kb,10497:h.wc},kt={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Lt={POSITION:\\\\\\\"position\\\\\\\",NORMAL:\\\\\\\"normal\\\\\\\",TANGENT:\\\\\\\"tangent\\\\\\\",TEXCOORD_0:\\\\\\\"uv\\\\\\\",TEXCOORD_1:\\\\\\\"uv2\\\\\\\",COLOR_0:\\\\\\\"color\\\\\\\",WEIGHTS_0:\\\\\\\"skinWeight\\\\\\\",JOINTS_0:\\\\\\\"skinIndex\\\\\\\"},Ot={scale:\\\\\\\"scale\\\\\\\",translation:\\\\\\\"position\\\\\\\",rotation:\\\\\\\"quaternion\\\\\\\",weights:\\\\\\\"morphTargetInfluences\\\\\\\"},Pt={CUBICSPLINE:void 0,LINEAR:h.P,STEP:h.O},Bt=\\\\\\\"OPAQUE\\\\\\\",Nt=\\\\\\\"MASK\\\\\\\",Ct=\\\\\\\"BLEND\\\\\\\";function Ft(t,e){return\\\\\\\"string\\\\\\\"!=typeof t||\\\\\\\"\\\\\\\"===t?\\\\\\\"\\\\\\\":(/^https?:\\\\/\\\\//i.test(e)&&/^\\\\//.test(t)&&(e=e.replace(/(^https?:\\\\/\\\\/[^\\\\/]+).*/i,\\\\\\\"$1\\\\\\\")),/^(https?:)?\\\\/\\\\//i.test(t)||/^data:.*,.*$/i.test(t)||/^blob:.*$/i.test(t)?t:e+t)}function Vt(t,e,s){for(const i in s.extensions)void 0===t[i]&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=s.extensions[i])}function Ht(t,e){void 0!==e.extras&&(\\\\\\\"object\\\\\\\"==typeof e.extras?Object.assign(t.userData,e.extras):console.warn(\\\\\\\"THREE.GLTFLoader: Ignoring primitive type .extras, \\\\\\\"+e.extras))}function Ut(t,e){if(t.updateMorphTargets(),void 0!==e.weights)for(let s=0,i=e.weights.length;s<i;s++)t.morphTargetInfluences[s]=e.weights[s];if(e.extras&&Array.isArray(e.extras.targetNames)){const s=e.extras.targetNames;if(t.morphTargetInfluences.length===s.length){t.morphTargetDictionary={};for(let e=0,i=s.length;e<i;e++)t.morphTargetDictionary[s[e]]=e}else console.warn(\\\\\\\"THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.\\\\\\\")}}function jt(t){const e=t.extensions&&t.extensions[Q.KHR_DRACO_MESH_COMPRESSION];let s;return s=e?\\\\\\\"draco:\\\\\\\"+e.bufferView+\\\\\\\":\\\\\\\"+e.indices+\\\\\\\":\\\\\\\"+Dt(e.attributes):t.indices+\\\\\\\":\\\\\\\"+Dt(t.attributes)+\\\\\\\":\\\\\\\"+t.mode,s}function Dt(t){let e=\\\\\\\"\\\\\\\";const s=Object.keys(t).sort();for(let i=0,r=s.length;i<r;i++)e+=s[i]+\\\\\\\":\\\\\\\"+t[s[i]]+\\\\\\\";\\\\\\\";return e}function Gt(t){switch(t){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error(\\\\\\\"THREE.GLTFLoader: Unsupported normalized accessor component type.\\\\\\\")}}class Wt{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new K,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.textureCache={},this.nodeNamesUsed={},\\\\\\\"undefined\\\\\\\"!=typeof createImageBitmap&&!1===/Firefox/.test(navigator.userAgent)?this.textureLoader=new f(this.options.manager):this.textureLoader=new q.a(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new l.a(this.options.manager),this.fileLoader.setResponseType(\\\\\\\"arraybuffer\\\\\\\"),\\\\\\\"use-credentials\\\\\\\"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const s=this,i=this.json,r=this.extensions;this.cache.removeAll(),this._invokeAll((function(t){return t._markDefs&&t._markDefs()})),Promise.all(this._invokeAll((function(t){return t.beforeRoot&&t.beforeRoot()}))).then((function(){return Promise.all([s.getDependencies(\\\\\\\"scene\\\\\\\"),s.getDependencies(\\\\\\\"animation\\\\\\\"),s.getDependencies(\\\\\\\"camera\\\\\\\")])})).then((function(e){const n={scene:e[0][i.scene||0],scenes:e[0],animations:e[1],cameras:e[2],asset:i.asset,parser:s,userData:{}};Vt(r,n,i),Ht(n,i),Promise.all(s._invokeAll((function(t){return t.afterRoot&&t.afterRoot(n)}))).then((function(){t(n)}))})).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],s=this.json.meshes||[];for(let s=0,i=e.length;s<i;s++){const i=e[s].joints;for(let e=0,s=i.length;e<s;e++)t[i[e]].isBone=!0}for(let e=0,i=t.length;e<i;e++){const i=t[e];void 0!==i.mesh&&(this._addNodeRef(this.meshCache,i.mesh),void 0!==i.skin&&(s[i.mesh].isSkinnedMesh=!0)),void 0!==i.camera&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(t,e){void 0!==e&&(void 0===t.refs[e]&&(t.refs[e]=t.uses[e]=0),t.refs[e]++)}_getNodeRef(t,e,s){if(t.refs[e]<=1)return s;const i=s.clone(),r=(t,e)=>{const s=this.associations.get(t);null!=s&&this.associations.set(e,s);for(const[s,i]of t.children.entries())r(i,e.children[s])};return r(s,i),i.name+=\\\\\\\"_instance_\\\\\\\"+t.uses[e]++,i}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let s=0;s<e.length;s++){const i=t(e[s]);if(i)return i}return null}_invokeAll(t){const e=Object.values(this.plugins);e.unshift(this);const s=[];for(let i=0;i<e.length;i++){const r=t(e[i]);r&&s.push(r)}return s}getDependency(t,e){const s=t+\\\\\\\":\\\\\\\"+e;let i=this.cache.get(s);if(!i){switch(t){case\\\\\\\"scene\\\\\\\":i=this.loadScene(e);break;case\\\\\\\"node\\\\\\\":i=this.loadNode(e);break;case\\\\\\\"mesh\\\\\\\":i=this._invokeOne((function(t){return t.loadMesh&&t.loadMesh(e)}));break;case\\\\\\\"accessor\\\\\\\":i=this.loadAccessor(e);break;case\\\\\\\"bufferView\\\\\\\":i=this._invokeOne((function(t){return t.loadBufferView&&t.loadBufferView(e)}));break;case\\\\\\\"buffer\\\\\\\":i=this.loadBuffer(e);break;case\\\\\\\"material\\\\\\\":i=this._invokeOne((function(t){return t.loadMaterial&&t.loadMaterial(e)}));break;case\\\\\\\"texture\\\\\\\":i=this._invokeOne((function(t){return t.loadTexture&&t.loadTexture(e)}));break;case\\\\\\\"skin\\\\\\\":i=this.loadSkin(e);break;case\\\\\\\"animation\\\\\\\":i=this.loadAnimation(e);break;case\\\\\\\"camera\\\\\\\":i=this.loadCamera(e);break;default:throw new Error(\\\\\\\"Unknown type: \\\\\\\"+t)}this.cache.add(s,i)}return i}getDependencies(t){let e=this.cache.get(t);if(!e){const s=this,i=this.json[t+(\\\\\\\"mesh\\\\\\\"===t?\\\\\\\"es\\\\\\\":\\\\\\\"s\\\\\\\")]||[];e=Promise.all(i.map((function(e,i){return s.getDependency(t,i)}))),this.cache.add(t,e)}return e}loadBuffer(t){const e=this.json.buffers[t],s=this.fileLoader;if(e.type&&\\\\\\\"arraybuffer\\\\\\\"!==e.type)throw new Error(\\\\\\\"THREE.GLTFLoader: \\\\\\\"+e.type+\\\\\\\" buffer type is not supported.\\\\\\\");if(void 0===e.uri&&0===t)return Promise.resolve(this.extensions[Q.KHR_BINARY_GLTF].body);const i=this.options;return new Promise((function(t,r){s.load(Ft(e.uri,i.path),t,void 0,(function(){r(new Error('THREE.GLTFLoader: Failed to load buffer \\\\\\\"'+e.uri+'\\\\\\\".'))}))}))}loadBufferView(t){const e=this.json.bufferViews[t];return this.getDependency(\\\\\\\"buffer\\\\\\\",e.buffer).then((function(t){const s=e.byteLength||0,i=e.byteOffset||0;return t.slice(i,i+s)}))}loadAccessor(t){const e=this,s=this.json,i=this.json.accessors[t];if(void 0===i.bufferView&&void 0===i.sparse)return Promise.resolve(null);const r=[];return void 0!==i.bufferView?r.push(this.getDependency(\\\\\\\"bufferView\\\\\\\",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency(\\\\\\\"bufferView\\\\\\\",i.sparse.indices.bufferView)),r.push(this.getDependency(\\\\\\\"bufferView\\\\\\\",i.sparse.values.bufferView))),Promise.all(r).then((function(t){const r=t[0],n=kt[i.type],o=zt[i.componentType],h=o.BYTES_PER_ELEMENT,u=h*n,c=i.byteOffset||0,l=void 0!==i.bufferView?s.bufferViews[i.bufferView].byteStride:void 0,d=!0===i.normalized;let p,m;if(l&&l!==u){const t=Math.floor(c/l),s=\\\\\\\"InterleavedBuffer:\\\\\\\"+i.bufferView+\\\\\\\":\\\\\\\"+i.componentType+\\\\\\\":\\\\\\\"+t+\\\\\\\":\\\\\\\"+i.count;let a=e.cache.get(s);a||(p=new o(r,t*l,i.count*l/h),a=new y.a(p,l/h),e.cache.add(s,a)),m=new g.a(a,n,c%l/h,d)}else p=null===r?new o(i.count*n):new o(r,c,i.count*n),m=new a.a(p,n,d);if(void 0!==i.sparse){const e=kt.SCALAR,s=zt[i.sparse.indices.componentType],h=i.sparse.indices.byteOffset||0,u=i.sparse.values.byteOffset||0,c=new s(t[1],h,i.sparse.count*e),l=new o(t[2],u,i.sparse.count*n);null!==r&&(m=new a.a(m.array.slice(),m.itemSize,m.normalized));for(let t=0,e=c.length;t<e;t++){const e=c[t];if(m.setX(e,l[t*n]),n>=2&&m.setY(e,l[t*n+1]),n>=3&&m.setZ(e,l[t*n+2]),n>=4&&m.setW(e,l[t*n+3]),n>=5)throw new Error(\\\\\\\"THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.\\\\\\\")}}return m}))}loadTexture(t){const e=this.json,s=this.options,i=e.textures[t],r=e.images[i.source];let n=this.textureLoader;if(r.uri){const t=s.manager.getHandler(r.uri);null!==t&&(n=t)}return this.loadTextureImage(t,r,n)}loadTextureImage(t,e,s){const i=this,r=this.json,n=this.options,a=r.textures[t],o=(e.uri||e.bufferView)+\\\\\\\":\\\\\\\"+a.sampler;if(this.textureCache[o])return this.textureCache[o];const u=self.URL||self.webkitURL;let c=e.uri||\\\\\\\"\\\\\\\",l=!1;if(void 0!==e.bufferView)c=i.getDependency(\\\\\\\"bufferView\\\\\\\",e.bufferView).then((function(t){l=!0;const s=new Blob([t],{type:e.mimeType});return c=u.createObjectURL(s),c}));else if(void 0===e.uri)throw new Error(\\\\\\\"THREE.GLTFLoader: Image \\\\\\\"+t+\\\\\\\" is missing URI and bufferView\\\\\\\");const d=Promise.resolve(c).then((function(t){return new Promise((function(e,i){let r=e;!0===s.isImageBitmapLoader&&(r=function(t){const s=new W.a(t);s.needsUpdate=!0,e(s)}),s.load(Ft(t,n.path),r,void 0,i)}))})).then((function(e){!0===l&&u.revokeObjectURL(c),e.flipY=!1,a.name&&(e.name=a.name);const s=(r.samplers||{})[a.sampler]||{};return e.magFilter=Rt[s.magFilter]||h.V,e.minFilter=Rt[s.minFilter]||h.Y,e.wrapS=It[s.wrapS]||h.wc,e.wrapT=It[s.wrapT]||h.wc,i.associations.set(e,{textures:t}),e})).catch((function(){return console.error(\\\\\\\"THREE.GLTFLoader: Couldn't load texture\\\\\\\",c),null}));return this.textureCache[o]=d,d}assignTexture(t,e,s){const i=this;return this.getDependency(\\\\\\\"texture\\\\\\\",s.index).then((function(r){if(void 0===s.texCoord||0==s.texCoord||\\\\\\\"aoMap\\\\\\\"===e&&1==s.texCoord||console.warn(\\\\\\\"THREE.GLTFLoader: Custom UV set \\\\\\\"+s.texCoord+\\\\\\\" for texture \\\\\\\"+e+\\\\\\\" not yet supported.\\\\\\\"),i.extensions[Q.KHR_TEXTURE_TRANSFORM]){const t=void 0!==s.extensions?s.extensions[Q.KHR_TEXTURE_TRANSFORM]:void 0;if(t){const e=i.associations.get(r);r=i.extensions[Q.KHR_TEXTURE_TRANSFORM].extendTexture(r,t),i.associations.set(r,e)}}return t[e]=r,r}))}assignFinalMaterial(t){const e=t.geometry;let s=t.material;const i=void 0===e.attributes.tangent,r=void 0!==e.attributes.color,n=void 0===e.attributes.normal;if(t.isPoints){const t=\\\\\\\"PointsMaterial:\\\\\\\"+s.uuid;let e=this.cache.get(t);e||(e=new C.a,T.a.prototype.copy.call(e,s),e.color.copy(s.color),e.map=s.map,e.sizeAttenuation=!1,this.cache.add(t,e)),s=e}else if(t.isLine){const t=\\\\\\\"LineBasicMaterial:\\\\\\\"+s.uuid;let e=this.cache.get(t);e||(e=new M.a,T.a.prototype.copy.call(e,s),e.color.copy(s.color),this.cache.add(t,e)),s=e}if(i||r||n){let t=\\\\\\\"ClonedMaterial:\\\\\\\"+s.uuid+\\\\\\\":\\\\\\\";s.isGLTFSpecularGlossinessMaterial&&(t+=\\\\\\\"specular-glossiness:\\\\\\\"),i&&(t+=\\\\\\\"derivative-tangents:\\\\\\\"),r&&(t+=\\\\\\\"vertex-colors:\\\\\\\"),n&&(t+=\\\\\\\"flat-shading:\\\\\\\");let e=this.cache.get(t);e||(e=s.clone(),r&&(e.vertexColors=!0),n&&(e.flatShading=!0),i&&(e.normalScale&&(e.normalScale.y*=-1),e.clearcoatNormalScale&&(e.clearcoatNormalScale.y*=-1)),this.cache.add(t,e),this.associations.set(e,this.associations.get(s))),s=e}s.aoMap&&void 0===e.attributes.uv2&&void 0!==e.attributes.uv&&e.setAttribute(\\\\\\\"uv2\\\\\\\",e.attributes.uv),t.material=s}getMaterialType(){return I.a}loadMaterial(t){const e=this,s=this.json,i=this.extensions,r=s.materials[t];let n;const a={},o=r.extensions||{},c=[];if(o[Q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const t=i[Q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];n=t.getMaterialType(),c.push(t.extendParams(a,r,e))}else if(o[Q.KHR_MATERIALS_UNLIT]){const t=i[Q.KHR_MATERIALS_UNLIT];n=t.getMaterialType(),c.push(t.extendParams(a,r,e))}else{const s=r.pbrMetallicRoughness||{};if(a.color=new u.a(1,1,1),a.opacity=1,Array.isArray(s.baseColorFactor)){const t=s.baseColorFactor;a.color.fromArray(t),a.opacity=t[3]}void 0!==s.baseColorTexture&&c.push(e.assignTexture(a,\\\\\\\"map\\\\\\\",s.baseColorTexture)),a.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,a.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(c.push(e.assignTexture(a,\\\\\\\"metalnessMap\\\\\\\",s.metallicRoughnessTexture)),c.push(e.assignTexture(a,\\\\\\\"roughnessMap\\\\\\\",s.metallicRoughnessTexture))),n=this._invokeOne((function(e){return e.getMaterialType&&e.getMaterialType(t)})),c.push(Promise.all(this._invokeAll((function(e){return e.extendMaterialParams&&e.extendMaterialParams(t,a)}))))}!0===r.doubleSided&&(a.side=h.z);const l=r.alphaMode||Bt;if(l===Ct?(a.transparent=!0,a.depthWrite=!1):(a.format=h.ic,a.transparent=!1,l===Nt&&(a.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&n!==z.a&&(c.push(e.assignTexture(a,\\\\\\\"normalMap\\\\\\\",r.normalTexture)),a.normalScale=new X.a(1,1),void 0!==r.normalTexture.scale)){const t=r.normalTexture.scale;a.normalScale.set(t,t)}return void 0!==r.occlusionTexture&&n!==z.a&&(c.push(e.assignTexture(a,\\\\\\\"aoMap\\\\\\\",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(a.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&n!==z.a&&(a.emissive=(new u.a).fromArray(r.emissiveFactor)),void 0!==r.emissiveTexture&&n!==z.a&&c.push(e.assignTexture(a,\\\\\\\"emissiveMap\\\\\\\",r.emissiveTexture)),Promise.all(c).then((function(){let s;return s=n===ft?i[Q.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(a):new n(a),r.name&&(s.name=r.name),s.map&&(s.map.encoding=h.ld),s.emissiveMap&&(s.emissiveMap.encoding=h.ld),Ht(s,r),e.associations.set(s,{materials:t}),r.extensions&&Vt(i,s,r),s}))}createUniqueName(t){const e=F.a.sanitizeNodeName(t||\\\\\\\"\\\\\\\");let s=e;for(let t=1;this.nodeNamesUsed[s];++t)s=e+\\\\\\\"_\\\\\\\"+t;return this.nodeNamesUsed[s]=!0,s}loadGeometries(t){const e=this,s=this.extensions,i=this.primitiveCache;function r(t){return s[Q.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(t,e).then((function(s){return Xt(s,t,e)}))}const n=[];for(let s=0,a=t.length;s<a;s++){const a=t[s],h=jt(a),u=i[h];if(u)n.push(u.promise);else{let t;t=a.extensions&&a.extensions[Q.KHR_DRACO_MESH_COMPRESSION]?r(a):Xt(new o.a,a,e),i[h]={primitive:a,promise:t},n.push(t)}}return Promise.all(n)}loadMesh(t){const e=this,s=this.json,i=this.extensions,r=s.meshes[t],n=r.primitives,a=[];for(let t=0,e=n.length;t<e;t++){const e=void 0===n[t].material?(void 0===(o=this.cache).DefaultMaterial&&(o.DefaultMaterial=new I.a({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:h.H})),o.DefaultMaterial):this.getDependency(\\\\\\\"material\\\\\\\",n[t].material);a.push(e)}var o;return a.push(e.loadGeometries(n)),Promise.all(a).then((function(s){const a=s.slice(0,s.length-1),o=s[s.length-1],u=[];for(let s=0,c=o.length;s<c;s++){const c=o[s],l=n[s];let d;const p=a[s];if(l.mode===St||l.mode===At||l.mode===Et||void 0===l.mode)d=!0===r.isSkinnedMesh?new j.a(c,p):new E.a(c,p),!0!==d.isSkinnedMesh||d.geometry.attributes.skinWeight.normalized||d.normalizeSkinWeights(),l.mode===At?d.geometry=Yt(d.geometry,h.Wc):l.mode===Et&&(d.geometry=Yt(d.geometry,h.Vc));else if(l.mode===vt)d=new v.a(c,p);else if(l.mode===Tt)d=new b.a(c,p);else if(l.mode===_t)d=new w.a(c,p);else{if(l.mode!==wt)throw new Error(\\\\\\\"THREE.GLTFLoader: Primitive mode unsupported: \\\\\\\"+l.mode);d=new N.a(c,p)}Object.keys(d.geometry.morphAttributes).length>0&&Ut(d,r),d.name=e.createUniqueName(r.name||\\\\\\\"mesh_\\\\\\\"+t),Ht(d,r),l.extensions&&Vt(i,d,l),e.assignFinalMaterial(d),u.push(d)}for(let s=0,i=u.length;s<i;s++)e.associations.set(u[s],{meshes:t,primitives:s});if(1===u.length)return u[0];const c=new d.a;e.associations.set(c,{meshes:t});for(let t=0,e=u.length;t<e;t++)c.add(u[t]);return c}))}loadCamera(t){let e;const s=this.json.cameras[t],i=s[s.type];if(i)return\\\\\\\"perspective\\\\\\\"===s.type?e=new P.a(S.k(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):\\\\\\\"orthographic\\\\\\\"===s.type&&(e=new O.a(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),s.name&&(e.name=this.createUniqueName(s.name)),Ht(e,s),Promise.resolve(e);console.warn(\\\\\\\"THREE.GLTFLoader: Missing camera parameters.\\\\\\\")}loadSkin(t){const e=this.json.skins[t],s={joints:e.joints};return void 0===e.inverseBindMatrices?Promise.resolve(s):this.getDependency(\\\\\\\"accessor\\\\\\\",e.inverseBindMatrices).then((function(t){return s.inverseBindMatrices=t,s}))}loadAnimation(t){const e=this.json.animations[t],s=[],r=[],n=[],a=[],o=[];for(let t=0,i=e.channels.length;t<i;t++){const i=e.channels[t],h=e.samplers[i.sampler],u=i.target,c=void 0!==u.node?u.node:u.id,l=void 0!==e.parameters?e.parameters[h.input]:h.input,d=void 0!==e.parameters?e.parameters[h.output]:h.output;s.push(this.getDependency(\\\\\\\"node\\\\\\\",c)),r.push(this.getDependency(\\\\\\\"accessor\\\\\\\",l)),n.push(this.getDependency(\\\\\\\"accessor\\\\\\\",d)),a.push(h),o.push(u)}return Promise.all([Promise.all(s),Promise.all(r),Promise.all(n),Promise.all(a),Promise.all(o)]).then((function(s){const r=s[0],n=s[1],a=s[2],o=s[3],u=s[4],c=[];for(let t=0,e=r.length;t<e;t++){const e=r[t],s=n[t],i=a[t],l=o[t],d=u[t];if(void 0===e)continue;let p;switch(e.updateMatrix(),e.matrixAutoUpdate=!0,Ot[d.path]){case Ot.weights:p=k.a;break;case Ot.rotation:p=H.a;break;case Ot.position:case Ot.scale:default:p=Z.a}const m=e.name?e.name:e.uuid,f=void 0!==l.interpolation?Pt[l.interpolation]:h.P,y=[];Ot[d.path]===Ot.weights?e.traverse((function(t){!0===t.isMesh&&t.morphTargetInfluences&&y.push(t.name?t.name:t.uuid)})):y.push(m);let g=i.array;if(i.normalized){const t=Gt(g.constructor),e=new Float32Array(g.length);for(let s=0,i=g.length;s<i;s++)e[s]=g[s]*t;g=e}for(let t=0,e=y.length;t<e;t++){const e=new p(y[t]+\\\\\\\".\\\\\\\"+Ot[d.path],s.array,g,f);\\\\\\\"CUBICSPLINE\\\\\\\"===l.interpolation&&(e.createInterpolant=function(t){return new(this instanceof H.a?Mt:xt)(this.times,this.values,this.getValueSize()/3,t)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),c.push(e)}}const l=e.name?e.name:\\\\\\\"animation_\\\\\\\"+t;return new i.a(l,void 0,c)}))}createNodeMesh(t){const e=this.json,s=this,i=e.nodes[t];return void 0===i.mesh?null:s.getDependency(\\\\\\\"mesh\\\\\\\",i.mesh).then((function(t){const e=s._getNodeRef(s.meshCache,i.mesh,t);return void 0!==i.weights&&e.traverse((function(t){if(t.isMesh)for(let e=0,s=i.weights.length;e<s;e++)t.morphTargetInfluences[e]=i.weights[e]})),e}))}loadNode(t){const e=this.json,s=this.extensions,i=this,n=e.nodes[t],a=n.name?i.createUniqueName(n.name):\\\\\\\"\\\\\\\";return function(){const e=[],s=i._invokeOne((function(e){return e.createNodeMesh&&e.createNodeMesh(t)}));return s&&e.push(s),void 0!==n.camera&&e.push(i.getDependency(\\\\\\\"camera\\\\\\\",n.camera).then((function(t){return i._getNodeRef(i.cameraCache,n.camera,t)}))),i._invokeAll((function(e){return e.createNodeAttachment&&e.createNodeAttachment(t)})).forEach((function(t){e.push(t)})),Promise.all(e)}().then((function(e){let o;if(o=!0===n.isBone?new r.a:e.length>1?new d.a:1===e.length?e[0]:new L.a,o!==e[0])for(let t=0,s=e.length;t<s;t++)o.add(e[t]);if(n.name&&(o.userData.name=n.name,o.name=a),Ht(o,n),n.extensions&&Vt(s,o,n),void 0!==n.matrix){const t=new A.a;t.fromArray(n.matrix),o.applyMatrix4(t)}else void 0!==n.translation&&o.position.fromArray(n.translation),void 0!==n.rotation&&o.quaternion.fromArray(n.rotation),void 0!==n.scale&&o.scale.fromArray(n.scale);return i.associations.has(o)||i.associations.set(o,{}),i.associations.get(o).nodes=t,o}))}loadScene(t){const e=this.json,s=this.extensions,i=this.json.scenes[t],r=this,n=new d.a;i.name&&(n.name=r.createUniqueName(i.name)),Ht(n,i),i.extensions&&Vt(s,n,i);const a=i.nodes||[],o=[];for(let t=0,s=a.length;t<s;t++)o.push(qt(a[t],n,e,r));return Promise.all(o).then((function(){return r.associations=(t=>{const e=new Map;for(const[t,s]of r.associations)(t instanceof T.a||t instanceof W.a)&&e.set(t,s);return t.traverse((t=>{const s=r.associations.get(t);null!=s&&e.set(t,s)})),e})(n),n}))}}function qt(t,e,s,i){const r=s.nodes[t];return i.getDependency(\\\\\\\"node\\\\\\\",t).then((function(t){if(void 0===r.skin)return t;let e;return i.getDependency(\\\\\\\"skin\\\\\\\",r.skin).then((function(t){e=t;const s=[];for(let t=0,r=e.joints.length;t<r;t++)s.push(i.getDependency(\\\\\\\"node\\\\\\\",e.joints[t]));return Promise.all(s)})).then((function(s){return t.traverse((function(t){if(!t.isMesh)return;const i=[],r=[];for(let t=0,n=s.length;t<n;t++){const n=s[t];if(n){i.push(n);const s=new A.a;void 0!==e.inverseBindMatrices&&s.fromArray(e.inverseBindMatrices.array,16*t),r.push(s)}else console.warn('THREE.GLTFLoader: Joint \\\\\\\"%s\\\\\\\" could not be found.',e.joints[t])}t.bind(new U.a(i,r),t.matrixWorld)})),t}))})).then((function(t){e.add(t);const n=[];if(r.children){const e=r.children;for(let r=0,a=e.length;r<a;r++){const a=e[r];n.push(qt(a,t,s,i))}}return Promise.all(n)}))}function Xt(t,e,s){const i=e.attributes,r=[];function a(e,i){return s.getDependency(\\\\\\\"accessor\\\\\\\",e).then((function(e){t.setAttribute(i,e)}))}for(const e in i){const s=Lt[e]||e.toLowerCase();s in t.attributes||r.push(a(i[e],s))}if(void 0!==e.indices&&!t.index){const i=s.getDependency(\\\\\\\"accessor\\\\\\\",e.indices).then((function(e){t.setIndex(e)}));r.push(i)}return Ht(t,e),function(t,e,s){const i=e.attributes,r=new n.a;if(void 0===i.POSITION)return;{const t=s.json.accessors[i.POSITION],e=t.min,n=t.max;if(void 0===e||void 0===n)return void console.warn(\\\\\\\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\\\\\\\");if(r.set(new Y.a(e[0],e[1],e[2]),new Y.a(n[0],n[1],n[2])),t.normalized){const e=Gt(zt[t.componentType]);r.min.multiplyScalar(e),r.max.multiplyScalar(e)}}const a=e.targets;if(void 0!==a){const t=new Y.a,e=new Y.a;for(let i=0,r=a.length;i<r;i++){const r=a[i];if(void 0!==r.POSITION){const i=s.json.accessors[r.POSITION],n=i.min,a=i.max;if(void 0!==n&&void 0!==a){if(e.setX(Math.max(Math.abs(n[0]),Math.abs(a[0]))),e.setY(Math.max(Math.abs(n[1]),Math.abs(a[1]))),e.setZ(Math.max(Math.abs(n[2]),Math.abs(a[2]))),i.normalized){const t=Gt(zt[i.componentType]);e.multiplyScalar(t)}t.max(e)}else console.warn(\\\\\\\"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.\\\\\\\")}}r.expandByVector(t)}t.boundingBox=r;const o=new D.a;r.getCenter(o.center),o.radius=r.min.distanceTo(r.max)/2,t.boundingSphere=o}(t,e,s),Promise.all(r).then((function(){return void 0!==e.targets?function(t,e,s){let i=!1,r=!1;for(let t=0,s=e.length;t<s;t++){const s=e[t];if(void 0!==s.POSITION&&(i=!0),void 0!==s.NORMAL&&(r=!0),i&&r)break}if(!i&&!r)return Promise.resolve(t);const n=[],a=[];for(let o=0,h=e.length;o<h;o++){const h=e[o];if(i){const e=void 0!==h.POSITION?s.getDependency(\\\\\\\"accessor\\\\\\\",h.POSITION):t.attributes.position;n.push(e)}if(r){const e=void 0!==h.NORMAL?s.getDependency(\\\\\\\"accessor\\\\\\\",h.NORMAL):t.attributes.normal;a.push(e)}}return Promise.all([Promise.all(n),Promise.all(a)]).then((function(e){const s=e[0],n=e[1];return i&&(t.morphAttributes.position=s),r&&(t.morphAttributes.normal=n),t.morphTargetsRelative=!0,t}))}(t,e.targets,s):t}))}function Yt(t,e){let s=t.getIndex();if(null===s){const e=[],i=t.getAttribute(\\\\\\\"position\\\\\\\");if(void 0===i)return console.error(\\\\\\\"THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.\\\\\\\"),t;for(let t=0;t<i.count;t++)e.push(t);t.setIndex(e),s=t.getIndex()}const i=s.count-2,r=[];if(e===h.Vc)for(let t=1;t<=i;t++)r.push(s.getX(0)),r.push(s.getX(t)),r.push(s.getX(t+1));else for(let t=0;t<i;t++)t%2==0?(r.push(s.getX(t)),r.push(s.getX(t+1)),r.push(s.getX(t+2))):(r.push(s.getX(t+2)),r.push(s.getX(t+1)),r.push(s.getX(t)));r.length/3!==i&&console.error(\\\\\\\"THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.\\\\\\\");const n=t.clone();return n.setIndex(r),n}}]);void 0===POLY&&console.error(\\\\\\\"esm-webpack-plugin: nothing exported!\\\\\\\");const _POLY$GLTFLoader=POLY.GLTFLoader;export{_POLY$GLTFLoader as GLTFLoader};\\n//# sourceMappingURL=GLTFLoader.js.map\"","status":200,"headers":{"content-type":"application/javascript","content-length":"220458"}},"type":2,"external":true,"timestamp":1723918418207},{"data":{"url":"blob:https://ipfs.arkivo.art/2a9ef962-28e8-4344-ae1d-f5c14bfb956c","body":"\"/*! For license information please see all.js.LICENSE.txt */\\nvar POLY=function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){\\\\\\\"undefined\\\\\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\\\\\\\"Module\\\\\\\"}),Object.defineProperty(t,\\\\\\\"__esModule\\\\\\\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\\\\\\\"object\\\\\\\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\\\\\\\"default\\\\\\\",{enumerable:!0,value:t}),2&e&&\\\\\\\"string\\\\\\\"!=typeof t)for(var s in t)n.d(i,s,function(e){return t[e]}.bind(null,s));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\\\\\\\"a\\\\\\\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\\\\\\\"https://unpkg.com/@polygonjs/polygonjs@1.1.204/dist/\\\\\\\",n(n.s=216)}([function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(3),s=n(8);class r{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\\\\\\\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\\\\\\\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\"),this.applyQuaternion(a.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(a.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,s=t.elements,r=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*r,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*r,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*r,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,s=t.x,r=t.y,o=t.z,a=t.w,l=a*e+r*i-o*n,c=a*n+o*e-s*i,h=a*i+s*n-r*e,u=-s*e-r*n-o*i;return this.x=l*a+u*-s+c*-o-h*-r,this.y=c*a+u*-r+h*-s-l*-o,this.z=h*a+u*-o+l*-r-c*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\\\\\\\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,s=t.z,r=e.x,o=e.y,a=e.z;return this.x=i*a-s*o,this.y=s*r-n*a,this.z=n*o-i*r,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return o.copy(this).projectOnVector(t),this.sub(o)}reflect(t){return this.sub(o.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(i.d(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\\\\\\\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}r.prototype.isVector3=!0;const o=new r,a=new s.a},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"hb\\\\\\\",(function(){return i})),n.d(e,\\\\\\\"Tc\\\\\\\",(function(){return s})),n.d(e,\\\\\\\"u\\\\\\\",(function(){return r})),n.d(e,\\\\\\\"s\\\\\\\",(function(){return o})),n.d(e,\\\\\\\"t\\\\\\\",(function(){return a})),n.d(e,\\\\\\\"k\\\\\\\",(function(){return l})),n.d(e,\\\\\\\"Fb\\\\\\\",(function(){return c})),n.d(e,\\\\\\\"Gb\\\\\\\",(function(){return h})),n.d(e,\\\\\\\"gd\\\\\\\",(function(){return u})),n.d(e,\\\\\\\"H\\\\\\\",(function(){return d})),n.d(e,\\\\\\\"i\\\\\\\",(function(){return p})),n.d(e,\\\\\\\"z\\\\\\\",(function(){return _})),n.d(e,\\\\\\\"F\\\\\\\",(function(){return m})),n.d(e,\\\\\\\"ub\\\\\\\",(function(){return f})),n.d(e,\\\\\\\"xb\\\\\\\",(function(){return g})),n.d(e,\\\\\\\"e\\\\\\\",(function(){return v})),n.d(e,\\\\\\\"Sc\\\\\\\",(function(){return y})),n.d(e,\\\\\\\"mb\\\\\\\",(function(){return x})),n.d(e,\\\\\\\"v\\\\\\\",(function(){return b})),n.d(e,\\\\\\\"b\\\\\\\",(function(){return w})),n.d(e,\\\\\\\"Rc\\\\\\\",(function(){return T})),n.d(e,\\\\\\\"xc\\\\\\\",(function(){return A})),n.d(e,\\\\\\\"jb\\\\\\\",(function(){return M})),n.d(e,\\\\\\\"ib\\\\\\\",(function(){return E})),n.d(e,\\\\\\\"jd\\\\\\\",(function(){return S})),n.d(e,\\\\\\\"Ab\\\\\\\",(function(){return C})),n.d(e,\\\\\\\"Pc\\\\\\\",(function(){return N})),n.d(e,\\\\\\\"Eb\\\\\\\",(function(){return L})),n.d(e,\\\\\\\"Nc\\\\\\\",(function(){return O})),n.d(e,\\\\\\\"Db\\\\\\\",(function(){return P})),n.d(e,\\\\\\\"A\\\\\\\",(function(){return R})),n.d(e,\\\\\\\"Bb\\\\\\\",(function(){return I})),n.d(e,\\\\\\\"B\\\\\\\",(function(){return F})),n.d(e,\\\\\\\"Cb\\\\\\\",(function(){return D})),n.d(e,\\\\\\\"Oc\\\\\\\",(function(){return B})),n.d(e,\\\\\\\"tb\\\\\\\",(function(){return z})),n.d(e,\\\\\\\"g\\\\\\\",(function(){return k})),n.d(e,\\\\\\\"S\\\\\\\",(function(){return U})),n.d(e,\\\\\\\"T\\\\\\\",(function(){return G})),n.d(e,\\\\\\\"C\\\\\\\",(function(){return V})),n.d(e,\\\\\\\"L\\\\\\\",(function(){return H})),n.d(e,\\\\\\\"K\\\\\\\",(function(){return j})),n.d(e,\\\\\\\"yb\\\\\\\",(function(){return W})),n.d(e,\\\\\\\"nb\\\\\\\",(function(){return q})),n.d(e,\\\\\\\"lb\\\\\\\",(function(){return X})),n.d(e,\\\\\\\"c\\\\\\\",(function(){return Y})),n.d(e,\\\\\\\"vb\\\\\\\",(function(){return $})),n.d(e,\\\\\\\"ab\\\\\\\",(function(){return J})),n.d(e,\\\\\\\"vc\\\\\\\",(function(){return Z})),n.d(e,\\\\\\\"m\\\\\\\",(function(){return K})),n.d(e,\\\\\\\"a\\\\\\\",(function(){return Q})),n.d(e,\\\\\\\"w\\\\\\\",(function(){return tt})),n.d(e,\\\\\\\"Yc\\\\\\\",(function(){return et})),n.d(e,\\\\\\\"o\\\\\\\",(function(){return nt})),n.d(e,\\\\\\\"p\\\\\\\",(function(){return it})),n.d(e,\\\\\\\"D\\\\\\\",(function(){return st})),n.d(e,\\\\\\\"E\\\\\\\",(function(){return rt})),n.d(e,\\\\\\\"q\\\\\\\",(function(){return ot})),n.d(e,\\\\\\\"r\\\\\\\",(function(){return at})),n.d(e,\\\\\\\"wc\\\\\\\",(function(){return lt})),n.d(e,\\\\\\\"n\\\\\\\",(function(){return ct})),n.d(e,\\\\\\\"kb\\\\\\\",(function(){return ht})),n.d(e,\\\\\\\"ob\\\\\\\",(function(){return ut})),n.d(e,\\\\\\\"sb\\\\\\\",(function(){return dt})),n.d(e,\\\\\\\"qb\\\\\\\",(function(){return pt})),n.d(e,\\\\\\\"rb\\\\\\\",(function(){return _t})),n.d(e,\\\\\\\"pb\\\\\\\",(function(){return mt})),n.d(e,\\\\\\\"V\\\\\\\",(function(){return ft})),n.d(e,\\\\\\\"Z\\\\\\\",(function(){return gt})),n.d(e,\\\\\\\"X\\\\\\\",(function(){return vt})),n.d(e,\\\\\\\"Y\\\\\\\",(function(){return yt})),n.d(e,\\\\\\\"W\\\\\\\",(function(){return xt})),n.d(e,\\\\\\\"Zc\\\\\\\",(function(){return bt})),n.d(e,\\\\\\\"l\\\\\\\",(function(){return wt})),n.d(e,\\\\\\\"Mc\\\\\\\",(function(){return Tt})),n.d(e,\\\\\\\"fd\\\\\\\",(function(){return At})),n.d(e,\\\\\\\"N\\\\\\\",(function(){return Mt})),n.d(e,\\\\\\\"bd\\\\\\\",(function(){return Et})),n.d(e,\\\\\\\"G\\\\\\\",(function(){return St})),n.d(e,\\\\\\\"M\\\\\\\",(function(){return Ct})),n.d(e,\\\\\\\"cd\\\\\\\",(function(){return Nt})),n.d(e,\\\\\\\"dd\\\\\\\",(function(){return Lt})),n.d(e,\\\\\\\"ed\\\\\\\",(function(){return Ot})),n.d(e,\\\\\\\"ad\\\\\\\",(function(){return Pt})),n.d(e,\\\\\\\"f\\\\\\\",(function(){return Rt})),n.d(e,\\\\\\\"ic\\\\\\\",(function(){return It})),n.d(e,\\\\\\\"Ib\\\\\\\",(function(){return Ft})),n.d(e,\\\\\\\"gb\\\\\\\",(function(){return Dt})),n.d(e,\\\\\\\"fb\\\\\\\",(function(){return Bt})),n.d(e,\\\\\\\"hc\\\\\\\",(function(){return zt})),n.d(e,\\\\\\\"x\\\\\\\",(function(){return kt})),n.d(e,\\\\\\\"y\\\\\\\",(function(){return Ut})),n.d(e,\\\\\\\"tc\\\\\\\",(function(){return Gt})),n.d(e,\\\\\\\"uc\\\\\\\",(function(){return Vt})),n.d(e,\\\\\\\"rc\\\\\\\",(function(){return Ht})),n.d(e,\\\\\\\"sc\\\\\\\",(function(){return jt})),n.d(e,\\\\\\\"jc\\\\\\\",(function(){return Wt})),n.d(e,\\\\\\\"Jb\\\\\\\",(function(){return qt})),n.d(e,\\\\\\\"qc\\\\\\\",(function(){return Xt})),n.d(e,\\\\\\\"cc\\\\\\\",(function(){return Yt})),n.d(e,\\\\\\\"dc\\\\\\\",(function(){return $t})),n.d(e,\\\\\\\"ec\\\\\\\",(function(){return Jt})),n.d(e,\\\\\\\"pc\\\\\\\",(function(){return Zt})),n.d(e,\\\\\\\"oc\\\\\\\",(function(){return Kt})),n.d(e,\\\\\\\"bc\\\\\\\",(function(){return Qt})),n.d(e,\\\\\\\"ac\\\\\\\",(function(){return te})),n.d(e,\\\\\\\"mc\\\\\\\",(function(){return ee})),n.d(e,\\\\\\\"nc\\\\\\\",(function(){return ne})),n.d(e,\\\\\\\"Zb\\\\\\\",(function(){return ie})),n.d(e,\\\\\\\"Qb\\\\\\\",(function(){return se})),n.d(e,\\\\\\\"Rb\\\\\\\",(function(){return re})),n.d(e,\\\\\\\"Sb\\\\\\\",(function(){return oe})),n.d(e,\\\\\\\"Tb\\\\\\\",(function(){return ae})),n.d(e,\\\\\\\"Ub\\\\\\\",(function(){return le})),n.d(e,\\\\\\\"Vb\\\\\\\",(function(){return ce})),n.d(e,\\\\\\\"Wb\\\\\\\",(function(){return he})),n.d(e,\\\\\\\"Xb\\\\\\\",(function(){return ue})),n.d(e,\\\\\\\"Lb\\\\\\\",(function(){return de})),n.d(e,\\\\\\\"Mb\\\\\\\",(function(){return pe})),n.d(e,\\\\\\\"Nb\\\\\\\",(function(){return _e})),n.d(e,\\\\\\\"Kb\\\\\\\",(function(){return me})),n.d(e,\\\\\\\"Ob\\\\\\\",(function(){return fe})),n.d(e,\\\\\\\"Pb\\\\\\\",(function(){return ge})),n.d(e,\\\\\\\"Yb\\\\\\\",(function(){return ve})),n.d(e,\\\\\\\"Ec\\\\\\\",(function(){return ye})),n.d(e,\\\\\\\"Fc\\\\\\\",(function(){return xe})),n.d(e,\\\\\\\"Gc\\\\\\\",(function(){return be})),n.d(e,\\\\\\\"Hc\\\\\\\",(function(){return we})),n.d(e,\\\\\\\"Ic\\\\\\\",(function(){return Te})),n.d(e,\\\\\\\"Jc\\\\\\\",(function(){return Ae})),n.d(e,\\\\\\\"Kc\\\\\\\",(function(){return Me})),n.d(e,\\\\\\\"Lc\\\\\\\",(function(){return Ee})),n.d(e,\\\\\\\"zc\\\\\\\",(function(){return Se})),n.d(e,\\\\\\\"Ac\\\\\\\",(function(){return Ce})),n.d(e,\\\\\\\"Bc\\\\\\\",(function(){return Ne})),n.d(e,\\\\\\\"yc\\\\\\\",(function(){return Le})),n.d(e,\\\\\\\"Cc\\\\\\\",(function(){return Oe})),n.d(e,\\\\\\\"Dc\\\\\\\",(function(){return Pe})),n.d(e,\\\\\\\"cb\\\\\\\",(function(){return Re})),n.d(e,\\\\\\\"eb\\\\\\\",(function(){return Ie})),n.d(e,\\\\\\\"db\\\\\\\",(function(){return Fe})),n.d(e,\\\\\\\"O\\\\\\\",(function(){return De})),n.d(e,\\\\\\\"P\\\\\\\",(function(){return Be})),n.d(e,\\\\\\\"Q\\\\\\\",(function(){return ze})),n.d(e,\\\\\\\"id\\\\\\\",(function(){return ke})),n.d(e,\\\\\\\"kd\\\\\\\",(function(){return Ue})),n.d(e,\\\\\\\"hd\\\\\\\",(function(){return Ge})),n.d(e,\\\\\\\"wb\\\\\\\",(function(){return Ve})),n.d(e,\\\\\\\"d\\\\\\\",(function(){return He})),n.d(e,\\\\\\\"Xc\\\\\\\",(function(){return je})),n.d(e,\\\\\\\"Wc\\\\\\\",(function(){return We})),n.d(e,\\\\\\\"Vc\\\\\\\",(function(){return qe})),n.d(e,\\\\\\\"U\\\\\\\",(function(){return Xe})),n.d(e,\\\\\\\"ld\\\\\\\",(function(){return Ye})),n.d(e,\\\\\\\"J\\\\\\\",(function(){return $e})),n.d(e,\\\\\\\"gc\\\\\\\",(function(){return Je})),n.d(e,\\\\\\\"bb\\\\\\\",(function(){return Ze})),n.d(e,\\\\\\\"lc\\\\\\\",(function(){return Ke})),n.d(e,\\\\\\\"kc\\\\\\\",(function(){return Qe})),n.d(e,\\\\\\\"fc\\\\\\\",(function(){return tn})),n.d(e,\\\\\\\"j\\\\\\\",(function(){return en})),n.d(e,\\\\\\\"Hb\\\\\\\",(function(){return nn})),n.d(e,\\\\\\\"Uc\\\\\\\",(function(){return sn})),n.d(e,\\\\\\\"zb\\\\\\\",(function(){return rn})),n.d(e,\\\\\\\"R\\\\\\\",(function(){return on})),n.d(e,\\\\\\\"h\\\\\\\",(function(){return an})),n.d(e,\\\\\\\"Qc\\\\\\\",(function(){return ln})),n.d(e,\\\\\\\"I\\\\\\\",(function(){return cn}));const i={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},s={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},r=0,o=1,a=2,l=0,c=1,h=2,u=3,d=0,p=1,_=2,m=1,f=0,g=1,v=2,y=3,x=4,b=5,w=100,T=101,A=102,M=103,E=104,S=200,C=201,N=202,L=203,O=204,P=205,R=206,I=207,F=208,D=209,B=210,z=0,k=1,U=2,G=3,V=4,H=5,j=6,W=7,q=0,X=1,Y=2,$=0,J=1,Z=2,K=3,Q=4,tt=5,et=300,nt=301,it=302,st=303,rt=304,ot=306,at=307,lt=1e3,ct=1001,ht=1002,ut=1003,dt=1004,pt=1004,_t=1005,mt=1005,ft=1006,gt=1007,vt=1007,yt=1008,xt=1008,bt=1009,wt=1010,Tt=1011,At=1012,Mt=1013,Et=1014,St=1015,Ct=1016,Nt=1017,Lt=1018,Ot=1019,Pt=1020,Rt=1021,It=1022,Ft=1023,Dt=1024,Bt=1025,zt=Ft,kt=1026,Ut=1027,Gt=1028,Vt=1029,Ht=1030,jt=1031,Wt=1032,qt=1033,Xt=33776,Yt=33777,$t=33778,Jt=33779,Zt=35840,Kt=35841,Qt=35842,te=35843,ee=36196,ne=37492,ie=37496,se=37808,re=37809,oe=37810,ae=37811,le=37812,ce=37813,he=37814,ue=37815,de=37816,pe=37817,_e=37818,me=37819,fe=37820,ge=37821,ve=36492,ye=37840,xe=37841,be=37842,we=37843,Te=37844,Ae=37845,Me=37846,Ee=37847,Se=37848,Ce=37849,Ne=37850,Le=37851,Oe=37852,Pe=37853,Re=2200,Ie=2201,Fe=2202,De=2300,Be=2301,ze=2302,ke=2400,Ue=2401,Ge=2402,Ve=2500,He=2501,je=0,We=1,qe=2,Xe=3e3,Ye=3001,$e=3007,Je=3002,Ze=3003,Ke=3004,Qe=3005,tn=3006,en=3200,nn=3201,sn=0,rn=1,on=7680,an=519,ln=35044,cn=\\\\\\\"300 es\\\\\\\"},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\\\\\\\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,r=this.y-t.y;return this.x=s*n-r*i+t.x,this.y=s*i+r*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}i.prototype.isVector2=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i})),n.d(e,\\\\\\\"b\\\\\\\",(function(){return s})),n.d(e,\\\\\\\"h\\\\\\\",(function(){return a})),n.d(e,\\\\\\\"d\\\\\\\",(function(){return l})),n.d(e,\\\\\\\"f\\\\\\\",(function(){return c})),n.d(e,\\\\\\\"j\\\\\\\",(function(){return h})),n.d(e,\\\\\\\"e\\\\\\\",(function(){return u})),n.d(e,\\\\\\\"k\\\\\\\",(function(){return d})),n.d(e,\\\\\\\"i\\\\\\\",(function(){return p})),n.d(e,\\\\\\\"c\\\\\\\",(function(){return _})),n.d(e,\\\\\\\"g\\\\\\\",(function(){return m}));const i=Math.PI/180,s=180/Math.PI,r=[];for(let t=0;t<256;t++)r[t]=(t<16?\\\\\\\"0\\\\\\\":\\\\\\\"\\\\\\\")+t.toString(16);const o=\\\\\\\"undefined\\\\\\\"!=typeof crypto&&\\\\\\\"randomUUID\\\\\\\"in crypto;function a(){if(o)return crypto.randomUUID().toUpperCase();const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(r[255&t]+r[t>>8&255]+r[t>>16&255]+r[t>>24&255]+\\\\\\\"-\\\\\\\"+r[255&e]+r[e>>8&255]+\\\\\\\"-\\\\\\\"+r[e>>16&15|64]+r[e>>24&255]+\\\\\\\"-\\\\\\\"+r[63&n|128]+r[n>>8&255]+\\\\\\\"-\\\\\\\"+r[n>>16&255]+r[n>>24&255]+r[255&i]+r[i>>8&255]+r[i>>16&255]+r[i>>24&255]).toUpperCase()}function l(t,e,n){return Math.max(e,Math.min(n,t))}function c(t,e){return(t%e+e)%e}function h(t,e,n){return(1-n)*t+n*e}function u(t){return t*i}function d(t){return t*s}function p(t){return 0==(t&t-1)&&0!==t}function _(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function m(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"d\\\\\\\",(function(){return x})),n.d(e,\\\\\\\"c\\\\\\\",(function(){return y})),n.d(e,\\\\\\\"b\\\\\\\",(function(){return v})),n.d(e,\\\\\\\"i\\\\\\\",(function(){return g})),n.d(e,\\\\\\\"f\\\\\\\",(function(){return f})),n.d(e,\\\\\\\"h\\\\\\\",(function(){return m})),n.d(e,\\\\\\\"e\\\\\\\",(function(){return _})),n.d(e,\\\\\\\"k\\\\\\\",(function(){return p})),n.d(e,\\\\\\\"j\\\\\\\",(function(){return d})),n.d(e,\\\\\\\"g\\\\\\\",(function(){return u})),n.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=n(9),s=n(0),r=n(2),o=n(6),a=n(1);const l=new s.a,c=new r.a;class h{constructor(t,e,n){if(Array.isArray(t))throw new TypeError(\\\\\\\"THREE.BufferAttribute: array should be a Typed Array.\\\\\\\");this.name=\\\\\\\"\\\\\\\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=a.Qc,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i<s;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let i=0,s=t.length;i<s;i++){let s=t[i];void 0===s&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyColorsArray(): color is undefined\\\\\\\",i),s=new o.a),e[n++]=s.r,e[n++]=s.g,e[n++]=s.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let i=0,s=t.length;i<s;i++){let s=t[i];void 0===s&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\\\\\\\",i),s=new r.a),e[n++]=s.x,e[n++]=s.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\\\\\\\",i),r=new s.a),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let s=0,r=t.length;s<r;s++){let r=t[s];void 0===r&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\\\\\\\",s),r=new i.a),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z,e[n++]=r.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)c.fromBufferAttribute(this,e),c.applyMatrix3(t),this.setXY(e,c.x,c.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)l.fromBufferAttribute(this,e),l.applyMatrix3(t),this.setXYZ(e,l.x,l.y,l.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)l.x=this.getX(e),l.y=this.getY(e),l.z=this.getZ(e),l.applyMatrix4(t),this.setXYZ(e,l.x,l.y,l.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)l.x=this.getX(e),l.y=this.getY(e),l.z=this.getZ(e),l.applyNormalMatrix(t),this.setXYZ(e,l.x,l.y,l.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)l.x=this.getX(e),l.y=this.getY(e),l.z=this.getZ(e),l.transformDirection(t),this.setXYZ(e,l.x,l.y,l.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,s){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=s,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),this.usage!==a.Qc&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}h.prototype.isBufferAttribute=!0;class u extends h{constructor(t,e,n){super(new Int8Array(t),e,n)}}class d extends h{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class p extends h{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class _ extends h{constructor(t,e,n){super(new Int16Array(t),e,n)}}class m extends h{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class f extends h{constructor(t,e,n){super(new Int32Array(t),e,n)}}class g extends h{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class v extends h{constructor(t,e,n){super(new Uint16Array(t),e,n)}}v.prototype.isFloat16BufferAttribute=!0;class y extends h{constructor(t,e,n){super(new Float32Array(t),e,n)}}class x extends h{constructor(t,e,n){super(new Float64Array(t),e,n)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(0);class s{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\\\\\\\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\\\\\\\")}set(t,e,n,i,s,r,o,a,l,c,h,u,d,p,_,m){const f=this.elements;return f[0]=t,f[4]=e,f[8]=n,f[12]=i,f[1]=s,f[5]=r,f[9]=o,f[13]=a,f[2]=l,f[6]=c,f[10]=h,f[14]=u,f[3]=d,f[7]=p,f[11]=_,f[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new s).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/r.setFromMatrixColumn(t,0).length(),s=1/r.setFromMatrixColumn(t,1).length(),o=1/r.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\\\\\\\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\\\\\\\");const e=this.elements,n=t.x,i=t.y,s=t.z,r=Math.cos(n),o=Math.sin(n),a=Math.cos(i),l=Math.sin(i),c=Math.cos(s),h=Math.sin(s);if(\\\\\\\"XYZ\\\\\\\"===t.order){const t=r*c,n=r*h,i=o*c,s=o*h;e[0]=a*c,e[4]=-a*h,e[8]=l,e[1]=n+i*l,e[5]=t-s*l,e[9]=-o*a,e[2]=s-t*l,e[6]=i+n*l,e[10]=r*a}else if(\\\\\\\"YXZ\\\\\\\"===t.order){const t=a*c,n=a*h,i=l*c,s=l*h;e[0]=t+s*o,e[4]=i*o-n,e[8]=r*l,e[1]=r*h,e[5]=r*c,e[9]=-o,e[2]=n*o-i,e[6]=s+t*o,e[10]=r*a}else if(\\\\\\\"ZXY\\\\\\\"===t.order){const t=a*c,n=a*h,i=l*c,s=l*h;e[0]=t-s*o,e[4]=-r*h,e[8]=i+n*o,e[1]=n+i*o,e[5]=r*c,e[9]=s-t*o,e[2]=-r*l,e[6]=o,e[10]=r*a}else if(\\\\\\\"ZYX\\\\\\\"===t.order){const t=r*c,n=r*h,i=o*c,s=o*h;e[0]=a*c,e[4]=i*l-n,e[8]=t*l+s,e[1]=a*h,e[5]=s*l+t,e[9]=n*l-i,e[2]=-l,e[6]=o*a,e[10]=r*a}else if(\\\\\\\"YZX\\\\\\\"===t.order){const t=r*a,n=r*l,i=o*a,s=o*l;e[0]=a*c,e[4]=s-t*h,e[8]=i*h+n,e[1]=h,e[5]=r*c,e[9]=-o*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-s*h}else if(\\\\\\\"XZY\\\\\\\"===t.order){const t=r*a,n=r*l,i=o*a,s=o*l;e[0]=a*c,e[4]=-h,e[8]=l*c,e[1]=t*h+s,e[5]=r*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=o*c,e[10]=s*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(a,t,l)}lookAt(t,e,n){const i=this.elements;return u.subVectors(t,e),0===u.lengthSq()&&(u.z=1),u.normalize(),c.crossVectors(n,u),0===c.lengthSq()&&(1===Math.abs(n.z)?u.x+=1e-4:u.z+=1e-4,u.normalize(),c.crossVectors(n,u)),c.normalize(),h.crossVectors(u,c),i[0]=c.x,i[4]=h.x,i[8]=u.x,i[1]=c.y,i[5]=h.y,i[9]=u.y,i[2]=c.z,i[6]=h.z,i[10]=u.z,this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\\\\\\\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,s=this.elements,r=n[0],o=n[4],a=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],_=n[6],m=n[10],f=n[14],g=n[3],v=n[7],y=n[11],x=n[15],b=i[0],w=i[4],T=i[8],A=i[12],M=i[1],E=i[5],S=i[9],C=i[13],N=i[2],L=i[6],O=i[10],P=i[14],R=i[3],I=i[7],F=i[11],D=i[15];return s[0]=r*b+o*M+a*N+l*R,s[4]=r*w+o*E+a*L+l*I,s[8]=r*T+o*S+a*O+l*F,s[12]=r*A+o*C+a*P+l*D,s[1]=c*b+h*M+u*N+d*R,s[5]=c*w+h*E+u*L+d*I,s[9]=c*T+h*S+u*O+d*F,s[13]=c*A+h*C+u*P+d*D,s[2]=p*b+_*M+m*N+f*R,s[6]=p*w+_*E+m*L+f*I,s[10]=p*T+_*S+m*O+f*F,s[14]=p*A+_*C+m*P+f*D,s[3]=g*b+v*M+y*N+x*R,s[7]=g*w+v*E+y*L+x*I,s[11]=g*T+v*S+y*O+x*F,s[15]=g*A+v*C+y*P+x*D,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],r=t[1],o=t[5],a=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+s*a*h-i*l*h-s*o*u+n*l*u+i*o*d-n*a*d)+t[7]*(+e*a*d-e*l*u+s*r*u-i*r*d+i*l*c-s*a*c)+t[11]*(+e*l*h-e*o*d-s*r*h+n*r*d+s*o*c-n*l*c)+t[15]*(-i*o*c-e*a*h+e*o*u+i*r*h-n*r*u+n*a*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],r=t[4],o=t[5],a=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],_=t[13],m=t[14],f=t[15],g=h*m*l-_*u*l+_*a*d-o*m*d-h*a*f+o*u*f,v=p*u*l-c*m*l-p*a*d+r*m*d+c*a*f-r*u*f,y=c*_*l-p*h*l+p*o*d-r*_*d-c*o*f+r*h*f,x=p*h*a-c*_*a-p*o*u+r*_*u+c*o*m-r*h*m,b=e*g+n*v+i*y+s*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/b;return t[0]=g*w,t[1]=(_*u*s-h*m*s-_*i*d+n*m*d+h*i*f-n*u*f)*w,t[2]=(o*m*s-_*a*s+_*i*l-n*m*l-o*i*f+n*a*f)*w,t[3]=(h*a*s-o*u*s-h*i*l+n*u*l+o*i*d-n*a*d)*w,t[4]=v*w,t[5]=(c*m*s-p*u*s+p*i*d-e*m*d-c*i*f+e*u*f)*w,t[6]=(p*a*s-r*m*s-p*i*l+e*m*l+r*i*f-e*a*f)*w,t[7]=(r*u*s-c*a*s+c*i*l-e*u*l-r*i*d+e*a*d)*w,t[8]=y*w,t[9]=(p*h*s-c*_*s-p*n*d+e*_*d+c*n*f-e*h*f)*w,t[10]=(r*_*s-p*o*s+p*n*l-e*_*l-r*n*f+e*o*f)*w,t[11]=(c*o*s-r*h*s-c*n*l+e*h*l+r*n*d-e*o*d)*w,t[12]=x*w,t[13]=(c*_*i-p*h*i+p*n*u-e*_*u-c*n*m+e*h*m)*w,t[14]=(p*o*i-r*_*i-p*n*a+e*_*a+r*n*m-e*o*m)*w,t[15]=(r*h*i-c*o*i+c*n*a-e*h*a-r*n*u+e*o*u)*w,this}scale(t){const e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),s=1-n,r=t.x,o=t.y,a=t.z,l=s*r,c=s*o;return this.set(l*r+n,l*o-i*a,l*a+i*o,0,l*o+i*a,c*o+n,c*a-i*r,0,l*a-i*o,c*a+i*r,s*a*a+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,s,r){return this.set(1,n,s,0,t,1,r,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,s=e._x,r=e._y,o=e._z,a=e._w,l=s+s,c=r+r,h=o+o,u=s*l,d=s*c,p=s*h,_=r*c,m=r*h,f=o*h,g=a*l,v=a*c,y=a*h,x=n.x,b=n.y,w=n.z;return i[0]=(1-(_+f))*x,i[1]=(d+y)*x,i[2]=(p-v)*x,i[3]=0,i[4]=(d-y)*b,i[5]=(1-(u+f))*b,i[6]=(m+g)*b,i[7]=0,i[8]=(p+v)*w,i[9]=(m-g)*w,i[10]=(1-(u+_))*w,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let s=r.set(i[0],i[1],i[2]).length();const a=r.set(i[4],i[5],i[6]).length(),l=r.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],o.copy(this);const c=1/s,h=1/a,u=1/l;return o.elements[0]*=c,o.elements[1]*=c,o.elements[2]*=c,o.elements[4]*=h,o.elements[5]*=h,o.elements[6]*=h,o.elements[8]*=u,o.elements[9]*=u,o.elements[10]*=u,e.setFromRotationMatrix(o),n.x=s,n.y=a,n.z=l,this}makePerspective(t,e,n,i,s,r){void 0===r&&console.warn(\\\\\\\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\\\\\\\");const o=this.elements,a=2*s/(e-t),l=2*s/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(r+s)/(r-s),d=-2*r*s/(r-s);return o[0]=a,o[4]=0,o[8]=c,o[12]=0,o[1]=0,o[5]=l,o[9]=h,o[13]=0,o[2]=0,o[6]=0,o[10]=u,o[14]=d,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,s,r){const o=this.elements,a=1/(e-t),l=1/(n-i),c=1/(r-s),h=(e+t)*a,u=(n+i)*l,d=(r+s)*c;return o[0]=2*a,o[4]=0,o[8]=0,o[12]=-h,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-u,o[2]=0,o[6]=0,o[10]=-2*c,o[14]=-d,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}s.prototype.isMatrix4=!0;const r=new i.a,o=new s,a=new i.a(0,0,0),l=new i.a(1,1,1),c=new i.a,h=new i.a,u=new i.a},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=n(3);const s={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},r={h:0,s:0,l:0},o={h:0,s:0,l:0};function a(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function l(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function c(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class h{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):\\\\\\\"number\\\\\\\"==typeof t?this.setHex(t):\\\\\\\"string\\\\\\\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=i.f(t,1),e=i.d(e,0,1),n=i.d(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,s=2*n-i;this.r=a(s,i,t+1/3),this.g=a(s,i,t),this.b=a(s,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\\\\\\\"THREE.Color: Alpha component of \\\\\\\"+t+\\\\\\\" will be ignored.\\\\\\\")}let n;if(n=/^((?:rgb|hsl)a?)\\\\(([^\\\\)]*)\\\\)/.exec(t)){let t;const i=n[1],s=n[2];switch(i){case\\\\\\\"rgb\\\\\\\":case\\\\\\\"rgba\\\\\\\":if(t=/^\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(s))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(s))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\\\\\\\"hsl\\\\\\\":case\\\\\\\"hsla\\\\\\\":if(t=/^\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(s)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,s=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,s)}}}else if(n=/^\\\\#([A-Fa-f\\\\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=s[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\\\\\\\"THREE.Color: Unknown color \\\\\\\"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=l(t.r),this.g=l(t.g),this.b=l(t.b),this}copyLinearToSRGB(t){return this.r=c(t.r),this.g=c(t.g),this.b=c(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\\\\\\\"000000\\\\\\\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,s=Math.max(e,n,i),r=Math.min(e,n,i);let o,a;const l=(r+s)/2;if(r===s)o=0,a=0;else{const t=s-r;switch(a=l<=.5?t/(s+r):t/(2-s-r),s){case e:o=(n-i)/t+(n<i?6:0);break;case n:o=(i-e)/t+2;break;case i:o=(e-n)/t+4}o/=6}return t.h=o,t.s=a,t.l=l,t}getStyle(){return\\\\\\\"rgb(\\\\\\\"+(255*this.r|0)+\\\\\\\",\\\\\\\"+(255*this.g|0)+\\\\\\\",\\\\\\\"+(255*this.b|0)+\\\\\\\")\\\\\\\"}offsetHSL(t,e,n){return this.getHSL(r),r.h+=t,r.s+=e,r.l+=n,this.setHSL(r.h,r.s,r.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(r),t.getHSL(o);const n=i.j(r.h,o.h,e),s=i.j(r.s,o.s,e),a=i.j(r.l,o.l,e);return this.setHSL(n,s,a),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}h.NAMES=s,h.prototype.isColor=!0,h.prototype.r=1,h.prototype.g=1,h.prototype.b=1},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return b}));var i=n(0),s=n(2),r=n(16),o=n(15),a=n(4),l=n(18),c=n(10),h=n(5),u=n(11),d=n(3),p=n(20);let _=0;const m=new h.a,f=new c.a,g=new i.a,v=new r.a,y=new r.a,x=new i.a;class b extends o.a{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:_++}),this.uuid=d.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"BufferGeometry\\\\\\\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(Object(p.a)(t)>65535?a.i:a.h)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new u.a).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return m.makeRotationFromQuaternion(t),this.applyMatrix4(m),this}rotateX(t){return m.makeRotationX(t),this.applyMatrix4(m),this}rotateY(t){return m.makeRotationY(t),this.applyMatrix4(m),this}rotateZ(t){return m.makeRotationZ(t),this.applyMatrix4(m),this}translate(t,e,n){return m.makeTranslation(t,e,n),this.applyMatrix4(m),this}scale(t,e,n){return m.makeScale(t,e,n),this.applyMatrix4(m),this}lookAt(t){return f.lookAt(t),f.updateMatrix(),this.applyMatrix4(f.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(g).negate(),this.translate(g.x,g.y,g.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute(\\\\\\\"position\\\\\\\",new a.c(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new r.a);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".',this),void this.boundingBox.set(new i.a(-1/0,-1/0,-1/0),new i.a(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];v.setFromBufferAttribute(n),this.morphTargetsRelative?(x.addVectors(this.boundingBox.min,v.min),this.boundingBox.expandByPoint(x),x.addVectors(this.boundingBox.max,v.max),this.boundingBox.expandByPoint(x)):(this.boundingBox.expandByPoint(v.min),this.boundingBox.expandByPoint(v.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new l.a);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".',this),void this.boundingSphere.set(new i.a,1/0);if(t){const n=this.boundingSphere.center;if(v.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];y.setFromBufferAttribute(n),this.morphTargetsRelative?(x.addVectors(v.min,y.min),v.expandByPoint(x),x.addVectors(v.max,y.max),v.expandByPoint(x)):(v.expandByPoint(y.min),v.expandByPoint(y.max))}v.getCenter(n);let i=0;for(let e=0,s=t.count;e<s;e++)x.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(x));if(e)for(let s=0,r=e.length;s<r;s++){const r=e[s],o=this.morphTargetsRelative;for(let e=0,s=r.count;e<s;e++)x.fromBufferAttribute(r,e),o&&(g.fromBufferAttribute(t,e),x.add(g)),i=Math.max(i,n.distanceToSquared(x))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\\\\\\\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\\\\\\\");const n=t.array,r=e.position.array,o=e.normal.array,l=e.uv.array,c=r.length/3;void 0===e.tangent&&this.setAttribute(\\\\\\\"tangent\\\\\\\",new a.a(new Float32Array(4*c),4));const h=e.tangent.array,u=[],d=[];for(let t=0;t<c;t++)u[t]=new i.a,d[t]=new i.a;const p=new i.a,_=new i.a,m=new i.a,f=new s.a,g=new s.a,v=new s.a,y=new i.a,x=new i.a;function b(t,e,n){p.fromArray(r,3*t),_.fromArray(r,3*e),m.fromArray(r,3*n),f.fromArray(l,2*t),g.fromArray(l,2*e),v.fromArray(l,2*n),_.sub(p),m.sub(p),g.sub(f),v.sub(f);const i=1/(g.x*v.y-v.x*g.y);isFinite(i)&&(y.copy(_).multiplyScalar(v.y).addScaledVector(m,-g.y).multiplyScalar(i),x.copy(m).multiplyScalar(g.x).addScaledVector(_,-v.x).multiplyScalar(i),u[t].add(y),u[e].add(y),u[n].add(y),d[t].add(x),d[e].add(x),d[n].add(x))}let w=this.groups;0===w.length&&(w=[{start:0,count:n.length}]);for(let t=0,e=w.length;t<e;++t){const e=w[t],i=e.start;for(let t=i,s=i+e.count;t<s;t+=3)b(n[t+0],n[t+1],n[t+2])}const T=new i.a,A=new i.a,M=new i.a,E=new i.a;function S(t){M.fromArray(o,3*t),E.copy(M);const e=u[t];T.copy(e),T.sub(M.multiplyScalar(M.dot(e))).normalize(),A.crossVectors(E,e);const n=A.dot(d[t])<0?-1:1;h[4*t]=T.x,h[4*t+1]=T.y,h[4*t+2]=T.z,h[4*t+3]=n}for(let t=0,e=w.length;t<e;++t){const e=w[t],i=e.start;for(let t=i,s=i+e.count;t<s;t+=3)S(n[t+0]),S(n[t+1]),S(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\\\\\\\"position\\\\\\\");if(void 0!==e){let n=this.getAttribute(\\\\\\\"normal\\\\\\\");if(void 0===n)n=new a.a(new Float32Array(3*e.count),3),this.setAttribute(\\\\\\\"normal\\\\\\\",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const s=new i.a,r=new i.a,o=new i.a,l=new i.a,c=new i.a,h=new i.a,u=new i.a,d=new i.a;if(t)for(let i=0,a=t.count;i<a;i+=3){const a=t.getX(i+0),p=t.getX(i+1),_=t.getX(i+2);s.fromBufferAttribute(e,a),r.fromBufferAttribute(e,p),o.fromBufferAttribute(e,_),u.subVectors(o,r),d.subVectors(s,r),u.cross(d),l.fromBufferAttribute(n,a),c.fromBufferAttribute(n,p),h.fromBufferAttribute(n,_),l.add(u),c.add(u),h.add(u),n.setXYZ(a,l.x,l.y,l.z),n.setXYZ(p,c.x,c.y,c.z),n.setXYZ(_,h.x,h.y,h.z)}else for(let t=0,i=e.count;t<i;t+=3)s.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),o.fromBufferAttribute(e,t+2),u.subVectors(o,r),d.subVectors(s,r),u.cross(d),n.setXYZ(t+0,u.x,u.y,u.z),n.setXYZ(t+1,u.x,u.y,u.z),n.setXYZ(t+2,u.x,u.y,u.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\\\\\\\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\\\\\\\",t);void 0===e&&(e=0,console.warn(\\\\\\\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\\\\\\\"));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const s=n[i].array,r=t.attributes[i],o=r.array,a=r.itemSize*e,l=Math.min(o.length,s.length-a);for(let t=0,e=a;t<l;t++,e++)s[e]=o[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)x.fromBufferAttribute(t,e),x.normalize(),t.setXYZ(e,x.x,x.y,x.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,s=t.normalized,r=new n.constructor(e.length*i);let o=0,l=0;for(let s=0,a=e.length;s<a;s++){o=t.isInterleavedBufferAttribute?e[s]*t.data.stride+t.offset:e[s]*i;for(let t=0;t<i;t++)r[l++]=n[o++]}return new a.a(r,i,s)}if(null===this.index)return console.warn(\\\\\\\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\\\\\\\"),this;const e=new b,n=this.index.array,i=this.attributes;for(const s in i){const r=t(i[s],n);e.setAttribute(s,r)}const s=this.morphAttributes;for(const i in s){const r=[],o=s[i];for(let e=0,i=o.length;e<i;e++){const i=t(o[e],n);r.push(i)}e.morphAttributes[i]=r}e.morphTargetsRelative=this.morphTargetsRelative;const r=this.groups;for(let t=0,n=r.length;t<n;t++){const n=r[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"BufferGeometry\\\\\\\",generator:\\\\\\\"BufferGeometry.toJSON\\\\\\\"}};if(t.uuid=this.uuid,t.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let s=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],r=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];r.push(i.toJSON(t.data))}r.length>0&&(i[e]=r,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const r=this.groups;r.length>0&&(t.data.groups=JSON.parse(JSON.stringify(r)));const o=this.boundingSphere;return null!==o&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const s=t.morphAttributes;for(const t in s){const n=[],i=s[t];for(let t=0,s=i.length;t<s;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const r=t.groups;for(let t=0,e=r.length;t<e;t++){const e=r[t];this.addGroup(e.start,e.count,e.materialIndex)}const o=t.boundingBox;null!==o&&(this.boundingBox=o.clone());const a=t.boundingSphere;return null!==a&&(this.boundingSphere=a.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,void 0!==t.parameters&&(this.parameters=Object.assign({},t.parameters)),this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}b.prototype.isBufferGeometry=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(3);class s{constructor(t=0,e=0,n=0,i=1){this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return console.warn(\\\\\\\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\\\\\\\"),n.slerpQuaternions(t,e,i)}static slerpFlat(t,e,n,i,s,r,o){let a=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=s[r+0],d=s[r+1],p=s[r+2],_=s[r+3];if(0===o)return t[e+0]=a,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===o)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=_);if(h!==_||a!==u||l!==d||c!==p){let t=1-o;const e=a*u+l*d+c*p+h*_,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const s=Math.sqrt(i),r=Math.atan2(s,e*n);t=Math.sin(t*r)/s,o=Math.sin(o*r)/s}const s=o*n;if(a=a*t+u*s,l=l*t+d*s,c=c*t+p*s,h=h*t+_*s,t===1-o){const t=1/Math.sqrt(a*a+l*l+c*c+h*h);a*=t,l*=t,c*=t,h*=t}}t[e]=a,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,s,r){const o=n[i],a=n[i+1],l=n[i+2],c=n[i+3],h=s[r],u=s[r+1],d=s[r+2],p=s[r+3];return t[e]=o*p+c*h+a*d-l*u,t[e+1]=a*p+c*u+l*h-o*d,t[e+2]=l*p+c*d+o*u-a*h,t[e+3]=c*p-o*h-a*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\\\\\\\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\");const n=t._x,i=t._y,s=t._z,r=t._order,o=Math.cos,a=Math.sin,l=o(n/2),c=o(i/2),h=o(s/2),u=a(n/2),d=a(i/2),p=a(s/2);switch(r){case\\\\\\\"XYZ\\\\\\\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\\\\\\\"YXZ\\\\\\\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\\\\\\\"ZXY\\\\\\\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\\\\\\\"ZYX\\\\\\\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\\\\\\\"YZX\\\\\\\":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case\\\\\\\"XZY\\\\\\\":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn(\\\\\\\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \\\\\\\"+r)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],s=e[8],r=e[1],o=e[5],a=e[9],l=e[2],c=e[6],h=e[10],u=n+o+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-a)*t,this._y=(s-l)*t,this._z=(r-i)*t}else if(n>o&&n>h){const t=2*Math.sqrt(1+n-o-h);this._w=(c-a)/t,this._x=.25*t,this._y=(i+r)/t,this._z=(s+l)/t}else if(o>h){const t=2*Math.sqrt(1+o-n-h);this._w=(s-l)/t,this._x=(i+r)/t,this._y=.25*t,this._z=(a+c)/t}else{const t=2*Math.sqrt(1+h-n-o);this._w=(r-i)/t,this._x=(s+l)/t,this._y=(a+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(i.d(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\\\\\\\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,s=t._z,r=t._w,o=e._x,a=e._y,l=e._z,c=e._w;return this._x=n*c+r*o+i*l-s*a,this._y=i*c+r*a+s*o-n*l,this._z=s*c+r*l+n*a-i*o,this._w=r*c-n*o-i*a-s*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,s=this._z,r=this._w;let o=r*t._w+n*t._x+i*t._y+s*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=r,this._x=n,this._y=i,this._z=s,this;const a=1-o*o;if(a<=Number.EPSILON){const t=1-e;return this._w=t*r+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*s+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(a),c=Math.atan2(l,o),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=r*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=s*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}s.prototype.isQuaternion=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,s=this.w,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i+r[12]*s,this.y=r[1]*e+r[5]*n+r[9]*i+r[13]*s,this.z=r[2]*e+r[6]*n+r[10]*i+r[14]*s,this.w=r[3]*e+r[7]*n+r[11]*i+r[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,s;const r=.01,o=.1,a=t.elements,l=a[0],c=a[4],h=a[8],u=a[1],d=a[5],p=a[9],_=a[2],m=a[6],f=a[10];if(Math.abs(c-u)<r&&Math.abs(h-_)<r&&Math.abs(p-m)<r){if(Math.abs(c+u)<o&&Math.abs(h+_)<o&&Math.abs(p+m)<o&&Math.abs(l+d+f-3)<o)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,a=(d+1)/2,g=(f+1)/2,v=(c+u)/4,y=(h+_)/4,x=(p+m)/4;return t>a&&t>g?t<r?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(t),i=v/n,s=y/n):a>g?a<r?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(a),n=v/i,s=x/i):g<r?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(g),n=y/s,i=x/s),this.set(n,i,s,e),this}let g=Math.sqrt((m-p)*(m-p)+(h-_)*(h-_)+(u-c)*(u-c));return Math.abs(g)<.001&&(g=1),this.x=(m-p)/g,this.y=(h-_)/g,this.z=(u-c)/g,this.w=Math.acos((l+d+f-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\\\\\\\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}i.prototype.isVector4=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return A}));var i=n(8),s=n(0),r=n(5),o=n(15),a=n(27),l=n(36),c=n(11),h=n(3);let u=0;const d=new s.a,p=new i.a,_=new r.a,m=new s.a,f=new s.a,g=new s.a,v=new i.a,y=new s.a(1,0,0),x=new s.a(0,1,0),b=new s.a(0,0,1),w={type:\\\\\\\"added\\\\\\\"},T={type:\\\\\\\"removed\\\\\\\"};class A extends o.a{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:u++}),this.uuid=h.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Object3D\\\\\\\",this.parent=null,this.children=[],this.up=A.DefaultUp.clone();const t=new s.a,e=new a.a,n=new i.a,o=new s.a(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new r.a},normalMatrix:{value:new c.a}}),this.matrix=new r.a,this.matrixWorld=new r.a,this.matrixAutoUpdate=A.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new l.a,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return p.setFromAxisAngle(t,e),this.quaternion.multiply(p),this}rotateOnWorldAxis(t,e){return p.setFromAxisAngle(t,e),this.quaternion.premultiply(p),this}rotateX(t){return this.rotateOnAxis(y,t)}rotateY(t){return this.rotateOnAxis(x,t)}rotateZ(t){return this.rotateOnAxis(b,t)}translateOnAxis(t,e){return d.copy(t).applyQuaternion(this.quaternion),this.position.add(d.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(y,t)}translateY(t){return this.translateOnAxis(x,t)}translateZ(t){return this.translateOnAxis(b,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(_.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?m.copy(t):m.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),f.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?_.lookAt(f,m,this.up):_.lookAt(m,f,this.up),this.quaternion.setFromRotationMatrix(_),i&&(_.extractRotation(i.matrixWorld),p.setFromRotationMatrix(_),this.quaternion.premultiply(p.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\\\\\\\"THREE.Object3D.add: object can't be added as a child of itself.\\\\\\\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(w)):console.error(\\\\\\\"THREE.Object3D.add: object not an instance of THREE.Object3D.\\\\\\\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(T)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(T)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),_.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),_.multiply(t.parent.matrixWorld)),t.applyMatrix4(_),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\\\\\\\"id\\\\\\\",t)}getObjectByName(t){return this.getObjectByProperty(\\\\\\\"name\\\\\\\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(f,t,g),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(f,v,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:\\\\\\\"Object\\\\\\\",generator:\\\\\\\"Object3D.toJSON\\\\\\\"});const i={};function s(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),\\\\\\\"{}\\\\\\\"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type=\\\\\\\"InstancedMesh\\\\\\\",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];s(t.shapes,i)}else s(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(s(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(s(t.materials,this.material[n]));i.material=e}else i.material=s(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(s(t.animations,n))}}if(e){const e=r(t.geometries),i=r(t.materials),s=r(t.textures),o=r(t.images),a=r(t.shapes),l=r(t.skeletons),c=r(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),s.length>0&&(n.textures=s),o.length>0&&(n.images=o),a.length>0&&(n.shapes=a),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function r(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}A.DefaultUp=new s.a(0,1,0),A.DefaultMatrixAutoUpdate=!0,A.prototype.isObject3D=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\\\\\\\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\\\\\\\")}set(t,e,n,i,s,r,o,a,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=o,c[3]=e,c[4]=s,c[5]=a,c[6]=n,c[7]=r,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,s=this.elements,r=n[0],o=n[3],a=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],_=i[0],m=i[3],f=i[6],g=i[1],v=i[4],y=i[7],x=i[2],b=i[5],w=i[8];return s[0]=r*_+o*g+a*x,s[3]=r*m+o*v+a*b,s[6]=r*f+o*y+a*w,s[1]=l*_+c*g+h*x,s[4]=l*m+c*v+h*b,s[7]=l*f+c*y+h*w,s[2]=u*_+d*g+p*x,s[5]=u*m+d*v+p*b,s[8]=u*f+d*y+p*w,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],r=t[4],o=t[5],a=t[6],l=t[7],c=t[8];return e*r*c-e*o*l-n*s*c+n*o*a+i*s*l-i*r*a}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],r=t[4],o=t[5],a=t[6],l=t[7],c=t[8],h=c*r-o*l,u=o*a-c*s,d=l*s-r*a,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const _=1/p;return t[0]=h*_,t[1]=(i*l-c*n)*_,t[2]=(o*n-i*r)*_,t[3]=u*_,t[4]=(c*e-i*a)*_,t[5]=(i*s-o*e)*_,t[6]=d*_,t[7]=(n*a-l*e)*_,t[8]=(r*e-n*s)*_,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,s,r,o){const a=Math.cos(s),l=Math.sin(s);return this.set(n*a,n*l,-n*(a*r+l*o)+r+t,-i*l,i*a,-i*(-l*r+a*o)+o+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,s=i[0],r=i[3],o=i[6],a=i[1],l=i[4],c=i[7];return i[0]=e*s+n*a,i[3]=e*r+n*l,i[6]=e*o+n*c,i[1]=-n*s+e*a,i[4]=-n*r+e*l,i[7]=-n*o+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}i.prototype.isMatrix3=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=n(15),s=n(1),r=n(3);let o=0;class a extends i.a{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:o++}),this.uuid=r.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Material\\\\\\\",this.fog=!0,this.blending=s.xb,this.side=s.H,this.vertexColors=!1,this.opacity=1,this.format=s.Ib,this.transparent=!1,this.blendSrc=s.Nc,this.blendDst=s.Db,this.blendEquation=s.b,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=s.T,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=s.h,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=s.R,this.stencilZFail=s.R,this.stencilZPass=s.R,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(\\\\\\\"THREE.Material: '\\\\\\\"+e+\\\\\\\"' parameter is undefined.\\\\\\\");continue}if(\\\\\\\"shading\\\\\\\"===e){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .shading has been removed. Use the boolean .flatShading instead.\\\\\\\"),this.flatShading=n===s.F;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": '\\\\\\\"+e+\\\\\\\"' is not a property of this material.\\\\\\\")}}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:\\\\\\\"Material\\\\\\\",generator:\\\\\\\"Material.toJSON\\\\\\\"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenTint&&this.sheenTint.isColor&&(n.sheenTint=this.sheenTint.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularTint&&this.specularTint.isColor&&(n.specularTint=this.specularTint.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularTintMap&&this.specularTintMap.isTexture&&(n.specularTintMap=this.specularTintMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationTint&&(n.attenuationTint=this.attenuationTint.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==s.xb&&(n.blending=this.blending),this.side!==s.H&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.format!==s.Ib&&(n.format=this.format),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\\\\\\\"round\\\\\\\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\\\\\\\"round\\\\\\\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),\\\\\\\"{}\\\\\\\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),s=i(t.images);e.length>0&&(n.textures=e),s.length>0&&(n.images=s)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.format=t.format,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}set needsUpdate(t){!0===t&&this.version++}}a.prototype.isMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(28);class s{constructor(t){this.manager=void 0!==t?t:i.a,this.crossOrigin=\\\\\\\"anonymous\\\\\\\",this.withCredentials=!1,this.path=\\\\\\\"\\\\\\\",this.resourcePath=\\\\\\\"\\\\\\\",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,s){n.load(t,i,e,s)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return L}));var i=n(0),s=n(2),r=n(18),o=n(39),a=n(5),l=n(10),c=n(40),h=n(1),u=n(29),d=n(7);const p=new a.a,_=new o.a,m=new r.a,f=new i.a,g=new i.a,v=new i.a,y=new i.a,x=new i.a,b=new i.a,w=new i.a,T=new i.a,A=new i.a,M=new s.a,E=new s.a,S=new s.a,C=new i.a,N=new i.a;class L extends l.a{constructor(t=new d.a,e=new u.a){super(),this.type=\\\\\\\"Mesh\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}raycast(t,e){const n=this.geometry,i=this.material,s=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),m.copy(n.boundingSphere),m.applyMatrix4(s),!1===t.ray.intersectsSphere(m))return;if(p.copy(s).invert(),_.copy(t.ray).applyMatrix4(p),null!==n.boundingBox&&!1===_.intersectsBox(n.boundingBox))return;let r;if(n.isBufferGeometry){const s=n.index,o=n.attributes.position,a=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==s)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const p=u[n],m=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(s.count,Math.min(p.start+p.count,d.start+d.count));n<i;n+=3){const i=s.getX(n),u=s.getX(n+1),d=s.getX(n+2);r=O(this,m,t,_,o,a,l,c,h,i,u,d),r&&(r.faceIndex=Math.floor(n/3),r.face.materialIndex=p.materialIndex,e.push(r))}}else{for(let n=Math.max(0,d.start),u=Math.min(s.count,d.start+d.count);n<u;n+=3){const u=s.getX(n),d=s.getX(n+1),p=s.getX(n+2);r=O(this,i,t,_,o,a,l,c,h,u,d,p),r&&(r.faceIndex=Math.floor(n/3),e.push(r))}}else if(void 0!==o)if(Array.isArray(i))for(let n=0,s=u.length;n<s;n++){const s=u[n],p=i[s.materialIndex];for(let n=Math.max(s.start,d.start),i=Math.min(o.count,Math.min(s.start+s.count,d.start+d.count));n<i;n+=3){r=O(this,p,t,_,o,a,l,c,h,n,n+1,n+2),r&&(r.faceIndex=Math.floor(n/3),r.face.materialIndex=s.materialIndex,e.push(r))}}else{for(let n=Math.max(0,d.start),s=Math.min(o.count,d.start+d.count);n<s;n+=3){r=O(this,i,t,_,o,a,l,c,h,n,n+1,n+2),r&&(r.faceIndex=Math.floor(n/3),e.push(r))}}}else n.isGeometry&&console.error(\\\\\\\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}function O(t,e,n,r,o,a,l,u,d,p,_,m){f.fromBufferAttribute(o,p),g.fromBufferAttribute(o,_),v.fromBufferAttribute(o,m);const L=t.morphTargetInfluences;if(a&&L){w.set(0,0,0),T.set(0,0,0),A.set(0,0,0);for(let t=0,e=a.length;t<e;t++){const e=L[t],n=a[t];0!==e&&(y.fromBufferAttribute(n,p),x.fromBufferAttribute(n,_),b.fromBufferAttribute(n,m),l?(w.addScaledVector(y,e),T.addScaledVector(x,e),A.addScaledVector(b,e)):(w.addScaledVector(y.sub(f),e),T.addScaledVector(x.sub(g),e),A.addScaledVector(b.sub(v),e)))}f.add(w),g.add(T),v.add(A)}t.isSkinnedMesh&&(t.boneTransform(p,f),t.boneTransform(_,g),t.boneTransform(m,v));const O=function(t,e,n,i,s,r,o,a){let l;if(l=e.side===h.i?i.intersectTriangle(o,r,s,!0,a):i.intersectTriangle(s,r,o,e.side!==h.z,a),null===l)return null;N.copy(a),N.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(N);return c<n.near||c>n.far?null:{distance:c,point:N.clone(),object:t}}(t,e,n,r,f,g,v,C);if(O){u&&(M.fromBufferAttribute(u,p),E.fromBufferAttribute(u,_),S.fromBufferAttribute(u,m),O.uv=c.a.getUV(C,f,g,v,M,E,S,new s.a)),d&&(M.fromBufferAttribute(d,p),E.fromBufferAttribute(d,_),S.fromBufferAttribute(d,m),O.uv2=c.a.getUV(C,f,g,v,M,E,S,new s.a));const t={a:p,b:_,c:m,normal:new i.a,materialIndex:0};c.a.getNormal(f,g,v,t.normal),O.face=t}return O}L.prototype.isMesh=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(0);class s{constructor(t=new i.a(1/0,1/0,1/0),e=new i.a(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,s=-1/0,r=-1/0,o=-1/0;for(let a=0,l=t.length;a<l;a+=3){const l=t[a],c=t[a+1],h=t[a+2];l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>s&&(s=l),c>r&&(r=c),h>o&&(o=h)}return this.min.set(e,n,i),this.max.set(s,r,o),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,r=-1/0,o=-1/0;for(let a=0,l=t.count;a<l;a++){const l=t.getX(a),c=t.getY(a),h=t.getZ(a);l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>s&&(s=l),c>r&&(r=c),h>o&&(o=h)}return this.min.set(e,n,i),this.max.set(s,r,o),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=o.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),a.copy(e.boundingBox),a.applyMatrix4(t.matrixWorld),this.union(a));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,o),o.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(_),m.subVectors(this.max,_),l.subVectors(t.a,_),c.subVectors(t.b,_),h.subVectors(t.c,_),u.subVectors(c,l),d.subVectors(h,c),p.subVectors(l,h);let e=[0,-u.z,u.y,0,-d.z,d.y,0,-p.z,p.y,u.z,0,-u.x,d.z,0,-d.x,p.z,0,-p.x,-u.y,u.x,0,-d.y,d.x,0,-p.y,p.x,0];return!!v(e,l,c,h,m)&&(e=[1,0,0,0,1,0,0,0,1],!!v(e,l,c,h,m)&&(f.crossVectors(u,d),e=[f.x,f.y,f.z],v(e,l,c,h,m)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return o.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(o).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(r[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),r[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),r[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),r[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),r[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),r[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),r[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),r[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(r)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}s.prototype.isBox3=!0;const r=[new i.a,new i.a,new i.a,new i.a,new i.a,new i.a,new i.a,new i.a],o=new i.a,a=new s,l=new i.a,c=new i.a,h=new i.a,u=new i.a,d=new i.a,p=new i.a,_=new i.a,m=new i.a,f=new i.a,g=new i.a;function v(t,e,n,i,s){for(let r=0,o=t.length-3;r<=o;r+=3){g.fromArray(t,r);const o=s.x*Math.abs(g.x)+s.y*Math.abs(g.y)+s.z*Math.abs(g.z),a=e.dot(g),l=n.dot(g),c=i.dot(g);if(Math.max(-Math.max(a,l,c),Math.min(a,l,c))>o)return!1}return!0}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));const i={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=n(16),s=n(0);const r=new i.a,o=new s.a,a=new s.a,l=new s.a;class c{constructor(t=new s.a,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):r.setFromPoints(t).getCenter(n);let i=0;for(let e=0,s=t.length;e<s;e++)i=Math.max(i,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){l.subVectors(t,this.center);const e=l.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(l.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return a.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(o.copy(t.center).add(a)),this.expandByPoint(o.copy(t.center).sub(a)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(8),s=n(1);const r={arraySlice:function(t,e,n){return r.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:\\\\\\\"number\\\\\\\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,s=new t.constructor(i);for(let r=0,o=0;o!==i;++r){const i=n[r]*e;for(let n=0;n!==e;++n)s[o++]=t[i+n]}return s},flattenJSON:function(t,e,n,i){let s=1,r=t[0];for(;void 0!==r&&void 0===r[i];)r=t[s++];if(void 0===r)return;let o=r[i];if(void 0!==o)if(Array.isArray(o))do{o=r[i],void 0!==o&&(e.push(r.time),n.push.apply(n,o)),r=t[s++]}while(void 0!==r);else if(void 0!==o.toArray)do{o=r[i],void 0!==o&&(e.push(r.time),o.toArray(n,n.length)),r=t[s++]}while(void 0!==r);else do{o=r[i],void 0!==o&&(e.push(r.time),n.push(o)),r=t[s++]}while(void 0!==r)},subclip:function(t,e,n,i,s=30){const o=t.clone();o.name=e;const a=[];for(let t=0;t<o.tracks.length;++t){const e=o.tracks[t],l=e.getValueSize(),c=[],h=[];for(let t=0;t<e.times.length;++t){const r=e.times[t]*s;if(!(r<n||r>=i)){c.push(e.times[t]);for(let n=0;n<l;++n)h.push(e.values[t*l+n])}}0!==c.length&&(e.times=r.convertArray(c,e.times.constructor),e.values=r.convertArray(h,e.values.constructor),a.push(e))}o.tracks=a;let l=1/0;for(let t=0;t<o.tracks.length;++t)l>o.tracks[t].times[0]&&(l=o.tracks[t].times[0]);for(let t=0;t<o.tracks.length;++t)o.tracks[t].shift(-1*l);return o.resetDuration(),o},makeClipAdditive:function(t,e=0,n=t,o=30){o<=0&&(o=30);const a=n.tracks.length,l=e/o;for(let e=0;e<a;++e){const s=n.tracks[e],o=s.ValueTypeName;if(\\\\\\\"bool\\\\\\\"===o||\\\\\\\"string\\\\\\\"===o)continue;const a=t.tracks.find((function(t){return t.name===s.name&&t.ValueTypeName===o}));if(void 0===a)continue;let c=0;const h=s.getValueSize();s.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);let u=0;const d=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(u=d/3);const p=s.times.length-1;let _;if(l<=s.times[0]){const t=c,e=h-c;_=r.arraySlice(s.values,t,e)}else if(l>=s.times[p]){const t=p*h+c,e=t+h-c;_=r.arraySlice(s.values,t,e)}else{const t=s.createInterpolant(),e=c,n=h-c;t.evaluate(l),_=r.arraySlice(t.resultBuffer,e,n)}if(\\\\\\\"quaternion\\\\\\\"===o){(new i.a).fromArray(_).normalize().conjugate().toArray(_)}const m=a.times.length;for(let t=0;t<m;++t){const e=t*d+u;if(\\\\\\\"quaternion\\\\\\\"===o)i.a.multiplyQuaternionsFlat(a.values,e,_,0,a.values,e);else{const t=d-2*u;for(let n=0;n<t;++n)a.values[e+n]-=_[n]}}}return t.blendMode=s.d,t}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";function i(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}n.d(e,\\\\\\\"a\\\\\\\",(function(){return i})),n.d(e,\\\\\\\"c\\\\\\\",(function(){return r})),n.d(e,\\\\\\\"b\\\\\\\",(function(){return o}));const s={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function r(t,e){return new s[t](e)}function o(t){return document.createElementNS(\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\",t)}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(10);class s extends i.a{constructor(){super(),this.type=\\\\\\\"Group\\\\\\\"}}s.prototype.isGroup=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(17),s=n(13);const r={};class o extends s.a{constructor(t){super(t)}load(t,e,n,s){void 0===t&&(t=\\\\\\\"\\\\\\\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const o=this,a=i.a.get(t);if(void 0!==a)return o.manager.itemStart(t),setTimeout((function(){e&&e(a),o.manager.itemEnd(t)}),0),a;if(void 0!==r[t])return void r[t].push({onLoad:e,onProgress:n,onError:s});const l=t.match(/^data:(.*?)(;base64)?,(.*)$/);let c;if(l){const n=l[1],i=!!l[2];let r=l[3];r=decodeURIComponent(r),i&&(r=atob(r));try{let i;const s=(this.responseType||\\\\\\\"\\\\\\\").toLowerCase();switch(s){case\\\\\\\"arraybuffer\\\\\\\":case\\\\\\\"blob\\\\\\\":const t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);i=\\\\\\\"blob\\\\\\\"===s?new Blob([t.buffer],{type:n}):t.buffer;break;case\\\\\\\"document\\\\\\\":const e=new DOMParser;i=e.parseFromString(r,n);break;case\\\\\\\"json\\\\\\\":i=JSON.parse(r);break;default:i=r}setTimeout((function(){e&&e(i),o.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){s&&s(e),o.manager.itemError(t),o.manager.itemEnd(t)}),0)}}else{r[t]=[],r[t].push({onLoad:e,onProgress:n,onError:s}),c=new XMLHttpRequest,c.open(\\\\\\\"GET\\\\\\\",t,!0),c.addEventListener(\\\\\\\"load\\\\\\\",(function(e){const n=this.response,s=r[t];if(delete r[t],200===this.status||0===this.status){0===this.status&&console.warn(\\\\\\\"THREE.FileLoader: HTTP Status 0 received.\\\\\\\"),i.a.add(t,n);for(let t=0,e=s.length;t<e;t++){const e=s[t];e.onLoad&&e.onLoad(n)}o.manager.itemEnd(t)}else{for(let t=0,n=s.length;t<n;t++){const n=s[t];n.onError&&n.onError(e)}o.manager.itemError(t),o.manager.itemEnd(t)}}),!1),c.addEventListener(\\\\\\\"progress\\\\\\\",(function(e){const n=r[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),c.addEventListener(\\\\\\\"error\\\\\\\",(function(e){const n=r[t];delete r[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}o.manager.itemError(t),o.manager.itemEnd(t)}),!1),c.addEventListener(\\\\\\\"abort\\\\\\\",(function(e){const n=r[t];delete r[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}o.manager.itemError(t),o.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(c.responseType=this.responseType),void 0!==this.withCredentials&&(c.withCredentials=this.withCredentials),c.overrideMimeType&&c.overrideMimeType(void 0!==this.mimeType?this.mimeType:\\\\\\\"text/plain\\\\\\\");for(const t in this.requestHeader)c.setRequestHeader(t,this.requestHeader[t]);c.send(null)}return o.manager.itemStart(t),c}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=n(15),s=n(1),r=n(3),o=n(2),a=n(11),l=n(20);let c;let h=0;class u extends i.a{constructor(t=u.DEFAULT_IMAGE,e=u.DEFAULT_MAPPING,n=s.n,i=s.n,l=s.V,c=s.Y,d=s.Ib,p=s.Zc,_=1,m=s.U){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:h++}),this.uuid=r.h(),this.name=\\\\\\\"\\\\\\\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=l,this.minFilter=c,this.anisotropy=_,this.format=d,this.internalFormat=null,this.type=p,this.offset=new o.a(0,0),this.repeat=new o.a(1,1),this.center=new o.a(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new a.a,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=m,this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:\\\\\\\"Texture\\\\\\\",generator:\\\\\\\"Texture.toJSON\\\\\\\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=r.h()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)i[t].isDataTexture?e.push(d(i[t].image)):e.push(d(i[t]))}else e=d(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}transformUv(t){if(this.mapping!==s.Yc)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case s.wc:t.x=t.x-Math.floor(t.x);break;case s.n:t.x=t.x<0?0:1;break;case s.kb:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case s.wc:t.y=t.y-Math.floor(t.y);break;case s.n:t.y=t.y<0?0:1;break;case s.kb:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function d(t){return\\\\\\\"undefined\\\\\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\\\\\"undefined\\\\\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\\\\\"undefined\\\\\\\"!=typeof ImageBitmap&&t instanceof ImageBitmap?class{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\\\\\\\"undefined\\\\\\\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===c&&(c=Object(l.b)(\\\\\\\"canvas\\\\\\\")),c.width=t.width,c.height=t.height;const n=c.getContext(\\\\\\\"2d\\\\\\\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=c}return e.width>2048||e.height>2048?(console.warn(\\\\\\\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\\\\\\\",t),e.toDataURL(\\\\\\\"image/jpeg\\\\\\\",.6)):e.toDataURL(\\\\\\\"image/png\\\\\\\")}}.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\\\\\\\"THREE.Texture: Unable to serialize Texture.\\\\\\\"),{})}u.DEFAULT_IMAGE=void 0,u.DEFAULT_MAPPING=s.Yc,u.prototype.isTexture=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(12),s=n(6);class r extends i.a{constructor(t){super(),this.type=\\\\\\\"LineBasicMaterial\\\\\\\",this.color=new s.a(16777215),this.linewidth=1,this.linecap=\\\\\\\"round\\\\\\\",this.linejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this}}r.prototype.isLineBasicMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=n(3),s=n(2),r=n(0),o=n(5);class a{constructor(){this.type=\\\\\\\"Curve\\\\\\\",this.arcLengthDivisions=200}getPoint(){return console.warn(\\\\\\\"THREE.Curve: .getPoint() not implemented.\\\\\\\"),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),s=0;e.push(0);for(let r=1;r<=t;r++)n=this.getPoint(r/t),s+=n.distanceTo(i),e.push(s),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const s=n.length;let r;r=e||t*n[s-1];let o,a=0,l=s-1;for(;a<=l;)if(i=Math.floor(a+(l-a)/2),o=n[i]-r,o<0)a=i+1;else{if(!(o>0)){l=i;break}l=i-1}if(i=l,n[i]===r)return i/(s-1);const c=n[i];return(i+(r-c)/(n[i+1]-c))/(s-1)}getTangent(t,e){const n=1e-4;let i=t-n,o=t+n;i<0&&(i=0),o>1&&(o=1);const a=this.getPoint(i),l=this.getPoint(o),c=e||(a.isVector2?new s.a:new r.a);return c.copy(l).sub(a).normalize(),c}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new r.a,s=[],a=[],l=[],c=new r.a,h=new o.a;for(let e=0;e<=t;e++){const n=e/t;s[e]=this.getTangentAt(n,new r.a)}a[0]=new r.a,l[0]=new r.a;let u=Number.MAX_VALUE;const d=Math.abs(s[0].x),p=Math.abs(s[0].y),_=Math.abs(s[0].z);d<=u&&(u=d,n.set(1,0,0)),p<=u&&(u=p,n.set(0,1,0)),_<=u&&n.set(0,0,1),c.crossVectors(s[0],n).normalize(),a[0].crossVectors(s[0],c),l[0].crossVectors(s[0],a[0]);for(let e=1;e<=t;e++){if(a[e]=a[e-1].clone(),l[e]=l[e-1].clone(),c.crossVectors(s[e-1],s[e]),c.length()>Number.EPSILON){c.normalize();const t=Math.acos(i.d(s[e-1].dot(s[e]),-1,1));a[e].applyMatrix4(h.makeRotationAxis(c,t))}l[e].crossVectors(s[e],a[e])}if(!0===e){let e=Math.acos(i.d(a[0].dot(a[t]),-1,1));e/=t,s[0].dot(c.crossVectors(a[0],a[t]))>0&&(e=-e);for(let n=1;n<=t;n++)a[n].applyMatrix4(h.makeRotationAxis(s[n],e*n)),l[n].crossVectors(s[n],a[n])}return{tangents:s,normals:a,binormals:l}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"Curve\\\\\\\",generator:\\\\\\\"Curve.toJSON\\\\\\\"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=n(1),s=n(70),r=n(71),o=n(38);class a extends o.a{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}var l=n(19);class c{constructor(t,e,n,i){if(void 0===t)throw new Error(\\\\\\\"THREE.KeyframeTrack: track name is undefined\\\\\\\");if(void 0===e||0===e.length)throw new Error(\\\\\\\"THREE.KeyframeTrack: no keyframes in track named \\\\\\\"+t);this.name=t,this.times=l.a.convertArray(e,this.TimeBufferType),this.values=l.a.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:l.a.convertArray(t.times,Array),values:l.a.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new a(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new r.a(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new s.a(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case i.O:e=this.InterpolantFactoryMethodDiscrete;break;case i.P:e=this.InterpolantFactoryMethodLinear;break;case i.Q:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\\\\\\\"unsupported interpolation for \\\\\\\"+this.ValueTypeName+\\\\\\\" keyframe track named \\\\\\\"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\\\\\\\"THREE.KeyframeTrack:\\\\\\\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return i.O;case this.InterpolantFactoryMethodLinear:return i.P;case this.InterpolantFactoryMethodSmooth:return i.Q}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let s=0,r=i-1;for(;s!==i&&n[s]<t;)++s;for(;-1!==r&&n[r]>e;)--r;if(++r,0!==s||r!==i){s>=r&&(r=Math.max(r,1),s=r-1);const t=this.getValueSize();this.times=l.a.arraySlice(n,s,r),this.values=l.a.arraySlice(this.values,s*t,r*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\\\\\\\"THREE.KeyframeTrack: Invalid value size in track.\\\\\\\",this),t=!1);const n=this.times,i=this.values,s=n.length;0===s&&(console.error(\\\\\\\"THREE.KeyframeTrack: Track is empty.\\\\\\\",this),t=!1);let r=null;for(let e=0;e!==s;e++){const i=n[e];if(\\\\\\\"number\\\\\\\"==typeof i&&isNaN(i)){console.error(\\\\\\\"THREE.KeyframeTrack: Time is not a valid number.\\\\\\\",this,e,i),t=!1;break}if(null!==r&&r>i){console.error(\\\\\\\"THREE.KeyframeTrack: Out of order keys.\\\\\\\",this,e,i,r),t=!1;break}r=i}if(void 0!==i&&l.a.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error(\\\\\\\"THREE.KeyframeTrack: Value is not a valid number.\\\\\\\",this,e,n),t=!1;break}}return t}optimize(){const t=l.a.arraySlice(this.times),e=l.a.arraySlice(this.values),n=this.getValueSize(),s=this.getInterpolation()===i.Q,r=t.length-1;let o=1;for(let i=1;i<r;++i){let r=!1;const a=t[i];if(a!==t[i+1]&&(1!==i||a!==t[0]))if(s)r=!0;else{const t=i*n,s=t-n,o=t+n;for(let i=0;i!==n;++i){const n=e[t+i];if(n!==e[s+i]||n!==e[o+i]){r=!0;break}}}if(r){if(i!==o){t[o]=t[i];const s=i*n,r=o*n;for(let t=0;t!==n;++t)e[r+t]=e[s+t]}++o}}if(r>0){t[o]=t[r];for(let t=r*n,i=o*n,s=0;s!==n;++s)e[i+s]=e[t+s];++o}return o!==t.length?(this.times=l.a.arraySlice(t,0,o),this.values=l.a.arraySlice(e,0,o*n)):(this.times=t,this.values=e),this}clone(){const t=l.a.arraySlice(this.times,0),e=l.a.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}c.prototype.TimeBufferType=Float32Array,c.prototype.ValueBufferType=Float32Array,c.prototype.DefaultInterpolation=i.P},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=n(8),s=n(0),r=n(5),o=n(3);const a=new r.a,l=new i.a;class c{constructor(t=0,e=0,n=0,i=c.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,s=i[0],r=i[4],a=i[8],l=i[1],c=i[5],h=i[9],u=i[2],d=i[6],p=i[10];switch(e){case\\\\\\\"XYZ\\\\\\\":this._y=Math.asin(Object(o.d)(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,p),this._z=Math.atan2(-r,s)):(this._x=Math.atan2(d,c),this._z=0);break;case\\\\\\\"YXZ\\\\\\\":this._x=Math.asin(-Object(o.d)(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,p),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-u,s),this._z=0);break;case\\\\\\\"ZXY\\\\\\\":this._x=Math.asin(Object(o.d)(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,p),this._z=Math.atan2(-r,c)):(this._y=0,this._z=Math.atan2(l,s));break;case\\\\\\\"ZYX\\\\\\\":this._y=Math.asin(-Object(o.d)(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-r,c));break;case\\\\\\\"YZX\\\\\\\":this._z=Math.asin(Object(o.d)(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-u,s)):(this._x=0,this._y=Math.atan2(a,p));break;case\\\\\\\"XZY\\\\\\\":this._z=Math.asin(-Object(o.d)(r,-1,1)),Math.abs(r)<.9999999?(this._x=Math.atan2(d,c),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,p),this._y=0);break;default:console.warn(\\\\\\\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \\\\\\\"+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return a.makeRotationFromQuaternion(t),this.setFromRotationMatrix(a,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return l.setFromEuler(this),this.setFromQuaternion(l,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new s.a(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}c.prototype.isEuler=!0,c.DefaultOrder=\\\\\\\"XYZ\\\\\\\",c.RotationOrders=[\\\\\\\"XYZ\\\\\\\",\\\\\\\"YZX\\\\\\\",\\\\\\\"ZXY\\\\\\\",\\\\\\\"XZY\\\\\\\",\\\\\\\"YXZ\\\\\\\",\\\\\\\"ZYX\\\\\\\"]},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s})),n.d(e,\\\\\\\"b\\\\\\\",(function(){return i}));class i{constructor(t,e,n){const i=this;let s,r=!1,o=0,a=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){a++,!1===r&&void 0!==i.onStart&&i.onStart(t,o,a),r=!0},this.itemEnd=function(t){o++,void 0!==i.onProgress&&i.onProgress(t,o,a),o===a&&(r=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return s?s(t):t},this.setURLModifier=function(t){return s=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const s=new i},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(12),s=n(1),r=n(6);class o extends i.a{constructor(t){super(),this.type=\\\\\\\"MeshBasicMaterial\\\\\\\",this.color=new r.a(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=s.nb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}o.prototype.isMeshBasicMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(44),s=n(3);class r extends i.a{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type=\\\\\\\"PerspectiveCamera\\\\\\\",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*s.b*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*s.a*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*s.b*Math.atan(Math.tan(.5*s.a*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,r){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=r,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*s.a*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const o=this.view;if(null!==this.view&&this.view.enabled){const t=o.fullWidth,s=o.fullHeight;r+=o.offsetX*i/t,e-=o.offsetY*n/s,i*=o.width/t,n*=o.height/s}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}r.prototype.isPerspectiveCamera=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=n(11),s=n(0);const r=new s.a,o=new s.a,a=new i.a;class l{constructor(t=new s.a(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=r.subVectors(n,e).cross(o.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(r),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||a.getNormalMatrix(t),i=this.coplanarPoint(r).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}l.prototype.isPlane=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";function i(t,e,n,i,s){const r=.5*(i-e),o=.5*(s-n),a=t*t;return(2*n-2*i+r+o)*(t*a)+(-3*n+3*i-2*r-o)*a+r*t+n}function s(t,e,n,i){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,i)}function r(t,e,n,i,s){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,i)+function(t,e){return t*t*t*e}(t,s)}n.d(e,\\\\\\\"a\\\\\\\",(function(){return i})),n.d(e,\\\\\\\"c\\\\\\\",(function(){return s})),n.d(e,\\\\\\\"b\\\\\\\",(function(){return r}))},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(10),s=n(6);class r extends i.a{constructor(t,e=1){super(),this.type=\\\\\\\"Light\\\\\\\",this.color=new s.a(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}r.prototype.isLight=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(23),s=n(1);class r extends i.a{constructor(t=null,e=1,n=1,i,r,o,a,l,c=s.ob,h=s.ob,u,d){super(null,o,a,l,c,h,i,r,u,d),this.image={data:t,width:e,height:n},this.magFilter=c,this.minFilter=h,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}r.prototype.isDataTexture=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=n(41),s=n(0),r=n(4);const o=new s.a,a=new s.a;class l extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"LineSegments\\\\\\\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)o.fromBufferAttribute(e,t),a.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+o.distanceTo(a);t.setAttribute(\\\\\\\"lineDistance\\\\\\\",new r.c(n,1))}else console.warn(\\\\\\\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");else t.isGeometry&&console.error(\\\\\\\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");return this}}l.prototype.isLineSegments=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(44);class s extends i.a{constructor(t=-1,e=1,n=1,i=-1,s=.1,r=2e3){super(),this.type=\\\\\\\"OrthographicCamera\\\\\\\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=s,this.far=r,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,r){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=r,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let s=n-t,r=n+t,o=i+e,a=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=t*this.view.offsetX,r=s+t*this.view.width,o-=e*this.view.offsetY,a=o-e*this.view.height}this.projectionMatrix.makeOrthographic(s,r,o,a,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}s.prototype.isOrthographicCamera=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],s=e[n-1];t:{e:{let r;n:{i:if(!(t<i)){for(let r=n+2;;){if(void 0===i){if(t<s)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,s)}if(n===r)break;if(s=i,i=e[++n],t<i)break e}r=e.length;break n}if(t>=s)break t;{const o=e[1];t<o&&(n=2,s=o);for(let r=n-2;;){if(void 0===s)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===r)break;if(i=s,s=e[--n-1],t>=s)break e}r=n,n=0}}for(;n<r;){const i=n+r>>>1;t<e[i]?r=i:n=i+1}if(i=e[n],s=e[n-1],void 0===s)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,s,t)}this._cachedIndex=n,this.intervalChanged_(n,s,i)}return this.interpolate_(n,s,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,s=t*i;for(let t=0;t!==i;++t)e[t]=n[s+t];return e}interpolate_(){throw new Error(\\\\\\\"call to abstract method\\\\\\\")}intervalChanged_(){}}i.prototype.beforeStart_=i.prototype.copySampleValue_,i.prototype.afterEnd_=i.prototype.copySampleValue_},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=n(0);const s=new i.a,r=new i.a,o=new i.a,a=new i.a,l=new i.a,c=new i.a,h=new i.a;class u{constructor(t=new i.a,e=new i.a(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,s)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=s.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(s.copy(this.direction).multiplyScalar(e).add(this.origin),s.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){r.copy(t).add(e).multiplyScalar(.5),o.copy(e).sub(t).normalize(),a.copy(this.origin).sub(r);const s=.5*t.distanceTo(e),l=-this.direction.dot(o),c=a.dot(this.direction),h=-a.dot(o),u=a.lengthSq(),d=Math.abs(1-l*l);let p,_,m,f;if(d>0)if(p=l*h-c,_=l*c-h,f=s*d,p>=0)if(_>=-f)if(_<=f){const t=1/d;p*=t,_*=t,m=p*(p+l*_+2*c)+_*(l*p+_+2*h)+u}else _=s,p=Math.max(0,-(l*_+c)),m=-p*p+_*(_+2*h)+u;else _=-s,p=Math.max(0,-(l*_+c)),m=-p*p+_*(_+2*h)+u;else _<=-f?(p=Math.max(0,-(-l*s+c)),_=p>0?-s:Math.min(Math.max(-s,-h),s),m=-p*p+_*(_+2*h)+u):_<=f?(p=0,_=Math.min(Math.max(-s,-h),s),m=_*(_+2*h)+u):(p=Math.max(0,-(l*s+c)),_=p>0?s:Math.min(Math.max(-s,-h),s),m=-p*p+_*(_+2*h)+u);else _=l>0?-s:s,p=Math.max(0,-(l*_+c)),m=-p*p+_*(_+2*h)+u;return n&&n.copy(this.direction).multiplyScalar(p).add(this.origin),i&&i.copy(o).multiplyScalar(_).add(r),m}intersectSphere(t,e){s.subVectors(t.center,this.origin);const n=s.dot(this.direction),i=s.dot(s)-n*n,r=t.radius*t.radius;if(i>r)return null;const o=Math.sqrt(r-i),a=n-o,l=n+o;return a<0&&l<0?null:a<0?this.at(l,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,r,o,a;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(s=(t.min.y-u.y)*c,r=(t.max.y-u.y)*c):(s=(t.max.y-u.y)*c,r=(t.min.y-u.y)*c),n>r||s>i?null:((s>n||n!=n)&&(n=s),(r<i||i!=i)&&(i=r),h>=0?(o=(t.min.z-u.z)*h,a=(t.max.z-u.z)*h):(o=(t.max.z-u.z)*h,a=(t.min.z-u.z)*h),n>a||o>i?null:((o>n||n!=n)&&(n=o),(a<i||i!=i)&&(i=a),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,s)}intersectTriangle(t,e,n,i,s){l.subVectors(e,t),c.subVectors(n,t),h.crossVectors(l,c);let r,o=this.direction.dot(h);if(o>0){if(i)return null;r=1}else{if(!(o<0))return null;r=-1,o=-o}a.subVectors(this.origin,t);const u=r*this.direction.dot(c.crossVectors(a,c));if(u<0)return null;const d=r*this.direction.dot(l.cross(a));if(d<0)return null;if(u+d>o)return null;const p=-r*a.dot(h);return p<0?null:this.at(p/o,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return _}));var i=n(0);const s=new i.a,r=new i.a,o=new i.a,a=new i.a,l=new i.a,c=new i.a,h=new i.a,u=new i.a,d=new i.a,p=new i.a;class _{constructor(t=new i.a,e=new i.a,n=new i.a){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),s.subVectors(t,e),i.cross(s);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,a){s.subVectors(i,e),r.subVectors(n,e),o.subVectors(t,e);const l=s.dot(s),c=s.dot(r),h=s.dot(o),u=r.dot(r),d=r.dot(o),p=l*u-c*c;if(0===p)return a.set(-2,-1,-1);const _=1/p,m=(u*h-c*d)*_,f=(l*d-c*h)*_;return a.set(1-m-f,f,m)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,a),a.x>=0&&a.y>=0&&a.x+a.y<=1}static getUV(t,e,n,i,s,r,o,l){return this.getBarycoord(t,e,n,i,a),l.set(0,0),l.addScaledVector(s,a.x),l.addScaledVector(r,a.y),l.addScaledVector(o,a.z),l}static isFrontFacing(t,e,n,i){return s.subVectors(n,e),r.subVectors(t,e),s.cross(r).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return s.subVectors(this.c,this.b),r.subVectors(this.a,this.b),.5*s.cross(r).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return _.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return _.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return _.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return _.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return _.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,s=this.c;let r,o;l.subVectors(i,n),c.subVectors(s,n),u.subVectors(t,n);const a=l.dot(u),_=c.dot(u);if(a<=0&&_<=0)return e.copy(n);d.subVectors(t,i);const m=l.dot(d),f=c.dot(d);if(m>=0&&f<=m)return e.copy(i);const g=a*f-m*_;if(g<=0&&a>=0&&m<=0)return r=a/(a-m),e.copy(n).addScaledVector(l,r);p.subVectors(t,s);const v=l.dot(p),y=c.dot(p);if(y>=0&&v<=y)return e.copy(s);const x=v*_-a*y;if(x<=0&&_>=0&&y<=0)return o=_/(_-y),e.copy(n).addScaledVector(c,o);const b=m*y-v*f;if(b<=0&&f-m>=0&&v-y>=0)return h.subVectors(s,i),o=(f-m)/(f-m+(v-y)),e.copy(i).addScaledVector(h,o);const w=1/(b+x+g);return r=x*w,o=g*w,e.copy(n).addScaledVector(l,r).addScaledVector(c,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return f}));var i=n(18),s=n(39),r=n(5),o=n(10),a=n(0),l=n(24),c=n(7),h=n(4);const u=new a.a,d=new a.a,p=new r.a,_=new s.a,m=new i.a;class f extends o.a{constructor(t=new c.a,e=new l.a){super(),this.type=\\\\\\\"Line\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)u.fromBufferAttribute(e,t-1),d.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=u.distanceTo(d);t.setAttribute(\\\\\\\"lineDistance\\\\\\\",new h.c(n,1))}else console.warn(\\\\\\\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");else t.isGeometry&&console.error(\\\\\\\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,s=t.params.Line.threshold,r=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),m.copy(n.boundingSphere),m.applyMatrix4(i),m.radius+=s,!1===t.ray.intersectsSphere(m))return;p.copy(i).invert(),_.copy(t.ray).applyMatrix4(p);const o=s/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=new a.a,h=new a.a,u=new a.a,d=new a.a,f=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,s=n.attributes.position;if(null!==i){for(let n=Math.max(0,r.start),o=Math.min(i.count,r.start+r.count)-1;n<o;n+=f){const r=i.getX(n),o=i.getX(n+1);c.fromBufferAttribute(s,r),h.fromBufferAttribute(s,o);if(_.distanceSqToSegment(c,h,d,u)>l)continue;d.applyMatrix4(this.matrixWorld);const a=t.ray.origin.distanceTo(d);a<t.near||a>t.far||e.push({distance:a,point:u.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,r.start),i=Math.min(s.count,r.start+r.count)-1;n<i;n+=f){c.fromBufferAttribute(s,n),h.fromBufferAttribute(s,n+1);if(_.distanceSqToSegment(c,h,d,u)>l)continue;d.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(d);i<t.near||i>t.far||e.push({distance:i,point:u.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\\\\\\\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}}f.prototype.isLine=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(12),s=n(6);class r extends i.a{constructor(t){super(),this.type=\\\\\\\"PointsMaterial\\\\\\\",this.color=new s.a(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this}}r.prototype.isPointsMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{static decodeText(t){if(\\\\\\\"undefined\\\\\\\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\\\\\\\"\\\\\\\";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\\\\\\\"/\\\\\\\");return-1===e?\\\\\\\"./\\\\\\\":t.substr(0,e+1)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(5),s=n(10);class r extends s.a{constructor(){super(),this.type=\\\\\\\"Camera\\\\\\\",this.matrixWorldInverse=new i.a,this.projectionMatrix=new i.a,this.projectionMatrixInverse=new i.a}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}r.prototype.isCamera=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return u}));var i=n(5),s=n(2),r=n(0),o=n(9),a=n(60);const l=new i.a,c=new r.a,h=new r.a;class u{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new s.a(512,512),this.map=null,this.mapPass=null,this.matrix=new i.a,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new a.a,this._frameExtents=new s.a(1,1),this._viewportCount=1,this._viewports=[new o.a(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;c.setFromMatrixPosition(t.matrixWorld),e.position.copy(c),h.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(h),e.updateMatrixWorld(),l.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(l),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(47),s=n(3);class r extends i.a{constructor(t){super(t),this.uuid=s.h(),this.type=\\\\\\\"Shape\\\\\\\",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new i.a).fromJSON(n))}return this}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return d}));var i=n(2),s=n(25),r=n(74),o=n(79);class a extends s.a{constructor(){super(),this.type=\\\\\\\"CurvePath\\\\\\\",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new r.a(e,t))}getPoint(t,e){const n=t*this.getLength(),i=this.getCurveLengths();let s=0;for(;s<i.length;){if(i[s]>=n){const t=i[s]-n,r=this.curves[s],o=r.getLength(),a=0===o?0:1-t/o;return r.getPointAt(a,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,s=this.curves;i<s.length;i++){const r=s[i],o=r&&r.isEllipseCurve?2*t:r&&(r.isLineCurve||r.isLineCurve3)?1:r&&r.isSplineCurve?t*r.points.length:t,a=r.getPoints(o);for(let t=0;t<a.length;t++){const i=a[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new o[n.type]).fromJSON(n))}return this}}var l=n(57),c=n(77),h=n(75),u=n(76);class d extends a{constructor(t){super(),this.type=\\\\\\\"Path\\\\\\\",this.currentPoint=new i.a,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new r.a(this.currentPoint.clone(),new i.a(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,s){const r=new u.a(this.currentPoint.clone(),new i.a(t,e),new i.a(n,s));return this.curves.push(r),this.currentPoint.set(n,s),this}bezierCurveTo(t,e,n,s,r,o){const a=new h.a(this.currentPoint.clone(),new i.a(t,e),new i.a(n,s),new i.a(r,o));return this.curves.push(a),this.currentPoint.set(r,o),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new c.a(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,s,r){const o=this.currentPoint.x,a=this.currentPoint.y;return this.absarc(t+o,e+a,n,i,s,r),this}absarc(t,e,n,i,s,r){return this.absellipse(t,e,n,n,i,s,r),this}ellipse(t,e,n,i,s,r,o,a){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,i,s,r,o,a),this}absellipse(t,e,n,i,s,r,o,a){const c=new l.a(t,e,n,i,s,r,o,a);if(this.curves.length>0){const t=c.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=n(6),s=n(47),r=n(46),o=n(53);class a{constructor(){this.type=\\\\\\\"ShapePath\\\\\\\",this.color=new i.a,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new s.a,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,s,r){return this.currentPath.bezierCurveTo(t,e,n,i,s,r),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t,e){function n(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],s=new r.a;s.curves=i.curves,e.push(s)}return e}function i(t,e){const n=e.length;let i=!1;for(let s=n-1,r=0;r<n;s=r++){let n=e[s],o=e[r],a=o.x-n.x,l=o.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[r],a=-a,o=e[s],l=-l),t.y<n.y||t.y>o.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-a*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(o.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=o.x)return!0}}return i}const s=o.a.isClockWise,a=this.subPaths;if(0===a.length)return[];if(!0===e)return n(a);let l,c,h;const u=[];if(1===a.length)return c=a[0],h=new r.a,h.curves=c.curves,u.push(h),u;let d=!s(a[0].getPoints());d=t?!d:d;const p=[],_=[];let m,f,g=[],v=0;_[v]=void 0,g[v]=[];for(let e=0,n=a.length;e<n;e++)c=a[e],m=c.getPoints(),l=s(m),l=t?!l:l,l?(!d&&_[v]&&v++,_[v]={s:new r.a,p:m},_[v].s.curves=c.curves,d&&v++,g[v]=[]):g[v].push({h:c,p:m[0]});if(!_[0])return n(a);if(_.length>1){let t=!1;const e=[];for(let t=0,e=_.length;t<e;t++)p[t]=[];for(let n=0,s=_.length;n<s;n++){const s=g[n];for(let r=0;r<s.length;r++){const o=s[r];let a=!0;for(let s=0;s<_.length;s++)i(o.p,_[s].p)&&(n!==s&&e.push({froms:n,tos:s,hole:r}),a?(a=!1,p[s].push(o)):t=!0);a&&p[n].push(o)}}e.length>0&&(t||(g=p))}for(let t=0,e=_.length;t<e;t++){h=_[t].s,u.push(h),f=g[t];for(let t=0,e=f.length;t<e;t++)h.holes.push(f[t].h)}return u}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return _}));var i=n(18),s=n(39),r=n(5),o=n(10),a=n(0),l=n(42),c=n(7);const h=new r.a,u=new s.a,d=new i.a,p=new a.a;class _ extends o.a{constructor(t=new c.a,e=new l.a){super(),this.type=\\\\\\\"Points\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,s=t.params.Points.threshold,r=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),d.copy(n.boundingSphere),d.applyMatrix4(i),d.radius+=s,!1===t.ray.intersectsSphere(d))return;h.copy(i).invert(),u.copy(t.ray).applyMatrix4(h);const o=s/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o;if(n.isBufferGeometry){const s=n.index,o=n.attributes.position;if(null!==s){for(let n=Math.max(0,r.start),l=Math.min(s.count,r.start+r.count);n<l;n++){const r=s.getX(n);p.fromBufferAttribute(o,r),m(p,r,a,i,t,e,this)}}else{for(let n=Math.max(0,r.start),s=Math.min(o.count,r.start+r.count);n<s;n++)p.fromBufferAttribute(o,n),m(p,n,a,i,t,e,this)}}else console.error(\\\\\\\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}}function m(t,e,n,i,s,r,o){const l=u.distanceSqToPoint(t);if(l<n){const n=new a.a;u.closestPointToPoint(t,n),n.applyMatrix4(i);const c=s.ray.origin.distanceTo(n);if(c<s.near||c>s.far)return;r.push({distance:c,distanceToRay:Math.sqrt(l),point:n,index:e,face:null,object:o})}}_.prototype.isPoints=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(26);class s extends i.a{}s.prototype.ValueTypeName=\\\\\\\"number\\\\\\\"},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(26);class s extends i.a{}s.prototype.ValueTypeName=\\\\\\\"vector\\\\\\\"},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(10);class s extends i.a{constructor(){super(),this.type=\\\\\\\"Bone\\\\\\\"}}s.prototype.isBone=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return C}));const i=function(t,e,n=2){const i=e&&e.length,a=i?e[0]*n:t.length;let l=s(t,0,a,n,!0);const c=[];if(!l||l.next===l.prev)return c;let h,p,_,f,g,v,y;if(i&&(l=function(t,e,n,i){const o=[];let a,l,c,h,p;for(a=0,l=e.length;a<l;a++)c=e[a]*i,h=a<l-1?e[a+1]*i:t.length,p=s(t,c,h,i,!1),p===p.next&&(p.steiner=!0),o.push(m(p));for(o.sort(u),a=0;a<o.length;a++)d(o[a],n),n=r(n,n.next);return n}(t,e,l,n)),t.length>80*n){h=_=t[0],p=f=t[1];for(let e=n;e<a;e+=n)g=t[e],v=t[e+1],g<h&&(h=g),v<p&&(p=v),g>_&&(_=g),v>f&&(f=v);y=Math.max(_-h,f-p),y=0!==y?1/y:0}return o(l,c,n,h,p,y),c};function s(t,e,n,i,s){let r,o;if(s===function(t,e,n,i){let s=0;for(let r=e,o=n-i;r<n;r+=i)s+=(t[o]-t[r])*(t[r+1]+t[o+1]),o=r;return s}(t,e,n,i)>0)for(r=e;r<n;r+=i)o=M(r,t[r],t[r+1],o);else for(r=n-i;r>=e;r-=i)o=M(r,t[r],t[r+1],o);return o&&y(o,o.next)&&(E(o),o=o.next),o}function r(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!y(i,i.next)&&0!==v(i.prev,i,i.next))i=i.next;else{if(E(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function o(t,e,n,i,s,u,d){if(!t)return;!d&&u&&function(t,e,n,i){let s=t;do{null===s.z&&(s.z=_(s.x,s.y,e,n,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next}while(s!==t);s.prevZ.nextZ=null,s.prevZ=null,function(t){let e,n,i,s,r,o,a,l,c=1;do{for(n=t,t=null,r=null,o=0;n;){for(o++,i=n,a=0,e=0;e<c&&(a++,i=i.nextZ,i);e++);for(l=c;a>0||l>0&&i;)0!==a&&(0===l||!i||n.z<=i.z)?(s=n,n=n.nextZ,a--):(s=i,i=i.nextZ,l--),r?r.nextZ=s:t=s,s.prevZ=r,r=s;n=i}r.nextZ=null,c*=2}while(o>1)}(s)}(t,i,s,u);let p,m,f=t;for(;t.prev!==t.next;)if(p=t.prev,m=t.next,u?l(t,i,s,u):a(t))e.push(p.i/n),e.push(t.i/n),e.push(m.i/n),E(t),t=m.next,f=m.next;else if((t=m)===f){d?1===d?o(t=c(r(t),e,n),e,n,i,s,u,2):2===d&&h(t,e,n,i,s,u):o(r(t),e,n,i,s,u,1);break}}function a(t){const e=t.prev,n=t,i=t.next;if(v(e,n,i)>=0)return!1;let s=t.next.next;for(;s!==t.prev;){if(f(e.x,e.y,n.x,n.y,i.x,i.y,s.x,s.y)&&v(s.prev,s,s.next)>=0)return!1;s=s.next}return!0}function l(t,e,n,i){const s=t.prev,r=t,o=t.next;if(v(s,r,o)>=0)return!1;const a=s.x<r.x?s.x<o.x?s.x:o.x:r.x<o.x?r.x:o.x,l=s.y<r.y?s.y<o.y?s.y:o.y:r.y<o.y?r.y:o.y,c=s.x>r.x?s.x>o.x?s.x:o.x:r.x>o.x?r.x:o.x,h=s.y>r.y?s.y>o.y?s.y:o.y:r.y>o.y?r.y:o.y,u=_(a,l,e,n,i),d=_(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&f(s.x,s.y,r.x,r.y,o.x,o.y,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&f(s.x,s.y,r.x,r.y,o.x,o.y,m.x,m.y)&&v(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&f(s.x,s.y,r.x,r.y,o.x,o.y,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&f(s.x,s.y,r.x,r.y,o.x,o.y,m.x,m.y)&&v(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function c(t,e,n){let i=t;do{const s=i.prev,r=i.next.next;!y(s,r)&&x(s,i,i.next,r)&&T(s,r)&&T(r,s)&&(e.push(s.i/n),e.push(i.i/n),e.push(r.i/n),E(i),E(i.next),i=t=r),i=i.next}while(i!==t);return r(i)}function h(t,e,n,i,s,a){let l=t;do{let t=l.next.next;for(;t!==l.prev;){if(l.i!==t.i&&g(l,t)){let c=A(l,t);return l=r(l,l.next),c=r(c,c.next),o(l,e,n,i,s,a),void o(c,e,n,i,s,a)}t=t.next}l=l.next}while(l!==t)}function u(t,e){return t.x-e.x}function d(t,e){if(e=function(t,e){let n=e;const i=t.x,s=t.y;let r,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){const t=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>o){if(o=t,t===i){if(s===n.y)return n;if(s===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r;const a=r,l=r.x,c=r.y;let h,u=1/0;n=r;do{i>=n.x&&n.x>=l&&i!==n.x&&f(s<c?i:o,s,l,c,s<c?o:i,s,n.x,n.y)&&(h=Math.abs(s-n.y)/(i-n.x),T(n,t)&&(h<u||h===u&&(n.x>r.x||n.x===r.x&&p(r,n)))&&(r=n,u=h)),n=n.next}while(n!==a);return r}(t,e)){const n=A(e,t);r(e,e.next),r(n,n.next)}}function p(t,e){return v(t.prev,t,e.prev)<0&&v(e.next,t,t.next)<0}function _(t,e,n,i,s){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*s)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*s)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function m(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function f(t,e,n,i,s,r,o,a){return(s-o)*(e-a)-(t-o)*(r-a)>=0&&(t-o)*(i-a)-(n-o)*(e-a)>=0&&(n-o)*(r-a)-(s-o)*(i-a)>=0}function g(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&x(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(T(t,e)&&T(e,t)&&function(t,e){let n=t,i=!1;const s=(t.x+e.x)/2,r=(t.y+e.y)/2;do{n.y>r!=n.next.y>r&&n.next.y!==n.y&&s<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(v(t.prev,t,e.prev)||v(t,e.prev,e))||y(t,e)&&v(t.prev,t,t.next)>0&&v(e.prev,e,e.next)>0)}function v(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function x(t,e,n,i){const s=w(v(t,e,n)),r=w(v(t,e,i)),o=w(v(n,i,t)),a=w(v(n,i,e));return s!==r&&o!==a||(!(0!==s||!b(t,n,e))||(!(0!==r||!b(t,i,e))||(!(0!==o||!b(n,t,i))||!(0!==a||!b(n,e,i)))))}function b(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function w(t){return t>0?1:t<0?-1:0}function T(t,e){return v(t.prev,t,t.next)<0?v(t,e,t.next)>=0&&v(t,t.prev,e)>=0:v(t,e,t.prev)<0||v(t,t.next,e)<0}function A(t,e){const n=new S(t.i,t.x,t.y),i=new S(e.i,e.x,e.y),s=t.next,r=e.prev;return t.next=e,e.prev=t,n.next=s,s.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function M(t,e,n,i){const s=new S(t,e,n);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function E(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function S(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class C{static area(t){const e=t.length;let n=0;for(let i=e-1,s=0;s<e;i=s++)n+=t[i].x*t[s].y-t[s].x*t[i].y;return.5*n}static isClockWise(t){return C.area(t)<0}static triangulateShape(t,e){const n=[],s=[],r=[];N(t),L(n,t);let o=t.length;e.forEach(N);for(let t=0;t<e.length;t++)s.push(o),o+=e[t].length,L(n,e[t]);const a=i(n,s);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}}function N(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function L(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=n(1),s=n(26),r=n(38),o=n(8);class a extends r.a{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const s=this.resultBuffer,r=this.sampleValues,a=this.valueSize,l=(n-e)/(i-e);let c=t*a;for(let t=c+a;c!==t;c+=4)o.a.slerpFlat(s,0,r,c-a,r,c,l);return s}}class l extends s.a{InterpolantFactoryMethodLinear(t){return new a(this.times,this.values,this.getValueSize(),t)}}l.prototype.ValueTypeName=\\\\\\\"quaternion\\\\\\\",l.prototype.DefaultInterpolation=i.P,l.prototype.InterpolantFactoryMethodSmooth=void 0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=n(1),s=n(12),r=n(2),o=n(6);class a extends s.a{constructor(t){super(),this.defines={STANDARD:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshStandardMaterial\\\\\\\",this.color=new o.a(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new o.a(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=i.Uc,this.normalScale=new r.a(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\\\\\\\"\\\\\\\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}a.prototype.isMeshStandardMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=n(1),s=n(12),r=n(2),o=n(6);class a extends s.a{constructor(t){super(),this.type=\\\\\\\"MeshPhongMaterial\\\\\\\",this.color=new o.a(16777215),this.specular=new o.a(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new o.a(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=i.Uc,this.normalScale=new r.a(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=i.nb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}a.prototype.isMeshPhongMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(25),s=n(2);class r extends i.a{constructor(t=0,e=0,n=1,i=1,s=0,r=2*Math.PI,o=!1,a=0){super(),this.type=\\\\\\\"EllipseCurve\\\\\\\",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=s,this.aEndAngle=r,this.aClockwise=o,this.aRotation=a}getPoint(t,e){const n=e||new s.a,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const o=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=o?0:i),!0!==this.aClockwise||o||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let l=this.aX+this.xRadius*Math.cos(a),c=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=l-this.aX,i=c-this.aY;l=n*t-i*e+this.aX,c=n*e+i*t+this.aY}return n.set(l,c)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}r.prototype.isEllipseCurve=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return _}));var i=n(33),s=n(45),r=n(30),o=n(5),a=n(2),l=n(0),c=n(9);const h=new o.a,u=new l.a,d=new l.a;class p extends s.a{constructor(){super(new r.a(90,1,.5,500)),this._frameExtents=new a.a(4,2),this._viewportCount=6,this._viewports=[new c.a(2,1,1,1),new c.a(0,1,1,1),new c.a(3,1,1,1),new c.a(1,1,1,1),new c.a(3,0,1,1),new c.a(1,0,1,1)],this._cubeDirections=[new l.a(1,0,0),new l.a(-1,0,0),new l.a(0,0,1),new l.a(0,0,-1),new l.a(0,1,0),new l.a(0,-1,0)],this._cubeUps=[new l.a(0,1,0),new l.a(0,1,0),new l.a(0,1,0),new l.a(0,1,0),new l.a(0,0,1),new l.a(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),u.setFromMatrixPosition(t.matrixWorld),n.position.copy(u),d.copy(n.position),d.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(d),n.updateMatrixWorld(),i.makeTranslation(-u.x,-u.y,-u.z),h.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(h)}}p.prototype.isPointLightShadow=!0;class _ extends i.a{constructor(t,e,n=0,i=1){super(t,e),this.type=\\\\\\\"PointLight\\\\\\\",this.distance=n,this.decay=i,this.shadow=new p}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}_.prototype.isPointLight=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return a}));var i=n(2),s=n(55),r=n(6),o=n(3);class a extends s.a{constructor(t){super(),this.defines={STANDARD:\\\\\\\"\\\\\\\",PHYSICAL:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshPhysicalMaterial\\\\\\\",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new i.a(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,\\\\\\\"reflectivity\\\\\\\",{get:function(){return o.d(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.sheenTint=new r.a(0),this.sheenRoughness=1,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationTint=new r.a(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularTint=new r.a(1,1,1),this.specularTintMap=null,this._sheen=0,this._clearcoat=0,this._transmission=0,this.setValues(t)}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:\\\\\\\"\\\\\\\",PHYSICAL:\\\\\\\"\\\\\\\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.sheen=t.sheen,this.sheenTint.copy(t.sheenTint),this.sheenRoughness=t.sheenRoughness,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationTint.copy(t.attenuationTint),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularTint.copy(t.specularTint),this.specularTintMap=t.specularTintMap,this}}a.prototype.isMeshPhysicalMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=n(0),s=n(18),r=n(31);const o=new s.a,a=new i.a;class l{constructor(t=new r.a,e=new r.a,n=new r.a,i=new r.a,s=new r.a,o=new r.a){this.planes=[t,e,n,i,s,o]}set(t,e,n,i,s,r){const o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(i),o[4].copy(s),o[5].copy(r),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],s=n[1],r=n[2],o=n[3],a=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],_=n[11],m=n[12],f=n[13],g=n[14],v=n[15];return e[0].setComponents(o-i,h-a,_-u,v-m).normalize(),e[1].setComponents(o+i,h+a,_+u,v+m).normalize(),e[2].setComponents(o+s,h+l,_+d,v+f).normalize(),e[3].setComponents(o-s,h-l,_-d,v-f).normalize(),e[4].setComponents(o-r,h-c,_-p,v-g).normalize(),e[5].setComponents(o+r,h+c,_+p,v+g).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),o.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(o)}intersectsSprite(t){return o.center.set(0,0,0),o.radius=.7071067811865476,o.applyMatrix4(t.matrixWorld),this.intersectsSphere(o)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(a.x=i.normal.x>0?t.max.x:t.min.x,a.y=i.normal.y>0?t.max.y:t.min.y,a.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(a)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));const i=new Float32Array(1),s=new Int32Array(i.buffer);class r{static toHalfFloat(t){t>65504&&(console.warn(\\\\\\\"THREE.DataUtils.toHalfFloat(): value exceeds 65504.\\\\\\\"),t=65504),i[0]=t;const e=s[0];let n=e>>16&32768,r=e>>12&2047;const o=e>>23&255;return o<103?n:o>142?(n|=31744,n|=(255==o?0:1)&&8388607&e,n):o<113?(r|=2048,n|=(r>>114-o)+(r>>113-o&1),n):(n|=o-112<<10|r>>1,n+=1&r,n)}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(12),s=n(1),r=n(6);class o extends i.a{constructor(t){super(),this.type=\\\\\\\"MeshLambertMaterial\\\\\\\",this.color=new r.a(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new r.a(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=s.nb,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}o.prototype.isMeshLambertMaterial=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(17),s=n(13),r=n(20);class o extends s.a{constructor(t){super(t)}load(t,e,n,s){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const o=this,a=i.a.get(t);if(void 0!==a)return o.manager.itemStart(t),setTimeout((function(){e&&e(a),o.manager.itemEnd(t)}),0),a;const l=Object(r.b)(\\\\\\\"img\\\\\\\");function c(){l.removeEventListener(\\\\\\\"load\\\\\\\",c,!1),l.removeEventListener(\\\\\\\"error\\\\\\\",h,!1),i.a.add(t,this),e&&e(this),o.manager.itemEnd(t)}function h(e){l.removeEventListener(\\\\\\\"load\\\\\\\",c,!1),l.removeEventListener(\\\\\\\"error\\\\\\\",h,!1),s&&s(e),o.manager.itemError(t),o.manager.itemEnd(t)}return l.addEventListener(\\\\\\\"load\\\\\\\",c,!1),l.addEventListener(\\\\\\\"error\\\\\\\",h,!1),\\\\\\\"data:\\\\\\\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(l.crossOrigin=this.crossOrigin),o.manager.itemStart(t),l.src=t,l}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return p}));var i=n(19),s=n(26),r=n(1);class o extends s.a{}o.prototype.ValueTypeName=\\\\\\\"bool\\\\\\\",o.prototype.ValueBufferType=Array,o.prototype.DefaultInterpolation=r.O,o.prototype.InterpolantFactoryMethodLinear=void 0,o.prototype.InterpolantFactoryMethodSmooth=void 0;class a extends s.a{}a.prototype.ValueTypeName=\\\\\\\"color\\\\\\\";var l=n(50),c=n(54);class h extends s.a{}h.prototype.ValueTypeName=\\\\\\\"string\\\\\\\",h.prototype.ValueBufferType=Array,h.prototype.DefaultInterpolation=r.O,h.prototype.InterpolantFactoryMethodLinear=void 0,h.prototype.InterpolantFactoryMethodSmooth=void 0;var u=n(51),d=n(3);class p{constructor(t,e=-1,n,i=r.wb){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=d.h(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,s=n.length;t!==s;++t)e.push(_(n[t]).scale(i));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(s.a.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,s){const r=e.length,o=[];for(let t=0;t<r;t++){let a=[],c=[];a.push((t+r-1)%r,t,(t+1)%r),c.push(0,1,0);const h=i.a.getKeyframeOrder(a);a=i.a.sortedArray(a,1,h),c=i.a.sortedArray(c,1,h),s||0!==a[0]||(a.push(r),c.push(c[0])),o.push(new l.a(\\\\\\\".morphTargetInfluences[\\\\\\\"+e[t].name+\\\\\\\"]\\\\\\\",a,c).scale(1/n))}return new this(t,-1,o)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},s=/^([\\\\w-]*?)([\\\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],r=n.name.match(s);if(r&&r.length>1){const t=r[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const r=[];for(const t in i)r.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return r}static parseAnimation(t,e){if(!t)return console.error(\\\\\\\"THREE.AnimationClip: No animation in JSONLoader data.\\\\\\\"),null;const n=function(t,e,n,s,r){if(0!==n.length){const o=[],a=[];i.a.flattenJSON(n,o,a,s),0!==o.length&&r.push(new t(e,o,a))}},s=[],r=t.name||\\\\\\\"default\\\\\\\",o=t.fps||30,a=t.blendMode;let h=t.length||-1;const d=t.hierarchy||[];for(let t=0;t<d.length;t++){const i=d[t].keys;if(i&&0!==i.length)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let n=0;n<i[e].morphTargets.length;n++)t[i[e].morphTargets[n]]=-1;for(const n in t){const t=[],r=[];for(let s=0;s!==i[e].morphTargets.length;++s){const s=i[e];t.push(s.time),r.push(s.morphTarget===n?1:0)}s.push(new l.a(\\\\\\\".morphTargetInfluence[\\\\\\\"+n+\\\\\\\"]\\\\\\\",t,r))}h=t.length*(o||1)}else{const r=\\\\\\\".bones[\\\\\\\"+e[t].name+\\\\\\\"]\\\\\\\";n(u.a,r+\\\\\\\".position\\\\\\\",i,\\\\\\\"pos\\\\\\\",s),n(c.a,r+\\\\\\\".quaternion\\\\\\\",i,\\\\\\\"rot\\\\\\\",s),n(u.a,r+\\\\\\\".scale\\\\\\\",i,\\\\\\\"scl\\\\\\\",s)}}if(0===s.length)return null;return new this(r,h,s,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function _(t){if(void 0===t.type)throw new Error(\\\\\\\"THREE.KeyframeTrack: track type undefined, can not parse\\\\\\\");const e=function(t){switch(t.toLowerCase()){case\\\\\\\"scalar\\\\\\\":case\\\\\\\"double\\\\\\\":case\\\\\\\"float\\\\\\\":case\\\\\\\"number\\\\\\\":case\\\\\\\"integer\\\\\\\":return l.a;case\\\\\\\"vector\\\\\\\":case\\\\\\\"vector2\\\\\\\":case\\\\\\\"vector3\\\\\\\":case\\\\\\\"vector4\\\\\\\":return u.a;case\\\\\\\"color\\\\\\\":return a;case\\\\\\\"quaternion\\\\\\\":return c.a;case\\\\\\\"bool\\\\\\\":case\\\\\\\"boolean\\\\\\\":return o;case\\\\\\\"string\\\\\\\":return h}throw new Error(\\\\\\\"THREE.KeyframeTrack: Unsupported typeName: \\\\\\\"+t)}(t.type);if(void 0===t.times){const e=[],n=[];i.a.flattenJSON(t.keys,e,n,\\\\\\\"value\\\\\\\"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(0),s=n(4);const r=new i.a;class o{constructor(t,e,n,i=!1){this.name=\\\\\\\"\\\\\\\",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)r.x=this.getX(e),r.y=this.getY(e),r.z=this.getZ(e),r.applyMatrix4(t),this.setXYZ(e,r.x,r.y,r.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)r.x=this.getX(e),r.y=this.getY(e),r.z=this.getZ(e),r.applyNormalMatrix(t),this.setXYZ(e,r.x,r.y,r.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)r.x=this.getX(e),r.y=this.getY(e),r.z=this.getZ(e),r.transformDirection(t),this.setXYZ(e,r.x,r.y,r.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,s){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=s,this}clone(t){if(void 0===t){console.log(\\\\\\\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\\\\\\\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new s.a(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new o(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\\\\\\\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\\\\\\\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}o.prototype.isInterleavedBufferAttribute=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return p}));const i=\\\\\\\"\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/\\\\\\\",s=new RegExp(\\\\\\\"[\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/]\\\\\\\",\\\\\\\"g\\\\\\\"),r=\\\\\\\"[^\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/]\\\\\\\",o=\\\\\\\"[^\\\\\\\"+i.replace(\\\\\\\"\\\\\\\\.\\\\\\\",\\\\\\\"\\\\\\\")+\\\\\\\"]\\\\\\\",a=/((?:WC+[\\\\/:])*)/.source.replace(\\\\\\\"WC\\\\\\\",r),l=/(WCOD+)?/.source.replace(\\\\\\\"WCOD\\\\\\\",o),c=/(?:\\\\.(WC+)(?:\\\\[(.+)\\\\])?)?/.source.replace(\\\\\\\"WC\\\\\\\",r),h=/\\\\.(WC+)(?:\\\\[(.+)\\\\])?/.source.replace(\\\\\\\"WC\\\\\\\",r),u=new RegExp(\\\\\\\"^\\\\\\\"+a+l+c+h+\\\\\\\"$\\\\\\\"),d=[\\\\\\\"material\\\\\\\",\\\\\\\"materials\\\\\\\",\\\\\\\"bones\\\\\\\"];class p{constructor(t,e,n){this.path=e,this.parsedPath=n||p.parseTrackName(e),this.node=p.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new p.Composite(t,e,n):new p(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\\\s/g,\\\\\\\"_\\\\\\\").replace(s,\\\\\\\"\\\\\\\")}static parseTrackName(t){const e=u.exec(t);if(!e)throw new Error(\\\\\\\"PropertyBinding: Cannot parse trackName: \\\\\\\"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(\\\\\\\".\\\\\\\");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==d.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\\\\\\\"PropertyBinding: can not parse propertyName from trackName: \\\\\\\"+t);return n}static findNode(t,e){if(!e||\\\\\\\"\\\\\\\"===e||\\\\\\\".\\\\\\\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const s=t[i];if(s.name===e||s.uuid===e)return s;const r=n(s.children);if(r)return r}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let s=e.propertyIndex;if(t||(t=p.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to update node for track: \\\\\\\"+this.path+\\\\\\\" but it wasn't found.\\\\\\\");if(n){let i=e.objectIndex;switch(n){case\\\\\\\"materials\\\\\\\":if(!t.material)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\\\\\\\",this);if(!t.material.materials)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\\\\\\\",this);t=t.material.materials;break;case\\\\\\\"bones\\\\\\\":if(!t.skeleton)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\\\\\\\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\\\\\\\",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\\\\\\\",this,t);t=t[i]}}const r=t[i];if(void 0===r){const n=e.nodeName;return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to update property for track: \\\\\\\"+n+\\\\\\\".\\\\\\\"+i+\\\\\\\" but it wasn't found.\\\\\\\",t)}let o=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?o=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(o=this.Versioning.MatrixWorldNeedsUpdate);let a=this.BindingType.Direct;if(void 0!==s){if(\\\\\\\"morphTargetInfluences\\\\\\\"===i){if(!t.geometry)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\\\\\\\",this);if(!t.geometry.isBufferGeometry)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\",this);if(!t.geometry.morphAttributes)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\\\\\\\",this);void 0!==t.morphTargetDictionary[s]&&(s=t.morphTargetDictionary[s])}a=this.BindingType.ArrayElement,this.resolvedProperty=r,this.propertyIndex=s}else void 0!==r.fromArray&&void 0!==r.toArray?(a=this.BindingType.HasFromToArray,this.resolvedProperty=r):Array.isArray(r)?(a=this.BindingType.EntireArray,this.resolvedProperty=r):this.propertyName=i;this.getValue=this.GetterByBindingType[a],this.setValue=this.SetterByBindingTypeAndVersioning[a][o]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}p.Composite=class{constructor(t,e,n){const i=n||p.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},p.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},p.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},p.prototype.GetterByBindingType=[p.prototype._getValue_direct,p.prototype._getValue_array,p.prototype._getValue_arrayElement,p.prototype._getValue_toArray],p.prototype.SetterByBindingTypeAndVersioning=[[p.prototype._setValue_direct,p.prototype._setValue_direct_setNeedsUpdate,p.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[p.prototype._setValue_array,p.prototype._setValue_array_setNeedsUpdate,p.prototype._setValue_array_setMatrixWorldNeedsUpdate],[p.prototype._setValue_arrayElement,p.prototype._setValue_arrayElement_setNeedsUpdate,p.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[p.prototype._setValue_fromArray,p.prototype._setValue_fromArray_setNeedsUpdate,p.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]]},,function(t,e,n){var i=n(119),s=\\\\\\\"object\\\\\\\"==typeof self&&self&&self.Object===Object&&self,r=i||s||Function(\\\\\\\"return this\\\\\\\")();t.exports=r},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return d}));var i=n(14),s=n(5),r=n(0),o=n(9);const a=new r.a,l=new o.a,c=new o.a,h=new r.a,u=new s.a;class d extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"SkinnedMesh\\\\\\\",this.bindMode=\\\\\\\"attached\\\\\\\",this.bindMatrix=new s.a,this.bindMatrixInverse=new s.a}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new o.a,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\\\\\\\"attached\\\\\\\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\\\\\\\"detached\\\\\\\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\\\\\\\"THREE.SkinnedMesh: Unrecognized bindMode: \\\\\\\"+this.bindMode)}boneTransform(t,e){const n=this.skeleton,i=this.geometry;l.fromBufferAttribute(i.attributes.skinIndex,t),c.fromBufferAttribute(i.attributes.skinWeight,t),a.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=c.getComponent(t);if(0!==i){const s=l.getComponent(t);u.multiplyMatrices(n.bones[s].matrixWorld,n.boneInverses[s]),e.addScaledVector(h.copy(a).applyMatrix4(u),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}d.prototype.isSkinnedMesh=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(1),s=n(38);class r extends s.a{constructor(t,e,n,s){super(t,e,n,s),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:i.id,endingEnd:i.id}}intervalChanged_(t,e,n){const s=this.parameterPositions;let r=t-2,o=t+1,a=s[r],l=s[o];if(void 0===a)switch(this.getSettings_().endingStart){case i.kd:r=t,a=2*e-n;break;case i.hd:r=s.length-2,a=e+s[r]-s[r+1];break;default:r=t,a=n}if(void 0===l)switch(this.getSettings_().endingEnd){case i.kd:o=t,l=2*n-e;break;case i.hd:o=1,l=n+s[1]-s[0];break;default:o=t-1,l=e}const c=.5*(n-e),h=this.valueSize;this._weightPrev=c/(e-a),this._weightNext=c/(l-n),this._offsetPrev=r*h,this._offsetNext=o*h}interpolate_(t,e,n,i){const s=this.resultBuffer,r=this.sampleValues,o=this.valueSize,a=t*o,l=a-o,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),_=p*p,m=_*p,f=-u*m+2*u*_-u*p,g=(1+u)*m+(-1.5-2*u)*_+(-.5+u)*p+1,v=(-1-d)*m+(1.5+d)*_+.5*p,y=d*m-d*_;for(let t=0;t!==o;++t)s[t]=f*r[c+t]+g*r[l+t]+v*r[a+t]+y*r[h+t];return s}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(38);class s extends i.a{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const s=this.resultBuffer,r=this.sampleValues,o=this.valueSize,a=t*o,l=a-o,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==o;++t)s[t]=r[l+t]*h+r[a+t]*c;return s}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return l}));var i=n(33),s=n(45),r=n(37);class o extends s.a{constructor(){super(new r.a(-5,5,5,-5,.5,500))}}o.prototype.isDirectionalLightShadow=!0;var a=n(10);class l extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"DirectionalLight\\\\\\\",this.position.copy(a.a.DefaultUp),this.updateMatrix(),this.target=new a.a,this.shadow=new o}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}l.prototype.isDirectionalLight=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return c}));var i=n(33),s=n(45),r=n(3),o=n(30);class a extends s.a{constructor(){super(new o.a(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*r.b*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;n===e.fov&&i===e.aspect&&s===e.far||(e.fov=n,e.aspect=i,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}a.prototype.isSpotLightShadow=!0;var l=n(10);class c extends i.a{constructor(t,e,n=0,i=Math.PI/3,s=0,r=1){super(t,e),this.type=\\\\\\\"SpotLight\\\\\\\",this.position.copy(l.a.DefaultUp),this.updateMatrix(),this.target=new l.a,this.distance=n,this.angle=i,this.penumbra=s,this.decay=r,this.shadow=new a}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}c.prototype.isSpotLight=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(2),s=n(25);class r extends s.a{constructor(t=new i.a,e=new i.a){super(),this.type=\\\\\\\"LineCurve\\\\\\\",this.v1=t,this.v2=e}getPoint(t,e=new i.a){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new i.a;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}r.prototype.isLineCurve=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(25),s=n(32),r=n(2);class o extends i.a{constructor(t=new r.a,e=new r.a,n=new r.a,i=new r.a){super(),this.type=\\\\\\\"CubicBezierCurve\\\\\\\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new r.a){const n=e,i=this.v0,o=this.v1,a=this.v2,l=this.v3;return n.set(Object(s.b)(t,i.x,o.x,a.x,l.x),Object(s.b)(t,i.y,o.y,a.y,l.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}o.prototype.isCubicBezierCurve=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(25),s=n(32),r=n(2);class o extends i.a{constructor(t=new r.a,e=new r.a,n=new r.a){super(),this.type=\\\\\\\"QuadraticBezierCurve\\\\\\\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new r.a){const n=e,i=this.v0,o=this.v1,a=this.v2;return n.set(Object(s.c)(t,i.x,o.x,a.x),Object(s.c)(t,i.y,o.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}o.prototype.isQuadraticBezierCurve=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(25),s=n(32),r=n(2);class o extends i.a{constructor(t=[]){super(),this.type=\\\\\\\"SplineCurve\\\\\\\",this.points=t}getPoint(t,e=new r.a){const n=e,i=this.points,o=(i.length-1)*t,a=Math.floor(o),l=o-a,c=i[0===a?a:a-1],h=i[a],u=i[a>i.length-2?i.length-1:a+1],d=i[a>i.length-3?i.length-1:a+2];return n.set(Object(s.a)(l,c.x,h.x,u.x,d.x),Object(s.a)(l,c.y,h.y,u.y,d.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new r.a).fromArray(n))}return this}}o.prototype.isSplineCurve=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return r}));var i=n(3),s=n(1);class r{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=s.Qc,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=i.h()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,s=this.stride;i<s;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=i.h()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=i.h()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}r.prototype.isInterleavedBuffer=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.r(e),n.d(e,\\\\\\\"ArcCurve\\\\\\\",(function(){return s})),n.d(e,\\\\\\\"CatmullRomCurve3\\\\\\\",(function(){return r.a})),n.d(e,\\\\\\\"CubicBezierCurve\\\\\\\",(function(){return o.a})),n.d(e,\\\\\\\"CubicBezierCurve3\\\\\\\",(function(){return h})),n.d(e,\\\\\\\"EllipseCurve\\\\\\\",(function(){return i.a})),n.d(e,\\\\\\\"LineCurve\\\\\\\",(function(){return u.a})),n.d(e,\\\\\\\"LineCurve3\\\\\\\",(function(){return d})),n.d(e,\\\\\\\"QuadraticBezierCurve\\\\\\\",(function(){return p.a})),n.d(e,\\\\\\\"QuadraticBezierCurve3\\\\\\\",(function(){return _.a})),n.d(e,\\\\\\\"SplineCurve\\\\\\\",(function(){return m.a}));var i=n(57);class s extends i.a{constructor(t,e,n,i,s,r){super(t,e,n,n,i,s,r),this.type=\\\\\\\"ArcCurve\\\\\\\"}}s.prototype.isArcCurve=!0;var r=n(85),o=n(75),a=n(25),l=n(32),c=n(0);class h extends a.a{constructor(t=new c.a,e=new c.a,n=new c.a,i=new c.a){super(),this.type=\\\\\\\"CubicBezierCurve3\\\\\\\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new c.a){const n=e,i=this.v0,s=this.v1,r=this.v2,o=this.v3;return n.set(Object(l.b)(t,i.x,s.x,r.x,o.x),Object(l.b)(t,i.y,s.y,r.y,o.y),Object(l.b)(t,i.z,s.z,r.z,o.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}h.prototype.isCubicBezierCurve3=!0;var u=n(74);class d extends a.a{constructor(t=new c.a,e=new c.a){super(),this.type=\\\\\\\"LineCurve3\\\\\\\",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new c.a){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}var p=n(76),_=n(90),m=n(77)},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(63),s=n(23),r=n(13);class o extends r.a{constructor(t){super(t)}load(t,e,n,r){const o=new s.a,a=new i.a(this.manager);return a.setCrossOrigin(this.crossOrigin),a.setPath(this.path),a.load(t,(function(t){o.image=t,o.needsUpdate=!0,void 0!==e&&e(o)}),n,r),o}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=n(1),s=n(52),r=n(5),o=n(34),a=n(3);const l=new r.a,c=new r.a;class h{constructor(t=[],e=[]){this.uuid=a.h(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn(\\\\\\\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\\\\\\\"),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new r.a)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new r.a;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let i=0,s=t.length;i<s;i++){const s=t[i]?t[i].matrixWorld:c;l.multiplyMatrices(s,e[i]),l.toArray(n,16*i)}null!==i&&(i.needsUpdate=!0)}clone(){return new h(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=a.c(t),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new o.a(e,t,t,i.Ib,i.G);return this.boneMatrices=e,this.boneTexture=n,this.boneTextureSize=t,this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let o=e[i];void 0===o&&(console.warn(\\\\\\\"THREE.Skeleton: No bone found with UUID:\\\\\\\",i),o=new s.a),this.bones.push(o),this.boneInverses.push((new r.a).fromArray(t.boneInverses[n]))}return this.init(),this}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"Skeleton\\\\\\\",generator:\\\\\\\"Skeleton.toJSON\\\\\\\"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,s=e.length;i<s;i++){const s=e[i];t.bones.push(s.uuid);const r=n[i];t.boneInverses.push(r.toArray())}return t}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return f}));var i=n(2);const s=new i.a;class r{constructor(t=new i.a(1/0,1/0),e=new i.a(-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=s.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return s.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}r.prototype.isBox2=!0;var o=n(7),a=n(22),l=n(4),c=n(13),h=n(11),u=n(47),d=n(46),p=n(48),_=n(53),m=n(0);class f extends c.a{constructor(t){super(t),this.defaultDPI=90,this.defaultUnit=\\\\\\\"px\\\\\\\"}load(t,e,n,i){const s=this,r=new a.a(s.manager);r.setPath(s.path),r.setRequestHeader(s.requestHeader),r.setWithCredentials(s.withCredentials),r.load(t,(function(n){try{e(s.parse(n))}catch(e){i?i(e):console.error(e),s.manager.itemError(t)}}),n,i)}parse(t){const e=this;function n(t,e,n,i,r,o,a,l){if(0==e||0==n)return void t.lineTo(l.x,l.y);i=i*Math.PI/180,e=Math.abs(e),n=Math.abs(n);const c=(a.x-l.x)/2,h=(a.y-l.y)/2,u=Math.cos(i)*c+Math.sin(i)*h,d=-Math.sin(i)*c+Math.cos(i)*h;let p=e*e,_=n*n;const m=u*u,f=d*d,g=m/p+f/_;if(g>1){const t=Math.sqrt(g);p=(e*=t)*e,_=(n*=t)*n}const v=p*f+_*m,y=(p*_-v)/v;let x=Math.sqrt(Math.max(0,y));r===o&&(x=-x);const b=x*e*d/n,w=-x*n*u/e,T=Math.cos(i)*b-Math.sin(i)*w+(a.x+l.x)/2,A=Math.sin(i)*b+Math.cos(i)*w+(a.y+l.y)/2,M=s(1,0,(u-b)/e,(d-w)/n),E=s((u-b)/e,(d-w)/n,(-u-b)/e,(-d-w)/n)%(2*Math.PI);t.currentPath.absellipse(T,A,e,n,M,M+E,0===o,i)}function s(t,e,n,i){const s=t*n+e*i,r=Math.sqrt(t*t+e*e)*Math.sqrt(n*n+i*i);let o=Math.acos(Math.max(-1,Math.min(1,s/r)));return t*i-e*n<0&&(o=-o),o}function r(t,e){e=Object.assign({},e);let n={};if(t.hasAttribute(\\\\\\\"class\\\\\\\")){const e=t.getAttribute(\\\\\\\"class\\\\\\\").split(/\\\\s/).filter(Boolean).map((t=>t.trim()));for(let t=0;t<e.length;t++)n=Object.assign(n,v[\\\\\\\".\\\\\\\"+e[t]])}function i(i,s,r){void 0===r&&(r=function(t){return t.startsWith(\\\\\\\"url\\\\\\\")&&console.warn(\\\\\\\"SVGLoader: url access in attributes is not implemented.\\\\\\\"),t}),t.hasAttribute(i)&&(e[s]=r(t.getAttribute(i))),n[i]&&(e[s]=r(n[i])),t.style&&\\\\\\\"\\\\\\\"!==t.style[i]&&(e[s]=r(t.style[i]))}function s(t){return Math.max(0,Math.min(1,d(t)))}function r(t){return Math.max(0,d(t))}return t.hasAttribute(\\\\\\\"id\\\\\\\")&&(n=Object.assign(n,v[\\\\\\\"#\\\\\\\"+t.getAttribute(\\\\\\\"id\\\\\\\")])),i(\\\\\\\"fill\\\\\\\",\\\\\\\"fill\\\\\\\"),i(\\\\\\\"fill-opacity\\\\\\\",\\\\\\\"fillOpacity\\\\\\\",s),i(\\\\\\\"fill-rule\\\\\\\",\\\\\\\"fillRule\\\\\\\"),i(\\\\\\\"opacity\\\\\\\",\\\\\\\"opacity\\\\\\\",s),i(\\\\\\\"stroke\\\\\\\",\\\\\\\"stroke\\\\\\\"),i(\\\\\\\"stroke-opacity\\\\\\\",\\\\\\\"strokeOpacity\\\\\\\",s),i(\\\\\\\"stroke-width\\\\\\\",\\\\\\\"strokeWidth\\\\\\\",r),i(\\\\\\\"stroke-linejoin\\\\\\\",\\\\\\\"strokeLineJoin\\\\\\\"),i(\\\\\\\"stroke-linecap\\\\\\\",\\\\\\\"strokeLineCap\\\\\\\"),i(\\\\\\\"stroke-miterlimit\\\\\\\",\\\\\\\"strokeMiterLimit\\\\\\\",r),i(\\\\\\\"visibility\\\\\\\",\\\\\\\"visibility\\\\\\\"),e}function o(t,e){return t-(e-t)}function a(t,e,n){if(\\\\\\\"string\\\\\\\"!=typeof t)throw new TypeError(\\\\\\\"Invalid input: \\\\\\\"+typeof t);const i={SEPARATOR:/[ \\\\t\\\\r\\\\n\\\\,.\\\\-+]/,WHITESPACE:/[ \\\\t\\\\r\\\\n]/,DIGIT:/[\\\\d]/,SIGN:/[-+]/,POINT:/\\\\./,COMMA:/,/,EXP:/e/i,FLAGS:/[01]/};let s=0,r=!0,o=\\\\\\\"\\\\\\\",a=\\\\\\\"\\\\\\\";const l=[];function c(t,e,n){const i=new SyntaxError('Unexpected character \\\\\\\"'+t+'\\\\\\\" at index '+e+\\\\\\\".\\\\\\\");throw i.partial=n,i}function h(){\\\\\\\"\\\\\\\"!==o&&(\\\\\\\"\\\\\\\"===a?l.push(Number(o)):l.push(Number(o)*Math.pow(10,Number(a)))),o=\\\\\\\"\\\\\\\",a=\\\\\\\"\\\\\\\"}let u;const d=t.length;for(let p=0;p<d;p++)if(u=t[p],Array.isArray(e)&&e.includes(l.length%n)&&i.FLAGS.test(u))s=1,o=u,h();else{if(0===s){if(i.WHITESPACE.test(u))continue;if(i.DIGIT.test(u)||i.SIGN.test(u)){s=1,o=u;continue}if(i.POINT.test(u)){s=2,o=u;continue}i.COMMA.test(u)&&(r&&c(u,p,l),r=!0)}if(1===s){if(i.DIGIT.test(u)){o+=u;continue}if(i.POINT.test(u)){o+=u,s=2;continue}if(i.EXP.test(u)){s=3;continue}i.SIGN.test(u)&&1===o.length&&i.SIGN.test(o[0])&&c(u,p,l)}if(2===s){if(i.DIGIT.test(u)){o+=u;continue}if(i.EXP.test(u)){s=3;continue}i.POINT.test(u)&&\\\\\\\".\\\\\\\"===o[o.length-1]&&c(u,p,l)}if(3===s){if(i.DIGIT.test(u)){a+=u;continue}if(i.SIGN.test(u)){if(\\\\\\\"\\\\\\\"===a){a+=u;continue}1===a.length&&i.SIGN.test(a)&&c(u,p,l)}}i.WHITESPACE.test(u)?(h(),s=0,r=!1):i.COMMA.test(u)?(h(),s=0,r=!0):i.SIGN.test(u)?(h(),s=1,o=u):i.POINT.test(u)?(h(),s=2,o=u):c(u,p,l)}return h(),l}const l=[\\\\\\\"mm\\\\\\\",\\\\\\\"cm\\\\\\\",\\\\\\\"in\\\\\\\",\\\\\\\"pt\\\\\\\",\\\\\\\"pc\\\\\\\",\\\\\\\"px\\\\\\\"],c={mm:{mm:1,cm:.1,in:1/25.4,pt:72/25.4,pc:6/25.4,px:-1},cm:{mm:10,cm:1,in:1/2.54,pt:72/2.54,pc:6/2.54,px:-1},in:{mm:25.4,cm:2.54,in:1,pt:72,pc:6,px:-1},pt:{mm:25.4/72,cm:2.54/72,in:1/72,pt:1,pc:6/72,px:-1},pc:{mm:25.4/6,cm:2.54/6,in:1/6,pt:12,pc:1,px:-1},px:{px:1}};function d(t){let n,i=\\\\\\\"px\\\\\\\";if(\\\\\\\"string\\\\\\\"==typeof t||t instanceof String)for(let e=0,n=l.length;e<n;e++){const n=l[e];if(t.endsWith(n)){i=n,t=t.substring(0,t.length-n.length);break}}return\\\\\\\"px\\\\\\\"===i&&\\\\\\\"px\\\\\\\"!==e.defaultUnit?n=c.in[e.defaultUnit]/e.defaultDPI:(n=c[i][e.defaultUnit],n<0&&(n=c[i].in*e.defaultDPI)),n*parseFloat(t)}function _(t){const e=t.elements;return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function f(t){const e=t.elements;return Math.sqrt(e[3]*e[3]+e[4]*e[4])}const g=[],v={},y=[],x=new h.a,b=new h.a,w=new h.a,T=new h.a,A=new i.a,M=new m.a,E=new h.a,S=(new DOMParser).parseFromString(t,\\\\\\\"image/svg+xml\\\\\\\");!function t(e,s){if(1!==e.nodeType)return;const l=function(t){if(!(t.hasAttribute(\\\\\\\"transform\\\\\\\")||\\\\\\\"use\\\\\\\"===t.nodeName&&(t.hasAttribute(\\\\\\\"x\\\\\\\")||t.hasAttribute(\\\\\\\"y\\\\\\\"))))return null;const e=function(t){const e=new h.a,n=x;if(\\\\\\\"use\\\\\\\"===t.nodeName&&(t.hasAttribute(\\\\\\\"x\\\\\\\")||t.hasAttribute(\\\\\\\"y\\\\\\\"))){const n=d(t.getAttribute(\\\\\\\"x\\\\\\\")),i=d(t.getAttribute(\\\\\\\"y\\\\\\\"));e.translate(n,i)}if(t.hasAttribute(\\\\\\\"transform\\\\\\\")){const i=t.getAttribute(\\\\\\\"transform\\\\\\\").split(\\\\\\\")\\\\\\\");for(let t=i.length-1;t>=0;t--){const s=i[t].trim();if(\\\\\\\"\\\\\\\"===s)continue;const r=s.indexOf(\\\\\\\"(\\\\\\\"),o=s.length;if(r>0&&r<o){const t=s.substr(0,r),e=a(s.substr(r+1,o-r-1));switch(n.identity(),t){case\\\\\\\"translate\\\\\\\":if(e.length>=1){const t=e[0];let i=t;e.length>=2&&(i=e[1]),n.translate(t,i)}break;case\\\\\\\"rotate\\\\\\\":if(e.length>=1){let t=0,i=0,s=0;t=-e[0]*Math.PI/180,e.length>=3&&(i=e[1],s=e[2]),b.identity().translate(-i,-s),w.identity().rotate(t),T.multiplyMatrices(w,b),b.identity().translate(i,s),n.multiplyMatrices(b,T)}break;case\\\\\\\"scale\\\\\\\":if(e.length>=1){const t=e[0];let i=t;e.length>=2&&(i=e[1]),n.scale(t,i)}break;case\\\\\\\"skewX\\\\\\\":1===e.length&&n.set(1,Math.tan(e[0]*Math.PI/180),0,0,1,0,0,0,1);break;case\\\\\\\"skewY\\\\\\\":1===e.length&&n.set(1,0,0,Math.tan(e[0]*Math.PI/180),1,0,0,0,1);break;case\\\\\\\"matrix\\\\\\\":6===e.length&&n.set(e[0],e[2],e[4],e[1],e[3],e[5],0,0,1)}}e.premultiply(n)}}return e}(t);y.length>0&&e.premultiply(y[y.length-1]);return E.copy(e),y.push(e),e}(e);let c=!0,m=null;switch(e.nodeName){case\\\\\\\"svg\\\\\\\":break;case\\\\\\\"style\\\\\\\":!function(t){if(!t.sheet||!t.sheet.cssRules||!t.sheet.cssRules.length)return;for(let e=0;e<t.sheet.cssRules.length;e++){const n=t.sheet.cssRules[e];if(1!==n.type)continue;const i=n.selectorText.split(/,/gm).filter(Boolean).map((t=>t.trim()));for(let t=0;t<i.length;t++)v[i[t]]=Object.assign(v[i[t]]||{},n.style)}}(e);break;case\\\\\\\"g\\\\\\\":s=r(e,s);break;case\\\\\\\"path\\\\\\\":s=r(e,s),e.hasAttribute(\\\\\\\"d\\\\\\\")&&(m=function(t){const e=new p.a,s=new i.a,r=new i.a,l=new i.a;let c=!0,h=!1;const u=t.getAttribute(\\\\\\\"d\\\\\\\").match(/[a-df-z][^a-df-z]*/gi);for(let t=0,i=u.length;t<i;t++){const i=u[t],d=i.charAt(0),p=i.substr(1).trim();let _;switch(!0===c&&(h=!0,c=!1),d){case\\\\\\\"M\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=2)s.x=_[t+0],s.y=_[t+1],r.x=s.x,r.y=s.y,0===t?e.moveTo(s.x,s.y):e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"H\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t++)s.x=_[t],r.x=s.x,r.y=s.y,e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"V\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t++)s.y=_[t],r.x=s.x,r.y=s.y,e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"L\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=2)s.x=_[t+0],s.y=_[t+1],r.x=s.x,r.y=s.y,e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"C\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=6)e.bezierCurveTo(_[t+0],_[t+1],_[t+2],_[t+3],_[t+4],_[t+5]),r.x=_[t+2],r.y=_[t+3],s.x=_[t+4],s.y=_[t+5],0===t&&!0===h&&l.copy(s);break;case\\\\\\\"S\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=4)e.bezierCurveTo(o(s.x,r.x),o(s.y,r.y),_[t+0],_[t+1],_[t+2],_[t+3]),r.x=_[t+0],r.y=_[t+1],s.x=_[t+2],s.y=_[t+3],0===t&&!0===h&&l.copy(s);break;case\\\\\\\"Q\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=4)e.quadraticCurveTo(_[t+0],_[t+1],_[t+2],_[t+3]),r.x=_[t+0],r.y=_[t+1],s.x=_[t+2],s.y=_[t+3],0===t&&!0===h&&l.copy(s);break;case\\\\\\\"T\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=2){const n=o(s.x,r.x),i=o(s.y,r.y);e.quadraticCurveTo(n,i,_[t+0],_[t+1]),r.x=n,r.y=i,s.x=_[t+0],s.y=_[t+1],0===t&&!0===h&&l.copy(s)}break;case\\\\\\\"A\\\\\\\":_=a(p,[3,4],7);for(let t=0,i=_.length;t<i;t+=7){if(_[t+5]==s.x&&_[t+6]==s.y)continue;const i=s.clone();s.x=_[t+5],s.y=_[t+6],r.x=s.x,r.y=s.y,n(e,_[t],_[t+1],_[t+2],_[t+3],_[t+4],i,s),0===t&&!0===h&&l.copy(s)}break;case\\\\\\\"m\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=2)s.x+=_[t+0],s.y+=_[t+1],r.x=s.x,r.y=s.y,0===t?e.moveTo(s.x,s.y):e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"h\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t++)s.x+=_[t],r.x=s.x,r.y=s.y,e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"v\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t++)s.y+=_[t],r.x=s.x,r.y=s.y,e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"l\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=2)s.x+=_[t+0],s.y+=_[t+1],r.x=s.x,r.y=s.y,e.lineTo(s.x,s.y),0===t&&!0===h&&l.copy(s);break;case\\\\\\\"c\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=6)e.bezierCurveTo(s.x+_[t+0],s.y+_[t+1],s.x+_[t+2],s.y+_[t+3],s.x+_[t+4],s.y+_[t+5]),r.x=s.x+_[t+2],r.y=s.y+_[t+3],s.x+=_[t+4],s.y+=_[t+5],0===t&&!0===h&&l.copy(s);break;case\\\\\\\"s\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=4)e.bezierCurveTo(o(s.x,r.x),o(s.y,r.y),s.x+_[t+0],s.y+_[t+1],s.x+_[t+2],s.y+_[t+3]),r.x=s.x+_[t+0],r.y=s.y+_[t+1],s.x+=_[t+2],s.y+=_[t+3],0===t&&!0===h&&l.copy(s);break;case\\\\\\\"q\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=4)e.quadraticCurveTo(s.x+_[t+0],s.y+_[t+1],s.x+_[t+2],s.y+_[t+3]),r.x=s.x+_[t+0],r.y=s.y+_[t+1],s.x+=_[t+2],s.y+=_[t+3],0===t&&!0===h&&l.copy(s);break;case\\\\\\\"t\\\\\\\":_=a(p);for(let t=0,n=_.length;t<n;t+=2){const n=o(s.x,r.x),i=o(s.y,r.y);e.quadraticCurveTo(n,i,s.x+_[t+0],s.y+_[t+1]),r.x=n,r.y=i,s.x=s.x+_[t+0],s.y=s.y+_[t+1],0===t&&!0===h&&l.copy(s)}break;case\\\\\\\"a\\\\\\\":_=a(p,[3,4],7);for(let t=0,i=_.length;t<i;t+=7){if(0==_[t+5]&&0==_[t+6])continue;const i=s.clone();s.x+=_[t+5],s.y+=_[t+6],r.x=s.x,r.y=s.y,n(e,_[t],_[t+1],_[t+2],_[t+3],_[t+4],i,s),0===t&&!0===h&&l.copy(s)}break;case\\\\\\\"Z\\\\\\\":case\\\\\\\"z\\\\\\\":e.currentPath.autoClose=!0,e.currentPath.curves.length>0&&(s.copy(l),e.currentPath.currentPoint.copy(s),c=!0);break;default:console.warn(i)}h=!1}return e}(e));break;case\\\\\\\"rect\\\\\\\":s=r(e,s),m=function(t){const e=d(t.getAttribute(\\\\\\\"x\\\\\\\")||0),n=d(t.getAttribute(\\\\\\\"y\\\\\\\")||0),i=d(t.getAttribute(\\\\\\\"rx\\\\\\\")||t.getAttribute(\\\\\\\"ry\\\\\\\")||0),s=d(t.getAttribute(\\\\\\\"ry\\\\\\\")||t.getAttribute(\\\\\\\"rx\\\\\\\")||0),r=d(t.getAttribute(\\\\\\\"width\\\\\\\")),o=d(t.getAttribute(\\\\\\\"height\\\\\\\")),a=.448084975506,l=new p.a;l.moveTo(e+i,n),l.lineTo(e+r-i,n),(0!==i||0!==s)&&l.bezierCurveTo(e+r-i*a,n,e+r,n+s*a,e+r,n+s);l.lineTo(e+r,n+o-s),(0!==i||0!==s)&&l.bezierCurveTo(e+r,n+o-s*a,e+r-i*a,n+o,e+r-i,n+o);l.lineTo(e+i,n+o),(0!==i||0!==s)&&l.bezierCurveTo(e+i*a,n+o,e,n+o-s*a,e,n+o-s);l.lineTo(e,n+s),(0!==i||0!==s)&&l.bezierCurveTo(e,n+s*a,e+i*a,n,e+i,n);return l}(e);break;case\\\\\\\"polygon\\\\\\\":s=r(e,s),m=function(t){function e(t,e,n){const r=d(e),o=d(n);0===s?i.moveTo(r,o):i.lineTo(r,o),s++}const n=/(-?[\\\\d\\\\.?]+)[,|\\\\s](-?[\\\\d\\\\.?]+)/g,i=new p.a;let s=0;return t.getAttribute(\\\\\\\"points\\\\\\\").replace(n,e),i.currentPath.autoClose=!0,i}(e);break;case\\\\\\\"polyline\\\\\\\":s=r(e,s),m=function(t){function e(t,e,n){const r=d(e),o=d(n);0===s?i.moveTo(r,o):i.lineTo(r,o),s++}const n=/(-?[\\\\d\\\\.?]+)[,|\\\\s](-?[\\\\d\\\\.?]+)/g,i=new p.a;let s=0;return t.getAttribute(\\\\\\\"points\\\\\\\").replace(n,e),i.currentPath.autoClose=!1,i}(e);break;case\\\\\\\"circle\\\\\\\":s=r(e,s),m=function(t){const e=d(t.getAttribute(\\\\\\\"cx\\\\\\\")||0),n=d(t.getAttribute(\\\\\\\"cy\\\\\\\")||0),i=d(t.getAttribute(\\\\\\\"r\\\\\\\")||0),s=new u.a;s.absarc(e,n,i,0,2*Math.PI);const r=new p.a;return r.subPaths.push(s),r}(e);break;case\\\\\\\"ellipse\\\\\\\":s=r(e,s),m=function(t){const e=d(t.getAttribute(\\\\\\\"cx\\\\\\\")||0),n=d(t.getAttribute(\\\\\\\"cy\\\\\\\")||0),i=d(t.getAttribute(\\\\\\\"rx\\\\\\\")||0),s=d(t.getAttribute(\\\\\\\"ry\\\\\\\")||0),r=new u.a;r.absellipse(e,n,i,s,0,2*Math.PI);const o=new p.a;return o.subPaths.push(r),o}(e);break;case\\\\\\\"line\\\\\\\":s=r(e,s),m=function(t){const e=d(t.getAttribute(\\\\\\\"x1\\\\\\\")||0),n=d(t.getAttribute(\\\\\\\"y1\\\\\\\")||0),i=d(t.getAttribute(\\\\\\\"x2\\\\\\\")||0),s=d(t.getAttribute(\\\\\\\"y2\\\\\\\")||0),r=new p.a;return r.moveTo(e,n),r.lineTo(i,s),r.currentPath.autoClose=!1,r}(e);break;case\\\\\\\"defs\\\\\\\":c=!1;break;case\\\\\\\"use\\\\\\\":s=r(e,s);const l=e.href.baseVal.substring(1),h=e.viewportElement.getElementById(l);h?t(h,s):console.warn(\\\\\\\"SVGLoader: 'use node' references non-existent node id: \\\\\\\"+l)}if(m&&(void 0!==s.fill&&\\\\\\\"none\\\\\\\"!==s.fill&&m.color.setStyle(s.fill),function(t,e){function n(t){M.set(t.x,t.y,1).applyMatrix3(e),t.set(M.x,M.y)}const i=function(t){return 0!==t.elements[1]||0!==t.elements[3]}(e),s=t.subPaths;for(let t=0,r=s.length;t<r;t++){const r=s[t].curves;for(let t=0;t<r.length;t++){const s=r[t];s.isLineCurve?(n(s.v1),n(s.v2)):s.isCubicBezierCurve?(n(s.v0),n(s.v1),n(s.v2),n(s.v3)):s.isQuadraticBezierCurve?(n(s.v0),n(s.v1),n(s.v2)):s.isEllipseCurve&&(i&&console.warn(\\\\\\\"SVGLoader: Elliptic arc or ellipse rotation or skewing is not implemented.\\\\\\\"),A.set(s.aX,s.aY),n(A),s.aX=A.x,s.aY=A.y,s.xRadius*=_(e),s.yRadius*=f(e))}}}(m,E),g.push(m),m.userData={node:e,style:s}),c){const n=e.childNodes;for(let e=0;e<n.length;e++)t(n[e],s)}l&&(y.pop(),y.length>0?E.copy(y[y.length-1]):E.identity())}(S.documentElement,{fill:\\\\\\\"#000\\\\\\\",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:\\\\\\\"miter\\\\\\\",strokeLineCap:\\\\\\\"butt\\\\\\\",strokeMiterLimit:4});return{paths:g,xml:S.documentElement}}static createShapes(t){const e=999999999,n=0,s=1,o=2,a=3,l=4,c=5,h=6,p={loc:n,t:0};function m(t,e,i,s){const r=t.x,a=e.x,l=i.x,c=s.x,h=t.y,u=e.y,d=i.y,_=s.y,m=(c-l)*(h-d)-(_-d)*(r-l),g=(_-d)*(a-r)-(c-l)*(u-h),v=m/g,y=((a-r)*(h-d)-(u-h)*(r-l))/g;if(0===g&&0!==m||v<=0||v>=1||y<0||y>1)return null;if(0===m&&0===g){for(let l=0;l<2;l++){if(f(0===l?i:s,t,e),p.loc==n){const t=0===l?i:s;return{x:t.x,y:t.y,t:p.t}}if(p.loc==o){return{x:+(r+p.t*(a-r)).toPrecision(10),y:+(h+p.t*(u-h)).toPrecision(10),t:p.t}}}return null}for(let r=0;r<2;r++)if(f(0===r?i:s,t,e),p.loc==n){const t=0===r?i:s;return{x:t.x,y:t.y,t:p.t}}return{x:+(r+v*(a-r)).toPrecision(10),y:+(h+v*(u-h)).toPrecision(10),t:v}}function f(t,e,i){const r=i.x-e.x,u=i.y-e.y,d=t.x-e.x,_=t.y-e.y,m=r*_-d*u;if(t.x===e.x&&t.y===e.y)return p.loc=n,void(p.t=0);if(t.x===i.x&&t.y===i.y)return p.loc=s,void(p.t=1);if(m<-Number.EPSILON)return void(p.loc=a);if(m>Number.EPSILON)return void(p.loc=l);if(r*d<0||u*_<0)return void(p.loc=c);if(Math.sqrt(r*r+u*u)<Math.sqrt(d*d+_*_))return void(p.loc=h);let f;f=0!==r?d/r:_/u,p.loc=o,p.t=f}function g(t,e,n){const s=new i.a;e.getCenter(s);const r=[];return n.forEach((e=>{if(e.boundingBox.containsPoint(s)){(function(t,e){const n=[],s=[];for(let r=1;r<t.length;r++){const o=t[r-1],a=t[r];for(let t=1;t<e.length;t++){const r=m(o,a,e[t-1],e[t]);null!==r&&void 0===n.find((t=>t.t<=r.t+Number.EPSILON&&t.t>=r.t-Number.EPSILON))&&(n.push(r),s.push(new i.a(r.x,r.y)))}}return s})(t,e.points).forEach((t=>{r.push({identifier:e.identifier,isCW:e.isCW,point:t})}))}})),r.sort(((t,e)=>t.point.x-e.point.x)),r}let v=0,y=e,x=-999999999,b=t.subPaths.map((t=>{const n=t.getPoints();let s=-999999999,o=e,a=-999999999,l=e;for(let t=0;t<n.length;t++){const e=n[t];e.y>s&&(s=e.y),e.y<o&&(o=e.y),e.x>a&&(a=e.x),e.x<l&&(l=e.x)}return x<=a&&(x=a+1),y>=l&&(y=l-1),{points:n,isCW:_.a.isClockWise(n),identifier:v++,boundingBox:new r(new i.a(l,o),new i.a(a,s))}}));b=b.filter((t=>t.points.length>1));const w=b.map((e=>function(t,e,n,s,r){null!=r&&\\\\\\\"\\\\\\\"!==r||(r=\\\\\\\"nonzero\\\\\\\");const o=new i.a;t.boundingBox.getCenter(o);const a=g([new i.a(n,o.y),new i.a(s,o.y)],t.boundingBox,e);a.sort(((t,e)=>t.point.x-e.point.x));const l=[],c=[];a.forEach((e=>{e.identifier===t.identifier?l.push(e):c.push(e)}));const h=l[0].point.x,u=[];let d=0;for(;d<c.length&&c[d].point.x<h;)u.length>0&&u[u.length-1]===c[d].identifier?u.pop():u.push(c[d].identifier),d++;if(u.push(t.identifier),\\\\\\\"evenodd\\\\\\\"===r){const e=u.length%2==0,n=u[u.length-2];return{identifier:t.identifier,isHole:e,for:n}}if(\\\\\\\"nonzero\\\\\\\"===r){let n=!0,i=null,s=null;for(let t=0;t<u.length;t++){const r=u[t];n?(s=e[r].isCW,n=!1,i=r):s!==e[r].isCW&&(s=e[r].isCW,n=!0)}return{identifier:t.identifier,isHole:n,for:i}}console.warn('fill-rule: \\\\\\\"'+r+'\\\\\\\" is currently not implemented.')}(e,b,y,x,t.userData.style.fillRule))),T=[];return b.forEach((t=>{if(!w[t.identifier].isHole){const e=new d.a(t.points);w.filter((e=>e.isHole&&e.for===t.identifier)).forEach((t=>{const n=b[t.identifier];e.holes.push(new u.a(n.points))})),T.push(e)}})),T}static getStrokeStyle(t,e,n,i,s){return{strokeColor:e=void 0!==e?e:\\\\\\\"#000\\\\\\\",strokeWidth:t=void 0!==t?t:1,strokeLineJoin:n=void 0!==n?n:\\\\\\\"miter\\\\\\\",strokeLineCap:i=void 0!==i?i:\\\\\\\"butt\\\\\\\",strokeMiterLimit:s=void 0!==s?s:4}}static pointsToStroke(t,e,n,i){const s=[],r=[],a=[];if(0===f.pointsToStrokeWithBuffers(t,e,n,i,s,r,a))return null;const c=new o.a;return c.setAttribute(\\\\\\\"position\\\\\\\",new l.c(s,3)),c.setAttribute(\\\\\\\"normal\\\\\\\",new l.c(r,3)),c.setAttribute(\\\\\\\"uv\\\\\\\",new l.c(a,2)),c}static pointsToStrokeWithBuffers(t,e,n,s,r,o,a,l){const c=new i.a,h=new i.a,u=new i.a,d=new i.a,p=new i.a,_=new i.a,m=new i.a,f=new i.a,g=new i.a,v=new i.a,y=new i.a,x=new i.a,b=new i.a,w=new i.a,T=new i.a,A=new i.a,M=new i.a;n=void 0!==n?n:12,s=void 0!==s?s:.001,l=void 0!==l?l:0;const E=(t=function(t){let e=!1;for(let n=1,i=t.length-1;n<i;n++)if(t[n].distanceTo(t[n+1])<s){e=!0;break}if(!e)return t;const n=[];n.push(t[0]);for(let e=1,i=t.length-1;e<i;e++)t[e].distanceTo(t[e+1])>=s&&n.push(t[e]);return n.push(t[t.length-1]),n}(t)).length;if(E<2)return 0;const S=t[0].equals(t[E-1]);let C,N,L=t[0];const O=e.strokeWidth/2,P=1/(E-1);let R,I,F,D,B=0,z=!1,k=0,U=3*l,G=2*l;V(t[0],t[1],c).multiplyScalar(O),f.copy(t[0]).sub(c),g.copy(t[0]).add(c),v.copy(f),y.copy(g);for(let n=1;n<E;n++){C=t[n],N=n===E-1?S?t[1]:void 0:t[n+1];const i=c;if(V(L,C,i),u.copy(i).multiplyScalar(O),x.copy(C).sub(u),b.copy(C).add(u),R=B+P,I=!1,void 0!==N){V(C,N,h),u.copy(h).multiplyScalar(O),w.copy(C).sub(u),T.copy(C).add(u),F=!0,u.subVectors(N,L),i.dot(u)<0&&(F=!1),1===n&&(z=F),u.subVectors(N,C),u.normalize();const t=Math.abs(i.dot(u));if(0!==t){const n=O/t;u.multiplyScalar(-n),d.subVectors(C,L),p.copy(d).setLength(n).add(u),A.copy(p).negate();const i=p.length(),s=d.length();d.divideScalar(s),_.subVectors(N,C);const r=_.length();switch(_.divideScalar(r),d.dot(A)<s&&_.dot(A)<r&&(I=!0),M.copy(p).add(C),A.add(C),D=!1,I?F?(T.copy(A),b.copy(A)):(w.copy(A),x.copy(A)):W(),e.strokeLineJoin){case\\\\\\\"bevel\\\\\\\":q(F,I,R);break;case\\\\\\\"round\\\\\\\":X(F,I),F?j(C,x,w,R,0):j(C,T,b,R,1);break;case\\\\\\\"miter\\\\\\\":case\\\\\\\"miter-clip\\\\\\\":default:const t=O*e.strokeMiterLimit/i;if(t<1){if(\\\\\\\"miter-clip\\\\\\\"!==e.strokeLineJoin){q(F,I,R);break}X(F,I),F?(_.subVectors(M,x).multiplyScalar(t).add(x),m.subVectors(M,w).multiplyScalar(t).add(w),H(x,R,0),H(_,R,0),H(C,R,.5),H(C,R,.5),H(_,R,0),H(m,R,0),H(C,R,.5),H(m,R,0),H(w,R,0)):(_.subVectors(M,b).multiplyScalar(t).add(b),m.subVectors(M,T).multiplyScalar(t).add(T),H(b,R,1),H(_,R,1),H(C,R,.5),H(C,R,.5),H(_,R,1),H(m,R,1),H(C,R,.5),H(m,R,1),H(T,R,1))}else I?(F?(H(g,B,1),H(f,B,0),H(M,R,0),H(g,B,1),H(M,R,0),H(A,R,1)):(H(g,B,1),H(f,B,0),H(M,R,1),H(f,B,0),H(A,R,0),H(M,R,1)),F?w.copy(M):T.copy(M)):F?(H(x,R,0),H(M,R,0),H(C,R,.5),H(C,R,.5),H(M,R,0),H(w,R,0)):(H(b,R,1),H(M,R,1),H(C,R,.5),H(C,R,.5),H(M,R,1),H(T,R,1)),D=!0}}else W()}else W();S||n!==E-1||Y(t[0],v,y,F,!0,B),B=R,L=C,f.copy(w),g.copy(T)}if(S){if(I&&r){let t=M,e=A;z!==F&&(t=A,e=M),F?(D||z)&&(e.toArray(r,0),e.toArray(r,9),D&&t.toArray(r,3)):!D&&z||(e.toArray(r,3),e.toArray(r,9),D&&t.toArray(r,0))}}else Y(C,x,b,F,!1,R);return k;function V(t,e,n){return n.subVectors(e,t),n.set(-n.y,n.x).normalize()}function H(t,e,n){r&&(r[U]=t.x,r[U+1]=t.y,r[U+2]=0,o&&(o[U]=0,o[U+1]=0,o[U+2]=1),U+=3,a&&(a[G]=e,a[G+1]=n,G+=2)),k+=3}function j(t,e,i,s,r){c.copy(e).sub(t).normalize(),h.copy(i).sub(t).normalize();let o=Math.PI;const a=c.dot(h);Math.abs(a)<1&&(o=Math.abs(Math.acos(a))),o/=n,u.copy(e);for(let e=0,i=n-1;e<i;e++)d.copy(u).rotateAround(t,o),H(u,s,r),H(d,s,r),H(t,s,.5),u.copy(d);H(d,s,r),H(i,s,r),H(t,s,.5)}function W(){H(g,B,1),H(f,B,0),H(x,R,0),H(g,B,1),H(x,R,1),H(b,R,0)}function q(t,e,n){e?t?(H(g,B,1),H(f,B,0),H(x,R,0),H(g,B,1),H(x,R,0),H(A,R,1),H(x,n,0),H(w,n,0),H(A,n,.5)):(H(g,B,1),H(f,B,0),H(b,R,1),H(f,B,0),H(A,R,0),H(b,R,1),H(b,n,1),H(T,n,0),H(A,n,.5)):t?(H(x,n,0),H(w,n,0),H(C,n,.5)):(H(b,n,1),H(T,n,0),H(C,n,.5))}function X(t,e){e&&(t?(H(g,B,1),H(f,B,0),H(x,R,0),H(g,B,1),H(x,R,0),H(A,R,1),H(x,B,0),H(C,R,.5),H(A,R,1),H(C,R,.5),H(w,B,0),H(A,R,1)):(H(g,B,1),H(f,B,0),H(b,R,1),H(f,B,0),H(A,R,0),H(b,R,1),H(b,B,1),H(A,R,0),H(C,R,.5),H(C,R,.5),H(A,R,0),H(T,B,1)))}function Y(t,n,i,s,o,a){switch(e.strokeLineCap){case\\\\\\\"round\\\\\\\":o?j(t,i,n,a,.5):j(t,n,i,a,.5);break;case\\\\\\\"square\\\\\\\":if(o)c.subVectors(n,t),h.set(c.y,-c.x),u.addVectors(c,h).add(t),d.subVectors(h,c).add(t),s?(u.toArray(r,3),d.toArray(r,0),d.toArray(r,9)):(u.toArray(r,3),u.toArray(r,9),d.toArray(r,0));else{c.subVectors(i,t),h.set(c.y,-c.x),u.addVectors(c,h).add(t),d.subVectors(h,c).add(t);const e=r.length;s?(u.toArray(r,e-3),d.toArray(r,e-6),d.toArray(r,e-12)):(u.toArray(r,e-6),d.toArray(r,e-3),d.toArray(r,e-12))}}}}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";var i;n.d(e,\\\\\\\"a\\\\\\\",(function(){return i})),function(t){t.CODE=\\\\\\\"code.json\\\\\\\",t.EDITOR=\\\\\\\"editor.json\\\\\\\",t.ASSETS=\\\\\\\"assets.json\\\\\\\",t.POLYGONJS=\\\\\\\"js/all.js\\\\\\\",t.POLY_CONFIG=\\\\\\\"js/polyConfig.js\\\\\\\",t.JS_FILES=\\\\\\\"js_files.json\\\\\\\",t.POSTER=\\\\\\\"poster.png\\\\\\\"}(i||(i={}))},function(t,e,n){var i=n(148),s=n(153);t.exports=function(t,e){var n=s(t,e);return i(n)?n:void 0}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return h}));var i=n(0),s=n(25);function r(){let t=0,e=0,n=0,i=0;function s(s,r,o,a){t=s,e=o,n=-3*s+3*r-2*o-a,i=2*s-2*r+o+a}return{initCatmullRom:function(t,e,n,i,r){s(e,n,r*(n-t),r*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,r,o,a){let l=(e-t)/r-(n-t)/(r+o)+(n-e)/o,c=(n-e)/o-(i-e)/(o+a)+(i-n)/a;l*=o,c*=o,s(e,n,l,c)},calc:function(s){const r=s*s;return t+e*s+n*r+i*(r*s)}}}const o=new i.a,a=new r,l=new r,c=new r;class h extends s.a{constructor(t=[],e=!1,n=\\\\\\\"centripetal\\\\\\\",i=.5){super(),this.type=\\\\\\\"CatmullRomCurve3\\\\\\\",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new i.a){const n=e,s=this.points,r=s.length,h=(r-(this.closed?0:1))*t;let u,d,p=Math.floor(h),_=h-p;this.closed?p+=p>0?0:(Math.floor(Math.abs(p)/r)+1)*r:0===_&&p===r-1&&(p=r-2,_=1),this.closed||p>0?u=s[(p-1)%r]:(o.subVectors(s[0],s[1]).add(s[0]),u=o);const m=s[p%r],f=s[(p+1)%r];if(this.closed||p+2<r?d=s[(p+2)%r]:(o.subVectors(s[r-1],s[r-2]).add(s[r-1]),d=o),\\\\\\\"centripetal\\\\\\\"===this.curveType||\\\\\\\"chordal\\\\\\\"===this.curveType){const t=\\\\\\\"chordal\\\\\\\"===this.curveType?.5:.25;let e=Math.pow(u.distanceToSquared(m),t),n=Math.pow(m.distanceToSquared(f),t),i=Math.pow(f.distanceToSquared(d),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),a.initNonuniformCatmullRom(u.x,m.x,f.x,d.x,e,n,i),l.initNonuniformCatmullRom(u.y,m.y,f.y,d.y,e,n,i),c.initNonuniformCatmullRom(u.z,m.z,f.z,d.z,e,n,i)}else\\\\\\\"catmullrom\\\\\\\"===this.curveType&&(a.initCatmullRom(u.x,m.x,f.x,d.x,this.tension),l.initCatmullRom(u.y,m.y,f.y,d.y,this.tension),c.initCatmullRom(u.z,m.z,f.z,d.z,this.tension));return n.set(a.calc(_),l.calc(_),c.calc(_)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new i.a).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}h.prototype.isCatmullRomCurve3=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";function i(t){return(window.URL||window.webkitURL).createObjectURL(t)}n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}))},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(33);class s extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"AmbientLight\\\\\\\"}}s.prototype.isAmbientLight=!0},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&(\\\\\\\"object\\\\\\\"==e||\\\\\\\"function\\\\\\\"==e)}},function(t,e){t.exports=function(t){return null!=t&&\\\\\\\"object\\\\\\\"==typeof t}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return o}));var i=n(25),s=n(32),r=n(0);class o extends i.a{constructor(t=new r.a,e=new r.a,n=new r.a){super(),this.type=\\\\\\\"QuadraticBezierCurve3\\\\\\\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new r.a){const n=e,i=this.v0,o=this.v1,a=this.v2;return n.set(Object(s.c)(t,i.x,o.x,a.x),Object(s.c)(t,i.y,o.y,a.y),Object(s.c)(t,i.z,o.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}o.prototype.isQuadraticBezierCurve3=!0},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return i}));class i{static fadeOut(t){return new Promise((e=>{const n=setInterval((()=>{t.style.opacity||(t.style.opacity=\\\\\\\"1\\\\\\\");const i=parseFloat(t.style.opacity);i>0?t.style.opacity=\\\\\\\"\\\\\\\"+(i-.05):(e(),clearInterval(n))}),20)}))}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";n.d(e,\\\\\\\"a\\\\\\\",(function(){return s}));var i=n(41);class s extends i.a{constructor(t,e){super(t,e),this.type=\\\\\\\"LineLoop\\\\\\\"}}s.prototype.isLineLoop=!0},,function(t,e,n){!function(n){\\\\\\\"use strict\\\\\\\";var i=\\\\\\\"Compound\\\\\\\",s=\\\\\\\"MemberExpression\\\\\\\",r=\\\\\\\"Literal\\\\\\\",o=function(t,e){var n=new Error(t+\\\\\\\" at character \\\\\\\"+e);throw n.index=e,n.description=t,n},a=!0,l={\\\\\\\"-\\\\\\\":a,\\\\\\\"!\\\\\\\":a,\\\\\\\"~\\\\\\\":a,\\\\\\\"+\\\\\\\":a},c={\\\\\\\"||\\\\\\\":1,\\\\\\\"&&\\\\\\\":2,\\\\\\\"|\\\\\\\":3,\\\\\\\"^\\\\\\\":4,\\\\\\\"&\\\\\\\":5,\\\\\\\"==\\\\\\\":6,\\\\\\\"!=\\\\\\\":6,\\\\\\\"===\\\\\\\":6,\\\\\\\"!==\\\\\\\":6,\\\\\\\"<\\\\\\\":7,\\\\\\\">\\\\\\\":7,\\\\\\\"<=\\\\\\\":7,\\\\\\\">=\\\\\\\":7,\\\\\\\"<<\\\\\\\":8,\\\\\\\">>\\\\\\\":8,\\\\\\\">>>\\\\\\\":8,\\\\\\\"+\\\\\\\":9,\\\\\\\"-\\\\\\\":9,\\\\\\\"*\\\\\\\":10,\\\\\\\"/\\\\\\\":10,\\\\\\\"%\\\\\\\":10},h=function(t){var e,n=0;for(var i in t)(e=i.length)>n&&t.hasOwnProperty(i)&&(n=e);return n},u=h(l),d=h(c),p={true:!0,false:!1,null:null},_=function(t){return c[t]||0},m=function(t,e,n){return{type:\\\\\\\"||\\\\\\\"===t||\\\\\\\"&&\\\\\\\"===t?\\\\\\\"LogicalExpression\\\\\\\":\\\\\\\"BinaryExpression\\\\\\\",operator:t,left:e,right:n}},f=function(t){return t>=48&&t<=57},g=function(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=128&&!c[String.fromCharCode(t)]},v=function(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t>=128&&!c[String.fromCharCode(t)]},y=function(t){for(var e,n,a=0,h=t.charAt,y=t.charCodeAt,x=function(e){return h.call(t,e)},b=function(e){return y.call(t,e)},w=t.length,T=function(){for(var t=b(a);32===t||9===t||10===t||13===t;)t=b(++a)},A=function(){var t,e,n=E();return T(),63!==b(a)?n:(a++,(t=A())||o(\\\\\\\"Expected expression\\\\\\\",a),T(),58===b(a)?(a++,(e=A())||o(\\\\\\\"Expected expression\\\\\\\",a),{type:\\\\\\\"ConditionalExpression\\\\\\\",test:n,consequent:t,alternate:e}):void o(\\\\\\\"Expected :\\\\\\\",a))},M=function(){T();for(var e=t.substr(a,d),n=e.length;n>0;){if(c.hasOwnProperty(e)&&(!g(b(a))||a+e.length<t.length&&!v(b(a+e.length))))return a+=n,e;e=e.substr(0,--n)}return!1},E=function(){var t,e,n,i,s,r,l,c,h;if(r=S(),!(e=M()))return r;for(s={value:e,prec:_(e)},(l=S())||o(\\\\\\\"Expected expression after \\\\\\\"+e,a),i=[r,s,l];(e=M())&&0!==(n=_(e));){for(s={value:e,prec:n},h=e;i.length>2&&n<=i[i.length-2].prec;)l=i.pop(),e=i.pop().value,r=i.pop(),t=m(e,r,l),i.push(t);(t=S())||o(\\\\\\\"Expected expression after \\\\\\\"+h,a),i.push(s,t)}for(t=i[c=i.length-1];c>1;)t=m(i[c-1].value,i[c-2],t),c-=2;return t},S=function(){var e,n,i;if(T(),e=b(a),f(e)||46===e)return C();if(39===e||34===e)return N();if(91===e)return I();for(i=(n=t.substr(a,u)).length;i>0;){if(l.hasOwnProperty(n)&&(!g(b(a))||a+n.length<t.length&&!v(b(a+n.length))))return a+=i,{type:\\\\\\\"UnaryExpression\\\\\\\",operator:n,argument:S(),prefix:!0};n=n.substr(0,--i)}return!(!g(e)&&40!==e)&&P()},C=function(){for(var t,e,n=\\\\\\\"\\\\\\\";f(b(a));)n+=x(a++);if(46===b(a))for(n+=x(a++);f(b(a));)n+=x(a++);if(\\\\\\\"e\\\\\\\"===(t=x(a))||\\\\\\\"E\\\\\\\"===t){for(n+=x(a++),\\\\\\\"+\\\\\\\"!==(t=x(a))&&\\\\\\\"-\\\\\\\"!==t||(n+=x(a++));f(b(a));)n+=x(a++);f(b(a-1))||o(\\\\\\\"Expected exponent (\\\\\\\"+n+x(a)+\\\\\\\")\\\\\\\",a)}return e=b(a),g(e)?o(\\\\\\\"Variable names cannot start with a number (\\\\\\\"+n+x(a)+\\\\\\\")\\\\\\\",a):46===e&&o(\\\\\\\"Unexpected period\\\\\\\",a),{type:r,value:parseFloat(n),raw:n}},N=function(){for(var t,e=\\\\\\\"\\\\\\\",n=x(a++),i=!1;a<w;){if((t=x(a++))===n){i=!0;break}if(\\\\\\\"\\\\\\\\\\\\\\\"===t)switch(t=x(a++)){case\\\\\\\"n\\\\\\\":e+=\\\\\\\"\\\\n\\\\\\\";break;case\\\\\\\"r\\\\\\\":e+=\\\\\\\"\\\\r\\\\\\\";break;case\\\\\\\"t\\\\\\\":e+=\\\\\\\"\\\\t\\\\\\\";break;case\\\\\\\"b\\\\\\\":e+=\\\\\\\"\\\\b\\\\\\\";break;case\\\\\\\"f\\\\\\\":e+=\\\\\\\"\\\\f\\\\\\\";break;case\\\\\\\"v\\\\\\\":e+=\\\\\\\"\\\\v\\\\\\\";break;default:e+=t}else e+=t}return i||o('Unclosed quote after \\\\\\\"'+e+'\\\\\\\"',a),{type:r,value:e,raw:n+e+n}},L=function(){var e,n=b(a),i=a;for(g(n)?a++:o(\\\\\\\"Unexpected \\\\\\\"+x(a),a);a<w&&(n=b(a),v(n));)a++;return e=t.slice(i,a),p.hasOwnProperty(e)?{type:r,value:p[e],raw:e}:\\\\\\\"this\\\\\\\"===e?{type:\\\\\\\"ThisExpression\\\\\\\"}:{type:\\\\\\\"Identifier\\\\\\\",name:e}},O=function(t){for(var e,n,s=[],r=!1,l=0;a<w;){if(T(),(e=b(a))===t){r=!0,a++,41===t&&l&&l>=s.length&&o(\\\\\\\"Unexpected token \\\\\\\"+String.fromCharCode(t),a);break}if(44===e){if(a++,++l!==s.length)if(41===t)o(\\\\\\\"Unexpected token ,\\\\\\\",a);else if(93===t)for(var c=s.length;c<l;c++)s.push(null)}else(n=A())&&n.type!==i||o(\\\\\\\"Expected comma\\\\\\\",a),s.push(n)}return r||o(\\\\\\\"Expected \\\\\\\"+String.fromCharCode(t),a),s},P=function(){var t,e;for(e=40===(t=b(a))?R():L(),T(),t=b(a);46===t||91===t||40===t;)a++,46===t?(T(),e={type:s,computed:!1,object:e,property:L()}):91===t?(e={type:s,computed:!0,object:e,property:A()},T(),93!==(t=b(a))&&o(\\\\\\\"Unclosed [\\\\\\\",a),a++):40===t&&(e={type:\\\\\\\"CallExpression\\\\\\\",arguments:O(41),callee:e}),T(),t=b(a);return e},R=function(){a++;var t=A();if(T(),41===b(a))return a++,t;o(\\\\\\\"Unclosed (\\\\\\\",a)},I=function(){return a++,{type:\\\\\\\"ArrayExpression\\\\\\\",elements:O(93)}},F=[];a<w;)59===(e=b(a))||44===e?a++:(n=A())?F.push(n):a<w&&o('Unexpected \\\\\\\"'+x(a)+'\\\\\\\"',a);return 1===F.length?F[0]:{type:i,body:F}};y.version=\\\\\\\"0.3.5\\\\\\\",y.toString=function(){return\\\\\\\"JavaScript Expression Parser (JSEP) v\\\\\\\"+y.version},y.addUnaryOp=function(t){return u=Math.max(t.length,u),l[t]=a,this},y.addBinaryOp=function(t,e){return d=Math.max(t.length,d),c[t]=e,this},y.addLiteral=function(t,e){return p[t]=e,this},y.removeUnaryOp=function(t){return delete l[t],t.length===u&&(u=h(l)),this},y.removeAllUnaryOps=function(){return l={},u=0,this},y.removeBinaryOp=function(t){return delete c[t],t.length===d&&(d=h(c)),this},y.removeAllBinaryOps=function(){return c={},d=0,this},y.removeLiteral=function(t){return delete p[t],this},y.removeAllLiterals=function(){return p={},this},t.exports?e=t.exports=y:e.parse=y}()},function(t,e,n){var i=n(138),s=n(139),r=n(140),o=n(141),a=n(142);function l(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=s,l.prototype.get=r,l.prototype.has=o,l.prototype.set=a,t.exports=l},function(t,e,n){var i=n(117);t.exports=function(t,e){for(var n=t.length;n--;)if(i(t[n][0],e))return n;return-1}},function(t,e,n){var i=n(103),s=n(149),r=n(150),o=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?\\\\\\\"[object Undefined]\\\\\\\":\\\\\\\"[object Null]\\\\\\\":o&&o in Object(t)?s(t):r(t)}},function(t,e){var n;n=function(){return this}();try{n=n||new Function(\\\\\\\"return this\\\\\\\")()}catch(t){\\\\\\\"object\\\\\\\"==typeof window&&(n=window)}t.exports=n},function(t,e,n){var i=n(84)(Object,\\\\\\\"create\\\\\\\");t.exports=i},function(t,e,n){var i=n(163);t.exports=function(t,e){var n=t.__data__;return i(e)?n[\\\\\\\"string\\\\\\\"==typeof e?\\\\\\\"string\\\\\\\":\\\\\\\"hash\\\\\\\"]:n.map}},function(t,e,n){var i=n(121),s=n(122);t.exports=function(t,e,n,r){var o=!n;n||(n={});for(var a=-1,l=e.length;++a<l;){var c=e[a],h=r?r(n[c],t[c],c,n,t):void 0;void 0===h&&(h=t[c]),o?s(n,c,h):i(n,c,h)}return n}},function(t,e,n){var i=n(84)(n(68),\\\\\\\"Map\\\\\\\");t.exports=i},function(t,e,n){var i=n(68).Symbol;t.exports=i},function(t,e,n){var i=n(123),s=n(177),r=n(127);t.exports=function(t){return r(t)?i(t):s(t)}},function(t,e){var n=Array.isArray;t.exports=n},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,\\\\\\\"loaded\\\\\\\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\\\\\\\"id\\\\\\\",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){t.exports=function(t){return function(e){return t(e)}}},function(t,e,n){(function(t){var i=n(119),s=e&&!e.nodeType&&e,r=s&&\\\\\\\"object\\\\\\\"==typeof t&&t&&!t.nodeType&&t,o=r&&r.exports===s&&i.process,a=function(){try{var t=r&&r.require&&r.require(\\\\\\\"util\\\\\\\").types;return t||o&&o.binding&&o.binding(\\\\\\\"util\\\\\\\")}catch(t){}}();t.exports=a}).call(this,n(106)(t))},function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===(\\\\\\\"function\\\\\\\"==typeof e&&e.prototype||n)}},function(t,e,n){var i=n(123),s=n(180),r=n(127);t.exports=function(t){return r(t)?i(t,!0):s(t)}},function(t,e,n){var i=n(185),s=n(128),r=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,a=o?function(t){return null==t?[]:(t=Object(t),i(o(t),(function(e){return r.call(t,e)})))}:s;t.exports=a},function(t,e,n){var i=n(189),s=n(102),r=n(190),o=n(191),a=n(192),l=n(97),c=n(120),h=\\\\\\\"[object Map]\\\\\\\",u=\\\\\\\"[object Promise]\\\\\\\",d=\\\\\\\"[object Set]\\\\\\\",p=\\\\\\\"[object WeakMap]\\\\\\\",_=\\\\\\\"[object DataView]\\\\\\\",m=c(i),f=c(s),g=c(r),v=c(o),y=c(a),x=l;(i&&x(new i(new ArrayBuffer(1)))!=_||s&&x(new s)!=h||r&&x(r.resolve())!=u||o&&x(new o)!=d||a&&x(new a)!=p)&&(x=function(t){var e=l(t),n=\\\\\\\"[object Object]\\\\\\\"==e?t.constructor:void 0,i=n?c(n):\\\\\\\"\\\\\\\";if(i)switch(i){case m:return _;case f:return h;case g:return u;case v:return d;case y:return p}return e}),t.exports=x},function(t,e,n){var i=n(195);t.exports=function(t){var e=new t.constructor(t.byteLength);return new i(e).set(new i(t)),e}},function(t,e,n){\\\\\\\"use strict\\\\\\\";Object.defineProperty(e,\\\\\\\"__esModule\\\\\\\",{value:!0}),e.decompressFrames=e.decompressFrame=e.parseGIF=void 0;var i,s=(i=n(206))&&i.__esModule?i:{default:i},r=n(133),o=n(134),a=n(207),l=n(208);e.parseGIF=function(t){var e=new Uint8Array(t);return(0,r.parse)((0,o.buildStream)(e),s.default)};var c=function(t,e,n){if(t.image){var i=t.image,s=i.descriptor.width*i.descriptor.height,r=(0,l.lzw)(i.data.minCodeSize,i.data.blocks,s);i.descriptor.lct.interlaced&&(r=(0,a.deinterlace)(r,i.descriptor.width));var o={pixels:r,dims:{top:t.image.descriptor.top,left:t.image.descriptor.left,width:t.image.descriptor.width,height:t.image.descriptor.height}};return i.descriptor.lct&&i.descriptor.lct.exists?o.colorTable=i.lct:o.colorTable=e,t.gce&&(o.delay=10*(t.gce.delay||10),o.disposalType=t.gce.extras.disposal,t.gce.extras.transparentColorGiven&&(o.transparentIndex=t.gce.transparentColorIndex)),n&&(o.patch=function(t){for(var e=t.pixels.length,n=new Uint8ClampedArray(4*e),i=0;i<e;i++){var s=4*i,r=t.pixels[i],o=t.colorTable[r]||[0,0,0];n[s]=o[0],n[s+1]=o[1],n[s+2]=o[2],n[s+3]=r!==t.transparentIndex?255:0}return n}(o)),o}console.warn(\\\\\\\"gif frame does not have associated image.\\\\\\\")};e.decompressFrame=c;e.decompressFrames=function(t,e){return t.frames.filter((function(t){return t.image})).map((function(n){return c(n,t.gct,e)}))}},,function(t,e,n){var i=n(137),s=n(167),r=n(121),o=n(169),a=n(179),l=n(182),c=n(183),h=n(184),u=n(186),d=n(187),p=n(188),_=n(112),m=n(193),f=n(194),g=n(200),v=n(105),y=n(124),x=n(202),b=n(88),w=n(204),T=n(104),A=n(110),M=\\\\\\\"[object Arguments]\\\\\\\",E=\\\\\\\"[object Function]\\\\\\\",S=\\\\\\\"[object Object]\\\\\\\",C={};C[M]=C[\\\\\\\"[object Array]\\\\\\\"]=C[\\\\\\\"[object ArrayBuffer]\\\\\\\"]=C[\\\\\\\"[object DataView]\\\\\\\"]=C[\\\\\\\"[object Boolean]\\\\\\\"]=C[\\\\\\\"[object Date]\\\\\\\"]=C[\\\\\\\"[object Float32Array]\\\\\\\"]=C[\\\\\\\"[object Float64Array]\\\\\\\"]=C[\\\\\\\"[object Int8Array]\\\\\\\"]=C[\\\\\\\"[object Int16Array]\\\\\\\"]=C[\\\\\\\"[object Int32Array]\\\\\\\"]=C[\\\\\\\"[object Map]\\\\\\\"]=C[\\\\\\\"[object Number]\\\\\\\"]=C[S]=C[\\\\\\\"[object RegExp]\\\\\\\"]=C[\\\\\\\"[object Set]\\\\\\\"]=C[\\\\\\\"[object String]\\\\\\\"]=C[\\\\\\\"[object Symbol]\\\\\\\"]=C[\\\\\\\"[object Uint8Array]\\\\\\\"]=C[\\\\\\\"[object Uint8ClampedArray]\\\\\\\"]=C[\\\\\\\"[object Uint16Array]\\\\\\\"]=C[\\\\\\\"[object Uint32Array]\\\\\\\"]=!0,C[\\\\\\\"[object Error]\\\\\\\"]=C[E]=C[\\\\\\\"[object WeakMap]\\\\\\\"]=!1,t.exports=function t(e,n,N,L,O,P){var R,I=1&n,F=2&n,D=4&n;if(N&&(R=O?N(e,L,O,P):N(e)),void 0!==R)return R;if(!b(e))return e;var B=v(e);if(B){if(R=m(e),!I)return c(e,R)}else{var z=_(e),k=z==E||\\\\\\\"[object GeneratorFunction]\\\\\\\"==z;if(y(e))return l(e,I);if(z==S||z==M||k&&!O){if(R=F||k?{}:g(e),!I)return F?u(e,a(R,e)):h(e,o(R,e))}else{if(!C[z])return O?e:{};R=f(e,z,I)}}P||(P=new i);var U=P.get(e);if(U)return U;P.set(e,R),w(e)?e.forEach((function(i){R.add(t(i,n,N,i,e,P))})):x(e)&&e.forEach((function(i,s){R.set(s,t(i,n,N,s,e,P))}));var G=B?void 0:(D?F?p:d:F?A:T)(e);return s(G||e,(function(i,s){G&&(i=e[s=i]),r(R,s,t(i,n,N,s,e,P))})),R}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var i=n(97),s=n(88);t.exports=function(t){if(!s(t))return!1;var e=i(t);return\\\\\\\"[object Function]\\\\\\\"==e||\\\\\\\"[object GeneratorFunction]\\\\\\\"==e||\\\\\\\"[object AsyncFunction]\\\\\\\"==e||\\\\\\\"[object Proxy]\\\\\\\"==e}},function(t,e,n){(function(e){var n=\\\\\\\"object\\\\\\\"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(this,n(98))},function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+\\\\\\\"\\\\\\\"}catch(t){}}return\\\\\\\"\\\\\\\"}},function(t,e,n){var i=n(122),s=n(117),r=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];r.call(t,e)&&s(o,n)&&(void 0!==n||e in t)||i(t,e,n)}},function(t,e,n){var i=n(168);t.exports=function(t,e,n){\\\\\\\"__proto__\\\\\\\"==e&&i?i(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},function(t,e,n){var i=n(170),s=n(171),r=n(105),o=n(124),a=n(174),l=n(175),c=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=r(t),h=!n&&s(t),u=!n&&!h&&o(t),d=!n&&!h&&!u&&l(t),p=n||h||u||d,_=p?i(t.length,String):[],m=_.length;for(var f in t)!e&&!c.call(t,f)||p&&(\\\\\\\"length\\\\\\\"==f||u&&(\\\\\\\"offset\\\\\\\"==f||\\\\\\\"parent\\\\\\\"==f)||d&&(\\\\\\\"buffer\\\\\\\"==f||\\\\\\\"byteLength\\\\\\\"==f||\\\\\\\"byteOffset\\\\\\\"==f)||a(f,m))||_.push(f);return _}},function(t,e,n){(function(t){var i=n(68),s=n(173),r=e&&!e.nodeType&&e,o=r&&\\\\\\\"object\\\\\\\"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===r?i.Buffer:void 0,l=(a?a.isBuffer:void 0)||s;t.exports=l}).call(this,n(106)(t))},function(t,e){t.exports=function(t){return\\\\\\\"number\\\\\\\"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},function(t,e,n){var i=n(118),s=n(125);t.exports=function(t){return null!=t&&s(t.length)&&!i(t)}},function(t,e){t.exports=function(){return[]}},function(t,e,n){var i=n(130),s=n(131),r=n(111),o=n(128),a=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)i(e,r(t)),t=s(t);return e}:o;t.exports=a},function(t,e){t.exports=function(t,e){for(var n=-1,i=e.length,s=t.length;++n<i;)t[s+n]=e[n];return t}},function(t,e,n){var i=n(126)(Object.getPrototypeOf,Object);t.exports=i},function(t,e,n){var i=n(130),s=n(105);t.exports=function(t,e,n){var r=e(t);return s(t)?r:i(r,n(t))}},function(t,e,n){\\\\\\\"use strict\\\\\\\";Object.defineProperty(e,\\\\\\\"__esModule\\\\\\\",{value:!0}),e.loop=e.conditional=e.parse=void 0;e.parse=function t(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;if(Array.isArray(n))n.forEach((function(n){return t(e,n,i,s)}));else if(\\\\\\\"function\\\\\\\"==typeof n)n(e,i,s,t);else{var r=Object.keys(n)[0];Array.isArray(n[r])?(s[r]={},t(e,n[r],i,s[r])):s[r]=n[r](e,i,s,t)}return i};e.conditional=function(t,e){return function(n,i,s,r){e(n,i,s)&&r(n,t,i,s)}};e.loop=function(t,e){return function(n,i,s,r){for(var o=[],a=n.pos;e(n,i,s);){var l={};if(r(n,t,i,l),n.pos===a)break;a=n.pos,o.push(l)}return o}}},function(t,e,n){\\\\\\\"use strict\\\\\\\";Object.defineProperty(e,\\\\\\\"__esModule\\\\\\\",{value:!0}),e.readBits=e.readArray=e.readUnsigned=e.readString=e.peekBytes=e.readBytes=e.peekByte=e.readByte=e.buildStream=void 0;e.buildStream=function(t){return{data:t,pos:0}};var i=function(){return function(t){return t.data[t.pos++]}};e.readByte=i;e.peekByte=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(e){return e.data[e.pos+t]}};var s=function(t){return function(e){return e.data.subarray(e.pos,e.pos+=t)}};e.readBytes=s;e.peekBytes=function(t){return function(e){return e.data.subarray(e.pos,e.pos+t)}};e.readString=function(t){return function(e){return Array.from(s(t)(e)).map((function(t){return String.fromCharCode(t)})).join(\\\\\\\"\\\\\\\")}};e.readUnsigned=function(t){return function(e){var n=s(2)(e);return t?(n[1]<<8)+n[0]:(n[0]<<8)+n[1]}};e.readArray=function(t,e){return function(n,i,r){for(var o=\\\\\\\"function\\\\\\\"==typeof e?e(n,i,r):e,a=s(t),l=new Array(o),c=0;c<o;c++)l[c]=a(n);return l}};e.readBits=function(t){return function(e){for(var n=function(t){return t.data[t.pos++]}(e),i=new Array(8),s=0;s<8;s++)i[7-s]=!!(n&1<<s);return Object.keys(t).reduce((function(e,n){var s=t[n];return s.length?e[n]=function(t,e,n){for(var i=0,s=0;s<n;s++)i+=t[e+s]&&Math.pow(2,n-s-1);return i}(i,s.index,s.length):e[n]=i[s.index],e}),{})}}},function(t,e,n){var i=n(116);t.exports=function(t){return i(t,5)}},function(t,e,n){var i=n(116);t.exports=function(t){return i(t,4)}},function(t,e,n){var i=n(95),s=n(143),r=n(144),o=n(145),a=n(146),l=n(147);function c(t){var e=this.__data__=new i(t);this.size=e.size}c.prototype.clear=s,c.prototype.delete=r,c.prototype.get=o,c.prototype.has=a,c.prototype.set=l,t.exports=c},function(t,e){t.exports=function(){this.__data__=[],this.size=0}},function(t,e,n){var i=n(96),s=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=i(e,t);return!(n<0)&&(n==e.length-1?e.pop():s.call(e,n,1),--this.size,!0)}},function(t,e,n){var i=n(96);t.exports=function(t){var e=this.__data__,n=i(e,t);return n<0?void 0:e[n][1]}},function(t,e,n){var i=n(96);t.exports=function(t){return i(this.__data__,t)>-1}},function(t,e,n){var i=n(96);t.exports=function(t,e){var n=this.__data__,s=i(n,t);return s<0?(++this.size,n.push([t,e])):n[s][1]=e,this}},function(t,e,n){var i=n(95);t.exports=function(){this.__data__=new i,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var i=n(95),s=n(102),r=n(154);t.exports=function(t,e){var n=this.__data__;if(n instanceof i){var o=n.__data__;if(!s||o.length<199)return o.push([t,e]),this.size=++n.size,this;n=this.__data__=new r(o)}return n.set(t,e),this.size=n.size,this}},function(t,e,n){var i=n(118),s=n(151),r=n(88),o=n(120),a=/^\\\\[object .+?Constructor\\\\]$/,l=Function.prototype,c=Object.prototype,h=l.toString,u=c.hasOwnProperty,d=RegExp(\\\\\\\"^\\\\\\\"+h.call(u).replace(/[\\\\\\\\^$.*+?()[\\\\]{}|]/g,\\\\\\\"\\\\\\\\$&\\\\\\\").replace(/hasOwnProperty|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g,\\\\\\\"$1.*?\\\\\\\")+\\\\\\\"$\\\\\\\");t.exports=function(t){return!(!r(t)||s(t))&&(i(t)?d:a).test(o(t))}},function(t,e,n){var i=n(103),s=Object.prototype,r=s.hasOwnProperty,o=s.toString,a=i?i.toStringTag:void 0;t.exports=function(t){var e=r.call(t,a),n=t[a];try{t[a]=void 0;var i=!0}catch(t){}var s=o.call(t);return i&&(e?t[a]=n:delete t[a]),s}},function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},function(t,e,n){var i,s=n(152),r=(i=/[^.]+$/.exec(s&&s.keys&&s.keys.IE_PROTO||\\\\\\\"\\\\\\\"))?\\\\\\\"Symbol(src)_1.\\\\\\\"+i:\\\\\\\"\\\\\\\";t.exports=function(t){return!!r&&r in t}},function(t,e,n){var i=n(68)[\\\\\\\"__core-js_shared__\\\\\\\"];t.exports=i},function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},function(t,e,n){var i=n(155),s=n(162),r=n(164),o=n(165),a=n(166);function l(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=s,l.prototype.get=r,l.prototype.has=o,l.prototype.set=a,t.exports=l},function(t,e,n){var i=n(156),s=n(95),r=n(102);t.exports=function(){this.size=0,this.__data__={hash:new i,map:new(r||s),string:new i}}},function(t,e,n){var i=n(157),s=n(158),r=n(159),o=n(160),a=n(161);function l(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}l.prototype.clear=i,l.prototype.delete=s,l.prototype.get=r,l.prototype.has=o,l.prototype.set=a,t.exports=l},function(t,e,n){var i=n(99);t.exports=function(){this.__data__=i?i(null):{},this.size=0}},function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},function(t,e,n){var i=n(99),s=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(i){var n=e[t];return\\\\\\\"__lodash_hash_undefined__\\\\\\\"===n?void 0:n}return s.call(e,t)?e[t]:void 0}},function(t,e,n){var i=n(99),s=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return i?void 0!==e[t]:s.call(e,t)}},function(t,e,n){var i=n(99);t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=i&&void 0===e?\\\\\\\"__lodash_hash_undefined__\\\\\\\":e,this}},function(t,e,n){var i=n(100);t.exports=function(t){var e=i(this,t).delete(t);return this.size-=e?1:0,e}},function(t,e){t.exports=function(t){var e=typeof t;return\\\\\\\"string\\\\\\\"==e||\\\\\\\"number\\\\\\\"==e||\\\\\\\"symbol\\\\\\\"==e||\\\\\\\"boolean\\\\\\\"==e?\\\\\\\"__proto__\\\\\\\"!==t:null===t}},function(t,e,n){var i=n(100);t.exports=function(t){return i(this,t).get(t)}},function(t,e,n){var i=n(100);t.exports=function(t){return i(this,t).has(t)}},function(t,e,n){var i=n(100);t.exports=function(t,e){var n=i(this,t),s=n.size;return n.set(t,e),this.size+=n.size==s?0:1,this}},function(t,e){t.exports=function(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}},function(t,e,n){var i=n(84),s=function(){try{var t=i(Object,\\\\\\\"defineProperty\\\\\\\");return t({},\\\\\\\"\\\\\\\",{}),t}catch(t){}}();t.exports=s},function(t,e,n){var i=n(101),s=n(104);t.exports=function(t,e){return t&&i(e,s(e),t)}},function(t,e){t.exports=function(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}},function(t,e,n){var i=n(172),s=n(89),r=Object.prototype,o=r.hasOwnProperty,a=r.propertyIsEnumerable,l=i(function(){return arguments}())?i:function(t){return s(t)&&o.call(t,\\\\\\\"callee\\\\\\\")&&!a.call(t,\\\\\\\"callee\\\\\\\")};t.exports=l},function(t,e,n){var i=n(97),s=n(89);t.exports=function(t){return s(t)&&\\\\\\\"[object Arguments]\\\\\\\"==i(t)}},function(t,e){t.exports=function(){return!1}},function(t,e){var n=/^(?:0|[1-9]\\\\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&(\\\\\\\"number\\\\\\\"==i||\\\\\\\"symbol\\\\\\\"!=i&&n.test(t))&&t>-1&&t%1==0&&t<e}},function(t,e,n){var i=n(176),s=n(107),r=n(108),o=r&&r.isTypedArray,a=o?s(o):i;t.exports=a},function(t,e,n){var i=n(97),s=n(125),r=n(89),o={};o[\\\\\\\"[object Float32Array]\\\\\\\"]=o[\\\\\\\"[object Float64Array]\\\\\\\"]=o[\\\\\\\"[object Int8Array]\\\\\\\"]=o[\\\\\\\"[object Int16Array]\\\\\\\"]=o[\\\\\\\"[object Int32Array]\\\\\\\"]=o[\\\\\\\"[object Uint8Array]\\\\\\\"]=o[\\\\\\\"[object Uint8ClampedArray]\\\\\\\"]=o[\\\\\\\"[object Uint16Array]\\\\\\\"]=o[\\\\\\\"[object Uint32Array]\\\\\\\"]=!0,o[\\\\\\\"[object Arguments]\\\\\\\"]=o[\\\\\\\"[object Array]\\\\\\\"]=o[\\\\\\\"[object ArrayBuffer]\\\\\\\"]=o[\\\\\\\"[object Boolean]\\\\\\\"]=o[\\\\\\\"[object DataView]\\\\\\\"]=o[\\\\\\\"[object Date]\\\\\\\"]=o[\\\\\\\"[object Error]\\\\\\\"]=o[\\\\\\\"[object Function]\\\\\\\"]=o[\\\\\\\"[object Map]\\\\\\\"]=o[\\\\\\\"[object Number]\\\\\\\"]=o[\\\\\\\"[object Object]\\\\\\\"]=o[\\\\\\\"[object RegExp]\\\\\\\"]=o[\\\\\\\"[object Set]\\\\\\\"]=o[\\\\\\\"[object String]\\\\\\\"]=o[\\\\\\\"[object WeakMap]\\\\\\\"]=!1,t.exports=function(t){return r(t)&&s(t.length)&&!!o[i(t)]}},function(t,e,n){var i=n(109),s=n(178),r=Object.prototype.hasOwnProperty;t.exports=function(t){if(!i(t))return s(t);var e=[];for(var n in Object(t))r.call(t,n)&&\\\\\\\"constructor\\\\\\\"!=n&&e.push(n);return e}},function(t,e,n){var i=n(126)(Object.keys,Object);t.exports=i},function(t,e,n){var i=n(101),s=n(110);t.exports=function(t,e){return t&&i(e,s(e),t)}},function(t,e,n){var i=n(88),s=n(109),r=n(181),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!i(t))return r(t);var e=s(t),n=[];for(var a in t)(\\\\\\\"constructor\\\\\\\"!=a||!e&&o.call(t,a))&&n.push(a);return n}},function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},function(t,e,n){(function(t){var i=n(68),s=e&&!e.nodeType&&e,r=s&&\\\\\\\"object\\\\\\\"==typeof t&&t&&!t.nodeType&&t,o=r&&r.exports===s?i.Buffer:void 0,a=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,i=a?a(n):new t.constructor(n);return t.copy(i),i}}).call(this,n(106)(t))},function(t,e){t.exports=function(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}},function(t,e,n){var i=n(101),s=n(111);t.exports=function(t,e){return i(t,s(t),e)}},function(t,e){t.exports=function(t,e){for(var n=-1,i=null==t?0:t.length,s=0,r=[];++n<i;){var o=t[n];e(o,n,t)&&(r[s++]=o)}return r}},function(t,e,n){var i=n(101),s=n(129);t.exports=function(t,e){return i(t,s(t),e)}},function(t,e,n){var i=n(132),s=n(111),r=n(104);t.exports=function(t){return i(t,r,s)}},function(t,e,n){var i=n(132),s=n(129),r=n(110);t.exports=function(t){return i(t,r,s)}},function(t,e,n){var i=n(84)(n(68),\\\\\\\"DataView\\\\\\\");t.exports=i},function(t,e,n){var i=n(84)(n(68),\\\\\\\"Promise\\\\\\\");t.exports=i},function(t,e,n){var i=n(84)(n(68),\\\\\\\"Set\\\\\\\");t.exports=i},function(t,e,n){var i=n(84)(n(68),\\\\\\\"WeakMap\\\\\\\");t.exports=i},function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,i=new t.constructor(e);return e&&\\\\\\\"string\\\\\\\"==typeof t[0]&&n.call(t,\\\\\\\"index\\\\\\\")&&(i.index=t.index,i.input=t.input),i}},function(t,e,n){var i=n(113),s=n(196),r=n(197),o=n(198),a=n(199);t.exports=function(t,e,n){var l=t.constructor;switch(e){case\\\\\\\"[object ArrayBuffer]\\\\\\\":return i(t);case\\\\\\\"[object Boolean]\\\\\\\":case\\\\\\\"[object Date]\\\\\\\":return new l(+t);case\\\\\\\"[object DataView]\\\\\\\":return s(t,n);case\\\\\\\"[object Float32Array]\\\\\\\":case\\\\\\\"[object Float64Array]\\\\\\\":case\\\\\\\"[object Int8Array]\\\\\\\":case\\\\\\\"[object Int16Array]\\\\\\\":case\\\\\\\"[object Int32Array]\\\\\\\":case\\\\\\\"[object Uint8Array]\\\\\\\":case\\\\\\\"[object Uint8ClampedArray]\\\\\\\":case\\\\\\\"[object Uint16Array]\\\\\\\":case\\\\\\\"[object Uint32Array]\\\\\\\":return a(t,n);case\\\\\\\"[object Map]\\\\\\\":return new l;case\\\\\\\"[object Number]\\\\\\\":case\\\\\\\"[object String]\\\\\\\":return new l(t);case\\\\\\\"[object RegExp]\\\\\\\":return r(t);case\\\\\\\"[object Set]\\\\\\\":return new l;case\\\\\\\"[object Symbol]\\\\\\\":return o(t)}}},function(t,e,n){var i=n(68).Uint8Array;t.exports=i},function(t,e,n){var i=n(113);t.exports=function(t,e){var n=e?i(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},function(t,e){var n=/\\\\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},function(t,e,n){var i=n(103),s=i?i.prototype:void 0,r=s?s.valueOf:void 0;t.exports=function(t){return r?Object(r.call(t)):{}}},function(t,e,n){var i=n(113);t.exports=function(t,e){var n=e?i(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},function(t,e,n){var i=n(201),s=n(131),r=n(109);t.exports=function(t){return\\\\\\\"function\\\\\\\"!=typeof t.constructor||r(t)?{}:i(s(t))}},function(t,e,n){var i=n(88),s=Object.create,r=function(){function t(){}return function(e){if(!i(e))return{};if(s)return s(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=r},function(t,e,n){var i=n(203),s=n(107),r=n(108),o=r&&r.isMap,a=o?s(o):i;t.exports=a},function(t,e,n){var i=n(112),s=n(89);t.exports=function(t){return s(t)&&\\\\\\\"[object Map]\\\\\\\"==i(t)}},function(t,e,n){var i=n(205),s=n(107),r=n(108),o=r&&r.isSet,a=o?s(o):i;t.exports=a},function(t,e,n){var i=n(112),s=n(89);t.exports=function(t){return s(t)&&\\\\\\\"[object Set]\\\\\\\"==i(t)}},function(t,e,n){\\\\\\\"use strict\\\\\\\";Object.defineProperty(e,\\\\\\\"__esModule\\\\\\\",{value:!0}),e.default=void 0;var i=n(133),s=n(134),r={blocks:function(t){for(var e=[],n=t.data.length,i=0,r=(0,s.readByte)()(t);0!==r&&r;r=(0,s.readByte)()(t)){if(t.pos+r>=n){var o=n-t.pos;e.push((0,s.readBytes)(o)(t)),i+=o;break}e.push((0,s.readBytes)(r)(t)),i+=r}for(var a=new Uint8Array(i),l=0,c=0;c<e.length;c++)a.set(e[c],l),l+=e[c].length;return a}},o=(0,i.conditional)({gce:[{codes:(0,s.readBytes)(2)},{byteSize:(0,s.readByte)()},{extras:(0,s.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,s.readUnsigned)(!0)},{transparentColorIndex:(0,s.readByte)()},{terminator:(0,s.readByte)()}]},(function(t){var e=(0,s.peekBytes)(2)(t);return 33===e[0]&&249===e[1]})),a=(0,i.conditional)({image:[{code:(0,s.readByte)()},{descriptor:[{left:(0,s.readUnsigned)(!0)},{top:(0,s.readUnsigned)(!0)},{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{lct:(0,s.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,i.conditional)({lct:(0,s.readArray)(3,(function(t,e,n){return Math.pow(2,n.descriptor.lct.size+1)}))},(function(t,e,n){return n.descriptor.lct.exists})),{data:[{minCodeSize:(0,s.readByte)()},r]}]},(function(t){return 44===(0,s.peekByte)()(t)})),l=(0,i.conditional)({text:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{preData:function(t,e,n){return(0,s.readBytes)(n.text.blockSize)(t)}},r]},(function(t){var e=(0,s.peekBytes)(2)(t);return 33===e[0]&&1===e[1]})),c=(0,i.conditional)({application:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{id:function(t,e,n){return(0,s.readString)(n.blockSize)(t)}},r]},(function(t){var e=(0,s.peekBytes)(2)(t);return 33===e[0]&&255===e[1]})),h=(0,i.conditional)({comment:[{codes:(0,s.readBytes)(2)},r]},(function(t){var e=(0,s.peekBytes)(2)(t);return 33===e[0]&&254===e[1]})),u=[{header:[{signature:(0,s.readString)(3)},{version:(0,s.readString)(3)}]},{lsd:[{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{gct:(0,s.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,s.readByte)()},{pixelAspectRatio:(0,s.readByte)()}]},(0,i.conditional)({gct:(0,s.readArray)(3,(function(t,e){return Math.pow(2,e.lsd.gct.size+1)}))},(function(t,e){return e.lsd.gct.exists})),{frames:(0,i.loop)([o,c,h,a,l],(function(t){var e=(0,s.peekByte)()(t);return 33===e||44===e}))}];e.default=u},function(t,e,n){\\\\\\\"use strict\\\\\\\";Object.defineProperty(e,\\\\\\\"__esModule\\\\\\\",{value:!0}),e.deinterlace=void 0;e.deinterlace=function(t,e){for(var n=new Array(t.length),i=t.length/e,s=function(i,s){var r=t.slice(s*e,(s+1)*e);n.splice.apply(n,[i*e,e].concat(r))},r=[0,4,2,1],o=[8,8,4,2],a=0,l=0;l<4;l++)for(var c=r[l];c<i;c+=o[l])s(c,a),a++;return n}},function(t,e,n){\\\\\\\"use strict\\\\\\\";Object.defineProperty(e,\\\\\\\"__esModule\\\\\\\",{value:!0}),e.lzw=void 0;e.lzw=function(t,e,n){var i,s,r,o,a,l,c,h,u,d,p,_,m,f,g,v,y=4096,x=n,b=new Array(n),w=new Array(y),T=new Array(y),A=new Array(4097);for(a=(s=1<<(d=t))+1,i=s+2,c=-1,r=(1<<(o=d+1))-1,h=0;h<s;h++)w[h]=0,T[h]=h;for(p=_=m=f=g=v=0,u=0;u<x;){if(0===f){if(_<o){p+=e[v]<<_,_+=8,v++;continue}if(h=p&r,p>>=o,_-=o,h>i||h==a)break;if(h==s){r=(1<<(o=d+1))-1,i=s+2,c=-1;continue}if(-1==c){A[f++]=T[h],c=h,m=h;continue}for(l=h,h==i&&(A[f++]=m,h=c);h>s;)A[f++]=T[h],h=w[h];m=255&T[h],A[f++]=m,i<y&&(w[i]=c,T[i]=m,0==(++i&r)&&i<y&&(o++,r+=i)),c=l}f--,b[g++]=A[f],u++}for(u=g;u<x;u++)b[u]=0;return b}},,,,,,,,function(t,e,n){\\\\\\\"use strict\\\\\\\";n.r(e),n.d(e,\\\\\\\"PolyScene\\\\\\\",(function(){return Fl})),n.d(e,\\\\\\\"Poly\\\\\\\",(function(){return li})),n.d(e,\\\\\\\"SceneJsonImporter\\\\\\\",(function(){return Jl})),n.d(e,\\\\\\\"SceneDataManifestImporter\\\\\\\",(function(){return Zl})),n.d(e,\\\\\\\"mountScene\\\\\\\",(function(){return Kl}));var i={};n.r(i),n.d(i,\\\\\\\"ShadowMaterial\\\\\\\",(function(){return Hf})),n.d(i,\\\\\\\"SpriteMaterial\\\\\\\",(function(){return jf})),n.d(i,\\\\\\\"RawShaderMaterial\\\\\\\",(function(){return at})),n.d(i,\\\\\\\"ShaderMaterial\\\\\\\",(function(){return F})),n.d(i,\\\\\\\"PointsMaterial\\\\\\\",(function(){return bs.a})),n.d(i,\\\\\\\"MeshPhysicalMaterial\\\\\\\",(function(){return Wf.a})),n.d(i,\\\\\\\"MeshStandardMaterial\\\\\\\",(function(){return ws.a})),n.d(i,\\\\\\\"MeshPhongMaterial\\\\\\\",(function(){return qf.a})),n.d(i,\\\\\\\"MeshToonMaterial\\\\\\\",(function(){return Xf})),n.d(i,\\\\\\\"MeshNormalMaterial\\\\\\\",(function(){return Yf})),n.d(i,\\\\\\\"MeshLambertMaterial\\\\\\\",(function(){return Ts.a})),n.d(i,\\\\\\\"MeshDepthMaterial\\\\\\\",(function(){return Sn})),n.d(i,\\\\\\\"MeshDistanceMaterial\\\\\\\",(function(){return Cn})),n.d(i,\\\\\\\"MeshBasicMaterial\\\\\\\",(function(){return lt.a})),n.d(i,\\\\\\\"MeshMatcapMaterial\\\\\\\",(function(){return $f})),n.d(i,\\\\\\\"LineDashedMaterial\\\\\\\",(function(){return Jf})),n.d(i,\\\\\\\"LineBasicMaterial\\\\\\\",(function(){return As.a})),n.d(i,\\\\\\\"Material\\\\\\\",(function(){return O.a}));var s={};n.r(s),n.d(s,\\\\\\\"BoxGeometry\\\\\\\",(function(){return N})),n.d(s,\\\\\\\"BoxBufferGeometry\\\\\\\",(function(){return N})),n.d(s,\\\\\\\"CircleGeometry\\\\\\\",(function(){return hJ})),n.d(s,\\\\\\\"CircleBufferGeometry\\\\\\\",(function(){return hJ})),n.d(s,\\\\\\\"ConeGeometry\\\\\\\",(function(){return lG})),n.d(s,\\\\\\\"ConeBufferGeometry\\\\\\\",(function(){return lG})),n.d(s,\\\\\\\"CylinderGeometry\\\\\\\",(function(){return aG})),n.d(s,\\\\\\\"CylinderBufferGeometry\\\\\\\",(function(){return aG})),n.d(s,\\\\\\\"DodecahedronGeometry\\\\\\\",(function(){return uJ})),n.d(s,\\\\\\\"DodecahedronBufferGeometry\\\\\\\",(function(){return uJ})),n.d(s,\\\\\\\"EdgesGeometry\\\\\\\",(function(){return fJ})),n.d(s,\\\\\\\"ExtrudeGeometry\\\\\\\",(function(){return yJ})),n.d(s,\\\\\\\"ExtrudeBufferGeometry\\\\\\\",(function(){return yJ})),n.d(s,\\\\\\\"IcosahedronGeometry\\\\\\\",(function(){return bJ})),n.d(s,\\\\\\\"IcosahedronBufferGeometry\\\\\\\",(function(){return bJ})),n.d(s,\\\\\\\"LatheGeometry\\\\\\\",(function(){return wJ})),n.d(s,\\\\\\\"LatheBufferGeometry\\\\\\\",(function(){return wJ})),n.d(s,\\\\\\\"OctahedronGeometry\\\\\\\",(function(){return YU})),n.d(s,\\\\\\\"OctahedronBufferGeometry\\\\\\\",(function(){return YU})),n.d(s,\\\\\\\"PlaneGeometry\\\\\\\",(function(){return L})),n.d(s,\\\\\\\"PlaneBufferGeometry\\\\\\\",(function(){return L})),n.d(s,\\\\\\\"PolyhedronGeometry\\\\\\\",(function(){return XU})),n.d(s,\\\\\\\"PolyhedronBufferGeometry\\\\\\\",(function(){return XU})),n.d(s,\\\\\\\"RingGeometry\\\\\\\",(function(){return TJ})),n.d(s,\\\\\\\"RingBufferGeometry\\\\\\\",(function(){return TJ})),n.d(s,\\\\\\\"ShapeGeometry\\\\\\\",(function(){return AJ})),n.d(s,\\\\\\\"ShapeBufferGeometry\\\\\\\",(function(){return AJ})),n.d(s,\\\\\\\"SphereGeometry\\\\\\\",(function(){return tG})),n.d(s,\\\\\\\"SphereBufferGeometry\\\\\\\",(function(){return tG})),n.d(s,\\\\\\\"TetrahedronGeometry\\\\\\\",(function(){return MJ})),n.d(s,\\\\\\\"TetrahedronBufferGeometry\\\\\\\",(function(){return MJ})),n.d(s,\\\\\\\"TorusGeometry\\\\\\\",(function(){return EJ})),n.d(s,\\\\\\\"TorusBufferGeometry\\\\\\\",(function(){return EJ})),n.d(s,\\\\\\\"TorusKnotGeometry\\\\\\\",(function(){return SJ})),n.d(s,\\\\\\\"TorusKnotBufferGeometry\\\\\\\",(function(){return SJ})),n.d(s,\\\\\\\"TubeGeometry\\\\\\\",(function(){return NJ})),n.d(s,\\\\\\\"TubeBufferGeometry\\\\\\\",(function(){return NJ})),n.d(s,\\\\\\\"WireframeGeometry\\\\\\\",(function(){return LJ}));class r{constructor(t){this.scene=t,this._mainCameraNodePath=null}setMainCameraNodePath(t){this._mainCameraNodePath=t}mainCameraNodePath(){return this._mainCameraNodePath}mainCameraNode(){if(this.mainCameraNodePath){const t=this.mainCameraNodePath();if(!t)return this._find_any_camera();return this.scene.node(t)}return console.warn(\\\\\\\"main camera node not found\\\\\\\"),this._find_any_camera()}_find_any_camera(){const t=this.scene.root();return t.nodesByType(\\\\\\\"perspectiveCamera\\\\\\\")[0]||t.nodesByType(\\\\\\\"orthographicCamera\\\\\\\")[0]}}class o{constructor(t){this._scene=t,this._queue=new Map,this._block_level=0,this._process_item_bound=this._process_item.bind(this),this._block_level=0}block(){this._block_level+=1}unblock(){this._block_level-=1,this._block_level<0&&(this._block_level=0),this.process_queue()}get blocked(){return this._block_level>0}enqueue(t,e){this._queue.set(t.graphNodeId(),e)}process_queue(){this.blocked||this._queue.forEach(this._process_item_bound)}_process_item(t,e){const n=this._scene.graph.nodeFromId(e);n&&(this._queue.delete(e),n.dirtyController.runPostDirtyHooks(t))}}class a{constructor(){this._cooking_nodes_by_id=new Map,this._resolves=[]}addNode(t){this._cooking_nodes_by_id.set(t.graphNodeId(),t)}removeNode(t){this._cooking_nodes_by_id.delete(t.graphNodeId()),0==this._cooking_nodes_by_id.size&&this.flush()}cookingNodes(){const t=[];return this._cooking_nodes_by_id.forEach(((e,n)=>{t.push(e)})),t}flush(){let t;for(;t=this._resolves.pop();)t()}async waitForCooksCompleted(){return 0==this._cooking_nodes_by_id.size?void 0:new Promise(((t,e)=>{this._resolves.push(t)}))}}class l{constructor(){this._next_id=0,this._successors=new Map,this._predecessors=new Map,this._nodes_by_id=new Map,this._nodesCount=0,this._debugging=!1,this._addedNodesDuringDebugging=new Map}startDebugging(){this._debugging=!0,console.log(\\\\\\\"CoreGraph.startDebugging\\\\\\\",this._next_id)}stopDebugging(){this._debugging=!1,console.log(\\\\\\\"CoreGraph.stopDebugging\\\\\\\",this._next_id)}printDebug(){this._addedNodesDuringDebugging.forEach(((t,e)=>{console.log(e,t,t.graphPredecessors(),t.graphSuccessors())}))}setScene(t){this._scene=t}scene(){return this._scene}nextId(){return this._next_id+=1,this._next_id}nodesFromIds(t){const e=[];for(let n of t){const t=this.nodeFromId(n);t&&e.push(t)}return e}nodeFromId(t){return this._nodes_by_id.get(t)}hasNode(t){return null!=this._nodes_by_id.get(t.graphNodeId())}addNode(t){this._nodes_by_id.set(t.graphNodeId(),t),this._nodesCount+=1,this._debugging&&this._addedNodesDuringDebugging.set(t.graphNodeId(),t)}removeNode(t){this._nodes_by_id.delete(t.graphNodeId()),this._successors.delete(t.graphNodeId()),this._predecessors.delete(t.graphNodeId()),this._nodesCount-=1,this._debugging&&this._addedNodesDuringDebugging.delete(t.graphNodeId())}nodesCount(){return this._nodesCount}connect(t,e,n=!0){const i=t.graphNodeId(),s=e.graphNodeId();if(this.hasNode(t)&&this.hasNode(e)){if(n){n=!(!this._scene||this._scene.loadingController.isLoading())}let e=!1;return n&&(e=this._hasPredecessor(i,s)),!e&&(this._createConnection(i,s),t.dirtyController.clearSuccessorsCacheWithPredecessors(),!0)}return console.warn(`attempt to connect non existing node ${i} or ${s}`),!1}disconnect(t,e){this._remove_connection(t.graphNodeId(),e.graphNodeId()),t.dirtyController.clearSuccessorsCacheWithPredecessors()}disconnectPredecessors(t){const e=this.predecessors(t);for(let n of e)this.disconnect(n,t)}disconnectSuccessors(t){const e=this.successors(t);for(let n of e)this.disconnect(t,n)}predecessorIds(t){const e=this._predecessors.get(t);if(e){const t=[];return e.forEach(((e,n)=>{t.push(n)})),t}return[]}predecessors(t){const e=this.predecessorIds(t.graphNodeId());return this.nodesFromIds(e)}successorIds(t){const e=this._successors.get(t);if(e){const t=[];return e.forEach(((e,n)=>{t.push(n)})),t}return[]}successors(t){const e=this.successorIds(t.graphNodeId())||[];return this.nodesFromIds(e)}allPredecessorIds(t){return this.allNextIds(t,\\\\\\\"predecessorIds\\\\\\\")}allSuccessorIds(t){return this.allNextIds(t,\\\\\\\"successorIds\\\\\\\")}allPredecessors(t){const e=this.allPredecessorIds(t);return this.nodesFromIds(e)}allSuccessors(t){const e=this.allSuccessorIds(t);return this.nodesFromIds(e)}_createConnection(t,e){let n=this._successors.get(t);if(n||(n=new Set,this._successors.set(t,n)),n.has(e))return;n.add(e);let i=this._predecessors.get(e);i||(i=new Set,this._predecessors.set(e,i)),i.add(t)}_remove_connection(t,e){let n=this._successors.get(t);n&&(n.delete(e),0==n.size&&this._successors.delete(t));let i=this._predecessors.get(e);i&&(i.delete(t),0==i.size&&this._predecessors.delete(e))}allNextIds(t,e){const n=new Map,i=[];let s=this[e](t.graphNodeId());for(;s.length>0;){const t=[];for(let n of s)for(let i of this[e](n))t.push(i);for(let t of s)n.set(t,!0);for(let e of t)s.push(e);s=t}return n.forEach(((t,e)=>{i.push(e)})),i}_hasPredecessor(t,e){const n=this.predecessorIds(t);if(n){if(n.includes(e))return!0;for(let t of n)return this._hasPredecessor(t,e)}return!1}}class c{constructor(t){this._node=t,this._cooks_count=0,this._total_cook_time=0,this._total_inputs_time=0,this._total_params_time=0}update_cook_data(t){this._cooks_count+=1,this._total_cook_time+=t.cookTime,this._total_inputs_time+=t.inputsTime,this._total_params_time+=t.paramsTime}total_time(){return this._total_cook_time+this._total_inputs_time+this._total_params_time}total_cook_time(){return this._total_cook_time}cook_time_per_iteration(){return this._cooks_count>0?this._total_cook_time/this._cooks_count:0}total_inputs_time(){return this._total_inputs_time}inputs_time_per_iteration(){return this._cooks_count>0?this._total_inputs_time/this._cooks_count:0}total_params_time2(){return this._total_params_time}params_time_per_iteration2(){return this._cooks_count>0?this._total_params_time/this._cooks_count:0}cooks_count(){return this._cooks_count}print_object(){return{fullPath:this._node.path(),cooks_count:this.cooks_count(),total_time:this.total_time(),total_cook_time:this.total_cook_time(),cook_time_per_iteration:this.cook_time_per_iteration(),inputs_time_per_iteration:this.inputs_time_per_iteration(),params_time_per_iteration:this.params_time_per_iteration2()}}}class h{static arrayFromValues(t){const e=[];return t.forEach((t=>{e.push(t)})),e}static pushOnArrayAtEntry(t,e,n){t.has(e)?t.get(e).push(n):t.set(e,[n])}static addToSetAtEntry(t,e,n){if(t.has(e))t.get(e).add(n);else{const i=new Set;i.add(n),t.set(e,i)}}static popFromArrayAtEntry(t,e,n){if(t.has(e)){const i=t.get(e),s=i.indexOf(n);s>=0&&i.splice(s,1)}}static removeFromSetAtEntry(t,e,n){if(t.has(e)){const i=t.get(e);i.delete(n),0==i.size&&t.delete(e)}}static unshiftOnArrayAtEntry(t,e,n){t.has(e)?t.get(e).unshift(n):t.set(e,[n])}static concatOnArrayAtEntry(t,e,n){if(t.has(e)){let i=t.get(e);for(let t of n)i.push(t)}else t.set(e,n)}}class u{static toArray(t){const e=[];return t.forEach((t=>{e.push(t)})),e}static union(t,e){const n=new Set;return t.forEach((t=>n.add(t))),e.forEach((t=>n.add(t))),n}static intersection(t,e){const n=new Set;return t.forEach((t=>{e.has(t)&&n.add(t)})),e.forEach((e=>{t.has(e)&&n.add(e)})),n}static difference(t,e){const n=new Set;return t.forEach((t=>{e.has(t)||n.add(t)})),e.forEach((e=>{t.has(e)||n.add(e)})),n}}var d=n(2),p=n(0),_=n(9);class m{static isNumber(t){return\\\\\\\"number\\\\\\\"==typeof t}static isVector(t){return t instanceof d.a||t instanceof p.a||t instanceof _.a}static isString(t){return\\\\\\\"string\\\\\\\"==typeof t}static isBoolean(t){return!0===t||!1===t}static isNaN(t){return isNaN(t)}static isArray(t){return Array.isArray(t)}static isObject(t){var e=typeof t;return null!=t&&(\\\\\\\"object\\\\\\\"==e||\\\\\\\"function\\\\\\\"==e)}}class f{static shallowClone(t){return[...t]}static min(t){let e=t[0];for(let n of t)n<e&&(e=n);return e}static max(t){let e=t[0];for(let n of t)n>e&&(e=n);return e}static sum(t){let e=0;for(let n of t)e+=n;return e}static compact(t){const e=[];for(let n of t)null!=n&&e.push(n);return e}static uniq(t){const e=new Set;for(let n of t)e.add(n);const n=new Array(e.size);let i=0;return e.forEach((t=>{n[i]=t,i++})),n}static chunk(t,e){const n=[];let i=[];n.push(i);for(let s=0;s<t.length;s++)i.length==e&&(i=[],n.push(i)),i.push(t[s]);return n}static union(t,e){const n=[];return u.union(this.toSet(t),this.toSet(e)).forEach((t=>n.push(t))),n}static intersection(t,e){const n=[];return u.intersection(this.toSet(t),this.toSet(e)).forEach((t=>n.push(t))),n}static difference(t,e){const n=[];return u.difference(this.toSet(t),this.toSet(e)).forEach((t=>n.push(t))),n}static toSet(t){const e=new Set;for(let n of t)e.add(n);return e}static isEqual(t,e){if(t.length!=e.length)return!1;const n=t.length;for(let i=0;i<n;i++)if(t[i]!=e[i])return!1;return!0}static sortBy(t,e){if(0==t.length)return[];const n=new Map,i=new Set;for(let s of t){const t=e(s);i.add(t),h.pushOnArrayAtEntry(n,t,s)}const s=new Array(i.size);let r=0;i.forEach((t=>{s[r]=t,r++})),m.isString(s[0])?s.sort():s.sort(((t,e)=>t-e));const o=new Array(t.length);r=0;for(let t of s){const e=n.get(t);if(e)for(let t of e)o[r]=t,r++}return o}static range(t,e,n=1){null==e&&(e=t,t=0);const i=Math.floor((e-t)/n),s=new Array(i);for(let e=0;e<s.length;e++)s[e]=t+e*n;return s}}var g=n(135),v=n.n(g),y=n(136),x=n.n(y);class b{static isEqual(t,e){if(m.isObject(t)&&m.isObject(e)){const n=Object.keys(t),i=Object.keys(e);return!!f.isEqual(n,i)&&JSON.stringify(t)==JSON.stringify(e)}return!1}static merge(t,e){return Object.assign(t,e)}static clone(t){return x()(t)}static cloneDeep(t){return v()(t)}}var w=n(1),T=n(60),A=n(5);function M(){let t=null,e=!1,n=null,i=null;function s(e,r){n(e,r),i=t.requestAnimationFrame(s)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(s),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function E(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,s){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const r=i.get(e);void 0===r?i.set(e,function(e,i){const s=e.array,r=e.usage,o=t.createBuffer();t.bindBuffer(i,o),t.bufferData(i,s,r),e.onUploadCallback();let a=t.FLOAT;return s instanceof Float32Array?a=t.FLOAT:s instanceof Float64Array?console.warn(\\\\\\\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\\\\\\\"):s instanceof Uint16Array?e.isFloat16BufferAttribute?n?a=t.HALF_FLOAT:console.warn(\\\\\\\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\\\\\\\"):a=t.UNSIGNED_SHORT:s instanceof Int16Array?a=t.SHORT:s instanceof Uint32Array?a=t.UNSIGNED_INT:s instanceof Int32Array?a=t.INT:s instanceof Int8Array?a=t.BYTE:(s instanceof Uint8Array||s instanceof Uint8ClampedArray)&&(a=t.UNSIGNED_BYTE),{buffer:o,type:a,bytesPerElement:s.BYTES_PER_ELEMENT,version:e.version}}(e,s)):r.version<e.version&&(!function(e,i,s){const r=i.array,o=i.updateRange;t.bindBuffer(s,e),-1===o.count?t.bufferSubData(s,0,r):(n?t.bufferSubData(s,o.offset*r.BYTES_PER_ELEMENT,r,o.offset,o.count):t.bufferSubData(s,o.offset*r.BYTES_PER_ELEMENT,r.subarray(o.offset,o.offset+o.count)),o.count=-1)}(r.buffer,e,s),r.version=e.version)}}}var S=n(7),C=n(4);class N extends S.a{constructor(t=1,e=1,n=1,i=1,s=1,r=1){super(),this.type=\\\\\\\"BoxGeometry\\\\\\\",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:r};const o=this;i=Math.floor(i),s=Math.floor(s),r=Math.floor(r);const a=[],l=[],c=[],h=[];let u=0,d=0;function _(t,e,n,i,s,r,_,m,f,g,v){const y=r/f,x=_/g,b=r/2,w=_/2,T=m/2,A=f+1,M=g+1;let E=0,S=0;const C=new p.a;for(let r=0;r<M;r++){const o=r*x-w;for(let a=0;a<A;a++){const u=a*y-b;C[t]=u*i,C[e]=o*s,C[n]=T,l.push(C.x,C.y,C.z),C[t]=0,C[e]=0,C[n]=m>0?1:-1,c.push(C.x,C.y,C.z),h.push(a/f),h.push(1-r/g),E+=1}}for(let t=0;t<g;t++)for(let e=0;e<f;e++){const n=u+e+A*t,i=u+e+A*(t+1),s=u+(e+1)+A*(t+1),r=u+(e+1)+A*t;a.push(n,i,r),a.push(i,s,r),S+=6}o.addGroup(d,S,v),d+=S,u+=E}_(\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"x\\\\\\\",-1,-1,n,e,t,r,s,0),_(\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"x\\\\\\\",1,-1,n,e,-t,r,s,1),_(\\\\\\\"x\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",1,1,t,n,e,i,r,2),_(\\\\\\\"x\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",1,-1,t,n,-e,i,r,3),_(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",1,-1,t,e,n,i,s,4),_(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",-1,-1,t,e,-n,i,s,5),this.setIndex(a),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(l,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(c,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(h,2))}static fromJSON(t){return new N(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}class L extends S.a{constructor(t=1,e=1,n=1,i=1){super(),this.type=\\\\\\\"PlaneGeometry\\\\\\\",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const s=t/2,r=e/2,o=Math.floor(n),a=Math.floor(i),l=o+1,c=a+1,h=t/o,u=e/a,d=[],p=[],_=[],m=[];for(let t=0;t<c;t++){const e=t*u-r;for(let n=0;n<l;n++){const i=n*h-s;p.push(i,-e,0),_.push(0,0,1),m.push(n/o),m.push(1-t/a)}}for(let t=0;t<a;t++)for(let e=0;e<o;e++){const n=e+l*t,i=e+l*(t+1),s=e+1+l*(t+1),r=e+1+l*t;d.push(n,i,r),d.push(i,s,r)}this.setIndex(d),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(p,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(_,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(m,2))}static fromJSON(t){return new L(t.width,t.height,t.widthSegments,t.heightSegments)}}var O=n(12);function P(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const s=t[n][i];s&&(s.isColor||s.isMatrix3||s.isMatrix4||s.isVector2||s.isVector3||s.isVector4||s.isTexture||s.isQuaternion)?e[n][i]=s.clone():Array.isArray(s)?e[n][i]=s.slice():e[n][i]=s}}return e}function R(t){const e={};for(let n=0;n<t.length;n++){const i=P(t[n]);for(const t in i)e[t]=i[t]}return e}const I={clone:P,merge:R};class F extends O.a{constructor(t){super(),this.type=\\\\\\\"ShaderMaterial\\\\\\\",this.defines={},this.uniforms={},this.vertexShader=\\\\\\\"\\\\nvoid main() {\\\\n\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n}\\\\n\\\\\\\",this.fragmentShader=\\\\\\\"\\\\nvoid main() {\\\\n\\\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\\\n}\\\\n\\\\\\\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error(\\\\\\\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\\\\\\\"),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=P(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n].value;i&&i.isTexture?e.uniforms[n]={type:\\\\\\\"t\\\\\\\",value:i.toJSON(t).uuid}:i&&i.isColor?e.uniforms[n]={type:\\\\\\\"c\\\\\\\",value:i.getHex()}:i&&i.isVector2?e.uniforms[n]={type:\\\\\\\"v2\\\\\\\",value:i.toArray()}:i&&i.isVector3?e.uniforms[n]={type:\\\\\\\"v3\\\\\\\",value:i.toArray()}:i&&i.isVector4?e.uniforms[n]={type:\\\\\\\"v4\\\\\\\",value:i.toArray()}:i&&i.isMatrix3?e.uniforms[n]={type:\\\\\\\"m3\\\\\\\",value:i.toArray()}:i&&i.isMatrix4?e.uniforms[n]={type:\\\\\\\"m4\\\\\\\",value:i.toArray()}:e.uniforms[n]={value:i}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}F.prototype.isShaderMaterial=!0;var D=n(6),B=n(14),z=\\\\\\\"\\\\n#ifdef USE_SHADOWMAP\\\\n\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t\\\\tstruct DirectionalLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\n\\\\t\\\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t\\\\tstruct SpotLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\n\\\\t\\\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t\\\\tstruct PointLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraNear;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraFar;\\\\n\\\\t\\\\t};\\\\n\\\\n\\\\t\\\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t/*\\\\n\\\\t#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\n\\\\t\\\\t// TODO (abelnation): create uniforms for area light shadows\\\\n\\\\n\\\\t#endif\\\\n\\\\t*/\\\\n\\\\n\\\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\\\n\\\\n\\\\t\\\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\\\n\\\\n\\\\t\\\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\\\n\\\\n\\\\t\\\\tfloat occlusion = 1.0;\\\\n\\\\n\\\\t\\\\tvec2 distribution = texture2DDistribution( shadow, uv );\\\\n\\\\n\\\\t\\\\tfloat hard_shadow = step( compare , distribution.x ); // Hard Shadow\\\\n\\\\n\\\\t\\\\tif (hard_shadow != 1.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tfloat distance = compare - distribution.x ;\\\\n\\\\t\\\\t\\\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\\\n\\\\t\\\\t\\\\tfloat softness_probability = variance / (variance + distance * distance ); // Chebeyshevs inequality\\\\n\\\\t\\\\t\\\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); // 0.3 reduces light bleed\\\\n\\\\t\\\\t\\\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn occlusion;\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\\\n\\\\n\\\\t\\\\tfloat shadow = 1.0;\\\\n\\\\n\\\\t\\\\tshadowCoord.xyz /= shadowCoord.w;\\\\n\\\\t\\\\tshadowCoord.z += shadowBias;\\\\n\\\\n\\\\t\\\\t// if ( something && something ) breaks ATI OpenGL shader compiler\\\\n\\\\t\\\\t// if ( all( something, something ) ) using this instead\\\\n\\\\n\\\\t\\\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\\\n\\\\t\\\\tbool inFrustum = all( inFrustumVec );\\\\n\\\\n\\\\t\\\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\\\n\\\\n\\\\t\\\\tbool frustumTest = all( frustumTestVec );\\\\n\\\\n\\\\t\\\\tif ( frustumTest ) {\\\\n\\\\n\\\\t\\\\t#if defined( SHADOWMAP_TYPE_PCF )\\\\n\\\\n\\\\t\\\\t\\\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\\\n\\\\n\\\\t\\\\t\\\\tfloat dx0 = - texelSize.x * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dy0 = - texelSize.y * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dx1 = + texelSize.x * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dy1 = + texelSize.y * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dx2 = dx0 / 2.0;\\\\n\\\\t\\\\t\\\\tfloat dy2 = dy0 / 2.0;\\\\n\\\\t\\\\t\\\\tfloat dx3 = dx1 / 2.0;\\\\n\\\\t\\\\t\\\\tfloat dy3 = dy1 / 2.0;\\\\n\\\\n\\\\t\\\\t\\\\tshadow = (\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\\\n\\\\t\\\\t\\\\t) * ( 1.0 / 17.0 );\\\\n\\\\n\\\\t\\\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\\\n\\\\n\\\\t\\\\t\\\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat dx = texelSize.x;\\\\n\\\\t\\\\t\\\\tfloat dy = texelSize.y;\\\\n\\\\n\\\\t\\\\t\\\\tvec2 uv = shadowCoord.xy;\\\\n\\\\t\\\\t\\\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\\\n\\\\t\\\\t\\\\tuv -= f * texelSize;\\\\n\\\\n\\\\t\\\\t\\\\tshadow = (\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.x ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.x ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.y ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.y ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  f.x ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  f.x ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.y )\\\\n\\\\t\\\\t\\\\t) * ( 1.0 / 9.0 );\\\\n\\\\n\\\\t\\\\t#elif defined( SHADOWMAP_TYPE_VSM )\\\\n\\\\n\\\\t\\\\t\\\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\\\n\\\\n\\\\t\\\\t#else // no percentage-closer filtering:\\\\n\\\\n\\\\t\\\\t\\\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\treturn shadow;\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\t// cubeToUV() maps a 3D direction vector suitable for cube texture mapping to a 2D\\\\n\\\\t// vector suitable for 2D texture mapping. This code uses the following layout for the\\\\n\\\\t// 2D texture:\\\\n\\\\t//\\\\n\\\\t// xzXZ\\\\n\\\\t//  y Y\\\\n\\\\t//\\\\n\\\\t// Y - Positive y direction\\\\n\\\\t// y - Negative y direction\\\\n\\\\t// X - Positive x direction\\\\n\\\\t// x - Negative x direction\\\\n\\\\t// Z - Positive z direction\\\\n\\\\t// z - Negative z direction\\\\n\\\\t//\\\\n\\\\t// Source and test bed:\\\\n\\\\t// https://gist.github.com/tschw/da10c43c467ce8afd0c4\\\\n\\\\n\\\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\\\n\\\\n\\\\t\\\\t// Number of texels to avoid at the edge of each square\\\\n\\\\n\\\\t\\\\tvec3 absV = abs( v );\\\\n\\\\n\\\\t\\\\t// Intersect unit cube\\\\n\\\\n\\\\t\\\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\\\n\\\\t\\\\tabsV *= scaleToCube;\\\\n\\\\n\\\\t\\\\t// Apply scale to avoid seams\\\\n\\\\n\\\\t\\\\t// two texels less per square (one texel will do for NEAREST)\\\\n\\\\t\\\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\\\n\\\\n\\\\t\\\\t// Unwrap\\\\n\\\\n\\\\t\\\\t// space: -1 ... 1 range for each square\\\\n\\\\t\\\\t//\\\\n\\\\t\\\\t// #X##\\\\t\\\\tdim    := ( 4 , 2 )\\\\n\\\\t\\\\t//  # #\\\\t\\\\tcenter := ( 1 , 1 )\\\\n\\\\n\\\\t\\\\tvec2 planar = v.xy;\\\\n\\\\n\\\\t\\\\tfloat almostATexel = 1.5 * texelSizeY;\\\\n\\\\t\\\\tfloat almostOne = 1.0 - almostATexel;\\\\n\\\\n\\\\t\\\\tif ( absV.z >= almostOne ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( v.z > 0.0 )\\\\n\\\\t\\\\t\\\\t\\\\tplanar.x = 4.0 - v.x;\\\\n\\\\n\\\\t\\\\t} else if ( absV.x >= almostOne ) {\\\\n\\\\n\\\\t\\\\t\\\\tfloat signX = sign( v.x );\\\\n\\\\t\\\\t\\\\tplanar.x = v.z * signX + 2.0 * signX;\\\\n\\\\n\\\\t\\\\t} else if ( absV.y >= almostOne ) {\\\\n\\\\n\\\\t\\\\t\\\\tfloat signY = sign( v.y );\\\\n\\\\t\\\\t\\\\tplanar.x = v.x + 2.0 * signY + 2.0;\\\\n\\\\t\\\\t\\\\tplanar.y = v.z * signY - 2.0;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t// Transform to UV space\\\\n\\\\n\\\\t\\\\t// scale := 0.5 / dim\\\\n\\\\t\\\\t// translate := ( center + 0.5 ) / dim\\\\n\\\\t\\\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\\\n\\\\n\\\\t\\\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\\\n\\\\n\\\\t\\\\t// for point lights, the uniform @vShadowCoord is re-purposed to hold\\\\n\\\\t\\\\t// the vector from the light to the world-space position of the fragment.\\\\n\\\\t\\\\tvec3 lightToPosition = shadowCoord.xyz;\\\\n\\\\n\\\\t\\\\t// dp = normalized distance from light to fragment position\\\\n\\\\t\\\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); // need to clamp?\\\\n\\\\t\\\\tdp += shadowBias;\\\\n\\\\n\\\\t\\\\t// bd3D = base direction 3D\\\\n\\\\t\\\\tvec3 bd3D = normalize( lightToPosition );\\\\n\\\\n\\\\t\\\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\\\n\\\\n\\\\t\\\\t\\\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\\\n\\\\n\\\\t\\\\t\\\\treturn (\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\\\n\\\\t\\\\t\\\\t) * ( 1.0 / 9.0 );\\\\n\\\\n\\\\t\\\\t#else // no percentage-closer filtering\\\\n\\\\n\\\\t\\\\t\\\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",k=\\\\\\\"\\\\n#ifdef USE_TRANSMISSION\\\\n\\\\n\\\\tfloat transmissionAlpha = 1.0;\\\\n\\\\tfloat transmissionFactor = transmission;\\\\n\\\\tfloat thicknessFactor = thickness;\\\\n\\\\n\\\\t#ifdef USE_TRANSMISSIONMAP\\\\n\\\\n\\\\t\\\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_THICKNESSMAP\\\\n\\\\n\\\\t\\\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tvec3 pos = vWorldPosition;\\\\n\\\\tvec3 v = normalize( cameraPosition - pos );\\\\n\\\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\n\\\\tvec4 transmission = getIBLVolumeRefraction(\\\\n\\\\t\\\\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\\\\n\\\\t\\\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\\\n\\\\t\\\\tattenuationTint, attenuationDistance );\\\\n\\\\n\\\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\\\\n\\\\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\\\\n#endif\\\\n\\\\\\\";const U={alphamap_fragment:\\\\\\\"\\\\n#ifdef USE_ALPHAMAP\\\\n\\\\n\\\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\\\n\\\\n#endif\\\\n\\\\\\\",alphamap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_ALPHAMAP\\\\n\\\\n\\\\tuniform sampler2D alphaMap;\\\\n\\\\n#endif\\\\n\\\\\\\",alphatest_fragment:\\\\\\\"\\\\n#ifdef USE_ALPHATEST\\\\n\\\\n\\\\tif ( diffuseColor.a < alphaTest ) discard;\\\\n\\\\n#endif\\\\n\\\\\\\",alphatest_pars_fragment:\\\\\\\"\\\\n#ifdef USE_ALPHATEST\\\\n\\\\tuniform float alphaTest;\\\\n#endif\\\\n\\\\\\\",aomap_fragment:\\\\\\\"\\\\n#ifdef USE_AOMAP\\\\n\\\\n\\\\t// reads channel R, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\\\n\\\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\\\n\\\\n\\\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\\\n\\\\n\\\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\\\n\\\\n\\\\t\\\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\\\n\\\\n\\\\t\\\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",aomap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_AOMAP\\\\n\\\\n\\\\tuniform sampler2D aoMap;\\\\n\\\\tuniform float aoMapIntensity;\\\\n\\\\n#endif\\\\n\\\\\\\",begin_vertex:\\\\\\\"\\\\nvec3 transformed = vec3( position );\\\\n\\\\\\\",beginnormal_vertex:\\\\\\\"\\\\nvec3 objectNormal = vec3( normal );\\\\n\\\\n#ifdef USE_TANGENT\\\\n\\\\n\\\\tvec3 objectTangent = vec3( tangent.xyz );\\\\n\\\\n#endif\\\\n\\\\\\\",bsdfs:'\\\\n\\\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\\\n\\\\n\\\\treturn RECIPROCAL_PI * diffuseColor;\\\\n\\\\n} // validated\\\\n\\\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\\\n\\\\n\\\\t// Original approximation by Christophe Schlick \\\\'94\\\\n\\\\t// float fresnel = pow( 1.0 - dotVH, 5.0 );\\\\n\\\\n\\\\t// Optimized variant (presented by Epic at SIGGRAPH \\\\'13)\\\\n\\\\t// https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\\\\n\\\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\\\n\\\\n\\\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\\\n\\\\n} // validated\\\\n\\\\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\\\\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\\\n\\\\n\\\\tfloat a2 = pow2( alpha );\\\\n\\\\n\\\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\\\n\\\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\\\n\\\\n\\\\treturn 0.5 / max( gv + gl, EPSILON );\\\\n\\\\n}\\\\n\\\\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\\\\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\\\\n// alpha is \\\\\\\"roughness squared\\\\\\\" in Disney’s reparameterization\\\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\\\n\\\\n\\\\tfloat a2 = pow2( alpha );\\\\n\\\\n\\\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; // avoid alpha = 0 with dotNH = 1\\\\n\\\\n\\\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\\\n\\\\n}\\\\n\\\\n// GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility\\\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\\\\n\\\\n\\\\tfloat alpha = pow2( roughness ); // UE4\\\\'s roughness\\\\n\\\\n\\\\tvec3 halfDir = normalize( lightDir + viewDir );\\\\n\\\\n\\\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\\\n\\\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\\\n\\\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\\\n\\\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\\\n\\\\n\\\\tvec3 F = F_Schlick( f0, f90, dotVH );\\\\n\\\\n\\\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\\\n\\\\n\\\\tfloat D = D_GGX( alpha, dotNH );\\\\n\\\\n\\\\treturn F * ( V * D );\\\\n\\\\n}\\\\n\\\\n// Rect Area Light\\\\n\\\\n// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines\\\\n// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt\\\\n// code: https://github.com/selfshadow/ltc_code/\\\\n\\\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\\\n\\\\n\\\\tconst float LUT_SIZE = 64.0;\\\\n\\\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\\\n\\\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\\\n\\\\n\\\\tfloat dotNV = saturate( dot( N, V ) );\\\\n\\\\n\\\\t// texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) )\\\\n\\\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\\\n\\\\n\\\\tuv = uv * LUT_SCALE + LUT_BIAS;\\\\n\\\\n\\\\treturn uv;\\\\n\\\\n}\\\\n\\\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\\\n\\\\n\\\\t// Real-Time Area Lighting: a Journey from Research to Production (p.102)\\\\n\\\\t// An approximation of the form factor of a horizon-clipped rectangle.\\\\n\\\\n\\\\tfloat l = length( f );\\\\n\\\\n\\\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\\\n\\\\n}\\\\n\\\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\\\n\\\\n\\\\tfloat x = dot( v1, v2 );\\\\n\\\\n\\\\tfloat y = abs( x );\\\\n\\\\n\\\\t// rational polynomial approximation to theta / sin( theta ) / 2PI\\\\n\\\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\\\n\\\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\\\n\\\\tfloat v = a / b;\\\\n\\\\n\\\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\\\n\\\\n\\\\treturn cross( v1, v2 ) * theta_sintheta;\\\\n\\\\n}\\\\n\\\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\\\n\\\\n\\\\t// bail if point is on back side of plane of light\\\\n\\\\t// assumes ccw winding order of light vertices\\\\n\\\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\\\n\\\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\\\n\\\\tvec3 lightNormal = cross( v1, v2 );\\\\n\\\\n\\\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\\\n\\\\n\\\\t// construct orthonormal basis around N\\\\n\\\\tvec3 T1, T2;\\\\n\\\\tT1 = normalize( V - N * dot( V, N ) );\\\\n\\\\tT2 = - cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system\\\\n\\\\n\\\\t// compute transform\\\\n\\\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\\\n\\\\n\\\\t// transform rect\\\\n\\\\tvec3 coords[ 4 ];\\\\n\\\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\\\n\\\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\\\n\\\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\\\n\\\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\\\n\\\\n\\\\t// project rect onto sphere\\\\n\\\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\\\n\\\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\\\n\\\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\\\n\\\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\\\n\\\\n\\\\t// calculate vector form factor\\\\n\\\\tvec3 vectorFormFactor = vec3( 0.0 );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\\\n\\\\n\\\\t// adjust for horizon clipping\\\\n\\\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\\\n\\\\n/*\\\\n\\\\t// alternate method of adjusting for horizon clipping (see referece)\\\\n\\\\t// refactoring required\\\\n\\\\tfloat len = length( vectorFormFactor );\\\\n\\\\tfloat z = vectorFormFactor.z / len;\\\\n\\\\n\\\\tconst float LUT_SIZE = 64.0;\\\\n\\\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\\\n\\\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\\\n\\\\n\\\\t// tabulated horizon-clipped sphere, apparently...\\\\n\\\\tvec2 uv = vec2( z * 0.5 + 0.5, len );\\\\n\\\\tuv = uv * LUT_SCALE + LUT_BIAS;\\\\n\\\\n\\\\tfloat scale = texture2D( ltc_2, uv ).w;\\\\n\\\\n\\\\tfloat result = len * scale;\\\\n*/\\\\n\\\\n\\\\treturn vec3( result );\\\\n\\\\n}\\\\n\\\\n// End Rect Area Light\\\\n\\\\n\\\\nfloat G_BlinnPhong_Implicit( /* const in float dotNL, const in float dotNV */ ) {\\\\n\\\\n\\\\t// geometry term is (n dot l)(n dot v) / 4(n dot l)(n dot v)\\\\n\\\\treturn 0.25;\\\\n\\\\n}\\\\n\\\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\\\n\\\\n\\\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\\\n\\\\n}\\\\n\\\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\\\n\\\\n\\\\tvec3 halfDir = normalize( lightDir + viewDir );\\\\n\\\\n\\\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\\\n\\\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\\\n\\\\n\\\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\\\n\\\\n\\\\tfloat G = G_BlinnPhong_Implicit( /* dotNL, dotNV */ );\\\\n\\\\n\\\\tfloat D = D_BlinnPhong( shininess, dotNH );\\\\n\\\\n\\\\treturn F * ( G * D );\\\\n\\\\n} // validated\\\\n\\\\n#if defined( USE_SHEEN )\\\\n\\\\n// https://github.com/google/filament/blob/master/shaders/src/brdf.fs\\\\nfloat D_Charlie( float roughness, float dotNH ) {\\\\n\\\\n\\\\tfloat alpha = pow2( roughness );\\\\n\\\\n\\\\t// Estevez and Kulla 2017, \\\\\\\"Production Friendly Microfacet Sheen BRDF\\\\\\\"\\\\n\\\\tfloat invAlpha = 1.0 / alpha;\\\\n\\\\tfloat cos2h = dotNH * dotNH;\\\\n\\\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 ); // 2^(-14/2), so sin2h^2 > 0 in fp16\\\\n\\\\n\\\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\\\n\\\\n}\\\\n\\\\n// https://github.com/google/filament/blob/master/shaders/src/brdf.fs\\\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\\\n\\\\n\\\\t// Neubelt and Pettineo 2013, \\\\\\\"Crafting a Next-gen Material Pipeline for The Order: 1886\\\\\\\"\\\\n\\\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\\\n\\\\n}\\\\n\\\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenTint, const in float sheenRoughness ) {\\\\n\\\\n\\\\tvec3 halfDir = normalize( lightDir + viewDir );\\\\n\\\\n\\\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\\\n\\\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\\\n\\\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\\\n\\\\n\\\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\\\n\\\\tfloat V = V_Neubelt( dotNV, dotNL );\\\\n\\\\n\\\\treturn sheenTint * ( D * V );\\\\n\\\\n}\\\\n\\\\n#endif\\\\n',bumpmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_BUMPMAP\\\\n\\\\n\\\\tuniform sampler2D bumpMap;\\\\n\\\\tuniform float bumpScale;\\\\n\\\\n\\\\t// Bump Mapping Unparametrized Surfaces on the GPU by Morten S. Mikkelsen\\\\n\\\\t// http://api.unrealengine.com/attachments/Engine/Rendering/LightingAndShadows/BumpMappingWithoutTangentSpace/mm_sfgrad_bump.pdf\\\\n\\\\n\\\\t// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\\\\n\\\\n\\\\tvec2 dHdxy_fwd() {\\\\n\\\\n\\\\t\\\\tvec2 dSTdx = dFdx( vUv );\\\\n\\\\t\\\\tvec2 dSTdy = dFdy( vUv );\\\\n\\\\n\\\\t\\\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\\\n\\\\t\\\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\\\n\\\\t\\\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\\\n\\\\n\\\\t\\\\treturn vec2( dBx, dBy );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\\\n\\\\n\\\\t\\\\t// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988\\\\n\\\\n\\\\t\\\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\\\n\\\\t\\\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\\\n\\\\t\\\\tvec3 vN = surf_norm;\\\\t\\\\t// normalized\\\\n\\\\n\\\\t\\\\tvec3 R1 = cross( vSigmaY, vN );\\\\n\\\\t\\\\tvec3 R2 = cross( vN, vSigmaX );\\\\n\\\\n\\\\t\\\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\\\n\\\\n\\\\t\\\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\\\n\\\\t\\\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",clipping_planes_fragment:\\\\\\\"\\\\n#if NUM_CLIPPING_PLANES > 0\\\\n\\\\n\\\\tvec4 plane;\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\\\n\\\\n\\\\t\\\\tplane = clippingPlanes[ i ];\\\\n\\\\t\\\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\\\n\\\\n\\\\t\\\\tbool clipped = true;\\\\n\\\\n\\\\t\\\\t#pragma unroll_loop_start\\\\n\\\\t\\\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\\\n\\\\n\\\\t\\\\t\\\\tplane = clippingPlanes[ i ];\\\\n\\\\t\\\\t\\\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t\\\\tif ( clipped ) discard;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",clipping_planes_pars_fragment:\\\\\\\"\\\\n#if NUM_CLIPPING_PLANES > 0\\\\n\\\\n\\\\tvarying vec3 vClipPosition;\\\\n\\\\n\\\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\\\n\\\\n#endif\\\\n\\\\\\\",clipping_planes_pars_vertex:\\\\\\\"\\\\n#if NUM_CLIPPING_PLANES > 0\\\\n\\\\n\\\\tvarying vec3 vClipPosition;\\\\n\\\\n#endif\\\\n\\\\\\\",clipping_planes_vertex:\\\\\\\"\\\\n#if NUM_CLIPPING_PLANES > 0\\\\n\\\\n\\\\tvClipPosition = - mvPosition.xyz;\\\\n\\\\n#endif\\\\n\\\\\\\",color_fragment:\\\\\\\"\\\\n#if defined( USE_COLOR_ALPHA )\\\\n\\\\n\\\\tdiffuseColor *= vColor;\\\\n\\\\n#elif defined( USE_COLOR )\\\\n\\\\n\\\\tdiffuseColor.rgb *= vColor;\\\\n\\\\n#endif\\\\n\\\\\\\",color_pars_fragment:\\\\\\\"\\\\n#if defined( USE_COLOR_ALPHA )\\\\n\\\\n\\\\tvarying vec4 vColor;\\\\n\\\\n#elif defined( USE_COLOR )\\\\n\\\\n\\\\tvarying vec3 vColor;\\\\n\\\\n#endif\\\\n\\\\\\\",color_pars_vertex:\\\\\\\"\\\\n#if defined( USE_COLOR_ALPHA )\\\\n\\\\n\\\\tvarying vec4 vColor;\\\\n\\\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\\\n\\\\n\\\\tvarying vec3 vColor;\\\\n\\\\n#endif\\\\n\\\\\\\",color_vertex:\\\\\\\"\\\\n#if defined( USE_COLOR_ALPHA )\\\\n\\\\n\\\\tvColor = vec4( 1.0 );\\\\n\\\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\\\n\\\\n\\\\tvColor = vec3( 1.0 );\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_COLOR\\\\n\\\\n\\\\tvColor *= color;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_INSTANCING_COLOR\\\\n\\\\n\\\\tvColor.xyz *= instanceColor.xyz;\\\\n\\\\n#endif\\\\n\\\\\\\",common:\\\\\\\"\\\\n#define PI 3.141592653589793\\\\n#define PI2 6.283185307179586\\\\n#define PI_HALF 1.5707963267948966\\\\n#define RECIPROCAL_PI 0.3183098861837907\\\\n#define RECIPROCAL_PI2 0.15915494309189535\\\\n#define EPSILON 1e-6\\\\n\\\\n#ifndef saturate\\\\n// <tonemapping_pars_fragment> may have defined saturate() already\\\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\\\n#endif\\\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\\\n\\\\nfloat pow2( const in float x ) { return x*x; }\\\\nfloat pow3( const in float x ) { return x*x*x; }\\\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\\\n\\\\n// expects values in the range of [0,1]x[0,1], returns values in the [0,1] range.\\\\n// do not collapse into a single function per: http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/\\\\nhighp float rand( const in vec2 uv ) {\\\\n\\\\n\\\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\\\n\\\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\\\n\\\\n\\\\treturn fract( sin( sn ) * c );\\\\n\\\\n}\\\\n\\\\n#ifdef HIGH_PRECISION\\\\n\\\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\\\n#else\\\\n\\\\tfloat precisionSafeLength( vec3 v ) {\\\\n\\\\t\\\\tfloat maxComponent = max3( abs( v ) );\\\\n\\\\t\\\\treturn length( v / maxComponent ) * maxComponent;\\\\n\\\\t}\\\\n#endif\\\\n\\\\nstruct IncidentLight {\\\\n\\\\tvec3 color;\\\\n\\\\tvec3 direction;\\\\n\\\\tbool visible;\\\\n};\\\\n\\\\nstruct ReflectedLight {\\\\n\\\\tvec3 directDiffuse;\\\\n\\\\tvec3 directSpecular;\\\\n\\\\tvec3 indirectDiffuse;\\\\n\\\\tvec3 indirectSpecular;\\\\n};\\\\n\\\\nstruct GeometricContext {\\\\n\\\\tvec3 position;\\\\n\\\\tvec3 normal;\\\\n\\\\tvec3 viewDir;\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\tvec3 clearcoatNormal;\\\\n#endif\\\\n};\\\\n\\\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\\\n\\\\n\\\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\\\n\\\\n}\\\\n\\\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\\\n\\\\n\\\\t// dir can be either a direction vector or a normal vector\\\\n\\\\t// upper-left 3x3 of matrix is assumed to be orthogonal\\\\n\\\\n\\\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\\\n\\\\n}\\\\n\\\\nmat3 transposeMat3( const in mat3 m ) {\\\\n\\\\n\\\\tmat3 tmp;\\\\n\\\\n\\\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\\\n\\\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\\\n\\\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\\\n\\\\n\\\\treturn tmp;\\\\n\\\\n}\\\\n\\\\n// https://en.wikipedia.org/wiki/Relative_luminance\\\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\\\n\\\\n\\\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\\\n\\\\n\\\\treturn dot( weights, color.rgb );\\\\n\\\\n}\\\\n\\\\nbool isPerspectiveMatrix( mat4 m ) {\\\\n\\\\n\\\\treturn m[ 2 ][ 3 ] == - 1.0;\\\\n\\\\n}\\\\n\\\\nvec2 equirectUv( in vec3 dir ) {\\\\n\\\\n\\\\t// dir is assumed to be unit length\\\\n\\\\n\\\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\\\n\\\\n\\\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\\\n\\\\n\\\\treturn vec2( u, v );\\\\n\\\\n}\\\\n\\\\\\\",cube_uv_reflection_fragment:\\\\\\\"\\\\n#ifdef ENVMAP_TYPE_CUBE_UV\\\\n\\\\n\\\\t#define cubeUV_maxMipLevel 8.0\\\\n\\\\t#define cubeUV_minMipLevel 4.0\\\\n\\\\t#define cubeUV_maxTileSize 256.0\\\\n\\\\t#define cubeUV_minTileSize 16.0\\\\n\\\\n\\\\t// These shader functions convert between the UV coordinates of a single face of\\\\n\\\\t// a cubemap, the 0-5 integer index of a cube face, and the direction vector for\\\\n\\\\t// sampling a textureCube (not generally normalized ).\\\\n\\\\n\\\\tfloat getFace( vec3 direction ) {\\\\n\\\\n\\\\t\\\\tvec3 absDirection = abs( direction );\\\\n\\\\n\\\\t\\\\tfloat face = - 1.0;\\\\n\\\\n\\\\t\\\\tif ( absDirection.x > absDirection.z ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( absDirection.x > absDirection.y )\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\\\n\\\\n\\\\t\\\\t\\\\telse\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tif ( absDirection.z > absDirection.y )\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\\\n\\\\n\\\\t\\\\t\\\\telse\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\treturn face;\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\t// RH coordinate system; PMREM face-indexing convention\\\\n\\\\tvec2 getUV( vec3 direction, float face ) {\\\\n\\\\n\\\\t\\\\tvec2 uv;\\\\n\\\\n\\\\t\\\\tif ( face == 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = vec2( direction.z, direction.y ) / abs( direction.x ); // pos x\\\\n\\\\n\\\\t\\\\t} else if ( face == 1.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y ); // pos y\\\\n\\\\n\\\\t\\\\t} else if ( face == 2.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z ); // pos z\\\\n\\\\n\\\\t\\\\t} else if ( face == 3.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x ); // neg x\\\\n\\\\n\\\\t\\\\t} else if ( face == 4.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y ); // neg y\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tuv = vec2( direction.x, direction.y ) / abs( direction.z ); // neg z\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\treturn 0.5 * ( uv + 1.0 );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\\\n\\\\n\\\\t\\\\tfloat face = getFace( direction );\\\\n\\\\n\\\\t\\\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\\\n\\\\n\\\\t\\\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\\\n\\\\n\\\\t\\\\tfloat faceSize = exp2( mipInt );\\\\n\\\\n\\\\t\\\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\\\n\\\\n\\\\t\\\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\\\n\\\\n\\\\t\\\\tvec2 f = fract( uv );\\\\n\\\\n\\\\t\\\\tuv += 0.5 - f;\\\\n\\\\n\\\\t\\\\tif ( face > 2.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv.y += faceSize;\\\\n\\\\n\\\\t\\\\t\\\\tface -= 3.0;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tuv.x += face * faceSize;\\\\n\\\\n\\\\t\\\\tif ( mipInt < cubeUV_maxMipLevel ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv.y += 2.0 * cubeUV_maxTileSize;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\\\n\\\\n\\\\t\\\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\\\n\\\\n\\\\t\\\\tuv *= texelSize;\\\\n\\\\n\\\\t\\\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\n\\\\t\\\\tuv.x += texelSize;\\\\n\\\\n\\\\t\\\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\n\\\\t\\\\tuv.y += texelSize;\\\\n\\\\n\\\\t\\\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\n\\\\t\\\\tuv.x -= texelSize;\\\\n\\\\n\\\\t\\\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\n\\\\t\\\\tvec3 tm = mix( tl, tr, f.x );\\\\n\\\\n\\\\t\\\\tvec3 bm = mix( bl, br, f.x );\\\\n\\\\n\\\\t\\\\treturn mix( tm, bm, f.y );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\t// These defines must match with PMREMGenerator\\\\n\\\\n\\\\t#define r0 1.0\\\\n\\\\t#define v0 0.339\\\\n\\\\t#define m0 - 2.0\\\\n\\\\t#define r1 0.8\\\\n\\\\t#define v1 0.276\\\\n\\\\t#define m1 - 1.0\\\\n\\\\t#define r4 0.4\\\\n\\\\t#define v4 0.046\\\\n\\\\t#define m4 2.0\\\\n\\\\t#define r5 0.305\\\\n\\\\t#define v5 0.016\\\\n\\\\t#define m5 3.0\\\\n\\\\t#define r6 0.21\\\\n\\\\t#define v6 0.0038\\\\n\\\\t#define m6 4.0\\\\n\\\\n\\\\tfloat roughnessToMip( float roughness ) {\\\\n\\\\n\\\\t\\\\tfloat mip = 0.0;\\\\n\\\\n\\\\t\\\\tif ( roughness >= r1 ) {\\\\n\\\\n\\\\t\\\\t\\\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\\\n\\\\n\\\\t\\\\t} else if ( roughness >= r4 ) {\\\\n\\\\n\\\\t\\\\t\\\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\\\n\\\\n\\\\t\\\\t} else if ( roughness >= r5 ) {\\\\n\\\\n\\\\t\\\\t\\\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\\\n\\\\n\\\\t\\\\t} else if ( roughness >= r6 ) {\\\\n\\\\n\\\\t\\\\t\\\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tmip = - 2.0 * log2( 1.16 * roughness ); // 1.16 = 1.79^0.25\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\treturn mip;\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\\\n\\\\n\\\\t\\\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\\\n\\\\n\\\\t\\\\tfloat mipF = fract( mip );\\\\n\\\\n\\\\t\\\\tfloat mipInt = floor( mip );\\\\n\\\\n\\\\t\\\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\\\n\\\\n\\\\t\\\\tif ( mipF == 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\treturn vec4( color0, 1.0 );\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",defaultnormal_vertex:\\\\\\\"\\\\nvec3 transformedNormal = objectNormal;\\\\n\\\\n#ifdef USE_INSTANCING\\\\n\\\\n\\\\t// this is in lieu of a per-instance normal-matrix\\\\n\\\\t// shear transforms in the instance matrix are not supported\\\\n\\\\n\\\\tmat3 m = mat3( instanceMatrix );\\\\n\\\\n\\\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\\\n\\\\n\\\\ttransformedNormal = m * transformedNormal;\\\\n\\\\n#endif\\\\n\\\\ntransformedNormal = normalMatrix * transformedNormal;\\\\n\\\\n#ifdef FLIP_SIDED\\\\n\\\\n\\\\ttransformedNormal = - transformedNormal;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_TANGENT\\\\n\\\\n\\\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\\\n\\\\n\\\\t#ifdef FLIP_SIDED\\\\n\\\\n\\\\t\\\\ttransformedTangent = - transformedTangent;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",displacementmap_pars_vertex:\\\\\\\"\\\\n#ifdef USE_DISPLACEMENTMAP\\\\n\\\\n\\\\tuniform sampler2D displacementMap;\\\\n\\\\tuniform float displacementScale;\\\\n\\\\tuniform float displacementBias;\\\\n\\\\n#endif\\\\n\\\\\\\",displacementmap_vertex:\\\\\\\"\\\\n#ifdef USE_DISPLACEMENTMAP\\\\n\\\\n\\\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\\\n\\\\n#endif\\\\n\\\\\\\",emissivemap_fragment:\\\\\\\"\\\\n#ifdef USE_EMISSIVEMAP\\\\n\\\\n\\\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\\\n\\\\n\\\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\\\n\\\\n\\\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\\\n\\\\n#endif\\\\n\\\\\\\",emissivemap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_EMISSIVEMAP\\\\n\\\\n\\\\tuniform sampler2D emissiveMap;\\\\n\\\\n#endif\\\\n\\\\\\\",encodings_fragment:\\\\\\\"\\\\ngl_FragColor = linearToOutputTexel( gl_FragColor );\\\\n\\\\\\\",encodings_pars_fragment:\\\\\\\"\\\\n// For a discussion of what this is, please read this: http://lousodrome.net/blog/light/2013/05/26/gamma-correct-and-hdr-rendering-in-a-32-bits-buffer/\\\\n\\\\nvec4 LinearToLinear( in vec4 value ) {\\\\n\\\\treturn value;\\\\n}\\\\n\\\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\\\n\\\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\\\n}\\\\n\\\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\\\n\\\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\\\n}\\\\n\\\\nvec4 sRGBToLinear( in vec4 value ) {\\\\n\\\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\\\n}\\\\n\\\\nvec4 LinearTosRGB( in vec4 value ) {\\\\n\\\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\\\n}\\\\n\\\\nvec4 RGBEToLinear( in vec4 value ) {\\\\n\\\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\\\n}\\\\n\\\\nvec4 LinearToRGBE( in vec4 value ) {\\\\n\\\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\\\n\\\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\\\n\\\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\\\n\\\\t// return vec4( value.brg, ( 3.0 + 128.0 ) / 256.0 );\\\\n}\\\\n\\\\n// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html\\\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\\\n\\\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\\\n}\\\\n\\\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\\\n\\\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\\\n\\\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\\\n\\\\tM = ceil( M * 255.0 ) / 255.0;\\\\n\\\\treturn vec4( value.rgb / ( M * maxRange ), M );\\\\n}\\\\n\\\\n// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html\\\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\\\n\\\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\\\n}\\\\n\\\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\\\n\\\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\\\n\\\\tfloat D = max( maxRange / maxRGB, 1.0 );\\\\n\\\\t// NOTE: The implementation with min causes the shader to not compile on\\\\n\\\\t// a common Alcatel A502DL in Chrome 78/Android 8.1. Some research suggests \\\\n\\\\t// that the chipset is Mediatek MT6739 w/ IMG PowerVR GE8100 GPU.\\\\n\\\\t// D = min( floor( D ) / 255.0, 1.0 );\\\\n\\\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\\\n\\\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\\\n}\\\\n\\\\n// LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html\\\\n\\\\n// M matrix, for encoding\\\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\\\nvec4 LinearToLogLuv( in vec4 value ) {\\\\n\\\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\\\n\\\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\\\n\\\\tvec4 vResult;\\\\n\\\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\\\n\\\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\\\n\\\\tvResult.w = fract( Le );\\\\n\\\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\\\n\\\\treturn vResult;\\\\n}\\\\n\\\\n// Inverse M matrix, for decoding\\\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\\\nvec4 LogLuvToLinear( in vec4 value ) {\\\\n\\\\tfloat Le = value.z * 255.0 + value.w;\\\\n\\\\tvec3 Xp_Y_XYZp;\\\\n\\\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\\\n\\\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\\\n\\\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\\\n\\\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\\\n\\\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\\\n}\\\\n\\\\\\\",envmap_fragment:\\\\\\\"\\\\n#ifdef USE_ENVMAP\\\\n\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\n\\\\t\\\\tvec3 cameraToFrag;\\\\n\\\\n\\\\t\\\\tif ( isOrthographic ) {\\\\n\\\\n\\\\t\\\\t\\\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t// Transforming Normal Vectors with the Inverse Transformation\\\\n\\\\t\\\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\n\\\\t\\\\t#ifdef ENVMAP_MODE_REFLECTION\\\\n\\\\n\\\\t\\\\t\\\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tvec3 reflectVec = vReflect;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef ENVMAP_TYPE_CUBE\\\\n\\\\n\\\\t\\\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\\\n\\\\n\\\\t\\\\tenvColor = envMapTexelToLinear( envColor );\\\\n\\\\n\\\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\n\\\\t\\\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tvec4 envColor = vec4( 0.0 );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\\\n\\\\n\\\\t\\\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\\\n\\\\n\\\\t#elif defined( ENVMAP_BLENDING_MIX )\\\\n\\\\n\\\\t\\\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\\\n\\\\n\\\\t#elif defined( ENVMAP_BLENDING_ADD )\\\\n\\\\n\\\\t\\\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",envmap_common_pars_fragment:\\\\\\\"\\\\n#ifdef USE_ENVMAP\\\\n\\\\n\\\\tuniform float envMapIntensity;\\\\n\\\\tuniform float flipEnvMap;\\\\n\\\\tuniform int maxMipLevel;\\\\n\\\\n\\\\t#ifdef ENVMAP_TYPE_CUBE\\\\n\\\\t\\\\tuniform samplerCube envMap;\\\\n\\\\t#else\\\\n\\\\t\\\\tuniform sampler2D envMap;\\\\n\\\\t#endif\\\\n\\\\t\\\\n#endif\\\\n\\\\\\\",envmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_ENVMAP\\\\n\\\\n\\\\tuniform float reflectivity;\\\\n\\\\n\\\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\\\n\\\\n\\\\t\\\\t#define ENV_WORLDPOS\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\n\\\\t\\\\tvarying vec3 vWorldPosition;\\\\n\\\\t\\\\tuniform float refractionRatio;\\\\n\\\\t#else\\\\n\\\\t\\\\tvarying vec3 vReflect;\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",envmap_pars_vertex:\\\\\\\"\\\\n#ifdef USE_ENVMAP\\\\n\\\\n\\\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\\\n\\\\n\\\\t\\\\t#define ENV_WORLDPOS\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\t\\\\t\\\\n\\\\t\\\\tvarying vec3 vWorldPosition;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tvarying vec3 vReflect;\\\\n\\\\t\\\\tuniform float refractionRatio;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",envmap_physical_pars_fragment:\\\\\\\"\\\\n#if defined( USE_ENVMAP )\\\\n\\\\n\\\\t#ifdef ENVMAP_MODE_REFRACTION\\\\n\\\\n\\\\t\\\\tuniform float refractionRatio;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\\\n\\\\n\\\\t\\\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\n\\\\t\\\\t\\\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\n\\\\t\\\\t\\\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\treturn PI * envMapColor.rgb * envMapIntensity;\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\treturn vec3( 0.0 );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\\\n\\\\n\\\\t\\\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\n\\\\t\\\\t\\\\tvec3 reflectVec;\\\\n\\\\n\\\\t\\\\t\\\\t#ifdef ENVMAP_MODE_REFLECTION\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treflectVec = reflect( - viewDir, normal );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t// Mixing the reflection with the normal is more accurate and keeps rough objects from gathering light from behind their tangent plane.\\\\n\\\\t\\\\t\\\\t\\\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\\\n\\\\n\\\\t\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treflectVec = refract( - viewDir, normal, refractionRatio );\\\\n\\\\n\\\\t\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t\\\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\\\n\\\\n\\\\t\\\\t\\\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\\\n\\\\n\\\\t\\\\t\\\\treturn envMapColor.rgb * envMapIntensity;\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\treturn vec3( 0.0 );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",envmap_vertex:\\\\\\\"\\\\n#ifdef USE_ENVMAP\\\\n\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\n\\\\t\\\\tvWorldPosition = worldPosition.xyz;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tvec3 cameraToVertex;\\\\n\\\\n\\\\t\\\\tif ( isOrthographic ) {\\\\n\\\\n\\\\t\\\\t\\\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\\\n\\\\n\\\\t\\\\t#ifdef ENVMAP_MODE_REFLECTION\\\\n\\\\n\\\\t\\\\t\\\\tvReflect = reflect( cameraToVertex, worldNormal );\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",fog_vertex:\\\\\\\"\\\\n#ifdef USE_FOG\\\\n\\\\n\\\\tvFogDepth = - mvPosition.z;\\\\n\\\\n#endif\\\\n\\\\\\\",fog_pars_vertex:\\\\\\\"\\\\n#ifdef USE_FOG\\\\n\\\\n\\\\tvarying float vFogDepth;\\\\n\\\\n#endif\\\\n\\\\\\\",fog_fragment:\\\\\\\"\\\\n#ifdef USE_FOG\\\\n\\\\n\\\\t#ifdef FOG_EXP2\\\\n\\\\n\\\\t\\\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\\\n\\\\n#endif\\\\n\\\\\\\",fog_pars_fragment:\\\\\\\"\\\\n#ifdef USE_FOG\\\\n\\\\n\\\\tuniform vec3 fogColor;\\\\n\\\\tvarying float vFogDepth;\\\\n\\\\n\\\\t#ifdef FOG_EXP2\\\\n\\\\n\\\\t\\\\tuniform float fogDensity;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tuniform float fogNear;\\\\n\\\\t\\\\tuniform float fogFar;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",gradientmap_pars_fragment:\\\\\\\"\\\\n\\\\n#ifdef USE_GRADIENTMAP\\\\n\\\\n\\\\tuniform sampler2D gradientMap;\\\\n\\\\n#endif\\\\n\\\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\\\n\\\\n\\\\t// dotNL will be from -1.0 to 1.0\\\\n\\\\tfloat dotNL = dot( normal, lightDirection );\\\\n\\\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\\\n\\\\n\\\\t#ifdef USE_GRADIENTMAP\\\\n\\\\n\\\\t\\\\treturn texture2D( gradientMap, coord ).rgb;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\\\n\\\\n\\\\t#endif\\\\n\\\\n}\\\\n\\\\\\\",lightmap_fragment:\\\\\\\"\\\\n#ifdef USE_LIGHTMAP\\\\n\\\\n\\\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\\\n\\\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\\\n\\\\n\\\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\\\n\\\\n\\\\t\\\\tlightMapIrradiance *= PI;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\\\n\\\\n#endif\\\\n\\\\\\\",lightmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_LIGHTMAP\\\\n\\\\n\\\\tuniform sampler2D lightMap;\\\\n\\\\tuniform float lightMapIntensity;\\\\n\\\\n#endif\\\\n\\\\\\\",lights_lambert_vertex:\\\\\\\"\\\\nvec3 diffuse = vec3( 1.0 );\\\\n\\\\nGeometricContext geometry;\\\\ngeometry.position = mvPosition.xyz;\\\\ngeometry.normal = normalize( transformedNormal );\\\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\\\n\\\\nGeometricContext backGeometry;\\\\nbackGeometry.position = geometry.position;\\\\nbackGeometry.normal = -geometry.normal;\\\\nbackGeometry.viewDir = geometry.viewDir;\\\\n\\\\nvLightFront = vec3( 0.0 );\\\\nvIndirectFront = vec3( 0.0 );\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvLightBack = vec3( 0.0 );\\\\n\\\\tvIndirectBack = vec3( 0.0 );\\\\n#endif\\\\n\\\\nIncidentLight directLight;\\\\nfloat dotNL;\\\\nvec3 directLightColor_Diffuse;\\\\n\\\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\\\n\\\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\\\\n\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\\\n\\\\n\\\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\\\\n\\\\n#endif\\\\n\\\\n#if NUM_POINT_LIGHTS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\\\\n\\\\n\\\\t\\\\tdotNL = dot( geometry.normal, directLight.direction );\\\\n\\\\t\\\\tdirectLightColor_Diffuse = directLight.color;\\\\n\\\\n\\\\t\\\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\\\n\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\t\\\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if NUM_SPOT_LIGHTS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\\\\n\\\\n\\\\t\\\\tdotNL = dot( geometry.normal, directLight.direction );\\\\n\\\\t\\\\tdirectLightColor_Diffuse = directLight.color;\\\\n\\\\n\\\\t\\\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\\\n\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\t\\\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if NUM_DIR_LIGHTS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\\\\n\\\\n\\\\t\\\\tdotNL = dot( geometry.normal, directLight.direction );\\\\n\\\\t\\\\tdirectLightColor_Diffuse = directLight.color;\\\\n\\\\n\\\\t\\\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\\\n\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\t\\\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if NUM_HEMI_LIGHTS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\\\n\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\t\\\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\\\\",lights_pars_begin:\\\\\\\"\\\\nuniform bool receiveShadow;\\\\nuniform vec3 ambientLightColor;\\\\nuniform vec3 lightProbe[ 9 ];\\\\n\\\\n// get the irradiance (radiance convolved with cosine lobe) at the point 'normal' on the unit sphere\\\\n// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf\\\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\\\n\\\\n\\\\t// normal is assumed to have unit length\\\\n\\\\n\\\\tfloat x = normal.x, y = normal.y, z = normal.z;\\\\n\\\\n\\\\t// band 0\\\\n\\\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\\\n\\\\n\\\\t// band 1\\\\n\\\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\\\n\\\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\\\n\\\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\\\n\\\\n\\\\t// band 2\\\\n\\\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\\\n\\\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\\\n\\\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\\\n\\\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\\\n\\\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\\\n\\\\n\\\\treturn result;\\\\n\\\\n}\\\\n\\\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\\\n\\\\n\\\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\n\\\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\\\n\\\\n\\\\treturn irradiance;\\\\n\\\\n}\\\\n\\\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\\\n\\\\n\\\\tvec3 irradiance = ambientLightColor;\\\\n\\\\n\\\\treturn irradiance;\\\\n\\\\n}\\\\n\\\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\\\n\\\\n\\\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\\\n\\\\n\\\\t\\\\t// based upon Frostbite 3 Moving to Physically-based Rendering\\\\n\\\\t\\\\t// page 32, equation 26: E[window1]\\\\n\\\\t\\\\t// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\\\n\\\\t\\\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\\\n\\\\n\\\\t\\\\tif ( cutoffDistance > 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\treturn distanceFalloff;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\treturn 1.0;\\\\n\\\\n\\\\t#endif\\\\n\\\\n}\\\\n\\\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\\\n\\\\n\\\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\\\n\\\\n}\\\\n\\\\n#if NUM_DIR_LIGHTS > 0\\\\n\\\\n\\\\tstruct DirectionalLight {\\\\n\\\\t\\\\tvec3 direction;\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t};\\\\n\\\\n\\\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\\\n\\\\n\\\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\\\n\\\\n\\\\t\\\\tlight.color = directionalLight.color;\\\\n\\\\t\\\\tlight.direction = directionalLight.direction;\\\\n\\\\t\\\\tlight.visible = true;\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\n\\\\n#if NUM_POINT_LIGHTS > 0\\\\n\\\\n\\\\tstruct PointLight {\\\\n\\\\t\\\\tvec3 position;\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t\\\\tfloat distance;\\\\n\\\\t\\\\tfloat decay;\\\\n\\\\t};\\\\n\\\\n\\\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\\\n\\\\n\\\\t// light is an out parameter as having it as a return value caused compiler errors on some devices\\\\n\\\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\\\n\\\\n\\\\t\\\\tvec3 lVector = pointLight.position - geometry.position;\\\\n\\\\n\\\\t\\\\tlight.direction = normalize( lVector );\\\\n\\\\n\\\\t\\\\tfloat lightDistance = length( lVector );\\\\n\\\\n\\\\t\\\\tlight.color = pointLight.color;\\\\n\\\\t\\\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\\\n\\\\t\\\\tlight.visible = ( light.color != vec3( 0.0 ) );\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\n\\\\n#if NUM_SPOT_LIGHTS > 0\\\\n\\\\n\\\\tstruct SpotLight {\\\\n\\\\t\\\\tvec3 position;\\\\n\\\\t\\\\tvec3 direction;\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t\\\\tfloat distance;\\\\n\\\\t\\\\tfloat decay;\\\\n\\\\t\\\\tfloat coneCos;\\\\n\\\\t\\\\tfloat penumbraCos;\\\\n\\\\t};\\\\n\\\\n\\\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\\\n\\\\n\\\\t// light is an out parameter as having it as a return value caused compiler errors on some devices\\\\n\\\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\\\n\\\\n\\\\t\\\\tvec3 lVector = spotLight.position - geometry.position;\\\\n\\\\n\\\\t\\\\tlight.direction = normalize( lVector );\\\\n\\\\n\\\\t\\\\tfloat angleCos = dot( light.direction, spotLight.direction );\\\\n\\\\n\\\\t\\\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\\\n\\\\n\\\\t\\\\tif ( spotAttenuation > 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\tfloat lightDistance = length( lVector );\\\\n\\\\n\\\\t\\\\t\\\\tlight.color = spotLight.color * spotAttenuation;\\\\n\\\\t\\\\t\\\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\\\n\\\\t\\\\t\\\\tlight.visible = ( light.color != vec3( 0.0 ) );\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\tlight.color = vec3( 0.0 );\\\\n\\\\t\\\\t\\\\tlight.visible = false;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\n\\\\n#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\n\\\\tstruct RectAreaLight {\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t\\\\tvec3 position;\\\\n\\\\t\\\\tvec3 halfWidth;\\\\n\\\\t\\\\tvec3 halfHeight;\\\\n\\\\t};\\\\n\\\\n\\\\t// Pre-computed values of LinearTransformedCosine approximation of BRDF\\\\n\\\\t// BRDF approximation Texture is 64x64\\\\n\\\\tuniform sampler2D ltc_1; // RGBA Float\\\\n\\\\tuniform sampler2D ltc_2; // RGBA Float\\\\n\\\\n\\\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\\\n\\\\n#endif\\\\n\\\\n\\\\n#if NUM_HEMI_LIGHTS > 0\\\\n\\\\n\\\\tstruct HemisphereLight {\\\\n\\\\t\\\\tvec3 direction;\\\\n\\\\t\\\\tvec3 skyColor;\\\\n\\\\t\\\\tvec3 groundColor;\\\\n\\\\t};\\\\n\\\\n\\\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\\\n\\\\n\\\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\\\n\\\\n\\\\t\\\\tfloat dotNL = dot( normal, hemiLight.direction );\\\\n\\\\t\\\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\\\n\\\\n\\\\t\\\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\\\n\\\\n\\\\t\\\\treturn irradiance;\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",lights_toon_fragment:\\\\\\\"\\\\nToonMaterial material;\\\\nmaterial.diffuseColor = diffuseColor.rgb;\\\\n\\\\\\\",lights_toon_pars_fragment:\\\\\\\"\\\\nvarying vec3 vViewPosition;\\\\n\\\\nstruct ToonMaterial {\\\\n\\\\n\\\\tvec3 diffuseColor;\\\\n\\\\n};\\\\n\\\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\\\n\\\\n\\\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n\\\\n}\\\\n\\\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n\\\\n}\\\\n\\\\n#define RE_Direct\\\\t\\\\t\\\\t\\\\tRE_Direct_Toon\\\\n#define RE_IndirectDiffuse\\\\t\\\\tRE_IndirectDiffuse_Toon\\\\n\\\\n#define Material_LightProbeLOD( material )\\\\t(0)\\\\n\\\\\\\",lights_phong_fragment:\\\\\\\"\\\\nBlinnPhongMaterial material;\\\\nmaterial.diffuseColor = diffuseColor.rgb;\\\\nmaterial.specularColor = specular;\\\\nmaterial.specularShininess = shininess;\\\\nmaterial.specularStrength = specularStrength;\\\\n\\\\\\\",lights_phong_pars_fragment:\\\\\\\"\\\\nvarying vec3 vViewPosition;\\\\n\\\\nstruct BlinnPhongMaterial {\\\\n\\\\n\\\\tvec3 diffuseColor;\\\\n\\\\tvec3 specularColor;\\\\n\\\\tfloat specularShininess;\\\\n\\\\tfloat specularStrength;\\\\n\\\\n};\\\\n\\\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\\\n\\\\tvec3 irradiance = dotNL * directLight.color;\\\\n\\\\n\\\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n\\\\n\\\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\\\n\\\\n}\\\\n\\\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n\\\\n}\\\\n\\\\n#define RE_Direct\\\\t\\\\t\\\\t\\\\tRE_Direct_BlinnPhong\\\\n#define RE_IndirectDiffuse\\\\t\\\\tRE_IndirectDiffuse_BlinnPhong\\\\n\\\\n#define Material_LightProbeLOD( material )\\\\t(0)\\\\n\\\\\\\",lights_physical_fragment:\\\\\\\"\\\\nPhysicalMaterial material;\\\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\\\n\\\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\\\n\\\\nmaterial.roughness = max( roughnessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.\\\\nmaterial.roughness += geometryRoughness;\\\\nmaterial.roughness = min( material.roughness, 1.0 );\\\\n\\\\n#ifdef IOR\\\\n\\\\n\\\\t#ifdef SPECULAR\\\\n\\\\n\\\\t\\\\tfloat specularIntensityFactor = specularIntensity;\\\\n\\\\t\\\\tvec3 specularTintFactor = specularTint;\\\\n\\\\n\\\\t\\\\t#ifdef USE_SPECULARINTENSITYMAP\\\\n\\\\n\\\\t\\\\t\\\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t#ifdef USE_SPECULARTINTMAP\\\\n\\\\n\\\\t\\\\t\\\\tspecularTintFactor *= specularTintMapTexelToLinear( texture2D( specularTintMap, vUv ) ).rgb;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tfloat specularIntensityFactor = 1.0;\\\\n\\\\t\\\\tvec3 specularTintFactor = vec3( 1.0 );\\\\n\\\\t\\\\tmaterial.specularF90 = 1.0;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularTintFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\\\n\\\\n#else\\\\n\\\\n\\\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\\\n\\\\tmaterial.specularF90 = 1.0;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\tmaterial.clearcoat = clearcoat;\\\\n\\\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\\\n\\\\tmaterial.clearcoatF0 = vec3( 0.04 );\\\\n\\\\tmaterial.clearcoatF90 = 1.0;\\\\n\\\\n\\\\t#ifdef USE_CLEARCOATMAP\\\\n\\\\n\\\\t\\\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\\\n\\\\n\\\\t\\\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tmaterial.clearcoat = saturate( material.clearcoat ); // Burley clearcoat model\\\\n\\\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\\\n\\\\tmaterial.clearcoatRoughness += geometryRoughness;\\\\n\\\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_SHEEN\\\\n\\\\n\\\\tmaterial.sheenTint = sheenTint;\\\\n\\\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\\\n\\\\n#endif\\\\n\\\\\\\",lights_physical_pars_fragment:'\\\\nstruct PhysicalMaterial {\\\\n\\\\n\\\\tvec3 diffuseColor;\\\\n\\\\tfloat roughness;\\\\n\\\\tvec3 specularColor;\\\\n\\\\tfloat specularF90;\\\\n\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\t\\\\tfloat clearcoat;\\\\n\\\\t\\\\tfloat clearcoatRoughness;\\\\n\\\\t\\\\tvec3 clearcoatF0;\\\\n\\\\t\\\\tfloat clearcoatF90;\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_SHEEN\\\\n\\\\t\\\\tvec3 sheenTint;\\\\n\\\\t\\\\tfloat sheenRoughness;\\\\n\\\\t#endif\\\\n\\\\n};\\\\n\\\\n// temporary\\\\nvec3 clearcoatSpecular = vec3( 0.0 );\\\\n\\\\n// Analytical approximation of the DFG LUT, one half of the\\\\n// split-sum approximation used in indirect specular lighting.\\\\n// via \\\\'environmentBRDF\\\\' from \\\\\\\"Physically Based Shading on Mobile\\\\\\\"\\\\n// https://www.unrealengine.com/blog/physically-based-shading-on-mobile\\\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\\\n\\\\n\\\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\\\n\\\\n\\\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\\\n\\\\n\\\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\\\n\\\\n\\\\tvec4 r = roughness * c0 + c1;\\\\n\\\\n\\\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\\\n\\\\n\\\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\\\n\\\\n\\\\treturn fab;\\\\n\\\\n}\\\\n\\\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\\\n\\\\n\\\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\\\n\\\\n\\\\treturn specularColor * fab.x + specularF90 * fab.y;\\\\n\\\\n}\\\\n\\\\n// Fdez-Agüera\\\\'s \\\\\\\"Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting\\\\\\\"\\\\n// Approximates multiscattering in order to preserve energy.\\\\n// http://www.jcgt.org/published/0008/01/03/\\\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\\\n\\\\n\\\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\\\n\\\\n\\\\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\\\\n\\\\n\\\\tfloat Ess = fab.x + fab.y;\\\\n\\\\tfloat Ems = 1.0 - Ess;\\\\n\\\\n\\\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; // 1/21\\\\n\\\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\\\n\\\\n\\\\tsingleScatter += FssEss;\\\\n\\\\tmultiScatter += Fms * Ems;\\\\n\\\\n}\\\\n\\\\n#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\n\\\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\t\\\\tvec3 normal = geometry.normal;\\\\n\\\\t\\\\tvec3 viewDir = geometry.viewDir;\\\\n\\\\t\\\\tvec3 position = geometry.position;\\\\n\\\\t\\\\tvec3 lightPos = rectAreaLight.position;\\\\n\\\\t\\\\tvec3 halfWidth = rectAreaLight.halfWidth;\\\\n\\\\t\\\\tvec3 halfHeight = rectAreaLight.halfHeight;\\\\n\\\\t\\\\tvec3 lightColor = rectAreaLight.color;\\\\n\\\\t\\\\tfloat roughness = material.roughness;\\\\n\\\\n\\\\t\\\\tvec3 rectCoords[ 4 ];\\\\n\\\\t\\\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight; // counterclockwise; light shines in local neg z direction\\\\n\\\\t\\\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\\\n\\\\t\\\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\\\n\\\\t\\\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\\\n\\\\n\\\\t\\\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\\\n\\\\n\\\\t\\\\tvec4 t1 = texture2D( ltc_1, uv );\\\\n\\\\t\\\\tvec4 t2 = texture2D( ltc_2, uv );\\\\n\\\\n\\\\t\\\\tmat3 mInv = mat3(\\\\n\\\\t\\\\t\\\\tvec3( t1.x, 0, t1.y ),\\\\n\\\\t\\\\t\\\\tvec3(    0, 1,    0 ),\\\\n\\\\t\\\\t\\\\tvec3( t1.z, 0, t1.w )\\\\n\\\\t\\\\t);\\\\n\\\\n\\\\t\\\\t// LTC Fresnel Approximation by Stephen Hill\\\\n\\\\t\\\\t// http://blog.selfshadow.com/publications/s2016-advances/s2016_ltc_fresnel.pdf\\\\n\\\\t\\\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\\\n\\\\n\\\\t\\\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\\\n\\\\n\\\\t\\\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\\\n\\\\n\\\\tvec3 irradiance = dotNL * directLight.color;\\\\n\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\t\\\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\\\n\\\\n\\\\t\\\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\\\n\\\\n\\\\t\\\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_SHEEN\\\\n\\\\n\\\\t\\\\treflectedLight.directSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenTint, material.sheenRoughness );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\\\n\\\\n\\\\n\\\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n}\\\\n\\\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\n\\\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n\\\\n}\\\\n\\\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\\\n\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\t\\\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t// Both indirect specular and indirect diffuse light accumulate here\\\\n\\\\n\\\\tvec3 singleScattering = vec3( 0.0 );\\\\n\\\\tvec3 multiScattering = vec3( 0.0 );\\\\n\\\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\\\n\\\\n\\\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\\\n\\\\n\\\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\\\n\\\\n\\\\treflectedLight.indirectSpecular += radiance * singleScattering;\\\\n\\\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\\\n\\\\n\\\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\\\n\\\\n}\\\\n\\\\n#define RE_Direct\\\\t\\\\t\\\\t\\\\tRE_Direct_Physical\\\\n#define RE_Direct_RectArea\\\\t\\\\tRE_Direct_RectArea_Physical\\\\n#define RE_IndirectDiffuse\\\\t\\\\tRE_IndirectDiffuse_Physical\\\\n#define RE_IndirectSpecular\\\\t\\\\tRE_IndirectSpecular_Physical\\\\n\\\\n// ref: https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\\\n\\\\n\\\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\\\n\\\\n}\\\\n',lights_fragment_begin:\\\\\\\"\\\\n/**\\\\n * This is a template that can be used to light a material, it uses pluggable\\\\n * RenderEquations (RE)for specific lighting scenarios.\\\\n *\\\\n * Instructions for use:\\\\n * - Ensure that both RE_Direct, RE_IndirectDiffuse and RE_IndirectSpecular are defined\\\\n * - If you have defined an RE_IndirectSpecular, you need to also provide a Material_LightProbeLOD. <---- ???\\\\n * - Create a material parameter that is to be passed as the third parameter to your lighting functions.\\\\n *\\\\n * TODO:\\\\n * - Add area light support.\\\\n * - Add sphere light support.\\\\n * - Add diffuse light probe (irradiance cubemap) support.\\\\n */\\\\n\\\\nGeometricContext geometry;\\\\n\\\\ngeometry.position = - vViewPosition;\\\\ngeometry.normal = normal;\\\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\\\n\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\tgeometry.clearcoatNormal = clearcoatNormal;\\\\n\\\\n#endif\\\\n\\\\nIncidentLight directLight;\\\\n\\\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\\\n\\\\n\\\\tPointLight pointLight;\\\\n\\\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\tPointLightShadow pointLightShadow;\\\\n\\\\t#endif\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tpointLight = pointLights[ i ];\\\\n\\\\n\\\\t\\\\tgetPointLightInfo( pointLight, geometry, directLight );\\\\n\\\\n\\\\t\\\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\\\n\\\\t\\\\tpointLightShadow = pointLightShadows[ i ];\\\\n\\\\t\\\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tRE_Direct( directLight, geometry, material, reflectedLight );\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\\\n\\\\n\\\\tSpotLight spotLight;\\\\n\\\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\tSpotLightShadow spotLightShadow;\\\\n\\\\t#endif\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tspotLight = spotLights[ i ];\\\\n\\\\n\\\\t\\\\tgetSpotLightInfo( spotLight, geometry, directLight );\\\\n\\\\n\\\\t\\\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\\\n\\\\t\\\\tspotLightShadow = spotLightShadows[ i ];\\\\n\\\\t\\\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tRE_Direct( directLight, geometry, material, reflectedLight );\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\\\n\\\\n\\\\tDirectionalLight directionalLight;\\\\n\\\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\tDirectionalLightShadow directionalLightShadow;\\\\n\\\\t#endif\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\tdirectionalLight = directionalLights[ i ];\\\\n\\\\n\\\\t\\\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\\\n\\\\n\\\\t\\\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\\\n\\\\t\\\\tdirectionalLightShadow = directionalLightShadows[ i ];\\\\n\\\\t\\\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tRE_Direct( directLight, geometry, material, reflectedLight );\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\\\n\\\\n\\\\tRectAreaLight rectAreaLight;\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\trectAreaLight = rectAreaLights[ i ];\\\\n\\\\t\\\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n#endif\\\\n\\\\n#if defined( RE_IndirectDiffuse )\\\\n\\\\n\\\\tvec3 iblIrradiance = vec3( 0.0 );\\\\n\\\\n\\\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\\\n\\\\n\\\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\\\n\\\\n\\\\t#if ( NUM_HEMI_LIGHTS > 0 )\\\\n\\\\n\\\\t\\\\t#pragma unroll_loop_start\\\\n\\\\t\\\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\\\n\\\\n\\\\t\\\\t\\\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\n#if defined( RE_IndirectSpecular )\\\\n\\\\n\\\\tvec3 radiance = vec3( 0.0 );\\\\n\\\\tvec3 clearcoatRadiance = vec3( 0.0 );\\\\n\\\\n#endif\\\\n\\\\\\\",lights_fragment_maps:\\\\\\\"\\\\n#if defined( RE_IndirectDiffuse )\\\\n\\\\n\\\\t#ifdef USE_LIGHTMAP\\\\n\\\\n\\\\t\\\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\\\n\\\\t\\\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\\\n\\\\n\\\\t\\\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\\\n\\\\n\\\\t\\\\t\\\\tlightMapIrradiance *= PI;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tirradiance += lightMapIrradiance;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\n\\\\t\\\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\\\n\\\\n\\\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\\\n\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\t\\\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",lights_fragment_end:\\\\\\\"\\\\n#if defined( RE_IndirectDiffuse )\\\\n\\\\n\\\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\\\n\\\\n#endif\\\\n\\\\n#if defined( RE_IndirectSpecular )\\\\n\\\\n\\\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\\\n\\\\n#endif\\\\n\\\\\\\",logdepthbuf_fragment:\\\\\\\"\\\\n#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\\\n\\\\n\\\\t// Doing a strict comparison with == 1.0 can cause noise artifacts\\\\n\\\\t// on some platforms. See issue #17623.\\\\n\\\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\\\n\\\\n#endif\\\\n\\\\\\\",logdepthbuf_pars_fragment:\\\\\\\"\\\\n#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\\\n\\\\n\\\\tuniform float logDepthBufFC;\\\\n\\\\tvarying float vFragDepth;\\\\n\\\\tvarying float vIsPerspective;\\\\n\\\\n#endif\\\\n\\\\\\\",logdepthbuf_pars_vertex:\\\\\\\"\\\\n#ifdef USE_LOGDEPTHBUF\\\\n\\\\n\\\\t#ifdef USE_LOGDEPTHBUF_EXT\\\\n\\\\n\\\\t\\\\tvarying float vFragDepth;\\\\n\\\\t\\\\tvarying float vIsPerspective;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tuniform float logDepthBufFC;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",logdepthbuf_vertex:\\\\\\\"\\\\n#ifdef USE_LOGDEPTHBUF\\\\n\\\\n\\\\t#ifdef USE_LOGDEPTHBUF_EXT\\\\n\\\\n\\\\t\\\\tvFragDepth = 1.0 + gl_Position.w;\\\\n\\\\t\\\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position.z *= gl_Position.w;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",map_fragment:\\\\\\\"\\\\n#ifdef USE_MAP\\\\n\\\\n\\\\tvec4 texelColor = texture2D( map, vUv );\\\\n\\\\n\\\\ttexelColor = mapTexelToLinear( texelColor );\\\\n\\\\tdiffuseColor *= texelColor;\\\\n\\\\n#endif\\\\n\\\\\\\",map_pars_fragment:\\\\\\\"\\\\n#ifdef USE_MAP\\\\n\\\\n\\\\tuniform sampler2D map;\\\\n\\\\n#endif\\\\n\\\\\\\",map_particle_fragment:\\\\\\\"\\\\n#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\\\n\\\\n\\\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_MAP\\\\n\\\\n\\\\tvec4 mapTexel = texture2D( map, uv );\\\\n\\\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_ALPHAMAP\\\\n\\\\n\\\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\\\n\\\\n#endif\\\\n\\\\\\\",map_particle_pars_fragment:\\\\\\\"\\\\n#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\\\n\\\\n\\\\tuniform mat3 uvTransform;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_MAP\\\\n\\\\n\\\\tuniform sampler2D map;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_ALPHAMAP\\\\n\\\\n\\\\tuniform sampler2D alphaMap;\\\\n\\\\n#endif\\\\n\\\\\\\",metalnessmap_fragment:\\\\\\\"\\\\nfloat metalnessFactor = metalness;\\\\n\\\\n#ifdef USE_METALNESSMAP\\\\n\\\\n\\\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\\\n\\\\n\\\\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\\\n\\\\tmetalnessFactor *= texelMetalness.b;\\\\n\\\\n#endif\\\\n\\\\\\\",metalnessmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_METALNESSMAP\\\\n\\\\n\\\\tuniform sampler2D metalnessMap;\\\\n\\\\n#endif\\\\n\\\\\\\",morphnormal_vertex:\\\\\\\"\\\\n#ifdef USE_MORPHNORMALS\\\\n\\\\n\\\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\\\n\\\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in normal = sum((target - base) * influence)\\\\n\\\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\\\n\\\\tobjectNormal *= morphTargetBaseInfluence;\\\\n\\\\n\\\\t#ifdef MORPHTARGETS_TEXTURE\\\\n\\\\n\\\\t\\\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( morphTargetInfluences[ i ] > 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ];\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\\\n\\\\t\\\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\\\n\\\\t\\\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\\\n\\\\t\\\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",morphtarget_pars_vertex:\\\\\\\"\\\\n#ifdef USE_MORPHTARGETS\\\\n\\\\n\\\\tuniform float morphTargetBaseInfluence;\\\\n\\\\n\\\\t#ifdef MORPHTARGETS_TEXTURE\\\\n\\\\n\\\\t\\\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\\\n\\\\t\\\\tuniform sampler2DArray morphTargetsTexture;\\\\n\\\\t\\\\tuniform vec2 morphTargetsTextureSize;\\\\n\\\\n\\\\t\\\\tvec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) {\\\\n\\\\n\\\\t\\\\t\\\\tfloat texelIndex = float( vertexIndex * stride + offset );\\\\n\\\\t\\\\t\\\\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\\\\n\\\\t\\\\t\\\\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\\\\n\\\\n\\\\t\\\\t\\\\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\\\\n\\\\t\\\\t\\\\treturn texture( morphTargetsTexture, morphUV ).xyz;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\t#ifndef USE_MORPHNORMALS\\\\n\\\\n\\\\t\\\\t\\\\tuniform float morphTargetInfluences[ 8 ];\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\tuniform float morphTargetInfluences[ 4 ];\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",morphtarget_vertex:\\\\\\\"\\\\n#ifdef USE_MORPHTARGETS\\\\n\\\\n\\\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\\\n\\\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in position = sum((target - base) * influence)\\\\n\\\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\\\n\\\\ttransformed *= morphTargetBaseInfluence;\\\\n\\\\n\\\\t#ifdef MORPHTARGETS_TEXTURE\\\\n\\\\n\\\\t\\\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\\\n\\\\n\\\\t\\\\t\\\\t#ifndef USE_MORPHNORMALS\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ];\\\\n\\\\n\\\\t\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ];\\\\n\\\\n\\\\t\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\\\n\\\\t\\\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\\\n\\\\t\\\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\\\n\\\\t\\\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\\\n\\\\n\\\\t\\\\t#ifndef USE_MORPHNORMALS\\\\n\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",normal_fragment_begin:\\\\\\\"\\\\nfloat faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\\\n\\\\n#ifdef FLAT_SHADED\\\\n\\\\n\\\\t// Workaround for Adreno GPUs not able to do dFdx( vViewPosition )\\\\n\\\\n\\\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\\\n\\\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\\\n\\\\tvec3 normal = normalize( cross( fdx, fdy ) );\\\\n\\\\n#else\\\\n\\\\n\\\\tvec3 normal = normalize( vNormal );\\\\n\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\tnormal = normal * faceDirection;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tvec3 tangent = normalize( vTangent );\\\\n\\\\t\\\\tvec3 bitangent = normalize( vBitangent );\\\\n\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\t\\\\ttangent = tangent * faceDirection;\\\\n\\\\t\\\\t\\\\tbitangent = bitangent * faceDirection;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\\\n\\\\n\\\\t\\\\t\\\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\n// non perturbed normal for clearcoat among others\\\\n\\\\nvec3 geometryNormal = normal;\\\\n\\\\n\\\\\\\",normal_fragment_maps:\\\\\\\"\\\\n\\\\n#ifdef OBJECTSPACE_NORMALMAP\\\\n\\\\n\\\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals\\\\n\\\\n\\\\t#ifdef FLIP_SIDED\\\\n\\\\n\\\\t\\\\tnormal = - normal;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\tnormal = normal * faceDirection;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tnormal = normalize( normalMatrix * normal );\\\\n\\\\n#elif defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\n\\\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\\\n\\\\tmapN.xy *= normalScale;\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tnormal = normalize( vTBN * mapN );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\\\n\\\\n\\\\t#endif\\\\n\\\\n#elif defined( USE_BUMPMAP )\\\\n\\\\n\\\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\\\n\\\\n#endif\\\\n\\\\\\\",normal_pars_fragment:\\\\\\\"\\\\n#ifndef FLAT_SHADED\\\\n\\\\n\\\\tvarying vec3 vNormal;\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tvarying vec3 vTangent;\\\\n\\\\t\\\\tvarying vec3 vBitangent;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",normal_pars_vertex:\\\\\\\"\\\\n#ifndef FLAT_SHADED\\\\n\\\\n\\\\tvarying vec3 vNormal;\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tvarying vec3 vTangent;\\\\n\\\\t\\\\tvarying vec3 vBitangent;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",normal_vertex:\\\\\\\"\\\\n#ifndef FLAT_SHADED // normal is computed with derivatives when FLAT_SHADED\\\\n\\\\n\\\\tvNormal = normalize( transformedNormal );\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tvTangent = normalize( transformedTangent );\\\\n\\\\t\\\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",normalmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_NORMALMAP\\\\n\\\\n\\\\tuniform sampler2D normalMap;\\\\n\\\\tuniform vec2 normalScale;\\\\n\\\\n#endif\\\\n\\\\n#ifdef OBJECTSPACE_NORMALMAP\\\\n\\\\n\\\\tuniform mat3 normalMatrix;\\\\n\\\\n#endif\\\\n\\\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\\\n\\\\n\\\\t// Normal Mapping Without Precomputed Tangents\\\\n\\\\t// http://www.thetenthplanet.de/archives/1180\\\\n\\\\n\\\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\\\n\\\\n\\\\t\\\\t// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988\\\\n\\\\n\\\\t\\\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\\\n\\\\t\\\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\\\n\\\\t\\\\tvec2 st0 = dFdx( vUv.st );\\\\n\\\\t\\\\tvec2 st1 = dFdy( vUv.st );\\\\n\\\\n\\\\t\\\\tvec3 N = surf_norm; // normalized\\\\n\\\\n\\\\t\\\\tvec3 q1perp = cross( q1, N );\\\\n\\\\t\\\\tvec3 q0perp = cross( N, q0 );\\\\n\\\\n\\\\t\\\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\\\n\\\\t\\\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\\\n\\\\n\\\\t\\\\tfloat det = max( dot( T, T ), dot( B, B ) );\\\\n\\\\t\\\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\\\n\\\\n\\\\t\\\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\\\n\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",clearcoat_normal_fragment_begin:\\\\\\\"\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\tvec3 clearcoatNormal = geometryNormal;\\\\n\\\\n#endif\\\\n\\\\\\\",clearcoat_normal_fragment_maps:\\\\\\\"\\\\n#ifdef USE_CLEARCOAT_NORMALMAP\\\\n\\\\n\\\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\\\n\\\\tclearcoatMapN.xy *= clearcoatNormalScale;\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",clearcoat_pars_fragment:\\\\\\\"\\\\n\\\\n#ifdef USE_CLEARCOATMAP\\\\n\\\\n\\\\tuniform sampler2D clearcoatMap;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\\\n\\\\n\\\\tuniform sampler2D clearcoatRoughnessMap;\\\\n\\\\n#endif\\\\n\\\\n#ifdef USE_CLEARCOAT_NORMALMAP\\\\n\\\\n\\\\tuniform sampler2D clearcoatNormalMap;\\\\n\\\\tuniform vec2 clearcoatNormalScale;\\\\n\\\\n#endif\\\\n\\\\\\\",output_fragment:\\\\\\\"\\\\n#ifdef OPAQUE\\\\ndiffuseColor.a = 1.0;\\\\n#endif\\\\n\\\\n// https://github.com/mrdoob/three.js/pull/22425\\\\n#ifdef USE_TRANSMISSION\\\\ndiffuseColor.a *= transmissionAlpha + 0.1;\\\\n#endif\\\\n\\\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\\\n\\\\\\\",packing:\\\\\\\"\\\\nvec3 packNormalToRGB( const in vec3 normal ) {\\\\n\\\\treturn normalize( normal ) * 0.5 + 0.5;\\\\n}\\\\n\\\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\\\n\\\\treturn 2.0 * rgb.xyz - 1.0;\\\\n}\\\\n\\\\nconst float PackUpscale = 256. / 255.; // fraction -> 0..1 (including 1)\\\\nconst float UnpackDownscale = 255. / 256.; // 0..1 -> fraction (excluding 1)\\\\n\\\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\\\n\\\\nconst float ShiftRight8 = 1. / 256.;\\\\n\\\\nvec4 packDepthToRGBA( const in float v ) {\\\\n\\\\tvec4 r = vec4( fract( v * PackFactors ), v );\\\\n\\\\tr.yzw -= r.xyz * ShiftRight8; // tidy overflow\\\\n\\\\treturn r * PackUpscale;\\\\n}\\\\n\\\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\\\n\\\\treturn dot( v, UnpackFactors );\\\\n}\\\\n\\\\nvec4 pack2HalfToRGBA( vec2 v ) {\\\\n\\\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\\\n\\\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\\\n}\\\\n\\\\nvec2 unpackRGBATo2Half( vec4 v ) {\\\\n\\\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\\\n}\\\\n\\\\n// NOTE: viewZ/eyeZ is < 0 when in front of the camera per OpenGL conventions\\\\n\\\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\\\n\\\\treturn ( viewZ + near ) / ( near - far );\\\\n}\\\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\\\n\\\\treturn linearClipZ * ( near - far ) - near;\\\\n}\\\\n\\\\n// NOTE: https://twitter.com/gonnavis/status/1377183786949959682\\\\n\\\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\\\n\\\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\\\n}\\\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\\\n\\\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\\\n}\\\\n\\\\\\\",premultiplied_alpha_fragment:\\\\\\\"\\\\n#ifdef PREMULTIPLIED_ALPHA\\\\n\\\\n\\\\t// Get get normal blending with premultipled, use with CustomBlending, OneFactor, OneMinusSrcAlphaFactor, AddEquation.\\\\n\\\\tgl_FragColor.rgb *= gl_FragColor.a;\\\\n\\\\n#endif\\\\n\\\\\\\",project_vertex:\\\\\\\"\\\\nvec4 mvPosition = vec4( transformed, 1.0 );\\\\n\\\\n#ifdef USE_INSTANCING\\\\n\\\\n\\\\tmvPosition = instanceMatrix * mvPosition;\\\\n\\\\n#endif\\\\n\\\\nmvPosition = modelViewMatrix * mvPosition;\\\\n\\\\ngl_Position = projectionMatrix * mvPosition;\\\\n\\\\\\\",dithering_fragment:\\\\\\\"\\\\n#ifdef DITHERING\\\\n\\\\n\\\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\\\n\\\\n#endif\\\\n\\\\\\\",dithering_pars_fragment:\\\\\\\"\\\\n#ifdef DITHERING\\\\n\\\\n\\\\t// based on https://www.shadertoy.com/view/MslGR8\\\\n\\\\tvec3 dithering( vec3 color ) {\\\\n\\\\t\\\\t//Calculate grid position\\\\n\\\\t\\\\tfloat grid_position = rand( gl_FragCoord.xy );\\\\n\\\\n\\\\t\\\\t//Shift the individual colors differently, thus making it even harder to see the dithering pattern\\\\n\\\\t\\\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\\\n\\\\n\\\\t\\\\t//modify shift acording to grid position.\\\\n\\\\t\\\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\\\n\\\\n\\\\t\\\\t//shift the color by dither_shift\\\\n\\\\t\\\\treturn color + dither_shift_RGB;\\\\n\\\\t}\\\\n\\\\n#endif\\\\n\\\\\\\",roughnessmap_fragment:\\\\\\\"\\\\nfloat roughnessFactor = roughness;\\\\n\\\\n#ifdef USE_ROUGHNESSMAP\\\\n\\\\n\\\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\\\n\\\\n\\\\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\\\n\\\\troughnessFactor *= texelRoughness.g;\\\\n\\\\n#endif\\\\n\\\\\\\",roughnessmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_ROUGHNESSMAP\\\\n\\\\n\\\\tuniform sampler2D roughnessMap;\\\\n\\\\n#endif\\\\n\\\\\\\",shadowmap_pars_fragment:z,shadowmap_pars_vertex:\\\\\\\"\\\\n#ifdef USE_SHADOWMAP\\\\n\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t\\\\tstruct DirectionalLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\n\\\\t\\\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t\\\\tstruct SpotLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\n\\\\t\\\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t\\\\tstruct PointLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraNear;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraFar;\\\\n\\\\t\\\\t};\\\\n\\\\n\\\\t\\\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t/*\\\\n\\\\t#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\n\\\\t\\\\t// TODO (abelnation): uniforms for area light shadows\\\\n\\\\n\\\\t#endif\\\\n\\\\t*/\\\\n\\\\n#endif\\\\n\\\\\\\",shadowmap_vertex:\\\\\\\"\\\\n#ifdef USE_SHADOWMAP\\\\n\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t\\\\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\\\\n\\\\t\\\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\\\n\\\\t\\\\tvec4 shadowWorldPosition;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\n\\\\t\\\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\\\n\\\\t\\\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\n\\\\t\\\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\\\n\\\\t\\\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\n\\\\t\\\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\\\n\\\\t\\\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t/*\\\\n\\\\t#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\n\\\\t\\\\t// TODO (abelnation): update vAreaShadowCoord with area light info\\\\n\\\\n\\\\t#endif\\\\n\\\\t*/\\\\n\\\\n#endif\\\\n\\\\\\\",shadowmask_pars_fragment:\\\\\\\"\\\\nfloat getShadowMask() {\\\\n\\\\n\\\\tfloat shadow = 1.0;\\\\n\\\\n\\\\t#ifdef USE_SHADOWMAP\\\\n\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\tDirectionalLightShadow directionalLight;\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\n\\\\t\\\\tdirectionalLight = directionalLightShadows[ i ];\\\\n\\\\t\\\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\tSpotLightShadow spotLight;\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\n\\\\t\\\\tspotLight = spotLightShadows[ i ];\\\\n\\\\t\\\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\n\\\\tPointLightShadow pointLight;\\\\n\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\n\\\\t\\\\tpointLight = pointLightShadows[ i ];\\\\n\\\\t\\\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\\\n\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t/*\\\\n\\\\t#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\n\\\\t\\\\t// TODO (abelnation): update shadow for Area light\\\\n\\\\n\\\\t#endif\\\\n\\\\t*/\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\treturn shadow;\\\\n\\\\n}\\\\n\\\\\\\",skinbase_vertex:\\\\\\\"\\\\n#ifdef USE_SKINNING\\\\n\\\\n\\\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\\\n\\\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\\\n\\\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\\\n\\\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\\\n\\\\n#endif\\\\n\\\\\\\",skinning_pars_vertex:\\\\\\\"\\\\n#ifdef USE_SKINNING\\\\n\\\\n\\\\tuniform mat4 bindMatrix;\\\\n\\\\tuniform mat4 bindMatrixInverse;\\\\n\\\\n\\\\t#ifdef BONE_TEXTURE\\\\n\\\\n\\\\t\\\\tuniform highp sampler2D boneTexture;\\\\n\\\\t\\\\tuniform int boneTextureSize;\\\\n\\\\n\\\\t\\\\tmat4 getBoneMatrix( const in float i ) {\\\\n\\\\n\\\\t\\\\t\\\\tfloat j = i * 4.0;\\\\n\\\\t\\\\t\\\\tfloat x = mod( j, float( boneTextureSize ) );\\\\n\\\\t\\\\t\\\\tfloat y = floor( j / float( boneTextureSize ) );\\\\n\\\\n\\\\t\\\\t\\\\tfloat dx = 1.0 / float( boneTextureSize );\\\\n\\\\t\\\\t\\\\tfloat dy = 1.0 / float( boneTextureSize );\\\\n\\\\n\\\\t\\\\t\\\\ty = dy * ( y + 0.5 );\\\\n\\\\n\\\\t\\\\t\\\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\\\n\\\\t\\\\t\\\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\\\n\\\\t\\\\t\\\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\\\n\\\\t\\\\t\\\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\\\n\\\\n\\\\t\\\\t\\\\tmat4 bone = mat4( v1, v2, v3, v4 );\\\\n\\\\n\\\\t\\\\t\\\\treturn bone;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tuniform mat4 boneMatrices[ MAX_BONES ];\\\\n\\\\n\\\\t\\\\tmat4 getBoneMatrix( const in float i ) {\\\\n\\\\n\\\\t\\\\t\\\\tmat4 bone = boneMatrices[ int(i) ];\\\\n\\\\t\\\\t\\\\treturn bone;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",skinning_vertex:\\\\\\\"\\\\n#ifdef USE_SKINNING\\\\n\\\\n\\\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\\\n\\\\n\\\\tvec4 skinned = vec4( 0.0 );\\\\n\\\\tskinned += boneMatX * skinVertex * skinWeight.x;\\\\n\\\\tskinned += boneMatY * skinVertex * skinWeight.y;\\\\n\\\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\\\n\\\\tskinned += boneMatW * skinVertex * skinWeight.w;\\\\n\\\\n\\\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\\\n\\\\n#endif\\\\n\\\\\\\",skinnormal_vertex:\\\\\\\"\\\\n#ifdef USE_SKINNING\\\\n\\\\n\\\\tmat4 skinMatrix = mat4( 0.0 );\\\\n\\\\tskinMatrix += skinWeight.x * boneMatX;\\\\n\\\\tskinMatrix += skinWeight.y * boneMatY;\\\\n\\\\tskinMatrix += skinWeight.z * boneMatZ;\\\\n\\\\tskinMatrix += skinWeight.w * boneMatW;\\\\n\\\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\\\n\\\\n\\\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\\\n\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\n\\\\t\\\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\\\n\\\\n\\\\t#endif\\\\n\\\\n#endif\\\\n\\\\\\\",specularmap_fragment:\\\\\\\"\\\\nfloat specularStrength;\\\\n\\\\n#ifdef USE_SPECULARMAP\\\\n\\\\n\\\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\\\n\\\\tspecularStrength = texelSpecular.r;\\\\n\\\\n#else\\\\n\\\\n\\\\tspecularStrength = 1.0;\\\\n\\\\n#endif\\\\n\\\\\\\",specularmap_pars_fragment:\\\\\\\"\\\\n#ifdef USE_SPECULARMAP\\\\n\\\\n\\\\tuniform sampler2D specularMap;\\\\n\\\\n#endif\\\\n\\\\\\\",tonemapping_fragment:\\\\\\\"\\\\n#if defined( TONE_MAPPING )\\\\n\\\\n\\\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\\\n\\\\n#endif\\\\n\\\\\\\",tonemapping_pars_fragment:\\\\\\\"\\\\n#ifndef saturate\\\\n// <common> may have defined saturate() already\\\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\\\n#endif\\\\n\\\\nuniform float toneMappingExposure;\\\\n\\\\n// exposure only\\\\nvec3 LinearToneMapping( vec3 color ) {\\\\n\\\\n\\\\treturn toneMappingExposure * color;\\\\n\\\\n}\\\\n\\\\n// source: https://www.cs.utah.edu/~reinhard/cdrom/\\\\nvec3 ReinhardToneMapping( vec3 color ) {\\\\n\\\\n\\\\tcolor *= toneMappingExposure;\\\\n\\\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\\\n\\\\n}\\\\n\\\\n// source: http://filmicworlds.com/blog/filmic-tonemapping-operators/\\\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\\\n\\\\n\\\\t// optimized filmic operator by Jim Hejl and Richard Burgess-Dawson\\\\n\\\\tcolor *= toneMappingExposure;\\\\n\\\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\\\n\\\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\\\n\\\\n}\\\\n\\\\n// source: https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs\\\\nvec3 RRTAndODTFit( vec3 v ) {\\\\n\\\\n\\\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\\\n\\\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\\\n\\\\treturn a / b;\\\\n\\\\n}\\\\n\\\\n// this implementation of ACES is modified to accommodate a brighter viewing environment.\\\\n// the scale factor of 1/0.6 is subjective. see discussion in #19621.\\\\n\\\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\\\n\\\\n\\\\t// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT\\\\n\\\\tconst mat3 ACESInputMat = mat3(\\\\n\\\\t\\\\tvec3( 0.59719, 0.07600, 0.02840 ), // transposed from source\\\\n\\\\t\\\\tvec3( 0.35458, 0.90834, 0.13383 ),\\\\n\\\\t\\\\tvec3( 0.04823, 0.01566, 0.83777 )\\\\n\\\\t);\\\\n\\\\n\\\\t// ODT_SAT => XYZ => D60_2_D65 => sRGB\\\\n\\\\tconst mat3 ACESOutputMat = mat3(\\\\n\\\\t\\\\tvec3(  1.60475, -0.10208, -0.00327 ), // transposed from source\\\\n\\\\t\\\\tvec3( -0.53108,  1.10813, -0.07276 ),\\\\n\\\\t\\\\tvec3( -0.07367, -0.00605,  1.07602 )\\\\n\\\\t);\\\\n\\\\n\\\\tcolor *= toneMappingExposure / 0.6;\\\\n\\\\n\\\\tcolor = ACESInputMat * color;\\\\n\\\\n\\\\t// Apply RRT and ODT\\\\n\\\\tcolor = RRTAndODTFit( color );\\\\n\\\\n\\\\tcolor = ACESOutputMat * color;\\\\n\\\\n\\\\t// Clamp to [0, 1]\\\\n\\\\treturn saturate( color );\\\\n\\\\n}\\\\n\\\\nvec3 CustomToneMapping( vec3 color ) { return color; }\\\\n\\\\\\\",transmission_fragment:k,transmission_pars_fragment:\\\\\\\"\\\\n#ifdef USE_TRANSMISSION\\\\n\\\\n\\\\t// Transmission code is based on glTF-Sampler-Viewer\\\\n\\\\t// https://github.com/KhronosGroup/glTF-Sample-Viewer\\\\n\\\\n\\\\tuniform float transmission;\\\\n\\\\tuniform float thickness;\\\\n\\\\tuniform float attenuationDistance;\\\\n\\\\tuniform vec3 attenuationTint;\\\\n\\\\n\\\\t#ifdef USE_TRANSMISSIONMAP\\\\n\\\\n\\\\t\\\\tuniform sampler2D transmissionMap;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_THICKNESSMAP\\\\n\\\\n\\\\t\\\\tuniform sampler2D thicknessMap;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tuniform vec2 transmissionSamplerSize;\\\\n\\\\tuniform sampler2D transmissionSamplerMap;\\\\n\\\\n\\\\tuniform mat4 modelMatrix;\\\\n\\\\tuniform mat4 projectionMatrix;\\\\n\\\\n\\\\tvarying vec3 vWorldPosition;\\\\n\\\\n\\\\tvec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {\\\\n\\\\n\\\\t\\\\t// Direction of refracted light.\\\\n\\\\t\\\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\\\n\\\\n\\\\t\\\\t// Compute rotation-independant scaling of the model matrix.\\\\n\\\\t\\\\tvec3 modelScale;\\\\n\\\\t\\\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\\\n\\\\t\\\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\\\n\\\\t\\\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\\\n\\\\n\\\\t\\\\t// The thickness is specified in local space.\\\\n\\\\t\\\\treturn normalize( refractionVector ) * thickness * modelScale;\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tfloat applyIorToRoughness( float roughness, float ior ) {\\\\n\\\\n\\\\t\\\\t// Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\\\\n\\\\t\\\\t// an IOR of 1.5 results in the default amount of microfacet refraction.\\\\n\\\\t\\\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior ) {\\\\n\\\\n\\\\t\\\\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\\\n\\\\n\\\\t\\\\t#ifdef TEXTURE_LOD_EXT\\\\n\\\\n\\\\t\\\\t\\\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec3 applyVolumeAttenuation( vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance ) {\\\\n\\\\n\\\\t\\\\tif ( attenuationDistance == 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t// Attenuation distance is +∞ (which we indicate by zero), i.e. the transmitted color is not attenuated at all.\\\\n\\\\t\\\\t\\\\treturn radiance;\\\\n\\\\n\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\t// Compute light attenuation using Beer's law.\\\\n\\\\t\\\\t\\\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\\\n\\\\t\\\\t\\\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\\\\n\\\\t\\\\t\\\\treturn transmittance * radiance;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 diffuseColor, vec3 specularColor, float specularF90,\\\\n\\\\t\\\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\\\n\\\\t\\\\tvec3 attenuationColor, float attenuationDistance ) {\\\\n\\\\n\\\\t\\\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\\\n\\\\t\\\\tvec3 refractedRayExit = position + transmissionRay;\\\\n\\\\n\\\\t\\\\t// Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\\\\n\\\\t\\\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\\\n\\\\t\\\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\\\n\\\\t\\\\trefractionCoords += 1.0;\\\\n\\\\t\\\\trefractionCoords /= 2.0;\\\\n\\\\n\\\\t\\\\t// Sample framebuffer to get pixel the refracted ray hits.\\\\n\\\\t\\\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\\\n\\\\n\\\\t\\\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\\\n\\\\n\\\\t\\\\t// Get the specular component.\\\\n\\\\t\\\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\\\n\\\\n\\\\t\\\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\\\n\\\\n\\\\t}\\\\n#endif\\\\n\\\\\\\",uv_pars_fragment:\\\\\\\"\\\\n#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\\\n\\\\n\\\\tvarying vec2 vUv;\\\\n\\\\n#endif\\\\n\\\\\\\",uv_pars_vertex:\\\\\\\"\\\\n#ifdef USE_UV\\\\n\\\\n\\\\t#ifdef UVS_VERTEX_ONLY\\\\n\\\\n\\\\t\\\\tvec2 vUv;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tuniform mat3 uvTransform;\\\\n\\\\n#endif\\\\n\\\\\\\",uv_vertex:\\\\\\\"\\\\n#ifdef USE_UV\\\\n\\\\n\\\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\\\n\\\\n#endif\\\\n\\\\\\\",uv2_pars_fragment:\\\\\\\"\\\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\\\n\\\\n\\\\tvarying vec2 vUv2;\\\\n\\\\n#endif\\\\n\\\\\\\",uv2_pars_vertex:\\\\\\\"\\\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\\\n\\\\n\\\\tattribute vec2 uv2;\\\\n\\\\tvarying vec2 vUv2;\\\\n\\\\n\\\\tuniform mat3 uv2Transform;\\\\n\\\\n#endif\\\\n\\\\\\\",uv2_vertex:\\\\\\\"\\\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\\\n\\\\n\\\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\\\n\\\\n#endif\\\\n\\\\\\\",worldpos_vertex:\\\\\\\"\\\\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\\\n\\\\n\\\\tvec4 worldPosition = vec4( transformed, 1.0 );\\\\n\\\\n\\\\t#ifdef USE_INSTANCING\\\\n\\\\n\\\\t\\\\tworldPosition = instanceMatrix * worldPosition;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tworldPosition = modelMatrix * worldPosition;\\\\n\\\\n#endif\\\\n\\\\\\\",background_vert:\\\\\\\"\\\\nvarying vec2 vUv;\\\\nuniform mat3 uvTransform;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\\\n\\\\n\\\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\\\n\\\\n}\\\\n\\\\\\\",background_frag:\\\\\\\"\\\\nuniform sampler2D t2D;\\\\n\\\\nvarying vec2 vUv;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec4 texColor = texture2D( t2D, vUv );\\\\n\\\\n\\\\tgl_FragColor = mapTexelToLinear( texColor );\\\\n\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\n}\\\\n\\\\\\\",cube_vert:\\\\\\\"\\\\nvarying vec3 vWorldDirection;\\\\n\\\\n#include <common>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvWorldDirection = transformDirection( position, modelMatrix );\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\tgl_Position.z = gl_Position.w; // set z to camera.far\\\\n\\\\n}\\\\n\\\\\\\",cube_frag:\\\\\\\"\\\\n#include <envmap_common_pars_fragment>\\\\nuniform float opacity;\\\\n\\\\nvarying vec3 vWorldDirection;\\\\n\\\\n#include <cube_uv_reflection_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec3 vReflect = vWorldDirection;\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\n\\\\tgl_FragColor = envColor;\\\\n\\\\tgl_FragColor.a *= opacity;\\\\n\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\n}\\\\n\\\\\\\",depth_vert:\\\\\\\"\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\\\\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\\\\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\\\\nvarying vec2 vHighPrecisionZW;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\n\\\\t#ifdef USE_DISPLACEMENTMAP\\\\n\\\\n\\\\t\\\\t#include <beginnormal_vertex>\\\\n\\\\t\\\\t#include <morphnormal_vertex>\\\\n\\\\t\\\\t#include <skinnormal_vertex>\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\tvHighPrecisionZW = gl_Position.zw;\\\\n\\\\n}\\\\n\\\\\\\",depth_frag:\\\\\\\"\\\\n#if DEPTH_PACKING == 3200\\\\n\\\\n\\\\tuniform float opacity;\\\\n\\\\n#endif\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvarying vec2 vHighPrecisionZW;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( 1.0 );\\\\n\\\\n\\\\t#if DEPTH_PACKING == 3200\\\\n\\\\n\\\\t\\\\tdiffuseColor.a = opacity;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\n\\\\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\\\\n\\\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\\\n\\\\n\\\\t#if DEPTH_PACKING == 3200\\\\n\\\\n\\\\t\\\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\\\n\\\\n\\\\t#elif DEPTH_PACKING == 3201\\\\n\\\\n\\\\t\\\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\\\n\\\\n\\\\t#endif\\\\n\\\\n}\\\\n\\\\\\\",distanceRGBA_vert:\\\\\\\"\\\\n#define DISTANCE\\\\n\\\\nvarying vec3 vWorldPosition;\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\n\\\\t#ifdef USE_DISPLACEMENTMAP\\\\n\\\\n\\\\t\\\\t#include <beginnormal_vertex>\\\\n\\\\t\\\\t#include <morphnormal_vertex>\\\\n\\\\t\\\\t#include <skinnormal_vertex>\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\tvWorldPosition = worldPosition.xyz;\\\\n\\\\n}\\\\n\\\\\\\",distanceRGBA_frag:\\\\\\\"\\\\n#define DISTANCE\\\\n\\\\nuniform vec3 referencePosition;\\\\nuniform float nearDistance;\\\\nuniform float farDistance;\\\\nvarying vec3 vWorldPosition;\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main () {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( 1.0 );\\\\n\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\n\\\\tfloat dist = length( vWorldPosition - referencePosition );\\\\n\\\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\\\n\\\\tdist = saturate( dist ); // clamp to [ 0, 1 ]\\\\n\\\\n\\\\tgl_FragColor = packDepthToRGBA( dist );\\\\n\\\\n}\\\\n\\\\\\\",equirect_vert:\\\\\\\"\\\\nvarying vec3 vWorldDirection;\\\\n\\\\n#include <common>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvWorldDirection = transformDirection( position, modelMatrix );\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\n}\\\\n\\\\\\\",equirect_frag:\\\\\\\"\\\\nuniform sampler2D tEquirect;\\\\n\\\\nvarying vec3 vWorldDirection;\\\\n\\\\n#include <common>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec3 direction = normalize( vWorldDirection );\\\\n\\\\n\\\\tvec2 sampleUV = equirectUv( direction );\\\\n\\\\n\\\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\\\n\\\\n\\\\tgl_FragColor = mapTexelToLinear( texColor );\\\\n\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\n}\\\\n\\\\\\\",linedashed_vert:\\\\\\\"\\\\nuniform float scale;\\\\nattribute float lineDistance;\\\\n\\\\nvarying float vLineDistance;\\\\n\\\\n#include <common>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvLineDistance = scale * lineDistance;\\\\n\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",linedashed_frag:\\\\\\\"\\\\nuniform vec3 diffuse;\\\\nuniform float opacity;\\\\n\\\\nuniform float dashSize;\\\\nuniform float totalSize;\\\\n\\\\nvarying float vLineDistance;\\\\n\\\\n#include <common>\\\\n#include <color_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\\\n\\\\n\\\\t\\\\tdiscard;\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tvec3 outgoingLight = vec3( 0.0 );\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\n\\\\toutgoingLight = diffuseColor.rgb; // simple shader\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\n}\\\\n\\\\\\\",meshbasic_vert:\\\\\\\"\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <envmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\n\\\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\\\n\\\\n\\\\t\\\\t#include <beginnormal_vertex>\\\\n\\\\t\\\\t#include <morphnormal_vertex>\\\\n\\\\t\\\\t#include <skinbase_vertex>\\\\n\\\\t\\\\t#include <skinnormal_vertex>\\\\n\\\\t\\\\t#include <defaultnormal_vertex>\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <envmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",meshbasic_frag:\\\\\\\"\\\\nuniform vec3 diffuse;\\\\nuniform float opacity;\\\\n\\\\n#ifndef FLAT_SHADED\\\\n\\\\n\\\\tvarying vec3 vNormal;\\\\n\\\\n#endif\\\\n\\\\n#include <common>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_pars_fragment>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <specularmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <specularmap_fragment>\\\\n\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\n\\\\t// accumulation (baked indirect lighting only)\\\\n\\\\t#ifdef USE_LIGHTMAP\\\\n\\\\n\\\\t\\\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t// modulation\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\n\\\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\\\n\\\\n\\\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\\\n\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n\\\\n}\\\\n\\\\\\\",meshlambert_vert:\\\\\\\"\\\\n#define LAMBERT\\\\n\\\\nvarying vec3 vLightFront;\\\\nvarying vec3 vIndirectFront;\\\\n\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvarying vec3 vLightBack;\\\\n\\\\tvarying vec3 vIndirectBack;\\\\n#endif\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <envmap_pars_vertex>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <envmap_vertex>\\\\n\\\\t#include <lights_lambert_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\n\\\\\\\",meshlambert_frag:\\\\\\\"\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform float opacity;\\\\n\\\\nvarying vec3 vLightFront;\\\\nvarying vec3 vIndirectFront;\\\\n\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvarying vec3 vLightBack;\\\\n\\\\tvarying vec3 vIndirectBack;\\\\n#endif\\\\n\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_pars_fragment>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <fog_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <shadowmask_pars_fragment>\\\\n#include <specularmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <specularmap_fragment>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\n\\\\t// accumulation\\\\n\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += vIndirectFront;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <lightmap_fragment>\\\\n\\\\n\\\\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\\\\n\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\n\\\\t\\\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\treflectedLight.directDiffuse = vLightFront;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\\\\n\\\\n\\\\t// modulation\\\\n\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\n\\\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\\\n\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\n\\\\\\\",meshmatcap_vert:\\\\\\\"\\\\n#define MATCAP\\\\n\\\\nvarying vec3 vViewPosition;\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\n}\\\\n\\\\\\\",meshmatcap_frag:\\\\\\\"\\\\n#define MATCAP\\\\n\\\\nuniform vec3 diffuse;\\\\nuniform float opacity;\\\\nuniform sampler2D matcap;\\\\n\\\\nvarying vec3 vViewPosition;\\\\n\\\\n#include <common>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <normal_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\n\\\\tvec3 viewDir = normalize( vViewPosition );\\\\n\\\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\\\n\\\\tvec3 y = cross( viewDir, x );\\\\n\\\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; // 0.495 to remove artifacts caused by undersized matcap disks\\\\n\\\\n\\\\t#ifdef USE_MATCAP\\\\n\\\\n\\\\t\\\\tvec4 matcapColor = texture2D( matcap, uv );\\\\n\\\\t\\\\tmatcapColor = matcapTexelToLinear( matcapColor );\\\\n\\\\n\\\\t#else\\\\n\\\\n\\\\t\\\\tvec4 matcapColor = vec4( 1.0 );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n\\\\n}\\\\n\\\\\\\",meshnormal_vert:\\\\\\\"\\\\n#define NORMAL\\\\n\\\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\n\\\\tvarying vec3 vViewPosition;\\\\n\\\\n#endif\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\n#endif\\\\n\\\\n}\\\\n\\\\\\\",meshnormal_frag:\\\\\\\"\\\\n#define NORMAL\\\\n\\\\nuniform float opacity;\\\\n\\\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\n\\\\tvarying vec3 vViewPosition;\\\\n\\\\n#endif\\\\n\\\\n#include <packing>\\\\n#include <uv_pars_fragment>\\\\n#include <normal_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\n\\\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\\\n\\\\n}\\\\n\\\\\\\",meshphong_vert:\\\\\\\"\\\\n#define PHONG\\\\n\\\\nvarying vec3 vViewPosition;\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <envmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <envmap_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",meshphong_frag:\\\\\\\"\\\\n#define PHONG\\\\n\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform vec3 specular;\\\\nuniform float shininess;\\\\nuniform float opacity;\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_pars_fragment>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <normal_pars_fragment>\\\\n#include <lights_phong_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <specularmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <specularmap_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\n\\\\t// accumulation\\\\n\\\\t#include <lights_phong_fragment>\\\\n\\\\t#include <lights_fragment_begin>\\\\n\\\\t#include <lights_fragment_maps>\\\\n\\\\t#include <lights_fragment_end>\\\\n\\\\n\\\\t// modulation\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\n\\\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\\\n\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n\\\\n}\\\\n\\\\\\\",meshphysical_vert:\\\\\\\"\\\\n#define STANDARD\\\\n\\\\nvarying vec3 vViewPosition;\\\\n\\\\n#ifdef USE_TRANSMISSION\\\\n\\\\n\\\\tvarying vec3 vWorldPosition;\\\\n\\\\n#endif\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n#ifdef USE_TRANSMISSION\\\\n\\\\n\\\\tvWorldPosition = worldPosition.xyz;\\\\n\\\\n#endif\\\\n}\\\\n\\\\\\\",meshphysical_frag:\\\\\\\"\\\\n#define STANDARD\\\\n\\\\n#ifdef PHYSICAL\\\\n\\\\t#define IOR\\\\n\\\\t#define SPECULAR\\\\n#endif\\\\n\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform float roughness;\\\\nuniform float metalness;\\\\nuniform float opacity;\\\\n\\\\n#ifdef IOR\\\\n\\\\tuniform float ior;\\\\n#endif\\\\n\\\\n#ifdef SPECULAR\\\\n\\\\tuniform float specularIntensity;\\\\n\\\\tuniform vec3 specularTint;\\\\n\\\\n\\\\t#ifdef USE_SPECULARINTENSITYMAP\\\\n\\\\t\\\\tuniform sampler2D specularIntensityMap;\\\\n\\\\t#endif\\\\n\\\\n\\\\t#ifdef USE_SPECULARTINTMAP\\\\n\\\\t\\\\tuniform sampler2D specularTintMap;\\\\n\\\\t#endif\\\\n#endif\\\\n\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\tuniform float clearcoat;\\\\n\\\\tuniform float clearcoatRoughness;\\\\n#endif\\\\n\\\\n#ifdef USE_SHEEN\\\\n\\\\tuniform vec3 sheenTint;\\\\n\\\\tuniform float sheenRoughness;\\\\n#endif\\\\n\\\\nvarying vec3 vViewPosition;\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_physical_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <lights_pars_begin>\\\\n#include <normal_pars_fragment>\\\\n#include <lights_physical_pars_fragment>\\\\n#include <transmission_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <clearcoat_pars_fragment>\\\\n#include <roughnessmap_pars_fragment>\\\\n#include <metalnessmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <roughnessmap_fragment>\\\\n\\\\t#include <metalnessmap_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\t#include <clearcoat_normal_fragment_begin>\\\\n\\\\t#include <clearcoat_normal_fragment_maps>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\n\\\\t// accumulation\\\\n\\\\t#include <lights_physical_fragment>\\\\n\\\\t#include <lights_fragment_begin>\\\\n\\\\t#include <lights_fragment_maps>\\\\n\\\\t#include <lights_fragment_end>\\\\n\\\\n\\\\t// modulation\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\n\\\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\\\n\\\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\\\n\\\\n\\\\t#include <transmission_fragment>\\\\n\\\\n\\\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\\\n\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\n\\\\t\\\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\\\n\\\\n\\\\t\\\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\\\n\\\\n\\\\t\\\\toutgoingLight = outgoingLight * ( 1.0 - clearcoat * Fcc ) + clearcoatSpecular * clearcoat;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n\\\\n}\\\\n\\\\\\\",meshtoon_vert:\\\\\\\"\\\\n#define TOON\\\\n\\\\nvarying vec3 vViewPosition;\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",meshtoon_frag:\\\\\\\"\\\\n#define TOON\\\\n\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform float opacity;\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <gradientmap_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <normal_pars_fragment>\\\\n#include <lights_toon_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\n\\\\t// accumulation\\\\n\\\\t#include <lights_toon_fragment>\\\\n\\\\t#include <lights_fragment_begin>\\\\n\\\\t#include <lights_fragment_maps>\\\\n\\\\t#include <lights_fragment_end>\\\\n\\\\n\\\\t// modulation\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\n\\\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n\\\\n}\\\\n\\\\\\\",points_vert:\\\\\\\"\\\\nuniform float size;\\\\nuniform float scale;\\\\n\\\\n#include <common>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\tgl_PointSize = size;\\\\n\\\\n\\\\t#ifdef USE_SIZEATTENUATION\\\\n\\\\n\\\\t\\\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\\\n\\\\n\\\\t\\\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",points_frag:\\\\\\\"\\\\nuniform vec3 diffuse;\\\\nuniform float opacity;\\\\n\\\\n#include <common>\\\\n#include <color_pars_fragment>\\\\n#include <map_particle_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec3 outgoingLight = vec3( 0.0 );\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_particle_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\n\\\\toutgoingLight = diffuseColor.rgb;\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\n}\\\\n\\\\\\\",shadow_vert:\\\\\\\"\\\\n#include <common>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",shadow_frag:\\\\\\\"\\\\nuniform vec3 color;\\\\nuniform float opacity;\\\\n\\\\n#include <common>\\\\n#include <packing>\\\\n#include <fog_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <shadowmask_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\\\n\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\n}\\\\n\\\\\\\",sprite_vert:\\\\\\\"\\\\nuniform float rotation;\\\\nuniform vec2 center;\\\\n\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <uv_vertex>\\\\n\\\\n\\\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\\\n\\\\n\\\\tvec2 scale;\\\\n\\\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\\\n\\\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\\\n\\\\n\\\\t#ifndef USE_SIZEATTENUATION\\\\n\\\\n\\\\t\\\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\\\n\\\\n\\\\t\\\\tif ( isPerspective ) scale *= - mvPosition.z;\\\\n\\\\n\\\\t#endif\\\\n\\\\n\\\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\\\n\\\\n\\\\tvec2 rotatedPosition;\\\\n\\\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\\\n\\\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\\\n\\\\n\\\\tmvPosition.xy += rotatedPosition;\\\\n\\\\n\\\\tgl_Position = projectionMatrix * mvPosition;\\\\n\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\n}\\\\n\\\\\\\",sprite_frag:\\\\\\\"\\\\nuniform vec3 diffuse;\\\\nuniform float opacity;\\\\n\\\\n#include <common>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\n\\\\tvec3 outgoingLight = vec3( 0.0 );\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\n\\\\toutgoingLight = diffuseColor.rgb;\\\\n\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\n}\\\\n\\\\\\\"};var G=n(11);const V={common:{diffuse:{value:new D.a(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new G.a},uv2Transform:{value:new G.a},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new d.a(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new D.a(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new D.a(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new G.a}},sprite:{diffuse:{value:new D.a(16777215)},opacity:{value:1},center:{value:new d.a(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new G.a}}},H={basic:{uniforms:R([V.common,V.specularmap,V.envmap,V.aomap,V.lightmap,V.fog]),vertexShader:U.meshbasic_vert,fragmentShader:U.meshbasic_frag},lambert:{uniforms:R([V.common,V.specularmap,V.envmap,V.aomap,V.lightmap,V.emissivemap,V.fog,V.lights,{emissive:{value:new D.a(0)}}]),vertexShader:U.meshlambert_vert,fragmentShader:U.meshlambert_frag},phong:{uniforms:R([V.common,V.specularmap,V.envmap,V.aomap,V.lightmap,V.emissivemap,V.bumpmap,V.normalmap,V.displacementmap,V.fog,V.lights,{emissive:{value:new D.a(0)},specular:{value:new D.a(1118481)},shininess:{value:30}}]),vertexShader:U.meshphong_vert,fragmentShader:U.meshphong_frag},standard:{uniforms:R([V.common,V.envmap,V.aomap,V.lightmap,V.emissivemap,V.bumpmap,V.normalmap,V.displacementmap,V.roughnessmap,V.metalnessmap,V.fog,V.lights,{emissive:{value:new D.a(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:U.meshphysical_vert,fragmentShader:U.meshphysical_frag},toon:{uniforms:R([V.common,V.aomap,V.lightmap,V.emissivemap,V.bumpmap,V.normalmap,V.displacementmap,V.gradientmap,V.fog,V.lights,{emissive:{value:new D.a(0)}}]),vertexShader:U.meshtoon_vert,fragmentShader:U.meshtoon_frag},matcap:{uniforms:R([V.common,V.bumpmap,V.normalmap,V.displacementmap,V.fog,{matcap:{value:null}}]),vertexShader:U.meshmatcap_vert,fragmentShader:U.meshmatcap_frag},points:{uniforms:R([V.points,V.fog]),vertexShader:U.points_vert,fragmentShader:U.points_frag},dashed:{uniforms:R([V.common,V.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:U.linedashed_vert,fragmentShader:U.linedashed_frag},depth:{uniforms:R([V.common,V.displacementmap]),vertexShader:U.depth_vert,fragmentShader:U.depth_frag},normal:{uniforms:R([V.common,V.bumpmap,V.normalmap,V.displacementmap,{opacity:{value:1}}]),vertexShader:U.meshnormal_vert,fragmentShader:U.meshnormal_frag},sprite:{uniforms:R([V.sprite,V.fog]),vertexShader:U.sprite_vert,fragmentShader:U.sprite_frag},background:{uniforms:{uvTransform:{value:new G.a},t2D:{value:null}},vertexShader:U.background_vert,fragmentShader:U.background_frag},cube:{uniforms:R([V.envmap,{opacity:{value:1}}]),vertexShader:U.cube_vert,fragmentShader:U.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:U.equirect_vert,fragmentShader:U.equirect_frag},distanceRGBA:{uniforms:R([V.common,V.displacementmap,{referencePosition:{value:new p.a},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:U.distanceRGBA_vert,fragmentShader:U.distanceRGBA_frag},shadow:{uniforms:R([V.lights,V.fog,{color:{value:new D.a(0)},opacity:{value:1}}]),vertexShader:U.shadow_vert,fragmentShader:U.shadow_frag}};function j(t,e,n,i,s){const r=new D.a(0);let o,a,l=0,c=null,h=0,u=null;function d(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,s)}return{getClearColor:function(){return r},setClearColor:function(t,e=1){r.set(t),l=e,d(r,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t,d(r,l)},render:function(n,s){let p=!1,_=!0===s.isScene?s.background:null;_&&_.isTexture&&(_=e.get(_));const m=t.xr,f=m.getSession&&m.getSession();f&&\\\\\\\"additive\\\\\\\"===f.environmentBlendMode&&(_=null),null===_?d(r,l):_&&_.isColor&&(d(_,1),p=!0),(t.autoClear||p)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),_&&(_.isCubeTexture||_.mapping===w.q)?(void 0===a&&(a=new B.a(new N(1,1,1),new F({name:\\\\\\\"BackgroundCubeMaterial\\\\\\\",uniforms:P(H.cube.uniforms),vertexShader:H.cube.vertexShader,fragmentShader:H.cube.fragmentShader,side:w.i,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute(\\\\\\\"normal\\\\\\\"),a.geometry.deleteAttribute(\\\\\\\"uv\\\\\\\"),a.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(a.material,\\\\\\\"envMap\\\\\\\",{get:function(){return this.uniforms.envMap.value}}),i.update(a)),a.material.uniforms.envMap.value=_,a.material.uniforms.flipEnvMap.value=_.isCubeTexture&&!1===_.isRenderTargetTexture?-1:1,c===_&&h===_.version&&u===t.toneMapping||(a.material.needsUpdate=!0,c=_,h=_.version,u=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null)):_&&_.isTexture&&(void 0===o&&(o=new B.a(new L(2,2),new F({name:\\\\\\\"BackgroundMaterial\\\\\\\",uniforms:P(H.background.uniforms),vertexShader:H.background.vertexShader,fragmentShader:H.background.fragmentShader,side:w.H,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute(\\\\\\\"normal\\\\\\\"),Object.defineProperty(o.material,\\\\\\\"map\\\\\\\",{get:function(){return this.uniforms.t2D.value}}),i.update(o)),o.material.uniforms.t2D.value=_,!0===_.matrixAutoUpdate&&_.updateMatrix(),o.material.uniforms.uvTransform.value.copy(_.matrix),c===_&&h===_.version&&u===t.toneMapping||(o.material.needsUpdate=!0,c=_,h=_.version,u=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null))}}}function W(t,e,n,i){const s=t.getParameter(t.MAX_VERTEX_ATTRIBS),r=i.isWebGL2?null:e.get(\\\\\\\"OES_vertex_array_object\\\\\\\"),o=i.isWebGL2||null!==r,a={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):r.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):r.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t<s;t++)e[t]=0,n[t]=0,i[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function _(t){m(t,0)}function m(n,s){const r=c.newAttributes,o=c.enabledAttributes,a=c.attributeDivisors;if(r[n]=1,0===o[n]&&(t.enableVertexAttribArray(n),o[n]=1),a[n]!==s){(i.isWebGL2?t:e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"))[i.isWebGL2?\\\\\\\"vertexAttribDivisor\\\\\\\":\\\\\\\"vertexAttribDivisorANGLE\\\\\\\"](n,s),a[n]=s}}function f(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,s=n.length;i<s;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function g(e,n,s,r,o,a){!0!==i.isWebGL2||s!==t.INT&&s!==t.UNSIGNED_INT?t.vertexAttribPointer(e,n,s,r,o,a):t.vertexAttribIPointer(e,n,s,o,a)}function v(){y(),c!==l&&(c=l,h(c.object))}function y(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(s,l,u,v,y){let x=!1;if(o){const e=function(e,n,s){const o=!0===s.wireframe;let l=a[e.id];void 0===l&&(l={},a[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[o];void 0===h&&(h=d(i.isWebGL2?t.createVertexArray():r.createVertexArrayOES()),c[o]=h);return h}(v,u,l);c!==e&&(c=e,h(c.object)),x=function(t,e){const n=c.attributes,i=t.attributes;let s=0;for(const t in i){const e=n[t],r=i[t];if(void 0===e)return!0;if(e.attribute!==r)return!0;if(e.data!==r.data)return!0;s++}return c.attributesNum!==s||c.index!==e}(v,y),x&&function(t,e){const n={},i=t.attributes;let s=0;for(const t in i){const e=i[t],r={};r.attribute=e,e.data&&(r.data=e.data),n[t]=r,s++}c.attributes=n,c.attributesNum=s,c.index=e}(v,y)}else{const t=!0===l.wireframe;c.geometry===v.id&&c.program===u.id&&c.wireframe===t||(c.geometry=v.id,c.program=u.id,c.wireframe=t,x=!0)}!0===s.isInstancedMesh&&(x=!0),null!==y&&n.update(y,t.ELEMENT_ARRAY_BUFFER),x&&(!function(s,r,o,a){if(!1===i.isWebGL2&&(s.isInstancedMesh||a.isInstancedBufferGeometry)&&null===e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"))return;p();const l=a.attributes,c=o.getAttributes(),h=r.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let r=l[e];if(void 0===r&&(\\\\\\\"instanceMatrix\\\\\\\"===e&&s.instanceMatrix&&(r=s.instanceMatrix),\\\\\\\"instanceColor\\\\\\\"===e&&s.instanceColor&&(r=s.instanceColor)),void 0!==r){const e=r.normalized,o=r.itemSize,l=n.get(r);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(r.isInterleavedBufferAttribute){const n=r.data,l=n.stride,d=r.offset;if(n&&n.isInstancedInterleavedBuffer){for(let t=0;t<i.locationSize;t++)m(i.location+t,n.meshPerAttribute);!0!==s.isInstancedMesh&&void 0===a._maxInstanceCount&&(a._maxInstanceCount=n.meshPerAttribute*n.count)}else for(let t=0;t<i.locationSize;t++)_(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,c);for(let t=0;t<i.locationSize;t++)g(i.location+t,o/i.locationSize,h,e,l*u,(d+o/i.locationSize*t)*u)}else{if(r.isInstancedBufferAttribute){for(let t=0;t<i.locationSize;t++)m(i.location+t,r.meshPerAttribute);!0!==s.isInstancedMesh&&void 0===a._maxInstanceCount&&(a._maxInstanceCount=r.meshPerAttribute*r.count)}else for(let t=0;t<i.locationSize;t++)_(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,c);for(let t=0;t<i.locationSize;t++)g(i.location+t,o/i.locationSize,h,e,o*u,o/i.locationSize*t*u)}}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i.location,n);break;case 3:t.vertexAttrib3fv(i.location,n);break;case 4:t.vertexAttrib4fv(i.location,n);break;default:t.vertexAttrib1fv(i.location,n)}}}}f()}(s,l,u,v),null!==y&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,n.get(y).buffer))},reset:v,resetDefaultState:y,dispose:function(){v();for(const t in a){const e=a[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete a[t]}},releaseStatesOfGeometry:function(t){if(void 0===a[t.id])return;const e=a[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete a[t.id]},releaseStatesOfProgram:function(t){for(const e in a){const n=a[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:_,disableUnusedAttributes:f}}function q(t,e,n,i){const s=i.isWebGL2;let r;this.setMode=function(t){r=t},this.render=function(e,i){t.drawArrays(r,e,i),n.update(i,r,1)},this.renderInstances=function(i,o,a){if(0===a)return;let l,c;if(s)l=t,c=\\\\\\\"drawArraysInstanced\\\\\\\";else if(l=e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"),c=\\\\\\\"drawArraysInstancedANGLE\\\\\\\",null===l)return void console.error(\\\\\\\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\\\\\\\");l[c](r,i,o,a),n.update(o,r,a)}}function X(t,e,n){let i;function s(e){if(\\\\\\\"highp\\\\\\\"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\\\\\\\"highp\\\\\\\";e=\\\\\\\"mediump\\\\\\\"}return\\\\\\\"mediump\\\\\\\"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\\\\\\\"mediump\\\\\\\":\\\\\\\"lowp\\\\\\\"}const r=\\\\\\\"undefined\\\\\\\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||\\\\\\\"undefined\\\\\\\"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let o=void 0!==n.precision?n.precision:\\\\\\\"highp\\\\\\\";const a=s(o);a!==o&&(console.warn(\\\\\\\"THREE.WebGLRenderer:\\\\\\\",o,\\\\\\\"not supported, using\\\\\\\",a,\\\\\\\"instead.\\\\\\\"),o=a);const l=r||e.has(\\\\\\\"WEBGL_draw_buffers\\\\\\\"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),_=t.getParameter(t.MAX_VERTEX_ATTRIBS),m=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),f=t.getParameter(t.MAX_VARYING_VECTORS),g=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),v=u>0,y=r||e.has(\\\\\\\"OES_texture_float\\\\\\\");return{isWebGL2:r,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\")){const n=e.get(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:s,precision:o,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:_,maxVertexUniforms:m,maxVaryings:f,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:r?t.getParameter(t.MAX_SAMPLES):0}}H.physical={uniforms:R([H.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new d.a(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenTint:{value:new D.a(0)},sheenRoughness:{value:0},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new d.a},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationTint:{value:new D.a(0)},specularIntensity:{value:0},specularIntensityMap:{value:null},specularTint:{value:new D.a(1,1,1)},specularTintMap:{value:null}}]),vertexShader:U.meshphysical_vert,fragmentShader:U.meshphysical_frag};var Y=n(31);function $(t){const e=this;let n=null,i=0,s=!1,r=!1;const o=new Y.a,a=new G.a,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,s){const r=null!==t?t.length:0;let c=null;if(0!==r){if(c=l.value,!0!==s||null===c){const e=i+4*r,s=n.matrixWorldInverse;a.getNormalMatrix(s),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==r;++e,n+=4)o.copy(t[e]).applyMatrix4(s,a),o.normal.toArray(c,n),c[n+3]=o.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=r,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,r){const o=0!==t.length||e||0!==i||s;return s=e,n=h(t,r,0),i=t.length,o},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1,c()},this.setState=function(e,o,a){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,_=t.get(e);if(!s||null===u||0===u.length||r&&!p)r?h(null):c();else{const t=r?0:i,e=4*t;let s=_.clippingState||null;l.value=s,s=h(u,o,e,a);for(let t=0;t!==e;++t)s[t]=n[t];_.clippingState=s,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}var J=n(15),Z=n(23);class K extends J.a{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new _.a(0,0,t,e),this.scissorTest=!1,this.viewport=new _.a(0,0,t,e),this.texture=new Z.a(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.internalFormat=void 0!==n.internalFormat?n.internalFormat:null,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:w.V,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}K.prototype.isWebGLRenderTarget=!0;var Q=n(10),tt=n(30);const et=90;class nt extends Q.a{constructor(t,e,n){if(super(),this.type=\\\\\\\"CubeCamera\\\\\\\",!0!==n.isWebGLCubeRenderTarget)return void console.error(\\\\\\\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\\\\\\\");this.renderTarget=n;const i=new tt.a(et,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new p.a(1,0,0)),this.add(i);const s=new tt.a(et,1,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new p.a(-1,0,0)),this.add(s);const r=new tt.a(et,1,t,e);r.layers=this.layers,r.up.set(0,0,1),r.lookAt(new p.a(0,1,0)),this.add(r);const o=new tt.a(et,1,t,e);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(new p.a(0,-1,0)),this.add(o);const a=new tt.a(et,1,t,e);a.layers=this.layers,a.up.set(0,-1,0),a.lookAt(new p.a(0,0,1)),this.add(a);const l=new tt.a(et,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new p.a(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,s,r,o,a,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,r),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,a),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class it extends Z.a{constructor(t,e,n,i,s,r,o,a,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:w.o,n,i,s,r,o,a,l,c),this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}it.prototype.isCubeTexture=!0;class st extends K{constructor(t,e,n){Number.isInteger(e)&&(console.warn(\\\\\\\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\\\\\\\"),e=n),super(t,t,e),e=e||{},this.texture=new it(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:w.V,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=w.Ib,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec3 vWorldDirection;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvWorldDirection = transformDirection( position, modelMatrix );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <begin_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <project_vertex>\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D tEquirect;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec3 vWorldDirection;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t#include <common>\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec3 direction = normalize( vWorldDirection );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 sampleUV = equirectUv( direction );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\\\\"},i=new N(5,5,5),s=new F({name:\\\\\\\"CubemapFromEquirect\\\\\\\",uniforms:P(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:w.i,blending:w.ub});s.uniforms.tEquirect.value=e;const r=new B.a(i,s),o=e.minFilter;e.minFilter===w.Y&&(e.minFilter=w.V);return new nt(1,10,this).update(t,r),e.minFilter=o,r.geometry.dispose(),r.material.dispose(),this}clear(t,e,n,i){const s=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,n,i);t.setRenderTarget(s)}}function rt(t){let e=new WeakMap;function n(t,e){return e===w.D?t.mapping=w.o:e===w.E&&(t.mapping=w.p),t}function i(t){const n=t.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",i);const s=e.get(n);void 0!==s&&(e.delete(n),s.dispose())}return{get:function(s){if(s&&s.isTexture&&!1===s.isRenderTargetTexture){const r=s.mapping;if(r===w.D||r===w.E){if(e.has(s)){return n(e.get(s).texture,s.mapping)}{const r=s.image;if(r&&r.height>0){const o=t.getRenderTarget(),a=new st(r.height/2);return a.fromEquirectangularTexture(t,s),e.set(s,a),t.setRenderTarget(o),s.addEventListener(\\\\\\\"dispose\\\\\\\",i),n(a.texture,s.mapping)}return null}}}return s},dispose:function(){e=new WeakMap}}}st.prototype.isWebGLCubeRenderTarget=!0;var ot=n(37);class at extends F{constructor(t){super(t),this.type=\\\\\\\"RawShaderMaterial\\\\\\\"}}at.prototype.isRawShaderMaterial=!0;var lt=n(29);const ct=Math.pow(2,8),ht=[.125,.215,.35,.446,.526,.582],ut=5+ht.length,dt=20,pt={[w.U]:0,[w.ld]:1,[w.gc]:2,[w.lc]:3,[w.kc]:4,[w.fc]:5,[w.J]:6},_t=new ot.a,{_lodPlanes:mt,_sizeLods:ft,_sigmas:gt}=Mt(),vt=new D.a;let yt=null;const xt=(1+Math.sqrt(5))/2,bt=1/xt,wt=[new p.a(1,1,1),new p.a(-1,1,1),new p.a(1,1,-1),new p.a(-1,1,-1),new p.a(0,xt,bt),new p.a(0,xt,-bt),new p.a(bt,0,xt),new p.a(-bt,0,xt),new p.a(xt,bt,0),new p.a(-xt,bt,0)];class Tt{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._blurMaterial=function(t){const e=new Float32Array(t),n=new p.a(0,1,0);return new at({name:\\\\\\\"SphericalGaussianBlur\\\\\\\",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n},inputEncoding:{value:pt[w.U]},outputEncoding:{value:pt[w.U]}},vertexShader:Lt(),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${Ot()}\\\\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:w.ub,depthTest:!1,depthWrite:!1})}(dt),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){yt=this._renderer.getRenderTarget();const s=this._allocateTargets();return this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=Nt(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=Ct(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t<mt.length;t++)mt[t].dispose()}_cleanup(t){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(yt),t.scissorTest=!1,St(t,0,0,t.width,t.height)}_fromTexture(t){yt=this._renderer.getRenderTarget();const e=this._allocateTargets(t);return this._textureToCubeUV(t,e),this._applyPMREM(e),this._cleanup(e),e}_allocateTargets(t){const e={magFilter:w.ob,minFilter:w.ob,generateMipmaps:!1,type:w.Zc,format:w.hc,encoding:At(t)?t.encoding:w.gc,depthBuffer:!1},n=Et(e);return n.depthBuffer=!t,this._pingPongRenderTarget=Et(e),n}_compileMaterial(t){const e=new B.a(mt[0],t);this._renderer.compile(e,_t)}_sceneToCubeUV(t,e,n,i){const s=new tt.a(90,1,e,n),r=[1,-1,1,1,1,1],o=[1,1,1,-1,-1,-1],a=this._renderer,l=a.autoClear,c=a.outputEncoding,h=a.toneMapping;a.getClearColor(vt),a.toneMapping=w.vb,a.outputEncoding=w.U,a.autoClear=!1;const u=new lt.a({name:\\\\\\\"PMREM.Background\\\\\\\",side:w.i,depthWrite:!1,depthTest:!1}),d=new B.a(new N,u);let p=!1;const _=t.background;_?_.isColor&&(u.color.copy(_),t.background=null,p=!0):(u.color.copy(vt),p=!0);for(let e=0;e<6;e++){const n=e%3;0==n?(s.up.set(0,r[e],0),s.lookAt(o[e],0,0)):1==n?(s.up.set(0,0,r[e]),s.lookAt(0,o[e],0)):(s.up.set(0,r[e],0),s.lookAt(0,0,o[e])),St(i,n*ct,e>2?ct:0,ct,ct),a.setRenderTarget(i),p&&a.render(d,s),a.render(t,s)}d.geometry.dispose(),d.material.dispose(),a.toneMapping=h,a.outputEncoding=c,a.autoClear=l,t.background=_}_setEncoding(t,e){!0===this._renderer.capabilities.isWebGL2&&e.format===w.Ib&&e.type===w.Zc&&e.encoding===w.ld?t.value=pt[w.U]:t.value=pt[e.encoding]}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=Nt()):null==this._equirectShader&&(this._equirectShader=Ct());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,s=new B.a(mt[0],i),r=i.uniforms;r.envMap.value=t,t.isCubeTexture||r.texelSize.value.set(1/t.image.width,1/t.image.height),this._setEncoding(r.inputEncoding,t),this._setEncoding(r.outputEncoding,e.texture),St(e,0,0,3*ct,2*ct),n.setRenderTarget(e),n.render(s,_t)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;e<ut;e++){const n=Math.sqrt(gt[e]*gt[e]-gt[e-1]*gt[e-1]),i=wt[(e-1)%wt.length];this._blur(t,e-1,e,n,i)}e.autoClear=n}_blur(t,e,n,i,s){const r=this._pingPongRenderTarget;this._halfBlur(t,r,e,n,i,\\\\\\\"latitudinal\\\\\\\",s),this._halfBlur(r,t,n,n,i,\\\\\\\"longitudinal\\\\\\\",s)}_halfBlur(t,e,n,i,s,r,o){const a=this._renderer,l=this._blurMaterial;\\\\\\\"latitudinal\\\\\\\"!==r&&\\\\\\\"longitudinal\\\\\\\"!==r&&console.error(\\\\\\\"blur direction must be either latitudinal or longitudinal!\\\\\\\");const c=new B.a(mt[i],l),h=l.uniforms,u=ft[n]-1,d=isFinite(s)?Math.PI/(2*u):2*Math.PI/39,p=s/d,_=isFinite(s)?1+Math.floor(3*p):dt;_>dt&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${_} samples when the maximum is set to 20`);const m=[];let f=0;for(let t=0;t<dt;++t){const e=t/p,n=Math.exp(-e*e/2);m.push(n),0==t?f+=n:t<_&&(f+=2*n)}for(let t=0;t<m.length;t++)m[t]=m[t]/f;h.envMap.value=t.texture,h.samples.value=_,h.weights.value=m,h.latitudinal.value=\\\\\\\"latitudinal\\\\\\\"===r,o&&(h.poleAxis.value=o),h.dTheta.value=d,h.mipInt.value=8-n,this._setEncoding(h.inputEncoding,t.texture),this._setEncoding(h.outputEncoding,t.texture);const g=ft[i];St(e,3*Math.max(0,ct-2*g),(0===i?0:2*ct)+2*g*(i>4?i-8+4:0),3*g,2*g),a.setRenderTarget(e),a.render(c,_t)}}function At(t){return void 0!==t&&t.type===w.Zc&&(t.encoding===w.U||t.encoding===w.ld||t.encoding===w.J)}function Mt(){const t=[],e=[],n=[];let i=8;for(let s=0;s<ut;s++){const r=Math.pow(2,i);e.push(r);let o=1/r;s>4?o=ht[s-8+4-1]:0==s&&(o=0),n.push(o);const a=1/(r-1),l=-a/2,c=1+a/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,_=2,m=1,f=new Float32Array(p*d*u),g=new Float32Array(_*d*u),v=new Float32Array(m*d*u);for(let t=0;t<u;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];f.set(i,p*d*t),g.set(h,_*d*t);const s=[t,t,t,t,t,t];v.set(s,m*d*t)}const y=new S.a;y.setAttribute(\\\\\\\"position\\\\\\\",new C.a(f,p)),y.setAttribute(\\\\\\\"uv\\\\\\\",new C.a(g,_)),y.setAttribute(\\\\\\\"faceIndex\\\\\\\",new C.a(v,m)),t.push(y),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function Et(t){const e=new K(3*ct,3*ct,t);return e.texture.mapping=w.q,e.texture.name=\\\\\\\"PMREM.cubeUv\\\\\\\",e.scissorTest=!0,e}function St(t,e,n,i,s){t.viewport.set(e,n,i,s),t.scissor.set(e,n,i,s)}function Ct(){const t=new d.a(1,1);return new at({name:\\\\\\\"EquirectangularToCubeUV\\\\\\\",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:pt[w.U]},outputEncoding:{value:pt[w.U]}},vertexShader:Lt(),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${Ot()}\\\\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:w.ub,depthTest:!1,depthWrite:!1})}function Nt(){return new at({name:\\\\\\\"CubemapToCubeUV\\\\\\\",uniforms:{envMap:{value:null},inputEncoding:{value:pt[w.U]},outputEncoding:{value:pt[w.U]}},vertexShader:Lt(),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${Ot()}\\\\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`,blending:w.ub,depthTest:!1,depthWrite:!1})}function Lt(){return\\\\\\\"\\\\n\\\\n\\\\t\\\\tprecision mediump float;\\\\n\\\\t\\\\tprecision mediump int;\\\\n\\\\n\\\\t\\\\tattribute vec3 position;\\\\n\\\\t\\\\tattribute vec2 uv;\\\\n\\\\t\\\\tattribute float faceIndex;\\\\n\\\\n\\\\t\\\\tvarying vec3 vOutputDirection;\\\\n\\\\n\\\\t\\\\t// RH coordinate system; PMREM face-indexing convention\\\\n\\\\t\\\\tvec3 getDirection( vec2 uv, float face ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = 2.0 * uv - 1.0;\\\\n\\\\n\\\\t\\\\t\\\\tvec3 direction = vec3( uv, 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\tif ( face == 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 1.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.xzy;\\\\n\\\\t\\\\t\\\\t\\\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 2.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 3.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.zyx;\\\\n\\\\t\\\\t\\\\t\\\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 4.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.xzy;\\\\n\\\\t\\\\t\\\\t\\\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 5.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\treturn direction;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvOutputDirection = getDirection( uv, faceIndex );\\\\n\\\\t\\\\t\\\\tgl_Position = vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\\\\"}function Ot(){return\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform int inputEncoding;\\\\n\\\\t\\\\tuniform int outputEncoding;\\\\n\\\\n\\\\t\\\\t#include <encodings_pars_fragment>\\\\n\\\\n\\\\t\\\\tvec4 inputTexelToLinear( vec4 value ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( inputEncoding == 0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn value;\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 1 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn sRGBToLinear( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 2 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBEToLinear( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 3 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBMToLinear( value, 7.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 4 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBMToLinear( value, 16.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 5 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBDToLinear( value, 256.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn GammaToLinear( value, 2.2 );\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec4 linearToOutputTexel( vec4 value ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( outputEncoding == 0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn value;\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 1 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearTosRGB( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 2 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBE( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 3 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBM( value, 7.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 4 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBM( value, 16.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 5 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBD( value, 256.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToGamma( value, 2.2 );\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec4 envMapTexelToLinear( vec4 color ) {\\\\n\\\\n\\\\t\\\\t\\\\treturn inputTexelToLinear( color );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\\\\"}function Pt(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",i);const s=e.get(n);void 0!==s&&(e.delete(n),s.dispose())}return{get:function(s){if(s&&s.isTexture&&!1===s.isRenderTargetTexture){const r=s.mapping,o=r===w.D||r===w.E,a=r===w.o||r===w.p;if(o||a){if(e.has(s))return e.get(s).texture;{const r=s.image;if(o&&r&&r.height>0||a&&r&&function(t){let e=0;const n=6;for(let i=0;i<n;i++)void 0!==t[i]&&e++;return e===n}(r)){const r=t.getRenderTarget();null===n&&(n=new Tt(t));const a=o?n.fromEquirectangular(s):n.fromCubemap(s);return e.set(s,a),t.setRenderTarget(r),s.addEventListener(\\\\\\\"dispose\\\\\\\",i),a.texture}return null}}}return s},dispose:function(){e=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function Rt(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case\\\\\\\"WEBGL_depth_texture\\\\\\\":i=t.getExtension(\\\\\\\"WEBGL_depth_texture\\\\\\\")||t.getExtension(\\\\\\\"MOZ_WEBGL_depth_texture\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_WEBGL_depth_texture\\\\\\\");break;case\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\":i=t.getExtension(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\")||t.getExtension(\\\\\\\"MOZ_EXT_texture_filter_anisotropic\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_EXT_texture_filter_anisotropic\\\\\\\");break;case\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\":i=t.getExtension(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\")||t.getExtension(\\\\\\\"MOZ_WEBGL_compressed_texture_s3tc\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_WEBGL_compressed_texture_s3tc\\\\\\\");break;case\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\":i=t.getExtension(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_WEBGL_compressed_texture_pvrtc\\\\\\\");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n(\\\\\\\"EXT_color_buffer_float\\\\\\\"):(n(\\\\\\\"WEBGL_depth_texture\\\\\\\"),n(\\\\\\\"OES_texture_float\\\\\\\"),n(\\\\\\\"OES_texture_half_float\\\\\\\"),n(\\\\\\\"OES_texture_half_float_linear\\\\\\\"),n(\\\\\\\"OES_standard_derivatives\\\\\\\"),n(\\\\\\\"OES_element_index_uint\\\\\\\"),n(\\\\\\\"OES_vertex_array_object\\\\\\\"),n(\\\\\\\"ANGLE_instanced_arrays\\\\\\\")),n(\\\\\\\"OES_texture_float_linear\\\\\\\"),n(\\\\\\\"EXT_color_buffer_half_float\\\\\\\")},get:function(t){const e=n(t);return null===e&&console.warn(\\\\\\\"THREE.WebGLRenderer: \\\\\\\"+t+\\\\\\\" extension not supported.\\\\\\\"),e}}}var It=n(20);function Ft(t,e,n,i){const s={},r=new WeakMap;function o(t){const a=t.target;null!==a.index&&e.remove(a.index);for(const t in a.attributes)e.remove(a.attributes[t]);a.removeEventListener(\\\\\\\"dispose\\\\\\\",o),delete s[a.id];const l=r.get(a);l&&(e.remove(l),r.delete(a)),i.releaseStatesOfGeometry(a),!0===a.isInstancedBufferGeometry&&delete a._maxInstanceCount,n.memory.geometries--}function a(t){const n=[],i=t.index,s=t.attributes.position;let o=0;if(null!==i){const t=i.array;o=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],s=t[e+1],r=t[e+2];n.push(i,s,s,r,r,i)}}else{const t=s.array;o=s.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,s=e+2;n.push(t,i,i,s,s,t)}}const a=new(Object(It.a)(n)>65535?C.i:C.h)(n,1);a.version=o;const l=r.get(t);l&&e.remove(l),r.set(t,a)}return{get:function(t,e){return!0===s[e.id]||(e.addEventListener(\\\\\\\"dispose\\\\\\\",o),s[e.id]=!0,n.memory.geometries++),e},update:function(n){const i=n.attributes;for(const n in i)e.update(i[n],t.ARRAY_BUFFER);const s=n.morphAttributes;for(const n in s){const i=s[n];for(let n=0,s=i.length;n<s;n++)e.update(i[n],t.ARRAY_BUFFER)}},getWireframeAttribute:function(t){const e=r.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&a(t)}else a(t);return r.get(t)}}}function Dt(t,e,n,i){const s=i.isWebGL2;let r,o,a;this.setMode=function(t){r=t},this.setIndex=function(t){o=t.type,a=t.bytesPerElement},this.render=function(e,i){t.drawElements(r,i,o,e*a),n.update(i,r,1)},this.renderInstances=function(i,l,c){if(0===c)return;let h,u;if(s)h=t,u=\\\\\\\"drawElementsInstanced\\\\\\\";else if(h=e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"),u=\\\\\\\"drawElementsInstancedANGLE\\\\\\\",null===h)return void console.error(\\\\\\\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\\\\\\\");h[u](r,l,o,i*a,c),n.update(l,r,c)}}function Bt(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(n,i,s){switch(e.calls++,i){case t.TRIANGLES:e.triangles+=s*(n/3);break;case t.LINES:e.lines+=s*(n/2);break;case t.LINE_STRIP:e.lines+=s*(n-1);break;case t.LINE_LOOP:e.lines+=s*n;break;case t.POINTS:e.points+=s*n;break;default:console.error(\\\\\\\"THREE.WebGLInfo: Unknown draw mode:\\\\\\\",i)}}}}class zt extends Z.a{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=w.ob,this.minFilter=w.ob,this.wrapR=w.n,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}function kt(t,e){return t[0]-e[0]}function Ut(t,e){return Math.abs(e[1])-Math.abs(t[1])}function Gt(t,e){let n=1;const i=e.isInterleavedBufferAttribute?e.data.array:e.array;i instanceof Int8Array?n=127:i instanceof Int16Array?n=32767:i instanceof Int32Array?n=2147483647:console.error(\\\\\\\"THREE.WebGLMorphtargets: Unsupported morph attribute data type: \\\\\\\",i),t.divideScalar(n)}function Vt(t,e,n){const i={},s=new Float32Array(8),r=new WeakMap,o=new p.a,a=[];for(let t=0;t<8;t++)a[t]=[t,0];return{update:function(l,c,h,u){const p=l.morphTargetInfluences;if(!0===e.isWebGL2){const i=c.morphAttributes.position.length;let s=r.get(c);if(void 0===s||s.count!==i){void 0!==s&&s.texture.dispose();const t=void 0!==c.morphAttributes.normal,n=c.morphAttributes.position,a=c.morphAttributes.normal||[],l=!0===t?2:1;let h=c.attributes.position.count*l,u=1;h>e.maxTextureSize&&(u=Math.ceil(h/e.maxTextureSize),h=e.maxTextureSize);const p=new Float32Array(h*u*4*i),_=new zt(p,h,u,i);_.format=w.Ib,_.type=w.G;const m=4*l;for(let e=0;e<i;e++){const i=n[e],s=a[e],r=h*u*4*e;for(let e=0;e<i.count;e++){o.fromBufferAttribute(i,e),!0===i.normalized&&Gt(o,i);const n=e*m;p[r+n+0]=o.x,p[r+n+1]=o.y,p[r+n+2]=o.z,p[r+n+3]=0,!0===t&&(o.fromBufferAttribute(s,e),!0===s.normalized&&Gt(o,s),p[r+n+4]=o.x,p[r+n+5]=o.y,p[r+n+6]=o.z,p[r+n+7]=0)}}s={count:i,texture:_,size:new d.a(h,u)},r.set(c,s)}let a=0;for(let t=0;t<p.length;t++)a+=p[t];const l=c.morphTargetsRelative?1:1-a;u.getUniforms().setValue(t,\\\\\\\"morphTargetBaseInfluence\\\\\\\",l),u.getUniforms().setValue(t,\\\\\\\"morphTargetInfluences\\\\\\\",p),u.getUniforms().setValue(t,\\\\\\\"morphTargetsTexture\\\\\\\",s.texture,n),u.getUniforms().setValue(t,\\\\\\\"morphTargetsTextureSize\\\\\\\",s.size)}else{const e=void 0===p?0:p.length;let n=i[c.id];if(void 0===n||n.length!==e){n=[];for(let t=0;t<e;t++)n[t]=[t,0];i[c.id]=n}for(let t=0;t<e;t++){const e=n[t];e[0]=t,e[1]=p[t]}n.sort(Ut);for(let t=0;t<8;t++)t<e&&n[t][1]?(a[t][0]=n[t][0],a[t][1]=n[t][1]):(a[t][0]=Number.MAX_SAFE_INTEGER,a[t][1]=0);a.sort(kt);const r=c.morphAttributes.position,o=c.morphAttributes.normal;let l=0;for(let t=0;t<8;t++){const e=a[t],n=e[0],i=e[1];n!==Number.MAX_SAFE_INTEGER&&i?(r&&c.getAttribute(\\\\\\\"morphTarget\\\\\\\"+t)!==r[n]&&c.setAttribute(\\\\\\\"morphTarget\\\\\\\"+t,r[n]),o&&c.getAttribute(\\\\\\\"morphNormal\\\\\\\"+t)!==o[n]&&c.setAttribute(\\\\\\\"morphNormal\\\\\\\"+t,o[n]),s[t]=i,l+=i):(r&&!0===c.hasAttribute(\\\\\\\"morphTarget\\\\\\\"+t)&&c.deleteAttribute(\\\\\\\"morphTarget\\\\\\\"+t),o&&!0===c.hasAttribute(\\\\\\\"morphNormal\\\\\\\"+t)&&c.deleteAttribute(\\\\\\\"morphNormal\\\\\\\"+t),s[t]=0)}const h=c.morphTargetsRelative?1:1-l;u.getUniforms().setValue(t,\\\\\\\"morphTargetBaseInfluence\\\\\\\",h),u.getUniforms().setValue(t,\\\\\\\"morphTargetInfluences\\\\\\\",s)}}}}zt.prototype.isDataTexture2DArray=!0;class Ht extends K{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}function jt(t,e,n,i){let s=new WeakMap;function r(t){const e=t.target;e.removeEventListener(\\\\\\\"dispose\\\\\\\",r),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(o){const a=i.render.frame,l=o.geometry,c=e.get(o,l);return s.get(c)!==a&&(e.update(c),s.set(c,a)),o.isInstancedMesh&&(!1===o.hasEventListener(\\\\\\\"dispose\\\\\\\",r)&&o.addEventListener(\\\\\\\"dispose\\\\\\\",r),n.update(o.instanceMatrix,t.ARRAY_BUFFER),null!==o.instanceColor&&n.update(o.instanceColor,t.ARRAY_BUFFER)),c},dispose:function(){s=new WeakMap}}}Ht.prototype.isWebGLMultisampleRenderTarget=!0;class Wt extends Z.a{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=w.ob,this.minFilter=w.ob,this.wrapR=w.n,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Wt.prototype.isDataTexture3D=!0;const qt=new Z.a,Xt=new zt,Yt=new Wt,$t=new it,Jt=[],Zt=[],Kt=new Float32Array(16),Qt=new Float32Array(9),te=new Float32Array(4);function ee(t,e,n){const i=t[0];if(i<=0||i>0)return t;const s=e*n;let r=Jt[s];if(void 0===r&&(r=new Float32Array(s),Jt[s]=r),0!==e){i.toArray(r,0);for(let i=1,s=0;i!==e;++i)s+=n,t[i].toArray(r,s)}return r}function ne(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function ie(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function se(t,e){let n=Zt[e];void 0===n&&(n=new Int32Array(e),Zt[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function re(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function oe(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(ne(n,e))return;t.uniform2fv(this.addr,e),ie(n,e)}}function ae(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(ne(n,e))return;t.uniform3fv(this.addr,e),ie(n,e)}}function le(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(ne(n,e))return;t.uniform4fv(this.addr,e),ie(n,e)}}function ce(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(ne(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),ie(n,e)}else{if(ne(n,i))return;te.set(i),t.uniformMatrix2fv(this.addr,!1,te),ie(n,i)}}function he(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(ne(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),ie(n,e)}else{if(ne(n,i))return;Qt.set(i),t.uniformMatrix3fv(this.addr,!1,Qt),ie(n,i)}}function ue(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(ne(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),ie(n,e)}else{if(ne(n,i))return;Kt.set(i),t.uniformMatrix4fv(this.addr,!1,Kt),ie(n,i)}}function de(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function pe(t,e){const n=this.cache;ne(n,e)||(t.uniform2iv(this.addr,e),ie(n,e))}function _e(t,e){const n=this.cache;ne(n,e)||(t.uniform3iv(this.addr,e),ie(n,e))}function me(t,e){const n=this.cache;ne(n,e)||(t.uniform4iv(this.addr,e),ie(n,e))}function fe(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function ge(t,e){const n=this.cache;ne(n,e)||(t.uniform2uiv(this.addr,e),ie(n,e))}function ve(t,e){const n=this.cache;ne(n,e)||(t.uniform3uiv(this.addr,e),ie(n,e))}function ye(t,e){const n=this.cache;ne(n,e)||(t.uniform4uiv(this.addr,e),ie(n,e))}function xe(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.safeSetTexture2D(e||qt,s)}function be(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.setTexture3D(e||Yt,s)}function we(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.safeSetTextureCube(e||$t,s)}function Te(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.setTexture2DArray(e||Xt,s)}function Ae(t,e){t.uniform1fv(this.addr,e)}function Me(t,e){const n=ee(e,this.size,2);t.uniform2fv(this.addr,n)}function Ee(t,e){const n=ee(e,this.size,3);t.uniform3fv(this.addr,n)}function Se(t,e){const n=ee(e,this.size,4);t.uniform4fv(this.addr,n)}function Ce(t,e){const n=ee(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Ne(t,e){const n=ee(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function Le(t,e){const n=ee(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Oe(t,e){t.uniform1iv(this.addr,e)}function Pe(t,e){t.uniform2iv(this.addr,e)}function Re(t,e){t.uniform3iv(this.addr,e)}function Ie(t,e){t.uniform4iv(this.addr,e)}function Fe(t,e){t.uniform1uiv(this.addr,e)}function De(t,e){t.uniform2uiv(this.addr,e)}function Be(t,e){t.uniform3uiv(this.addr,e)}function ze(t,e){t.uniform4uiv(this.addr,e)}function ke(t,e,n){const i=e.length,s=se(n,i);t.uniform1iv(this.addr,s);for(let t=0;t!==i;++t)n.safeSetTexture2D(e[t]||qt,s[t])}function Ue(t,e,n){const i=e.length,s=se(n,i);t.uniform1iv(this.addr,s);for(let t=0;t!==i;++t)n.safeSetTextureCube(e[t]||$t,s[t])}function Ge(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return re;case 35664:return oe;case 35665:return ae;case 35666:return le;case 35674:return ce;case 35675:return he;case 35676:return ue;case 5124:case 35670:return de;case 35667:case 35671:return pe;case 35668:case 35672:return _e;case 35669:case 35673:return me;case 5125:return fe;case 36294:return ge;case 36295:return ve;case 36296:return ye;case 35678:case 36198:case 36298:case 36306:case 35682:return xe;case 35679:case 36299:case 36307:return be;case 35680:case 36300:case 36308:case 36293:return we;case 36289:case 36303:case 36311:case 36292:return Te}}(e.type)}function Ve(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return Ae;case 35664:return Me;case 35665:return Ee;case 35666:return Se;case 35674:return Ce;case 35675:return Ne;case 35676:return Le;case 5124:case 35670:return Oe;case 35667:case 35671:return Pe;case 35668:case 35672:return Re;case 35669:case 35673:return Ie;case 5125:return Fe;case 36294:return De;case 36295:return Be;case 36296:return ze;case 35678:case 36198:case 36298:case 36306:case 35682:return ke;case 35680:case 36300:case 36308:case 36293:return Ue}}(e.type)}function He(t){this.id=t,this.seq=[],this.map={}}Ve.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),ie(e,t)},He.prototype.setValue=function(t,e,n){const i=this.seq;for(let s=0,r=i.length;s!==r;++s){const r=i[s];r.setValue(t,e[r.id],n)}};const je=/(\\\\w+)(\\\\])?(\\\\[|\\\\.)?/g;function We(t,e){t.seq.push(e),t.map[e.id]=e}function qe(t,e,n){const i=t.name,s=i.length;for(je.lastIndex=0;;){const r=je.exec(i),o=je.lastIndex;let a=r[1];const l=\\\\\\\"]\\\\\\\"===r[2],c=r[3];if(l&&(a|=0),void 0===c||\\\\\\\"[\\\\\\\"===c&&o+2===s){We(n,void 0===c?new Ge(a,t,e):new Ve(a,t,e));break}{let t=n.map[a];void 0===t&&(t=new He(a),We(n,t)),n=t}}}function Xe(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);qe(n,t.getUniformLocation(e,n.name),this)}}function Ye(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}Xe.prototype.setValue=function(t,e,n,i){const s=this.map[e];void 0!==s&&s.setValue(t,n,i)},Xe.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},Xe.upload=function(t,e,n,i){for(let s=0,r=e.length;s!==r;++s){const r=e[s],o=n[r.id];!1!==o.needsUpdate&&r.setValue(t,o.value,i)}},Xe.seqWithValue=function(t,e){const n=[];for(let i=0,s=t.length;i!==s;++i){const s=t[i];s.id in e&&n.push(s)}return n};let $e=0;function Je(t){switch(t){case w.U:return[\\\\\\\"Linear\\\\\\\",\\\\\\\"( value )\\\\\\\"];case w.ld:return[\\\\\\\"sRGB\\\\\\\",\\\\\\\"( value )\\\\\\\"];case w.gc:return[\\\\\\\"RGBE\\\\\\\",\\\\\\\"( value )\\\\\\\"];case w.lc:return[\\\\\\\"RGBM\\\\\\\",\\\\\\\"( value, 7.0 )\\\\\\\"];case w.kc:return[\\\\\\\"RGBM\\\\\\\",\\\\\\\"( value, 16.0 )\\\\\\\"];case w.fc:return[\\\\\\\"RGBD\\\\\\\",\\\\\\\"( value, 256.0 )\\\\\\\"];case w.J:return[\\\\\\\"Gamma\\\\\\\",\\\\\\\"( value, float( GAMMA_FACTOR ) )\\\\\\\"];case w.bb:return[\\\\\\\"LogLuv\\\\\\\",\\\\\\\"( value )\\\\\\\"];default:return console.warn(\\\\\\\"THREE.WebGLProgram: Unsupported encoding:\\\\\\\",t),[\\\\\\\"Linear\\\\\\\",\\\\\\\"( value )\\\\\\\"]}}function Ze(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS),s=t.getShaderInfoLog(e).trim();return i&&\\\\\\\"\\\\\\\"===s?\\\\\\\"\\\\\\\":n.toUpperCase()+\\\\\\\"\\\\n\\\\n\\\\\\\"+s+\\\\\\\"\\\\n\\\\n\\\\\\\"+function(t){const e=t.split(\\\\\\\"\\\\n\\\\\\\");for(let t=0;t<e.length;t++)e[t]=t+1+\\\\\\\": \\\\\\\"+e[t];return e.join(\\\\\\\"\\\\n\\\\\\\")}(t.getShaderSource(e))}function Ke(t,e){const n=Je(e);return\\\\\\\"vec4 \\\\\\\"+t+\\\\\\\"( vec4 value ) { return \\\\\\\"+n[0]+\\\\\\\"ToLinear\\\\\\\"+n[1]+\\\\\\\"; }\\\\\\\"}function Qe(t,e){const n=Je(e);return\\\\\\\"vec4 \\\\\\\"+t+\\\\\\\"( vec4 value ) { return LinearTo\\\\\\\"+n[0]+n[1]+\\\\\\\"; }\\\\\\\"}function tn(t,e){let n;switch(e){case w.ab:n=\\\\\\\"Linear\\\\\\\";break;case w.vc:n=\\\\\\\"Reinhard\\\\\\\";break;case w.m:n=\\\\\\\"OptimizedCineon\\\\\\\";break;case w.a:n=\\\\\\\"ACESFilmic\\\\\\\";break;case w.w:n=\\\\\\\"Custom\\\\\\\";break;default:console.warn(\\\\\\\"THREE.WebGLProgram: Unsupported toneMapping:\\\\\\\",e),n=\\\\\\\"Linear\\\\\\\"}return\\\\\\\"vec3 \\\\\\\"+t+\\\\\\\"( vec3 color ) { return \\\\\\\"+n+\\\\\\\"ToneMapping( color ); }\\\\\\\"}function en(t){return\\\\\\\"\\\\\\\"!==t}function nn(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function sn(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const rn=/^[ \\\\t]*#include +<([\\\\w\\\\d./]+)>/gm;function on(t){return t.replace(rn,an)}function an(t,e){const n=U[e];if(void 0===n)throw new Error(\\\\\\\"Can not resolve #include <\\\\\\\"+e+\\\\\\\">\\\\\\\");return on(n)}const ln=/#pragma unroll_loop[\\\\s]+?for \\\\( int i \\\\= (\\\\d+)\\\\; i < (\\\\d+)\\\\; i \\\\+\\\\+ \\\\) \\\\{([\\\\s\\\\S]+?)(?=\\\\})\\\\}/g,cn=/#pragma unroll_loop_start\\\\s+for\\\\s*\\\\(\\\\s*int\\\\s+i\\\\s*=\\\\s*(\\\\d+)\\\\s*;\\\\s*i\\\\s*<\\\\s*(\\\\d+)\\\\s*;\\\\s*i\\\\s*\\\\+\\\\+\\\\s*\\\\)\\\\s*{([\\\\s\\\\S]+?)}\\\\s+#pragma unroll_loop_end/g;function hn(t){return t.replace(cn,dn).replace(ln,un)}function un(t,e,n,i){return console.warn(\\\\\\\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\\\\\\\"),dn(t,e,n,i)}function dn(t,e,n,i){let s=\\\\\\\"\\\\\\\";for(let t=parseInt(e);t<parseInt(n);t++)s+=i.replace(/\\\\[\\\\s*i\\\\s*\\\\]/g,\\\\\\\"[ \\\\\\\"+t+\\\\\\\" ]\\\\\\\").replace(/UNROLLED_LOOP_INDEX/g,t);return s}function pn(t){let e=\\\\\\\"precision \\\\\\\"+t.precision+\\\\\\\" float;\\\\nprecision \\\\\\\"+t.precision+\\\\\\\" int;\\\\\\\";return\\\\\\\"highp\\\\\\\"===t.precision?e+=\\\\\\\"\\\\n#define HIGH_PRECISION\\\\\\\":\\\\\\\"mediump\\\\\\\"===t.precision?e+=\\\\\\\"\\\\n#define MEDIUM_PRECISION\\\\\\\":\\\\\\\"lowp\\\\\\\"===t.precision&&(e+=\\\\\\\"\\\\n#define LOW_PRECISION\\\\\\\"),e}function _n(t,e,n,i){const s=t.getContext(),r=n.defines;let o=n.vertexShader,a=n.fragmentShader;const l=function(t){let e=\\\\\\\"SHADOWMAP_TYPE_BASIC\\\\\\\";return t.shadowMapType===w.Fb?e=\\\\\\\"SHADOWMAP_TYPE_PCF\\\\\\\":t.shadowMapType===w.Gb?e=\\\\\\\"SHADOWMAP_TYPE_PCF_SOFT\\\\\\\":t.shadowMapType===w.gd&&(e=\\\\\\\"SHADOWMAP_TYPE_VSM\\\\\\\"),e}(n),c=function(t){let e=\\\\\\\"ENVMAP_TYPE_CUBE\\\\\\\";if(t.envMap)switch(t.envMapMode){case w.o:case w.p:e=\\\\\\\"ENVMAP_TYPE_CUBE\\\\\\\";break;case w.q:case w.r:e=\\\\\\\"ENVMAP_TYPE_CUBE_UV\\\\\\\"}return e}(n),h=function(t){let e=\\\\\\\"ENVMAP_MODE_REFLECTION\\\\\\\";if(t.envMap)switch(t.envMapMode){case w.p:case w.r:e=\\\\\\\"ENVMAP_MODE_REFRACTION\\\\\\\"}return e}(n),u=function(t){let e=\\\\\\\"ENVMAP_BLENDING_NONE\\\\\\\";if(t.envMap)switch(t.combine){case w.nb:e=\\\\\\\"ENVMAP_BLENDING_MULTIPLY\\\\\\\";break;case w.lb:e=\\\\\\\"ENVMAP_BLENDING_MIX\\\\\\\";break;case w.c:e=\\\\\\\"ENVMAP_BLENDING_ADD\\\\\\\"}return e}(n),d=t.gammaFactor>0?t.gammaFactor:1,p=n.isWebGL2?\\\\\\\"\\\\\\\":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||\\\\\\\"physical\\\\\\\"===t.shaderID?\\\\\\\"#extension GL_OES_standard_derivatives : enable\\\\\\\":\\\\\\\"\\\\\\\",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?\\\\\\\"#extension GL_EXT_frag_depth : enable\\\\\\\":\\\\\\\"\\\\\\\",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?\\\\\\\"#extension GL_EXT_draw_buffers : require\\\\\\\":\\\\\\\"\\\\\\\",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?\\\\\\\"#extension GL_EXT_shader_texture_lod : enable\\\\\\\":\\\\\\\"\\\\\\\"].filter(en).join(\\\\\\\"\\\\n\\\\\\\")}(n),_=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push(\\\\\\\"#define \\\\\\\"+n+\\\\\\\" \\\\\\\"+i)}return e.join(\\\\\\\"\\\\n\\\\\\\")}(r),m=s.createProgram();let f,g,v=n.glslVersion?\\\\\\\"#version \\\\\\\"+n.glslVersion+\\\\\\\"\\\\n\\\\\\\":\\\\\\\"\\\\\\\";n.isRawShaderMaterial?(f=[_].filter(en).join(\\\\\\\"\\\\n\\\\\\\"),f.length>0&&(f+=\\\\\\\"\\\\n\\\\\\\"),g=[p,_].filter(en).join(\\\\\\\"\\\\n\\\\\\\"),g.length>0&&(g+=\\\\\\\"\\\\n\\\\\\\")):(f=[pn(n),\\\\\\\"#define SHADER_NAME \\\\\\\"+n.shaderName,_,n.instancing?\\\\\\\"#define USE_INSTANCING\\\\\\\":\\\\\\\"\\\\\\\",n.instancingColor?\\\\\\\"#define USE_INSTANCING_COLOR\\\\\\\":\\\\\\\"\\\\\\\",n.supportsVertexTextures?\\\\\\\"#define VERTEX_TEXTURES\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"#define GAMMA_FACTOR \\\\\\\"+d,\\\\\\\"#define MAX_BONES \\\\\\\"+n.maxBones,n.useFog&&n.fog?\\\\\\\"#define USE_FOG\\\\\\\":\\\\\\\"\\\\\\\",n.useFog&&n.fogExp2?\\\\\\\"#define FOG_EXP2\\\\\\\":\\\\\\\"\\\\\\\",n.map?\\\\\\\"#define USE_MAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define USE_ENVMAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+h:\\\\\\\"\\\\\\\",n.lightMap?\\\\\\\"#define USE_LIGHTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.aoMap?\\\\\\\"#define USE_AOMAP\\\\\\\":\\\\\\\"\\\\\\\",n.emissiveMap?\\\\\\\"#define USE_EMISSIVEMAP\\\\\\\":\\\\\\\"\\\\\\\",n.bumpMap?\\\\\\\"#define USE_BUMPMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap?\\\\\\\"#define USE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.objectSpaceNormalMap?\\\\\\\"#define OBJECTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.tangentSpaceNormalMap?\\\\\\\"#define TANGENTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatMap?\\\\\\\"#define USE_CLEARCOATMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatRoughnessMap?\\\\\\\"#define USE_CLEARCOAT_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatNormalMap?\\\\\\\"#define USE_CLEARCOAT_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.displacementMap&&n.supportsVertexTextures?\\\\\\\"#define USE_DISPLACEMENTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularMap?\\\\\\\"#define USE_SPECULARMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularIntensityMap?\\\\\\\"#define USE_SPECULARINTENSITYMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularTintMap?\\\\\\\"#define USE_SPECULARTINTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.roughnessMap?\\\\\\\"#define USE_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.metalnessMap?\\\\\\\"#define USE_METALNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.alphaMap?\\\\\\\"#define USE_ALPHAMAP\\\\\\\":\\\\\\\"\\\\\\\",n.transmission?\\\\\\\"#define USE_TRANSMISSION\\\\\\\":\\\\\\\"\\\\\\\",n.transmissionMap?\\\\\\\"#define USE_TRANSMISSIONMAP\\\\\\\":\\\\\\\"\\\\\\\",n.thicknessMap?\\\\\\\"#define USE_THICKNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.vertexTangents?\\\\\\\"#define USE_TANGENT\\\\\\\":\\\\\\\"\\\\\\\",n.vertexColors?\\\\\\\"#define USE_COLOR\\\\\\\":\\\\\\\"\\\\\\\",n.vertexAlphas?\\\\\\\"#define USE_COLOR_ALPHA\\\\\\\":\\\\\\\"\\\\\\\",n.vertexUvs?\\\\\\\"#define USE_UV\\\\\\\":\\\\\\\"\\\\\\\",n.uvsVertexOnly?\\\\\\\"#define UVS_VERTEX_ONLY\\\\\\\":\\\\\\\"\\\\\\\",n.flatShading?\\\\\\\"#define FLAT_SHADED\\\\\\\":\\\\\\\"\\\\\\\",n.skinning?\\\\\\\"#define USE_SKINNING\\\\\\\":\\\\\\\"\\\\\\\",n.useVertexTexture?\\\\\\\"#define BONE_TEXTURE\\\\\\\":\\\\\\\"\\\\\\\",n.morphTargets?\\\\\\\"#define USE_MORPHTARGETS\\\\\\\":\\\\\\\"\\\\\\\",n.morphNormals&&!1===n.flatShading?\\\\\\\"#define USE_MORPHNORMALS\\\\\\\":\\\\\\\"\\\\\\\",n.morphTargets&&n.isWebGL2?\\\\\\\"#define MORPHTARGETS_TEXTURE\\\\\\\":\\\\\\\"\\\\\\\",n.morphTargets&&n.isWebGL2?\\\\\\\"#define MORPHTARGETS_COUNT \\\\\\\"+n.morphTargetsCount:\\\\\\\"\\\\\\\",n.doubleSided?\\\\\\\"#define DOUBLE_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.flipSided?\\\\\\\"#define FLIP_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define USE_SHADOWMAP\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define \\\\\\\"+l:\\\\\\\"\\\\\\\",n.sizeAttenuation?\\\\\\\"#define USE_SIZEATTENUATION\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer?\\\\\\\"#define USE_LOGDEPTHBUF\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\\\\\\\"#define USE_LOGDEPTHBUF_EXT\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"uniform mat4 modelMatrix;\\\\\\\",\\\\\\\"uniform mat4 modelViewMatrix;\\\\\\\",\\\\\\\"uniform mat4 projectionMatrix;\\\\\\\",\\\\\\\"uniform mat4 viewMatrix;\\\\\\\",\\\\\\\"uniform mat3 normalMatrix;\\\\\\\",\\\\\\\"uniform vec3 cameraPosition;\\\\\\\",\\\\\\\"uniform bool isOrthographic;\\\\\\\",\\\\\\\"#ifdef USE_INSTANCING\\\\\\\",\\\\\\\"\\\\tattribute mat4 instanceMatrix;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#ifdef USE_INSTANCING_COLOR\\\\\\\",\\\\\\\"\\\\tattribute vec3 instanceColor;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"attribute vec3 position;\\\\\\\",\\\\\\\"attribute vec3 normal;\\\\\\\",\\\\\\\"attribute vec2 uv;\\\\\\\",\\\\\\\"#ifdef USE_TANGENT\\\\\\\",\\\\\\\"\\\\tattribute vec4 tangent;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\\\\",\\\\\\\"\\\\tattribute vec4 color;\\\\\\\",\\\\\\\"#elif defined( USE_COLOR )\\\\\\\",\\\\\\\"\\\\tattribute vec3 color;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget0;\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget1;\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget2;\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget3;\\\\\\\",\\\\\\\"\\\\t#ifdef USE_MORPHNORMALS\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal0;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal1;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal2;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal3;\\\\\\\",\\\\\\\"\\\\t#else\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget4;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget5;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget6;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget7;\\\\\\\",\\\\\\\"\\\\t#endif\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#ifdef USE_SKINNING\\\\\\\",\\\\\\\"\\\\tattribute vec4 skinIndex;\\\\\\\",\\\\\\\"\\\\tattribute vec4 skinWeight;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"\\\\n\\\\\\\"].filter(en).join(\\\\\\\"\\\\n\\\\\\\"),g=[p,pn(n),\\\\\\\"#define SHADER_NAME \\\\\\\"+n.shaderName,_,\\\\\\\"#define GAMMA_FACTOR \\\\\\\"+d,n.useFog&&n.fog?\\\\\\\"#define USE_FOG\\\\\\\":\\\\\\\"\\\\\\\",n.useFog&&n.fogExp2?\\\\\\\"#define FOG_EXP2\\\\\\\":\\\\\\\"\\\\\\\",n.map?\\\\\\\"#define USE_MAP\\\\\\\":\\\\\\\"\\\\\\\",n.matcap?\\\\\\\"#define USE_MATCAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define USE_ENVMAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+c:\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+h:\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+u:\\\\\\\"\\\\\\\",n.lightMap?\\\\\\\"#define USE_LIGHTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.aoMap?\\\\\\\"#define USE_AOMAP\\\\\\\":\\\\\\\"\\\\\\\",n.emissiveMap?\\\\\\\"#define USE_EMISSIVEMAP\\\\\\\":\\\\\\\"\\\\\\\",n.bumpMap?\\\\\\\"#define USE_BUMPMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap?\\\\\\\"#define USE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.objectSpaceNormalMap?\\\\\\\"#define OBJECTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.tangentSpaceNormalMap?\\\\\\\"#define TANGENTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoat?\\\\\\\"#define USE_CLEARCOAT\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatMap?\\\\\\\"#define USE_CLEARCOATMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatRoughnessMap?\\\\\\\"#define USE_CLEARCOAT_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatNormalMap?\\\\\\\"#define USE_CLEARCOAT_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularMap?\\\\\\\"#define USE_SPECULARMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularIntensityMap?\\\\\\\"#define USE_SPECULARINTENSITYMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularTintMap?\\\\\\\"#define USE_SPECULARTINTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.roughnessMap?\\\\\\\"#define USE_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.metalnessMap?\\\\\\\"#define USE_METALNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.alphaMap?\\\\\\\"#define USE_ALPHAMAP\\\\\\\":\\\\\\\"\\\\\\\",n.alphaTest?\\\\\\\"#define USE_ALPHATEST\\\\\\\":\\\\\\\"\\\\\\\",n.sheen?\\\\\\\"#define USE_SHEEN\\\\\\\":\\\\\\\"\\\\\\\",n.transmission?\\\\\\\"#define USE_TRANSMISSION\\\\\\\":\\\\\\\"\\\\\\\",n.transmissionMap?\\\\\\\"#define USE_TRANSMISSIONMAP\\\\\\\":\\\\\\\"\\\\\\\",n.thicknessMap?\\\\\\\"#define USE_THICKNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.vertexTangents?\\\\\\\"#define USE_TANGENT\\\\\\\":\\\\\\\"\\\\\\\",n.vertexColors||n.instancingColor?\\\\\\\"#define USE_COLOR\\\\\\\":\\\\\\\"\\\\\\\",n.vertexAlphas?\\\\\\\"#define USE_COLOR_ALPHA\\\\\\\":\\\\\\\"\\\\\\\",n.vertexUvs?\\\\\\\"#define USE_UV\\\\\\\":\\\\\\\"\\\\\\\",n.uvsVertexOnly?\\\\\\\"#define UVS_VERTEX_ONLY\\\\\\\":\\\\\\\"\\\\\\\",n.gradientMap?\\\\\\\"#define USE_GRADIENTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.flatShading?\\\\\\\"#define FLAT_SHADED\\\\\\\":\\\\\\\"\\\\\\\",n.doubleSided?\\\\\\\"#define DOUBLE_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.flipSided?\\\\\\\"#define FLIP_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define USE_SHADOWMAP\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define \\\\\\\"+l:\\\\\\\"\\\\\\\",n.premultipliedAlpha?\\\\\\\"#define PREMULTIPLIED_ALPHA\\\\\\\":\\\\\\\"\\\\\\\",n.physicallyCorrectLights?\\\\\\\"#define PHYSICALLY_CORRECT_LIGHTS\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer?\\\\\\\"#define USE_LOGDEPTHBUF\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\\\\\\\"#define USE_LOGDEPTHBUF_EXT\\\\\\\":\\\\\\\"\\\\\\\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\\\\\\\"#define TEXTURE_LOD_EXT\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"uniform mat4 viewMatrix;\\\\\\\",\\\\\\\"uniform vec3 cameraPosition;\\\\\\\",\\\\\\\"uniform bool isOrthographic;\\\\\\\",n.toneMapping!==w.vb?\\\\\\\"#define TONE_MAPPING\\\\\\\":\\\\\\\"\\\\\\\",n.toneMapping!==w.vb?U.tonemapping_pars_fragment:\\\\\\\"\\\\\\\",n.toneMapping!==w.vb?tn(\\\\\\\"toneMapping\\\\\\\",n.toneMapping):\\\\\\\"\\\\\\\",n.dithering?\\\\\\\"#define DITHERING\\\\\\\":\\\\\\\"\\\\\\\",n.format===w.ic?\\\\\\\"#define OPAQUE\\\\\\\":\\\\\\\"\\\\\\\",U.encodings_pars_fragment,n.map?Ke(\\\\\\\"mapTexelToLinear\\\\\\\",n.mapEncoding):\\\\\\\"\\\\\\\",n.matcap?Ke(\\\\\\\"matcapTexelToLinear\\\\\\\",n.matcapEncoding):\\\\\\\"\\\\\\\",n.envMap?Ke(\\\\\\\"envMapTexelToLinear\\\\\\\",n.envMapEncoding):\\\\\\\"\\\\\\\",n.emissiveMap?Ke(\\\\\\\"emissiveMapTexelToLinear\\\\\\\",n.emissiveMapEncoding):\\\\\\\"\\\\\\\",n.specularTintMap?Ke(\\\\\\\"specularTintMapTexelToLinear\\\\\\\",n.specularTintMapEncoding):\\\\\\\"\\\\\\\",n.lightMap?Ke(\\\\\\\"lightMapTexelToLinear\\\\\\\",n.lightMapEncoding):\\\\\\\"\\\\\\\",Qe(\\\\\\\"linearToOutputTexel\\\\\\\",n.outputEncoding),n.depthPacking?\\\\\\\"#define DEPTH_PACKING \\\\\\\"+n.depthPacking:\\\\\\\"\\\\\\\",\\\\\\\"\\\\n\\\\\\\"].filter(en).join(\\\\\\\"\\\\n\\\\\\\")),o=on(o),o=nn(o,n),o=sn(o,n),a=on(a),a=nn(a,n),a=sn(a,n),o=hn(o),a=hn(a),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(v=\\\\\\\"#version 300 es\\\\n\\\\\\\",f=[\\\\\\\"precision mediump sampler2DArray;\\\\\\\",\\\\\\\"#define attribute in\\\\\\\",\\\\\\\"#define varying out\\\\\\\",\\\\\\\"#define texture2D texture\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\")+\\\\\\\"\\\\n\\\\\\\"+f,g=[\\\\\\\"#define varying in\\\\\\\",n.glslVersion===w.I?\\\\\\\"\\\\\\\":\\\\\\\"out highp vec4 pc_fragColor;\\\\\\\",n.glslVersion===w.I?\\\\\\\"\\\\\\\":\\\\\\\"#define gl_FragColor pc_fragColor\\\\\\\",\\\\\\\"#define gl_FragDepthEXT gl_FragDepth\\\\\\\",\\\\\\\"#define texture2D texture\\\\\\\",\\\\\\\"#define textureCube texture\\\\\\\",\\\\\\\"#define texture2DProj textureProj\\\\\\\",\\\\\\\"#define texture2DLodEXT textureLod\\\\\\\",\\\\\\\"#define texture2DProjLodEXT textureProjLod\\\\\\\",\\\\\\\"#define textureCubeLodEXT textureLod\\\\\\\",\\\\\\\"#define texture2DGradEXT textureGrad\\\\\\\",\\\\\\\"#define texture2DProjGradEXT textureProjGrad\\\\\\\",\\\\\\\"#define textureCubeGradEXT textureGrad\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\")+\\\\\\\"\\\\n\\\\\\\"+g);const y=v+f+o,x=v+g+a,b=Ye(s,s.VERTEX_SHADER,y),T=Ye(s,s.FRAGMENT_SHADER,x);if(s.attachShader(m,b),s.attachShader(m,T),void 0!==n.index0AttributeName?s.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&s.bindAttribLocation(m,0,\\\\\\\"position\\\\\\\"),s.linkProgram(m),t.debug.checkShaderErrors){const t=s.getProgramInfoLog(m).trim(),e=s.getShaderInfoLog(b).trim(),n=s.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===s.getProgramParameter(m,s.LINK_STATUS)){i=!1;const e=Ze(s,b,\\\\\\\"vertex\\\\\\\"),n=Ze(s,T,\\\\\\\"fragment\\\\\\\");console.error(\\\\\\\"THREE.WebGLProgram: Shader Error \\\\\\\"+s.getError()+\\\\\\\" - VALIDATE_STATUS \\\\\\\"+s.getProgramParameter(m,s.VALIDATE_STATUS)+\\\\\\\"\\\\n\\\\nProgram Info Log: \\\\\\\"+t+\\\\\\\"\\\\n\\\\\\\"+e+\\\\\\\"\\\\n\\\\\\\"+n)}else\\\\\\\"\\\\\\\"!==t?console.warn(\\\\\\\"THREE.WebGLProgram: Program Info Log:\\\\\\\",t):\\\\\\\"\\\\\\\"!==e&&\\\\\\\"\\\\\\\"!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:f},fragmentShader:{log:n,prefix:g}})}let A,M;return s.deleteShader(b),s.deleteShader(T),this.getUniforms=function(){return void 0===A&&(A=new Xe(s,m)),A},this.getAttributes=function(){return void 0===M&&(M=function(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let s=0;s<i;s++){const i=t.getActiveAttrib(e,s),r=i.name;let o=1;i.type===t.FLOAT_MAT2&&(o=2),i.type===t.FLOAT_MAT3&&(o=3),i.type===t.FLOAT_MAT4&&(o=4),n[r]={type:i.type,location:t.getAttribLocation(e,r),locationSize:o}}return n}(s,m)),M},this.destroy=function(){i.releaseStatesOfProgram(this),s.deleteProgram(m),this.program=void 0},this.name=n.shaderName,this.id=$e++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=b,this.fragmentShader=T,this}function mn(t,e,n,i,s,r,o){const a=[],l=s.isWebGL2,c=s.logarithmicDepthBuffer,h=s.floatVertexTextures,u=s.maxVertexUniforms,d=s.vertexTextures;let p=s.precision;const _={MeshDepthMaterial:\\\\\\\"depth\\\\\\\",MeshDistanceMaterial:\\\\\\\"distanceRGBA\\\\\\\",MeshNormalMaterial:\\\\\\\"normal\\\\\\\",MeshBasicMaterial:\\\\\\\"basic\\\\\\\",MeshLambertMaterial:\\\\\\\"lambert\\\\\\\",MeshPhongMaterial:\\\\\\\"phong\\\\\\\",MeshToonMaterial:\\\\\\\"toon\\\\\\\",MeshStandardMaterial:\\\\\\\"physical\\\\\\\",MeshPhysicalMaterial:\\\\\\\"physical\\\\\\\",MeshMatcapMaterial:\\\\\\\"matcap\\\\\\\",LineBasicMaterial:\\\\\\\"basic\\\\\\\",LineDashedMaterial:\\\\\\\"dashed\\\\\\\",PointsMaterial:\\\\\\\"points\\\\\\\",ShadowMaterial:\\\\\\\"shadow\\\\\\\",SpriteMaterial:\\\\\\\"sprite\\\\\\\"},m=[\\\\\\\"precision\\\\\\\",\\\\\\\"isWebGL2\\\\\\\",\\\\\\\"supportsVertexTextures\\\\\\\",\\\\\\\"outputEncoding\\\\\\\",\\\\\\\"instancing\\\\\\\",\\\\\\\"instancingColor\\\\\\\",\\\\\\\"map\\\\\\\",\\\\\\\"mapEncoding\\\\\\\",\\\\\\\"matcap\\\\\\\",\\\\\\\"matcapEncoding\\\\\\\",\\\\\\\"envMap\\\\\\\",\\\\\\\"envMapMode\\\\\\\",\\\\\\\"envMapEncoding\\\\\\\",\\\\\\\"envMapCubeUV\\\\\\\",\\\\\\\"lightMap\\\\\\\",\\\\\\\"lightMapEncoding\\\\\\\",\\\\\\\"aoMap\\\\\\\",\\\\\\\"emissiveMap\\\\\\\",\\\\\\\"emissiveMapEncoding\\\\\\\",\\\\\\\"bumpMap\\\\\\\",\\\\\\\"normalMap\\\\\\\",\\\\\\\"objectSpaceNormalMap\\\\\\\",\\\\\\\"tangentSpaceNormalMap\\\\\\\",\\\\\\\"clearcoat\\\\\\\",\\\\\\\"clearcoatMap\\\\\\\",\\\\\\\"clearcoatRoughnessMap\\\\\\\",\\\\\\\"clearcoatNormalMap\\\\\\\",\\\\\\\"displacementMap\\\\\\\",\\\\\\\"specularMap\\\\\\\",\\\\\\\"specularIntensityMap\\\\\\\",\\\\\\\"specularTintMap\\\\\\\",\\\\\\\"specularTintMapEncoding\\\\\\\",\\\\\\\"roughnessMap\\\\\\\",\\\\\\\"metalnessMap\\\\\\\",\\\\\\\"gradientMap\\\\\\\",\\\\\\\"alphaMap\\\\\\\",\\\\\\\"alphaTest\\\\\\\",\\\\\\\"combine\\\\\\\",\\\\\\\"vertexColors\\\\\\\",\\\\\\\"vertexAlphas\\\\\\\",\\\\\\\"vertexTangents\\\\\\\",\\\\\\\"vertexUvs\\\\\\\",\\\\\\\"uvsVertexOnly\\\\\\\",\\\\\\\"fog\\\\\\\",\\\\\\\"useFog\\\\\\\",\\\\\\\"fogExp2\\\\\\\",\\\\\\\"flatShading\\\\\\\",\\\\\\\"sizeAttenuation\\\\\\\",\\\\\\\"logarithmicDepthBuffer\\\\\\\",\\\\\\\"skinning\\\\\\\",\\\\\\\"maxBones\\\\\\\",\\\\\\\"useVertexTexture\\\\\\\",\\\\\\\"morphTargets\\\\\\\",\\\\\\\"morphNormals\\\\\\\",\\\\\\\"morphTargetsCount\\\\\\\",\\\\\\\"premultipliedAlpha\\\\\\\",\\\\\\\"numDirLights\\\\\\\",\\\\\\\"numPointLights\\\\\\\",\\\\\\\"numSpotLights\\\\\\\",\\\\\\\"numHemiLights\\\\\\\",\\\\\\\"numRectAreaLights\\\\\\\",\\\\\\\"numDirLightShadows\\\\\\\",\\\\\\\"numPointLightShadows\\\\\\\",\\\\\\\"numSpotLightShadows\\\\\\\",\\\\\\\"shadowMapEnabled\\\\\\\",\\\\\\\"shadowMapType\\\\\\\",\\\\\\\"toneMapping\\\\\\\",\\\\\\\"physicallyCorrectLights\\\\\\\",\\\\\\\"doubleSided\\\\\\\",\\\\\\\"flipSided\\\\\\\",\\\\\\\"numClippingPlanes\\\\\\\",\\\\\\\"numClipIntersection\\\\\\\",\\\\\\\"depthPacking\\\\\\\",\\\\\\\"dithering\\\\\\\",\\\\\\\"format\\\\\\\",\\\\\\\"sheen\\\\\\\",\\\\\\\"transmission\\\\\\\",\\\\\\\"transmissionMap\\\\\\\",\\\\\\\"thicknessMap\\\\\\\"];function f(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn(\\\\\\\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\\\\\\\"),e=t.texture.encoding):e=w.U,l&&t&&t.isTexture&&t.format===w.Ib&&t.type===w.Zc&&t.encoding===w.ld&&(e=w.U),e}return{getParameters:function(r,a,m,g,v){const y=g.fog,x=r.isMeshStandardMaterial?g.environment:null,b=(r.isMeshStandardMaterial?n:e).get(r.envMap||x),T=_[r.type],A=v.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(h)return 1024;{const t=u,n=Math.floor((t-20)/4),i=Math.min(n,e.length);return i<e.length?(console.warn(\\\\\\\"THREE.WebGLRenderer: Skeleton has \\\\\\\"+e.length+\\\\\\\" bones. This GPU supports \\\\\\\"+i+\\\\\\\".\\\\\\\"),0):i}}(v):0;let M,E;if(null!==r.precision&&(p=s.getMaxPrecision(r.precision),p!==r.precision&&console.warn(\\\\\\\"THREE.WebGLProgram.getParameters:\\\\\\\",r.precision,\\\\\\\"not supported, using\\\\\\\",p,\\\\\\\"instead.\\\\\\\")),T){const t=H[T];M=t.vertexShader,E=t.fragmentShader}else M=r.vertexShader,E=r.fragmentShader;const S=t.getRenderTarget(),C=r.alphaTest>0,N=r.clearcoat>0;return{isWebGL2:l,shaderID:T,shaderName:r.type,vertexShader:M,fragmentShader:E,defines:r.defines,isRawShaderMaterial:!0===r.isRawShaderMaterial,glslVersion:r.glslVersion,precision:p,instancing:!0===v.isInstancedMesh,instancingColor:!0===v.isInstancedMesh&&null!==v.instanceColor,supportsVertexTextures:d,outputEncoding:null!==S?f(S.texture):t.outputEncoding,map:!!r.map,mapEncoding:f(r.map),matcap:!!r.matcap,matcapEncoding:f(r.matcap),envMap:!!b,envMapMode:b&&b.mapping,envMapEncoding:f(b),envMapCubeUV:!!b&&(b.mapping===w.q||b.mapping===w.r),lightMap:!!r.lightMap,lightMapEncoding:f(r.lightMap),aoMap:!!r.aoMap,emissiveMap:!!r.emissiveMap,emissiveMapEncoding:f(r.emissiveMap),bumpMap:!!r.bumpMap,normalMap:!!r.normalMap,objectSpaceNormalMap:r.normalMapType===w.zb,tangentSpaceNormalMap:r.normalMapType===w.Uc,clearcoat:N,clearcoatMap:N&&!!r.clearcoatMap,clearcoatRoughnessMap:N&&!!r.clearcoatRoughnessMap,clearcoatNormalMap:N&&!!r.clearcoatNormalMap,displacementMap:!!r.displacementMap,roughnessMap:!!r.roughnessMap,metalnessMap:!!r.metalnessMap,specularMap:!!r.specularMap,specularIntensityMap:!!r.specularIntensityMap,specularTintMap:!!r.specularTintMap,specularTintMapEncoding:f(r.specularTintMap),alphaMap:!!r.alphaMap,alphaTest:C,gradientMap:!!r.gradientMap,sheen:r.sheen>0,transmission:r.transmission>0,transmissionMap:!!r.transmissionMap,thicknessMap:!!r.thicknessMap,combine:r.combine,vertexTangents:!!r.normalMap&&!!v.geometry&&!!v.geometry.attributes.tangent,vertexColors:r.vertexColors,vertexAlphas:!0===r.vertexColors&&!!v.geometry&&!!v.geometry.attributes.color&&4===v.geometry.attributes.color.itemSize,vertexUvs:!!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatMap||r.clearcoatRoughnessMap||r.clearcoatNormalMap||r.displacementMap||r.transmissionMap||r.thicknessMap||r.specularIntensityMap||r.specularTintMap),uvsVertexOnly:!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatNormalMap||r.transmission>0||r.transmissionMap||r.thicknessMap||r.specularIntensityMap||r.specularTintMap||!r.displacementMap),fog:!!y,useFog:r.fog,fogExp2:y&&y.isFogExp2,flatShading:!!r.flatShading,sizeAttenuation:r.sizeAttenuation,logarithmicDepthBuffer:c,skinning:!0===v.isSkinnedMesh&&A>0,maxBones:A,useVertexTexture:h,morphTargets:!!v.geometry&&!!v.geometry.morphAttributes.position,morphNormals:!!v.geometry&&!!v.geometry.morphAttributes.normal,morphTargetsCount:v.geometry&&v.geometry.morphAttributes.position?v.geometry.morphAttributes.position.length:0,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,format:r.format,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&m.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:w.vb,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,doubleSided:r.side===w.z,flipSided:r.side===w.i,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:l||i.has(\\\\\\\"EXT_frag_depth\\\\\\\"),rendererExtensionDrawBuffers:l||i.has(\\\\\\\"WEBGL_draw_buffers\\\\\\\"),rendererExtensionShaderTextureLod:l||i.has(\\\\\\\"EXT_shader_texture_lod\\\\\\\"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<m.length;t++)n.push(e[m[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=_[t.type];let n;if(e){const t=H[e];n=I.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new _n(t,n,e,r),a.push(i)),i},releaseProgram:function(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function fn(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function gn(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function vn(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function yn(t){const e=[];let n=0;const i=[],s=[],r=[],o={id:-1};function a(i,s,r,a,l,c){let h=e[n];const u=t.get(r);return void 0===h?(h={id:i.id,object:i,geometry:s,material:r,program:u.program||o,groupOrder:a,renderOrder:i.renderOrder,z:l,group:c},e[n]=h):(h.id=i.id,h.object=i,h.geometry=s,h.material=r,h.program=u.program||o,h.groupOrder=a,h.renderOrder=i.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:i,transmissive:s,transparent:r,init:function(){n=0,i.length=0,s.length=0,r.length=0},push:function(t,e,n,o,l,c){const h=a(t,e,n,o,l,c);n.transmission>0?s.push(h):!0===n.transparent?r.push(h):i.push(h)},unshift:function(t,e,n,o,l,c){const h=a(t,e,n,o,l,c);n.transmission>0?s.unshift(h):!0===n.transparent?r.unshift(h):i.unshift(h)},finish:function(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){i.length>1&&i.sort(t||gn),s.length>1&&s.sort(e||vn),r.length>1&&r.sort(e||vn)}}}function xn(t){let e=new WeakMap;return{get:function(n,i){let s;return!1===e.has(n)?(s=new yn(t),e.set(n,[s])):i>=e.get(n).length?(s=new yn(t),e.get(n).push(s)):s=e.get(n)[i],s},dispose:function(){e=new WeakMap}}}function bn(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\\\\\\\"DirectionalLight\\\\\\\":n={direction:new p.a,color:new D.a};break;case\\\\\\\"SpotLight\\\\\\\":n={position:new p.a,direction:new p.a,color:new D.a,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\\\\\\\"PointLight\\\\\\\":n={position:new p.a,color:new D.a,distance:0,decay:0};break;case\\\\\\\"HemisphereLight\\\\\\\":n={direction:new p.a,skyColor:new D.a,groundColor:new D.a};break;case\\\\\\\"RectAreaLight\\\\\\\":n={color:new D.a,position:new p.a,halfWidth:new p.a,halfHeight:new p.a}}return t[e.id]=n,n}}}let wn=0;function Tn(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function An(t,e){const n=new bn,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\\\\\\\"DirectionalLight\\\\\\\":case\\\\\\\"SpotLight\\\\\\\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new d.a};break;case\\\\\\\"PointLight\\\\\\\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new d.a,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)s.probe.push(new p.a);const r=new p.a,o=new A.a,a=new A.a;return{setup:function(r,o){let a=0,l=0,c=0;for(let t=0;t<9;t++)s.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,_=0,m=0,f=0,g=0;r.sort(Tn);const v=!0!==o?Math.PI:1;for(let t=0,e=r.length;t<e;t++){const e=r[t],o=e.color,y=e.intensity,x=e.distance,b=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=o.r*y*v,l+=o.g*y*v,c+=o.b*y*v;else if(e.isLightProbe)for(let t=0;t<9;t++)s.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity*v),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,s.directionalShadow[h]=n,s.directionalShadowMap[h]=b,s.directionalShadowMatrix[h]=e.shadow.matrix,m++}s.directional[h]=t,h++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(o).multiplyScalar(y*v),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,s.spotShadow[d]=n,s.spotShadowMap[d]=b,s.spotShadowMatrix[d]=e.shadow.matrix,g++}s.spot[d]=t,d++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(o).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),s.rectArea[p]=t,p++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity*v),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,s.pointShadow[u]=n,s.pointShadowMap[u]=b,s.pointShadowMatrix[u]=e.shadow.matrix,f++}s.point[u]=t,u++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y*v),t.groundColor.copy(e.groundColor).multiplyScalar(y*v),s.hemi[_]=t,_++}}p>0&&(e.isWebGL2||!0===t.has(\\\\\\\"OES_texture_float_linear\\\\\\\")?(s.rectAreaLTC1=V.LTC_FLOAT_1,s.rectAreaLTC2=V.LTC_FLOAT_2):!0===t.has(\\\\\\\"OES_texture_half_float_linear\\\\\\\")?(s.rectAreaLTC1=V.LTC_HALF_1,s.rectAreaLTC2=V.LTC_HALF_2):console.error(\\\\\\\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\\\\\\\")),s.ambient[0]=a,s.ambient[1]=l,s.ambient[2]=c;const y=s.hash;y.directionalLength===h&&y.pointLength===u&&y.spotLength===d&&y.rectAreaLength===p&&y.hemiLength===_&&y.numDirectionalShadows===m&&y.numPointShadows===f&&y.numSpotShadows===g||(s.directional.length=h,s.spot.length=d,s.rectArea.length=p,s.point.length=u,s.hemi.length=_,s.directionalShadow.length=m,s.directionalShadowMap.length=m,s.pointShadow.length=f,s.pointShadowMap.length=f,s.spotShadow.length=g,s.spotShadowMap.length=g,s.directionalShadowMatrix.length=m,s.pointShadowMatrix.length=f,s.spotShadowMatrix.length=g,y.directionalLength=h,y.pointLength=u,y.spotLength=d,y.rectAreaLength=p,y.hemiLength=_,y.numDirectionalShadows=m,y.numPointShadows=f,y.numSpotShadows=g,s.version=wn++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=s.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),r.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=s.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),r.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=s.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),a.identity(),o.copy(d.matrixWorld),o.premultiply(u),a.extractRotation(o),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(a),t.halfHeight.applyMatrix4(a),c++}else if(d.isPointLight){const t=s.point[i];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),i++}else if(d.isHemisphereLight){const t=s.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:s}}function Mn(t,e){const n=new An(t,e),i=[],s=[];return{init:function(){i.length=0,s.length=0},state:{lightsArray:i,shadowsArray:s,lights:n},setupLights:function(t){n.setup(i,t)},setupLightsView:function(t){n.setupView(i,t)},pushLight:function(t){i.push(t)},pushShadow:function(t){s.push(t)}}}function En(t,e){let n=new WeakMap;return{get:function(i,s=0){let r;return!1===n.has(i)?(r=new Mn(t,e),n.set(i,[r])):s>=n.get(i).length?(r=new Mn(t,e),n.get(i).push(r)):r=n.get(i)[s],r},dispose:function(){n=new WeakMap}}}class Sn extends O.a{constructor(t){super(),this.type=\\\\\\\"MeshDepthMaterial\\\\\\\",this.depthPacking=w.j,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Sn.prototype.isMeshDepthMaterial=!0;class Cn extends O.a{constructor(t){super(),this.type=\\\\\\\"MeshDistanceMaterial\\\\\\\",this.referencePosition=new p.a,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}Cn.prototype.isMeshDistanceMaterial=!0;function Nn(t,e,n){let i=new T.a;const s=new d.a,r=new d.a,o=new _.a,a=new Sn({depthPacking:w.Hb}),l=new Cn,c={},h=n.maxTextureSize,u={0:w.i,1:w.H,2:w.z},p=new F({uniforms:{shadow_pass:{value:null},resolution:{value:new d.a},radius:{value:4},samples:{value:8}},vertexShader:\\\\\\\"\\\\nvoid main() {\\\\n\\\\n\\\\tgl_Position = vec4( position, 1.0 );\\\\n\\\\n}\\\\n\\\\\\\",fragmentShader:\\\\\\\"\\\\nuniform sampler2D shadow_pass;\\\\nuniform vec2 resolution;\\\\nuniform float radius;\\\\nuniform float samples;\\\\n\\\\n#include <packing>\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tfloat mean = 0.0;\\\\n\\\\tfloat squared_mean = 0.0;\\\\n\\\\n\\\\t// This seems totally useless but it's a crazy work around for a Adreno compiler bug\\\\n\\\\t// float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\\\n\\\\n\\\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\\\n\\\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\\\n\\\\tfor ( float i = 0.0; i < samples; i ++ ) {\\\\n\\\\n\\\\t\\\\tfloat uvOffset = uvStart + i * uvStride;\\\\n\\\\n\\\\t\\\\t#ifdef HORIZONTAL_PASS\\\\n\\\\n\\\\t\\\\t\\\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\\\n\\\\t\\\\t\\\\tmean += distribution.x;\\\\n\\\\t\\\\t\\\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\\\n\\\\n\\\\t\\\\t#else\\\\n\\\\n\\\\t\\\\t\\\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\\\n\\\\t\\\\t\\\\tmean += depth;\\\\n\\\\t\\\\t\\\\tsquared_mean += depth * depth;\\\\n\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t}\\\\n\\\\n\\\\tmean = mean / samples;\\\\n\\\\tsquared_mean = squared_mean / samples;\\\\n\\\\n\\\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\\\n\\\\n\\\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\\\n\\\\n}\\\\n\\\\\\\"}),m=p.clone();m.defines.HORIZONTAL_PASS=1;const f=new S.a;f.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const g=new B.a(f,p),v=this;function y(n,i){const s=e.update(g);p.uniforms.shadow_pass.value=n.map.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,p.uniforms.samples.value=n.blurSamples,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,p,g,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,m.uniforms.samples.value=n.blurSamples,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,m,g,null)}function x(e,n,i,s,r,o,h){let d=null;const p=!0===s.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(d=void 0!==p?p:!0===s.isPointLight?l:a,t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length||i.displacementMap&&0!==i.displacementScale||i.alphaMap&&i.alphaTest>0){const t=d.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let s=n[e];void 0===s&&(s=d.clone(),n[e]=s),d=s}return d.visible=i.visible,d.wireframe=i.wireframe,h===w.gd?d.side=null!==i.shadowSide?i.shadowSide:i.side:d.side=null!==i.shadowSide?i.shadowSide:u[i.side],d.alphaMap=i.alphaMap,d.alphaTest=i.alphaTest,d.clipShadows=i.clipShadows,d.clippingPlanes=i.clippingPlanes,d.clipIntersection=i.clipIntersection,d.displacementMap=i.displacementMap,d.displacementScale=i.displacementScale,d.displacementBias=i.displacementBias,d.wireframeLinewidth=i.wireframeLinewidth,d.linewidth=i.linewidth,!0===s.isPointLight&&!0===d.isMeshDistanceMaterial&&(d.referencePosition.setFromMatrixPosition(s.matrixWorld),d.nearDistance=r,d.farDistance=o),d}function b(n,s,r,o,a){if(!1===n.visible)return;if(n.layers.test(s.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&a===w.gd)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,n.matrixWorld);const i=e.update(n),s=n.material;if(Array.isArray(s)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=s[c.materialIndex];if(h&&h.visible){const e=x(n,0,h,o,r.near,r.far,a);t.renderBufferDirect(r,null,i,e,n,c)}}}else if(s.visible){const e=x(n,0,s,o,r.near,r.far,a);t.renderBufferDirect(r,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)b(l[t],s,r,o,a)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=w.Fb,this.render=function(e,n,a){if(!1===v.enabled)return;if(!1===v.autoUpdate&&!1===v.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(w.ub),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){console.warn(\\\\\\\"THREE.WebGLShadowMap:\\\\\\\",c,\\\\\\\"has no shadow.\\\\\\\");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;s.copy(u.mapSize);const p=u.getFrameExtents();if(s.multiply(p),r.copy(u.mapSize),(s.x>h||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/p.x),s.x=r.x*p.x,u.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/p.y),s.y=r.y*p.y,u.mapSize.y=r.y)),null===u.map&&!u.isPointLightShadow&&this.type===w.gd){const t={minFilter:w.V,magFilter:w.V,format:w.Ib};u.map=new K(s.x,s.y,t),u.map.texture.name=c.name+\\\\\\\".shadowMap\\\\\\\",u.mapPass=new K(s.x,s.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:w.ob,magFilter:w.ob,format:w.Ib};u.map=new K(s.x,s.y,t),u.map.texture.name=c.name+\\\\\\\".shadowMap\\\\\\\",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const _=u.getViewportCount();for(let t=0;t<_;t++){const e=u.getViewport(t);o.set(r.x*e.x,r.y*e.y,r.x*e.z,r.y*e.w),d.viewport(o),u.updateMatrices(c,t),i=u.getFrustum(),b(n,a,u.camera,c,this.type)}u.isPointLightShadow||this.type!==w.gd||y(u,a),u.needsUpdate=!1}v.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function Ln(t,e,n){const i=n.isWebGL2;const s=new function(){let e=!1;const n=new _.a;let i=null;const s=new _.a(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,r,o,a){!0===a&&(e*=o,i*=o,r*=o),n.set(e,i,r,o),!1===s.equals(n)&&(t.clearColor(e,i,r,o),s.copy(n))},reset:function(){e=!1,i=null,s.set(-1,0,0,0)}}},r=new function(){let e=!1,n=null,i=null,s=null;return{setTest:function(e){e?k(t.DEPTH_TEST):U(t.DEPTH_TEST)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case w.tb:t.depthFunc(t.NEVER);break;case w.g:t.depthFunc(t.ALWAYS);break;case w.S:t.depthFunc(t.LESS);break;case w.T:t.depthFunc(t.LEQUAL);break;case w.C:t.depthFunc(t.EQUAL);break;case w.L:t.depthFunc(t.GEQUAL);break;case w.K:t.depthFunc(t.GREATER);break;case w.yb:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}else t.depthFunc(t.LEQUAL);i=e}},setLocked:function(t){e=t},setClear:function(e){s!==e&&(t.clearDepth(e),s=e)},reset:function(){e=!1,n=null,i=null,s=null}}},o=new function(){let e=!1,n=null,i=null,s=null,r=null,o=null,a=null,l=null,c=null;return{setTest:function(n){e||(n?k(t.STENCIL_TEST):U(t.STENCIL_TEST))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,o){i===e&&s===n&&r===o||(t.stencilFunc(e,n,o),i=e,s=n,r=o)},setOp:function(e,n,i){o===e&&a===n&&l===i||(t.stencilOp(e,n,i),o=e,a=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,s=null,r=null,o=null,a=null,l=null,c=null}}};let a={},l=null,c={},h=null,u=!1,d=null,p=null,m=null,f=null,g=null,v=null,y=null,x=!1,b=null,T=null,A=null,M=null,E=null;const S=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let C=!1,N=0;const L=t.getParameter(t.VERSION);-1!==L.indexOf(\\\\\\\"WebGL\\\\\\\")?(N=parseFloat(/^WebGL (\\\\d)/.exec(L)[1]),C=N>=1):-1!==L.indexOf(\\\\\\\"OpenGL ES\\\\\\\")&&(N=parseFloat(/^OpenGL ES (\\\\d)/.exec(L)[1]),C=N>=2);let O=null,P={};const R=t.getParameter(t.SCISSOR_BOX),I=t.getParameter(t.VIEWPORT),F=(new _.a).fromArray(R),D=(new _.a).fromArray(I);function B(e,n,i){const s=new Uint8Array(4),r=t.createTexture();t.bindTexture(e,r),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let e=0;e<i;e++)t.texImage2D(n+e,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,s);return r}const z={};function k(e){!0!==a[e]&&(t.enable(e),a[e]=!0)}function U(e){!1!==a[e]&&(t.disable(e),a[e]=!1)}z[t.TEXTURE_2D]=B(t.TEXTURE_2D,t.TEXTURE_2D,1),z[t.TEXTURE_CUBE_MAP]=B(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),s.setClear(0,0,0,1),r.setClear(1),o.setClear(0),k(t.DEPTH_TEST),r.setFunc(w.T),j(!1),W(w.s),k(t.CULL_FACE),H(w.ub);const G={[w.b]:t.FUNC_ADD,[w.Rc]:t.FUNC_SUBTRACT,[w.xc]:t.FUNC_REVERSE_SUBTRACT};if(i)G[w.jb]=t.MIN,G[w.ib]=t.MAX;else{const t=e.get(\\\\\\\"EXT_blend_minmax\\\\\\\");null!==t&&(G[w.jb]=t.MIN_EXT,G[w.ib]=t.MAX_EXT)}const V={[w.jd]:t.ZERO,[w.Ab]:t.ONE,[w.Pc]:t.SRC_COLOR,[w.Nc]:t.SRC_ALPHA,[w.Oc]:t.SRC_ALPHA_SATURATE,[w.B]:t.DST_COLOR,[w.A]:t.DST_ALPHA,[w.Eb]:t.ONE_MINUS_SRC_COLOR,[w.Db]:t.ONE_MINUS_SRC_ALPHA,[w.Cb]:t.ONE_MINUS_DST_COLOR,[w.Bb]:t.ONE_MINUS_DST_ALPHA};function H(e,n,i,s,r,o,a,l){if(e!==w.ub){if(!1===u&&(k(t.BLEND),u=!0),e===w.v)r=r||n,o=o||i,a=a||s,n===p&&r===g||(t.blendEquationSeparate(G[n],G[r]),p=n,g=r),i===m&&s===f&&o===v&&a===y||(t.blendFuncSeparate(V[i],V[s],V[o],V[a]),m=i,f=s,v=o,y=a),d=e,x=null;else if(e!==d||l!==x){if(p===w.b&&g===w.b||(t.blendEquation(t.FUNC_ADD),p=w.b,g=w.b),l)switch(e){case w.xb:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case w.e:t.blendFunc(t.ONE,t.ONE);break;case w.Sc:t.blendFuncSeparate(t.ZERO,t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ONE_MINUS_SRC_ALPHA);break;case w.mb:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error(\\\\\\\"THREE.WebGLState: Invalid blending: \\\\\\\",e)}else switch(e){case w.xb:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case w.e:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case w.Sc:t.blendFunc(t.ZERO,t.ONE_MINUS_SRC_COLOR);break;case w.mb:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error(\\\\\\\"THREE.WebGLState: Invalid blending: \\\\\\\",e)}m=null,f=null,v=null,y=null,d=e,x=l}}else!0===u&&(U(t.BLEND),u=!1)}function j(e){b!==e&&(e?t.frontFace(t.CW):t.frontFace(t.CCW),b=e)}function W(e){e!==w.u?(k(t.CULL_FACE),e!==T&&(e===w.s?t.cullFace(t.BACK):e===w.t?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):U(t.CULL_FACE),T=e}function q(e,n,i){e?(k(t.POLYGON_OFFSET_FILL),M===n&&E===i||(t.polygonOffset(n,i),M=n,E=i)):U(t.POLYGON_OFFSET_FILL)}function X(e){void 0===e&&(e=t.TEXTURE0+S-1),O!==e&&(t.activeTexture(e),O=e)}return{buffers:{color:s,depth:r,stencil:o},enable:k,disable:U,bindFramebuffer:function(e,n){return null===n&&null!==l&&(n=l),c[e]!==n&&(t.bindFramebuffer(e,n),c[e]=n,i&&(e===t.DRAW_FRAMEBUFFER&&(c[t.FRAMEBUFFER]=n),e===t.FRAMEBUFFER&&(c[t.DRAW_FRAMEBUFFER]=n)),!0)},bindXRFramebuffer:function(e){e!==l&&(t.bindFramebuffer(t.FRAMEBUFFER,e),l=e)},useProgram:function(e){return h!==e&&(t.useProgram(e),h=e,!0)},setBlending:H,setMaterial:function(e,n){e.side===w.z?U(t.CULL_FACE):k(t.CULL_FACE);let i=e.side===w.i;n&&(i=!i),j(i),e.blending===w.xb&&!1===e.transparent?H(w.ub):H(e.blending,e.blendEquation,e.blendSrc,e.blendDst,e.blendEquationAlpha,e.blendSrcAlpha,e.blendDstAlpha,e.premultipliedAlpha),r.setFunc(e.depthFunc),r.setTest(e.depthTest),r.setMask(e.depthWrite),s.setMask(e.colorWrite);const a=e.stencilWrite;o.setTest(a),a&&(o.setMask(e.stencilWriteMask),o.setFunc(e.stencilFunc,e.stencilRef,e.stencilFuncMask),o.setOp(e.stencilFail,e.stencilZFail,e.stencilZPass)),q(e.polygonOffset,e.polygonOffsetFactor,e.polygonOffsetUnits),!0===e.alphaToCoverage?k(t.SAMPLE_ALPHA_TO_COVERAGE):U(t.SAMPLE_ALPHA_TO_COVERAGE)},setFlipSided:j,setCullFace:W,setLineWidth:function(e){e!==A&&(C&&t.lineWidth(e),A=e)},setPolygonOffset:q,setScissorTest:function(e){e?k(t.SCISSOR_TEST):U(t.SCISSOR_TEST)},activeTexture:X,bindTexture:function(e,n){null===O&&X();let i=P[O];void 0===i&&(i={type:void 0,texture:void 0},P[O]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||z[e]),i.type=e,i.texture=n)},unbindTexture:function(){const e=P[O];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\\\\\\\"THREE.WebGLState:\\\\\\\",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\\\\\\\"THREE.WebGLState:\\\\\\\",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\\\\\\\"THREE.WebGLState:\\\\\\\",t)}},scissor:function(e){!1===F.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),F.copy(e))},viewport:function(e){!1===D.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),D.copy(e))},reset:function(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),!0===i&&(t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),a={},O=null,P={},l=null,c={},h=null,u=!1,d=null,p=null,m=null,f=null,g=null,v=null,y=null,x=!1,b=null,T=null,A=null,M=null,E=null,F.set(0,0,t.canvas.width,t.canvas.height),D.set(0,0,t.canvas.width,t.canvas.height),s.reset(),r.reset(),o.reset()}}}var On=n(3);function Pn(t,e,n,i,s,r,o){const a=s.isWebGL2,l=s.maxTextures,c=s.maxCubemapSize,h=s.maxTextureSize,u=s.maxSamples,d=new WeakMap;let p,_=!1;try{_=\\\\\\\"undefined\\\\\\\"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\\\\\\\"2d\\\\\\\")}catch(t){}function m(t,e){return _?new OffscreenCanvas(t,e):Object(It.b)(\\\\\\\"canvas\\\\\\\")}function f(t,e,n,i){let s=1;if((t.width>i||t.height>i)&&(s=i/Math.max(t.width,t.height)),s<1||!0===e){if(\\\\\\\"undefined\\\\\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\\\\\"undefined\\\\\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\\\\\"undefined\\\\\\\"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?On.g:Math.floor,r=i(s*t.width),o=i(s*t.height);void 0===p&&(p=m(r,o));const a=n?m(r,o):p;a.width=r,a.height=o;return a.getContext(\\\\\\\"2d\\\\\\\").drawImage(t,0,0,r,o),console.warn(\\\\\\\"THREE.WebGLRenderer: Texture has been resized from (\\\\\\\"+t.width+\\\\\\\"x\\\\\\\"+t.height+\\\\\\\") to (\\\\\\\"+r+\\\\\\\"x\\\\\\\"+o+\\\\\\\").\\\\\\\"),a}return\\\\\\\"data\\\\\\\"in t&&console.warn(\\\\\\\"THREE.WebGLRenderer: Image in DataTexture is too big (\\\\\\\"+t.width+\\\\\\\"x\\\\\\\"+t.height+\\\\\\\").\\\\\\\"),t}return t}function g(t){return On.i(t.width)&&On.i(t.height)}function v(t,e){return t.generateMipmaps&&e&&t.minFilter!==w.ob&&t.minFilter!==w.V}function y(e,n,s,r,o=1){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(s,r,o))}function x(n,i,s,r){if(!1===a)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\\\\\\\"+n+\\\\\\\"'\\\\\\\")}let o=i;return i===t.RED&&(s===t.FLOAT&&(o=t.R32F),s===t.HALF_FLOAT&&(o=t.R16F),s===t.UNSIGNED_BYTE&&(o=t.R8)),i===t.RGB&&(s===t.FLOAT&&(o=t.RGB32F),s===t.HALF_FLOAT&&(o=t.RGB16F),s===t.UNSIGNED_BYTE&&(o=t.RGB8)),i===t.RGBA&&(s===t.FLOAT&&(o=t.RGBA32F),s===t.HALF_FLOAT&&(o=t.RGBA16F),s===t.UNSIGNED_BYTE&&(o=r===w.ld?t.SRGB8_ALPHA8:t.RGBA8)),o!==t.R16F&&o!==t.R32F&&o!==t.RGBA16F&&o!==t.RGBA32F||e.get(\\\\\\\"EXT_color_buffer_float\\\\\\\"),o}function b(e){return e===w.ob||e===w.sb||e===w.rb?t.NEAREST:t.LINEAR}function T(e){const n=e.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",T),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&d.delete(n),o.memory.textures--}function A(e){const n=e.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",A),function(e){const n=e.texture,s=i.get(e),r=i.get(n);if(!e)return;void 0!==r.__webglTexture&&(t.deleteTexture(r.__webglTexture),o.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(s.__webglFramebuffer[e]),s.__webglDepthbuffer&&t.deleteRenderbuffer(s.__webglDepthbuffer[e]);else t.deleteFramebuffer(s.__webglFramebuffer),s.__webglDepthbuffer&&t.deleteRenderbuffer(s.__webglDepthbuffer),s.__webglMultisampledFramebuffer&&t.deleteFramebuffer(s.__webglMultisampledFramebuffer),s.__webglColorRenderbuffer&&t.deleteRenderbuffer(s.__webglColorRenderbuffer),s.__webglDepthRenderbuffer&&t.deleteRenderbuffer(s.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,s=n.length;e<s;e++){const s=i.get(n[e]);s.__webglTexture&&(t.deleteTexture(s.__webglTexture),o.memory.textures--),i.remove(n[e])}i.remove(n),i.remove(e)}(n)}let M=0;function E(e,s){const r=i.get(e);if(e.isVideoTexture&&function(t){const e=o.render.frame;d.get(t)!==e&&(d.set(t,e),t.update())}(e),e.version>0&&r.__version!==e.version){const t=e.image;if(void 0===t)console.warn(\\\\\\\"THREE.WebGLRenderer: Texture marked for update but image is undefined\\\\\\\");else{if(!1!==t.complete)return void P(r,e,s);console.warn(\\\\\\\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\\\\\\\")}}n.activeTexture(t.TEXTURE0+s),n.bindTexture(t.TEXTURE_2D,r.__webglTexture)}function S(e,s){const o=i.get(e);e.version>0&&o.__version!==e.version?function(e,i,s){if(6!==i.image.length)return;O(e,i),n.activeTexture(t.TEXTURE0+s),n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,i.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,i.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const o=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=o||l?l?i.image[t].image:i.image[t]:f(i.image[t],!1,!0,c);const u=h[0],d=g(u)||a,p=r.convert(i.format),_=r.convert(i.type),m=x(i.internalFormat,p,_,i.encoding);let b;if(L(t.TEXTURE_CUBE_MAP,i,d),o){for(let e=0;e<6;e++){b=h[e].mipmaps;for(let s=0;s<b.length;s++){const r=b[s];i.format!==w.Ib&&i.format!==w.ic?null!==p?n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,s,m,r.width,r.height,0,r.data):console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\\\\\\\"):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,s,m,r.width,r.height,0,p,_,r.data)}}e.__maxMipLevel=b.length-1}else{b=i.mipmaps;for(let e=0;e<6;e++)if(l){n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,m,h[e].width,h[e].height,0,p,_,h[e].data);for(let i=0;i<b.length;i++){const s=b[i].image[e].image;n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,m,s.width,s.height,0,p,_,s.data)}}else{n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,m,p,_,h[e]);for(let i=0;i<b.length;i++){const s=b[i];n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,m,p,_,s.image[e])}}e.__maxMipLevel=b.length}v(i,d)&&y(t.TEXTURE_CUBE_MAP,i,u.width,u.height);e.__version=i.version,i.onUpdate&&i.onUpdate(i)}(o,e,s):(n.activeTexture(t.TEXTURE0+s),n.bindTexture(t.TEXTURE_CUBE_MAP,o.__webglTexture))}const C={[w.wc]:t.REPEAT,[w.n]:t.CLAMP_TO_EDGE,[w.kb]:t.MIRRORED_REPEAT},N={[w.ob]:t.NEAREST,[w.sb]:t.NEAREST_MIPMAP_NEAREST,[w.rb]:t.NEAREST_MIPMAP_LINEAR,[w.V]:t.LINEAR,[w.Z]:t.LINEAR_MIPMAP_NEAREST,[w.Y]:t.LINEAR_MIPMAP_LINEAR};function L(n,r,o){if(o?(t.texParameteri(n,t.TEXTURE_WRAP_S,C[r.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,C[r.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,C[r.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,N[r.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,N[r.minFilter])):(t.texParameteri(n,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(n,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),r.wrapS===w.n&&r.wrapT===w.n||console.warn(\\\\\\\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\\\\\\\"),t.texParameteri(n,t.TEXTURE_MAG_FILTER,b(r.magFilter)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,b(r.minFilter)),r.minFilter!==w.ob&&r.minFilter!==w.V&&console.warn(\\\\\\\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\\\\\\\")),!0===e.has(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\")){const o=e.get(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\");if(r.type===w.G&&!1===e.has(\\\\\\\"OES_texture_float_linear\\\\\\\"))return;if(!1===a&&r.type===w.M&&!1===e.has(\\\\\\\"OES_texture_half_float_linear\\\\\\\"))return;(r.anisotropy>1||i.get(r).__currentAnisotropy)&&(t.texParameterf(n,o.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(r.anisotropy,s.getMaxAnisotropy())),i.get(r).__currentAnisotropy=r.anisotropy)}}function O(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\\\\\\\"dispose\\\\\\\",T),e.__webglTexture=t.createTexture(),o.memory.textures++)}function P(e,i,s){let o=t.TEXTURE_2D;i.isDataTexture2DArray&&(o=t.TEXTURE_2D_ARRAY),i.isDataTexture3D&&(o=t.TEXTURE_3D),O(e,i),n.activeTexture(t.TEXTURE0+s),n.bindTexture(o,e.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,i.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,i.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const l=function(t){return!a&&(t.wrapS!==w.n||t.wrapT!==w.n||t.minFilter!==w.ob&&t.minFilter!==w.V)}(i)&&!1===g(i.image),c=f(i.image,l,!1,h),u=g(c)||a,d=r.convert(i.format);let p,_=r.convert(i.type),m=x(i.internalFormat,d,_,i.encoding);L(o,i,u);const b=i.mipmaps;if(i.isDepthTexture)m=t.DEPTH_COMPONENT,a?m=i.type===w.G?t.DEPTH_COMPONENT32F:i.type===w.bd?t.DEPTH_COMPONENT24:i.type===w.ad?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT16:i.type===w.G&&console.error(\\\\\\\"WebGLRenderer: Floating point depth texture requires WebGL2.\\\\\\\"),i.format===w.x&&m===t.DEPTH_COMPONENT&&i.type!==w.fd&&i.type!==w.bd&&(console.warn(\\\\\\\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\\\\\\\"),i.type=w.fd,_=r.convert(i.type)),i.format===w.y&&m===t.DEPTH_COMPONENT&&(m=t.DEPTH_STENCIL,i.type!==w.ad&&(console.warn(\\\\\\\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\\\\\\\"),i.type=w.ad,_=r.convert(i.type))),n.texImage2D(t.TEXTURE_2D,0,m,c.width,c.height,0,d,_,null);else if(i.isDataTexture)if(b.length>0&&u){for(let e=0,i=b.length;e<i;e++)p=b[e],n.texImage2D(t.TEXTURE_2D,e,m,p.width,p.height,0,d,_,p.data);i.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else n.texImage2D(t.TEXTURE_2D,0,m,c.width,c.height,0,d,_,c.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let e=0,s=b.length;e<s;e++)p=b[e],i.format!==w.Ib&&i.format!==w.ic?null!==d?n.compressedTexImage2D(t.TEXTURE_2D,e,m,p.width,p.height,0,p.data):console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\\\\\\\"):n.texImage2D(t.TEXTURE_2D,e,m,p.width,p.height,0,d,_,p.data);e.__maxMipLevel=b.length-1}else if(i.isDataTexture2DArray)n.texImage3D(t.TEXTURE_2D_ARRAY,0,m,c.width,c.height,c.depth,0,d,_,c.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(t.TEXTURE_3D,0,m,c.width,c.height,c.depth,0,d,_,c.data),e.__maxMipLevel=0;else if(b.length>0&&u){for(let e=0,i=b.length;e<i;e++)p=b[e],n.texImage2D(t.TEXTURE_2D,e,m,d,_,p);i.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else n.texImage2D(t.TEXTURE_2D,0,m,d,_,c),e.__maxMipLevel=0;v(i,u)&&y(o,i,c.width,c.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function R(e,s,o,a,l){const c=r.convert(o.format),h=r.convert(o.type),u=x(o.internalFormat,c,h,o.encoding);l===t.TEXTURE_3D||l===t.TEXTURE_2D_ARRAY?n.texImage3D(l,0,u,s.width,s.height,s.depth,0,c,h,null):n.texImage2D(l,0,u,s.width,s.height,0,c,h,null),n.bindFramebuffer(t.FRAMEBUFFER,e),t.framebufferTexture2D(t.FRAMEBUFFER,a,l,i.get(o).__webglTexture,0),n.bindFramebuffer(t.FRAMEBUFFER,null)}function I(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer&&!n.stencilBuffer){let s=t.DEPTH_COMPONENT16;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===w.G?s=t.DEPTH_COMPONENT32F:e.type===w.bd&&(s=t.DEPTH_COMPONENT24));const i=D(n);t.renderbufferStorageMultisample(t.RENDERBUFFER,i,s,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,s,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=D(n);t.renderbufferStorageMultisample(t.RENDERBUFFER,e,t.DEPTH24_STENCIL8,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,s=r.convert(e.format),o=r.convert(e.type),a=x(e.internalFormat,s,o,e.encoding);if(i){const e=D(n);t.renderbufferStorageMultisample(t.RENDERBUFFER,e,a,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,a,n.width,n.height)}t.bindRenderbuffer(t.RENDERBUFFER,null)}function F(e){const s=i.get(e),r=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(r)throw new Error(\\\\\\\"target.depthTexture not supported in Cube render targets\\\\\\\");!function(e,s){if(s&&s.isWebGLCubeRenderTarget)throw new Error(\\\\\\\"Depth Texture with cube render targets is not supported\\\\\\\");if(n.bindFramebuffer(t.FRAMEBUFFER,e),!s.depthTexture||!s.depthTexture.isDepthTexture)throw new Error(\\\\\\\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\\\\\\\");i.get(s.depthTexture).__webglTexture&&s.depthTexture.image.width===s.width&&s.depthTexture.image.height===s.height||(s.depthTexture.image.width=s.width,s.depthTexture.image.height=s.height,s.depthTexture.needsUpdate=!0),E(s.depthTexture,0);const r=i.get(s.depthTexture).__webglTexture;if(s.depthTexture.format===w.x)t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,r,0);else{if(s.depthTexture.format!==w.y)throw new Error(\\\\\\\"Unknown depthTexture format\\\\\\\");t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,r,0)}}(s.__webglFramebuffer,e)}else if(r){s.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(t.FRAMEBUFFER,s.__webglFramebuffer[i]),s.__webglDepthbuffer[i]=t.createRenderbuffer(),I(s.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(t.FRAMEBUFFER,s.__webglFramebuffer),s.__webglDepthbuffer=t.createRenderbuffer(),I(s.__webglDepthbuffer,e,!1);n.bindFramebuffer(t.FRAMEBUFFER,null)}function D(t){return a&&t.isWebGLMultisampleRenderTarget?Math.min(u,t.samples):0}let B=!1,z=!1;this.allocateTextureUnit=function(){const t=M;return t>=l&&console.warn(\\\\\\\"THREE.WebGLTextures: Trying to use \\\\\\\"+t+\\\\\\\" texture units while this GPU supports only \\\\\\\"+l),M+=1,t},this.resetTextureUnits=function(){M=0},this.setTexture2D=E,this.setTexture2DArray=function(e,s){const r=i.get(e);e.version>0&&r.__version!==e.version?P(r,e,s):(n.activeTexture(t.TEXTURE0+s),n.bindTexture(t.TEXTURE_2D_ARRAY,r.__webglTexture))},this.setTexture3D=function(e,s){const r=i.get(e);e.version>0&&r.__version!==e.version?P(r,e,s):(n.activeTexture(t.TEXTURE0+s),n.bindTexture(t.TEXTURE_3D,r.__webglTexture))},this.setTextureCube=S,this.setupRenderTarget=function(e){const l=e.texture,c=i.get(e),h=i.get(l);e.addEventListener(\\\\\\\"dispose\\\\\\\",A),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,o.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,_=l.isDataTexture3D||l.isDataTexture2DArray,m=g(e)||a;if(!a||l.format!==w.ic||l.type!==w.G&&l.type!==w.M||(l.format=w.Ib,console.warn(\\\\\\\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\\\\\\\")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(s.drawBuffers){const n=e.texture;for(let e=0,s=n.length;e<s;e++){const s=i.get(n[e]);void 0===s.__webglTexture&&(s.__webglTexture=t.createTexture(),o.memory.textures++)}}else console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\\\\\\\");else if(p)if(a){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,c.__webglColorRenderbuffer);const i=r.convert(l.format),s=r.convert(l.type),o=x(l.internalFormat,i,s,l.encoding),a=D(e);t.renderbufferStorageMultisample(t.RENDERBUFFER,a,o,e.width,e.height),n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,c.__webglColorRenderbuffer),t.bindRenderbuffer(t.RENDERBUFFER,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),I(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}else console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\\\\\\\");if(u){n.bindTexture(t.TEXTURE_CUBE_MAP,h.__webglTexture),L(t.TEXTURE_CUBE_MAP,l,m);for(let n=0;n<6;n++)R(c.__webglFramebuffer[n],e,l,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n);v(l,m)&&y(t.TEXTURE_CUBE_MAP,l,e.width,e.height),n.unbindTexture()}else if(d){const s=e.texture;for(let r=0,o=s.length;r<o;r++){const o=s[r],a=i.get(o);n.bindTexture(t.TEXTURE_2D,a.__webglTexture),L(t.TEXTURE_2D,o,m),R(c.__webglFramebuffer,e,o,t.COLOR_ATTACHMENT0+r,t.TEXTURE_2D),v(o,m)&&y(t.TEXTURE_2D,o,e.width,e.height)}n.unbindTexture()}else{let i=t.TEXTURE_2D;if(_)if(a){i=l.isDataTexture3D?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY}else console.warn(\\\\\\\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\\\\\\\");n.bindTexture(i,h.__webglTexture),L(i,l,m),R(c.__webglFramebuffer,e,l,t.COLOR_ATTACHMENT0,i),v(l,m)&&y(i,l,e.width,e.height,e.depth),n.unbindTexture()}e.depthBuffer&&F(e)},this.updateRenderTargetMipmap=function(e){const s=g(e)||a,r=!0===e.isWebGLMultipleRenderTargets?e.texture:[e.texture];for(let o=0,a=r.length;o<a;o++){const a=r[o];if(v(a,s)){const s=e.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,r=i.get(a).__webglTexture;n.bindTexture(s,r),y(s,a,e.width,e.height),n.unbindTexture()}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(a){const s=e.width,r=e.height;let o=t.COLOR_BUFFER_BIT;e.depthBuffer&&(o|=t.DEPTH_BUFFER_BIT),e.stencilBuffer&&(o|=t.STENCIL_BUFFER_BIT);const a=i.get(e);n.bindFramebuffer(t.READ_FRAMEBUFFER,a.__webglMultisampledFramebuffer),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,a.__webglFramebuffer),t.blitFramebuffer(0,0,s,r,0,0,s,r,o,t.NEAREST),n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,a.__webglMultisampledFramebuffer)}else console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\\\\\\\")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===B&&(console.warn(\\\\\\\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\\\\\\\"),B=!0),t=t.texture),E(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===z&&(console.warn(\\\\\\\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\\\\\\\"),z=!0),t=t.texture),S(t,e)}}function Rn(t,e,n){const i=n.isWebGL2;return{convert:function(n){let s;if(n===w.Zc)return t.UNSIGNED_BYTE;if(n===w.cd)return t.UNSIGNED_SHORT_4_4_4_4;if(n===w.dd)return t.UNSIGNED_SHORT_5_5_5_1;if(n===w.ed)return t.UNSIGNED_SHORT_5_6_5;if(n===w.l)return t.BYTE;if(n===w.Mc)return t.SHORT;if(n===w.fd)return t.UNSIGNED_SHORT;if(n===w.N)return t.INT;if(n===w.bd)return t.UNSIGNED_INT;if(n===w.G)return t.FLOAT;if(n===w.M)return i?t.HALF_FLOAT:(s=e.get(\\\\\\\"OES_texture_half_float\\\\\\\"),null!==s?s.HALF_FLOAT_OES:null);if(n===w.f)return t.ALPHA;if(n===w.ic)return t.RGB;if(n===w.Ib)return t.RGBA;if(n===w.gb)return t.LUMINANCE;if(n===w.fb)return t.LUMINANCE_ALPHA;if(n===w.x)return t.DEPTH_COMPONENT;if(n===w.y)return t.DEPTH_STENCIL;if(n===w.tc)return t.RED;if(n===w.uc)return t.RED_INTEGER;if(n===w.rc)return t.RG;if(n===w.sc)return t.RG_INTEGER;if(n===w.jc)return t.RGB_INTEGER;if(n===w.Jb)return t.RGBA_INTEGER;if(n===w.qc||n===w.cc||n===w.dc||n===w.ec){if(s=e.get(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\"),null===s)return null;if(n===w.qc)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===w.cc)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===w.dc)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===w.ec)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===w.pc||n===w.oc||n===w.bc||n===w.ac){if(s=e.get(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\"),null===s)return null;if(n===w.pc)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===w.oc)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===w.bc)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===w.ac)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===w.mc)return s=e.get(\\\\\\\"WEBGL_compressed_texture_etc1\\\\\\\"),null!==s?s.COMPRESSED_RGB_ETC1_WEBGL:null;if((n===w.nc||n===w.Zb)&&(s=e.get(\\\\\\\"WEBGL_compressed_texture_etc\\\\\\\"),null!==s)){if(n===w.nc)return s.COMPRESSED_RGB8_ETC2;if(n===w.Zb)return s.COMPRESSED_RGBA8_ETC2_EAC}return n===w.Qb||n===w.Rb||n===w.Sb||n===w.Tb||n===w.Ub||n===w.Vb||n===w.Wb||n===w.Xb||n===w.Lb||n===w.Mb||n===w.Nb||n===w.Kb||n===w.Ob||n===w.Pb||n===w.Ec||n===w.Fc||n===w.Gc||n===w.Hc||n===w.Ic||n===w.Jc||n===w.Kc||n===w.Lc||n===w.zc||n===w.Ac||n===w.Bc||n===w.yc||n===w.Cc||n===w.Dc?(s=e.get(\\\\\\\"WEBGL_compressed_texture_astc\\\\\\\"),null!==s?n:null):n===w.Yb?(s=e.get(\\\\\\\"EXT_texture_compression_bptc\\\\\\\"),null!==s?n:null):n===w.ad?i?t.UNSIGNED_INT_24_8:(s=e.get(\\\\\\\"WEBGL_depth_texture\\\\\\\"),null!==s?s.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class In extends tt.a{constructor(t=[]){super(),this.cameras=t}}In.prototype.isArrayCamera=!0;var Fn=n(21);const Dn={type:\\\\\\\"move\\\\\\\"};class Bn{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Fn.a,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Fn.a,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new p.a,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new p.a),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Fn.a,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new p.a,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new p.a),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:\\\\\\\"disconnected\\\\\\\",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,r=null;const o=this._targetRay,a=this._grip,l=this._hand;if(t&&\\\\\\\"visible-blurred\\\\\\\"!==e.session.visibilityState)if(null!==o&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(Dn))),l&&t.hand){r=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new Fn.a;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const s=l.joints[i.jointName];null!==t&&(s.matrix.fromArray(t.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.jointRadius=t.radius),s.visible=null!==t}const i=l.joints[\\\\\\\"index-finger-tip\\\\\\\"],s=l.joints[\\\\\\\"thumb-tip\\\\\\\"],o=i.position.distanceTo(s.position),a=.02,c=.005;l.inputState.pinching&&o>a+c?(l.inputState.pinching=!1,this.dispatchEvent({type:\\\\\\\"pinchend\\\\\\\",handedness:t.handedness,target:this})):!l.inputState.pinching&&o<=a-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:\\\\\\\"pinchstart\\\\\\\",handedness:t.handedness,target:this}))}else null!==a&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),null!==s&&(a.matrix.fromArray(s.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),s.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(s.linearVelocity)):a.hasLinearVelocity=!1,s.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(s.angularVelocity)):a.hasAngularVelocity=!1));return null!==o&&(o.visible=null!==i),null!==a&&(a.visible=null!==s),null!==l&&(l.visible=null!==r),this}}class zn extends J.a{constructor(t,e){super();const n=this,i=t.state;let s=null,r=1,o=null,a=\\\\\\\"local-floor\\\\\\\",l=null,c=null,h=null,u=null,d=null,m=!1,f=null,g=null,v=null,y=null,x=null,b=null;const w=[],T=new Map,A=new tt.a;A.layers.enable(1),A.viewport=new _.a;const E=new tt.a;E.layers.enable(2),E.viewport=new _.a;const S=[A,E],C=new In;C.layers.enable(1),C.layers.enable(2);let N=null,L=null;function O(t){const e=T.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function P(){T.forEach((function(t,e){t.disconnect(e)})),T.clear(),N=null,L=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),h&&e.deleteFramebuffer(h),f&&e.deleteFramebuffer(f),g&&e.deleteRenderbuffer(g),v&&e.deleteRenderbuffer(v),h=null,f=null,g=null,v=null,d=null,u=null,c=null,s=null,z.stop(),n.isPresenting=!1,n.dispatchEvent({type:\\\\\\\"sessionend\\\\\\\"})}function R(t){const e=s.inputSources;for(let t=0;t<w.length;t++)T.set(e[t],w[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=T.get(n);i&&(i.dispatchEvent({type:\\\\\\\"disconnected\\\\\\\",data:n}),T.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],i=T.get(n);i&&i.dispatchEvent({type:\\\\\\\"connected\\\\\\\",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=w[t];return void 0===e&&(e=new Bn,w[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=w[t];return void 0===e&&(e=new Bn,w[t]=e),e.getGripSpace()},this.getHand=function(t){let e=w[t];return void 0===e&&(e=new Bn,w[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn(\\\\\\\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\\\\\\\")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn(\\\\\\\"THREE.WebXRManager: Cannot change reference space type while presenting.\\\\\\\")},this.getReferenceSpace=function(){return o},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return c},this.getFrame=function(){return y},this.getSession=function(){return s},this.setSession=async function(t){if(s=t,null!==s){s.addEventListener(\\\\\\\"select\\\\\\\",O),s.addEventListener(\\\\\\\"selectstart\\\\\\\",O),s.addEventListener(\\\\\\\"selectend\\\\\\\",O),s.addEventListener(\\\\\\\"squeeze\\\\\\\",O),s.addEventListener(\\\\\\\"squeezestart\\\\\\\",O),s.addEventListener(\\\\\\\"squeezeend\\\\\\\",O),s.addEventListener(\\\\\\\"end\\\\\\\",P),s.addEventListener(\\\\\\\"inputsourceschange\\\\\\\",R);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===s.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(s,e,n),s.updateRenderState({baseLayer:d})}else if(e instanceof WebGLRenderingContext){const n={antialias:!0,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(s,e,n),s.updateRenderState({layers:[d]})}else{m=t.antialias;let n=null;t.depth&&(b=e.DEPTH_BUFFER_BIT,t.stencil&&(b|=e.STENCIL_BUFFER_BIT),x=t.stencil?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,n=t.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24);const o={colorFormat:t.alpha?e.RGBA8:e.RGB8,depthFormat:n,scaleFactor:r};c=new XRWebGLBinding(s,e),u=c.createProjectionLayer(o),h=e.createFramebuffer(),s.updateRenderState({layers:[u]}),m&&(f=e.createFramebuffer(),g=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,g),e.renderbufferStorageMultisample(e.RENDERBUFFER,4,e.RGBA8,u.textureWidth,u.textureHeight),i.bindFramebuffer(e.FRAMEBUFFER,f),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.RENDERBUFFER,g),e.bindRenderbuffer(e.RENDERBUFFER,null),null!==n&&(v=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,v),e.renderbufferStorageMultisample(e.RENDERBUFFER,4,n,u.textureWidth,u.textureHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,x,e.RENDERBUFFER,v),e.bindRenderbuffer(e.RENDERBUFFER,null)),i.bindFramebuffer(e.FRAMEBUFFER,null))}o=await s.requestReferenceSpace(a),z.setContext(s),z.start(),n.isPresenting=!0,n.dispatchEvent({type:\\\\\\\"sessionstart\\\\\\\"})}};const I=new p.a,F=new p.a;function D(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===s)return;C.near=E.near=A.near=t.near,C.far=E.far=A.far=t.far,N===C.near&&L===C.far||(s.updateRenderState({depthNear:C.near,depthFar:C.far}),N=C.near,L=C.far);const e=t.parent,n=C.cameras;D(C,e);for(let t=0;t<n.length;t++)D(n[t],e);C.matrixWorld.decompose(C.position,C.quaternion,C.scale),t.position.copy(C.position),t.quaternion.copy(C.quaternion),t.scale.copy(C.scale),t.matrix.copy(C.matrix),t.matrixWorld.copy(C.matrixWorld);const i=t.children;for(let t=0,e=i.length;t<e;t++)i[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){I.setFromMatrixPosition(e.matrixWorld),F.setFromMatrixPosition(n.matrixWorld);const i=I.distanceTo(F),s=e.projectionMatrix.elements,r=n.projectionMatrix.elements,o=s[14]/(s[10]-1),a=s[14]/(s[10]+1),l=(s[9]+1)/s[5],c=(s[9]-1)/s[5],h=(s[8]-1)/s[0],u=(r[8]+1)/r[0],d=o*h,p=o*u,_=i/(-h+u),m=_*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(_),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const f=o+_,g=a+_,v=d-m,y=p+(i-m),x=l*a/g*f,b=c*a/g*f;t.projectionMatrix.makePerspective(v,y,x,b,f,g)}(C,A,E):C.projectionMatrix.copy(A.projectionMatrix)},this.getCamera=function(){return C},this.getFoveation=function(){return null!==u?u.fixedFoveation:null!==d?d.fixedFoveation:void 0},this.setFoveation=function(t){null!==u&&(u.fixedFoveation=t),null!==d&&void 0!==d.fixedFoveation&&(d.fixedFoveation=t)};let B=null;const z=new M;z.setAnimationLoop((function(t,n){if(l=n.getViewerPose(o),y=n,null!==l){const t=l.views;null!==d&&i.bindXRFramebuffer(d.framebuffer);let n=!1;t.length!==C.cameras.length&&(C.cameras.length=0,n=!0);for(let s=0;s<t.length;s++){const r=t[s];let o=null;if(null!==d)o=d.getViewport(r);else{const t=c.getViewSubImage(u,r);i.bindXRFramebuffer(h),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(e.FRAMEBUFFER,x,e.TEXTURE_2D,t.depthStencilTexture,0),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.colorTexture,0),o=t.viewport}const a=S[s];a.matrix.fromArray(r.transform.matrix),a.projectionMatrix.fromArray(r.projectionMatrix),a.viewport.set(o.x,o.y,o.width,o.height),0===s&&C.matrix.copy(a.matrix),!0===n&&C.cameras.push(a)}m&&(i.bindXRFramebuffer(f),null!==b&&e.clear(b))}const r=s.inputSources;for(let t=0;t<w.length;t++){const e=w[t],i=r[t];e.update(i,n,o)}if(B&&B(t,n),m){const t=u.textureWidth,n=u.textureHeight;i.bindFramebuffer(e.READ_FRAMEBUFFER,f),i.bindFramebuffer(e.DRAW_FRAMEBUFFER,h),e.invalidateFramebuffer(e.READ_FRAMEBUFFER,[x]),e.invalidateFramebuffer(e.DRAW_FRAMEBUFFER,[x]),e.blitFramebuffer(0,0,t,n,0,0,t,n,e.COLOR_BUFFER_BIT,e.NEAREST),e.invalidateFramebuffer(e.READ_FRAMEBUFFER,[e.COLOR_ATTACHMENT0]),i.bindFramebuffer(e.READ_FRAMEBUFFER,null),i.bindFramebuffer(e.DRAW_FRAMEBUFFER,null),i.bindFramebuffer(e.FRAMEBUFFER,f)}y=null})),this.setAnimationLoop=function(t){B=t},this.dispose=function(){}}}function kn(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap),n.alphaTest>0&&(e.alphaTest.value=n.alphaTest);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,e.reflectivity.value=n.reflectivity,e.ior.value=n.ior,e.refractionRatio.value=n.refractionRatio;const s=t.get(i).__maxMipLevel;void 0!==s&&(e.maxMipLevel.value=s)}let s,r;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?s=n.map:n.specularMap?s=n.specularMap:n.displacementMap?s=n.displacementMap:n.normalMap?s=n.normalMap:n.bumpMap?s=n.bumpMap:n.roughnessMap?s=n.roughnessMap:n.metalnessMap?s=n.metalnessMap:n.alphaMap?s=n.alphaMap:n.emissiveMap?s=n.emissiveMap:n.clearcoatMap?s=n.clearcoatMap:n.clearcoatNormalMap?s=n.clearcoatNormalMap:n.clearcoatRoughnessMap?s=n.clearcoatRoughnessMap:n.specularIntensityMap?s=n.specularIntensityMap:n.specularTintMap?s=n.specularTintMap:n.transmissionMap?s=n.transmissionMap:n.thicknessMap&&(s=n.thicknessMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uvTransform.value.copy(s.matrix)),n.aoMap?r=n.aoMap:n.lightMap&&(r=n.lightMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uv2Transform.value.copy(r.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,n.side===w.i&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),n.side===w.i&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,s,r,o){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===w.i&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===w.i&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===w.i&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===w.i&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.ior.value=e.ior,e.sheen>0&&(t.sheenTint.value.copy(e.sheenTint).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness);e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,e.side===w.i&&t.clearcoatNormalScale.value.negate()));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap),t.attenuationDistance.value=e.attenuationDistance,t.attenuationTint.value.copy(e.attenuationTint));t.specularIntensity.value=e.specularIntensity,t.specularTint.value.copy(e.specularTint),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap);e.specularTintMap&&(t.specularTintMap.value=e.specularTintMap)}(t,i,o):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===w.i&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===w.i&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,e.side===w.i&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),e.side===w.i&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let s;e.map?s=e.map:e.alphaMap&&(s=e.alphaMap);void 0!==s&&(!0===s.matrixAutoUpdate&&s.updateMatrix(),t.uvTransform.value.copy(s.matrix))}(t,i,s,r):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function Un(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=Object(It.b)(\\\\\\\"canvas\\\\\\\");return t.style.display=\\\\\\\"block\\\\\\\",t}(),n=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,s=void 0===t.depth||t.depth,r=void 0===t.stencil||t.stencil,o=void 0!==t.antialias&&t.antialias,a=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:\\\\\\\"default\\\\\\\",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let u=null,d=null;const m=[],f=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=w.U,this.physicallyCorrectLights=!1,this.toneMapping=w.vb,this.toneMappingExposure=1;const g=this;let v=!1,y=0,x=0,b=null,S=-1,C=null;const N=new _.a,L=new _.a;let O=null,P=e.width,R=e.height,I=1,F=null,D=null;const B=new _.a(0,0,P,R),z=new _.a(0,0,P,R);let k=!1;const U=[],G=new T.a;let V=!1,H=!1,Y=null;const J=new A.a,Z=new p.a,Q={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function tt(){return null===b?I:1}let et,nt,it,st,ot,at,lt,ct,ht,ut,dt,pt,_t,mt,ft,gt,vt,yt,xt,bt,wt,Tt,At,Mt=n;function Et(t,n){for(let i=0;i<t.length;i++){const s=t[i],r=e.getContext(s,n);if(null!==r)return r}return null}try{const t={alpha:i,depth:s,stencil:r,antialias:o,premultipliedAlpha:a,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener(\\\\\\\"webglcontextlost\\\\\\\",Nt,!1),e.addEventListener(\\\\\\\"webglcontextrestored\\\\\\\",Lt,!1),null===Mt){const e=[\\\\\\\"webgl2\\\\\\\",\\\\\\\"webgl\\\\\\\",\\\\\\\"experimental-webgl\\\\\\\"];if(!0===g.isWebGL1Renderer&&e.shift(),Mt=Et(e,t),null===Mt)throw Et(e)?new Error(\\\\\\\"Error creating WebGL context with your selected attributes.\\\\\\\"):new Error(\\\\\\\"Error creating WebGL context.\\\\\\\")}void 0===Mt.getShaderPrecisionFormat&&(Mt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error(\\\\\\\"THREE.WebGLRenderer: \\\\\\\"+t.message),t}function St(){et=new Rt(Mt),nt=new X(Mt,et,t),et.init(nt),Tt=new Rn(Mt,et,nt),it=new Ln(Mt,et,nt),U[0]=Mt.BACK,st=new Bt(Mt),ot=new fn,at=new Pn(Mt,et,it,ot,nt,Tt,st),lt=new rt(g),ct=new Pt(g),ht=new E(Mt,nt),At=new W(Mt,et,ht,nt),ut=new Ft(Mt,ht,st,At),dt=new jt(Mt,ut,ht,st),xt=new Vt(Mt,nt,at),gt=new $(ot),pt=new mn(g,lt,ct,et,nt,At,gt),_t=new kn(ot),mt=new xn(ot),ft=new En(et,nt),yt=new j(g,lt,it,dt,a),vt=new Nn(g,dt,nt),bt=new q(Mt,et,st,nt),wt=new Dt(Mt,et,st,nt),st.programs=pt.programs,g.capabilities=nt,g.extensions=et,g.properties=ot,g.renderLists=mt,g.shadowMap=vt,g.state=it,g.info=st}St();const Ct=new zn(g,Mt);function Nt(t){t.preventDefault(),console.log(\\\\\\\"THREE.WebGLRenderer: Context Lost.\\\\\\\"),v=!0}function Lt(){console.log(\\\\\\\"THREE.WebGLRenderer: Context Restored.\\\\\\\"),v=!1;const t=st.autoReset,e=vt.enabled,n=vt.autoUpdate,i=vt.needsUpdate,s=vt.type;St(),st.autoReset=t,vt.enabled=e,vt.autoUpdate=n,vt.needsUpdate=i,vt.type=s}function Ot(t){const e=t.target;e.removeEventListener(\\\\\\\"dispose\\\\\\\",Ot),function(t){(function(t){const e=ot.get(t).programs;void 0!==e&&e.forEach((function(t){pt.releaseProgram(t)}))})(t),ot.remove(t)}(e)}this.xr=Ct,this.getContext=function(){return Mt},this.getContextAttributes=function(){return Mt.getContextAttributes()},this.forceContextLoss=function(){const t=et.get(\\\\\\\"WEBGL_lose_context\\\\\\\");t&&t.loseContext()},this.forceContextRestore=function(){const t=et.get(\\\\\\\"WEBGL_lose_context\\\\\\\");t&&t.restoreContext()},this.getPixelRatio=function(){return I},this.setPixelRatio=function(t){void 0!==t&&(I=t,this.setSize(P,R,!1))},this.getSize=function(t){return t.set(P,R)},this.setSize=function(t,n,i){Ct.isPresenting?console.warn(\\\\\\\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\\\\\\\"):(P=t,R=n,e.width=Math.floor(t*I),e.height=Math.floor(n*I),!1!==i&&(e.style.width=t+\\\\\\\"px\\\\\\\",e.style.height=n+\\\\\\\"px\\\\\\\"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(P*I,R*I).floor()},this.setDrawingBufferSize=function(t,n,i){P=t,R=n,I=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(N)},this.getViewport=function(t){return t.copy(B)},this.setViewport=function(t,e,n,i){t.isVector4?B.set(t.x,t.y,t.z,t.w):B.set(t,e,n,i),it.viewport(N.copy(B).multiplyScalar(I).floor())},this.getScissor=function(t){return t.copy(z)},this.setScissor=function(t,e,n,i){t.isVector4?z.set(t.x,t.y,t.z,t.w):z.set(t,e,n,i),it.scissor(L.copy(z).multiplyScalar(I).floor())},this.getScissorTest=function(){return k},this.setScissorTest=function(t){it.setScissorTest(k=t)},this.setOpaqueSort=function(t){F=t},this.setTransparentSort=function(t){D=t},this.getClearColor=function(t){return t.copy(yt.getClearColor())},this.setClearColor=function(){yt.setClearColor.apply(yt,arguments)},this.getClearAlpha=function(){return yt.getClearAlpha()},this.setClearAlpha=function(){yt.setClearAlpha.apply(yt,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=Mt.COLOR_BUFFER_BIT),(void 0===e||e)&&(i|=Mt.DEPTH_BUFFER_BIT),(void 0===n||n)&&(i|=Mt.STENCIL_BUFFER_BIT),Mt.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(\\\\\\\"webglcontextlost\\\\\\\",Nt,!1),e.removeEventListener(\\\\\\\"webglcontextrestored\\\\\\\",Lt,!1),mt.dispose(),ft.dispose(),ot.dispose(),lt.dispose(),ct.dispose(),dt.dispose(),At.dispose(),Ct.dispose(),Ct.removeEventListener(\\\\\\\"sessionstart\\\\\\\",kt),Ct.removeEventListener(\\\\\\\"sessionend\\\\\\\",Ut),Y&&(Y.dispose(),Y=null),Gt.stop()},this.renderBufferImmediate=function(t,e){At.initAttributes();const n=ot.get(t);t.hasPositions&&!n.position&&(n.position=Mt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=Mt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=Mt.createBuffer()),t.hasColors&&!n.color&&(n.color=Mt.createBuffer());const i=e.getAttributes();t.hasPositions&&(Mt.bindBuffer(Mt.ARRAY_BUFFER,n.position),Mt.bufferData(Mt.ARRAY_BUFFER,t.positionArray,Mt.DYNAMIC_DRAW),At.enableAttribute(i.position.location),Mt.vertexAttribPointer(i.position.location,3,Mt.FLOAT,!1,0,0)),t.hasNormals&&(Mt.bindBuffer(Mt.ARRAY_BUFFER,n.normal),Mt.bufferData(Mt.ARRAY_BUFFER,t.normalArray,Mt.DYNAMIC_DRAW),At.enableAttribute(i.normal.location),Mt.vertexAttribPointer(i.normal.location,3,Mt.FLOAT,!1,0,0)),t.hasUvs&&(Mt.bindBuffer(Mt.ARRAY_BUFFER,n.uv),Mt.bufferData(Mt.ARRAY_BUFFER,t.uvArray,Mt.DYNAMIC_DRAW),At.enableAttribute(i.uv.location),Mt.vertexAttribPointer(i.uv.location,2,Mt.FLOAT,!1,0,0)),t.hasColors&&(Mt.bindBuffer(Mt.ARRAY_BUFFER,n.color),Mt.bufferData(Mt.ARRAY_BUFFER,t.colorArray,Mt.DYNAMIC_DRAW),At.enableAttribute(i.color.location),Mt.vertexAttribPointer(i.color.location,3,Mt.FLOAT,!1,0,0)),At.disableUnusedAttributes(),Mt.drawArrays(Mt.TRIANGLES,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,s,r){null===e&&(e=Q);const o=s.isMesh&&s.matrixWorld.determinant()<0,a=Zt(t,e,n,i,s);it.setMaterial(i,o);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===i.wireframe&&(l=ut.getWireframeAttribute(n),u=2),At.setup(s,i,a,n,l);let d=bt;null!==l&&(h=ht.get(l),d=wt,d.setIndex(h));const p=null!==l?l.count:c.count,_=n.drawRange.start*u,m=n.drawRange.count*u,f=null!==r?r.start*u:0,g=null!==r?r.count*u:1/0,v=Math.max(_,f),y=Math.min(p,_+m,f+g)-1,x=Math.max(0,y-v+1);if(0!==x){if(s.isMesh)!0===i.wireframe?(it.setLineWidth(i.wireframeLinewidth*tt()),d.setMode(Mt.LINES)):d.setMode(Mt.TRIANGLES);else if(s.isLine){let t=i.linewidth;void 0===t&&(t=1),it.setLineWidth(t*tt()),s.isLineSegments?d.setMode(Mt.LINES):s.isLineLoop?d.setMode(Mt.LINE_LOOP):d.setMode(Mt.LINE_STRIP)}else s.isPoints?d.setMode(Mt.POINTS):s.isSprite&&d.setMode(Mt.TRIANGLES);if(s.isInstancedMesh)d.renderInstances(v,x,s.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(v,x,t)}else d.render(v,x)}},this.compile=function(t,e){d=ft.get(t),d.init(),f.push(d),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(d.pushLight(t),t.castShadow&&d.pushShadow(t))})),d.setupLights(g.physicallyCorrectLights),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let i=0;i<n.length;i++){$t(n[i],t,e)}else $t(n,t,e)})),f.pop(),d=null};let zt=null;function kt(){Gt.stop()}function Ut(){Gt.start()}const Gt=new M;function Wt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)d.pushLight(t),t.castShadow&&d.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||G.intersectsSprite(t)){i&&Z.setFromMatrixPosition(t.matrixWorld).applyMatrix4(J);const e=dt.update(t),s=t.material;s.visible&&u.push(t,e,s,n,Z.z,null)}}else if(t.isImmediateRenderObject)i&&Z.setFromMatrixPosition(t.matrixWorld).applyMatrix4(J),u.push(t,null,t.material,n,Z.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==st.render.frame&&(t.skeleton.update(),t.skeleton.frame=st.render.frame),!t.frustumCulled||G.intersectsObject(t))){i&&Z.setFromMatrixPosition(t.matrixWorld).applyMatrix4(J);const e=dt.update(t),s=t.material;if(Array.isArray(s)){const i=e.groups;for(let r=0,o=i.length;r<o;r++){const o=i[r],a=s[o.materialIndex];a&&a.visible&&u.push(t,e,a,n,Z.z,o)}}else s.visible&&u.push(t,e,s,n,Z.z,null)}const s=t.children;for(let t=0,r=s.length;t<r;t++)Wt(s[t],e,n,i)}function qt(t,e,n,i){const s=t.opaque,r=t.transmissive,a=t.transparent;d.setupLightsView(n),r.length>0&&function(t,e,n){if(null===Y){const t=!0===o&&!0===nt.isWebGL2;Y=new(t?Ht:K)(1024,1024,{generateMipmaps:!0,type:null!==Tt.convert(w.M)?w.M:w.Zc,minFilter:w.Y,magFilter:w.ob,wrapS:w.n,wrapT:w.n})}const i=g.getRenderTarget();g.setRenderTarget(Y),g.clear();const s=g.toneMapping;g.toneMapping=w.vb,Xt(t,e,n),g.toneMapping=s,at.updateMultisampleRenderTarget(Y),at.updateRenderTargetMipmap(Y),g.setRenderTarget(i)}(s,e,n),i&&it.viewport(N.copy(i)),s.length>0&&Xt(s,e,n),r.length>0&&Xt(r,e,n),a.length>0&&Xt(a,e,n)}function Xt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let s=0,r=t.length;s<r;s++){const r=t[s],o=r.object,a=r.geometry,l=null===i?r.material:i,c=r.group;o.layers.test(n.layers)&&Yt(o,e,n,a,l,c)}}function Yt(t,e,n,i,s,r){if(t.onBeforeRender(g,e,n,i,s,r),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),s.onBeforeRender(g,e,n,i,t,r),t.isImmediateRenderObject){const r=Zt(n,e,i,s,t);it.setMaterial(s),At.reset(),function(t,e){t.render((function(t){g.renderBufferImmediate(t,e)}))}(t,r)}else!0===s.transparent&&s.side===w.z?(s.side=w.i,s.needsUpdate=!0,g.renderBufferDirect(n,e,i,s,t,r),s.side=w.H,s.needsUpdate=!0,g.renderBufferDirect(n,e,i,s,t,r),s.side=w.z):g.renderBufferDirect(n,e,i,s,t,r);t.onAfterRender(g,e,n,i,s,r)}function $t(t,e,n){!0!==e.isScene&&(e=Q);const i=ot.get(t),s=d.state.lights,r=d.state.shadowsArray,o=s.state.version,a=pt.getParameters(t,s.state,r,e,n),l=pt.getProgramCacheKey(a);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=(t.isMeshStandardMaterial?ct:lt).get(t.envMap||i.environment),void 0===c&&(t.addEventListener(\\\\\\\"dispose\\\\\\\",Ot),c=new Map,i.programs=c);let h=c.get(l);if(void 0!==h){if(i.currentProgram===h&&i.lightsStateVersion===o)return Jt(t,a),h}else a.uniforms=pt.getUniforms(t),t.onBuild(a,g),t.onBeforeCompile(a,g),h=pt.acquireProgram(a,l),c.set(l,h),i.uniforms=a.uniforms;const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=gt.uniform),Jt(t,a),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=o,i.needsLights&&(u.ambientLightColor.value=s.state.ambient,u.lightProbe.value=s.state.probe,u.directionalLights.value=s.state.directional,u.directionalLightShadows.value=s.state.directionalShadow,u.spotLights.value=s.state.spot,u.spotLightShadows.value=s.state.spotShadow,u.rectAreaLights.value=s.state.rectArea,u.ltc_1.value=s.state.rectAreaLTC1,u.ltc_2.value=s.state.rectAreaLTC2,u.pointLights.value=s.state.point,u.pointLightShadows.value=s.state.pointShadow,u.hemisphereLights.value=s.state.hemi,u.directionalShadowMap.value=s.state.directionalShadowMap,u.directionalShadowMatrix.value=s.state.directionalShadowMatrix,u.spotShadowMap.value=s.state.spotShadowMap,u.spotShadowMatrix.value=s.state.spotShadowMatrix,u.pointShadowMap.value=s.state.pointShadowMap,u.pointShadowMatrix.value=s.state.pointShadowMatrix);const p=h.getUniforms(),_=Xe.seqWithValue(p.seq,u);return i.currentProgram=h,i.uniformsList=_,h}function Jt(t,e){const n=ot.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.morphTargets=e.morphTargets,n.morphNormals=e.morphNormals,n.morphTargetsCount=e.morphTargetsCount,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas,n.vertexTangents=e.vertexTangents}function Zt(t,e,n,i,s){!0!==e.isScene&&(e=Q),at.resetTextureUnits();const r=e.fog,o=i.isMeshStandardMaterial?e.environment:null,a=null===b?g.outputEncoding:b.texture.encoding,l=(i.isMeshStandardMaterial?ct:lt).get(i.envMap||o),c=!0===i.vertexColors&&!!n&&!!n.attributes.color&&4===n.attributes.color.itemSize,h=!!i.normalMap&&!!n&&!!n.attributes.tangent,u=!!n&&!!n.morphAttributes.position,p=!!n&&!!n.morphAttributes.normal,_=n&&n.morphAttributes.position?n.morphAttributes.position.length:0,m=ot.get(i),f=d.state.lights;if(!0===V&&(!0===H||t!==C)){const e=t===C&&i.id===S;gt.setState(i,t,e)}let v=!1;i.version===m.__version?m.needsLights&&m.lightsStateVersion!==f.state.version||m.outputEncoding!==a||s.isInstancedMesh&&!1===m.instancing?v=!0:s.isInstancedMesh||!0!==m.instancing?s.isSkinnedMesh&&!1===m.skinning?v=!0:s.isSkinnedMesh||!0!==m.skinning?m.envMap!==l||i.fog&&m.fog!==r?v=!0:void 0===m.numClippingPlanes||m.numClippingPlanes===gt.numPlanes&&m.numIntersection===gt.numIntersection?(m.vertexAlphas!==c||m.vertexTangents!==h||m.morphTargets!==u||m.morphNormals!==p||!0===nt.isWebGL2&&m.morphTargetsCount!==_)&&(v=!0):v=!0:v=!0:v=!0:(v=!0,m.__version=i.version);let y=m.currentProgram;!0===v&&(y=$t(i,e,s));let x=!1,w=!1,T=!1;const A=y.getUniforms(),M=m.uniforms;if(it.useProgram(y.program)&&(x=!0,w=!0,T=!0),i.id!==S&&(S=i.id,w=!0),x||C!==t){if(A.setValue(Mt,\\\\\\\"projectionMatrix\\\\\\\",t.projectionMatrix),nt.logarithmicDepthBuffer&&A.setValue(Mt,\\\\\\\"logDepthBufFC\\\\\\\",2/(Math.log(t.far+1)/Math.LN2)),C!==t&&(C=t,w=!0,T=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=A.map.cameraPosition;void 0!==e&&e.setValue(Mt,Z.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&A.setValue(Mt,\\\\\\\"isOrthographic\\\\\\\",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||s.isSkinnedMesh)&&A.setValue(Mt,\\\\\\\"viewMatrix\\\\\\\",t.matrixWorldInverse)}if(s.isSkinnedMesh){A.setOptional(Mt,s,\\\\\\\"bindMatrix\\\\\\\"),A.setOptional(Mt,s,\\\\\\\"bindMatrixInverse\\\\\\\");const t=s.skeleton;t&&(nt.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),A.setValue(Mt,\\\\\\\"boneTexture\\\\\\\",t.boneTexture,at),A.setValue(Mt,\\\\\\\"boneTextureSize\\\\\\\",t.boneTextureSize)):A.setOptional(Mt,t,\\\\\\\"boneMatrices\\\\\\\"))}var E,N;return!n||void 0===n.morphAttributes.position&&void 0===n.morphAttributes.normal||xt.update(s,n,i,y),(w||m.receiveShadow!==s.receiveShadow)&&(m.receiveShadow=s.receiveShadow,A.setValue(Mt,\\\\\\\"receiveShadow\\\\\\\",s.receiveShadow)),w&&(A.setValue(Mt,\\\\\\\"toneMappingExposure\\\\\\\",g.toneMappingExposure),m.needsLights&&(N=T,(E=M).ambientLightColor.needsUpdate=N,E.lightProbe.needsUpdate=N,E.directionalLights.needsUpdate=N,E.directionalLightShadows.needsUpdate=N,E.pointLights.needsUpdate=N,E.pointLightShadows.needsUpdate=N,E.spotLights.needsUpdate=N,E.spotLightShadows.needsUpdate=N,E.rectAreaLights.needsUpdate=N,E.hemisphereLights.needsUpdate=N),r&&i.fog&&_t.refreshFogUniforms(M,r),_t.refreshMaterialUniforms(M,i,I,R,Y),Xe.upload(Mt,m.uniformsList,M,at)),i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(Xe.upload(Mt,m.uniformsList,M,at),i.uniformsNeedUpdate=!1),i.isSpriteMaterial&&A.setValue(Mt,\\\\\\\"center\\\\\\\",s.center),A.setValue(Mt,\\\\\\\"modelViewMatrix\\\\\\\",s.modelViewMatrix),A.setValue(Mt,\\\\\\\"normalMatrix\\\\\\\",s.normalMatrix),A.setValue(Mt,\\\\\\\"modelMatrix\\\\\\\",s.matrixWorld),y}Gt.setAnimationLoop((function(t){zt&&zt(t)})),\\\\\\\"undefined\\\\\\\"!=typeof window&&Gt.setContext(window),this.setAnimationLoop=function(t){zt=t,Ct.setAnimationLoop(t),null===t?Gt.stop():Gt.start()},Ct.addEventListener(\\\\\\\"sessionstart\\\\\\\",kt),Ct.addEventListener(\\\\\\\"sessionend\\\\\\\",Ut),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error(\\\\\\\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\\\\\\\");if(!0===v)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===Ct.enabled&&!0===Ct.isPresenting&&(!0===Ct.cameraAutoUpdate&&Ct.updateCamera(e),e=Ct.getCamera()),!0===t.isScene&&t.onBeforeRender(g,t,e,b),d=ft.get(t,f.length),d.init(),f.push(d),J.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),G.setFromProjectionMatrix(J),H=this.localClippingEnabled,V=gt.init(this.clippingPlanes,H,e),u=mt.get(t,m.length),u.init(),m.push(u),Wt(t,e,0,g.sortObjects),u.finish(),!0===g.sortObjects&&u.sort(F,D),!0===V&&gt.beginShadows();const n=d.state.shadowsArray;if(vt.render(n,t,e),!0===V&&gt.endShadows(),!0===this.info.autoReset&&this.info.reset(),yt.render(u,t),d.setupLights(g.physicallyCorrectLights),e.isArrayCamera){const n=e.cameras;for(let e=0,i=n.length;e<i;e++){const i=n[e];qt(u,t,i,i.viewport)}}else qt(u,t,e);null!==b&&(at.updateMultisampleRenderTarget(b),at.updateRenderTargetMipmap(b)),!0===t.isScene&&t.onAfterRender(g,t,e),it.buffers.depth.setTest(!0),it.buffers.depth.setMask(!0),it.buffers.color.setMask(!0),it.setPolygonOffset(!1),At.resetDefaultState(),S=-1,C=null,f.pop(),d=f.length>0?f[f.length-1]:null,m.pop(),u=m.length>0?m[m.length-1]:null},this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return x},this.getRenderTarget=function(){return b},this.setRenderTarget=function(t,e=0,n=0){b=t,y=e,x=n,t&&void 0===ot.get(t).__webglFramebuffer&&at.setupRenderTarget(t);let i=null,s=!1,r=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(r=!0);const o=ot.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=o[e],s=!0):i=t.isWebGLMultisampleRenderTarget?ot.get(t).__webglMultisampledFramebuffer:o,N.copy(t.viewport),L.copy(t.scissor),O=t.scissorTest}else N.copy(B).multiplyScalar(I).floor(),L.copy(z).multiplyScalar(I).floor(),O=k;if(it.bindFramebuffer(Mt.FRAMEBUFFER,i)&&nt.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(U.length!==n.length||U[0]!==Mt.COLOR_ATTACHMENT0){for(let t=0,e=n.length;t<e;t++)U[t]=Mt.COLOR_ATTACHMENT0+t;U.length=n.length,e=!0}}else 1===U.length&&U[0]===Mt.COLOR_ATTACHMENT0||(U[0]=Mt.COLOR_ATTACHMENT0,U.length=1,e=!0);else 1===U.length&&U[0]===Mt.BACK||(U[0]=Mt.BACK,U.length=1,e=!0);e&&(nt.isWebGL2?Mt.drawBuffers(U):et.get(\\\\\\\"WEBGL_draw_buffers\\\\\\\").drawBuffersWEBGL(U))}if(it.viewport(N),it.scissor(L),it.setScissorTest(O),s){const i=ot.get(t.texture);Mt.framebufferTexture2D(Mt.FRAMEBUFFER,Mt.COLOR_ATTACHMENT0,Mt.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(r){const i=ot.get(t.texture),s=e||0;Mt.framebufferTextureLayer(Mt.FRAMEBUFFER,Mt.COLOR_ATTACHMENT0,i.__webglTexture,n||0,s)}S=-1},this.readRenderTargetPixels=function(t,e,n,i,s,r,o){if(!t||!t.isWebGLRenderTarget)return void console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\\\\\\\");let a=ot.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==o&&(a=a[o]),a){it.bindFramebuffer(Mt.FRAMEBUFFER,a);try{const o=t.texture,a=o.format,l=o.type;if(a!==w.Ib&&Tt.convert(a)!==Mt.getParameter(Mt.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\\\\\\\");const c=l===w.M&&(et.has(\\\\\\\"EXT_color_buffer_half_float\\\\\\\")||nt.isWebGL2&&et.has(\\\\\\\"EXT_color_buffer_float\\\\\\\"));if(!(l===w.Zc||Tt.convert(l)===Mt.getParameter(Mt.IMPLEMENTATION_COLOR_READ_TYPE)||l===w.G&&(nt.isWebGL2||et.has(\\\\\\\"OES_texture_float\\\\\\\")||et.has(\\\\\\\"WEBGL_color_buffer_float\\\\\\\"))||c))return void console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\\\\\\\");Mt.checkFramebufferStatus(Mt.FRAMEBUFFER)===Mt.FRAMEBUFFER_COMPLETE?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-s&&Mt.readPixels(e,n,i,s,Tt.convert(a),Tt.convert(l),r):console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\\\\\\\")}finally{const t=null!==b?ot.get(b).__webglFramebuffer:null;it.bindFramebuffer(Mt.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),s=Math.floor(e.image.width*i),r=Math.floor(e.image.height*i);let o=Tt.convert(e.format);nt.isWebGL2&&(o===Mt.RGB&&(o=Mt.RGB8),o===Mt.RGBA&&(o=Mt.RGBA8)),at.setTexture2D(e,0),Mt.copyTexImage2D(Mt.TEXTURE_2D,n,o,t.x,t.y,s,r,0),it.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const s=e.image.width,r=e.image.height,o=Tt.convert(n.format),a=Tt.convert(n.type);at.setTexture2D(n,0),Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL,n.flipY),Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Mt.pixelStorei(Mt.UNPACK_ALIGNMENT,n.unpackAlignment),e.isDataTexture?Mt.texSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,s,r,o,a,e.image.data):e.isCompressedTexture?Mt.compressedTexSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,o,e.mipmaps[0].data):Mt.texSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,o,a,e.image),0===i&&n.generateMipmaps&&Mt.generateMipmap(Mt.TEXTURE_2D),it.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,s=0){if(g.isWebGL1Renderer)return void console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\\\\\\\");const r=t.max.x-t.min.x+1,o=t.max.y-t.min.y+1,a=t.max.z-t.min.z+1,l=Tt.convert(i.format),c=Tt.convert(i.type);let h;if(i.isDataTexture3D)at.setTexture3D(i,0),h=Mt.TEXTURE_3D;else{if(!i.isDataTexture2DArray)return void console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\\\\\\\");at.setTexture2DArray(i,0),h=Mt.TEXTURE_2D_ARRAY}Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL,i.flipY),Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),Mt.pixelStorei(Mt.UNPACK_ALIGNMENT,i.unpackAlignment);const u=Mt.getParameter(Mt.UNPACK_ROW_LENGTH),d=Mt.getParameter(Mt.UNPACK_IMAGE_HEIGHT),p=Mt.getParameter(Mt.UNPACK_SKIP_PIXELS),_=Mt.getParameter(Mt.UNPACK_SKIP_ROWS),m=Mt.getParameter(Mt.UNPACK_SKIP_IMAGES),f=n.isCompressedTexture?n.mipmaps[0]:n.image;Mt.pixelStorei(Mt.UNPACK_ROW_LENGTH,f.width),Mt.pixelStorei(Mt.UNPACK_IMAGE_HEIGHT,f.height),Mt.pixelStorei(Mt.UNPACK_SKIP_PIXELS,t.min.x),Mt.pixelStorei(Mt.UNPACK_SKIP_ROWS,t.min.y),Mt.pixelStorei(Mt.UNPACK_SKIP_IMAGES,t.min.z),n.isDataTexture||n.isDataTexture3D?Mt.texSubImage3D(h,s,e.x,e.y,e.z,r,o,a,l,c,f.data):n.isCompressedTexture?(console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\\\\\\\"),Mt.compressedTexSubImage3D(h,s,e.x,e.y,e.z,r,o,a,l,f.data)):Mt.texSubImage3D(h,s,e.x,e.y,e.z,r,o,a,l,c,f),Mt.pixelStorei(Mt.UNPACK_ROW_LENGTH,u),Mt.pixelStorei(Mt.UNPACK_IMAGE_HEIGHT,d),Mt.pixelStorei(Mt.UNPACK_SKIP_PIXELS,p),Mt.pixelStorei(Mt.UNPACK_SKIP_ROWS,_),Mt.pixelStorei(Mt.UNPACK_SKIP_IMAGES,m),0===s&&i.generateMipmaps&&Mt.generateMipmap(h),it.unbindTexture()},this.initTexture=function(t){at.setTexture2D(t,0),it.unbindTexture()},this.resetState=function(){y=0,x=0,b=null,it.reset(),At.reset()},\\\\\\\"undefined\\\\\\\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"observe\\\\\\\",{detail:this}))}const Gn={};var Vn,Hn,jn;!function(t){t.WEBGL=\\\\\\\"webgl\\\\\\\",t.WEBGL2=\\\\\\\"webgl2\\\\\\\",t.EXPERIMENTAL_WEBGL=\\\\\\\"experimental-webgl\\\\\\\",t.EXPERIMENTAL_WEBGL2=\\\\\\\"experimental-webgl2\\\\\\\"}(Vn||(Vn={}));class Wn{constructor(){this._next_renderer_id=0,this._renderers={},this._printDebug=!1,this._require_webgl2=!1,this._resolves=[]}setPrintDebug(t=!0){this._printDebug=t}printDebug(){return this._printDebug}printDebugMessage(t){this._printDebug&&console.warn(\\\\\\\"[Poly debug]\\\\\\\",t)}setRequireWebGL2(){this._require_webgl2||(this._require_webgl2=!0)}webgl2Available(){return void 0===this._webgl2_available&&(this._webgl2_available=this._set_webgl2_available()),this._webgl2_available}_set_webgl2_available(){const t=document.createElement(\\\\\\\"canvas\\\\\\\");return null!=(window.WebGL2RenderingContext&&t.getContext(Vn.WEBGL2))}createWebGLRenderer(t){const e=new Un(t);return this.printDebugMessage([\\\\\\\"create renderer:\\\\\\\",t]),e}createRenderingContext(t){let e=null;return this._require_webgl2&&(e=this._getRenderingContextWebgl(t,!0),e||console.warn(\\\\\\\"failed to create webgl2 context\\\\\\\")),e||(e=this._getRenderingContextWebgl(t,!1)),e}_getRenderingContextWebgl(t,e){let n;n=this.webgl2Available()||e?Vn.WEBGL2:Vn.WEBGL;let i=t.getContext(n,Gn);return i?this.printDebugMessage(`create gl context: ${n}.`):(n=e?Vn.EXPERIMENTAL_WEBGL2:Vn.EXPERIMENTAL_WEBGL,this.printDebugMessage(`create gl context: ${n}.`),i=t.getContext(n,Gn)),i}registerRenderer(t){if(t._polygon_id)throw new Error(\\\\\\\"render already registered\\\\\\\");t._polygon_id=this._next_renderer_id+=1,this._renderers[t._polygon_id]=t,1==Object.keys(this._renderers).length&&this.flush_callbacks_with_renderer(t)}deregisterRenderer(t){delete this._renderers[t._polygon_id],t.dispose()}firstRenderer(){const t=Object.keys(this._renderers)[0];return t?this._renderers[t]:null}renderers(){return Object.values(this._renderers)}flush_callbacks_with_renderer(t){let e;for(;e=this._resolves.pop();)e(t)}async waitForRenderer(){const t=this.firstRenderer();return t||new Promise(((t,e)=>{this._resolves.push(t)}))}renderTarget(t,e,n){return this.webgl2Available()?new Ht(t,e,n):new K(t,e,n)}}class qn{constructor(){this._root=\\\\\\\"/three/js/libs\\\\\\\",this._BASISPath=\\\\\\\"/basis\\\\\\\",this._DRACOPath=\\\\\\\"/draco\\\\\\\",this._DRACOGLTFPath=\\\\\\\"/draco/gltf\\\\\\\"}root(){return this._root}setRoot(t){this._root=t}BASISPath(){return this._BASISPath}DRACOPath(){return this._DRACOPath}DRACOGLTFPath(){return this._DRACOGLTFPath}}class Xn{constructor(t){this.poly=t,this._node_register=new Map,this._node_register_categories=new Map,this._node_register_options=new Map}static type(t){return this.filterType(t.type())}static filterType(t){return t.toLowerCase()}register(t,e,n){const i=t.context(),s=Xn.type(t);let r=this._node_register.get(i);r||(r=new Map,this._node_register.set(i,r));if(r.get(s))console.error(`node ${i}/${s} already registered`);else{if(r.set(s,t),e){let t=this._node_register_categories.get(i);t||(t=new Map,this._node_register_categories.set(i,t)),t.set(s,e)}if(n){let t=this._node_register_options.get(i);t||(t=new Map,this._node_register_options.set(i,t)),t.set(s,n)}this.poly.pluginsRegister.registerNode(t)}}deregister(t,e){var n,i,s;e=Xn.filterType(e),null===(n=this._node_register.get(t))||void 0===n||n.delete(e),null===(i=this._node_register_categories.get(t))||void 0===i||i.delete(e),null===(s=this._node_register_options.get(t))||void 0===s||s.delete(e)}isRegistered(t,e){const n=this._node_register.get(t);return!!n&&(e=Xn.filterType(e),null!=n.get(e))}nodeOptions(t,e){var n;return e=Xn.filterType(e),null===(n=this._node_register_options.get(t))||void 0===n?void 0:n.get(e)}registeredNodesForContextAndParentType(t,e){var n;if(this._node_register.get(t)){const i=[];return null===(n=this._node_register.get(t))||void 0===n||n.forEach(((t,e)=>{i.push(t)})),i.filter((n=>{var i;const s=Xn.type(n),r=null===(i=this._node_register_options.get(t))||void 0===i?void 0:i.get(s);if(r){const n=r.only,i=r.except,s=`${t}/${e}`;return n?n.includes(s):!i||!i.includes(s)}return!0}))}return[]}registeredNodes(t,e){const n={},i=this.registeredNodesForContextAndParentType(t,e);for(let t of i){n[Xn.type(t)]=t}return n}registeredCategory(t,e){var n;return e=Xn.filterType(e),null===(n=this._node_register_categories.get(t))||void 0===n?void 0:n.get(e)}map(){return this._node_register}}class Yn{constructor(t){this.poly=t,this._operation_register=new Map}static type(t){return this.filterType(t.type())}static filterType(t){return t.toLowerCase()}register(t){const e=t.context();let n=this._operation_register.get(e);n||(n=new Map,this._operation_register.set(e,n));const i=Yn.type(t);if(n.get(i)){const t=`operation ${e}/${i} already registered`;console.error(t)}else n.set(i,t),this.poly.pluginsRegister.registerOperation(t)}registeredOperationsForContextAndParentType(t,e){var n;if(this._operation_register.get(t)){const e=[];return null===(n=this._operation_register.get(t))||void 0===n||n.forEach(((t,n)=>{e.push(t)})),e}return[]}registeredOperation(t,e){const n=this._operation_register.get(t);if(n)return e=Yn.filterType(e),n.get(e)}}class $n extends class{constructor(){this._methods_names=[],this._methods_by_name=new Map}register(t,e){this._methods_names.push(e),this._methods_by_name.set(e,t)}getMethod(t){return this._methods_by_name.get(t)}availableMethods(){return this._methods_names}}{getMethod(t){return super.getMethod(t)}}!function(t){t.BasisTextureLoader=\\\\\\\"BasisTextureLoader\\\\\\\",t.DRACOLoader=\\\\\\\"DRACOLoader\\\\\\\",t.EXRLoader=\\\\\\\"EXRLoader\\\\\\\",t.FBXLoader=\\\\\\\"FBXLoader\\\\\\\",t.GLTFLoader=\\\\\\\"GLTFLoader\\\\\\\",t.OBJLoader=\\\\\\\"OBJLoader\\\\\\\",t.PDBLoader=\\\\\\\"PDBLoader\\\\\\\",t.PLYLoader=\\\\\\\"PLYLoader\\\\\\\",t.RGBELoader=\\\\\\\"RGBELoader\\\\\\\",t.SVGLoader=\\\\\\\"SVGLoader\\\\\\\",t.STLLoader=\\\\\\\"STLLoader\\\\\\\",t.TTFLoader=\\\\\\\"TTFLoader\\\\\\\"}(Hn||(Hn={}));class Jn extends class{constructor(){this._module_by_name=new Map}register(t,e){this._module_by_name.set(t,e)}moduleNames(){const t=[];return this._module_by_name.forEach(((e,n)=>{t.push(n)})),t}module(t){return this._module_by_name.get(t)}}{}!function(t){t.GL_MESH_BASIC=\\\\\\\"GL_MESH_BASIC\\\\\\\",t.GL_MESH_LAMBERT=\\\\\\\"GL_MESH_LAMBERT\\\\\\\",t.GL_MESH_STANDARD=\\\\\\\"GL_MESH_STANDARD\\\\\\\",t.GL_MESH_PHONG=\\\\\\\"GL_MESH_PHONG\\\\\\\",t.GL_MESH_PHYSICAL=\\\\\\\"GL_MESH_PHYSICAL\\\\\\\",t.GL_PARTICLES=\\\\\\\"GL_PARTICLES\\\\\\\",t.GL_POINTS=\\\\\\\"GL_POINTS\\\\\\\",t.GL_LINE=\\\\\\\"GL_LINE\\\\\\\",t.GL_TEXTURE=\\\\\\\"GL_TEXTURE\\\\\\\",t.GL_VOLUME=\\\\\\\"GL_VOLUME\\\\\\\"}(jn||(jn={}));class Zn extends class{constructor(){this._controller_assembler_by_name=new Map}register(t,e,n){this._controller_assembler_by_name.set(t,{controller:e,assembler:n})}unregister(t){this._controller_assembler_by_name.delete(t)}}{assembler(t,e){const n=this._controller_assembler_by_name.get(e);if(n){return new(0,n.controller)(t,n.assembler)}return n}unregister(t){const e=this._controller_assembler_by_name.get(t);return super.unregister(t),e}}class Kn{constructor(t){this.poly=t,this._plugins_by_name=new Map,this._plugin_name_by_node_context_by_type=new Map,this._plugin_name_by_operation_context_by_type=new Map}register(t){this._current_plugin=t,this._plugins_by_name.set(t.name(),t),t.init(this.poly),this._current_plugin=void 0}pluginByName(t){return this._plugins_by_name.get(t)}registerNode(t){if(!this._current_plugin)return;const e=t.context(),n=t.type();let i=this._plugin_name_by_node_context_by_type.get(e);i||(i=new Map,this._plugin_name_by_node_context_by_type.set(e,i)),i.set(n,this._current_plugin.name())}registerOperation(t){if(!this._current_plugin)return;const e=t.context(),n=t.type();let i=this._plugin_name_by_operation_context_by_type.get(e);i||(i=new Map,this._plugin_name_by_operation_context_by_type.set(e,i)),i.set(n,this._current_plugin.name())}toJson(){const t={plugins:{},nodes:{},operations:{}};return this._plugins_by_name.forEach(((e,n)=>{t.plugins[n]=e.toJSON()})),this._plugin_name_by_node_context_by_type.forEach(((e,n)=>{t.nodes[n]={},e.forEach(((e,i)=>{t.nodes[n][i]=e}))})),this._plugin_name_by_operation_context_by_type.forEach(((e,n)=>{t.operations[n]={},e.forEach(((e,i)=>{t.operations[n][i]=e}))})),t}}class Qn{constructor(t){this._camera_types=[]}register(t){const e=t.type();this._camera_types.includes(e)||this._camera_types.push(e)}registeredTypes(){return this._camera_types}}var ti=n(86);class ei{constructor(){this._blobUrlsByStoredUrl=new Map,this._blobsByStoredUrl=new Map,this._blobDataByNodeId=new Map,this._globalBlobsByStoredUrl=new Map}registerBlobUrl(t){li.playerMode()&&this._blobUrlsByStoredUrl.set(t.storedUrl,t.blobUrl)}deregisterUrl(t){this._blobUrlsByStoredUrl.delete(t)}blobUrl(t){return this._blobUrlsByStoredUrl.get(t)}clear(){this._blobUrlsByStoredUrl.clear(),this._blobsByStoredUrl.clear(),this._blobDataByNodeId.clear()}_clearBlobForNode(t){const e=this._blobDataByNodeId.get(t.graphNodeId());e&&(this._blobsByStoredUrl.delete(e.storedUrl),this._blobUrlsByStoredUrl.delete(e.storedUrl)),this._blobDataByNodeId.delete(t.graphNodeId())}_assignBlobToNode(t,e){this._clearBlobForNode(t),this._blobDataByNodeId.set(t.graphNodeId(),{storedUrl:e.storedUrl,fullUrl:e.fullUrl})}async fetchBlobGlobal(t){if(li.playerMode())return{};try{if(this._blobUrlsByStoredUrl.get(t.storedUrl))return{};const e=li.assetUrls.remapedUrl(t.fullUrl),n=await fetch(e||t.fullUrl);if(n.ok){const e=await n.blob();return this._blobsByStoredUrl.set(t.storedUrl,e),this._blobUrlsByStoredUrl.set(t.storedUrl,this.createBlobUrl(e)),this._globalBlobsByStoredUrl.set(t.storedUrl,e),{blobData:{storedUrl:t.storedUrl,fullUrl:t.fullUrl}}}return{error:`failed to fetch ${t.fullUrl}`}}catch(e){return{error:`failed to fetch ${t.fullUrl}`}}}async fetchBlobForNode(t){if(li.playerMode())return{};try{if(this._blobUrlsByStoredUrl.get(t.storedUrl))return{};const e=li.assetUrls.remapedUrl(t.fullUrl),n=await fetch(e||t.fullUrl);if(n.ok){const e=await n.blob();return this._blobsByStoredUrl.set(t.storedUrl,e),this._blobUrlsByStoredUrl.set(t.storedUrl,this.createBlobUrl(e)),this._scene=t.node.scene(),this._assignBlobToNode(t.node,{storedUrl:t.storedUrl,fullUrl:t.fullUrl}),{blobData:{storedUrl:t.storedUrl,fullUrl:t.fullUrl}}}return{error:`failed to fetch ${t.fullUrl}`}}catch(e){return{error:`failed to fetch ${t.fullUrl}`}}}forEachBlob(t){this._blobDataByNodeId.forEach(((e,n)=>{if(this._scene){if(this._scene.graph.nodeFromId(n)){const{storedUrl:n}=e,i=this._blobsByStoredUrl.get(n);i&&t(i,n)}}}));let e=[];const n=new Map;this._globalBlobsByStoredUrl.forEach(((t,i)=>{e.push(i),n.set(i,t)})),e=e.sort(),e.forEach((e=>{const n=this._globalBlobsByStoredUrl.get(e);n&&t(n,e)}))}createBlobUrl(t){return Object(ti.a)(t)}}class ni{setMap(t){this._map=t}remapedUrl(t){if(!this._map)return;const e=t.split(\\\\\\\"?\\\\\\\"),n=e[0],i=e[1],s=this._map[n];return s?i?`${s}?${i}`:s:void 0}}var ii=n(91),si=n(83);class ri{markAsLoaded(t,e){this._sceneJsonImporterContructor=e,t()}load(t){if(!this._sceneJsonImporterContructor)return;const e=[];t.forEach(((t,n)=>{e.push(n)}));for(let n of e){const e=t.get(n);e&&(this._loadElement(n,e,this._sceneJsonImporterContructor),t.delete(n))}}async _loadElement(t,e,n){const{sceneData:i,assetsManifest:s,unzippedData:r}=e,o=Object.keys(s);for(let t of o){const e=r[`assets/${s[t]}`];if(!e)return void console.error(t,e);const n=new Blob([e]),i={storedUrl:t,blobUrl:li.blobs.createBlobUrl(n)};li.blobs.registerBlobUrl(i)}li.setPlayerMode(!0),li.libs.setRoot(null);const a=`${Math.random()}`.replace(\\\\\\\".\\\\\\\",\\\\\\\"_\\\\\\\"),l={Poly:`___POLY_polyConfig_configurePolygonjs_${a}`,scriptElementId:`___POLY_polyConfig_scriptElement_${a}`,loadSceneArgs:`___POLY_polyConfig_loadSceneArgs_${a}`};window[l.Poly]=li;const c={method:this._loadScene.bind(this),element:t,sceneData:i,sceneJsonImporterContructor:n};window[l.loadSceneArgs]=c;this._loadPolyConfig(l,r)||this._loadScene(t,i,n)}_loadPolyConfig(t,e){const n=e[si.a.POLY_CONFIG];if(!n)return!1;const i=this._createJsBlob(n,\\\\\\\"polyConfig\\\\\\\");let s=document.getElementById(t.scriptElementId);const r=[];return r.push(`import {configurePolygonjs, configureScene} from '${i}';`),r.push(`configurePolygonjs(window.${t.Poly});`),r.push(`window.${t.loadSceneArgs}.method(window.${t.loadSceneArgs}.element, window.${t.loadSceneArgs}.sceneData, window.${t.loadSceneArgs}.sceneJsonImporterContructor, configureScene);`),r.push(`delete window.${t.loadSceneArgs};`),s||(s=document.createElement(\\\\\\\"script\\\\\\\"),s.setAttribute(\\\\\\\"type\\\\\\\",\\\\\\\"module\\\\\\\"),s.text=r.join(\\\\\\\"\\\\n\\\\\\\"),document.body.append(s)),!0}async _loadScene(t,e,n,i){this._fadeOutPoster(t);const s=new n(e),r=await s.scene();i&&i(r);const o=r.mainCameraNode();if(!o)return void console.warn(\\\\\\\"no master camera found\\\\\\\");const a=o.createViewer(t);r.play(),t.scene=r,t.viewer=a}_fadeOutPoster(t){const e=t.firstElementChild;e&&(e.style.pointerEvents=\\\\\\\"none\\\\\\\",ii.a.fadeOut(e).then((()=>{var t;null===(t=e.parentElement)||void 0===t||t.removeChild(e)})))}_createJsBlob(t,e){const n=new Blob([t]),i=new File([n],`${e}.js`,{type:\\\\\\\"application/javascript\\\\\\\"});return Object(ti.a)(i)}}class oi{setPerformanceManager(t){this._performanceManager=t}performanceManager(){return this._performanceManager||window.performance}}class ai{constructor(){this.renderersController=new Wn,this.nodesRegister=new Xn(this),this.operationsRegister=new Yn(this),this.expressionsRegister=new $n,this.modulesRegister=new Jn,this.assemblersRegister=new Zn,this.pluginsRegister=new Kn(this),this.camerasRegister=new Qn(this),this.blobs=new ei,this.assetUrls=new ni,this.selfContainedScenesLoader=new ri,this.performance=new oi,this.scenesByUuid={},this._player_mode=!0,this._logger=null}static _instance_(){if(window.__POLYGONJS_POLY_INSTANCE__)return window.__POLYGONJS_POLY_INSTANCE__;{const t=new ai;return window.__POLYGONJS_POLY_INSTANCE__=t,window.__POLYGONJS_POLY_INSTANCE__}}setPlayerMode(t){this._player_mode=t}playerMode(){return this._player_mode}registerNode(t,e,n){this.nodesRegister.register(t,e,n)}registerOperation(t){this.operationsRegister.register(t)}registerCamera(t){this.camerasRegister.register(t)}registerPlugin(t){this.pluginsRegister.register(t)}registeredNodes(t,e){return this.nodesRegister.registeredNodes(t,e)}registeredOperation(t,e){return this.operationsRegister.registeredOperation(t,e)}registeredCameraTypes(){return this.camerasRegister.registeredTypes()}inWorkerThread(){return!1}desktopController(){}get libs(){return this._libs_controller=this._libs_controller||new qn}setEnv(t){this._env=t}env(){return this._env}setLogger(t){this._logger=t}log(t,...e){var n;null===(n=this._logger)||void 0===n||n.log(t,...e)}warn(t,...e){var n;null===(n=this._logger)||void 0===n||n.warn(t,...e)}error(t,...e){var n;null===(n=this._logger)||void 0===n||n.error(t,...e)}}const li=ai._instance_();class ci{constructor(){this._started=!1,this._start_time=0,this._previous_timestamp=0,this._nodes_cook_data={},this._durations_by_name={},this._durations_count_by_name={}}profile(t,e){const n=li.performance.performanceManager(),i=n.now();e();const s=n.now()-i;console.log(`${t}: ${s}`)}start(){if(!this._started){this.reset(),this._started=!0;const t=li.performance.performanceManager();this._start_time=t.now(),this._nodes_cook_data={},this._previous_timestamp=this._start_time}}stop(){this.reset()}reset(){this._started=!1,this._start_time=null,this._durations_by_name={},this._durations_count_by_name={},this._nodes_cook_data={}}started(){return this._started}record_node_cook_data(t,e){const n=t.graphNodeId();null==this._nodes_cook_data[n]&&(this._nodes_cook_data[n]=new c(t)),this._nodes_cook_data[n].update_cook_data(e)}record(t){this.started()||this.start();const e=performance.now();return null==this._durations_by_name[t]&&(this._durations_by_name[t]=0),this._durations_by_name[t]+=e-this._previous_timestamp,null==this._durations_count_by_name[t]&&(this._durations_count_by_name[t]=0),this._durations_count_by_name[t]+=1,this._previous_timestamp=e}print(){this.print_node_cook_data(),this.print_recordings()}print_node_cook_data(){let t=Object.values(this._nodes_cook_data);t=f.sortBy(t,(t=>t.total_cook_time()));const e=t.map((t=>t.print_object()));console.log(\\\\\\\"--------------- NODES COOK TIME -----------\\\\\\\");const n=[],i=f.sortBy(e,(t=>-t.total_cook_time));for(let t of i)n.push(t);return console.table(n),e}print_recordings(){const t=b.clone(this._durations_by_name),e=b.clone(this._durations_count_by_name),n=[],i={};for(let e of Object.keys(t)){const s=t[e];n.push(s),null==i[s]&&(i[s]=[]),i[s].push(e)}n.sort(((t,e)=>t-e));const s=f.uniq(n);console.log(\\\\\\\"--------------- PERF RECORDINGS -----------\\\\\\\");const r=[];for(let t of s){const n=i[t];for(let i of n){const n=e[i],s={duration:t,name:i,count:n,duration_per_iteration:t/n};r.push(s)}}return console.table(r),r}}class hi{constructor(t){this.scene=t}setListener(t){this._events_listener?console.warn(\\\\\\\"scene already has a listener\\\\\\\"):(this._events_listener=t,this.run_on_add_listener_callbacks())}onAddListener(t){this._events_listener?t():(this._on_add_listener_callbacks=this._on_add_listener_callbacks||[],this._on_add_listener_callbacks.push(t))}run_on_add_listener_callbacks(){if(this._on_add_listener_callbacks){let t;for(;t=this._on_add_listener_callbacks.pop();)t();this._on_add_listener_callbacks=void 0}}get eventsListener(){return this._events_listener}dispatch(t,e,n){var i;null===(i=this._events_listener)||void 0===i||i.process_events(t,e,n)}emitAllowed(){return null!=this._events_listener&&this.scene.loadingController.loaded()&&this.scene.loadingController.autoUpdating()}}class ui{constructor(){this._params_by_id=new Map}registerParam(t){this._params_by_id.set(t.graphNodeId(),t)}deregisterParam(t){this._params_by_id.delete(t.graphNodeId())}regenerateReferringExpressions(t){t.nameController.graph_node.setSuccessorsDirty(t)}}class di{constructor(t){this.scene=t,this._lifecycle_on_create_allowed=!0}onCreateHookAllowed(){return this.scene.loadingController.loaded()&&this._lifecycle_on_create_allowed}onCreatePrevent(t){this._lifecycle_on_create_allowed=!1,t(),this._lifecycle_on_create_allowed=!0}}class pi{constructor(t){this.dispatcher=t,this._nodes_by_graph_node_id=new Map,this._require_canvas_event_listeners=!1,this._activeEventDatas=[]}registerNode(t){this._nodes_by_graph_node_id.set(t.graphNodeId(),t),this.updateViewerEventListeners()}unregisterNode(t){this._nodes_by_graph_node_id.delete(t.graphNodeId()),this.updateViewerEventListeners()}processEvent(t){0!=this._activeEventDatas.length&&this._nodes_by_graph_node_id.forEach((e=>e.processEvent(t)))}updateViewerEventListeners(){this._update_active_event_types(),this._require_canvas_event_listeners&&this.dispatcher.scene.viewersRegister.traverseViewers((t=>{t.eventsController.updateEvents(this)}))}activeEventDatas(){return this._activeEventDatas}_update_active_event_types(){const t=new Map;this._nodes_by_graph_node_id.forEach((e=>{if(e.parent()){const n=e.activeEventDatas();for(let e of n)t.set(e,!0)}})),this._activeEventDatas=[],t.forEach(((t,e)=>{this._activeEventDatas.push(e)}))}}var _i;!function(t){t.LOADED=\\\\\\\"sceneLoaded\\\\\\\",t.PLAY=\\\\\\\"play\\\\\\\",t.PAUSE=\\\\\\\"pause\\\\\\\",t.TICK=\\\\\\\"tick\\\\\\\"}(_i||(_i={}));const mi=[_i.LOADED,_i.PLAY,_i.PAUSE,_i.TICK];class fi extends pi{type(){return\\\\\\\"scene\\\\\\\"}acceptedEventTypes(){return mi.map((t=>`${t}`))}}class gi{constructor(t){this.scene=t,this._loading_state=!1,this._auto_updating=!0,this._first_object_loaded=!1}get LOADED_EVENT_CONTEXT(){return this._LOADED_EVENT_CONTEXT=this._LOADED_EVENT_CONTEXT||{event:new Event(_i.LOADED)}}markAsLoading(){this._set_loading_state(!0)}async markAsLoaded(){this.scene.missingExpressionReferencesController.resolveMissingReferences(),await this._set_loading_state(!1),this.trigger_loaded_event()}trigger_loaded_event(){globalThis.Event&&this.scene.eventsDispatcher.sceneEventsController.processEvent(this.LOADED_EVENT_CONTEXT)}async _set_loading_state(t){this._loading_state=t,await this.set_auto_update(!this._loading_state)}isLoading(){return this._loading_state}loaded(){return!this._loading_state}autoUpdating(){return this._auto_updating}async set_auto_update(t){if(this._auto_updating!==t&&(this._auto_updating=t,this._auto_updating)){const t=this.scene.root();t&&await t.processQueue()}}on_first_object_loaded(){var t;if(!this._first_object_loaded){this._first_object_loaded=!0;const e=document.getElementById(\\\\\\\"scene_loading_container\\\\\\\");e&&(null===(t=e.parentElement)||void 0===t||t.removeChild(e))}}}const vi={EMPTY:\\\\\\\"\\\\\\\",UV:\\\\\\\"/COP/imageUv\\\\\\\",ENV_MAP:\\\\\\\"/COP/envMap\\\\\\\",CUBE_MAP:\\\\\\\"/COP/cubeCamera\\\\\\\"};class yi{constructor(t=\\\\\\\"\\\\\\\"){this._path=t,this._node=null}set_path(t){this._path=t}set_node(t){this._node=t}path(){return this._path}node(){return this._node}resolve(t){this._node=bi.findNode(t,this._path)}clone(){const t=new yi(this._path);return t.set_node(this._node),t}nodeWithContext(t,e){const n=this.node();if(!n)return void(null==e||e.set(`no node found at ${this.path()}`));const i=n.context();return i==t?n:void(null==e||e.set(`expected ${t} node, but got a ${i}`))}}class xi{constructor(t=\\\\\\\"\\\\\\\"){this._path=t,this._param=null}set_path(t){this._path=t}set_param(t){this._param=t}path(){return this._path}param(){return this._param}resolve(t){this._param=bi.findParam(t,this._path)}clone(){const t=new xi(this._path);return t.set_param(this._param),t}paramWithType(t,e){const n=this.param();if(n)return n.type()==t?n:void(null==e||e.set(`expected ${t} node, but got a ${n.type()}`));null==e||e.set(`no param found at ${this.path()}`)}}class bi{static split_parent_child(t){const e=t.split(bi.SEPARATOR).filter((t=>t.length>0)),n=e.pop();return{parent:e.join(bi.SEPARATOR),child:n}}static findNode(t,e,n){if(!t)return null;const i=e.split(bi.SEPARATOR).filter((t=>t.length>0)),s=i[0];let r=null;if(e[0]!==bi.SEPARATOR){switch(s){case bi.PARENT:null==n||n.add_path_element(s),r=t.parent();break;case bi.CURRENT:null==n||n.add_path_element(s),r=t;break;default:r=t.node(s),r&&(null==n||n.add_node(s,r))}if(null!=r&&i.length>1){const t=i.slice(1).join(bi.SEPARATOR);r=this.findNode(r,t,n)}return r}{const i=e.substr(1);r=this.findNode(t.root(),i,n)}return r}static findParam(t,e,n){if(!t)return null;const i=e.split(bi.SEPARATOR);if(1===i.length)return t.params.get(i[0]);{const e=i.slice(0,+(i.length-2)+1||void 0).join(bi.SEPARATOR),s=this.findNode(t,e,n);if(null!=s){const t=i[i.length-1],e=s.params.get(t);return n&&e&&n.add_node(t,e),e}return null}}static relativePath(t,e){const n=this.closestCommonParent(t,e);if(n){const i=this.distanceToParent(t,n);let s=\\\\\\\"\\\\\\\";if(i>0){let t=0;const e=[];for(;t++<i;)e.push(bi.PARENT);s=e.join(bi.SEPARATOR)+bi.SEPARATOR}const r=n.path().split(bi.SEPARATOR).filter((t=>t.length>0)),o=e.path().split(bi.SEPARATOR).filter((t=>t.length>0)),a=[];let l=0;for(let t of o)r[l]||a.push(t),l++;return`${s}${a.join(bi.SEPARATOR)}`}return e.path()}static closestCommonParent(t,e){const n=this.parents(t).reverse().concat([t]),i=this.parents(e).reverse().concat([e]),s=Math.min(n.length,i.length);let r=null;for(let t=0;t<s;t++)n[t].graphNodeId()==i[t].graphNodeId()&&(r=n[t]);return r}static parents(t){const e=[];let n=t.parent();for(;n;)e.push(n),n=n.parent();return e}static distanceToParent(t,e){let n=0,i=t;const s=e.graphNodeId();for(;i&&i.graphNodeId()!=s;)n+=1,i=i.parent();return i&&i.graphNodeId()==s?n:-1}static makeAbsolutePath(t,e){if(e[0]==bi.SEPARATOR)return e;const n=e.split(bi.SEPARATOR),i=n.shift();if(!i)return t.path();switch(i){case\\\\\\\"..\\\\\\\":{const e=t.parent();return e?e==t.scene().root()?bi.SEPARATOR+n.join(bi.SEPARATOR):this.makeAbsolutePath(e,n.join(bi.SEPARATOR)):null}case\\\\\\\".\\\\\\\":return this.makeAbsolutePath(t,n.join(bi.SEPARATOR));default:return[t.path(),e].join(bi.SEPARATOR)}}}bi.SEPARATOR=\\\\\\\"/\\\\\\\",bi.DOT=\\\\\\\".\\\\\\\",bi.CURRENT=bi.DOT,bi.PARENT=\\\\\\\"..\\\\\\\",bi.CURRENT_WITH_SLASH=`${bi.CURRENT}/`,bi.PARENT_WITH_SLASH=`${bi.PARENT}/`,bi.NON_LETTER_PREFIXES=[bi.SEPARATOR,bi.DOT];class wi{constructor(t,e){this.param=t,this.path=e}absolutePath(){return bi.makeAbsolutePath(this.param.node,this.path)}matchesPath(t){return this.absolutePath()==t}resolveMissingDependencies(){const t=this.param.rawInputSerialized();this.param.set(this.param.defaultValue()),this.param.set(t)}}class Ti{constructor(t){this.scene=t,this.references=new Map}register(t,e){const n=new wi(t,e);return h.addToSetAtEntry(this.references,t.graphNodeId(),n),n}deregisterParam(t){this.references.delete(t.graphNodeId())}resolveMissingReferences(){const t=[];this.references.forEach((e=>{for(let n of e)this._is_reference_resolvable(n)&&t.push(n)}));for(let e of t)e.resolveMissingDependencies()}_is_reference_resolvable(t){const e=t.absolutePath();if(e){if(this.scene.node(e))return!0;{const t=bi.split_parent_child(e);if(t.child){const e=this.scene.node(t.parent);if(e){if(e.params.get(t.child))return!0}}}}}checkForMissingReferences(t){this._checkForMissingReferencesForNode(t);for(let e of t.params.all)this._checkForMissingReferencesForParam(e)}_checkForMissingReferencesForNode(t){const e=t.graphNodeId(),n=h.arrayFromValues(this.references);for(let i of n){let n=!1;const s=u.toArray(i);for(let e of s)e.matchesPath(t.path())&&(n=!0,e.resolveMissingDependencies());n&&this.references.delete(e)}}_checkForMissingReferencesForParam(t){const e=t.graphNodeId(),n=h.arrayFromValues(this.references);for(let i of n){let n=!1;const s=u.toArray(i);for(let e of s)e.matchesPath(t.path())&&(n=!0,e.resolveMissingDependencies());n&&this.references.delete(e)}}}class Ai{constructor(t){this.node=t,this._dirty_count=0,this._dirty=!0}dispose(){this._cached_successors=void 0,this._post_dirty_hooks=void 0,this._post_dirty_hook_names=void 0}isDirty(){return!0===this._dirty}dirtyTimestamp(){return this._dirty_timestamp}dirtyCount(){return this._dirty_count}addPostDirtyHook(t,e){this._post_dirty_hook_names=this._post_dirty_hook_names||[],this._post_dirty_hooks=this._post_dirty_hooks||[],this._post_dirty_hook_names.includes(t)?console.warn(`hook with name ${t} already exists`,this.node):(this._post_dirty_hook_names.push(t),this._post_dirty_hooks.push(e))}removePostDirtyHook(t){if(this._post_dirty_hook_names&&this._post_dirty_hooks){const e=this._post_dirty_hook_names.indexOf(t);e>=0&&(this._post_dirty_hook_names.splice(e,1),this._post_dirty_hooks.splice(e,1))}}hasHook(t){return!!this._post_dirty_hook_names&&this._post_dirty_hook_names.includes(t)}removeDirtyState(){this._dirty=!1}setForbiddenTriggerNodes(t){this._forbidden_trigger_nodes=t.map((t=>t.graphNodeId()))}setDirty(t,e){if(null==e&&(e=!0),t&&this._forbidden_trigger_nodes&&this._forbidden_trigger_nodes.includes(t.graphNodeId()))return;null==t&&(t=this.node),this._dirty=!0;const n=li.performance.performanceManager();this._dirty_timestamp=n.now(),this._dirty_count+=1,this.runPostDirtyHooks(t),!0===e&&this.setSuccessorsDirty(t)}runPostDirtyHooks(t){if(this._post_dirty_hooks){const e=this.node.scene().cooker;if(e.blocked)e.enqueue(this.node,t);else for(let e of this._post_dirty_hooks)e(t)}}setSuccessorsDirty(t){this._cached_successors=this._cached_successors||this.node.graphAllSuccessors();for(let e of this._cached_successors)e.dirtyController.setDirty(t,false)}clearSuccessorsCache(){this._cached_successors=void 0}clearSuccessorsCacheWithPredecessors(){this.clearSuccessorsCache();for(let t of this.node.graphAllPredecessors())t.dirtyController.clearSuccessorsCache()}}class Mi{constructor(t,e){this._scene=t,this._name=e,this._dirty_controller=new Ai(this),this._graph_node_id=t.graph.nextId(),t.graph.addNode(this),this._graph=t.graph}dispose(){this._dirty_controller.dispose(),this.graphRemove()}name(){return this._name}setName(t){this._name=t}scene(){return this._scene}graphNodeId(){return this._graph_node_id}get dirtyController(){return this._dirty_controller}setDirty(t){t=t||this,this._dirty_controller.setDirty(t)}setSuccessorsDirty(t){this._dirty_controller.setSuccessorsDirty(t)}removeDirtyState(){this._dirty_controller.removeDirtyState()}isDirty(){return this._dirty_controller.isDirty()}addPostDirtyHook(t,e){this._dirty_controller.addPostDirtyHook(t,e)}graphRemove(){this._graph.removeNode(this)}addGraphInput(t,e=!0){return this._graph.connect(t,this,e)}removeGraphInput(t){this._graph.disconnect(t,this)}graphDisconnectPredecessors(){this._graph.disconnectPredecessors(this)}graphDisconnectSuccessors(){this._graph.disconnectSuccessors(this)}graphPredecessorIds(){return this._graph.predecessorIds(this._graph_node_id)||[]}graphPredecessors(){return this._graph.predecessors(this)}graphSuccessors(){return this._graph.successors(this)}graphAllPredecessors(){return this._graph.allPredecessors(this)}graphAllSuccessors(){return this._graph.allSuccessors(this)}}var Ei;!function(t){t.CREATED=\\\\\\\"node_created\\\\\\\",t.DELETED=\\\\\\\"node_deleted\\\\\\\",t.NAME_UPDATED=\\\\\\\"node_name_update\\\\\\\",t.OVERRIDE_CLONABLE_STATE_UPDATE=\\\\\\\"node_override_clonable_state_update\\\\\\\",t.NAMED_OUTPUTS_UPDATED=\\\\\\\"node_named_outputs_updated\\\\\\\",t.NAMED_INPUTS_UPDATED=\\\\\\\"node_named_inputs_updated\\\\\\\",t.INPUTS_UPDATED=\\\\\\\"node_inputs_updated\\\\\\\",t.PARAMS_UPDATED=\\\\\\\"node_params_updated\\\\\\\",t.UI_DATA_POSITION_UPDATED=\\\\\\\"node_ui_data_position_updated\\\\\\\",t.UI_DATA_COMMENT_UPDATED=\\\\\\\"node_ui_data_comment_updated\\\\\\\",t.ERROR_UPDATED=\\\\\\\"node_error_updated\\\\\\\",t.FLAG_BYPASS_UPDATED=\\\\\\\"bypass_flag_updated\\\\\\\",t.FLAG_DISPLAY_UPDATED=\\\\\\\"display_flag_updated\\\\\\\",t.FLAG_OPTIMIZE_UPDATED=\\\\\\\"optimize_flag_updated\\\\\\\",t.SELECTION_UPDATED=\\\\\\\"selection_updated\\\\\\\"}(Ei||(Ei={}));class Si{constructor(t,e=0,n=0){this.node=t,this._position=new d.a,this._width=50,this._color=new D.a(.75,.75,.75),this._layout_vertical=!0,this._json={x:0,y:0},this._position.x=e,this._position.y=n}setComment(t){this._comment=t,this.node.emit(Ei.UI_DATA_COMMENT_UPDATED)}comment(){return this._comment}setColor(t){this._color=t}color(){return this._color}setLayoutHorizontal(){this._layout_vertical=!1}isLayoutVertical(){return this._layout_vertical}copy(t){this._position.copy(t.position()),this._color.copy(t.color())}position(){return this._position}setPosition(t,e=0){if(m.isNumber(t)){const n=t;this._position.set(n,e)}else this._position.copy(t);this.node.emit(Ei.UI_DATA_POSITION_UPDATED)}translate(t,e=!1){this._position.add(t),e&&(this._position.x=Math.round(this._position.x),this._position.y=Math.round(this._position.y)),this.node.emit(Ei.UI_DATA_POSITION_UPDATED)}toJSON(){return this._json.x=this._position.x,this._json.y=this._position.y,this._json.comment=this._comment,this._json}}class Ci{constructor(t){this.node=t,this._state=!0,this._hooks=null}onUpdate(t){this._hooks=this._hooks||[],this._hooks.push(t)}_on_update(){}set(t){this._state!=t&&(this._state=t,this._on_update(),this.runHooks())}active(){return this._state}toggle(){this.set(!this._state)}runHooks(){if(this._hooks)for(let t of this._hooks)t()}}class Ni extends Ci{constructor(){super(...arguments),this._state=!1}_on_update(){this.node.emit(Ei.FLAG_BYPASS_UPDATED),this.node.setDirty()}}class Li extends Ci{_on_update(){this.node.emit(Ei.FLAG_DISPLAY_UPDATED)}}class Oi extends Ci{constructor(){super(...arguments),this._state=!1}_on_update(){this.node.emit(Ei.FLAG_OPTIMIZE_UPDATED)}}class Pi{constructor(t){this.node=t}hasDisplay(){return!1}hasBypass(){return!1}hasOptimize(){return!1}}function Ri(t){return class extends t{constructor(){super(...arguments),this.display=new Li(this.node)}hasDisplay(){return!0}}}function Ii(t){return class extends t{constructor(){super(...arguments),this.bypass=new Ni(this.node)}hasBypass(){return!0}}}function Fi(t){return class extends t{constructor(){super(...arguments),this.optimize=new Oi(this.node)}hasOptimize(){return!0}}}class Di extends(Ri(Pi)){}class Bi extends(Ii(Pi)){}class zi extends(Ii(Ri(Pi))){}class ki extends(Fi(Ii(Pi))){}class Ui extends(Fi(Ii(Ri(Pi)))){}class Gi{constructor(t){this.node=t}}class Vi extends Gi{active(){return this.paramsTimeDependent()||this.inputsTimeDependent()}paramsTimeDependent(){const t=this.node.params.names;for(let e of t){const t=this.node.params.get(e);if(t&&t.states.timeDependent.active())return!0}return!1}inputsTimeDependent(){const t=this.node.io.inputs.inputs();for(let e of t)if(e&&e.states.timeDependent.active())return!0;return!1}forceTimeDependent(){const t=this.node.graphPredecessors().map((t=>t.graphNodeId())),e=this.node.scene().timeController.graphNode;t.includes(e.graphNodeId())||this.node.addGraphInput(e,!1)}unforceTimeDependent(){const t=this.node.scene().timeController.graphNode;this.node.removeGraphInput(t)}}class Hi extends Gi{set(t){this._message!=t&&(t&&li.error(`[${this.node.path()}] error: '${t}'`),this._message=t,this.onUpdate())}message(){return this._message}clear(){this.set(void 0)}active(){return null!=this._message}onUpdate(){null!=this._message&&this.node._setContainer(null,`from error '${this._message}'`),this.node.emit(Ei.ERROR_UPDATED)}}class ji{constructor(t){this.node=t,this.timeDependent=new Vi(this.node),this.error=new Hi(this.node)}}class Wi{constructor(t){this.node=t,this._graph_node=new Mi(t.scene(),\\\\\\\"node_name_controller\\\\\\\")}dispose(){this._graph_node.dispose(),this._on_set_name_hooks=void 0,this._on_set_fullPath_hooks=void 0}get graph_node(){return this._graph_node}static base_name(t){let e=t.type();const n=e[e.length-1];return m.isNaN(parseInt(n))||(e+=\\\\\\\"_\\\\\\\"),`${e}1`}requestNameToParent(t){const e=this.node.parent();e&&e.childrenAllowed()&&e.childrenController?e.childrenController.setChildName(this.node,t):console.warn(\\\\\\\"requestNameToParent failed, no parent found\\\\\\\")}setName(t){t!=this.node.name()&&this.requestNameToParent(t)}updateNameFromParent(t){var e;if(this.node._set_core_name(t),this._postSetName(),this.runPostSetFullPathHooks(),this.node.childrenAllowed()){const t=null===(e=this.node.childrenController)||void 0===e?void 0:e.children();if(t)for(let e of t)e.nameController.runPostSetFullPathHooks()}this.node.lifecycle.creationCompleted()&&(this.node.scene().missingExpressionReferencesController.checkForMissingReferences(this.node),this.node.scene().expressionsController.regenerateReferringExpressions(this.node)),this.node.scene().referencesController.notifyNameUpdated(this.node),this.node.emit(Ei.NAME_UPDATED)}add_post_set_name_hook(t){this._on_set_name_hooks=this._on_set_name_hooks||[],this._on_set_name_hooks.push(t)}add_post_set_fullPath_hook(t){this._on_set_fullPath_hooks=this._on_set_fullPath_hooks||[],this._on_set_fullPath_hooks.push(t)}_postSetName(){if(this._on_set_name_hooks)for(let t of this._on_set_name_hooks)t()}runPostSetFullPathHooks(){if(this._on_set_fullPath_hooks)for(let t of this._on_set_fullPath_hooks)t()}}class qi{constructor(t){this.node=t,this._parent=null}parent(){return this._parent}setParent(t){t!=this.node.parentController.parent()&&(this._parent=t,this._parent&&this.node.nameController.requestNameToParent(Wi.base_name(this.node)))}firstAncestorWithContext(t){return this._parent?this._parent.context()==t?this._parent:this._parent.parentController.firstAncestorWithContext(t):null}path(t){const e=bi.SEPARATOR;if(null!=this._parent){if(this._parent==t)return this.node.name();{const n=this._parent.path(t);return n===e?n+this.node.name():n+e+this.node.name()}}return e}onSetParent(){if(this._on_set_parent_hooks)for(let t of this._on_set_parent_hooks)t()}findNode(t){if(null==t)return null;if(t==bi.CURRENT||t==bi.CURRENT_WITH_SLASH)return this.node;if(t==bi.PARENT||t==bi.PARENT_WITH_SLASH)return this.node.parent();const e=bi.SEPARATOR;if(t===e)return this.node.scene().root();if(t[0]===e)return t=t.substring(1,t.length),this.node.scene().root().node(t);if(t.split){const n=t.split(e);if(1===n.length){const t=n[0];return this.node.childrenController?this.node.childrenController.childByName(t):null}return bi.findNode(this.node,t)}return console.error(\\\\\\\"unexpected path given:\\\\\\\",t),null}}const Xi=/[, ]/,Yi=/\\\\d+$/,$i=/^0+/,Ji=/,| /,Zi=/^-?\\\\d+\\\\.?\\\\d*$/;var Ki,Qi,ts,es,ns,is;!function(t){t.TRUE=\\\\\\\"true\\\\\\\",t.FALSE=\\\\\\\"false\\\\\\\"}(Ki||(Ki={}));class ss{static isBoolean(t){return t==Ki.TRUE||t==Ki.FALSE}static toBoolean(t){return t==Ki.TRUE}static isNumber(t){return Zi.test(t)}static tailDigits(t){const e=t.match(Yi);return e?parseInt(e[0]):0}static increment(t){const e=t.match(Yi);if(e){let n=e[0],i=\\\\\\\"\\\\\\\";const s=n.match($i);s&&(i=s[0]);const r=parseInt(n);0==r&&i.length>0&&\\\\\\\"0\\\\\\\"==i[i.length-1]&&(i=i.slice(0,-1));return`${t.substring(0,t.length-e[0].length)}${i}${r+1}`}return`${t}1`}static pluralize(t){return\\\\\\\"s\\\\\\\"!==t[t.length-1]?`${t}s`:t}static camelCase(t){const e=t.replace(/_/g,\\\\\\\" \\\\\\\").split(\\\\\\\" \\\\\\\");let n=\\\\\\\"\\\\\\\";for(let t=0;t<e.length;t++){let i=e[t].toLowerCase();t>0&&(i=this.upperFirst(i)),n+=i}return n}static upperFirst(t){return t[0].toUpperCase()+t.substr(1)}static titleize(t){return t.split(/\\\\s|_/g).map((t=>this.upperFirst(t))).join(\\\\\\\" \\\\\\\")}static precision(t,e=2){e=Math.max(e,0);const n=`${t}`.split(\\\\\\\".\\\\\\\");if(e<=0)return n[0];let i=n[1];if(void 0!==i)return i.length>e&&(i=i.substring(0,e)),i=i.padEnd(e,\\\\\\\"0\\\\\\\"),`${n[0]}.${i}`;{const n=`${t}.`,i=n.length+e;return n.padEnd(i,\\\\\\\"0\\\\\\\")}}static ensureFloat(t){const e=`${t}`;return e.indexOf(\\\\\\\".\\\\\\\")>=0?e:`${e}.0`}static ensureInteger(t){const e=`${t}`;return e.indexOf(\\\\\\\".\\\\\\\")>=0?e.split(\\\\\\\".\\\\\\\")[0]:e}static matchMask(t,e){if(\\\\\\\"*\\\\\\\"===e)return!0;if(t==e)return!0;const n=e.split(\\\\\\\" \\\\\\\");if(n.length>1){for(let e of n){if(this.matchMask(t,e))return!0}return!1}e=`^${e=e.split(\\\\\\\"*\\\\\\\").join(\\\\\\\".*\\\\\\\")}$`;return new RegExp(e).test(t)}static matchesOneMask(t,e){let n=!1;for(let i of e)ss.matchMask(t,i)&&(n=!0);return n}static attribNames(t){const e=t.split(Xi),n=new Set;for(let t of e)t=t.trim(),t.length>0&&n.add(t);const i=new Array(n.size);let s=0;return n.forEach((t=>{i[s]=t,s++})),i}static indices(t){const e=t.split(Ji);if(e.length>1){const t=e.flatMap((t=>this.indices(t)));return f.uniq(t).sort(((t,e)=>t-e))}{const t=e[0];if(t){const e=\\\\\\\"-\\\\\\\";if(t.indexOf(e)>0){const n=t.split(e);return f.range(parseInt(n[0]),parseInt(n[1])+1)}{const e=parseInt(t);return m.isNumber(e)?[e]:[]}}return[]}}static escapeLineBreaks(t){return t.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/gm,\\\\\\\"\\\\\\\\n\\\\\\\")}static sanitizeName(t){return t=(t=t.replace(/[^A-Za-z0-9]/g,\\\\\\\"_\\\\\\\")).replace(/^[0-9]/,\\\\\\\"_\\\\\\\")}}class rs{constructor(t){this._node=t,this._node_ids=[],this._json=[]}node(){return this._node}nodes(){return this._node.scene().graph.nodesFromIds(this._node_ids)}contains(t){return this._node_ids.includes(t.graphNodeId())}equals(t){const e=t.map((t=>t.graphNodeId())).sort();return f.isEqual(e,this._node_ids)}clear(){this._node_ids=[],this.send_update_event()}set(t){this._node_ids=[],this.add(t)}add(t){const e=t.map((t=>t.graphNodeId()));this._node_ids=f.union(this._node_ids,e),this.send_update_event()}remove(t){const e=t.map((t=>t.graphNodeId()));this._node_ids=f.difference(this._node_ids,e),this.send_update_event()}send_update_event(){this._node.emit(Ei.SELECTION_UPDATED)}toJSON(){return this._json=this._json||[],this._json=this._node_ids.map((t=>t)),this._json}}!function(t){t.ALWAYS=\\\\\\\"always\\\\\\\",t.NEVER=\\\\\\\"never\\\\\\\",t.FROM_NODE=\\\\\\\"from_node\\\\\\\"}(Qi||(Qi={}));class os{static unreachable(t){throw new Error(\\\\\\\"Didn't expect to get here\\\\\\\")}}class as{constructor(t){this.inputs_controller=t,this._clone_required_states=[],this._overridden=!1}init_inputs_cloned_state(t){m.isArray(t)?this._cloned_states=t:this._cloned_state=t,this._update_clone_required_state()}override_cloned_state_allowed(){if(this._cloned_states)for(let t of this._cloned_states)if(t==Qi.FROM_NODE)return!0;return!!this._cloned_state&&this._cloned_state==Qi.FROM_NODE}clone_required_state(t){return this._clone_required_states[t]}clone_required_states(){return this._clone_required_states}_get_clone_required_state(t){const e=this._cloned_states;if(e){const n=e[t];if(null!=n)return this.clone_required_from_state(n)}return!this._cloned_state||this.clone_required_from_state(this._cloned_state)}clone_required_from_state(t){switch(t){case Qi.ALWAYS:return!0;case Qi.NEVER:return!1;case Qi.FROM_NODE:return!this._overridden}return os.unreachable(t)}override_cloned_state(t){this._overridden=t,this._update_clone_required_state()}overriden(){return this._overridden}_update_clone_required_state(){if(this._cloned_states){const t=[];for(let e=0;e<this._cloned_states.length;e++)t[e]=this._get_clone_required_state(e);this._clone_required_states=t}else if(this._cloned_state){const t=this.inputs_controller.inputs_count(),e=[];for(let n=0;n<t;n++)e[n]=this._get_clone_required_state(n);this._clone_required_states=e}else;}}class ls{constructor(t){this.operation_container=t}inputs_count(){return this.operation_container.inputs_count()}init_inputs_cloned_state(t){this._cloned_states_controller||(this._cloned_states_controller=new as(this),this._cloned_states_controller.init_inputs_cloned_state(t))}clone_required(t){var e;const n=null===(e=this._cloned_states_controller)||void 0===e?void 0:e.clone_required_state(t);return null==n||n}override_cloned_state(t){var e;null===(e=this._cloned_states_controller)||void 0===e||e.override_cloned_state(t)}}class cs extends class{constructor(t,e,n){this.operation=t,this.name=e,this.params={},this._apply_default_params(),this._apply_init_params(n),this._init_cloned_states()}path_param_resolve_required(){return null!=this._path_params}resolve_path_params(t){if(this._path_params)for(let e of this._path_params)e.resolve(t)}_apply_default_params(){const t=this.operation.constructor.DEFAULT_PARAMS,e=Object.keys(t);for(let n of e){const e=t[n],i=this._convert_param_data(n,e);null!=i&&(this.params[n]=i)}}_apply_init_params(t){const e=Object.keys(t);for(let n of e){const e=t[n];if(null!=e.simple_data){const t=e.simple_data,i=this._convert_export_param_data(n,t);null!=i&&(this.params[n]=i)}}}_convert_param_data(t,e){if(m.isNumber(e)||m.isBoolean(e)||m.isString(e))return e;if(e instanceof yi){const t=e.clone();return this._path_params||(this._path_params=[]),this._path_params.push(t),t}return e instanceof D.a||e instanceof d.a||e instanceof p.a||e instanceof _.a?e.clone():void 0}_convert_export_param_data(t,e){const n=this.params[t];if(m.isBoolean(e))return e;if(m.isNumber(e))return m.isBoolean(n)?e>=1:e;if(m.isString(e)){if(n){if(n instanceof yi)return n.set_path(e);if(n instanceof xi)return n.set_path(e)}return e}m.isArray(e)&&this.params[t].fromArray(e)}setInput(t,e){this._inputs=this._inputs||[],this._inputs[t]=e}inputs_count(){return this._inputs?this._inputs.length:0}inputsController(){return this._inputs_controller=this._inputs_controller||new ls(this)}_init_cloned_states(){const t=this.operation.constructor.INPUT_CLONED_STATE;this.inputsController().init_inputs_cloned_state(t)}input_clone_required(t){return!this._inputs_controller||this._inputs_controller.clone_required(t)}override_input_clone_state(t){this.inputsController().override_cloned_state(t)}cook(t){return this.operation.cook(t,this.params)}}{constructor(t,e,n){super(t,e,n),this.operation=t,this.name=e,this.init_params=n,this._inputs=[],this._current_input_index=0,this._dirty=!0}add_input(t){super.setInput(this._current_input_index,t),this.increment_input_index()}increment_input_index(){this._current_input_index++}current_input_index(){return this._current_input_index}setDirty(){if(!this._dirty){this._compute_result=void 0;for(let t=0;t<this._inputs.length;t++){this._inputs[t].setDirty()}}}async compute(t,e){if(this._compute_result)return this._compute_result;const n=[],i=e.get(this);i&&i.forEach(((e,i)=>{n[i]=t[e]}));for(let i=0;i<this._inputs.length;i++){const s=this._inputs[i];let r=await s.compute(t,e);r&&(this.input_clone_required(i)&&(r=r.clone()),n[i]=r)}const s=this.operation.cook(n,this.params);return this._compute_result=s?s instanceof Promise?await s:s:void 0,this._dirty=!1,this._compute_result}}class hs{constructor(t,e){this.node=t,this._context=e,this._childrenByName=new Map,this._childrenByType=new Map,this._childrenAndGrandchildrenByContext=new Map}get selection(){return this._selection=this._selection||new rs(this.node)}dispose(){const t=this.children();for(let e of t)this.node.removeNode(e);this._selection=void 0}get context(){return this._context}set_output_node_find_method(t){this._output_node_find_method=t}output_node(){if(this._output_node_find_method)return this._output_node_find_method()}setChildName(t,e){let n;if(e=ss.sanitizeName(e),null!=(n=this._childrenByName.get(e))){if(t.name()===e&&n.graphNodeId()===t.graphNodeId())return;return e=ss.increment(e),this.setChildName(t,e)}{const n=t.name();this._childrenByName.get(n)&&this._childrenByName.delete(n),this._childrenByName.set(e,t),t.nameController.updateNameFromParent(e),this._addToNodesByType(t),this.node.scene().nodesController.addToInstanciatedNode(t)}}node_context_signature(){return`${this.node.context()}/${this.node.type()}`}available_children_classes(){return li.registeredNodes(this._context,this.node.type())}isValidChildType(t){return null!=this.available_children_classes()[t]}createNode(t,e,n=\\\\\\\"\\\\\\\"){if(\\\\\\\"string\\\\\\\"==typeof t){const i=this._find_node_class(t);return this._create_and_init_node(i,e,n)}return this._create_and_init_node(t,e,n)}_create_and_init_node(t,e,n=\\\\\\\"\\\\\\\"){const i=new t(this.node.scene(),`child_node_${n}`,e);return i.initialize_base_and_node(),this._addNode(i),i.lifecycle.setCreationCompleted(),i}_find_node_class(t){const e=this.available_children_classes()[t.toLowerCase()];if(null==e){const e=`child node type '${t}' not found for node '${this.node.path()}'. Available types are: ${Object.keys(this.available_children_classes()).join(\\\\\\\", \\\\\\\")}, ${this._context}, ${this.node.type()}`;throw console.error(e),e}return e}create_operation_container(t,e,n){const i=li.registeredOperation(this._context,t);if(null==i){const e=`no operation found with context ${this._context}/${t}`;throw console.error(e),e}{const t=new i(this.node.scene());return new cs(t,e,n||{})}}_addNode(t){if(t.setParent(this.node),t.params.init(),t.parentController.onSetParent(),t.nameController.runPostSetFullPathHooks(),t.childrenAllowed()&&t.childrenController)for(let e of t.childrenController.children())e.nameController.runPostSetFullPathHooks();return this.node.emit(Ei.CREATED,{child_node_json:t.toJSON()}),this.node.scene().lifecycleController.onCreateHookAllowed()&&t.lifecycle.run_on_create_hooks(),t.lifecycle.run_on_add_hooks(),this.setChildName(t,Wi.base_name(t)),this.node.lifecycle.run_on_child_add_hooks(t),t.require_webgl2()&&this.node.scene().webgl_controller.set_require_webgl2(),this.node.scene().missingExpressionReferencesController.checkForMissingReferences(t),t}removeNode(t){if(t.parent()!=this.node)return console.warn(`node ${t.name()} not under parent ${this.node.path()}`);{this.selection.contains(t)&&this.selection.remove([t]);const e=t.io.connections.firstInputConnection(),n=t.io.connections.inputConnections(),i=t.io.connections.outputConnections();if(n)for(let t of n)t&&t.disconnect({setInput:!0});if(i)for(let t of i)if(t&&(t.disconnect({setInput:!0}),e)){const n=e.node_src,i=t.output_index,s=t.node_dest,r=t.input_index;s.io.inputs.setInput(r,n,i)}t.setParent(null),this._childrenByName.delete(t.name()),this._removeFromNodesByType(t),this.node.scene().nodesController.removeFromInstanciatedNode(t),t.setSuccessorsDirty(this.node),t.graphDisconnectSuccessors(),this.node.lifecycle.run_on_child_remove_hooks(t),t.lifecycle.run_on_delete_hooks(),t.dispose(),t.emit(Ei.DELETED,{parent_id:this.node.graphNodeId()})}}_addToNodesByType(t){const e=t.graphNodeId(),n=t.type();h.addToSetAtEntry(this._childrenByType,n,e),this._addToChildrenAndGrandchildrenByContext(t)}_removeFromNodesByType(t){const e=t.graphNodeId(),n=t.type();h.removeFromSetAtEntry(this._childrenByType,n,e),this._removeFromChildrenAndGrandchildrenByContext(t)}_addToChildrenAndGrandchildrenByContext(t){var e;const n=t.graphNodeId(),i=t.context();h.addToSetAtEntry(this._childrenAndGrandchildrenByContext,i,n);const s=this.node.parent();s&&s.childrenAllowed()&&(null===(e=s.childrenController)||void 0===e||e._addToChildrenAndGrandchildrenByContext(t))}_removeFromChildrenAndGrandchildrenByContext(t){var e;const n=t.graphNodeId(),i=t.context();h.removeFromSetAtEntry(this._childrenAndGrandchildrenByContext,i,n);const s=this.node.parent();s&&s.childrenAllowed()&&(null===(e=s.childrenController)||void 0===e||e._removeFromChildrenAndGrandchildrenByContext(t))}nodesByType(t){const e=this._childrenByType.get(t);if(!e)return[];const n=this.node.scene().graph,i=[];for(let t of e){const e=n.nodeFromId(t);e&&i.push(e)}return i}childByName(t){return this._childrenByName.get(t)||null}hasChildrenAndGrandchildrenWithContext(t){return null!=this._childrenAndGrandchildrenByContext.get(t)}children(){const t=[];return this._childrenByName.forEach((e=>{t.push(e)})),t}childrenNames(){const t=[];return this._childrenByName.forEach(((e,n)=>{t.push(n)})),t}traverseChildren(t){this._childrenByName.forEach((e=>{var n;t(e),null===(n=e.childrenController)||void 0===n||n.traverseChildren(t)}))}}class us{constructor(t){this.node=t,this._creation_completed=!1}dispose(){this._on_child_add_hooks=void 0,this._on_child_remove_hooks=void 0,this._on_create_hooks=void 0,this._on_add_hooks=void 0,this._on_delete_hooks=void 0}setCreationCompleted(){this._creation_completed||(this._creation_completed=!0)}creationCompleted(){return this.node.scene().loadingController.loaded()&&this._creation_completed}add_on_child_add_hook(t){this._on_child_add_hooks=this._on_child_add_hooks||[],this._on_child_add_hooks.push(t)}run_on_child_add_hooks(t){this.execute_hooks_with_child_node(this._on_child_add_hooks,t)}add_on_child_remove_hook(t){this._on_child_remove_hooks=this._on_child_remove_hooks||[],this._on_child_remove_hooks.push(t)}run_on_child_remove_hooks(t){this.execute_hooks_with_child_node(this._on_child_remove_hooks,t)}add_on_create_hook(t){this._on_create_hooks=this._on_create_hooks||[],this._on_create_hooks.push(t)}run_on_create_hooks(){this.execute_hooks(this._on_create_hooks)}add_on_add_hook(t){this._on_add_hooks=this._on_add_hooks||[],this._on_add_hooks.push(t)}run_on_add_hooks(){this.execute_hooks(this._on_add_hooks)}add_delete_hook(t){this._on_delete_hooks=this._on_delete_hooks||[],this._on_delete_hooks.push(t)}run_on_delete_hooks(){this.execute_hooks(this._on_delete_hooks)}execute_hooks(t){if(t){let e;for(e of t)e()}}execute_hooks_with_child_node(t,e){if(t){let n;for(n of t)n(e)}}}!function(t){t.ANIM=\\\\\\\"anim\\\\\\\",t.COP=\\\\\\\"cop\\\\\\\",t.EVENT=\\\\\\\"event\\\\\\\",t.GL=\\\\\\\"gl\\\\\\\",t.JS=\\\\\\\"js\\\\\\\",t.MANAGER=\\\\\\\"manager\\\\\\\",t.MAT=\\\\\\\"mat\\\\\\\",t.OBJ=\\\\\\\"obj\\\\\\\",t.POST=\\\\\\\"post\\\\\\\",t.ROP=\\\\\\\"rop\\\\\\\",t.SOP=\\\\\\\"sop\\\\\\\"}(ts||(ts={})),function(t){t.ANIM=\\\\\\\"animationsNetwork\\\\\\\",t.COP=\\\\\\\"copNetwork\\\\\\\",t.EVENT=\\\\\\\"eventsNetwork\\\\\\\",t.MAT=\\\\\\\"materialsNetwork\\\\\\\",t.POST=\\\\\\\"postProcessNetwork\\\\\\\",t.ROP=\\\\\\\"renderersNetwork\\\\\\\"}(es||(es={})),function(t){t.INPUT=\\\\\\\"subnetInput\\\\\\\",t.OUTPUT=\\\\\\\"subnetOutput\\\\\\\"}(ns||(ns={})),function(t){t.PERSPECTIVE=\\\\\\\"perspectiveCamera\\\\\\\",t.ORTHOGRAPHIC=\\\\\\\"orthographicCamera\\\\\\\"}(is||(is={}));const ds=[is.ORTHOGRAPHIC,is.PERSPECTIVE];var ps,_s;!function(t){t.ATTRIBUTE=\\\\\\\"attribute\\\\\\\"}(ps||(ps={})),function(t){t.DEVICE_ORIENTATION=\\\\\\\"cameraDeviceOrientationControls\\\\\\\",t.MAP=\\\\\\\"cameraMapControls\\\\\\\",t.ORBIT=\\\\\\\"cameraOrbitControls\\\\\\\",t.FIRST_PERSON=\\\\\\\"firstPersonControls\\\\\\\",t.PLAYER=\\\\\\\"playerControls\\\\\\\",t.MOBILE_JOYSTICK=\\\\\\\"mobileJoystickControls\\\\\\\"}(_s||(_s={}));const ms=[_s.DEVICE_ORIENTATION,_s.MAP,_s.ORBIT,_s.FIRST_PERSON,_s.MOBILE_JOYSTICK];class fs{constructor(t){this._node=t}set_node(t){this._node=t}node(){return this._node}set_content(t){this._content=t,this._post_set_content()}has_content(){return null!=this._content}content(){return this._content}_post_set_content(){}coreContent(){return this._content}coreContentCloned(){return this._content}infos(){return[]}}var gs=n(69);class vs extends Q.a{constructor(){super(),this.type=\\\\\\\"Scene\\\\\\\",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,\\\\\\\"undefined\\\\\\\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"observe\\\\\\\",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}vs.prototype.isScene=!0;var ys=n(49),xs=n(52),bs=n(42),ws=n(55),Ts=n(62),As=n(24),Ms=n(35);const Es=new p.a,Ss=new p.a;class Cs extends Q.a{constructor(){super(),this._currentLevel=0,this.type=\\\\\\\"LOD\\\\\\\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0){e=Math.abs(e);const n=this.levels;let i;for(i=0;i<n.length&&!(e<n[i].distance);i++);return n.splice(i,0,{distance:e,object:t}),this.add(t),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i&&!(t<e[n].distance);n++);return e[n-1].object}return null}raycast(t,e){if(this.levels.length>0){Es.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(Es);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){Es.setFromMatrixPosition(t.matrixWorld),Ss.setFromMatrixPosition(this.matrixWorld);const n=Es.distanceTo(Ss)/t.zoom;let i,s;for(e[0].object.visible=!0,i=1,s=e.length;i<s&&n>=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;i<s;i++)e[i].object.visible=!1}}toJSON(t){const e=super.toJSON(t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}}var Ns;!function(t){t.OBJECT3D=\\\\\\\"Object3D\\\\\\\",t.GROUP=\\\\\\\"Group\\\\\\\",t.MESH=\\\\\\\"Mesh\\\\\\\",t.POINTS=\\\\\\\"Points\\\\\\\",t.LINE_SEGMENTS=\\\\\\\"LineSegments\\\\\\\",t.LOD=\\\\\\\"LOD\\\\\\\"}(Ns||(Ns={}));const Ls={[Ns.MESH]:B.a,[Ns.GROUP]:Fn.a,[Ns.POINTS]:ys.a,[Ns.LINE_SEGMENTS]:Ms.a,[Ns.OBJECT3D]:Q.a,[Ns.LOD]:Cs};function Os(t){switch(t){case Q.a:return Ns.OBJECT3D;case Fn.a:return Ns.GROUP;case B.a:return Ns.MESH;case ys.a:return Ns.POINTS;case Ms.a:return Ns.LINE_SEGMENTS;case Cs:return Ns.LOD;default:return li.warn(\\\\\\\"object type not supported\\\\\\\",t),Ns.MESH}}const Ps=[Ns.MESH,Ns.POINTS,Ns.LINE_SEGMENTS],Rs=[{name:\\\\\\\"Mesh\\\\\\\",value:Ps.indexOf(Ns.MESH)},{name:\\\\\\\"Points\\\\\\\",value:Ps.indexOf(Ns.POINTS)},{name:\\\\\\\"LineSegments\\\\\\\",value:Ps.indexOf(Ns.LINE_SEGMENTS)}],Is={MeshStandard:new ws.a({color:16777215,side:w.H,metalness:.5,roughness:.9}),[Ns.MESH]:new Ts.a({color:new D.a(1,1,1),side:w.H,vertexColors:!1,transparent:!0,depthTest:!0}),[Ns.POINTS]:new bs.a({color:16777215,size:.1,depthTest:!0}),[Ns.LINE_SEGMENTS]:new As.a({color:16777215,linewidth:1})};var Fs;!function(t){t[t.VERTEX=0]=\\\\\\\"VERTEX\\\\\\\",t[t.OBJECT=1]=\\\\\\\"OBJECT\\\\\\\"}(Fs||(Fs={}));const Ds=[Fs.VERTEX,Fs.OBJECT],Bs=[{name:\\\\\\\"vertex\\\\\\\",value:Fs.VERTEX},{name:\\\\\\\"object\\\\\\\",value:Fs.OBJECT}];var zs;!function(t){t[t.NUMERIC=0]=\\\\\\\"NUMERIC\\\\\\\",t[t.STRING=1]=\\\\\\\"STRING\\\\\\\"}(zs||(zs={}));const ks=[zs.NUMERIC,zs.STRING],Us=[{name:\\\\\\\"numeric\\\\\\\",value:zs.NUMERIC},{name:\\\\\\\"string\\\\\\\",value:zs.STRING}];var Gs;!function(t){t[t.FLOAT=1]=\\\\\\\"FLOAT\\\\\\\",t[t.VECTOR2=2]=\\\\\\\"VECTOR2\\\\\\\",t[t.VECTOR3=3]=\\\\\\\"VECTOR3\\\\\\\",t[t.VECTOR4=4]=\\\\\\\"VECTOR4\\\\\\\"}(Gs||(Gs={}));const Vs=[Gs.FLOAT,Gs.VECTOR2,Gs.VECTOR3,Gs.VECTOR4],Hs=[Gs.FLOAT,Gs.VECTOR4],js={ATTRIB_CLASS:{VERTEX:Fs.VERTEX,OBJECT:Fs.OBJECT},OBJECT_TYPES:Ps,CONSTRUCTOR_NAMES_BY_CONSTRUCTOR_NAME:{[vs.name]:\\\\\\\"Scene\\\\\\\",[Fn.a.name]:\\\\\\\"Group\\\\\\\",[Q.a.name]:\\\\\\\"Object3D\\\\\\\",[B.a.name]:\\\\\\\"Mesh\\\\\\\",[ys.a.name]:\\\\\\\"Points\\\\\\\",[Ms.a.name]:\\\\\\\"LineSegments\\\\\\\",[xs.a.name]:\\\\\\\"Bone\\\\\\\",[gs.a.name]:\\\\\\\"SkinnedMesh\\\\\\\"},CONSTRUCTORS_BY_NAME:{[Ns.MESH]:B.a,[Ns.POINTS]:ys.a,[Ns.LINE_SEGMENTS]:Ms.a},MATERIALS:Is};var Ws;!function(t){t.COLOR=\\\\\\\"color\\\\\\\",t.NORMAL=\\\\\\\"normal\\\\\\\",t.POSITION=\\\\\\\"position\\\\\\\",t.PSCALE=\\\\\\\"pscale\\\\\\\",t.UP=\\\\\\\"up\\\\\\\",t.UV=\\\\\\\"uv\\\\\\\",t.SCALE=\\\\\\\"scale\\\\\\\",t.TANGENT=\\\\\\\"tangent\\\\\\\"}(Ws||(Ws={}));const qs={P:Ws.POSITION,N:Ws.NORMAL,Cd:Ws.COLOR};class Xs{static remapName(t){return qs[t]||t}static arrayToIndexedArrays(t){const e={};let n=0;const i=[],s=[];let r=0;for(;r<t.length;){const o=t[r],a=e[o];null!=a?i.push(a):(s.push(o),i.push(n),e[o]=n,n+=1),r++}return{indices:i,values:s}}static default_value(t){switch(t){case 1:return 0;case 2:return new d.a(0,0);case 3:return new p.a(0,0,0);default:throw`size ${t} not yet implemented`}}static copy(t,e,n=!0){const i=null==t?void 0:t.array,s=null==e?void 0:e.array;if(i&&s){const t=Math.min(i.length,s.length);for(let e=0;e<t;e++)s[e]=i[e];n&&(e.needsUpdate=!0)}}static attribSizeFromValue(t){if(m.isString(t)||m.isNumber(t))return Gs.FLOAT;if(m.isArray(t))return t.length;switch(t.constructor){case d.a:return Gs.VECTOR2;case p.a:return Gs.VECTOR3;case _.a:return Gs.VECTOR4}return 0}}class Ys{constructor(t){this._index=t}index(){return this._index}}const $s=\\\\\\\"position\\\\\\\",Js=\\\\\\\"normal\\\\\\\";var Zs;!function(t){t.x=\\\\\\\"x\\\\\\\",t.y=\\\\\\\"y\\\\\\\",t.z=\\\\\\\"z\\\\\\\",t.w=\\\\\\\"w\\\\\\\",t.r=\\\\\\\"r\\\\\\\",t.g=\\\\\\\"g\\\\\\\",t.b=\\\\\\\"b\\\\\\\"}(Zs||(Zs={}));const Ks={x:0,y:1,z:2,w:3,r:0,g:1,b:2};class Qs extends Ys{constructor(t,e){super(e),this._coreGeometry=t,this._geometry=this._coreGeometry.geometry()}applyMatrix4(t){this.position().applyMatrix4(t)}coreGeometry(){return this._coreGeometry}geometry(){return this._geometry=this._geometry||this._coreGeometry.geometry()}attribSize(t){return t=Xs.remapName(t),this._geometry.getAttribute(t).itemSize}hasAttrib(t){const e=Xs.remapName(t);return this._coreGeometry.hasAttrib(e)}attribValue(t,e){if(\\\\\\\"ptnum\\\\\\\"===t)return this.index();{let n=null,i=null;\\\\\\\".\\\\\\\"===t[t.length-2]&&(n=t[t.length-1],i=Ks[n],t=t.substring(0,t.length-2));const s=Xs.remapName(t),r=this._geometry.getAttribute(s);if(!r){const e=`attrib ${t} not found. availables are: ${Object.keys(this._geometry.attributes||{}).join(\\\\\\\",\\\\\\\")}`;throw console.warn(e),e}{const{array:t}=r;if(this._coreGeometry.isAttribIndexed(s))return this.indexedAttribValue(s);{const n=r.itemSize,s=this._index*n;if(null==i)switch(n){case 1:return t[s];case 2:return(e=e||new d.a).fromArray(t,s),e;case 3:return(e=e||new p.a).fromArray(t,s),e;case 4:return(e=e||new _.a).fromArray(t,s),e;default:throw`size not valid (${n})`}else switch(n){case 1:return t[s];default:return t[s+i]}}}}}attribValueNumber(t){const e=Xs.remapName(t);return this._geometry.getAttribute(e).array[this._index]}attribValueVector2(t,e){const n=Xs.remapName(t),i=this._geometry.getAttribute(n);return e.fromArray(i.array,2*this._index),e}attribValueVector3(t,e){const n=Xs.remapName(t),i=this._geometry.getAttribute(n);return e.fromArray(i.array,3*this._index),e}attribValueVector4(t,e){const n=Xs.remapName(t),i=this._geometry.getAttribute(n);return e.fromArray(i.array,4*this._index),e}indexedAttribValue(t){const e=this.attribValueIndex(t);return this._coreGeometry.userDataAttrib(t)[e]}stringAttribValue(t){return this.indexedAttribValue(t)}attribValueIndex(t){return this._coreGeometry.isAttribIndexed(t)?this._geometry.getAttribute(t).array[this._index]:-1}isAttribIndexed(t){return this._coreGeometry.isAttribIndexed(t)}position(){return this._position||(this._position=this.getPosition(new p.a))}getPosition(t){const{array:e}=this._geometry.getAttribute($s);return t.fromArray(e,3*this._index)}setPosition(t){this.setAttribValueVector3($s,t)}normal(){return this._normal=this._normal||this.getNormal(new p.a)}getNormal(t){const{array:e}=this._geometry.getAttribute(Js);return t.fromArray(e,3*this._index)}setNormal(t){return this.setAttribValueVector3(Js,t)}setAttribValue(t,e){const n=this._geometry.getAttribute(t),i=n.array,s=n.itemSize;if(m.isArray(e))for(let t=0;t<s;t++)i[this._index*s+t]=e[t];else switch(s){case 1:i[this._index]=e;break;case 2:const t=e,n=2*this._index;i[n+0]=t.x,i[n+1]=t.y;break;case 3:const r=null!=e.r,o=3*this._index;if(r){const t=e;i[o+0]=t.r,i[o+1]=t.g,i[o+2]=t.b}else{const t=e;i[o+0]=t.x,i[o+1]=t.y,i[o+2]=t.z}break;case 4:const a=e,l=4*this._index;i[l+0]=a.x,i[l+1]=a.y,i[l+2]=a.z,i[l+3]=a.w;break;default:throw console.warn(`Point.set_attrib_value does not yet allow attrib size ${s}`),`attrib size ${s} not implemented`}}setAttribValueFromNumber(t,e){this._geometry.getAttribute(t).array[this._index]=e}setAttribValueFromVector2(t,e){const n=this._geometry.getAttribute(t);e.toArray(n.array,2*this._index)}setAttribValueFromVector3(t,e){const n=this._geometry.getAttribute(t);e.toArray(n.array,3*this._index)}setAttribValueFromVector4(t,e){const n=this._geometry.getAttribute(t);e.toArray(n.array,4*this._index)}setAttribValueVector3(t,e){if(null==e)return;if(null==t)throw\\\\\\\"Point.set_attrib_value requires a name\\\\\\\";const n=this._geometry.getAttribute(t).array,i=3*this._index;n[i]=e.x,n[i+1]=e.y,n[i+2]=e.z}setAttribIndex(t,e){return this._geometry.getAttribute(t).array[this._index]=e}}var tr=n(40);const er=function(t){return function(e){return Math.pow(e,t)}},nr=function(t){return function(e){return 1-Math.abs(Math.pow(e-1,t))}},ir=function(t){return function(e){return e<.5?er(t)(2*e)/2:nr(t)(2*e-1)/2+.5}},sr={linear:ir(1),ease_i:function(t,e){return er(e)(t)},ease_o:function(t,e){return nr(e)(t)},ease_io:function(t,e){return ir(e)(t)},ease_i2:er(2),ease_o2:nr(2),ease_io2:ir(2),ease_i3:ir(3),ease_o3:ir(3),ease_io3:ir(3),ease_i4:ir(4),ease_o4:ir(4),ease_io4:ir(4),ease_i_sin:function(t){return 1+Math.sin(Math.PI/2*t-Math.PI/2)},ease_o_sin:function(t){return Math.sin(Math.PI/2*t)},ease_io_sin:function(t){return(1+Math.sin(Math.PI*t-Math.PI/2))/2},ease_i_elastic:function(t){return(.04-.04/t)*Math.sin(25*t)+1},ease_o_elastic:function(t){return.04*t/--t*Math.sin(25*t)},ease_io_elastic:function(t){return(t-=.5)<0?(.02+.01/t)*Math.sin(50*t):(.02-.01/t)*Math.sin(50*t)+1}},rr=Math.PI/180;class or{static clamp(t,e,n){return t<e?e:t>n?n:t}static fit01(t,e,n){return this.fit(t,0,1,e,n)}static fit(t,e,n,i,s){return(t-e)/(n-e)*(s-i)+i}static blend(t,e,n){return(1-n)*t+n*e}static degrees_to_radians(t){return t*rr}static radians_to_degrees(t){return t/rr}static deg2rad(t){return this.degrees_to_radians(t)}static rad2deg(t){return this.radians_to_degrees(t)}static rand(t){return m.isNumber(t)?this.randFloat(t):this.randVec2(t)}static round(t,e){const n=t/e;return(t<0?Math.ceil(n):Math.floor(n))*e}static highest_even(t){return 2*Math.ceil(.5*t)}static randFloat(t,e=136574){return this._vec.x=t,this._vec.y=e,this.randVec2(this._vec)}static randVec2(t){const e=(12.9898*t.x+78.233*t.y)%Math.PI;return this.fract(43758.5453*Math.sin(e))}static geodesic_distance(t,e){var n=this.deg2rad(t.lat),i=this.deg2rad(e.lat),s=this.deg2rad(e.lat-t.lat),r=this.deg2rad(e.lng-t.lng),o=Math.sin(s/2)*Math.sin(s/2)+Math.cos(n)*Math.cos(i)*Math.sin(r/2)*Math.sin(r/2);return 6371e3*(2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o)))}static expand_triangle(t,e){t.getMidpoint(this._triangle_mid),this._triangle_mid_to_corner.copy(t.a).sub(this._triangle_mid),this._triangle_mid_to_corner.normalize().multiplyScalar(e),t.a.add(this._triangle_mid_to_corner),this._triangle_mid_to_corner.copy(t.b).sub(this._triangle_mid),this._triangle_mid_to_corner.normalize().multiplyScalar(e),t.b.add(this._triangle_mid_to_corner),this._triangle_mid_to_corner.copy(t.c).sub(this._triangle_mid),this._triangle_mid_to_corner.normalize().multiplyScalar(e),t.c.add(this._triangle_mid_to_corner)}static nearestPower2(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.log(2)))}}or.Easing=sr,or.fract=t=>t-Math.floor(t),or._vec={x:0,y:136574},or._triangle_mid=new p.a,or._triangle_mid_to_corner=new p.a;class ar{constructor(t,e){this._coreGeometry=t,this._index=e,this._geometry=this._coreGeometry.geometry()}index(){return this._index}points(){return this._points=this._points||this._get_points()}applyMatrix4(t){for(let e of this.points())e.applyMatrix4(t)}_get_points(){var t;const e=(null===(t=this._geometry.index)||void 0===t?void 0:t.array)||[],n=3*this._index;return[new Qs(this._coreGeometry,e[n+0]),new Qs(this._coreGeometry,e[n+1]),new Qs(this._coreGeometry,e[n+2])]}positions(){return this._positions=this._positions||this._getPositions()}_getPositions(){const t=this.points();return[t[0].position(),t[1].position(),t[2].position()]}triangle(){return this._triangle=this._triangle||this._get_triangle()}_get_triangle(){const t=this.positions();return new tr.a(t[0],t[1],t[2])}deltas(){return this._deltas=this._deltas||this._getDeltas()}_getDeltas(){const t=this.positions();return[t[1].clone().sub(t[0]),t[2].clone().sub(t[0])]}area(){return this.triangle().getArea()}center(t){const e=this.positions();return t.x=(e[0].x+e[1].x+e[2].x)/3,t.y=(e[0].y+e[1].y+e[2].y)/3,t.z=(e[0].z+e[1].z+e[2].z)/3,t}randomPosition(t){let e=[or.randFloat(t),or.randFloat(6541*t)];return e[0]+e[1]>1&&(e[0]=1-e[0],e[1]=1-e[1]),this.positions()[0].clone().add(this.deltas()[0].clone().multiplyScalar(e[0])).add(this.deltas()[1].clone().multiplyScalar(e[1]))}attribValueAtPosition(t,e){const n=new p.a;this.triangle().getBarycoord(e,n);const i=n.toArray(),s=this._geometry.attributes[t].itemSize,r=this.points().map((e=>e.attribValue(t)));let o,a,l=0;switch(s){case 1:a=0;for(let t of r)a+=t*i[l],l++;o=a;break;default:for(let t of r){const e=t.multiplyScalar(i[l]);a?a.add(e):a=e,l++}o=a}return o}static interpolatedValue(t,e,n,i){const s=[e.a,e.b,e.c],r=t.getAttribute(\\\\\\\"position\\\\\\\").array,o=s.map((t=>new p.a(r[3*t+0],r[3*t+1],r[3*t+2]))),a=i.itemSize,l=i.array;let c=[];switch(a){case 1:c=s.map((t=>l[t]));break;case 2:c=s.map((t=>new d.a(l[2*t+0],l[2*t+1])));break;case 3:c=s.map((t=>new p.a(l[3*t+0],l[3*t+1],l[3*t+2])))}const h=s.map(((t,e)=>n.distanceTo(o[e]))),u=f.sum([h[0]*h[1],h[0]*h[2],h[1]*h[2]]),_=[h[1]*h[2]/u,h[0]*h[2]/u,h[0]*h[1]/u];let m;switch(a){case 1:m=f.sum(s.map(((t,e)=>_[e]*c[e])));break;default:var g=s.map(((t,e)=>c[e].multiplyScalar(_[e])));m=null;for(let t of g)m?m.add(t):m=t}return m}}class lr{from_points(t){t=this._filter_points(t);const e=new S.a,n=new fr(e),i=t[0];if(null!=i){const s=i.geometry(),r=i.coreGeometry(),o={};for(let e=0;e<t.length;e++)o[t[e].index()]=e;const a=this._indices_from_points(o,s);a&&e.setIndex(a);const{attributes:l}=s;for(let i of Object.keys(l)){if(null!=r.userDataAttribs()[i]){const s=f.uniq(t.map((t=>t.indexedAttribValue(i)))),r={};s.forEach(((t,e)=>r[t]=e)),n.userDataAttribs()[i]=s;const o=[];for(let e of t){const t=r[e.indexedAttribValue(i)];o.push(t)}e.setAttribute(i,new C.c(o,1))}else{const n=l[i].itemSize,s=new Array(t.length*n);switch(n){case 1:for(let e=0;e<t.length;e++)s[e]=t[e].attribValue(i);break;default:let e;for(let r=0;r<t.length;r++)e=t[r].attribValue(i),e.toArray(s,r*n)}e.setAttribute(i,new C.c(s,n))}}}return e}}var cr=n(78),hr=n(65);function ur(t,e=!1){const n=null!==t[0].index,i=new Set(Object.keys(t[0].attributes)),s=new Set(Object.keys(t[0].morphAttributes)),r={},o={},a=t[0].morphTargetsRelative,l=new S.a;let c=0;for(let h=0;h<t.length;++h){const u=t[h];let d=0;if(n!==(null!==u.index))return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\"+h+\\\\\\\". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.\\\\\\\"),null;for(const t in u.attributes){if(!i.has(t))return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\"+h+'. All geometries must have compatible attributes; make sure \\\\\\\"'+t+'\\\\\\\" attribute exists among all geometries, or in none of them.'),null;void 0===r[t]&&(r[t]=[]),r[t].push(u.attributes[t]),d++}if(d!==i.size)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\"+h+\\\\\\\". Make sure all geometries have the same number of attributes.\\\\\\\"),null;if(a!==u.morphTargetsRelative)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\"+h+\\\\\\\". .morphTargetsRelative must be consistent throughout all geometries.\\\\\\\"),null;for(const t in u.morphAttributes){if(!s.has(t))return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\"+h+\\\\\\\".  .morphAttributes must be consistent throughout all geometries.\\\\\\\"),null;void 0===o[t]&&(o[t]=[]),o[t].push(u.morphAttributes[t])}if(l.userData.mergedUserData=l.userData.mergedUserData||[],l.userData.mergedUserData.push(u.userData),e){let t;if(n)t=u.index.count;else{if(void 0===u.attributes.position)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\"+h+\\\\\\\". The geometry must have either an index or a position attribute\\\\\\\"),null;t=u.attributes.position.count}l.addGroup(c,t,h),c+=t}}if(n){let e=0;const n=[];for(let i=0;i<t.length;++i){const s=t[i].index;for(let t=0;t<s.count;++t)n.push(s.getX(t)+e);e+=t[i].attributes.position.count}l.setIndex(n)}for(const t in r){const e=dr(r[t]);if(!e)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the \\\\\\\"+t+\\\\\\\" attribute.\\\\\\\"),null;l.setAttribute(t,e)}for(const t in o){const e=o[t][0].length;if(0===e)break;l.morphAttributes=l.morphAttributes||{},l.morphAttributes[t]=[];for(let n=0;n<e;++n){const e=[];for(let i=0;i<o[t].length;++i)e.push(o[t][i][n]);const i=dr(e);if(!i)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the \\\\\\\"+t+\\\\\\\" morphAttribute.\\\\\\\"),null;l.morphAttributes[t].push(i)}}return l}function dr(t){let e,n,i,s=0;for(let r=0;r<t.length;++r){const o=t[r];if(o.isInterleavedBufferAttribute)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.\\\\\\\"),null;if(void 0===e&&(e=o.array.constructor),e!==o.array.constructor)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.\\\\\\\"),null;if(void 0===n&&(n=o.itemSize),n!==o.itemSize)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.\\\\\\\"),null;if(void 0===i&&(i=o.normalized),i!==o.normalized)return console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.\\\\\\\"),null;s+=o.array.length}const r=new e(s);let o=0;for(let e=0;e<t.length;++e)r.set(t[e].array,o),o+=t[e].array.length;return new C.a(r,n,i)}class pr{static createIndexIfNone(t){if(!t.index){const e=t.getAttribute(\\\\\\\"position\\\\\\\");if(e){const n=e.array;t.setIndex(f.range(n.length/3))}}}}class _r{static merge(t){if(0===t.length)return;for(let e of t)pr.createIndexIfNone(e);const e=t.map((t=>new fr(t))),n=e[0].indexedAttributeNames(),i={};for(let t of n){const n={},s=[];for(let i of e){const e=i.points();for(let i of e){s.push(i);const e=i.indexedAttribValue(t);null!=n[e]?n[e]:n[e]=Object.keys(n).length}}const r=Object.keys(n);for(let e of s){const i=n[e.indexedAttribValue(t)];e.setAttribIndex(t,i)}i[t]=r}const s=ur(t),r=new fr(s);return Object.keys(i).forEach((t=>{const e=i[t];r.setIndexedAttributeValues(t,e)})),s&&delete s.userData.mergedUserData,s}}const mr=\\\\\\\"indexed_attrib_values\\\\\\\";class fr{constructor(t){this._geometry=t}geometry(){return this._geometry}uuid(){return this._geometry.uuid}boundingBox(){return this._bounding_box=this._bounding_box||this._create_bounding_box()}_create_bounding_box(){if(this._geometry.computeBoundingBox(),this._geometry.boundingBox)return this._geometry.boundingBox}markAsInstance(){this._geometry.userData.isInstance=!0}static markedAsInstance(t){return!0===t.userData.isInstance}markedAsInstance(){return fr.markedAsInstance(this._geometry)}positionAttribName(){let t=\\\\\\\"position\\\\\\\";return this.markedAsInstance()&&(t=\\\\\\\"instancePosition\\\\\\\"),t}computeVertexNormals(){this._geometry.computeVertexNormals()}userDataAttribs(){return this._geometry.userData[mr]=this._geometry.userData[mr]||{}}indexedAttributeNames(){return Object.keys(this.userDataAttribs()||{})}userDataAttrib(t){return t=Xs.remapName(t),this.userDataAttribs()[t]}isAttribIndexed(t){return t=Xs.remapName(t),null!=this.userDataAttrib(t)}hasAttrib(t){return\\\\\\\"ptnum\\\\\\\"===t||(t=Xs.remapName(t),null!=this._geometry.attributes[t])}attribType(t){return this.isAttribIndexed(t)?zs.STRING:zs.NUMERIC}static attribNames(t){return Object.keys(t.attributes)}attribNames(){return fr.attribNames(this._geometry)}static attribNamesMatchingMask(t,e){const n=ss.attribNames(e),i=[];for(let e of this.attribNames(t))for(let t of n)ss.matchMask(e,t)&&i.push(e);return f.uniq(i)}attribSizes(){const t={};for(let e of this.attribNames())t[e]=this._geometry.attributes[e].itemSize;return t}attribSize(t){let e;return t=Xs.remapName(t),null!=(e=this._geometry.attributes[t])?e.itemSize:\\\\\\\"ptnum\\\\\\\"===t?1:0}setIndexedAttributeValues(t,e){this.userDataAttribs()[t]=e}setIndexedAttribute(t,e,n){this.setIndexedAttributeValues(t,e),this._geometry.setAttribute(t,new C.f(n,1))}addNumericAttrib(t,e=1,n=0){const i=[];let s=!1;if(m.isNumber(n)){for(let t=0;t<this.pointsCount();t++)for(let t=0;t<e;t++)i.push(n);s=!0}else if(e>1)if(m.isArray(n)){for(let t=0;t<this.pointsCount();t++)for(let t=0;t<e;t++)i.push(n[t]);s=!0}else{const t=n;if(2==e&&null!=t.x&&null!=t.y){for(let e=0;e<this.pointsCount();e++)i.push(t.x),i.push(t.y);s=!0}const r=n;if(3==e&&null!=r.x&&null!=r.y&&null!=r.z){for(let t=0;t<this.pointsCount();t++)i.push(r.x),i.push(r.y),i.push(r.z);s=!0}const o=n;if(3==e&&null!=o.r&&null!=o.g&&null!=o.b){for(let t=0;t<this.pointsCount();t++)i.push(o.r),i.push(o.g),i.push(o.b);s=!0}const a=n;if(4==e&&null!=a.x&&null!=a.y&&null!=a.z&&null!=a.w){for(let t=0;t<this.pointsCount();t++)i.push(a.x),i.push(a.y),i.push(a.z),i.push(a.w);s=!0}}if(!s)throw console.warn(n),`CoreGeometry.add_numeric_attrib error: no other default value allowed for now in add_numeric_attrib (default given: ${n})`;this._geometry.setAttribute(t.trim(),new C.c(i,e))}initPositionAttribute(t,e){const n=[];null==e&&(e=new p.a);for(let i=0;i<t;i++)n.push(e.x),n.push(e.y),n.push(e.z);return this._geometry.setAttribute(\\\\\\\"position\\\\\\\",new C.c(n,3))}addAttribute(t,e){switch(e.type()){case zs.STRING:return console.log(\\\\\\\"TODO: to implement\\\\\\\");case zs.NUMERIC:return this.addNumericAttrib(t,e.size())}}renameAttrib(t,e){this.isAttribIndexed(t)&&(this.userDataAttribs()[e]=b.clone(this.userDataAttribs()[t]),delete this.userDataAttribs()[t]);const n=this._geometry.getAttribute(t);return this._geometry.setAttribute(e.trim(),new C.c(n.array,n.itemSize)),this._geometry.deleteAttribute(t)}deleteAttribute(t){return this.isAttribIndexed(t)&&delete this.userDataAttribs()[t],this._geometry.deleteAttribute(t)}clone(){return fr.clone(this._geometry)}static clone(t){let e;const n=t.clone();return null!=(e=t.userData)&&(n.userData=b.cloneDeep(e)),n}pointsCount(){return fr.pointsCount(this._geometry)}static pointsCount(t){let e,n=0;let i=\\\\\\\"position\\\\\\\";if(new this(t).markedAsInstance()&&(i=\\\\\\\"instancePosition\\\\\\\"),null!=(e=t.getAttribute(i))){let t;null!=(t=e.array)&&(n=t.length/3)}return n}points(){return this.pointsFromGeometry()}pointsFromGeometry(){const t=[],e=this._geometry.getAttribute(this.positionAttribName());if(null!=e){const n=e.array.length/3;for(let e=0;e<n;e++){const n=new Qs(this,e);t.push(n)}}return t}static geometryFromPoints(t,e){switch(e){case Ns.MESH:return this._mesh_builder.from_points(t);case Ns.POINTS:return this._points_builder.from_points(t);case Ns.LINE_SEGMENTS:return this._lines_segment_builder.from_points(t);case Ns.OBJECT3D:case Ns.GROUP:case Ns.LOD:return null}os.unreachable(e)}static mergeGeometries(t){return _r.merge(t)}static merge_geometries(t){return _r.merge(t)}segments(){var t;const e=(null===(t=this.geometry().index)||void 0===t?void 0:t.array)||[];return f.chunk(e,2)}faces(){return this.facesFromGeometry()}facesFromGeometry(){var t;const e=((null===(t=this.geometry().index)||void 0===t?void 0:t.array)||[]).length/3;return f.range(e).map((t=>new ar(this,t)))}}var gr;fr._mesh_builder=new class extends lr{_filter_points(t){var e;const n=t[0];if(n){const i=null===(e=n.geometry().getIndex())||void 0===e?void 0:e.array;if(i){const e={};for(let n of t)e[n.index()]=n;const n=[],s=i.length;let r,o,a;for(let t=0;t<s;t+=3)r=e[i[t+0]],o=e[i[t+1]],a=e[i[t+2]],r&&o&&a&&(n.push(r),n.push(o),n.push(a));return n}}return[]}_indices_from_points(t,e){const n=e.index;if(null!=n){const e=n.array,i=[];let s,r,o,a,l,c;for(let n=0;n<e.length;n+=3)s=e[n+0],r=e[n+1],o=e[n+2],a=t[s],l=t[r],c=t[o],null!=a&&null!=l&&null!=c&&(i.push(a),i.push(l),i.push(c));return i}}},fr._points_builder=new class extends lr{_filter_points(t){return t}_indices_from_points(t,e){const n=e.index;if(null!=n){const e=n.array,i=[];let s,r;for(let n=0;n<e.length;n++)s=e[n],r=t[s],null!=r&&i.push(r);return i}}},fr._lines_segment_builder=new class extends lr{_filter_points(t){var e;const n=t[0];if(n){const i=null===(e=n.geometry().getIndex())||void 0===e?void 0:e.array;if(i){const e={};for(let n of t)e[n.index()]=n;const n=[],s=i.length;let r,o;for(let t=0;t<s;t+=2)r=e[i[t+0]],o=e[i[t+1]],r&&o&&(n.push(r),n.push(o));return n}}return[]}_indices_from_points(t,e){const n=e.index;if(null!=n){const e=n.array,i=[];let s,r,o,a;for(let n=0;n<e.length;n+=2)s=e[n],r=e[n+1],o=t[s],a=t[r],null!=o&&null!=a&&(i.push(o),i.push(a));return i}}},function(t){t.customDistanceMaterial=\\\\\\\"customDistanceMaterial\\\\\\\",t.customDepthMaterial=\\\\\\\"customDepthMaterial\\\\\\\",t.customDepthDOFMaterial=\\\\\\\"customDepthDOFMaterial\\\\\\\"}(gr||(gr={}));const vr=(t,e,n,i,s,r)=>{};class yr{static node(t,e){return t.node(e.name)}static clone(t){const e=t.clone(),n=t.uniforms;return n&&(e.uniforms=I.clone(n)),e}static add_user_data_render_hook(t,e){t.userData.POLY_render_hook=e}static apply_render_hook(t,e){if(e.userData){const n=e.userData.POLY_render_hook;if(n)return void(t.onBeforeRender=(e,i,s,r,o,a)=>{n(e,i,s,r,o,a,t)})}t.onBeforeRender=vr}static applyCustomMaterials(t,e){const n=e;if(n.customMaterials)for(let e of Object.keys(n.customMaterials)){const i=e,s=n.customMaterials[i];s&&(t[i]=s,s.needsUpdate=!0)}}static assign_custom_uniforms(t,e,n){const i=t;if(i.customMaterials)for(let t of Object.keys(i.customMaterials)){const s=t,r=i.customMaterials[s];r&&(r.uniforms[e].value=n)}}static init_custom_material_uniforms(t,e,n){const i=t;if(i.customMaterials)for(let t of Object.keys(i.customMaterials)){const s=t,r=i.customMaterials[s];r&&(r.uniforms[e]=r.uniforms[e]||n)}}}const xr=\\\\\\\"name\\\\\\\";class br extends Ys{constructor(t,e){super(e),this._object=t,null==this._object.userData.attributes&&(this._object.userData.attributes={})}object(){return this._object}geometry(){return this._object.geometry}coreGeometry(){const t=this.geometry();return t?new fr(t):null}points(){var t;return(null===(t=this.coreGeometry())||void 0===t?void 0:t.points())||[]}pointsFromGroup(t){if(t){const e=ss.indices(t);if(e){const t=this.points();return e.map((e=>t[e]))}return[]}return this.points()}static isInGroup(t,e){const n=t.trim();if(0==n.length)return!0;const i=n.split(\\\\\\\"=\\\\\\\"),s=i[0];if(\\\\\\\"@\\\\\\\"==s[0]){const t=s.substr(1);return i[1]==this.attribValue(e,t)}return!1}computeVertexNormals(){var t;null===(t=this.coreGeometry())||void 0===t||t.computeVertexNormals()}static _convert_array_to_vector(t){switch(t.length){case 1:return t[0];case 2:return new d.a(t[0],t[1]);case 3:return new p.a(t[0],t[1],t[2]);case 4:return new _.a(t[0],t[1],t[2],t[3])}}static addAttribute(t,e,n){if(m.isArray(n)){if(!this._convert_array_to_vector(n)){const t=\\\\\\\"attribute_value invalid\\\\\\\";throw console.error(t,n),new Error(t)}}const i=n,s=t.userData;s.attributes=s.attributes||{},s.attributes[e]=i}addAttribute(t,e){br.addAttribute(this._object,t,e)}addNumericAttrib(t,e){this.addAttribute(t,e)}setAttribValue(t,e){this.addAttribute(t,e)}addNumericVertexAttrib(t,e,n){var i;null==n&&(n=Xs.default_value(e)),null===(i=this.coreGeometry())||void 0===i||i.addNumericAttrib(t,e,n)}attributeNames(){return Object.keys(this._object.userData.attributes)}attribNames(){return this.attributeNames()}hasAttrib(t){return this.attributeNames().includes(t)}renameAttrib(t,e){const n=this.attribValue(t);null!=n?(this.addAttribute(e,n),this.deleteAttribute(t)):console.warn(`attribute ${t} not found`)}deleteAttribute(t){delete this._object.userData.attributes[t]}static attribValue(t,e,n=0,i){if(\\\\\\\"ptnum\\\\\\\"===e)return n;if(t.userData&&t.userData.attributes){const n=t.userData.attributes[e];if(null==n){if(e==xr)return t.name}else if(m.isArray(n)&&i)return i.fromArray(n),i;return n}return e==xr?t.name:void 0}static stringAttribValue(t,e,n=0){const i=this.attribValue(t,e,n);if(null!=i)return m.isString(i)?i:`${i}`}attribValue(t,e){return br.attribValue(this._object,t,this._index,e)}stringAttribValue(t){return br.stringAttribValue(this._object,t,this._index)}name(){return this.attribValue(xr)}humanType(){return js.CONSTRUCTOR_NAMES_BY_CONSTRUCTOR_NAME[this._object.constructor.name]}attribTypes(){const t={};for(let e of this.attribNames()){const n=this.attribType(e);null!=n&&(t[e]=n)}return t}attribType(t){const e=this.attribValue(t);return m.isString(e)?zs.STRING:zs.NUMERIC}attribSizes(){const t={};for(let e of this.attribNames()){const n=this.attribSize(e);null!=n&&(t[e]=n)}return t}attribSize(t){const e=this.attribValue(t);return null==e?null:Xs.attribSizeFromValue(e)}clone(){return br.clone(this._object)}static clone(t){const e=t.clone();var n=new Map,i=new Map;return br.parallelTraverse(t,e,(function(t,e){n.set(e,t),i.set(t,e)})),e.traverse((function(e){const s=n.get(e),r=e;if(r.geometry){const t=s.geometry;r.geometry=fr.clone(t);const e=r.geometry;e.userData&&(e.userData=b.cloneDeep(t.userData))}if(r.material){r.material=s.material,yr.applyCustomMaterials(e,r.material);const t=r.material;null==t.color&&(t.color=new D.a(1,1,1))}t.userData&&(e.userData=b.cloneDeep(s.userData));const o=s;o.animations&&(e.animations=o.animations.map((t=>t.clone())));const a=e;if(a.isSkinnedMesh){var l=a,c=s,h=c.skeleton.bones;l.skeleton=c.skeleton.clone(),l.bindMatrix.copy(c.bindMatrix);const t=h.map((function(t){return i.get(t)}));l.skeleton.bones=t,l.bind(l.skeleton,l.bindMatrix)}})),e}static parallelTraverse(t,e,n){n(t,e);for(var i=0;i<t.children.length;i++)this.parallelTraverse(t.children[i],e.children[i],n)}}const wr={[ts.ANIM]:class extends fs{set_content(t){super.set_content(t)}setTimelineBuilder(t){return this.set_content(t)}timeline_builder(){return this.content()}coreContentCloned(){if(this._content)return this._content.clone()}},[ts.COP]:class extends fs{set_content(t){super.set_content(t)}texture(){return this._content}coreContent(){return this._content}coreContentCloned(){var t;const e=null===(t=this._content)||void 0===t?void 0:t.clone();return e&&(e.needsUpdate=!0),e}object(){return this.texture()}infos(){if(null!=this._content)return[this._content]}resolution(){if(this._content){const t=this._content.image;if(t){if(t instanceof HTMLImageElement||t instanceof Image||t instanceof ImageData||t instanceof HTMLCanvasElement)return[t.width,t.height];if(t.data&&null!=t.width&&null!=t.height)return[t.width,t.height];const e=t;return[e.videoWidth,e.videoHeight]}}return[-1,-1]}},[ts.EVENT]:class extends fs{set_content(t){super.set_content(t)}},[ts.GL]:class extends fs{object(){return this._content}},[ts.JS]:class extends fs{object(){return this._content}},[ts.MANAGER]:class extends fs{set_content(t){super.set_content(t)}},[ts.MAT]:class extends fs{set_content(t){super.set_content(t)}set_material(t){null!=this._content&&this._content.dispose(),this.set_content(t)}has_material(){return this.has_content()}material(){return this.content()}},[ts.OBJ]:class extends fs{set_content(t){super.set_content(t)}set_object(t){return this.set_content(t)}has_object(){return this.has_content()}object(){return this.content()}},[ts.POST]:class extends fs{set_content(t){super.set_content(t)}render_pass(){return this._content}object(t={}){return this.render_pass()}},[ts.ROP]:class extends fs{set_content(t){super.set_content(t)}renderer(){return this._content}},[ts.SOP]:class extends fs{coreContentCloned(){if(this._content)return this._content.clone()}set_content(t){super.set_content(t)}firstObject(){if(this._content)return this._content.objects()[0]}firstCoreObject(){const t=this.firstObject();if(t)return new br(t,0)}firstGeometry(){const t=this.firstObject();return t?t.geometry:null}objectsCount(){return this._content?this._content.objects().length:0}objectsVisibleCount(){let t=0;if(this._content){const e=this._content.objects();for(let n of e)n.visible&&t++}return t}objectsCountByType(){const t={},e=this._content;if(this._content&&e)for(let n of e.coreObjects()){const e=n.humanType();null==t[e]&&(t[e]=0),t[e]+=1}return t}objectsNamesByType(){const t={},e=this._content;if(this._content&&e)for(let n of e.coreObjects()){const e=n.humanType();t[e]=t[e]||[],t[e].push(n.name())}return t}pointAttributeNames(){let t=[];const e=this.firstGeometry();return e&&(t=Object.keys(e.attributes)),t}pointAttributeSizesByName(){let t={};const e=this.firstGeometry();return e&&Object.keys(e.attributes).forEach((n=>{const i=e.attributes[n];t[n]=i.itemSize})),t}objectAttributeSizesByName(){let t={};const e=this.firstCoreObject();if(e){const n=e.attribNames();for(let i of n){const n=e.attribSize(i);null!=n&&(t[i]=n)}}return t}pointAttributeTypesByName(){let t={};const e=this.firstGeometry();if(e){const n=new fr(e);Object.keys(e.attributes).forEach((e=>{t[e]=n.attribType(e)}))}return t}objectAttributeTypesByName(){let t={};const e=this.firstCoreObject();if(e)for(let n of e.attribNames())t[n]=e.attribType(n);return t}objectAttributeNames(){let t=[];const e=this.firstObject();return e&&(t=Object.keys(e.userData.attributes||{})),t}pointsCount(){return this._content?this._content.pointsCount():0}totalPointsCount(){return this._content?this._content.totalPointsCount():0}objectsData(){return this._content?this._content.objectsData():[]}boundingBox(t=!1){return this._content.boundingBox(t)}center(){return this._content.center()}size(){return this._content.size()}}};class Tr{constructor(t){this.node=t,this._callbacks=[],this._callbacks_tmp=[];const e=wr[t.context()];this._container=new e(this.node)}container(){return this._container}async compute(){var t,e;if(null===(e=null===(t=this.node.flags)||void 0===t?void 0:t.bypass)||void 0===e?void 0:e.active()){const t=await this.requestInputContainer(0)||this._container;return this.node.cookController.endCook(),t}return this.node.isDirty()?new Promise(((t,e)=>{this._callbacks.push(t),this.node.cookController.cookMain()})):this._container}async requestInputContainer(t){const e=this.node.io.inputs.input(t);return e?await e.compute():(this.node.states.error.set(`input ${t} required`),this.notifyRequesters(),null)}notifyRequesters(t){let e;for(this._callbacks_tmp=this._callbacks.slice(),this._callbacks.splice(0,this._callbacks.length),t||(t=this.node.containerController.container());e=this._callbacks_tmp.pop();)e(t);this.node.scene().cookController.removeNode(this.node)}}const Ar=li.performance.performanceManager();class Mr{constructor(t){this.cookController=t,this._inputs_start=0,this._params_start=0,this._cook_start=0,this._cooksCount=0,this._data={inputsTime:0,paramsTime:0,cookTime:0}}cooksCount(){return this._cooksCount}data2(){return this._data}active(){return this.cookController.performanceRecordStarted()}recordInputsStart(){this.active()&&(this._inputs_start=Ar.now())}recordInputsEnd(){this.active()&&(this._data.inputsTime=Ar.now()-this._inputs_start)}recordParamsStart(){this.active()&&(this._params_start=Ar.now())}recordParamsEnd(){this.active()&&(this._data.paramsTime=Ar.now()-this._params_start)}recordCookStart(){this.active()&&(this._cook_start=Ar.now())}recordCookEnd(){this.active()&&(this._data.cookTime=Ar.now()-this._cook_start,this._cooksCount+=1)}}class Er{constructor(t){this.node=t,this._cooking=!1,this._performanceController=new Mr(this),this._inputs_evaluation_required=!0,this._core_performance=this.node.scene().performance}performanceRecordStarted(){return this._core_performance.started()}disallowInputsEvaluation(){this._inputs_evaluation_required=!1}isCooking(){return!0===this._cooking}_start_cook_if_no_errors(t){if(this.node.states.error.active())this.endCook();else try{this._performanceController.recordCookStart(),this.node.cook(t)}catch(t){this.node.states.error.set(`node internal error: '${t}'.`),li.warn(t),this.endCook()}}async cookMain(){if(this.isCooking())return;let t;this._initCookingState(),this.node.states.error.clear(),this.node.scene().cookController.addNode(this.node),t=this._inputs_evaluation_required?await this._evaluateInputs():[],this.node.params.paramsEvalRequired()&&await this._evaluateParams(),this._start_cook_if_no_errors(t)}async cookMainWithoutInputs(){this.node.scene().cookController.addNode(this.node),this.isCooking()?li.warn(\\\\\\\"cook_main_without_inputs already cooking\\\\\\\",this.node.path()):(this._initCookingState(),this.node.states.error.clear(),this.node.params.paramsEvalRequired()&&await this._evaluateParams(),this._start_cook_if_no_errors([]))}endCook(t){this._finalizeCookPerformance();const e=this.node.dirtyController.dirtyTimestamp();null==e||e===this._cooking_dirty_timestamp?(this.node.removeDirtyState(),this._terminateCookProcess()):(li.log(\\\\\\\"COOK AGAIN\\\\\\\",e,this._cooking_dirty_timestamp,this.node.path()),this._cooking=!1,this.cookMain())}_initCookingState(){this._cooking=!0,this._cooking_dirty_timestamp=this.node.dirtyController.dirtyTimestamp()}_terminateCookProcess(){this.isCooking()&&(this._cooking=!1,this.node.containerController.notifyRequesters(),this._run_on_cook_complete_hooks())}async _evaluateInputs(){this._performanceController.recordInputsStart();let t=[];const e=this.node.io.inputs;this._inputs_evaluation_required&&(t=e.is_any_input_dirty()?await e.eval_required_inputs():await e.containers_without_evaluation());const n=e.inputs(),i=[];let s;for(let r=0;r<n.length;r++)s=t[r],s&&(e.cloneRequired(r)?i[r]=s.coreContentCloned():i[r]=s.coreContent());return this._performanceController.recordInputsEnd(),i}async _evaluateParams(){this._performanceController.recordParamsStart(),await this.node.params.evalAll(),this._performanceController.recordParamsEnd()}cooksCount(){return this._performanceController.cooksCount()}cookTime(){return this._performanceController.data2().cookTime}_finalizeCookPerformance(){this._core_performance.started()&&(this._performanceController.recordCookEnd(),this._core_performance.record_node_cook_data(this.node,this._performanceController.data2()))}registerOnCookEnd(t,e){this._on_cook_complete_hook_names=this._on_cook_complete_hook_names||[],this._on_cook_complete_hooks=this._on_cook_complete_hooks||[],this._on_cook_complete_hook_names.push(t),this._on_cook_complete_hooks.push(e)}deregisterOnCookEnd(t){var e;if(!this._on_cook_complete_hook_names||!this._on_cook_complete_hooks)return;const n=null===(e=this._on_cook_complete_hook_names)||void 0===e?void 0:e.indexOf(t);this._on_cook_complete_hook_names.splice(n,1),this._on_cook_complete_hooks.splice(n,1)}_run_on_cook_complete_hooks(){if(this._on_cook_complete_hooks)for(let t of this._on_cook_complete_hooks)t()}onCookEndCallbackNames(){return this._on_cook_complete_hook_names}}class Sr{constructor(t){this.node=t}toJSON(t=!1){var e,n,i,s,r,o;const a={name:this.node.name(),type:this.node.type(),graph_node_id:this.node.graphNodeId(),is_dirty:this.node.isDirty(),ui_data_json:this.node.uiData.toJSON(),error_message:this.node.states.error.message(),children:this.childrenIds(),maxInputsCount:this.maxInputsCount(),inputs:this.inputIds(),input_connection_output_indices:this.inputConnectionOutputIndices(),named_input_connection_points:this.namedInputConnectionPoints(),named_output_connection_points:this.namedOutputConnectionPoints(),param_ids:this.to_json_params(t),override_cloned_state_allowed:this.node.io.inputs.overrideClonedStateAllowed(),inputs_clone_required_states:this.node.io.inputs.cloneRequiredStates(),flags:{display:null===(n=null===(e=this.node.flags)||void 0===e?void 0:e.display)||void 0===n?void 0:n.active(),bypass:null===(s=null===(i=this.node.flags)||void 0===i?void 0:i.bypass)||void 0===s?void 0:s.active(),optimize:null===(o=null===(r=this.node.flags)||void 0===r?void 0:r.optimize)||void 0===o?void 0:o.active()},selection:void 0};return this.node.childrenAllowed()&&this.node.childrenController&&(a.selection=this.node.childrenController.selection.toJSON()),a}childrenIds(){return this.node.children().map((t=>t.graphNodeId()))}maxInputsCount(){return this.node.io.inputs.maxInputsCount()}inputIds(){return this.node.io.inputs.inputs().map((t=>null!=t?t.graphNodeId():void 0))}inputConnectionOutputIndices(){var t;return null===(t=this.node.io.connections.inputConnections())||void 0===t?void 0:t.map((t=>null!=t?t.output_index:void 0))}namedInputConnectionPoints(){return this.node.io.inputs.namedInputConnectionPoints().map((t=>t.toJSON()))}namedOutputConnectionPoints(){return this.node.io.outputs.namedOutputConnectionPoints().map((t=>t.toJSON()))}to_json_params_from_names(t,e=!1){return t.map((t=>this.node.params.get(t).graphNodeId()))}to_json_params(t=!1){return this.to_json_params_from_names(this.node.params.names,t)}}var Cr,Nr;!function(t){t.BOOLEAN=\\\\\\\"boolean\\\\\\\",t.BUTTON=\\\\\\\"button\\\\\\\",t.COLOR=\\\\\\\"color\\\\\\\",t.FLOAT=\\\\\\\"float\\\\\\\",t.FOLDER=\\\\\\\"folder\\\\\\\",t.INTEGER=\\\\\\\"integer\\\\\\\",t.OPERATOR_PATH=\\\\\\\"operator_path\\\\\\\",t.PARAM_PATH=\\\\\\\"param_path\\\\\\\",t.NODE_PATH=\\\\\\\"node_path\\\\\\\",t.RAMP=\\\\\\\"ramp\\\\\\\",t.STRING=\\\\\\\"string\\\\\\\",t.VECTOR2=\\\\\\\"vector2\\\\\\\",t.VECTOR3=\\\\\\\"vector3\\\\\\\",t.VECTOR4=\\\\\\\"vector4\\\\\\\"}(Cr||(Cr={})),function(t){t.VISIBLE_UPDATED=\\\\\\\"param_visible_updated\\\\\\\",t.RAW_INPUT_UPDATED=\\\\\\\"raw_input_updated\\\\\\\",t.VALUE_UPDATED=\\\\\\\"param_value_updated\\\\\\\",t.EXPRESSION_UPDATED=\\\\\\\"param_expression_update\\\\\\\",t.ERROR_UPDATED=\\\\\\\"param_error_updated\\\\\\\",t.DELETED=\\\\\\\"param_deleted\\\\\\\"}(Nr||(Nr={}));const Lr=\\\\\\\"dependentOnFoundNode\\\\\\\",Or=\\\\\\\"visibleIf\\\\\\\";var Pr,Rr;!function(t){t.TYPESCRIPT=\\\\\\\"typescript\\\\\\\"}(Pr||(Pr={})),function(t){t.AUDIO=\\\\\\\"audio\\\\\\\",t.TEXTURE_IMAGE=\\\\\\\"texture_image\\\\\\\",t.TEXTURE_VIDEO=\\\\\\\"texture_video\\\\\\\",t.GEOMETRY=\\\\\\\"geometry\\\\\\\",t.FONT=\\\\\\\"font\\\\\\\",t.SVG=\\\\\\\"svg\\\\\\\",t.JSON=\\\\\\\"json\\\\\\\"}(Rr||(Rr={}));class Ir{constructor(t){this._param=t,this._programatic_visible_state=!0,this._callbackAllowed=!1,this._updateVisibilityAndRemoveDirtyBound=this.updateVisibilityAndRemoveDirty.bind(this),this._ui_data_dependency_set=!1}dispose(){var t;try{this._options.callback=void 0,this._options.callbackString=void 0}catch(t){}null===(t=this._visibility_graph_node)||void 0===t||t.dispose()}set(t){this._default_options=t,this._options=b.cloneDeep(this._default_options),this.post_set_options()}copy(t){this._default_options=b.cloneDeep(t.default()),this._options=b.cloneDeep(t.current()),this.post_set_options()}setOption(t,e){if(this._options[t]=e,this._param.components)for(let n of this._param.components)n.options.setOption(t,e)}post_set_options(){this._handleComputeOnDirty()}param(){return this._param}node(){return this._param.node}default(){return this._default_options}current(){return this._options}hasOptionsOverridden(){return!b.isEqual(this._options,this._default_options)}overriddenOptions(){const t={},e=Object.keys(this._options);for(let n of e)if(!b.isEqual(this._options[n],this._default_options[n])){const e=b.cloneDeep(this._options[n]);Object.assign(t,{[n]:e})}return t}overriddenOptionNames(){return Object.keys(this.overriddenOptions())}computeOnDirty(){return this._options.computeOnDirty||!1}_handleComputeOnDirty(){this.computeOnDirty()&&(this._computeOnDirty_callback_added||(this.param().addPostDirtyHook(\\\\\\\"computeOnDirty\\\\\\\",this._computeParam.bind(this)),this._computeOnDirty_callback_added=!0))}async _computeParam(){await this.param().compute()}hasCallback(){return null!=this._options.callback||null!=this._options.callbackString}allowCallback(){this._callbackAllowed=!0}executeCallback(){if(!this._callbackAllowed)return;if(!this.node())return;const t=this.getCallback();if(!t)return;if(!this.node().scene().loadingController.loaded())return;const e=this.param().parent_param;e?e.options.executeCallback():t(this.node(),this.param())}getCallback(){if(this.hasCallback())return this._options.callback=this._options.callback||this.createCallbackFromString()}createCallbackFromString(){const t=this._options.callbackString;if(t){const e=new Function(\\\\\\\"node\\\\\\\",\\\\\\\"scene\\\\\\\",\\\\\\\"window\\\\\\\",\\\\\\\"location\\\\\\\",t);return()=>{e(this.node(),this.node().scene(),null,null)}}}colorConversion(){return this._options.conversion}makesNodeDirtyWhenDirty(){let t;if(null!=this.param().parent_param)return!1;let e=!0;return null!=(t=this._options.cook)&&(e=t),e}fileBrowseOption(){return this._options.fileBrowse}fileBrowseAllowed(){return null!=this.fileBrowseOption()}fileBrowseType(){const t=this.fileBrowseOption();return t?t.type:null}separatorBefore(){return this._options.separatorBefore}separatorAfter(){return this._options.separatorAfter}isExpressionForEntities(){const t=this._options.expression;return t&&t.forEntities||!1}level(){return this._options.level||0}hasMenu(){return null!=this.menuOptions()||null!=this.menuStringOptions()}menuOptions(){return this._options.menu}menuStringOptions(){return this._options.menuString}menuEntries(){const t=this.menuOptions()||this.menuStringOptions();return t?t.entries:[]}isMultiline(){return!0===this._options.multiline}language(){return this._options.language}isCode(){return null!=this.language()}nodeSelectionOptions(){return this._options.nodeSelection}nodeSelectionContext(){const t=this.nodeSelectionOptions();if(t)return t.context}nodeSelectionTypes(){const t=this.nodeSelectionOptions();if(t)return t.types}dependentOnFoundNode(){return!(Lr in this._options)||this._options.dependentOnFoundNode}isSelectingParam(){return null!=this.paramSelectionOptions()}paramSelectionOptions(){return this._options.paramSelection}paramSelectionType(){const t=this.paramSelectionOptions();if(t){const e=t;if(!m.isBoolean(e))return e}}range(){return this._options.range||[0,1]}step(){return this._options.step}rangeLocked(){return this._options.rangeLocked||[!1,!1]}ensureInRange(t){const e=this.range();return t>=e[0]&&t<=e[1]?t:t<e[0]?!0===this.rangeLocked()[0]?e[0]:t:!0===this.rangeLocked()[1]?e[1]:t}isSpare(){return this._options.spare||!1}textureOptions(){return this._options.texture}textureAsEnv(){const t=this.textureOptions();return null!=t&&!0===t.env}isHidden(){return!0===this._options.hidden||!1===this._programatic_visible_state}isVisible(){return!this.isHidden()}setVisibleState(t){this._options.hidden=!t,this.param().emit(Nr.VISIBLE_UPDATED)}label(){return this._options.label}isLabelHidden(){const t=this.param().type();return t===Cr.BUTTON||t===Cr.BOOLEAN&&this.isFieldHidden()}isFieldHidden(){return!1===this._options.field}uiDataDependsOnOtherParams(){return Or in this._options}visibilityPredecessors(){const t=this._options.visibleIf;if(!t)return[];let e=[];e=m.isArray(t)?f.uniq(t.map((t=>Object.keys(t))).flat()):Object.keys(t);const n=this.param().node;return f.compact(e.map((t=>{const e=n.params.get(t);if(e)return e;console.error(`param ${t} not found as visibility condition for ${this.param().name()} in node ${this.param().node.type()}`)})))}setUiDataDependency(){if(this._ui_data_dependency_set)return;this._ui_data_dependency_set=!0;const t=this.visibilityPredecessors();if(t.length>0){this._visibility_graph_node=new Mi(this.param().scene(),\\\\\\\"param_visibility\\\\\\\");for(let e of t)this._visibility_graph_node.addGraphInput(e);this._visibility_graph_node.addPostDirtyHook(\\\\\\\"_update_visibility_and_remove_dirty\\\\\\\",this._updateVisibilityAndRemoveDirtyBound)}}updateVisibilityAndRemoveDirty(){this.updateVisibility(),this.param().removeDirtyState()}async updateVisibility(){const t=this._options.visibleIf;if(t){const e=this.visibilityPredecessors(),n=e.map((t=>{if(t.isDirty())return t.compute()}));if(this._programatic_visible_state=!1,await Promise.all(n),m.isArray(t))for(let n of t){e.filter((t=>t.value==n[t.name()])).length==e.length&&(this._programatic_visible_state=!0)}else{const n=e.filter((e=>e.value==t[e.name()]));this._programatic_visible_state=n.length==e.length}this.param().emit(Nr.VISIBLE_UPDATED)}}}class Fr{constructor(t){this.param=t,this._blocked_emit=!1,this._blocked_parent_emit=!1,this._count_by_event_name={}}emitAllowed(){return!0!==this._blocked_emit&&(!this.param.scene().loadingController.isLoading()&&this.param.scene().dispatchController.emitAllowed())}blockEmit(){if(this._blocked_emit=!0,this.param.isMultiple()&&this.param.components)for(let t of this.param.components)t.emitController.blockEmit();return!0}unblockEmit(){if(this._blocked_emit=!1,this.param.isMultiple()&&this.param.components)for(let t of this.param.components)t.emitController.unblockEmit();return!0}blockParentEmit(){return this._blocked_parent_emit=!0,!0}unblockParentEmit(){return this._blocked_parent_emit=!1,!0}incrementCount(t){this._count_by_event_name[t]=this._count_by_event_name[t]||0,this._count_by_event_name[t]+=1}eventsCount(t){return this._count_by_event_name[t]||0}emit(t){this.emitAllowed()&&(this.param.emit(t),null!=this.param.parent_param&&!0!==this._blocked_parent_emit&&this.param.parent_param.emit(t))}}class Dr{constructor(t){this.param=t}toJSON(){const t={name:this.param.name(),type:this.param.type(),raw_input:this.rawInput(),value:this.value(),value_pre_conversion:this.value_pre_conversion(),expression:this.expression(),graph_node_id:this.param.graphNodeId(),error_message:this.error_message(),is_visible:this.is_visible(),components:void 0};return this.param.isMultiple()&&this.param.components&&(t.components=this.param.components.map((t=>t.graphNodeId()))),t}rawInput(){return this.param.rawInputSerialized()}value(){return this.param.valueSerialized()}value_pre_conversion(){return this.param.valuePreConversionSerialized()}expression(){var t;return this.param.hasExpression()?null===(t=this.param.expressionController)||void 0===t?void 0:t.expression():void 0}error_message(){return this.param.states.error.message()}is_visible(){return this.param.options.isVisible()}}class Br{constructor(t){this.param=t}active(){const t=this.param.scene().timeController.graphNode.graphNodeId();return this.param.graphPredecessorIds().includes(t)}}class zr{constructor(t){this.param=t}set(t){this._message!=t&&(this._message=t,this._message&&li.warn(this.param.path(),this._message),this.param.emitController.emit(Nr.ERROR_UPDATED))}message(){return this._message}clear(){this.set(void 0)}active(){return null!=this._message}}class kr{constructor(t){this.param=t,this.timeDependent=new Br(this.param),this.error=new zr(this.param)}}class Ur extends Mi{constructor(t,e,n){var i;super(t.scene(),\\\\\\\"MethodDependency\\\\\\\"),this.param=t,this.path_argument=e,this.decomposed_path=n,this._update_from_name_change_bound=this._update_from_name_change.bind(this),null===(i=t.expressionController)||void 0===i||i.registerMethodDependency(this),this.addPostDirtyHook(\\\\\\\"_update_from_name_change\\\\\\\",this._update_from_name_change_bound)}_update_from_name_change(t){if(t&&this.decomposed_path){const e=t;this.decomposed_path.update_from_name_change(e);const n=this.decomposed_path.to_path(),i=this.jsep_node;i&&(i.value=`${i.value}`.replace(`${this.path_argument}`,n),i.raw=i.raw.replace(`${this.path_argument}`,n)),this.param.expressionController&&this.param.expressionController.updateFromMethodDependencyNameChange()}}reset(){this.graphDisconnectPredecessors()}listen_for_name_changes(){if(this.jsep_node&&this.decomposed_path)for(let t of this.decomposed_path.named_nodes())if(t){const e=t;e.nameController&&this.addGraphInput(e.nameController.graph_node)}}set_jsep_node(t){this.jsep_node=t}set_resolved_graph_node(t){this.resolved_graph_node=t}set_unresolved_path(t){this.unresolved_path=t}static create(t,e,n,i){const s=m.isNumber(e),r=new Ur(t,e,i);if(n)r.set_resolved_graph_node(n);else if(!s){const t=e;r.set_unresolved_path(t)}return r}}const Gr=[];class Vr extends Mi{constructor(t,e){super(t,\\\\\\\"BaseParam\\\\\\\"),this._options=new Ir(this),this._emit_controller=new Fr(this),this._is_computing=!1,this._node=e,this.initialize_param()}get options(){return this._options=this._options||new Ir(this)}get emitController(){return this._emit_controller=this._emit_controller||new Fr(this)}get expressionController(){return this._expression_controller}get serializer(){return this._serializer=this._serializer||new Dr(this)}get states(){return this._states=this._states||new kr(this)}dispose(){var t,e;const n=this.graphPredecessors();for(let t of n)t instanceof Ur&&t.dispose();this.scene().missingExpressionReferencesController.deregisterParam(this),null===(t=this._expression_controller)||void 0===t||t.dispose(),super.dispose(),null===(e=this._options)||void 0===e||e.dispose()}initialize_param(){}static type(){return Cr.FLOAT}type(){return this.constructor.type()}isNumeric(){return!1}setName(t){super.setName(t)}get value(){return this._value}copy_value(t){t.type()==this.type()?this._copy_value(t):console.warn(`cannot copy value from ${t.type()} to ${this.type()}`)}_copy_value(t){throw\\\\\\\"abstract method param._copy_value\\\\\\\"}valuePreConversionSerialized(){}convert(t){return null}static are_raw_input_equal(t,e){return!1}is_raw_input_equal(t){return this.constructor.are_raw_input_equal(this._raw_input,t)}static are_values_equal(t,e){return!1}is_value_equal(t){return this.constructor.are_values_equal(this.value,t)}_clone_raw_input(t){return t}set(t){this._raw_input=this._clone_raw_input(this._prefilter_invalid_raw_input(t)),this.emitController.emit(Nr.RAW_INPUT_UPDATED),this.processRawInput()}_prefilter_invalid_raw_input(t){return t}defaultValue(){return this._default_value}isDefault(){return this._raw_input==this._default_value}rawInput(){return this._raw_input}processRawInput(){}async compute(){if(this.scene().loadingController.isLoading()&&console.warn(`param attempt to compute ${this.path()}`),this.isDirty()){if(this._is_computing)return new Promise(((t,e)=>{this._compute_resolves=this._compute_resolves||[],this._compute_resolves.push(t)}));if(this._is_computing=!0,await this.processComputation(),this._is_computing=!1,this._compute_resolves){let t;for(;t=this._compute_resolves.pop();)t()}}}async processComputation(){}setInitValue(t){this._default_value=this._clone_raw_input(this._prefilter_invalid_raw_input(t))}_setupNodeDependencies(t){var e,n;if(t?(this.options.allowCallback(),this.parent_param||(this.options.makesNodeDirtyWhenDirty()?null===(n=t.params.params_node)||void 0===n||n.addGraphInput(this,!1):this.dirtyController.addPostDirtyHook(\\\\\\\"run callback\\\\\\\",(async()=>{await this.compute(),this.options.executeCallback()})))):this._node&&(null===(e=this._node.params.params_node)||void 0===e||e.removeGraphInput(this)),this.components)for(let e of this.components)e._setupNodeDependencies(t)}get node(){return this._node}parent(){return this.node}set_parent_param(t){t.addGraphInput(this,!1),this._parent_param=t}get parent_param(){return this._parent_param}has_parent_param(){return null!=this._parent_param}path(){var t;return(null===(t=this.node)||void 0===t?void 0:t.path())+\\\\\\\"/\\\\\\\"+this.name()}pathRelativeTo(t){const e=bi.relativePath(t,this.node);return e.length>0?`${e}${bi.SEPARATOR}${this.name()}`:this.name()}emit(t){this.emitController.emitAllowed()&&(this.emitController.incrementCount(t),this.scene().dispatchController.dispatch(this,t))}get components(){return this._components}componentNames(){return Gr}isMultiple(){return this.componentNames().length>0}initComponents(){}hasExpression(){return null!=this.expressionController&&this.expressionController.active()}toJSON(){return this.serializer.toJSON()}}var Hr=n(94),jr=n.n(Hr);jr.a.addUnaryOp(\\\\\\\"@\\\\\\\");jr.a.addBinaryOp(\\\\\\\"**\\\\\\\",10);class Wr{constructor(){}parse_expression(t){try{this.reset(),this.node=jr()(t)}catch(e){const n=`could not parse the expression '${t}' (error: ${e})`;this.error_message=n}}parse_expression_for_string_param(t){try{this.reset();const e=Wr.string_value_elements(t),n=[];for(let t=0;t<e.length;t++){const i=e[t];let s;if(t%2==1)s=jr()(i);else{const t=i.replace(/\\\\'/g,\\\\\\\"\\\\\\\\'\\\\\\\");s={type:\\\\\\\"Literal\\\\\\\",value:`'${t}'`,raw:`'${t}'`}}n.push(s)}this.node={type:\\\\\\\"CallExpression\\\\\\\",arguments:n,callee:{type:\\\\\\\"Identifier\\\\\\\",name:\\\\\\\"strConcat\\\\\\\"}}}catch(e){const n=`could not parse the expression '${t}' (error: ${e})`;this.error_message=n}}static string_value_elements(t){return null!=t&&m.isString(t)?t.split(\\\\\\\"`\\\\\\\"):[]}reset(){this.node=void 0,this.error_message=void 0}}class qr{constructor(t){this.param=t,this._set_error_from_error_bound=this._set_error_from_error.bind(this)}clear_error(){this._error_message=void 0}set_error(t){this._error_message=this._error_message||t}_set_error_from_error(t){m.isString(t)?this._error_message=t:this._error_message=t.message}is_errored(){return null!=this._error_message}error_message(){return this._error_message}reset(){this._error_message=void 0}traverse_node(t){const e=`traverse_${t.type}`;if(this[e])return this[e](t);this.set_error(`expression unknown node type: ${t.type}`)}traverse_BinaryExpression(t){return`${this.traverse_node(t.left)} ${t.operator} ${this.traverse_node(t.right)}`}traverse_LogicalExpression(t){return`${this.traverse_node(t.left)} ${t.operator} ${this.traverse_node(t.right)}`}traverse_MemberExpression(t){return`${this.traverse_node(t.object)}.${this.traverse_node(t.property)}`}traverse_ConditionalExpression(t){return`(${this.traverse_node(t.test)}) ? (${this.traverse_node(t.consequent)}) : (${this.traverse_node(t.alternate)})`}traverse_Compound(t){const e=t.body;let n=[];for(let t=0;t<e.length;t++){const i=e[t];\\\\\\\"Identifier\\\\\\\"==i.type?\\\\\\\"$\\\\\\\"==i.name[0]?n.push(\\\\\\\"`${\\\\\\\"+this.traverse_node(i)+\\\\\\\"}`\\\\\\\"):n.push(`'${i.name}'`):n.push(\\\\\\\"`${\\\\\\\"+this.traverse_node(i)+\\\\\\\"}`\\\\\\\")}return n.join(\\\\\\\" + \\\\\\\")}traverse_Literal(t){return`${t.raw}`}}class Xr{constructor(){}reset(){this._attributeNames&&this._attributeNames.clear()}assignAttributesLines(){if(this._attributeNames){const t=[];for(let e of this._attributeNames)t.push(Xr.assignAttributeLine(e));return t.join(\\\\\\\";\\\\n\\\\\\\")}return\\\\\\\"\\\\\\\"}assignArraysLines(){if(this._attributeNames){const t=[];if(this._attributeNames.size>0){const e=\\\\\\\"const coreGeometry = entities[0].coreGeometry();\\\\\\\";t.push(e)}for(let e of this._attributeNames)t.push(Xr.assignItemSizeLine(e)),t.push(Xr.assignArrayLine(e));return t.join(\\\\\\\";\\\\n\\\\\\\")}return\\\\\\\"\\\\\\\"}attributePresenceCheckLine(){if(this._attributeNames){const t=[];for(let e of this._attributeNames){const n=Xr._varAttribute(e);t.push(n)}if(t.length>0)return t.join(\\\\\\\" && \\\\\\\")}return\\\\\\\"true\\\\\\\"}add(t){this._attributeNames=this._attributeNames||new Set,this._attributeNames.add(t)}static assignAttributeLine(t){return`const ${this._varAttribute(t)} = entities[0].geometry().attributes['${t}']`}static assignItemSizeLine(t){const e=this._varAttribute(t);return`const ${this._varAttribSize(t)} = ${e}.itemSize`}static assignArrayLine(t){const e=this._varAttribute(t);return`const ${this._varArray(t)} = ${`coreGeometry.isAttribIndexed('${t}')`} ? ${`entities.map(e=>e.indexedAttribValue('${t}'))`} : ${`${e}.array`}`}static _varAttribute(t){return`attrib_${t}`}static _varAttribSize(t){return`attrib_size_${t}`}static _varArray(t){return`array_${t}`}varAttributeSize(t){return Xr._varAttribSize(t)}varArray(t){return Xr._varArray(t)}}const Yr={math_random:\\\\\\\"random\\\\\\\"},$r=Object.keys(sr),Jr={};[\\\\\\\"abs\\\\\\\",\\\\\\\"acos\\\\\\\",\\\\\\\"acosh\\\\\\\",\\\\\\\"asin\\\\\\\",\\\\\\\"asinh\\\\\\\",\\\\\\\"atan\\\\\\\",\\\\\\\"atan2\\\\\\\",\\\\\\\"atanh\\\\\\\",\\\\\\\"ceil\\\\\\\",\\\\\\\"cos\\\\\\\",\\\\\\\"cosh\\\\\\\",\\\\\\\"exp\\\\\\\",\\\\\\\"expm1\\\\\\\",\\\\\\\"floor\\\\\\\",\\\\\\\"log\\\\\\\",\\\\\\\"log1p\\\\\\\",\\\\\\\"log2\\\\\\\",\\\\\\\"log10\\\\\\\",\\\\\\\"max\\\\\\\",\\\\\\\"min\\\\\\\",\\\\\\\"pow\\\\\\\",\\\\\\\"round\\\\\\\",\\\\\\\"sign\\\\\\\",\\\\\\\"sin\\\\\\\",\\\\\\\"sinh\\\\\\\",\\\\\\\"sqrt\\\\\\\",\\\\\\\"tan\\\\\\\",\\\\\\\"tanh\\\\\\\"].forEach((t=>{Jr[t]=`Math.${t}`})),[\\\\\\\"cbrt\\\\\\\",\\\\\\\"hypot\\\\\\\",\\\\\\\"log10\\\\\\\",\\\\\\\"trunc\\\\\\\"].forEach((t=>{Jr[t]=`Math.${t}`})),Object.keys(Yr).forEach((t=>{const e=Yr[t];Jr[t]=`Math.${e}`})),[\\\\\\\"fit\\\\\\\",\\\\\\\"fit01\\\\\\\",\\\\\\\"fract\\\\\\\",\\\\\\\"deg2rad\\\\\\\",\\\\\\\"rad2deg\\\\\\\",\\\\\\\"rand\\\\\\\",\\\\\\\"clamp\\\\\\\"].forEach((t=>{Jr[t]=`Core.Math.${t}`})),$r.forEach((t=>{Jr[t]=`Core.Math.Easing.${t}`})),[\\\\\\\"precision\\\\\\\"].forEach((t=>{Jr[t]=`Core.String.${t}`}));const Zr={if:class{static if(t){return`(${t[0]}) ? (${t[1]}) : (${t[2]})`}}.if},Kr={};[\\\\\\\"E\\\\\\\",\\\\\\\"LN2\\\\\\\",\\\\\\\"LN10\\\\\\\",\\\\\\\"LOG10E\\\\\\\",\\\\\\\"LOG2E\\\\\\\",\\\\\\\"PI\\\\\\\",\\\\\\\"SQRT1_2\\\\\\\",\\\\\\\"SQRT2\\\\\\\"].forEach((t=>{Kr[t]=`Math.${t}`}));const Qr={x:0,y:1,z:2,w:3,r:0,g:1,b:2};class to extends qr{constructor(t){super(t),this.param=t,this._attribute_requirements_controller=new Xr,this.methods=[],this.method_index=-1,this.method_dependencies=[],this.immutable_dependencies=[]}parse_tree(t){if(this.reset(),null==t.error_message){try{if(this._attribute_requirements_controller=new Xr,t.node){const e=this.traverse_node(t.node);e&&!this.is_errored()&&(this.function_main_string=e)}else console.warn(\\\\\\\"no parsed_tree.node\\\\\\\")}catch(t){console.warn(`error in expression for param ${this.param.path()}`),console.warn(t)}if(this.function_main_string)try{const t=this._functionBody();this.function=new Function(\\\\\\\"Core\\\\\\\",\\\\\\\"param\\\\\\\",\\\\\\\"methods\\\\\\\",\\\\\\\"_set_error_from_error\\\\\\\",`\\\\n\\\\t\\\\t\\\\t\\\\t\\\\ttry {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t${t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t} catch(e) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t_set_error_from_error(e)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\treturn null;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}`)}catch(t){console.warn(t),this.set_error(\\\\\\\"cannot generate function\\\\\\\")}else this.set_error(\\\\\\\"cannot generate function body\\\\\\\")}else this.set_error(\\\\\\\"cannot parse expression\\\\\\\")}reset(){super.reset(),this.function_main_string=void 0,this.methods=[],this.method_index=-1,this.function=void 0,this.method_dependencies=[],this.immutable_dependencies=[]}_functionBody(){return this.param.options.isExpressionForEntities()?`\\\\n\\\\t\\\\t\\\\tconst entities = param.expressionController.entities();\\\\n\\\\t\\\\t\\\\tif(entities){\\\\n\\\\t\\\\t\\\\t\\\\treturn new Promise( async (resolve, reject)=>{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tlet entity;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tconst entity_callback = param.expressionController.entity_callback();\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t// assign_attributes_lines\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t${this._attribute_requirements_controller.assignAttributesLines()}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t// check if attributes are present\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tif( ${this._attribute_requirements_controller.attributePresenceCheckLine()} ){\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t// assign_arrays_lines\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t${this._attribute_requirements_controller.assignArraysLines()}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tfor(let index=0; index < entities.length; index++){\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tentity = entities[index];\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tresult = ${this.function_main_string};\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tentity_callback(entity, result);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tresolve()\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tconst error = new Error('attribute not found')\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t_set_error_from_error(error)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\treject(error)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t})\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\treturn []`:`\\\\n\\\\t\\\\t\\\\treturn new Promise( async (resolve, reject)=>{\\\\n\\\\t\\\\t\\\\t\\\\ttry {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tconst value = ${this.function_main_string}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tresolve(value)\\\\n\\\\t\\\\t\\\\t\\\\t} catch(e) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t_set_error_from_error(e)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treject()\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t})\\\\n\\\\t\\\\t\\\\t`}evalAllowed(){return null!=this.function}evalFunction(){if(this.function){this.clear_error();const t={Math:or,String:ss};return this.function(t,this.param,this.methods,this._set_error_from_error_bound)}}traverse_CallExpression(t){const e=t.arguments.map((t=>this.traverse_node(t))),n=t.callee.name;if(n){const i=Zr[n];if(i)return i(e);const s=`${e.join(\\\\\\\", \\\\\\\")}`,r=Jr[n];if(r)return`${r}(${s})`;const o=li.expressionsRegister;if(o.getMethod(n)){const i=t.arguments[0],r=`return ${e[0]}`;let o,a=[];try{o=new Function(r),a=o()}catch{}return this._create_method_and_dependencies(n,a,i),`(await methods[${this.method_index}].processArguments([${s}]))`}{const t=`method not found (${n}), available methods are: ${o.availableMethods().join(\\\\\\\", \\\\\\\")}`;li.warn(t)}}this.set_error(`unknown method: ${n}`)}traverse_BinaryExpression(t){return`(${this.traverse_node(t.left)} ${t.operator} ${this.traverse_node(t.right)})`}traverse_LogicalExpression(t){return`(${this.traverse_node(t.left)} ${t.operator} ${this.traverse_node(t.right)})`}traverse_MemberExpression(t){return`${this.traverse_node(t.object)}.${this.traverse_node(t.property)}`}traverse_UnaryExpression(t){if(\\\\\\\"@\\\\\\\"===t.operator){let e,n,i=t.argument;switch(i.type){case\\\\\\\"Identifier\\\\\\\":e=i.name;break;case\\\\\\\"MemberExpression\\\\\\\":{const t=i,s=t.object,r=t.property;e=s.name,n=r.name;break}}if(e){if(e=Xs.remapName(e),\\\\\\\"ptnum\\\\\\\"==e)return\\\\\\\"((entity != null) ? entity.index() : 0)\\\\\\\";{const t=this._attribute_requirements_controller.varAttributeSize(e),i=this._attribute_requirements_controller.varArray(e);if(this._attribute_requirements_controller.add(e),n){return`${i}[entity.index()*${t}+${Qr[n]}]`}return`${i}[entity.index()*${t}]`}}return console.warn(\\\\\\\"attribute not found\\\\\\\"),\\\\\\\"\\\\\\\"}return`${t.operator}${this.traverse_node(t.argument)}`}traverse_Literal(t){return`${t.raw}`}traverse_Identifier(t){if(\\\\\\\"$\\\\\\\"!=t.name[0])return t.name;{const e=t.name.substr(1),n=Kr[e];if(n)return n;const i=`traverse_Identifier_${e}`;if(this[i])return this[i]();this.set_error(`identifier unknown: ${t.name}`)}}traverse_Identifier_F(){return this.immutable_dependencies.push(this.param.scene().timeController.graphNode),\\\\\\\"param.scene().timeController.frame()\\\\\\\"}traverse_Identifier_T(){return this.immutable_dependencies.push(this.param.scene().timeController.graphNode),\\\\\\\"param.scene().timeController.time()\\\\\\\"}traverse_Identifier_OS(){return`'${this.param.node.name()}'`}traverse_Identifier_CH(){return`'${this.param.name()}'`}traverse_Identifier_CEX(){return this._method_centroid(\\\\\\\"x\\\\\\\")}traverse_Identifier_CEY(){return this._method_centroid(\\\\\\\"y\\\\\\\")}traverse_Identifier_CEZ(){return this._method_centroid(\\\\\\\"z\\\\\\\")}_method_centroid(t){const e=[0,`'${t}'`].join(\\\\\\\", \\\\\\\");return this._create_method_and_dependencies(\\\\\\\"centroid\\\\\\\",0),`(await methods[${this.method_index}].processArguments([${e}]))`}_create_method_and_dependencies(t,e,n){const i=li.expressionsRegister,s=i.getMethod(t);if(!s){const e=`method not found (${t}), available methods are: ${i.availableMethods().join(\\\\\\\", \\\\\\\")}`;return this.set_error(e),void li.warn(e)}const r=new s(this.param);if(this.method_index+=1,this.methods[this.method_index]=r,r.require_dependency()){const t=r.findDependency(e);t?(n&&t.set_jsep_node(n),this.method_dependencies.push(t)):n&&m.isString(e)&&this.param.scene().missingExpressionReferencesController.register(this.param,e)}}}class eo extends qr{constructor(t){super(t),this.param=t}parse_tree(t){if(null==t.error_message&&t.node)try{return this.traverse_node(t.node)}catch(t){this.set_error(\\\\\\\"could not traverse tree\\\\\\\")}else this.set_error(\\\\\\\"cannot parse tree\\\\\\\")}traverse_CallExpression(t){const e=`${t.arguments.map((t=>this.traverse_node(t))).join(\\\\\\\", \\\\\\\")}`;return`${t.callee.name}(${e})`}traverse_UnaryExpression(t){return`${t.operator}${this.traverse_node(t.argument)}`}traverse_Identifier(t){return`${t.name}`}}class no{constructor(t){this.param=t,this.cyclic_graph_detected=!1,this.method_dependencies=[]}set_error(t){this.error_message=this.error_message||t}reset(){this.param.graphDisconnectPredecessors(),this.method_dependencies.forEach((t=>{t.reset()})),this.method_dependencies=[]}update(t){this.cyclic_graph_detected=!1,this.connect_immutable_dependencies(t),this.method_dependencies=t.method_dependencies,this.handle_method_dependencies(),this.listen_for_name_changes()}connect_immutable_dependencies(t){t.immutable_dependencies.forEach((t=>{if(0==this.cyclic_graph_detected&&0==this.param.addGraphInput(t))return this.cyclic_graph_detected=!0,this.set_error(\\\\\\\"cannot create expression, infinite graph detected\\\\\\\"),void this.reset()}))}handle_method_dependencies(){this.method_dependencies.forEach((t=>{0==this.cyclic_graph_detected&&this.handle_method_dependency(t)}))}handle_method_dependency(t){const e=t.resolved_graph_node;if(e&&!this.param.addGraphInput(e))return this.cyclic_graph_detected=!0,this.set_error(\\\\\\\"cannot create expression, infinite graph detected\\\\\\\"),void this.reset()}listen_for_name_changes(){this.method_dependencies.forEach((t=>{t.listen_for_name_changes()}))}}class io{constructor(t){this.param=t,this.parse_completed=!1,this.parse_started=!1,this.parsed_tree=new Wr,this._functionGenerator=new to(this.param),this.dependencies_controller=new no(this.param)}parseExpression(t){if(this.parse_started)throw new Error(`parse in progress for param ${this.param.path()}`);this.parse_started=!0,this.parse_completed=!1,this.parsed_tree=this.parsed_tree||new Wr,this.reset(),this.param.type()==Cr.STRING?this.parsed_tree.parse_expression_for_string_param(t):this.parsed_tree.parse_expression(t),this._functionGenerator.parse_tree(this.parsed_tree),null==this._functionGenerator.error_message()&&(this.dependencies_controller.update(this._functionGenerator),this.dependencies_controller.error_message?this.param.states.error.set(this.dependencies_controller.error_message):(this.parse_completed=!0,this.parse_started=!1))}async computeFunction(){if(!this._computeAllowed())return new Promise(((t,e)=>{t(null)}));try{return await this._functionGenerator.evalFunction()}catch(t){return}}reset(){this.parse_completed=!1,this.parse_started=!1,this.dependencies_controller.reset(),this._functionGenerator.reset()}is_errored(){return this._functionGenerator.is_errored()}error_message(){return this._functionGenerator.error_message()}_computeAllowed(){return this._functionGenerator.evalAllowed()}updateFromMethodDependencyNameChange(){this.expression_string_generator=this.expression_string_generator||new eo(this.param);const t=this.expression_string_generator.parse_tree(this.parsed_tree);t?this.param.set(t):console.warn(\\\\\\\"failed to regenerate expression\\\\\\\")}}class so{constructor(t){this.param=t}dispose(){this.param.scene().expressionsController.deregisterParam(this.param),this._resetMethodDependencies()}_resetMethodDependencies(){var t,e;null===(t=this._method_dependencies_by_graph_node_id)||void 0===t||t.forEach((t=>{t.dispose()})),null===(e=this._method_dependencies_by_graph_node_id)||void 0===e||e.clear()}registerMethodDependency(t){this._method_dependencies_by_graph_node_id=this._method_dependencies_by_graph_node_id||new Map,this._method_dependencies_by_graph_node_id.set(t.graphNodeId(),t)}active(){return null!=this._expression}expression(){return this._expression}is_errored(){return!!this._manager&&this._manager.is_errored()}error_message(){return this._manager?this._manager.error_message():null}requires_entities(){return this.param.options.isExpressionForEntities()}set_expression(t,e=!0){var n;this.param.scene().missingExpressionReferencesController.deregisterParam(this.param),this.param.scene().expressionsController.deregisterParam(this.param),this._expression!=t&&(this._resetMethodDependencies(),this._expression=t,this._expression?(this._manager=this._manager||new io(this.param),this._manager.parseExpression(this._expression)):null===(n=this._manager)||void 0===n||n.reset(),e&&this.param.setDirty())}updateFromMethodDependencyNameChange(){this._manager&&this.active()&&this._manager.updateFromMethodDependencyNameChange()}async computeExpression(){if(this._manager&&this.active()){return await this._manager.computeFunction()}}async computeExpressionForEntities(t,e){var n,i;this.set_entities(t,e),await this.computeExpression(),(null===(n=this._manager)||void 0===n?void 0:n.error_message())&&this.param.node.states.error.set(`expression evalution error: ${null===(i=this._manager)||void 0===i?void 0:i.error_message()}`),this.reset_entities()}computeExpressionForPoints(t,e){return this.computeExpressionForEntities(t,e)}computeExpressionForObjects(t,e){return this.computeExpressionForEntities(t,e)}entities(){return this._entities}entity_callback(){return this._entity_callback}set_entities(t,e){this._entities=t,this._entity_callback=e}reset_entities(){this._entities=void 0,this._entity_callback=void 0}}class ro extends Vr{isNumeric(){return!0}isDefault(){return this._raw_input==this._default_value}_prefilter_invalid_raw_input(t){return m.isArray(t)?t[0]:t}processRawInput(){this.states.error.clear();const t=this.convert(this._raw_input);null!=t?(this._expression_controller&&(this._expression_controller.set_expression(void 0,!1),this.emitController.emit(Nr.EXPRESSION_UPDATED)),t!=this._value&&(this._update_value(t),this.setSuccessorsDirty(this))):m.isString(this._raw_input)?(this._expression_controller=this._expression_controller||new so(this),this._raw_input!=this._expression_controller.expression()&&(this._expression_controller.set_expression(this._raw_input),this.emitController.emit(Nr.EXPRESSION_UPDATED))):this.states.error.set(`param input is invalid (${this.path()})`)}async processComputation(){var t;if((null===(t=this.expressionController)||void 0===t?void 0:t.active())&&!this.expressionController.requires_entities()){const t=await this.expressionController.computeExpression();if(this.expressionController.is_errored())this.states.error.set(`expression error: \\\\\\\"${this.expressionController.expression()}\\\\\\\" (${this.expressionController.error_message()})`);else{const e=this.convert(t);null!=e?(this.states.error.active()&&this.states.error.clear(),this._update_value(e)):this.states.error.set(`expression returns an invalid type (${t}) (${this.expressionController.expression()})`)}}}_update_value(t){this._value=t,this.parent_param&&this.parent_param.set_value_from_components(),this.options.executeCallback(),this.emitController.emit(Nr.VALUE_UPDATED),this.removeDirtyState()}}class oo extends ro{static type(){return Cr.FLOAT}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return this._raw_input}valueSerialized(){return this.value}_copy_value(t){this.set(t.valueSerialized())}_prefilter_invalid_raw_input(t){return m.isArray(t)?t[0]:m.isString(t)&&ss.isNumber(t)?parseFloat(t):t}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}static convert(t){if(m.isNumber(t))return t;if(m.isBoolean(t))return t?1:0;if(ss.isNumber(t)){const e=parseFloat(t);if(m.isNumber(e))return e}return null}convert(t){const e=oo.convert(t);return e?this.options.ensureInRange(e):e}}class ao extends Vr{constructor(){super(...arguments),this._components_contructor=oo}get components(){return this._components}isNumeric(){return!0}isDefault(){for(let t of this.components)if(!t.isDefault())return!1;return!0}rawInput(){return this._components.map((t=>t.rawInput()))}rawInputSerialized(){return this._components.map((t=>t.rawInputSerialized()))}_copy_value(t){for(let e=0;e<this.components.length;e++){const n=this.components[e],i=t.components[e];n.copy_value(i)}}initComponents(){if(null!=this._components)return;let t=0;this._components=new Array(this.componentNames().length);for(let e of this.componentNames()){const n=new this._components_contructor(this.scene(),this._node);let i;i=m.isArray(this._default_value)?this._default_value[t]:this._default_value[e],n.options.copy(this.options),n.setInitValue(i),n.setName(`${this.name()}${e}`),n.set_parent_param(this),this._components[t]=n,t++}}async processComputation(){await this.compute_components(),this.set_value_from_components()}set_value_from_components(){}hasExpression(){var t;for(let e of this.components)if(null===(t=e.expressionController)||void 0===t?void 0:t.active())return!0;return!1}async compute_components(){const t=this.components,e=[];for(let n of t)n.isDirty()&&e.push(n.compute());await Promise.all(e),this.removeDirtyState()}_prefilter_invalid_raw_input(t){if(m.isArray(t))return t;{const e=t;return this.componentNames().map((()=>e))}}processRawInput(){const t=this.scene().cooker;t.block();const e=this.components;for(let t of e)t.emitController.blockParentEmit();const n=this._raw_input;let i=0;if(m.isArray(n))for(let t=0;t<e.length;t++){let s=n[t];null==s&&(s=i),e[t].set(s),i=s}else for(let t=0;t<e.length;t++){let s=n[this.componentNames()[t]];null==s&&(s=i),e[t].set(s),i=s}t.unblock();for(let t=0;t<e.length;t++)e[t].emitController.unblockParentEmit();this.emitController.emit(Nr.VALUE_UPDATED)}}var lo;!function(t){t.NONE=\\\\\\\"no conversion\\\\\\\",t.GAMMA_TO_LINEAR=\\\\\\\"gamma -> linear\\\\\\\",t.LINEAR_TO_GAMMA=\\\\\\\"linear -> gamma\\\\\\\",t.SRGB_TO_LINEAR=\\\\\\\"sRGB -> linear\\\\\\\",t.LINEAR_TO_SRGB=\\\\\\\"linear -> sRGB\\\\\\\"}(lo||(lo={}));lo.NONE,lo.GAMMA_TO_LINEAR,lo.LINEAR_TO_GAMMA,lo.SRGB_TO_LINEAR,lo.LINEAR_TO_SRGB;class co{static set_hsv(t,e,n,i){t=Object(On.f)(t,1),e=Object(On.d)(e,0,1),n=Object(On.d)(n,0,1),i.setHSL(t,e*n/((t=(2-e)*n)<1?t:2-t),.5*t)}}const ho=[\\\\\\\"r\\\\\\\",\\\\\\\"g\\\\\\\",\\\\\\\"b\\\\\\\"];class uo extends ro{static type(){return Cr.INTEGER}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return this._raw_input}valueSerialized(){return this.value}_copy_value(t){this.set(t.valueSerialized())}_prefilter_invalid_raw_input(t){return m.isArray(t)?t[0]:m.isString(t)&&ss.isNumber(t)?parseInt(t):t}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}static convert(t){if(m.isNumber(t))return Math.round(t);if(m.isBoolean(t))return t?1:0;if(ss.isNumber(t)){const e=parseInt(t);if(m.isNumber(e))return e}return null}convert(t){const e=uo.convert(t);return e?this.options.ensureInRange(e):e}}class po{constructor(){this._index=-1,this._path_elements=[],this._named_nodes=[],this._graph_node_ids=[],this._node_element_by_graph_node_id=new Map}reset(){this._index=-1,this._path_elements=[],this._named_nodes=[],this._graph_node_ids=[],this._node_element_by_graph_node_id.clear()}add_node(t,e){this._index+=1,t==e.name()&&(this._named_nodes[this._index]=e),this._graph_node_ids[this._index]=e.graphNodeId(),this._node_element_by_graph_node_id.set(e.graphNodeId(),t)}add_path_element(t){this._index+=1,this._path_elements[this._index]=t}named_graph_nodes(){return this._named_nodes}named_nodes(){const t=[];for(let e of this._named_nodes)if(e){const n=e;n.nameController&&t.push(n)}return t}update_from_name_change(t){this._named_nodes.map((t=>null==t?void 0:t.graphNodeId())).includes(t.graphNodeId())&&this._node_element_by_graph_node_id.set(t.graphNodeId(),t.name())}to_path(){const t=new Array(this._index);for(let e=0;e<=this._index;e++){const n=this._named_nodes[e];if(n){const i=this._node_element_by_graph_node_id.get(n.graphNodeId());i&&(t[e]=i)}else{const n=this._path_elements[e];n&&(t[e]=n)}}let e=t.join(bi.SEPARATOR);const n=e[0];return n&&(bi.NON_LETTER_PREFIXES.includes(n)||(e=`${bi.SEPARATOR}${e}`)),e}}class _o extends Vr{constructor(){super(...arguments),this.decomposed_path=new po}_handleReferences(t,e){this.scene().referencesController.setNamedNodesFromParam(this),t?this.scene().referencesController.setReferenceFromParam(this,t):this.scene().missingExpressionReferencesController.register(this,e)}}var mo;!function(t){t.NODE=\\\\\\\"NODE\\\\\\\",t.PARAM=\\\\\\\"PARAM\\\\\\\"}(mo||(mo={}));class fo extends _o{constructor(){super(...arguments),this._found_node=null,this._found_node_with_expected_type=null,this._found_param=null,this._found_param_with_expected_type=null}static type(){return Cr.OPERATOR_PATH}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return`${this._raw_input}`}valueSerialized(){return`${this.value}`}_copy_value(t){this.set(t.valueSerialized())}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}isDefault(){return this._value==this._default_value}setNode(t){this.set(t.path())}processRawInput(){this._value!=this._raw_input&&(this._value=this._raw_input,this.setDirty(),this.emitController.emit(Nr.VALUE_UPDATED))}async processComputation(){this.find_target()}find_target(){if(!this.node)return;const t=this._value;let e=null,n=null;const i=null!=t&&\\\\\\\"\\\\\\\"!==t,s=this.options.paramSelectionOptions()?mo.PARAM:mo.NODE;this.scene().referencesController.resetReferenceFromParam(this),this.decomposed_path.reset(),i&&(s==mo.PARAM?n=bi.findParam(this.node,t,this.decomposed_path):e=bi.findNode(this.node,t,this.decomposed_path));const r=s==mo.PARAM?this._found_param:this._found_node,o=s==mo.PARAM?n:e;if(this._handleReferences(e,t),(null==r?void 0:r.graphNodeId())!==(null==o?void 0:o.graphNodeId())){const t=this.options.dependentOnFoundNode();this._found_node&&t&&this.removeGraphInput(this._found_node),s==mo.PARAM?(this._found_param=n,this._found_node=null):(this._found_node=e,this._found_param=null),e&&this._assign_found_node(e),n&&this._assign_found_param(n),this.options.executeCallback()}this.removeDirtyState()}_assign_found_node(t){const e=this.options.dependentOnFoundNode();this._is_node_expected_context(t)?this._is_node_expected_type(t)?(this._found_node_with_expected_type=t,e&&this.addGraphInput(t)):this.states.error.set(`node type is ${t.type()} but the params expects one of ${(this._expected_node_types()||[]).join(\\\\\\\", \\\\\\\")}`):this.states.error.set(`node context is ${t.context()} but the params expects a ${this._expected_context()}`)}_assign_found_param(t){this._is_param_expected_type(t)?this._found_param_with_expected_type=t:this.states.error.set(`param type is ${t.type()} but the params expects a ${this._expected_param_type()}`)}found_node(){return this._found_node}found_param(){return this._found_param}found_node_with_context(t){return this._found_node_with_expected_type}found_node_with_context_and_type(t,e){const n=this.found_node_with_context(t);if(n)if(m.isArray(e)){for(let t of e)if(n.type()==t)return n;this.states.error.set(`expected node type to be ${e.join(\\\\\\\", \\\\\\\")}, but was instead ${n.type()}`)}else{const t=e;if(n.type()==t)return n;this.states.error.set(`expected node type to be ${t}, but was instead ${n.type()}`)}}found_param_with_type(t){if(this._found_param_with_expected_type)return this._found_param_with_expected_type}found_node_with_expected_type(){return this._found_node_with_expected_type}_expected_context(){return this.options.nodeSelectionContext()}_is_node_expected_context(t){var e,n;const i=this._expected_context();if(null==i)return!0;return i==(null===(n=null===(e=t.parent())||void 0===e?void 0:e.childrenController)||void 0===n?void 0:n.context)}_expected_node_types(){return this.options.nodeSelectionTypes()}_expected_param_type(){return this.options.paramSelectionType()}_is_node_expected_type(t){const e=this._expected_node_types();return null==e||(null==e?void 0:e.includes(t.type()))}_is_param_expected_type(t){const e=this._expected_node_types();return null==e||e.includes(t.type())}notifyPathRebuildRequired(t){this.decomposed_path.update_from_name_change(t);const e=this.decomposed_path.to_path();this.set(e)}notifyTargetParamOwnerParamsUpdated(t){this.setDirty()}}var go,vo=n(34),yo=n(70);class xo{constructor(t=0,e=0){this._position=t,this._value=e}toJSON(){return{position:this._position,value:this._value}}position(){return this._position}value(){return this._value}copy(t){this._position=t.position(),this._value=t.value()}clone(){const t=new xo;return t.copy(this),t}isEqual(t){return this._position==t.position()&&this._value==t.value()}isEqualJSON(t){return this._position==t.position&&this._value==t.value}fromJSON(t){this._position=t.position,this._value=t.value}static areEqualJSON(t,e){return t.position==e.position&&t.value==e.value}static fromJSON(t){return new xo(t.position,t.value)}}!function(t){t.LINEAR=\\\\\\\"linear\\\\\\\"}(go||(go={}));class bo{constructor(t=go.LINEAR,e=[]){this._interpolation=t,this._points=e,this._uuid=Object(On.h)()}uuid(){return this._uuid}interpolation(){return this._interpolation}points(){return this._points}static fromJSON(t){const e=[];for(let n of t.points)e.push(xo.fromJSON(n));return new bo(t.interpolation,e)}toJSON(){return{interpolation:this._interpolation,points:this._points.map((t=>t.toJSON()))}}clone(){const t=new bo;return t.copy(this),t}copy(t){this._interpolation=t.interpolation();let e=0;for(let n of t.points()){const t=this._points[e];t?t.copy(n):this._points.push(n.clone()),e+=1}}is_equal(t){if(this._interpolation!=t.interpolation())return!1;const e=t.points();if(this._points.length!=e.length)return!1;let n=0;for(let t of this._points){const i=e[n];if(!t.isEqual(i))return!1;n+=1}return!0}is_equal_json(t){if(this._interpolation!=t.interpolation)return!1;if(this._points.length!=t.points.length)return!1;let e=0;for(let n of this._points){const i=t.points[e];if(!n.isEqualJSON(i))return!1;e+=1}return!0}static are_json_equal(t,e){if(t.interpolation!=e.interpolation)return!1;if(t.points.length!=e.points.length)return!1;let n=0;for(let i of t.points){const t=e.points[n];if(!xo.areEqualJSON(i,t))return!1;n+=1}return!0}from_json(t){this._interpolation=t.interpolation;let e=0;for(let n of t.points){const t=this._points[e];t?t.fromJSON(n):this._points.push(xo.fromJSON(n)),e+=1}}}const wo=1024,To=255;class Ao extends Vr{constructor(){super(...arguments),this._texture_data=new Uint8Array(3072),this._ramp_texture=new vo.a(this._texture_data,wo,1,w.ic)}static type(){return Cr.RAMP}defaultValueSerialized(){return this._default_value instanceof bo?this._default_value.toJSON():this._default_value}_clone_raw_input(t){return t instanceof bo?t.clone():bo.fromJSON(t).toJSON()}rawInputSerialized(){return this._raw_input instanceof bo?this._raw_input.toJSON():bo.fromJSON(this._raw_input).toJSON()}valueSerialized(){return this.value.toJSON()}_copy_value(t){this.set(t.valueSerialized())}static are_raw_input_equal(t,e){return t instanceof bo?e instanceof bo?t.is_equal(e):t.is_equal_json(e):e instanceof bo?e.is_equal_json(t):bo.are_json_equal(t,e)}static are_values_equal(t,e){return t.is_equal(e)}isDefault(){return this._default_value instanceof bo?this.value.is_equal(this._default_value):this.value.is_equal_json(this._default_value)}processRawInput(){this._raw_input instanceof bo?this._value?this._value.copy(this._raw_input):this._value=this._raw_input:this._value?this._value.from_json(this._raw_input):this._value=bo.fromJSON(this._raw_input),this._resetRampInterpolant(),this._updateRampTexture(),this.options.executeCallback(),this.emitController.emit(Nr.VALUE_UPDATED),this.setSuccessorsDirty(this)}hasExpression(){return!1}_resetRampInterpolant(){this._ramp_interpolant=void 0}rampTexture(){return this._ramp_texture}_updateRampTexture(){this._updateRampTextureData(),this.rampTexture().needsUpdate=!0}_updateRampTextureData(){let t=0,e=0,n=0;for(var i=0;i<1024;i++)t=3*i,e=i/wo,n=this.valueAtPosition(e),n<=0?(this._texture_data[t+0]=(Object(On.d)(n,-1,0)+1)*To,this._texture_data[t+1]=0,this._texture_data[t+2]=0):n<=1?(this._texture_data[t+0]=To,this._texture_data[t+1]=Object(On.d)(n,0,1)*To,this._texture_data[t+2]=0):(this._texture_data[t+0]=To,this._texture_data[t+1]=To,this._texture_data[t+2]=(Object(On.d)(n,1,2)-1)*To)}static createInterpolant(t,e){const n=new Float32Array(1);return new yo.a(t,e,1,n)}interpolant(){return this._ramp_interpolant=this._ramp_interpolant||this._createInterpolant()}_createInterpolant(){const t=this.value.points(),e=f.sortBy(t,(t=>t.position())),n=new Float32Array(e.length),i=new Float32Array(e.length);let s=0;for(let t of e)n[s]=t.position(),i[s]=t.value(),s++;return Ao.createInterpolant(n,i)}valueAtPosition(t){return this.interpolant().evaluate(t)[0]}}Ao.DEFAULT_VALUE=new bo(go.LINEAR,[new xo(0,0),new xo(1,1)]),Ao.DEFAULT_VALUE_JSON=Ao.DEFAULT_VALUE.toJSON();class Mo extends Vr{static type(){return Cr.STRING}defaultValueSerialized(){return this._default_value}_clone_raw_input(t){return`${t}`}rawInputSerialized(){return`${this._raw_input}`}valueSerialized(){return`${this.value}`}_copy_value(t){this.set(t.value)}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}isDefault(){return this._raw_input==this._default_value}convert(t){return m.isString(t)?t:`${t}`}rawInput(){return this._raw_input}processRawInput(){this.states.error.clear(),this._value_elements(this._raw_input).length>=3?(this._expression_controller=this._expression_controller||new so(this),this._raw_input!=this._expression_controller.expression()&&(this._expression_controller.set_expression(this._raw_input),this.setDirty(),this.emitController.emit(Nr.EXPRESSION_UPDATED))):this._raw_input!=this._value&&(this._value=this._raw_input,this.removeDirtyState(),this.setSuccessorsDirty(this),this.emitController.emit(Nr.VALUE_UPDATED),this.options.executeCallback(),this._expression_controller&&(this._expression_controller.set_expression(void 0,!1),this.emitController.emit(Nr.EXPRESSION_UPDATED)))}async processComputation(){var t;if((null===(t=this.expressionController)||void 0===t?void 0:t.active())&&!this.expressionController.requires_entities()){const t=await this.expressionController.computeExpression();if(this.expressionController.is_errored())this.states.error.set(`expression error: ${this.expressionController.error_message()}`);else{const e=this.convert(t);null!=e?(this._value=e,this.emitController.emit(Nr.VALUE_UPDATED),this.options.executeCallback()):this.states.error.set(`expression returns an invalid type (${t})`),this.removeDirtyState()}}}_value_elements(t){return Wr.string_value_elements(t)}}const Eo=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\"];const So=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"];const Co=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"];const No={[Cr.BOOLEAN]:class extends ro{static type(){return Cr.BOOLEAN}defaultValueSerialized(){return m.isString(this._default_value)?this._default_value:this.convert(this._default_value)||!1}rawInputSerialized(){return this._raw_input}valueSerialized(){return this.value}_copy_value(t){this.set(t.value)}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}convert(t){if(m.isBoolean(t))return t;if(m.isNumber(t))return t>=1;if(m.isString(t)){if(ss.isBoolean(t))return ss.toBoolean(t);if(ss.isNumber(t)){return parseFloat(t)>=1}}return null}},[Cr.BUTTON]:class extends Vr{static type(){return Cr.BUTTON}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return this._raw_input}valueSerialized(){return this.value}_copy_value(t){}static are_raw_input_equal(t,e){return!0}static are_values_equal(t,e){return!0}async pressButton(){(this.node.isDirty()||this.node.cookController.isCooking())&&await this.node.compute(),this.options.executeCallback()}},[Cr.COLOR]:class extends ao{constructor(){super(...arguments),this._value=new D.a,this._value_pre_conversion=new D.a,this._value_serialized_dirty=!1,this._value_serialized=[0,0,0],this._value_pre_conversion_serialized=[0,0,0],this._copied_value=[0,0,0]}static type(){return Cr.COLOR}componentNames(){return ho}defaultValueSerialized(){return m.isArray(this._default_value)?this._default_value:this._default_value.toArray()}valueSerialized(){return this._update_value_serialized_if_required(),this._value_serialized}valuePreConversionSerialized(){return this._update_value_serialized_if_required(),this._value_pre_conversion_serialized}_copy_value(t){t.value.toArray(this._copied_value),this.set(this._copied_value)}_clone_raw_input(t){if(t instanceof D.a)return t.clone();{const e=[t[0],t[1],t[2]];return null==e[0]&&(e[0]=e[0]||0),null==e[1]&&(e[1]=e[1]||e[0]),null==e[2]&&(e[2]=e[2]||e[1]),e}}static are_raw_input_equal(t,e){return t instanceof D.a?e instanceof D.a?t.equals(e):t.r==e[0]&&t.g==e[1]&&t.b==e[2]:e instanceof D.a?t[0]==e.r&&t[1]==e.g&&t[2]==e.b:t[0]==e[0]&&t[1]==e[1]&&t[2]==e[2]}static are_values_equal(t,e){return t.equals(e)}initComponents(){super.initComponents(),this.r=this.components[0],this.g=this.components[1],this.b=this.components[2],this._value_serialized_dirty=!0}_update_value_serialized_if_required(){this._value_serialized_dirty&&(this._value_serialized[0]=this._value.r,this._value_serialized[1]=this._value.g,this._value_serialized[2]=this._value.b,this._value_pre_conversion_serialized[0]=this._value_pre_conversion.r,this._value_pre_conversion_serialized[1]=this._value_pre_conversion.g,this._value_pre_conversion_serialized[2]=this._value_pre_conversion.b)}valuePreConversion(){return this._value_pre_conversion}set_value_from_components(){this._value_pre_conversion.r=this.r.value,this._value_pre_conversion.g=this.g.value,this._value_pre_conversion.b=this.b.value,this._value.copy(this._value_pre_conversion);const t=this.options.colorConversion();if(null!=t&&t!=lo.NONE){switch(t){case lo.GAMMA_TO_LINEAR:return void this._value.convertGammaToLinear();case lo.LINEAR_TO_GAMMA:return void this._value.convertLinearToGamma();case lo.SRGB_TO_LINEAR:return void this._value.convertSRGBToLinear();case lo.LINEAR_TO_SRGB:return void this._value.convertLinearToSRGB()}os.unreachable(t)}this._value_serialized_dirty=!0}},[Cr.FLOAT]:oo,[Cr.FOLDER]:class extends Vr{static type(){return Cr.FOLDER}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return this._raw_input}valueSerialized(){return this.value}_copy_value(t){}static are_raw_input_equal(t,e){return!0}static are_values_equal(t,e){return!0}},[Cr.INTEGER]:uo,[Cr.OPERATOR_PATH]:fo,[Cr.PARAM_PATH]:class extends _o{static type(){return Cr.PARAM_PATH}initialize_param(){this._value=new xi}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return`${this._raw_input}`}valueSerialized(){return`${this.value}`}_copy_value(t){this.set(t.valueSerialized())}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}isDefault(){return this._raw_input==this._default_value}setParam(t){this.set(t.path())}processRawInput(){this._value.path()!=this._raw_input&&(this._value.set_path(this._raw_input),this.find_target(),this.setDirty(),this.emitController.emit(Nr.VALUE_UPDATED))}async processComputation(){this.find_target()}find_target(){if(!this.node)return;const t=this._raw_input;let e=null;const n=null!=t&&\\\\\\\"\\\\\\\"!==t;this.scene().referencesController.resetReferenceFromParam(this),this.decomposed_path.reset(),n&&(e=bi.findParam(this.node,t,this.decomposed_path));const i=this._value.param(),s=e;if(this._handleReferences(e,t),(null==i?void 0:i.graphNodeId())!==(null==s?void 0:s.graphNodeId())){const t=this.options.dependentOnFoundNode(),n=this._value.param();n&&t&&this.removeGraphInput(n),e?this._assign_found_node(e):this._value.set_param(null),this.options.executeCallback()}this.removeDirtyState()}_assign_found_node(t){const e=this.options.dependentOnFoundNode();this._value.set_param(t),e&&this.addGraphInput(t)}notifyPathRebuildRequired(t){this.decomposed_path.update_from_name_change(t);const e=this.decomposed_path.to_path();this.set(e)}notifyTargetParamOwnerParamsUpdated(t){this.setDirty()}},[Cr.NODE_PATH]:class extends _o{static type(){return Cr.NODE_PATH}initialize_param(){this._value=new yi}defaultValueSerialized(){return this._default_value}rawInputSerialized(){return`${this._raw_input}`}valueSerialized(){return`${this.value}`}_copy_value(t){this.set(t.valueSerialized())}static are_raw_input_equal(t,e){return t==e}static are_values_equal(t,e){return t==e}isDefault(){return this._raw_input==this._default_value}setNode(t){this.set(t.path())}processRawInput(){this._value.path()!=this._raw_input&&(this._value.set_path(this._raw_input),this._findTarget(),this.setDirty(),this.emitController.emit(Nr.VALUE_UPDATED))}async processComputation(){this._findTarget()}_findTarget(){if(!this.node)return;const t=this._raw_input;let e=null;const n=null!=t&&\\\\\\\"\\\\\\\"!==t;this.scene().referencesController.resetReferenceFromParam(this),this.decomposed_path.reset(),n&&(e=bi.findNode(this.node,t,this.decomposed_path));const i=this._value.node(),s=e;if(this._handleReferences(e,t),(null==i?void 0:i.graphNodeId())!==(null==s?void 0:s.graphNodeId())){const t=this.options.dependentOnFoundNode(),n=this._value.node();n&&t&&this.removeGraphInput(n),e?this._assign_found_node(e):this._value.set_node(null),this.options.executeCallback()}n&&!e&&this.scene().loadingController.loaded()&&n&&this.states.error.set(`no node found at path '${t}'`),this.removeDirtyState()}_assign_found_node(t){const e=this.options.dependentOnFoundNode();this._isNodeExpectedContext(t)?this._is_node_expected_type(t)?(this.states.error.clear(),this._value.set_node(t),e&&this.addGraphInput(t)):this.states.error.set(`node type is ${t.type()} but the params expects one of ${(this._expected_node_types()||[]).join(\\\\\\\", \\\\\\\")}`):this.states.error.set(`node context is ${t.context()} but the params expects a ${this._expectedContext()}`)}_expectedContext(){return this.options.nodeSelectionContext()}_isNodeExpectedContext(t){var e,n;const i=this._expectedContext();if(null==i)return!0;return i==(null===(n=null===(e=t.parent())||void 0===e?void 0:e.childrenController)||void 0===n?void 0:n.context)}_expected_node_types(){return this.options.nodeSelectionTypes()}_is_node_expected_type(t){const e=this._expected_node_types();return null==e||(null==e?void 0:e.includes(t.type()))}notifyPathRebuildRequired(t){this.decomposed_path.update_from_name_change(t);const e=this.decomposed_path.to_path();this.set(e)}notifyTargetParamOwnerParamsUpdated(t){this.setDirty()}},[Cr.RAMP]:Ao,[Cr.STRING]:Mo,[Cr.VECTOR2]:class extends ao{constructor(){super(...arguments),this._value=new d.a,this._copied_value=[0,0]}static type(){return Cr.VECTOR2}componentNames(){return Eo}defaultValueSerialized(){return m.isArray(this._default_value)?this._default_value:this._default_value.toArray()}valueSerialized(){return this.value.toArray()}_copy_value(t){t.value.toArray(this._copied_value),this.set(this._copied_value)}_clone_raw_input(t){if(t instanceof d.a)return t.clone();{const e=[t[0],t[1]];return null==e[0]&&(e[0]=e[0]||0),null==e[1]&&(e[1]=e[1]||e[0]),e}}static are_raw_input_equal(t,e){return t instanceof d.a?e instanceof d.a?t.equals(e):t.x==e[0]&&t.y==e[1]:e instanceof d.a?t[0]==e.x&&t[1]==e.y:t[0]==e[0]&&t[1]==e[1]}static are_values_equal(t,e){return t.equals(e)}initComponents(){super.initComponents(),this.x=this.components[0],this.y=this.components[1]}set_value_from_components(){this._value.x=this.x.value,this._value.y=this.y.value}},[Cr.VECTOR3]:class extends ao{constructor(){super(...arguments),this._value=new p.a,this._copied_value=[0,0,0]}static type(){return Cr.VECTOR3}componentNames(){return So}defaultValueSerialized(){return m.isArray(this._default_value)?this._default_value:this._default_value.toArray()}valueSerialized(){return this.value.toArray()}_copy_value(t){t.value.toArray(this._copied_value),this.set(this._copied_value)}_clone_raw_input(t){if(t instanceof p.a)return t.clone();{const e=[t[0],t[1],t[2]];return null==e[0]&&(e[0]=e[0]||0),null==e[1]&&(e[1]=e[1]||e[0]),null==e[2]&&(e[2]=e[2]||e[1]),e}}static are_raw_input_equal(t,e){return t instanceof p.a?e instanceof p.a?t.equals(e):t.x==e[0]&&t.y==e[1]&&t.z==e[2]:e instanceof p.a?t[0]==e.x&&t[1]==e.y&&t[2]==e.z:t[0]==e[0]&&t[1]==e[1]&&t[2]==e[2]}static are_values_equal(t,e){return t.equals(e)}initComponents(){super.initComponents(),this.x=this.components[0],this.y=this.components[1],this.z=this.components[2]}set_value_from_components(){this._value.x=this.x.value,this._value.y=this.y.value,this._value.z=this.z.value}},[Cr.VECTOR4]:class extends ao{constructor(){super(...arguments),this._value=new _.a,this._copied_value=[0,0,0,0]}static type(){return Cr.VECTOR4}componentNames(){return Co}defaultValueSerialized(){return m.isArray(this._default_value)?this._default_value:this._default_value.toArray()}valueSerialized(){return this.value.toArray()}_copy_value(t){t.value.toArray(this._copied_value),this.set(this._copied_value)}_clone_raw_input(t){if(t instanceof _.a)return t.clone();{const e=[t[0],t[1],t[2],t[3]];return null==e[0]&&(e[0]=e[0]||0),null==e[1]&&(e[1]=e[1]||e[0]),null==e[2]&&(e[2]=e[2]||e[1]),null==e[3]&&(e[3]=e[3]||e[2]),e}}static are_raw_input_equal(t,e){return t instanceof _.a?e instanceof _.a?t.equals(e):t.x==e[0]&&t.y==e[1]&&t.z==e[2]&&t.w==e[3]:e instanceof _.a?t[0]==e.x&&t[1]==e.y&&t[2]==e.z&&t[3]==e.w:t[0]==e[0]&&t[1]==e[1]&&t[2]==e[2]&&t[3]==e[3]}static are_values_equal(t,e){return t.equals(e)}initComponents(){super.initComponents(),this.x=this.components[0],this.y=this.components[1],this.z=this.components[2],this.w=this.components[3]}set_value_from_components(){this._value.x=this.x.value,this._value.y=this.y.value,this._value.z=this.z.value,this._value.w=this.w.value}}};class Lo{dispose(){this._callback=void 0}params(){return this._params}callback(){return this._callback}init(t,e){if(this._params=t,e)this._callback=e;else{const t=this._params[0];switch(t.type()){case Cr.STRING:return this._handle_string_param(t);case Cr.OPERATOR_PATH:return this._handle_operator_path_param(t);case Cr.NODE_PATH:return this._handle_node_path_param(t);case Cr.PARAM_PATH:return this._handle_param_path_param(t);case Cr.FLOAT:case Cr.INTEGER:return this._handle_number_param(t)}}}_handle_string_param(t){this._callback=()=>t.value}_handle_operator_path_param(t){this._callback=()=>t.value}_handle_node_path_param(t){this._callback=()=>t.value.path()}_handle_param_path_param(t){this._callback=()=>t.value.path()}_handle_number_param(t){this._callback=()=>`${t.value}`}}class Oo{constructor(t){this.node=t,this._param_create_mode=!1,this._params_created=!1,this._params_by_name={},this._params_list=[],this._param_names=[],this._non_spare_params=[],this._spare_params=[],this._non_spare_param_names=[],this._spare_param_names=[],this._params_added_since_last_params_eval=!1}get label(){return this._label_controller=this._label_controller||new Lo}hasLabelController(){return null!=this._label_controller}dispose(){var t;this._params_node&&this._params_node.dispose();for(let t of this.all)t.dispose();this._post_create_params_hook_names=void 0,this._post_create_params_hooks=void 0,this._on_scene_load_hooks=void 0,this._on_scene_load_hook_names=void 0,null===(t=this._label_controller)||void 0===t||t.dispose()}initDependencyNode(){this._params_node||(this._params_node=new Mi(this.node.scene(),\\\\\\\"params\\\\\\\"),this.node.addGraphInput(this._params_node,!1))}init(){this.initDependencyNode(),this._param_create_mode=!0,this._initFromParamsConfig(),this.node.createParams(),this._postCreateParams()}_postCreateParams(){this._updateCaches(),this._initParamAccessors(),this._param_create_mode=!1,this._params_created=!0,this._runPostCreateParamsHooks()}postCreateSpareParams(){this._updateCaches(),this._initParamAccessors(),this.node.scene().referencesController.notifyParamsUpdated(this.node),this.node.emit(Ei.PARAMS_UPDATED)}updateParams(t){let e=!1,n=!1;if(t.namesToDelete)for(let e of t.namesToDelete)this.has(e)&&(this._deleteParam(e),n=!0);if(t.toAdd)for(let n of t.toAdd){const t=this.addParam(n.type,n.name,n.init_value,n.options);t&&(null!=n.raw_input&&t.set(n.raw_input),e=!0)}(n||e)&&this.postCreateSpareParams()}_initFromParamsConfig(){const t=this.node.paramsConfig;let e=!1;if(t)for(let n of Object.keys(t)){const i=t[n];let s;this.node.params_init_value_overrides&&(s=this.node.params_init_value_overrides[n],e=!0),this.addParam(i.type,n,i.init_value,i.options,s)}e&&this.node.setDirty(),this.node.params_init_value_overrides=void 0}_initParamAccessors(){let t=Object.getOwnPropertyNames(this.node.pv);this._removeUnneededAccessors(t),t=Object.getOwnPropertyNames(this.node.pv);for(let e of this.all){const n=e.options.isSpare();(!t.includes(e.name())||n)&&(Object.defineProperty(this.node.pv,e.name(),{get:()=>e.value,configurable:n}),Object.defineProperty(this.node.p,e.name(),{get:()=>e,configurable:n}))}}_removeUnneededAccessors(t){const e=this._param_names,n=[];for(let i of t)e.includes(i)||n.push(i);for(let t of n)Object.defineProperty(this.node.pv,t,{get:()=>{},configurable:!0}),Object.defineProperty(this.node.p,t,{get:()=>{},configurable:!0})}get params_node(){return this._params_node}get all(){return this._params_list}get non_spare(){return this._non_spare_params}get spare(){return this._spare_params}get names(){return this._param_names}get non_spare_names(){return this._non_spare_param_names}get spare_names(){return this._spare_param_names}set_with_type(t,e,n){const i=this.param_with_type(t,n);i?i.set(e):li.warn(`param ${t} not found with type ${n}`)}set_float(t,e){this.set_with_type(t,e,Cr.FLOAT)}set_vector3(t,e){this.set_with_type(t,e,Cr.VECTOR3)}has_param(t){return null!=this._params_by_name[t]}has(t){return this.has_param(t)}get(t){return this.param(t)}param_with_type(t,e){const n=this.param(t);if(n&&n.type()==e)return n}get_float(t){return this.param_with_type(t,Cr.FLOAT)}get_operator_path(t){return this.param_with_type(t,Cr.OPERATOR_PATH)}value(t){var e;return null===(e=this.param(t))||void 0===e?void 0:e.value}value_with_type(t,e){var n;return null===(n=this.param_with_type(t,e))||void 0===n?void 0:n.value}boolean(t){return this.value_with_type(t,Cr.BOOLEAN)}float(t){return this.value_with_type(t,Cr.FLOAT)}integer(t){return this.value_with_type(t,Cr.INTEGER)}string(t){return this.value_with_type(t,Cr.STRING)}vector2(t){return this.value_with_type(t,Cr.VECTOR2)}vector3(t){return this.value_with_type(t,Cr.VECTOR3)}color(t){return this.value_with_type(t,Cr.COLOR)}param(t){const e=this._params_by_name[t];return null!=e?e:(li.warn(`tried to access param '${t}' in node ${this.node.path()}, but existing params are: ${this.names} on node ${this.node.path()}`),null)}_deleteParam(t){const e=this._params_by_name[t];if(!e)throw new Error(`param '${t}' does not exist on node ${this.node.path()}`);if(this._params_node&&this._params_node.removeGraphInput(this._params_by_name[t]),e._setupNodeDependencies(null),delete this._params_by_name[t],e.isMultiple()&&e.components)for(let t of e.components){const e=t.name();delete this._params_by_name[e]}}addParam(t,e,n,i={},s){const r=i.spare||!1;!1!==this._param_create_mode||r||li.warn(`node ${this.node.path()} (${this.node.type()}) param '${e}' cannot be created outside of create_params`),null==this.node.scene()&&li.warn(`node ${this.node.path()} (${this.node.type()}) has no scene assigned`);const o=No[t];if(null!=o){const a=this._params_by_name[e];a&&(r?a.type()!=t&&this._deleteParam(a.name()):li.warn(`a param named ${e} already exists`,this.node));const l=new o(this.node.scene(),this.node);if(l.options.set(i),l.setName(e),l.setInitValue(n),l.initComponents(),null==s)l.set(n);else if(l.options.isExpressionForEntities()&&l.set(n),null!=s.raw_input)l.set(s.raw_input);else if(null!=s.simple_data)l.set(s.simple_data);else if(null!=s.complex_data){const t=s.complex_data.raw_input;t?l.set(t):l.set(n);const e=s.complex_data.overriden_options;if(null!=e){const t=Object.keys(e);for(let n of t)l.options.setOption(n,e[n])}}if(l._setupNodeDependencies(this.node),this._params_by_name[l.name()]=l,l.isMultiple()&&l.components)for(let t of l.components)this._params_by_name[t.name()]=t;return this._params_added_since_last_params_eval=!0,l}}_updateCaches(){this._params_list=Object.values(this._params_by_name),this._param_names=Object.keys(this._params_by_name),this._non_spare_params=Object.values(this._params_by_name).filter((t=>!t.options.isSpare())),this._spare_params=Object.values(this._params_by_name).filter((t=>t.options.isSpare())),this._non_spare_param_names=Object.values(this._params_by_name).filter((t=>!t.options.isSpare())).map((t=>t.name())),this._spare_param_names=Object.values(this._params_by_name).filter((t=>t.options.isSpare())).map((t=>t.name()))}async _evalParam(t){t.isDirty()&&(await t.compute(),t.states.error.active()&&this.node.states.error.set(`param '${t.name()}' error: ${t.states.error.message()}`))}async evalParams(t){const e=[];for(let n of t)n.isDirty()&&e.push(this._evalParam(n));await Promise.all(e),this.node.states.error.active()&&this.node._setContainer(null)}paramsEvalRequired(){return null!=this._params_node&&(this._params_node.isDirty()||this._params_added_since_last_params_eval)}async evalAll(){var t;this.paramsEvalRequired()&&(await this.evalParams(this._params_list),null===(t=this._params_node)||void 0===t||t.removeDirtyState(),this._params_added_since_last_params_eval=!1)}onParamsCreated(t,e){if(this._params_created)e();else{if(this._post_create_params_hook_names&&this._post_create_params_hook_names.includes(t))return void li.error(`hook name ${t} already exists`);this._post_create_params_hook_names=this._post_create_params_hook_names||[],this._post_create_params_hook_names.push(t),this._post_create_params_hooks=this._post_create_params_hooks||[],this._post_create_params_hooks.push(e)}}addOnSceneLoadHook(t,e){this._on_scene_load_hook_names=this._on_scene_load_hook_names||[],this._on_scene_load_hooks=this._on_scene_load_hooks||[],this._on_scene_load_hook_names.includes(t)?li.warn(`hook with name ${t} already exists`,this.node):(this._on_scene_load_hook_names.push(t),this._on_scene_load_hooks.push(e))}_runPostCreateParamsHooks(){if(this._post_create_params_hooks)for(let t of this._post_create_params_hooks)t()}runOnSceneLoadHooks(){if(this._on_scene_load_hooks)for(let t of this._on_scene_load_hooks)t()}}class Po{constructor(){}}class Ro{constructor(t,e,n=0,i=0){if(this._node_src=t,this._node_dest=e,this._output_index=n,this._input_index=i,null==this._output_index)throw\\\\\\\"bad output index\\\\\\\";if(null==this._input_index)throw\\\\\\\"bad input index\\\\\\\";this._id=Ro._next_id++,this._node_src.io.connections&&this._node_dest.io.connections&&(this._node_src.io.connections.addOutputConnection(this),this._node_dest.io.connections.addInputConnection(this))}get id(){return this._id}get node_src(){return this._node_src}get node_dest(){return this._node_dest}get output_index(){return this._output_index}get input_index(){return this._input_index}src_connection_point(){const t=this._node_src,e=this._output_index;return t.io.outputs.namedOutputConnectionPoints()[e]}dest_connection_point(){const t=this._node_dest,e=this._input_index;return t.io.inputs.namedInputConnectionPoints()[e]}disconnect(t={}){this._node_src.io.connections&&this._node_dest.io.connections&&(this._node_src.io.connections.removeOutputConnection(this),this._node_dest.io.connections.removeInputConnection(this)),!0===t.setInput&&this._node_dest.io.inputs.setInput(this._input_index,null)}}Ro._next_id=0;class Io{constructor(t){this.inputs_controller=t,this._clone_required_states=[],this._overridden=!1,this.node=t.node}initInputsClonedState(t){m.isArray(t)?this._cloned_states=t:this._cloned_state=t,this._update_clone_required_state()}overrideClonedStateAllowed(){if(this._cloned_states)for(let t of this._cloned_states)if(t==Qi.FROM_NODE)return!0;return!!this._cloned_state&&this._cloned_state==Qi.FROM_NODE}cloneRequiredState(t){return this._clone_required_states[t]}cloneRequiredStates(){return this._clone_required_states}_get_clone_required_state(t){const e=this._cloned_states;if(e){const n=e[t];if(null!=n)return this.clone_required_from_state(n)}return!this._cloned_state||this.clone_required_from_state(this._cloned_state)}clone_required_from_state(t){switch(t){case Qi.ALWAYS:return!0;case Qi.NEVER:return!1;case Qi.FROM_NODE:return!this._overridden}return os.unreachable(t)}overrideClonedState(t){this._overridden=t,this._update_clone_required_state(),this.node.emit(Ei.OVERRIDE_CLONABLE_STATE_UPDATE),this.node.setDirty()}overriden(){return this._overridden}_update_clone_required_state(){if(this._cloned_states){const t=[];for(let e=0;e<this._cloned_states.length;e++)t[e]=this._get_clone_required_state(e);this._clone_required_states=t}else if(this._cloned_state){const t=this.inputs_controller.maxInputsCount(),e=[];for(let n=0;n<t;n++)e[n]=this._get_clone_required_state(n);this._clone_required_states=e}else;}}class Fo{constructor(t){this.node=t,this._graph_node_inputs=[],this._inputs=[],this._has_named_inputs=!1,this._minInputsCount=0,this._maxInputsCount=0,this._maxInputsCountOnInput=0,this._depends_on_inputs=!0}dispose(){this._graph_node&&this._graph_node.dispose();for(let t of this._graph_node_inputs)t&&t.dispose();this._on_update_hooks=void 0,this._on_update_hook_names=void 0}set_depends_on_inputs(t){this._depends_on_inputs=t}setMinCount(t){this._minInputsCount=t}minCount(){return this._minInputsCount}setMaxCount(t){0==this._maxInputsCount&&(this._maxInputsCountOnInput=t),this._maxInputsCount=t,this._initGraphNodeInputs()}namedInputConnectionPointsByName(t){if(this._named_input_connection_points)for(let e of this._named_input_connection_points)if(e&&e.name()==t)return e}setNamedInputConnectionPoints(t){this._has_named_inputs=!0;const e=this.node.io.connections.inputConnections();if(e)for(let n of e)n&&n.input_index>=t.length&&n.disconnect({setInput:!0});this._named_input_connection_points=t,this.setMinCount(0),this.setMaxCount(t.length),this._initGraphNodeInputs(),this.node.emit(Ei.NAMED_INPUTS_UPDATED)}hasNamedInputs(){return this._has_named_inputs}namedInputConnectionPoints(){return this._named_input_connection_points||[]}_initGraphNodeInputs(){for(let t=0;t<this._maxInputsCount;t++)this._graph_node_inputs[t]=this._graph_node_inputs[t]||this._createGraphNodeInput(t)}_createGraphNodeInput(t){const e=new Mi(this.node.scene(),`input_${t}`);return this._graph_node||(this._graph_node=new Mi(this.node.scene(),\\\\\\\"inputs\\\\\\\"),this.node.addGraphInput(this._graph_node,!1)),this._graph_node.addGraphInput(e,!1),e}maxInputsCount(){return this._maxInputsCount||0}maxInputsCountOverriden(){return this._maxInputsCount!=this._maxInputsCountOnInput}inputGraphNode(t){return this._graph_node_inputs[t]}setCount(t,e){null==e&&(e=t),this.setMinCount(t),this.setMaxCount(e),this._initConnectionControllerInputs()}_initConnectionControllerInputs(){this.node.io.connections.initInputs()}is_any_input_dirty(){var t;return(null===(t=this._graph_node)||void 0===t?void 0:t.isDirty())||!1}async containers_without_evaluation(){const t=[];for(let e=0;e<this._inputs.length;e++){const n=this._inputs[e];let i;n&&(i=await n.compute()),t.push(i)}return t}existing_input_indices(){const t=[];if(this._maxInputsCount>0)for(let e=0;e<this._inputs.length;e++)this._inputs[e]&&t.push(e);return t}async eval_required_inputs(){var t;let e=[];if(this._maxInputsCount>0){const n=this.existing_input_indices();if(n.length<this._minInputsCount)this.node.states.error.set(\\\\\\\"inputs are missing\\\\\\\");else if(n.length>0){const n=[];let i;for(let t=0;t<this._inputs.length;t++)i=this._inputs[t],i&&n.push(this.eval_required_input(t));e=await Promise.all(n),null===(t=this._graph_node)||void 0===t||t.removeDirtyState()}}return e}async eval_required_input(t){let e;const n=this.input(t);if(n&&(e=await n.compute(),this._graph_node_inputs[t].removeDirtyState()),e&&e.coreContent());else{const e=this.input(t);if(e){const n=e.states.error.message();n&&this.node.states.error.set(`input ${t} is invalid (error: ${n})`)}}return e}get_named_input_index(t){var e;if(this._named_input_connection_points)for(let n=0;n<this._named_input_connection_points.length;n++)if((null===(e=this._named_input_connection_points[n])||void 0===e?void 0:e.name())==t)return n;return-1}get_input_index(t){if(m.isString(t)){if(this.hasNamedInputs())return this.get_named_input_index(t);throw new Error(`node ${this.node.path()} has no named inputs`)}return t}setInput(t,e,n=0){const i=this.get_input_index(t)||0;if(i<0){const e=`invalid input (${t}) for node ${this.node.path()}`;throw console.warn(e),new Error(e)}let s=0;if(e&&e.io.outputs.hasNamedOutputs()&&(s=e.io.outputs.getOutputIndex(n),null==s||s<0)){const t=e.io.outputs.namedOutputConnectionPoints().map((t=>t.name()));return void console.warn(`node ${e.path()} does not have an output named ${n}. inputs are: ${t.join(\\\\\\\", \\\\\\\")}`)}const r=this._graph_node_inputs[i];if(null==r){const t=`graph_input_node not found at index ${i}`;throw console.warn(t),new Error(t)}if(e&&this.node.parent()!=e.parent())return;const o=this._inputs[i];let a,l=null;this.node.io.connections&&(a=this.node.io.connections.inputConnection(i)),a&&(l=a.output_index),e===o&&s==l||(null!=o&&this._depends_on_inputs&&r.removeGraphInput(o),null!=e?r.addGraphInput(e)?(this._depends_on_inputs||r.removeGraphInput(e),a&&a.disconnect({setInput:!1}),this._inputs[i]=e,new Ro(e,this.node,s,i)):console.warn(`cannot connect ${e.path()} to ${this.node.path()}`):(this._inputs[i]=null,a&&a.disconnect({setInput:!1})),this._run_on_set_input_hooks(),r.setSuccessorsDirty(),this.node.emit(Ei.INPUTS_UPDATED))}remove_input(t){const e=this.inputs();let n;for(let i=0;i<e.length;i++)n=e[i],null!=n&&null!=t&&n.graphNodeId()===t.graphNodeId()&&this.setInput(i,null)}input(t){return this._inputs[t]}named_input(t){if(this.hasNamedInputs()){const e=this.get_input_index(t);return this._inputs[e]}return null}named_input_connection_point(t){if(this.hasNamedInputs()&&this._named_input_connection_points){const e=this.get_input_index(t);return this._named_input_connection_points[e]}}has_named_input(t){return this.get_named_input_index(t)>=0}has_input(t){return null!=this._inputs[t]}inputs(){return this._inputs}initInputsClonedState(t){this._cloned_states_controller||(this._cloned_states_controller=new Io(this),this._cloned_states_controller.initInputsClonedState(t))}overrideClonedStateAllowed(){var t;return(null===(t=this._cloned_states_controller)||void 0===t?void 0:t.overrideClonedStateAllowed())||!1}overrideClonedState(t){var e;null===(e=this._cloned_states_controller)||void 0===e||e.overrideClonedState(t)}clonedStateOverriden(){var t;return(null===(t=this._cloned_states_controller)||void 0===t?void 0:t.overriden())||!1}cloneRequired(t){var e;const n=null===(e=this._cloned_states_controller)||void 0===e?void 0:e.cloneRequiredState(t);return null==n||n}cloneRequiredStates(){var t;const e=null===(t=this._cloned_states_controller)||void 0===t?void 0:t.cloneRequiredStates();return null==e||e}add_on_set_input_hook(t,e){this._on_update_hooks=this._on_update_hooks||[],this._on_update_hook_names=this._on_update_hook_names||[],this._on_update_hook_names.includes(t)?console.warn(`hook with name ${t} already exists`,this.node):(this._on_update_hooks.push(e),this._on_update_hook_names.push(t))}_run_on_set_input_hooks(){if(this._on_update_hooks)for(let t of this._on_update_hooks)t()}}class Do{constructor(t){this.node=t,this._has_outputs=!1,this._has_named_outputs=!1}setHasOneOutput(){this._has_outputs=!0}setHasNoOutput(){this._has_outputs=!1}hasOutputs(){return this._has_outputs}hasNamedOutputs(){return this._has_named_outputs}hasNamedOutput(t){return this.getNamedOutputIndex(t)>=0}namedOutputConnectionPoints(){return this._named_output_connection_points||[]}namedOutputConnection(t){if(this._named_output_connection_points)return this._named_output_connection_points[t]}getNamedOutputIndex(t){var e;if(this._named_output_connection_points)for(let n=0;n<this._named_output_connection_points.length;n++)if((null===(e=this._named_output_connection_points[n])||void 0===e?void 0:e.name())==t)return n;return-1}getOutputIndex(t){return null!=t?m.isString(t)?this.hasNamedOutputs()?this.getNamedOutputIndex(t):(console.warn(`node ${this.node.path()} has no named outputs`),-1):t:-1}namedOutputConnectionPointsByName(t){if(this._named_output_connection_points)for(let e of this._named_output_connection_points)if((null==e?void 0:e.name())==t)return e}setNamedOutputConnectionPoints(t,e=!0){this._has_named_outputs=!0;const n=this.node.io.connections.outputConnections();if(n)for(let e of n)e&&e.output_index>=t.length&&e.disconnect({setInput:!0});this._named_output_connection_points=t,e&&this.node.scene()&&this.node.setDirty(this.node),this.node.emit(Ei.NAMED_OUTPUTS_UPDATED)}used_output_names(){var t;const e=this.node.io.connections;if(e){let n=e.outputConnections().map((t=>t?t.output_index:null));n=f.uniq(n);const i=[];n.forEach((t=>{m.isNumber(t)&&i.push(t)}));const s=[];for(let e of i){const n=null===(t=this.namedOutputConnectionPoints()[e])||void 0===t?void 0:t.name();n&&s.push(n)}return s}return[]}}class Bo{constructor(t){this._node=t,this._output_connections=new Map}initInputs(){const t=this._node.io.inputs.maxInputsCount();for(this._input_connections=this._input_connections||new Array(t);this._input_connections.length<t;)this._input_connections.push(void 0)}addInputConnection(t){this._input_connections?this._input_connections[t.input_index]=t:console.warn(\\\\\\\"input connections array not initialized\\\\\\\")}removeInputConnection(t){if(this._input_connections)if(t.input_index<this._input_connections.length){this._input_connections[t.input_index]=void 0;let e=!0;for(let n=t.input_index;n<this._input_connections.length;n++)this._input_connections[n]&&(e=!1);e&&(this._input_connections=this._input_connections.slice(0,t.input_index))}else console.warn(`attempt to remove an input connection at index ${t.input_index}`);else console.warn(\\\\\\\"input connections array not initialized\\\\\\\")}inputConnection(t){if(this._input_connections)return this._input_connections[t]}firstInputConnection(){return this._input_connections?f.compact(this._input_connections)[0]:null}inputConnections(){return this._input_connections}existingInputConnections(){const t=this._input_connections;if(t)for(;t.length>1&&void 0===t[t.length-1];)t.pop();return t}addOutputConnection(t){const e=t.output_index,n=t.id;let i=this._output_connections.get(e);i||(i=new Map,this._output_connections.set(e,i)),i.set(n,t)}removeOutputConnection(t){const e=t.output_index,n=t.id;let i=this._output_connections.get(e);i&&i.delete(n)}outputConnections(){let t=[];return this._output_connections.forEach(((e,n)=>{e.forEach(((e,n)=>{e&&t.push(e)}))})),t}}class zo{constructor(t){this._node=t}set_in(t){this._in=t}set_out(t){this._out=t}clear(){this._in=void 0,this._out=void 0}in(){return this._in}out(){return this._out}}class ko{constructor(t,e,n){this._name=t,this._type=e,this._init_value=n}get init_value(){return this._init_value}name(){return this._name}type(){return this._type}are_types_matched(t,e){return!0}toJSON(){return this._json=this._json||this._create_json()}_create_json(){return{name:this._name,type:this._type}}}var Uo;!function(t){t.BOOL=\\\\\\\"bool\\\\\\\",t.INT=\\\\\\\"int\\\\\\\",t.FLOAT=\\\\\\\"float\\\\\\\",t.VEC2=\\\\\\\"vec2\\\\\\\",t.VEC3=\\\\\\\"vec3\\\\\\\",t.VEC4=\\\\\\\"vec4\\\\\\\",t.SAMPLER_2D=\\\\\\\"sampler2D\\\\\\\",t.SSS_MODEL=\\\\\\\"SSSModel\\\\\\\"}(Uo||(Uo={}));const Go=[Uo.BOOL,Uo.INT,Uo.FLOAT,Uo.VEC2,Uo.VEC3,Uo.VEC4],Vo={[Uo.BOOL]:Cr.BOOLEAN,[Uo.INT]:Cr.INTEGER,[Uo.FLOAT]:Cr.FLOAT,[Uo.VEC2]:Cr.VECTOR2,[Uo.VEC3]:Cr.VECTOR3,[Uo.VEC4]:Cr.VECTOR4,[Uo.SAMPLER_2D]:Cr.RAMP,[Uo.SSS_MODEL]:Cr.STRING},Ho={[Cr.BOOLEAN]:Uo.BOOL,[Cr.COLOR]:Uo.VEC3,[Cr.INTEGER]:Uo.INT,[Cr.FLOAT]:Uo.FLOAT,[Cr.FOLDER]:void 0,[Cr.VECTOR2]:Uo.VEC2,[Cr.VECTOR3]:Uo.VEC3,[Cr.VECTOR4]:Uo.VEC4,[Cr.BUTTON]:void 0,[Cr.OPERATOR_PATH]:void 0,[Cr.PARAM_PATH]:void 0,[Cr.NODE_PATH]:void 0,[Cr.RAMP]:void 0,[Cr.STRING]:void 0},jo={[Uo.BOOL]:!1,[Uo.INT]:0,[Uo.FLOAT]:0,[Uo.VEC2]:[0,0],[Uo.VEC3]:[0,0,0],[Uo.VEC4]:[0,0,0,0],[Uo.SAMPLER_2D]:Ao.DEFAULT_VALUE_JSON,[Uo.SSS_MODEL]:\\\\\\\"SSSModel()\\\\\\\"},Wo={[Uo.BOOL]:1,[Uo.INT]:1,[Uo.FLOAT]:1,[Uo.VEC2]:2,[Uo.VEC3]:3,[Uo.VEC4]:4,[Uo.SAMPLER_2D]:1,[Uo.SSS_MODEL]:1};class qo extends ko{constructor(t,e,n){super(t,e),this._name=t,this._type=e,this._init_value=n,this._init_value=this._init_value||jo[this._type]}type(){return this._type}are_types_matched(t,e){return t==e}get param_type(){return Vo[this._type]}get init_value(){return this._init_value}toJSON(){return this._json=this._json||this._create_json()}_create_json(){return{name:this._name,type:this._type}}}var Xo;!function(t){t.BOOL=\\\\\\\"bool\\\\\\\",t.INT=\\\\\\\"int\\\\\\\",t.FLOAT=\\\\\\\"float\\\\\\\",t.VEC2=\\\\\\\"vec2\\\\\\\",t.VEC3=\\\\\\\"vec3\\\\\\\",t.VEC4=\\\\\\\"vec4\\\\\\\"}(Xo||(Xo={}));const Yo=[Xo.BOOL,Xo.INT,Xo.FLOAT,Xo.VEC2,Xo.VEC3,Xo.VEC4],$o={[Xo.BOOL]:Cr.BOOLEAN,[Xo.INT]:Cr.INTEGER,[Xo.FLOAT]:Cr.FLOAT,[Xo.VEC2]:Cr.VECTOR2,[Xo.VEC3]:Cr.VECTOR3,[Xo.VEC4]:Cr.VECTOR4},Jo={[Cr.BOOLEAN]:Xo.BOOL,[Cr.COLOR]:Xo.VEC3,[Cr.INTEGER]:Xo.INT,[Cr.FLOAT]:Xo.FLOAT,[Cr.FOLDER]:void 0,[Cr.VECTOR2]:Xo.VEC2,[Cr.VECTOR3]:Xo.VEC3,[Cr.VECTOR4]:Xo.VEC4,[Cr.BUTTON]:void 0,[Cr.OPERATOR_PATH]:void 0,[Cr.PARAM_PATH]:void 0,[Cr.NODE_PATH]:void 0,[Cr.RAMP]:void 0,[Cr.STRING]:void 0},Zo={[Xo.BOOL]:!1,[Xo.INT]:0,[Xo.FLOAT]:0,[Xo.VEC2]:[0,0],[Xo.VEC3]:[0,0,0],[Xo.VEC4]:[0,0,0,0]};Xo.BOOL,Xo.INT,Xo.FLOAT,Xo.VEC2,Xo.VEC3,Xo.VEC4;class Ko extends ko{constructor(t,e){super(t,e),this._name=t,this._type=e,this._init_value=Zo[this._type]}type(){return this._type}are_types_matched(t,e){return t==e}get param_type(){return $o[this._type]}get init_value(){return this._init_value}toJSON(){return this._json=this._json||this._create_json()}_create_json(){return{name:this._name,type:this._type}}}var Qo;!function(t){t.BASE=\\\\\\\"base\\\\\\\",t.DRAG=\\\\\\\"drag\\\\\\\",t.KEYBOARD=\\\\\\\"keyboard\\\\\\\",t.MOUSE=\\\\\\\"mouse\\\\\\\",t.POINTER=\\\\\\\"pointer\\\\\\\"}(Qo||(Qo={}));class ta extends ko{constructor(t,e,n){super(t,e),this._name=t,this._type=e,this._event_listener=n}type(){return this._type}get param_type(){return Cr.FLOAT}are_types_matched(t,e){return e==Qo.BASE||t==e}get event_listener(){return this._event_listener}toJSON(){return this._json=this._json||this._create_json()}_create_json(){return{name:this._name,type:this._type}}}const ea={[ts.ANIM]:void 0,[ts.COP]:void 0,[ts.EVENT]:Qo.BASE,[ts.GL]:Uo.FLOAT,[ts.JS]:Xo.FLOAT,[ts.MANAGER]:void 0,[ts.MAT]:void 0,[ts.OBJ]:void 0,[ts.POST]:void 0,[ts.ROP]:void 0,[ts.SOP]:void 0};function na(t,e,n){switch(t){case ts.EVENT:return new ta(e,n);case ts.GL:return new qo(e,n);case ts.JS:return new Ko(e,n);default:return}}class ia{constructor(t,e){this.node=t,this._context=e,this._raw_input_serialized_by_param_name=new Map,this._default_value_serialized_by_param_name=new Map,this._initialized=!1}initializeNode(){this._initialized?console.warn(\\\\\\\"already initialized\\\\\\\",this.node):(this._initialized=!0,this.node.params.onParamsCreated(\\\\\\\"create_inputs_from_params\\\\\\\",this.create_inputs_from_params.bind(this)))}initialized(){return this._initialized}create_inputs_from_params(){const t=function(t){switch(t){case ts.EVENT:return;case ts.GL:return Ho;case ts.JS:return Jo;default:return}}(this._context);if(!t)return;const e=[];for(let n of this.node.params.names){let i=!0;if(this._inputless_param_names&&this._inputless_param_names.length>0&&this._inputless_param_names.includes(n)&&(i=!1),i&&this.node.params.has(n)){const i=this.node.params.get(n);if(i&&!i.parent_param){const n=t[i.type()];if(n){const t=na(this._context,i.name(),n);t&&e.push(t)}}}}this.node.io.inputs.setNamedInputConnectionPoints(e)}set_inputless_param_names(t){return this._inputless_param_names=t}createSpareParameters(){if(this.node.scene().loadingController.isLoading())return;const t=this.node.params.spare_names,e={};for(let n of t)if(this.node.params.has(n)){const t=this.node.params.get(n);t&&(this._raw_input_serialized_by_param_name.set(n,t.rawInputSerialized()),this._default_value_serialized_by_param_name.set(n,t.defaultValueSerialized()),e.namesToDelete=e.namesToDelete||[],e.namesToDelete.push(n))}for(let t of this.node.io.inputs.namedInputConnectionPoints())if(t){const n=t.name(),i=t.param_type;let s=t.init_value;const r=this._default_value_serialized_by_param_name.get(n);let o=this.node.paramDefaultValue(n);if(s=null!=o?o:null!=r?r:t.init_value,m.isArray(t.init_value))if(m.isNumber(s)){const e=new Array(t.init_value.length);e.fill(s),s=e}else m.isArray(s)&&s.length==t.init_value.length&&null!=r&&(s=t.init_value);null!=s&&(e.toAdd=e.toAdd||[],e.toAdd.push({name:n,type:i,init_value:b.clone(s),raw_input:b.clone(s),options:{spare:!0}}))}this.node.params.updateParams(e);for(let t of this.node.params.spare)if(!t.parent_param){const e=this._raw_input_serialized_by_param_name.get(t.name());e&&t.set(e)}}}class sa{constructor(t,e){this.node=t,this._context=e,this._create_spare_params_from_inputs=!0,this._functions_overridden=!1,this._input_name_function=t=>`in${t}`,this._output_name_function=t=>0==t?\\\\\\\"val\\\\\\\":`val${t}`,this._expected_input_types_function=()=>{const t=this.first_input_connection_type()||this.default_connection_type();return[t,t]},this._expected_output_types_function=()=>[this._expected_input_types_function()[0]],this._update_signature_if_required_bound=this.update_signature_if_required.bind(this),this._initialized=!1,this._spare_params_controller=new ia(this.node,this._context)}default_connection_type(){return ea[this._context]}create_connection_point(t,e){return na(this._context,t,e)}functions_overridden(){return this._functions_overridden}initialized(){return this._initialized}set_create_spare_params_from_inputs(t){this._create_spare_params_from_inputs=t}set_input_name_function(t){this._initialize_if_required(),this._input_name_function=t}set_output_name_function(t){this._initialize_if_required(),this._output_name_function=t}set_expected_input_types_function(t){this._initialize_if_required(),this._functions_overridden=!0,this._expected_input_types_function=t}set_expected_output_types_function(t){this._initialize_if_required(),this._functions_overridden=!0,this._expected_output_types_function=t}input_name(t){return this._wrapped_input_name_function(t)}output_name(t){return this._wrapped_output_name_function(t)}initializeNode(){this._initialized?console.warn(\\\\\\\"already initialized\\\\\\\",this.node):(this._initialized=!0,this.node.io.inputs.add_on_set_input_hook(\\\\\\\"_update_signature_if_required\\\\\\\",this._update_signature_if_required_bound),this.node.params.addOnSceneLoadHook(\\\\\\\"_update_signature_if_required\\\\\\\",this._update_signature_if_required_bound),this.node.params.onParamsCreated(\\\\\\\"_update_signature_if_required_bound\\\\\\\",this._update_signature_if_required_bound),this.node.addPostDirtyHook(\\\\\\\"_update_signature_if_required\\\\\\\",this._update_signature_if_required_bound),this._spare_params_controller.initialized()||this._spare_params_controller.initializeNode())}_initialize_if_required(){this._initialized||this.initializeNode()}get spare_params(){return this._spare_params_controller}update_signature_if_required(t){this.node.lifecycle.creationCompleted()&&this._connections_match_inputs()||(this.update_connection_types(),this.node.removeDirtyState(),this.node.scene().loadingController.isLoading()||this.make_successors_update_signatures())}make_successors_update_signatures(){const t=this.node.graphAllSuccessors();if(this.node.childrenAllowed()){const e=this.node.nodesByType(ns.INPUT),n=this.node.nodesByType(ns.OUTPUT);for(let n of e)t.push(n);for(let e of n)t.push(e)}for(let e of t){const t=e;t.io&&t.io.has_connection_points_controller&&t.io.connection_points.initialized()&&t.io.connection_points.update_signature_if_required(this.node)}}update_connection_types(){const t=this._wrapped_expected_input_types_function(),e=this._wrapped_expected_output_types_function(),n=[];for(let e=0;e<t.length;e++){const i=t[e],s=this.create_connection_point(this._wrapped_input_name_function(e),i);n.push(s)}const i=[];for(let t=0;t<e.length;t++){const n=e[t],s=this.create_connection_point(this._wrapped_output_name_function(t),n);i.push(s)}this.node.io.inputs.setNamedInputConnectionPoints(n),this.node.io.outputs.setNamedOutputConnectionPoints(i,!1),this._create_spare_params_from_inputs&&this._spare_params_controller.createSpareParameters()}_connections_match_inputs(){const t=this.node.io.inputs.namedInputConnectionPoints().map((t=>null==t?void 0:t.type())),e=this.node.io.outputs.namedOutputConnectionPoints().map((t=>null==t?void 0:t.type())),n=this._wrapped_expected_input_types_function(),i=this._wrapped_expected_output_types_function();if(n.length!=t.length)return!1;if(i.length!=e.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!=n[e])return!1;for(let t=0;t<e.length;t++)if(e[t]!=i[t])return!1;return!0}_wrapped_expected_input_types_function(){if(this.node.scene().loadingController.isLoading()){const t=this.node.io.saved_connection_points_data.in();if(t)return t.map((t=>t.type))}return this._expected_input_types_function()}_wrapped_expected_output_types_function(){if(this.node.scene().loadingController.isLoading()){const t=this.node.io.saved_connection_points_data.out();if(t)return t.map((t=>t.type))}return this._expected_output_types_function()}_wrapped_input_name_function(t){if(this.node.scene().loadingController.isLoading()){const e=this.node.io.saved_connection_points_data.in();if(e)return e[t].name}return this._input_name_function(t)}_wrapped_output_name_function(t){if(this.node.scene().loadingController.isLoading()){const e=this.node.io.saved_connection_points_data.out();if(e)return e[t].name}return this._output_name_function(t)}first_input_connection_type(){return this.input_connection_type(0)}input_connection_type(t){const e=this.node.io.connections.inputConnections();if(e){const n=e[t];if(n)return n.src_connection_point().type()}}}class ra{constructor(t){this.node=t,this._connections=new Bo(this.node)}get connections(){return this._connections}get inputs(){return this._inputs=this._inputs||new Fo(this.node)}has_inputs(){return null!=this._inputs}get outputs(){return this._outputs=this._outputs||new Do(this.node)}has_outputs(){return null!=this._outputs}get connection_points(){return this._connection_points=this._connection_points||new sa(this.node,this.node.context())}get has_connection_points_controller(){return null!=this._connection_points}get saved_connection_points_data(){return this._saved_connection_points_data=this._saved_connection_points_data||new zo(this.node)}clear_saved_connection_points_data(){this._saved_connection_points_data&&(this._saved_connection_points_data.clear(),this._saved_connection_points_data=void 0)}}class oa{constructor(){}}class aa extends Mi{constructor(t,e=\\\\\\\"BaseNode\\\\\\\",n){super(t,e),this.params_init_value_overrides=n,this.containerController=new Tr(this),this.pv=new Po,this.p=new oa,this._initialized=!1}copy_param_values(t){const e=this.params.non_spare;for(let n of e){const e=t.params.get(n.name());e&&n.copy_value(e)}}get parentController(){return this._parent_controller=this._parent_controller||new qi(this)}static displayedInputNames(){return[]}get childrenControllerContext(){return this._children_controller_context}_create_children_controller(){if(this._children_controller_context)return new hs(this,this._children_controller_context)}get childrenController(){return this._children_controller=this._children_controller||this._create_children_controller()}childrenAllowed(){return null!=this._children_controller_context}get uiData(){return this._ui_data=this._ui_data||new Si(this)}get states(){return this._states=this._states||new ji(this)}get lifecycle(){return this._lifecycle=this._lifecycle||new us(this)}get serializer(){return this._serializer=this._serializer||new Sr(this)}get cookController(){return this._cook_controller=this._cook_controller||new Er(this)}get io(){return this._io=this._io||new ra(this)}get nameController(){return this._name_controller=this._name_controller||new Wi(this)}setName(t){this.nameController.setName(t)}_set_core_name(t){this._name=t}get params(){return this._params_controller=this._params_controller||new Oo(this)}initialize_base_and_node(){var t;this._initialized?console.warn(\\\\\\\"node already initialized\\\\\\\"):(this._initialized=!0,null===(t=this.displayNodeController)||void 0===t||t.initializeNode(),this.initializeBaseNode(),this.initializeNode(),this.polyNodeController&&this.polyNodeController.initializeNode())}initializeBaseNode(){}initializeNode(){}static type(){throw\\\\\\\"type to be overriden\\\\\\\"}type(){return this.constructor.type()}static context(){throw console.error(\\\\\\\"node has no node_context\\\\\\\",this),\\\\\\\"context requires override\\\\\\\"}context(){return this.constructor.context()}static require_webgl2(){return!1}require_webgl2(){return this.constructor.require_webgl2()}setParent(t){this.parentController.setParent(t)}parent(){return this.parentController.parent()}firstAncestorWithContext(t){return this.parentController.firstAncestorWithContext(t)}root(){return this._scene.root()}path(t){return this.parentController.path(t)}createParams(){}addParam(t,e,n,i){var s;return null===(s=this._params_controller)||void 0===s?void 0:s.addParam(t,e,n,i)}paramDefaultValue(t){return null}cook(t){return null}onCookEnd(t,e){this.cookController.registerOnCookEnd(t,e)}async compute(){var t,e;return this.isDirty()||(null===(e=null===(t=this.flags)||void 0===t?void 0:t.bypass)||void 0===e?void 0:e.active())?await this.containerController.compute():this.containerController.container()}_setContainer(t,e=null){this.containerController.container().set_content(t),null!=t&&(t.name||(t.name=this.path()),t.node||(t.node=this)),this.cookController.endCook(e)}createNode(t,e){var n;return null===(n=this.childrenController)||void 0===n?void 0:n.createNode(t,e)}create_operation_container(t,e,n){var i;return null===(i=this.childrenController)||void 0===i?void 0:i.create_operation_container(t,e,n)}removeNode(t){var e;null===(e=this.childrenController)||void 0===e||e.removeNode(t)}dispose(){var t,e;super.dispose(),this.setParent(null),this.io.inputs.dispose(),this.lifecycle.dispose(),null===(t=this.displayNodeController)||void 0===t||t.dispose(),this.nameController.dispose(),null===(e=this.childrenController)||void 0===e||e.dispose(),this.params.dispose()}children(){var t;return(null===(t=this.childrenController)||void 0===t?void 0:t.children())||[]}node(t){var e;return(null===(e=this.parentController)||void 0===e?void 0:e.findNode(t))||null}nodeSibbling(t){var e;const n=this.parent();if(n){const i=null===(e=n.childrenController)||void 0===e?void 0:e.childByName(t);if(i)return i}return null}nodesByType(t){var e;return(null===(e=this.childrenController)||void 0===e?void 0:e.nodesByType(t))||[]}setInput(t,e,n=0){this.io.inputs.setInput(t,e,n)}emit(t,e=null){this.scene().dispatchController.dispatch(this,t,e)}toJSON(t=!1){return this.serializer.toJSON(t)}async requiredModules(){}usedAssembler(){}integrationData(){}}class la extends aa{static context(){return ts.MANAGER}}class ca{constructor(t,e,n){this.type=t,this.init_value=e,this.options=n}}class ha{static BUTTON(t,e){return new ca(Cr.BUTTON,t,e)}static BOOLEAN(t,e){return new ca(Cr.BOOLEAN,t,e)}static COLOR(t,e){return t instanceof D.a&&(t=t.toArray()),new ca(Cr.COLOR,t,e)}static FLOAT(t,e){return new ca(Cr.FLOAT,t,e)}static FOLDER(t=null,e){return new ca(Cr.FOLDER,t,e)}static INTEGER(t,e){return new ca(Cr.INTEGER,t,e)}static RAMP(t=Ao.DEFAULT_VALUE,e){return new ca(Cr.RAMP,t,e)}static STRING(t=\\\\\\\"\\\\\\\",e){return new ca(Cr.STRING,t,e)}static VECTOR2(t,e){return t instanceof d.a&&(t=t.toArray()),new ca(Cr.VECTOR2,t,e)}static VECTOR3(t,e){return t instanceof p.a&&(t=t.toArray()),new ca(Cr.VECTOR3,t,e)}static VECTOR4(t,e){return t instanceof _.a&&(t=t.toArray()),new ca(Cr.VECTOR4,t,e)}static OPERATOR_PATH(t,e){return new ca(Cr.OPERATOR_PATH,t,e)}static NODE_PATH(t,e){return new ca(Cr.NODE_PATH,t,e)}static PARAM_PATH(t,e){return new ca(Cr.PARAM_PATH,t,e)}}class ua{}class da{constructor(t){this.scene=t}findObjectByMask(t){return this.findObjectByMaskInObject(t,this.scene.threejsScene())}findObjectByMaskInObject(t,e,n=\\\\\\\"\\\\\\\"){for(let i of e.children){const e=this._removeTrailingOrHeadingSlash(i.name),s=`${n=this._removeTrailingOrHeadingSlash(n)}/${e}`;if(ss.matchMask(s,t))return i;const r=this.findObjectByMaskInObject(t,i,s);if(r)return r}}objectsByMask(t){return this.objectsByMaskInObject(t,this.scene.threejsScene(),[],\\\\\\\"\\\\\\\")}objectsByMaskInObject(t,e,n=[],i=\\\\\\\"\\\\\\\"){for(let s of e.children){const e=this._removeTrailingOrHeadingSlash(s.name),r=`${i=this._removeTrailingOrHeadingSlash(i)}/${e}`;ss.matchMask(r,t)&&n.push(s),this.objectsByMaskInObject(t,s,n,r)}return n}_removeTrailingOrHeadingSlash(t){return\\\\\\\"/\\\\\\\"==t[0]&&(t=t.substr(1)),\\\\\\\"/\\\\\\\"==t[t.length-1]&&(t=t.substr(0,t.length-1)),t}}const pa={computeOnDirty:!1,callback:t=>{ma.update(t)}};function _a(t){return class extends t{constructor(){super(...arguments),this.autoUpdate=ha.BOOLEAN(1,pa)}}}_a(ua);class ma{constructor(t){this.node=t}async update(){const t=this.node.object,e=this.node.pv;e.autoUpdate!=t.autoUpdate&&(t.autoUpdate=e.autoUpdate)}static async update(t){t.sceneAutoUpdateController.update()}}var fa;!function(t){t.NONE=\\\\\\\"none\\\\\\\",t.COLOR=\\\\\\\"color\\\\\\\",t.TEXTURE=\\\\\\\"texture\\\\\\\"}(fa||(fa={}));const ga=[fa.NONE,fa.COLOR,fa.TEXTURE],va={computeOnDirty:!1,callback:t=>{xa.update(t)}};function ya(t){return class extends t{constructor(){super(...arguments),this.backgroundMode=ha.INTEGER(ga.indexOf(fa.NONE),{menu:{entries:ga.map(((t,e)=>({name:t,value:e})))},...va}),this.bgColor=ha.COLOR([0,0,0],{visibleIf:{backgroundMode:ga.indexOf(fa.COLOR)},...va}),this.bgTexture=ha.NODE_PATH(\\\\\\\"\\\\\\\",{visibleIf:{backgroundMode:ga.indexOf(fa.TEXTURE)},nodeSelection:{context:ts.COP},dependentOnFoundNode:!1,...va})}}}ya(ua);class xa{constructor(t){this.node=t}update(){const t=this.node.object,e=this.node.pv;if(e.backgroundMode==ga.indexOf(fa.NONE))t.background=null;else if(e.backgroundMode==ga.indexOf(fa.COLOR))t.background=e.bgColor;else{const n=e.bgTexture.nodeWithContext(ts.COP);n?n.compute().then((e=>{t.background=e.texture()})):this.node.states.error.set(\\\\\\\"bgTexture node not found\\\\\\\")}}static update(t){t.sceneBackgroundController.update()}}const ba={computeOnDirty:!1,callback:t=>{Ta.update(t)}};function wa(t){return class extends t{constructor(){super(...arguments),this.useEnvironment=ha.BOOLEAN(0,ba),this.environment=ha.NODE_PATH(\\\\\\\"\\\\\\\",{visibleIf:{useEnvironment:1},nodeSelection:{context:ts.COP},dependentOnFoundNode:!1,...ba})}}}wa(ua);class Ta{constructor(t){this.node=t}async update(){const t=this.node.object,e=this.node.pv;if(e.useEnvironment){const n=e.environment.nodeWithContext(ts.COP);n?n.compute().then((e=>{t.environment=e.texture()})):this.node.states.error.set(\\\\\\\"bgTexture node not found\\\\\\\")}else t.environment=null}static async update(t){t.sceneEnvController.update()}}class Aa{constructor(t,e=1,n=1e3){this.name=\\\\\\\"\\\\\\\",this.color=new D.a(t),this.near=e,this.far=n}clone(){return new Aa(this.color,this.near,this.far)}toJSON(){return{type:\\\\\\\"Fog\\\\\\\",color:this.color.getHex(),near:this.near,far:this.far}}}Aa.prototype.isFog=!0;class Ma{constructor(t,e=25e-5){this.name=\\\\\\\"\\\\\\\",this.color=new D.a(t),this.density=e}clone(){return new Ma(this.color,this.density)}toJSON(){return{type:\\\\\\\"FogExp2\\\\\\\",color:this.color.getHex(),density:this.density}}}Ma.prototype.isFogExp2=!0;const Ea={computeOnDirty:!1,callback:t=>{La.update(t)}};var Sa;!function(t){t.LINEAR=\\\\\\\"linear\\\\\\\",t.EXPONENTIAL=\\\\\\\"exponential\\\\\\\"}(Sa||(Sa={}));const Ca=[Sa.LINEAR,Sa.EXPONENTIAL];function Na(t){return class extends t{constructor(){super(...arguments),this.useFog=ha.BOOLEAN(0,Ea),this.fogType=ha.INTEGER(Ca.indexOf(Sa.EXPONENTIAL),{visibleIf:{useFog:1},menu:{entries:Ca.map(((t,e)=>({name:t,value:e})))},...Ea}),this.fogColor=ha.COLOR([1,1,1],{visibleIf:{useFog:1},...Ea}),this.fogNear=ha.FLOAT(1,{range:[0,100],rangeLocked:[!0,!1],visibleIf:{useFog:1,fogType:Ca.indexOf(Sa.LINEAR)},...Ea}),this.fogFar=ha.FLOAT(100,{range:[0,100],rangeLocked:[!0,!1],visibleIf:{useFog:1,fogType:Ca.indexOf(Sa.LINEAR)},...Ea}),this.fogDensity=ha.FLOAT(25e-5,{visibleIf:{useFog:1,fogType:Ca.indexOf(Sa.EXPONENTIAL)},...Ea})}}}Na(ua);class La{constructor(t){this.node=t}async update(){const t=this.node.object,e=this.node.pv;if(e.useFog)if(e.fogType==Ca.indexOf(Sa.LINEAR)){const n=this.fog2(e);t.fog=n,n.color=e.fogColor,n.near=e.fogNear,n.far=e.fogFar}else{const n=this.fogExp2(e);t.fog=this.fogExp2(e),n.color=e.fogColor,n.density=e.fogDensity}else{t.fog&&(t.fog=null)}}fog2(t){return this._fog=this._fog||new Aa(16777215,t.fogNear,t.fogFar)}fogExp2(t){return this._fogExp2=this._fogExp2||new Ma(16777215,t.fogDensity)}static async update(t){t.sceneFogController.update()}}const Oa={computeOnDirty:!1,callback:t=>{Ra.update(t)}};function Pa(t){return class extends t{constructor(){super(...arguments),this.useOverrideMaterial=ha.BOOLEAN(0,Oa),this.overrideMaterial=ha.NODE_PATH(\\\\\\\"\\\\\\\",{visibleIf:{useOverrideMaterial:1},nodeSelection:{context:ts.MAT},dependentOnFoundNode:!1,...Oa})}}}Pa(ua);class Ra{constructor(t){this.node=t}async update(){const t=this.node.object,e=this.node.pv;if(e.useOverrideMaterial){const n=e.overrideMaterial.nodeWithContext(ts.MAT);n?n.compute().then((e=>{t.overrideMaterial=e.material()})):this.node.states.error.set(\\\\\\\"bgTexture node not found\\\\\\\")}else t.overrideMaterial=null}static async update(t){t.SceneMaterialOverrideController.update()}}class Ia extends(Pa(wa(Na(ya(_a(ua)))))){}const Fa=new Ia;class Da extends la{constructor(){super(...arguments),this.paramsConfig=Fa,this._object=this._createScene(),this._queued_nodes_by_id=new Map,this.sceneAutoUpdateController=new ma(this),this.sceneBackgroundController=new xa(this),this.sceneEnvController=new Ta(this),this.sceneFogController=new La(this),this.sceneMaterialOverrideController=new Ra(this),this._children_controller_context=ts.OBJ}static type(){return\\\\\\\"obj\\\\\\\"}initializeNode(){this._object.matrixAutoUpdate=!1,this.lifecycle.add_on_child_add_hook(this._on_child_add.bind(this)),this.lifecycle.add_on_child_remove_hook(this._on_child_remove.bind(this))}_createScene(){const t=new vs;return t.name=\\\\\\\"/\\\\\\\",t.matrixAutoUpdate=!1,t}get object(){return this._object}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}_updateScene(){this.sceneAutoUpdateController.update(),this.sceneBackgroundController.update(),this.sceneEnvController.update(),this.sceneFogController.update(),this.sceneMaterialOverrideController.update()}_addToQueue(t){const e=t.graphNodeId();return this._queued_nodes_by_id.has(e)||this._queued_nodes_by_id.set(e,t),t}async processQueue(){this._updateScene();const t=new Map,e=[];this._queued_nodes_by_id.forEach(((n,i)=>{const s=`_____${n.renderOrder}__${n.path()}`;e.push(s),t.set(s,n)})),this._queued_nodes_by_id.clear();for(let n of e){const e=t.get(n);e&&(t.delete(n),this._addToScene(e))}}_update_object(t){return this.scene().loadingController.autoUpdating()?this._addToScene(t):this._addToQueue(t)}getParentForNode(t){if(t.attachableToHierarchy()){const e=t.io.inputs.input(0);return e?e.children_group:this._object}return null}_addToScene(t){var e;if(t.attachableToHierarchy()){const n=this.getParentForNode(t);n&&(t.usedInScene()?(null===(e=t.childrenDisplayController)||void 0===e||e.request_display_node_container(),t.addObjectToParent(n)):t.removeObjectFromParent())}}_removeFromScene(t){t.removeObjectFromParent()}areChildrenCooking(){const t=this.children();for(let e of t)if(e.cookController.isCooking()||e.isDisplayNodeCooking())return!0;return!1}addToParentTransform(t){this._update_object(t)}removeFromParentTransform(t){this._update_object(t)}_on_child_add(t){t&&this._update_object(t)}_on_child_remove(t){t&&this._removeFromScene(t)}}class Ba{constructor(t){this.scene=t,this._node_context_signatures={},this._instanciated_nodes_by_context_and_type={}}init(){this._root=new Da(this.scene),this._root.initialize_base_and_node(),this._root.params.init(),this._root._set_core_name(\\\\\\\"RootNode\\\\\\\")}root(){return this._root}_traverseNode(t,e){const n=t.children();if(n&&0!=n.length)for(let t of n)e(t),t.childrenController&&this._traverseNode(t,e)}clear(){var t;const e=this.root().children();for(let n of e)null===(t=this.root().childrenController)||void 0===t||t.removeNode(n)}node(t){return\\\\\\\"/\\\\\\\"===t?this.root():this.root().node(t)}allNodes(){let t=[this.root()],e=[this.root()],n=0;for(;e.length>0&&n<10;){const i=e.map((t=>t.childrenAllowed()?t.children():[])).flat();t=t.concat(i),e=i,n+=1}return t.flat()}nodesFromMask(t){const e=this.allNodes(),n=[];for(let i of e){const e=i.path();ss.matchMask(e,t)&&n.push(i)}return n}reset_node_context_signatures(){this._node_context_signatures={}}register_node_context_signature(t){t.childrenAllowed()&&t.childrenController&&(this._node_context_signatures[t.childrenController.node_context_signature()]=!0)}node_context_signatures(){return Object.keys(this._node_context_signatures).sort().map((t=>t.toLowerCase()))}addToInstanciatedNode(t){const e=t.context(),n=t.type();this._instanciated_nodes_by_context_and_type[e]=this._instanciated_nodes_by_context_and_type[e]||{},this._instanciated_nodes_by_context_and_type[e][n]=this._instanciated_nodes_by_context_and_type[e][n]||{},this._instanciated_nodes_by_context_and_type[e][n][t.graphNodeId()]=t}removeFromInstanciatedNode(t){const e=t.context(),n=t.type();delete this._instanciated_nodes_by_context_and_type[e][n][t.graphNodeId()]}nodesByType(t){const e=[];return this._traverseNode(this.scene.root(),(n=>{n.type()==t&&e.push(n)})),e}nodesByContextAndType(t,e){const n=[],i=this._instanciated_nodes_by_context_and_type[t];if(i){const t=i[e];if(t)for(let e of Object.keys(t))n.push(t[e])}return n}}class za{constructor(t){this.scene=t}toJSON(t=!1){const e={},n={};for(let i of this.scene.nodesController.allNodes()){const s=new Sr(i);e[i.graphNodeId()]=s.toJSON(t);const r=i.params.all;for(let t of r)n[t.graphNodeId()]=t.toJSON()}return{nodes_by_graph_node_id:e,params_by_graph_node_id:n}}}var ka;!function(t){t.auxclick=\\\\\\\"auxclick\\\\\\\",t.click=\\\\\\\"click\\\\\\\",t.contextmenu=\\\\\\\"contextmenu\\\\\\\",t.dblclick=\\\\\\\"dblclick\\\\\\\",t.mousedown=\\\\\\\"mousedown\\\\\\\",t.mouseenter=\\\\\\\"mouseenter\\\\\\\",t.mouseleave=\\\\\\\"mouseleave\\\\\\\",t.mousemove=\\\\\\\"mousemove\\\\\\\",t.mouseover=\\\\\\\"mouseover\\\\\\\",t.mouseout=\\\\\\\"mouseout\\\\\\\",t.mouseup=\\\\\\\"mouseup\\\\\\\",t.pointerlockchange=\\\\\\\"pointerlockchange\\\\\\\",t.pointerlockerror=\\\\\\\"pointerlockerror\\\\\\\",t.select=\\\\\\\"select\\\\\\\",t.wheel=\\\\\\\"wheel\\\\\\\"}(ka||(ka={}));const Ua=[ka.auxclick,ka.click,ka.contextmenu,ka.dblclick,ka.mousedown,ka.mouseenter,ka.mouseleave,ka.mousemove,ka.mouseover,ka.mouseout,ka.mouseup,ka.pointerlockchange,ka.pointerlockerror,ka.select,ka.wheel];class Ga extends pi{constructor(){super(...arguments),this._require_canvas_event_listeners=!0}type(){return\\\\\\\"mouse\\\\\\\"}acceptedEventTypes(){return Ua.map((t=>`${t}`))}}class Va extends aa{constructor(){super(...arguments),this._cook_without_inputs_bound=this._cook_without_inputs.bind(this)}static context(){return ts.EVENT}initializeBaseNode(){this.uiData.setLayoutHorizontal(),this.addPostDirtyHook(\\\\\\\"cook_without_inputs_on_dirty\\\\\\\",this._cook_without_inputs_bound),this.io.inputs.set_depends_on_inputs(!1),this.io.connections.initInputs(),this.io.connection_points.spare_params.initializeNode()}_cook_without_inputs(){this.cookController.cookMainWithoutInputs()}cook(){this.cookController.endCook()}processEventViaConnectionPoint(t,e){e.event_listener?e.event_listener(t):this.processEvent(t)}processEvent(t){}async dispatchEventToOutput(t,e){this.run_on_dispatch_hook(t,e);const n=this.io.outputs.getOutputIndex(t);if(n>=0){const t=this.io.connections.outputConnections().filter((t=>t.output_index==n));let i;for(let n of t){i=n.node_dest;const t=i.io.inputs.namedInputConnectionPoints()[n.input_index];i.processEventViaConnectionPoint(e,t)}}else console.warn(`requested output '${t}' does not exist on node '${this.path()}'`)}onDispatch(t,e){this._on_dispatch_hooks_by_output_name=this._on_dispatch_hooks_by_output_name||new Map,h.pushOnArrayAtEntry(this._on_dispatch_hooks_by_output_name,t,e)}run_on_dispatch_hook(t,e){if(this._on_dispatch_hooks_by_output_name){const n=this._on_dispatch_hooks_by_output_name.get(t);if(n)for(let t of n)t(e)}}}var Ha;!function(t){t.CANVAS=\\\\\\\"canvas\\\\\\\",t.DOCUMENT=\\\\\\\"document\\\\\\\"}(Ha||(Ha={}));const ja=[Ha.CANVAS,Ha.DOCUMENT];class Wa{constructor(t){this.viewer=t,this._bound_listener_map_by_event_controller_type=new Map}updateEvents(t){const e=this.canvas();if(!e)return;const n=t.type();let i=this._bound_listener_map_by_event_controller_type.get(n);i||(i=new Map,this._bound_listener_map_by_event_controller_type.set(n,i)),i.forEach(((t,n)=>{this._eventOwner(t.data,e).removeEventListener(n,t.listener)})),i.clear();const s=e=>{this.processEvent(e,t)};for(let n of t.activeEventDatas()){this._eventOwner(n,e).addEventListener(n.type,s),i.set(n.type,{listener:s,data:n})}}_eventOwner(t,e){return\\\\\\\"resize\\\\\\\"==t.type?window:t.emitter==Ha.CANVAS?e:document}cameraNode(){return this.viewer.camerasController.cameraNode()}canvas(){return this.viewer.canvas()}init(){this.canvas&&this.viewer.scene().eventsDispatcher.traverseControllers((t=>{this.updateEvents(t)}))}registeredEventTypes(){const t=[];return this._bound_listener_map_by_event_controller_type.forEach((e=>{e.forEach(((e,n)=>{t.push(n)}))})),t}dispose(){const t=this.canvas();this._bound_listener_map_by_event_controller_type.forEach((e=>{t&&e.forEach(((e,n)=>{this._eventOwner(e.data,t).removeEventListener(n,e.listener)}))}))}processEvent(t,e){if(!this.canvas())return;const n={viewer:this.viewer,event:t,cameraNode:this.cameraNode()};e.processEvent(n)}}const qa={visibleIf:{active:1},callback:t=>{Ya.PARAM_CALLBACK_updateRegister(t)}};class Xa extends Va{constructor(){super(...arguments),this._activeEventDatas=[]}initializeBaseNode(){super.initializeBaseNode();this.lifecycle.add_on_add_hook((()=>{this.scene().eventsDispatcher.registerEventNode(this)})),this.lifecycle.add_delete_hook((()=>{this.scene().eventsDispatcher.unregisterEventNode(this)})),this.params.onParamsCreated(\\\\\\\"update_register\\\\\\\",(()=>{this._updateRegister()}))}processEvent(t){this.pv.active&&t.event&&this.dispatchEventToOutput(t.event.type,t)}static PARAM_CALLBACK_updateRegister(t){t._updateRegister()}_updateRegister(){this._updateActiveEventDatas(),this.scene().eventsDispatcher.updateViewerEventListeners(this)}_updateActiveEventDatas(){if(this._activeEventDatas=[],this.pv.active){const t=this.acceptedEventTypes();for(let e of t){const t=this.params.get(e);t&&t.value&&this._activeEventDatas.push({type:e,emitter:ja[this.pv.element]})}}}activeEventDatas(){return this._activeEventDatas}}class Ya extends Xa{acceptedEventTypes(){return[]}}const $a=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:t=>{Ja.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(ja.indexOf(Ha.CANVAS),{menu:{entries:ja.map(((t,e)=>({name:t,value:e})))},separatorAfter:!0}),this.auxclick=ha.BOOLEAN(0,qa),this.click=ha.BOOLEAN(0,qa),this.contextmenu=ha.BOOLEAN(0,qa),this.dblclick=ha.BOOLEAN(0,qa),this.mousedown=ha.BOOLEAN(1,qa),this.mouseenter=ha.BOOLEAN(0,qa),this.mouseleave=ha.BOOLEAN(0,qa),this.mousemove=ha.BOOLEAN(1,qa),this.mouseover=ha.BOOLEAN(0,qa),this.mouseout=ha.BOOLEAN(0,qa),this.mouseup=ha.BOOLEAN(1,qa),this.pointerlockchange=ha.BOOLEAN(0,qa),this.pointerlockerror=ha.BOOLEAN(0,qa),this.select=ha.BOOLEAN(0,qa),this.wheel=ha.BOOLEAN(0,qa),this.ctrlKey=ha.BOOLEAN(0,{...qa,separatorBefore:!0}),this.altKey=ha.BOOLEAN(0,qa),this.shiftKey=ha.BOOLEAN(0,qa),this.metaKey=ha.BOOLEAN(0,qa)}};class Ja extends Xa{constructor(){super(...arguments),this.paramsConfig=$a}static type(){return\\\\\\\"mouse\\\\\\\"}acceptedEventTypes(){return Ua.map((t=>`${t}`))}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(Ua.map((t=>new ta(t,Qo.MOUSE)))),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{const t=[this.p.auxclick,this.p.click,this.p.dblclick,this.p.mousedown,this.p.mouseenter,this.p.mouseleave,this.p.mousemove,this.p.mouseout,this.p.mouseout,this.p.mouseup,this.p.pointerlockchange,this.p.pointerlockerror,this.p.select,this.p.wheel];this.params.label.init(t,(()=>t.map((t=>t.value?t.name():void 0)).filter((t=>t)).join(\\\\\\\", \\\\\\\")))}))}))}processEvent(t){if(!this.pv.active)return;if(!t.event)return;const e=t.event;e.ctrlKey==this.pv.ctrlKey&&e.shiftKey==this.pv.shiftKey&&e.altKey==this.pv.altKey&&e.metaKey==this.pv.metaKey&&this.dispatchEventToOutput(t.event.type,t)}}var Za;!function(t){t.pointerdown=\\\\\\\"pointerdown\\\\\\\",t.pointermove=\\\\\\\"pointermove\\\\\\\",t.pointerup=\\\\\\\"pointerup\\\\\\\"}(Za||(Za={}));const Ka=[Za.pointerdown,Za.pointermove,Za.pointerup];class Qa extends pi{constructor(){super(...arguments),this._require_canvas_event_listeners=!0}type(){return\\\\\\\"pointer\\\\\\\"}acceptedEventTypes(){return Ka.map((t=>`${t}`))}}const tl=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:t=>{el.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(ja.indexOf(Ha.CANVAS),{menu:{entries:ja.map(((t,e)=>({name:t,value:e})))},separatorAfter:!0}),this.pointerdown=ha.BOOLEAN(1,qa),this.pointermove=ha.BOOLEAN(0,qa),this.pointerup=ha.BOOLEAN(0,qa),this.ctrlKey=ha.BOOLEAN(0,{...qa,separatorBefore:!0}),this.altKey=ha.BOOLEAN(0,qa),this.shiftKey=ha.BOOLEAN(0,qa),this.metaKey=ha.BOOLEAN(0,qa)}};class el extends Xa{constructor(){super(...arguments),this.paramsConfig=tl}static type(){return\\\\\\\"pointer\\\\\\\"}acceptedEventTypes(){return Ka.map((t=>`${t}`))}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(Ka.map((t=>new ta(t,Qo.POINTER)))),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{const t=[this.p.pointerdown,this.p.pointermove,this.p.pointerup];this.params.label.init(t,(()=>t.map((t=>t.value?t.name():void 0)).filter((t=>t)).join(\\\\\\\", \\\\\\\")))}))}))}processEvent(t){if(!this.pv.active)return;if(!t.event)return;const e=t.event;e.ctrlKey==this.pv.ctrlKey&&e.shiftKey==this.pv.shiftKey&&e.altKey==this.pv.altKey&&e.metaKey==this.pv.metaKey&&this.dispatchEventToOutput(t.event.type,t)}}var nl,il;!function(t){t.SET_FRAME=\\\\\\\"setFrame\\\\\\\"}(nl||(nl={})),function(t){t.TIME_REACHED=\\\\\\\"timeReached\\\\\\\"}(il||(il={}));const sl=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:(t,e)=>{rl.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(0,{hidden:!0}),this.sceneLoaded=ha.BOOLEAN(1,qa),this.play=ha.BOOLEAN(1,qa),this.pause=ha.BOOLEAN(1,qa),this.tick=ha.BOOLEAN(1,{separatorAfter:!0,...qa}),this.treachedTime=ha.BOOLEAN(0,{callback:t=>{rl.PARAM_CALLBACK_update_time_dependency(t)}}),this.reachedTime=ha.INTEGER(10,{visibleIf:{treachedTime:1},range:[0,100],separatorAfter:!0}),this.setFrameValue=ha.INTEGER(1,{range:[0,100]}),this.setFrame=ha.BUTTON(null,{callback:t=>{rl.PARAM_CALLBACK_setFrame(t)}})}};class rl extends Xa{constructor(){super(...arguments),this.paramsConfig=sl}static type(){return\\\\\\\"scene\\\\\\\"}acceptedEventTypes(){return mi.map((t=>`${t}`))}dispose(){var t;null===(t=this.graph_node)||void 0===t||t.dispose(),super.dispose()}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(nl.SET_FRAME,Qo.BASE,this._onSetFrame.bind(this)),new ta(_i.PLAY,Qo.BASE,this._play.bind(this)),new ta(_i.PAUSE,Qo.BASE,this._pause.bind(this))]);const t=mi.map((t=>new ta(t,Qo.BASE)));t.push(new ta(il.TIME_REACHED,Qo.BASE)),this.io.outputs.setNamedOutputConnectionPoints(t),this.params.onParamsCreated(\\\\\\\"update_time_dependency\\\\\\\",(()=>{this.update_time_dependency()}))}_onSetFrame(t){this.scene().setFrame(this.pv.setFrameValue)}_play(t){this.scene().play()}_pause(t){this.scene().pause()}_onFrameUpdate(){this.scene().time()>=this.pv.reachedTime&&this.dispatchEventToOutput(il.TIME_REACHED,{})}update_time_dependency(){this.pv.treachedTime?(this.graph_node=this.graph_node||new Mi(this.scene(),\\\\\\\"scene_node_time_graph_node\\\\\\\"),this.graph_node.addGraphInput(this.scene().timeController.graphNode),this.graph_node.addPostDirtyHook(\\\\\\\"time_update\\\\\\\",this._onFrameUpdate.bind(this))):this.graph_node&&this.graph_node.graphDisconnectPredecessors()}static PARAM_CALLBACK_setFrame(t){t._onSetFrame({})}static PARAM_CALLBACK_update_time_dependency(t){t.update_time_dependency()}}var ol;!function(t){t.keydown=\\\\\\\"keydown\\\\\\\",t.keypress=\\\\\\\"keypress\\\\\\\",t.keyup=\\\\\\\"keyup\\\\\\\"}(ol||(ol={}));const al=[ol.keydown,ol.keypress,ol.keyup];class ll extends pi{constructor(){super(...arguments),this._require_canvas_event_listeners=!0}type(){return\\\\\\\"keyboard\\\\\\\"}acceptedEventTypes(){return al.map((t=>`${t}`))}}const cl=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:(t,e)=>{hl.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(ja.indexOf(Ha.CANVAS),{menu:{entries:ja.map(((t,e)=>({name:t,value:e})))},separatorAfter:!0}),this.keydown=ha.BOOLEAN(1,qa),this.keypress=ha.BOOLEAN(0,qa),this.keyup=ha.BOOLEAN(0,qa),this.keyCodes=ha.STRING(\\\\\\\"Digit1 KeyE ArrowDown\\\\\\\",qa),this.ctrlKey=ha.BOOLEAN(0,qa),this.altKey=ha.BOOLEAN(0,qa),this.shiftKey=ha.BOOLEAN(0,qa),this.metaKey=ha.BOOLEAN(0,qa)}};class hl extends Xa{constructor(){super(...arguments),this.paramsConfig=cl}static type(){return\\\\\\\"keyboard\\\\\\\"}acceptedEventTypes(){return al.map((t=>`${t}`))}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(al.map((t=>new ta(t,Qo.KEYBOARD)))),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{const t=[this.p.keydown,this.p.keypress,this.p.keyup];this.params.label.init(t.concat([this.p.keyCodes]),(()=>`${t.map((t=>t.value?t.name():void 0)).filter((t=>t)).join(\\\\\\\", \\\\\\\")} (${this.pv.keyCodes})`))}))}))}processEvent(t){if(!this.pv.active)return;if(!t.event)return;const e=t.event;if(e.ctrlKey!=this.pv.ctrlKey)return;if(e.shiftKey!=this.pv.shiftKey)return;if(e.altKey!=this.pv.altKey)return;if(e.metaKey!=this.pv.metaKey)return;if(this.pv.keyCodes.trim().length>0){if(!this.pv.keyCodes.split(\\\\\\\" \\\\\\\").includes(e.code))return}this.dispatchEventToOutput(t.event.type,t)}}var ul;!function(t){t.resize=\\\\\\\"resize\\\\\\\"}(ul||(ul={}));const dl=[ul.resize];class pl extends pi{constructor(){super(...arguments),this._require_canvas_event_listeners=!0}type(){return\\\\\\\"window\\\\\\\"}acceptedEventTypes(){return dl.map((t=>`${t}`))}}const _l=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:t=>{ml.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(0,{hidden:!0}),this.resize=ha.BOOLEAN(1,qa)}};class ml extends Xa{constructor(){super(...arguments),this.paramsConfig=_l}static type(){return\\\\\\\"window\\\\\\\"}acceptedEventTypes(){return dl.map((t=>`${t}`))}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(dl.map((t=>new ta(t,Qo.POINTER)))),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{const t=[this.p.resize];this.params.label.init(t,(()=>t.map((t=>t.value?t.name():void 0)).filter((t=>t)).join(\\\\\\\", \\\\\\\")))}))}))}processEvent(t){this.pv.active&&t.event&&this.dispatchEventToOutput(t.event.type,t)}}var fl;!function(t){t.dragover=\\\\\\\"dragover\\\\\\\"}(fl||(fl={}));const gl=[fl.dragover];class vl extends pi{constructor(){super(...arguments),this._require_canvas_event_listeners=!0}type(){return\\\\\\\"drag\\\\\\\"}acceptedEventTypes(){return gl.map((t=>`${t}`))}}var yl;!function(t){t.touchstart=\\\\\\\"touchstart\\\\\\\",t.touchmove=\\\\\\\"touchmove\\\\\\\",t.touchend=\\\\\\\"touchend\\\\\\\"}(yl||(yl={}));const xl=[yl.touchstart,yl.touchmove,yl.touchend];class bl extends pi{constructor(){super(...arguments),this._require_canvas_event_listeners=!0}type(){return\\\\\\\"touch\\\\\\\"}acceptedEventTypes(){return xl.map((t=>`${t}`))}}const wl=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:t=>{Tl.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(ja.indexOf(Ha.CANVAS),{menu:{entries:ja.map(((t,e)=>({name:t,value:e})))},separatorAfter:!0}),this.dragover=ha.BOOLEAN(1,qa),this.ctrlKey=ha.BOOLEAN(0,{...qa,separatorBefore:!0}),this.altKey=ha.BOOLEAN(0,qa),this.shiftKey=ha.BOOLEAN(0,qa),this.metaKey=ha.BOOLEAN(0,qa)}};class Tl extends Xa{constructor(){super(...arguments),this.paramsConfig=wl}static type(){return\\\\\\\"drag\\\\\\\"}acceptedEventTypes(){return gl.map((t=>`${t}`))}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(gl.map((t=>new ta(t,Qo.DRAG)))),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{const t=[this.p.dragover];this.params.label.init(t,(()=>t.map((t=>t.value?t.name():void 0)).filter((t=>t)).join(\\\\\\\", \\\\\\\")))}))}))}processEvent(t){if(!this.pv.active)return;if(!t.event)return;const e=t.event;e.ctrlKey==this.pv.ctrlKey&&e.shiftKey==this.pv.shiftKey&&e.altKey==this.pv.altKey&&e.metaKey==this.pv.metaKey&&this.dispatchEventToOutput(t.event.type,t)}}const Al=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(!0,{callback:t=>{Ml.PARAM_CALLBACK_updateRegister(t)},separatorAfter:!0}),this.element=ha.INTEGER(ja.indexOf(Ha.CANVAS),{menu:{entries:ja.map(((t,e)=>({name:t,value:e})))},separatorAfter:!0}),this.touchstart=ha.BOOLEAN(1,qa),this.touchmove=ha.BOOLEAN(0,qa),this.touchend=ha.BOOLEAN(0,qa)}};class Ml extends Xa{constructor(){super(...arguments),this.paramsConfig=Al}static type(){return\\\\\\\"touch\\\\\\\"}acceptedEventTypes(){return xl.map((t=>`${t}`))}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(xl.map((t=>new ta(t,Qo.DRAG)))),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{const t=[this.p.touchstart,this.p.touchmove,this.p.touchend];this.params.label.init(t,(()=>t.map((t=>t.value?t.name():void 0)).filter((t=>t)).join(\\\\\\\", \\\\\\\")))}))}))}processEvent(t){this.pv.active&&t.event&&this.dispatchEventToOutput(t.event.type,t)}}class El{constructor(t){this.scene=t,this._controllers=[]}registerEventNode(t){const e=this._find_or_create_controller_for_node(t);e&&e.registerNode(t)}unregisterEventNode(t){const e=this._find_or_create_controller_for_node(t);e&&e.unregisterNode(t)}updateViewerEventListeners(t){const e=this._find_or_create_controller_for_node(t);e&&e.updateViewerEventListeners()}traverseControllers(t){for(let e of this._controllers)t(e)}_find_or_create_controller_for_node(t){switch(t.type()){case hl.type():return this.keyboardEventsController;case Ja.type():return this.mouseEventsController;case Tl.type():return this.dragEventsController;case el.type():return this.pointerEventsController;case rl.type():return this.sceneEventsController;case Ml.type():return this.touchEventsController;case ml.type():return this.windowEventsController}}get keyboardEventsController(){return this._keyboard_events_controller=this._keyboard_events_controller||this._create_controller(ll)}get mouseEventsController(){return this._mouse_events_controller=this._mouse_events_controller||this._create_controller(Ga)}get dragEventsController(){return this._drag_events_controller=this._drag_events_controller||this._create_controller(vl)}get pointerEventsController(){return this._pointer_events_controller=this._pointer_events_controller||this._create_controller(Qa)}get sceneEventsController(){return this._scene_events_controller=this._scene_events_controller||this._create_controller(fi)}get windowEventsController(){return this._window_events_controller=this._window_events_controller||this._create_controller(pl)}get touchEventsController(){return this._touch_events_controller=this._touch_events_controller||this._create_controller(bl)}_create_controller(t){const e=new t(this);return this._controllers.includes(e)||this._controllers.push(e),e}}class Sl{constructor(t){this.scene=t,this._referenced_nodes_by_src_param_id=new Map,this._referencing_params_by_referenced_node_id=new Map,this._referencing_params_by_all_named_node_ids=new Map}setReferenceFromParam(t,e){this._referenced_nodes_by_src_param_id.set(t.graphNodeId(),e),h.pushOnArrayAtEntry(this._referencing_params_by_referenced_node_id,e.graphNodeId(),t)}setNamedNodesFromParam(t){const e=t.decomposed_path.named_nodes();for(let n of e)h.pushOnArrayAtEntry(this._referencing_params_by_all_named_node_ids,n.graphNodeId(),t)}resetReferenceFromParam(t){const e=this._referenced_nodes_by_src_param_id.get(t.graphNodeId());if(e){h.popFromArrayAtEntry(this._referencing_params_by_referenced_node_id,e.graphNodeId(),t);const n=t.decomposed_path.named_nodes();for(let e of n)h.popFromArrayAtEntry(this._referencing_params_by_all_named_node_ids,e.graphNodeId(),t);this._referenced_nodes_by_src_param_id.delete(t.graphNodeId())}}referencing_params(t){return this._referencing_params_by_referenced_node_id.get(t.graphNodeId())}referencing_nodes(t){const e=this._referencing_params_by_referenced_node_id.get(t.graphNodeId());if(e){const t=new Map;for(let n of e){const e=n.node;t.set(e.graphNodeId(),e)}const n=[];return t.forEach((t=>{n.push(t)})),n}}nodes_referenced_by(t){const e=new Set([Cr.OPERATOR_PATH,Cr.NODE_PATH]),n=[];for(let i of t.params.all)e.has(i.type())&&n.push(i);const i=new Map,s=[];for(let t of n)this._check_param(t,i,s);for(let t of s)i.set(t.node.graphNodeId(),t.node);const r=[];return i.forEach((t=>{r.push(t)})),r}_check_param(t,e,n){if(t instanceof fo){const i=t.found_node(),s=t.found_param();return i&&e.set(i.graphNodeId(),i),void(s&&n.push(s))}}notifyNameUpdated(t){const e=this._referencing_params_by_all_named_node_ids.get(t.graphNodeId());if(e){const n=f.shallowClone(e);for(let e of n)e.notifyPathRebuildRequired(t)}}notifyParamsUpdated(t){const e=this._referencing_params_by_all_named_node_ids.get(t.graphNodeId());if(e){const n=f.shallowClone(e);for(let e of n)e.options.isSelectingParam()&&e.notifyTargetParamOwnerParamsUpdated(t)}}}var Cl;!function(t){t.MAX_FRAME_UPDATED=\\\\\\\"scene_maxFrameUpdated\\\\\\\",t.REALTIME_STATUS_UPDATED=\\\\\\\"scene_realtime_status_updated\\\\\\\",t.FRAME_UPDATED=\\\\\\\"scene_frame_updated\\\\\\\",t.PLAY_STATE_UPDATED=\\\\\\\"scene_play_state_updated\\\\\\\"}(Cl||(Cl={}));class Nl{constructor(t){this.scene=t,this._frame=0,this._time=0,this._realtimeState=!0,this._maxFrame=600,this._maxFrameLocked=!1,this._playing=!1,this._delta=0,this._graph_node=new Mi(t,\\\\\\\"time controller\\\\\\\")}get PLAY_EVENT_CONTEXT(){return this._PLAY_EVENT_CONTEXT=this._PLAY_EVENT_CONTEXT||{event:new Event(_i.PLAY)}}get PAUSE_EVENT_CONTEXT(){return this._PAUSE_EVENT_CONTEXT=this._PAUSE_EVENT_CONTEXT||{event:new Event(_i.PAUSE)}}get TICK_EVENT_CONTEXT(){return this._TICK_EVENT_CONTEXT=this._TICK_EVENT_CONTEXT||{event:new Event(_i.TICK)}}get graphNode(){return this._graph_node}frame(){return this._frame}time(){return this._time}maxFrame(){return this._maxFrame}maxFrameLocked(){return this._maxFrameLocked}realtimeState(){return this._realtimeState}setMaxFrame(t){this._maxFrame=Math.floor(t),this.scene.dispatchController.dispatch(this._graph_node,Cl.MAX_FRAME_UPDATED)}setMaxFrameLocked(t){this._maxFrameLocked=t,this.scene.dispatchController.dispatch(this._graph_node,Cl.MAX_FRAME_UPDATED)}setRealtimeState(t){this._realtimeState=t,this.scene.dispatchController.dispatch(this._graph_node,Cl.REALTIME_STATUS_UPDATED)}setTime(t,e=!0){var n,i;if(t!=this._time){if(this._time=t,null===(n=this._onBeforeTickCallbacks)||void 0===n||n.forEach((t=>t(this._delta))),e){const t=Math.floor(60*this._time),e=this._ensureFrameWithinBounds(t);t!=e?this.setFrame(e,!0):this._frame=t}this.scene.dispatchController.dispatch(this._graph_node,Cl.FRAME_UPDATED),this.scene.uniformsController.updateTimeDependentUniformOwners(),this.scene.cooker.block(),this.graphNode.setSuccessorsDirty(),this.scene.cooker.unblock(),this.scene.eventsDispatcher.sceneEventsController.processEvent(this.TICK_EVENT_CONTEXT),null===(i=this._onAfterTickCallbacks)||void 0===i||i.forEach((t=>t(this._delta)))}}setFrame(t,e=!0){t!=this._frame&&(t=this._ensureFrameWithinBounds(t))!=this._frame&&(this._frame=t,e&&this.setTime(this._frame/60,!1))}setFrameToStart(){this.setFrame(Nl.START_FRAME,!0)}incrementTimeIfPlaying(t){this._playing&&(this.scene.root().areChildrenCooking()||this.incrementTime(t))}incrementTime(t){if(this._realtimeState){this._delta=t;const e=this._time+this._delta;this.setTime(e)}else this.setFrame(this.frame()+1)}_ensureFrameWithinBounds(t){if(this._playing){if(this._maxFrameLocked&&t>this._maxFrame)return Nl.START_FRAME}else{if(this._maxFrameLocked&&t>this._maxFrame)return this._maxFrame;if(t<Nl.START_FRAME)return Nl.START_FRAME}return t}playing(){return!0===this._playing}pause(){1==this._playing&&(this._playing=!1,this.scene.dispatchController.dispatch(this._graph_node,Cl.PLAY_STATE_UPDATED),this.scene.eventsDispatcher.sceneEventsController.processEvent(this.PAUSE_EVENT_CONTEXT))}play(){!0!==this._playing&&(this._playing=!0,this.scene.dispatchController.dispatch(this._graph_node,Cl.PLAY_STATE_UPDATED),this.scene.eventsDispatcher.sceneEventsController.processEvent(this.PLAY_EVENT_CONTEXT))}togglePlayPause(){this.playing()?this.pause():this.play()}registerOnBeforeTick(t,e){this._registerCallback(t,e,this.registeredBeforeTickCallbacks())}unRegisterOnBeforeTick(t){this._unregisterCallback(t,this._onBeforeTickCallbacks)}registeredBeforeTickCallbacks(){return this._onBeforeTickCallbacks=this._onBeforeTickCallbacks||new Map}registerOnAfterTick(t,e){this._registerCallback(t,e,this.registeredAfterTickCallbacks())}unRegisterOnAfterTick(t){this._unregisterCallback(t,this._onAfterTickCallbacks)}registeredAfterTickCallbacks(){return this._onAfterTickCallbacks=this._onAfterTickCallbacks||new Map}_registerCallback(t,e,n){n.has(t)?console.warn(`callback ${t} already registered`):n.set(t,e)}_unregisterCallback(t,e){e&&e.delete(t)}}Nl.START_FRAME=0;class Ll{constructor(t){this.scene=t,this._time_dependent_uniform_owners={},this._time_dependent_uniform_owners_ids=null,this._resolution=new d.a(1,1),this._resolution_dependent_uniform_owners={},this._resolution_dependent_uniform_owners_ids=[]}addTimeDependentUniformOwner(t,e){this._time_dependent_uniform_owners[t]=e,this._time_dependent_uniform_owners_ids||(this._time_dependent_uniform_owners_ids=[]),this._time_dependent_uniform_owners_ids.includes(t)||this._time_dependent_uniform_owners_ids.push(t)}removeTimeDependentUniformOwner(t){if(delete this._time_dependent_uniform_owners[t],this._time_dependent_uniform_owners_ids){const e=this._time_dependent_uniform_owners_ids.indexOf(t);e>=0&&this._time_dependent_uniform_owners_ids.splice(e,1)}}updateTimeDependentUniformOwners(){const t=this.scene.time();if(this._time_dependent_uniform_owners_ids)for(let e of this._time_dependent_uniform_owners_ids){this._time_dependent_uniform_owners[e].time.value=t}}addResolutionDependentUniformOwner(t,e){this._resolution_dependent_uniform_owners[t]=e,this._resolution_dependent_uniform_owners_ids||(this._resolution_dependent_uniform_owners_ids=[]),this._resolution_dependent_uniform_owners_ids.includes(t)||this._resolution_dependent_uniform_owners_ids.push(t),this._resolution&&this.updateResolutionDependentUniforms(e)}removeResolutionDependentUniformOwner(t){if(delete this._resolution_dependent_uniform_owners[t],this._resolution_dependent_uniform_owners_ids){const e=this._resolution_dependent_uniform_owners_ids.indexOf(t);e>=0&&this._resolution_dependent_uniform_owners_ids.splice(e,1)}}updateResolutionDependentUniformOwners(t){this._resolution.copy(t);for(let t of this._resolution_dependent_uniform_owners_ids){const e=this._resolution_dependent_uniform_owners[t];this.updateResolutionDependentUniforms(e)}}updateResolutionDependentUniforms(t){t.resolution.value.x=this._resolution.x,t.resolution.value.y=this._resolution.y}}class Ol{constructor(t){this.scene=t,this._viewers_by_id=new Map}registerViewer(t){this._viewers_by_id.set(t.id(),t)}unregisterViewer(t){this._viewers_by_id.delete(t.id())}traverseViewers(t){this._viewers_by_id.forEach(t)}}class Pl{constructor(){this._require_webgl2=!1}require_webgl2(){return this._require_webgl2}set_require_webgl2(){this._require_webgl2||(this._require_webgl2=!0,li.renderersController.setRequireWebGL2())}}class Rl{constructor(t){this._scene=t,this._onWindowResizeBound=this._onWindowResize.bind(this)}graphNode(){return this._coreGraphNode=this._coreGraphNode||this._createGraphNode()}_createGraphNode(){const t=new Mi(this._scene,\\\\\\\"SceneWindowController\\\\\\\");return window.addEventListener(\\\\\\\"resize\\\\\\\",this._onWindowResizeBound),t}_onWindowResize(){this.graphNode().setSuccessorsDirty()}dispose(){window.removeEventListener(\\\\\\\"resize\\\\\\\",this._onWindowResizeBound)}}class Il{constructor(){this._params_by_id=new Map,this._assets_root=null}register_param(t){this._params_by_id.set(t.graphNodeId(),t)}deregister_param(t){this._params_by_id.delete(t.graphNodeId())}traverse_params(t){this._params_by_id.forEach(((e,n)=>{t(e)}))}root(){return this._assets_root}setRoot(t){\\\\\\\"\\\\\\\"==t&&(t=null),this._assets_root=t}}class Fl{constructor(){this._cameras_controller=new r(this),this._cooker=new o(this),this.cookController=new a,this._graph=new l,this._missing_expression_references_controller=new Ti(this),this._expressions_controller=new ui,this._nodes_controller=new Ba(this),this._objects_controller=new da(this),this._references_controller=new Sl(this),this._time_controller=new Nl(this),this._read_only=!1,this._graph.setScene(this),this.nodesController.init()}threejsScene(){return this.root().object}setUuid(t){return this._uuid=t}get uuid(){return this._uuid}setName(t){return t=ss.sanitizeName(t),this._name=t}name(){return this._name}get camerasController(){return this._cameras_controller}mainCameraNode(){return this.camerasController.mainCameraNode()}get cooker(){return this._cooker}get assets(){return this._assets_controller=this._assets_controller||new Il}async waitForCooksCompleted(){return this.cookController.waitForCooksCompleted()}get dispatchController(){return this._dispatch_controller=this._dispatch_controller||new hi(this)}get eventsDispatcher(){return this._events_dispatcher=this._events_dispatcher||new El(this)}get graph(){return this._graph}get lifecycleController(){return this._lifecycle_controller=this._lifecycle_controller||new di(this)}get loadingController(){return this._loading_controller=this._loading_controller||new gi(this)}get missingExpressionReferencesController(){return this._missing_expression_references_controller}get expressionsController(){return this._expressions_controller}get nodesController(){return this._nodes_controller}createNode(t,e){return this.root().createNode(t,e)}nodesByType(t){return this.nodesController.nodesByType(t)}get objectsController(){return this._objects_controller}findObjectByMask(t){return this._objects_controller.findObjectByMask(t)}objectsByMask(t){return this._objects_controller.objectsByMask(t)}get referencesController(){return this._references_controller}get performance(){return this._performance=this._performance||new ci}get viewersRegister(){return this._viewers_register=this._viewers_register||new Ol(this)}get timeController(){return this._time_controller}setFrame(t){this.timeController.setFrame(t)}setFrameToStart(){this.timeController.setFrameToStart()}frame(){return this.timeController.frame()}time(){return this.timeController.time()}maxFrame(){return this.timeController.maxFrame()}play(){this.timeController.play()}pause(){this.timeController.pause()}get serializer(){return this._serializer=this._serializer||new za(this)}toJSON(){return this.serializer.toJSON()}markAsReadOnly(t){this._read_only||(this._read_only_requester=t,this._read_only=!0)}readOnly(){return this._read_only}readOnlyRequester(){return this._read_only_requester}get uniformsController(){return this._uniformsController=this._uniformsController||new Ll(this)}get webgl_controller(){return this._webgl_controller=this._webgl_controller||new Pl}get windowController(){return this._windowController=this._windowController||new Rl(this)}dispose(){var t;null===(t=this._windowController)||void 0===t||t.dispose()}batchUpdates(t){this._cooker.block(),t(),this._cooker.unblock()}node(t){return this.nodesController.node(t)}root(){return this.nodesController.root()}registerOnBeforeTick(t,e){this.timeController.registerOnBeforeTick(t,e)}unRegisterOnBeforeTick(t){this.timeController.unRegisterOnBeforeTick(t)}registeredBeforeTickCallbacks(){return this.timeController.registeredBeforeTickCallbacks()}registerOnAfterTick(t,e){this.timeController.registerOnAfterTick(t,e)}unRegisterOnAfterTick(t){this.timeController.unRegisterOnAfterTick(t)}registeredAfterTickCallbacks(){return this.timeController.registeredAfterTickCallbacks()}}class Dl{constructor(t){this._param=t}process_data(t){const e=t.raw_input;void 0!==e&&this._param.set(e),this.add_main(t)}add_main(t){}static spare_params_data(t){return this.params_data(!0,t)}static non_spare_params_data_value(t){return this.params_data_value(!1,t)}static params_data(t,e){let n;if(e){n={};const t=Object.keys(e);let i;for(let s of t)i=e[s],i&&(n[s]=e)}return n}static params_data_value(t,e){let n;if(e){n={};const i=Object.keys(e);let s;for(let r of i)if(s=e[r],null!=s){const e=s.options,i=s.overriden_options;if(e||i){const o=s;e&&e.spare==t?null!=o.raw_input&&(n[r]={complex_data:o}):i&&(n[r]={complex_data:o})}else{const t=s;(i||null!=t)&&(n[r]={simple_data:t})}}}return n}}const Bl=\\\\\\\"operationsComposer\\\\\\\";class zl{constructor(t,e,n){this._scene=t,this.states=e,this._node=n}static type(){throw\\\\\\\"type to be overriden\\\\\\\"}type(){return this.constructor.type()}static context(){throw console.error(\\\\\\\"operation has no node_context\\\\\\\",this),\\\\\\\"context requires override\\\\\\\"}context(){return this.constructor.context()}scene(){return this._scene}cook(t,e){}}zl.DEFAULT_PARAMS={},zl.INPUT_CLONED_STATE=[];class kl{constructor(t){this._node=t,this._nodes=[],this._optimized_root_node_names=new Set,this._operation_containers_by_name=new Map,this._node_inputs=[]}nodes(){return this._nodes}process_data(t,e){var n,i,s;if(!e)return;if(!this._node.childrenAllowed()||!this._node.childrenController)return;const{optimized_names:r}=kl.child_names_by_optimized_state(e);this._nodes=[],this._optimized_root_node_names=new Set;for(let t of r)kl.is_optimized_root_node(e,t)&&this._optimized_root_node_names.add(t);for(let r of this._optimized_root_node_names){const o=e[r],a=this._node.createNode(Bl);if(a){a.setName(r),this._nodes.push(a),(null===(n=o.flags)||void 0===n?void 0:n.display)&&(null===(s=null===(i=a.flags)||void 0===i?void 0:i.display)||void 0===s||s.set(!0));const e=this._create_operation_container(t,a,o,a.name());a.set_output_operation_container(e)}}for(let n of this._nodes){const i=n.output_operation_container();if(i){this._node_inputs=[],this._add_optimized_node_inputs(t,n,e,n.name(),i),n.io.inputs.setCount(this._node_inputs.length);for(let t=0;t<this._node_inputs.length;t++)n.setInput(t,this._node_inputs[t])}}}_add_optimized_node_inputs(t,e,n,i,s){var r;const o=n[i],a=o.inputs;if(a){for(let i of a)if(m.isString(i)){const o=n[i];if(o)if(kl.is_node_optimized(o)&&!this._optimized_root_node_names.has(i)){let r=this._operation_containers_by_name.get(i);r||(r=this._create_operation_container(t,e,o,i),r&&this._add_optimized_node_inputs(t,e,n,i,r)),s.add_input(r)}else{const t=null===(r=e.parent())||void 0===r?void 0:r.node(i);if(t){this._node_inputs.push(t);const n=this._node_inputs.length-1;e.add_input_config(s,{operation_input_index:s.current_input_index(),node_input_index:n}),s.increment_input_index()}}}1==o.cloned_state_overriden&&s.override_input_clone_state(o.cloned_state_overriden)}}static child_names_by_optimized_state(t){const e=Object.keys(t),n=[],i=[];for(let s of e){const e=t[s];li.playerMode()&&this.is_node_optimized(e)?n.push(s):i.push(s)}return{optimized_names:n,non_optimized_names:i}}static is_optimized_root_node_generic(t){return 0==t.outputs_count||t.non_optimized_count>0}static is_optimized_root_node(t,e){const n=this.node_outputs(t,e);let i=0;return n.forEach((e=>{const n=t[e];this.is_node_optimized(n)||i++})),this.is_optimized_root_node_generic({outputs_count:n.size,non_optimized_count:i})}static is_optimized_root_node_from_node(t){var e,n,i,s;if(!(null===(n=null===(e=t.flags)||void 0===e?void 0:e.optimize)||void 0===n?void 0:n.active()))return!1;const r=t.io.connections.outputConnections().map((t=>t.node_dest));let o=0;for(let t of r)(null===(s=null===(i=t.flags)||void 0===i?void 0:i.optimize)||void 0===s?void 0:s.active())||o++;return this.is_optimized_root_node_generic({outputs_count:r.length,non_optimized_count:o})}static node_outputs(t,e){const n=Object.keys(t),i=new Set;for(let s of n)if(s!=e){const n=t[s].inputs;if(n)for(let t of n)if(m.isString(t)){t==e&&i.add(s)}}return i}_create_operation_container(t,e,n,i){const s=Dl.non_spare_params_data_value(n.params),r=kl.operation_type(n),o=this._node.create_operation_container(r,i,s);return o&&(this._operation_containers_by_name.set(i,o),o.path_param_resolve_required()&&(e.add_operation_container_with_path_param_resolve_required(o),t.add_operations_composer_node_with_path_param_resolve_required(e))),o}static operation_type(t){return kl.is_node_bypassed(t)?\\\\\\\"null\\\\\\\":t.type}static is_node_optimized(t){const e=t.flags;return!(!e||!e.optimize)}static is_node_bypassed(t){const e=t.flags;return!(!e||!e.bypass)}}class Ul{constructor(t){this._node=t}process_data(t,e){var n;if(!e)return;if(!this._node.childrenAllowed()||!this._node.childrenController)return;const{optimized_names:i,non_optimized_names:s}=kl.child_names_by_optimized_state(e),r=[];for(let n of s){const i=e[n],s=i.type.toLowerCase(),o=Dl.non_spare_params_data_value(i.params);try{const t=this._node.createNode(s,o);t&&(t.setName(n),r.push(t))}catch(e){console.error(`error importing node: cannot create with type ${s}`,e);const i=ss.camelCase(s);try{const t=this._node.createNode(i,o);t&&(t.setName(n),r.push(t))}catch(e){const a=`${s}Network`;try{const t=this._node.createNode(a,o);t&&(t.setName(n),r.push(t))}catch(e){const n=`failed to create node with type '${s}', '${i}' or '${a}'`;t.report.addWarning(n),li.warn(n,e)}}}}if(i.length>0){const i=new kl(this._node);if(i.process_data(t,e),this._node.childrenController.context==ts.SOP){const t=Object.keys(e);let s;for(let i of t){(null===(n=e[i].flags)||void 0===n?void 0:n.display)&&(s=i)}if(s){const t=r.map((t=>t.name())),e=i.nodes();for(let n of e)t.push(n.name());if(!t.includes(s)){const t=`node '${`${this._node.path()}/${s}`}' with display flag has been optimized and does not exist in player mode`;console.error(t)}}}}const o=new Map;for(let n of r){if(e[n.name()]){const i=Yl.dispatch_node(n);o.set(n.name(),i),i.process_data(t,e[n.name()])}else li.warn(`possible import error for node ${n.name()}`)}for(let t of r){const n=o.get(t.name());n&&n.process_inputs_data(e[t.name()])}}}const Gl=[\\\\\\\"overriden_options\\\\\\\",\\\\\\\"type\\\\\\\"];class Vl{constructor(t){this._node=t}process_data(t,e){if(this.set_connection_points(e.connection_points),this._node.childrenAllowed()&&this.create_nodes(t,e.nodes),this.set_selection(e.selection),this._node.io.inputs.overrideClonedStateAllowed()){const t=e.cloned_state_overriden;t&&this._node.io.inputs.overrideClonedState(t)}this.set_flags(e),this.set_params(e.params),e.persisted_config&&this.set_persisted_config(e.persisted_config),this.from_data_custom(e)}process_inputs_data(t){const e=t.maxInputsCount;if(null!=e){const t=this._node.io.inputs.minCount();this._node.io.inputs.setCount(t,e)}this.setInputs(t.inputs)}process_ui_data(t,e){if(!e)return;if(li.playerMode())return;const n=this._node.uiData,i=e.pos;if(i){const t=(new d.a).fromArray(i);n.setPosition(t)}const s=e.comment;s&&n.setComment(s),this._node.childrenAllowed()&&this.process_nodes_ui_data(t,e.nodes)}create_nodes(t,e){if(!e)return;new Ul(this._node).process_data(t,e)}set_selection(t){if(this._node.childrenAllowed()&&this._node.childrenController&&t&&t.length>0){const e=[];t.forEach((t=>{const n=this._node.node(t);n&&e.push(n)})),this._node.childrenController.selection.set(e)}}set_flags(t){var e,n,i,s,r,o;const a=t.flags;if(a){const t=a.bypass;null!=t&&(null===(n=null===(e=this._node.flags)||void 0===e?void 0:e.bypass)||void 0===n||n.set(t));const l=a.display;null!=l&&(null===(s=null===(i=this._node.flags)||void 0===i?void 0:i.display)||void 0===s||s.set(l));const c=a.optimize;null!=c&&(null===(o=null===(r=this._node.flags)||void 0===r?void 0:r.optimize)||void 0===o||o.set(c))}}set_connection_points(t){t&&(t.in&&this._node.io.saved_connection_points_data.set_in(t.in),t.out&&this._node.io.saved_connection_points_data.set_out(t.out),this._node.io.has_connection_points_controller&&this._node.io.connection_points.update_signature_if_required())}setInputs(t){if(!t)return;let e;for(let n=0;n<t.length;n++)if(e=t[n],e&&this._node.parent())if(m.isString(e)){const t=e,i=this._node.nodeSibbling(t);this._node.setInput(n,i)}else{const t=this._node.nodeSibbling(e.node),n=e.index;this._node.setInput(n,t,e.output)}}process_nodes_ui_data(t,e){if(!e)return;if(li.playerMode())return;const n=Object.keys(e);for(let i of n){const n=this._node.node(i);if(n){const s=e[i];Yl.dispatch_node(n).process_ui_data(t,s)}}}set_params(t){if(!t)return;const e=Object.keys(t),n={};for(let i of e){const e=t[i],s=e.options;0;const r=e.type;let o,a=!1;this._node.params.has_param(i)&&(o=this._node.params.get(i),(o&&o.type()==r||null==r)&&(a=!0)),a?this._is_param_data_complex(e)?this._process_param_data_complex(i,e):this._process_param_data_simple(i,e):(n.namesToDelete=n.namesToDelete||[],n.namesToDelete.push(i),n.toAdd=n.toAdd||[],n.toAdd.push({name:i,type:r,init_value:e.default_value,raw_input:e.raw_input,options:s}))}const i=n.namesToDelete&&n.namesToDelete.length>0,s=n.toAdd&&n.toAdd.length>0;if(i||s){this._node.params.updateParams(n);for(let e of this._node.params.spare){const n=t[e.name()];!e.parent_param&&n&&(this._is_param_data_complex(n)?this._process_param_data_complex(e.name(),n):this._process_param_data_simple(e.name(),n))}}this._node.params.runOnSceneLoadHooks()}_process_param_data_simple(t,e){var n;null===(n=this._node.params.get(t))||void 0===n||n.set(e)}_process_param_data_complex(t,e){const n=this._node.params.get(t);n&&Yl.dispatch_param(n).process_data(e)}_is_param_data_complex(t){if(m.isString(t)||m.isNumber(t)||m.isArray(t)||m.isBoolean(t))return!1;if(m.isObject(t)){const e=Object.keys(t);for(let t of Gl)if(e.includes(t))return!0}return!1}set_persisted_config(t){this._node.persisted_config&&this._node.persisted_config.load(t)}from_data_custom(t){}}class Hl extends Dl{add_main(t){}}const jl=/\\\\\\\\n+/g;class Wl extends Dl{add_main(t){let e=t.raw_input;void 0!==e&&(e=e.replace(jl,\\\\\\\"\\\\n\\\\\\\"),this._param.set(e))}}class ql extends Dl{add_main(t){const e=t.raw_input;e&&this._param.set(e)}}class Xl extends Vl{create_nodes(t,e){const n=this._node.polyNodeController;n&&n.createChildNodesFromDefinition()}}class Yl{static dispatch_node(t){return t.polyNodeController?new Xl(t):new Vl(t)}static dispatch_param(t){return t instanceof ao?new Hl(t):t instanceof Mo?new Wl(t):t instanceof Ao?new ql(t):new Dl(t)}}class $l{constructor(t){this._warnings=[]}warnings(){return this._warnings}reset(){this._warnings=[]}addWarning(t){this._warnings.push(t)}}class Jl{constructor(t){this._data=t,this.report=new $l(this)}static async loadData(t){const e=new Jl(t);return await e.scene()}async scene(){const t=new Fl;t.loadingController.markAsLoading();const e=this._data.properties;if(e){const n=e.maxFrame||600;t.timeController.setMaxFrame(n);const i=e.maxFrameLocked;i&&t.timeController.setMaxFrameLocked(i);const s=e.realtimeState;null!=s&&t.timeController.setRealtimeState(s),t.setFrame(e.frame||Nl.START_FRAME),e.mainCameraNodePath&&t.camerasController.setMainCameraNodePath(e.mainCameraNodePath)}t.cooker.block(),this._base_operations_composer_nodes_with_resolve_required=void 0;const n=Yl.dispatch_node(t.root());return this._data.root&&n.process_data(this,this._data.root),this._data.ui&&n.process_ui_data(this,this._data.ui),this._resolve_operation_containers_with_path_param_resolve(),await t.loadingController.markAsLoaded(),t.cooker.unblock(),t}add_operations_composer_node_with_path_param_resolve_required(t){this._base_operations_composer_nodes_with_resolve_required||(this._base_operations_composer_nodes_with_resolve_required=[]),this._base_operations_composer_nodes_with_resolve_required.push(t)}_resolve_operation_containers_with_path_param_resolve(){if(this._base_operations_composer_nodes_with_resolve_required)for(let t of this._base_operations_composer_nodes_with_resolve_required)t.resolve_operation_containers_path_params()}}class Zl{static async importSceneData(t){null==t.editorMode&&(t.editorMode=!1);const{manifest:e,urlPrefix:n}=t,i=Object.keys(e.nodes),s=[];for(let t of i){const i=`${n}/root/${t}.json?t=${e.nodes[t]}`;s.push(i)}const r=[`${n}/root.json?t=${e.root}`,`${n}/properties.json?t=${e.properties}`];if(t.editorMode){const t=Date.now();r.push(`${n}/ui.json?t=${t}`)}for(let t of s)r.push(t);let o=0;const a=r.length,l=r.map((async e=>{const n=await fetch(e);return t.onProgress&&(o++,t.onProgress({count:o,total:a})),n})),c=await Promise.all(l),h=[];for(let t of c)h.push(await t.json());const u={root:h[0],properties:h[1]};let d=2;t.editorMode&&(u.ui=h[2],d+=1);const p={},_=Object.keys(e.nodes);for(let t=0;t<_.length;t++){const e=_[t],n=h[t+d];p[e]=n}return this.assemble(u,_,p)}static async assemble(t,e,n){const i={root:t.root,properties:t.properties,ui:t.ui};for(let t=0;t<e.length;t++){const s=e[t],r=n[s];this.insert_child_data(i.root,s,r)}return i}static insert_child_data(t,e,n){const i=e.split(\\\\\\\"/\\\\\\\");if(1==i.length)t.nodes||(t.nodes={}),t.nodes[e]=n;else{const e=i.shift(),s=i.join(\\\\\\\"/\\\\\\\"),r=t.nodes[e];this.insert_child_data(r,s,n)}}}async function Kl(t){const e=t.scenesSrcRoot||\\\\\\\"/src/polygonjs/scenes\\\\\\\",n=t.scenesSrcRoot||\\\\\\\"/public/polygonjs/scenes\\\\\\\",i=t.sceneName;const s=await async function(){const t=await fetch(`${e}/${i}/manifest.json`);return await t.json()}(),r=await async function(t){return await Zl.importSceneData({manifest:t,urlPrefix:`${n}/${i}`})}(s);return await async function(e){const n=new Jl(e),i=await n.scene(),s=i.mainCameraNode();if(!s)return void console.warn(\\\\\\\"no master camera found\\\\\\\");const r=m.isString(t.domElement)?document.getElementById(t.domElement):t.domElement;if(!r)return void console.warn(\\\\\\\"no element to mount the viewer onto\\\\\\\");const o=s.createViewer(r);return{scene:i,cameraNode:s,viewer:o}}(r)}const Ql=\\\\\\\"networks\\\\\\\",tc=\\\\\\\"misc\\\\\\\",ec=\\\\\\\"modifiers\\\\\\\",nc=Ql,ic=\\\\\\\"prop\\\\\\\",sc=\\\\\\\"timing\\\\\\\",rc=\\\\\\\"advanced\\\\\\\",oc=\\\\\\\"inputs\\\\\\\",ac=\\\\\\\"misc\\\\\\\",lc=Ql,cc=\\\\\\\"cameras\\\\\\\",hc=\\\\\\\"inputs\\\\\\\",uc=\\\\\\\"misc\\\\\\\",dc=\\\\\\\"scene\\\\\\\",pc=Ql,_c=\\\\\\\"color\\\\\\\",mc=\\\\\\\"conversion\\\\\\\",fc=\\\\\\\"geometry\\\\\\\",gc=\\\\\\\"globals\\\\\\\",vc=\\\\\\\"lighting\\\\\\\",yc=\\\\\\\"logic\\\\\\\",xc=\\\\\\\"math\\\\\\\",bc=\\\\\\\"physics\\\\\\\",wc=\\\\\\\"quat\\\\\\\",Tc=\\\\\\\"trigo\\\\\\\",Ac=\\\\\\\"util\\\\\\\",Mc=\\\\\\\"globals\\\\\\\",Ec=\\\\\\\"advanced\\\\\\\",Sc=\\\\\\\"lines\\\\\\\",Cc=\\\\\\\"meshes\\\\\\\",Nc=Ql,Lc=\\\\\\\"points\\\\\\\",Oc=\\\\\\\"volumes\\\\\\\",Pc=\\\\\\\"advanced\\\\\\\",Rc=\\\\\\\"audio\\\\\\\",Ic=\\\\\\\"cameras\\\\\\\",Fc=\\\\\\\"geometries\\\\\\\",Dc=\\\\\\\"lights\\\\\\\",Bc=Ql,zc=\\\\\\\"transform\\\\\\\",kc=\\\\\\\"css\\\\\\\",Uc=Ql,Gc=\\\\\\\"webgl\\\\\\\",Vc=\\\\\\\"advanced\\\\\\\",Hc=\\\\\\\"animation\\\\\\\",jc=\\\\\\\"attributes\\\\\\\",Wc=\\\\\\\"dynamics\\\\\\\",qc=\\\\\\\"inputs\\\\\\\",Xc=\\\\\\\"lights\\\\\\\",Yc=\\\\\\\"misc\\\\\\\",$c=\\\\\\\"modifiers\\\\\\\",Jc=Ql,Zc=\\\\\\\"primitives\\\\\\\",Kc=\\\\\\\"render\\\\\\\",Qc=\\\\\\\"blur\\\\\\\",th=\\\\\\\"color\\\\\\\",eh=\\\\\\\"effect\\\\\\\",nh=\\\\\\\"misc\\\\\\\",ih=Ql,sh=\\\\\\\"input animation clip\\\\\\\",rh=[sh,sh,sh,sh];class oh extends aa{constructor(){super(...arguments),this.flags=new Bi(this)}static context(){return ts.ANIM}static displayedInputNames(){return rh}initializeBaseNode(){this.io.outputs.setHasOneOutput()}setTimelineBuilder(t){this._setContainer(t)}}class ah extends Mi{constructor(t){super(t,\\\\\\\"CopyStamp\\\\\\\"),this._global_index=0}set_global_index(t){this._global_index=t,this.setDirty(),this.removeDirtyState()}value(t){return this._global_index}}class lh extends ah{}var ch,hh=n(8);!function(t){t.NONE=\\\\\\\"none\\\\\\\",t.POWER1=\\\\\\\"power1\\\\\\\",t.POWER2=\\\\\\\"power2\\\\\\\",t.POWER3=\\\\\\\"power3\\\\\\\",t.POWER4=\\\\\\\"power4\\\\\\\",t.BACK=\\\\\\\"back\\\\\\\",t.ELASTIC=\\\\\\\"elastic\\\\\\\",t.BOUNCE=\\\\\\\"bounce\\\\\\\",t.SLOW=\\\\\\\"slow\\\\\\\",t.STEPS=\\\\\\\"steps\\\\\\\",t.CIRC=\\\\\\\"circ\\\\\\\",t.EXPO=\\\\\\\"expo\\\\\\\",t.SINE=\\\\\\\"sine\\\\\\\"}(ch||(ch={}));const uh=[ch.NONE,ch.POWER1,ch.POWER2,ch.POWER3,ch.POWER4,ch.BACK,ch.ELASTIC,ch.BOUNCE,ch.SLOW,ch.STEPS,ch.CIRC,ch.EXPO,ch.SINE];var dh;!function(t){t.IN=\\\\\\\"in\\\\\\\",t.OUT=\\\\\\\"out\\\\\\\",t.IN_OUT=\\\\\\\"inOut\\\\\\\"}(dh||(dh={}));const ph=[dh.IN,dh.OUT,dh.IN_OUT];class _h{constructor(){this._debug=!1}setName(t){this._propertyName=t}setTargetValue(t){this._targetValue=t}name(){return this._propertyName}targetValue(){return this._targetValue}setDebug(t){this._debug=t}_printDebug(t){this._debug&&console.log(t)}clone(){const t=new _h;if(this._propertyName&&t.setName(this._propertyName),null!=this._targetValue){const e=m.isNumber(this._targetValue)?this._targetValue:this._targetValue.clone();t.setTargetValue(e)}return t}addToTimeline(t,e,n){const i=n.objects();i&&this._populateWithObjects(i,t,e);const s=n.node();s&&this._populateWithNode(s,t,e)}_populateWithObjects(t,e,n){if(this._printDebug([\\\\\\\"_populateWithObjects\\\\\\\",t]),!this._propertyName)return void li.warn(\\\\\\\"no property name given\\\\\\\");if(null==this._targetValue)return void li.warn(\\\\\\\"no target value given\\\\\\\");const i=e.operation(),s=e.updateCallback();for(let r of t){const t=this._sceneGraphProps(r,this._propertyName);if(t){let{targetProperty:o,toTarget:a,propertyNames:l}=t;const c=this._commonVars(e);if(s&&s.updateMatrix()){const t=r.matrixAutoUpdate;c.onStart=()=>{r.matrixAutoUpdate=!0},c.onComplete=()=>{r.matrixAutoUpdate=t,r.matrixAutoUpdate||r.updateMatrix()}}if(o instanceof hh.a&&this._targetValue instanceof hh.a){const t={value:0},e=o,n=(new hh.a).copy(o),i=this._targetValue;c.onUpdate=()=>{e.slerpQuaternions(n,i,t.value)},a=t,c.value=1}if(m.isNumber(this._targetValue)){if(m.isNumber(o))for(let t of l)c[t]=this.withOp(o,this._targetValue,i)}else if(!m.isNumber(o))for(let t of l)c[t]=this.withOp(o[t],this._targetValue[t],i);a&&this._startTimeline(e,n,c,a)}}}_sceneGraphProps(t,e){const n=e.split(\\\\\\\".\\\\\\\");if(!(n.length>1)){const n=t[e];let i=null;const s=[];return m.isNumber(n)?(i=t,s.push(e)):(i=n,this._targetValue instanceof d.a&&s.push(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\"),this._targetValue instanceof p.a&&s.push(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"),this._targetValue instanceof _.a&&s.push(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"),this._targetValue,hh.a),{targetProperty:n,toTarget:i,propertyNames:s}}{const e=t[n.shift()];if(e){const t=n.join(\\\\\\\".\\\\\\\");return this._sceneGraphProps(e,t)}}}_populateWithNode(t,e,n){this._printDebug([\\\\\\\"_populateWithNode\\\\\\\",t]);const i=t.p[this._propertyName];this._printDebug([\\\\\\\"targetParam\\\\\\\",i]),i?i&&this._populateVarsForParam(i,e,n):li.warn(`${this._propertyName} not found on node ${t.path()}`)}_populateVarsForParam(t,e,n){switch(this._printDebug([\\\\\\\"_populateVarsForParam\\\\\\\",t]),t.type()){case Cr.INTEGER:return this._populateVarsForParamInteger(t,e,n);case Cr.FLOAT:return this._populateVarsForParamFloat(t,e,n);case Cr.VECTOR2:return this._populateVarsForParamVector2(t,e,n);case Cr.VECTOR3:return this._populateVarsForParamVector3(t,e,n);case Cr.COLOR:return this._populateVarsForParamColor(t,e,n);case Cr.VECTOR4:return this._populateVarsForParamVector4(t,e,n)}li.warn(`param type cannot be animated (yet): '${t.type()}' '${t.path()}'`)}_populateVarsForParamInteger(t,e,n){if(!m.isNumber(this._targetValue))return void li.warn(`TimelineBuilderProperty error: cannot animate integer param '${t.path()}' with targetValue`,this._targetValue);const i=this._commonVars(e),s={num:t.value};i.onUpdate=()=>{t.set(s.num)};const r=e.operation();i.num=this.withOp(t.value,this._targetValue,r),this._startTimeline(e,n,i,s)}_populateVarsForParamFloat(t,e,n){if(!m.isNumber(this._targetValue))return void li.warn(`TimelineBuilderProperty error: cannot animate float param '${t.path()}' with targetValue`,this._targetValue);const i=this._commonVars(e),s={num:t.value};i.onUpdate=()=>{t.set(s.num)};const r=e.operation();i.num=this.withOp(t.value,this._targetValue,r),this._startTimeline(e,n,i,s)}_populateVarsForParamVector2(t,e,n){if(!(this._targetValue instanceof d.a))return void li.warn(`TimelineBuilderProperty error: cannot animate vector2 param '${t.path()}' with targetValue`,this._targetValue);const i=this._commonVars(e),s=t.value.clone(),r=[0,0];i.onUpdate=()=>{s.toArray(r),t.set(r)};const o=e.operation();i.x=this.withOp(t.value.x,this._targetValue.x,o),i.y=this.withOp(t.value.y,this._targetValue.y,o),this._startTimeline(e,n,i,s)}_populateVarsForParamVector3(t,e,n){if(!(this._targetValue instanceof p.a))return void li.warn(`TimelineBuilderProperty error: cannot animate vector3 param '${t.path()}' with targetValue`,this._targetValue);const i=this._commonVars(e),s=t.value.clone(),r=[0,0,0];i.onUpdate=()=>{s.toArray(r),t.set(r)};const o=e.operation();i.x=this.withOp(t.value.x,this._targetValue.x,o),i.y=this.withOp(t.value.y,this._targetValue.y,o),i.z=this.withOp(t.value.z,this._targetValue.z,o),this._startTimeline(e,n,i,s)}_populateVarsForParamVector4(t,e,n){if(!(this._targetValue instanceof _.a))return void li.warn(`TimelineBuilderProperty error: cannot animate vector4 param '${t.path()}' with targetValue`,this._targetValue);const i=this._commonVars(e),s=t.value.clone(),r=[0,0,0,0];i.onUpdate=()=>{s.toArray(r),t.set(r)};const o=e.operation();i.x=this.withOp(t.value.x,this._targetValue.x,o),i.y=this.withOp(t.value.y,this._targetValue.y,o),i.z=this.withOp(t.value.z,this._targetValue.z,o),i.w=this.withOp(t.value.w,this._targetValue.w,o),this._startTimeline(e,n,i,s)}_populateVarsForParamColor(t,e,n){if(!(this._targetValue instanceof p.a))return void li.warn(`TimelineBuilderProperty error: cannot animate color param '${t.path()}' with targetValue`,this._targetValue);const i=this._commonVars(e),s=t.valuePreConversion(),r=new p.a(s.r,s.g,s.b),o=[0,0,0];i.onUpdate=()=>{r.toArray(o),t.set(o)};const a=e.operation();i.x=this.withOp(t.value.r,this._targetValue.x,a),i.y=this.withOp(t.value.g,this._targetValue.y,a),i.z=this.withOp(t.value.b,this._targetValue.z,a),this._startTimeline(e,n,i,r)}withOp(t,e,n){switch(n){case I_.SET:return e;case I_.ADD:return t+e;case I_.SUBSTRACT:return t-e}os.unreachable(n)}_commonVars(t){const e={duration:t.duration()},n=t.easing()||ch.NONE;n&&(e.ease=n);const i=t.delay();null!=i&&(e.delay=i);const s=t.repeatParams();return s&&(e.repeat=s.count,e.repeatDelay=s.delay,e.yoyo=s.yoyo),e}_startTimeline(t,e,n,i){const s=t.position(),r=s?s.toParameter():void 0;e.to(i,n,r)}}function mh(t){if(void 0===t)throw new ReferenceError(\\\\\\\"this hasn't been initialised - super() hasn't been called\\\\\\\");return t}function fh(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var gh,vh,yh,xh,bh,wh,Th,Ah,Mh,Eh,Sh,Ch,Nh,Lh={autoSleep:120,force3D:\\\\\\\"auto\\\\\\\",nullTargetWarn:1,units:{lineHeight:\\\\\\\"\\\\\\\"}},Oh={duration:.5,overwrite:!1,delay:0},Ph=1e8,Rh=1e-8,Ih=2*Math.PI,Fh=Ih/4,Dh=0,Bh=Math.sqrt,zh=Math.cos,kh=Math.sin,Uh=function(t){return\\\\\\\"string\\\\\\\"==typeof t},Gh=function(t){return\\\\\\\"function\\\\\\\"==typeof t},Vh=function(t){return\\\\\\\"number\\\\\\\"==typeof t},Hh=function(t){return void 0===t},jh=function(t){return\\\\\\\"object\\\\\\\"==typeof t},Wh=function(t){return!1!==t},qh=function(){return\\\\\\\"undefined\\\\\\\"!=typeof window},Xh=function(t){return Gh(t)||Uh(t)},Yh=\\\\\\\"function\\\\\\\"==typeof ArrayBuffer&&ArrayBuffer.isView||function(){},$h=Array.isArray,Jh=/(?:-?\\\\.?\\\\d|\\\\.)+/gi,Zh=/[-+=.]*\\\\d+[.e\\\\-+]*\\\\d*[e\\\\-+]*\\\\d*/g,Kh=/[-+=.]*\\\\d+[.e-]*\\\\d*[a-z%]*/g,Qh=/[-+=.]*\\\\d+\\\\.?\\\\d*(?:e-|e\\\\+)?\\\\d*/gi,tu=/[+-]=-?[.\\\\d]+/,eu=/[^,'\\\\\\\"\\\\[\\\\]\\\\s]+/gi,nu=/[\\\\d.+\\\\-=]+(?:e[-+]\\\\d*)*/i,iu={},su={},ru=function(t){return(su=Ou(t,iu))&&vp},ou=function(t,e){return console.warn(\\\\\\\"Invalid property\\\\\\\",t,\\\\\\\"set to\\\\\\\",e,\\\\\\\"Missing plugin? gsap.registerPlugin()\\\\\\\")},au=function(t,e){return!e&&console.warn(t)},lu=function(t,e){return t&&(iu[t]=e)&&su&&(su[t]=e)||iu},cu=function(){return 0},hu={},uu=[],du={},pu={},_u={},mu=30,fu=[],gu=\\\\\\\"\\\\\\\",vu=function(t){var e,n,i=t[0];if(jh(i)||Gh(i)||(t=[t]),!(e=(i._gsap||{}).harness)){for(n=fu.length;n--&&!fu[n].targetTest(i););e=fu[n]}for(n=t.length;n--;)t[n]&&(t[n]._gsap||(t[n]._gsap=new Hd(t[n],e)))||t.splice(n,1);return t},yu=function(t){return t._gsap||vu(ld(t))[0]._gsap},xu=function(t,e,n){return(n=t[e])&&Gh(n)?t[e]():Hh(n)&&t.getAttribute&&t.getAttribute(e)||n},bu=function(t,e){return(t=t.split(\\\\\\\",\\\\\\\")).forEach(e)||t},wu=function(t){return Math.round(1e5*t)/1e5||0},Tu=function(t){return Math.round(1e7*t)/1e7||0},Au=function(t,e){for(var n=e.length,i=0;t.indexOf(e[i])<0&&++i<n;);return i<n},Mu=function(){var t,e,n=uu.length,i=uu.slice(0);for(du={},uu.length=0,t=0;t<n;t++)(e=i[t])&&e._lazy&&(e.render(e._lazy[0],e._lazy[1],!0)._lazy=0)},Eu=function(t,e,n,i){uu.length&&Mu(),t.render(e,n,i),uu.length&&Mu()},Su=function(t){var e=parseFloat(t);return(e||0===e)&&(t+\\\\\\\"\\\\\\\").match(eu).length<2?e:Uh(t)?t.trim():t},Cu=function(t){return t},Nu=function(t,e){for(var n in e)n in t||(t[n]=e[n]);return t},Lu=function(t,e){for(var n in e)n in t||\\\\\\\"duration\\\\\\\"===n||\\\\\\\"ease\\\\\\\"===n||(t[n]=e[n])},Ou=function(t,e){for(var n in e)t[n]=e[n];return t},Pu=function t(e,n){for(var i in n)\\\\\\\"__proto__\\\\\\\"!==i&&\\\\\\\"constructor\\\\\\\"!==i&&\\\\\\\"prototype\\\\\\\"!==i&&(e[i]=jh(n[i])?t(e[i]||(e[i]={}),n[i]):n[i]);return e},Ru=function(t,e){var n,i={};for(n in t)n in e||(i[n]=t[n]);return i},Iu=function(t){var e=t.parent||vh,n=t.keyframes?Lu:Nu;if(Wh(t.inherit))for(;e;)n(t,e.vars.defaults),e=e.parent||e._dp;return t},Fu=function(t,e,n,i){void 0===n&&(n=\\\\\\\"_first\\\\\\\"),void 0===i&&(i=\\\\\\\"_last\\\\\\\");var s=e._prev,r=e._next;s?s._next=r:t[n]===e&&(t[n]=r),r?r._prev=s:t[i]===e&&(t[i]=s),e._next=e._prev=e.parent=null},Du=function(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove(t),t._act=0},Bu=function(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var n=t;n;)n._dirty=1,n=n.parent;return t},zu=function(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t},ku=function t(e){return!e||e._ts&&t(e.parent)},Uu=function(t){return t._repeat?Gu(t._tTime,t=t.duration()+t._rDelay)*t:0},Gu=function(t,e){var n=Math.floor(t/=e);return t&&n===t?n-1:n},Vu=function(t,e){return(t-e._start)*e._ts+(e._ts>=0?0:e._dirty?e.totalDuration():e._tDur)},Hu=function(t){return t._end=Tu(t._start+(t._tDur/Math.abs(t._ts||t._rts||Rh)||0))},ju=function(t,e){var n=t._dp;return n&&n.smoothChildTiming&&t._ts&&(t._start=Tu(n._time-(t._ts>0?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),Hu(t),n._dirty||Bu(n,t)),t},Wu=function(t,e){var n;if((e._time||e._initted&&!e._dur)&&(n=Vu(t.rawTime(),e),(!e._dur||id(0,e.totalDuration(),n)-e._tTime>Rh)&&e.render(n,!0)),Bu(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur<t.duration())for(n=t;n._dp;)n.rawTime()>=0&&n.totalTime(n._tTime),n=n._dp;t._zTime=-1e-8}},qu=function(t,e,n,i){return e.parent&&Du(e),e._start=Tu((Vh(n)?n:n||t!==vh?td(t,n,e):t._time)+e._delay),e._end=Tu(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),function(t,e,n,i,s){void 0===n&&(n=\\\\\\\"_first\\\\\\\"),void 0===i&&(i=\\\\\\\"_last\\\\\\\");var r,o=t[i];if(s)for(r=e[s];o&&o[s]>r;)o=o._prev;o?(e._next=o._next,o._next=e):(e._next=t[n],t[n]=e),e._next?e._next._prev=e:t[i]=e,e._prev=o,e.parent=e._dp=t}(t,e,\\\\\\\"_first\\\\\\\",\\\\\\\"_last\\\\\\\",t._sort?\\\\\\\"_start\\\\\\\":0),Ju(e)||(t._recent=e),i||Wu(t,e),t},Xu=function(t,e){return(iu.ScrollTrigger||ou(\\\\\\\"scrollTrigger\\\\\\\",e))&&iu.ScrollTrigger.create(e,t)},Yu=function(t,e,n,i){return Jd(t,e),t._initted?!n&&t._pt&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&Th!==Ld.frame?(uu.push(t),t._lazy=[e,i],1):void 0:1},$u=function t(e){var n=e.parent;return n&&n._ts&&n._initted&&!n._lock&&(n.rawTime()<0||t(n))},Ju=function(t){var e=t.data;return\\\\\\\"isFromStart\\\\\\\"===e||\\\\\\\"isStart\\\\\\\"===e},Zu=function(t,e,n,i){var s=t._repeat,r=Tu(e)||0,o=t._tTime/t._tDur;return o&&!i&&(t._time*=r/t._dur),t._dur=r,t._tDur=s?s<0?1e10:Tu(r*(s+1)+t._rDelay*s):r,o&&!i?ju(t,t._tTime=t._tDur*o):t.parent&&Hu(t),n||Bu(t.parent,t),t},Ku=function(t){return t instanceof Wd?Bu(t):Zu(t,t._dur)},Qu={_start:0,endTime:cu,totalDuration:cu},td=function t(e,n,i){var s,r,o,a=e.labels,l=e._recent||Qu,c=e.duration()>=Ph?l.endTime(!1):e._dur;return Uh(n)&&(isNaN(n)||n in a)?(r=n.charAt(0),o=\\\\\\\"%\\\\\\\"===n.substr(-1),s=n.indexOf(\\\\\\\"=\\\\\\\"),\\\\\\\"<\\\\\\\"===r||\\\\\\\">\\\\\\\"===r?(s>=0&&(n=n.replace(/=/,\\\\\\\"\\\\\\\")),(\\\\\\\"<\\\\\\\"===r?l._start:l.endTime(l._repeat>=0))+(parseFloat(n.substr(1))||0)*(o?(s<0?l:i).totalDuration()/100:1)):s<0?(n in a||(a[n]=c),a[n]):(r=parseFloat(n.charAt(s-1)+n.substr(s+1)),o&&i&&(r=r/100*($h(i)?i[0]:i).totalDuration()),s>1?t(e,n.substr(0,s-1),i)+r:c+r)):null==n?c:+n},ed=function(t,e,n){var i,s,r=Vh(e[1]),o=(r?2:1)+(t<2?0:1),a=e[o];if(r&&(a.duration=e[1]),a.parent=n,t){for(i=a,s=n;s&&!(\\\\\\\"immediateRender\\\\\\\"in i);)i=s.vars.defaults||{},s=Wh(s.vars.inherit)&&s.parent;a.immediateRender=Wh(i.immediateRender),t<2?a.runBackwards=1:a.startAt=e[o-1]}return new tp(e[0],a,e[o+1])},nd=function(t,e){return t||0===t?e(t):e},id=function(t,e,n){return n<t?t:n>e?e:n},sd=function(t){if(\\\\\\\"string\\\\\\\"!=typeof t)return\\\\\\\"\\\\\\\";var e=nu.exec(t);return e?t.substr(e.index+e[0].length):\\\\\\\"\\\\\\\"},rd=[].slice,od=function(t,e){return t&&jh(t)&&\\\\\\\"length\\\\\\\"in t&&(!e&&!t.length||t.length-1 in t&&jh(t[0]))&&!t.nodeType&&t!==yh},ad=function(t,e,n){return void 0===n&&(n=[]),t.forEach((function(t){var i;return Uh(t)&&!e||od(t,1)?(i=n).push.apply(i,ld(t)):n.push(t)}))||n},ld=function(t,e,n){return!Uh(t)||n||!xh&&Od()?$h(t)?ad(t,n):od(t)?rd.call(t,0):t?[t]:[]:rd.call((e||bh).querySelectorAll(t),0)},cd=function(t){return t.sort((function(){return.5-Math.random()}))},hd=function(t){if(Gh(t))return t;var e=jh(t)?t:{each:t},n=zd(e.ease),i=e.from||0,s=parseFloat(e.base)||0,r={},o=i>0&&i<1,a=isNaN(i)||o,l=e.axis,c=i,h=i;return Uh(i)?c=h={center:.5,edges:.5,end:1}[i]||0:!o&&a&&(c=i[0],h=i[1]),function(t,o,u){var d,p,_,m,f,g,v,y,x,b=(u||e).length,w=r[b];if(!w){if(!(x=\\\\\\\"auto\\\\\\\"===e.grid?0:(e.grid||[1,Ph])[1])){for(v=-Ph;v<(v=u[x++].getBoundingClientRect().left)&&x<b;);x--}for(w=r[b]=[],d=a?Math.min(x,b)*c-.5:i%x,p=a?b*h/x-.5:i/x|0,v=0,y=Ph,g=0;g<b;g++)_=g%x-d,m=p-(g/x|0),w[g]=f=l?Math.abs(\\\\\\\"y\\\\\\\"===l?m:_):Bh(_*_+m*m),f>v&&(v=f),f<y&&(y=f);\\\\\\\"random\\\\\\\"===i&&cd(w),w.max=v-y,w.min=y,w.v=b=(parseFloat(e.amount)||parseFloat(e.each)*(x>b?b-1:l?\\\\\\\"y\\\\\\\"===l?b/x:x:Math.max(x,b/x))||0)*(\\\\\\\"edges\\\\\\\"===i?-1:1),w.b=b<0?s-b:s,w.u=sd(e.amount||e.each)||0,n=n&&b<0?Dd(n):n}return b=(w[t]-w.min)/w.max||0,Tu(w.b+(n?n(b):b)*w.v)+w.u}},ud=function(t){var e=Math.pow(10,((t+\\\\\\\"\\\\\\\").split(\\\\\\\".\\\\\\\")[1]||\\\\\\\"\\\\\\\").length);return function(n){var i=Math.round(parseFloat(n)/t)*t*e;return(i-i%1)/e+(Vh(n)?0:sd(n))}},dd=function(t,e){var n,i,s=$h(t);return!s&&jh(t)&&(n=s=t.radius||Ph,t.values?(t=ld(t.values),(i=!Vh(t[0]))&&(n*=n)):t=ud(t.increment)),nd(e,s?Gh(t)?function(e){return i=t(e),Math.abs(i-e)<=n?i:e}:function(e){for(var s,r,o=parseFloat(i?e.x:e),a=parseFloat(i?e.y:0),l=Ph,c=0,h=t.length;h--;)(s=i?(s=t[h].x-o)*s+(r=t[h].y-a)*r:Math.abs(t[h]-o))<l&&(l=s,c=h);return c=!n||l<=n?t[c]:e,i||c===e||Vh(e)?c:c+sd(e)}:ud(t))},pd=function(t,e,n,i){return nd($h(t)?!e:!0===n?!!(n=0):!i,(function(){return $h(t)?t[~~(Math.random()*t.length)]:(n=n||1e-5)&&(i=n<1?Math.pow(10,(n+\\\\\\\"\\\\\\\").length-2):1)&&Math.floor(Math.round((t-n/2+Math.random()*(e-t+.99*n))/n)*n*i)/i}))},_d=function(t,e,n){return nd(n,(function(n){return t[~~e(n)]}))},md=function(t){for(var e,n,i,s,r=0,o=\\\\\\\"\\\\\\\";~(e=t.indexOf(\\\\\\\"random(\\\\\\\",r));)i=t.indexOf(\\\\\\\")\\\\\\\",e),s=\\\\\\\"[\\\\\\\"===t.charAt(e+7),n=t.substr(e+7,i-e-7).match(s?eu:Jh),o+=t.substr(r,e-r)+pd(s?n:+n[0],s?0:+n[1],+n[2]||1e-5),r=i+1;return o+t.substr(r,t.length-r)},fd=function(t,e,n,i,s){var r=e-t,o=i-n;return nd(s,(function(e){return n+((e-t)/r*o||0)}))},gd=function(t,e,n){var i,s,r,o=t.labels,a=Ph;for(i in o)(s=o[i]-e)<0==!!n&&s&&a>(s=Math.abs(s))&&(r=i,a=s);return r},vd=function(t,e,n){var i,s,r=t.vars,o=r[e];if(o)return i=r[e+\\\\\\\"Params\\\\\\\"],s=r.callbackScope||t,n&&uu.length&&Mu(),i?o.apply(s,i):o.call(s)},yd=function(t){return Du(t),t.scrollTrigger&&t.scrollTrigger.kill(!1),t.progress()<1&&vd(t,\\\\\\\"onInterrupt\\\\\\\"),t},xd=function(t){var e=(t=!t.name&&t.default||t).name,n=Gh(t),i=e&&!n&&t.init?function(){this._props=[]}:t,s={init:cu,render:cp,add:Yd,kill:up,modifier:hp,rawVars:0},r={targetTest:0,get:0,getSetter:rp,aliases:{},register:0};if(Od(),t!==i){if(pu[e])return;Nu(i,Nu(Ru(t,s),r)),Ou(i.prototype,Ou(s,Ru(t,r))),pu[i.prop=e]=i,t.targetTest&&(fu.push(i),hu[e]=1),e=(\\\\\\\"css\\\\\\\"===e?\\\\\\\"CSS\\\\\\\":e.charAt(0).toUpperCase()+e.substr(1))+\\\\\\\"Plugin\\\\\\\"}lu(e,i),t.register&&t.register(vp,i,_p)},bd=255,wd={aqua:[0,bd,bd],lime:[0,bd,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,bd],navy:[0,0,128],white:[bd,bd,bd],olive:[128,128,0],yellow:[bd,bd,0],orange:[bd,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[bd,0,0],pink:[bd,192,203],cyan:[0,bd,bd],transparent:[bd,bd,bd,0]},Td=function(t,e,n){return(6*(t=t<0?t+1:t>1?t-1:t)<1?e+(n-e)*t*6:t<.5?n:3*t<2?e+(n-e)*(2/3-t)*6:e)*bd+.5|0},Ad=function(t,e,n){var i,s,r,o,a,l,c,h,u,d,p=t?Vh(t)?[t>>16,t>>8&bd,t&bd]:0:wd.black;if(!p){if(\\\\\\\",\\\\\\\"===t.substr(-1)&&(t=t.substr(0,t.length-1)),wd[t])p=wd[t];else if(\\\\\\\"#\\\\\\\"===t.charAt(0)){if(t.length<6&&(i=t.charAt(1),s=t.charAt(2),r=t.charAt(3),t=\\\\\\\"#\\\\\\\"+i+i+s+s+r+r+(5===t.length?t.charAt(4)+t.charAt(4):\\\\\\\"\\\\\\\")),9===t.length)return[(p=parseInt(t.substr(1,6),16))>>16,p>>8&bd,p&bd,parseInt(t.substr(7),16)/255];p=[(t=parseInt(t.substr(1),16))>>16,t>>8&bd,t&bd]}else if(\\\\\\\"hsl\\\\\\\"===t.substr(0,3))if(p=d=t.match(Jh),e){if(~t.indexOf(\\\\\\\"=\\\\\\\"))return p=t.match(Zh),n&&p.length<4&&(p[3]=1),p}else o=+p[0]%360/360,a=+p[1]/100,i=2*(l=+p[2]/100)-(s=l<=.5?l*(a+1):l+a-l*a),p.length>3&&(p[3]*=1),p[0]=Td(o+1/3,i,s),p[1]=Td(o,i,s),p[2]=Td(o-1/3,i,s);else p=t.match(Jh)||wd.transparent;p=p.map(Number)}return e&&!d&&(i=p[0]/bd,s=p[1]/bd,r=p[2]/bd,l=((c=Math.max(i,s,r))+(h=Math.min(i,s,r)))/2,c===h?o=a=0:(u=c-h,a=l>.5?u/(2-c-h):u/(c+h),o=c===i?(s-r)/u+(s<r?6:0):c===s?(r-i)/u+2:(i-s)/u+4,o*=60),p[0]=~~(o+.5),p[1]=~~(100*a+.5),p[2]=~~(100*l+.5)),n&&p.length<4&&(p[3]=1),p},Md=function(t){var e=[],n=[],i=-1;return t.split(Sd).forEach((function(t){var s=t.match(Kh)||[];e.push.apply(e,s),n.push(i+=s.length+1)})),e.c=n,e},Ed=function(t,e,n){var i,s,r,o,a=\\\\\\\"\\\\\\\",l=(t+a).match(Sd),c=e?\\\\\\\"hsla(\\\\\\\":\\\\\\\"rgba(\\\\\\\",h=0;if(!l)return t;if(l=l.map((function(t){return(t=Ad(t,e,1))&&c+(e?t[0]+\\\\\\\",\\\\\\\"+t[1]+\\\\\\\"%,\\\\\\\"+t[2]+\\\\\\\"%,\\\\\\\"+t[3]:t.join(\\\\\\\",\\\\\\\"))+\\\\\\\")\\\\\\\"})),n&&(r=Md(t),(i=n.c).join(a)!==r.c.join(a)))for(o=(s=t.replace(Sd,\\\\\\\"1\\\\\\\").split(Kh)).length-1;h<o;h++)a+=s[h]+(~i.indexOf(h)?l.shift()||c+\\\\\\\"0,0,0,0)\\\\\\\":(r.length?r:l.length?l:n).shift());if(!s)for(o=(s=t.split(Sd)).length-1;h<o;h++)a+=s[h]+l[h];return a+s[o]},Sd=function(){var t,e=\\\\\\\"(?:\\\\\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\\\\\(.+?\\\\\\\\))|\\\\\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\\\\\b\\\\\\\";for(t in wd)e+=\\\\\\\"|\\\\\\\"+t+\\\\\\\"\\\\\\\\b\\\\\\\";return new RegExp(e+\\\\\\\")\\\\\\\",\\\\\\\"gi\\\\\\\")}(),Cd=/hsl[a]?\\\\(/,Nd=function(t){var e,n=t.join(\\\\\\\" \\\\\\\");if(Sd.lastIndex=0,Sd.test(n))return e=Cd.test(n),t[1]=Ed(t[1],e),t[0]=Ed(t[0],e,Md(t[1])),!0},Ld=function(){var t,e,n,i,s,r,o=Date.now,a=500,l=33,c=o(),h=c,u=1e3/240,d=u,p=[],_=function n(_){var m,f,g,v,y=o()-h,x=!0===_;if(y>a&&(c+=y-l),((m=(g=(h+=y)-c)-d)>0||x)&&(v=++i.frame,s=g-1e3*i.time,i.time=g/=1e3,d+=m+(m>=u?4:u-m),f=1),x||(t=e(n)),f)for(r=0;r<p.length;r++)p[r](g,s,v,_)};return i={time:0,frame:0,tick:function(){_(!0)},deltaRatio:function(t){return s/(1e3/(t||60))},wake:function(){wh&&(!xh&&qh()&&(yh=xh=window,bh=yh.document||{},iu.gsap=vp,(yh.gsapVersions||(yh.gsapVersions=[])).push(vp.version),ru(su||yh.GreenSockGlobals||!yh.gsap&&yh||{}),n=yh.requestAnimationFrame),t&&i.sleep(),e=n||function(t){return setTimeout(t,d-1e3*i.time+1|0)},Mh=1,_(2))},sleep:function(){(n?yh.cancelAnimationFrame:clearTimeout)(t),Mh=0,e=cu},lagSmoothing:function(t,e){a=t||1e8,l=Math.min(e,a,0)},fps:function(t){u=1e3/(t||240),d=1e3*i.time+u},add:function(t){p.indexOf(t)<0&&p.push(t),Od()},remove:function(t){var e;~(e=p.indexOf(t))&&p.splice(e,1)&&r>=e&&r--},_listeners:p}}(),Od=function(){return!Mh&&Ld.wake()},Pd={},Rd=/^[\\\\d.\\\\-M][\\\\d.\\\\-,\\\\s]/,Id=/[\\\\\\\"']/g,Fd=function(t){for(var e,n,i,s={},r=t.substr(1,t.length-3).split(\\\\\\\":\\\\\\\"),o=r[0],a=1,l=r.length;a<l;a++)n=r[a],e=a!==l-1?n.lastIndexOf(\\\\\\\",\\\\\\\"):n.length,i=n.substr(0,e),s[o]=isNaN(i)?i.replace(Id,\\\\\\\"\\\\\\\").trim():+i,o=n.substr(e+1).trim();return s},Dd=function(t){return function(e){return 1-t(1-e)}},Bd=function t(e,n){for(var i,s=e._first;s;)s instanceof Wd?t(s,n):!s.vars.yoyoEase||s._yoyo&&s._repeat||s._yoyo===n||(s.timeline?t(s.timeline,n):(i=s._ease,s._ease=s._yEase,s._yEase=i,s._yoyo=n)),s=s._next},zd=function(t,e){return t&&(Gh(t)?t:Pd[t]||function(t){var e,n,i,s,r=(t+\\\\\\\"\\\\\\\").split(\\\\\\\"(\\\\\\\"),o=Pd[r[0]];return o&&r.length>1&&o.config?o.config.apply(null,~t.indexOf(\\\\\\\"{\\\\\\\")?[Fd(r[1])]:(e=t,n=e.indexOf(\\\\\\\"(\\\\\\\")+1,i=e.indexOf(\\\\\\\")\\\\\\\"),s=e.indexOf(\\\\\\\"(\\\\\\\",n),e.substring(n,~s&&s<i?e.indexOf(\\\\\\\")\\\\\\\",i+1):i)).split(\\\\\\\",\\\\\\\").map(Su)):Pd._CE&&Rd.test(t)?Pd._CE(\\\\\\\"\\\\\\\",t):o}(t))||e},kd=function(t,e,n,i){void 0===n&&(n=function(t){return 1-e(1-t)}),void 0===i&&(i=function(t){return t<.5?e(2*t)/2:1-e(2*(1-t))/2});var s,r={easeIn:e,easeOut:n,easeInOut:i};return bu(t,(function(t){for(var e in Pd[t]=iu[t]=r,Pd[s=t.toLowerCase()]=n,r)Pd[s+(\\\\\\\"easeIn\\\\\\\"===e?\\\\\\\".in\\\\\\\":\\\\\\\"easeOut\\\\\\\"===e?\\\\\\\".out\\\\\\\":\\\\\\\".inOut\\\\\\\")]=Pd[t+\\\\\\\".\\\\\\\"+e]=r[e]})),r},Ud=function(t){return function(e){return e<.5?(1-t(1-2*e))/2:.5+t(2*(e-.5))/2}},Gd=function t(e,n,i){var s=n>=1?n:1,r=(i||(e?.3:.45))/(n<1?n:1),o=r/Ih*(Math.asin(1/s)||0),a=function(t){return 1===t?1:s*Math.pow(2,-10*t)*kh((t-o)*r)+1},l=\\\\\\\"out\\\\\\\"===e?a:\\\\\\\"in\\\\\\\"===e?function(t){return 1-a(1-t)}:Ud(a);return r=Ih/r,l.config=function(n,i){return t(e,n,i)},l},Vd=function t(e,n){void 0===n&&(n=1.70158);var i=function(t){return t?--t*t*((n+1)*t+n)+1:0},s=\\\\\\\"out\\\\\\\"===e?i:\\\\\\\"in\\\\\\\"===e?function(t){return 1-i(1-t)}:Ud(i);return s.config=function(n){return t(e,n)},s};bu(\\\\\\\"Linear,Quad,Cubic,Quart,Quint,Strong\\\\\\\",(function(t,e){var n=e<5?e+1:e;kd(t+\\\\\\\",Power\\\\\\\"+(n-1),e?function(t){return Math.pow(t,n)}:function(t){return t},(function(t){return 1-Math.pow(1-t,n)}),(function(t){return t<.5?Math.pow(2*t,n)/2:1-Math.pow(2*(1-t),n)/2}))})),Pd.Linear.easeNone=Pd.none=Pd.Linear.easeIn,kd(\\\\\\\"Elastic\\\\\\\",Gd(\\\\\\\"in\\\\\\\"),Gd(\\\\\\\"out\\\\\\\"),Gd()),Eh=7.5625,Ch=1/(Sh=2.75),kd(\\\\\\\"Bounce\\\\\\\",(function(t){return 1-Nh(1-t)}),Nh=function(t){return t<Ch?Eh*t*t:t<.7272727272727273?Eh*Math.pow(t-1.5/Sh,2)+.75:t<.9090909090909092?Eh*(t-=2.25/Sh)*t+.9375:Eh*Math.pow(t-2.625/Sh,2)+.984375}),kd(\\\\\\\"Expo\\\\\\\",(function(t){return t?Math.pow(2,10*(t-1)):0})),kd(\\\\\\\"Circ\\\\\\\",(function(t){return-(Bh(1-t*t)-1)})),kd(\\\\\\\"Sine\\\\\\\",(function(t){return 1===t?1:1-zh(t*Fh)})),kd(\\\\\\\"Back\\\\\\\",Vd(\\\\\\\"in\\\\\\\"),Vd(\\\\\\\"out\\\\\\\"),Vd()),Pd.SteppedEase=Pd.steps=iu.SteppedEase={config:function(t,e){void 0===t&&(t=1);var n=1/t,i=t+(e?0:1),s=e?1:0;return function(t){return((i*id(0,.99999999,t)|0)+s)*n}}},Oh.ease=Pd[\\\\\\\"quad.out\\\\\\\"],bu(\\\\\\\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\\\\\\\",(function(t){return gu+=t+\\\\\\\",\\\\\\\"+t+\\\\\\\"Params,\\\\\\\"}));var Hd=function(t,e){this.id=Dh++,t._gsap=this,this.target=t,this.harness=e,this.get=e?e.get:xu,this.set=e?e.getSetter:rp},jd=function(){function t(t){this.vars=t,this._delay=+t.delay||0,(this._repeat=t.repeat===1/0?-2:t.repeat||0)&&(this._rDelay=t.repeatDelay||0,this._yoyo=!!t.yoyo||!!t.yoyoEase),this._ts=1,Zu(this,+t.duration,1,1),this.data=t.data,Mh||Ld.wake()}var e=t.prototype;return e.delay=function(t){return t||0===t?(this.parent&&this.parent.smoothChildTiming&&this.startTime(this._start+t-this._delay),this._delay=t,this):this._delay},e.duration=function(t){return arguments.length?this.totalDuration(this._repeat>0?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},e.totalDuration=function(t){return arguments.length?(this._dirty=0,Zu(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},e.totalTime=function(t,e){if(Od(),!arguments.length)return this._tTime;var n=this._dp;if(n&&n.smoothChildTiming&&this._ts){for(ju(this,t),!n._dp||n.parent||Wu(n,this);n&&n.parent;)n.parent._time!==n._start+(n._ts>=0?n._tTime/n._ts:(n.totalDuration()-n._tTime)/-n._ts)&&n.totalTime(n._tTime,!0),n=n.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&t<this._tDur||this._ts<0&&t>0||!this._tDur&&!t)&&qu(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&Math.abs(this._zTime)===Rh||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),Eu(this,t,e)),this},e.time=function(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+Uu(this))%(this._dur+this._rDelay)||(t?this._dur:0),e):this._time},e.totalProgress=function(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.ratio},e.progress=function(t,e){return arguments.length?this.totalTime(this.duration()*(!this._yoyo||1&this.iteration()?t:1-t)+Uu(this),e):this.duration()?Math.min(1,this._time/this._dur):this.ratio},e.iteration=function(t,e){var n=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*n,e):this._repeat?Gu(this._tTime,n)+1:1},e.timeScale=function(t){if(!arguments.length)return-1e-8===this._rts?0:this._rts;if(this._rts===t)return this;var e=this.parent&&this._ts?Vu(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||-1e-8===t?0:this._rts,zu(this.totalTime(id(-this._delay,this._tDur,e),!0)),Hu(this),this},e.paused=function(t){return arguments.length?(this._ps!==t&&(this._ps=t,t?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Od(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&Math.abs(this._zTime)!==Rh&&(this._tTime-=Rh)))),this):this._ps},e.startTime=function(t){if(arguments.length){this._start=t;var e=this.parent||this._dp;return e&&(e._sort||!this.parent)&&qu(e,this,t-this._delay),this}return this._start},e.endTime=function(t){return this._start+(Wh(t)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},e.rawTime=function(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?Vu(e.rawTime(t),this):this._tTime:this._tTime},e.globalTime=function(t){for(var e=this,n=arguments.length?t:e.rawTime();e;)n=e._start+n/(e._ts||1),e=e._dp;return n},e.repeat=function(t){return arguments.length?(this._repeat=t===1/0?-2:t,Ku(this)):-2===this._repeat?1/0:this._repeat},e.repeatDelay=function(t){if(arguments.length){var e=this._time;return this._rDelay=t,Ku(this),e?this.time(e):this}return this._rDelay},e.yoyo=function(t){return arguments.length?(this._yoyo=t,this):this._yoyo},e.seek=function(t,e){return this.totalTime(td(this,t),Wh(e))},e.restart=function(t,e){return this.play().totalTime(t?-this._delay:0,Wh(e))},e.play=function(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},e.reverse=function(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},e.pause=function(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},e.resume=function(){return this.paused(!1)},e.reversed=function(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-1e-8:0)),this):this._rts<0},e.invalidate=function(){return this._initted=this._act=0,this._zTime=-1e-8,this},e.isActive=function(){var t,e=this.parent||this._dp,n=this._start;return!(e&&!(this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=n&&t<this.endTime(!0)-Rh))},e.eventCallback=function(t,e,n){var i=this.vars;return arguments.length>1?(e?(i[t]=e,n&&(i[t+\\\\\\\"Params\\\\\\\"]=n),\\\\\\\"onUpdate\\\\\\\"===t&&(this._onUpdate=e)):delete i[t],this):i[t]},e.then=function(t){var e=this;return new Promise((function(n){var i=Gh(t)?t:Cu,s=function(){var t=e.then;e.then=null,Gh(i)&&(i=i(e))&&(i.then||i===e)&&(e.then=t),n(i),e.then=t};e._initted&&1===e.totalProgress()&&e._ts>=0||!e._tTime&&e._ts<0?s():e._prom=s}))},e.kill=function(){yd(this)},t}();Nu(jd.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-1e-8,_prom:0,_ps:!1,_rts:1});var Wd=function(t){function e(e,n){var i;return void 0===e&&(e={}),(i=t.call(this,e)||this).labels={},i.smoothChildTiming=!!e.smoothChildTiming,i.autoRemoveChildren=!!e.autoRemoveChildren,i._sort=Wh(e.sortChildren),vh&&qu(e.parent||vh,mh(i),n),e.reversed&&i.reverse(),e.paused&&i.paused(!0),e.scrollTrigger&&Xu(mh(i),e.scrollTrigger),i}fh(e,t);var n=e.prototype;return n.to=function(t,e,n){return ed(0,arguments,this),this},n.from=function(t,e,n){return ed(1,arguments,this),this},n.fromTo=function(t,e,n,i){return ed(2,arguments,this),this},n.set=function(t,e,n){return e.duration=0,e.parent=this,Iu(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new tp(t,e,td(this,n),1),this},n.call=function(t,e,n){return qu(this,tp.delayedCall(0,t,e),n)},n.staggerTo=function(t,e,n,i,s,r,o){return n.duration=e,n.stagger=n.stagger||i,n.onComplete=r,n.onCompleteParams=o,n.parent=this,new tp(t,n,td(this,s)),this},n.staggerFrom=function(t,e,n,i,s,r,o){return n.runBackwards=1,Iu(n).immediateRender=Wh(n.immediateRender),this.staggerTo(t,e,n,i,s,r,o)},n.staggerFromTo=function(t,e,n,i,s,r,o,a){return i.startAt=n,Iu(i).immediateRender=Wh(i.immediateRender),this.staggerTo(t,e,i,s,r,o,a)},n.render=function(t,e,n){var i,s,r,o,a,l,c,h,u,d,p,_,m=this._time,f=this._dirty?this.totalDuration():this._tDur,g=this._dur,v=t<=0?0:Tu(t),y=this._zTime<0!=t<0&&(this._initted||!g);if(this!==vh&&v>f&&t>=0&&(v=f),v!==this._tTime||n||y){if(m!==this._time&&g&&(v+=this._time-m,t+=this._time-m),i=v,u=this._start,l=!(h=this._ts),y&&(g||(m=this._zTime),(t||!e)&&(this._zTime=t)),this._repeat){if(p=this._yoyo,a=g+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*a+t,e,n);if(i=Tu(v%a),v===f?(o=this._repeat,i=g):((o=~~(v/a))&&o===v/a&&(i=g,o--),i>g&&(i=g)),d=Gu(this._tTime,a),!m&&this._tTime&&d!==o&&(d=o),p&&1&o&&(i=g-i,_=1),o!==d&&!this._lock){var x=p&&1&d,b=x===(p&&1&o);if(o<d&&(x=!x),m=x?0:g,this._lock=1,this.render(m||(_?0:Tu(o*a)),e,!g)._lock=0,this._tTime=v,!e&&this.parent&&vd(this,\\\\\\\"onRepeat\\\\\\\"),this.vars.repeatRefresh&&!_&&(this.invalidate()._lock=1),m&&m!==this._time||l!==!this._ts||this.vars.onRepeat&&!this.parent&&!this._act)return this;if(g=this._dur,f=this._tDur,b&&(this._lock=2,m=x?g:-1e-4,this.render(m,!0),this.vars.repeatRefresh&&!_&&this.invalidate()),this._lock=0,!this._ts&&!l)return this;Bd(this,_)}}if(this._hasPause&&!this._forcing&&this._lock<2&&(c=function(t,e,n){var i;if(n>e)for(i=t._first;i&&i._start<=n;){if(!i._dur&&\\\\\\\"isPause\\\\\\\"===i.data&&i._start>e)return i;i=i._next}else for(i=t._last;i&&i._start>=n;){if(!i._dur&&\\\\\\\"isPause\\\\\\\"===i.data&&i._start<e)return i;i=i._prev}}(this,Tu(m),Tu(i)))&&(v-=i-(i=c._start)),this._tTime=v,this._time=i,this._act=!h,this._initted||(this._onUpdate=this.vars.onUpdate,this._initted=1,this._zTime=t,m=0),!m&&i&&!e&&(vd(this,\\\\\\\"onStart\\\\\\\"),this._tTime!==v))return this;if(i>=m&&t>=0)for(s=this._first;s;){if(r=s._next,(s._act||i>=s._start)&&s._ts&&c!==s){if(s.parent!==this)return this.render(t,e,n);if(s.render(s._ts>0?(i-s._start)*s._ts:(s._dirty?s.totalDuration():s._tDur)+(i-s._start)*s._ts,e,n),i!==this._time||!this._ts&&!l){c=0,r&&(v+=this._zTime=-1e-8);break}}s=r}else{s=this._last;for(var w=t<0?t:i;s;){if(r=s._prev,(s._act||w<=s._end)&&s._ts&&c!==s){if(s.parent!==this)return this.render(t,e,n);if(s.render(s._ts>0?(w-s._start)*s._ts:(s._dirty?s.totalDuration():s._tDur)+(w-s._start)*s._ts,e,n),i!==this._time||!this._ts&&!l){c=0,r&&(v+=this._zTime=w?-1e-8:Rh);break}}s=r}}if(c&&!e&&(this.pause(),c.render(i>=m?0:-1e-8)._zTime=i>=m?1:-1,this._ts))return this._start=u,Hu(this),this.render(t,e,n);this._onUpdate&&!e&&vd(this,\\\\\\\"onUpdate\\\\\\\",!0),(v===f&&f>=this.totalDuration()||!v&&m)&&(u!==this._start&&Math.abs(h)===Math.abs(this._ts)||this._lock||((t||!g)&&(v===f&&this._ts>0||!v&&this._ts<0)&&Du(this,1),e||t<0&&!m||!v&&!m&&f||(vd(this,v===f&&t>=0?\\\\\\\"onComplete\\\\\\\":\\\\\\\"onReverseComplete\\\\\\\",!0),this._prom&&!(v<f&&this.timeScale()>0)&&this._prom())))}return this},n.add=function(t,e){var n=this;if(Vh(e)||(e=td(this,e,t)),!(t instanceof jd)){if($h(t))return t.forEach((function(t){return n.add(t,e)})),this;if(Uh(t))return this.addLabel(t,e);if(!Gh(t))return this;t=tp.delayedCall(0,t)}return this!==t?qu(this,t,e):this},n.getChildren=function(t,e,n,i){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===n&&(n=!0),void 0===i&&(i=-Ph);for(var s=[],r=this._first;r;)r._start>=i&&(r instanceof tp?e&&s.push(r):(n&&s.push(r),t&&s.push.apply(s,r.getChildren(!0,e,n)))),r=r._next;return s},n.getById=function(t){for(var e=this.getChildren(1,1,1),n=e.length;n--;)if(e[n].vars.id===t)return e[n]},n.remove=function(t){return Uh(t)?this.removeLabel(t):Gh(t)?this.killTweensOf(t):(Fu(this,t),t===this._recent&&(this._recent=this._last),Bu(this))},n.totalTime=function(e,n){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=Tu(Ld.time-(this._ts>0?e/this._ts:(this.totalDuration()-e)/-this._ts))),t.prototype.totalTime.call(this,e,n),this._forcing=0,this):this._tTime},n.addLabel=function(t,e){return this.labels[t]=td(this,e),this},n.removeLabel=function(t){return delete this.labels[t],this},n.addPause=function(t,e,n){var i=tp.delayedCall(0,e||cu,n);return i.data=\\\\\\\"isPause\\\\\\\",this._hasPause=1,qu(this,i,td(this,t))},n.removePause=function(t){var e=this._first;for(t=td(this,t);e;)e._start===t&&\\\\\\\"isPause\\\\\\\"===e.data&&Du(e),e=e._next},n.killTweensOf=function(t,e,n){for(var i=this.getTweensOf(t,n),s=i.length;s--;)qd!==i[s]&&i[s].kill(t,e);return this},n.getTweensOf=function(t,e){for(var n,i=[],s=ld(t),r=this._first,o=Vh(e);r;)r instanceof tp?Au(r._targets,s)&&(o?(!qd||r._initted&&r._ts)&&r.globalTime(0)<=e&&r.globalTime(r.totalDuration())>e:!e||r.isActive())&&i.push(r):(n=r.getTweensOf(s,e)).length&&i.push.apply(i,n),r=r._next;return i},n.tweenTo=function(t,e){e=e||{};var n,i=this,s=td(i,t),r=e,o=r.startAt,a=r.onStart,l=r.onStartParams,c=r.immediateRender,h=tp.to(i,Nu({ease:e.ease||\\\\\\\"none\\\\\\\",lazy:!1,immediateRender:!1,time:s,overwrite:\\\\\\\"auto\\\\\\\",duration:e.duration||Math.abs((s-(o&&\\\\\\\"time\\\\\\\"in o?o.time:i._time))/i.timeScale())||Rh,onStart:function(){if(i.pause(),!n){var t=e.duration||Math.abs((s-(o&&\\\\\\\"time\\\\\\\"in o?o.time:i._time))/i.timeScale());h._dur!==t&&Zu(h,t,0,1).render(h._time,!0,!0),n=1}a&&a.apply(h,l||[])}},e));return c?h.render(0):h},n.tweenFromTo=function(t,e,n){return this.tweenTo(e,Nu({startAt:{time:td(this,t)}},n))},n.recent=function(){return this._recent},n.nextLabel=function(t){return void 0===t&&(t=this._time),gd(this,td(this,t))},n.previousLabel=function(t){return void 0===t&&(t=this._time),gd(this,td(this,t),1)},n.currentLabel=function(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+Rh)},n.shiftChildren=function(t,e,n){void 0===n&&(n=0);for(var i,s=this._first,r=this.labels;s;)s._start>=n&&(s._start+=t,s._end+=t),s=s._next;if(e)for(i in r)r[i]>=n&&(r[i]+=t);return Bu(this)},n.invalidate=function(){var e=this._first;for(this._lock=0;e;)e.invalidate(),e=e._next;return t.prototype.invalidate.call(this)},n.clear=function(t){void 0===t&&(t=!0);for(var e,n=this._first;n;)e=n._next,this.remove(n),n=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),Bu(this)},n.totalDuration=function(t){var e,n,i,s=0,r=this,o=r._last,a=Ph;if(arguments.length)return r.timeScale((r._repeat<0?r.duration():r.totalDuration())/(r.reversed()?-t:t));if(r._dirty){for(i=r.parent;o;)e=o._prev,o._dirty&&o.totalDuration(),(n=o._start)>a&&r._sort&&o._ts&&!r._lock?(r._lock=1,qu(r,o,n-o._delay,1)._lock=0):a=n,n<0&&o._ts&&(s-=n,(!i&&!r._dp||i&&i.smoothChildTiming)&&(r._start+=n/r._ts,r._time-=n,r._tTime-=n),r.shiftChildren(-n,!1,-Infinity),a=0),o._end>s&&o._ts&&(s=o._end),o=e;Zu(r,r===vh&&r._time>s?r._time:s,1,1),r._dirty=0}return r._tDur},e.updateRoot=function(t){if(vh._ts&&(Eu(vh,Vu(t,vh)),Th=Ld.frame),Ld.frame>=mu){mu+=Lh.autoSleep||120;var e=vh._first;if((!e||!e._ts)&&Lh.autoSleep&&Ld._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||Ld.sleep()}}},e}(jd);Nu(Wd.prototype,{_lock:0,_hasPause:0,_forcing:0});var qd,Xd=function(t,e,n,i,s,r,o){var a,l,c,h,u,d,p,_,m=new _p(this._pt,t,e,0,1,lp,null,s),f=0,g=0;for(m.b=n,m.e=i,n+=\\\\\\\"\\\\\\\",(p=~(i+=\\\\\\\"\\\\\\\").indexOf(\\\\\\\"random(\\\\\\\"))&&(i=md(i)),r&&(r(_=[n,i],t,e),n=_[0],i=_[1]),l=n.match(Qh)||[];a=Qh.exec(i);)h=a[0],u=i.substring(f,a.index),c?c=(c+1)%5:\\\\\\\"rgba(\\\\\\\"===u.substr(-5)&&(c=1),h!==l[g++]&&(d=parseFloat(l[g-1])||0,m._pt={_next:m._pt,p:u||1===g?u:\\\\\\\",\\\\\\\",s:d,c:\\\\\\\"=\\\\\\\"===h.charAt(1)?parseFloat(h.substr(2))*(\\\\\\\"-\\\\\\\"===h.charAt(0)?-1:1):parseFloat(h)-d,m:c&&c<4?Math.round:0},f=Qh.lastIndex);return m.c=f<i.length?i.substring(f,i.length):\\\\\\\"\\\\\\\",m.fp=o,(tu.test(i)||p)&&(m.e=0),this._pt=m,m},Yd=function(t,e,n,i,s,r,o,a,l){Gh(i)&&(i=i(s||0,t,r));var c,h=t[e],u=\\\\\\\"get\\\\\\\"!==n?n:Gh(h)?l?t[e.indexOf(\\\\\\\"set\\\\\\\")||!Gh(t[\\\\\\\"get\\\\\\\"+e.substr(3)])?e:\\\\\\\"get\\\\\\\"+e.substr(3)](l):t[e]():h,d=Gh(h)?l?ip:np:ep;if(Uh(i)&&(~i.indexOf(\\\\\\\"random(\\\\\\\")&&(i=md(i)),\\\\\\\"=\\\\\\\"===i.charAt(1)&&((c=parseFloat(u)+parseFloat(i.substr(2))*(\\\\\\\"-\\\\\\\"===i.charAt(0)?-1:1)+(sd(u)||0))||0===c)&&(i=c)),u!==i)return isNaN(u*i)||\\\\\\\"\\\\\\\"===i?(!h&&!(e in t)&&ou(e,i),Xd.call(this,t,e,u,i,d,a||Lh.stringFilter,l)):(c=new _p(this._pt,t,e,+u||0,i-(u||0),\\\\\\\"boolean\\\\\\\"==typeof h?ap:op,0,d),l&&(c.fp=l),o&&c.modifier(o,this,t),this._pt=c)},$d=function(t,e,n,i,s,r){var o,a,l,c;if(pu[t]&&!1!==(o=new pu[t]).init(s,o.rawVars?e[t]:function(t,e,n,i,s){if(Gh(t)&&(t=Zd(t,s,e,n,i)),!jh(t)||t.style&&t.nodeType||$h(t)||Yh(t))return Uh(t)?Zd(t,s,e,n,i):t;var r,o={};for(r in t)o[r]=Zd(t[r],s,e,n,i);return o}(e[t],i,s,r,n),n,i,r)&&(n._pt=a=new _p(n._pt,s,t,0,1,o.render,o,0,o.priority),n!==Ah))for(l=n._ptLookup[n._targets.indexOf(s)],c=o._props.length;c--;)l[o._props[c]]=a;return o},Jd=function t(e,n){var i,s,r,o,a,l,c,h,u,d,p,_,m,f=e.vars,g=f.ease,v=f.startAt,y=f.immediateRender,x=f.lazy,b=f.onUpdate,w=f.onUpdateParams,T=f.callbackScope,A=f.runBackwards,M=f.yoyoEase,E=f.keyframes,S=f.autoRevert,C=e._dur,N=e._startAt,L=e._targets,O=e.parent,P=O&&\\\\\\\"nested\\\\\\\"===O.data?O.parent._targets:L,R=\\\\\\\"auto\\\\\\\"===e._overwrite&&!gh,I=e.timeline;if(I&&(!E||!g)&&(g=\\\\\\\"none\\\\\\\"),e._ease=zd(g,Oh.ease),e._yEase=M?Dd(zd(!0===M?g:M,Oh.ease)):0,M&&e._yoyo&&!e._repeat&&(M=e._yEase,e._yEase=e._ease,e._ease=M),e._from=!I&&!!f.runBackwards,!I){if(_=(h=L[0]?yu(L[0]).harness:0)&&f[h.prop],i=Ru(f,hu),N&&N.render(-1,!0).kill(),v)if(Du(e._startAt=tp.set(L,Nu({data:\\\\\\\"isStart\\\\\\\",overwrite:!1,parent:O,immediateRender:!0,lazy:Wh(x),startAt:null,delay:0,onUpdate:b,onUpdateParams:w,callbackScope:T,stagger:0},v))),n<0&&!y&&!S&&e._startAt.render(-1,!0),y){if(n>0&&!S&&(e._startAt=0),C&&n<=0)return void(n&&(e._zTime=n))}else!1===S&&(e._startAt=0);else if(A&&C)if(N)!S&&(e._startAt=0);else if(n&&(y=!1),r=Nu({overwrite:!1,data:\\\\\\\"isFromStart\\\\\\\",lazy:y&&Wh(x),immediateRender:y,stagger:0,parent:O},i),_&&(r[h.prop]=_),Du(e._startAt=tp.set(L,r)),n<0&&e._startAt.render(-1,!0),y){if(!n)return}else t(e._startAt,Rh);for(e._pt=0,x=C&&Wh(x)||x&&!C,s=0;s<L.length;s++){if(c=(a=L[s])._gsap||vu(L)[s]._gsap,e._ptLookup[s]=d={},du[c.id]&&uu.length&&Mu(),p=P===L?s:P.indexOf(a),h&&!1!==(u=new h).init(a,_||i,e,p,P)&&(e._pt=o=new _p(e._pt,a,u.name,0,1,u.render,u,0,u.priority),u._props.forEach((function(t){d[t]=o})),u.priority&&(l=1)),!h||_)for(r in i)pu[r]&&(u=$d(r,i,e,p,a,P))?u.priority&&(l=1):d[r]=o=Yd.call(e,a,r,\\\\\\\"get\\\\\\\",i[r],p,P,0,f.stringFilter);e._op&&e._op[s]&&e.kill(a,e._op[s]),R&&e._pt&&(qd=e,vh.killTweensOf(a,d,e.globalTime(n)),m=!e.parent,qd=0),e._pt&&x&&(du[c.id]=1)}l&&pp(e),e._onInit&&e._onInit(e)}e._onUpdate=b,e._initted=(!e._op||e._pt)&&!m},Zd=function(t,e,n,i,s){return Gh(t)?t.call(e,n,i,s):Uh(t)&&~t.indexOf(\\\\\\\"random(\\\\\\\")?md(t):t},Kd=gu+\\\\\\\"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase\\\\\\\",Qd=(Kd+\\\\\\\",id,stagger,delay,duration,paused,scrollTrigger\\\\\\\").split(\\\\\\\",\\\\\\\"),tp=function(t){function e(e,n,i,s){var r;\\\\\\\"number\\\\\\\"==typeof n&&(i.duration=n,n=i,i=null);var o,a,l,c,h,u,d,p,_=(r=t.call(this,s?n:Iu(n))||this).vars,m=_.duration,f=_.delay,g=_.immediateRender,v=_.stagger,y=_.overwrite,x=_.keyframes,b=_.defaults,w=_.scrollTrigger,T=_.yoyoEase,A=n.parent||vh,M=($h(e)||Yh(e)?Vh(e[0]):\\\\\\\"length\\\\\\\"in n)?[e]:ld(e);if(r._targets=M.length?vu(M):au(\\\\\\\"GSAP target \\\\\\\"+e+\\\\\\\" not found. https://greensock.com\\\\\\\",!Lh.nullTargetWarn)||[],r._ptLookup=[],r._overwrite=y,x||v||Xh(m)||Xh(f)){if(n=r.vars,(o=r.timeline=new Wd({data:\\\\\\\"nested\\\\\\\",defaults:b||{}})).kill(),o.parent=o._dp=mh(r),o._start=0,x)Iu(Nu(o.vars.defaults,{ease:\\\\\\\"none\\\\\\\"})),v?M.forEach((function(t,e){return x.forEach((function(n,i){return o.to(t,n,i?\\\\\\\">\\\\\\\":e*v)}))})):x.forEach((function(t){return o.to(M,t,\\\\\\\">\\\\\\\")}));else{if(c=M.length,d=v?hd(v):cu,jh(v))for(h in v)~Kd.indexOf(h)&&(p||(p={}),p[h]=v[h]);for(a=0;a<c;a++){for(h in l={},n)Qd.indexOf(h)<0&&(l[h]=n[h]);l.stagger=0,T&&(l.yoyoEase=T),p&&Ou(l,p),u=M[a],l.duration=+Zd(m,mh(r),a,u,M),l.delay=(+Zd(f,mh(r),a,u,M)||0)-r._delay,!v&&1===c&&l.delay&&(r._delay=f=l.delay,r._start+=f,l.delay=0),o.to(u,l,d(a,u,M))}o.duration()?m=f=0:r.timeline=0}m||r.duration(m=o.duration())}else r.timeline=0;return!0!==y||gh||(qd=mh(r),vh.killTweensOf(M),qd=0),qu(A,mh(r),i),n.reversed&&r.reverse(),n.paused&&r.paused(!0),(g||!m&&!x&&r._start===Tu(A._time)&&Wh(g)&&ku(mh(r))&&\\\\\\\"nested\\\\\\\"!==A.data)&&(r._tTime=-1e-8,r.render(Math.max(0,-f))),w&&Xu(mh(r),w),r}fh(e,t);var n=e.prototype;return n.render=function(t,e,n){var i,s,r,o,a,l,c,h,u,d=this._time,p=this._tDur,_=this._dur,m=t>p-Rh&&t>=0?p:t<Rh?0:t;if(_){if(m!==this._tTime||!t||n||!this._initted&&this._tTime||this._startAt&&this._zTime<0!=t<0){if(i=m,h=this.timeline,this._repeat){if(o=_+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*o+t,e,n);if(i=Tu(m%o),m===p?(r=this._repeat,i=_):((r=~~(m/o))&&r===m/o&&(i=_,r--),i>_&&(i=_)),(l=this._yoyo&&1&r)&&(u=this._yEase,i=_-i),a=Gu(this._tTime,o),i===d&&!n&&this._initted)return this;r!==a&&(h&&this._yEase&&Bd(h,l),!this.vars.repeatRefresh||l||this._lock||(this._lock=n=1,this.render(Tu(o*r),!0).invalidate()._lock=0))}if(!this._initted){if(Yu(this,t<0?t:i,n,e))return this._tTime=0,this;if(_!==this._dur)return this.render(t,e,n)}if(this._tTime=m,this._time=i,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=c=(u||this._ease)(i/_),this._from&&(this.ratio=c=1-c),i&&!d&&!e&&(vd(this,\\\\\\\"onStart\\\\\\\"),this._tTime!==m))return this;for(s=this._pt;s;)s.r(c,s.d),s=s._next;h&&h.render(t<0?t:!i&&l?-1e-8:h._dur*c,e,n)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(t<0&&this._startAt&&this._startAt.render(t,!0,n),vd(this,\\\\\\\"onUpdate\\\\\\\")),this._repeat&&r!==a&&this.vars.onRepeat&&!e&&this.parent&&vd(this,\\\\\\\"onRepeat\\\\\\\"),m!==this._tDur&&m||this._tTime!==m||(t<0&&this._startAt&&!this._onUpdate&&this._startAt.render(t,!0,!0),(t||!_)&&(m===this._tDur&&this._ts>0||!m&&this._ts<0)&&Du(this,1),e||t<0&&!d||!m&&!d||(vd(this,m===p?\\\\\\\"onComplete\\\\\\\":\\\\\\\"onReverseComplete\\\\\\\",!0),this._prom&&!(m<p&&this.timeScale()>0)&&this._prom()))}}else!function(t,e,n,i){var s,r,o,a=t.ratio,l=e<0||!e&&(!t._start&&$u(t)&&(t._initted||!Ju(t))||(t._ts<0||t._dp._ts<0)&&!Ju(t))?0:1,c=t._rDelay,h=0;if(c&&t._repeat&&(h=id(0,t._tDur,e),r=Gu(h,c),o=Gu(t._tTime,c),t._yoyo&&1&r&&(l=1-l),r!==o&&(a=1-l,t.vars.repeatRefresh&&t._initted&&t.invalidate())),l!==a||i||t._zTime===Rh||!e&&t._zTime){if(!t._initted&&Yu(t,e,i,n))return;for(o=t._zTime,t._zTime=e||(n?Rh:0),n||(n=e&&!o),t.ratio=l,t._from&&(l=1-l),t._time=0,t._tTime=h,s=t._pt;s;)s.r(l,s.d),s=s._next;t._startAt&&e<0&&t._startAt.render(e,!0,!0),t._onUpdate&&!n&&vd(t,\\\\\\\"onUpdate\\\\\\\"),h&&t._repeat&&!n&&t.parent&&vd(t,\\\\\\\"onRepeat\\\\\\\"),(e>=t._tDur||e<0)&&t.ratio===l&&(l&&Du(t,1),n||(vd(t,l?\\\\\\\"onComplete\\\\\\\":\\\\\\\"onReverseComplete\\\\\\\",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)}(this,t,e,n);return this},n.targets=function(){return this._targets},n.invalidate=function(){return this._pt=this._op=this._startAt=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(),t.prototype.invalidate.call(this)},n.kill=function(t,e){if(void 0===e&&(e=\\\\\\\"all\\\\\\\"),!(t||e&&\\\\\\\"all\\\\\\\"!==e))return this._lazy=this._pt=0,this.parent?yd(this):this;if(this.timeline){var n=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,qd&&!0!==qd.vars.overwrite)._first||yd(this),this.parent&&n!==this.timeline.totalDuration()&&Zu(this,this._dur*this.timeline._tDur/n,0,1),this}var i,s,r,o,a,l,c,h=this._targets,u=t?ld(t):h,d=this._ptLookup,p=this._pt;if((!e||\\\\\\\"all\\\\\\\"===e)&&function(t,e){for(var n=t.length,i=n===e.length;i&&n--&&t[n]===e[n];);return n<0}(h,u))return\\\\\\\"all\\\\\\\"===e&&(this._pt=0),yd(this);for(i=this._op=this._op||[],\\\\\\\"all\\\\\\\"!==e&&(Uh(e)&&(a={},bu(e,(function(t){return a[t]=1})),e=a),e=function(t,e){var n,i,s,r,o=t[0]?yu(t[0]).harness:0,a=o&&o.aliases;if(!a)return e;for(i in n=Ou({},e),a)if(i in n)for(s=(r=a[i].split(\\\\\\\",\\\\\\\")).length;s--;)n[r[s]]=n[i];return n}(h,e)),c=h.length;c--;)if(~u.indexOf(h[c]))for(a in s=d[c],\\\\\\\"all\\\\\\\"===e?(i[c]=e,o=s,r={}):(r=i[c]=i[c]||{},o=e),o)(l=s&&s[a])&&(\\\\\\\"kill\\\\\\\"in l.d&&!0!==l.d.kill(a)||Fu(this,l,\\\\\\\"_pt\\\\\\\"),delete s[a]),\\\\\\\"all\\\\\\\"!==r&&(r[a]=1);return this._initted&&!this._pt&&p&&yd(this),this},e.to=function(t,n){return new e(t,n,arguments[2])},e.from=function(t,e){return ed(1,arguments)},e.delayedCall=function(t,n,i,s){return new e(n,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:n,onReverseComplete:n,onCompleteParams:i,onReverseCompleteParams:i,callbackScope:s})},e.fromTo=function(t,e,n){return ed(2,arguments)},e.set=function(t,n){return n.duration=0,n.repeatDelay||(n.repeat=0),new e(t,n)},e.killTweensOf=function(t,e,n){return vh.killTweensOf(t,e,n)},e}(jd);Nu(tp.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),bu(\\\\\\\"staggerTo,staggerFrom,staggerFromTo\\\\\\\",(function(t){tp[t]=function(){var e=new Wd,n=rd.call(arguments,0);return n.splice(\\\\\\\"staggerFromTo\\\\\\\"===t?5:4,0,0),e[t].apply(e,n)}}));var ep=function(t,e,n){return t[e]=n},np=function(t,e,n){return t[e](n)},ip=function(t,e,n,i){return t[e](i.fp,n)},sp=function(t,e,n){return t.setAttribute(e,n)},rp=function(t,e){return Gh(t[e])?np:Hh(t[e])&&t.setAttribute?sp:ep},op=function(t,e){return e.set(e.t,e.p,Math.round(1e6*(e.s+e.c*t))/1e6,e)},ap=function(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},lp=function(t,e){var n=e._pt,i=\\\\\\\"\\\\\\\";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{for(;n;)i=n.p+(n.m?n.m(n.s+n.c*t):Math.round(1e4*(n.s+n.c*t))/1e4)+i,n=n._next;i+=e.c}e.set(e.t,e.p,i,e)},cp=function(t,e){for(var n=e._pt;n;)n.r(t,n.d),n=n._next},hp=function(t,e,n,i){for(var s,r=this._pt;r;)s=r._next,r.p===i&&r.modifier(t,e,n),r=s},up=function(t){for(var e,n,i=this._pt;i;)n=i._next,i.p===t&&!i.op||i.op===t?Fu(this,i,\\\\\\\"_pt\\\\\\\"):i.dep||(e=1),i=n;return!e},dp=function(t,e,n,i){i.mSet(t,e,i.m.call(i.tween,n,i.mt),i)},pp=function(t){for(var e,n,i,s,r=t._pt;r;){for(e=r._next,n=i;n&&n.pr>r.pr;)n=n._next;(r._prev=n?n._prev:s)?r._prev._next=r:i=r,(r._next=n)?n._prev=r:s=r,r=e}t._pt=i},_p=function(){function t(t,e,n,i,s,r,o,a,l){this.t=e,this.s=i,this.c=s,this.p=n,this.r=r||op,this.d=o||this,this.set=a||ep,this.pr=l||0,this._next=t,t&&(t._prev=this)}return t.prototype.modifier=function(t,e,n){this.mSet=this.mSet||this.set,this.set=dp,this.m=t,this.mt=n,this.tween=e},t}();bu(gu+\\\\\\\"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\\\\\\\",(function(t){return hu[t]=1})),iu.TweenMax=iu.TweenLite=tp,iu.TimelineLite=iu.TimelineMax=Wd,vh=new Wd({sortChildren:!1,defaults:Oh,autoRemoveChildren:!0,id:\\\\\\\"root\\\\\\\",smoothChildTiming:!0}),Lh.stringFilter=Nd;var mp={registerPlugin:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];e.forEach((function(t){return xd(t)}))},timeline:function(t){return new Wd(t)},getTweensOf:function(t,e){return vh.getTweensOf(t,e)},getProperty:function(t,e,n,i){Uh(t)&&(t=ld(t)[0]);var s=yu(t||{}).get,r=n?Cu:Su;return\\\\\\\"native\\\\\\\"===n&&(n=\\\\\\\"\\\\\\\"),t?e?r((pu[e]&&pu[e].get||s)(t,e,n,i)):function(e,n,i){return r((pu[e]&&pu[e].get||s)(t,e,n,i))}:t},quickSetter:function(t,e,n){if((t=ld(t)).length>1){var i=t.map((function(t){return vp.quickSetter(t,e,n)})),s=i.length;return function(t){for(var e=s;e--;)i[e](t)}}t=t[0]||{};var r=pu[e],o=yu(t),a=o.harness&&(o.harness.aliases||{})[e]||e,l=r?function(e){var i=new r;Ah._pt=0,i.init(t,n?e+n:e,Ah,0,[t]),i.render(1,i),Ah._pt&&cp(1,Ah)}:o.set(t,a);return r?l:function(e){return l(t,a,n?e+n:e,o,1)}},isTweening:function(t){return vh.getTweensOf(t,!0).length>0},defaults:function(t){return t&&t.ease&&(t.ease=zd(t.ease,Oh.ease)),Pu(Oh,t||{})},config:function(t){return Pu(Lh,t||{})},registerEffect:function(t){var e=t.name,n=t.effect,i=t.plugins,s=t.defaults,r=t.extendTimeline;(i||\\\\\\\"\\\\\\\").split(\\\\\\\",\\\\\\\").forEach((function(t){return t&&!pu[t]&&!iu[t]&&au(e+\\\\\\\" effect requires \\\\\\\"+t+\\\\\\\" plugin.\\\\\\\")})),_u[e]=function(t,e,i){return n(ld(t),Nu(e||{},s),i)},r&&(Wd.prototype[e]=function(t,n,i){return this.add(_u[e](t,jh(n)?n:(i=n)&&{},this),i)})},registerEase:function(t,e){Pd[t]=zd(e)},parseEase:function(t,e){return arguments.length?zd(t,e):Pd},getById:function(t){return vh.getById(t)},exportRoot:function(t,e){void 0===t&&(t={});var n,i,s=new Wd(t);for(s.smoothChildTiming=Wh(t.smoothChildTiming),vh.remove(s),s._dp=0,s._time=s._tTime=vh._time,n=vh._first;n;)i=n._next,!e&&!n._dur&&n instanceof tp&&n.vars.onComplete===n._targets[0]||qu(s,n,n._start-n._delay),n=i;return qu(vh,s,0),s},utils:{wrap:function t(e,n,i){var s=n-e;return $h(e)?_d(e,t(0,e.length),n):nd(i,(function(t){return(s+(t-e)%s)%s+e}))},wrapYoyo:function t(e,n,i){var s=n-e,r=2*s;return $h(e)?_d(e,t(0,e.length-1),n):nd(i,(function(t){return e+((t=(r+(t-e)%r)%r||0)>s?r-t:t)}))},distribute:hd,random:pd,snap:dd,normalize:function(t,e,n){return fd(t,e,0,1,n)},getUnit:sd,clamp:function(t,e,n){return nd(n,(function(n){return id(t,e,n)}))},splitColor:Ad,toArray:ld,selector:function(t){return t=ld(t)[0]||au(\\\\\\\"Invalid scope\\\\\\\")||{},function(e){var n=t.current||t.nativeElement||t;return ld(e,n.querySelectorAll?n:n===t?au(\\\\\\\"Invalid scope\\\\\\\")||bh.createElement(\\\\\\\"div\\\\\\\"):t)}},mapRange:fd,pipe:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce((function(t,e){return e(t)}),t)}},unitize:function(t,e){return function(n){return t(parseFloat(n))+(e||sd(n))}},interpolate:function t(e,n,i,s){var r=isNaN(e+n)?0:function(t){return(1-t)*e+t*n};if(!r){var o,a,l,c,h,u=Uh(e),d={};if(!0===i&&(s=1)&&(i=null),u)e={p:e},n={p:n};else if($h(e)&&!$h(n)){for(l=[],c=e.length,h=c-2,a=1;a<c;a++)l.push(t(e[a-1],e[a]));c--,r=function(t){t*=c;var e=Math.min(h,~~t);return l[e](t-e)},i=n}else s||(e=Ou($h(e)?[]:{},e));if(!l){for(o in n)Yd.call(d,e,o,\\\\\\\"get\\\\\\\",n[o]);r=function(t){return cp(t,d)||(u?e.p:e)}}}return nd(i,r)},shuffle:cd},install:ru,effects:_u,ticker:Ld,updateRoot:Wd.updateRoot,plugins:pu,globalTimeline:vh,core:{PropTween:_p,globals:lu,Tween:tp,Timeline:Wd,Animation:jd,getCache:yu,_removeLinkedListItem:Fu,suppressOverwrites:function(t){return gh=t}}};bu(\\\\\\\"to,from,fromTo,delayedCall,set,killTweensOf\\\\\\\",(function(t){return mp[t]=tp[t]})),Ld.add(Wd.updateRoot),Ah=mp.to({},{duration:0});var fp=function(t,e){for(var n=t._pt;n&&n.p!==e&&n.op!==e&&n.fp!==e;)n=n._next;return n},gp=function(t,e){return{name:t,rawVars:1,init:function(t,n,i){i._onInit=function(t){var i,s;if(Uh(n)&&(i={},bu(n,(function(t){return i[t]=1})),n=i),e){for(s in i={},n)i[s]=e(n[s]);n=i}!function(t,e){var n,i,s,r=t._targets;for(n in e)for(i=r.length;i--;)(s=t._ptLookup[i][n])&&(s=s.d)&&(s._pt&&(s=fp(s,n)),s&&s.modifier&&s.modifier(e[n],t,r[i],n))}(t,n)}}}},vp=mp.registerPlugin({name:\\\\\\\"attr\\\\\\\",init:function(t,e,n,i,s){var r,o;for(r in e)(o=this.add(t,\\\\\\\"setAttribute\\\\\\\",(t.getAttribute(r)||0)+\\\\\\\"\\\\\\\",e[r],i,s,0,0,r))&&(o.op=r),this._props.push(r)}},{name:\\\\\\\"endArray\\\\\\\",init:function(t,e){for(var n=e.length;n--;)this.add(t,n,t[n]||0,e[n])}},gp(\\\\\\\"roundProps\\\\\\\",ud),gp(\\\\\\\"modifiers\\\\\\\"),gp(\\\\\\\"snap\\\\\\\",dd))||mp;tp.version=Wd.version=vp.version=\\\\\\\"3.8.0\\\\\\\",wh=1,qh()&&Od();Pd.Power0,Pd.Power1,Pd.Power2,Pd.Power3,Pd.Power4,Pd.Linear,Pd.Quad,Pd.Cubic,Pd.Quart,Pd.Quint,Pd.Strong,Pd.Elastic,Pd.Back,Pd.SteppedEase,Pd.Bounce,Pd.Sine,Pd.Expo,Pd.Circ;var yp,xp,bp,wp,Tp,Ap,Mp,Ep={},Sp=180/Math.PI,Cp=Math.PI/180,Np=Math.atan2,Lp=/([A-Z])/g,Op=/(?:left|right|width|margin|padding|x)/i,Pp=/[\\\\s,\\\\(]\\\\S/,Rp={autoAlpha:\\\\\\\"opacity,visibility\\\\\\\",scale:\\\\\\\"scaleX,scaleY\\\\\\\",alpha:\\\\\\\"opacity\\\\\\\"},Ip=function(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)},Fp=function(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)},Dp=function(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)},Bp=function(t,e){var n=e.s+e.c*t;e.set(e.t,e.p,~~(n+(n<0?-.5:.5))+e.u,e)},zp=function(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)},kp=function(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)},Up=function(t,e,n){return t.style[e]=n},Gp=function(t,e,n){return t.style.setProperty(e,n)},Vp=function(t,e,n){return t._gsap[e]=n},Hp=function(t,e,n){return t._gsap.scaleX=t._gsap.scaleY=n},jp=function(t,e,n,i,s){var r=t._gsap;r.scaleX=r.scaleY=n,r.renderTransform(s,r)},Wp=function(t,e,n,i,s){var r=t._gsap;r[e]=n,r.renderTransform(s,r)},qp=\\\\\\\"transform\\\\\\\",Xp=qp+\\\\\\\"Origin\\\\\\\",Yp=function(t,e){var n=xp.createElementNS?xp.createElementNS((e||\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\").replace(/^https/,\\\\\\\"http\\\\\\\"),t):xp.createElement(t);return n.style?n:xp.createElement(t)},$p=function t(e,n,i){var s=getComputedStyle(e);return s[n]||s.getPropertyValue(n.replace(Lp,\\\\\\\"-$1\\\\\\\").toLowerCase())||s.getPropertyValue(n)||!i&&t(e,Zp(n)||n,1)||\\\\\\\"\\\\\\\"},Jp=\\\\\\\"O,Moz,ms,Ms,Webkit\\\\\\\".split(\\\\\\\",\\\\\\\"),Zp=function(t,e,n){var i=(e||Tp).style,s=5;if(t in i&&!n)return t;for(t=t.charAt(0).toUpperCase()+t.substr(1);s--&&!(Jp[s]+t in i););return s<0?null:(3===s?\\\\\\\"ms\\\\\\\":s>=0?Jp[s]:\\\\\\\"\\\\\\\")+t},Kp=function(){\\\\\\\"undefined\\\\\\\"!=typeof window&&window.document&&(yp=window,xp=yp.document,bp=xp.documentElement,Tp=Yp(\\\\\\\"div\\\\\\\")||{style:{}},Yp(\\\\\\\"div\\\\\\\"),qp=Zp(qp),Xp=qp+\\\\\\\"Origin\\\\\\\",Tp.style.cssText=\\\\\\\"border-width:0;line-height:0;position:absolute;padding:0\\\\\\\",Mp=!!Zp(\\\\\\\"perspective\\\\\\\"),wp=1)},Qp=function t(e){var n,i=Yp(\\\\\\\"svg\\\\\\\",this.ownerSVGElement&&this.ownerSVGElement.getAttribute(\\\\\\\"xmlns\\\\\\\")||\\\\\\\"http://www.w3.org/2000/svg\\\\\\\"),s=this.parentNode,r=this.nextSibling,o=this.style.cssText;if(bp.appendChild(i),i.appendChild(this),this.style.display=\\\\\\\"block\\\\\\\",e)try{n=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=t}catch(t){}else this._gsapBBox&&(n=this._gsapBBox());return s&&(r?s.insertBefore(this,r):s.appendChild(this)),bp.removeChild(i),this.style.cssText=o,n},t_=function(t,e){for(var n=e.length;n--;)if(t.hasAttribute(e[n]))return t.getAttribute(e[n])},e_=function(t){var e;try{e=t.getBBox()}catch(n){e=Qp.call(t,!0)}return e&&(e.width||e.height)||t.getBBox===Qp||(e=Qp.call(t,!0)),!e||e.width||e.x||e.y?e:{x:+t_(t,[\\\\\\\"x\\\\\\\",\\\\\\\"cx\\\\\\\",\\\\\\\"x1\\\\\\\"])||0,y:+t_(t,[\\\\\\\"y\\\\\\\",\\\\\\\"cy\\\\\\\",\\\\\\\"y1\\\\\\\"])||0,width:0,height:0}},n_=function(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!e_(t))},i_=function(t,e){if(e){var n=t.style;e in Ep&&e!==Xp&&(e=qp),n.removeProperty?(\\\\\\\"ms\\\\\\\"!==e.substr(0,2)&&\\\\\\\"webkit\\\\\\\"!==e.substr(0,6)||(e=\\\\\\\"-\\\\\\\"+e),n.removeProperty(e.replace(Lp,\\\\\\\"-$1\\\\\\\").toLowerCase())):n.removeAttribute(e)}},s_=function(t,e,n,i,s,r){var o=new _p(t._pt,e,n,0,1,r?kp:zp);return t._pt=o,o.b=i,o.e=s,t._props.push(n),o},r_={deg:1,rad:1,turn:1},o_=function t(e,n,i,s){var r,o,a,l,c=parseFloat(i)||0,h=(i+\\\\\\\"\\\\\\\").trim().substr((c+\\\\\\\"\\\\\\\").length)||\\\\\\\"px\\\\\\\",u=Tp.style,d=Op.test(n),p=\\\\\\\"svg\\\\\\\"===e.tagName.toLowerCase(),_=(p?\\\\\\\"client\\\\\\\":\\\\\\\"offset\\\\\\\")+(d?\\\\\\\"Width\\\\\\\":\\\\\\\"Height\\\\\\\"),m=100,f=\\\\\\\"px\\\\\\\"===s,g=\\\\\\\"%\\\\\\\"===s;return s===h||!c||r_[s]||r_[h]?c:(\\\\\\\"px\\\\\\\"!==h&&!f&&(c=t(e,n,i,\\\\\\\"px\\\\\\\")),l=e.getCTM&&n_(e),!g&&\\\\\\\"%\\\\\\\"!==h||!Ep[n]&&!~n.indexOf(\\\\\\\"adius\\\\\\\")?(u[d?\\\\\\\"width\\\\\\\":\\\\\\\"height\\\\\\\"]=m+(f?h:s),o=~n.indexOf(\\\\\\\"adius\\\\\\\")||\\\\\\\"em\\\\\\\"===s&&e.appendChild&&!p?e:e.parentNode,l&&(o=(e.ownerSVGElement||{}).parentNode),o&&o!==xp&&o.appendChild||(o=xp.body),(a=o._gsap)&&g&&a.width&&d&&a.time===Ld.time?wu(c/a.width*m):((g||\\\\\\\"%\\\\\\\"===h)&&(u.position=$p(e,\\\\\\\"position\\\\\\\")),o===e&&(u.position=\\\\\\\"static\\\\\\\"),o.appendChild(Tp),r=Tp[_],o.removeChild(Tp),u.position=\\\\\\\"absolute\\\\\\\",d&&g&&((a=yu(o)).time=Ld.time,a.width=o[_]),wu(f?r*c/m:r&&c?m/r*c:0))):(r=l?e.getBBox()[d?\\\\\\\"width\\\\\\\":\\\\\\\"height\\\\\\\"]:e[_],wu(g?c/r*m:c/100*r)))},a_=function(t,e,n,i){var s;return wp||Kp(),e in Rp&&\\\\\\\"transform\\\\\\\"!==e&&~(e=Rp[e]).indexOf(\\\\\\\",\\\\\\\")&&(e=e.split(\\\\\\\",\\\\\\\")[0]),Ep[e]&&\\\\\\\"transform\\\\\\\"!==e?(s=v_(t,i),s=\\\\\\\"transformOrigin\\\\\\\"!==e?s[e]:s.svg?s.origin:y_($p(t,Xp))+\\\\\\\" \\\\\\\"+s.zOrigin+\\\\\\\"px\\\\\\\"):(!(s=t.style[e])||\\\\\\\"auto\\\\\\\"===s||i||~(s+\\\\\\\"\\\\\\\").indexOf(\\\\\\\"calc(\\\\\\\"))&&(s=u_[e]&&u_[e](t,e,n)||$p(t,e)||xu(t,e)||(\\\\\\\"opacity\\\\\\\"===e?1:0)),n&&!~(s+\\\\\\\"\\\\\\\").trim().indexOf(\\\\\\\" \\\\\\\")?o_(t,e,s,n)+n:s},l_=function(t,e,n,i){if(!n||\\\\\\\"none\\\\\\\"===n){var s=Zp(e,t,1),r=s&&$p(t,s,1);r&&r!==n?(e=s,n=r):\\\\\\\"borderColor\\\\\\\"===e&&(n=$p(t,\\\\\\\"borderTopColor\\\\\\\"))}var o,a,l,c,h,u,d,p,_,m,f,g,v=new _p(this._pt,t.style,e,0,1,lp),y=0,x=0;if(v.b=n,v.e=i,n+=\\\\\\\"\\\\\\\",\\\\\\\"auto\\\\\\\"===(i+=\\\\\\\"\\\\\\\")&&(t.style[e]=i,i=$p(t,e)||i,t.style[e]=n),Nd(o=[n,i]),i=o[1],l=(n=o[0]).match(Kh)||[],(i.match(Kh)||[]).length){for(;a=Kh.exec(i);)d=a[0],_=i.substring(y,a.index),h?h=(h+1)%5:\\\\\\\"rgba(\\\\\\\"!==_.substr(-5)&&\\\\\\\"hsla(\\\\\\\"!==_.substr(-5)||(h=1),d!==(u=l[x++]||\\\\\\\"\\\\\\\")&&(c=parseFloat(u)||0,f=u.substr((c+\\\\\\\"\\\\\\\").length),(g=\\\\\\\"=\\\\\\\"===d.charAt(1)?+(d.charAt(0)+\\\\\\\"1\\\\\\\"):0)&&(d=d.substr(2)),p=parseFloat(d),m=d.substr((p+\\\\\\\"\\\\\\\").length),y=Kh.lastIndex-m.length,m||(m=m||Lh.units[e]||f,y===i.length&&(i+=m,v.e+=m)),f!==m&&(c=o_(t,e,u,m)||0),v._pt={_next:v._pt,p:_||1===x?_:\\\\\\\",\\\\\\\",s:c,c:g?g*p:p-c,m:h&&h<4||\\\\\\\"zIndex\\\\\\\"===e?Math.round:0});v.c=y<i.length?i.substring(y,i.length):\\\\\\\"\\\\\\\"}else v.r=\\\\\\\"display\\\\\\\"===e&&\\\\\\\"none\\\\\\\"===i?kp:zp;return tu.test(i)&&(v.e=0),this._pt=v,v},c_={top:\\\\\\\"0%\\\\\\\",bottom:\\\\\\\"100%\\\\\\\",left:\\\\\\\"0%\\\\\\\",right:\\\\\\\"100%\\\\\\\",center:\\\\\\\"50%\\\\\\\"},h_=function(t,e){if(e.tween&&e.tween._time===e.tween._dur){var n,i,s,r=e.t,o=r.style,a=e.u,l=r._gsap;if(\\\\\\\"all\\\\\\\"===a||!0===a)o.cssText=\\\\\\\"\\\\\\\",i=1;else for(s=(a=a.split(\\\\\\\",\\\\\\\")).length;--s>-1;)n=a[s],Ep[n]&&(i=1,n=\\\\\\\"transformOrigin\\\\\\\"===n?Xp:qp),i_(r,n);i&&(i_(r,qp),l&&(l.svg&&r.removeAttribute(\\\\\\\"transform\\\\\\\"),v_(r,1),l.uncache=1))}},u_={clearProps:function(t,e,n,i,s){if(\\\\\\\"isFromStart\\\\\\\"!==s.data){var r=t._pt=new _p(t._pt,e,n,0,0,h_);return r.u=i,r.pr=-10,r.tween=s,t._props.push(n),1}}},d_=[1,0,0,1,0,0],p_={},__=function(t){return\\\\\\\"matrix(1, 0, 0, 1, 0, 0)\\\\\\\"===t||\\\\\\\"none\\\\\\\"===t||!t},m_=function(t){var e=$p(t,qp);return __(e)?d_:e.substr(7).match(Zh).map(wu)},f_=function(t,e){var n,i,s,r,o=t._gsap||yu(t),a=t.style,l=m_(t);return o.svg&&t.getAttribute(\\\\\\\"transform\\\\\\\")?\\\\\\\"1,0,0,1,0,0\\\\\\\"===(l=[(s=t.transform.baseVal.consolidate().matrix).a,s.b,s.c,s.d,s.e,s.f]).join(\\\\\\\",\\\\\\\")?d_:l:(l!==d_||t.offsetParent||t===bp||o.svg||(s=a.display,a.display=\\\\\\\"block\\\\\\\",(n=t.parentNode)&&t.offsetParent||(r=1,i=t.nextSibling,bp.appendChild(t)),l=m_(t),s?a.display=s:i_(t,\\\\\\\"display\\\\\\\"),r&&(i?n.insertBefore(t,i):n?n.appendChild(t):bp.removeChild(t))),e&&l.length>6?[l[0],l[1],l[4],l[5],l[12],l[13]]:l)},g_=function(t,e,n,i,s,r){var o,a,l,c=t._gsap,h=s||f_(t,!0),u=c.xOrigin||0,d=c.yOrigin||0,p=c.xOffset||0,_=c.yOffset||0,m=h[0],f=h[1],g=h[2],v=h[3],y=h[4],x=h[5],b=e.split(\\\\\\\" \\\\\\\"),w=parseFloat(b[0])||0,T=parseFloat(b[1])||0;n?h!==d_&&(a=m*v-f*g)&&(l=w*(-f/a)+T*(m/a)-(m*x-f*y)/a,w=w*(v/a)+T*(-g/a)+(g*x-v*y)/a,T=l):(w=(o=e_(t)).x+(~b[0].indexOf(\\\\\\\"%\\\\\\\")?w/100*o.width:w),T=o.y+(~(b[1]||b[0]).indexOf(\\\\\\\"%\\\\\\\")?T/100*o.height:T)),i||!1!==i&&c.smooth?(y=w-u,x=T-d,c.xOffset=p+(y*m+x*g)-y,c.yOffset=_+(y*f+x*v)-x):c.xOffset=c.yOffset=0,c.xOrigin=w,c.yOrigin=T,c.smooth=!!i,c.origin=e,c.originIsAbsolute=!!n,t.style[Xp]=\\\\\\\"0px 0px\\\\\\\",r&&(s_(r,c,\\\\\\\"xOrigin\\\\\\\",u,w),s_(r,c,\\\\\\\"yOrigin\\\\\\\",d,T),s_(r,c,\\\\\\\"xOffset\\\\\\\",p,c.xOffset),s_(r,c,\\\\\\\"yOffset\\\\\\\",_,c.yOffset)),t.setAttribute(\\\\\\\"data-svg-origin\\\\\\\",w+\\\\\\\" \\\\\\\"+T)},v_=function(t,e){var n=t._gsap||new Hd(t);if(\\\\\\\"x\\\\\\\"in n&&!e&&!n.uncache)return n;var i,s,r,o,a,l,c,h,u,d,p,_,m,f,g,v,y,x,b,w,T,A,M,E,S,C,N,L,O,P,R,I,F=t.style,D=n.scaleX<0,B=\\\\\\\"px\\\\\\\",z=\\\\\\\"deg\\\\\\\",k=$p(t,Xp)||\\\\\\\"0\\\\\\\";return i=s=r=l=c=h=u=d=p=0,o=a=1,n.svg=!(!t.getCTM||!n_(t)),f=f_(t,n.svg),n.svg&&(E=(!n.uncache||\\\\\\\"0px 0px\\\\\\\"===k)&&!e&&t.getAttribute(\\\\\\\"data-svg-origin\\\\\\\"),g_(t,E||k,!!E||n.originIsAbsolute,!1!==n.smooth,f)),_=n.xOrigin||0,m=n.yOrigin||0,f!==d_&&(x=f[0],b=f[1],w=f[2],T=f[3],i=A=f[4],s=M=f[5],6===f.length?(o=Math.sqrt(x*x+b*b),a=Math.sqrt(T*T+w*w),l=x||b?Np(b,x)*Sp:0,(u=w||T?Np(w,T)*Sp+l:0)&&(a*=Math.abs(Math.cos(u*Cp))),n.svg&&(i-=_-(_*x+m*w),s-=m-(_*b+m*T))):(I=f[6],P=f[7],N=f[8],L=f[9],O=f[10],R=f[11],i=f[12],s=f[13],r=f[14],c=(g=Np(I,O))*Sp,g&&(E=A*(v=Math.cos(-g))+N*(y=Math.sin(-g)),S=M*v+L*y,C=I*v+O*y,N=A*-y+N*v,L=M*-y+L*v,O=I*-y+O*v,R=P*-y+R*v,A=E,M=S,I=C),h=(g=Np(-w,O))*Sp,g&&(v=Math.cos(-g),R=T*(y=Math.sin(-g))+R*v,x=E=x*v-N*y,b=S=b*v-L*y,w=C=w*v-O*y),l=(g=Np(b,x))*Sp,g&&(E=x*(v=Math.cos(g))+b*(y=Math.sin(g)),S=A*v+M*y,b=b*v-x*y,M=M*v-A*y,x=E,A=S),c&&Math.abs(c)+Math.abs(l)>359.9&&(c=l=0,h=180-h),o=wu(Math.sqrt(x*x+b*b+w*w)),a=wu(Math.sqrt(M*M+I*I)),g=Np(A,M),u=Math.abs(g)>2e-4?g*Sp:0,p=R?1/(R<0?-R:R):0),n.svg&&(E=t.getAttribute(\\\\\\\"transform\\\\\\\"),n.forceCSS=t.setAttribute(\\\\\\\"transform\\\\\\\",\\\\\\\"\\\\\\\")||!__($p(t,qp)),E&&t.setAttribute(\\\\\\\"transform\\\\\\\",E))),Math.abs(u)>90&&Math.abs(u)<270&&(D?(o*=-1,u+=l<=0?180:-180,l+=l<=0?180:-180):(a*=-1,u+=u<=0?180:-180)),n.x=i-((n.xPercent=i&&(n.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-i)?-50:0)))?t.offsetWidth*n.xPercent/100:0)+B,n.y=s-((n.yPercent=s&&(n.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-s)?-50:0)))?t.offsetHeight*n.yPercent/100:0)+B,n.z=r+B,n.scaleX=wu(o),n.scaleY=wu(a),n.rotation=wu(l)+z,n.rotationX=wu(c)+z,n.rotationY=wu(h)+z,n.skewX=u+z,n.skewY=d+z,n.transformPerspective=p+B,(n.zOrigin=parseFloat(k.split(\\\\\\\" \\\\\\\")[2])||0)&&(F[Xp]=y_(k)),n.xOffset=n.yOffset=0,n.force3D=Lh.force3D,n.renderTransform=n.svg?E_:Mp?M_:b_,n.uncache=0,n},y_=function(t){return(t=t.split(\\\\\\\" \\\\\\\"))[0]+\\\\\\\" \\\\\\\"+t[1]},x_=function(t,e,n){var i=sd(e);return wu(parseFloat(e)+parseFloat(o_(t,\\\\\\\"x\\\\\\\",n+\\\\\\\"px\\\\\\\",i)))+i},b_=function(t,e){e.z=\\\\\\\"0px\\\\\\\",e.rotationY=e.rotationX=\\\\\\\"0deg\\\\\\\",e.force3D=0,M_(t,e)},w_=\\\\\\\"0deg\\\\\\\",T_=\\\\\\\"0px\\\\\\\",A_=\\\\\\\") \\\\\\\",M_=function(t,e){var n=e||this,i=n.xPercent,s=n.yPercent,r=n.x,o=n.y,a=n.z,l=n.rotation,c=n.rotationY,h=n.rotationX,u=n.skewX,d=n.skewY,p=n.scaleX,_=n.scaleY,m=n.transformPerspective,f=n.force3D,g=n.target,v=n.zOrigin,y=\\\\\\\"\\\\\\\",x=\\\\\\\"auto\\\\\\\"===f&&t&&1!==t||!0===f;if(v&&(h!==w_||c!==w_)){var b,w=parseFloat(c)*Cp,T=Math.sin(w),A=Math.cos(w);w=parseFloat(h)*Cp,b=Math.cos(w),r=x_(g,r,T*b*-v),o=x_(g,o,-Math.sin(w)*-v),a=x_(g,a,A*b*-v+v)}m!==T_&&(y+=\\\\\\\"perspective(\\\\\\\"+m+A_),(i||s)&&(y+=\\\\\\\"translate(\\\\\\\"+i+\\\\\\\"%, \\\\\\\"+s+\\\\\\\"%) \\\\\\\"),(x||r!==T_||o!==T_||a!==T_)&&(y+=a!==T_||x?\\\\\\\"translate3d(\\\\\\\"+r+\\\\\\\", \\\\\\\"+o+\\\\\\\", \\\\\\\"+a+\\\\\\\") \\\\\\\":\\\\\\\"translate(\\\\\\\"+r+\\\\\\\", \\\\\\\"+o+A_),l!==w_&&(y+=\\\\\\\"rotate(\\\\\\\"+l+A_),c!==w_&&(y+=\\\\\\\"rotateY(\\\\\\\"+c+A_),h!==w_&&(y+=\\\\\\\"rotateX(\\\\\\\"+h+A_),u===w_&&d===w_||(y+=\\\\\\\"skew(\\\\\\\"+u+\\\\\\\", \\\\\\\"+d+A_),1===p&&1===_||(y+=\\\\\\\"scale(\\\\\\\"+p+\\\\\\\", \\\\\\\"+_+A_),g.style[qp]=y||\\\\\\\"translate(0, 0)\\\\\\\"},E_=function(t,e){var n,i,s,r,o,a=e||this,l=a.xPercent,c=a.yPercent,h=a.x,u=a.y,d=a.rotation,p=a.skewX,_=a.skewY,m=a.scaleX,f=a.scaleY,g=a.target,v=a.xOrigin,y=a.yOrigin,x=a.xOffset,b=a.yOffset,w=a.forceCSS,T=parseFloat(h),A=parseFloat(u);d=parseFloat(d),p=parseFloat(p),(_=parseFloat(_))&&(p+=_=parseFloat(_),d+=_),d||p?(d*=Cp,p*=Cp,n=Math.cos(d)*m,i=Math.sin(d)*m,s=Math.sin(d-p)*-f,r=Math.cos(d-p)*f,p&&(_*=Cp,o=Math.tan(p-_),s*=o=Math.sqrt(1+o*o),r*=o,_&&(o=Math.tan(_),n*=o=Math.sqrt(1+o*o),i*=o)),n=wu(n),i=wu(i),s=wu(s),r=wu(r)):(n=m,r=f,i=s=0),(T&&!~(h+\\\\\\\"\\\\\\\").indexOf(\\\\\\\"px\\\\\\\")||A&&!~(u+\\\\\\\"\\\\\\\").indexOf(\\\\\\\"px\\\\\\\"))&&(T=o_(g,\\\\\\\"x\\\\\\\",h,\\\\\\\"px\\\\\\\"),A=o_(g,\\\\\\\"y\\\\\\\",u,\\\\\\\"px\\\\\\\")),(v||y||x||b)&&(T=wu(T+v-(v*n+y*s)+x),A=wu(A+y-(v*i+y*r)+b)),(l||c)&&(o=g.getBBox(),T=wu(T+l/100*o.width),A=wu(A+c/100*o.height)),o=\\\\\\\"matrix(\\\\\\\"+n+\\\\\\\",\\\\\\\"+i+\\\\\\\",\\\\\\\"+s+\\\\\\\",\\\\\\\"+r+\\\\\\\",\\\\\\\"+T+\\\\\\\",\\\\\\\"+A+\\\\\\\")\\\\\\\",g.setAttribute(\\\\\\\"transform\\\\\\\",o),w&&(g.style[qp]=o)},S_=function(t,e,n,i,s,r){var o,a,l=360,c=Uh(s),h=parseFloat(s)*(c&&~s.indexOf(\\\\\\\"rad\\\\\\\")?Sp:1),u=r?h*r:h-i,d=i+u+\\\\\\\"deg\\\\\\\";return c&&(\\\\\\\"short\\\\\\\"===(o=s.split(\\\\\\\"_\\\\\\\")[1])&&(u%=l)!==u%180&&(u+=u<0?l:-360),\\\\\\\"cw\\\\\\\"===o&&u<0?u=(u+36e9)%l-~~(u/l)*l:\\\\\\\"ccw\\\\\\\"===o&&u>0&&(u=(u-36e9)%l-~~(u/l)*l)),t._pt=a=new _p(t._pt,e,n,i,u,Fp),a.e=d,a.u=\\\\\\\"deg\\\\\\\",t._props.push(n),a},C_=function(t,e){for(var n in e)t[n]=e[n];return t},N_=function(t,e,n){var i,s,r,o,a,l,c,h=C_({},n._gsap),u=n.style;for(s in h.svg?(r=n.getAttribute(\\\\\\\"transform\\\\\\\"),n.setAttribute(\\\\\\\"transform\\\\\\\",\\\\\\\"\\\\\\\"),u[qp]=e,i=v_(n,1),i_(n,qp),n.setAttribute(\\\\\\\"transform\\\\\\\",r)):(r=getComputedStyle(n)[qp],u[qp]=e,i=v_(n,1),u[qp]=r),Ep)(r=h[s])!==(o=i[s])&&\\\\\\\"perspective,force3D,transformOrigin,svgOrigin\\\\\\\".indexOf(s)<0&&(a=sd(r)!==(c=sd(o))?o_(n,s,r,c):parseFloat(r),l=parseFloat(o),t._pt=new _p(t._pt,i,s,a,l-a,Ip),t._pt.u=c||0,t._props.push(s));C_(i,h)};bu(\\\\\\\"padding,margin,Width,Radius\\\\\\\",(function(t,e){var n=\\\\\\\"Top\\\\\\\",i=\\\\\\\"Right\\\\\\\",s=\\\\\\\"Bottom\\\\\\\",r=\\\\\\\"Left\\\\\\\",o=(e<3?[n,i,s,r]:[n+r,n+i,s+i,s+r]).map((function(n){return e<2?t+n:\\\\\\\"border\\\\\\\"+n+t}));u_[e>1?\\\\\\\"border\\\\\\\"+t:t]=function(t,e,n,i,s){var r,a;if(arguments.length<4)return r=o.map((function(e){return a_(t,e,n)})),5===(a=r.join(\\\\\\\" \\\\\\\")).split(r[0]).length?r[0]:a;r=(i+\\\\\\\"\\\\\\\").split(\\\\\\\" \\\\\\\"),a={},o.forEach((function(t,e){return a[t]=r[e]=r[e]||r[(e-1)/2|0]})),t.init(e,a,s)}}));var L_,O_,P_,R_={name:\\\\\\\"css\\\\\\\",register:Kp,targetTest:function(t){return t.style&&t.nodeType},init:function(t,e,n,i,s){var r,o,a,l,c,h,u,d,p,_,m,f,g,v,y,x,b,w,T,A=this._props,M=t.style,E=n.vars.startAt;for(u in wp||Kp(),e)if(\\\\\\\"autoRound\\\\\\\"!==u&&(o=e[u],!pu[u]||!$d(u,e,n,i,t,s)))if(c=typeof o,h=u_[u],\\\\\\\"function\\\\\\\"===c&&(c=typeof(o=o.call(n,i,t,s))),\\\\\\\"string\\\\\\\"===c&&~o.indexOf(\\\\\\\"random(\\\\\\\")&&(o=md(o)),h)h(this,t,u,o,n)&&(y=1);else if(\\\\\\\"--\\\\\\\"===u.substr(0,2))r=(getComputedStyle(t).getPropertyValue(u)+\\\\\\\"\\\\\\\").trim(),o+=\\\\\\\"\\\\\\\",Sd.lastIndex=0,Sd.test(r)||(d=sd(r),p=sd(o)),p?d!==p&&(r=o_(t,u,r,p)+p):d&&(o+=d),this.add(M,\\\\\\\"setProperty\\\\\\\",r,o,i,s,0,0,u),A.push(u);else if(\\\\\\\"undefined\\\\\\\"!==c){if(E&&u in E?(r=\\\\\\\"function\\\\\\\"==typeof E[u]?E[u].call(n,i,t,s):E[u],u in Lh.units&&!sd(r)&&(r+=Lh.units[u]),Uh(r)&&~r.indexOf(\\\\\\\"random(\\\\\\\")&&(r=md(r)),\\\\\\\"=\\\\\\\"===(r+\\\\\\\"\\\\\\\").charAt(1)&&(r=a_(t,u))):r=a_(t,u),l=parseFloat(r),(_=\\\\\\\"string\\\\\\\"===c&&\\\\\\\"=\\\\\\\"===o.charAt(1)?+(o.charAt(0)+\\\\\\\"1\\\\\\\"):0)&&(o=o.substr(2)),a=parseFloat(o),u in Rp&&(\\\\\\\"autoAlpha\\\\\\\"===u&&(1===l&&\\\\\\\"hidden\\\\\\\"===a_(t,\\\\\\\"visibility\\\\\\\")&&a&&(l=0),s_(this,M,\\\\\\\"visibility\\\\\\\",l?\\\\\\\"inherit\\\\\\\":\\\\\\\"hidden\\\\\\\",a?\\\\\\\"inherit\\\\\\\":\\\\\\\"hidden\\\\\\\",!a)),\\\\\\\"scale\\\\\\\"!==u&&\\\\\\\"transform\\\\\\\"!==u&&~(u=Rp[u]).indexOf(\\\\\\\",\\\\\\\")&&(u=u.split(\\\\\\\",\\\\\\\")[0])),m=u in Ep)if(f||((g=t._gsap).renderTransform&&!e.parseTransform||v_(t,e.parseTransform),v=!1!==e.smoothOrigin&&g.smooth,(f=this._pt=new _p(this._pt,M,qp,0,1,g.renderTransform,g,0,-1)).dep=1),\\\\\\\"scale\\\\\\\"===u)this._pt=new _p(this._pt,g,\\\\\\\"scaleY\\\\\\\",g.scaleY,(_?_*a:a-g.scaleY)||0),A.push(\\\\\\\"scaleY\\\\\\\",u),u+=\\\\\\\"X\\\\\\\";else{if(\\\\\\\"transformOrigin\\\\\\\"===u){b=void 0,w=void 0,T=void 0,b=(x=o).split(\\\\\\\" \\\\\\\"),w=b[0],T=b[1]||\\\\\\\"50%\\\\\\\",\\\\\\\"top\\\\\\\"!==w&&\\\\\\\"bottom\\\\\\\"!==w&&\\\\\\\"left\\\\\\\"!==T&&\\\\\\\"right\\\\\\\"!==T||(x=w,w=T,T=x),b[0]=c_[w]||w,b[1]=c_[T]||T,o=b.join(\\\\\\\" \\\\\\\"),g.svg?g_(t,o,0,v,0,this):((p=parseFloat(o.split(\\\\\\\" \\\\\\\")[2])||0)!==g.zOrigin&&s_(this,g,\\\\\\\"zOrigin\\\\\\\",g.zOrigin,p),s_(this,M,u,y_(r),y_(o)));continue}if(\\\\\\\"svgOrigin\\\\\\\"===u){g_(t,o,1,v,0,this);continue}if(u in p_){S_(this,g,u,l,o,_);continue}if(\\\\\\\"smoothOrigin\\\\\\\"===u){s_(this,g,\\\\\\\"smooth\\\\\\\",g.smooth,o);continue}if(\\\\\\\"force3D\\\\\\\"===u){g[u]=o;continue}if(\\\\\\\"transform\\\\\\\"===u){N_(this,o,t);continue}}else u in M||(u=Zp(u)||u);if(m||(a||0===a)&&(l||0===l)&&!Pp.test(o)&&u in M)a||(a=0),(d=(r+\\\\\\\"\\\\\\\").substr((l+\\\\\\\"\\\\\\\").length))!==(p=sd(o)||(u in Lh.units?Lh.units[u]:d))&&(l=o_(t,u,r,p)),this._pt=new _p(this._pt,m?g:M,u,l,_?_*a:a-l,m||\\\\\\\"px\\\\\\\"!==p&&\\\\\\\"zIndex\\\\\\\"!==u||!1===e.autoRound?Ip:Bp),this._pt.u=p||0,d!==p&&\\\\\\\"%\\\\\\\"!==p&&(this._pt.b=r,this._pt.r=Dp);else if(u in M)l_.call(this,t,u,r,o);else{if(!(u in t)){ou(u,o);continue}this.add(t,u,r||t[u],o,i,s)}A.push(u)}y&&pp(this)},get:a_,aliases:Rp,getSetter:function(t,e,n){var i=Rp[e];return i&&i.indexOf(\\\\\\\",\\\\\\\")<0&&(e=i),e in Ep&&e!==Xp&&(t._gsap.x||a_(t,\\\\\\\"x\\\\\\\"))?n&&Ap===n?\\\\\\\"scale\\\\\\\"===e?Hp:Vp:(Ap=n||{})&&(\\\\\\\"scale\\\\\\\"===e?jp:Wp):t.style&&!Hh(t.style[e])?Up:~e.indexOf(\\\\\\\"-\\\\\\\")?Gp:rp(t,e)},core:{_removeProperty:i_,_getMatrix:f_}};vp.utils.checkPrefix=Zp,P_=bu((L_=\\\\\\\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\\\\\\\")+\\\\\\\",\\\\\\\"+(O_=\\\\\\\"rotation,rotationX,rotationY,skewX,skewY\\\\\\\")+\\\\\\\",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\\\\\\\",(function(t){Ep[t]=1})),bu(O_,(function(t){Lh.units[t]=\\\\\\\"deg\\\\\\\",p_[t]=1})),Rp[P_[13]]=L_+\\\\\\\",\\\\\\\"+O_,bu(\\\\\\\"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\\\\\\\",(function(t){var e=t.split(\\\\\\\":\\\\\\\");Rp[e[1]]=P_[e[0]]})),bu(\\\\\\\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\\\\\\\",(function(t){Lh.units[t]=\\\\\\\"px\\\\\\\"})),vp.registerPlugin(R_);var I_,F_=vp.registerPlugin(R_)||vp;F_.core.Tween;!function(t){t.SET=\\\\\\\"set\\\\\\\",t.ADD=\\\\\\\"add\\\\\\\",t.SUBSTRACT=\\\\\\\"substract\\\\\\\"}(I_||(I_={}));const D_=[I_.SET,I_.ADD,I_.SUBSTRACT];class B_{constructor(){this._timelineBuilders=[],this._duration=1,this._operation=I_.SET,this._delay=0,this._debug=!1}setDebug(t){this._debug=t}_printDebug(t){this._debug&&console.log(t)}addTimelineBuilder(t){this._timelineBuilders.push(t),t.setParent(this)}timelineBuilders(){return this._timelineBuilders}setParent(t){this._parent=t}parent(){return this._parent}setTarget(t){this._target=t;for(let e of this._timelineBuilders)e.setTarget(t)}target(){return this._target}setDuration(t){if(t>=0){this._duration=t;for(let e of this._timelineBuilders)e.setDuration(t)}}duration(){return this._duration}setEasing(t){this._easing=t;for(let e of this._timelineBuilders)e.setEasing(t)}easing(){return this._easing}setOperation(t){this._operation=t;for(let e of this._timelineBuilders)e.setOperation(t)}operation(){return this._operation}setRepeatParams(t){this._repeatParams=t;for(let e of this._timelineBuilders)e.setRepeatParams(t)}repeatParams(){return this._repeatParams}setDelay(t){this._delay=t;for(let e of this._timelineBuilders)e.setDelay(t)}delay(){return this._delay}setPosition(t){this._position=t}position(){return this._position}setUpdateCallback(t){this._updateCallback=t}updateCallback(){return this._updateCallback}clone(){const t=new B_;if(t.setDuration(this._duration),t.setOperation(this._operation),t.setDelay(this._delay),this._target&&t.setTarget(this._target.clone()),this._easing&&t.setEasing(this._easing),this._delay&&t.setDelay(this._delay),this._updateCallback&&t.setUpdateCallback(this._updateCallback.clone()),this._repeatParams&&t.setRepeatParams({count:this._repeatParams.count,delay:this._repeatParams.delay,yoyo:this._repeatParams.yoyo}),this._property){const e=this._property.name();e&&t.setPropertyName(e);const n=this._property.targetValue();null!=n&&t.setPropertyValue(n)}this._position&&t.setPosition(this._position.clone());for(let e of this._timelineBuilders){const n=e.clone();t.addTimelineBuilder(n)}return t}setPropertyName(t){this.property().setName(t)}property(){return this._property=this._property||new _h}propertyName(){return this.property().name()}setPropertyValue(t){this.property().setTargetValue(t)}populate(t){var e;this._printDebug([\\\\\\\"populate\\\\\\\",this,t]);for(let n of this._timelineBuilders){const i=F_.timeline();n.setDebug(this._debug),n.populate(i);const s=(null===(e=n.position())||void 0===e?void 0:e.toParameter())||void 0;t.add(i,s)}this._property&&this._target&&(this._property.setDebug(this._debug),this._property.addToTimeline(this,t,this._target))}}const z_=new class extends ua{constructor(){super(...arguments),this.count=ha.INTEGER(1,{range:[1,20],rangeLocked:[!0,!1]})}};class k_ extends oh{constructor(){super(...arguments),this.paramsConfig=z_}static type(){return\\\\\\\"copy\\\\\\\"}initializeNode(){this.io.inputs.setCount(1)}async cook(t){const e=new B_;for(let t=0;t<this.pv.count;t++){this.stampNode().set_global_index(t);const n=await this.containerController.requestInputContainer(0);if(n){const t=n.coreContentCloned();t&&e.addTimelineBuilder(t)}}this.setTimelineBuilder(e)}stamp_value(t){return this.stampNode().value(t)}stampNode(){return this._stamp_node=this._stamp_node||this.create_stamp_node()}create_stamp_node(){const t=new lh(this.scene());return this.dirtyController.setForbiddenTriggerNodes([t]),t}}const U_=new class extends ua{constructor(){super(...arguments),this.delay=ha.FLOAT(1)}};class G_ extends oh{constructor(){super(...arguments),this.paramsConfig=U_}static type(){return\\\\\\\"delay\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.delay])}))}))}cook(t){const e=t[0]||new B_;e.setDelay(this.pv.delay),this.setTimelineBuilder(e)}}const V_=new class extends ua{constructor(){super(...arguments),this.duration=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1]})}};class H_ extends oh{constructor(){super(...arguments),this.paramsConfig=V_}static type(){return\\\\\\\"duration\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.duration])}))}))}cook(t){const e=t[0]||new B_;e.setDuration(this.pv.duration),this.setTimelineBuilder(e)}}const j_=new class extends ua{constructor(){super(...arguments),this.name=ha.INTEGER(uh.indexOf(ch.POWER4),{menu:{entries:uh.map(((t,e)=>({name:t,value:e})))}}),this.inOut=ha.INTEGER(ph.indexOf(dh.OUT),{menu:{entries:ph.map(((t,e)=>({name:t,value:e})))}})}};class W_ extends oh{constructor(){super(...arguments),this.paramsConfig=j_}static type(){return\\\\\\\"easing\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name,this.p.inOut],(()=>this.easing_full_name()))}))}))}easing_full_name(){const t=uh[this.pv.name];if(t==ch.NONE)return t;return`${t}.${ph[this.pv.inOut]}`}cook(t){const e=t[0]||new B_,n=this.easing_full_name();e.setEasing(n),this.setTimelineBuilder(e)}}var q_;!function(t){t.RELATIVE=\\\\\\\"relative\\\\\\\",t.ABSOLUTE=\\\\\\\"absolute\\\\\\\"}(q_||(q_={}));const X_=[q_.RELATIVE,q_.ABSOLUTE];var Y_;!function(t){t.START=\\\\\\\"start\\\\\\\",t.END=\\\\\\\"end\\\\\\\"}(Y_||(Y_={}));const $_=[Y_.START,Y_.END];class J_{constructor(){this._mode=q_.RELATIVE,this._relativeTo=Y_.END,this._offset=0}clone(){const t=new J_;return t.setMode(this._mode),t.setRelativeTo(this._relativeTo),t.setOffset(this._offset),t}setMode(t){this._mode=t}mode(){return this._mode}setRelativeTo(t){this._relativeTo=t}relativeTo(){return this._relativeTo}setOffset(t){this._offset=t}offset(){return this._offset}toParameter(){switch(this._mode){case q_.RELATIVE:return this._relative_position_param();case q_.ABSOLUTE:return this._absolutePositionParam()}os.unreachable(this._mode)}_relative_position_param(){switch(this._relativeTo){case Y_.END:return this._offsetString();case Y_.START:return`<${this._offset}`}os.unreachable(this._relativeTo)}_absolutePositionParam(){return this._offset}_offsetString(){return this._offset>0?`+=${this._offset}`:`-=${Math.abs(this._offset)}`}}var Z_;!function(t){t.ALL_TOGETHER=\\\\\\\"play all together\\\\\\\",t.ONE_AT_A_TIME=\\\\\\\"play one at a time\\\\\\\"}(Z_||(Z_={}));const K_=[Z_.ALL_TOGETHER,Z_.ONE_AT_A_TIME];const Q_=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(0,{menu:{entries:K_.map(((t,e)=>({name:t,value:e})))}}),this.offset=ha.FLOAT(0,{range:[-1,1]}),this.overridePositions=ha.BOOLEAN(0),this.inputsCount=ha.INTEGER(4,{range:[1,32],rangeLocked:[!0,!1],callback:t=>{tm.PARAM_CALLBACK_setInputsCount(t)}})}};class tm extends oh{constructor(){super(...arguments),this.paramsConfig=Q_}static type(){return\\\\\\\"merge\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,4),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.mode],(()=>K_[this.pv.mode]))})),this.params.addOnSceneLoadHook(\\\\\\\"update inputs\\\\\\\",(()=>{this._callbackUpdateInputsCount()}))}))}cook(t){const e=new B_;let n=0;for(let i of t)i&&(n>0&&this._updateTimelineBuilder(i),e.addTimelineBuilder(i),n++);this.setTimelineBuilder(e)}_updateTimelineBuilder(t){const e=K_[this.pv.mode];switch(e){case Z_.ALL_TOGETHER:return this._setPlayAllTogether(t);case Z_.ONE_AT_A_TIME:return this._setPlayOneAtATime(t)}os.unreachable(e)}_setPlayAllTogether(t){let e=t.position();e&&!this.pv.overridePositions||(e=new J_,e.setMode(q_.RELATIVE),e.setRelativeTo(Y_.START),e.setOffset(this.pv.offset),t.setPosition(e))}_setPlayOneAtATime(t){let e=t.position();e&&!this.pv.overridePositions||(e=new J_,e.setMode(q_.RELATIVE),e.setRelativeTo(Y_.END),e.setOffset(this.pv.offset),t.setPosition(e))}_callbackUpdateInputsCount(){this.io.inputs.setCount(1,this.pv.inputsCount),this.emit(Ei.INPUTS_UPDATED)}static PARAM_CALLBACK_setInputsCount(t){t._callbackUpdateInputsCount()}}const em=new class extends ua{constructor(){super(...arguments),this.play=ha.BUTTON(null,{callback:t=>{nm.PARAM_CALLBACK_play(t)}}),this.pause=ha.BUTTON(null,{callback:t=>{nm.PARAM_CALLBACK_pause(t)}}),this.debug=ha.BOOLEAN(0)}};class nm extends oh{constructor(){super(...arguments),this.paramsConfig=em}static type(){return\\\\\\\"null\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}cook(t){const e=t[0]||new B_;this.setTimelineBuilder(e)}async play(){return new Promise((async t=>{const e=await this.compute();if(!e)return;if(this._timelineBuilder=e.coreContent(),!this._timelineBuilder)return;this._timeline&&this._timeline.kill();let n=!1;this._timeline=F_.timeline({onComplete:function(){n||(n=!0,t())}}),this.pv.debug&&li.log(`play from '${this.path()}'`),this._timeline.pjsid=Math.random(),this._timelineBuilder.setDebug(this.pv.debug),this._timelineBuilder.populate(this._timeline)}))}async pause(){this._timeline&&this._timeline.pause()}static PARAM_CALLBACK_play(t){t.play()}static PARAM_CALLBACK_pause(t){t.pause()}}const im=new class extends ua{constructor(){super(...arguments),this.operation=ha.INTEGER(0,{menu:{entries:D_.map(((t,e)=>({value:e,name:t})))}})}};class sm extends oh{constructor(){super(...arguments),this.paramsConfig=im}static type(){return\\\\\\\"operation\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.operation],(()=>D_[this.pv.operation]))}))}))}cook(t){const e=t[0]||new B_;e.setOperation(D_[this.pv.operation]),this.setTimelineBuilder(e)}}const rm=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(0,{menu:{entries:X_.map(((t,e)=>({name:t,value:e})))}}),this.relativeTo=ha.INTEGER(0,{menu:{entries:$_.map(((t,e)=>({name:t,value:e})))}}),this.offset=ha.FLOAT(0)}};class om extends oh{constructor(){super(...arguments),this.paramsConfig=rm}static type(){return\\\\\\\"position\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.mode,this.p.relativeTo,this.p.offset],(()=>{switch(X_[this.pv.mode]){case q_.RELATIVE:return this._relative_label();case q_.ABSOLUTE:return this._absolute_label()}}))}))}))}_relative_label(){const t=this.pv.offset>0?\\\\\\\"after\\\\\\\":\\\\\\\"before\\\\\\\",e=$_[this.pv.relativeTo];return`${Math.abs(this.pv.offset)} ${t} ${e}`}_absolute_label(){return\\\\\\\"absolute\\\\\\\"}cook(t){const e=t[0]||new B_,n=new J_;n.setMode(X_[this.pv.mode]),n.setRelativeTo($_[this.pv.relativeTo]),n.setOffset(this.pv.offset),e.setPosition(n),this.setTimelineBuilder(e)}}const am=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"position\\\\\\\")}};class lm extends oh{constructor(){super(...arguments),this.paramsConfig=am}static type(){return\\\\\\\"propertyName\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}cook(t){const e=t[0]||new B_;e.setPropertyName(this.pv.name),this.setTimelineBuilder(e)}}var cm;!function(t){t.CUSTOM=\\\\\\\"custom\\\\\\\",t.FROM_SCENE_GRAPH=\\\\\\\"from scene graph\\\\\\\",t.FROM_NODE=\\\\\\\"from node\\\\\\\"}(cm||(cm={}));const hm=[cm.CUSTOM,cm.FROM_SCENE_GRAPH,cm.FROM_NODE],um=hm.indexOf(cm.CUSTOM),dm=hm.indexOf(cm.FROM_SCENE_GRAPH),pm=hm.indexOf(cm.FROM_NODE);const _m=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(um,{menu:{entries:hm.map(((t,e)=>({name:t,value:e})))}}),this.nodePath=ha.NODE_PATH(\\\\\\\"\\\\\\\",{visibleIf:{mode:pm}}),this.objectMask=ha.STRING(\\\\\\\"*geo1\\\\\\\",{visibleIf:{mode:dm}}),this.printResolve=ha.BUTTON(null,{visibleIf:{mode:dm},callback:t=>{mm.PARAM_CALLBACK_printResolve(t)}}),this.overridePropertyName=ha.BOOLEAN(0,{visibleIf:[{mode:dm},{mode:pm}]}),this.propertyName=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:[{overridePropertyName:!0,mode:dm},{overridePropertyName:!0,mode:pm}]}),this.size=ha.INTEGER(3,{range:[1,4],rangeLocked:[!0,!0],visibleIf:{mode:um}}),this.value1=ha.FLOAT(0,{visibleIf:{mode:um,size:1}}),this.value2=ha.VECTOR2([0,0],{visibleIf:{mode:um,size:2}}),this.value3=ha.VECTOR3([0,0,0],{visibleIf:{mode:um,size:3}}),this.value4=ha.VECTOR4([0,0,0,0],{visibleIf:{mode:um,size:4}})}};class mm extends oh{constructor(){super(...arguments),this.paramsConfig=_m}static type(){return\\\\\\\"propertyValue\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1)}async cook(t){const e=t[0]||new B_;await this._prepareTimelineBuilder(e),this.setTimelineBuilder(e)}setMode(t){this.p.mode.set(hm.indexOf(t))}async _prepareTimelineBuilder(t){const e=hm[this.pv.mode];switch(e){case cm.CUSTOM:return this._prepareTimebuilderCustom(t);case cm.FROM_SCENE_GRAPH:return this._prepareTimebuilderFromSceneGraph(t);case cm.FROM_NODE:return await this._prepareTimebuilderFromNode(t)}os.unreachable(e)}_prepareTimebuilderCustom(t){const e=[this.pv.value1,this.pv.value2.clone(),this.pv.value3.clone(),this.pv.value4.clone()][this.pv.size-1];t.setPropertyValue(e)}_prepareTimebuilderFromSceneGraph(t){const e=this.pv.overridePropertyName?this.pv.propertyName:t.propertyName();if(!e)return;const n=this._foundObjectFromSceneGraph();if(n){const i=n[e];i&&(m.isNumber(i)||m.isVector(i)||i instanceof hh.a)&&t.setPropertyValue(i)}}async _prepareTimebuilderFromNode(t){const e=this.pv.overridePropertyName?this.pv.propertyName:t.propertyName();if(!e)return;const n=this.pv.nodePath.node();if(!n)return;const i=n.params.get(e);if(!i)return;i.isDirty()&&await i.compute();const s=i.value;s&&(m.isNumber(s)||m.isVector(s))&&t.setPropertyValue(s)}static PARAM_CALLBACK_printResolve(t){t.printResolve()}_foundObjectFromSceneGraph(){return this.scene().findObjectByMask(this.pv.objectMask)}printResolve(){const t=this._foundObjectFromSceneGraph();console.log(t)}}const fm=new class extends ua{constructor(){super(...arguments),this.unlimited=ha.BOOLEAN(0),this.count=ha.INTEGER(1,{range:[0,10],visibleIf:{unlimited:0}}),this.delay=ha.FLOAT(0),this.yoyo=ha.BOOLEAN(0)}};class gm extends oh{constructor(){super(...arguments),this.paramsConfig=fm}static type(){return\\\\\\\"repeat\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.unlimited,this.p.count,this.p.yoyo],(()=>`${`${this.p.unlimited?\\\\\\\"unlimited\\\\\\\":this.pv.count}`} (yoyo: ${this.pv.yoyo})`))}))}))}_repeat_params(){return{count:this.pv.unlimited?-1:this.pv.count,delay:this.pv.delay,yoyo:this.pv.yoyo}}cook(t){const e=t[0]||new B_;e.setRepeatParams(this._repeat_params()),this.setTimelineBuilder(e)}}const vm=new class extends ua{constructor(){super(...arguments),this.input=ha.INTEGER(0,{range:[0,3],rangeLocked:[!0,!0]})}};class ym extends oh{constructor(){super(...arguments),this.paramsConfig=vm}static type(){return\\\\\\\"switch\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,4)}cook(t){const e=t[this.pv.input];e?this.setTimelineBuilder(e):this.states.error.set(`input ${this.pv.input} is not valid`)}}class xm{constructor(t,e){this._scene=t,this._options=e}clone(){return new xm(this._scene,this._options)}objects(){const t=this._options.objectMask;if(t)return this._scene.objectsByMask(t)}node(){if(!this._options.node)return;const t=this._options.node;return t.relativeTo.node(t.path)}}class bm{constructor(){this._update_matrix=!1}clone(){const t=new bm;return t.setUpdateMatrix(this._update_matrix),t}setUpdateMatrix(t){this._update_matrix=t}updateMatrix(){return this._update_matrix}}var wm;!function(t){t.SCENE_GRAPH=\\\\\\\"scene graph\\\\\\\",t.NODE=\\\\\\\"node\\\\\\\"}(wm||(wm={}));const Tm=[wm.SCENE_GRAPH,wm.NODE],Am=Tm.indexOf(wm.SCENE_GRAPH),Mm=Tm.indexOf(wm.NODE);const Em=new class extends ua{constructor(){super(...arguments),this.type=ha.INTEGER(Am,{menu:{entries:Tm.map(((t,e)=>({name:t,value:e})))}}),this.nodePath=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{visibleIf:{type:Mm}}),this.objectMask=ha.STRING(\\\\\\\"/geo*\\\\\\\",{visibleIf:{type:Am}}),this.updateMatrix=ha.BOOLEAN(0,{visibleIf:{type:Am}}),this.printResolve=ha.BUTTON(null,{callback:(t,e)=>{Sm.PARAM_CALLBACK_print_resolve(t)}})}};class Sm extends oh{constructor(){super(...arguments),this.paramsConfig=Em}static type(){return\\\\\\\"target\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.type,this.p.nodePath,this.p.objectMask],(()=>{const t=Tm[this.pv.type];switch(t){case wm.NODE:return this.pv.nodePath;case wm.SCENE_GRAPH:return this.pv.objectMask}os.unreachable(t)}))}))}))}cook(t){const e=t[0]||new B_,n=this._create_target(e);e.setTarget(n),this._set_update_callback(e),this.setTimelineBuilder(e)}setTargetType(t){this.p.type.set(Tm.indexOf(t))}_create_target(t){const e=Tm[this.pv.type];switch(e){case wm.NODE:return new xm(this.scene(),{node:{path:this.pv.nodePath,relativeTo:this}});case wm.SCENE_GRAPH:return new xm(this.scene(),{objectMask:this.pv.objectMask})}os.unreachable(e)}_set_update_callback(t){const e=Tm[this.pv.type];let n=t.updateCallback();switch(e){case wm.NODE:return;case wm.SCENE_GRAPH:return void(this.pv.updateMatrix&&(n=n||new bm,n.setUpdateMatrix(this.pv.updateMatrix),t.setUpdateCallback(n)))}os.unreachable(e)}static PARAM_CALLBACK_print_resolve(t){t.print_resolve()}print_resolve(){const t=Tm[this.pv.type],e=new B_,n=this._create_target(e);switch(t){case wm.NODE:return console.log(n.node());case wm.SCENE_GRAPH:return console.log(n.objects())}}}class Cm extends aa{static context(){return ts.ANIM}cook(){this.cookController.endCook()}}class Nm extends Cm{}class Lm extends Nm{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class Om extends Nm{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class Pm extends Nm{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class Rm extends Nm{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}const Im={dependsOnDisplayNode:!0};class Fm{constructor(t,e,n=Im){this.node=t,this.options=n,this._initialized=!1,this._display_node=void 0,this._graph_node=new Mi(t.scene(),\\\\\\\"DisplayNodeController\\\\\\\"),this._graph_node.node=t,this._on_display_node_remove_callback=e.onDisplayNodeRemove,this._on_display_node_set_callback=e.onDisplayNodeSet,this._on_display_node_update_callback=e.onDisplayNodeUpdate}dispose(){this._graph_node.dispose()}displayNode(){return this._display_node}initializeNode(){this._initialized?console.error(\\\\\\\"display node controller already initialed\\\\\\\",this.node):(this._initialized=!0,this.node.lifecycle.add_on_child_add_hook((t=>{var e,n;this._display_node||null===(n=null===(e=t.flags)||void 0===e?void 0:e.display)||void 0===n||n.set(!0)})),this.node.lifecycle.add_on_child_remove_hook((t=>{var e,n,i;if(t.graphNodeId()==(null===(e=this._display_node)||void 0===e?void 0:e.graphNodeId())){const t=this.node.children(),e=t[t.length-1];e?null===(i=null===(n=e.flags)||void 0===n?void 0:n.display)||void 0===i||i.set(!0):this.setDisplayNode(void 0)}})),this._graph_node.dirtyController.addPostDirtyHook(\\\\\\\"_request_display_node_container\\\\\\\",(()=>{this._on_display_node_update_callback&&this._on_display_node_update_callback()})))}async setDisplayNode(t){if(this._initialized||console.error(\\\\\\\"display node controller not initialized\\\\\\\",this.node),this._display_node!=t){const e=this._display_node;e&&(e.flags.display.set(!1),this.options.dependsOnDisplayNode&&this._graph_node.removeGraphInput(e),this._on_display_node_remove_callback&&this._on_display_node_remove_callback()),this._display_node=t,this._display_node&&(this.options.dependsOnDisplayNode&&this._graph_node.addGraphInput(this._display_node),this._on_display_node_set_callback&&this._on_display_node_set_callback())}}}class Dm{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Bm(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Bm();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Bm(){return(\\\\\\\"undefined\\\\\\\"==typeof performance?Date:performance).now()}var zm={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform float opacity;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 texel = texture2D( tDiffuse, vUv );\\\\n\\\\t\\\\t\\\\tgl_FragColor = opacity * texel;\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};class km{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error(\\\\\\\"THREE.Pass: .render() must be implemented in derived pass.\\\\\\\")}}const Um=new ot.a(-1,1,1,-1,0,1),Gm=new S.a;Gm.setAttribute(\\\\\\\"position\\\\\\\",new C.c([-1,3,0,-1,-1,0,3,-1,0],3)),Gm.setAttribute(\\\\\\\"uv\\\\\\\",new C.c([0,2,0,0,2,0],2));class Vm{constructor(t){this._mesh=new B.a(Gm,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,Um)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class Hm extends km{constructor(t,e){super(),this.textureID=void 0!==e?e:\\\\\\\"tDiffuse\\\\\\\",t instanceof F?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=I.clone(t.uniforms),this.material=new F({defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new Vm(this.material)}render(t,e,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}}class jm extends km{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,n){const i=t.getContext(),s=t.state;let r,o;s.buffers.color.setMask(!1),s.buffers.depth.setMask(!1),s.buffers.color.setLocked(!0),s.buffers.depth.setLocked(!0),this.inverse?(r=0,o=1):(r=1,o=0),s.buffers.stencil.setTest(!0),s.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),s.buffers.stencil.setFunc(i.ALWAYS,r,4294967295),s.buffers.stencil.setClear(o),s.buffers.stencil.setLocked(!0),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),s.buffers.color.setLocked(!1),s.buffers.depth.setLocked(!1),s.buffers.stencil.setLocked(!1),s.buffers.stencil.setFunc(i.EQUAL,1,4294967295),s.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),s.buffers.stencil.setLocked(!0)}}class Wm extends km{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}class qm{constructor(t,e){if(this.renderer=t,void 0===e){const n={minFilter:w.V,magFilter:w.V,format:w.Ib},i=t.getSize(new d.a);this._pixelRatio=t.getPixelRatio(),this._width=i.width,this._height=i.height,(e=new K(this._width*this._pixelRatio,this._height*this._pixelRatio,n)).texture.name=\\\\\\\"EffectComposer.rt1\\\\\\\"}else this._pixelRatio=1,this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name=\\\\\\\"EffectComposer.rt2\\\\\\\",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===zm&&console.error(\\\\\\\"THREE.EffectComposer relies on CopyShader\\\\\\\"),void 0===Hm&&console.error(\\\\\\\"THREE.EffectComposer relies on ShaderPass\\\\\\\"),this.copyPass=new Hm(zm),this.clock=new Dm}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;e<this.passes.length;e++)if(this.passes[e].enabled)return!1;return!0}render(t){void 0===t&&(t=this.clock.getDelta());const e=this.renderer.getRenderTarget();let n=!1;for(let e=0,i=this.passes.length;e<i;e++){const i=this.passes[e];if(!1!==i.enabled){if(i.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(e),i.render(this.renderer,this.writeBuffer,this.readBuffer,t,n),i.needsSwap){if(n){const e=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(e.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,t),n.setFunc(e.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==jm&&(i instanceof jm?n=!0:i instanceof Wm&&(n=!1))}}this.renderer.setRenderTarget(e)}reset(t){if(void 0===t){const e=this.renderer.getSize(new d.a);this._pixelRatio=this.renderer.getPixelRatio(),this._width=e.width,this._height=e.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(t,e){this._width=t,this._height=e;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let t=0;t<this.passes.length;t++)this.passes[t].setSize(n,i)}setPixelRatio(t){this._pixelRatio=t,this.setSize(this._width,this._height)}}new ot.a(-1,1,1,-1,0,1);const Xm=new S.a;Xm.setAttribute(\\\\\\\"position\\\\\\\",new C.c([-1,3,0,-1,-1,0,3,-1,0],3)),Xm.setAttribute(\\\\\\\"uv\\\\\\\",new C.c([0,2,0,0,2,0],2));class Ym extends km{constructor(t,e,n,i,s){super(),this.scene=t,this.camera=e,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=void 0!==s?s:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new D.a}render(t,e,n){const i=t.autoClear;let s,r;t.autoClear=!1,void 0!==this.overrideMaterial&&(r=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(t.getClearColor(this._oldClearColor),s=t.getClearAlpha(),t.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:n),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),this.clearColor&&t.setClearColor(this._oldClearColor,s),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=r),t.autoClear=i}}const $m=[{LinearFilter:w.V},{NearestFilter:w.ob}],Jm=[{NearestFilter:w.ob},{NearestMipMapNearestFilter:w.qb},{NearestMipMapLinearFilter:w.pb},{LinearFilter:w.V},{LinearMipMapNearestFilter:w.X},{LinearMipMapLinearFilter:w.W}],Zm=Object.values($m[0])[0],Km=Object.values(Jm[5])[0],Qm=$m.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]}))),tf=Jm.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})));class ef extends ua{constructor(){super(...arguments),this.prependRenderPass=ha.BOOLEAN(1),this.useRenderTarget=ha.BOOLEAN(1),this.tmagFilter=ha.BOOLEAN(0,{visibleIf:{useRenderTarget:1}}),this.magFilter=ha.INTEGER(Zm,{visibleIf:{useRenderTarget:1,tmagFilter:1},menu:{entries:Qm}}),this.tminFilter=ha.BOOLEAN(0,{visibleIf:{useRenderTarget:1}}),this.minFilter=ha.INTEGER(Km,{visibleIf:{useRenderTarget:1,tminFilter:1},menu:{entries:tf}}),this.stencilBuffer=ha.BOOLEAN(0,{visibleIf:{useRenderTarget:1}}),this.sampling=ha.INTEGER(1,{range:[1,4],rangeLocked:[!0,!1]})}}class nf{constructor(t){this.node=t,this._renderer_size=new d.a}displayNodeControllerCallbacks(){return{onDisplayNodeRemove:()=>{},onDisplayNodeSet:()=>{this.node.setDirty()},onDisplayNodeUpdate:()=>{this.node.setDirty()}}}createEffectsComposer(t){const e=t.renderer;let n;if(this.node.pv.useRenderTarget){const t=this._create_render_target(e);n=new qm(e,t)}else n=new qm(e);return n.setPixelRatio(window.devicePixelRatio*this.node.pv.sampling),this._build_passes(n,t),n}_create_render_target(t){let e;t.autoClear=!1;const n={format:w.ic,stencilBuffer:this.node.pv.stencilBuffer};return this.node.pv.tminFilter&&(n.minFilter=this.node.pv.minFilter),this.node.pv.tmagFilter&&(n.magFilter=this.node.pv.magFilter),t.getDrawingBufferSize(this._renderer_size),e=li.renderersController.renderTarget(this._renderer_size.x,this._renderer_size.y,n),e}_build_passes(t,e){if(this.node.pv.prependRenderPass){const n=new Ym(e.scene,e.camera);t.addPass(n)}const n=this.node.displayNodeController.displayNode();n&&n.setupComposer({composer:t,camera:e.camera,resolution:e.resolution,camera_node:e.camera_node,scene:e.scene,requester:e.requester})}}class sf extends Cm{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class rf extends Nm{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}var of=n(44);const af=\\\\\\\"input texture\\\\\\\",lf=[af,af,af,af];for(var cf=new Uint16Array(32),hf=0;hf<32;hf++)cf[hf]=28898;const uf=new vo.a(cf,32,1,w.gb,w.M);class df extends aa{constructor(t){super(t,\\\\\\\"BaseCopNode\\\\\\\"),this.flags=new ki(this)}static context(){return ts.COP}static displayedInputNames(){return lf}initializeBaseNode(){this.io.outputs.setHasOneOutput()}setTexture(t){t.name=this.path();const e=this.containerController.container().texture();if(e){if(e.uuid!=t.uuid){const n=Object.keys(t);for(let i of n)e[i]=t[i];e.needsUpdate=!0}this._setContainer(e)}else this._setContainer(t)}_clearTexture(){this._setContainer(uf)}}class pf extends df{}class _f{constructor(){this._id=_f.__next_id++}id(){return this._id}handle_globals_node(t,e,n){}}_f.__next_id=0;class mf{static any(t){return m.isString(t)?t:m.isBoolean(t)?`${t}`:m.isNumber(t)?`${ss.ensureFloat(t)}`:m.isArray(t)?this.numeric_array(t):t instanceof d.a||t instanceof p.a||t instanceof _.a||t instanceof D.a?this.numeric_array(t.toArray()):`ThreeToGl error: unknown value type '${t}'`}static numeric_array(t){const e=new Array(t.length);for(let n=0;n<t.length;n++)e[n]=`${ss.ensureFloat(t[n])}`;return`${`vec${t.length}`}(${e.join(\\\\\\\", \\\\\\\")})`}static vector4(t){if(m.isString(t))return t;return`vec4(${t.toArray().map((t=>`${ss.ensureFloat(t)}`)).join(\\\\\\\", \\\\\\\")})`}static vector3(t){if(m.isString(t))return t;return`vec3(${t.toArray().map((t=>`${ss.ensureFloat(t)}`)).join(\\\\\\\", \\\\\\\")})`}static vector2(t){if(m.isString(t))return t;return`vec2(${t.toArray().map((t=>`${ss.ensureFloat(t)}`)).join(\\\\\\\", \\\\\\\")})`}static vector3_float(t,e){return m.isNumber(e)&&(e=ss.ensureFloat(e)),`vec4(${this.vector3(t)}, ${e})`}static float4(t,e,n,i){return m.isNumber(t)&&(t=ss.ensureFloat(t)),m.isNumber(e)&&(e=ss.ensureFloat(e)),m.isNumber(n)&&(n=ss.ensureFloat(n)),m.isNumber(i)&&(i=ss.ensureFloat(i)),`vec4(${t}, ${e}, ${n}, ${i})`}static float3(t,e,n){return m.isNumber(t)&&(t=ss.ensureFloat(t)),m.isNumber(e)&&(e=ss.ensureFloat(e)),m.isNumber(n)&&(n=ss.ensureFloat(n)),`vec3(${t}, ${e}, ${n})`}static float2(t,e){return m.isNumber(t)&&(t=ss.ensureFloat(t)),m.isNumber(e)&&(e=ss.ensureFloat(e)),`vec2(${t}, ${e})`}static float(t){if(m.isNumber(t))return ss.ensureFloat(t);{const e=parseFloat(t);return m.isNaN(e)?t:ss.ensureFloat(e)}}static integer(t){if(m.isNumber(t))return ss.ensureInteger(t);{const e=parseInt(t);return m.isNaN(e)?t:ss.ensureInteger(e)}}static bool(t){return m.isBoolean(t)?`${t}`:t}}const ff=/\\\\/+/g;class gf extends aa{static context(){return ts.GL}initializeBaseNode(){this.uiData.setLayoutHorizontal(),this.io.connections.initInputs(),this.io.connection_points.spare_params.initializeNode()}cook(){console.warn(\\\\\\\"gl nodes should never cook\\\\\\\")}_set_mat_to_recompile(){var t,e;null===(e=null===(t=this.material_node)||void 0===t?void 0:t.assemblerController)||void 0===e||e.set_compilation_required_and_dirty(this)}get material_node(){var t;const e=this.parent();if(e)return e.context()==ts.GL?null===(t=e)||void 0===t?void 0:t.material_node:e}glVarName(t){return`v_POLY_${this.path(this.material_node).replace(ff,\\\\\\\"_\\\\\\\")}_${t}`}variableForInputParam(t){return this.variableForInput(t.name())}variableForInput(t){var e;const n=this.io.inputs.get_input_index(t),i=this.io.connections.inputConnection(n);if(i){const e=i.node_src,n=e.io.outputs.namedOutputConnectionPoints()[i.output_index];if(n){const t=n.name();return e.glVarName(t)}throw console.warn(`no output called '${t}' for gl node ${e.path()}`),\\\\\\\"variable_for_input ERROR\\\\\\\"}if(this.params.has(t))return mf.any(null===(e=this.params.get(t))||void 0===e?void 0:e.value);{const t=this.io.inputs.namedInputConnectionPoints()[n];return mf.any(t.init_value)}}setLines(t){}reset_code(){var t;null===(t=this._param_configs_controller)||void 0===t||t.reset()}setParamConfigs(){}param_configs(){var t;return null===(t=this._param_configs_controller)||void 0===t?void 0:t.list()}paramsGenerating(){return!1}paramDefaultValue(t){return null}}const vf=new class extends ua{};class yf extends gf{constructor(){super(...arguments),this.paramsConfig=vf}}const xf=[Uo.FLOAT,Uo.VEC2,Uo.VEC3,Uo.VEC4];const bf=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"\\\\\\\"),this.type=ha.INTEGER(0,{menu:{entries:xf.map(((t,e)=>({name:t,value:e})))}}),this.texportWhenConnected=ha.BOOLEAN(0,{hidden:!0}),this.exportWhenConnected=ha.BOOLEAN(0,{visibleIf:{texportWhenConnected:1}})}};class wf extends gf{constructor(){super(...arguments),this.paramsConfig=bf,this._on_create_set_name_if_none_bound=this._on_create_set_name_if_none.bind(this),this._bound_setExportWhenConnectedStatus=this._setExportWhenConnectedStatus.bind(this)}static type(){return ps.ATTRIBUTE}initializeNode(){this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile_if_is_exporting.bind(this)),this.lifecycle.add_on_create_hook(this._on_create_set_name_if_none_bound),this.io.connection_points.initializeNode(),this.io.connection_points.set_expected_input_types_function((()=>{var t,e;return(null===(e=null===(t=this.material_node)||void 0===t?void 0:t.assemblerController)||void 0===e?void 0:e.allow_attribute_exports())?[xf[this.pv.type]]:[]})),this.io.connection_points.set_input_name_function((t=>wf.INPUT_NAME)),this.io.connection_points.set_expected_output_types_function((()=>[xf[this.pv.type]])),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name,this.p.exportWhenConnected],(()=>this.pv.exportWhenConnected?`${this.pv.name} (EXPORTED)`:this.pv.name))}))})),this.lifecycle.add_on_add_hook(this._bound_setExportWhenConnectedStatus),this.params.addOnSceneLoadHook(\\\\\\\"prepare params\\\\\\\",this._bound_setExportWhenConnectedStatus)}_setExportWhenConnectedStatus(){var t,e;(null===(e=null===(t=this.material_node)||void 0===t?void 0:t.assemblerController)||void 0===e?void 0:e.allow_attribute_exports())&&this.p.texportWhenConnected.set(1)}setAttribSize(t){this.p.type.set(t-1)}get input_name(){return wf.INPUT_NAME}get output_name(){return wf.OUTPUT_NAME}setLines(t){t.assembler().set_node_lines_attribute(this,t)}get attribute_name(){return this.pv.name.trim()}gl_type(){return this.io.outputs.namedOutputConnectionPoints()[0].type()}set_gl_type(t){this.p.type.set(xf.indexOf(t))}connected_input_node(){return this.io.inputs.named_input(wf.INPUT_NAME)}connected_input_connection_point(){return this.io.inputs.named_input_connection_point(wf.INPUT_NAME)}output_connection_point(){return this.io.outputs.namedOutputConnectionPointsByName(this.output_name)}isImporting(){return this.io.outputs.used_output_names().length>0}isExporting(){if(this.pv.exportWhenConnected){return null!=this.io.inputs.named_input(wf.INPUT_NAME)}return!1}_set_mat_to_recompile_if_is_exporting(){this.isExporting()&&this._set_mat_to_recompile()}_on_create_set_name_if_none(){\\\\\\\"\\\\\\\"==this.pv.name&&this.p.name.set(this.name())}}wf.INPUT_NAME=\\\\\\\"in\\\\\\\",wf.OUTPUT_NAME=\\\\\\\"val\\\\\\\";class Tf{constructor(t=[]){this._definitions=t,this._errored=!1}get errored(){return this._errored}get error_message(){return this._error_message}uniq(){const t=new Map,e=[];for(let n of this._definitions)if(!this._errored){const i=n.name(),s=t.get(i);s?s.data_type!=n.data_type&&(this._errored=!0,this._error_message=`attempt to create '${n.name()}' with types '${n.data_type}' by node '${n.node.path()}', when there is already an existing with type ${s.data_type} from node '${s.node.path()}'`,console.warn(\\\\\\\"emitting error message:\\\\\\\",this._error_message)):(t.set(i,n),e.push(i))}const n=[];for(let i of e){const e=t.get(i);e&&n.push(e)}return n}}var Af,Mf;!function(t){t.ATTRIBUTE=\\\\\\\"attribute\\\\\\\",t.FUNCTION=\\\\\\\"function\\\\\\\",t.UNIFORM=\\\\\\\"uniform\\\\\\\",t.VARYING=\\\\\\\"varying\\\\\\\"}(Af||(Af={}));class Ef{constructor(t,e,n,i){this._definition_type=t,this._data_type=e,this._node=n,this._name=i}get definition_type(){return this._definition_type}get data_type(){return this._data_type}get node(){return this._node}name(){return this._name}collection_instance(){return new Tf}}class Sf extends Ef{constructor(t,e,n){super(Af.ATTRIBUTE,e,t,n),this._node=t,this._data_type=e,this._name=n}get line(){return`attribute ${this.data_type} ${this.name()}`}}class Cf extends Ef{constructor(t,e){super(Af.FUNCTION,Uo.FLOAT,t,e),this._node=t,this._name=e}get line(){return this.name()}}class Nf extends Ef{constructor(t,e,n){super(Af.UNIFORM,e,t,n),this._node=t,this._data_type=e,this._name=n}get line(){return`uniform ${this.data_type} ${this.name()}`}}class Lf extends Ef{constructor(t,e,n){super(Af.VARYING,e,t,n),this._node=t,this._data_type=e,this._name=n}get line(){return`varying ${this.data_type} ${this.name()}`}}!function(t){t.VERTEX=\\\\\\\"vertex\\\\\\\",t.FRAGMENT=\\\\\\\"fragment\\\\\\\",t.LEAVES_FROM_NODES_SHADER=\\\\\\\"leaves_from_nodes_shader\\\\\\\"}(Mf||(Mf={}));const Of={position:\\\\\\\"vec3( position )\\\\\\\"};class Pf extends _f{handle_globals_node(t,e,n){var i,s;const r=t.io.outputs.namedOutputConnectionPointsByName(e);if(!r)return;const o=t.glVarName(e),a=r.type(),l=new Lf(t,a,o);n.addDefinitions(t,[l]);const c=null===(s=null===(i=t.material_node)||void 0===i?void 0:i.assemblerController)||void 0===s?void 0:s.assembler;if(!c)return;const h=c.shader_config(n.current_shader_name);if(!h)return;const u=h.dependencies(),d=[],p=`${o} = modelMatrix * vec4( position, 1.0 )`,_=`${o} = normalize( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal )`;switch(e){case\\\\\\\"worldPosition\\\\\\\":d.push(p);break;case\\\\\\\"worldNormal\\\\\\\":d.push(_);break;default:d.push(`${o} = ${a}(${e})`)}for(let e of u)n.addDefinitions(t,[l],e),n.addBodyLines(t,d,e);0==u.length&&n.addBodyLines(t,d)}static variable_config_default(t){return Of[t]}variable_config_default(t){return Pf.variable_config_default(t)}read_attribute(t,e,n,i){return Pf.read_attribute(t,e,n,i)}static read_attribute(t,e,n,i){var s,r;Pf.PRE_DEFINED_ATTRIBUTES.indexOf(n)<0&&i.addDefinitions(t,[new Sf(t,e,n)],Mf.VERTEX);const o=i.current_shader_name;switch(o){case Mf.VERTEX:return n;case Mf.FRAGMENT:{if(!(t instanceof wf))return;const a=\\\\\\\"varying_\\\\\\\"+t.glVarName(t.output_name),l=new Lf(t,e,a),c=new Map;c.set(Mf.FRAGMENT,[]);const u=new Map;u.set(Mf.FRAGMENT,[]),h.pushOnArrayAtEntry(c,o,l);const d=`${a} = ${e}(${n})`,p=null===(r=null===(s=t.material_node)||void 0===s?void 0:s.assemblerController)||void 0===r?void 0:r.assembler.shader_config(o);if(p){const e=p.dependencies();for(let t of e)h.pushOnArrayAtEntry(c,t,l),h.pushOnArrayAtEntry(u,t,d);c.forEach(((e,n)=>{i.addDefinitions(t,e,n)})),u.forEach(((e,n)=>{i.addBodyLines(t,e,n)}))}return a}}}handle_attribute_node(t,e,n,i){return Pf.read_attribute(t,e,n,i)}}Pf.PRE_DEFINED_ATTRIBUTES=[\\\\\\\"position\\\\\\\",\\\\\\\"color\\\\\\\",\\\\\\\"normal\\\\\\\",\\\\\\\"uv\\\\\\\",\\\\\\\"uv2\\\\\\\",\\\\\\\"morphTarget0\\\\\\\",\\\\\\\"morphTarget1\\\\\\\",\\\\\\\"morphTarget2\\\\\\\",\\\\\\\"morphTarget3\\\\\\\",\\\\\\\"skinIndex\\\\\\\",\\\\\\\"skinWeight\\\\\\\"],Pf.IF_RULE={uv:\\\\\\\"defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\\\\\\"};const Rf=[Uo.FLOAT,Uo.VEC2,Uo.VEC3,Uo.VEC4];const If=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"\\\\\\\"),this.type=ha.INTEGER(0,{menu:{entries:Rf.map(((t,e)=>({name:t,value:e})))}})}};class Ff extends gf{constructor(){super(...arguments),this.paramsConfig=If,this._on_create_set_name_if_none_bound=this._on_create_set_name_if_none.bind(this)}static type(){return\\\\\\\"varyingWrite\\\\\\\"}initializeNode(){this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile.bind(this)),this.lifecycle.add_on_create_hook(this._on_create_set_name_if_none_bound),this.io.connection_points.initializeNode(),this.io.connection_points.set_input_name_function((()=>this.input_name)),this.io.connection_points.set_expected_input_types_function((()=>[Rf[this.pv.type]])),this.io.connection_points.set_expected_output_types_function((()=>[])),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}get input_name(){return Ff.INPUT_NAME}setLines(t){if(t.current_shader_name==Mf.VERTEX){const e=this.gl_type();if(!e)return;const n=this.pv.name,i=new Lf(this,e,n),s=`${n} = ${mf.any(this.variableForInput(Ff.INPUT_NAME))}`;t.addDefinitions(this,[i],Mf.VERTEX),t.addBodyLines(this,[s],Mf.VERTEX)}}get attribute_name(){return this.pv.name.trim()}gl_type(){const t=this.io.inputs.namedInputConnectionPoints()[0];if(t)return t.type()}set_gl_type(t){this.p.type.set(Rf.indexOf(t))}_on_create_set_name_if_none(){\\\\\\\"\\\\\\\"==this.pv.name&&this.p.name.set(this.name())}}Ff.INPUT_NAME=\\\\\\\"vertex\\\\\\\";class Df{static findOutputNodes(t){return t.nodesByType(\\\\\\\"output\\\\\\\")}static findParamGeneratingNodes(t){var e;const n=[];return null===(e=t.childrenController)||void 0===e||e.traverseChildren((t=>{const e=t;e.paramsGenerating()&&n.push(e)})),n}static findVaryingNodes(t){return t.nodesByType(Ff.type())}static findAttributeExportNodes(t){return t.nodesByType(wf.type()).filter((t=>t.isExporting()))}}class Bf{static overlay(t,e){return new Promise(((n,i)=>{let s=document.createElement(\\\\\\\"canvas\\\\\\\");s.width=Math.max(t.width,e.width),s.height=Math.max(t.height,e.height);let r=s.getContext(\\\\\\\"2d\\\\\\\");r.drawImage(t,0,0,t.width,t.height),r.drawImage(e,0,0,e.width,e.height);const o=s.toDataURL(\\\\\\\"image/png\\\\\\\"),a=new Image;a.onload=()=>{n(a)},a.src=o}))}static create_white_image(t,e){return new Promise(((n,i)=>{let s=document.createElement(\\\\\\\"canvas\\\\\\\");s.width=t,s.height=e;let r=s.getContext(\\\\\\\"2d\\\\\\\");r.beginPath(),r.rect(0,0,t,e),r.fillStyle=\\\\\\\"white\\\\\\\",r.fill();const o=s.toDataURL(\\\\\\\"image/png\\\\\\\"),a=new Image;a.onload=()=>{n(a)},a.src=o}))}static make_square(t){return new Promise(((e,n)=>{let i=document.createElement(\\\\\\\"canvas\\\\\\\");const s=Math.min(t.width,t.height),r=t.width/t.height;i.width=s,i.height=s;let o=i.getContext(\\\\\\\"2d\\\\\\\");const a=r>1,l=a?(t.width-s)/2:(t.height-s)/2;a?o.drawImage(t,l,0,s,s,0,0,s,s):o.drawImage(t,0,l,s,s,0,0,s,s);const c=i.toDataURL(\\\\\\\"image/png\\\\\\\"),h=new Image;h.onload=()=>{e(h)},h.src=c}))}static async image_to_blob(t){return new Promise((function(e,n){try{let i=new XMLHttpRequest;i.open(\\\\\\\"GET\\\\\\\",t.src),i.responseType=\\\\\\\"blob\\\\\\\",i.onerror=function(){n(\\\\\\\"Network error.\\\\\\\")},i.onload=function(){200===i.status?e(i.response):n(\\\\\\\"Loading error:\\\\\\\"+i.statusText)},i.send()}catch(t){n(t.message)}}))}static data_from_url(t){return new Promise(((e,n)=>{const i=new Image;i.crossOrigin=\\\\\\\"Anonymous\\\\\\\",i.onload=()=>{const t=this.data_from_image(i);e(t)},i.src=t}))}static data_from_image(t){const e=document.createElement(\\\\\\\"canvas\\\\\\\");e.width=t.width,e.height=t.height;const n=e.getContext(\\\\\\\"2d\\\\\\\");return n.drawImage(t,0,0,t.width,t.height),n.getImageData(0,0,t.width,t.height)}}var zf;!function(t){t.Uint8Array=\\\\\\\"Uint8Array\\\\\\\",t.Uint8ClampedArray=\\\\\\\"Uint8ClampedArray\\\\\\\",t.Float32Array=\\\\\\\"Float32Array\\\\\\\"}(zf||(zf={}));class kf{constructor(t){this.buffer_type=t}from_render_target(t,e){return this._data_texture&&this._same_dimensions(e.texture)||(this._data_texture=this._create_data_texture(e.texture)),this._copy_to_data_texture(t,e),this._data_texture}from_texture(t){const e=Bf.data_from_image(t.image);this._data_texture&&this._same_dimensions(t)||(this._data_texture=this._create_data_texture(t));const n=e.width*e.height,i=e.data,s=this._data_texture.image.data,r=4*n;for(let t=0;t<r;t++)s[t]=i[t];return this._data_texture}get data_texture(){return this._data_texture}reset(){this._data_texture=void 0}_copy_to_data_texture(t,e){const n=e.texture.image;this._data_texture=this._data_texture||this._create_data_texture(e.texture),t.readRenderTargetPixels(e,0,0,n.width,n.height,this._data_texture.image.data),this._data_texture.needsUpdate=!0}_create_data_texture(t){const e=t.image,n=this._create_pixel_buffer(e.width,e.height);return new vo.a(n,e.width,e.height,t.format,t.type,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.anisotropy,t.encoding)}_create_pixel_buffer(t,e){const n=t*e*4;switch(this.buffer_type){case zf.Uint8Array:return new Uint8Array(n);case zf.Uint8ClampedArray:return new Uint8ClampedArray(n);case zf.Float32Array:return new Float32Array(n)}os.unreachable(this.buffer_type)}_same_dimensions(t){if(this._data_texture){const e=this._data_texture.image.width==t.image.width,n=this._data_texture.image.height==t.image.height;return e&&n}return!0}}new class extends ua{};class Uf{constructor(t){this.node=t}async renderer(){return await this.cameraRenderer()}reset(){var t;null===(t=this._renderer)||void 0===t||t.dispose(),this._renderer=void 0}async cameraRenderer(){let t=li.renderersController.firstRenderer();return t||await li.renderersController.waitForRenderer()}save_state(){this.make_linear()}make_linear(){}restore_state(){}}var Gf=n(22),Vf=n(13);class Hf extends O.a{constructor(t){super(),this.type=\\\\\\\"ShadowMaterial\\\\\\\",this.color=new D.a(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}Hf.prototype.isShadowMaterial=!0;class jf extends O.a{constructor(t){super(),this.type=\\\\\\\"SpriteMaterial\\\\\\\",this.color=new D.a(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}jf.prototype.isSpriteMaterial=!0;var Wf=n(59),qf=n(56);class Xf extends O.a{constructor(t){super(),this.defines={TOON:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshToonMaterial\\\\\\\",this.color=new D.a(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new D.a(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=w.Uc,this.normalScale=new d.a(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}Xf.prototype.isMeshToonMaterial=!0;class Yf extends O.a{constructor(t){super(),this.type=\\\\\\\"MeshNormalMaterial\\\\\\\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=w.Uc,this.normalScale=new d.a(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}Yf.prototype.isMeshNormalMaterial=!0;class $f extends O.a{constructor(t){super(),this.defines={MATCAP:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshMatcapMaterial\\\\\\\",this.color=new D.a(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=w.Uc,this.normalScale=new d.a(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:\\\\\\\"\\\\\\\"},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this}}$f.prototype.isMeshMatcapMaterial=!0;class Jf extends As.a{constructor(t){super(),this.type=\\\\\\\"LineDashedMaterial\\\\\\\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}Jf.prototype.isLineDashedMaterial=!0;class Zf extends Vf.a{constructor(t){super(t),this.textures={}}load(t,e,n,i){const s=this,r=new Gf.a(s.manager);r.setPath(s.path),r.setRequestHeader(s.requestHeader),r.setWithCredentials(s.withCredentials),r.load(t,(function(n){try{e(s.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),s.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn(\\\\\\\"THREE.MaterialLoader: Undefined texture\\\\\\\",t),e[t]}const s=new i[t.type];if(void 0!==t.uuid&&(s.uuid=t.uuid),void 0!==t.name&&(s.name=t.name),void 0!==t.color&&void 0!==s.color&&s.color.setHex(t.color),void 0!==t.roughness&&(s.roughness=t.roughness),void 0!==t.metalness&&(s.metalness=t.metalness),void 0!==t.sheen&&(s.sheen=t.sheen),void 0!==t.sheenTint&&(s.sheenTint=(new D.a).setHex(t.sheenTint)),void 0!==t.sheenRoughness&&(s.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==s.emissive&&s.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==s.specular&&s.specular.setHex(t.specular),void 0!==t.specularIntensity&&(s.specularIntensity=t.specularIntensity),void 0!==t.specularTint&&void 0!==s.specularTint&&s.specularTint.setHex(t.specularTint),void 0!==t.shininess&&(s.shininess=t.shininess),void 0!==t.clearcoat&&(s.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(s.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.transmission&&(s.transmission=t.transmission),void 0!==t.thickness&&(s.thickness=t.thickness),void 0!==t.attenuationDistance&&(s.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationTint&&void 0!==s.attenuationTint&&s.attenuationTint.setHex(t.attenuationTint),void 0!==t.fog&&(s.fog=t.fog),void 0!==t.flatShading&&(s.flatShading=t.flatShading),void 0!==t.blending&&(s.blending=t.blending),void 0!==t.combine&&(s.combine=t.combine),void 0!==t.side&&(s.side=t.side),void 0!==t.shadowSide&&(s.shadowSide=t.shadowSide),void 0!==t.opacity&&(s.opacity=t.opacity),void 0!==t.format&&(s.format=t.format),void 0!==t.transparent&&(s.transparent=t.transparent),void 0!==t.alphaTest&&(s.alphaTest=t.alphaTest),void 0!==t.depthTest&&(s.depthTest=t.depthTest),void 0!==t.depthWrite&&(s.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(s.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(s.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(s.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(s.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(s.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(s.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(s.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(s.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(s.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(s.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(s.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(s.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(s.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(s.rotation=t.rotation),1!==t.linewidth&&(s.linewidth=t.linewidth),void 0!==t.dashSize&&(s.dashSize=t.dashSize),void 0!==t.gapSize&&(s.gapSize=t.gapSize),void 0!==t.scale&&(s.scale=t.scale),void 0!==t.polygonOffset&&(s.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(s.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(s.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(s.dithering=t.dithering),void 0!==t.alphaToCoverage&&(s.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(s.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.toneMapped&&(s.toneMapped=t.toneMapped),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.vertexColors&&(\\\\\\\"number\\\\\\\"==typeof t.vertexColors?s.vertexColors=t.vertexColors>0:s.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const i=t.uniforms[e];switch(s.uniforms[e]={},i.type){case\\\\\\\"t\\\\\\\":s.uniforms[e].value=n(i.value);break;case\\\\\\\"c\\\\\\\":s.uniforms[e].value=(new D.a).setHex(i.value);break;case\\\\\\\"v2\\\\\\\":s.uniforms[e].value=(new d.a).fromArray(i.value);break;case\\\\\\\"v3\\\\\\\":s.uniforms[e].value=(new p.a).fromArray(i.value);break;case\\\\\\\"v4\\\\\\\":s.uniforms[e].value=(new _.a).fromArray(i.value);break;case\\\\\\\"m3\\\\\\\":s.uniforms[e].value=(new G.a).fromArray(i.value);break;case\\\\\\\"m4\\\\\\\":s.uniforms[e].value=(new A.a).fromArray(i.value);break;default:s.uniforms[e].value=i.value}}if(void 0!==t.defines&&(s.defines=t.defines),void 0!==t.vertexShader&&(s.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(s.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)s.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(s.flatShading=1===t.shading),void 0!==t.size&&(s.size=t.size),void 0!==t.sizeAttenuation&&(s.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(s.map=n(t.map)),void 0!==t.matcap&&(s.matcap=n(t.matcap)),void 0!==t.alphaMap&&(s.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(s.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(s.bumpScale=t.bumpScale),void 0!==t.normalMap&&(s.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(s.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),s.normalScale=(new d.a).fromArray(e)}return void 0!==t.displacementMap&&(s.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(s.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(s.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(s.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(s.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(s.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(s.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(s.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(s.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularTintMap&&(s.specularTintMap=n(t.specularTintMap)),void 0!==t.envMap&&(s.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(s.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(s.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(s.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(s.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(s.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(s.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(s.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(s.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(s.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(s.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(s.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(s.clearcoatNormalScale=(new d.a).fromArray(t.clearcoatNormalScale)),void 0!==t.transmissionMap&&(s.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(s.thicknessMap=n(t.thicknessMap)),s}setTextures(t){return this.textures=t,this}}class Kf{constructor(t){this.node=t,this._found_uniform_texture_by_id=new Map,this._found_uniform_textures_id_by_uniform_name=new Map,this._found_param_texture_by_id=new Map,this._found_param_textures_id_by_uniform_name=new Map}toJSON(){}load(t){}_materialToJson(t,e){let n;this._unassignTextures(t);try{n=t.toJSON({}),n&&(n.shadowSide=t.shadowSide,n.colorWrite=t.colorWrite)}catch(e){console.error(\\\\\\\"failed to save material data\\\\\\\"),console.log(t)}return n&&null!=t.lights&&(n.lights=t.lights),n&&(n.uuid=`${e.node.path()}-${e.suffix}`),this._reassignTextures(t),n}_unassignTextures(t){this._found_uniform_texture_by_id.clear(),this._found_uniform_textures_id_by_uniform_name.clear(),this._found_param_texture_by_id.clear(),this._found_param_textures_id_by_uniform_name.clear();const e=t.uniforms,n=Object.keys(e);for(let t of n){const n=e[t].value;if(n&&n.uuid){const i=n;this._found_uniform_texture_by_id.set(i.uuid,n),this._found_uniform_textures_id_by_uniform_name.set(t,i.uuid),e[t].value=null}}const i=Object.keys(t);for(let e of i){const n=t[e];if(n&&n.uuid){const i=n;this._found_param_texture_by_id.set(i.uuid,i),this._found_param_textures_id_by_uniform_name.set(e,i.uuid),t[e]=null}}}_reassignTextures(t){const e=[],n=[];this._found_uniform_textures_id_by_uniform_name.forEach(((t,n)=>{e.push(n)})),this._found_param_textures_id_by_uniform_name.forEach(((t,e)=>{n.push(e)}));const i=t.uniforms;for(let t of e){const e=this._found_uniform_textures_id_by_uniform_name.get(t);if(e){const n=this._found_uniform_texture_by_id.get(e);n&&(i[t].value=n)}}for(let e of n){const n=this._found_param_textures_id_by_uniform_name.get(e);if(n){const i=this._found_param_texture_by_id.get(n);i&&(t[e]=i)}}}_loadMaterial(t){t.color=void 0;const e=(new Zf).parse(t);t.shadowSide&&(e.shadowSide=t.shadowSide),null!=t.lights&&(e.lights=t.lights);const n=e.uniforms.uv2Transform;n&&this.mat4ToMat3(n);const i=e.uniforms.uvTransform;return i&&this.mat4ToMat3(i),e}mat4ToMat3(t){const e=t.value;if(null==e.elements[e.elements.length-1]){const n=new G.a;for(let t=0;t<n.elements.length;t++)n.elements[t]=e.elements[t];t.value=n}}}class Qf{constructor(t,e,n){this._type=t,this._name=e,this._default_value=n}static from_param(t){return new Qf(t.type(),t.name(),t.defaultValue())}type(){return this._type}name(){return this._name}get default_value(){return this._default_value}get param_options(){const t=this._callback.bind(this);switch(this._type){case Cr.OPERATOR_PATH:return{callback:t,nodeSelection:{context:ts.COP}};default:return{callback:t}}}_callback(t,e){}}class tg extends Qf{constructor(t,e,n,i){super(t,e,n),this._uniform_name=i}get uniform_name(){return this._uniform_name}get uniform(){return this._uniform=this._uniform||this._create_uniform()}_create_uniform(){return tg.uniform_by_type(this._type)}execute_callback(t,e){this._callback(t,e)}_callback(t,e){tg.callback(e,this.uniform)}static callback(t,e){switch(t.type()){case Cr.RAMP:return void(e.value=t.rampTexture());case Cr.OPERATOR_PATH:return void tg.set_uniform_value_from_texture(t,e);case Cr.NODE_PATH:return void tg.set_uniform_value_from_texture_from_node_path_param(t,e);default:e.value=t.value}}static uniform_by_type(t){switch(t){case Cr.BOOLEAN:case Cr.BUTTON:return{value:0};case Cr.COLOR:return{value:new D.a(0,0,0)};case Cr.FLOAT:case Cr.FOLDER:case Cr.INTEGER:case Cr.OPERATOR_PATH:case Cr.NODE_PATH:case Cr.PARAM_PATH:return{value:0};case Cr.RAMP:case Cr.STRING:return{value:null};case Cr.VECTOR2:return{value:new d.a(0,0)};case Cr.VECTOR3:return{value:new p.a(0,0,0)};case Cr.VECTOR4:return{value:new _.a(0,0,0,0)}}os.unreachable(t)}static set_uniform_value_from_texture(t,e){const n=t.found_node();if(n)if(n.isDirty())n.compute().then((t=>{const n=t.texture();e.value=n}));else{const t=n.containerController.container().texture();e.value=t}else e.value=null}static async set_uniform_value_from_texture_from_node_path_param(t,e){t.isDirty()&&await t.compute();const n=t.value.nodeWithContext(ts.COP);if(n)if(n.isDirty())n.compute().then((t=>{const n=t.texture();e.value=n}));else{const t=n.containerController.container().texture();e.value=t}else e.value=null}set_uniform_value_from_ramp(t,e){e.value=t.rampTexture()}}class eg extends Kf{constructor(t){super(t),this.node=t}toJSON(){const t=this.node.assemblerController;if(!t)return;const e=[],n=t.assembler.param_configs();for(let t of n)e.push([t.name(),t.uniform_name]);return{fragment_shader:this.node.texture_material.fragmentShader,uniforms:this.node.texture_material.uniforms,param_uniform_pairs:e,uniforms_time_dependent:t.assembler.uniformsTimeDependent(),uniforms_resolution_dependent:t.assembler.uniforms_resolution_dependent()}}load(t){this.node.texture_material.fragmentShader=t.fragment_shader,this.node.texture_material.uniforms=t.uniforms,rg.handleDependencies(this.node,t.uniforms_time_dependent||!1,t.uniforms);for(let e of t.param_uniform_pairs){const n=this.node.params.get(e[0]),i=t.uniforms[e[1]];n&&i&&n.options.set({callback:()=>{tg.callback(n,i)}})}}}class ng{static isChrome(){return navigator&&null!=navigator.userAgent&&-1!=navigator.userAgent.indexOf(\\\\\\\"Chrome\\\\\\\")}static isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}static isiOS(){return/(iPad|iPhone|iPod)/g.test(navigator.userAgent)}static isAndroid(){return/(Android)/g.test(navigator.userAgent)}static isTouchDevice(){var t=document.createElement(\\\\\\\"div\\\\\\\");return t.setAttribute(\\\\\\\"ongesturestart\\\\\\\",\\\\\\\"return;\\\\\\\"),\\\\\\\"function\\\\\\\"==typeof t.ongesturestart}}const ig=[256,256];const sg=new class extends ua{constructor(){super(...arguments),this.resolution=ha.VECTOR2(ig),this.useCameraRenderer=ha.BOOLEAN(0)}};class rg extends df{constructor(){super(...arguments),this.paramsConfig=sg,this.persisted_config=new eg(this),this._assembler_controller=this._create_assembler_controller(),this._texture_mesh=new B.a(new L(2,2)),this.texture_material=new F({uniforms:{},vertexShader:\\\\\\\"\\\\nvoid main()\\\\t{\\\\n\\\\tgl_Position = vec4( position, 1.0 );\\\\n}\\\\n\\\\\\\",fragmentShader:\\\\\\\"\\\\\\\"}),this._texture_scene=new vs,this._texture_camera=new of.a,this._children_controller_context=ts.GL,this._cook_main_without_inputs_when_dirty_bound=this._cook_main_without_inputs_when_dirty.bind(this),this._boundRenderOnTarget=this.renderOnTarget.bind(this)}static type(){return\\\\\\\"builder\\\\\\\"}usedAssembler(){return jn.GL_TEXTURE}_create_assembler_controller(){const t=li.assemblersRegister.assembler(this,this.usedAssembler());if(t){const e=new Pf;return t.set_assembler_globals_handler(e),t}}get assemblerController(){return this._assembler_controller}initializeNode(){this._texture_mesh.material=this.texture_material,this._texture_mesh.scale.multiplyScalar(.25),this._texture_scene.add(this._texture_mesh),this._texture_camera.position.z=1,this.addPostDirtyHook(\\\\\\\"_cook_main_without_inputs_when_dirty\\\\\\\",(()=>{setTimeout(this._cook_main_without_inputs_when_dirty_bound,0)}))}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}childrenAllowed(){return this.assemblerController?super.childrenAllowed():(this.scene().markAsReadOnly(this),!1)}async _cook_main_without_inputs_when_dirty(){await this.cookController.cookMainWithoutInputs()}async cook(){this.compileIfRequired(),this.renderOnTarget()}shaders_by_name(){return{fragment:this._fragment_shader}}compileIfRequired(){var t;(null===(t=this.assemblerController)||void 0===t?void 0:t.compileRequired())&&this.compile()}compile(){const t=this.assemblerController;if(!t)return;const e=Df.findOutputNodes(this);if(e.length>1)return void this.states.error.set(\\\\\\\"only one output node allowed\\\\\\\");if(e[0]){const n=e;t.assembler.set_root_nodes(n),t.assembler.update_fragment_shader();const i=t.assembler.fragment_shader(),s=t.assembler.uniforms();i&&s&&(this._fragment_shader=i,this._uniforms=s),rg.handleDependencies(this,t.assembler.uniformsTimeDependent())}this._fragment_shader&&this._uniforms&&(this.texture_material.fragmentShader=this._fragment_shader,this.texture_material.uniforms=this._uniforms,this.texture_material.needsUpdate=!0,this.texture_material.uniforms.resolution={value:this.pv.resolution}),t.post_compile()}static handleDependencies(t,e,n){const i=t.scene();if(e){n&&i.uniformsController.addTimeDependentUniformOwner(t._uniformCallbackName(),n);const e=t._callbackName();i.registeredBeforeTickCallbacks().has(e)||i.registerOnBeforeTick(e,t._boundRenderOnTarget)}else t._removeCallbacks()}_callbackName(){return`cop/builder_${this.graphNodeId()}`}_uniformCallbackName(){return`cop/builder_uniforms_${this.graphNodeId()}`}dispose(){super.dispose(),this._removeCallbacks()}_removeCallbacks(){const t=this.scene();t.uniformsController.removeTimeDependentUniformOwner(this._uniformCallbackName()),t.unRegisterOnBeforeTick(this._callbackName())}async renderOnTarget(){if(this.createRenderTargetIfRequired(),!this._render_target)return;this._renderer_controller=this._renderer_controller||new Uf(this);const t=await this._renderer_controller.renderer(),e=t.getRenderTarget();if(t.setRenderTarget(this._render_target),t.clear(),t.render(this._texture_scene,this._texture_camera),t.setRenderTarget(e),this._render_target.texture)if(this.pv.useCameraRenderer)this.setTexture(this._render_target.texture);else{this._data_texture_controller=this._data_texture_controller||new kf(zf.Float32Array);const e=this._data_texture_controller.from_render_target(t,this._render_target);this.setTexture(e)}else this.cookController.endCook()}renderTarget(){return this._render_target=this._render_target||this._createRenderTarget(this.pv.resolution.x,this.pv.resolution.y)}createRenderTargetIfRequired(){var t;this._render_target&&this._renderTargetResolutionValid()||(this._render_target=this._createRenderTarget(this.pv.resolution.x,this.pv.resolution.y),null===(t=this._data_texture_controller)||void 0===t||t.reset())}_renderTargetResolutionValid(){if(this._render_target){const t=this._render_target.texture.image;return t.width==this.pv.resolution.x&&t.height==this.pv.resolution.y}return!1}_createRenderTarget(t,e){if(this._render_target){const n=this._render_target.texture.image;if(n.width==t&&n.height==e)return this._render_target}const n=w.n,i=w.n,s=w.V,r=w.ob;var o=new K(t,e,{wrapS:n,wrapT:i,minFilter:s,magFilter:r,format:w.Ib,type:ng.isiOS()?w.M:w.G,stencilBuffer:!1,depthBuffer:!1});return li.warn(\\\\\\\"created render target\\\\\\\",this.path(),t,e),o}}const og=[{LinearEncoding:w.U},{sRGBEncoding:w.ld},{GammaEncoding:w.J},{RGBEEncoding:w.gc},{LogLuvEncoding:w.bb},{RGBM7Encoding:w.lc},{RGBM16Encoding:w.kc},{RGBDEncoding:w.fc},{BasicDepthPacking:w.j},{RGBADepthPacking:w.Hb}],ag=[{ClampToEdgeWrapping:w.n},{RepeatWrapping:w.wc},{MirroredRepeatWrapping:w.kb}],lg=[{UVMapping:w.Yc},{CubeReflectionMapping:w.o},{CubeRefractionMapping:w.p},{EquirectangularReflectionMapping:w.D},{EquirectangularRefractionMapping:w.E},{CubeUVReflectionMapping:w.q},{CubeUVRefractionMapping:w.r}],cg=[{UnsignedByteType:w.Zc},{ByteType:w.l},{ShortType:w.Mc},{UnsignedShortType:w.fd},{IntType:w.N},{UnsignedIntType:w.bd},{FloatType:w.G},{HalfFloatType:w.M},{UnsignedShort4444Type:w.cd},{UnsignedShort5551Type:w.dd},{UnsignedShort565Type:w.ed},{UnsignedInt248Type:w.ad}],hg=[{AlphaFormat:w.f},{RedFormat:w.tc},{RedIntegerFormat:w.uc},{RGFormat:w.rc},{RGIntegerFormat:w.sc},{RGBFormat:w.ic},{RGBIntegerFormat:w.jc},{RGBAFormat:w.Ib},{RGBAIntegerFormat:w.Jb},{LuminanceFormat:w.gb},{LuminanceAlphaFormat:w.fb},{DepthFormat:w.x},{DepthStencilFormat:w.y}];function ug(t){return{cook:!1,callback:e=>{Sg[t](e)}}}const dg={ENCODING:w.U,FORMAT:w.Ib,MAPPING:w.Yc,MIN_FILTER:w.V,MAG_FILTER:w.V,TYPE:w.Zc,WRAPPING:w.wc},pg=ug(\\\\\\\"PARAM_CALLBACK_update_encoding\\\\\\\"),_g=ug(\\\\\\\"PARAM_CALLBACK_update_mapping\\\\\\\"),mg=ug(\\\\\\\"PARAM_CALLBACK_update_wrap\\\\\\\"),fg=ug(\\\\\\\"PARAM_CALLBACK_update_filter\\\\\\\"),gg=ug(\\\\\\\"PARAM_CALLBACK_update_anisotropy\\\\\\\"),vg=ug(\\\\\\\"PARAM_CALLBACK_update_flipY\\\\\\\"),yg=ug(\\\\\\\"PARAM_CALLBACK_update_transform\\\\\\\"),xg=ug(\\\\\\\"PARAM_CALLBACK_update_repeat\\\\\\\"),bg=ug(\\\\\\\"PARAM_CALLBACK_update_offset\\\\\\\"),wg=ug(\\\\\\\"PARAM_CALLBACK_update_rotation\\\\\\\"),Tg=ug(\\\\\\\"PARAM_CALLBACK_update_center\\\\\\\"),Ag=ug(\\\\\\\"PARAM_CALLBACK_update_advanced\\\\\\\");function Mg(t,e){return class extends t{constructor(){super(...arguments),this.tencoding=ha.BOOLEAN((null==e?void 0:e.tencoding)||0,{...pg}),this.encoding=ha.INTEGER((null==e?void 0:e.encoding)||dg.ENCODING,{visibleIf:{tencoding:1},menu:{entries:og.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},...pg}),this.tmapping=ha.BOOLEAN(0,{..._g}),this.mapping=ha.INTEGER(dg.MAPPING,{visibleIf:{tmapping:1},menu:{entries:lg.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},..._g}),this.twrap=ha.BOOLEAN(0,{...mg}),this.wrapS=ha.INTEGER(dg.WRAPPING,{visibleIf:{twrap:1},menu:{entries:ag.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},...mg}),this.wrapT=ha.INTEGER(dg.WRAPPING,{visibleIf:{twrap:1},menu:{entries:ag.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},separatorAfter:!0,...mg}),this.tminFilter=ha.BOOLEAN(0,{...fg}),this.minFilter=ha.INTEGER(Km,{visibleIf:{tminFilter:1},menu:{entries:tf},...fg}),this.tmagFilter=ha.BOOLEAN(0,{...fg}),this.magFilter=ha.INTEGER(Zm,{visibleIf:{tmagFilter:1},menu:{entries:Qm},...fg}),this.tanisotropy=ha.BOOLEAN(0,{...gg}),this.useRendererMaxAnisotropy=ha.BOOLEAN(0,{visibleIf:{tanisotropy:1},...gg}),this.anisotropy=ha.INTEGER(2,{visibleIf:{tanisotropy:1,useRendererMaxAnisotropy:0},range:[0,32],rangeLocked:[!0,!1],...gg}),this.tflipY=ha.BOOLEAN(0,{...vg}),this.flipY=ha.BOOLEAN(0,{visibleIf:{tflipY:1},...vg}),this.ttransform=ha.BOOLEAN(0,{...yg}),this.offset=ha.VECTOR2([0,0],{visibleIf:{ttransform:1},...bg}),this.repeat=ha.VECTOR2([1,1],{visibleIf:{ttransform:1},...xg}),this.rotation=ha.FLOAT(0,{range:[-1,1],visibleIf:{ttransform:1},...wg}),this.center=ha.VECTOR2([0,0],{visibleIf:{ttransform:1},...Tg}),this.tadvanced=ha.BOOLEAN(0,{...Ag}),this.tformat=ha.BOOLEAN(0,{visibleIf:{tadvanced:1},...Ag}),this.format=ha.INTEGER(dg.FORMAT,{visibleIf:{tadvanced:1,tformat:1},menu:{entries:hg.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},...Ag}),this.ttype=ha.BOOLEAN(0,{visibleIf:{tadvanced:1},...Ag}),this.type=ha.INTEGER(dg.TYPE,{visibleIf:{tadvanced:1,ttype:1},menu:{entries:cg.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},...Ag})}}}class Eg extends(Mg(ua)){}new Eg;class Sg{constructor(t){this.node=t}async update(t){const e=this.node.pv;this._updateEncoding(t,e),this._updateAdvanced(t,e),this._updateMapping(t,e),this._updateWrap(t,e),this._updateFilter(t,e),this._updateFlip(t,e),await this._updateAnisotropy(t,e),this._updateTransform(t)}_updateEncoding(t,e){e.tencoding?t.encoding=e.encoding:t.encoding=dg.ENCODING,t.needsUpdate=!0}_updateAdvanced(t,e){e.tadvanced&&(e.tformat?t.format=e.format:t.format=dg.FORMAT,e.ttype?t.type=e.type:t.type=dg.TYPE),t.needsUpdate=!0}_updateMapping(t,e){e.tmapping?t.mapping=e.mapping:t.mapping=dg.MAPPING,t.needsUpdate=!0}_updateWrap(t,e){e.twrap?(t.wrapS=e.wrapS,t.wrapT=e.wrapT):(t.wrapS=dg.WRAPPING,t.wrapT=dg.WRAPPING),t.needsUpdate=!0}_updateFilter(t,e){e.tminFilter?t.minFilter=e.minFilter:t.minFilter=w.V,e.tmagFilter?t.magFilter=e.magFilter:t.magFilter=w.V,t.needsUpdate=!0}_updateFlip(t,e){t.flipY=e.tflipY&&e.flipY,t.needsUpdate=!0}async _updateAnisotropy(t,e){if(e.tanisotropy){if(e.useRendererMaxAnisotropy)t.anisotropy=await this._maxRendererAnisotropy();else{const n=e.anisotropy;t.anisotropy=n<=2?n:Math.min(n,await this._maxRendererAnisotropy())}t.needsUpdate=!0}else t.anisotropy=1}async _maxRendererAnisotropy(){this._renderer_controller=this._renderer_controller||new Uf(this.node);return(await this._renderer_controller.renderer()).capabilities.getMaxAnisotropy()}_updateTransform(t){if(!this.node.pv.ttransform)return t.offset.set(0,0),t.rotation=0,t.repeat.set(1,1),void t.center.set(0,0);this._updateTransformOffset(t,!1),this._updateTransformRepeat(t,!1),this._updateTransformRotation(t,!1),this._updateTransformCenter(t,!1),t.updateMatrix()}async _updateTransformOffset(t,e){t.offset.copy(this.node.pv.offset),e&&t.updateMatrix()}async _updateTransformRepeat(t,e){t.repeat.copy(this.node.pv.repeat),e&&t.updateMatrix()}async _updateTransformRotation(t,e){t.rotation=this.node.pv.rotation,e&&t.updateMatrix()}async _updateTransformCenter(t,e){t.center.copy(this.node.pv.center),e&&t.updateMatrix()}static PARAM_CALLBACK_update_encoding(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateEncoding(e,t.pv)}static PARAM_CALLBACK_update_mapping(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateMapping(e,t.pv)}static PARAM_CALLBACK_update_wrap(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateWrap(e,t.pv)}static PARAM_CALLBACK_update_filter(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateFilter(e,t.pv)}static PARAM_CALLBACK_update_anisotropy(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateAnisotropy(e,t.pv)}static PARAM_CALLBACK_update_flipY(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateFlip(e,t.pv)}static PARAM_CALLBACK_update_transform(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateTransform(e)}static PARAM_CALLBACK_update_offset(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateTransformOffset(e,!0)}static PARAM_CALLBACK_update_repeat(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateTransformRepeat(e,!0)}static PARAM_CALLBACK_update_rotation(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateTransformRotation(e,!0)}static PARAM_CALLBACK_update_center(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateTransformCenter(e,!0)}static PARAM_CALLBACK_update_advanced(t){const e=t.containerController.container().texture();e&&t.textureParamsController._updateAdvanced(e,t.pv)}static copyTextureAttributes(t,e){t.encoding=e.encoding,t.mapping=e.mapping,t.wrapS=e.wrapS,t.wrapT=e.wrapT,t.minFilter=e.minFilter,t.magFilter=e.magFilter,t.magFilter=e.magFilter,t.anisotropy=e.anisotropy,t.flipY=e.flipY,t.repeat.copy(e.repeat),t.offset.copy(e.offset),t.center.copy(e.center),t.rotation=e.rotation,t.type=e.type,t.format=e.format,t.needsUpdate=!0}paramLabelsParams(){const t=this.node.p;return[t.tencoding,t.encoding,t.tmapping,t.mapping,t.twrap,t.wrapS,t.wrapT,t.tminFilter,t.minFilter,t.tmagFilter,t.magFilter,t.tflipY,t.flipY]}paramLabels(){const t=[],e=this.node.pv;if(e.tencoding)for(let n of og){const i=Object.keys(n)[0];n[i]==e.encoding&&t.push(`encoding: ${i}`)}if(e.tmapping)for(let n of lg){const i=Object.keys(n)[0];n[i]==e.mapping&&t.push(`mapping: ${i}`)}if(e.twrap){function n(n){for(let i of ag){const s=Object.keys(i)[0];i[s]==e[n]&&t.push(`${n}: ${s}`)}}n(\\\\\\\"wrapS\\\\\\\"),n(\\\\\\\"wrapT\\\\\\\")}if(e.tminFilter)for(let n of Jm){const i=Object.keys(n)[0];n[i]==e.minFilter&&t.push(`minFilter: ${i}`)}if(e.tmagFilter)for(let n of $m){const i=Object.keys(n)[0];n[i]==e.magFilter&&t.push(`magFilter: ${i}`)}return e.tflipY&&t.push(`flipY: ${e.flipY}`),t}}class Cg extends Z.a{constructor(t,e,n,i,s,r,o,a,l){super(t,e,n,i,s,r,o,a,l),this.needsUpdate=!0}}Cg.prototype.isCanvasTexture=!0;class Ng extends(Mg(function(t){return class extends t{constructor(){super(...arguments),this.canvasId=ha.STRING(\\\\\\\"canvas-id\\\\\\\"),this.update=ha.BUTTON(null,{cook:!1,callback:t=>{Og.PARAM_CALLBACK_update(t)}})}}}(ua))){}const Lg=new Ng;class Og extends df{constructor(){super(...arguments),this.paramsConfig=Lg,this.textureParamsController=new Sg(this)}static type(){return\\\\\\\"canvas\\\\\\\"}async cook(){const t=this.pv.canvasId,e=document.getElementById(t);if(!e)return this.states.error.set(`element with id '${t}' not found`),void this.cookController.endCook();if(!(e instanceof HTMLCanvasElement))return this.states.error.set(\\\\\\\"element found is not a canvas\\\\\\\"),void this.cookController.endCook();const n=new Cg(e);await this.textureParamsController.update(n),this.setTexture(n)}static PARAM_CALLBACK_update(t){t.markTextureNeedsUpdate()}markTextureNeedsUpdate(){const t=this.containerController.container().texture();t&&(t.needsUpdate=!0)}}const Pg=new class extends ua{constructor(){super(...arguments),this.resolution=ha.VECTOR2([256,256],{callback:t=>{Rg.PARAM_CALLBACK_reset(t)}}),this.color=ha.COLOR([1,1,1])}};class Rg extends df{constructor(){super(...arguments),this.paramsConfig=Pg}static type(){return\\\\\\\"color\\\\\\\"}cook(){const t=this.pv.resolution.x,e=this.pv.resolution.y;this._data_texture=this._data_texture||this._create_data_texture(t,e);const n=e*t,i=this.pv.color.toArray(),s=255*i[0],r=255*i[1],o=255*i[2],a=this._data_texture.image.data;for(let t=0;t<n;t++)a[4*t+0]=s,a[4*t+1]=r,a[4*t+2]=o,a[4*t+3]=255;this._data_texture.needsUpdate=!0,this.setTexture(this._data_texture)}_create_data_texture(t,e){const n=this._create_pixel_buffer(t,e);return new vo.a(n,t,e)}_create_pixel_buffer(t,e){return new Uint8Array(t*e*4)}static PARAM_CALLBACK_reset(t){t._reset()}_reset(){this._data_texture=void 0}}var Ig,Fg,Dg;!function(t){t.GEO=\\\\\\\"geo\\\\\\\",t.CUBE_CAMERA=\\\\\\\"cubeCamera\\\\\\\",t.AUDIO_LISTENER=\\\\\\\"audioListener\\\\\\\",t.POSITIONAL_AUDIO=\\\\\\\"positionalAudio\\\\\\\"}(Ig||(Ig={})),function(t){t.CUBE_CAMERA=\\\\\\\"cubeCamera\\\\\\\",t.VIDEO=\\\\\\\"video\\\\\\\",t.WEB_CAM=\\\\\\\"webCam\\\\\\\",t.SNAPSHOT=\\\\\\\"snapshot\\\\\\\"}(Fg||(Fg={})),function(t){t.REFLECTION=\\\\\\\"reflection\\\\\\\",t.REFRACTION=\\\\\\\"refraction\\\\\\\"}(Dg||(Dg={}));const Bg=[Dg.REFLECTION,Dg.REFRACTION];const zg=new class extends ua{constructor(){super(...arguments),this.cubeCamera=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ,types:[Ig.CUBE_CAMERA]}}),this.mode=ha.INTEGER(0,{menu:{entries:Bg.map(((t,e)=>({name:t,value:e})))}})}};class kg extends df{constructor(){super(...arguments),this.paramsConfig=zg}static type(){return Fg.CUBE_CAMERA}async cook(){const t=this.pv.cubeCamera.nodeWithContext(ts.OBJ,this.states.error);if(!t)return this.states.error.set(`cubeCamera not found at '${this.pv.cubeCamera.path()}'`),this.cookController.endCook();const e=t.renderTarget();if(!e)return this.states.error.set(\\\\\\\"cubeCamera has no render target'\\\\\\\"),this.cookController.endCook();const n=e.texture;Bg[this.pv.mode]==Dg.REFLECTION?n.mapping=w.o:n.mapping=w.p,this.setTexture(n)}}var Ug;!function(t){t.REFLECTION=\\\\\\\"reflection\\\\\\\",t.REFRACTION=\\\\\\\"refraction\\\\\\\"}(Ug||(Ug={}));const Gg=[Ug.REFLECTION,Ug.REFRACTION];const Vg=new class extends ua{constructor(){super(...arguments),this.useCameraRenderer=ha.BOOLEAN(1),this.mode=ha.INTEGER(0,{menu:{entries:Gg.map(((t,e)=>({name:t,value:e})))}})}};class Hg extends df{constructor(){super(...arguments),this.paramsConfig=Vg}static type(){return\\\\\\\"envMap\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}async cook(t){const e=t[0];this.convert_texture_to_env_map(e)}async convert_texture_to_env_map(t){this._renderer_controller=this._renderer_controller||new Uf(this);const e=await this._renderer_controller.renderer();if(e){const n=new Tt(e).fromEquirectangular(t);if(this.pv.useCameraRenderer)this._set_mapping(n.texture),this.setTexture(n.texture);else{this._data_texture_controller=this._data_texture_controller||new kf(zf.Uint8Array);const t=this._data_texture_controller.from_render_target(e,n);this._set_mapping(t),this.setTexture(t)}}else this.states.error.set(\\\\\\\"no renderer found to convert the texture to an env map\\\\\\\"),this.cookController.endCook()}_set_mapping(t){Gg[this.pv.mode]==Ug.REFLECTION?t.mapping=w.q:t.mapping=w.r}}class jg extends Z.a{constructor(t,e,n,i,s,r,o,a,l){super(t,e,n,i,s,r,o,a,l),this.format=void 0!==o?o:w.ic,this.minFilter=void 0!==r?r:w.V,this.magFilter=void 0!==s?s:w.V,this.generateMipmaps=!1;const c=this;\\\\\\\"requestVideoFrameCallback\\\\\\\"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1===\\\\\\\"requestVideoFrameCallback\\\\\\\"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}jg.prototype.isVideoTexture=!0;var Wg=n(80);const qg=\\\\\\\"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/\\\\\\\";var Xg=n(28);const Yg=new Xg.b;Yg.setURLModifier((t=>{const e=li.assetUrls.remapedUrl(t);if(e)return e;const n=li.blobs.blobUrl(t);return n||t}));class $g{constructor(t,e,n){this._url=t,this._scene=e,this._node=n,this.loadingManager=Yg}static extension(t){let e=null;try{e=new URL(t).searchParams.get(\\\\\\\"ext\\\\\\\")}catch(t){}if(!e){const n=t.split(\\\\\\\"?\\\\\\\")[0].split(\\\\\\\".\\\\\\\");e=n[n.length-1].toLowerCase()}return e}extension(){return $g.extension(this._url)}async _urlToLoad(){const{storedUrl:t,fullUrl:e}=this._urlData();this._node&&await li.blobs.fetchBlobForNode({storedUrl:t,fullUrl:e,node:this._node});return li.blobs.blobUrl(t)||e}deregisterUrl(){const{storedUrl:t}=this._urlData();li.blobs.deregisterUrl(t)}_urlData(){let t=this._url;const e=this._url.split(\\\\\\\"?\\\\\\\")[0];if(\\\\\\\"h\\\\\\\"!=t[0]){const e=this._scene.assets.root();e&&(t=`${e}${t}`)}return{fullUrl:t,storedUrl:e}}static async _loadMultipleBlobGlobal(t){const e=[];for(let n of t.files){const i=n.storedUrl,s=n.fullUrl,r=t.node;e.push(li.blobs.fetchBlobGlobal({storedUrl:i,fullUrl:s,node:r}))}const n=await Promise.all(e);for(let e of n)e.error&&t.node.states.error.set(t.error)}}$g.loadingManager=Yg;const Jg=[\\\\\\\"mp4\\\\\\\",\\\\\\\"ogv\\\\\\\",\\\\\\\"ogg\\\\\\\"];var Zg;!function(t){t.JPG=\\\\\\\"jpg\\\\\\\",t.JPEG=\\\\\\\"jpeg\\\\\\\",t.PNG=\\\\\\\"png\\\\\\\",t.EXR=\\\\\\\"exr\\\\\\\",t.BASIS=\\\\\\\"basis\\\\\\\",t.HDR=\\\\\\\"hdr\\\\\\\"}(Zg||(Zg={}));const Kg=[Zg.JPEG,Zg.JPG,Zg.PNG,Zg.EXR,Zg.BASIS,Zg.HDR];function Qg(t){const e=t.split(\\\\\\\"?\\\\\\\")[0].split(\\\\\\\".\\\\\\\");return e[e.length-1]}class tv extends $g{constructor(t,e,n,i,s){super(t,i,n),this._param=e,this._node=n,this._scene=i,this._forceVideo=!1,this._forceImage=!1,this._forceVideo=(null==s?void 0:s.forceVideo)||this._forceVideo,this._forceImage=(null==s?void 0:s.forceImage)||this._forceImage}static onTextureLoaded(t){this._onTextureLoadedCallback=t}async load_texture_from_url_or_op(t){let e=null,n=null;if(\\\\\\\"op:\\\\\\\"==this._url.substring(0,3)){const t=this._url.substring(3);if(n=bi.findNode(this._node,t),n)if(n instanceof pf){e=(await n.compute()).texture()}else this._node.states.error.set(\\\\\\\"found node is not a texture node\\\\\\\");else this._node.states.error.set(`no node found in path '${t}'`)}else e=await this._loadUrl(t),e||this._node.states.error.set(`could not load texture ${this._url}`);return n&&this._param.graphPredecessors()[0]!=n&&(this._param.graphDisconnectPredecessors(),this._param.addGraphInput(n)),e}async _loadUrl(t){return new Promise((async(e,n)=>{const i=this.extension(),s=await this._urlToLoad();if(this._forceVideo||Jg.includes(i)){e(await this._loadVideo(s))}else if(this._forceImage||Kg.includes(i))try{e(await this._loadImage(s,t))}catch(t){n()}}))}_loadImage(t,e){return new Promise((async(n,i)=>{const s=this.extension();this.loader_for_ext(s,e).then((async e=>{e?(tv.incrementInProgressLoadsCount(),await tv.waitForMaxConcurrentLoadsQueueFreed(),e.load(t,(e=>{tv.decrementInProgressLoadsCount();const i=tv._onTextureLoadedCallback;i&&i(t,e),n(e)}),void 0,(t=>{tv.decrementInProgressLoadsCount(),li.warn(\\\\\\\"error\\\\\\\",t),i()}))):i()}))}))}_loadVideo(t){return new Promise((async(e,n)=>{tv.incrementInProgressLoadsCount(),await tv.waitForMaxConcurrentLoadsQueueFreed();const i=document.createElement(\\\\\\\"video\\\\\\\");i.setAttribute(\\\\\\\"crossOrigin\\\\\\\",\\\\\\\"anonymous\\\\\\\"),i.setAttribute(\\\\\\\"autoplay\\\\\\\",\\\\\\\"true\\\\\\\"),i.setAttribute(\\\\\\\"loop\\\\\\\",\\\\\\\"true\\\\\\\"),i.onloadedmetadata=function(){i.pause();const n=new jg(i);tv.decrementInProgressLoadsCount();const s=tv._onTextureLoadedCallback;s&&s(t,n),e(n)};const s=document.createElement(\\\\\\\"source\\\\\\\"),r=$g.extension(t);let o=tv.VIDEO_SOURCE_TYPE_BY_EXT[r];o=o||tv._default_video_source_type(t),s.setAttribute(\\\\\\\"type\\\\\\\",o),s.setAttribute(\\\\\\\"src\\\\\\\",t),i.appendChild(s);let a=t;a=\\\\\\\"mp4\\\\\\\"==r?tv.replaceExtension(t,\\\\\\\"ogv\\\\\\\"):tv.replaceExtension(t,\\\\\\\"mp4\\\\\\\");const l=document.createElement(\\\\\\\"source\\\\\\\"),c=$g.extension(a);o=tv.VIDEO_SOURCE_TYPE_BY_EXT[c],o=o||tv._default_video_source_type(t),l.setAttribute(\\\\\\\"type\\\\\\\",o),l.setAttribute(\\\\\\\"src\\\\\\\",t),i.appendChild(l)}))}static module_names(t){switch(t){case Zg.EXR:return[Hn.EXRLoader];case Zg.HDR:return[Hn.RGBELoader];case Zg.BASIS:return[Hn.BasisTextureLoader]}}async loader_for_ext(t,e){switch(t.toLowerCase()){case Zg.EXR:return await this._exr_loader(e);case Zg.HDR:return await this._hdr_loader(e);case Zg.BASIS:return await tv._basis_loader(this._node)}return new Wg.a(this.loadingManager)}async _exr_loader(t){const e=await li.modulesRegister.module(Hn.EXRLoader);if(e){const n=new e(this.loadingManager);return t.tdataType&&n.setDataType(t.dataType),n}}async _hdr_loader(t){const e=await li.modulesRegister.module(Hn.RGBELoader);if(e){const n=new e(this.loadingManager);return t.tdataType&&n.setDataType(t.dataType),n}}static async _basis_loader(t){const e=await li.modulesRegister.module(Hn.BasisTextureLoader);if(e){const n=new e(this.loadingManager),i=li.libs.root(),s=li.libs.BASISPath();if(i||s){const e=`${i||\\\\\\\"\\\\\\\"}${s||\\\\\\\"\\\\\\\"}/`;if(t){const n=[\\\\\\\"basis_transcoder.js\\\\\\\",\\\\\\\"basis_transcoder.wasm\\\\\\\"];await this._loadMultipleBlobGlobal({files:n.map((t=>({storedUrl:`${s}/${t}`,fullUrl:`${e}${t}`}))),node:t,error:\\\\\\\"failed to load basis libraries. Make sure to install them to load .basis files\\\\\\\"})}n.setTranscoderPath(e)}else n.setTranscoderPath(void 0);const r=await li.renderersController.waitForRenderer();return r?n.detectSupport(r):li.warn(\\\\\\\"texture loader found no renderer for basis texture loader\\\\\\\"),n}}static _default_video_source_type(t){return`video/${$g.extension(t)}`}static pixel_data(t){const e=t.image,n=document.createElement(\\\\\\\"canvas\\\\\\\");n.width=e.width,n.height=e.height;const i=n.getContext(\\\\\\\"2d\\\\\\\");if(i)return i.drawImage(e,0,0,e.width,e.height),i.getImageData(0,0,e.width,e.height)}static replaceExtension(t,e){const n=t.split(\\\\\\\"?\\\\\\\"),i=n[0].split(\\\\\\\".\\\\\\\");return i.pop(),i.push(e),[i.join(\\\\\\\".\\\\\\\"),n[1]].join(\\\\\\\"?\\\\\\\")}static setMaxConcurrentLoadsCount(t){this._maxConcurrentLoadsCountMethod=t}static _init_max_concurrent_loads_count(){return this._maxConcurrentLoadsCountMethod?this._maxConcurrentLoadsCountMethod():ng.isChrome()?10:4}static _init_concurrent_loads_delay(){return ng.isChrome()?0:10}static incrementInProgressLoadsCount(){this.in_progress_loads_count++}static decrementInProgressLoadsCount(){this.in_progress_loads_count--;const t=this._queue.pop();if(t){const e=this.CONCURRENT_LOADS_DELAY;setTimeout((()=>{t()}),e)}}static async waitForMaxConcurrentLoadsQueueFreed(){return this.in_progress_loads_count<=this.MAX_CONCURRENT_LOADS_COUNT?void 0:new Promise((t=>{this._queue.push(t)}))}}tv.PARAM_DEFAULT=`${qg}/textures/uv.jpg`,tv.PARAM_ENV_DEFAULT=`${qg}/textures/piz_compressed.exr`,tv.VIDEO_SOURCE_TYPE_BY_EXT={ogg:'video/ogg; codecs=\\\\\\\"theora, vorbis\\\\\\\"',ogv:'video/ogg; codecs=\\\\\\\"theora, vorbis\\\\\\\"',mp4:'video/mp4; codecs=\\\\\\\"avc1.42E01E, mp4a.40.2\\\\\\\"'},tv.MAX_CONCURRENT_LOADS_COUNT=tv._init_max_concurrent_loads_count(),tv.CONCURRENT_LOADS_DELAY=tv._init_concurrent_loads_delay(),tv.in_progress_loads_count=0,tv._queue=[];var ev=n(114);class nv extends(Mg(function(t){return class extends t{constructor(){super(...arguments),this.url=ha.STRING(tv.PARAM_DEFAULT,{fileBrowse:{type:[Rr.TEXTURE_IMAGE]}}),this.reload=ha.BUTTON(null,{callback:(t,e)=>{sv.PARAM_CALLBACK_reload(t)}}),this.play=ha.BOOLEAN(1,{cook:!1,callback:t=>{sv.PARAM_CALLBACK_gifUpdatePlay(t)}}),this.gifFrame=ha.INTEGER(0,{cook:!1,range:[0,100],rangeLocked:[!0,!1],callback:t=>{sv.PARAM_CALLBACK_gifUpdateFrameIndex(t)}})}}}(ua))){}const iv=new nv;class sv extends df{constructor(){super(...arguments),this.paramsConfig=iv,this.textureParamsController=new Sg(this),this._gifCanvasContext=null,this._tmpCanvasContext=null,this._parsedFrames=[],this._frameDelay=100,this._frameIndex=0}static type(){return\\\\\\\"gif\\\\\\\"}async requiredModules(){this.p.url.isDirty()&&await this.p.url.compute();const t=$g.extension(this.pv.url||\\\\\\\"\\\\\\\");return tv.module_names(t)}static displayedInputNames(){return[\\\\\\\"optional texture to copy attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(Qi.NEVER),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{let t=[this.p.url];t=t.concat(this.textureParamsController.paramLabelsParams()),this.params.label.init(t,(()=>{const t=this.p.url.rawInput();if(t){const e=t.split(\\\\\\\"/\\\\\\\"),n=e[e.length-1],i=this.textureParamsController.paramLabels();return[n].concat(i)}return\\\\\\\"\\\\\\\"}))}))}))}async cook(t){if(\\\\\\\"gif\\\\\\\"!=Qg(this.pv.url).toLowerCase())this.states.error.set(\\\\\\\"url is not an image\\\\\\\");else{tv.incrementInProgressLoadsCount(),await tv.waitForMaxConcurrentLoadsQueueFreed();const t=await fetch(this.pv.url),e=await t.arrayBuffer(),n=await Object(ev.parseGIF)(e),i=!0;this._parsedFrames=await Object(ev.decompressFrames)(n,i);const s=this._parsedFrames[0];if(this._frameDelay=s.delay,this._frameIndex=this.pv.gifFrame-1,this._createCanvas(),tv.decrementInProgressLoadsCount(),this._gifCanvasElement){const t=new Cg(this._gifCanvasElement);await this.textureParamsController.update(t),this.setTexture(t)}else this.states.error.set(\\\\\\\"failed to create canvas\\\\\\\")}}_createCanvas(){const t=this._parsedFrames[0];this._gifCanvasElement=document.createElement(\\\\\\\"canvas\\\\\\\"),this._tmpCanvasElement=document.createElement(\\\\\\\"canvas\\\\\\\"),this._gifCanvasElement.width=t.dims.width,this._gifCanvasElement.height=t.dims.height,this._tmpCanvasElement.width=t.dims.width,this._tmpCanvasElement.height=t.dims.height,this._gifCanvasContext=this._gifCanvasElement.getContext(\\\\\\\"2d\\\\\\\"),this._tmpCanvasContext=this._tmpCanvasElement.getContext(\\\\\\\"2d\\\\\\\"),this._drawNextFrame()}_drawOnCanvas(){if(!(this._gifCanvasContext&&this._tmpCanvasElement&&this._tmpCanvasContext))return;let t=this._parsedFrames[this._frameIndex];if(t||(console.warn(`no frame at index ${this._frameIndex}, using last frame`),t=this._parsedFrames[this._parsedFrames.length-1]),t){const e=t.dims;this._frameImageData&&e.width==this._frameImageData.width&&e.height==this._frameImageData.height||(this._tmpCanvasElement.width=e.width,this._tmpCanvasElement.height=e.height,this._frameImageData=this._tmpCanvasContext.createImageData(e.width,e.height)),this._frameImageData.data.set(t.patch),this._tmpCanvasContext.putImageData(this._frameImageData,0,0),this._gifCanvasContext.drawImage(this._tmpCanvasElement,e.left,e.top);const n=this.containerController.container().texture();if(!n)return;n.needsUpdate=!0}}_drawNextFrame(){this._frameIndex++,this._frameIndex>=this._parsedFrames.length&&(this._frameIndex=0),this._drawOnCanvas(),this.pv.play&&setTimeout((()=>{this._drawNextFrame()}),this._frameDelay)}gifUpdateFrameIndex(){this._frameIndex=this.pv.gifFrame,this._drawOnCanvas()}static PARAM_CALLBACK_reload(t){t.paramCallbackReload()}paramCallbackReload(){this.p.url.setDirty()}static PARAM_CALLBACK_gifUpdatePlay(t){t.gifUpdatePlay()}gifUpdatePlay(){this.pv.play&&this._drawNextFrame()}static PARAM_CALLBACK_gifUpdateFrameIndex(t){t.gifUpdateFrameIndex()}}function rv(t){return class extends t{constructor(){super(...arguments),this.checkFileType=ha.BOOLEAN(!0)}}}class ov extends(rv(Mg(function(t){return class extends t{constructor(){super(...arguments),this.url=ha.STRING(tv.PARAM_DEFAULT,{fileBrowse:{type:[Rr.TEXTURE_IMAGE]}}),this.reload=ha.BUTTON(null,{callback:(t,e)=>{lv.PARAM_CALLBACK_reload(t,e)}})}}}(ua)))){}const av=new ov;class lv extends df{constructor(){super(...arguments),this.paramsConfig=av,this.textureParamsController=new Sg(this)}static type(){return\\\\\\\"image\\\\\\\"}async requiredModules(){this.p.url.isDirty()&&await this.p.url.compute();const t=$g.extension(this.pv.url||\\\\\\\"\\\\\\\");return tv.module_names(t)}static displayedInputNames(){return[\\\\\\\"optional texture to copy attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(Qi.NEVER),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{let t=[this.p.url];t=t.concat(this.textureParamsController.paramLabelsParams()),this.params.label.init(t,(()=>{const t=this.p.url.rawInput();if(t){const e=t.split(\\\\\\\"/\\\\\\\"),n=e[e.length-1],i=this.textureParamsController.paramLabels();return[n].concat(i)}return\\\\\\\"\\\\\\\"}))}))}))}async cook(t){if(this.pv.checkFileType&&(e=this.pv.url,!Kg.includes(Qg(e).toLowerCase())))this.states.error.set(\\\\\\\"url is not an image\\\\\\\");else{const e=await this._loadTexture();if(e){const n=t[0];n&&Sg.copyTextureAttributes(e,n),await this.textureParamsController.update(e),this.setTexture(e)}else this._clearTexture()}var e}static PARAM_CALLBACK_reload(t,e){t.paramCallbackReload()}paramCallbackReload(){this.clearLoadedBlob(),this.p.url.setDirty()}_loader(){return new tv(this.pv.url,this.p.url,this,this.scene(),{forceImage:!this.pv.checkFileType})}async _loadTexture(){let t=null;try{t=await this._loader().load_texture_from_url_or_op({tdataType:this.pv.ttype&&this.pv.tadvanced,dataType:this.pv.type}),t&&(t.matrixAutoUpdate=!1)}catch(t){}return t||this.states.error.set(`could not load texture '${this.pv.url}'`),t}clearLoadedBlob(){this._loader().deregisterUrl()}}var cv=n(33);const hv=.005;class uv{constructor(t,e=1024){this.renderer=t,this.res=e,this.objectTargets=[],this.lights=[],this.scene=new vs,this.buffer1Active=!1,this._params={lightRadius:1,iterations:1,iterationBlend:hv,blur:!1,blurAmount:0},this._objectStateByObject=new WeakMap,this._previousRenderTarget=null,this._lightHierarchyStateByLight=new WeakMap,this._lightMatrixStateByLight=new WeakMap,this._t=new p.a,this._q=new hh.a,this._s=new p.a;const n=ng.isAndroid()||ng.isiOS()?w.M:w.G;this.progressiveLightMap1=new K(this.res,this.res,{type:n}),this.progressiveLightMap2=new K(this.res,this.res,{type:n}),this.uvMat=this._createUVMat()}textureRenderTarget(){return this.progressiveLightMap2}texture(){return this.textureRenderTarget().texture}setParams(t){this._params.lightRadius=t.lightRadius,this._params.iterations=t.iterations,this._params.iterationBlend=t.iterationBlend,this._params.blur=t.blur,this._params.blurAmount=t.blurAmount}init(t,e){this._setObjects(t),this._setLights(e)}_setObjects(t){this.objectTargets=[];for(let e of t)null==this.blurringPlane&&this._initializeBlurPlane(this.res,this.progressiveLightMap1),this.objectTargets.push(e);this._saveObjectsState()}_setLights(t){this.lights=t;for(let e of t)this._saveLightHierarchyState(e),this.scene.attach(e),this._saveLightMatrixState(e)}_saveLightHierarchyState(t){this._lightHierarchyStateByLight.set(t,{parent:t.parent,matrixAutoUpdate:t.matrixAutoUpdate}),t.matrixAutoUpdate=!0}_saveLightMatrixState(t){t.updateMatrix(),t.matrix.decompose(this._t,this._q,this._s),this._lightMatrixStateByLight.set(t,{matrix:t.matrix.clone(),position:this._t.clone()})}_saveObjectsState(){let t=0;for(let e of this.objectTargets)this._objectStateByObject.set(e,{frustumCulled:e.frustumCulled,material:e.material,parent:e.parent,castShadow:e.castShadow,receiveShadow:e.receiveShadow}),e.material=this.uvMat,e.frustumCulled=!1,e.castShadow=!0,e.receiveShadow=!0,e.renderOrder=1e3+t,this.scene.attach(e),t++;this._previousRenderTarget=this.renderer.getRenderTarget()}_moveLights(){const t=this._params.lightRadius;for(let e of this.lights){const n=this._lightMatrixStateByLight.get(e);if(n){const i=n.position;e.position.x=i.x+t*(Math.random()-.5),e.position.y=i.y+t*(Math.random()-.5),e.position.z=i.z+t*(Math.random()-.5)}}}restoreState(){this._restoreObjectsState(),this._restoreLightsState(),this.renderer.setRenderTarget(this._previousRenderTarget)}_restoreObjectsState(){for(let t of this.objectTargets){const e=this._objectStateByObject.get(t);if(e){t.frustumCulled=e.frustumCulled,t.castShadow=e.castShadow,t.receiveShadow=e.receiveShadow,t.material=e.material;const n=e.parent;n&&n.add(t)}}}_restoreLightsState(){var t;for(let e of this.lights){const n=this._lightHierarchyStateByLight.get(e),i=this._lightMatrixStateByLight.get(e);n&&i&&(e.matrixAutoUpdate=n.matrixAutoUpdate,e.matrix.copy(i.matrix),e.matrix.decompose(e.position,e.quaternion,e.scale),e.updateMatrix(),null===(t=n.parent)||void 0===t||t.attach(e))}}runUpdates(t){if(!this.blurMaterial)return;if(null==this.blurringPlane)return;const e=this._params.iterations;this.blurMaterial.uniforms.pixelOffset.value=this._params.blurAmount/this.res,this.blurringPlane.visible=this._params.blur,this.uvMat.uniforms.iterationBlend.value=this._params.iterationBlend,this._clear(t);for(let n=0;n<e;n++)this._moveLights(),this._update(t)}_clear(t){this.scene.visible=!1,this._update(t),this._update(t),this.scene.visible=!0}_update(t){if(!this.blurMaterial)return;const e=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,n=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1;this.renderer.setRenderTarget(e),this.uvMat.uniforms.previousShadowMap.value=n.texture,this.blurMaterial.uniforms.previousShadowMap.value=n.texture,this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,t)}_initializeBlurPlane(t,e){this.blurMaterial=this._createBlurPlaneMaterial(t,e),this.blurringPlane=new B.a(new L(1,1),this.blurMaterial),this.blurringPlane.name=\\\\\\\"Blurring Plane\\\\\\\",this.blurringPlane.frustumCulled=!1,this.blurringPlane.renderOrder=0,this.blurMaterial.depthWrite=!1,this.scene.add(this.blurringPlane)}_createBlurPlaneMaterial(t,e){const n=new lt.a;return n.uniforms={previousShadowMap:{value:null},pixelOffset:{value:1/t}},n.onBeforeCompile=i=>{i.vertexShader=\\\\\\\"#define USE_UV\\\\n\\\\\\\"+i.vertexShader.slice(0,-2)+\\\\\\\"\\\\tgl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }\\\\\\\";const s=i.fragmentShader.indexOf(\\\\\\\"void main() {\\\\\\\");i.fragmentShader=\\\\\\\"#define USE_UV\\\\n\\\\\\\"+i.fragmentShader.slice(0,s)+\\\\\\\"\\\\tuniform sampler2D previousShadowMap;\\\\n\\\\tuniform float pixelOffset;\\\\n\\\\\\\"+i.fragmentShader.slice(s-1,-2)+\\\\\\\"\\\\tgl_FragColor.rgb = (\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2( pixelOffset,  0.0        )).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2( 0.0        ,  pixelOffset)).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2( 0.0        , -pixelOffset)).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2(-pixelOffset,  0.0        )).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2( pixelOffset,  pixelOffset)).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2(-pixelOffset,  pixelOffset)).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2( pixelOffset, -pixelOffset)).rgb +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttexture2D(previousShadowMap, vUv + vec2(-pixelOffset, -pixelOffset)).rgb)/8.0;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\";const r={previousShadowMap:{value:e.texture},pixelOffset:{value:.5/t}};i.uniforms.previousShadowMap=r.previousShadowMap,i.uniforms.pixelOffset=r.pixelOffset,n.uniforms.previousShadowMap=r.previousShadowMap,n.uniforms.pixelOffset=r.pixelOffset,n.userData.shader=i},n}_createUVMat(){const t=new qf.a;return t.uniforms={previousShadowMap:{value:null},iterationBlend:{value:hv}},t.name=\\\\\\\"uvMat\\\\\\\",t.onBeforeCompile=e=>{e.vertexShader=\\\\\\\"#define USE_LIGHTMAP\\\\n\\\\\\\"+e.vertexShader.slice(0,-2)+\\\\\\\"\\\\tgl_Position = vec4((uv2 - 0.5) * 2.0, 1.0, 1.0); }\\\\\\\";const n=e.fragmentShader.indexOf(\\\\\\\"void main() {\\\\\\\");e.fragmentShader=\\\\\\\"varying vec2 vUv2;\\\\n\\\\\\\"+e.fragmentShader.slice(0,n)+\\\\\\\"\\\\tuniform sampler2D previousShadowMap;\\\\n\\\\tuniform float iterationBlend;\\\\n\\\\\\\"+e.fragmentShader.slice(n-1,-2)+\\\\\\\"\\\\nvec3 texelOld = texture2D(previousShadowMap, vUv2).rgb;\\\\n\\\\t\\\\t\\\\t\\\\tgl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, iterationBlend);\\\\n\\\\t\\\\t\\\\t\\\\t// gl_FragColor.rgb = vec3(vUv2,1.0);\\\\n\\\\t\\\\t\\\\t}\\\\\\\";const i={previousShadowMap:{value:this.progressiveLightMap1.texture},iterationBlend:{value:hv}};e.uniforms.previousShadowMap=i.previousShadowMap,e.uniforms.iterationBlend=i.iterationBlend,t.uniforms.previousShadowMap=i.previousShadowMap,t.uniforms.iterationBlend=i.iterationBlend,t.userData.shader=e},t}}const dv=new class extends ua{constructor(){super(...arguments),this.update=ha.BUTTON(null,{callback:t=>{pv.PARAM_CALLBACK_updateManual(t)}}),this.useCameraRenderer=ha.BOOLEAN(1),this.lightMapRes=ha.INTEGER(1024,{range:[1,2048],rangeLocked:[!0,!1]}),this.iterations=ha.INTEGER(512,{range:[1,2048],rangeLocked:[!0,!1]}),this.iterationBlend=ha.FLOAT(hv,{range:[0,1],rangeLocked:[!0,!0]}),this.blur=ha.BOOLEAN(1),this.blurAmount=ha.FLOAT(1,{visibleIf:{blur:1},range:[0,1],rangeLocked:[!0,!1]}),this.lightRadius=ha.FLOAT(1,{range:[0,10]}),this.objectsMask=ha.STRING(\\\\\\\"\\\\\\\"),this.lightsMask=ha.STRING(\\\\\\\"*\\\\\\\"),this.printResolveObjectsList=ha.BUTTON(null,{callback:t=>{pv.PARAM_CALLBACK_printResolveObjectsList(t)}})}};class pv extends df{constructor(){super(...arguments),this.paramsConfig=dv,this._includedObjects=[],this._includedLights=[]}static type(){return\\\\\\\"lightMap\\\\\\\"}async cook(){this._updateManual()}async _createLightMapController(){const t=await li.renderersController.firstRenderer();if(!t)return void console.warn(\\\\\\\"no renderer found\\\\\\\");return new uv(t,this.pv.lightMapRes)}static PARAM_CALLBACK_update_updateMode(t){}async _updateManual(){if(this.lightMapController=this.lightMapController||await this._createLightMapController(),!this.lightMapController)return;const t=this.scene().mainCameraNode();if(!t)return;this._updateObjectsAndLightsList(),this.lightMapController.init(this._includedObjects,this._includedLights);const e=t.camera();this.lightMapController.setParams({lightRadius:this.pv.lightRadius,iterations:this.pv.iterations,iterationBlend:this.pv.iterationBlend,blur:this.pv.blur,blurAmount:this.pv.blurAmount}),this.lightMapController.runUpdates(e),this.lightMapController.restoreState();const n=this.lightMapController.textureRenderTarget();if(this.pv.useCameraRenderer)this.setTexture(n.texture);else{this._data_texture_controller=this._data_texture_controller||new kf(zf.Float32Array),this._renderer_controller=this._renderer_controller||new Uf(this);const t=await this._renderer_controller.renderer(),e=this._data_texture_controller.from_render_target(t,n);this.setTexture(e)}}static PARAM_CALLBACK_updateManual(t){t._updateManual()}_updateObjectsAndLightsList(){let t=[],e=[];this._includedLights=[],this._includedObjects=[];const n=new WeakSet;if(\\\\\\\"\\\\\\\"!=this.pv.lightsMask){e=this.scene().objectsByMask(this.pv.lightsMask);for(let t of e)t instanceof cv.a&&(this._includedLights.push(t),n.add(t))}if(\\\\\\\"\\\\\\\"!=this.pv.objectsMask){t=this.scene().objectsByMask(this.pv.objectsMask);for(let e of t)e instanceof cv.a||!n.has(e)&&e instanceof B.a&&this._includedObjects.push(e)}}static PARAM_CALLBACK_printResolveObjectsList(t){t._printResolveObjectsList()}_printResolveObjectsList(){this._updateObjectsAndLightsList(),console.log(\\\\\\\"included objects:\\\\\\\"),console.log(this._includedObjects),console.log(\\\\\\\"included lights:\\\\\\\"),console.log(this._includedLights)}}const _v=new ua;class mv extends df{constructor(){super(...arguments),this.paramsConfig=_v}static type(){return\\\\\\\"null\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}async cook(t){const e=t[0];this.setTexture(e)}}class fv extends(Mg(function(t){return class extends t{constructor(){super(...arguments),this.camera=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ,types:ds}}),this.resolution=ha.VECTOR2([1024,1024]),this.useCameraRenderer=ha.BOOLEAN(1),this.render=ha.BUTTON(null,{callback:t=>{vv.PARAM_CALLBACK_render(t)}})}}}(ua))){}const gv=new fv;class vv extends df{constructor(){super(...arguments),this.paramsConfig=gv,this.textureParamsController=new Sg(this)}static type(){return\\\\\\\"render\\\\\\\"}async cook(){this._texture_scene=this.scene().threejsScene(),this._camera_node=this.pv.camera.nodeWithContext(ts.OBJ),this._camera_node&&ds.includes(this._camera_node.type())?(this._texture_camera=this._camera_node.object,await this._camera_node.compute(),this.renderOnTarget()):this._texture_camera=void 0}async renderOnTarget(){if(await this.createRenderTargetIfRequired(),!(this._render_target&&this._texture_scene&&this._texture_camera))return;this._renderer_controller=this._renderer_controller||new Uf(this);const t=await this._renderer_controller.renderer(),e=t.getRenderTarget();if(t.setRenderTarget(this._render_target),t.clear(),t.render(this._texture_scene,this._texture_camera),t.setRenderTarget(e),this._render_target.texture)if(this.pv.useCameraRenderer)this.setTexture(this._render_target.texture);else{this._data_texture_controller=this._data_texture_controller||new kf(zf.Float32Array);const e=this._data_texture_controller.from_render_target(t,this._render_target);await this.textureParamsController.update(e),this.setTexture(e)}else this.cookController.endCook()}async renderTarget(){return this._render_target=this._render_target||await this._createRenderTarget(this.pv.resolution.x,this.pv.resolution.y)}async createRenderTargetIfRequired(){var t;this._render_target&&this._renderTargetResolutionValid()||(this._render_target=await this._createRenderTarget(this.pv.resolution.x,this.pv.resolution.y),null===(t=this._data_texture_controller)||void 0===t||t.reset())}_renderTargetResolutionValid(){if(this._render_target){const t=this._render_target.texture.image;return t.width==this.pv.resolution.x&&t.height==this.pv.resolution.y}return!1}async _createRenderTarget(t,e){if(this._render_target){const n=this._render_target.texture.image;if(n.width==t&&n.height==e)return this._render_target}const n=w.n,i=w.n,s=w.V,r=w.ob;var o=new K(t,e,{wrapS:n,wrapT:i,minFilter:s,magFilter:r,format:w.Ib,generateMipmaps:!0,type:ng.isiOS()?w.M:w.G,stencilBuffer:!1,depthBuffer:!1});return await this.textureParamsController.update(o.texture),li.warn(\\\\\\\"created render target\\\\\\\",this.path(),t,e),o}static PARAM_CALLBACK_render(t){t.renderOnTarget()}}const yv=t=>(t.preventDefault(),!1);class xv{static disableContextMenu(){document.addEventListener(\\\\\\\"contextmenu\\\\\\\",yv)}static reEstablishContextMenu(){document.removeEventListener(\\\\\\\"contextmenu\\\\\\\",yv)}static isHTMLVideoElementLoaded(t){return 4===t.readyState}}class bv extends(function(t){return class extends t{constructor(){super(...arguments),this.capture=ha.BUTTON(null,{callback:t=>{Tv.PARAM_CALLBACK_snapshot(t)}})}}}(ua)){}const wv=new bv;class Tv extends df{constructor(){super(...arguments),this.paramsConfig=wv}static type(){return Fg.SNAPSHOT}static displayedInputNames(){return[\\\\\\\"input to take a snapshot of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}async cook(t){const e=t[0];if(e&&e instanceof jg){const t=await this._canvasToTexture(e);if(t)return Sg.copyTextureAttributes(t,e),void this.setTexture(t)}else this.states.error.set(\\\\\\\"input texture is not a video\\\\\\\");this.cookController.endCook()}static PARAM_CALLBACK_snapshot(t){t.paramCallbackSnapshot()}paramCallbackSnapshot(){this.setDirty()}_videoSnapshotCanvas(t){const e=t.image;if(!xv.isHTMLVideoElementLoaded(e))return void this.states.error.set(\\\\\\\"video not loaded\\\\\\\");const n=document.createElement(\\\\\\\"canvas\\\\\\\");n.width=t.image.videoWidth,n.height=t.image.videoHeight;return n.getContext(\\\\\\\"2d\\\\\\\").drawImage(t.image,0,0,n.width,n.height),n}_canvasToTexture(t){const e=this._canvas;let n=!0;const i=this._videoSnapshotCanvas(t);if(i)return e&&i.width==e.width&&i.height==e.height&&(n=!1),this._canvas=i,new Promise((e=>{if(!this._canvas)return;const i=this._canvas.toDataURL(\\\\\\\"image/png\\\\\\\"),s=new Image;s.onload=()=>{let i;n?(i=new Z.a(s),i.encoding=t.encoding):(i=this.containerController.container().coreContent(),i.copy(t)),i.needsUpdate=!0,e(i)},s.src=i}))}}const Av=new class extends ua{constructor(){super(...arguments),this.input=ha.INTEGER(0,{range:[0,3],rangeLocked:[!0,!0]})}};class Mv extends df{constructor(){super(...arguments),this.paramsConfig=Av}static type(){return\\\\\\\"switch\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,4),this.io.inputs.initInputsClonedState(Qi.NEVER),this.cookController.disallowInputsEvaluation()}async cook(){const t=this.pv.input;if(this.io.inputs.has_input(t)){const e=await this.containerController.requestInputContainer(t);if(e)return void this.setTexture(e.texture())}else this.states.error.set(`no input ${t}`);this.cookController.endCook()}}class Ev extends(Mg(ua)){}const Sv=new Ev;class Cv extends df{constructor(){super(...arguments),this.paramsConfig=Sv,this.textureParamsController=new Sg(this)}static type(){return\\\\\\\"textureProperties\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState([Qi.FROM_NODE])}async cook(t){const e=t[0];this.textureParamsController.update(e),this.setTexture(e)}}class Nv extends(rv(Mg(function(t){return class extends t{constructor(){super(...arguments),this.url=ha.STRING(tv.PARAM_DEFAULT,{fileBrowse:{type:[Rr.TEXTURE_VIDEO]}}),this.reload=ha.BUTTON(null,{callback:(t,e)=>{Ov.PARAM_CALLBACK_reload(t,e)}}),this.play=ha.BOOLEAN(1,{cook:!1,callback:t=>{Ov.PARAM_CALLBACK_video_update_play(t)}}),this.muted=ha.BOOLEAN(1,{cook:!1,callback:t=>{Ov.PARAM_CALLBACK_video_update_muted(t)}}),this.loop=ha.BOOLEAN(1,{cook:!1,callback:t=>{Ov.PARAM_CALLBACK_video_update_loop(t)}}),this.videoTime=ha.FLOAT(0,{cook:!1}),this.setVideoTime=ha.BUTTON(null,{cook:!1,callback:t=>{Ov.PARAM_CALLBACK_video_update_time(t)}})}}}(ua)))){}const Lv=new Nv;class Ov extends df{constructor(){super(...arguments),this.paramsConfig=Lv,this.textureParamsController=new Sg(this)}static type(){return Fg.VIDEO}async requiredModules(){this.p.url.isDirty()&&await this.p.url.compute();const t=$g.extension(this.pv.url||\\\\\\\"\\\\\\\");return tv.module_names(t)}HTMLVideoElement(){return this._video}static displayedInputNames(){return[\\\\\\\"optional texture to copy attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(Qi.NEVER),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.url],(()=>{const t=this.p.url.rawInput();if(t){const e=t.split(\\\\\\\"/\\\\\\\");return e[e.length-1]}return\\\\\\\"\\\\\\\"}))}))}))}async cook(t){if(this.pv.checkFileType&&(e=this.pv.url,!Jg.includes(Qg(e).toLowerCase())))this.states.error.set(\\\\\\\"url is not a video\\\\\\\");else{const e=await this._load_texture(this.pv.url);if(e){this._video=e.image,this._video&&document.body.appendChild(this._video);const n=t[0];n&&Sg.copyTextureAttributes(e,n),this.video_update_loop(),this.video_update_muted(),this.video_update_play(),this.video_update_time(),await this.textureParamsController.update(e),this.setTexture(e)}else this.cookController.endCook()}var e}dispose(){var t;super.dispose(),this._video&&(null===(t=this._video.parentElement)||void 0===t||t.removeChild(this._video))}static PARAM_CALLBACK_video_update_time(t){t.video_update_time()}static PARAM_CALLBACK_video_update_play(t){t.video_update_play()}static PARAM_CALLBACK_video_update_muted(t){t.video_update_muted()}static PARAM_CALLBACK_video_update_loop(t){t.video_update_loop()}async video_update_time(){if(this._video){const t=this.p.videoTime;t.isDirty()&&await t.compute(),this._video.currentTime=t.value}}video_update_muted(){this._video&&(this._video.muted=this.pv.muted)}video_update_loop(){this._video&&(this._video.loop=this.pv.loop)}video_update_play(){this._video&&(this.pv.play?this._video.play():this._video.pause())}static PARAM_CALLBACK_reload(t,e){t.paramCallbackReload()}paramCallbackReload(){this.p.url.setDirty()}async _load_texture(t){let e=null;const n=this.p.url;this._texture_loader=this._texture_loader||new tv(t,n,this,this.scene(),{forceVideo:!this.pv.checkFileType});try{e=await this._texture_loader.load_texture_from_url_or_op({tdataType:this.pv.ttype&&this.pv.tadvanced,dataType:this.pv.type}),e&&(e.matrixAutoUpdate=!1)}catch(t){}return e||this.states.error.set(`could not load texture '${t}'`),e}}class Pv extends(Mg(function(t){return class extends t{constructor(){super(...arguments),this.res=ha.VECTOR2([1024,1024])}}}(ua),{tencoding:!0,encoding:w.ld})){}const Rv=new Pv;class Iv extends df{constructor(){super(...arguments),this.paramsConfig=Rv,this.textureParamsController=new Sg(this)}static type(){return Fg.WEB_CAM}HTMLVideoElement(){return this._video}static displayedInputNames(){return[\\\\\\\"optional texture to copy attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(Qi.NEVER)}dispose(){super.dispose(),this._cancelWebcamRequest()}_cancelWebcamRequest(){try{this._stream&&this._stream.getTracks().forEach((function(t){t.stop()}))}catch(t){console.error(t),console.warn(\\\\\\\"failed to cancel webcam request\\\\\\\")}}_createHTMLVideoElement(){this._video&&document.body.removeChild(this._video);const t=document.createElement(\\\\\\\"video\\\\\\\");return t.style.display=\\\\\\\"none\\\\\\\",t.width=this.pv.res.x,t.height=this.pv.res.y,t.autoplay=!0,t.setAttribute(\\\\\\\"autoplay\\\\\\\",\\\\\\\"true\\\\\\\"),t.setAttribute(\\\\\\\"muted\\\\\\\",\\\\\\\"true\\\\\\\"),t.setAttribute(\\\\\\\"playsinline\\\\\\\",\\\\\\\"true\\\\\\\"),document.body.appendChild(t),t}async cook(t){this._video=this._createHTMLVideoElement();const e=new jg(this._video),n=t[0];if(n&&Sg.copyTextureAttributes(e,n),await this.textureParamsController.update(e),navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){const t={video:{width:this.pv.res.x,height:this.pv.res.y,facingMode:\\\\\\\"user\\\\\\\"}};navigator.mediaDevices.getUserMedia(t).then((t=>{this._stream=t,this._video&&(this._video.srcObject=t,this._video.play(),this.setTexture(e))})).catch((t=>{this.states.error.set(\\\\\\\"Unable to access the camera/webcam\\\\\\\")}))}else this.states.error.set(\\\\\\\"MediaDevices interface not available.\\\\\\\")}}class Fv extends aa{static context(){return ts.COP}cook(){this.cookController.endCook()}}class Dv extends Fv{}class Bv extends Dv{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class zv extends Dv{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class kv extends Dv{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class Uv extends Dv{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class Gv extends Fv{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class Vv extends Dv{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}var Hv,jv;!function(t){t.START=\\\\\\\"start\\\\\\\",t.STOP=\\\\\\\"stop\\\\\\\",t.UPDATE=\\\\\\\"update\\\\\\\"}(Hv||(Hv={})),function(t){t.START=\\\\\\\"start\\\\\\\",t.COMPLETE=\\\\\\\"completed\\\\\\\"}(jv||(jv={}));const Wv=new class extends ua{constructor(){super(...arguments),this.animation=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.ANIM},dependentOnFoundNode:!1}),this.play=ha.BUTTON(null,{callback:t=>{qv.PARAM_CALLBACK_play(t)}}),this.pause=ha.BUTTON(null,{callback:t=>{qv.PARAM_CALLBACK_pause(t)}})}};class qv extends Va{constructor(){super(...arguments),this.paramsConfig=Wv}static type(){return\\\\\\\"animation\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(Hv.START,Qo.BASE,this._play.bind(this)),new ta(Hv.STOP,Qo.BASE,this._pause.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(jv.START,Qo.BASE),new ta(jv.COMPLETE,Qo.BASE)]),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.animation],(()=>this.pv.animation.path()))}))}))}processEvent(t){}static PARAM_CALLBACK_play(t){t._play({})}static PARAM_CALLBACK_pause(t){t._pause()}async _play(t){const e=this.p.animation;e.isDirty()&&await e.compute();const n=e.value.nodeWithContext(ts.ANIM);if(!n)return;const i=await n.compute();i&&(this._timelineBuilder=i.coreContent(),this._timelineBuilder&&(this._timeline&&this._timeline.kill(),this._timeline=F_.timeline(),this._timelineBuilder.populate(this._timeline),this._timeline.vars.onStart=()=>{this._triggerAnimationStarted(t)},this._timeline.vars.onComplete=()=>{this._timeline&&this._timeline.kill(),this._triggerAnimationCompleted(t)}))}_pause(){this._timeline&&this._timeline.pause()}_triggerAnimationStarted(t){this.dispatchEventToOutput(jv.START,t)}_triggerAnimationCompleted(t){this.dispatchEventToOutput(jv.COMPLETE,t)}}const Xv=\\\\\\\"event\\\\\\\";const Yv=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(1),this.inputsCount=ha.INTEGER(5,{range:[1,10],rangeLocked:[!0,!1]})}};class $v extends Va{constructor(){super(...arguments),this.paramsConfig=Yv}static type(){return\\\\\\\"any\\\\\\\"}initializeNode(){this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_input_name_function(this._input_name.bind(this)),this.io.connection_points.set_output_name_function((()=>Xv)),this.io.connection_points.set_expected_output_types_function((()=>[Qo.BASE]))}_expected_input_types(){const t=new Array(this.pv.inputsCount);return t.fill(Qo.BASE),t}_input_name(t){return`trigger${t}`}async processEvent(t){this.p.active.isDirty()&&await this.p.active.compute(),this.pv.active&&this.dispatchEventToOutput(Xv,t)}}const Jv=new class extends ua{constructor(){super(...arguments),this.blocking=ha.BOOLEAN(1)}};class Zv extends Va{constructor(){super(...arguments),this.paramsConfig=Jv}static type(){return\\\\\\\"block\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"in\\\\\\\",Qo.BASE,this._process_incoming_event.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(Zv.OUTPUT,Qo.BASE)]),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.blocking],(()=>this.pv.blocking?\\\\\\\"blocking (X)\\\\\\\":\\\\\\\"pass-through (--\\\\x3e)\\\\\\\"))}))}))}trigger_output(t){this.dispatchEventToOutput(Zv.OUTPUT,t)}_process_incoming_event(t){this.pv.blocking||this.trigger_output(t)}}var Kv;Zv.OUTPUT=\\\\\\\"output\\\\\\\",function(t){t.OUT=\\\\\\\"out\\\\\\\"}(Kv||(Kv={}));const Qv=new class extends ua{constructor(){super(...arguments),this.dispatch=ha.BUTTON(null,{callback:t=>{ty.PARAM_CALLBACK_execute(t)}})}};class ty extends Va{constructor(){super(...arguments),this.paramsConfig=Qv}static type(){return\\\\\\\"button\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new ta(Kv.OUT,Qo.BASE)])}processEvent(t){}process_event_execute(t){this.dispatchEventToOutput(Kv.OUT,t)}static PARAM_CALLBACK_execute(t){t.process_event_execute({})}}class ey extends Va{constructor(){super(...arguments),this._controls_by_viewer=new Map}async apply_controls(t,e){var n;null===(n=e.controlsController)||void 0===n||n.dispose_controls();const i=e.canvas();if(!i)return;const s=await this.createControlsInstance(t,i),r=this._controls_by_viewer.get(e);r&&r.dispose(),this._controls_by_viewer.set(e,s);const o=li.performance.performanceManager().now();return s.name=`${this.path()}:${t.name}:${o}:${this.controls_id()}`,await this.params.evalAll(),this.setupControls(s),s}controls_id(){return JSON.stringify(this.params.all.map((t=>t.valueSerialized())))}}var ny=n(27);const iy=new p.a(0,0,1),sy=new ny.a,ry=new hh.a,oy=new hh.a(-Math.sqrt(.5),0,0,Math.sqrt(.5)),ay={type:\\\\\\\"change\\\\\\\"};class ly extends J.a{constructor(t){super(),!1===window.isSecureContext&&console.error(\\\\\\\"THREE.DeviceOrientationControls: DeviceOrientationEvent is only available in secure contexts (https)\\\\\\\");const e=this,n=new hh.a;this.object=t,this.object.rotation.reorder(\\\\\\\"YXZ\\\\\\\"),this.enabled=!0,this.deviceOrientation={},this.screenOrientation=0,this.alphaOffset=0;const i=function(t){e.deviceOrientation=t},s=function(){e.screenOrientation=window.orientation||0};this.connect=function(){s(),void 0!==window.DeviceOrientationEvent&&\\\\\\\"function\\\\\\\"==typeof window.DeviceOrientationEvent.requestPermission?window.DeviceOrientationEvent.requestPermission().then((function(t){\\\\\\\"granted\\\\\\\"==t&&(window.addEventListener(\\\\\\\"orientationchange\\\\\\\",s),window.addEventListener(\\\\\\\"deviceorientation\\\\\\\",i))})).catch((function(t){console.error(\\\\\\\"THREE.DeviceOrientationControls: Unable to use DeviceOrientation API:\\\\\\\",t)})):(window.addEventListener(\\\\\\\"orientationchange\\\\\\\",s),window.addEventListener(\\\\\\\"deviceorientation\\\\\\\",i)),e.enabled=!0},this.disconnect=function(){window.removeEventListener(\\\\\\\"orientationchange\\\\\\\",s),window.removeEventListener(\\\\\\\"deviceorientation\\\\\\\",i),e.enabled=!1},this.update=function(){if(!1===e.enabled)return;const t=e.deviceOrientation;if(t){const i=t.alpha?On.e(t.alpha)+e.alphaOffset:0,s=t.beta?On.e(t.beta):0,r=t.gamma?On.e(t.gamma):0,o=e.screenOrientation?On.e(e.screenOrientation):0;!function(t,e,n,i,s){sy.set(n,e,-i,\\\\\\\"YXZ\\\\\\\"),t.setFromEuler(sy),t.multiply(oy),t.multiply(ry.setFromAxisAngle(iy,-s))}(e.object.quaternion,i,s,r,o),8*(1-n.dot(e.object.quaternion))>1e-6&&(n.copy(e.object.quaternion),e.dispatchEvent(ay))}},this.dispose=function(){e.disconnect()},this.connect()}}const cy=new class extends ua{constructor(){super(...arguments),this.enabled=ha.BOOLEAN(1)}};class hy extends ey{constructor(){super(...arguments),this.paramsConfig=cy,this._controls_by_element_id=new Map}static type(){return _s.DEVICE_ORIENTATION}endEventName(){return\\\\\\\"end\\\\\\\"}async createControlsInstance(t,e){const n=new ly(t);return this._controls_by_element_id.set(e.id,n),n}setupControls(t){t.enabled=this.pv.enabled}updateRequired(){return!0}disposeControlsForHtmlElementId(t){const e=this._controls_by_element_id.get(t);e&&(e.dispose(),this._controls_by_element_id.delete(t))}}class uy{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(On.d(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}const dy={type:\\\\\\\"change\\\\\\\"},py={type:\\\\\\\"start\\\\\\\"},_y={type:\\\\\\\"end\\\\\\\"};class my extends J.a{constructor(t,e){super(),void 0===e&&console.warn('THREE.OrbitControls: The second parameter \\\\\\\"domElement\\\\\\\" is now mandatory.'),e===document&&console.error('THREE.OrbitControls: \\\\\\\"document\\\\\\\" should not be used as the target \\\\\\\"domElement\\\\\\\". Please use \\\\\\\"renderer.domElement\\\\\\\" instead.'),this.object=t,this.domElement=e,this.domElement.style.touchAction=\\\\\\\"none\\\\\\\",this.enabled=!0,this.target=new p.a,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keyMode=\\\\\\\"pan\\\\\\\",this.keyRotateSpeedVertical=1,this.keyRotateSpeedHorizontal=1,this.keys={LEFT:\\\\\\\"ArrowLeft\\\\\\\",UP:\\\\\\\"ArrowUp\\\\\\\",RIGHT:\\\\\\\"ArrowRight\\\\\\\",BOTTOM:\\\\\\\"ArrowDown\\\\\\\"},this.mouseButtons={LEFT:w.hb.ROTATE,MIDDLE:w.hb.DOLLY,RIGHT:w.hb.PAN},this.touches={ONE:w.Tc.ROTATE,TWO:w.Tc.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return o.phi},this.getAzimuthalAngle=function(){return o.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(t){t.addEventListener(\\\\\\\"keydown\\\\\\\",q),this._domElementKeyEvents=t},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(dy),n.update(),s=i.NONE},this.update=function(){const e=new p.a,u=(new hh.a).setFromUnitVectors(t.up,new p.a(0,1,0)),d=u.clone().invert(),_=new p.a,m=new hh.a,f=2*Math.PI;let g=!1;return function(){const t=n.object.position;if(e.copy(t).sub(n.target),e.applyQuaternion(u),o.setFromVector3(e),n.autoRotate&&s===i.NONE&&E(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping){const t=a.theta*n.dampingFactor,e=a.phi*n.dampingFactor;t<r&&e<r?g||(n.dispatchEvent(_y),g=!0):g=!1,o.theta+=t,o.phi+=e}else o.theta+=a.theta,o.phi+=a.phi;let p=n.minAzimuthAngle,v=n.maxAzimuthAngle;return isFinite(p)&&isFinite(v)&&(p<-Math.PI?p+=f:p>Math.PI&&(p-=f),v<-Math.PI?v+=f:v>Math.PI&&(v-=f),o.theta=p<v?Math.max(p,Math.min(v,o.theta)):o.theta>(p+v)/2?Math.max(p,o.theta):Math.min(v,o.theta)),o.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,o.phi)),o.makeSafe(),o.radius*=l,o.radius=Math.max(n.minDistance,Math.min(n.maxDistance,o.radius)),!0===n.enableDamping?n.target.addScaledVector(c,n.dampingFactor):n.target.add(c),e.setFromSpherical(o),e.applyQuaternion(d),t.copy(n.target).add(e),n.object.lookAt(n.target),!0===n.enableDamping?(a.theta*=1-n.dampingFactor,a.phi*=1-n.dampingFactor,c.multiplyScalar(1-n.dampingFactor)):(a.set(0,0,0),c.set(0,0,0)),l=1,!!(h||_.distanceToSquared(n.object.position)>r||8*(1-m.dot(n.object.quaternion))>r)&&(n.dispatchEvent(dy),_.copy(n.object.position),m.copy(n.object.quaternion),h=!1,!0)}}(),this.dispose=function(){n.domElement.removeEventListener(\\\\\\\"contextmenu\\\\\\\",X,!1),n.domElement.removeEventListener(\\\\\\\"pointerdown\\\\\\\",G,!1),n.domElement.removeEventListener(\\\\\\\"pointercancel\\\\\\\",j),n.domElement.removeEventListener(\\\\\\\"wheel\\\\\\\",W,!1),n.domElement.ownerDocument.removeEventListener(\\\\\\\"pointermove\\\\\\\",V,!1),n.domElement.ownerDocument.removeEventListener(\\\\\\\"pointerup\\\\\\\",H,!1),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener(\\\\\\\"keydown\\\\\\\",q)};const n=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=i.NONE;const r=1e-6,o=new uy,a=new uy;let l=1;const c=new p.a;let h=!1;const u=new d.a,_=new d.a,m=new d.a,f=new d.a,g=new d.a,v=new d.a,y=new d.a,x=new d.a,b=new d.a,T=[],A={};function M(){return Math.pow(.95,n.zoomSpeed)}function E(t){a.theta-=t}function S(t){a.phi-=t}const C=function(){const t=new p.a;return function(e,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-e),c.add(t)}}(),N=function(){const t=new p.a;return function(e,i){!0===n.screenSpacePanning?t.setFromMatrixColumn(i,1):(t.setFromMatrixColumn(i,0),t.crossVectors(n.object.up,t)),t.multiplyScalar(e),c.add(t)}}(),L=function(){const t=new p.a;return function(e,i){const s=n.domElement;if(n.object.isPerspectiveCamera){const r=n.object.position;t.copy(r).sub(n.target);let o=t.length();o*=Math.tan(n.object.fov/2*Math.PI/180),C(2*e*o/s.clientHeight,n.object.matrix),N(2*i*o/s.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(C(e*(n.object.right-n.object.left)/n.object.zoom/s.clientWidth,n.object.matrix),N(i*(n.object.top-n.object.bottom)/n.object.zoom/s.clientHeight,n.object.matrix)):(console.warn(\\\\\\\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\\\\\\\"),n.enablePan=!1)}}();function O(t){n.object.isPerspectiveCamera?l/=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom*t)),n.object.updateProjectionMatrix(),h=!0):(console.warn(\\\\\\\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\\\\\\\"),n.enableZoom=!1)}function P(t){n.object.isPerspectiveCamera?l*=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/t)),n.object.updateProjectionMatrix(),h=!0):(console.warn(\\\\\\\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\\\\\\\"),n.enableZoom=!1)}function R(t){u.set(t.clientX,t.clientY)}function I(t){f.set(t.clientX,t.clientY)}function F(){if(1===T.length)u.set(T[0].pageX,T[0].pageY);else{const t=.5*(T[0].pageX+T[1].pageX),e=.5*(T[0].pageY+T[1].pageY);u.set(t,e)}}function D(){if(1===T.length)f.set(T[0].pageX,T[0].pageY);else{const t=.5*(T[0].pageX+T[1].pageX),e=.5*(T[0].pageY+T[1].pageY);f.set(t,e)}}function B(){const t=T[0].pageX-T[1].pageX,e=T[0].pageY-T[1].pageY,n=Math.sqrt(t*t+e*e);y.set(0,n)}function z(t){if(1==T.length)_.set(t.pageX,t.pageY);else{const e=J(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);_.set(n,i)}m.subVectors(_,u).multiplyScalar(n.rotateSpeed);const e=n.domElement;E(2*Math.PI*m.x/e.clientHeight),S(2*Math.PI*m.y/e.clientHeight),u.copy(_)}function k(t){if(1===T.length)g.set(t.pageX,t.pageY);else{const e=J(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);g.set(n,i)}v.subVectors(g,f).multiplyScalar(n.panSpeed),L(v.x,v.y),f.copy(g)}function U(t){const e=J(t),i=t.pageX-e.x,s=t.pageY-e.y,r=Math.sqrt(i*i+s*s);x.set(0,r),b.set(0,Math.pow(x.y/y.y,n.zoomSpeed)),O(b.y),y.copy(x)}function G(t){!1!==n.enabled&&(0===T.length&&(n.domElement.setPointerCapture(t.pointerId),n.domElement.ownerDocument.addEventListener(\\\\\\\"pointermove\\\\\\\",V),n.domElement.ownerDocument.addEventListener(\\\\\\\"pointerup\\\\\\\",H)),function(t){T.push(t)}(t),\\\\\\\"touch\\\\\\\"===t.pointerType?function(t){switch($(t),T.length){case 1:switch(n.touches.ONE){case w.Tc.ROTATE:if(!1===n.enableRotate)return;F(),s=i.TOUCH_ROTATE;break;case w.Tc.PAN:if(!1===n.enablePan)return;D(),s=i.TOUCH_PAN;break;default:s=i.NONE}break;case 2:switch(n.touches.TWO){case w.Tc.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&B(),n.enablePan&&D(),s=i.TOUCH_DOLLY_PAN;break;case w.Tc.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&B(),n.enableRotate&&F(),s=i.TOUCH_DOLLY_ROTATE;break;default:s=i.NONE}break;default:s=i.NONE}s!==i.NONE&&n.dispatchEvent(py)}(t):function(t){let e;switch(t.button){case 0:e=n.mouseButtons.LEFT;break;case 1:e=n.mouseButtons.MIDDLE;break;case 2:e=n.mouseButtons.RIGHT;break;default:e=-1}switch(e){case w.hb.DOLLY:if(!1===n.enableZoom)return;!function(t){y.set(t.clientX,t.clientY)}(t),s=i.DOLLY;break;case w.hb.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enablePan)return;I(t),s=i.PAN}else{if(!1===n.enableRotate)return;R(t),s=i.ROTATE}break;case w.hb.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enableRotate)return;R(t),s=i.ROTATE}else{if(!1===n.enablePan)return;I(t),s=i.PAN}break;default:s=i.NONE}s!==i.NONE&&n.dispatchEvent(py)}(t))}function V(t){!1!==n.enabled&&(\\\\\\\"touch\\\\\\\"===t.pointerType?function(t){switch($(t),s){case i.TOUCH_ROTATE:if(!1===n.enableRotate)return;z(t),n.update();break;case i.TOUCH_PAN:if(!1===n.enablePan)return;k(t),n.update();break;case i.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(t){n.enableZoom&&U(t),n.enablePan&&k(t)}(t),n.update();break;case i.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(t){n.enableZoom&&U(t),n.enableRotate&&z(t)}(t),n.update();break;default:s=i.NONE}}(t):function(t){if(!1===n.enabled)return;switch(s){case i.ROTATE:if(!1===n.enableRotate)return;!function(t){_.set(t.clientX,t.clientY),m.subVectors(_,u).multiplyScalar(n.rotateSpeed);var e=n.domElement;E(2*Math.PI*m.x/e.clientHeight),S(2*Math.PI*m.y/e.clientHeight),u.copy(_),n.update()}(t);break;case i.DOLLY:if(!1===n.enableZoom)return;!function(t){x.set(t.clientX,t.clientY),b.subVectors(x,y),b.y>0?O(M()):b.y<0&&P(M()),y.copy(x),n.update()}(t);break;case i.PAN:if(!1===n.enablePan)return;!function(t){g.set(t.clientX,t.clientY),v.subVectors(g,f).multiplyScalar(n.panSpeed),L(v.x,v.y),f.copy(g),n.update()}(t)}}(t))}function H(t){!1!==n.enabled&&(t.pointerType,n.dispatchEvent(_y),s=i.NONE,Y(t),0===T.length&&(n.domElement.releasePointerCapture(t.pointerId),n.domElement.ownerDocument.removeEventListener(\\\\\\\"pointermove\\\\\\\",V),n.domElement.ownerDocument.removeEventListener(\\\\\\\"pointerup\\\\\\\",H)))}function j(t){Y(t)}function W(t){!1===n.enabled||!1===n.enableZoom||s!==i.NONE&&s!==i.ROTATE||(t.preventDefault(),n.dispatchEvent(py),function(t){t.deltaY<0?P(M()):t.deltaY>0&&O(M()),n.update()}(t),n.dispatchEvent(_y))}function q(t){!1!==n.enabled&&!1!==n.enablePan&&function(t){let e=!1;if(\\\\\\\"pan\\\\\\\"==n.keyMode)switch(t.code){case n.keys.UP:L(0,n.keyPanSpeed),e=!0;break;case n.keys.BOTTOM:L(0,-n.keyPanSpeed),e=!0;break;case n.keys.LEFT:L(n.keyPanSpeed,0),e=!0;break;case n.keys.RIGHT:L(-n.keyPanSpeed,0),e=!0}else switch(t.code){case n.keys.UP:S(n.keyRotateSpeedVertical),e=!0;break;case n.keys.BOTTOM:S(-n.keyRotateSpeedVertical),e=!0;break;case n.keys.LEFT:E(n.keyRotateSpeedHorizontal),e=!0;break;case n.keys.RIGHT:E(-n.keyRotateSpeedHorizontal),e=!0}e&&(t.preventDefault(),n.update())}(t)}function X(t){!1!==n.enabled&&t.preventDefault()}function Y(t){delete A[t.pointerId];for(let e=0;e<T.length;e++)if(T[e].pointerId==t.pointerId)return void T.splice(e,1)}function $(t){let e=A[t.pointerId];void 0===e&&(e=new d.a,A[t.pointerId]=e),e.set(t.pageX,t.pageY)}function J(t){const e=t.pointerId===T[0].pointerId?T[1]:T[0];return A[e.pointerId]}n.domElement.addEventListener(\\\\\\\"contextmenu\\\\\\\",X),n.domElement.addEventListener(\\\\\\\"pointerdown\\\\\\\",G),n.domElement.addEventListener(\\\\\\\"pointercancel\\\\\\\",j),n.domElement.addEventListener(\\\\\\\"wheel\\\\\\\",W,{passive:!1}),this.update()}}class fy extends my{constructor(t,e){super(t,e),this.screenSpacePanning=!1,this.mouseButtons.LEFT=w.hb.PAN,this.mouseButtons.RIGHT=w.hb.ROTATE,this.touches.ONE=w.Tc.PAN,this.touches.TWO=w.Tc.DOLLY_ROTATE}}const gy=\\\\\\\"start\\\\\\\",vy=\\\\\\\"change\\\\\\\";var yy;!function(t){t.PAN=\\\\\\\"pan\\\\\\\",t.ROTATE=\\\\\\\"rotate\\\\\\\"}(yy||(yy={}));const xy=[yy.PAN,yy.ROTATE];const by=new class extends ua{constructor(){super(...arguments),this.enabled=ha.BOOLEAN(1),this.allowPan=ha.BOOLEAN(1),this.allowRotate=ha.BOOLEAN(1),this.allowZoom=ha.BOOLEAN(1),this.tdamping=ha.BOOLEAN(1),this.damping=ha.FLOAT(.1,{visibleIf:{tdamping:!0}}),this.screenSpacePanning=ha.BOOLEAN(1),this.rotateSpeed=ha.FLOAT(.5),this.minDistance=ha.FLOAT(1,{range:[0,100],rangeLocked:[!0,!1]}),this.maxDistance=ha.FLOAT(50,{range:[0,100],rangeLocked:[!0,!1]}),this.limitAzimuthAngle=ha.BOOLEAN(0),this.azimuthAngleRange=ha.VECTOR2([\\\\\\\"-2*$PI\\\\\\\",\\\\\\\"2*$PI\\\\\\\"],{visibleIf:{limitAzimuthAngle:1}}),this.polarAngleRange=ha.VECTOR2([0,\\\\\\\"$PI\\\\\\\"]),this.target=ha.VECTOR3([0,0,0],{cook:!1,computeOnDirty:!0,callback:t=>{wy.PARAM_CALLBACK_update_target(t)}}),this.enableKeys=ha.BOOLEAN(0),this.keysMode=ha.INTEGER(xy.indexOf(yy.PAN),{visibleIf:{enableKeys:1},menu:{entries:xy.map(((t,e)=>({name:t,value:e})))}}),this.keysPanSpeed=ha.FLOAT(7,{range:[0,10],rangeLocked:[!1,!1],visibleIf:{enableKeys:1,keysMode:xy.indexOf(yy.PAN)}}),this.keysRotateSpeedVertical=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],visibleIf:{enableKeys:1,keysMode:xy.indexOf(yy.ROTATE)}}),this.keysRotateSpeedHorizontal=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],visibleIf:{enableKeys:1,keysMode:xy.indexOf(yy.ROTATE)}})}};class wy extends ey{constructor(){super(...arguments),this.paramsConfig=by,this._controls_by_element_id=new Map,this._target_array=[0,0,0]}static type(){return _s.ORBIT}endEventName(){return\\\\\\\"end\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new ta(gy,Qo.BASE),new ta(vy,Qo.BASE),new ta(\\\\\\\"end\\\\\\\",Qo.BASE)])}async createControlsInstance(t,e){const n=new my(t,e);return n.addEventListener(\\\\\\\"end\\\\\\\",(()=>{this._on_controls_end(n)})),this._controls_by_element_id.set(e.id,n),this._bind_listeners_to_controls_instance(n),n}_bind_listeners_to_controls_instance(t){t.addEventListener(\\\\\\\"start\\\\\\\",(()=>{this.dispatchEventToOutput(gy,{})})),t.addEventListener(\\\\\\\"change\\\\\\\",(()=>{this.dispatchEventToOutput(vy,{})})),t.addEventListener(\\\\\\\"end\\\\\\\",(()=>{this.dispatchEventToOutput(\\\\\\\"end\\\\\\\",{})}))}setupControls(t){t.enabled=this.pv.enabled,t.enablePan=this.pv.allowPan,t.enableRotate=this.pv.allowRotate,t.enableZoom=this.pv.allowZoom,t.enableDamping=this.pv.tdamping,t.dampingFactor=this.pv.damping,t.rotateSpeed=this.pv.rotateSpeed,t.screenSpacePanning=this.pv.screenSpacePanning,t.minDistance=this.pv.minDistance,t.maxDistance=this.pv.maxDistance,this._set_azimuth_angle(t),t.minPolarAngle=this.pv.polarAngleRange.x,t.maxPolarAngle=this.pv.polarAngleRange.y,t.target.copy(this.pv.target),t.enabled&&t.update(),t.enableKeys=this.pv.enableKeys,t.enableKeys&&(t.keyMode=xy[this.pv.keysMode],t.keyRotateSpeedVertical=this.pv.keysRotateSpeedVertical,t.keyRotateSpeedHorizontal=this.pv.keysRotateSpeedHorizontal,t.keyPanSpeed=this.pv.keysPanSpeed)}_set_azimuth_angle(t){this.pv.limitAzimuthAngle?(t.minAzimuthAngle=this.pv.azimuthAngleRange.x,t.maxAzimuthAngle=this.pv.azimuthAngleRange.y):(t.minAzimuthAngle=1/0,t.maxAzimuthAngle=1/0)}updateRequired(){return this.pv.tdamping}_on_controls_end(t){this.pv.allowPan&&(t.target.toArray(this._target_array),this.p.target.set(this._target_array))}static PARAM_CALLBACK_update_target(t){t._update_target()}_update_target(){const t=this.pv.target;this._controls_by_element_id.forEach(((e,n)=>{const i=e.target;i.equals(t)||(i.copy(t),e.update())}))}disposeControlsForHtmlElementId(t){this._controls_by_element_id.get(t)&&this._controls_by_element_id.delete(t)}}class Ty extends wy{static type(){return _s.MAP}async create_controls_instance(t,e){const n=new fy(t,e);return this._bind_listeners_to_controls_instance(n),n}}const Ay=new class extends ua{constructor(){super(...arguments),this.delay=ha.INTEGER(1e3,{range:[0,1e3],rangeLocked:[!0,!1]})}};class My extends Va{constructor(){super(...arguments),this.paramsConfig=Ay}static type(){return\\\\\\\"delay\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"in\\\\\\\",Qo.BASE,this._process_input.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(\\\\\\\"out\\\\\\\",Qo.BASE)])}_process_input(t){setTimeout((()=>{this.dispatchEventToOutput(\\\\\\\"out\\\\\\\",t)}),this.pv.delay)}}const Ey={type:\\\\\\\"change\\\\\\\"},Sy={type:\\\\\\\"lock\\\\\\\"},Cy={type:\\\\\\\"unlock\\\\\\\"},Ny=Math.PI/2,Ly=new p.a,Oy=new uy;class Py extends J.a{constructor(t,e,n){super(),this.camera=t,this.domElement=e,this.player=n,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.rotateSpeed=1,this.euler=new ny.a(0,0,0,\\\\\\\"YXZ\\\\\\\"),this.boundMethods={onMouseMove:this.onMouseMove.bind(this),onPointerlockChange:this.onPointerlockChange.bind(this),onPointerlockError:this.onPointerlockError.bind(this)},this._azimuthalAngle=0,this.connect()}onMouseMove(t){if(!1!==this.isLocked){var e=t.movementX||t.mozMovementX||t.webkitMovementX||0,n=t.movementY||t.mozMovementY||t.webkitMovementY||0;this.euler.setFromQuaternion(this.camera.quaternion),this.euler.y-=.002*e*this.rotateSpeed,this.euler.x-=.002*n*this.rotateSpeed,this.euler.x=Math.max(Ny-this.maxPolarAngle,Math.min(Ny-this.minPolarAngle,this.euler.x)),this.camera.quaternion.setFromEuler(this.euler),this._computeAzimuthalAngle(),this.dispatchEvent(Ey)}}_computeAzimuthalAngle(){this.camera.updateMatrixWorld(),Ly.set(0,0,1),this.camera.localToWorld(Ly),Ly.sub(this.camera.position),Oy.setFromVector3(Ly),this._azimuthalAngle=Oy.theta}onPointerlockChange(){this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(Sy),this.isLocked=!0):(this.dispatchEvent(Cy),this.isLocked=!1)}onPointerlockError(){console.error(\\\\\\\"THREE.PointerLockControls: Unable to use Pointer Lock API (Note that you need to wait for 2 seconds to lock the pointer after having just unlocked it)\\\\\\\")}connect(){this.domElement.ownerDocument.addEventListener(\\\\\\\"mousemove\\\\\\\",this.boundMethods.onMouseMove),this.domElement.ownerDocument.addEventListener(\\\\\\\"pointerlockchange\\\\\\\",this.boundMethods.onPointerlockChange),this.domElement.ownerDocument.addEventListener(\\\\\\\"pointerlockerror\\\\\\\",this.boundMethods.onPointerlockError)}disconnect(){this.domElement.ownerDocument.removeEventListener(\\\\\\\"mousemove\\\\\\\",this.boundMethods.onMouseMove),this.domElement.ownerDocument.removeEventListener(\\\\\\\"pointerlockchange\\\\\\\",this.boundMethods.onPointerlockChange),this.domElement.ownerDocument.removeEventListener(\\\\\\\"pointerlockerror\\\\\\\",this.boundMethods.onPointerlockError)}dispose(){this.disconnect()}getObject(){return this.camera}lock(){this.domElement.requestPointerLock()}unlock(){this.domElement.ownerDocument.exitPointerLock()}update(t){this.player&&(this.player.setAzimuthalAngle(this._azimuthalAngle),this.player.update(t))}}var Ry=n(16);const Iy=new p.a,Fy=new p.a;class Dy{constructor(t=new p.a,e=new p.a){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Iy.subVectors(t,this.start),Fy.subVectors(this.end,this.start);const n=Fy.dot(Fy);let i=Fy.dot(Iy)/n;return e&&(i=On.d(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const By=new p.a;function zy(t,e,n,i,s,r){const o=2*Math.PI*s/4,a=Math.max(r-2*s,0),l=Math.PI/4;By.copy(e),By[i]=0,By.normalize();const c=.5*o/(o+a),h=1-By.angleTo(t)/l;if(1===Math.sign(By[n]))return h*c;return a/(o+a)+c+c*(1-h)}class ky extends N{constructor(t=1,e=1,n=1,i=2,s=.1){if(i=2*i+1,s=Math.min(t/2,e/2,n/2,s),super(1,1,1,i,i,i),1===i)return;const r=this.toNonIndexed();this.index=null,this.attributes.position=r.attributes.position,this.attributes.normal=r.attributes.normal,this.attributes.uv=r.attributes.uv;const o=new p.a,a=new p.a,l=new p.a(t,e,n).divideScalar(2).subScalar(s),c=this.attributes.position.array,h=this.attributes.normal.array,u=this.attributes.uv.array,d=c.length/6,_=new p.a,m=.5/i;for(let i=0,r=0;i<c.length;i+=3,r+=2){o.fromArray(c,i),a.copy(o),a.x-=Math.sign(a.x)*m,a.y-=Math.sign(a.y)*m,a.z-=Math.sign(a.z)*m,a.normalize(),c[i+0]=l.x*Math.sign(o.x)+a.x*s,c[i+1]=l.y*Math.sign(o.y)+a.y*s,c[i+2]=l.z*Math.sign(o.z)+a.z*s,h[i+0]=a.x,h[i+1]=a.y,h[i+2]=a.z;switch(Math.floor(i/d)){case 0:_.set(1,0,0),u[r+0]=zy(_,a,\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",s,n),u[r+1]=1-zy(_,a,\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",s,e);break;case 1:_.set(-1,0,0),u[r+0]=1-zy(_,a,\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",s,n),u[r+1]=1-zy(_,a,\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",s,e);break;case 2:_.set(0,1,0),u[r+0]=1-zy(_,a,\\\\\\\"x\\\\\\\",\\\\\\\"z\\\\\\\",s,t),u[r+1]=zy(_,a,\\\\\\\"z\\\\\\\",\\\\\\\"x\\\\\\\",s,n);break;case 3:_.set(0,-1,0),u[r+0]=1-zy(_,a,\\\\\\\"x\\\\\\\",\\\\\\\"z\\\\\\\",s,t),u[r+1]=1-zy(_,a,\\\\\\\"z\\\\\\\",\\\\\\\"x\\\\\\\",s,n);break;case 4:_.set(0,0,1),u[r+0]=1-zy(_,a,\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",s,t),u[r+1]=1-zy(_,a,\\\\\\\"y\\\\\\\",\\\\\\\"x\\\\\\\",s,e);break;case 5:_.set(0,0,-1),u[r+0]=zy(_,a,\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",s,t),u[r+1]=1-zy(_,a,\\\\\\\"y\\\\\\\",\\\\\\\"x\\\\\\\",s,e)}}}}function Uy(t){const e=t.radius,n=t.height,i=2*e,s=new ky(i,n+i,i,10,e);return s.translate(0,-n/2,0),s}const Gy=new p.a(0,0,0),Vy=new p.a(0,1,0),Hy=new p.a,jy=new p.a,Wy=new Ry.a,qy=new A.a,Xy=new Dy,Yy=new p.a;class $y{constructor(t){this._pressed={forward:!1,backward:!1,left:!1,right:!1},this._onGround=!1,this._velocity=new p.a,this.capsuleInfo={radius:.5,segment:new Dy(new p.a,new p.a(0,-1,0))},this.startPosition=new p.a(0,5,0),this.startRotation=new p.a(0,0,0),this.jumpAllowed=!0,this.jumpStrength=10,this.runAllowed=!0,this.runSpeedMult=2,this._running=!1,this.speed=10,this.physicsSteps=5,this.gravity=new p.a(0,-30,0),this._azimuthalAngle=0,this._resetRequiredCallback=()=>this.object.position.y<-25,this.object=t.object,this.object.matrixAutoUpdate=!0,this.collider=t.collider,t.meshName&&(this._mesh=new B.a,this._mesh.geometry=Uy({radius:this.capsuleInfo.radius,height:1}),this._mesh.name=t.meshName,this._mesh.receiveShadow=!0,this._mesh.castShadow=!0)}setCollider(t){this.collider=t}setCapsule(t){this.capsuleInfo.radius=t.radius,this.capsuleInfo.segment.end.y=-t.height,this._mesh&&(this._mesh.geometry=Uy(t))}setUsePlayerMesh(t){t?(this._mesh=this._mesh||this._createMesh(),this.object.add(this._mesh)):this._mesh&&this.object.remove(this._mesh)}_createMesh(){const t=new B.a;return t.geometry=Uy({radius:this.capsuleInfo.radius,height:1}),t.name=this._meshName||\\\\\\\"defaultPlayerMeshName\\\\\\\",t.receiveShadow=!0,t.castShadow=!0,t}setMaterial(t){this._mesh&&(this._mesh.material=t)}reset(){this.stop(),this.object.position.copy(this.startPosition),Yy.copy(this.startRotation).multiplyScalar(On.a),this.object.rotation.setFromVector3(Yy)}stop(){this._pressed.forward=!1,this._pressed.backward=!1,this._pressed.left=!1,this._pressed.right=!1,this._running=!1}setResetRequiredCallback(t){this._resetRequiredCallback=t}setAzimuthalAngle(t){this._azimuthalAngle=t}update(t){const e=Math.min(t,.1);for(let t=0;t<this.physicsSteps;t++)this._updateStep(e/this.physicsSteps)}_updateStep(t){this._onGround||(Gy.copy(this.gravity).multiplyScalar(t),this._velocity.add(Gy)),this.object.position.addScaledVector(this._velocity,t);const e=this._azimuthalAngle,n=this.speed*t*(this._running?this.runSpeedMult:1);jy.set(0,0,0),this._pressed.forward&&(Hy.set(0,0,-1).applyAxisAngle(Vy,e),jy.add(Hy)),this._pressed.backward&&(Hy.set(0,0,1).applyAxisAngle(Vy,e),jy.add(Hy)),this._pressed.left&&(Hy.set(-1,0,0).applyAxisAngle(Vy,e),jy.add(Hy)),this._pressed.right&&(Hy.set(1,0,0).applyAxisAngle(Vy,e),jy.add(Hy)),jy.normalize().multiplyScalar(n),this.object.position.add(jy),this.object.updateMatrixWorld();const i=this.capsuleInfo;Wy.makeEmpty(),qy.copy(this.collider.matrixWorld).invert(),Xy.copy(i.segment),Xy.start.applyMatrix4(this.object.matrixWorld).applyMatrix4(qy),Xy.end.applyMatrix4(this.object.matrixWorld).applyMatrix4(qy),Wy.expandByPoint(Xy.start),Wy.expandByPoint(Xy.end),Wy.min.addScalar(-i.radius),Wy.max.addScalar(i.radius),this.collider.geometry.boundsTree.shapecast({intersectsBounds:t=>t.intersectsBox(Wy),intersectsTriangle:t=>{const e=Hy,n=jy,s=t.closestPointToSegment(Xy,e,n);if(s<i.radius){const t=i.radius-s,r=n.sub(e).normalize();Xy.start.addScaledVector(r,t),Xy.end.addScaledVector(r,t)}}});const s=Hy;s.copy(Xy.start).applyMatrix4(this.collider.matrixWorld);const r=jy;r.subVectors(s,this.object.position),this._onGround=r.y>Math.abs(t*this._velocity.y*.25);const o=Math.max(0,r.length()-1e-5);r.normalize().multiplyScalar(o),this.object.position.add(r),this._onGround?this._velocity.set(0,0,0):(r.normalize(),this._velocity.addScaledVector(r,-r.dot(this._velocity))),this._resetRequiredCallback()&&this.reset()}setForward(t){this._pressed.forward=t}setBackward(t){this._pressed.backward=t}setLeft(t){this._pressed.left=t}setRight(t){this._pressed.right=t}jump(){this._onGround&&this.jumpAllowed&&(this._velocity.y=this.jumpStrength)}setRun(t){t?this._onGround&&this.runAllowed&&(this._running=!0):this._running=!1}running(){return this._running}}function Jy(t){t.preventDefault()}class Zy{constructor(t){this.player=t,this._bounds={keydown:this._onKeyDown.bind(this),keyup:this._onKeyUp.bind(this)}}_onKeyDown(t){if(!t.ctrlKey)switch(t.code){case\\\\\\\"ArrowUp\\\\\\\":case\\\\\\\"KeyW\\\\\\\":this.player.setForward(!0),Jy(t);break;case\\\\\\\"ArrowDown\\\\\\\":case\\\\\\\"KeyS\\\\\\\":this.player.setBackward(!0),Jy(t);break;case\\\\\\\"ArrowRight\\\\\\\":case\\\\\\\"KeyD\\\\\\\":this.player.setRight(!0),Jy(t);break;case\\\\\\\"ArrowLeft\\\\\\\":case\\\\\\\"KeyA\\\\\\\":this.player.setLeft(!0),Jy(t);break;case\\\\\\\"Space\\\\\\\":this.player.jump(),Jy(t);break;case\\\\\\\"ShiftLeft\\\\\\\":case\\\\\\\"ShiftRight\\\\\\\":this.player.setRun(!0),Jy(t)}}_onKeyUp(t){switch(t.code){case\\\\\\\"ArrowUp\\\\\\\":case\\\\\\\"KeyW\\\\\\\":this.player.setForward(!1);break;case\\\\\\\"ArrowDown\\\\\\\":case\\\\\\\"KeyS\\\\\\\":this.player.setBackward(!1);break;case\\\\\\\"ArrowRight\\\\\\\":case\\\\\\\"KeyD\\\\\\\":this.player.setRight(!1);break;case\\\\\\\"ArrowLeft\\\\\\\":case\\\\\\\"KeyA\\\\\\\":this.player.setLeft(!1);break;case\\\\\\\"ShiftLeft\\\\\\\":case\\\\\\\"ShiftRight\\\\\\\":this.player.setRun(!1),Jy(t)}}addEvents(){document.addEventListener(\\\\\\\"keydown\\\\\\\",this._bounds.keydown),document.addEventListener(\\\\\\\"keyup\\\\\\\",this._bounds.keyup)}removeEvents(){document.removeEventListener(\\\\\\\"keydown\\\\\\\",this._bounds.keydown),document.removeEventListener(\\\\\\\"keyup\\\\\\\",this._bounds.keyup)}}Ky=ua;var Ky;class Qy extends Va{static PARAM_CALLBACK_updateCollider(t){}}class tx{constructor(t){this.node=t}_colliderNodeGraphNode(){return this.__colliderNodeGraphNode=this.__colliderNodeGraphNode||new Mi(this.node.scene(),\\\\\\\"colliderGraphNode\\\\\\\")}async getCollider(){var t;const e=this.node.pv.colliderObject.nodeWithContext(ts.SOP);if(!e)return void this.node.states.error.set(\\\\\\\"collider node not found\\\\\\\");(null===(t=this._colliderNode)||void 0===t?void 0:t.graphNodeId())!=e.graphNodeId()&&(this._colliderNode&&this._colliderNodeGraphNode().removeGraphInput(this._colliderNode),this._colliderNodeGraphNode().addGraphInput(e),this._colliderNodeGraphNode().addPostDirtyHook(\\\\\\\"onColliderDirty\\\\\\\",(()=>{this.updateCollider()})),this._colliderNode=e);const n=(await e.compute()).coreContent();if(!n)return void this.node.states.error.set(\\\\\\\"invalid collider node\\\\\\\");return n.objects()[0]}async updateCollider(){var t;const e=await this.getCollider();e?null===(t=this.node.player())||void 0===t||t.setCollider(e):this.node.states.error.set(\\\\\\\"invalid collider\\\\\\\")}}const ex=\\\\\\\"lock\\\\\\\",nx=\\\\\\\"change\\\\\\\",ix=\\\\\\\"unlock\\\\\\\";function sx(){return{cook:!1,callback:t=>{ox.PARAM_CALLBACK_updatePlayerParams(t)}}}const rx=new class extends ua{constructor(){super(...arguments),this.main=ha.FOLDER(),this.colliderObject=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.SOP},dependentOnFoundNode:!1,callback:t=>{ox.PARAM_CALLBACK_updateCollider(t)}}),this.lock=ha.BUTTON(null,{callback:t=>{ox.PARAM_CALLBACK_lockControls(t)}}),this.unlock=ha.BUTTON(null,{callback:t=>{ox.PARAM_CALLBACK_unlockControls(t)}}),this.capsuleRadius=ha.FLOAT(.5,{range:[0,1],rangeLocked:[!0,!1],...sx()}),this.capsuleHeight=ha.FLOAT(1,{range:[0,2],rangeLocked:[!0,!1],...sx()}),this.physics=ha.FOLDER(),this.physicsSteps=ha.INTEGER(5,{range:[1,10],rangeLocked:[!0,!1],...sx()}),this.gravity=ha.VECTOR3([0,-30,0],{...sx()}),this.translateSpeed=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1],...sx()}),this.rotateSpeed=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1]}),this.jumpAllowed=ha.BOOLEAN(!0,{...sx()}),this.jumpStrength=ha.FLOAT(10,{range:[0,100],rangeLocked:[!0,!1],...sx()}),this.runAllowed=ha.BOOLEAN(!0,{...sx()}),this.runSpeedMult=ha.FLOAT(2,{range:[0,10],rangeLocked:[!0,!1],...sx()}),this.updateCollider=ha.BUTTON(null,{callback:t=>{ox.PARAM_CALLBACK_updateCollider(t)}}),this.init=ha.FOLDER(),this.startPosition=ha.VECTOR3([0,2,0],{...sx()}),this.startRotation=ha.VECTOR3([0,0,0],{...sx()}),this.reset=ha.BUTTON(null,{callback:t=>{ox.PARAM_CALLBACK_resetPlayer(t)}}),this.minPolarAngle=ha.FLOAT(0,{range:[0,Math.PI],rangeLocked:[!0,!0]}),this.maxPolarAngle=ha.FLOAT(\\\\\\\"$PI\\\\\\\",{range:[0,Math.PI],rangeLocked:[!0,!0]})}};class ox extends ey{constructor(){super(...arguments),this.paramsConfig=rx,this._controls_by_element_id=new Map}static type(){return _s.FIRST_PERSON}endEventName(){return\\\\\\\"unlock\\\\\\\"}collisionController(){return this._collisionController=this._collisionController||new tx(this)}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(ex,Qo.BASE,this.lockControls.bind(this)),new ta(ox.INPUT_UPDATE_COLLIDER,Qo.BASE,this._updateCollider.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(ex,Qo.BASE),new ta(nx,Qo.BASE),new ta(ix,Qo.BASE)])}async createControlsInstance(t,e){await this._initPlayer(t);const n=new Py(t,e,this._player);return this._controls_by_element_id.set(e.id,n),this._bind_listeners_to_controls_instance(n),n}async _initPlayer(t){this._player=this._player||await this._createPlayer(t),this._player&&(this._updatePlayerParams(),this._player.reset())}player(){return this._player}async _updatePlayerParams(){this._player&&(this._player.startPosition.copy(this.pv.startPosition),this._player.startRotation.copy(this.pv.startRotation),this._player.physicsSteps=this.pv.physicsSteps,this._player.jumpAllowed=this.pv.jumpAllowed,this._player.jumpStrength=this.pv.jumpStrength,this._player.runAllowed=this.pv.runAllowed,this._player.runSpeedMult=this.pv.runSpeedMult,this._player.gravity.copy(this.pv.gravity),this._player.speed=this.pv.translateSpeed,this._player.setCapsule({radius:this.pv.capsuleRadius,height:this.pv.capsuleHeight}))}async _createPlayer(t){const e=t,n=await this.collisionController().getCollider();if(!n)return void this.states.error.set(\\\\\\\"invalid collider\\\\\\\");return new $y({object:e,collider:n})}_resetPlayer(){var t;null===(t=this._player)||void 0===t||t.reset()}async _updateCollider(){await this.collisionController().updateCollider()}_bind_listeners_to_controls_instance(t){t.addEventListener(ex,(()=>{this.dispatchEventToOutput(ex,{})})),t.addEventListener(nx,(()=>{this.dispatchEventToOutput(nx,{})})),t.addEventListener(ix,(()=>{this.dispatchEventToOutput(ix,{})}))}updateRequired(){return!0}setupControls(t){t.minPolarAngle=this.pv.minPolarAngle,t.maxPolarAngle=this.pv.maxPolarAngle,t.rotateSpeed=this.pv.rotateSpeed}disposeControlsForHtmlElementId(t){const e=this._controls_by_element_id.get(t);e&&(e.dispose(),this._controls_by_element_id.delete(t))}unlockControls(){const t=this._firstControls();t&&t.unlock()}lockControls(){const t=this._firstControls();if(t){if(this._player){this._corePlayerKeyEvents=this._corePlayerKeyEvents||new Zy(this._player),this._corePlayerKeyEvents.addEvents();const e=()=>{var n,i;t&&t.domElement.ownerDocument.pointerLockElement!=t.domElement&&(t.domElement.ownerDocument.removeEventListener(\\\\\\\"pointerlockchange\\\\\\\",e),null===(n=this._corePlayerKeyEvents)||void 0===n||n.removeEvents(),null===(i=this._player)||void 0===i||i.stop())};t.domElement.ownerDocument.addEventListener(\\\\\\\"pointerlockchange\\\\\\\",e)}t.lock()}}_firstControls(){let t;return this._controls_by_element_id.forEach(((e,n)=>{t=t||e})),t}static PARAM_CALLBACK_lockControls(t){t.lockControls()}static PARAM_CALLBACK_unlockControls(t){t.unlockControls()}static PARAM_CALLBACK_updateCollider(t){t._updateCollider()}static PARAM_CALLBACK_updatePlayerParams(t){t._updatePlayerParams()}static PARAM_CALLBACK_resetPlayer(t){t._resetPlayer()}}var ax,lx;ox.INPUT_UPDATE_COLLIDER=\\\\\\\"updateCollider\\\\\\\",function(t){t.TRIGGER=\\\\\\\"trigger\\\\\\\",t.RESET=\\\\\\\"reset\\\\\\\"}(ax||(ax={})),function(t){t.OUT=\\\\\\\"out\\\\\\\",t.LAST=\\\\\\\"last\\\\\\\"}(lx||(lx={}));const cx=new class extends ua{constructor(){super(...arguments),this.maxCount=ha.INTEGER(5,{range:[0,10],rangeLocked:[!0,!1]}),this.reset=ha.BUTTON(null,{callback:t=>{hx.PARAM_CALLBACK_reset(t)}})}};class hx extends Va{constructor(){super(...arguments),this.paramsConfig=cx,this._process_count=0,this._last_dispatched=!1}static type(){return\\\\\\\"limit\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(ax.TRIGGER,Qo.BASE,this.processEventTrigger.bind(this)),new ta(ax.RESET,Qo.BASE,this.process_event_reset.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(lx.OUT,Qo.BASE),new ta(lx.LAST,Qo.BASE)])}processEvent(t){}processEventTrigger(t){this._process_count<this.pv.maxCount?(this._process_count+=1,this.dispatchEventToOutput(lx.OUT,t)):this._last_dispatched||(this._last_dispatched=!0,this.dispatchEventToOutput(lx.LAST,t))}process_event_reset(t){this._process_count=0,this._last_dispatched=!1}static PARAM_CALLBACK_reset(t){t.process_event_reset({})}}const ux=new class extends ua{constructor(){super(...arguments),this.alert=ha.BOOLEAN(0),this.console=ha.BOOLEAN(1)}};class dx extends Va{constructor(){super(...arguments),this.paramsConfig=ux}static type(){return\\\\\\\"message\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"trigger\\\\\\\",Qo.BASE,this._process_trigger_event.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(dx.OUTPUT,Qo.BASE)])}trigger_output(t){this.dispatchEventToOutput(dx.OUTPUT,t)}_process_trigger_event(t){this.pv.alert&&alert(t),this.pv.console&&console.log(this.path(),Date.now(),t),this.trigger_output(t)}}dx.OUTPUT=\\\\\\\"output\\\\\\\";const px=100,_x=301,mx=302,fx=303,gx=304,vx=306,yx=307,xx=1e3,bx=1001,wx=1002,Tx=1003,Ax=1004,Mx=1005,Ex=1006,Sx=1007,Cx=1008,Nx=1009,Lx=1012,Ox=1014,Px=1015,Rx=1016,Ix=1020,Fx=1022,Dx=1023,Bx=1026,zx=1027,kx=2300,Ux=2301,Gx=2302,Vx=2400,Hx=2401,jx=2402,Wx=2500,qx=3e3,Xx=3001,Yx=3007,$x=3002,Jx=7680,Zx=35044,Kx=35048,Qx=\\\\\\\"300 es\\\\\\\";class tb{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}let eb=1234567;const nb=Math.PI/180,ib=180/Math.PI,sb=[];for(let t=0;t<256;t++)sb[t]=(t<16?\\\\\\\"0\\\\\\\":\\\\\\\"\\\\\\\")+t.toString(16);const rb=\\\\\\\"undefined\\\\\\\"!=typeof crypto&&\\\\\\\"randomUUID\\\\\\\"in crypto;function ob(){if(rb)return crypto.randomUUID().toUpperCase();const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(sb[255&t]+sb[t>>8&255]+sb[t>>16&255]+sb[t>>24&255]+\\\\\\\"-\\\\\\\"+sb[255&e]+sb[e>>8&255]+\\\\\\\"-\\\\\\\"+sb[e>>16&15|64]+sb[e>>24&255]+\\\\\\\"-\\\\\\\"+sb[63&n|128]+sb[n>>8&255]+\\\\\\\"-\\\\\\\"+sb[n>>16&255]+sb[n>>24&255]+sb[255&i]+sb[i>>8&255]+sb[i>>16&255]+sb[i>>24&255]).toUpperCase()}function ab(t,e,n){return Math.max(e,Math.min(n,t))}function lb(t,e){return(t%e+e)%e}function cb(t,e,n){return(1-n)*t+n*e}function hb(t){return 0==(t&t-1)&&0!==t}function ub(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function db(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var pb=Object.freeze({__proto__:null,DEG2RAD:nb,RAD2DEG:ib,generateUUID:ob,clamp:ab,euclideanModulo:lb,mapLinear:function(t,e,n,i,s){return i+(t-e)*(s-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:cb,damp:function(t,e,n,i){return cb(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(lb(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(eb=t%2147483647),eb=16807*eb%2147483647,(eb-1)/2147483646},degToRad:function(t){return t*nb},radToDeg:function(t){return t*ib},isPowerOfTwo:hb,ceilPowerOfTwo:ub,floorPowerOfTwo:db,setQuaternionFromProperEuler:function(t,e,n,i,s){const r=Math.cos,o=Math.sin,a=r(n/2),l=o(n/2),c=r((e+i)/2),h=o((e+i)/2),u=r((e-i)/2),d=o((e-i)/2),p=r((i-e)/2),_=o((i-e)/2);switch(s){case\\\\\\\"XYX\\\\\\\":t.set(a*h,l*u,l*d,a*c);break;case\\\\\\\"YZY\\\\\\\":t.set(l*d,a*h,l*u,a*c);break;case\\\\\\\"ZXZ\\\\\\\":t.set(l*u,l*d,a*h,a*c);break;case\\\\\\\"XZX\\\\\\\":t.set(a*h,l*_,l*p,a*c);break;case\\\\\\\"YXY\\\\\\\":t.set(l*p,a*h,l*_,a*c);break;case\\\\\\\"ZYZ\\\\\\\":t.set(l*_,l*p,a*h,a*c);break;default:console.warn(\\\\\\\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \\\\\\\"+s)}}});class _b{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\\\\\\\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,r=this.y-t.y;return this.x=s*n-r*i+t.x,this.y=s*i+r*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}_b.prototype.isVector2=!0;class mb{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\\\\\\\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\\\\\\\")}set(t,e,n,i,s,r,o,a,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=o,c[3]=e,c[4]=s,c[5]=a,c[6]=n,c[7]=r,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,s=this.elements,r=n[0],o=n[3],a=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],_=i[0],m=i[3],f=i[6],g=i[1],v=i[4],y=i[7],x=i[2],b=i[5],w=i[8];return s[0]=r*_+o*g+a*x,s[3]=r*m+o*v+a*b,s[6]=r*f+o*y+a*w,s[1]=l*_+c*g+h*x,s[4]=l*m+c*v+h*b,s[7]=l*f+c*y+h*w,s[2]=u*_+d*g+p*x,s[5]=u*m+d*v+p*b,s[8]=u*f+d*y+p*w,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],r=t[4],o=t[5],a=t[6],l=t[7],c=t[8];return e*r*c-e*o*l-n*s*c+n*o*a+i*s*l-i*r*a}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],r=t[4],o=t[5],a=t[6],l=t[7],c=t[8],h=c*r-o*l,u=o*a-c*s,d=l*s-r*a,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const _=1/p;return t[0]=h*_,t[1]=(i*l-c*n)*_,t[2]=(o*n-i*r)*_,t[3]=u*_,t[4]=(c*e-i*a)*_,t[5]=(i*s-o*e)*_,t[6]=d*_,t[7]=(n*a-l*e)*_,t[8]=(r*e-n*s)*_,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,s,r,o){const a=Math.cos(s),l=Math.sin(s);return this.set(n*a,n*l,-n*(a*r+l*o)+r+t,-i*l,i*a,-i*(-l*r+a*o)+o+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,s=i[0],r=i[3],o=i[6],a=i[1],l=i[4],c=i[7];return i[0]=e*s+n*a,i[3]=e*r+n*l,i[6]=e*o+n*c,i[1]=-n*s+e*a,i[4]=-n*r+e*l,i[7]=-n*o+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}function fb(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}mb.prototype.isMatrix3=!0;Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;function gb(t){return document.createElementNS(\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\",t)}let vb;class yb{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\\\\\\\"undefined\\\\\\\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===vb&&(vb=gb(\\\\\\\"canvas\\\\\\\")),vb.width=t.width,vb.height=t.height;const n=vb.getContext(\\\\\\\"2d\\\\\\\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=vb}return e.width>2048||e.height>2048?(console.warn(\\\\\\\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\\\\\\\",t),e.toDataURL(\\\\\\\"image/jpeg\\\\\\\",.6)):e.toDataURL(\\\\\\\"image/png\\\\\\\")}}let xb=0;class bb extends tb{constructor(t=bb.DEFAULT_IMAGE,e=bb.DEFAULT_MAPPING,n=1001,i=1001,s=1006,r=1008,o=1023,a=1009,l=1,c=3e3){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:xb++}),this.uuid=ob(),this.name=\\\\\\\"\\\\\\\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=s,this.minFilter=r,this.anisotropy=l,this.format=o,this.internalFormat=null,this.type=a,this.offset=new _b(0,0),this.repeat=new _b(1,1),this.center=new _b(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new mb,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:\\\\\\\"Texture\\\\\\\",generator:\\\\\\\"Texture.toJSON\\\\\\\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ob()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)i[t].isDataTexture?e.push(wb(i[t].image)):e.push(wb(i[t]))}else e=wb(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}transformUv(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case xx:t.x=t.x-Math.floor(t.x);break;case bx:t.x=t.x<0?0:1;break;case wx:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case xx:t.y=t.y-Math.floor(t.y);break;case bx:t.y=t.y<0?0:1;break;case wx:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function wb(t){return\\\\\\\"undefined\\\\\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\\\\\"undefined\\\\\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\\\\\"undefined\\\\\\\"!=typeof ImageBitmap&&t instanceof ImageBitmap?yb.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\\\\\\\"THREE.Texture: Unable to serialize Texture.\\\\\\\"),{})}bb.DEFAULT_IMAGE=void 0,bb.DEFAULT_MAPPING=300,bb.prototype.isTexture=!0;class Tb{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,s=this.w,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i+r[12]*s,this.y=r[1]*e+r[5]*n+r[9]*i+r[13]*s,this.z=r[2]*e+r[6]*n+r[10]*i+r[14]*s,this.w=r[3]*e+r[7]*n+r[11]*i+r[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,s;const r=.01,o=.1,a=t.elements,l=a[0],c=a[4],h=a[8],u=a[1],d=a[5],p=a[9],_=a[2],m=a[6],f=a[10];if(Math.abs(c-u)<r&&Math.abs(h-_)<r&&Math.abs(p-m)<r){if(Math.abs(c+u)<o&&Math.abs(h+_)<o&&Math.abs(p+m)<o&&Math.abs(l+d+f-3)<o)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,a=(d+1)/2,g=(f+1)/2,v=(c+u)/4,y=(h+_)/4,x=(p+m)/4;return t>a&&t>g?t<r?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(t),i=v/n,s=y/n):a>g?a<r?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(a),n=v/i,s=x/i):g<r?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(g),n=y/s,i=x/s),this.set(n,i,s,e),this}let g=Math.sqrt((m-p)*(m-p)+(h-_)*(h-_)+(u-c)*(u-c));return Math.abs(g)<.001&&(g=1),this.x=(m-p)/g,this.y=(h-_)/g,this.z=(u-c)/g,this.w=Math.acos((l+d+f-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\\\\\\\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}Tb.prototype.isVector4=!0;class Ab extends tb{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new Tb(0,0,t,e),this.scissorTest=!1,this.viewport=new Tb(0,0,t,e),this.texture=new bb(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.internalFormat=void 0!==n.internalFormat?n.internalFormat:null,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:Ex,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}Ab.prototype.isWebGLRenderTarget=!0;(class extends Ab{constructor(t,e,n){super(t,e);const i=this.texture;this.texture=[];for(let t=0;t<n;t++)this.texture[t]=i.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,s=this.texture.length;i<s;i++)this.texture[i].image.width=t,this.texture[i].image.height=e,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}).prototype.isWebGLMultipleRenderTargets=!0;class Mb extends Ab{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}Mb.prototype.isWebGLMultisampleRenderTarget=!0;class Eb{constructor(t=0,e=0,n=0,i=1){this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return console.warn(\\\\\\\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\\\\\\\"),n.slerpQuaternions(t,e,i)}static slerpFlat(t,e,n,i,s,r,o){let a=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=s[r+0],d=s[r+1],p=s[r+2],_=s[r+3];if(0===o)return t[e+0]=a,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===o)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=_);if(h!==_||a!==u||l!==d||c!==p){let t=1-o;const e=a*u+l*d+c*p+h*_,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const s=Math.sqrt(i),r=Math.atan2(s,e*n);t=Math.sin(t*r)/s,o=Math.sin(o*r)/s}const s=o*n;if(a=a*t+u*s,l=l*t+d*s,c=c*t+p*s,h=h*t+_*s,t===1-o){const t=1/Math.sqrt(a*a+l*l+c*c+h*h);a*=t,l*=t,c*=t,h*=t}}t[e]=a,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,s,r){const o=n[i],a=n[i+1],l=n[i+2],c=n[i+3],h=s[r],u=s[r+1],d=s[r+2],p=s[r+3];return t[e]=o*p+c*h+a*d-l*u,t[e+1]=a*p+c*u+l*h-o*d,t[e+2]=l*p+c*d+o*u-a*h,t[e+3]=c*p-o*h-a*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\\\\\\\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\");const n=t._x,i=t._y,s=t._z,r=t._order,o=Math.cos,a=Math.sin,l=o(n/2),c=o(i/2),h=o(s/2),u=a(n/2),d=a(i/2),p=a(s/2);switch(r){case\\\\\\\"XYZ\\\\\\\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\\\\\\\"YXZ\\\\\\\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\\\\\\\"ZXY\\\\\\\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\\\\\\\"ZYX\\\\\\\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\\\\\\\"YZX\\\\\\\":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case\\\\\\\"XZY\\\\\\\":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn(\\\\\\\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \\\\\\\"+r)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],s=e[8],r=e[1],o=e[5],a=e[9],l=e[2],c=e[6],h=e[10],u=n+o+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-a)*t,this._y=(s-l)*t,this._z=(r-i)*t}else if(n>o&&n>h){const t=2*Math.sqrt(1+n-o-h);this._w=(c-a)/t,this._x=.25*t,this._y=(i+r)/t,this._z=(s+l)/t}else if(o>h){const t=2*Math.sqrt(1+o-n-h);this._w=(s-l)/t,this._x=(i+r)/t,this._y=.25*t,this._z=(a+c)/t}else{const t=2*Math.sqrt(1+h-n-o);this._w=(r-i)/t,this._x=(s+l)/t,this._y=(a+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ab(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\\\\\\\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,s=t._z,r=t._w,o=e._x,a=e._y,l=e._z,c=e._w;return this._x=n*c+r*o+i*l-s*a,this._y=i*c+r*a+s*o-n*l,this._z=s*c+r*l+n*a-i*o,this._w=r*c-n*o-i*a-s*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,s=this._z,r=this._w;let o=r*t._w+n*t._x+i*t._y+s*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=r,this._x=n,this._y=i,this._z=s,this;const a=1-o*o;if(a<=Number.EPSILON){const t=1-e;return this._w=t*r+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*s+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(a),c=Math.atan2(l,o),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=r*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=s*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Eb.prototype.isQuaternion=!0;class Sb{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\\\\\\\"index is out of range: \\\\\\\"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\\\\\\\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\\\\\\\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\"),this.applyQuaternion(Nb.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Nb.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,s=t.elements,r=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*r,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*r,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*r,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,s=t.x,r=t.y,o=t.z,a=t.w,l=a*e+r*i-o*n,c=a*n+o*e-s*i,h=a*i+s*n-r*e,u=-s*e-r*n-o*i;return this.x=l*a+u*-s+c*-o-h*-r,this.y=c*a+u*-r+h*-s-l*-o,this.z=h*a+u*-o+l*-r-c*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\\\\\\\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,s=t.z,r=e.x,o=e.y,a=e.z;return this.x=i*a-s*o,this.y=s*r-n*a,this.z=n*o-i*r,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Cb.copy(this).projectOnVector(t),this.sub(Cb)}reflect(t){return this.sub(Cb.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ab(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\\\\\\\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\\\\\\\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}Sb.prototype.isVector3=!0;const Cb=new Sb,Nb=new Eb;class Lb{constructor(t=new Sb(1/0,1/0,1/0),e=new Sb(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,s=-1/0,r=-1/0,o=-1/0;for(let a=0,l=t.length;a<l;a+=3){const l=t[a],c=t[a+1],h=t[a+2];l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>s&&(s=l),c>r&&(r=c),h>o&&(o=h)}return this.min.set(e,n,i),this.max.set(s,r,o),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,r=-1/0,o=-1/0;for(let a=0,l=t.count;a<l;a++){const l=t.getX(a),c=t.getY(a),h=t.getZ(a);l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>s&&(s=l),c>r&&(r=c),h>o&&(o=h)}return this.min.set(e,n,i),this.max.set(s,r,o),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Pb.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),Rb.copy(e.boundingBox),Rb.applyMatrix4(t.matrixWorld),this.union(Rb));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Pb),Pb.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ub),Gb.subVectors(this.max,Ub),Ib.subVectors(t.a,Ub),Fb.subVectors(t.b,Ub),Db.subVectors(t.c,Ub),Bb.subVectors(Fb,Ib),zb.subVectors(Db,Fb),kb.subVectors(Ib,Db);let e=[0,-Bb.z,Bb.y,0,-zb.z,zb.y,0,-kb.z,kb.y,Bb.z,0,-Bb.x,zb.z,0,-zb.x,kb.z,0,-kb.x,-Bb.y,Bb.x,0,-zb.y,zb.x,0,-kb.y,kb.x,0];return!!jb(e,Ib,Fb,Db,Gb)&&(e=[1,0,0,0,1,0,0,0,1],!!jb(e,Ib,Fb,Db,Gb)&&(Vb.crossVectors(Bb,zb),e=[Vb.x,Vb.y,Vb.z],jb(e,Ib,Fb,Db,Gb)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Pb.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(Pb).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Ob[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ob[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ob[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ob[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ob[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ob[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ob[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ob[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ob)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Lb.prototype.isBox3=!0;const Ob=[new Sb,new Sb,new Sb,new Sb,new Sb,new Sb,new Sb,new Sb],Pb=new Sb,Rb=new Lb,Ib=new Sb,Fb=new Sb,Db=new Sb,Bb=new Sb,zb=new Sb,kb=new Sb,Ub=new Sb,Gb=new Sb,Vb=new Sb,Hb=new Sb;function jb(t,e,n,i,s){for(let r=0,o=t.length-3;r<=o;r+=3){Hb.fromArray(t,r);const o=s.x*Math.abs(Hb.x)+s.y*Math.abs(Hb.y)+s.z*Math.abs(Hb.z),a=e.dot(Hb),l=n.dot(Hb),c=i.dot(Hb);if(Math.max(-Math.max(a,l,c),Math.min(a,l,c))>o)return!1}return!0}const Wb=new Lb,qb=new Sb,Xb=new Sb,Yb=new Sb;class $b{constructor(t=new Sb,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Wb.setFromPoints(t).getCenter(n);let i=0;for(let e=0,s=t.length;e<s;e++)i=Math.max(i,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Yb.subVectors(t,this.center);const e=Yb.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Yb.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Xb.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(qb.copy(t.center).add(Xb)),this.expandByPoint(qb.copy(t.center).sub(Xb)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Jb=new Sb,Zb=new Sb,Kb=new Sb,Qb=new Sb,tw=new Sb,ew=new Sb,nw=new Sb;class iw{constructor(t=new Sb,e=new Sb(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Jb)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Jb.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Jb.copy(this.direction).multiplyScalar(e).add(this.origin),Jb.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Zb.copy(t).add(e).multiplyScalar(.5),Kb.copy(e).sub(t).normalize(),Qb.copy(this.origin).sub(Zb);const s=.5*t.distanceTo(e),r=-this.direction.dot(Kb),o=Qb.dot(this.direction),a=-Qb.dot(Kb),l=Qb.lengthSq(),c=Math.abs(1-r*r);let h,u,d,p;if(c>0)if(h=r*a-o,u=r*o-a,p=s*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+r*u+2*o)+u*(r*h+u+2*a)+l}else u=s,h=Math.max(0,-(r*u+o)),d=-h*h+u*(u+2*a)+l;else u=-s,h=Math.max(0,-(r*u+o)),d=-h*h+u*(u+2*a)+l;else u<=-p?(h=Math.max(0,-(-r*s+o)),u=h>0?-s:Math.min(Math.max(-s,-a),s),d=-h*h+u*(u+2*a)+l):u<=p?(h=0,u=Math.min(Math.max(-s,-a),s),d=u*(u+2*a)+l):(h=Math.max(0,-(r*s+o)),u=h>0?s:Math.min(Math.max(-s,-a),s),d=-h*h+u*(u+2*a)+l);else u=r>0?-s:s,h=Math.max(0,-(r*u+o)),d=-h*h+u*(u+2*a)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(Kb).multiplyScalar(u).add(Zb),d}intersectSphere(t,e){Jb.subVectors(t.center,this.origin);const n=Jb.dot(this.direction),i=Jb.dot(Jb)-n*n,s=t.radius*t.radius;if(i>s)return null;const r=Math.sqrt(s-i),o=n-r,a=n+r;return o<0&&a<0?null:o<0?this.at(a,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,r,o,a;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(s=(t.min.y-u.y)*c,r=(t.max.y-u.y)*c):(s=(t.max.y-u.y)*c,r=(t.min.y-u.y)*c),n>r||s>i?null:((s>n||n!=n)&&(n=s),(r<i||i!=i)&&(i=r),h>=0?(o=(t.min.z-u.z)*h,a=(t.max.z-u.z)*h):(o=(t.max.z-u.z)*h,a=(t.min.z-u.z)*h),n>a||o>i?null:((o>n||n!=n)&&(n=o),(a<i||i!=i)&&(i=a),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Jb)}intersectTriangle(t,e,n,i,s){tw.subVectors(e,t),ew.subVectors(n,t),nw.crossVectors(tw,ew);let r,o=this.direction.dot(nw);if(o>0){if(i)return null;r=1}else{if(!(o<0))return null;r=-1,o=-o}Qb.subVectors(this.origin,t);const a=r*this.direction.dot(ew.crossVectors(Qb,ew));if(a<0)return null;const l=r*this.direction.dot(tw.cross(Qb));if(l<0)return null;if(a+l>o)return null;const c=-r*Qb.dot(nw);return c<0?null:this.at(c/o,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class sw{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\\\\\\\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\\\\\\\")}set(t,e,n,i,s,r,o,a,l,c,h,u,d,p,_,m){const f=this.elements;return f[0]=t,f[4]=e,f[8]=n,f[12]=i,f[1]=s,f[5]=r,f[9]=o,f[13]=a,f[2]=l,f[6]=c,f[10]=h,f[14]=u,f[3]=d,f[7]=p,f[11]=_,f[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new sw).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/rw.setFromMatrixColumn(t,0).length(),s=1/rw.setFromMatrixColumn(t,1).length(),r=1/rw.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*r,e[9]=n[9]*r,e[10]=n[10]*r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\\\\\\\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\\\\\\\");const e=this.elements,n=t.x,i=t.y,s=t.z,r=Math.cos(n),o=Math.sin(n),a=Math.cos(i),l=Math.sin(i),c=Math.cos(s),h=Math.sin(s);if(\\\\\\\"XYZ\\\\\\\"===t.order){const t=r*c,n=r*h,i=o*c,s=o*h;e[0]=a*c,e[4]=-a*h,e[8]=l,e[1]=n+i*l,e[5]=t-s*l,e[9]=-o*a,e[2]=s-t*l,e[6]=i+n*l,e[10]=r*a}else if(\\\\\\\"YXZ\\\\\\\"===t.order){const t=a*c,n=a*h,i=l*c,s=l*h;e[0]=t+s*o,e[4]=i*o-n,e[8]=r*l,e[1]=r*h,e[5]=r*c,e[9]=-o,e[2]=n*o-i,e[6]=s+t*o,e[10]=r*a}else if(\\\\\\\"ZXY\\\\\\\"===t.order){const t=a*c,n=a*h,i=l*c,s=l*h;e[0]=t-s*o,e[4]=-r*h,e[8]=i+n*o,e[1]=n+i*o,e[5]=r*c,e[9]=s-t*o,e[2]=-r*l,e[6]=o,e[10]=r*a}else if(\\\\\\\"ZYX\\\\\\\"===t.order){const t=r*c,n=r*h,i=o*c,s=o*h;e[0]=a*c,e[4]=i*l-n,e[8]=t*l+s,e[1]=a*h,e[5]=s*l+t,e[9]=n*l-i,e[2]=-l,e[6]=o*a,e[10]=r*a}else if(\\\\\\\"YZX\\\\\\\"===t.order){const t=r*a,n=r*l,i=o*a,s=o*l;e[0]=a*c,e[4]=s-t*h,e[8]=i*h+n,e[1]=h,e[5]=r*c,e[9]=-o*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-s*h}else if(\\\\\\\"XZY\\\\\\\"===t.order){const t=r*a,n=r*l,i=o*a,s=o*l;e[0]=a*c,e[4]=-h,e[8]=l*c,e[1]=t*h+s,e[5]=r*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=o*c,e[10]=s*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(aw,t,lw)}lookAt(t,e,n){const i=this.elements;return uw.subVectors(t,e),0===uw.lengthSq()&&(uw.z=1),uw.normalize(),cw.crossVectors(n,uw),0===cw.lengthSq()&&(1===Math.abs(n.z)?uw.x+=1e-4:uw.z+=1e-4,uw.normalize(),cw.crossVectors(n,uw)),cw.normalize(),hw.crossVectors(uw,cw),i[0]=cw.x,i[4]=hw.x,i[8]=uw.x,i[1]=cw.y,i[5]=hw.y,i[9]=uw.y,i[2]=cw.z,i[6]=hw.z,i[10]=uw.z,this}multiply(t,e){return void 0!==e?(console.warn(\\\\\\\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\\\\\\\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,s=this.elements,r=n[0],o=n[4],a=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],_=n[6],m=n[10],f=n[14],g=n[3],v=n[7],y=n[11],x=n[15],b=i[0],w=i[4],T=i[8],A=i[12],M=i[1],E=i[5],S=i[9],C=i[13],N=i[2],L=i[6],O=i[10],P=i[14],R=i[3],I=i[7],F=i[11],D=i[15];return s[0]=r*b+o*M+a*N+l*R,s[4]=r*w+o*E+a*L+l*I,s[8]=r*T+o*S+a*O+l*F,s[12]=r*A+o*C+a*P+l*D,s[1]=c*b+h*M+u*N+d*R,s[5]=c*w+h*E+u*L+d*I,s[9]=c*T+h*S+u*O+d*F,s[13]=c*A+h*C+u*P+d*D,s[2]=p*b+_*M+m*N+f*R,s[6]=p*w+_*E+m*L+f*I,s[10]=p*T+_*S+m*O+f*F,s[14]=p*A+_*C+m*P+f*D,s[3]=g*b+v*M+y*N+x*R,s[7]=g*w+v*E+y*L+x*I,s[11]=g*T+v*S+y*O+x*F,s[15]=g*A+v*C+y*P+x*D,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],r=t[1],o=t[5],a=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+s*a*h-i*l*h-s*o*u+n*l*u+i*o*d-n*a*d)+t[7]*(+e*a*d-e*l*u+s*r*u-i*r*d+i*l*c-s*a*c)+t[11]*(+e*l*h-e*o*d-s*r*h+n*r*d+s*o*c-n*l*c)+t[15]*(-i*o*c-e*a*h+e*o*u+i*r*h-n*r*u+n*a*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],r=t[4],o=t[5],a=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],_=t[13],m=t[14],f=t[15],g=h*m*l-_*u*l+_*a*d-o*m*d-h*a*f+o*u*f,v=p*u*l-c*m*l-p*a*d+r*m*d+c*a*f-r*u*f,y=c*_*l-p*h*l+p*o*d-r*_*d-c*o*f+r*h*f,x=p*h*a-c*_*a-p*o*u+r*_*u+c*o*m-r*h*m,b=e*g+n*v+i*y+s*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/b;return t[0]=g*w,t[1]=(_*u*s-h*m*s-_*i*d+n*m*d+h*i*f-n*u*f)*w,t[2]=(o*m*s-_*a*s+_*i*l-n*m*l-o*i*f+n*a*f)*w,t[3]=(h*a*s-o*u*s-h*i*l+n*u*l+o*i*d-n*a*d)*w,t[4]=v*w,t[5]=(c*m*s-p*u*s+p*i*d-e*m*d-c*i*f+e*u*f)*w,t[6]=(p*a*s-r*m*s-p*i*l+e*m*l+r*i*f-e*a*f)*w,t[7]=(r*u*s-c*a*s+c*i*l-e*u*l-r*i*d+e*a*d)*w,t[8]=y*w,t[9]=(p*h*s-c*_*s-p*n*d+e*_*d+c*n*f-e*h*f)*w,t[10]=(r*_*s-p*o*s+p*n*l-e*_*l-r*n*f+e*o*f)*w,t[11]=(c*o*s-r*h*s-c*n*l+e*h*l+r*n*d-e*o*d)*w,t[12]=x*w,t[13]=(c*_*i-p*h*i+p*n*u-e*_*u-c*n*m+e*h*m)*w,t[14]=(p*o*i-r*_*i-p*n*a+e*_*a+r*n*m-e*o*m)*w,t[15]=(r*h*i-c*o*i+c*n*a-e*h*a-r*n*u+e*o*u)*w,this}scale(t){const e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),s=1-n,r=t.x,o=t.y,a=t.z,l=s*r,c=s*o;return this.set(l*r+n,l*o-i*a,l*a+i*o,0,l*o+i*a,c*o+n,c*a-i*r,0,l*a-i*o,c*a+i*r,s*a*a+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,s,r){return this.set(1,n,s,0,t,1,r,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,s=e._x,r=e._y,o=e._z,a=e._w,l=s+s,c=r+r,h=o+o,u=s*l,d=s*c,p=s*h,_=r*c,m=r*h,f=o*h,g=a*l,v=a*c,y=a*h,x=n.x,b=n.y,w=n.z;return i[0]=(1-(_+f))*x,i[1]=(d+y)*x,i[2]=(p-v)*x,i[3]=0,i[4]=(d-y)*b,i[5]=(1-(u+f))*b,i[6]=(m+g)*b,i[7]=0,i[8]=(p+v)*w,i[9]=(m-g)*w,i[10]=(1-(u+_))*w,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let s=rw.set(i[0],i[1],i[2]).length();const r=rw.set(i[4],i[5],i[6]).length(),o=rw.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],ow.copy(this);const a=1/s,l=1/r,c=1/o;return ow.elements[0]*=a,ow.elements[1]*=a,ow.elements[2]*=a,ow.elements[4]*=l,ow.elements[5]*=l,ow.elements[6]*=l,ow.elements[8]*=c,ow.elements[9]*=c,ow.elements[10]*=c,e.setFromRotationMatrix(ow),n.x=s,n.y=r,n.z=o,this}makePerspective(t,e,n,i,s,r){void 0===r&&console.warn(\\\\\\\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\\\\\\\");const o=this.elements,a=2*s/(e-t),l=2*s/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(r+s)/(r-s),d=-2*r*s/(r-s);return o[0]=a,o[4]=0,o[8]=c,o[12]=0,o[1]=0,o[5]=l,o[9]=h,o[13]=0,o[2]=0,o[6]=0,o[10]=u,o[14]=d,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,s,r){const o=this.elements,a=1/(e-t),l=1/(n-i),c=1/(r-s),h=(e+t)*a,u=(n+i)*l,d=(r+s)*c;return o[0]=2*a,o[4]=0,o[8]=0,o[12]=-h,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-u,o[2]=0,o[6]=0,o[10]=-2*c,o[14]=-d,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}sw.prototype.isMatrix4=!0;const rw=new Sb,ow=new sw,aw=new Sb(0,0,0),lw=new Sb(1,1,1),cw=new Sb,hw=new Sb,uw=new Sb,dw=new sw,pw=new Eb;class _w{constructor(t=0,e=0,n=0,i=_w.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,s=i[0],r=i[4],o=i[8],a=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case\\\\\\\"XYZ\\\\\\\":this._y=Math.asin(ab(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-r,s)):(this._x=Math.atan2(u,l),this._z=0);break;case\\\\\\\"YXZ\\\\\\\":this._x=Math.asin(-ab(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(o,d),this._z=Math.atan2(a,l)):(this._y=Math.atan2(-h,s),this._z=0);break;case\\\\\\\"ZXY\\\\\\\":this._x=Math.asin(ab(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-r,l)):(this._y=0,this._z=Math.atan2(a,s));break;case\\\\\\\"ZYX\\\\\\\":this._y=Math.asin(-ab(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(a,s)):(this._x=0,this._z=Math.atan2(-r,l));break;case\\\\\\\"YZX\\\\\\\":this._z=Math.asin(ab(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(o,d));break;case\\\\\\\"XZY\\\\\\\":this._z=Math.asin(-ab(r,-1,1)),Math.abs(r)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn(\\\\\\\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \\\\\\\"+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return dw.makeRotationFromQuaternion(t),this.setFromRotationMatrix(dw,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return pw.setFromEuler(this),this.setFromQuaternion(pw,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new Sb(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}_w.prototype.isEuler=!0,_w.DefaultOrder=\\\\\\\"XYZ\\\\\\\",_w.RotationOrders=[\\\\\\\"XYZ\\\\\\\",\\\\\\\"YZX\\\\\\\",\\\\\\\"ZXY\\\\\\\",\\\\\\\"XZY\\\\\\\",\\\\\\\"YXZ\\\\\\\",\\\\\\\"ZYX\\\\\\\"];class mw{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let fw=0;const gw=new Sb,vw=new Eb,yw=new sw,xw=new Sb,bw=new Sb,ww=new Sb,Tw=new Eb,Aw=new Sb(1,0,0),Mw=new Sb(0,1,0),Ew=new Sb(0,0,1),Sw={type:\\\\\\\"added\\\\\\\"},Cw={type:\\\\\\\"removed\\\\\\\"};class Nw extends tb{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:fw++}),this.uuid=ob(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Object3D\\\\\\\",this.parent=null,this.children=[],this.up=Nw.DefaultUp.clone();const t=new Sb,e=new _w,n=new Eb,i=new Sb(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new sw},normalMatrix:{value:new mb}}),this.matrix=new sw,this.matrixWorld=new sw,this.matrixAutoUpdate=Nw.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new mw,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return vw.setFromAxisAngle(t,e),this.quaternion.multiply(vw),this}rotateOnWorldAxis(t,e){return vw.setFromAxisAngle(t,e),this.quaternion.premultiply(vw),this}rotateX(t){return this.rotateOnAxis(Aw,t)}rotateY(t){return this.rotateOnAxis(Mw,t)}rotateZ(t){return this.rotateOnAxis(Ew,t)}translateOnAxis(t,e){return gw.copy(t).applyQuaternion(this.quaternion),this.position.add(gw.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(Aw,t)}translateY(t){return this.translateOnAxis(Mw,t)}translateZ(t){return this.translateOnAxis(Ew,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(yw.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?xw.copy(t):xw.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),bw.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?yw.lookAt(bw,xw,this.up):yw.lookAt(xw,bw,this.up),this.quaternion.setFromRotationMatrix(yw),i&&(yw.extractRotation(i.matrixWorld),vw.setFromRotationMatrix(yw),this.quaternion.premultiply(vw.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\\\\\\\"THREE.Object3D.add: object can't be added as a child of itself.\\\\\\\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(Sw)):console.error(\\\\\\\"THREE.Object3D.add: object not an instance of THREE.Object3D.\\\\\\\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(Cw)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(Cw)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),yw.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),yw.multiply(t.parent.matrixWorld)),t.applyMatrix4(yw),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\\\\\\\"id\\\\\\\",t)}getObjectByName(t){return this.getObjectByProperty(\\\\\\\"name\\\\\\\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(bw,t,ww),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(bw,Tw,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:\\\\\\\"Object\\\\\\\",generator:\\\\\\\"Object3D.toJSON\\\\\\\"});const i={};function s(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),\\\\\\\"{}\\\\\\\"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type=\\\\\\\"InstancedMesh\\\\\\\",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];s(t.shapes,i)}else s(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(s(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(s(t.materials,this.material[n]));i.material=e}else i.material=s(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(s(t.animations,n))}}if(e){const e=r(t.geometries),i=r(t.materials),s=r(t.textures),o=r(t.images),a=r(t.shapes),l=r(t.skeletons),c=r(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),s.length>0&&(n.textures=s),o.length>0&&(n.images=o),a.length>0&&(n.shapes=a),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function r(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}Nw.DefaultUp=new Sb(0,1,0),Nw.DefaultMatrixAutoUpdate=!0,Nw.prototype.isObject3D=!0;const Lw=new Sb,Ow=new Sb,Pw=new Sb,Rw=new Sb,Iw=new Sb,Fw=new Sb,Dw=new Sb,Bw=new Sb,zw=new Sb,kw=new Sb;class Uw{constructor(t=new Sb,e=new Sb,n=new Sb){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),Lw.subVectors(t,e),i.cross(Lw);const s=i.lengthSq();return s>0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){Lw.subVectors(i,e),Ow.subVectors(n,e),Pw.subVectors(t,e);const r=Lw.dot(Lw),o=Lw.dot(Ow),a=Lw.dot(Pw),l=Ow.dot(Ow),c=Ow.dot(Pw),h=r*l-o*o;if(0===h)return s.set(-2,-1,-1);const u=1/h,d=(l*a-o*c)*u,p=(r*c-o*a)*u;return s.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Rw),Rw.x>=0&&Rw.y>=0&&Rw.x+Rw.y<=1}static getUV(t,e,n,i,s,r,o,a){return this.getBarycoord(t,e,n,i,Rw),a.set(0,0),a.addScaledVector(s,Rw.x),a.addScaledVector(r,Rw.y),a.addScaledVector(o,Rw.z),a}static isFrontFacing(t,e,n,i){return Lw.subVectors(n,e),Ow.subVectors(t,e),Lw.cross(Ow).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Lw.subVectors(this.c,this.b),Ow.subVectors(this.a,this.b),.5*Lw.cross(Ow).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Uw.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Uw.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return Uw.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return Uw.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Uw.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,s=this.c;let r,o;Iw.subVectors(i,n),Fw.subVectors(s,n),Bw.subVectors(t,n);const a=Iw.dot(Bw),l=Fw.dot(Bw);if(a<=0&&l<=0)return e.copy(n);zw.subVectors(t,i);const c=Iw.dot(zw),h=Fw.dot(zw);if(c>=0&&h<=c)return e.copy(i);const u=a*h-c*l;if(u<=0&&a>=0&&c<=0)return r=a/(a-c),e.copy(n).addScaledVector(Iw,r);kw.subVectors(t,s);const d=Iw.dot(kw),p=Fw.dot(kw);if(p>=0&&d<=p)return e.copy(s);const _=d*l-a*p;if(_<=0&&l>=0&&p<=0)return o=l/(l-p),e.copy(n).addScaledVector(Fw,o);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return Dw.subVectors(s,i),o=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Dw,o);const f=1/(m+_+u);return r=_*f,o=u*f,e.copy(n).addScaledVector(Iw,r).addScaledVector(Fw,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Gw=0;class Vw extends tb{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:Gw++}),this.uuid=ob(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Material\\\\\\\",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.format=Dx,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=px,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Jx,this.stencilZFail=Jx,this.stencilZPass=Jx,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(\\\\\\\"THREE.Material: '\\\\\\\"+e+\\\\\\\"' parameter is undefined.\\\\\\\");continue}if(\\\\\\\"shading\\\\\\\"===e){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .shading has been removed. Use the boolean .flatShading instead.\\\\\\\"),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": '\\\\\\\"+e+\\\\\\\"' is not a property of this material.\\\\\\\")}}toJSON(t){const e=void 0===t||\\\\\\\"string\\\\\\\"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:\\\\\\\"Material\\\\\\\",generator:\\\\\\\"Material.toJSON\\\\\\\"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenTint&&this.sheenTint.isColor&&(n.sheenTint=this.sheenTint.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularTint&&this.specularTint.isColor&&(n.specularTint=this.specularTint.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularTintMap&&this.specularTintMap.isTexture&&(n.specularTintMap=this.specularTintMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationTint&&(n.attenuationTint=this.attenuationTint.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.format!==Dx&&(n.format=this.format),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\\\\\\\"round\\\\\\\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\\\\\\\"round\\\\\\\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),\\\\\\\"{}\\\\\\\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),s=i(t.images);e.length>0&&(n.textures=e),s.length>0&&(n.images=s)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.format=t.format,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}set needsUpdate(t){!0===t&&this.version++}}Vw.prototype.isMaterial=!0;const Hw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},jw={h:0,s:0,l:0},Ww={h:0,s:0,l:0};function qw(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Xw(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Yw(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class $w{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):\\\\\\\"number\\\\\\\"==typeof t?this.setHex(t):\\\\\\\"string\\\\\\\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=lb(t,1),e=ab(e,0,1),n=ab(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,s=2*n-i;this.r=qw(s,i,t+1/3),this.g=qw(s,i,t),this.b=qw(s,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\\\\\\\"THREE.Color: Alpha component of \\\\\\\"+t+\\\\\\\" will be ignored.\\\\\\\")}let n;if(n=/^((?:rgb|hsl)a?)\\\\(([^\\\\)]*)\\\\)/.exec(t)){let t;const i=n[1],s=n[2];switch(i){case\\\\\\\"rgb\\\\\\\":case\\\\\\\"rgba\\\\\\\":if(t=/^\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(s))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(s))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\\\\\\\"hsl\\\\\\\":case\\\\\\\"hsla\\\\\\\":if(t=/^\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(s)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,s=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,s)}}}else if(n=/^\\\\#([A-Fa-f\\\\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Hw[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\\\\\\\"THREE.Color: Unknown color \\\\\\\"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Xw(t.r),this.g=Xw(t.g),this.b=Xw(t.b),this}copyLinearToSRGB(t){return this.r=Yw(t.r),this.g=Yw(t.g),this.b=Yw(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\\\\\\\"000000\\\\\\\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,s=Math.max(e,n,i),r=Math.min(e,n,i);let o,a;const l=(r+s)/2;if(r===s)o=0,a=0;else{const t=s-r;switch(a=l<=.5?t/(s+r):t/(2-s-r),s){case e:o=(n-i)/t+(n<i?6:0);break;case n:o=(i-e)/t+2;break;case i:o=(e-n)/t+4}o/=6}return t.h=o,t.s=a,t.l=l,t}getStyle(){return\\\\\\\"rgb(\\\\\\\"+(255*this.r|0)+\\\\\\\",\\\\\\\"+(255*this.g|0)+\\\\\\\",\\\\\\\"+(255*this.b|0)+\\\\\\\")\\\\\\\"}offsetHSL(t,e,n){return this.getHSL(jw),jw.h+=t,jw.s+=e,jw.l+=n,this.setHSL(jw.h,jw.s,jw.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(jw),t.getHSL(Ww);const n=cb(jw.h,Ww.h,e),i=cb(jw.s,Ww.s,e),s=cb(jw.l,Ww.l,e);return this.setHSL(n,i,s),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}$w.NAMES=Hw,$w.prototype.isColor=!0,$w.prototype.r=1,$w.prototype.g=1,$w.prototype.b=1;class Jw extends Vw{constructor(t){super(),this.type=\\\\\\\"MeshBasicMaterial\\\\\\\",this.color=new $w(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}Jw.prototype.isMeshBasicMaterial=!0;const Zw=new Sb,Kw=new _b;class Qw{constructor(t,e,n){if(Array.isArray(t))throw new TypeError(\\\\\\\"THREE.BufferAttribute: array should be a Typed Array.\\\\\\\");this.name=\\\\\\\"\\\\\\\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=Zx,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i<s;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let i=0,s=t.length;i<s;i++){let s=t[i];void 0===s&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyColorsArray(): color is undefined\\\\\\\",i),s=new $w),e[n++]=s.r,e[n++]=s.g,e[n++]=s.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let i=0,s=t.length;i<s;i++){let s=t[i];void 0===s&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\\\\\\\",i),s=new _b),e[n++]=s.x,e[n++]=s.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let i=0,s=t.length;i<s;i++){let s=t[i];void 0===s&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\\\\\\\",i),s=new Sb),e[n++]=s.x,e[n++]=s.y,e[n++]=s.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let i=0,s=t.length;i<s;i++){let s=t[i];void 0===s&&(console.warn(\\\\\\\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\\\\\\\",i),s=new Tb),e[n++]=s.x,e[n++]=s.y,e[n++]=s.z,e[n++]=s.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)Kw.fromBufferAttribute(this,e),Kw.applyMatrix3(t),this.setXY(e,Kw.x,Kw.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)Zw.fromBufferAttribute(this,e),Zw.applyMatrix3(t),this.setXYZ(e,Zw.x,Zw.y,Zw.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)Zw.x=this.getX(e),Zw.y=this.getY(e),Zw.z=this.getZ(e),Zw.applyMatrix4(t),this.setXYZ(e,Zw.x,Zw.y,Zw.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)Zw.x=this.getX(e),Zw.y=this.getY(e),Zw.z=this.getZ(e),Zw.applyNormalMatrix(t),this.setXYZ(e,Zw.x,Zw.y,Zw.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)Zw.x=this.getX(e),Zw.y=this.getY(e),Zw.z=this.getZ(e),Zw.transformDirection(t),this.setXYZ(e,Zw.x,Zw.y,Zw.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,s){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=s,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),this.usage!==Zx&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}Qw.prototype.isBufferAttribute=!0;class tT extends Qw{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class eT extends Qw{constructor(t,e,n){super(new Uint32Array(t),e,n)}}(class extends Qw{constructor(t,e,n){super(new Uint16Array(t),e,n)}}).prototype.isFloat16BufferAttribute=!0;class nT extends Qw{constructor(t,e,n){super(new Float32Array(t),e,n)}}let iT=0;const sT=new sw,rT=new Nw,oT=new Sb,aT=new Lb,lT=new Lb,cT=new Sb;class hT extends tb{constructor(){super(),Object.defineProperty(this,\\\\\\\"id\\\\\\\",{value:iT++}),this.uuid=ob(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"BufferGeometry\\\\\\\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(fb(t)>65535?eT:tT)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new mb).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return sT.makeRotationFromQuaternion(t),this.applyMatrix4(sT),this}rotateX(t){return sT.makeRotationX(t),this.applyMatrix4(sT),this}rotateY(t){return sT.makeRotationY(t),this.applyMatrix4(sT),this}rotateZ(t){return sT.makeRotationZ(t),this.applyMatrix4(sT),this}translate(t,e,n){return sT.makeTranslation(t,e,n),this.applyMatrix4(sT),this}scale(t,e,n){return sT.makeScale(t,e,n),this.applyMatrix4(sT),this}lookAt(t){return rT.lookAt(t),rT.updateMatrix(),this.applyMatrix4(rT.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(oT).negate(),this.translate(oT.x,oT.y,oT.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute(\\\\\\\"position\\\\\\\",new nT(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Lb);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".',this),void this.boundingBox.set(new Sb(-1/0,-1/0,-1/0),new Sb(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];aT.setFromBufferAttribute(n),this.morphTargetsRelative?(cT.addVectors(this.boundingBox.min,aT.min),this.boundingBox.expandByPoint(cT),cT.addVectors(this.boundingBox.max,aT.max),this.boundingBox.expandByPoint(cT)):(this.boundingBox.expandByPoint(aT.min),this.boundingBox.expandByPoint(aT.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new $b);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".',this),void this.boundingSphere.set(new Sb,1/0);if(t){const n=this.boundingSphere.center;if(aT.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];lT.setFromBufferAttribute(n),this.morphTargetsRelative?(cT.addVectors(aT.min,lT.min),aT.expandByPoint(cT),cT.addVectors(aT.max,lT.max),aT.expandByPoint(cT)):(aT.expandByPoint(lT.min),aT.expandByPoint(lT.max))}aT.getCenter(n);let i=0;for(let e=0,s=t.count;e<s;e++)cT.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(cT));if(e)for(let s=0,r=e.length;s<r;s++){const r=e[s],o=this.morphTargetsRelative;for(let e=0,s=r.count;e<s;e++)cT.fromBufferAttribute(r,e),o&&(oT.fromBufferAttribute(t,e),cT.add(oT)),i=Math.max(i,n.distanceToSquared(cT))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\\\\\\\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\\\\\\\");const n=t.array,i=e.position.array,s=e.normal.array,r=e.uv.array,o=i.length/3;void 0===e.tangent&&this.setAttribute(\\\\\\\"tangent\\\\\\\",new Qw(new Float32Array(4*o),4));const a=e.tangent.array,l=[],c=[];for(let t=0;t<o;t++)l[t]=new Sb,c[t]=new Sb;const h=new Sb,u=new Sb,d=new Sb,p=new _b,_=new _b,m=new _b,f=new Sb,g=new Sb;function v(t,e,n){h.fromArray(i,3*t),u.fromArray(i,3*e),d.fromArray(i,3*n),p.fromArray(r,2*t),_.fromArray(r,2*e),m.fromArray(r,2*n),u.sub(h),d.sub(h),_.sub(p),m.sub(p);const s=1/(_.x*m.y-m.x*_.y);isFinite(s)&&(f.copy(u).multiplyScalar(m.y).addScaledVector(d,-_.y).multiplyScalar(s),g.copy(d).multiplyScalar(_.x).addScaledVector(u,-m.x).multiplyScalar(s),l[t].add(f),l[e].add(f),l[n].add(f),c[t].add(g),c[e].add(g),c[n].add(g))}let y=this.groups;0===y.length&&(y=[{start:0,count:n.length}]);for(let t=0,e=y.length;t<e;++t){const e=y[t],i=e.start;for(let t=i,s=i+e.count;t<s;t+=3)v(n[t+0],n[t+1],n[t+2])}const x=new Sb,b=new Sb,w=new Sb,T=new Sb;function A(t){w.fromArray(s,3*t),T.copy(w);const e=l[t];x.copy(e),x.sub(w.multiplyScalar(w.dot(e))).normalize(),b.crossVectors(T,e);const n=b.dot(c[t])<0?-1:1;a[4*t]=x.x,a[4*t+1]=x.y,a[4*t+2]=x.z,a[4*t+3]=n}for(let t=0,e=y.length;t<e;++t){const e=y[t],i=e.start;for(let t=i,s=i+e.count;t<s;t+=3)A(n[t+0]),A(n[t+1]),A(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\\\\\\\"position\\\\\\\");if(void 0!==e){let n=this.getAttribute(\\\\\\\"normal\\\\\\\");if(void 0===n)n=new Qw(new Float32Array(3*e.count),3),this.setAttribute(\\\\\\\"normal\\\\\\\",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Sb,s=new Sb,r=new Sb,o=new Sb,a=new Sb,l=new Sb,c=new Sb,h=new Sb;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),_=t.getX(u+2);i.fromBufferAttribute(e,d),s.fromBufferAttribute(e,p),r.fromBufferAttribute(e,_),c.subVectors(r,s),h.subVectors(i,s),c.cross(h),o.fromBufferAttribute(n,d),a.fromBufferAttribute(n,p),l.fromBufferAttribute(n,_),o.add(c),a.add(c),l.add(c),n.setXYZ(d,o.x,o.y,o.z),n.setXYZ(p,a.x,a.y,a.z),n.setXYZ(_,l.x,l.y,l.z)}else for(let t=0,o=e.count;t<o;t+=3)i.fromBufferAttribute(e,t+0),s.fromBufferAttribute(e,t+1),r.fromBufferAttribute(e,t+2),c.subVectors(r,s),h.subVectors(i,s),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\\\\\\\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\\\\\\\",t);void 0===e&&(e=0,console.warn(\\\\\\\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\\\\\\\"));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const s=n[i].array,r=t.attributes[i],o=r.array,a=r.itemSize*e,l=Math.min(o.length,s.length-a);for(let t=0,e=a;t<l;t++,e++)s[e]=o[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)cT.fromBufferAttribute(t,e),cT.normalize(),t.setXYZ(e,cT.x,cT.y,cT.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,s=t.normalized,r=new n.constructor(e.length*i);let o=0,a=0;for(let s=0,l=e.length;s<l;s++){o=t.isInterleavedBufferAttribute?e[s]*t.data.stride+t.offset:e[s]*i;for(let t=0;t<i;t++)r[a++]=n[o++]}return new Qw(r,i,s)}if(null===this.index)return console.warn(\\\\\\\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\\\\\\\"),this;const e=new hT,n=this.index.array,i=this.attributes;for(const s in i){const r=t(i[s],n);e.setAttribute(s,r)}const s=this.morphAttributes;for(const i in s){const r=[],o=s[i];for(let e=0,i=o.length;e<i;e++){const i=t(o[e],n);r.push(i)}e.morphAttributes[i]=r}e.morphTargetsRelative=this.morphTargetsRelative;const r=this.groups;for(let t=0,n=r.length;t<n;t++){const n=r[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"BufferGeometry\\\\\\\",generator:\\\\\\\"BufferGeometry.toJSON\\\\\\\"}};if(t.uuid=this.uuid,t.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let s=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],r=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];r.push(i.toJSON(t.data))}r.length>0&&(i[e]=r,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const r=this.groups;r.length>0&&(t.data.groups=JSON.parse(JSON.stringify(r)));const o=this.boundingSphere;return null!==o&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const s=t.morphAttributes;for(const t in s){const n=[],i=s[t];for(let t=0,s=i.length;t<s;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const r=t.groups;for(let t=0,e=r.length;t<e;t++){const e=r[t];this.addGroup(e.start,e.count,e.materialIndex)}const o=t.boundingBox;null!==o&&(this.boundingBox=o.clone());const a=t.boundingSphere;return null!==a&&(this.boundingSphere=a.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,void 0!==t.parameters&&(this.parameters=Object.assign({},t.parameters)),this}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}hT.prototype.isBufferGeometry=!0;const uT=new sw,dT=new iw,pT=new $b,_T=new Sb,mT=new Sb,fT=new Sb,gT=new Sb,vT=new Sb,yT=new Sb,xT=new Sb,bT=new Sb,wT=new Sb,TT=new _b,AT=new _b,MT=new _b,ET=new Sb,ST=new Sb;class CT extends Nw{constructor(t=new hT,e=new Jw){super(),this.type=\\\\\\\"Mesh\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}raycast(t,e){const n=this.geometry,i=this.material,s=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),pT.copy(n.boundingSphere),pT.applyMatrix4(s),!1===t.ray.intersectsSphere(pT))return;if(uT.copy(s).invert(),dT.copy(t.ray).applyMatrix4(uT),null!==n.boundingBox&&!1===dT.intersectsBox(n.boundingBox))return;let r;if(n.isBufferGeometry){const s=n.index,o=n.attributes.position,a=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==s)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const p=u[n],_=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(s.count,Math.min(p.start+p.count,d.start+d.count));n<i;n+=3){const i=s.getX(n),u=s.getX(n+1),d=s.getX(n+2);r=NT(this,_,t,dT,o,a,l,c,h,i,u,d),r&&(r.faceIndex=Math.floor(n/3),r.face.materialIndex=p.materialIndex,e.push(r))}}else{for(let n=Math.max(0,d.start),u=Math.min(s.count,d.start+d.count);n<u;n+=3){const u=s.getX(n),d=s.getX(n+1),p=s.getX(n+2);r=NT(this,i,t,dT,o,a,l,c,h,u,d,p),r&&(r.faceIndex=Math.floor(n/3),e.push(r))}}else if(void 0!==o)if(Array.isArray(i))for(let n=0,s=u.length;n<s;n++){const s=u[n],p=i[s.materialIndex];for(let n=Math.max(s.start,d.start),i=Math.min(o.count,Math.min(s.start+s.count,d.start+d.count));n<i;n+=3){r=NT(this,p,t,dT,o,a,l,c,h,n,n+1,n+2),r&&(r.faceIndex=Math.floor(n/3),r.face.materialIndex=s.materialIndex,e.push(r))}}else{for(let n=Math.max(0,d.start),s=Math.min(o.count,d.start+d.count);n<s;n+=3){r=NT(this,i,t,dT,o,a,l,c,h,n,n+1,n+2),r&&(r.faceIndex=Math.floor(n/3),e.push(r))}}}else n.isGeometry&&console.error(\\\\\\\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}function NT(t,e,n,i,s,r,o,a,l,c,h,u){_T.fromBufferAttribute(s,c),mT.fromBufferAttribute(s,h),fT.fromBufferAttribute(s,u);const d=t.morphTargetInfluences;if(r&&d){xT.set(0,0,0),bT.set(0,0,0),wT.set(0,0,0);for(let t=0,e=r.length;t<e;t++){const e=d[t],n=r[t];0!==e&&(gT.fromBufferAttribute(n,c),vT.fromBufferAttribute(n,h),yT.fromBufferAttribute(n,u),o?(xT.addScaledVector(gT,e),bT.addScaledVector(vT,e),wT.addScaledVector(yT,e)):(xT.addScaledVector(gT.sub(_T),e),bT.addScaledVector(vT.sub(mT),e),wT.addScaledVector(yT.sub(fT),e)))}_T.add(xT),mT.add(bT),fT.add(wT)}t.isSkinnedMesh&&(t.boneTransform(c,_T),t.boneTransform(h,mT),t.boneTransform(u,fT));const p=function(t,e,n,i,s,r,o,a){let l;if(l=1===e.side?i.intersectTriangle(o,r,s,!0,a):i.intersectTriangle(s,r,o,2!==e.side,a),null===l)return null;ST.copy(a),ST.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(ST);return c<n.near||c>n.far?null:{distance:c,point:ST.clone(),object:t}}(t,e,n,i,_T,mT,fT,ET);if(p){a&&(TT.fromBufferAttribute(a,c),AT.fromBufferAttribute(a,h),MT.fromBufferAttribute(a,u),p.uv=Uw.getUV(ET,_T,mT,fT,TT,AT,MT,new _b)),l&&(TT.fromBufferAttribute(l,c),AT.fromBufferAttribute(l,h),MT.fromBufferAttribute(l,u),p.uv2=Uw.getUV(ET,_T,mT,fT,TT,AT,MT,new _b));const t={a:c,b:h,c:u,normal:new Sb,materialIndex:0};Uw.getNormal(_T,mT,fT,t.normal),p.face=t}return p}CT.prototype.isMesh=!0;class LT extends hT{constructor(t=1,e=1,n=1,i=1,s=1,r=1){super(),this.type=\\\\\\\"BoxGeometry\\\\\\\",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:r};const o=this;i=Math.floor(i),s=Math.floor(s),r=Math.floor(r);const a=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,s,r,p,_,m,f,g){const v=r/m,y=p/f,x=r/2,b=p/2,w=_/2,T=m+1,A=f+1;let M=0,E=0;const S=new Sb;for(let r=0;r<A;r++){const o=r*y-b;for(let a=0;a<T;a++){const u=a*v-x;S[t]=u*i,S[e]=o*s,S[n]=w,l.push(S.x,S.y,S.z),S[t]=0,S[e]=0,S[n]=_>0?1:-1,c.push(S.x,S.y,S.z),h.push(a/m),h.push(1-r/f),M+=1}}for(let t=0;t<f;t++)for(let e=0;e<m;e++){const n=u+e+T*t,i=u+e+T*(t+1),s=u+(e+1)+T*(t+1),r=u+(e+1)+T*t;a.push(n,i,r),a.push(i,s,r),E+=6}o.addGroup(d,E,g),d+=E,u+=M}p(\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"x\\\\\\\",-1,-1,n,e,t,r,s,0),p(\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"x\\\\\\\",1,-1,n,e,-t,r,s,1),p(\\\\\\\"x\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",1,1,t,n,e,i,r,2),p(\\\\\\\"x\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"y\\\\\\\",1,-1,t,n,-e,i,r,3),p(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",1,-1,t,e,n,i,s,4),p(\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",-1,-1,t,e,-n,i,s,5),this.setIndex(a),this.setAttribute(\\\\\\\"position\\\\\\\",new nT(l,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new nT(c,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new nT(h,2))}static fromJSON(t){return new LT(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function OT(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const s=t[n][i];s&&(s.isColor||s.isMatrix3||s.isMatrix4||s.isVector2||s.isVector3||s.isVector4||s.isTexture||s.isQuaternion)?e[n][i]=s.clone():Array.isArray(s)?e[n][i]=s.slice():e[n][i]=s}}return e}function PT(t){const e={};for(let n=0;n<t.length;n++){const i=OT(t[n]);for(const t in i)e[t]=i[t]}return e}const RT={clone:OT,merge:PT};class IT extends Vw{constructor(t){super(),this.type=\\\\\\\"ShaderMaterial\\\\\\\",this.defines={},this.uniforms={},this.vertexShader=\\\\\\\"void main() {\\\\n\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n}\\\\\\\",this.fragmentShader=\\\\\\\"void main() {\\\\n\\\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\\\n}\\\\\\\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error(\\\\\\\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\\\\\\\"),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=OT(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n].value;i&&i.isTexture?e.uniforms[n]={type:\\\\\\\"t\\\\\\\",value:i.toJSON(t).uuid}:i&&i.isColor?e.uniforms[n]={type:\\\\\\\"c\\\\\\\",value:i.getHex()}:i&&i.isVector2?e.uniforms[n]={type:\\\\\\\"v2\\\\\\\",value:i.toArray()}:i&&i.isVector3?e.uniforms[n]={type:\\\\\\\"v3\\\\\\\",value:i.toArray()}:i&&i.isVector4?e.uniforms[n]={type:\\\\\\\"v4\\\\\\\",value:i.toArray()}:i&&i.isMatrix3?e.uniforms[n]={type:\\\\\\\"m3\\\\\\\",value:i.toArray()}:i&&i.isMatrix4?e.uniforms[n]={type:\\\\\\\"m4\\\\\\\",value:i.toArray()}:e.uniforms[n]={value:i}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}IT.prototype.isShaderMaterial=!0;class FT extends Nw{constructor(){super(),this.type=\\\\\\\"Camera\\\\\\\",this.matrixWorldInverse=new sw,this.projectionMatrix=new sw,this.projectionMatrixInverse=new sw}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}FT.prototype.isCamera=!0;class DT extends FT{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type=\\\\\\\"PerspectiveCamera\\\\\\\",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*ib*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*nb*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*ib*Math.atan(Math.tan(.5*nb*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,r){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=r,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*nb*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i;const r=this.view;if(null!==this.view&&this.view.enabled){const t=r.fullWidth,o=r.fullHeight;s+=r.offsetX*i/t,e-=r.offsetY*n/o,i*=r.width/t,n*=r.height/o}const o=this.filmOffset;0!==o&&(s+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}DT.prototype.isPerspectiveCamera=!0;const BT=90;class zT extends Nw{constructor(t,e,n){if(super(),this.type=\\\\\\\"CubeCamera\\\\\\\",!0!==n.isWebGLCubeRenderTarget)return void console.error(\\\\\\\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\\\\\\\");this.renderTarget=n;const i=new DT(BT,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new Sb(1,0,0)),this.add(i);const s=new DT(BT,1,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new Sb(-1,0,0)),this.add(s);const r=new DT(BT,1,t,e);r.layers=this.layers,r.up.set(0,0,1),r.lookAt(new Sb(0,1,0)),this.add(r);const o=new DT(BT,1,t,e);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(new Sb(0,-1,0)),this.add(o);const a=new DT(BT,1,t,e);a.layers=this.layers,a.up.set(0,-1,0),a.lookAt(new Sb(0,0,1)),this.add(a);const l=new DT(BT,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Sb(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,s,r,o,a,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,r),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,a),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class kT extends bb{constructor(t,e,n,i,s,r,o,a,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:_x,n,i,s,r,o,a,l,c),this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}kT.prototype.isCubeTexture=!0;class UT extends Ab{constructor(t,e,n){Number.isInteger(e)&&(console.warn(\\\\\\\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\\\\\\\"),e=n),super(t,t,e),e=e||{},this.texture=new kT(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:Ex,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=Dx,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec3 vWorldDirection;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvWorldDirection = transformDirection( position, modelMatrix );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <begin_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <project_vertex>\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D tEquirect;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec3 vWorldDirection;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t#include <common>\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec3 direction = normalize( vWorldDirection );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 sampleUV = equirectUv( direction );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\\\\"},i=new LT(5,5,5),s=new IT({name:\\\\\\\"CubemapFromEquirect\\\\\\\",uniforms:OT(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});s.uniforms.tEquirect.value=e;const r=new CT(i,s),o=e.minFilter;e.minFilter===Cx&&(e.minFilter=Ex);return new zT(1,10,this).update(t,r),e.minFilter=o,r.geometry.dispose(),r.material.dispose(),this}clear(t,e,n,i){const s=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,n,i);t.setRenderTarget(s)}}UT.prototype.isWebGLCubeRenderTarget=!0;const GT=new Sb,VT=new Sb,HT=new mb;class jT{constructor(t=new Sb(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=GT.subVectors(n,e).cross(VT.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(GT),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||HT.getNormalMatrix(t),i=this.coplanarPoint(GT).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}jT.prototype.isPlane=!0;const WT=new $b,qT=new Sb;class XT{constructor(t=new jT,e=new jT,n=new jT,i=new jT,s=new jT,r=new jT){this.planes=[t,e,n,i,s,r]}set(t,e,n,i,s,r){const o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(i),o[4].copy(s),o[5].copy(r),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],s=n[1],r=n[2],o=n[3],a=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],_=n[11],m=n[12],f=n[13],g=n[14],v=n[15];return e[0].setComponents(o-i,h-a,_-u,v-m).normalize(),e[1].setComponents(o+i,h+a,_+u,v+m).normalize(),e[2].setComponents(o+s,h+l,_+d,v+f).normalize(),e[3].setComponents(o-s,h-l,_-d,v-f).normalize(),e[4].setComponents(o-r,h-c,_-p,v-g).normalize(),e[5].setComponents(o+r,h+c,_+p,v+g).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),WT.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(WT)}intersectsSprite(t){return WT.center.set(0,0,0),WT.radius=.7071067811865476,WT.applyMatrix4(t.matrixWorld),this.intersectsSphere(WT)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(qT.x=i.normal.x>0?t.max.x:t.min.x,qT.y=i.normal.y>0?t.max.y:t.min.y,qT.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(qT)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function YT(){let t=null,e=!1,n=null,i=null;function s(e,r){n(e,r),i=t.requestAnimationFrame(s)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(s),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function $T(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,s){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const r=i.get(e);void 0===r?i.set(e,function(e,i){const s=e.array,r=e.usage,o=t.createBuffer();t.bindBuffer(i,o),t.bufferData(i,s,r),e.onUploadCallback();let a=5126;return s instanceof Float32Array?a=5126:s instanceof Float64Array?console.warn(\\\\\\\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\\\\\\\"):s instanceof Uint16Array?e.isFloat16BufferAttribute?n?a=5131:console.warn(\\\\\\\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\\\\\\\"):a=5123:s instanceof Int16Array?a=5122:s instanceof Uint32Array?a=5125:s instanceof Int32Array?a=5124:s instanceof Int8Array?a=5120:(s instanceof Uint8Array||s instanceof Uint8ClampedArray)&&(a=5121),{buffer:o,type:a,bytesPerElement:s.BYTES_PER_ELEMENT,version:e.version}}(e,s)):r.version<e.version&&(!function(e,i,s){const r=i.array,o=i.updateRange;t.bindBuffer(s,e),-1===o.count?t.bufferSubData(s,0,r):(n?t.bufferSubData(s,o.offset*r.BYTES_PER_ELEMENT,r,o.offset,o.count):t.bufferSubData(s,o.offset*r.BYTES_PER_ELEMENT,r.subarray(o.offset,o.offset+o.count)),o.count=-1)}(r.buffer,e,s),r.version=e.version)}}}class JT extends hT{constructor(t=1,e=1,n=1,i=1){super(),this.type=\\\\\\\"PlaneGeometry\\\\\\\",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const s=t/2,r=e/2,o=Math.floor(n),a=Math.floor(i),l=o+1,c=a+1,h=t/o,u=e/a,d=[],p=[],_=[],m=[];for(let t=0;t<c;t++){const e=t*u-r;for(let n=0;n<l;n++){const i=n*h-s;p.push(i,-e,0),_.push(0,0,1),m.push(n/o),m.push(1-t/a)}}for(let t=0;t<a;t++)for(let e=0;e<o;e++){const n=e+l*t,i=e+l*(t+1),s=e+1+l*(t+1),r=e+1+l*t;d.push(n,i,r),d.push(i,s,r)}this.setIndex(d),this.setAttribute(\\\\\\\"position\\\\\\\",new nT(p,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new nT(_,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new nT(m,2))}static fromJSON(t){return new JT(t.width,t.height,t.widthSegments,t.heightSegments)}}const ZT={alphamap_fragment:\\\\\\\"#ifdef USE_ALPHAMAP\\\\n\\\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\\\n#endif\\\\\\\",alphamap_pars_fragment:\\\\\\\"#ifdef USE_ALPHAMAP\\\\n\\\\tuniform sampler2D alphaMap;\\\\n#endif\\\\\\\",alphatest_fragment:\\\\\\\"#ifdef USE_ALPHATEST\\\\n\\\\tif ( diffuseColor.a < alphaTest ) discard;\\\\n#endif\\\\\\\",alphatest_pars_fragment:\\\\\\\"#ifdef USE_ALPHATEST\\\\n\\\\tuniform float alphaTest;\\\\n#endif\\\\\\\",aomap_fragment:\\\\\\\"#ifdef USE_AOMAP\\\\n\\\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\\\n\\\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\\\n\\\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\\\n\\\\t\\\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\\\n\\\\t\\\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\\\n\\\\t#endif\\\\n#endif\\\\\\\",aomap_pars_fragment:\\\\\\\"#ifdef USE_AOMAP\\\\n\\\\tuniform sampler2D aoMap;\\\\n\\\\tuniform float aoMapIntensity;\\\\n#endif\\\\\\\",begin_vertex:\\\\\\\"vec3 transformed = vec3( position );\\\\\\\",beginnormal_vertex:\\\\\\\"vec3 objectNormal = vec3( normal );\\\\n#ifdef USE_TANGENT\\\\n\\\\tvec3 objectTangent = vec3( tangent.xyz );\\\\n#endif\\\\\\\",bsdfs:\\\\\\\"vec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\\\n\\\\treturn RECIPROCAL_PI * diffuseColor;\\\\n}\\\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\\\n\\\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\\\n\\\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\\\n}\\\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\\\n\\\\tfloat a2 = pow2( alpha );\\\\n\\\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\\\n\\\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\\\n\\\\treturn 0.5 / max( gv + gl, EPSILON );\\\\n}\\\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\\\n\\\\tfloat a2 = pow2( alpha );\\\\n\\\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\\\n\\\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\\\n}\\\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\\\\n\\\\tfloat alpha = pow2( roughness );\\\\n\\\\tvec3 halfDir = normalize( lightDir + viewDir );\\\\n\\\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\\\n\\\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\\\n\\\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\\\n\\\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\\\n\\\\tvec3 F = F_Schlick( f0, f90, dotVH );\\\\n\\\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\\\n\\\\tfloat D = D_GGX( alpha, dotNH );\\\\n\\\\treturn F * ( V * D );\\\\n}\\\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\\\n\\\\tconst float LUT_SIZE = 64.0;\\\\n\\\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\\\n\\\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\\\n\\\\tfloat dotNV = saturate( dot( N, V ) );\\\\n\\\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\\\n\\\\tuv = uv * LUT_SCALE + LUT_BIAS;\\\\n\\\\treturn uv;\\\\n}\\\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\\\n\\\\tfloat l = length( f );\\\\n\\\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\\\n}\\\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\\\n\\\\tfloat x = dot( v1, v2 );\\\\n\\\\tfloat y = abs( x );\\\\n\\\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\\\n\\\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\\\n\\\\tfloat v = a / b;\\\\n\\\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\\\n\\\\treturn cross( v1, v2 ) * theta_sintheta;\\\\n}\\\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\\\n\\\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\\\n\\\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\\\n\\\\tvec3 lightNormal = cross( v1, v2 );\\\\n\\\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\\\n\\\\tvec3 T1, T2;\\\\n\\\\tT1 = normalize( V - N * dot( V, N ) );\\\\n\\\\tT2 = - cross( N, T1 );\\\\n\\\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\\\n\\\\tvec3 coords[ 4 ];\\\\n\\\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\\\n\\\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\\\n\\\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\\\n\\\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\\\n\\\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\\\n\\\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\\\n\\\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\\\n\\\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\\\n\\\\tvec3 vectorFormFactor = vec3( 0.0 );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\\\n\\\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\\\n\\\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\\\n\\\\treturn vec3( result );\\\\n}\\\\nfloat G_BlinnPhong_Implicit( ) {\\\\n\\\\treturn 0.25;\\\\n}\\\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\\\n\\\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\\\n}\\\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\\\n\\\\tvec3 halfDir = normalize( lightDir + viewDir );\\\\n\\\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\\\n\\\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\\\n\\\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\\\n\\\\tfloat G = G_BlinnPhong_Implicit( );\\\\n\\\\tfloat D = D_BlinnPhong( shininess, dotNH );\\\\n\\\\treturn F * ( G * D );\\\\n}\\\\n#if defined( USE_SHEEN )\\\\nfloat D_Charlie( float roughness, float dotNH ) {\\\\n\\\\tfloat alpha = pow2( roughness );\\\\n\\\\tfloat invAlpha = 1.0 / alpha;\\\\n\\\\tfloat cos2h = dotNH * dotNH;\\\\n\\\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\\\n\\\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\\\n}\\\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\\\n\\\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\\\n}\\\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenTint, const in float sheenRoughness ) {\\\\n\\\\tvec3 halfDir = normalize( lightDir + viewDir );\\\\n\\\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\\\n\\\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\\\n\\\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\\\n\\\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\\\n\\\\tfloat V = V_Neubelt( dotNV, dotNL );\\\\n\\\\treturn sheenTint * ( D * V );\\\\n}\\\\n#endif\\\\\\\",bumpmap_pars_fragment:\\\\\\\"#ifdef USE_BUMPMAP\\\\n\\\\tuniform sampler2D bumpMap;\\\\n\\\\tuniform float bumpScale;\\\\n\\\\tvec2 dHdxy_fwd() {\\\\n\\\\t\\\\tvec2 dSTdx = dFdx( vUv );\\\\n\\\\t\\\\tvec2 dSTdy = dFdy( vUv );\\\\n\\\\t\\\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\\\n\\\\t\\\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\\\n\\\\t\\\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\\\n\\\\t\\\\treturn vec2( dBx, dBy );\\\\n\\\\t}\\\\n\\\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\\\n\\\\t\\\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\\\n\\\\t\\\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\\\n\\\\t\\\\tvec3 vN = surf_norm;\\\\n\\\\t\\\\tvec3 R1 = cross( vSigmaY, vN );\\\\n\\\\t\\\\tvec3 R2 = cross( vN, vSigmaX );\\\\n\\\\t\\\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\\\n\\\\t\\\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\\\n\\\\t\\\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\\\n\\\\t}\\\\n#endif\\\\\\\",clipping_planes_fragment:\\\\\\\"#if NUM_CLIPPING_PLANES > 0\\\\n\\\\tvec4 plane;\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\\\n\\\\t\\\\tplane = clippingPlanes[ i ];\\\\n\\\\t\\\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\\\n\\\\t\\\\tbool clipped = true;\\\\n\\\\t\\\\t#pragma unroll_loop_start\\\\n\\\\t\\\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\\\n\\\\t\\\\t\\\\tplane = clippingPlanes[ i ];\\\\n\\\\t\\\\t\\\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t#pragma unroll_loop_end\\\\n\\\\t\\\\tif ( clipped ) discard;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",clipping_planes_pars_fragment:\\\\\\\"#if NUM_CLIPPING_PLANES > 0\\\\n\\\\tvarying vec3 vClipPosition;\\\\n\\\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\\\n#endif\\\\\\\",clipping_planes_pars_vertex:\\\\\\\"#if NUM_CLIPPING_PLANES > 0\\\\n\\\\tvarying vec3 vClipPosition;\\\\n#endif\\\\\\\",clipping_planes_vertex:\\\\\\\"#if NUM_CLIPPING_PLANES > 0\\\\n\\\\tvClipPosition = - mvPosition.xyz;\\\\n#endif\\\\\\\",color_fragment:\\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\n\\\\tdiffuseColor *= vColor;\\\\n#elif defined( USE_COLOR )\\\\n\\\\tdiffuseColor.rgb *= vColor;\\\\n#endif\\\\\\\",color_pars_fragment:\\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\n\\\\tvarying vec4 vColor;\\\\n#elif defined( USE_COLOR )\\\\n\\\\tvarying vec3 vColor;\\\\n#endif\\\\\\\",color_pars_vertex:\\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\n\\\\tvarying vec4 vColor;\\\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\\\n\\\\tvarying vec3 vColor;\\\\n#endif\\\\\\\",color_vertex:\\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\n\\\\tvColor = vec4( 1.0 );\\\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\\\n\\\\tvColor = vec3( 1.0 );\\\\n#endif\\\\n#ifdef USE_COLOR\\\\n\\\\tvColor *= color;\\\\n#endif\\\\n#ifdef USE_INSTANCING_COLOR\\\\n\\\\tvColor.xyz *= instanceColor.xyz;\\\\n#endif\\\\\\\",common:\\\\\\\"#define PI 3.141592653589793\\\\n#define PI2 6.283185307179586\\\\n#define PI_HALF 1.5707963267948966\\\\n#define RECIPROCAL_PI 0.3183098861837907\\\\n#define RECIPROCAL_PI2 0.15915494309189535\\\\n#define EPSILON 1e-6\\\\n#ifndef saturate\\\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\\\n#endif\\\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\\\nfloat pow2( const in float x ) { return x*x; }\\\\nfloat pow3( const in float x ) { return x*x*x; }\\\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\\\nhighp float rand( const in vec2 uv ) {\\\\n\\\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\\\n\\\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\\\n\\\\treturn fract( sin( sn ) * c );\\\\n}\\\\n#ifdef HIGH_PRECISION\\\\n\\\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\\\n#else\\\\n\\\\tfloat precisionSafeLength( vec3 v ) {\\\\n\\\\t\\\\tfloat maxComponent = max3( abs( v ) );\\\\n\\\\t\\\\treturn length( v / maxComponent ) * maxComponent;\\\\n\\\\t}\\\\n#endif\\\\nstruct IncidentLight {\\\\n\\\\tvec3 color;\\\\n\\\\tvec3 direction;\\\\n\\\\tbool visible;\\\\n};\\\\nstruct ReflectedLight {\\\\n\\\\tvec3 directDiffuse;\\\\n\\\\tvec3 directSpecular;\\\\n\\\\tvec3 indirectDiffuse;\\\\n\\\\tvec3 indirectSpecular;\\\\n};\\\\nstruct GeometricContext {\\\\n\\\\tvec3 position;\\\\n\\\\tvec3 normal;\\\\n\\\\tvec3 viewDir;\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\tvec3 clearcoatNormal;\\\\n#endif\\\\n};\\\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\\\n\\\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\\\n}\\\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\\\n\\\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\\\n}\\\\nmat3 transposeMat3( const in mat3 m ) {\\\\n\\\\tmat3 tmp;\\\\n\\\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\\\n\\\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\\\n\\\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\\\n\\\\treturn tmp;\\\\n}\\\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\\\n\\\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\\\n\\\\treturn dot( weights, color.rgb );\\\\n}\\\\nbool isPerspectiveMatrix( mat4 m ) {\\\\n\\\\treturn m[ 2 ][ 3 ] == - 1.0;\\\\n}\\\\nvec2 equirectUv( in vec3 dir ) {\\\\n\\\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\\\n\\\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\\\n\\\\treturn vec2( u, v );\\\\n}\\\\\\\",cube_uv_reflection_fragment:\\\\\\\"#ifdef ENVMAP_TYPE_CUBE_UV\\\\n\\\\t#define cubeUV_maxMipLevel 8.0\\\\n\\\\t#define cubeUV_minMipLevel 4.0\\\\n\\\\t#define cubeUV_maxTileSize 256.0\\\\n\\\\t#define cubeUV_minTileSize 16.0\\\\n\\\\tfloat getFace( vec3 direction ) {\\\\n\\\\t\\\\tvec3 absDirection = abs( direction );\\\\n\\\\t\\\\tfloat face = - 1.0;\\\\n\\\\t\\\\tif ( absDirection.x > absDirection.z ) {\\\\n\\\\t\\\\t\\\\tif ( absDirection.x > absDirection.y )\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\\\n\\\\t\\\\t\\\\telse\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tif ( absDirection.z > absDirection.y )\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\\\n\\\\t\\\\t\\\\telse\\\\n\\\\t\\\\t\\\\t\\\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn face;\\\\n\\\\t}\\\\n\\\\tvec2 getUV( vec3 direction, float face ) {\\\\n\\\\t\\\\tvec2 uv;\\\\n\\\\t\\\\tif ( face == 0.0 ) {\\\\n\\\\t\\\\t\\\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\\\n\\\\t\\\\t} else if ( face == 1.0 ) {\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\\\n\\\\t\\\\t} else if ( face == 2.0 ) {\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\\\n\\\\t\\\\t} else if ( face == 3.0 ) {\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\\\n\\\\t\\\\t} else if ( face == 4.0 ) {\\\\n\\\\t\\\\t\\\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn 0.5 * ( uv + 1.0 );\\\\n\\\\t}\\\\n\\\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\\\n\\\\t\\\\tfloat face = getFace( direction );\\\\n\\\\t\\\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\\\n\\\\t\\\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\\\n\\\\t\\\\tfloat faceSize = exp2( mipInt );\\\\n\\\\t\\\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\\\n\\\\t\\\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\\\n\\\\t\\\\tvec2 f = fract( uv );\\\\n\\\\t\\\\tuv += 0.5 - f;\\\\n\\\\t\\\\tif ( face > 2.0 ) {\\\\n\\\\t\\\\t\\\\tuv.y += faceSize;\\\\n\\\\t\\\\t\\\\tface -= 3.0;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\tuv.x += face * faceSize;\\\\n\\\\t\\\\tif ( mipInt < cubeUV_maxMipLevel ) {\\\\n\\\\t\\\\t\\\\tuv.y += 2.0 * cubeUV_maxTileSize;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\\\n\\\\t\\\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\\\n\\\\t\\\\tuv *= texelSize;\\\\n\\\\t\\\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\t\\\\tuv.x += texelSize;\\\\n\\\\t\\\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\t\\\\tuv.y += texelSize;\\\\n\\\\t\\\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\t\\\\tuv.x -= texelSize;\\\\n\\\\t\\\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\\\n\\\\t\\\\tvec3 tm = mix( tl, tr, f.x );\\\\n\\\\t\\\\tvec3 bm = mix( bl, br, f.x );\\\\n\\\\t\\\\treturn mix( tm, bm, f.y );\\\\n\\\\t}\\\\n\\\\t#define r0 1.0\\\\n\\\\t#define v0 0.339\\\\n\\\\t#define m0 - 2.0\\\\n\\\\t#define r1 0.8\\\\n\\\\t#define v1 0.276\\\\n\\\\t#define m1 - 1.0\\\\n\\\\t#define r4 0.4\\\\n\\\\t#define v4 0.046\\\\n\\\\t#define m4 2.0\\\\n\\\\t#define r5 0.305\\\\n\\\\t#define v5 0.016\\\\n\\\\t#define m5 3.0\\\\n\\\\t#define r6 0.21\\\\n\\\\t#define v6 0.0038\\\\n\\\\t#define m6 4.0\\\\n\\\\tfloat roughnessToMip( float roughness ) {\\\\n\\\\t\\\\tfloat mip = 0.0;\\\\n\\\\t\\\\tif ( roughness >= r1 ) {\\\\n\\\\t\\\\t\\\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\\\n\\\\t\\\\t} else if ( roughness >= r4 ) {\\\\n\\\\t\\\\t\\\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\\\n\\\\t\\\\t} else if ( roughness >= r5 ) {\\\\n\\\\t\\\\t\\\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\\\n\\\\t\\\\t} else if ( roughness >= r6 ) {\\\\n\\\\t\\\\t\\\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tmip = - 2.0 * log2( 1.16 * roughness );\\\\t\\\\t}\\\\n\\\\t\\\\treturn mip;\\\\n\\\\t}\\\\n\\\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\\\n\\\\t\\\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\\\n\\\\t\\\\tfloat mipF = fract( mip );\\\\n\\\\t\\\\tfloat mipInt = floor( mip );\\\\n\\\\t\\\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\\\n\\\\t\\\\tif ( mipF == 0.0 ) {\\\\n\\\\t\\\\t\\\\treturn vec4( color0, 1.0 );\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\\\n\\\\t\\\\t\\\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n#endif\\\\\\\",defaultnormal_vertex:\\\\\\\"vec3 transformedNormal = objectNormal;\\\\n#ifdef USE_INSTANCING\\\\n\\\\tmat3 m = mat3( instanceMatrix );\\\\n\\\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\\\n\\\\ttransformedNormal = m * transformedNormal;\\\\n#endif\\\\ntransformedNormal = normalMatrix * transformedNormal;\\\\n#ifdef FLIP_SIDED\\\\n\\\\ttransformedNormal = - transformedNormal;\\\\n#endif\\\\n#ifdef USE_TANGENT\\\\n\\\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\\\n\\\\t#ifdef FLIP_SIDED\\\\n\\\\t\\\\ttransformedTangent = - transformedTangent;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",displacementmap_pars_vertex:\\\\\\\"#ifdef USE_DISPLACEMENTMAP\\\\n\\\\tuniform sampler2D displacementMap;\\\\n\\\\tuniform float displacementScale;\\\\n\\\\tuniform float displacementBias;\\\\n#endif\\\\\\\",displacementmap_vertex:\\\\\\\"#ifdef USE_DISPLACEMENTMAP\\\\n\\\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\\\n#endif\\\\\\\",emissivemap_fragment:\\\\\\\"#ifdef USE_EMISSIVEMAP\\\\n\\\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\\\n\\\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\\\n\\\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\\\n#endif\\\\\\\",emissivemap_pars_fragment:\\\\\\\"#ifdef USE_EMISSIVEMAP\\\\n\\\\tuniform sampler2D emissiveMap;\\\\n#endif\\\\\\\",encodings_fragment:\\\\\\\"gl_FragColor = linearToOutputTexel( gl_FragColor );\\\\\\\",encodings_pars_fragment:\\\\\\\"\\\\nvec4 LinearToLinear( in vec4 value ) {\\\\n\\\\treturn value;\\\\n}\\\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\\\n\\\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\\\n}\\\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\\\n\\\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\\\n}\\\\nvec4 sRGBToLinear( in vec4 value ) {\\\\n\\\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\\\n}\\\\nvec4 LinearTosRGB( in vec4 value ) {\\\\n\\\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\\\n}\\\\nvec4 RGBEToLinear( in vec4 value ) {\\\\n\\\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\\\n}\\\\nvec4 LinearToRGBE( in vec4 value ) {\\\\n\\\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\\\n\\\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\\\n\\\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\\\n}\\\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\\\n\\\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\\\n}\\\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\\\n\\\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\\\n\\\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\\\n\\\\tM = ceil( M * 255.0 ) / 255.0;\\\\n\\\\treturn vec4( value.rgb / ( M * maxRange ), M );\\\\n}\\\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\\\n\\\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\\\n}\\\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\\\n\\\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\\\n\\\\tfloat D = max( maxRange / maxRGB, 1.0 );\\\\n\\\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\\\n\\\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\\\n}\\\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\\\nvec4 LinearToLogLuv( in vec4 value ) {\\\\n\\\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\\\n\\\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\\\n\\\\tvec4 vResult;\\\\n\\\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\\\n\\\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\\\n\\\\tvResult.w = fract( Le );\\\\n\\\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\\\n\\\\treturn vResult;\\\\n}\\\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\\\nvec4 LogLuvToLinear( in vec4 value ) {\\\\n\\\\tfloat Le = value.z * 255.0 + value.w;\\\\n\\\\tvec3 Xp_Y_XYZp;\\\\n\\\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\\\n\\\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\\\n\\\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\\\n\\\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\\\n\\\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\\\n}\\\\\\\",envmap_fragment:\\\\\\\"#ifdef USE_ENVMAP\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\t\\\\tvec3 cameraToFrag;\\\\n\\\\t\\\\tif ( isOrthographic ) {\\\\n\\\\t\\\\t\\\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\t\\\\t#ifdef ENVMAP_MODE_REFLECTION\\\\n\\\\t\\\\t\\\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\\\n\\\\t\\\\t#endif\\\\n\\\\t#else\\\\n\\\\t\\\\tvec3 reflectVec = vReflect;\\\\n\\\\t#endif\\\\n\\\\t#ifdef ENVMAP_TYPE_CUBE\\\\n\\\\t\\\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\\\n\\\\t\\\\tenvColor = envMapTexelToLinear( envColor );\\\\n\\\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\t\\\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\\\n\\\\t#else\\\\n\\\\t\\\\tvec4 envColor = vec4( 0.0 );\\\\n\\\\t#endif\\\\n\\\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\\\n\\\\t\\\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\\\n\\\\t#elif defined( ENVMAP_BLENDING_MIX )\\\\n\\\\t\\\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\\\n\\\\t#elif defined( ENVMAP_BLENDING_ADD )\\\\n\\\\t\\\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",envmap_common_pars_fragment:\\\\\\\"#ifdef USE_ENVMAP\\\\n\\\\tuniform float envMapIntensity;\\\\n\\\\tuniform float flipEnvMap;\\\\n\\\\tuniform int maxMipLevel;\\\\n\\\\t#ifdef ENVMAP_TYPE_CUBE\\\\n\\\\t\\\\tuniform samplerCube envMap;\\\\n\\\\t#else\\\\n\\\\t\\\\tuniform sampler2D envMap;\\\\n\\\\t#endif\\\\n\\\\t\\\\n#endif\\\\\\\",envmap_pars_fragment:\\\\\\\"#ifdef USE_ENVMAP\\\\n\\\\tuniform float reflectivity;\\\\n\\\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\\\n\\\\t\\\\t#define ENV_WORLDPOS\\\\n\\\\t#endif\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\t\\\\tvarying vec3 vWorldPosition;\\\\n\\\\t\\\\tuniform float refractionRatio;\\\\n\\\\t#else\\\\n\\\\t\\\\tvarying vec3 vReflect;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",envmap_pars_vertex:\\\\\\\"#ifdef USE_ENVMAP\\\\n\\\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\\\n\\\\t\\\\t#define ENV_WORLDPOS\\\\n\\\\t#endif\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\t\\\\t\\\\n\\\\t\\\\tvarying vec3 vWorldPosition;\\\\n\\\\t#else\\\\n\\\\t\\\\tvarying vec3 vReflect;\\\\n\\\\t\\\\tuniform float refractionRatio;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",envmap_physical_pars_fragment:\\\\\\\"#if defined( USE_ENVMAP )\\\\n\\\\t#ifdef ENVMAP_MODE_REFRACTION\\\\n\\\\t\\\\tuniform float refractionRatio;\\\\n\\\\t#endif\\\\n\\\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\\\n\\\\t\\\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\t\\\\t\\\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\t\\\\t\\\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\\\n\\\\t\\\\t\\\\treturn PI * envMapColor.rgb * envMapIntensity;\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\treturn vec3( 0.0 );\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\\\n\\\\t\\\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\t\\\\t\\\\tvec3 reflectVec;\\\\n\\\\t\\\\t\\\\t#ifdef ENVMAP_MODE_REFLECTION\\\\n\\\\t\\\\t\\\\t\\\\treflectVec = reflect( - viewDir, normal );\\\\n\\\\t\\\\t\\\\t\\\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\\\n\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\treflectVec = refract( - viewDir, normal, refractionRatio );\\\\n\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\\\n\\\\t\\\\t\\\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\\\n\\\\t\\\\t\\\\treturn envMapColor.rgb * envMapIntensity;\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\treturn vec3( 0.0 );\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n#endif\\\\\\\",envmap_vertex:\\\\\\\"#ifdef USE_ENVMAP\\\\n\\\\t#ifdef ENV_WORLDPOS\\\\n\\\\t\\\\tvWorldPosition = worldPosition.xyz;\\\\n\\\\t#else\\\\n\\\\t\\\\tvec3 cameraToVertex;\\\\n\\\\t\\\\tif ( isOrthographic ) {\\\\n\\\\t\\\\t\\\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\\\n\\\\t\\\\t#ifdef ENVMAP_MODE_REFLECTION\\\\n\\\\t\\\\t\\\\tvReflect = reflect( cameraToVertex, worldNormal );\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\\\n\\\\t\\\\t#endif\\\\n\\\\t#endif\\\\n#endif\\\\\\\",fog_vertex:\\\\\\\"#ifdef USE_FOG\\\\n\\\\tvFogDepth = - mvPosition.z;\\\\n#endif\\\\\\\",fog_pars_vertex:\\\\\\\"#ifdef USE_FOG\\\\n\\\\tvarying float vFogDepth;\\\\n#endif\\\\\\\",fog_fragment:\\\\\\\"#ifdef USE_FOG\\\\n\\\\t#ifdef FOG_EXP2\\\\n\\\\t\\\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\\\n\\\\t#else\\\\n\\\\t\\\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\\\n\\\\t#endif\\\\n\\\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\\\n#endif\\\\\\\",fog_pars_fragment:\\\\\\\"#ifdef USE_FOG\\\\n\\\\tuniform vec3 fogColor;\\\\n\\\\tvarying float vFogDepth;\\\\n\\\\t#ifdef FOG_EXP2\\\\n\\\\t\\\\tuniform float fogDensity;\\\\n\\\\t#else\\\\n\\\\t\\\\tuniform float fogNear;\\\\n\\\\t\\\\tuniform float fogFar;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",gradientmap_pars_fragment:\\\\\\\"#ifdef USE_GRADIENTMAP\\\\n\\\\tuniform sampler2D gradientMap;\\\\n#endif\\\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\\\n\\\\tfloat dotNL = dot( normal, lightDirection );\\\\n\\\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\\\n\\\\t#ifdef USE_GRADIENTMAP\\\\n\\\\t\\\\treturn texture2D( gradientMap, coord ).rgb;\\\\n\\\\t#else\\\\n\\\\t\\\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\\\n\\\\t#endif\\\\n}\\\\\\\",lightmap_fragment:\\\\\\\"#ifdef USE_LIGHTMAP\\\\n\\\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\\\n\\\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\\\n\\\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\\\n\\\\t\\\\tlightMapIrradiance *= PI;\\\\n\\\\t#endif\\\\n\\\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\\\n#endif\\\\\\\",lightmap_pars_fragment:\\\\\\\"#ifdef USE_LIGHTMAP\\\\n\\\\tuniform sampler2D lightMap;\\\\n\\\\tuniform float lightMapIntensity;\\\\n#endif\\\\\\\",lights_lambert_vertex:\\\\\\\"vec3 diffuse = vec3( 1.0 );\\\\nGeometricContext geometry;\\\\ngeometry.position = mvPosition.xyz;\\\\ngeometry.normal = normalize( transformedNormal );\\\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\\\nGeometricContext backGeometry;\\\\nbackGeometry.position = geometry.position;\\\\nbackGeometry.normal = -geometry.normal;\\\\nbackGeometry.viewDir = geometry.viewDir;\\\\nvLightFront = vec3( 0.0 );\\\\nvIndirectFront = vec3( 0.0 );\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvLightBack = vec3( 0.0 );\\\\n\\\\tvIndirectBack = vec3( 0.0 );\\\\n#endif\\\\nIncidentLight directLight;\\\\nfloat dotNL;\\\\nvec3 directLightColor_Diffuse;\\\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\\\n\\\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\\\\n#endif\\\\n#if NUM_POINT_LIGHTS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\\\\n\\\\t\\\\tdotNL = dot( geometry.normal, directLight.direction );\\\\n\\\\t\\\\tdirectLightColor_Diffuse = directLight.color;\\\\n\\\\t\\\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\t\\\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if NUM_SPOT_LIGHTS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\\\\n\\\\t\\\\tdotNL = dot( geometry.normal, directLight.direction );\\\\n\\\\t\\\\tdirectLightColor_Diffuse = directLight.color;\\\\n\\\\t\\\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\t\\\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if NUM_DIR_LIGHTS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\\\\n\\\\t\\\\tdotNL = dot( geometry.normal, directLight.direction );\\\\n\\\\t\\\\tdirectLightColor_Diffuse = directLight.color;\\\\n\\\\t\\\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\t\\\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if NUM_HEMI_LIGHTS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\t\\\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\\\\",lights_pars_begin:\\\\\\\"uniform bool receiveShadow;\\\\nuniform vec3 ambientLightColor;\\\\nuniform vec3 lightProbe[ 9 ];\\\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\\\n\\\\tfloat x = normal.x, y = normal.y, z = normal.z;\\\\n\\\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\\\n\\\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\\\n\\\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\\\n\\\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\\\n\\\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\\\n\\\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\\\n\\\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\\\n\\\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\\\n\\\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\\\n\\\\treturn result;\\\\n}\\\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\\\n\\\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\\\n\\\\treturn irradiance;\\\\n}\\\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\\\n\\\\tvec3 irradiance = ambientLightColor;\\\\n\\\\treturn irradiance;\\\\n}\\\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\\\n\\\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\\\n\\\\t\\\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\\\n\\\\t\\\\tif ( cutoffDistance > 0.0 ) {\\\\n\\\\t\\\\t\\\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn distanceFalloff;\\\\n\\\\t#else\\\\n\\\\t\\\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\\\n\\\\t\\\\t\\\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn 1.0;\\\\n\\\\t#endif\\\\n}\\\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\\\n\\\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\\\n}\\\\n#if NUM_DIR_LIGHTS > 0\\\\n\\\\tstruct DirectionalLight {\\\\n\\\\t\\\\tvec3 direction;\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t};\\\\n\\\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\\\n\\\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\\\n\\\\t\\\\tlight.color = directionalLight.color;\\\\n\\\\t\\\\tlight.direction = directionalLight.direction;\\\\n\\\\t\\\\tlight.visible = true;\\\\n\\\\t}\\\\n#endif\\\\n#if NUM_POINT_LIGHTS > 0\\\\n\\\\tstruct PointLight {\\\\n\\\\t\\\\tvec3 position;\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t\\\\tfloat distance;\\\\n\\\\t\\\\tfloat decay;\\\\n\\\\t};\\\\n\\\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\\\n\\\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\\\n\\\\t\\\\tvec3 lVector = pointLight.position - geometry.position;\\\\n\\\\t\\\\tlight.direction = normalize( lVector );\\\\n\\\\t\\\\tfloat lightDistance = length( lVector );\\\\n\\\\t\\\\tlight.color = pointLight.color;\\\\n\\\\t\\\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\\\n\\\\t\\\\tlight.visible = ( light.color != vec3( 0.0 ) );\\\\n\\\\t}\\\\n#endif\\\\n#if NUM_SPOT_LIGHTS > 0\\\\n\\\\tstruct SpotLight {\\\\n\\\\t\\\\tvec3 position;\\\\n\\\\t\\\\tvec3 direction;\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t\\\\tfloat distance;\\\\n\\\\t\\\\tfloat decay;\\\\n\\\\t\\\\tfloat coneCos;\\\\n\\\\t\\\\tfloat penumbraCos;\\\\n\\\\t};\\\\n\\\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\\\n\\\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\\\n\\\\t\\\\tvec3 lVector = spotLight.position - geometry.position;\\\\n\\\\t\\\\tlight.direction = normalize( lVector );\\\\n\\\\t\\\\tfloat angleCos = dot( light.direction, spotLight.direction );\\\\n\\\\t\\\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\\\n\\\\t\\\\tif ( spotAttenuation > 0.0 ) {\\\\n\\\\t\\\\t\\\\tfloat lightDistance = length( lVector );\\\\n\\\\t\\\\t\\\\tlight.color = spotLight.color * spotAttenuation;\\\\n\\\\t\\\\t\\\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\\\n\\\\t\\\\t\\\\tlight.visible = ( light.color != vec3( 0.0 ) );\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tlight.color = vec3( 0.0 );\\\\n\\\\t\\\\t\\\\tlight.visible = false;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n#endif\\\\n#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\tstruct RectAreaLight {\\\\n\\\\t\\\\tvec3 color;\\\\n\\\\t\\\\tvec3 position;\\\\n\\\\t\\\\tvec3 halfWidth;\\\\n\\\\t\\\\tvec3 halfHeight;\\\\n\\\\t};\\\\n\\\\tuniform sampler2D ltc_1;\\\\tuniform sampler2D ltc_2;\\\\n\\\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\\\n#endif\\\\n#if NUM_HEMI_LIGHTS > 0\\\\n\\\\tstruct HemisphereLight {\\\\n\\\\t\\\\tvec3 direction;\\\\n\\\\t\\\\tvec3 skyColor;\\\\n\\\\t\\\\tvec3 groundColor;\\\\n\\\\t};\\\\n\\\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\\\n\\\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\\\n\\\\t\\\\tfloat dotNL = dot( normal, hemiLight.direction );\\\\n\\\\t\\\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\\\n\\\\t\\\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\\\n\\\\t\\\\treturn irradiance;\\\\n\\\\t}\\\\n#endif\\\\\\\",lights_toon_fragment:\\\\\\\"ToonMaterial material;\\\\nmaterial.diffuseColor = diffuseColor.rgb;\\\\\\\",lights_toon_pars_fragment:\\\\\\\"varying vec3 vViewPosition;\\\\nstruct ToonMaterial {\\\\n\\\\tvec3 diffuseColor;\\\\n};\\\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\\\n\\\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n}\\\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n}\\\\n#define RE_Direct\\\\t\\\\t\\\\t\\\\tRE_Direct_Toon\\\\n#define RE_IndirectDiffuse\\\\t\\\\tRE_IndirectDiffuse_Toon\\\\n#define Material_LightProbeLOD( material )\\\\t(0)\\\\\\\",lights_phong_fragment:\\\\\\\"BlinnPhongMaterial material;\\\\nmaterial.diffuseColor = diffuseColor.rgb;\\\\nmaterial.specularColor = specular;\\\\nmaterial.specularShininess = shininess;\\\\nmaterial.specularStrength = specularStrength;\\\\\\\",lights_phong_pars_fragment:\\\\\\\"varying vec3 vViewPosition;\\\\nstruct BlinnPhongMaterial {\\\\n\\\\tvec3 diffuseColor;\\\\n\\\\tvec3 specularColor;\\\\n\\\\tfloat specularShininess;\\\\n\\\\tfloat specularStrength;\\\\n};\\\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\\\n\\\\tvec3 irradiance = dotNL * directLight.color;\\\\n\\\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n\\\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\\\n}\\\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n}\\\\n#define RE_Direct\\\\t\\\\t\\\\t\\\\tRE_Direct_BlinnPhong\\\\n#define RE_IndirectDiffuse\\\\t\\\\tRE_IndirectDiffuse_BlinnPhong\\\\n#define Material_LightProbeLOD( material )\\\\t(0)\\\\\\\",lights_physical_fragment:\\\\\\\"PhysicalMaterial material;\\\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\\\nmaterial.roughness = min( material.roughness, 1.0 );\\\\n#ifdef IOR\\\\n\\\\t#ifdef SPECULAR\\\\n\\\\t\\\\tfloat specularIntensityFactor = specularIntensity;\\\\n\\\\t\\\\tvec3 specularTintFactor = specularTint;\\\\n\\\\t\\\\t#ifdef USE_SPECULARINTENSITYMAP\\\\n\\\\t\\\\t\\\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t#ifdef USE_SPECULARTINTMAP\\\\n\\\\t\\\\t\\\\tspecularTintFactor *= specularTintMapTexelToLinear( texture2D( specularTintMap, vUv ) ).rgb;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\\\n\\\\t#else\\\\n\\\\t\\\\tfloat specularIntensityFactor = 1.0;\\\\n\\\\t\\\\tvec3 specularTintFactor = vec3( 1.0 );\\\\n\\\\t\\\\tmaterial.specularF90 = 1.0;\\\\n\\\\t#endif\\\\n\\\\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularTintFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\\\n#else\\\\n\\\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\\\n\\\\tmaterial.specularF90 = 1.0;\\\\n#endif\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\tmaterial.clearcoat = clearcoat;\\\\n\\\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\\\n\\\\tmaterial.clearcoatF0 = vec3( 0.04 );\\\\n\\\\tmaterial.clearcoatF90 = 1.0;\\\\n\\\\t#ifdef USE_CLEARCOATMAP\\\\n\\\\t\\\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\\\n\\\\t\\\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\\\n\\\\t#endif\\\\n\\\\tmaterial.clearcoat = saturate( material.clearcoat );\\\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\\\n\\\\tmaterial.clearcoatRoughness += geometryRoughness;\\\\n\\\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\\\n#endif\\\\n#ifdef USE_SHEEN\\\\n\\\\tmaterial.sheenTint = sheenTint;\\\\n\\\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\\\n#endif\\\\\\\",lights_physical_pars_fragment:\\\\\\\"struct PhysicalMaterial {\\\\n\\\\tvec3 diffuseColor;\\\\n\\\\tfloat roughness;\\\\n\\\\tvec3 specularColor;\\\\n\\\\tfloat specularF90;\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\t\\\\tfloat clearcoat;\\\\n\\\\t\\\\tfloat clearcoatRoughness;\\\\n\\\\t\\\\tvec3 clearcoatF0;\\\\n\\\\t\\\\tfloat clearcoatF90;\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_SHEEN\\\\n\\\\t\\\\tvec3 sheenTint;\\\\n\\\\t\\\\tfloat sheenRoughness;\\\\n\\\\t#endif\\\\n};\\\\nvec3 clearcoatSpecular = vec3( 0.0 );\\\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\\\n\\\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\\\n\\\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\\\n\\\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\\\n\\\\tvec4 r = roughness * c0 + c1;\\\\n\\\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\\\n\\\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\\\n\\\\treturn fab;\\\\n}\\\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\\\n\\\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\\\n\\\\treturn specularColor * fab.x + specularF90 * fab.y;\\\\n}\\\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\\\n\\\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\\\n\\\\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\\\\n\\\\tfloat Ess = fab.x + fab.y;\\\\n\\\\tfloat Ems = 1.0 - Ess;\\\\n\\\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\\\n\\\\tsingleScatter += FssEss;\\\\n\\\\tmultiScatter += Fms * Ems;\\\\n}\\\\n#if NUM_RECT_AREA_LIGHTS > 0\\\\n\\\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\t\\\\tvec3 normal = geometry.normal;\\\\n\\\\t\\\\tvec3 viewDir = geometry.viewDir;\\\\n\\\\t\\\\tvec3 position = geometry.position;\\\\n\\\\t\\\\tvec3 lightPos = rectAreaLight.position;\\\\n\\\\t\\\\tvec3 halfWidth = rectAreaLight.halfWidth;\\\\n\\\\t\\\\tvec3 halfHeight = rectAreaLight.halfHeight;\\\\n\\\\t\\\\tvec3 lightColor = rectAreaLight.color;\\\\n\\\\t\\\\tfloat roughness = material.roughness;\\\\n\\\\t\\\\tvec3 rectCoords[ 4 ];\\\\n\\\\t\\\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\\\t\\\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\\\n\\\\t\\\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\\\n\\\\t\\\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\\\n\\\\t\\\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\\\n\\\\t\\\\tvec4 t1 = texture2D( ltc_1, uv );\\\\n\\\\t\\\\tvec4 t2 = texture2D( ltc_2, uv );\\\\n\\\\t\\\\tmat3 mInv = mat3(\\\\n\\\\t\\\\t\\\\tvec3( t1.x, 0, t1.y ),\\\\n\\\\t\\\\t\\\\tvec3(    0, 1,    0 ),\\\\n\\\\t\\\\t\\\\tvec3( t1.z, 0, t1.w )\\\\n\\\\t\\\\t);\\\\n\\\\t\\\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\\\n\\\\t\\\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\\\n\\\\t\\\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\\\n\\\\t}\\\\n#endif\\\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\\\n\\\\tvec3 irradiance = dotNL * directLight.color;\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\t\\\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\\\n\\\\t\\\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\\\n\\\\t\\\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_SHEEN\\\\n\\\\t\\\\treflectedLight.directSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenTint, material.sheenRoughness );\\\\n\\\\t#endif\\\\n\\\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\\\n\\\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n}\\\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\\\n\\\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\\\n}\\\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\t\\\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\\\n\\\\t#endif\\\\n\\\\tvec3 singleScattering = vec3( 0.0 );\\\\n\\\\tvec3 multiScattering = vec3( 0.0 );\\\\n\\\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\\\n\\\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\\\n\\\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\\\n\\\\treflectedLight.indirectSpecular += radiance * singleScattering;\\\\n\\\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\\\n\\\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\\\n}\\\\n#define RE_Direct\\\\t\\\\t\\\\t\\\\tRE_Direct_Physical\\\\n#define RE_Direct_RectArea\\\\t\\\\tRE_Direct_RectArea_Physical\\\\n#define RE_IndirectDiffuse\\\\t\\\\tRE_IndirectDiffuse_Physical\\\\n#define RE_IndirectSpecular\\\\t\\\\tRE_IndirectSpecular_Physical\\\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\\\n\\\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\\\n}\\\\\\\",lights_fragment_begin:\\\\\\\"\\\\nGeometricContext geometry;\\\\ngeometry.position = - vViewPosition;\\\\ngeometry.normal = normal;\\\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\tgeometry.clearcoatNormal = clearcoatNormal;\\\\n#endif\\\\nIncidentLight directLight;\\\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\\\n\\\\tPointLight pointLight;\\\\n\\\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\tPointLightShadow pointLightShadow;\\\\n\\\\t#endif\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tpointLight = pointLights[ i ];\\\\n\\\\t\\\\tgetPointLightInfo( pointLight, geometry, directLight );\\\\n\\\\t\\\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\\\n\\\\t\\\\tpointLightShadow = pointLightShadows[ i ];\\\\n\\\\t\\\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\tRE_Direct( directLight, geometry, material, reflectedLight );\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\\\n\\\\tSpotLight spotLight;\\\\n\\\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\tSpotLightShadow spotLightShadow;\\\\n\\\\t#endif\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tspotLight = spotLights[ i ];\\\\n\\\\t\\\\tgetSpotLightInfo( spotLight, geometry, directLight );\\\\n\\\\t\\\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\\\n\\\\t\\\\tspotLightShadow = spotLightShadows[ i ];\\\\n\\\\t\\\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\tRE_Direct( directLight, geometry, material, reflectedLight );\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\\\n\\\\tDirectionalLight directionalLight;\\\\n\\\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\tDirectionalLightShadow directionalLightShadow;\\\\n\\\\t#endif\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\\\n\\\\t\\\\tdirectionalLight = directionalLights[ i ];\\\\n\\\\t\\\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\\\n\\\\t\\\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\\\n\\\\t\\\\tdirectionalLightShadow = directionalLightShadows[ i ];\\\\n\\\\t\\\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\tRE_Direct( directLight, geometry, material, reflectedLight );\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\\\n\\\\tRectAreaLight rectAreaLight;\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\\\n\\\\t\\\\trectAreaLight = rectAreaLights[ i ];\\\\n\\\\t\\\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n#endif\\\\n#if defined( RE_IndirectDiffuse )\\\\n\\\\tvec3 iblIrradiance = vec3( 0.0 );\\\\n\\\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\\\n\\\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\\\n\\\\t#if ( NUM_HEMI_LIGHTS > 0 )\\\\n\\\\t\\\\t#pragma unroll_loop_start\\\\n\\\\t\\\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\\\n\\\\t\\\\t\\\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n#endif\\\\n#if defined( RE_IndirectSpecular )\\\\n\\\\tvec3 radiance = vec3( 0.0 );\\\\n\\\\tvec3 clearcoatRadiance = vec3( 0.0 );\\\\n#endif\\\\\\\",lights_fragment_maps:\\\\\\\"#if defined( RE_IndirectDiffuse )\\\\n\\\\t#ifdef USE_LIGHTMAP\\\\n\\\\t\\\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\\\n\\\\t\\\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\\\n\\\\t\\\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\\\n\\\\t\\\\t\\\\tlightMapIrradiance *= PI;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\tirradiance += lightMapIrradiance;\\\\n\\\\t#endif\\\\n\\\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\\\n\\\\t\\\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\\\n\\\\t#endif\\\\n#endif\\\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\\\n\\\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\t\\\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\\\n\\\\t#endif\\\\n#endif\\\\\\\",lights_fragment_end:\\\\\\\"#if defined( RE_IndirectDiffuse )\\\\n\\\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\\\n#endif\\\\n#if defined( RE_IndirectSpecular )\\\\n\\\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\\\n#endif\\\\\\\",logdepthbuf_fragment:\\\\\\\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\\\n\\\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\\\n#endif\\\\\\\",logdepthbuf_pars_fragment:\\\\\\\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\\\n\\\\tuniform float logDepthBufFC;\\\\n\\\\tvarying float vFragDepth;\\\\n\\\\tvarying float vIsPerspective;\\\\n#endif\\\\\\\",logdepthbuf_pars_vertex:\\\\\\\"#ifdef USE_LOGDEPTHBUF\\\\n\\\\t#ifdef USE_LOGDEPTHBUF_EXT\\\\n\\\\t\\\\tvarying float vFragDepth;\\\\n\\\\t\\\\tvarying float vIsPerspective;\\\\n\\\\t#else\\\\n\\\\t\\\\tuniform float logDepthBufFC;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",logdepthbuf_vertex:\\\\\\\"#ifdef USE_LOGDEPTHBUF\\\\n\\\\t#ifdef USE_LOGDEPTHBUF_EXT\\\\n\\\\t\\\\tvFragDepth = 1.0 + gl_Position.w;\\\\n\\\\t\\\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\\\n\\\\t#else\\\\n\\\\t\\\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\\\n\\\\t\\\\t\\\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\\\n\\\\t\\\\t\\\\tgl_Position.z *= gl_Position.w;\\\\n\\\\t\\\\t}\\\\n\\\\t#endif\\\\n#endif\\\\\\\",map_fragment:\\\\\\\"#ifdef USE_MAP\\\\n\\\\tvec4 texelColor = texture2D( map, vUv );\\\\n\\\\ttexelColor = mapTexelToLinear( texelColor );\\\\n\\\\tdiffuseColor *= texelColor;\\\\n#endif\\\\\\\",map_pars_fragment:\\\\\\\"#ifdef USE_MAP\\\\n\\\\tuniform sampler2D map;\\\\n#endif\\\\\\\",map_particle_fragment:\\\\\\\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\\\n\\\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\\\n#endif\\\\n#ifdef USE_MAP\\\\n\\\\tvec4 mapTexel = texture2D( map, uv );\\\\n\\\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\\\n#endif\\\\n#ifdef USE_ALPHAMAP\\\\n\\\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\\\n#endif\\\\\\\",map_particle_pars_fragment:\\\\\\\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\\\n\\\\tuniform mat3 uvTransform;\\\\n#endif\\\\n#ifdef USE_MAP\\\\n\\\\tuniform sampler2D map;\\\\n#endif\\\\n#ifdef USE_ALPHAMAP\\\\n\\\\tuniform sampler2D alphaMap;\\\\n#endif\\\\\\\",metalnessmap_fragment:\\\\\\\"float metalnessFactor = metalness;\\\\n#ifdef USE_METALNESSMAP\\\\n\\\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\\\n\\\\tmetalnessFactor *= texelMetalness.b;\\\\n#endif\\\\\\\",metalnessmap_pars_fragment:\\\\\\\"#ifdef USE_METALNESSMAP\\\\n\\\\tuniform sampler2D metalnessMap;\\\\n#endif\\\\\\\",morphnormal_vertex:\\\\\\\"#ifdef USE_MORPHNORMALS\\\\n\\\\tobjectNormal *= morphTargetBaseInfluence;\\\\n\\\\t#ifdef MORPHTARGETS_TEXTURE\\\\n\\\\t\\\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\\\n\\\\t\\\\t\\\\tif ( morphTargetInfluences[ i ] > 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ];\\\\n\\\\t\\\\t}\\\\n\\\\t#else\\\\n\\\\t\\\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\\\n\\\\t\\\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\\\n\\\\t\\\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\\\n\\\\t\\\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\\\n\\\\t#endif\\\\n#endif\\\\\\\",morphtarget_pars_vertex:\\\\\\\"#ifdef USE_MORPHTARGETS\\\\n\\\\tuniform float morphTargetBaseInfluence;\\\\n\\\\t#ifdef MORPHTARGETS_TEXTURE\\\\n\\\\t\\\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\\\n\\\\t\\\\tuniform sampler2DArray morphTargetsTexture;\\\\n\\\\t\\\\tuniform vec2 morphTargetsTextureSize;\\\\n\\\\t\\\\tvec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) {\\\\n\\\\t\\\\t\\\\tfloat texelIndex = float( vertexIndex * stride + offset );\\\\n\\\\t\\\\t\\\\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\\\\n\\\\t\\\\t\\\\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\\\\n\\\\t\\\\t\\\\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\\\\n\\\\t\\\\t\\\\treturn texture( morphTargetsTexture, morphUV ).xyz;\\\\n\\\\t\\\\t}\\\\n\\\\t#else\\\\n\\\\t\\\\t#ifndef USE_MORPHNORMALS\\\\n\\\\t\\\\t\\\\tuniform float morphTargetInfluences[ 8 ];\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\tuniform float morphTargetInfluences[ 4 ];\\\\n\\\\t\\\\t#endif\\\\n\\\\t#endif\\\\n#endif\\\\\\\",morphtarget_vertex:\\\\\\\"#ifdef USE_MORPHTARGETS\\\\n\\\\ttransformed *= morphTargetBaseInfluence;\\\\n\\\\t#ifdef MORPHTARGETS_TEXTURE\\\\n\\\\t\\\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\\\n\\\\t\\\\t\\\\t#ifndef USE_MORPHNORMALS\\\\n\\\\t\\\\t\\\\t\\\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ];\\\\n\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ];\\\\n\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t}\\\\n\\\\t#else\\\\n\\\\t\\\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\\\n\\\\t\\\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\\\n\\\\t\\\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\\\n\\\\t\\\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\\\n\\\\t\\\\t#ifndef USE_MORPHNORMALS\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\\\n\\\\t\\\\t\\\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\\\n\\\\t\\\\t#endif\\\\n\\\\t#endif\\\\n#endif\\\\\\\",normal_fragment_begin:\\\\\\\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\\\n#ifdef FLAT_SHADED\\\\n\\\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\\\n\\\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\\\n\\\\tvec3 normal = normalize( cross( fdx, fdy ) );\\\\n#else\\\\n\\\\tvec3 normal = normalize( vNormal );\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\tnormal = normal * faceDirection;\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tvec3 tangent = normalize( vTangent );\\\\n\\\\t\\\\tvec3 bitangent = normalize( vBitangent );\\\\n\\\\t\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\t\\\\ttangent = tangent * faceDirection;\\\\n\\\\t\\\\t\\\\tbitangent = bitangent * faceDirection;\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\\\n\\\\t\\\\t\\\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\\\n\\\\t\\\\t#endif\\\\n\\\\t#endif\\\\n#endif\\\\nvec3 geometryNormal = normal;\\\\\\\",normal_fragment_maps:\\\\\\\"#ifdef OBJECTSPACE_NORMALMAP\\\\n\\\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\\\n\\\\t#ifdef FLIP_SIDED\\\\n\\\\t\\\\tnormal = - normal;\\\\n\\\\t#endif\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\tnormal = normal * faceDirection;\\\\n\\\\t#endif\\\\n\\\\tnormal = normalize( normalMatrix * normal );\\\\n#elif defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\\\n\\\\tmapN.xy *= normalScale;\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tnormal = normalize( vTBN * mapN );\\\\n\\\\t#else\\\\n\\\\t\\\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\\\n\\\\t#endif\\\\n#elif defined( USE_BUMPMAP )\\\\n\\\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\\\n#endif\\\\\\\",normal_pars_fragment:\\\\\\\"#ifndef FLAT_SHADED\\\\n\\\\tvarying vec3 vNormal;\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tvarying vec3 vTangent;\\\\n\\\\t\\\\tvarying vec3 vBitangent;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",normal_pars_vertex:\\\\\\\"#ifndef FLAT_SHADED\\\\n\\\\tvarying vec3 vNormal;\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tvarying vec3 vTangent;\\\\n\\\\t\\\\tvarying vec3 vBitangent;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",normal_vertex:\\\\\\\"#ifndef FLAT_SHADED\\\\n\\\\tvNormal = normalize( transformedNormal );\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tvTangent = normalize( transformedTangent );\\\\n\\\\t\\\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\\\n\\\\t#endif\\\\n#endif\\\\\\\",normalmap_pars_fragment:\\\\\\\"#ifdef USE_NORMALMAP\\\\n\\\\tuniform sampler2D normalMap;\\\\n\\\\tuniform vec2 normalScale;\\\\n#endif\\\\n#ifdef OBJECTSPACE_NORMALMAP\\\\n\\\\tuniform mat3 normalMatrix;\\\\n#endif\\\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\\\n\\\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\\\n\\\\t\\\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\\\n\\\\t\\\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\\\n\\\\t\\\\tvec2 st0 = dFdx( vUv.st );\\\\n\\\\t\\\\tvec2 st1 = dFdy( vUv.st );\\\\n\\\\t\\\\tvec3 N = surf_norm;\\\\n\\\\t\\\\tvec3 q1perp = cross( q1, N );\\\\n\\\\t\\\\tvec3 q0perp = cross( N, q0 );\\\\n\\\\t\\\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\\\n\\\\t\\\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\\\n\\\\t\\\\tfloat det = max( dot( T, T ), dot( B, B ) );\\\\n\\\\t\\\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\\\n\\\\t\\\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\\\n\\\\t}\\\\n#endif\\\\\\\",clearcoat_normal_fragment_begin:\\\\\\\"#ifdef USE_CLEARCOAT\\\\n\\\\tvec3 clearcoatNormal = geometryNormal;\\\\n#endif\\\\\\\",clearcoat_normal_fragment_maps:\\\\\\\"#ifdef USE_CLEARCOAT_NORMALMAP\\\\n\\\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\\\n\\\\tclearcoatMapN.xy *= clearcoatNormalScale;\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\\\n\\\\t#else\\\\n\\\\t\\\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\\\n\\\\t#endif\\\\n#endif\\\\\\\",clearcoat_pars_fragment:\\\\\\\"#ifdef USE_CLEARCOATMAP\\\\n\\\\tuniform sampler2D clearcoatMap;\\\\n#endif\\\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\\\n\\\\tuniform sampler2D clearcoatRoughnessMap;\\\\n#endif\\\\n#ifdef USE_CLEARCOAT_NORMALMAP\\\\n\\\\tuniform sampler2D clearcoatNormalMap;\\\\n\\\\tuniform vec2 clearcoatNormalScale;\\\\n#endif\\\\\\\",output_fragment:\\\\\\\"#ifdef OPAQUE\\\\ndiffuseColor.a = 1.0;\\\\n#endif\\\\n#ifdef USE_TRANSMISSION\\\\ndiffuseColor.a *= transmissionAlpha + 0.1;\\\\n#endif\\\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\\\\\\",packing:\\\\\\\"vec3 packNormalToRGB( const in vec3 normal ) {\\\\n\\\\treturn normalize( normal ) * 0.5 + 0.5;\\\\n}\\\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\\\n\\\\treturn 2.0 * rgb.xyz - 1.0;\\\\n}\\\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\\\nconst float ShiftRight8 = 1. / 256.;\\\\nvec4 packDepthToRGBA( const in float v ) {\\\\n\\\\tvec4 r = vec4( fract( v * PackFactors ), v );\\\\n\\\\tr.yzw -= r.xyz * ShiftRight8;\\\\treturn r * PackUpscale;\\\\n}\\\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\\\n\\\\treturn dot( v, UnpackFactors );\\\\n}\\\\nvec4 pack2HalfToRGBA( vec2 v ) {\\\\n\\\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\\\n\\\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\\\n}\\\\nvec2 unpackRGBATo2Half( vec4 v ) {\\\\n\\\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\\\n}\\\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\\\n\\\\treturn ( viewZ + near ) / ( near - far );\\\\n}\\\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\\\n\\\\treturn linearClipZ * ( near - far ) - near;\\\\n}\\\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\\\n\\\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\\\n}\\\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\\\n\\\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\\\n}\\\\\\\",premultiplied_alpha_fragment:\\\\\\\"#ifdef PREMULTIPLIED_ALPHA\\\\n\\\\tgl_FragColor.rgb *= gl_FragColor.a;\\\\n#endif\\\\\\\",project_vertex:\\\\\\\"vec4 mvPosition = vec4( transformed, 1.0 );\\\\n#ifdef USE_INSTANCING\\\\n\\\\tmvPosition = instanceMatrix * mvPosition;\\\\n#endif\\\\nmvPosition = modelViewMatrix * mvPosition;\\\\ngl_Position = projectionMatrix * mvPosition;\\\\\\\",dithering_fragment:\\\\\\\"#ifdef DITHERING\\\\n\\\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\\\n#endif\\\\\\\",dithering_pars_fragment:\\\\\\\"#ifdef DITHERING\\\\n\\\\tvec3 dithering( vec3 color ) {\\\\n\\\\t\\\\tfloat grid_position = rand( gl_FragCoord.xy );\\\\n\\\\t\\\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\\\n\\\\t\\\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\\\n\\\\t\\\\treturn color + dither_shift_RGB;\\\\n\\\\t}\\\\n#endif\\\\\\\",roughnessmap_fragment:\\\\\\\"float roughnessFactor = roughness;\\\\n#ifdef USE_ROUGHNESSMAP\\\\n\\\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\\\n\\\\troughnessFactor *= texelRoughness.g;\\\\n#endif\\\\\\\",roughnessmap_pars_fragment:\\\\\\\"#ifdef USE_ROUGHNESSMAP\\\\n\\\\tuniform sampler2D roughnessMap;\\\\n#endif\\\\\\\",shadowmap_pars_fragment:\\\\\\\"#ifdef USE_SHADOWMAP\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tstruct DirectionalLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\t\\\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t#endif\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tstruct SpotLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\t\\\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t#endif\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tstruct PointLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraNear;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraFar;\\\\n\\\\t\\\\t};\\\\n\\\\t\\\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t#endif\\\\n\\\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\\\n\\\\t\\\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\\\n\\\\t}\\\\n\\\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\\\n\\\\t\\\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\\\n\\\\t}\\\\n\\\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\\\n\\\\t\\\\tfloat occlusion = 1.0;\\\\n\\\\t\\\\tvec2 distribution = texture2DDistribution( shadow, uv );\\\\n\\\\t\\\\tfloat hard_shadow = step( compare , distribution.x );\\\\n\\\\t\\\\tif (hard_shadow != 1.0 ) {\\\\n\\\\t\\\\t\\\\tfloat distance = compare - distribution.x ;\\\\n\\\\t\\\\t\\\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\\\n\\\\t\\\\t\\\\tfloat softness_probability = variance / (variance + distance * distance );\\\\t\\\\t\\\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\\\t\\\\t\\\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn occlusion;\\\\n\\\\t}\\\\n\\\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\\\n\\\\t\\\\tfloat shadow = 1.0;\\\\n\\\\t\\\\tshadowCoord.xyz /= shadowCoord.w;\\\\n\\\\t\\\\tshadowCoord.z += shadowBias;\\\\n\\\\t\\\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\\\n\\\\t\\\\tbool inFrustum = all( inFrustumVec );\\\\n\\\\t\\\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\\\n\\\\t\\\\tbool frustumTest = all( frustumTestVec );\\\\n\\\\t\\\\tif ( frustumTest ) {\\\\n\\\\t\\\\t#if defined( SHADOWMAP_TYPE_PCF )\\\\n\\\\t\\\\t\\\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat dx0 = - texelSize.x * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dy0 = - texelSize.y * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dx1 = + texelSize.x * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dy1 = + texelSize.y * shadowRadius;\\\\n\\\\t\\\\t\\\\tfloat dx2 = dx0 / 2.0;\\\\n\\\\t\\\\t\\\\tfloat dy2 = dy0 / 2.0;\\\\n\\\\t\\\\t\\\\tfloat dx3 = dx1 / 2.0;\\\\n\\\\t\\\\t\\\\tfloat dy3 = dy1 / 2.0;\\\\n\\\\t\\\\t\\\\tshadow = (\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\\\n\\\\t\\\\t\\\\t) * ( 1.0 / 17.0 );\\\\n\\\\t\\\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\\\n\\\\t\\\\t\\\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat dx = texelSize.x;\\\\n\\\\t\\\\t\\\\tfloat dy = texelSize.y;\\\\n\\\\t\\\\t\\\\tvec2 uv = shadowCoord.xy;\\\\n\\\\t\\\\t\\\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\\\n\\\\t\\\\t\\\\tuv -= f * texelSize;\\\\n\\\\t\\\\t\\\\tshadow = (\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.x ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.x ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.y ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.y ) +\\\\n\\\\t\\\\t\\\\t\\\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  f.x ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  f.x ),\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t f.y )\\\\n\\\\t\\\\t\\\\t) * ( 1.0 / 9.0 );\\\\n\\\\t\\\\t#elif defined( SHADOWMAP_TYPE_VSM )\\\\n\\\\t\\\\t\\\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn shadow;\\\\n\\\\t}\\\\n\\\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\\\n\\\\t\\\\tvec3 absV = abs( v );\\\\n\\\\t\\\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\\\n\\\\t\\\\tabsV *= scaleToCube;\\\\n\\\\t\\\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\\\n\\\\t\\\\tvec2 planar = v.xy;\\\\n\\\\t\\\\tfloat almostATexel = 1.5 * texelSizeY;\\\\n\\\\t\\\\tfloat almostOne = 1.0 - almostATexel;\\\\n\\\\t\\\\tif ( absV.z >= almostOne ) {\\\\n\\\\t\\\\t\\\\tif ( v.z > 0.0 )\\\\n\\\\t\\\\t\\\\t\\\\tplanar.x = 4.0 - v.x;\\\\n\\\\t\\\\t} else if ( absV.x >= almostOne ) {\\\\n\\\\t\\\\t\\\\tfloat signX = sign( v.x );\\\\n\\\\t\\\\t\\\\tplanar.x = v.z * signX + 2.0 * signX;\\\\n\\\\t\\\\t} else if ( absV.y >= almostOne ) {\\\\n\\\\t\\\\t\\\\tfloat signY = sign( v.y );\\\\n\\\\t\\\\t\\\\tplanar.x = v.x + 2.0 * signY + 2.0;\\\\n\\\\t\\\\t\\\\tplanar.y = v.z * signY - 2.0;\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\\\n\\\\t}\\\\n\\\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\\\n\\\\t\\\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\\\n\\\\t\\\\tvec3 lightToPosition = shadowCoord.xyz;\\\\n\\\\t\\\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\\\t\\\\tdp += shadowBias;\\\\n\\\\t\\\\tvec3 bd3D = normalize( lightToPosition );\\\\n\\\\t\\\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\\\n\\\\t\\\\t\\\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\\\n\\\\t\\\\t\\\\treturn (\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\\\n\\\\t\\\\t\\\\t\\\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\\\n\\\\t\\\\t\\\\t) * ( 1.0 / 9.0 );\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n#endif\\\\\\\",shadowmap_pars_vertex:\\\\\\\"#ifdef USE_SHADOWMAP\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tstruct DirectionalLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\t\\\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\\\n\\\\t#endif\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tstruct SpotLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t};\\\\n\\\\t\\\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\\\n\\\\t#endif\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t\\\\tstruct PointLightShadow {\\\\n\\\\t\\\\t\\\\tfloat shadowBias;\\\\n\\\\t\\\\t\\\\tfloat shadowNormalBias;\\\\n\\\\t\\\\t\\\\tfloat shadowRadius;\\\\n\\\\t\\\\t\\\\tvec2 shadowMapSize;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraNear;\\\\n\\\\t\\\\t\\\\tfloat shadowCameraFar;\\\\n\\\\t\\\\t};\\\\n\\\\t\\\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\\\n\\\\t#endif\\\\n#endif\\\\\\\",shadowmap_vertex:\\\\\\\"#ifdef USE_SHADOWMAP\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\t\\\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\\\n\\\\t\\\\tvec4 shadowWorldPosition;\\\\n\\\\t#endif\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\t\\\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\\\n\\\\t\\\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\t\\\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\\\n\\\\t\\\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\t\\\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\\\n\\\\t\\\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n#endif\\\\\\\",shadowmask_pars_fragment:\\\\\\\"float getShadowMask() {\\\\n\\\\tfloat shadow = 1.0;\\\\n\\\\t#ifdef USE_SHADOWMAP\\\\n\\\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\\\n\\\\tDirectionalLightShadow directionalLight;\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\t\\\\tdirectionalLight = directionalLightShadows[ i ];\\\\n\\\\t\\\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n\\\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\\\n\\\\tSpotLightShadow spotLight;\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\t\\\\tspotLight = spotLightShadows[ i ];\\\\n\\\\t\\\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n\\\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\\\n\\\\tPointLightShadow pointLight;\\\\n\\\\t#pragma unroll_loop_start\\\\n\\\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\\\n\\\\t\\\\tpointLight = pointLightShadows[ i ];\\\\n\\\\t\\\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\\\n\\\\t}\\\\n\\\\t#pragma unroll_loop_end\\\\n\\\\t#endif\\\\n\\\\t#endif\\\\n\\\\treturn shadow;\\\\n}\\\\\\\",skinbase_vertex:\\\\\\\"#ifdef USE_SKINNING\\\\n\\\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\\\n\\\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\\\n\\\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\\\n\\\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\\\n#endif\\\\\\\",skinning_pars_vertex:\\\\\\\"#ifdef USE_SKINNING\\\\n\\\\tuniform mat4 bindMatrix;\\\\n\\\\tuniform mat4 bindMatrixInverse;\\\\n\\\\t#ifdef BONE_TEXTURE\\\\n\\\\t\\\\tuniform highp sampler2D boneTexture;\\\\n\\\\t\\\\tuniform int boneTextureSize;\\\\n\\\\t\\\\tmat4 getBoneMatrix( const in float i ) {\\\\n\\\\t\\\\t\\\\tfloat j = i * 4.0;\\\\n\\\\t\\\\t\\\\tfloat x = mod( j, float( boneTextureSize ) );\\\\n\\\\t\\\\t\\\\tfloat y = floor( j / float( boneTextureSize ) );\\\\n\\\\t\\\\t\\\\tfloat dx = 1.0 / float( boneTextureSize );\\\\n\\\\t\\\\t\\\\tfloat dy = 1.0 / float( boneTextureSize );\\\\n\\\\t\\\\t\\\\ty = dy * ( y + 0.5 );\\\\n\\\\t\\\\t\\\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\\\n\\\\t\\\\t\\\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\\\n\\\\t\\\\t\\\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\\\n\\\\t\\\\t\\\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\\\n\\\\t\\\\t\\\\tmat4 bone = mat4( v1, v2, v3, v4 );\\\\n\\\\t\\\\t\\\\treturn bone;\\\\n\\\\t\\\\t}\\\\n\\\\t#else\\\\n\\\\t\\\\tuniform mat4 boneMatrices[ MAX_BONES ];\\\\n\\\\t\\\\tmat4 getBoneMatrix( const in float i ) {\\\\n\\\\t\\\\t\\\\tmat4 bone = boneMatrices[ int(i) ];\\\\n\\\\t\\\\t\\\\treturn bone;\\\\n\\\\t\\\\t}\\\\n\\\\t#endif\\\\n#endif\\\\\\\",skinning_vertex:\\\\\\\"#ifdef USE_SKINNING\\\\n\\\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\\\n\\\\tvec4 skinned = vec4( 0.0 );\\\\n\\\\tskinned += boneMatX * skinVertex * skinWeight.x;\\\\n\\\\tskinned += boneMatY * skinVertex * skinWeight.y;\\\\n\\\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\\\n\\\\tskinned += boneMatW * skinVertex * skinWeight.w;\\\\n\\\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\\\n#endif\\\\\\\",skinnormal_vertex:\\\\\\\"#ifdef USE_SKINNING\\\\n\\\\tmat4 skinMatrix = mat4( 0.0 );\\\\n\\\\tskinMatrix += skinWeight.x * boneMatX;\\\\n\\\\tskinMatrix += skinWeight.y * boneMatY;\\\\n\\\\tskinMatrix += skinWeight.z * boneMatZ;\\\\n\\\\tskinMatrix += skinWeight.w * boneMatW;\\\\n\\\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\\\n\\\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\\\n\\\\t#ifdef USE_TANGENT\\\\n\\\\t\\\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\\\n\\\\t#endif\\\\n#endif\\\\\\\",specularmap_fragment:\\\\\\\"float specularStrength;\\\\n#ifdef USE_SPECULARMAP\\\\n\\\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\\\n\\\\tspecularStrength = texelSpecular.r;\\\\n#else\\\\n\\\\tspecularStrength = 1.0;\\\\n#endif\\\\\\\",specularmap_pars_fragment:\\\\\\\"#ifdef USE_SPECULARMAP\\\\n\\\\tuniform sampler2D specularMap;\\\\n#endif\\\\\\\",tonemapping_fragment:\\\\\\\"#if defined( TONE_MAPPING )\\\\n\\\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\\\n#endif\\\\\\\",tonemapping_pars_fragment:\\\\\\\"#ifndef saturate\\\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\\\n#endif\\\\nuniform float toneMappingExposure;\\\\nvec3 LinearToneMapping( vec3 color ) {\\\\n\\\\treturn toneMappingExposure * color;\\\\n}\\\\nvec3 ReinhardToneMapping( vec3 color ) {\\\\n\\\\tcolor *= toneMappingExposure;\\\\n\\\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\\\n}\\\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\\\n\\\\tcolor *= toneMappingExposure;\\\\n\\\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\\\n\\\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\\\n}\\\\nvec3 RRTAndODTFit( vec3 v ) {\\\\n\\\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\\\n\\\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\\\n\\\\treturn a / b;\\\\n}\\\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\\\n\\\\tconst mat3 ACESInputMat = mat3(\\\\n\\\\t\\\\tvec3( 0.59719, 0.07600, 0.02840 ),\\\\t\\\\tvec3( 0.35458, 0.90834, 0.13383 ),\\\\n\\\\t\\\\tvec3( 0.04823, 0.01566, 0.83777 )\\\\n\\\\t);\\\\n\\\\tconst mat3 ACESOutputMat = mat3(\\\\n\\\\t\\\\tvec3(  1.60475, -0.10208, -0.00327 ),\\\\t\\\\tvec3( -0.53108,  1.10813, -0.07276 ),\\\\n\\\\t\\\\tvec3( -0.07367, -0.00605,  1.07602 )\\\\n\\\\t);\\\\n\\\\tcolor *= toneMappingExposure / 0.6;\\\\n\\\\tcolor = ACESInputMat * color;\\\\n\\\\tcolor = RRTAndODTFit( color );\\\\n\\\\tcolor = ACESOutputMat * color;\\\\n\\\\treturn saturate( color );\\\\n}\\\\nvec3 CustomToneMapping( vec3 color ) { return color; }\\\\\\\",transmission_fragment:\\\\\\\"#ifdef USE_TRANSMISSION\\\\n\\\\tfloat transmissionAlpha = 1.0;\\\\n\\\\tfloat transmissionFactor = transmission;\\\\n\\\\tfloat thicknessFactor = thickness;\\\\n\\\\t#ifdef USE_TRANSMISSIONMAP\\\\n\\\\t\\\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_THICKNESSMAP\\\\n\\\\t\\\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\\\n\\\\t#endif\\\\n\\\\tvec3 pos = vWorldPosition;\\\\n\\\\tvec3 v = normalize( cameraPosition - pos );\\\\n\\\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\\\n\\\\tvec4 transmission = getIBLVolumeRefraction(\\\\n\\\\t\\\\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\\\\n\\\\t\\\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\\\n\\\\t\\\\tattenuationTint, attenuationDistance );\\\\n\\\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\\\\n\\\\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\\\\n#endif\\\\\\\",transmission_pars_fragment:\\\\\\\"#ifdef USE_TRANSMISSION\\\\n\\\\tuniform float transmission;\\\\n\\\\tuniform float thickness;\\\\n\\\\tuniform float attenuationDistance;\\\\n\\\\tuniform vec3 attenuationTint;\\\\n\\\\t#ifdef USE_TRANSMISSIONMAP\\\\n\\\\t\\\\tuniform sampler2D transmissionMap;\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_THICKNESSMAP\\\\n\\\\t\\\\tuniform sampler2D thicknessMap;\\\\n\\\\t#endif\\\\n\\\\tuniform vec2 transmissionSamplerSize;\\\\n\\\\tuniform sampler2D transmissionSamplerMap;\\\\n\\\\tuniform mat4 modelMatrix;\\\\n\\\\tuniform mat4 projectionMatrix;\\\\n\\\\tvarying vec3 vWorldPosition;\\\\n\\\\tvec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {\\\\n\\\\t\\\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\\\n\\\\t\\\\tvec3 modelScale;\\\\n\\\\t\\\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\\\n\\\\t\\\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\\\n\\\\t\\\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\\\n\\\\t\\\\treturn normalize( refractionVector ) * thickness * modelScale;\\\\n\\\\t}\\\\n\\\\tfloat applyIorToRoughness( float roughness, float ior ) {\\\\n\\\\t\\\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\\\n\\\\t}\\\\n\\\\tvec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior ) {\\\\n\\\\t\\\\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\\\n\\\\t\\\\t#ifdef TEXTURE_LOD_EXT\\\\n\\\\t\\\\t\\\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\tvec3 applyVolumeAttenuation( vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance ) {\\\\n\\\\t\\\\tif ( attenuationDistance == 0.0 ) {\\\\n\\\\t\\\\t\\\\treturn radiance;\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\\\n\\\\t\\\\t\\\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\\\t\\\\t\\\\treturn transmittance * radiance;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\tvec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 diffuseColor, vec3 specularColor, float specularF90,\\\\n\\\\t\\\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\\\n\\\\t\\\\tvec3 attenuationColor, float attenuationDistance ) {\\\\n\\\\t\\\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\\\n\\\\t\\\\tvec3 refractedRayExit = position + transmissionRay;\\\\n\\\\t\\\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\\\n\\\\t\\\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\\\n\\\\t\\\\trefractionCoords += 1.0;\\\\n\\\\t\\\\trefractionCoords /= 2.0;\\\\n\\\\t\\\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\\\n\\\\t\\\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\\\n\\\\t\\\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\\\n\\\\t\\\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\\\n\\\\t}\\\\n#endif\\\\\\\",uv_pars_fragment:\\\\\\\"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\\\n\\\\tvarying vec2 vUv;\\\\n#endif\\\\\\\",uv_pars_vertex:\\\\\\\"#ifdef USE_UV\\\\n\\\\t#ifdef UVS_VERTEX_ONLY\\\\n\\\\t\\\\tvec2 vUv;\\\\n\\\\t#else\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\t#endif\\\\n\\\\tuniform mat3 uvTransform;\\\\n#endif\\\\\\\",uv_vertex:\\\\\\\"#ifdef USE_UV\\\\n\\\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\\\n#endif\\\\\\\",uv2_pars_fragment:\\\\\\\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\\\n\\\\tvarying vec2 vUv2;\\\\n#endif\\\\\\\",uv2_pars_vertex:\\\\\\\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\\\n\\\\tattribute vec2 uv2;\\\\n\\\\tvarying vec2 vUv2;\\\\n\\\\tuniform mat3 uv2Transform;\\\\n#endif\\\\\\\",uv2_vertex:\\\\\\\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\\\n\\\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\\\n#endif\\\\\\\",worldpos_vertex:\\\\\\\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\\\n\\\\tvec4 worldPosition = vec4( transformed, 1.0 );\\\\n\\\\t#ifdef USE_INSTANCING\\\\n\\\\t\\\\tworldPosition = instanceMatrix * worldPosition;\\\\n\\\\t#endif\\\\n\\\\tworldPosition = modelMatrix * worldPosition;\\\\n#endif\\\\\\\",background_vert:\\\\\\\"varying vec2 vUv;\\\\nuniform mat3 uvTransform;\\\\nvoid main() {\\\\n\\\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\\\n\\\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\\\n}\\\\\\\",background_frag:\\\\\\\"uniform sampler2D t2D;\\\\nvarying vec2 vUv;\\\\nvoid main() {\\\\n\\\\tvec4 texColor = texture2D( t2D, vUv );\\\\n\\\\tgl_FragColor = mapTexelToLinear( texColor );\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n}\\\\\\\",cube_vert:\\\\\\\"varying vec3 vWorldDirection;\\\\n#include <common>\\\\nvoid main() {\\\\n\\\\tvWorldDirection = transformDirection( position, modelMatrix );\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\tgl_Position.z = gl_Position.w;\\\\n}\\\\\\\",cube_frag:\\\\\\\"#include <envmap_common_pars_fragment>\\\\nuniform float opacity;\\\\nvarying vec3 vWorldDirection;\\\\n#include <cube_uv_reflection_fragment>\\\\nvoid main() {\\\\n\\\\tvec3 vReflect = vWorldDirection;\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\tgl_FragColor = envColor;\\\\n\\\\tgl_FragColor.a *= opacity;\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n}\\\\\\\",depth_vert:\\\\\\\"#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvarying vec2 vHighPrecisionZW;\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#ifdef USE_DISPLACEMENTMAP\\\\n\\\\t\\\\t#include <beginnormal_vertex>\\\\n\\\\t\\\\t#include <morphnormal_vertex>\\\\n\\\\t\\\\t#include <skinnormal_vertex>\\\\n\\\\t#endif\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\tvHighPrecisionZW = gl_Position.zw;\\\\n}\\\\\\\",depth_frag:\\\\\\\"#if DEPTH_PACKING == 3200\\\\n\\\\tuniform float opacity;\\\\n#endif\\\\n#include <common>\\\\n#include <packing>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvarying vec2 vHighPrecisionZW;\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( 1.0 );\\\\n\\\\t#if DEPTH_PACKING == 3200\\\\n\\\\t\\\\tdiffuseColor.a = opacity;\\\\n\\\\t#endif\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\\\n\\\\t#if DEPTH_PACKING == 3200\\\\n\\\\t\\\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\\\n\\\\t#elif DEPTH_PACKING == 3201\\\\n\\\\t\\\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\\\n\\\\t#endif\\\\n}\\\\\\\",distanceRGBA_vert:\\\\\\\"#define DISTANCE\\\\nvarying vec3 vWorldPosition;\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#ifdef USE_DISPLACEMENTMAP\\\\n\\\\t\\\\t#include <beginnormal_vertex>\\\\n\\\\t\\\\t#include <morphnormal_vertex>\\\\n\\\\t\\\\t#include <skinnormal_vertex>\\\\n\\\\t#endif\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\tvWorldPosition = worldPosition.xyz;\\\\n}\\\\\\\",distanceRGBA_frag:\\\\\\\"#define DISTANCE\\\\nuniform vec3 referencePosition;\\\\nuniform float nearDistance;\\\\nuniform float farDistance;\\\\nvarying vec3 vWorldPosition;\\\\n#include <common>\\\\n#include <packing>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main () {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( 1.0 );\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\tfloat dist = length( vWorldPosition - referencePosition );\\\\n\\\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\\\n\\\\tdist = saturate( dist );\\\\n\\\\tgl_FragColor = packDepthToRGBA( dist );\\\\n}\\\\\\\",equirect_vert:\\\\\\\"varying vec3 vWorldDirection;\\\\n#include <common>\\\\nvoid main() {\\\\n\\\\tvWorldDirection = transformDirection( position, modelMatrix );\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <project_vertex>\\\\n}\\\\\\\",equirect_frag:\\\\\\\"uniform sampler2D tEquirect;\\\\nvarying vec3 vWorldDirection;\\\\n#include <common>\\\\nvoid main() {\\\\n\\\\tvec3 direction = normalize( vWorldDirection );\\\\n\\\\tvec2 sampleUV = equirectUv( direction );\\\\n\\\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\\\n\\\\tgl_FragColor = mapTexelToLinear( texColor );\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n}\\\\\\\",linedashed_vert:\\\\\\\"uniform float scale;\\\\nattribute float lineDistance;\\\\nvarying float vLineDistance;\\\\n#include <common>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\tvLineDistance = scale * lineDistance;\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",linedashed_frag:\\\\\\\"uniform vec3 diffuse;\\\\nuniform float opacity;\\\\nuniform float dashSize;\\\\nuniform float totalSize;\\\\nvarying float vLineDistance;\\\\n#include <common>\\\\n#include <color_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\\\n\\\\t\\\\tdiscard;\\\\n\\\\t}\\\\n\\\\tvec3 outgoingLight = vec3( 0.0 );\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\toutgoingLight = diffuseColor.rgb;\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n}\\\\\\\",meshbasic_vert:\\\\\\\"#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <envmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\\\n\\\\t\\\\t#include <beginnormal_vertex>\\\\n\\\\t\\\\t#include <morphnormal_vertex>\\\\n\\\\t\\\\t#include <skinbase_vertex>\\\\n\\\\t\\\\t#include <skinnormal_vertex>\\\\n\\\\t\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#endif\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <envmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",meshbasic_frag:\\\\\\\"uniform vec3 diffuse;\\\\nuniform float opacity;\\\\n#ifndef FLAT_SHADED\\\\n\\\\tvarying vec3 vNormal;\\\\n#endif\\\\n#include <common>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_pars_fragment>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <specularmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <specularmap_fragment>\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\t#ifdef USE_LIGHTMAP\\\\n\\\\t\\\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\\\n\\\\t#else\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\\\n\\\\t#endif\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\\\n\\\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\\\\",meshlambert_vert:\\\\\\\"#define LAMBERT\\\\nvarying vec3 vLightFront;\\\\nvarying vec3 vIndirectFront;\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvarying vec3 vLightBack;\\\\n\\\\tvarying vec3 vIndirectBack;\\\\n#endif\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <envmap_pars_vertex>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <envmap_vertex>\\\\n\\\\t#include <lights_lambert_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",meshlambert_frag:\\\\\\\"uniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform float opacity;\\\\nvarying vec3 vLightFront;\\\\nvarying vec3 vIndirectFront;\\\\n#ifdef DOUBLE_SIDED\\\\n\\\\tvarying vec3 vLightBack;\\\\n\\\\tvarying vec3 vIndirectBack;\\\\n#endif\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_pars_fragment>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <fog_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <shadowmask_pars_fragment>\\\\n#include <specularmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <specularmap_fragment>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\\\n\\\\t#else\\\\n\\\\t\\\\treflectedLight.indirectDiffuse += vIndirectFront;\\\\n\\\\t#endif\\\\n\\\\t#include <lightmap_fragment>\\\\n\\\\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\\\\n\\\\t#ifdef DOUBLE_SIDED\\\\n\\\\t\\\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\\\n\\\\t#else\\\\n\\\\t\\\\treflectedLight.directDiffuse = vLightFront;\\\\n\\\\t#endif\\\\n\\\\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\\\\",meshmatcap_vert:\\\\\\\"#define MATCAP\\\\nvarying vec3 vViewPosition;\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n}\\\\\\\",meshmatcap_frag:\\\\\\\"#define MATCAP\\\\nuniform vec3 diffuse;\\\\nuniform float opacity;\\\\nuniform sampler2D matcap;\\\\nvarying vec3 vViewPosition;\\\\n#include <common>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <normal_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\tvec3 viewDir = normalize( vViewPosition );\\\\n\\\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\\\n\\\\tvec3 y = cross( viewDir, x );\\\\n\\\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\\\n\\\\t#ifdef USE_MATCAP\\\\n\\\\t\\\\tvec4 matcapColor = texture2D( matcap, uv );\\\\n\\\\t\\\\tmatcapColor = matcapTexelToLinear( matcapColor );\\\\n\\\\t#else\\\\n\\\\t\\\\tvec4 matcapColor = vec4( 1.0 );\\\\n\\\\t#endif\\\\n\\\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\\\\",meshnormal_vert:\\\\\\\"#define NORMAL\\\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\tvarying vec3 vViewPosition;\\\\n#endif\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n#endif\\\\n}\\\\\\\",meshnormal_frag:\\\\\\\"#define NORMAL\\\\nuniform float opacity;\\\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\\\n\\\\tvarying vec3 vViewPosition;\\\\n#endif\\\\n#include <packing>\\\\n#include <uv_pars_fragment>\\\\n#include <normal_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\\\n}\\\\\\\",meshphong_vert:\\\\\\\"#define PHONG\\\\nvarying vec3 vViewPosition;\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <envmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <envmap_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",meshphong_frag:\\\\\\\"#define PHONG\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform vec3 specular;\\\\nuniform float shininess;\\\\nuniform float opacity;\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_pars_fragment>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <normal_pars_fragment>\\\\n#include <lights_phong_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <specularmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <specularmap_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\t#include <lights_phong_fragment>\\\\n\\\\t#include <lights_fragment_begin>\\\\n\\\\t#include <lights_fragment_maps>\\\\n\\\\t#include <lights_fragment_end>\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\\\n\\\\t#include <envmap_fragment>\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\\\\",meshphysical_vert:\\\\\\\"#define STANDARD\\\\nvarying vec3 vViewPosition;\\\\n#ifdef USE_TRANSMISSION\\\\n\\\\tvarying vec3 vWorldPosition;\\\\n#endif\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n#ifdef USE_TRANSMISSION\\\\n\\\\tvWorldPosition = worldPosition.xyz;\\\\n#endif\\\\n}\\\\\\\",meshphysical_frag:\\\\\\\"#define STANDARD\\\\n#ifdef PHYSICAL\\\\n\\\\t#define IOR\\\\n\\\\t#define SPECULAR\\\\n#endif\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform float roughness;\\\\nuniform float metalness;\\\\nuniform float opacity;\\\\n#ifdef IOR\\\\n\\\\tuniform float ior;\\\\n#endif\\\\n#ifdef SPECULAR\\\\n\\\\tuniform float specularIntensity;\\\\n\\\\tuniform vec3 specularTint;\\\\n\\\\t#ifdef USE_SPECULARINTENSITYMAP\\\\n\\\\t\\\\tuniform sampler2D specularIntensityMap;\\\\n\\\\t#endif\\\\n\\\\t#ifdef USE_SPECULARTINTMAP\\\\n\\\\t\\\\tuniform sampler2D specularTintMap;\\\\n\\\\t#endif\\\\n#endif\\\\n#ifdef USE_CLEARCOAT\\\\n\\\\tuniform float clearcoat;\\\\n\\\\tuniform float clearcoatRoughness;\\\\n#endif\\\\n#ifdef USE_SHEEN\\\\n\\\\tuniform vec3 sheenTint;\\\\n\\\\tuniform float sheenRoughness;\\\\n#endif\\\\nvarying vec3 vViewPosition;\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <cube_uv_reflection_fragment>\\\\n#include <envmap_common_pars_fragment>\\\\n#include <envmap_physical_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <lights_pars_begin>\\\\n#include <normal_pars_fragment>\\\\n#include <lights_physical_pars_fragment>\\\\n#include <transmission_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <clearcoat_pars_fragment>\\\\n#include <roughnessmap_pars_fragment>\\\\n#include <metalnessmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <roughnessmap_fragment>\\\\n\\\\t#include <metalnessmap_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\t#include <clearcoat_normal_fragment_begin>\\\\n\\\\t#include <clearcoat_normal_fragment_maps>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\t#include <lights_physical_fragment>\\\\n\\\\t#include <lights_fragment_begin>\\\\n\\\\t#include <lights_fragment_maps>\\\\n\\\\t#include <lights_fragment_end>\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\\\n\\\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\\\n\\\\t#include <transmission_fragment>\\\\n\\\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\\\n\\\\t#ifdef USE_CLEARCOAT\\\\n\\\\t\\\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\\\n\\\\t\\\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\\\n\\\\t\\\\toutgoingLight = outgoingLight * ( 1.0 - clearcoat * Fcc ) + clearcoatSpecular * clearcoat;\\\\n\\\\t#endif\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\\\\",meshtoon_vert:\\\\\\\"#define TOON\\\\nvarying vec3 vViewPosition;\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <uv2_pars_vertex>\\\\n#include <displacementmap_pars_vertex>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <normal_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\t#include <uv2_vertex>\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <normal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <displacementmap_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\tvViewPosition = - mvPosition.xyz;\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",meshtoon_frag:\\\\\\\"#define TOON\\\\nuniform vec3 diffuse;\\\\nuniform vec3 emissive;\\\\nuniform float opacity;\\\\n#include <common>\\\\n#include <packing>\\\\n#include <dithering_pars_fragment>\\\\n#include <color_pars_fragment>\\\\n#include <uv_pars_fragment>\\\\n#include <uv2_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <aomap_pars_fragment>\\\\n#include <lightmap_pars_fragment>\\\\n#include <emissivemap_pars_fragment>\\\\n#include <gradientmap_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <normal_pars_fragment>\\\\n#include <lights_toon_pars_fragment>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <bumpmap_pars_fragment>\\\\n#include <normalmap_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\\\n\\\\tvec3 totalEmissiveRadiance = emissive;\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\t#include <normal_fragment_begin>\\\\n\\\\t#include <normal_fragment_maps>\\\\n\\\\t#include <emissivemap_fragment>\\\\n\\\\t#include <lights_toon_fragment>\\\\n\\\\t#include <lights_fragment_begin>\\\\n\\\\t#include <lights_fragment_maps>\\\\n\\\\t#include <lights_fragment_end>\\\\n\\\\t#include <aomap_fragment>\\\\n\\\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n\\\\t#include <dithering_fragment>\\\\n}\\\\\\\",points_vert:\\\\\\\"uniform float size;\\\\nuniform float scale;\\\\n#include <common>\\\\n#include <color_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <color_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\tgl_PointSize = size;\\\\n\\\\t#ifdef USE_SIZEATTENUATION\\\\n\\\\t\\\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\\\n\\\\t\\\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\\\n\\\\t#endif\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",points_frag:\\\\\\\"uniform vec3 diffuse;\\\\nuniform float opacity;\\\\n#include <common>\\\\n#include <color_pars_fragment>\\\\n#include <map_particle_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec3 outgoingLight = vec3( 0.0 );\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_particle_fragment>\\\\n\\\\t#include <color_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\toutgoingLight = diffuseColor.rgb;\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n\\\\t#include <premultiplied_alpha_fragment>\\\\n}\\\\\\\",shadow_vert:\\\\\\\"#include <common>\\\\n#include <fog_pars_vertex>\\\\n#include <morphtarget_pars_vertex>\\\\n#include <skinning_pars_vertex>\\\\n#include <shadowmap_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <beginnormal_vertex>\\\\n\\\\t#include <morphnormal_vertex>\\\\n\\\\t#include <skinbase_vertex>\\\\n\\\\t#include <skinnormal_vertex>\\\\n\\\\t#include <defaultnormal_vertex>\\\\n\\\\t#include <begin_vertex>\\\\n\\\\t#include <morphtarget_vertex>\\\\n\\\\t#include <skinning_vertex>\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <shadowmap_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",shadow_frag:\\\\\\\"uniform vec3 color;\\\\nuniform float opacity;\\\\n#include <common>\\\\n#include <packing>\\\\n#include <fog_pars_fragment>\\\\n#include <bsdfs>\\\\n#include <lights_pars_begin>\\\\n#include <shadowmap_pars_fragment>\\\\n#include <shadowmask_pars_fragment>\\\\nvoid main() {\\\\n\\\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n}\\\\\\\",sprite_vert:\\\\\\\"uniform float rotation;\\\\nuniform vec2 center;\\\\n#include <common>\\\\n#include <uv_pars_vertex>\\\\n#include <fog_pars_vertex>\\\\n#include <logdepthbuf_pars_vertex>\\\\n#include <clipping_planes_pars_vertex>\\\\nvoid main() {\\\\n\\\\t#include <uv_vertex>\\\\n\\\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\\\n\\\\tvec2 scale;\\\\n\\\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\\\n\\\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\\\n\\\\t#ifndef USE_SIZEATTENUATION\\\\n\\\\t\\\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\\\n\\\\t\\\\tif ( isPerspective ) scale *= - mvPosition.z;\\\\n\\\\t#endif\\\\n\\\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\\\n\\\\tvec2 rotatedPosition;\\\\n\\\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\\\n\\\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\\\n\\\\tmvPosition.xy += rotatedPosition;\\\\n\\\\tgl_Position = projectionMatrix * mvPosition;\\\\n\\\\t#include <logdepthbuf_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\t#include <fog_vertex>\\\\n}\\\\\\\",sprite_frag:\\\\\\\"uniform vec3 diffuse;\\\\nuniform float opacity;\\\\n#include <common>\\\\n#include <uv_pars_fragment>\\\\n#include <map_pars_fragment>\\\\n#include <alphamap_pars_fragment>\\\\n#include <alphatest_pars_fragment>\\\\n#include <fog_pars_fragment>\\\\n#include <logdepthbuf_pars_fragment>\\\\n#include <clipping_planes_pars_fragment>\\\\nvoid main() {\\\\n\\\\t#include <clipping_planes_fragment>\\\\n\\\\tvec3 outgoingLight = vec3( 0.0 );\\\\n\\\\tvec4 diffuseColor = vec4( diffuse, opacity );\\\\n\\\\t#include <logdepthbuf_fragment>\\\\n\\\\t#include <map_fragment>\\\\n\\\\t#include <alphamap_fragment>\\\\n\\\\t#include <alphatest_fragment>\\\\n\\\\toutgoingLight = diffuseColor.rgb;\\\\n\\\\t#include <output_fragment>\\\\n\\\\t#include <tonemapping_fragment>\\\\n\\\\t#include <encodings_fragment>\\\\n\\\\t#include <fog_fragment>\\\\n}\\\\\\\"},KT={common:{diffuse:{value:new $w(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new mb},uv2Transform:{value:new mb},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new _b(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new $w(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new $w(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new mb}},sprite:{diffuse:{value:new $w(16777215)},opacity:{value:1},center:{value:new _b(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new mb}}},QT={basic:{uniforms:PT([KT.common,KT.specularmap,KT.envmap,KT.aomap,KT.lightmap,KT.fog]),vertexShader:ZT.meshbasic_vert,fragmentShader:ZT.meshbasic_frag},lambert:{uniforms:PT([KT.common,KT.specularmap,KT.envmap,KT.aomap,KT.lightmap,KT.emissivemap,KT.fog,KT.lights,{emissive:{value:new $w(0)}}]),vertexShader:ZT.meshlambert_vert,fragmentShader:ZT.meshlambert_frag},phong:{uniforms:PT([KT.common,KT.specularmap,KT.envmap,KT.aomap,KT.lightmap,KT.emissivemap,KT.bumpmap,KT.normalmap,KT.displacementmap,KT.fog,KT.lights,{emissive:{value:new $w(0)},specular:{value:new $w(1118481)},shininess:{value:30}}]),vertexShader:ZT.meshphong_vert,fragmentShader:ZT.meshphong_frag},standard:{uniforms:PT([KT.common,KT.envmap,KT.aomap,KT.lightmap,KT.emissivemap,KT.bumpmap,KT.normalmap,KT.displacementmap,KT.roughnessmap,KT.metalnessmap,KT.fog,KT.lights,{emissive:{value:new $w(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ZT.meshphysical_vert,fragmentShader:ZT.meshphysical_frag},toon:{uniforms:PT([KT.common,KT.aomap,KT.lightmap,KT.emissivemap,KT.bumpmap,KT.normalmap,KT.displacementmap,KT.gradientmap,KT.fog,KT.lights,{emissive:{value:new $w(0)}}]),vertexShader:ZT.meshtoon_vert,fragmentShader:ZT.meshtoon_frag},matcap:{uniforms:PT([KT.common,KT.bumpmap,KT.normalmap,KT.displacementmap,KT.fog,{matcap:{value:null}}]),vertexShader:ZT.meshmatcap_vert,fragmentShader:ZT.meshmatcap_frag},points:{uniforms:PT([KT.points,KT.fog]),vertexShader:ZT.points_vert,fragmentShader:ZT.points_frag},dashed:{uniforms:PT([KT.common,KT.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ZT.linedashed_vert,fragmentShader:ZT.linedashed_frag},depth:{uniforms:PT([KT.common,KT.displacementmap]),vertexShader:ZT.depth_vert,fragmentShader:ZT.depth_frag},normal:{uniforms:PT([KT.common,KT.bumpmap,KT.normalmap,KT.displacementmap,{opacity:{value:1}}]),vertexShader:ZT.meshnormal_vert,fragmentShader:ZT.meshnormal_frag},sprite:{uniforms:PT([KT.sprite,KT.fog]),vertexShader:ZT.sprite_vert,fragmentShader:ZT.sprite_frag},background:{uniforms:{uvTransform:{value:new mb},t2D:{value:null}},vertexShader:ZT.background_vert,fragmentShader:ZT.background_frag},cube:{uniforms:PT([KT.envmap,{opacity:{value:1}}]),vertexShader:ZT.cube_vert,fragmentShader:ZT.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ZT.equirect_vert,fragmentShader:ZT.equirect_frag},distanceRGBA:{uniforms:PT([KT.common,KT.displacementmap,{referencePosition:{value:new Sb},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ZT.distanceRGBA_vert,fragmentShader:ZT.distanceRGBA_frag},shadow:{uniforms:PT([KT.lights,KT.fog,{color:{value:new $w(0)},opacity:{value:1}}]),vertexShader:ZT.shadow_vert,fragmentShader:ZT.shadow_frag}};function tA(t,e,n,i,s){const r=new $w(0);let o,a,l=0,c=null,h=0,u=null;function d(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,s)}return{getClearColor:function(){return r},setClearColor:function(t,e=1){r.set(t),l=e,d(r,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t,d(r,l)},render:function(n,s){let p=!1,_=!0===s.isScene?s.background:null;_&&_.isTexture&&(_=e.get(_));const m=t.xr,f=m.getSession&&m.getSession();f&&\\\\\\\"additive\\\\\\\"===f.environmentBlendMode&&(_=null),null===_?d(r,l):_&&_.isColor&&(d(_,1),p=!0),(t.autoClear||p)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),_&&(_.isCubeTexture||_.mapping===vx)?(void 0===a&&(a=new CT(new LT(1,1,1),new IT({name:\\\\\\\"BackgroundCubeMaterial\\\\\\\",uniforms:OT(QT.cube.uniforms),vertexShader:QT.cube.vertexShader,fragmentShader:QT.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute(\\\\\\\"normal\\\\\\\"),a.geometry.deleteAttribute(\\\\\\\"uv\\\\\\\"),a.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(a.material,\\\\\\\"envMap\\\\\\\",{get:function(){return this.uniforms.envMap.value}}),i.update(a)),a.material.uniforms.envMap.value=_,a.material.uniforms.flipEnvMap.value=_.isCubeTexture&&!1===_.isRenderTargetTexture?-1:1,c===_&&h===_.version&&u===t.toneMapping||(a.material.needsUpdate=!0,c=_,h=_.version,u=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null)):_&&_.isTexture&&(void 0===o&&(o=new CT(new JT(2,2),new IT({name:\\\\\\\"BackgroundMaterial\\\\\\\",uniforms:OT(QT.background.uniforms),vertexShader:QT.background.vertexShader,fragmentShader:QT.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute(\\\\\\\"normal\\\\\\\"),Object.defineProperty(o.material,\\\\\\\"map\\\\\\\",{get:function(){return this.uniforms.t2D.value}}),i.update(o)),o.material.uniforms.t2D.value=_,!0===_.matrixAutoUpdate&&_.updateMatrix(),o.material.uniforms.uvTransform.value.copy(_.matrix),c===_&&h===_.version&&u===t.toneMapping||(o.material.needsUpdate=!0,c=_,h=_.version,u=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null))}}}function eA(t,e,n,i){const s=t.getParameter(34921),r=i.isWebGL2?null:e.get(\\\\\\\"OES_vertex_array_object\\\\\\\"),o=i.isWebGL2||null!==r,a={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):r.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):r.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t<s;t++)e[t]=0,n[t]=0,i[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function _(t){m(t,0)}function m(n,s){const r=c.newAttributes,o=c.enabledAttributes,a=c.attributeDivisors;if(r[n]=1,0===o[n]&&(t.enableVertexAttribArray(n),o[n]=1),a[n]!==s){(i.isWebGL2?t:e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"))[i.isWebGL2?\\\\\\\"vertexAttribDivisor\\\\\\\":\\\\\\\"vertexAttribDivisorANGLE\\\\\\\"](n,s),a[n]=s}}function f(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,s=n.length;i<s;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function g(e,n,s,r,o,a){!0!==i.isWebGL2||5124!==s&&5125!==s?t.vertexAttribPointer(e,n,s,r,o,a):t.vertexAttribIPointer(e,n,s,o,a)}function v(){y(),c!==l&&(c=l,h(c.object))}function y(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(s,l,u,v,y){let x=!1;if(o){const e=function(e,n,s){const o=!0===s.wireframe;let l=a[e.id];void 0===l&&(l={},a[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[o];void 0===h&&(h=d(i.isWebGL2?t.createVertexArray():r.createVertexArrayOES()),c[o]=h);return h}(v,u,l);c!==e&&(c=e,h(c.object)),x=function(t,e){const n=c.attributes,i=t.attributes;let s=0;for(const t in i){const e=n[t],r=i[t];if(void 0===e)return!0;if(e.attribute!==r)return!0;if(e.data!==r.data)return!0;s++}return c.attributesNum!==s||c.index!==e}(v,y),x&&function(t,e){const n={},i=t.attributes;let s=0;for(const t in i){const e=i[t],r={};r.attribute=e,e.data&&(r.data=e.data),n[t]=r,s++}c.attributes=n,c.attributesNum=s,c.index=e}(v,y)}else{const t=!0===l.wireframe;c.geometry===v.id&&c.program===u.id&&c.wireframe===t||(c.geometry=v.id,c.program=u.id,c.wireframe=t,x=!0)}!0===s.isInstancedMesh&&(x=!0),null!==y&&n.update(y,34963),x&&(!function(s,r,o,a){if(!1===i.isWebGL2&&(s.isInstancedMesh||a.isInstancedBufferGeometry)&&null===e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"))return;p();const l=a.attributes,c=o.getAttributes(),h=r.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let r=l[e];if(void 0===r&&(\\\\\\\"instanceMatrix\\\\\\\"===e&&s.instanceMatrix&&(r=s.instanceMatrix),\\\\\\\"instanceColor\\\\\\\"===e&&s.instanceColor&&(r=s.instanceColor)),void 0!==r){const e=r.normalized,o=r.itemSize,l=n.get(r);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(r.isInterleavedBufferAttribute){const n=r.data,l=n.stride,d=r.offset;if(n&&n.isInstancedInterleavedBuffer){for(let t=0;t<i.locationSize;t++)m(i.location+t,n.meshPerAttribute);!0!==s.isInstancedMesh&&void 0===a._maxInstanceCount&&(a._maxInstanceCount=n.meshPerAttribute*n.count)}else for(let t=0;t<i.locationSize;t++)_(i.location+t);t.bindBuffer(34962,c);for(let t=0;t<i.locationSize;t++)g(i.location+t,o/i.locationSize,h,e,l*u,(d+o/i.locationSize*t)*u)}else{if(r.isInstancedBufferAttribute){for(let t=0;t<i.locationSize;t++)m(i.location+t,r.meshPerAttribute);!0!==s.isInstancedMesh&&void 0===a._maxInstanceCount&&(a._maxInstanceCount=r.meshPerAttribute*r.count)}else for(let t=0;t<i.locationSize;t++)_(i.location+t);t.bindBuffer(34962,c);for(let t=0;t<i.locationSize;t++)g(i.location+t,o/i.locationSize,h,e,o*u,o/i.locationSize*t*u)}}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i.location,n);break;case 3:t.vertexAttrib3fv(i.location,n);break;case 4:t.vertexAttrib4fv(i.location,n);break;default:t.vertexAttrib1fv(i.location,n)}}}}f()}(s,l,u,v),null!==y&&t.bindBuffer(34963,n.get(y).buffer))},reset:v,resetDefaultState:y,dispose:function(){v();for(const t in a){const e=a[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete a[t]}},releaseStatesOfGeometry:function(t){if(void 0===a[t.id])return;const e=a[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete a[t.id]},releaseStatesOfProgram:function(t){for(const e in a){const n=a[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:_,disableUnusedAttributes:f}}function nA(t,e,n,i){const s=i.isWebGL2;let r;this.setMode=function(t){r=t},this.render=function(e,i){t.drawArrays(r,e,i),n.update(i,r,1)},this.renderInstances=function(i,o,a){if(0===a)return;let l,c;if(s)l=t,c=\\\\\\\"drawArraysInstanced\\\\\\\";else if(l=e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"),c=\\\\\\\"drawArraysInstancedANGLE\\\\\\\",null===l)return void console.error(\\\\\\\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\\\\\\\");l[c](r,i,o,a),n.update(o,r,a)}}function iA(t,e,n){let i;function s(e){if(\\\\\\\"highp\\\\\\\"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return\\\\\\\"highp\\\\\\\";e=\\\\\\\"mediump\\\\\\\"}return\\\\\\\"mediump\\\\\\\"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?\\\\\\\"mediump\\\\\\\":\\\\\\\"lowp\\\\\\\"}const r=\\\\\\\"undefined\\\\\\\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||\\\\\\\"undefined\\\\\\\"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let o=void 0!==n.precision?n.precision:\\\\\\\"highp\\\\\\\";const a=s(o);a!==o&&(console.warn(\\\\\\\"THREE.WebGLRenderer:\\\\\\\",o,\\\\\\\"not supported, using\\\\\\\",a,\\\\\\\"instead.\\\\\\\"),o=a);const l=r||e.has(\\\\\\\"WEBGL_draw_buffers\\\\\\\"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),_=t.getParameter(34921),m=t.getParameter(36347),f=t.getParameter(36348),g=t.getParameter(36349),v=u>0,y=r||e.has(\\\\\\\"OES_texture_float\\\\\\\");return{isWebGL2:r,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\")){const n=e.get(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:s,precision:o,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:_,maxVertexUniforms:m,maxVaryings:f,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:r?t.getParameter(36183):0}}function sA(t){const e=this;let n=null,i=0,s=!1,r=!1;const o=new jT,a=new mb,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,s){const r=null!==t?t.length:0;let c=null;if(0!==r){if(c=l.value,!0!==s||null===c){const e=i+4*r,s=n.matrixWorldInverse;a.getNormalMatrix(s),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==r;++e,n+=4)o.copy(t[e]).applyMatrix4(s,a),o.normal.toArray(c,n),c[n+3]=o.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=r,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,r){const o=0!==t.length||e||0!==i||s;return s=e,n=h(t,r,0),i=t.length,o},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1,c()},this.setState=function(e,o,a){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,_=t.get(e);if(!s||null===u||0===u.length||r&&!p)r?h(null):c();else{const t=r?0:i,e=4*t;let s=_.clippingState||null;l.value=s,s=h(u,o,e,a);for(let t=0;t!==e;++t)s[t]=n[t];_.clippingState=s,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function rA(t){let e=new WeakMap;function n(t,e){return e===fx?t.mapping=_x:e===gx&&(t.mapping=mx),t}function i(t){const n=t.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",i);const s=e.get(n);void 0!==s&&(e.delete(n),s.dispose())}return{get:function(s){if(s&&s.isTexture&&!1===s.isRenderTargetTexture){const r=s.mapping;if(r===fx||r===gx){if(e.has(s)){return n(e.get(s).texture,s.mapping)}{const r=s.image;if(r&&r.height>0){const o=t.getRenderTarget(),a=new UT(r.height/2);return a.fromEquirectangularTexture(t,s),e.set(s,a),t.setRenderTarget(o),s.addEventListener(\\\\\\\"dispose\\\\\\\",i),n(a.texture,s.mapping)}return null}}}return s},dispose:function(){e=new WeakMap}}}QT.physical={uniforms:PT([QT.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new _b(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenTint:{value:new $w(0)},sheenRoughness:{value:0},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new _b},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationTint:{value:new $w(0)},specularIntensity:{value:0},specularIntensityMap:{value:null},specularTint:{value:new $w(1,1,1)},specularTintMap:{value:null}}]),vertexShader:ZT.meshphysical_vert,fragmentShader:ZT.meshphysical_frag};class oA extends FT{constructor(t=-1,e=1,n=1,i=-1,s=.1,r=2e3){super(),this.type=\\\\\\\"OrthographicCamera\\\\\\\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=s,this.far=r,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,r){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=r,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let s=n-t,r=n+t,o=i+e,a=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=t*this.view.offsetX,r=s+t*this.view.width,o-=e*this.view.offsetY,a=o-e*this.view.height}this.projectionMatrix.makeOrthographic(s,r,o,a,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}oA.prototype.isOrthographicCamera=!0;class aA extends IT{constructor(t){super(t),this.type=\\\\\\\"RawShaderMaterial\\\\\\\"}}aA.prototype.isRawShaderMaterial=!0;const lA=Math.pow(2,8),cA=[.125,.215,.35,.446,.526,.582],hA=5+cA.length,uA=20,dA={[qx]:0,[Xx]:1,[$x]:2,3004:3,3005:4,3006:5,[Yx]:6},pA=new oA,{_lodPlanes:_A,_sizeLods:mA,_sigmas:fA}=AA(),gA=new $w;let vA=null;const yA=(1+Math.sqrt(5))/2,xA=1/yA,bA=[new Sb(1,1,1),new Sb(-1,1,1),new Sb(1,1,-1),new Sb(-1,1,-1),new Sb(0,yA,xA),new Sb(0,yA,-xA),new Sb(xA,0,yA),new Sb(-xA,0,yA),new Sb(yA,xA,0),new Sb(-yA,xA,0)];class wA{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._blurMaterial=function(t){const e=new Float32Array(t),n=new Sb(0,1,0);return new aA({name:\\\\\\\"SphericalGaussianBlur\\\\\\\",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n},inputEncoding:{value:dA[3e3]},outputEncoding:{value:dA[3e3]}},vertexShader:NA(),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${LA()}\\\\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})}(uA),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){vA=this._renderer.getRenderTarget();const s=this._allocateTargets();return this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=CA(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=SA(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t<_A.length;t++)_A[t].dispose()}_cleanup(t){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(vA),t.scissorTest=!1,EA(t,0,0,t.width,t.height)}_fromTexture(t){vA=this._renderer.getRenderTarget();const e=this._allocateTargets(t);return this._textureToCubeUV(t,e),this._applyPMREM(e),this._cleanup(e),e}_allocateTargets(t){const e={magFilter:Tx,minFilter:Tx,generateMipmaps:!1,type:Nx,format:1023,encoding:TA(t)?t.encoding:$x,depthBuffer:!1},n=MA(e);return n.depthBuffer=!t,this._pingPongRenderTarget=MA(e),n}_compileMaterial(t){const e=new CT(_A[0],t);this._renderer.compile(e,pA)}_sceneToCubeUV(t,e,n,i){const s=new DT(90,1,e,n),r=[1,-1,1,1,1,1],o=[1,1,1,-1,-1,-1],a=this._renderer,l=a.autoClear,c=a.outputEncoding,h=a.toneMapping;a.getClearColor(gA),a.toneMapping=0,a.outputEncoding=qx,a.autoClear=!1;const u=new Jw({name:\\\\\\\"PMREM.Background\\\\\\\",side:1,depthWrite:!1,depthTest:!1}),d=new CT(new LT,u);let p=!1;const _=t.background;_?_.isColor&&(u.color.copy(_),t.background=null,p=!0):(u.color.copy(gA),p=!0);for(let e=0;e<6;e++){const n=e%3;0==n?(s.up.set(0,r[e],0),s.lookAt(o[e],0,0)):1==n?(s.up.set(0,0,r[e]),s.lookAt(0,o[e],0)):(s.up.set(0,r[e],0),s.lookAt(0,0,o[e])),EA(i,n*lA,e>2?lA:0,lA,lA),a.setRenderTarget(i),p&&a.render(d,s),a.render(t,s)}d.geometry.dispose(),d.material.dispose(),a.toneMapping=h,a.outputEncoding=c,a.autoClear=l,t.background=_}_setEncoding(t,e){!0===this._renderer.capabilities.isWebGL2&&e.format===Dx&&e.type===Nx&&e.encoding===Xx?t.value=dA[3e3]:t.value=dA[e.encoding]}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=CA()):null==this._equirectShader&&(this._equirectShader=SA());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,s=new CT(_A[0],i),r=i.uniforms;r.envMap.value=t,t.isCubeTexture||r.texelSize.value.set(1/t.image.width,1/t.image.height),this._setEncoding(r.inputEncoding,t),this._setEncoding(r.outputEncoding,e.texture),EA(e,0,0,3*lA,2*lA),n.setRenderTarget(e),n.render(s,pA)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;e<hA;e++){const n=Math.sqrt(fA[e]*fA[e]-fA[e-1]*fA[e-1]),i=bA[(e-1)%bA.length];this._blur(t,e-1,e,n,i)}e.autoClear=n}_blur(t,e,n,i,s){const r=this._pingPongRenderTarget;this._halfBlur(t,r,e,n,i,\\\\\\\"latitudinal\\\\\\\",s),this._halfBlur(r,t,n,n,i,\\\\\\\"longitudinal\\\\\\\",s)}_halfBlur(t,e,n,i,s,r,o){const a=this._renderer,l=this._blurMaterial;\\\\\\\"latitudinal\\\\\\\"!==r&&\\\\\\\"longitudinal\\\\\\\"!==r&&console.error(\\\\\\\"blur direction must be either latitudinal or longitudinal!\\\\\\\");const c=new CT(_A[i],l),h=l.uniforms,u=mA[n]-1,d=isFinite(s)?Math.PI/(2*u):2*Math.PI/39,p=s/d,_=isFinite(s)?1+Math.floor(3*p):uA;_>uA&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${_} samples when the maximum is set to 20`);const m=[];let f=0;for(let t=0;t<uA;++t){const e=t/p,n=Math.exp(-e*e/2);m.push(n),0==t?f+=n:t<_&&(f+=2*n)}for(let t=0;t<m.length;t++)m[t]=m[t]/f;h.envMap.value=t.texture,h.samples.value=_,h.weights.value=m,h.latitudinal.value=\\\\\\\"latitudinal\\\\\\\"===r,o&&(h.poleAxis.value=o),h.dTheta.value=d,h.mipInt.value=8-n,this._setEncoding(h.inputEncoding,t.texture),this._setEncoding(h.outputEncoding,t.texture);const g=mA[i];EA(e,3*Math.max(0,lA-2*g),(0===i?0:2*lA)+2*g*(i>4?i-8+4:0),3*g,2*g),a.setRenderTarget(e),a.render(c,pA)}}function TA(t){return void 0!==t&&t.type===Nx&&(t.encoding===qx||t.encoding===Xx||t.encoding===Yx)}function AA(){const t=[],e=[],n=[];let i=8;for(let s=0;s<hA;s++){const r=Math.pow(2,i);e.push(r);let o=1/r;s>4?o=cA[s-8+4-1]:0==s&&(o=0),n.push(o);const a=1/(r-1),l=-a/2,c=1+a/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,_=2,m=1,f=new Float32Array(p*d*u),g=new Float32Array(_*d*u),v=new Float32Array(m*d*u);for(let t=0;t<u;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];f.set(i,p*d*t),g.set(h,_*d*t);const s=[t,t,t,t,t,t];v.set(s,m*d*t)}const y=new hT;y.setAttribute(\\\\\\\"position\\\\\\\",new Qw(f,p)),y.setAttribute(\\\\\\\"uv\\\\\\\",new Qw(g,_)),y.setAttribute(\\\\\\\"faceIndex\\\\\\\",new Qw(v,m)),t.push(y),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function MA(t){const e=new Ab(3*lA,3*lA,t);return e.texture.mapping=vx,e.texture.name=\\\\\\\"PMREM.cubeUv\\\\\\\",e.scissorTest=!0,e}function EA(t,e,n,i,s){t.viewport.set(e,n,i,s),t.scissor.set(e,n,i,s)}function SA(){const t=new _b(1,1);return new aA({name:\\\\\\\"EquirectangularToCubeUV\\\\\\\",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:dA[3e3]},outputEncoding:{value:dA[3e3]}},vertexShader:NA(),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${LA()}\\\\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 CA(){return new aA({name:\\\\\\\"CubemapToCubeUV\\\\\\\",uniforms:{envMap:{value:null},inputEncoding:{value:dA[3e3]},outputEncoding:{value:dA[3e3]}},vertexShader:NA(),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${LA()}\\\\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`,blending:0,depthTest:!1,depthWrite:!1})}function NA(){return\\\\\\\"\\\\n\\\\n\\\\t\\\\tprecision mediump float;\\\\n\\\\t\\\\tprecision mediump int;\\\\n\\\\n\\\\t\\\\tattribute vec3 position;\\\\n\\\\t\\\\tattribute vec2 uv;\\\\n\\\\t\\\\tattribute float faceIndex;\\\\n\\\\n\\\\t\\\\tvarying vec3 vOutputDirection;\\\\n\\\\n\\\\t\\\\t// RH coordinate system; PMREM face-indexing convention\\\\n\\\\t\\\\tvec3 getDirection( vec2 uv, float face ) {\\\\n\\\\n\\\\t\\\\t\\\\tuv = 2.0 * uv - 1.0;\\\\n\\\\n\\\\t\\\\t\\\\tvec3 direction = vec3( uv, 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\tif ( face == 0.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 1.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.xzy;\\\\n\\\\t\\\\t\\\\t\\\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 2.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 3.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.zyx;\\\\n\\\\t\\\\t\\\\t\\\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 4.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection = direction.xzy;\\\\n\\\\t\\\\t\\\\t\\\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( face == 5.0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\treturn direction;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvOutputDirection = getDirection( uv, faceIndex );\\\\n\\\\t\\\\t\\\\tgl_Position = vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\\\\"}function LA(){return\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform int inputEncoding;\\\\n\\\\t\\\\tuniform int outputEncoding;\\\\n\\\\n\\\\t\\\\t#include <encodings_pars_fragment>\\\\n\\\\n\\\\t\\\\tvec4 inputTexelToLinear( vec4 value ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( inputEncoding == 0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn value;\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 1 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn sRGBToLinear( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 2 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBEToLinear( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 3 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBMToLinear( value, 7.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 4 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBMToLinear( value, 16.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( inputEncoding == 5 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn RGBDToLinear( value, 256.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn GammaToLinear( value, 2.2 );\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec4 linearToOutputTexel( vec4 value ) {\\\\n\\\\n\\\\t\\\\t\\\\tif ( outputEncoding == 0 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn value;\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 1 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearTosRGB( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 2 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBE( value );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 3 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBM( value, 7.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 4 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBM( value, 16.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else if ( outputEncoding == 5 ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToRGBD( value, 256.0 );\\\\n\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\treturn LinearToGamma( value, 2.2 );\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec4 envMapTexelToLinear( vec4 color ) {\\\\n\\\\n\\\\t\\\\t\\\\treturn inputTexelToLinear( color );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\\\\"}function OA(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",i);const s=e.get(n);void 0!==s&&(e.delete(n),s.dispose())}return{get:function(s){if(s&&s.isTexture&&!1===s.isRenderTargetTexture){const r=s.mapping,o=r===fx||r===gx,a=r===_x||r===mx;if(o||a){if(e.has(s))return e.get(s).texture;{const r=s.image;if(o&&r&&r.height>0||a&&r&&function(t){let e=0;const n=6;for(let i=0;i<n;i++)void 0!==t[i]&&e++;return e===n}(r)){const r=t.getRenderTarget();null===n&&(n=new wA(t));const a=o?n.fromEquirectangular(s):n.fromCubemap(s);return e.set(s,a),t.setRenderTarget(r),s.addEventListener(\\\\\\\"dispose\\\\\\\",i),a.texture}return null}}}return s},dispose:function(){e=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function PA(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case\\\\\\\"WEBGL_depth_texture\\\\\\\":i=t.getExtension(\\\\\\\"WEBGL_depth_texture\\\\\\\")||t.getExtension(\\\\\\\"MOZ_WEBGL_depth_texture\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_WEBGL_depth_texture\\\\\\\");break;case\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\":i=t.getExtension(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\")||t.getExtension(\\\\\\\"MOZ_EXT_texture_filter_anisotropic\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_EXT_texture_filter_anisotropic\\\\\\\");break;case\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\":i=t.getExtension(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\")||t.getExtension(\\\\\\\"MOZ_WEBGL_compressed_texture_s3tc\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_WEBGL_compressed_texture_s3tc\\\\\\\");break;case\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\":i=t.getExtension(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\")||t.getExtension(\\\\\\\"WEBKIT_WEBGL_compressed_texture_pvrtc\\\\\\\");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n(\\\\\\\"EXT_color_buffer_float\\\\\\\"):(n(\\\\\\\"WEBGL_depth_texture\\\\\\\"),n(\\\\\\\"OES_texture_float\\\\\\\"),n(\\\\\\\"OES_texture_half_float\\\\\\\"),n(\\\\\\\"OES_texture_half_float_linear\\\\\\\"),n(\\\\\\\"OES_standard_derivatives\\\\\\\"),n(\\\\\\\"OES_element_index_uint\\\\\\\"),n(\\\\\\\"OES_vertex_array_object\\\\\\\"),n(\\\\\\\"ANGLE_instanced_arrays\\\\\\\")),n(\\\\\\\"OES_texture_float_linear\\\\\\\"),n(\\\\\\\"EXT_color_buffer_half_float\\\\\\\")},get:function(t){const e=n(t);return null===e&&console.warn(\\\\\\\"THREE.WebGLRenderer: \\\\\\\"+t+\\\\\\\" extension not supported.\\\\\\\"),e}}}function RA(t,e,n,i){const s={},r=new WeakMap;function o(t){const a=t.target;null!==a.index&&e.remove(a.index);for(const t in a.attributes)e.remove(a.attributes[t]);a.removeEventListener(\\\\\\\"dispose\\\\\\\",o),delete s[a.id];const l=r.get(a);l&&(e.remove(l),r.delete(a)),i.releaseStatesOfGeometry(a),!0===a.isInstancedBufferGeometry&&delete a._maxInstanceCount,n.memory.geometries--}function a(t){const n=[],i=t.index,s=t.attributes.position;let o=0;if(null!==i){const t=i.array;o=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],s=t[e+1],r=t[e+2];n.push(i,s,s,r,r,i)}}else{const t=s.array;o=s.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,s=e+2;n.push(t,i,i,s,s,t)}}const a=new(fb(n)>65535?eT:tT)(n,1);a.version=o;const l=r.get(t);l&&e.remove(l),r.set(t,a)}return{get:function(t,e){return!0===s[e.id]||(e.addEventListener(\\\\\\\"dispose\\\\\\\",o),s[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t++)e.update(n[t],34962)}},getWireframeAttribute:function(t){const e=r.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&a(t)}else a(t);return r.get(t)}}}function IA(t,e,n,i){const s=i.isWebGL2;let r,o,a;this.setMode=function(t){r=t},this.setIndex=function(t){o=t.type,a=t.bytesPerElement},this.render=function(e,i){t.drawElements(r,i,o,e*a),n.update(i,r,1)},this.renderInstances=function(i,l,c){if(0===c)return;let h,u;if(s)h=t,u=\\\\\\\"drawElementsInstanced\\\\\\\";else if(h=e.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\"),u=\\\\\\\"drawElementsInstancedANGLE\\\\\\\",null===h)return void console.error(\\\\\\\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\\\\\\\");h[u](r,l,o,i*a,c),n.update(l,r,c)}}function FA(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,i){switch(e.calls++,n){case 4:e.triangles+=i*(t/3);break;case 1:e.lines+=i*(t/2);break;case 3:e.lines+=i*(t-1);break;case 2:e.lines+=i*t;break;case 0:e.points+=i*t;break;default:console.error(\\\\\\\"THREE.WebGLInfo: Unknown draw mode:\\\\\\\",n)}}}}class DA extends bb{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=Tx,this.minFilter=Tx,this.wrapR=bx,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}function BA(t,e){return t[0]-e[0]}function zA(t,e){return Math.abs(e[1])-Math.abs(t[1])}function kA(t,e){let n=1;const i=e.isInterleavedBufferAttribute?e.data.array:e.array;i instanceof Int8Array?n=127:i instanceof Int16Array?n=32767:i instanceof Int32Array?n=2147483647:console.error(\\\\\\\"THREE.WebGLMorphtargets: Unsupported morph attribute data type: \\\\\\\",i),t.divideScalar(n)}function UA(t,e,n){const i={},s=new Float32Array(8),r=new WeakMap,o=new Sb,a=[];for(let t=0;t<8;t++)a[t]=[t,0];return{update:function(l,c,h,u){const d=l.morphTargetInfluences;if(!0===e.isWebGL2){const i=c.morphAttributes.position.length;let s=r.get(c);if(void 0===s||s.count!==i){void 0!==s&&s.texture.dispose();const t=void 0!==c.morphAttributes.normal,n=c.morphAttributes.position,a=c.morphAttributes.normal||[],l=!0===t?2:1;let h=c.attributes.position.count*l,u=1;h>e.maxTextureSize&&(u=Math.ceil(h/e.maxTextureSize),h=e.maxTextureSize);const d=new Float32Array(h*u*4*i),p=new DA(d,h,u,i);p.format=Dx,p.type=Px;const _=4*l;for(let e=0;e<i;e++){const i=n[e],s=a[e],r=h*u*4*e;for(let e=0;e<i.count;e++){o.fromBufferAttribute(i,e),!0===i.normalized&&kA(o,i);const n=e*_;d[r+n+0]=o.x,d[r+n+1]=o.y,d[r+n+2]=o.z,d[r+n+3]=0,!0===t&&(o.fromBufferAttribute(s,e),!0===s.normalized&&kA(o,s),d[r+n+4]=o.x,d[r+n+5]=o.y,d[r+n+6]=o.z,d[r+n+7]=0)}}s={count:i,texture:p,size:new _b(h,u)},r.set(c,s)}let a=0;for(let t=0;t<d.length;t++)a+=d[t];const l=c.morphTargetsRelative?1:1-a;u.getUniforms().setValue(t,\\\\\\\"morphTargetBaseInfluence\\\\\\\",l),u.getUniforms().setValue(t,\\\\\\\"morphTargetInfluences\\\\\\\",d),u.getUniforms().setValue(t,\\\\\\\"morphTargetsTexture\\\\\\\",s.texture,n),u.getUniforms().setValue(t,\\\\\\\"morphTargetsTextureSize\\\\\\\",s.size)}else{const e=void 0===d?0:d.length;let n=i[c.id];if(void 0===n||n.length!==e){n=[];for(let t=0;t<e;t++)n[t]=[t,0];i[c.id]=n}for(let t=0;t<e;t++){const e=n[t];e[0]=t,e[1]=d[t]}n.sort(zA);for(let t=0;t<8;t++)t<e&&n[t][1]?(a[t][0]=n[t][0],a[t][1]=n[t][1]):(a[t][0]=Number.MAX_SAFE_INTEGER,a[t][1]=0);a.sort(BA);const r=c.morphAttributes.position,o=c.morphAttributes.normal;let l=0;for(let t=0;t<8;t++){const e=a[t],n=e[0],i=e[1];n!==Number.MAX_SAFE_INTEGER&&i?(r&&c.getAttribute(\\\\\\\"morphTarget\\\\\\\"+t)!==r[n]&&c.setAttribute(\\\\\\\"morphTarget\\\\\\\"+t,r[n]),o&&c.getAttribute(\\\\\\\"morphNormal\\\\\\\"+t)!==o[n]&&c.setAttribute(\\\\\\\"morphNormal\\\\\\\"+t,o[n]),s[t]=i,l+=i):(r&&!0===c.hasAttribute(\\\\\\\"morphTarget\\\\\\\"+t)&&c.deleteAttribute(\\\\\\\"morphTarget\\\\\\\"+t),o&&!0===c.hasAttribute(\\\\\\\"morphNormal\\\\\\\"+t)&&c.deleteAttribute(\\\\\\\"morphNormal\\\\\\\"+t),s[t]=0)}const h=c.morphTargetsRelative?1:1-l;u.getUniforms().setValue(t,\\\\\\\"morphTargetBaseInfluence\\\\\\\",h),u.getUniforms().setValue(t,\\\\\\\"morphTargetInfluences\\\\\\\",s)}}}}function GA(t,e,n,i){let s=new WeakMap;function r(t){const e=t.target;e.removeEventListener(\\\\\\\"dispose\\\\\\\",r),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const o=i.render.frame,a=t.geometry,l=e.get(t,a);return s.get(l)!==o&&(e.update(l),s.set(l,o)),t.isInstancedMesh&&(!1===t.hasEventListener(\\\\\\\"dispose\\\\\\\",r)&&t.addEventListener(\\\\\\\"dispose\\\\\\\",r),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){s=new WeakMap}}}DA.prototype.isDataTexture2DArray=!0;class VA extends bb{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=Tx,this.minFilter=Tx,this.wrapR=bx,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}VA.prototype.isDataTexture3D=!0;const HA=new bb,jA=new DA,WA=new VA,qA=new kT,XA=[],YA=[],$A=new Float32Array(16),JA=new Float32Array(9),ZA=new Float32Array(4);function KA(t,e,n){const i=t[0];if(i<=0||i>0)return t;const s=e*n;let r=XA[s];if(void 0===r&&(r=new Float32Array(s),XA[s]=r),0!==e){i.toArray(r,0);for(let i=1,s=0;i!==e;++i)s+=n,t[i].toArray(r,s)}return r}function QA(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function tM(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function eM(t,e){let n=YA[e];void 0===n&&(n=new Int32Array(e),YA[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function nM(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function iM(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(QA(n,e))return;t.uniform2fv(this.addr,e),tM(n,e)}}function sM(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(QA(n,e))return;t.uniform3fv(this.addr,e),tM(n,e)}}function rM(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(QA(n,e))return;t.uniform4fv(this.addr,e),tM(n,e)}}function oM(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(QA(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),tM(n,e)}else{if(QA(n,i))return;ZA.set(i),t.uniformMatrix2fv(this.addr,!1,ZA),tM(n,i)}}function aM(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(QA(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),tM(n,e)}else{if(QA(n,i))return;JA.set(i),t.uniformMatrix3fv(this.addr,!1,JA),tM(n,i)}}function lM(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(QA(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),tM(n,e)}else{if(QA(n,i))return;$A.set(i),t.uniformMatrix4fv(this.addr,!1,$A),tM(n,i)}}function cM(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function hM(t,e){const n=this.cache;QA(n,e)||(t.uniform2iv(this.addr,e),tM(n,e))}function uM(t,e){const n=this.cache;QA(n,e)||(t.uniform3iv(this.addr,e),tM(n,e))}function dM(t,e){const n=this.cache;QA(n,e)||(t.uniform4iv(this.addr,e),tM(n,e))}function pM(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function _M(t,e){const n=this.cache;QA(n,e)||(t.uniform2uiv(this.addr,e),tM(n,e))}function mM(t,e){const n=this.cache;QA(n,e)||(t.uniform3uiv(this.addr,e),tM(n,e))}function fM(t,e){const n=this.cache;QA(n,e)||(t.uniform4uiv(this.addr,e),tM(n,e))}function gM(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.safeSetTexture2D(e||HA,s)}function vM(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.setTexture3D(e||WA,s)}function yM(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.safeSetTextureCube(e||qA,s)}function xM(t,e,n){const i=this.cache,s=n.allocateTextureUnit();i[0]!==s&&(t.uniform1i(this.addr,s),i[0]=s),n.setTexture2DArray(e||jA,s)}function bM(t,e){t.uniform1fv(this.addr,e)}function wM(t,e){const n=KA(e,this.size,2);t.uniform2fv(this.addr,n)}function TM(t,e){const n=KA(e,this.size,3);t.uniform3fv(this.addr,n)}function AM(t,e){const n=KA(e,this.size,4);t.uniform4fv(this.addr,n)}function MM(t,e){const n=KA(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function EM(t,e){const n=KA(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function SM(t,e){const n=KA(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function CM(t,e){t.uniform1iv(this.addr,e)}function NM(t,e){t.uniform2iv(this.addr,e)}function LM(t,e){t.uniform3iv(this.addr,e)}function OM(t,e){t.uniform4iv(this.addr,e)}function PM(t,e){t.uniform1uiv(this.addr,e)}function RM(t,e){t.uniform2uiv(this.addr,e)}function IM(t,e){t.uniform3uiv(this.addr,e)}function FM(t,e){t.uniform4uiv(this.addr,e)}function DM(t,e,n){const i=e.length,s=eM(n,i);t.uniform1iv(this.addr,s);for(let t=0;t!==i;++t)n.safeSetTexture2D(e[t]||HA,s[t])}function BM(t,e,n){const i=e.length,s=eM(n,i);t.uniform1iv(this.addr,s);for(let t=0;t!==i;++t)n.safeSetTextureCube(e[t]||qA,s[t])}function zM(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return nM;case 35664:return iM;case 35665:return sM;case 35666:return rM;case 35674:return oM;case 35675:return aM;case 35676:return lM;case 5124:case 35670:return cM;case 35667:case 35671:return hM;case 35668:case 35672:return uM;case 35669:case 35673:return dM;case 5125:return pM;case 36294:return _M;case 36295:return mM;case 36296:return fM;case 35678:case 36198:case 36298:case 36306:case 35682:return gM;case 35679:case 36299:case 36307:return vM;case 35680:case 36300:case 36308:case 36293:return yM;case 36289:case 36303:case 36311:case 36292:return xM}}(e.type)}function kM(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return bM;case 35664:return wM;case 35665:return TM;case 35666:return AM;case 35674:return MM;case 35675:return EM;case 35676:return SM;case 5124:case 35670:return CM;case 35667:case 35671:return NM;case 35668:case 35672:return LM;case 35669:case 35673:return OM;case 5125:return PM;case 36294:return RM;case 36295:return IM;case 36296:return FM;case 35678:case 36198:case 36298:case 36306:case 35682:return DM;case 35680:case 36300:case 36308:case 36293:return BM}}(e.type)}function UM(t){this.id=t,this.seq=[],this.map={}}kM.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),tM(e,t)},UM.prototype.setValue=function(t,e,n){const i=this.seq;for(let s=0,r=i.length;s!==r;++s){const r=i[s];r.setValue(t,e[r.id],n)}};const GM=/(\\\\w+)(\\\\])?(\\\\[|\\\\.)?/g;function VM(t,e){t.seq.push(e),t.map[e.id]=e}function HM(t,e,n){const i=t.name,s=i.length;for(GM.lastIndex=0;;){const r=GM.exec(i),o=GM.lastIndex;let a=r[1];const l=\\\\\\\"]\\\\\\\"===r[2],c=r[3];if(l&&(a|=0),void 0===c||\\\\\\\"[\\\\\\\"===c&&o+2===s){VM(n,void 0===c?new zM(a,t,e):new kM(a,t,e));break}{let t=n.map[a];void 0===t&&(t=new UM(a),VM(n,t)),n=t}}}function jM(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);HM(n,t.getUniformLocation(e,n.name),this)}}function WM(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}jM.prototype.setValue=function(t,e,n,i){const s=this.map[e];void 0!==s&&s.setValue(t,n,i)},jM.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},jM.upload=function(t,e,n,i){for(let s=0,r=e.length;s!==r;++s){const r=e[s],o=n[r.id];!1!==o.needsUpdate&&r.setValue(t,o.value,i)}},jM.seqWithValue=function(t,e){const n=[];for(let i=0,s=t.length;i!==s;++i){const s=t[i];s.id in e&&n.push(s)}return n};let qM=0;function XM(t){switch(t){case qx:return[\\\\\\\"Linear\\\\\\\",\\\\\\\"( value )\\\\\\\"];case Xx:return[\\\\\\\"sRGB\\\\\\\",\\\\\\\"( value )\\\\\\\"];case $x:return[\\\\\\\"RGBE\\\\\\\",\\\\\\\"( value )\\\\\\\"];case 3004:return[\\\\\\\"RGBM\\\\\\\",\\\\\\\"( value, 7.0 )\\\\\\\"];case 3005:return[\\\\\\\"RGBM\\\\\\\",\\\\\\\"( value, 16.0 )\\\\\\\"];case 3006:return[\\\\\\\"RGBD\\\\\\\",\\\\\\\"( value, 256.0 )\\\\\\\"];case Yx:return[\\\\\\\"Gamma\\\\\\\",\\\\\\\"( value, float( GAMMA_FACTOR ) )\\\\\\\"];case 3003:return[\\\\\\\"LogLuv\\\\\\\",\\\\\\\"( value )\\\\\\\"];default:return console.warn(\\\\\\\"THREE.WebGLProgram: Unsupported encoding:\\\\\\\",t),[\\\\\\\"Linear\\\\\\\",\\\\\\\"( value )\\\\\\\"]}}function YM(t,e,n){const i=t.getShaderParameter(e,35713),s=t.getShaderInfoLog(e).trim();return i&&\\\\\\\"\\\\\\\"===s?\\\\\\\"\\\\\\\":n.toUpperCase()+\\\\\\\"\\\\n\\\\n\\\\\\\"+s+\\\\\\\"\\\\n\\\\n\\\\\\\"+function(t){const e=t.split(\\\\\\\"\\\\n\\\\\\\");for(let t=0;t<e.length;t++)e[t]=t+1+\\\\\\\": \\\\\\\"+e[t];return e.join(\\\\\\\"\\\\n\\\\\\\")}(t.getShaderSource(e))}function $M(t,e){const n=XM(e);return\\\\\\\"vec4 \\\\\\\"+t+\\\\\\\"( vec4 value ) { return \\\\\\\"+n[0]+\\\\\\\"ToLinear\\\\\\\"+n[1]+\\\\\\\"; }\\\\\\\"}function JM(t,e){const n=XM(e);return\\\\\\\"vec4 \\\\\\\"+t+\\\\\\\"( vec4 value ) { return LinearTo\\\\\\\"+n[0]+n[1]+\\\\\\\"; }\\\\\\\"}function ZM(t,e){let n;switch(e){case 1:n=\\\\\\\"Linear\\\\\\\";break;case 2:n=\\\\\\\"Reinhard\\\\\\\";break;case 3:n=\\\\\\\"OptimizedCineon\\\\\\\";break;case 4:n=\\\\\\\"ACESFilmic\\\\\\\";break;case 5:n=\\\\\\\"Custom\\\\\\\";break;default:console.warn(\\\\\\\"THREE.WebGLProgram: Unsupported toneMapping:\\\\\\\",e),n=\\\\\\\"Linear\\\\\\\"}return\\\\\\\"vec3 \\\\\\\"+t+\\\\\\\"( vec3 color ) { return \\\\\\\"+n+\\\\\\\"ToneMapping( color ); }\\\\\\\"}function KM(t){return\\\\\\\"\\\\\\\"!==t}function QM(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function tE(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const eE=/^[ \\\\t]*#include +<([\\\\w\\\\d./]+)>/gm;function nE(t){return t.replace(eE,iE)}function iE(t,e){const n=ZT[e];if(void 0===n)throw new Error(\\\\\\\"Can not resolve #include <\\\\\\\"+e+\\\\\\\">\\\\\\\");return nE(n)}const sE=/#pragma unroll_loop[\\\\s]+?for \\\\( int i \\\\= (\\\\d+)\\\\; i < (\\\\d+)\\\\; i \\\\+\\\\+ \\\\) \\\\{([\\\\s\\\\S]+?)(?=\\\\})\\\\}/g,rE=/#pragma unroll_loop_start\\\\s+for\\\\s*\\\\(\\\\s*int\\\\s+i\\\\s*=\\\\s*(\\\\d+)\\\\s*;\\\\s*i\\\\s*<\\\\s*(\\\\d+)\\\\s*;\\\\s*i\\\\s*\\\\+\\\\+\\\\s*\\\\)\\\\s*{([\\\\s\\\\S]+?)}\\\\s+#pragma unroll_loop_end/g;function oE(t){return t.replace(rE,lE).replace(sE,aE)}function aE(t,e,n,i){return console.warn(\\\\\\\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\\\\\\\"),lE(t,e,n,i)}function lE(t,e,n,i){let s=\\\\\\\"\\\\\\\";for(let t=parseInt(e);t<parseInt(n);t++)s+=i.replace(/\\\\[\\\\s*i\\\\s*\\\\]/g,\\\\\\\"[ \\\\\\\"+t+\\\\\\\" ]\\\\\\\").replace(/UNROLLED_LOOP_INDEX/g,t);return s}function cE(t){let e=\\\\\\\"precision \\\\\\\"+t.precision+\\\\\\\" float;\\\\nprecision \\\\\\\"+t.precision+\\\\\\\" int;\\\\\\\";return\\\\\\\"highp\\\\\\\"===t.precision?e+=\\\\\\\"\\\\n#define HIGH_PRECISION\\\\\\\":\\\\\\\"mediump\\\\\\\"===t.precision?e+=\\\\\\\"\\\\n#define MEDIUM_PRECISION\\\\\\\":\\\\\\\"lowp\\\\\\\"===t.precision&&(e+=\\\\\\\"\\\\n#define LOW_PRECISION\\\\\\\"),e}function hE(t,e,n,i){const s=t.getContext(),r=n.defines;let o=n.vertexShader,a=n.fragmentShader;const l=function(t){let e=\\\\\\\"SHADOWMAP_TYPE_BASIC\\\\\\\";return 1===t.shadowMapType?e=\\\\\\\"SHADOWMAP_TYPE_PCF\\\\\\\":2===t.shadowMapType?e=\\\\\\\"SHADOWMAP_TYPE_PCF_SOFT\\\\\\\":3===t.shadowMapType&&(e=\\\\\\\"SHADOWMAP_TYPE_VSM\\\\\\\"),e}(n),c=function(t){let e=\\\\\\\"ENVMAP_TYPE_CUBE\\\\\\\";if(t.envMap)switch(t.envMapMode){case _x:case mx:e=\\\\\\\"ENVMAP_TYPE_CUBE\\\\\\\";break;case vx:case yx:e=\\\\\\\"ENVMAP_TYPE_CUBE_UV\\\\\\\"}return e}(n),h=function(t){let e=\\\\\\\"ENVMAP_MODE_REFLECTION\\\\\\\";if(t.envMap)switch(t.envMapMode){case mx:case yx:e=\\\\\\\"ENVMAP_MODE_REFRACTION\\\\\\\"}return e}(n),u=function(t){let e=\\\\\\\"ENVMAP_BLENDING_NONE\\\\\\\";if(t.envMap)switch(t.combine){case 0:e=\\\\\\\"ENVMAP_BLENDING_MULTIPLY\\\\\\\";break;case 1:e=\\\\\\\"ENVMAP_BLENDING_MIX\\\\\\\";break;case 2:e=\\\\\\\"ENVMAP_BLENDING_ADD\\\\\\\"}return e}(n),d=t.gammaFactor>0?t.gammaFactor:1,p=n.isWebGL2?\\\\\\\"\\\\\\\":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||\\\\\\\"physical\\\\\\\"===t.shaderID?\\\\\\\"#extension GL_OES_standard_derivatives : enable\\\\\\\":\\\\\\\"\\\\\\\",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?\\\\\\\"#extension GL_EXT_frag_depth : enable\\\\\\\":\\\\\\\"\\\\\\\",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?\\\\\\\"#extension GL_EXT_draw_buffers : require\\\\\\\":\\\\\\\"\\\\\\\",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?\\\\\\\"#extension GL_EXT_shader_texture_lod : enable\\\\\\\":\\\\\\\"\\\\\\\"].filter(KM).join(\\\\\\\"\\\\n\\\\\\\")}(n),_=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push(\\\\\\\"#define \\\\\\\"+n+\\\\\\\" \\\\\\\"+i)}return e.join(\\\\\\\"\\\\n\\\\\\\")}(r),m=s.createProgram();let f,g,v=n.glslVersion?\\\\\\\"#version \\\\\\\"+n.glslVersion+\\\\\\\"\\\\n\\\\\\\":\\\\\\\"\\\\\\\";n.isRawShaderMaterial?(f=[_].filter(KM).join(\\\\\\\"\\\\n\\\\\\\"),f.length>0&&(f+=\\\\\\\"\\\\n\\\\\\\"),g=[p,_].filter(KM).join(\\\\\\\"\\\\n\\\\\\\"),g.length>0&&(g+=\\\\\\\"\\\\n\\\\\\\")):(f=[cE(n),\\\\\\\"#define SHADER_NAME \\\\\\\"+n.shaderName,_,n.instancing?\\\\\\\"#define USE_INSTANCING\\\\\\\":\\\\\\\"\\\\\\\",n.instancingColor?\\\\\\\"#define USE_INSTANCING_COLOR\\\\\\\":\\\\\\\"\\\\\\\",n.supportsVertexTextures?\\\\\\\"#define VERTEX_TEXTURES\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"#define GAMMA_FACTOR \\\\\\\"+d,\\\\\\\"#define MAX_BONES \\\\\\\"+n.maxBones,n.useFog&&n.fog?\\\\\\\"#define USE_FOG\\\\\\\":\\\\\\\"\\\\\\\",n.useFog&&n.fogExp2?\\\\\\\"#define FOG_EXP2\\\\\\\":\\\\\\\"\\\\\\\",n.map?\\\\\\\"#define USE_MAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define USE_ENVMAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+h:\\\\\\\"\\\\\\\",n.lightMap?\\\\\\\"#define USE_LIGHTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.aoMap?\\\\\\\"#define USE_AOMAP\\\\\\\":\\\\\\\"\\\\\\\",n.emissiveMap?\\\\\\\"#define USE_EMISSIVEMAP\\\\\\\":\\\\\\\"\\\\\\\",n.bumpMap?\\\\\\\"#define USE_BUMPMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap?\\\\\\\"#define USE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.objectSpaceNormalMap?\\\\\\\"#define OBJECTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.tangentSpaceNormalMap?\\\\\\\"#define TANGENTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatMap?\\\\\\\"#define USE_CLEARCOATMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatRoughnessMap?\\\\\\\"#define USE_CLEARCOAT_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatNormalMap?\\\\\\\"#define USE_CLEARCOAT_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.displacementMap&&n.supportsVertexTextures?\\\\\\\"#define USE_DISPLACEMENTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularMap?\\\\\\\"#define USE_SPECULARMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularIntensityMap?\\\\\\\"#define USE_SPECULARINTENSITYMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularTintMap?\\\\\\\"#define USE_SPECULARTINTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.roughnessMap?\\\\\\\"#define USE_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.metalnessMap?\\\\\\\"#define USE_METALNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.alphaMap?\\\\\\\"#define USE_ALPHAMAP\\\\\\\":\\\\\\\"\\\\\\\",n.transmission?\\\\\\\"#define USE_TRANSMISSION\\\\\\\":\\\\\\\"\\\\\\\",n.transmissionMap?\\\\\\\"#define USE_TRANSMISSIONMAP\\\\\\\":\\\\\\\"\\\\\\\",n.thicknessMap?\\\\\\\"#define USE_THICKNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.vertexTangents?\\\\\\\"#define USE_TANGENT\\\\\\\":\\\\\\\"\\\\\\\",n.vertexColors?\\\\\\\"#define USE_COLOR\\\\\\\":\\\\\\\"\\\\\\\",n.vertexAlphas?\\\\\\\"#define USE_COLOR_ALPHA\\\\\\\":\\\\\\\"\\\\\\\",n.vertexUvs?\\\\\\\"#define USE_UV\\\\\\\":\\\\\\\"\\\\\\\",n.uvsVertexOnly?\\\\\\\"#define UVS_VERTEX_ONLY\\\\\\\":\\\\\\\"\\\\\\\",n.flatShading?\\\\\\\"#define FLAT_SHADED\\\\\\\":\\\\\\\"\\\\\\\",n.skinning?\\\\\\\"#define USE_SKINNING\\\\\\\":\\\\\\\"\\\\\\\",n.useVertexTexture?\\\\\\\"#define BONE_TEXTURE\\\\\\\":\\\\\\\"\\\\\\\",n.morphTargets?\\\\\\\"#define USE_MORPHTARGETS\\\\\\\":\\\\\\\"\\\\\\\",n.morphNormals&&!1===n.flatShading?\\\\\\\"#define USE_MORPHNORMALS\\\\\\\":\\\\\\\"\\\\\\\",n.morphTargets&&n.isWebGL2?\\\\\\\"#define MORPHTARGETS_TEXTURE\\\\\\\":\\\\\\\"\\\\\\\",n.morphTargets&&n.isWebGL2?\\\\\\\"#define MORPHTARGETS_COUNT \\\\\\\"+n.morphTargetsCount:\\\\\\\"\\\\\\\",n.doubleSided?\\\\\\\"#define DOUBLE_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.flipSided?\\\\\\\"#define FLIP_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define USE_SHADOWMAP\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define \\\\\\\"+l:\\\\\\\"\\\\\\\",n.sizeAttenuation?\\\\\\\"#define USE_SIZEATTENUATION\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer?\\\\\\\"#define USE_LOGDEPTHBUF\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\\\\\\\"#define USE_LOGDEPTHBUF_EXT\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"uniform mat4 modelMatrix;\\\\\\\",\\\\\\\"uniform mat4 modelViewMatrix;\\\\\\\",\\\\\\\"uniform mat4 projectionMatrix;\\\\\\\",\\\\\\\"uniform mat4 viewMatrix;\\\\\\\",\\\\\\\"uniform mat3 normalMatrix;\\\\\\\",\\\\\\\"uniform vec3 cameraPosition;\\\\\\\",\\\\\\\"uniform bool isOrthographic;\\\\\\\",\\\\\\\"#ifdef USE_INSTANCING\\\\\\\",\\\\\\\"\\\\tattribute mat4 instanceMatrix;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#ifdef USE_INSTANCING_COLOR\\\\\\\",\\\\\\\"\\\\tattribute vec3 instanceColor;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"attribute vec3 position;\\\\\\\",\\\\\\\"attribute vec3 normal;\\\\\\\",\\\\\\\"attribute vec2 uv;\\\\\\\",\\\\\\\"#ifdef USE_TANGENT\\\\\\\",\\\\\\\"\\\\tattribute vec4 tangent;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\\\\",\\\\\\\"\\\\tattribute vec4 color;\\\\\\\",\\\\\\\"#elif defined( USE_COLOR )\\\\\\\",\\\\\\\"\\\\tattribute vec3 color;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget0;\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget1;\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget2;\\\\\\\",\\\\\\\"\\\\tattribute vec3 morphTarget3;\\\\\\\",\\\\\\\"\\\\t#ifdef USE_MORPHNORMALS\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal0;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal1;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal2;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphNormal3;\\\\\\\",\\\\\\\"\\\\t#else\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget4;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget5;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget6;\\\\\\\",\\\\\\\"\\\\t\\\\tattribute vec3 morphTarget7;\\\\\\\",\\\\\\\"\\\\t#endif\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"#ifdef USE_SKINNING\\\\\\\",\\\\\\\"\\\\tattribute vec4 skinIndex;\\\\\\\",\\\\\\\"\\\\tattribute vec4 skinWeight;\\\\\\\",\\\\\\\"#endif\\\\\\\",\\\\\\\"\\\\n\\\\\\\"].filter(KM).join(\\\\\\\"\\\\n\\\\\\\"),g=[p,cE(n),\\\\\\\"#define SHADER_NAME \\\\\\\"+n.shaderName,_,\\\\\\\"#define GAMMA_FACTOR \\\\\\\"+d,n.useFog&&n.fog?\\\\\\\"#define USE_FOG\\\\\\\":\\\\\\\"\\\\\\\",n.useFog&&n.fogExp2?\\\\\\\"#define FOG_EXP2\\\\\\\":\\\\\\\"\\\\\\\",n.map?\\\\\\\"#define USE_MAP\\\\\\\":\\\\\\\"\\\\\\\",n.matcap?\\\\\\\"#define USE_MATCAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define USE_ENVMAP\\\\\\\":\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+c:\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+h:\\\\\\\"\\\\\\\",n.envMap?\\\\\\\"#define \\\\\\\"+u:\\\\\\\"\\\\\\\",n.lightMap?\\\\\\\"#define USE_LIGHTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.aoMap?\\\\\\\"#define USE_AOMAP\\\\\\\":\\\\\\\"\\\\\\\",n.emissiveMap?\\\\\\\"#define USE_EMISSIVEMAP\\\\\\\":\\\\\\\"\\\\\\\",n.bumpMap?\\\\\\\"#define USE_BUMPMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap?\\\\\\\"#define USE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.objectSpaceNormalMap?\\\\\\\"#define OBJECTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.normalMap&&n.tangentSpaceNormalMap?\\\\\\\"#define TANGENTSPACE_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoat?\\\\\\\"#define USE_CLEARCOAT\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatMap?\\\\\\\"#define USE_CLEARCOATMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatRoughnessMap?\\\\\\\"#define USE_CLEARCOAT_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.clearcoatNormalMap?\\\\\\\"#define USE_CLEARCOAT_NORMALMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularMap?\\\\\\\"#define USE_SPECULARMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularIntensityMap?\\\\\\\"#define USE_SPECULARINTENSITYMAP\\\\\\\":\\\\\\\"\\\\\\\",n.specularTintMap?\\\\\\\"#define USE_SPECULARTINTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.roughnessMap?\\\\\\\"#define USE_ROUGHNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.metalnessMap?\\\\\\\"#define USE_METALNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.alphaMap?\\\\\\\"#define USE_ALPHAMAP\\\\\\\":\\\\\\\"\\\\\\\",n.alphaTest?\\\\\\\"#define USE_ALPHATEST\\\\\\\":\\\\\\\"\\\\\\\",n.sheen?\\\\\\\"#define USE_SHEEN\\\\\\\":\\\\\\\"\\\\\\\",n.transmission?\\\\\\\"#define USE_TRANSMISSION\\\\\\\":\\\\\\\"\\\\\\\",n.transmissionMap?\\\\\\\"#define USE_TRANSMISSIONMAP\\\\\\\":\\\\\\\"\\\\\\\",n.thicknessMap?\\\\\\\"#define USE_THICKNESSMAP\\\\\\\":\\\\\\\"\\\\\\\",n.vertexTangents?\\\\\\\"#define USE_TANGENT\\\\\\\":\\\\\\\"\\\\\\\",n.vertexColors||n.instancingColor?\\\\\\\"#define USE_COLOR\\\\\\\":\\\\\\\"\\\\\\\",n.vertexAlphas?\\\\\\\"#define USE_COLOR_ALPHA\\\\\\\":\\\\\\\"\\\\\\\",n.vertexUvs?\\\\\\\"#define USE_UV\\\\\\\":\\\\\\\"\\\\\\\",n.uvsVertexOnly?\\\\\\\"#define UVS_VERTEX_ONLY\\\\\\\":\\\\\\\"\\\\\\\",n.gradientMap?\\\\\\\"#define USE_GRADIENTMAP\\\\\\\":\\\\\\\"\\\\\\\",n.flatShading?\\\\\\\"#define FLAT_SHADED\\\\\\\":\\\\\\\"\\\\\\\",n.doubleSided?\\\\\\\"#define DOUBLE_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.flipSided?\\\\\\\"#define FLIP_SIDED\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define USE_SHADOWMAP\\\\\\\":\\\\\\\"\\\\\\\",n.shadowMapEnabled?\\\\\\\"#define \\\\\\\"+l:\\\\\\\"\\\\\\\",n.premultipliedAlpha?\\\\\\\"#define PREMULTIPLIED_ALPHA\\\\\\\":\\\\\\\"\\\\\\\",n.physicallyCorrectLights?\\\\\\\"#define PHYSICALLY_CORRECT_LIGHTS\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer?\\\\\\\"#define USE_LOGDEPTHBUF\\\\\\\":\\\\\\\"\\\\\\\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\\\\\\\"#define USE_LOGDEPTHBUF_EXT\\\\\\\":\\\\\\\"\\\\\\\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\\\\\\\"#define TEXTURE_LOD_EXT\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"uniform mat4 viewMatrix;\\\\\\\",\\\\\\\"uniform vec3 cameraPosition;\\\\\\\",\\\\\\\"uniform bool isOrthographic;\\\\\\\",0!==n.toneMapping?\\\\\\\"#define TONE_MAPPING\\\\\\\":\\\\\\\"\\\\\\\",0!==n.toneMapping?ZT.tonemapping_pars_fragment:\\\\\\\"\\\\\\\",0!==n.toneMapping?ZM(\\\\\\\"toneMapping\\\\\\\",n.toneMapping):\\\\\\\"\\\\\\\",n.dithering?\\\\\\\"#define DITHERING\\\\\\\":\\\\\\\"\\\\\\\",n.format===Fx?\\\\\\\"#define OPAQUE\\\\\\\":\\\\\\\"\\\\\\\",ZT.encodings_pars_fragment,n.map?$M(\\\\\\\"mapTexelToLinear\\\\\\\",n.mapEncoding):\\\\\\\"\\\\\\\",n.matcap?$M(\\\\\\\"matcapTexelToLinear\\\\\\\",n.matcapEncoding):\\\\\\\"\\\\\\\",n.envMap?$M(\\\\\\\"envMapTexelToLinear\\\\\\\",n.envMapEncoding):\\\\\\\"\\\\\\\",n.emissiveMap?$M(\\\\\\\"emissiveMapTexelToLinear\\\\\\\",n.emissiveMapEncoding):\\\\\\\"\\\\\\\",n.specularTintMap?$M(\\\\\\\"specularTintMapTexelToLinear\\\\\\\",n.specularTintMapEncoding):\\\\\\\"\\\\\\\",n.lightMap?$M(\\\\\\\"lightMapTexelToLinear\\\\\\\",n.lightMapEncoding):\\\\\\\"\\\\\\\",JM(\\\\\\\"linearToOutputTexel\\\\\\\",n.outputEncoding),n.depthPacking?\\\\\\\"#define DEPTH_PACKING \\\\\\\"+n.depthPacking:\\\\\\\"\\\\\\\",\\\\\\\"\\\\n\\\\\\\"].filter(KM).join(\\\\\\\"\\\\n\\\\\\\")),o=nE(o),o=QM(o,n),o=tE(o,n),a=nE(a),a=QM(a,n),a=tE(a,n),o=oE(o),a=oE(a),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(v=\\\\\\\"#version 300 es\\\\n\\\\\\\",f=[\\\\\\\"precision mediump sampler2DArray;\\\\\\\",\\\\\\\"#define attribute in\\\\\\\",\\\\\\\"#define varying out\\\\\\\",\\\\\\\"#define texture2D texture\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\")+\\\\\\\"\\\\n\\\\\\\"+f,g=[\\\\\\\"#define varying in\\\\\\\",n.glslVersion===Qx?\\\\\\\"\\\\\\\":\\\\\\\"out highp vec4 pc_fragColor;\\\\\\\",n.glslVersion===Qx?\\\\\\\"\\\\\\\":\\\\\\\"#define gl_FragColor pc_fragColor\\\\\\\",\\\\\\\"#define gl_FragDepthEXT gl_FragDepth\\\\\\\",\\\\\\\"#define texture2D texture\\\\\\\",\\\\\\\"#define textureCube texture\\\\\\\",\\\\\\\"#define texture2DProj textureProj\\\\\\\",\\\\\\\"#define texture2DLodEXT textureLod\\\\\\\",\\\\\\\"#define texture2DProjLodEXT textureProjLod\\\\\\\",\\\\\\\"#define textureCubeLodEXT textureLod\\\\\\\",\\\\\\\"#define texture2DGradEXT textureGrad\\\\\\\",\\\\\\\"#define texture2DProjGradEXT textureProjGrad\\\\\\\",\\\\\\\"#define textureCubeGradEXT textureGrad\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\")+\\\\\\\"\\\\n\\\\\\\"+g);const y=v+g+a,x=WM(s,35633,v+f+o),b=WM(s,35632,y);if(s.attachShader(m,x),s.attachShader(m,b),void 0!==n.index0AttributeName?s.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&s.bindAttribLocation(m,0,\\\\\\\"position\\\\\\\"),s.linkProgram(m),t.debug.checkShaderErrors){const t=s.getProgramInfoLog(m).trim(),e=s.getShaderInfoLog(x).trim(),n=s.getShaderInfoLog(b).trim();let i=!0,r=!0;if(!1===s.getProgramParameter(m,35714)){i=!1;const e=YM(s,x,\\\\\\\"vertex\\\\\\\"),n=YM(s,b,\\\\\\\"fragment\\\\\\\");console.error(\\\\\\\"THREE.WebGLProgram: Shader Error \\\\\\\"+s.getError()+\\\\\\\" - VALIDATE_STATUS \\\\\\\"+s.getProgramParameter(m,35715)+\\\\\\\"\\\\n\\\\nProgram Info Log: \\\\\\\"+t+\\\\\\\"\\\\n\\\\\\\"+e+\\\\\\\"\\\\n\\\\\\\"+n)}else\\\\\\\"\\\\\\\"!==t?console.warn(\\\\\\\"THREE.WebGLProgram: Program Info Log:\\\\\\\",t):\\\\\\\"\\\\\\\"!==e&&\\\\\\\"\\\\\\\"!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:f},fragmentShader:{log:n,prefix:g}})}let w,T;return s.deleteShader(x),s.deleteShader(b),this.getUniforms=function(){return void 0===w&&(w=new jM(s,m)),w},this.getAttributes=function(){return void 0===T&&(T=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let s=0;s<i;s++){const i=t.getActiveAttrib(e,s),r=i.name;let o=1;35674===i.type&&(o=2),35675===i.type&&(o=3),35676===i.type&&(o=4),n[r]={type:i.type,location:t.getAttribLocation(e,r),locationSize:o}}return n}(s,m)),T},this.destroy=function(){i.releaseStatesOfProgram(this),s.deleteProgram(m),this.program=void 0},this.name=n.shaderName,this.id=qM++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=x,this.fragmentShader=b,this}function uE(t,e,n,i,s,r,o){const a=[],l=s.isWebGL2,c=s.logarithmicDepthBuffer,h=s.floatVertexTextures,u=s.maxVertexUniforms,d=s.vertexTextures;let p=s.precision;const _={MeshDepthMaterial:\\\\\\\"depth\\\\\\\",MeshDistanceMaterial:\\\\\\\"distanceRGBA\\\\\\\",MeshNormalMaterial:\\\\\\\"normal\\\\\\\",MeshBasicMaterial:\\\\\\\"basic\\\\\\\",MeshLambertMaterial:\\\\\\\"lambert\\\\\\\",MeshPhongMaterial:\\\\\\\"phong\\\\\\\",MeshToonMaterial:\\\\\\\"toon\\\\\\\",MeshStandardMaterial:\\\\\\\"physical\\\\\\\",MeshPhysicalMaterial:\\\\\\\"physical\\\\\\\",MeshMatcapMaterial:\\\\\\\"matcap\\\\\\\",LineBasicMaterial:\\\\\\\"basic\\\\\\\",LineDashedMaterial:\\\\\\\"dashed\\\\\\\",PointsMaterial:\\\\\\\"points\\\\\\\",ShadowMaterial:\\\\\\\"shadow\\\\\\\",SpriteMaterial:\\\\\\\"sprite\\\\\\\"},m=[\\\\\\\"precision\\\\\\\",\\\\\\\"isWebGL2\\\\\\\",\\\\\\\"supportsVertexTextures\\\\\\\",\\\\\\\"outputEncoding\\\\\\\",\\\\\\\"instancing\\\\\\\",\\\\\\\"instancingColor\\\\\\\",\\\\\\\"map\\\\\\\",\\\\\\\"mapEncoding\\\\\\\",\\\\\\\"matcap\\\\\\\",\\\\\\\"matcapEncoding\\\\\\\",\\\\\\\"envMap\\\\\\\",\\\\\\\"envMapMode\\\\\\\",\\\\\\\"envMapEncoding\\\\\\\",\\\\\\\"envMapCubeUV\\\\\\\",\\\\\\\"lightMap\\\\\\\",\\\\\\\"lightMapEncoding\\\\\\\",\\\\\\\"aoMap\\\\\\\",\\\\\\\"emissiveMap\\\\\\\",\\\\\\\"emissiveMapEncoding\\\\\\\",\\\\\\\"bumpMap\\\\\\\",\\\\\\\"normalMap\\\\\\\",\\\\\\\"objectSpaceNormalMap\\\\\\\",\\\\\\\"tangentSpaceNormalMap\\\\\\\",\\\\\\\"clearcoat\\\\\\\",\\\\\\\"clearcoatMap\\\\\\\",\\\\\\\"clearcoatRoughnessMap\\\\\\\",\\\\\\\"clearcoatNormalMap\\\\\\\",\\\\\\\"displacementMap\\\\\\\",\\\\\\\"specularMap\\\\\\\",\\\\\\\"specularIntensityMap\\\\\\\",\\\\\\\"specularTintMap\\\\\\\",\\\\\\\"specularTintMapEncoding\\\\\\\",\\\\\\\"roughnessMap\\\\\\\",\\\\\\\"metalnessMap\\\\\\\",\\\\\\\"gradientMap\\\\\\\",\\\\\\\"alphaMap\\\\\\\",\\\\\\\"alphaTest\\\\\\\",\\\\\\\"combine\\\\\\\",\\\\\\\"vertexColors\\\\\\\",\\\\\\\"vertexAlphas\\\\\\\",\\\\\\\"vertexTangents\\\\\\\",\\\\\\\"vertexUvs\\\\\\\",\\\\\\\"uvsVertexOnly\\\\\\\",\\\\\\\"fog\\\\\\\",\\\\\\\"useFog\\\\\\\",\\\\\\\"fogExp2\\\\\\\",\\\\\\\"flatShading\\\\\\\",\\\\\\\"sizeAttenuation\\\\\\\",\\\\\\\"logarithmicDepthBuffer\\\\\\\",\\\\\\\"skinning\\\\\\\",\\\\\\\"maxBones\\\\\\\",\\\\\\\"useVertexTexture\\\\\\\",\\\\\\\"morphTargets\\\\\\\",\\\\\\\"morphNormals\\\\\\\",\\\\\\\"morphTargetsCount\\\\\\\",\\\\\\\"premultipliedAlpha\\\\\\\",\\\\\\\"numDirLights\\\\\\\",\\\\\\\"numPointLights\\\\\\\",\\\\\\\"numSpotLights\\\\\\\",\\\\\\\"numHemiLights\\\\\\\",\\\\\\\"numRectAreaLights\\\\\\\",\\\\\\\"numDirLightShadows\\\\\\\",\\\\\\\"numPointLightShadows\\\\\\\",\\\\\\\"numSpotLightShadows\\\\\\\",\\\\\\\"shadowMapEnabled\\\\\\\",\\\\\\\"shadowMapType\\\\\\\",\\\\\\\"toneMapping\\\\\\\",\\\\\\\"physicallyCorrectLights\\\\\\\",\\\\\\\"doubleSided\\\\\\\",\\\\\\\"flipSided\\\\\\\",\\\\\\\"numClippingPlanes\\\\\\\",\\\\\\\"numClipIntersection\\\\\\\",\\\\\\\"depthPacking\\\\\\\",\\\\\\\"dithering\\\\\\\",\\\\\\\"format\\\\\\\",\\\\\\\"sheen\\\\\\\",\\\\\\\"transmission\\\\\\\",\\\\\\\"transmissionMap\\\\\\\",\\\\\\\"thicknessMap\\\\\\\"];function f(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn(\\\\\\\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\\\\\\\"),e=t.texture.encoding):e=qx,l&&t&&t.isTexture&&t.format===Dx&&t.type===Nx&&t.encoding===Xx&&(e=qx),e}return{getParameters:function(r,a,m,g,v){const y=g.fog,x=r.isMeshStandardMaterial?g.environment:null,b=(r.isMeshStandardMaterial?n:e).get(r.envMap||x),w=_[r.type],T=v.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(h)return 1024;{const t=u,n=Math.floor((t-20)/4),i=Math.min(n,e.length);return i<e.length?(console.warn(\\\\\\\"THREE.WebGLRenderer: Skeleton has \\\\\\\"+e.length+\\\\\\\" bones. This GPU supports \\\\\\\"+i+\\\\\\\".\\\\\\\"),0):i}}(v):0;let A,M;if(null!==r.precision&&(p=s.getMaxPrecision(r.precision),p!==r.precision&&console.warn(\\\\\\\"THREE.WebGLProgram.getParameters:\\\\\\\",r.precision,\\\\\\\"not supported, using\\\\\\\",p,\\\\\\\"instead.\\\\\\\")),w){const t=QT[w];A=t.vertexShader,M=t.fragmentShader}else A=r.vertexShader,M=r.fragmentShader;const E=t.getRenderTarget(),S=r.alphaTest>0,C=r.clearcoat>0;return{isWebGL2:l,shaderID:w,shaderName:r.type,vertexShader:A,fragmentShader:M,defines:r.defines,isRawShaderMaterial:!0===r.isRawShaderMaterial,glslVersion:r.glslVersion,precision:p,instancing:!0===v.isInstancedMesh,instancingColor:!0===v.isInstancedMesh&&null!==v.instanceColor,supportsVertexTextures:d,outputEncoding:null!==E?f(E.texture):t.outputEncoding,map:!!r.map,mapEncoding:f(r.map),matcap:!!r.matcap,matcapEncoding:f(r.matcap),envMap:!!b,envMapMode:b&&b.mapping,envMapEncoding:f(b),envMapCubeUV:!!b&&(b.mapping===vx||b.mapping===yx),lightMap:!!r.lightMap,lightMapEncoding:f(r.lightMap),aoMap:!!r.aoMap,emissiveMap:!!r.emissiveMap,emissiveMapEncoding:f(r.emissiveMap),bumpMap:!!r.bumpMap,normalMap:!!r.normalMap,objectSpaceNormalMap:1===r.normalMapType,tangentSpaceNormalMap:0===r.normalMapType,clearcoat:C,clearcoatMap:C&&!!r.clearcoatMap,clearcoatRoughnessMap:C&&!!r.clearcoatRoughnessMap,clearcoatNormalMap:C&&!!r.clearcoatNormalMap,displacementMap:!!r.displacementMap,roughnessMap:!!r.roughnessMap,metalnessMap:!!r.metalnessMap,specularMap:!!r.specularMap,specularIntensityMap:!!r.specularIntensityMap,specularTintMap:!!r.specularTintMap,specularTintMapEncoding:f(r.specularTintMap),alphaMap:!!r.alphaMap,alphaTest:S,gradientMap:!!r.gradientMap,sheen:r.sheen>0,transmission:r.transmission>0,transmissionMap:!!r.transmissionMap,thicknessMap:!!r.thicknessMap,combine:r.combine,vertexTangents:!!r.normalMap&&!!v.geometry&&!!v.geometry.attributes.tangent,vertexColors:r.vertexColors,vertexAlphas:!0===r.vertexColors&&!!v.geometry&&!!v.geometry.attributes.color&&4===v.geometry.attributes.color.itemSize,vertexUvs:!!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatMap||r.clearcoatRoughnessMap||r.clearcoatNormalMap||r.displacementMap||r.transmissionMap||r.thicknessMap||r.specularIntensityMap||r.specularTintMap),uvsVertexOnly:!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatNormalMap||r.transmission>0||r.transmissionMap||r.thicknessMap||r.specularIntensityMap||r.specularTintMap||!r.displacementMap),fog:!!y,useFog:r.fog,fogExp2:y&&y.isFogExp2,flatShading:!!r.flatShading,sizeAttenuation:r.sizeAttenuation,logarithmicDepthBuffer:c,skinning:!0===v.isSkinnedMesh&&T>0,maxBones:T,useVertexTexture:h,morphTargets:!!v.geometry&&!!v.geometry.morphAttributes.position,morphNormals:!!v.geometry&&!!v.geometry.morphAttributes.normal,morphTargetsCount:v.geometry&&v.geometry.morphAttributes.position?v.geometry.morphAttributes.position.length:0,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,format:r.format,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&m.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,doubleSided:2===r.side,flipSided:1===r.side,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:l||i.has(\\\\\\\"EXT_frag_depth\\\\\\\"),rendererExtensionDrawBuffers:l||i.has(\\\\\\\"WEBGL_draw_buffers\\\\\\\"),rendererExtensionShaderTextureLod:l||i.has(\\\\\\\"EXT_shader_texture_lod\\\\\\\"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<m.length;t++)n.push(e[m[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=_[t.type];let n;if(e){const t=QT[e];n=RT.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new hE(t,n,e,r),a.push(i)),i},releaseProgram:function(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function dE(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function pE(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function _E(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function mE(t){const e=[];let n=0;const i=[],s=[],r=[],o={id:-1};function a(i,s,r,a,l,c){let h=e[n];const u=t.get(r);return void 0===h?(h={id:i.id,object:i,geometry:s,material:r,program:u.program||o,groupOrder:a,renderOrder:i.renderOrder,z:l,group:c},e[n]=h):(h.id=i.id,h.object=i,h.geometry=s,h.material=r,h.program=u.program||o,h.groupOrder=a,h.renderOrder=i.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:i,transmissive:s,transparent:r,init:function(){n=0,i.length=0,s.length=0,r.length=0},push:function(t,e,n,o,l,c){const h=a(t,e,n,o,l,c);n.transmission>0?s.push(h):!0===n.transparent?r.push(h):i.push(h)},unshift:function(t,e,n,o,l,c){const h=a(t,e,n,o,l,c);n.transmission>0?s.unshift(h):!0===n.transparent?r.unshift(h):i.unshift(h)},finish:function(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){i.length>1&&i.sort(t||pE),s.length>1&&s.sort(e||_E),r.length>1&&r.sort(e||_E)}}}function fE(t){let e=new WeakMap;return{get:function(n,i){let s;return!1===e.has(n)?(s=new mE(t),e.set(n,[s])):i>=e.get(n).length?(s=new mE(t),e.get(n).push(s)):s=e.get(n)[i],s},dispose:function(){e=new WeakMap}}}function gE(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\\\\\\\"DirectionalLight\\\\\\\":n={direction:new Sb,color:new $w};break;case\\\\\\\"SpotLight\\\\\\\":n={position:new Sb,direction:new Sb,color:new $w,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\\\\\\\"PointLight\\\\\\\":n={position:new Sb,color:new $w,distance:0,decay:0};break;case\\\\\\\"HemisphereLight\\\\\\\":n={direction:new Sb,skyColor:new $w,groundColor:new $w};break;case\\\\\\\"RectAreaLight\\\\\\\":n={color:new $w,position:new Sb,halfWidth:new Sb,halfHeight:new Sb}}return t[e.id]=n,n}}}let vE=0;function yE(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function xE(t,e){const n=new gE,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\\\\\\\"DirectionalLight\\\\\\\":case\\\\\\\"SpotLight\\\\\\\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _b};break;case\\\\\\\"PointLight\\\\\\\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new _b,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)s.probe.push(new Sb);const r=new Sb,o=new sw,a=new sw;return{setup:function(r,o){let a=0,l=0,c=0;for(let t=0;t<9;t++)s.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,_=0,m=0,f=0,g=0;r.sort(yE);const v=!0!==o?Math.PI:1;for(let t=0,e=r.length;t<e;t++){const e=r[t],o=e.color,y=e.intensity,x=e.distance,b=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=o.r*y*v,l+=o.g*y*v,c+=o.b*y*v;else if(e.isLightProbe)for(let t=0;t<9;t++)s.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity*v),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,s.directionalShadow[h]=n,s.directionalShadowMap[h]=b,s.directionalShadowMatrix[h]=e.shadow.matrix,m++}s.directional[h]=t,h++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(o).multiplyScalar(y*v),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,s.spotShadow[d]=n,s.spotShadowMap[d]=b,s.spotShadowMatrix[d]=e.shadow.matrix,g++}s.spot[d]=t,d++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(o).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),s.rectArea[p]=t,p++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity*v),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,s.pointShadow[u]=n,s.pointShadowMap[u]=b,s.pointShadowMatrix[u]=e.shadow.matrix,f++}s.point[u]=t,u++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y*v),t.groundColor.copy(e.groundColor).multiplyScalar(y*v),s.hemi[_]=t,_++}}p>0&&(e.isWebGL2||!0===t.has(\\\\\\\"OES_texture_float_linear\\\\\\\")?(s.rectAreaLTC1=KT.LTC_FLOAT_1,s.rectAreaLTC2=KT.LTC_FLOAT_2):!0===t.has(\\\\\\\"OES_texture_half_float_linear\\\\\\\")?(s.rectAreaLTC1=KT.LTC_HALF_1,s.rectAreaLTC2=KT.LTC_HALF_2):console.error(\\\\\\\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\\\\\\\")),s.ambient[0]=a,s.ambient[1]=l,s.ambient[2]=c;const y=s.hash;y.directionalLength===h&&y.pointLength===u&&y.spotLength===d&&y.rectAreaLength===p&&y.hemiLength===_&&y.numDirectionalShadows===m&&y.numPointShadows===f&&y.numSpotShadows===g||(s.directional.length=h,s.spot.length=d,s.rectArea.length=p,s.point.length=u,s.hemi.length=_,s.directionalShadow.length=m,s.directionalShadowMap.length=m,s.pointShadow.length=f,s.pointShadowMap.length=f,s.spotShadow.length=g,s.spotShadowMap.length=g,s.directionalShadowMatrix.length=m,s.pointShadowMatrix.length=f,s.spotShadowMatrix.length=g,y.directionalLength=h,y.pointLength=u,y.spotLength=d,y.rectAreaLength=p,y.hemiLength=_,y.numDirectionalShadows=m,y.numPointShadows=f,y.numSpotShadows=g,s.version=vE++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=s.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),r.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=s.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),r.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=s.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),a.identity(),o.copy(d.matrixWorld),o.premultiply(u),a.extractRotation(o),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(a),t.halfHeight.applyMatrix4(a),c++}else if(d.isPointLight){const t=s.point[i];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),i++}else if(d.isHemisphereLight){const t=s.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:s}}function bE(t,e){const n=new xE(t,e),i=[],s=[];return{init:function(){i.length=0,s.length=0},state:{lightsArray:i,shadowsArray:s,lights:n},setupLights:function(t){n.setup(i,t)},setupLightsView:function(t){n.setupView(i,t)},pushLight:function(t){i.push(t)},pushShadow:function(t){s.push(t)}}}function wE(t,e){let n=new WeakMap;return{get:function(i,s=0){let r;return!1===n.has(i)?(r=new bE(t,e),n.set(i,[r])):s>=n.get(i).length?(r=new bE(t,e),n.get(i).push(r)):r=n.get(i)[s],r},dispose:function(){n=new WeakMap}}}class TE extends Vw{constructor(t){super(),this.type=\\\\\\\"MeshDepthMaterial\\\\\\\",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}TE.prototype.isMeshDepthMaterial=!0;class AE extends Vw{constructor(t){super(),this.type=\\\\\\\"MeshDistanceMaterial\\\\\\\",this.referencePosition=new Sb,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}AE.prototype.isMeshDistanceMaterial=!0;function ME(t,e,n){let i=new XT;const s=new _b,r=new _b,o=new Tb,a=new TE({depthPacking:3201}),l=new AE,c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new IT({uniforms:{shadow_pass:{value:null},resolution:{value:new _b},radius:{value:4},samples:{value:8}},vertexShader:\\\\\\\"void main() {\\\\n\\\\tgl_Position = vec4( position, 1.0 );\\\\n}\\\\\\\",fragmentShader:\\\\\\\"uniform sampler2D shadow_pass;\\\\nuniform vec2 resolution;\\\\nuniform float radius;\\\\nuniform float samples;\\\\n#include <packing>\\\\nvoid main() {\\\\n\\\\tfloat mean = 0.0;\\\\n\\\\tfloat squared_mean = 0.0;\\\\n\\\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\\\n\\\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\\\n\\\\tfor ( float i = 0.0; i < samples; i ++ ) {\\\\n\\\\t\\\\tfloat uvOffset = uvStart + i * uvStride;\\\\n\\\\t\\\\t#ifdef HORIZONTAL_PASS\\\\n\\\\t\\\\t\\\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\\\n\\\\t\\\\t\\\\tmean += distribution.x;\\\\n\\\\t\\\\t\\\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\\\n\\\\t\\\\t\\\\tmean += depth;\\\\n\\\\t\\\\t\\\\tsquared_mean += depth * depth;\\\\n\\\\t\\\\t#endif\\\\n\\\\t}\\\\n\\\\tmean = mean / samples;\\\\n\\\\tsquared_mean = squared_mean / samples;\\\\n\\\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\\\n\\\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\\\n}\\\\\\\"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const _=new hT;_.setAttribute(\\\\\\\"position\\\\\\\",new Qw(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const m=new CT(_,d),f=this;function g(n,i){const s=e.update(m);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,d.uniforms.samples.value=n.blurSamples,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,d,m,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,p.uniforms.samples.value=n.blurSamples,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,p,m,null)}function v(e,n,i,s,r,o,h){let d=null;const p=!0===s.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(d=void 0!==p?p:!0===s.isPointLight?l:a,t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length||i.displacementMap&&0!==i.displacementScale||i.alphaMap&&i.alphaTest>0){const t=d.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let s=n[e];void 0===s&&(s=d.clone(),n[e]=s),d=s}return d.visible=i.visible,d.wireframe=i.wireframe,d.side=3===h?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],d.alphaMap=i.alphaMap,d.alphaTest=i.alphaTest,d.clipShadows=i.clipShadows,d.clippingPlanes=i.clippingPlanes,d.clipIntersection=i.clipIntersection,d.displacementMap=i.displacementMap,d.displacementScale=i.displacementScale,d.displacementBias=i.displacementBias,d.wireframeLinewidth=i.wireframeLinewidth,d.linewidth=i.linewidth,!0===s.isPointLight&&!0===d.isMeshDistanceMaterial&&(d.referencePosition.setFromMatrixPosition(s.matrixWorld),d.nearDistance=r,d.farDistance=o),d}function y(n,s,r,o,a){if(!1===n.visible)return;if(n.layers.test(s.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===a)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,n.matrixWorld);const i=e.update(n),s=n.material;if(Array.isArray(s)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=s[c.materialIndex];if(h&&h.visible){const e=v(n,0,h,o,r.near,r.far,a);t.renderBufferDirect(r,null,i,e,n,c)}}}else if(s.visible){const e=v(n,0,s,o,r.near,r.far,a);t.renderBufferDirect(r,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)y(l[t],s,r,o,a)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,a){if(!1===f.enabled)return;if(!1===f.autoUpdate&&!1===f.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){console.warn(\\\\\\\"THREE.WebGLShadowMap:\\\\\\\",c,\\\\\\\"has no shadow.\\\\\\\");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;s.copy(u.mapSize);const p=u.getFrameExtents();if(s.multiply(p),r.copy(u.mapSize),(s.x>h||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/p.x),s.x=r.x*p.x,u.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/p.y),s.y=r.y*p.y,u.mapSize.y=r.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:Ex,magFilter:Ex,format:Dx};u.map=new Ab(s.x,s.y,t),u.map.texture.name=c.name+\\\\\\\".shadowMap\\\\\\\",u.mapPass=new Ab(s.x,s.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:Tx,magFilter:Tx,format:Dx};u.map=new Ab(s.x,s.y,t),u.map.texture.name=c.name+\\\\\\\".shadowMap\\\\\\\",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const _=u.getViewportCount();for(let t=0;t<_;t++){const e=u.getViewport(t);o.set(r.x*e.x,r.y*e.y,r.x*e.z,r.y*e.w),d.viewport(o),u.updateMatrices(c,t),i=u.getFrustum(),y(n,a,u.camera,c,this.type)}u.isPointLightShadow||3!==this.type||g(u,a),u.needsUpdate=!1}f.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function EE(t,e,n){const i=n.isWebGL2;const s=new function(){let e=!1;const n=new Tb;let i=null;const s=new Tb(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,r,o,a){!0===a&&(e*=o,i*=o,r*=o),n.set(e,i,r,o),!1===s.equals(n)&&(t.clearColor(e,i,r,o),s.copy(n))},reset:function(){e=!1,i=null,s.set(-1,0,0,0)}}},r=new function(){let e=!1,n=null,i=null,s=null;return{setTest:function(t){t?B(2929):z(2929)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);i=e}},setLocked:function(t){e=t},setClear:function(e){s!==e&&(t.clearDepth(e),s=e)},reset:function(){e=!1,n=null,i=null,s=null}}},o=new function(){let e=!1,n=null,i=null,s=null,r=null,o=null,a=null,l=null,c=null;return{setTest:function(t){e||(t?B(2960):z(2960))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,o){i===e&&s===n&&r===o||(t.stencilFunc(e,n,o),i=e,s=n,r=o)},setOp:function(e,n,i){o===e&&a===n&&l===i||(t.stencilOp(e,n,i),o=e,a=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,s=null,r=null,o=null,a=null,l=null,c=null}}};let a={},l=null,c={},h=null,u=!1,d=null,p=null,_=null,m=null,f=null,g=null,v=null,y=!1,x=null,b=null,w=null,T=null,A=null;const M=t.getParameter(35661);let E=!1,S=0;const C=t.getParameter(7938);-1!==C.indexOf(\\\\\\\"WebGL\\\\\\\")?(S=parseFloat(/^WebGL (\\\\d)/.exec(C)[1]),E=S>=1):-1!==C.indexOf(\\\\\\\"OpenGL ES\\\\\\\")&&(S=parseFloat(/^OpenGL ES (\\\\d)/.exec(C)[1]),E=S>=2);let N=null,L={};const O=t.getParameter(3088),P=t.getParameter(2978),R=(new Tb).fromArray(O),I=(new Tb).fromArray(P);function F(e,n,i){const s=new Uint8Array(4),r=t.createTexture();t.bindTexture(e,r),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<i;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,s);return r}const D={};function B(e){!0!==a[e]&&(t.enable(e),a[e]=!0)}function z(e){!1!==a[e]&&(t.disable(e),a[e]=!1)}D[3553]=F(3553,3553,1),D[34067]=F(34067,34069,6),s.setClear(0,0,0,1),r.setClear(1),o.setClear(0),B(2929),r.setFunc(3),V(!1),H(1),B(2884),G(0);const k={[px]:32774,101:32778,102:32779};if(i)k[103]=32775,k[104]=32776;else{const t=e.get(\\\\\\\"EXT_blend_minmax\\\\\\\");null!==t&&(k[103]=t.MIN_EXT,k[104]=t.MAX_EXT)}const U={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function G(e,n,i,s,r,o,a,l){if(0!==e){if(!1===u&&(B(3042),u=!0),5===e)r=r||n,o=o||i,a=a||s,n===p&&r===f||(t.blendEquationSeparate(k[n],k[r]),p=n,f=r),i===_&&s===m&&o===g&&a===v||(t.blendFuncSeparate(U[i],U[s],U[o],U[a]),_=i,m=s,g=o,v=a),d=e,y=null;else if(e!==d||l!==y){if(p===px&&f===px||(t.blendEquation(32774),p=px,f=px),l)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error(\\\\\\\"THREE.WebGLState: Invalid blending: \\\\\\\",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error(\\\\\\\"THREE.WebGLState: Invalid blending: \\\\\\\",e)}_=null,m=null,g=null,v=null,d=e,y=l}}else!0===u&&(z(3042),u=!1)}function V(e){x!==e&&(e?t.frontFace(2304):t.frontFace(2305),x=e)}function H(e){0!==e?(B(2884),e!==b&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):z(2884),b=e}function j(e,n,i){e?(B(32823),T===n&&A===i||(t.polygonOffset(n,i),T=n,A=i)):z(32823)}function W(e){void 0===e&&(e=33984+M-1),N!==e&&(t.activeTexture(e),N=e)}return{buffers:{color:s,depth:r,stencil:o},enable:B,disable:z,bindFramebuffer:function(e,n){return null===n&&null!==l&&(n=l),c[e]!==n&&(t.bindFramebuffer(e,n),c[e]=n,i&&(36009===e&&(c[36160]=n),36160===e&&(c[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==l&&(t.bindFramebuffer(36160,e),l=e)},useProgram:function(e){return h!==e&&(t.useProgram(e),h=e,!0)},setBlending:G,setMaterial:function(t,e){2===t.side?z(2884):B(2884);let n=1===t.side;e&&(n=!n),V(n),1===t.blending&&!1===t.transparent?G(0):G(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),r.setFunc(t.depthFunc),r.setTest(t.depthTest),r.setMask(t.depthWrite),s.setMask(t.colorWrite);const i=t.stencilWrite;o.setTest(i),i&&(o.setMask(t.stencilWriteMask),o.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),o.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),j(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?B(32926):z(32926)},setFlipSided:V,setCullFace:H,setLineWidth:function(e){e!==w&&(E&&t.lineWidth(e),w=e)},setPolygonOffset:j,setScissorTest:function(t){t?B(3089):z(3089)},activeTexture:W,bindTexture:function(e,n){null===N&&W();let i=L[N];void 0===i&&(i={type:void 0,texture:void 0},L[N]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||D[e]),i.type=e,i.texture=n)},unbindTexture:function(){const e=L[N];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\\\\\\\"THREE.WebGLState:\\\\\\\",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\\\\\\\"THREE.WebGLState:\\\\\\\",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\\\\\\\"THREE.WebGLState:\\\\\\\",t)}},scissor:function(e){!1===R.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),R.copy(e))},viewport:function(e){!1===I.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),I.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===i&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),a={},N=null,L={},l=null,c={},h=null,u=!1,d=null,p=null,_=null,m=null,f=null,g=null,v=null,y=!1,x=null,b=null,w=null,T=null,A=null,R.set(0,0,t.canvas.width,t.canvas.height),I.set(0,0,t.canvas.width,t.canvas.height),s.reset(),r.reset(),o.reset()}}}function SE(t,e,n,i,s,r,o){const a=s.isWebGL2,l=s.maxTextures,c=s.maxCubemapSize,h=s.maxTextureSize,u=s.maxSamples,d=new WeakMap;let p,_=!1;try{_=\\\\\\\"undefined\\\\\\\"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\\\\\\\"2d\\\\\\\")}catch(t){}function m(t,e){return _?new OffscreenCanvas(t,e):gb(\\\\\\\"canvas\\\\\\\")}function f(t,e,n,i){let s=1;if((t.width>i||t.height>i)&&(s=i/Math.max(t.width,t.height)),s<1||!0===e){if(\\\\\\\"undefined\\\\\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\\\\\"undefined\\\\\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\\\\\"undefined\\\\\\\"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?db:Math.floor,r=i(s*t.width),o=i(s*t.height);void 0===p&&(p=m(r,o));const a=n?m(r,o):p;a.width=r,a.height=o;return a.getContext(\\\\\\\"2d\\\\\\\").drawImage(t,0,0,r,o),console.warn(\\\\\\\"THREE.WebGLRenderer: Texture has been resized from (\\\\\\\"+t.width+\\\\\\\"x\\\\\\\"+t.height+\\\\\\\") to (\\\\\\\"+r+\\\\\\\"x\\\\\\\"+o+\\\\\\\").\\\\\\\"),a}return\\\\\\\"data\\\\\\\"in t&&console.warn(\\\\\\\"THREE.WebGLRenderer: Image in DataTexture is too big (\\\\\\\"+t.width+\\\\\\\"x\\\\\\\"+t.height+\\\\\\\").\\\\\\\"),t}return t}function g(t){return hb(t.width)&&hb(t.height)}function v(t,e){return t.generateMipmaps&&e&&t.minFilter!==Tx&&t.minFilter!==Ex}function y(e,n,s,r,o=1){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(s,r,o))}function x(n,i,s,r){if(!1===a)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\\\\\\\"+n+\\\\\\\"'\\\\\\\")}let o=i;return 6403===i&&(5126===s&&(o=33326),5131===s&&(o=33325),5121===s&&(o=33321)),6407===i&&(5126===s&&(o=34837),5131===s&&(o=34843),5121===s&&(o=32849)),6408===i&&(5126===s&&(o=34836),5131===s&&(o=34842),5121===s&&(o=r===Xx?35907:32856)),33325!==o&&33326!==o&&34842!==o&&34836!==o||e.get(\\\\\\\"EXT_color_buffer_float\\\\\\\"),o}function b(t){return t===Tx||t===Ax||t===Mx?9728:9729}function w(e){const n=e.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",w),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&d.delete(n),o.memory.textures--}function T(e){const n=e.target;n.removeEventListener(\\\\\\\"dispose\\\\\\\",T),function(e){const n=e.texture,s=i.get(e),r=i.get(n);if(!e)return;void 0!==r.__webglTexture&&(t.deleteTexture(r.__webglTexture),o.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(s.__webglFramebuffer[e]),s.__webglDepthbuffer&&t.deleteRenderbuffer(s.__webglDepthbuffer[e]);else t.deleteFramebuffer(s.__webglFramebuffer),s.__webglDepthbuffer&&t.deleteRenderbuffer(s.__webglDepthbuffer),s.__webglMultisampledFramebuffer&&t.deleteFramebuffer(s.__webglMultisampledFramebuffer),s.__webglColorRenderbuffer&&t.deleteRenderbuffer(s.__webglColorRenderbuffer),s.__webglDepthRenderbuffer&&t.deleteRenderbuffer(s.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,s=n.length;e<s;e++){const s=i.get(n[e]);s.__webglTexture&&(t.deleteTexture(s.__webglTexture),o.memory.textures--),i.remove(n[e])}i.remove(n),i.remove(e)}(n)}let A=0;function M(t,e){const s=i.get(t);if(t.isVideoTexture&&function(t){const e=o.render.frame;d.get(t)!==e&&(d.set(t,e),t.update())}(t),t.version>0&&s.__version!==t.version){const n=t.image;if(void 0===n)console.warn(\\\\\\\"THREE.WebGLRenderer: Texture marked for update but image is undefined\\\\\\\");else{if(!1!==n.complete)return void O(s,t,e);console.warn(\\\\\\\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\\\\\\\")}}n.activeTexture(33984+e),n.bindTexture(3553,s.__webglTexture)}function E(e,s){const o=i.get(e);e.version>0&&o.__version!==e.version?function(e,i,s){if(6!==i.image.length)return;L(e,i),n.activeTexture(33984+s),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const o=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=o||l?l?i.image[t].image:i.image[t]:f(i.image[t],!1,!0,c);const u=h[0],d=g(u)||a,p=r.convert(i.format),_=r.convert(i.type),m=x(i.internalFormat,p,_,i.encoding);let b;if(N(34067,i,d),o){for(let t=0;t<6;t++){b=h[t].mipmaps;for(let e=0;e<b.length;e++){const s=b[e];i.format!==Dx&&i.format!==Fx?null!==p?n.compressedTexImage2D(34069+t,e,m,s.width,s.height,0,s.data):console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\\\\\\\"):n.texImage2D(34069+t,e,m,s.width,s.height,0,p,_,s.data)}}e.__maxMipLevel=b.length-1}else{b=i.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,m,h[t].width,h[t].height,0,p,_,h[t].data);for(let e=0;e<b.length;e++){const i=b[e].image[t].image;n.texImage2D(34069+t,e+1,m,i.width,i.height,0,p,_,i.data)}}else{n.texImage2D(34069+t,0,m,p,_,h[t]);for(let e=0;e<b.length;e++){const i=b[e];n.texImage2D(34069+t,e+1,m,p,_,i.image[t])}}e.__maxMipLevel=b.length}v(i,d)&&y(34067,i,u.width,u.height);e.__version=i.version,i.onUpdate&&i.onUpdate(i)}(o,e,s):(n.activeTexture(33984+s),n.bindTexture(34067,o.__webglTexture))}const S={[xx]:10497,[bx]:33071,[wx]:33648},C={[Tx]:9728,[Ax]:9984,[Mx]:9986,[Ex]:9729,[Sx]:9985,[Cx]:9987};function N(n,r,o){if(o?(t.texParameteri(n,10242,S[r.wrapS]),t.texParameteri(n,10243,S[r.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,S[r.wrapR]),t.texParameteri(n,10240,C[r.magFilter]),t.texParameteri(n,10241,C[r.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),r.wrapS===bx&&r.wrapT===bx||console.warn(\\\\\\\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\\\\\\\"),t.texParameteri(n,10240,b(r.magFilter)),t.texParameteri(n,10241,b(r.minFilter)),r.minFilter!==Tx&&r.minFilter!==Ex&&console.warn(\\\\\\\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\\\\\\\")),!0===e.has(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\")){const o=e.get(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\");if(r.type===Px&&!1===e.has(\\\\\\\"OES_texture_float_linear\\\\\\\"))return;if(!1===a&&r.type===Rx&&!1===e.has(\\\\\\\"OES_texture_half_float_linear\\\\\\\"))return;(r.anisotropy>1||i.get(r).__currentAnisotropy)&&(t.texParameterf(n,o.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(r.anisotropy,s.getMaxAnisotropy())),i.get(r).__currentAnisotropy=r.anisotropy)}}function L(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\\\\\\\"dispose\\\\\\\",w),e.__webglTexture=t.createTexture(),o.memory.textures++)}function O(e,i,s){let o=3553;i.isDataTexture2DArray&&(o=35866),i.isDataTexture3D&&(o=32879),L(e,i),n.activeTexture(33984+s),n.bindTexture(o,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!a&&(t.wrapS!==bx||t.wrapT!==bx||t.minFilter!==Tx&&t.minFilter!==Ex)}(i)&&!1===g(i.image),c=f(i.image,l,!1,h),u=g(c)||a,d=r.convert(i.format);let p,_=r.convert(i.type),m=x(i.internalFormat,d,_,i.encoding);N(o,i,u);const b=i.mipmaps;if(i.isDepthTexture)m=6402,a?m=i.type===Px?36012:i.type===Ox?33190:i.type===Ix?35056:33189:i.type===Px&&console.error(\\\\\\\"WebGLRenderer: Floating point depth texture requires WebGL2.\\\\\\\"),i.format===Bx&&6402===m&&i.type!==Lx&&i.type!==Ox&&(console.warn(\\\\\\\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\\\\\\\"),i.type=Lx,_=r.convert(i.type)),i.format===zx&&6402===m&&(m=34041,i.type!==Ix&&(console.warn(\\\\\\\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\\\\\\\"),i.type=Ix,_=r.convert(i.type))),n.texImage2D(3553,0,m,c.width,c.height,0,d,_,null);else if(i.isDataTexture)if(b.length>0&&u){for(let t=0,e=b.length;t<e;t++)p=b[t],n.texImage2D(3553,t,m,p.width,p.height,0,d,_,p.data);i.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else n.texImage2D(3553,0,m,c.width,c.height,0,d,_,c.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let t=0,e=b.length;t<e;t++)p=b[t],i.format!==Dx&&i.format!==Fx?null!==d?n.compressedTexImage2D(3553,t,m,p.width,p.height,0,p.data):console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\\\\\\\"):n.texImage2D(3553,t,m,p.width,p.height,0,d,_,p.data);e.__maxMipLevel=b.length-1}else if(i.isDataTexture2DArray)n.texImage3D(35866,0,m,c.width,c.height,c.depth,0,d,_,c.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(32879,0,m,c.width,c.height,c.depth,0,d,_,c.data),e.__maxMipLevel=0;else if(b.length>0&&u){for(let t=0,e=b.length;t<e;t++)p=b[t],n.texImage2D(3553,t,m,d,_,p);i.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else n.texImage2D(3553,0,m,d,_,c),e.__maxMipLevel=0;v(i,u)&&y(o,i,c.width,c.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function P(e,s,o,a,l){const c=r.convert(o.format),h=r.convert(o.type),u=x(o.internalFormat,c,h,o.encoding);32879===l||35866===l?n.texImage3D(l,0,u,s.width,s.height,s.depth,0,c,h,null):n.texImage2D(l,0,u,s.width,s.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,a,l,i.get(o).__webglTexture,0),n.bindFramebuffer(36160,null)}function R(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let s=33189;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===Px?s=36012:e.type===Ox&&(s=33190));const i=F(n);t.renderbufferStorageMultisample(36161,i,s,n.width,n.height)}else t.renderbufferStorage(36161,s,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=F(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,s=r.convert(e.format),o=r.convert(e.type),a=x(e.internalFormat,s,o,e.encoding);if(i){const e=F(n);t.renderbufferStorageMultisample(36161,e,a,n.width,n.height)}else t.renderbufferStorage(36161,a,n.width,n.height)}t.bindRenderbuffer(36161,null)}function I(e){const s=i.get(e),r=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(r)throw new Error(\\\\\\\"target.depthTexture not supported in Cube render targets\\\\\\\");!function(e,s){if(s&&s.isWebGLCubeRenderTarget)throw new Error(\\\\\\\"Depth Texture with cube render targets is not supported\\\\\\\");if(n.bindFramebuffer(36160,e),!s.depthTexture||!s.depthTexture.isDepthTexture)throw new Error(\\\\\\\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\\\\\\\");i.get(s.depthTexture).__webglTexture&&s.depthTexture.image.width===s.width&&s.depthTexture.image.height===s.height||(s.depthTexture.image.width=s.width,s.depthTexture.image.height=s.height,s.depthTexture.needsUpdate=!0),M(s.depthTexture,0);const r=i.get(s.depthTexture).__webglTexture;if(s.depthTexture.format===Bx)t.framebufferTexture2D(36160,36096,3553,r,0);else{if(s.depthTexture.format!==zx)throw new Error(\\\\\\\"Unknown depthTexture format\\\\\\\");t.framebufferTexture2D(36160,33306,3553,r,0)}}(s.__webglFramebuffer,e)}else if(r){s.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(36160,s.__webglFramebuffer[i]),s.__webglDepthbuffer[i]=t.createRenderbuffer(),R(s.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(36160,s.__webglFramebuffer),s.__webglDepthbuffer=t.createRenderbuffer(),R(s.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function F(t){return a&&t.isWebGLMultisampleRenderTarget?Math.min(u,t.samples):0}let D=!1,B=!1;this.allocateTextureUnit=function(){const t=A;return t>=l&&console.warn(\\\\\\\"THREE.WebGLTextures: Trying to use \\\\\\\"+t+\\\\\\\" texture units while this GPU supports only \\\\\\\"+l),A+=1,t},this.resetTextureUnits=function(){A=0},this.setTexture2D=M,this.setTexture2DArray=function(t,e){const s=i.get(t);t.version>0&&s.__version!==t.version?O(s,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,s.__webglTexture))},this.setTexture3D=function(t,e){const s=i.get(t);t.version>0&&s.__version!==t.version?O(s,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,s.__webglTexture))},this.setTextureCube=E,this.setupRenderTarget=function(e){const l=e.texture,c=i.get(e),h=i.get(l);e.addEventListener(\\\\\\\"dispose\\\\\\\",T),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,o.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,_=l.isDataTexture3D||l.isDataTexture2DArray,m=g(e)||a;if(!a||l.format!==Fx||l.type!==Px&&l.type!==Rx||(l.format=Dx,console.warn(\\\\\\\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\\\\\\\")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(s.drawBuffers){const n=e.texture;for(let e=0,s=n.length;e<s;e++){const s=i.get(n[e]);void 0===s.__webglTexture&&(s.__webglTexture=t.createTexture(),o.memory.textures++)}}else console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\\\\\\\");else if(p)if(a){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=r.convert(l.format),s=r.convert(l.type),o=x(l.internalFormat,i,s,l.encoding),a=F(e);t.renderbufferStorageMultisample(36161,a,o,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),R(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\\\\\\\");if(u){n.bindTexture(34067,h.__webglTexture),N(34067,l,m);for(let t=0;t<6;t++)P(c.__webglFramebuffer[t],e,l,36064,34069+t);v(l,m)&&y(34067,l,e.width,e.height),n.unbindTexture()}else if(d){const t=e.texture;for(let s=0,r=t.length;s<r;s++){const r=t[s],o=i.get(r);n.bindTexture(3553,o.__webglTexture),N(3553,r,m),P(c.__webglFramebuffer,e,r,36064+s,3553),v(r,m)&&y(3553,r,e.width,e.height)}n.unbindTexture()}else{let t=3553;if(_)if(a){t=l.isDataTexture3D?32879:35866}else console.warn(\\\\\\\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\\\\\\\");n.bindTexture(t,h.__webglTexture),N(t,l,m),P(c.__webglFramebuffer,e,l,36064,t),v(l,m)&&y(t,l,e.width,e.height,e.depth),n.unbindTexture()}e.depthBuffer&&I(e)},this.updateRenderTargetMipmap=function(t){const e=g(t)||a,s=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let r=0,o=s.length;r<o;r++){const o=s[r];if(v(o,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,s=i.get(o).__webglTexture;n.bindTexture(e,s),y(e,o,t.width,t.height),n.unbindTexture()}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(a){const s=e.width,r=e.height;let o=16384;e.depthBuffer&&(o|=256),e.stencilBuffer&&(o|=1024);const a=i.get(e);n.bindFramebuffer(36008,a.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,a.__webglFramebuffer),t.blitFramebuffer(0,0,s,r,0,0,s,r,o,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,a.__webglMultisampledFramebuffer)}else console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\\\\\\\")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===D&&(console.warn(\\\\\\\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\\\\\\\"),D=!0),t=t.texture),M(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===B&&(console.warn(\\\\\\\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\\\\\\\"),B=!0),t=t.texture),E(t,e)}}function CE(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===Nx)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===Lx)return 5123;if(1013===t)return 5124;if(t===Ox)return 5125;if(t===Px)return 5126;if(t===Rx)return i?5131:(n=e.get(\\\\\\\"OES_texture_half_float\\\\\\\"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===Fx)return 6407;if(t===Dx)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===Bx)return 6402;if(t===zx)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(33776===t||33777===t||33778===t||33779===t){if(n=e.get(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\"),null===n)return null;if(33776===t)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===t||35841===t||35842===t||35843===t){if(n=e.get(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\"),null===n)return null;if(35840===t)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get(\\\\\\\"WEBGL_compressed_texture_etc1\\\\\\\"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((37492===t||37496===t)&&(n=e.get(\\\\\\\"WEBGL_compressed_texture_etc\\\\\\\"),null!==n)){if(37492===t)return n.COMPRESSED_RGB8_ETC2;if(37496===t)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get(\\\\\\\"WEBGL_compressed_texture_astc\\\\\\\"),null!==n?t:null):36492===t?(n=e.get(\\\\\\\"EXT_texture_compression_bptc\\\\\\\"),null!==n?t:null):t===Ix?i?34042:(n=e.get(\\\\\\\"WEBGL_depth_texture\\\\\\\"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class NE extends DT{constructor(t=[]){super(),this.cameras=t}}NE.prototype.isArrayCamera=!0;class LE extends Nw{constructor(){super(),this.type=\\\\\\\"Group\\\\\\\"}}LE.prototype.isGroup=!0;const OE={type:\\\\\\\"move\\\\\\\"};class PE{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new LE,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new LE,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Sb,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Sb),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new LE,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Sb,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Sb),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:\\\\\\\"disconnected\\\\\\\",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,r=null;const o=this._targetRay,a=this._grip,l=this._hand;if(t&&\\\\\\\"visible-blurred\\\\\\\"!==e.session.visibilityState)if(null!==o&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(OE))),l&&t.hand){r=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new LE;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const s=l.joints[i.jointName];null!==t&&(s.matrix.fromArray(t.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.jointRadius=t.radius),s.visible=null!==t}const i=l.joints[\\\\\\\"index-finger-tip\\\\\\\"],s=l.joints[\\\\\\\"thumb-tip\\\\\\\"],o=i.position.distanceTo(s.position),a=.02,c=.005;l.inputState.pinching&&o>a+c?(l.inputState.pinching=!1,this.dispatchEvent({type:\\\\\\\"pinchend\\\\\\\",handedness:t.handedness,target:this})):!l.inputState.pinching&&o<=a-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:\\\\\\\"pinchstart\\\\\\\",handedness:t.handedness,target:this}))}else null!==a&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),null!==s&&(a.matrix.fromArray(s.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),s.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(s.linearVelocity)):a.hasLinearVelocity=!1,s.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(s.angularVelocity)):a.hasAngularVelocity=!1));return null!==o&&(o.visible=null!==i),null!==a&&(a.visible=null!==s),null!==l&&(l.visible=null!==r),this}}class RE extends tb{constructor(t,e){super();const n=this,i=t.state;let s=null,r=1,o=null,a=\\\\\\\"local-floor\\\\\\\",l=null,c=null,h=null,u=null,d=null,p=!1,_=null,m=null,f=null,g=null,v=null,y=null;const x=[],b=new Map,w=new DT;w.layers.enable(1),w.viewport=new Tb;const T=new DT;T.layers.enable(2),T.viewport=new Tb;const A=[w,T],M=new NE;M.layers.enable(1),M.layers.enable(2);let E=null,S=null;function C(t){const e=b.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function N(){b.forEach((function(t,e){t.disconnect(e)})),b.clear(),E=null,S=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),h&&e.deleteFramebuffer(h),_&&e.deleteFramebuffer(_),m&&e.deleteRenderbuffer(m),f&&e.deleteRenderbuffer(f),h=null,_=null,m=null,f=null,d=null,u=null,c=null,s=null,F.stop(),n.isPresenting=!1,n.dispatchEvent({type:\\\\\\\"sessionend\\\\\\\"})}function L(t){const e=s.inputSources;for(let t=0;t<x.length;t++)b.set(e[t],x[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=b.get(n);i&&(i.dispatchEvent({type:\\\\\\\"disconnected\\\\\\\",data:n}),b.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],i=b.get(n);i&&i.dispatchEvent({type:\\\\\\\"connected\\\\\\\",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=x[t];return void 0===e&&(e=new PE,x[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=x[t];return void 0===e&&(e=new PE,x[t]=e),e.getGripSpace()},this.getHand=function(t){let e=x[t];return void 0===e&&(e=new PE,x[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn(\\\\\\\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\\\\\\\")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn(\\\\\\\"THREE.WebXRManager: Cannot change reference space type while presenting.\\\\\\\")},this.getReferenceSpace=function(){return o},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return c},this.getFrame=function(){return g},this.getSession=function(){return s},this.setSession=async function(t){if(s=t,null!==s){s.addEventListener(\\\\\\\"select\\\\\\\",C),s.addEventListener(\\\\\\\"selectstart\\\\\\\",C),s.addEventListener(\\\\\\\"selectend\\\\\\\",C),s.addEventListener(\\\\\\\"squeeze\\\\\\\",C),s.addEventListener(\\\\\\\"squeezestart\\\\\\\",C),s.addEventListener(\\\\\\\"squeezeend\\\\\\\",C),s.addEventListener(\\\\\\\"end\\\\\\\",N),s.addEventListener(\\\\\\\"inputsourceschange\\\\\\\",L);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===s.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(s,e,n),s.updateRenderState({baseLayer:d})}else if(e instanceof WebGLRenderingContext){const n={antialias:!0,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(s,e,n),s.updateRenderState({layers:[d]})}else{p=t.antialias;let n=null;t.depth&&(y=256,t.stencil&&(y|=1024),v=t.stencil?33306:36096,n=t.stencil?35056:33190);const o={colorFormat:t.alpha?32856:32849,depthFormat:n,scaleFactor:r};c=new XRWebGLBinding(s,e),u=c.createProjectionLayer(o),h=e.createFramebuffer(),s.updateRenderState({layers:[u]}),p&&(_=e.createFramebuffer(),m=e.createRenderbuffer(),e.bindRenderbuffer(36161,m),e.renderbufferStorageMultisample(36161,4,32856,u.textureWidth,u.textureHeight),i.bindFramebuffer(36160,_),e.framebufferRenderbuffer(36160,36064,36161,m),e.bindRenderbuffer(36161,null),null!==n&&(f=e.createRenderbuffer(),e.bindRenderbuffer(36161,f),e.renderbufferStorageMultisample(36161,4,n,u.textureWidth,u.textureHeight),e.framebufferRenderbuffer(36160,v,36161,f),e.bindRenderbuffer(36161,null)),i.bindFramebuffer(36160,null))}o=await s.requestReferenceSpace(a),F.setContext(s),F.start(),n.isPresenting=!0,n.dispatchEvent({type:\\\\\\\"sessionstart\\\\\\\"})}};const O=new Sb,P=new Sb;function R(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===s)return;M.near=T.near=w.near=t.near,M.far=T.far=w.far=t.far,E===M.near&&S===M.far||(s.updateRenderState({depthNear:M.near,depthFar:M.far}),E=M.near,S=M.far);const e=t.parent,n=M.cameras;R(M,e);for(let t=0;t<n.length;t++)R(n[t],e);M.matrixWorld.decompose(M.position,M.quaternion,M.scale),t.position.copy(M.position),t.quaternion.copy(M.quaternion),t.scale.copy(M.scale),t.matrix.copy(M.matrix),t.matrixWorld.copy(M.matrixWorld);const i=t.children;for(let t=0,e=i.length;t<e;t++)i[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){O.setFromMatrixPosition(e.matrixWorld),P.setFromMatrixPosition(n.matrixWorld);const i=O.distanceTo(P),s=e.projectionMatrix.elements,r=n.projectionMatrix.elements,o=s[14]/(s[10]-1),a=s[14]/(s[10]+1),l=(s[9]+1)/s[5],c=(s[9]-1)/s[5],h=(s[8]-1)/s[0],u=(r[8]+1)/r[0],d=o*h,p=o*u,_=i/(-h+u),m=_*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(_),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const f=o+_,g=a+_,v=d-m,y=p+(i-m),x=l*a/g*f,b=c*a/g*f;t.projectionMatrix.makePerspective(v,y,x,b,f,g)}(M,w,T):M.projectionMatrix.copy(w.projectionMatrix)},this.getCamera=function(){return M},this.getFoveation=function(){return null!==u?u.fixedFoveation:null!==d?d.fixedFoveation:void 0},this.setFoveation=function(t){null!==u&&(u.fixedFoveation=t),null!==d&&void 0!==d.fixedFoveation&&(d.fixedFoveation=t)};let I=null;const F=new YT;F.setAnimationLoop((function(t,n){if(l=n.getViewerPose(o),g=n,null!==l){const t=l.views;null!==d&&i.bindXRFramebuffer(d.framebuffer);let n=!1;t.length!==M.cameras.length&&(M.cameras.length=0,n=!0);for(let s=0;s<t.length;s++){const r=t[s];let o=null;if(null!==d)o=d.getViewport(r);else{const t=c.getViewSubImage(u,r);i.bindXRFramebuffer(h),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,v,3553,t.depthStencilTexture,0),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),o=t.viewport}const a=A[s];a.matrix.fromArray(r.transform.matrix),a.projectionMatrix.fromArray(r.projectionMatrix),a.viewport.set(o.x,o.y,o.width,o.height),0===s&&M.matrix.copy(a.matrix),!0===n&&M.cameras.push(a)}p&&(i.bindXRFramebuffer(_),null!==y&&e.clear(y))}const r=s.inputSources;for(let t=0;t<x.length;t++){const e=x[t],i=r[t];e.update(i,n,o)}if(I&&I(t,n),p){const t=u.textureWidth,n=u.textureHeight;i.bindFramebuffer(36008,_),i.bindFramebuffer(36009,h),e.invalidateFramebuffer(36008,[v]),e.invalidateFramebuffer(36009,[v]),e.blitFramebuffer(0,0,t,n,0,0,t,n,16384,9728),e.invalidateFramebuffer(36008,[36064]),i.bindFramebuffer(36008,null),i.bindFramebuffer(36009,null),i.bindFramebuffer(36160,_)}g=null})),this.setAnimationLoop=function(t){I=t},this.dispose=function(){}}}function IE(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap),n.alphaTest>0&&(e.alphaTest.value=n.alphaTest);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,e.reflectivity.value=n.reflectivity,e.ior.value=n.ior,e.refractionRatio.value=n.refractionRatio;const s=t.get(i).__maxMipLevel;void 0!==s&&(e.maxMipLevel.value=s)}let s,r;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?s=n.map:n.specularMap?s=n.specularMap:n.displacementMap?s=n.displacementMap:n.normalMap?s=n.normalMap:n.bumpMap?s=n.bumpMap:n.roughnessMap?s=n.roughnessMap:n.metalnessMap?s=n.metalnessMap:n.alphaMap?s=n.alphaMap:n.emissiveMap?s=n.emissiveMap:n.clearcoatMap?s=n.clearcoatMap:n.clearcoatNormalMap?s=n.clearcoatNormalMap:n.clearcoatRoughnessMap?s=n.clearcoatRoughnessMap:n.specularIntensityMap?s=n.specularIntensityMap:n.specularTintMap?s=n.specularTintMap:n.transmissionMap?s=n.transmissionMap:n.thicknessMap&&(s=n.thicknessMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uvTransform.value.copy(s.matrix)),n.aoMap?r=n.aoMap:n.lightMap&&(r=n.lightMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uv2Transform.value.copy(r.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,s,r,o){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.ior.value=e.ior,e.sheen>0&&(t.sheenTint.value.copy(e.sheenTint).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness);e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap),t.attenuationDistance.value=e.attenuationDistance,t.attenuationTint.value.copy(e.attenuationTint));t.specularIntensity.value=e.specularIntensity,t.specularTint.value.copy(e.specularTint),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap);e.specularTintMap&&(t.specularTintMap.value=e.specularTintMap)}(t,i,o):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let s;e.map?s=e.map:e.alphaMap&&(s=e.alphaMap);void 0!==s&&(!0===s.matrixAutoUpdate&&s.updateMatrix(),t.uvTransform.value.copy(s.matrix))}(t,i,s,r):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function FE(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=gb(\\\\\\\"canvas\\\\\\\");return t.style.display=\\\\\\\"block\\\\\\\",t}(),n=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,s=void 0===t.depth||t.depth,r=void 0===t.stencil||t.stencil,o=void 0!==t.antialias&&t.antialias,a=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:\\\\\\\"default\\\\\\\",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let u=null,d=null;const p=[],_=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=qx,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const m=this;let f=!1,g=0,v=0,y=null,x=-1,b=null;const w=new Tb,T=new Tb;let A=null,M=e.width,E=e.height,S=1,C=null,N=null;const L=new Tb(0,0,M,E),O=new Tb(0,0,M,E);let P=!1;const R=[],I=new XT;let F=!1,D=!1,B=null;const z=new sw,k=new Sb,U={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function G(){return null===y?S:1}let V,H,j,W,q,X,Y,$,J,Z,K,Q,tt,et,nt,it,st,rt,ot,at,lt,ct,ht,ut=n;function dt(t,n){for(let i=0;i<t.length;i++){const s=t[i],r=e.getContext(s,n);if(null!==r)return r}return null}try{const t={alpha:i,depth:s,stencil:r,antialias:o,premultipliedAlpha:a,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener(\\\\\\\"webglcontextlost\\\\\\\",mt,!1),e.addEventListener(\\\\\\\"webglcontextrestored\\\\\\\",ft,!1),null===ut){const e=[\\\\\\\"webgl2\\\\\\\",\\\\\\\"webgl\\\\\\\",\\\\\\\"experimental-webgl\\\\\\\"];if(!0===m.isWebGL1Renderer&&e.shift(),ut=dt(e,t),null===ut)throw dt(e)?new Error(\\\\\\\"Error creating WebGL context with your selected attributes.\\\\\\\"):new Error(\\\\\\\"Error creating WebGL context.\\\\\\\")}void 0===ut.getShaderPrecisionFormat&&(ut.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error(\\\\\\\"THREE.WebGLRenderer: \\\\\\\"+t.message),t}function pt(){V=new PA(ut),H=new iA(ut,V,t),V.init(H),ct=new CE(ut,V,H),j=new EE(ut,V,H),R[0]=1029,W=new FA(ut),q=new dE,X=new SE(ut,V,j,q,H,ct,W),Y=new rA(m),$=new OA(m),J=new $T(ut,H),ht=new eA(ut,V,J,H),Z=new RA(ut,J,W,ht),K=new GA(ut,Z,J,W),ot=new UA(ut,H,X),it=new sA(q),Q=new uE(m,Y,$,V,H,ht,it),tt=new IE(q),et=new fE(q),nt=new wE(V,H),rt=new tA(m,Y,j,K,a),st=new ME(m,K,H),at=new nA(ut,V,W,H),lt=new IA(ut,V,W,H),W.programs=Q.programs,m.capabilities=H,m.extensions=V,m.properties=q,m.renderLists=et,m.shadowMap=st,m.state=j,m.info=W}pt();const _t=new RE(m,ut);function mt(t){t.preventDefault(),console.log(\\\\\\\"THREE.WebGLRenderer: Context Lost.\\\\\\\"),f=!0}function ft(){console.log(\\\\\\\"THREE.WebGLRenderer: Context Restored.\\\\\\\"),f=!1;const t=W.autoReset,e=st.enabled,n=st.autoUpdate,i=st.needsUpdate,s=st.type;pt(),W.autoReset=t,st.enabled=e,st.autoUpdate=n,st.needsUpdate=i,st.type=s}function gt(t){const e=t.target;e.removeEventListener(\\\\\\\"dispose\\\\\\\",gt),function(t){(function(t){const e=q.get(t).programs;void 0!==e&&e.forEach((function(t){Q.releaseProgram(t)}))})(t),q.remove(t)}(e)}this.xr=_t,this.getContext=function(){return ut},this.getContextAttributes=function(){return ut.getContextAttributes()},this.forceContextLoss=function(){const t=V.get(\\\\\\\"WEBGL_lose_context\\\\\\\");t&&t.loseContext()},this.forceContextRestore=function(){const t=V.get(\\\\\\\"WEBGL_lose_context\\\\\\\");t&&t.restoreContext()},this.getPixelRatio=function(){return S},this.setPixelRatio=function(t){void 0!==t&&(S=t,this.setSize(M,E,!1))},this.getSize=function(t){return t.set(M,E)},this.setSize=function(t,n,i){_t.isPresenting?console.warn(\\\\\\\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\\\\\\\"):(M=t,E=n,e.width=Math.floor(t*S),e.height=Math.floor(n*S),!1!==i&&(e.style.width=t+\\\\\\\"px\\\\\\\",e.style.height=n+\\\\\\\"px\\\\\\\"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(M*S,E*S).floor()},this.setDrawingBufferSize=function(t,n,i){M=t,E=n,S=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(w)},this.getViewport=function(t){return t.copy(L)},this.setViewport=function(t,e,n,i){t.isVector4?L.set(t.x,t.y,t.z,t.w):L.set(t,e,n,i),j.viewport(w.copy(L).multiplyScalar(S).floor())},this.getScissor=function(t){return t.copy(O)},this.setScissor=function(t,e,n,i){t.isVector4?O.set(t.x,t.y,t.z,t.w):O.set(t,e,n,i),j.scissor(T.copy(O).multiplyScalar(S).floor())},this.getScissorTest=function(){return P},this.setScissorTest=function(t){j.setScissorTest(P=t)},this.setOpaqueSort=function(t){C=t},this.setTransparentSort=function(t){N=t},this.getClearColor=function(t){return t.copy(rt.getClearColor())},this.setClearColor=function(){rt.setClearColor.apply(rt,arguments)},this.getClearAlpha=function(){return rt.getClearAlpha()},this.setClearAlpha=function(){rt.setClearAlpha.apply(rt,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=16384),(void 0===e||e)&&(i|=256),(void 0===n||n)&&(i|=1024),ut.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(\\\\\\\"webglcontextlost\\\\\\\",mt,!1),e.removeEventListener(\\\\\\\"webglcontextrestored\\\\\\\",ft,!1),et.dispose(),nt.dispose(),q.dispose(),Y.dispose(),$.dispose(),K.dispose(),ht.dispose(),_t.dispose(),_t.removeEventListener(\\\\\\\"sessionstart\\\\\\\",yt),_t.removeEventListener(\\\\\\\"sessionend\\\\\\\",xt),B&&(B.dispose(),B=null),bt.stop()},this.renderBufferImmediate=function(t,e){ht.initAttributes();const n=q.get(t);t.hasPositions&&!n.position&&(n.position=ut.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=ut.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=ut.createBuffer()),t.hasColors&&!n.color&&(n.color=ut.createBuffer());const i=e.getAttributes();t.hasPositions&&(ut.bindBuffer(34962,n.position),ut.bufferData(34962,t.positionArray,35048),ht.enableAttribute(i.position.location),ut.vertexAttribPointer(i.position.location,3,5126,!1,0,0)),t.hasNormals&&(ut.bindBuffer(34962,n.normal),ut.bufferData(34962,t.normalArray,35048),ht.enableAttribute(i.normal.location),ut.vertexAttribPointer(i.normal.location,3,5126,!1,0,0)),t.hasUvs&&(ut.bindBuffer(34962,n.uv),ut.bufferData(34962,t.uvArray,35048),ht.enableAttribute(i.uv.location),ut.vertexAttribPointer(i.uv.location,2,5126,!1,0,0)),t.hasColors&&(ut.bindBuffer(34962,n.color),ut.bufferData(34962,t.colorArray,35048),ht.enableAttribute(i.color.location),ut.vertexAttribPointer(i.color.location,3,5126,!1,0,0)),ht.disableUnusedAttributes(),ut.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,s,r){null===e&&(e=U);const o=s.isMesh&&s.matrixWorld.determinant()<0,a=Ct(t,e,n,i,s);j.setMaterial(i,o);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===i.wireframe&&(l=Z.getWireframeAttribute(n),u=2),ht.setup(s,i,a,n,l);let d=at;null!==l&&(h=J.get(l),d=lt,d.setIndex(h));const p=null!==l?l.count:c.count,_=n.drawRange.start*u,m=n.drawRange.count*u,f=null!==r?r.start*u:0,g=null!==r?r.count*u:1/0,v=Math.max(_,f),y=Math.min(p,_+m,f+g)-1,x=Math.max(0,y-v+1);if(0!==x){if(s.isMesh)!0===i.wireframe?(j.setLineWidth(i.wireframeLinewidth*G()),d.setMode(1)):d.setMode(4);else if(s.isLine){let t=i.linewidth;void 0===t&&(t=1),j.setLineWidth(t*G()),s.isLineSegments?d.setMode(1):s.isLineLoop?d.setMode(2):d.setMode(3)}else s.isPoints?d.setMode(0):s.isSprite&&d.setMode(4);if(s.isInstancedMesh)d.renderInstances(v,x,s.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(v,x,t)}else d.render(v,x)}},this.compile=function(t,e){d=nt.get(t),d.init(),_.push(d),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(d.pushLight(t),t.castShadow&&d.pushShadow(t))})),d.setupLights(m.physicallyCorrectLights),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let i=0;i<n.length;i++){Et(n[i],t,e)}else Et(n,t,e)})),_.pop(),d=null};let vt=null;function yt(){bt.stop()}function xt(){bt.start()}const bt=new YT;function wt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)d.pushLight(t),t.castShadow&&d.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||I.intersectsSprite(t)){i&&k.setFromMatrixPosition(t.matrixWorld).applyMatrix4(z);const e=K.update(t),s=t.material;s.visible&&u.push(t,e,s,n,k.z,null)}}else if(t.isImmediateRenderObject)i&&k.setFromMatrixPosition(t.matrixWorld).applyMatrix4(z),u.push(t,null,t.material,n,k.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==W.render.frame&&(t.skeleton.update(),t.skeleton.frame=W.render.frame),!t.frustumCulled||I.intersectsObject(t))){i&&k.setFromMatrixPosition(t.matrixWorld).applyMatrix4(z);const e=K.update(t),s=t.material;if(Array.isArray(s)){const i=e.groups;for(let r=0,o=i.length;r<o;r++){const o=i[r],a=s[o.materialIndex];a&&a.visible&&u.push(t,e,a,n,k.z,o)}}else s.visible&&u.push(t,e,s,n,k.z,null)}const s=t.children;for(let t=0,r=s.length;t<r;t++)wt(s[t],e,n,i)}function Tt(t,e,n,i){const s=t.opaque,r=t.transmissive,a=t.transparent;d.setupLightsView(n),r.length>0&&function(t,e,n){if(null===B){const t=!0===o&&!0===H.isWebGL2;B=new(t?Mb:Ab)(1024,1024,{generateMipmaps:!0,type:null!==ct.convert(Rx)?Rx:Nx,minFilter:Cx,magFilter:Tx,wrapS:bx,wrapT:bx})}const i=m.getRenderTarget();m.setRenderTarget(B),m.clear();const s=m.toneMapping;m.toneMapping=0,At(t,e,n),m.toneMapping=s,X.updateMultisampleRenderTarget(B),X.updateRenderTargetMipmap(B),m.setRenderTarget(i)}(s,e,n),i&&j.viewport(w.copy(i)),s.length>0&&At(s,e,n),r.length>0&&At(r,e,n),a.length>0&&At(a,e,n)}function At(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let s=0,r=t.length;s<r;s++){const r=t[s],o=r.object,a=r.geometry,l=null===i?r.material:i,c=r.group;o.layers.test(n.layers)&&Mt(o,e,n,a,l,c)}}function Mt(t,e,n,i,s,r){if(t.onBeforeRender(m,e,n,i,s,r),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),s.onBeforeRender(m,e,n,i,t,r),t.isImmediateRenderObject){const r=Ct(n,e,i,s,t);j.setMaterial(s),ht.reset(),function(t,e){t.render((function(t){m.renderBufferImmediate(t,e)}))}(t,r)}else!0===s.transparent&&2===s.side?(s.side=1,s.needsUpdate=!0,m.renderBufferDirect(n,e,i,s,t,r),s.side=0,s.needsUpdate=!0,m.renderBufferDirect(n,e,i,s,t,r),s.side=2):m.renderBufferDirect(n,e,i,s,t,r);t.onAfterRender(m,e,n,i,s,r)}function Et(t,e,n){!0!==e.isScene&&(e=U);const i=q.get(t),s=d.state.lights,r=d.state.shadowsArray,o=s.state.version,a=Q.getParameters(t,s.state,r,e,n),l=Q.getProgramCacheKey(a);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=(t.isMeshStandardMaterial?$:Y).get(t.envMap||i.environment),void 0===c&&(t.addEventListener(\\\\\\\"dispose\\\\\\\",gt),c=new Map,i.programs=c);let h=c.get(l);if(void 0!==h){if(i.currentProgram===h&&i.lightsStateVersion===o)return St(t,a),h}else a.uniforms=Q.getUniforms(t),t.onBuild(a,m),t.onBeforeCompile(a,m),h=Q.acquireProgram(a,l),c.set(l,h),i.uniforms=a.uniforms;const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=it.uniform),St(t,a),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=o,i.needsLights&&(u.ambientLightColor.value=s.state.ambient,u.lightProbe.value=s.state.probe,u.directionalLights.value=s.state.directional,u.directionalLightShadows.value=s.state.directionalShadow,u.spotLights.value=s.state.spot,u.spotLightShadows.value=s.state.spotShadow,u.rectAreaLights.value=s.state.rectArea,u.ltc_1.value=s.state.rectAreaLTC1,u.ltc_2.value=s.state.rectAreaLTC2,u.pointLights.value=s.state.point,u.pointLightShadows.value=s.state.pointShadow,u.hemisphereLights.value=s.state.hemi,u.directionalShadowMap.value=s.state.directionalShadowMap,u.directionalShadowMatrix.value=s.state.directionalShadowMatrix,u.spotShadowMap.value=s.state.spotShadowMap,u.spotShadowMatrix.value=s.state.spotShadowMatrix,u.pointShadowMap.value=s.state.pointShadowMap,u.pointShadowMatrix.value=s.state.pointShadowMatrix);const p=h.getUniforms(),_=jM.seqWithValue(p.seq,u);return i.currentProgram=h,i.uniformsList=_,h}function St(t,e){const n=q.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.morphTargets=e.morphTargets,n.morphNormals=e.morphNormals,n.morphTargetsCount=e.morphTargetsCount,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas,n.vertexTangents=e.vertexTangents}function Ct(t,e,n,i,s){!0!==e.isScene&&(e=U),X.resetTextureUnits();const r=e.fog,o=i.isMeshStandardMaterial?e.environment:null,a=null===y?m.outputEncoding:y.texture.encoding,l=(i.isMeshStandardMaterial?$:Y).get(i.envMap||o),c=!0===i.vertexColors&&!!n&&!!n.attributes.color&&4===n.attributes.color.itemSize,h=!!i.normalMap&&!!n&&!!n.attributes.tangent,u=!!n&&!!n.morphAttributes.position,p=!!n&&!!n.morphAttributes.normal,_=n&&n.morphAttributes.position?n.morphAttributes.position.length:0,f=q.get(i),g=d.state.lights;if(!0===F&&(!0===D||t!==b)){const e=t===b&&i.id===x;it.setState(i,t,e)}let v=!1;i.version===f.__version?f.needsLights&&f.lightsStateVersion!==g.state.version||f.outputEncoding!==a||s.isInstancedMesh&&!1===f.instancing?v=!0:s.isInstancedMesh||!0!==f.instancing?s.isSkinnedMesh&&!1===f.skinning?v=!0:s.isSkinnedMesh||!0!==f.skinning?f.envMap!==l||i.fog&&f.fog!==r?v=!0:void 0===f.numClippingPlanes||f.numClippingPlanes===it.numPlanes&&f.numIntersection===it.numIntersection?(f.vertexAlphas!==c||f.vertexTangents!==h||f.morphTargets!==u||f.morphNormals!==p||!0===H.isWebGL2&&f.morphTargetsCount!==_)&&(v=!0):v=!0:v=!0:v=!0:(v=!0,f.__version=i.version);let w=f.currentProgram;!0===v&&(w=Et(i,e,s));let T=!1,A=!1,M=!1;const C=w.getUniforms(),N=f.uniforms;if(j.useProgram(w.program)&&(T=!0,A=!0,M=!0),i.id!==x&&(x=i.id,A=!0),T||b!==t){if(C.setValue(ut,\\\\\\\"projectionMatrix\\\\\\\",t.projectionMatrix),H.logarithmicDepthBuffer&&C.setValue(ut,\\\\\\\"logDepthBufFC\\\\\\\",2/(Math.log(t.far+1)/Math.LN2)),b!==t&&(b=t,A=!0,M=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=C.map.cameraPosition;void 0!==e&&e.setValue(ut,k.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&C.setValue(ut,\\\\\\\"isOrthographic\\\\\\\",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||s.isSkinnedMesh)&&C.setValue(ut,\\\\\\\"viewMatrix\\\\\\\",t.matrixWorldInverse)}if(s.isSkinnedMesh){C.setOptional(ut,s,\\\\\\\"bindMatrix\\\\\\\"),C.setOptional(ut,s,\\\\\\\"bindMatrixInverse\\\\\\\");const t=s.skeleton;t&&(H.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),C.setValue(ut,\\\\\\\"boneTexture\\\\\\\",t.boneTexture,X),C.setValue(ut,\\\\\\\"boneTextureSize\\\\\\\",t.boneTextureSize)):C.setOptional(ut,t,\\\\\\\"boneMatrices\\\\\\\"))}var L,O;return!n||void 0===n.morphAttributes.position&&void 0===n.morphAttributes.normal||ot.update(s,n,i,w),(A||f.receiveShadow!==s.receiveShadow)&&(f.receiveShadow=s.receiveShadow,C.setValue(ut,\\\\\\\"receiveShadow\\\\\\\",s.receiveShadow)),A&&(C.setValue(ut,\\\\\\\"toneMappingExposure\\\\\\\",m.toneMappingExposure),f.needsLights&&(O=M,(L=N).ambientLightColor.needsUpdate=O,L.lightProbe.needsUpdate=O,L.directionalLights.needsUpdate=O,L.directionalLightShadows.needsUpdate=O,L.pointLights.needsUpdate=O,L.pointLightShadows.needsUpdate=O,L.spotLights.needsUpdate=O,L.spotLightShadows.needsUpdate=O,L.rectAreaLights.needsUpdate=O,L.hemisphereLights.needsUpdate=O),r&&i.fog&&tt.refreshFogUniforms(N,r),tt.refreshMaterialUniforms(N,i,S,E,B),jM.upload(ut,f.uniformsList,N,X)),i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(jM.upload(ut,f.uniformsList,N,X),i.uniformsNeedUpdate=!1),i.isSpriteMaterial&&C.setValue(ut,\\\\\\\"center\\\\\\\",s.center),C.setValue(ut,\\\\\\\"modelViewMatrix\\\\\\\",s.modelViewMatrix),C.setValue(ut,\\\\\\\"normalMatrix\\\\\\\",s.normalMatrix),C.setValue(ut,\\\\\\\"modelMatrix\\\\\\\",s.matrixWorld),w}bt.setAnimationLoop((function(t){vt&&vt(t)})),\\\\\\\"undefined\\\\\\\"!=typeof window&&bt.setContext(window),this.setAnimationLoop=function(t){vt=t,_t.setAnimationLoop(t),null===t?bt.stop():bt.start()},_t.addEventListener(\\\\\\\"sessionstart\\\\\\\",yt),_t.addEventListener(\\\\\\\"sessionend\\\\\\\",xt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error(\\\\\\\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\\\\\\\");if(!0===f)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===_t.enabled&&!0===_t.isPresenting&&(!0===_t.cameraAutoUpdate&&_t.updateCamera(e),e=_t.getCamera()),!0===t.isScene&&t.onBeforeRender(m,t,e,y),d=nt.get(t,_.length),d.init(),_.push(d),z.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),I.setFromProjectionMatrix(z),D=this.localClippingEnabled,F=it.init(this.clippingPlanes,D,e),u=et.get(t,p.length),u.init(),p.push(u),wt(t,e,0,m.sortObjects),u.finish(),!0===m.sortObjects&&u.sort(C,N),!0===F&&it.beginShadows();const n=d.state.shadowsArray;if(st.render(n,t,e),!0===F&&it.endShadows(),!0===this.info.autoReset&&this.info.reset(),rt.render(u,t),d.setupLights(m.physicallyCorrectLights),e.isArrayCamera){const n=e.cameras;for(let e=0,i=n.length;e<i;e++){const i=n[e];Tt(u,t,i,i.viewport)}}else Tt(u,t,e);null!==y&&(X.updateMultisampleRenderTarget(y),X.updateRenderTargetMipmap(y)),!0===t.isScene&&t.onAfterRender(m,t,e),j.buffers.depth.setTest(!0),j.buffers.depth.setMask(!0),j.buffers.color.setMask(!0),j.setPolygonOffset(!1),ht.resetDefaultState(),x=-1,b=null,_.pop(),d=_.length>0?_[_.length-1]:null,p.pop(),u=p.length>0?p[p.length-1]:null},this.getActiveCubeFace=function(){return g},this.getActiveMipmapLevel=function(){return v},this.getRenderTarget=function(){return y},this.setRenderTarget=function(t,e=0,n=0){y=t,g=e,v=n,t&&void 0===q.get(t).__webglFramebuffer&&X.setupRenderTarget(t);let i=null,s=!1,r=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(r=!0);const o=q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=o[e],s=!0):i=t.isWebGLMultisampleRenderTarget?q.get(t).__webglMultisampledFramebuffer:o,w.copy(t.viewport),T.copy(t.scissor),A=t.scissorTest}else w.copy(L).multiplyScalar(S).floor(),T.copy(O).multiplyScalar(S).floor(),A=P;if(j.bindFramebuffer(36160,i)&&H.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(R.length!==n.length||36064!==R[0]){for(let t=0,e=n.length;t<e;t++)R[t]=36064+t;R.length=n.length,e=!0}}else 1===R.length&&36064===R[0]||(R[0]=36064,R.length=1,e=!0);else 1===R.length&&1029===R[0]||(R[0]=1029,R.length=1,e=!0);e&&(H.isWebGL2?ut.drawBuffers(R):V.get(\\\\\\\"WEBGL_draw_buffers\\\\\\\").drawBuffersWEBGL(R))}if(j.viewport(w),j.scissor(T),j.setScissorTest(A),s){const i=q.get(t.texture);ut.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(r){const i=q.get(t.texture),s=e||0;ut.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,s)}x=-1},this.readRenderTargetPixels=function(t,e,n,i,s,r,o){if(!t||!t.isWebGLRenderTarget)return void console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\\\\\\\");let a=q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==o&&(a=a[o]),a){j.bindFramebuffer(36160,a);try{const o=t.texture,a=o.format,l=o.type;if(a!==Dx&&ct.convert(a)!==ut.getParameter(35739))return void console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\\\\\\\");const c=l===Rx&&(V.has(\\\\\\\"EXT_color_buffer_half_float\\\\\\\")||H.isWebGL2&&V.has(\\\\\\\"EXT_color_buffer_float\\\\\\\"));if(!(l===Nx||ct.convert(l)===ut.getParameter(35738)||l===Px&&(H.isWebGL2||V.has(\\\\\\\"OES_texture_float\\\\\\\")||V.has(\\\\\\\"WEBGL_color_buffer_float\\\\\\\"))||c))return void console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\\\\\\\");36053===ut.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-s&&ut.readPixels(e,n,i,s,ct.convert(a),ct.convert(l),r):console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\\\\\\\")}finally{const t=null!==y?q.get(y).__webglFramebuffer:null;j.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),s=Math.floor(e.image.width*i),r=Math.floor(e.image.height*i);let o=ct.convert(e.format);H.isWebGL2&&(6407===o&&(o=32849),6408===o&&(o=32856)),X.setTexture2D(e,0),ut.copyTexImage2D(3553,n,o,t.x,t.y,s,r,0),j.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const s=e.image.width,r=e.image.height,o=ct.convert(n.format),a=ct.convert(n.type);X.setTexture2D(n,0),ut.pixelStorei(37440,n.flipY),ut.pixelStorei(37441,n.premultiplyAlpha),ut.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?ut.texSubImage2D(3553,i,t.x,t.y,s,r,o,a,e.image.data):e.isCompressedTexture?ut.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,o,e.mipmaps[0].data):ut.texSubImage2D(3553,i,t.x,t.y,o,a,e.image),0===i&&n.generateMipmaps&&ut.generateMipmap(3553),j.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,s=0){if(m.isWebGL1Renderer)return void console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\\\\\\\");const r=t.max.x-t.min.x+1,o=t.max.y-t.min.y+1,a=t.max.z-t.min.z+1,l=ct.convert(i.format),c=ct.convert(i.type);let h;if(i.isDataTexture3D)X.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\\\\\\\");X.setTexture2DArray(i,0),h=35866}ut.pixelStorei(37440,i.flipY),ut.pixelStorei(37441,i.premultiplyAlpha),ut.pixelStorei(3317,i.unpackAlignment);const u=ut.getParameter(3314),d=ut.getParameter(32878),p=ut.getParameter(3316),_=ut.getParameter(3315),f=ut.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;ut.pixelStorei(3314,g.width),ut.pixelStorei(32878,g.height),ut.pixelStorei(3316,t.min.x),ut.pixelStorei(3315,t.min.y),ut.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?ut.texSubImage3D(h,s,e.x,e.y,e.z,r,o,a,l,c,g.data):n.isCompressedTexture?(console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\\\\\\\"),ut.compressedTexSubImage3D(h,s,e.x,e.y,e.z,r,o,a,l,g.data)):ut.texSubImage3D(h,s,e.x,e.y,e.z,r,o,a,l,c,g),ut.pixelStorei(3314,u),ut.pixelStorei(32878,d),ut.pixelStorei(3316,p),ut.pixelStorei(3315,_),ut.pixelStorei(32877,f),0===s&&i.generateMipmaps&&ut.generateMipmap(h),j.unbindTexture()},this.initTexture=function(t){X.setTexture2D(t,0),j.unbindTexture()},this.resetState=function(){g=0,v=0,y=null,j.reset(),ht.reset()},\\\\\\\"undefined\\\\\\\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"observe\\\\\\\",{detail:this}))}(class extends FE{}).prototype.isWebGL1Renderer=!0;class DE{constructor(t,e=25e-5){this.name=\\\\\\\"\\\\\\\",this.color=new $w(t),this.density=e}clone(){return new DE(this.color,this.density)}toJSON(){return{type:\\\\\\\"FogExp2\\\\\\\",color:this.color.getHex(),density:this.density}}}DE.prototype.isFogExp2=!0;class BE{constructor(t,e=1,n=1e3){this.name=\\\\\\\"\\\\\\\",this.color=new $w(t),this.near=e,this.far=n}clone(){return new BE(this.color,this.near,this.far)}toJSON(){return{type:\\\\\\\"Fog\\\\\\\",color:this.color.getHex(),near:this.near,far:this.far}}}BE.prototype.isFog=!0;class zE extends Nw{constructor(){super(),this.type=\\\\\\\"Scene\\\\\\\",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,\\\\\\\"undefined\\\\\\\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"observe\\\\\\\",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}zE.prototype.isScene=!0;class kE{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=Zx,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ob()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,s=this.stride;i<s;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ob()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ob()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}kE.prototype.isInterleavedBuffer=!0;const UE=new Sb;class GE{constructor(t,e,n,i=!1){this.name=\\\\\\\"\\\\\\\",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)UE.x=this.getX(e),UE.y=this.getY(e),UE.z=this.getZ(e),UE.applyMatrix4(t),this.setXYZ(e,UE.x,UE.y,UE.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)UE.x=this.getX(e),UE.y=this.getY(e),UE.z=this.getZ(e),UE.applyNormalMatrix(t),this.setXYZ(e,UE.x,UE.y,UE.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)UE.x=this.getX(e),UE.y=this.getY(e),UE.z=this.getZ(e),UE.transformDirection(t),this.setXYZ(e,UE.x,UE.y,UE.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,s){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=s,this}clone(t){if(void 0===t){console.log(\\\\\\\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\\\\\\\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new Qw(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new GE(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\\\\\\\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\\\\\\\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}GE.prototype.isInterleavedBufferAttribute=!0;class VE extends Vw{constructor(t){super(),this.type=\\\\\\\"SpriteMaterial\\\\\\\",this.color=new $w(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let HE;VE.prototype.isSpriteMaterial=!0;const jE=new Sb,WE=new Sb,qE=new Sb,XE=new _b,YE=new _b,$E=new sw,JE=new Sb,ZE=new Sb,KE=new Sb,QE=new _b,tS=new _b,eS=new _b;class nS extends Nw{constructor(t){if(super(),this.type=\\\\\\\"Sprite\\\\\\\",void 0===HE){HE=new hT;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new kE(t,5);HE.setIndex([0,1,2,0,2,3]),HE.setAttribute(\\\\\\\"position\\\\\\\",new GE(e,3,0,!1)),HE.setAttribute(\\\\\\\"uv\\\\\\\",new GE(e,2,3,!1))}this.geometry=HE,this.material=void 0!==t?t:new VE,this.center=new _b(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: \\\\\\\"Raycaster.camera\\\\\\\" needs to be set in order to raycast against sprites.'),WE.setFromMatrixScale(this.matrixWorld),$E.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),qE.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&WE.multiplyScalar(-qE.z);const n=this.material.rotation;let i,s;0!==n&&(s=Math.cos(n),i=Math.sin(n));const r=this.center;iS(JE.set(-.5,-.5,0),qE,r,WE,i,s),iS(ZE.set(.5,-.5,0),qE,r,WE,i,s),iS(KE.set(.5,.5,0),qE,r,WE,i,s),QE.set(0,0),tS.set(1,0),eS.set(1,1);let o=t.ray.intersectTriangle(JE,ZE,KE,!1,jE);if(null===o&&(iS(ZE.set(-.5,.5,0),qE,r,WE,i,s),tS.set(0,1),o=t.ray.intersectTriangle(JE,KE,ZE,!1,jE),null===o))return;const a=t.ray.origin.distanceTo(jE);a<t.near||a>t.far||e.push({distance:a,point:jE.clone(),uv:Uw.getUV(jE,JE,ZE,KE,QE,tS,eS,new _b),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function iS(t,e,n,i,s,r){XE.subVectors(t,n).addScalar(.5).multiply(i),void 0!==s?(YE.x=r*XE.x-s*XE.y,YE.y=s*XE.x+r*XE.y):YE.copy(XE),t.copy(e),t.x+=YE.x,t.y+=YE.y,t.applyMatrix4($E)}nS.prototype.isSprite=!0;const sS=new Sb,rS=new Tb,oS=new Tb,aS=new Sb,lS=new sw;class cS extends CT{constructor(t,e){super(t,e),this.type=\\\\\\\"SkinnedMesh\\\\\\\",this.bindMode=\\\\\\\"attached\\\\\\\",this.bindMatrix=new sw,this.bindMatrixInverse=new sw}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new Tb,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\\\\\\\"attached\\\\\\\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\\\\\\\"detached\\\\\\\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\\\\\\\"THREE.SkinnedMesh: Unrecognized bindMode: \\\\\\\"+this.bindMode)}boneTransform(t,e){const n=this.skeleton,i=this.geometry;rS.fromBufferAttribute(i.attributes.skinIndex,t),oS.fromBufferAttribute(i.attributes.skinWeight,t),sS.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=oS.getComponent(t);if(0!==i){const s=rS.getComponent(t);lS.multiplyMatrices(n.bones[s].matrixWorld,n.boneInverses[s]),e.addScaledVector(aS.copy(sS).applyMatrix4(lS),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}cS.prototype.isSkinnedMesh=!0;class hS extends Nw{constructor(){super(),this.type=\\\\\\\"Bone\\\\\\\"}}hS.prototype.isBone=!0;class uS extends bb{constructor(t=null,e=1,n=1,i,s,r,o,a,l=1003,c=1003,h,u){super(null,r,o,a,l,c,i,s,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}uS.prototype.isDataTexture=!0;class dS extends Qw{constructor(t,e,n,i=1){\\\\\\\"number\\\\\\\"==typeof n&&(i=n,n=!1,console.error(\\\\\\\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\\\\\\\")),super(t,e,n),this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}dS.prototype.isInstancedBufferAttribute=!0;const pS=new sw,_S=new sw,mS=[],fS=new CT;class gS extends CT{constructor(t,e,n){super(t,e),this.instanceMatrix=new dS(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,i=this.count;if(fS.geometry=this.geometry,fS.material=this.material,void 0!==fS.material)for(let s=0;s<i;s++){this.getMatrixAt(s,pS),_S.multiplyMatrices(n,pS),fS.matrixWorld=_S,fS.raycast(t,mS);for(let t=0,n=mS.length;t<n;t++){const n=mS[t];n.instanceId=s,n.object=this,e.push(n)}mS.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new dS(new Float32Array(3*this.instanceMatrix.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}gS.prototype.isInstancedMesh=!0;class vS extends Vw{constructor(t){super(),this.type=\\\\\\\"LineBasicMaterial\\\\\\\",this.color=new $w(16777215),this.linewidth=1,this.linecap=\\\\\\\"round\\\\\\\",this.linejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this}}vS.prototype.isLineBasicMaterial=!0;const yS=new Sb,xS=new Sb,bS=new sw,wS=new iw,TS=new $b;class AS extends Nw{constructor(t=new hT,e=new vS){super(),this.type=\\\\\\\"Line\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)yS.fromBufferAttribute(e,t-1),xS.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=yS.distanceTo(xS);t.setAttribute(\\\\\\\"lineDistance\\\\\\\",new nT(n,1))}else console.warn(\\\\\\\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");else t.isGeometry&&console.error(\\\\\\\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,s=t.params.Line.threshold,r=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),TS.copy(n.boundingSphere),TS.applyMatrix4(i),TS.radius+=s,!1===t.ray.intersectsSphere(TS))return;bS.copy(i).invert(),wS.copy(t.ray).applyMatrix4(bS);const o=s/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o,l=new Sb,c=new Sb,h=new Sb,u=new Sb,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,s=n.attributes.position;if(null!==i){for(let n=Math.max(0,r.start),o=Math.min(i.count,r.start+r.count)-1;n<o;n+=d){const r=i.getX(n),o=i.getX(n+1);l.fromBufferAttribute(s,r),c.fromBufferAttribute(s,o);if(wS.distanceSqToSegment(l,c,u,h)>a)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,r.start),i=Math.min(s.count,r.start+r.count)-1;n<i;n+=d){l.fromBufferAttribute(s,n),c.fromBufferAttribute(s,n+1);if(wS.distanceSqToSegment(l,c,u,h)>a)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);i<t.near||i>t.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\\\\\\\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}}AS.prototype.isLine=!0;const MS=new Sb,ES=new Sb;class SS extends AS{constructor(t,e){super(t,e),this.type=\\\\\\\"LineSegments\\\\\\\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)MS.fromBufferAttribute(e,t),ES.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+MS.distanceTo(ES);t.setAttribute(\\\\\\\"lineDistance\\\\\\\",new nT(n,1))}else console.warn(\\\\\\\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");else t.isGeometry&&console.error(\\\\\\\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");return this}}SS.prototype.isLineSegments=!0;class CS extends AS{constructor(t,e){super(t,e),this.type=\\\\\\\"LineLoop\\\\\\\"}}CS.prototype.isLineLoop=!0;class NS extends Vw{constructor(t){super(),this.type=\\\\\\\"PointsMaterial\\\\\\\",this.color=new $w(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this}}NS.prototype.isPointsMaterial=!0;const LS=new sw,OS=new iw,PS=new $b,RS=new Sb;class IS extends Nw{constructor(t=new hT,e=new NS){super(),this.type=\\\\\\\"Points\\\\\\\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,s=t.params.Points.threshold,r=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),PS.copy(n.boundingSphere),PS.applyMatrix4(i),PS.radius+=s,!1===t.ray.intersectsSphere(PS))return;LS.copy(i).invert(),OS.copy(t.ray).applyMatrix4(LS);const o=s/((this.scale.x+this.scale.y+this.scale.z)/3),a=o*o;if(n.isBufferGeometry){const s=n.index,o=n.attributes.position;if(null!==s){for(let n=Math.max(0,r.start),l=Math.min(s.count,r.start+r.count);n<l;n++){const r=s.getX(n);RS.fromBufferAttribute(o,r),FS(RS,r,a,i,t,e,this)}}else{for(let n=Math.max(0,r.start),s=Math.min(o.count,r.start+r.count);n<s;n++)RS.fromBufferAttribute(o,n),FS(RS,n,a,i,t,e,this)}}else console.error(\\\\\\\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\\\\\\\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\")}}}function FS(t,e,n,i,s,r,o){const a=OS.distanceSqToPoint(t);if(a<n){const n=new Sb;OS.closestPointToPoint(t,n),n.applyMatrix4(i);const l=s.ray.origin.distanceTo(n);if(l<s.near||l>s.far)return;r.push({distance:l,distanceToRay:Math.sqrt(a),point:n,index:e,face:null,object:o})}}IS.prototype.isPoints=!0;(class extends bb{constructor(t,e,n,i,s,r,o,a,l){super(t,e,n,i,s,r,o,a,l),this.format=void 0!==o?o:Fx,this.minFilter=void 0!==r?r:Ex,this.magFilter=void 0!==s?s:Ex,this.generateMipmaps=!1;const c=this;\\\\\\\"requestVideoFrameCallback\\\\\\\"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1===\\\\\\\"requestVideoFrameCallback\\\\\\\"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}).prototype.isVideoTexture=!0;class DS extends bb{constructor(t,e,n,i,s,r,o,a,l,c,h,u){super(null,r,o,a,l,c,i,s,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}DS.prototype.isCompressedTexture=!0;(class extends bb{constructor(t,e,n,i,s,r,o,a,l){super(t,e,n,i,s,r,o,a,l),this.needsUpdate=!0}}).prototype.isCanvasTexture=!0;(class extends bb{constructor(t,e,n,i,s,r,o,a,l,c){if((c=void 0!==c?c:Bx)!==Bx&&c!==zx)throw new Error(\\\\\\\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\\\\\\\");void 0===n&&c===Bx&&(n=Lx),void 0===n&&c===zx&&(n=Ix),super(null,i,s,r,o,a,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==o?o:Tx,this.minFilter=void 0!==a?a:Tx,this.flipY=!1,this.generateMipmaps=!1}}).prototype.isDepthTexture=!0;new Sb,new Sb,new Sb,new Uw;class BS{constructor(){this.type=\\\\\\\"Curve\\\\\\\",this.arcLengthDivisions=200}getPoint(){return console.warn(\\\\\\\"THREE.Curve: .getPoint() not implemented.\\\\\\\"),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),s=0;e.push(0);for(let r=1;r<=t;r++)n=this.getPoint(r/t),s+=n.distanceTo(i),e.push(s),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const s=n.length;let r;r=e||t*n[s-1];let o,a=0,l=s-1;for(;a<=l;)if(i=Math.floor(a+(l-a)/2),o=n[i]-r,o<0)a=i+1;else{if(!(o>0)){l=i;break}l=i-1}if(i=l,n[i]===r)return i/(s-1);const c=n[i];return(i+(r-c)/(n[i+1]-c))/(s-1)}getTangent(t,e){const n=1e-4;let i=t-n,s=t+n;i<0&&(i=0),s>1&&(s=1);const r=this.getPoint(i),o=this.getPoint(s),a=e||(r.isVector2?new _b:new Sb);return a.copy(o).sub(r).normalize(),a}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Sb,i=[],s=[],r=[],o=new Sb,a=new sw;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Sb)}s[0]=new Sb,r[0]=new Sb;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),o.crossVectors(i[0],n).normalize(),s[0].crossVectors(i[0],o),r[0].crossVectors(i[0],s[0]);for(let e=1;e<=t;e++){if(s[e]=s[e-1].clone(),r[e]=r[e-1].clone(),o.crossVectors(i[e-1],i[e]),o.length()>Number.EPSILON){o.normalize();const t=Math.acos(ab(i[e-1].dot(i[e]),-1,1));s[e].applyMatrix4(a.makeRotationAxis(o,t))}r[e].crossVectors(i[e],s[e])}if(!0===e){let e=Math.acos(ab(s[0].dot(s[t]),-1,1));e/=t,i[0].dot(o.crossVectors(s[0],s[t]))>0&&(e=-e);for(let n=1;n<=t;n++)s[n].applyMatrix4(a.makeRotationAxis(i[n],e*n)),r[n].crossVectors(i[n],s[n])}return{tangents:i,normals:s,binormals:r}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"Curve\\\\\\\",generator:\\\\\\\"Curve.toJSON\\\\\\\"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class zS extends BS{constructor(t=0,e=0,n=1,i=1,s=0,r=2*Math.PI,o=!1,a=0){super(),this.type=\\\\\\\"EllipseCurve\\\\\\\",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=s,this.aEndAngle=r,this.aClockwise=o,this.aRotation=a}getPoint(t,e){const n=e||new _b,i=2*Math.PI;let s=this.aEndAngle-this.aStartAngle;const r=Math.abs(s)<Number.EPSILON;for(;s<0;)s+=i;for(;s>i;)s-=i;s<Number.EPSILON&&(s=r?0:i),!0!==this.aClockwise||r||(s===i?s=-i:s-=i);const o=this.aStartAngle+t*s;let a=this.aX+this.xRadius*Math.cos(o),l=this.aY+this.yRadius*Math.sin(o);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=a-this.aX,i=l-this.aY;a=n*t-i*e+this.aX,l=n*e+i*t+this.aY}return n.set(a,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}zS.prototype.isEllipseCurve=!0;class kS extends zS{constructor(t,e,n,i,s,r){super(t,e,n,n,i,s,r),this.type=\\\\\\\"ArcCurve\\\\\\\"}}function US(){let t=0,e=0,n=0,i=0;function s(s,r,o,a){t=s,e=o,n=-3*s+3*r-2*o-a,i=2*s-2*r+o+a}return{initCatmullRom:function(t,e,n,i,r){s(e,n,r*(n-t),r*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,r,o,a){let l=(e-t)/r-(n-t)/(r+o)+(n-e)/o,c=(n-e)/o-(i-e)/(o+a)+(i-n)/a;l*=o,c*=o,s(e,n,l,c)},calc:function(s){const r=s*s;return t+e*s+n*r+i*(r*s)}}}kS.prototype.isArcCurve=!0;const GS=new Sb,VS=new US,HS=new US,jS=new US;class WS extends BS{constructor(t=[],e=!1,n=\\\\\\\"centripetal\\\\\\\",i=.5){super(),this.type=\\\\\\\"CatmullRomCurve3\\\\\\\",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new Sb){const n=e,i=this.points,s=i.length,r=(s-(this.closed?0:1))*t;let o,a,l=Math.floor(r),c=r-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/s)+1)*s:0===c&&l===s-1&&(l=s-2,c=1),this.closed||l>0?o=i[(l-1)%s]:(GS.subVectors(i[0],i[1]).add(i[0]),o=GS);const h=i[l%s],u=i[(l+1)%s];if(this.closed||l+2<s?a=i[(l+2)%s]:(GS.subVectors(i[s-1],i[s-2]).add(i[s-1]),a=GS),\\\\\\\"centripetal\\\\\\\"===this.curveType||\\\\\\\"chordal\\\\\\\"===this.curveType){const t=\\\\\\\"chordal\\\\\\\"===this.curveType?.5:.25;let e=Math.pow(o.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),i=Math.pow(u.distanceToSquared(a),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),VS.initNonuniformCatmullRom(o.x,h.x,u.x,a.x,e,n,i),HS.initNonuniformCatmullRom(o.y,h.y,u.y,a.y,e,n,i),jS.initNonuniformCatmullRom(o.z,h.z,u.z,a.z,e,n,i)}else\\\\\\\"catmullrom\\\\\\\"===this.curveType&&(VS.initCatmullRom(o.x,h.x,u.x,a.x,this.tension),HS.initCatmullRom(o.y,h.y,u.y,a.y,this.tension),jS.initCatmullRom(o.z,h.z,u.z,a.z,this.tension));return n.set(VS.calc(c),HS.calc(c),jS.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Sb).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function qS(t,e,n,i,s){const r=.5*(i-e),o=.5*(s-n),a=t*t;return(2*n-2*i+r+o)*(t*a)+(-3*n+3*i-2*r-o)*a+r*t+n}function XS(t,e,n,i){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,i)}function YS(t,e,n,i,s){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,i)+function(t,e){return t*t*t*e}(t,s)}WS.prototype.isCatmullRomCurve3=!0;class $S extends BS{constructor(t=new _b,e=new _b,n=new _b,i=new _b){super(),this.type=\\\\\\\"CubicBezierCurve\\\\\\\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new _b){const n=e,i=this.v0,s=this.v1,r=this.v2,o=this.v3;return n.set(YS(t,i.x,s.x,r.x,o.x),YS(t,i.y,s.y,r.y,o.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}$S.prototype.isCubicBezierCurve=!0;class JS extends BS{constructor(t=new Sb,e=new Sb,n=new Sb,i=new Sb){super(),this.type=\\\\\\\"CubicBezierCurve3\\\\\\\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Sb){const n=e,i=this.v0,s=this.v1,r=this.v2,o=this.v3;return n.set(YS(t,i.x,s.x,r.x,o.x),YS(t,i.y,s.y,r.y,o.y),YS(t,i.z,s.z,r.z,o.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}JS.prototype.isCubicBezierCurve3=!0;class ZS extends BS{constructor(t=new _b,e=new _b){super(),this.type=\\\\\\\"LineCurve\\\\\\\",this.v1=t,this.v2=e}getPoint(t,e=new _b){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new _b;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}ZS.prototype.isLineCurve=!0;class KS extends BS{constructor(t=new _b,e=new _b,n=new _b){super(),this.type=\\\\\\\"QuadraticBezierCurve\\\\\\\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new _b){const n=e,i=this.v0,s=this.v1,r=this.v2;return n.set(XS(t,i.x,s.x,r.x),XS(t,i.y,s.y,r.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}KS.prototype.isQuadraticBezierCurve=!0;class QS extends BS{constructor(t=new Sb,e=new Sb,n=new Sb){super(),this.type=\\\\\\\"QuadraticBezierCurve3\\\\\\\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Sb){const n=e,i=this.v0,s=this.v1,r=this.v2;return n.set(XS(t,i.x,s.x,r.x),XS(t,i.y,s.y,r.y),XS(t,i.z,s.z,r.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}QS.prototype.isQuadraticBezierCurve3=!0;class tC extends BS{constructor(t=[]){super(),this.type=\\\\\\\"SplineCurve\\\\\\\",this.points=t}getPoint(t,e=new _b){const n=e,i=this.points,s=(i.length-1)*t,r=Math.floor(s),o=s-r,a=i[0===r?r:r-1],l=i[r],c=i[r>i.length-2?i.length-1:r+1],h=i[r>i.length-3?i.length-1:r+2];return n.set(qS(o,a.x,l.x,c.x,h.x),qS(o,a.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new _b).fromArray(n))}return this}}tC.prototype.isSplineCurve=!0;var eC=Object.freeze({__proto__:null,ArcCurve:kS,CatmullRomCurve3:WS,CubicBezierCurve:$S,CubicBezierCurve3:JS,EllipseCurve:zS,LineCurve:ZS,LineCurve3:class extends BS{constructor(t=new Sb,e=new Sb){super(),this.type=\\\\\\\"LineCurve3\\\\\\\",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new Sb){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},QuadraticBezierCurve:KS,QuadraticBezierCurve3:QS,SplineCurve:tC});class nC extends BS{constructor(){super(),this.type=\\\\\\\"CurvePath\\\\\\\",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new ZS(e,t))}getPoint(t,e){const n=t*this.getLength(),i=this.getCurveLengths();let s=0;for(;s<i.length;){if(i[s]>=n){const t=i[s]-n,r=this.curves[s],o=r.getLength(),a=0===o?0:1-t/o;return r.getPointAt(a,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,s=this.curves;i<s.length;i++){const r=s[i],o=r&&r.isEllipseCurve?2*t:r&&(r.isLineCurve||r.isLineCurve3)?1:r&&r.isSplineCurve?t*r.points.length:t,a=r.getPoints(o);for(let t=0;t<a.length;t++){const i=a[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new eC[n.type]).fromJSON(n))}return this}}class iC extends nC{constructor(t){super(),this.type=\\\\\\\"Path\\\\\\\",this.currentPoint=new _b,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new ZS(this.currentPoint.clone(),new _b(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const s=new KS(this.currentPoint.clone(),new _b(t,e),new _b(n,i));return this.curves.push(s),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,s,r){const o=new $S(this.currentPoint.clone(),new _b(t,e),new _b(n,i),new _b(s,r));return this.curves.push(o),this.currentPoint.set(s,r),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new tC(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,s,r){const o=this.currentPoint.x,a=this.currentPoint.y;return this.absarc(t+o,e+a,n,i,s,r),this}absarc(t,e,n,i,s,r){return this.absellipse(t,e,n,n,i,s,r),this}ellipse(t,e,n,i,s,r,o,a){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,i,s,r,o,a),this}absellipse(t,e,n,i,s,r,o,a){const l=new zS(t,e,n,i,s,r,o,a);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class sC extends iC{constructor(t){super(t),this.uuid=ob(),this.type=\\\\\\\"Shape\\\\\\\",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new iC).fromJSON(n))}return this}}const rC=function(t,e,n=2){const i=e&&e.length,s=i?e[0]*n:t.length;let r=oC(t,0,s,n,!0);const o=[];if(!r||r.next===r.prev)return o;let a,l,c,h,u,d,p;if(i&&(r=function(t,e,n,i){const s=[];let r,o,a,l,c;for(r=0,o=e.length;r<o;r++)a=e[r]*i,l=r<o-1?e[r+1]*i:t.length,c=oC(t,a,l,i,!1),c===c.next&&(c.steiner=!0),s.push(gC(c));for(s.sort(pC),r=0;r<s.length;r++)_C(s[r],n),n=aC(n,n.next);return n}(t,e,r,n)),t.length>80*n){a=c=t[0],l=h=t[1];for(let e=n;e<s;e+=n)u=t[e],d=t[e+1],u<a&&(a=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-a,h-l),p=0!==p?1/p:0}return lC(r,o,n,a,l,p),o};function oC(t,e,n,i,s){let r,o;if(s===function(t,e,n,i){let s=0;for(let r=e,o=n-i;r<n;r+=i)s+=(t[o]-t[r])*(t[r+1]+t[o+1]),o=r;return s}(t,e,n,i)>0)for(r=e;r<n;r+=i)o=SC(r,t[r],t[r+1],o);else for(r=n-i;r>=e;r-=i)o=SC(r,t[r],t[r+1],o);return o&&bC(o,o.next)&&(CC(o),o=o.next),o}function aC(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!bC(i,i.next)&&0!==xC(i.prev,i,i.next))i=i.next;else{if(CC(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function lC(t,e,n,i,s,r,o){if(!t)return;!o&&r&&function(t,e,n,i){let s=t;do{null===s.z&&(s.z=fC(s.x,s.y,e,n,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next}while(s!==t);s.prevZ.nextZ=null,s.prevZ=null,function(t){let e,n,i,s,r,o,a,l,c=1;do{for(n=t,t=null,r=null,o=0;n;){for(o++,i=n,a=0,e=0;e<c&&(a++,i=i.nextZ,i);e++);for(l=c;a>0||l>0&&i;)0!==a&&(0===l||!i||n.z<=i.z)?(s=n,n=n.nextZ,a--):(s=i,i=i.nextZ,l--),r?r.nextZ=s:t=s,s.prevZ=r,r=s;n=i}r.nextZ=null,c*=2}while(o>1)}(s)}(t,i,s,r);let a,l,c=t;for(;t.prev!==t.next;)if(a=t.prev,l=t.next,r?hC(t,i,s,r):cC(t))e.push(a.i/n),e.push(t.i/n),e.push(l.i/n),CC(t),t=l.next,c=l.next;else if((t=l)===c){o?1===o?lC(t=uC(aC(t),e,n),e,n,i,s,r,2):2===o&&dC(t,e,n,i,s,r):lC(aC(t),e,n,i,s,r,1);break}}function cC(t){const e=t.prev,n=t,i=t.next;if(xC(e,n,i)>=0)return!1;let s=t.next.next;for(;s!==t.prev;){if(vC(e.x,e.y,n.x,n.y,i.x,i.y,s.x,s.y)&&xC(s.prev,s,s.next)>=0)return!1;s=s.next}return!0}function hC(t,e,n,i){const s=t.prev,r=t,o=t.next;if(xC(s,r,o)>=0)return!1;const a=s.x<r.x?s.x<o.x?s.x:o.x:r.x<o.x?r.x:o.x,l=s.y<r.y?s.y<o.y?s.y:o.y:r.y<o.y?r.y:o.y,c=s.x>r.x?s.x>o.x?s.x:o.x:r.x>o.x?r.x:o.x,h=s.y>r.y?s.y>o.y?s.y:o.y:r.y>o.y?r.y:o.y,u=fC(a,l,e,n,i),d=fC(c,h,e,n,i);let p=t.prevZ,_=t.nextZ;for(;p&&p.z>=u&&_&&_.z<=d;){if(p!==t.prev&&p!==t.next&&vC(s.x,s.y,r.x,r.y,o.x,o.y,p.x,p.y)&&xC(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,_!==t.prev&&_!==t.next&&vC(s.x,s.y,r.x,r.y,o.x,o.y,_.x,_.y)&&xC(_.prev,_,_.next)>=0)return!1;_=_.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&vC(s.x,s.y,r.x,r.y,o.x,o.y,p.x,p.y)&&xC(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;_&&_.z<=d;){if(_!==t.prev&&_!==t.next&&vC(s.x,s.y,r.x,r.y,o.x,o.y,_.x,_.y)&&xC(_.prev,_,_.next)>=0)return!1;_=_.nextZ}return!0}function uC(t,e,n){let i=t;do{const s=i.prev,r=i.next.next;!bC(s,r)&&wC(s,i,i.next,r)&&MC(s,r)&&MC(r,s)&&(e.push(s.i/n),e.push(i.i/n),e.push(r.i/n),CC(i),CC(i.next),i=t=r),i=i.next}while(i!==t);return aC(i)}function dC(t,e,n,i,s,r){let o=t;do{let t=o.next.next;for(;t!==o.prev;){if(o.i!==t.i&&yC(o,t)){let a=EC(o,t);return o=aC(o,o.next),a=aC(a,a.next),lC(o,e,n,i,s,r),void lC(a,e,n,i,s,r)}t=t.next}o=o.next}while(o!==t)}function pC(t,e){return t.x-e.x}function _C(t,e){if(e=function(t,e){let n=e;const i=t.x,s=t.y;let r,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){const t=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>o){if(o=t,t===i){if(s===n.y)return n;if(s===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===o)return r;const a=r,l=r.x,c=r.y;let h,u=1/0;n=r;do{i>=n.x&&n.x>=l&&i!==n.x&&vC(s<c?i:o,s,l,c,s<c?o:i,s,n.x,n.y)&&(h=Math.abs(s-n.y)/(i-n.x),MC(n,t)&&(h<u||h===u&&(n.x>r.x||n.x===r.x&&mC(r,n)))&&(r=n,u=h)),n=n.next}while(n!==a);return r}(t,e)){const n=EC(e,t);aC(e,e.next),aC(n,n.next)}}function mC(t,e){return xC(t.prev,t,e.prev)<0&&xC(e.next,t,t.next)<0}function fC(t,e,n,i,s){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*s)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*s)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function gC(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function vC(t,e,n,i,s,r,o,a){return(s-o)*(e-a)-(t-o)*(r-a)>=0&&(t-o)*(i-a)-(n-o)*(e-a)>=0&&(n-o)*(r-a)-(s-o)*(i-a)>=0}function yC(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&wC(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(MC(t,e)&&MC(e,t)&&function(t,e){let n=t,i=!1;const s=(t.x+e.x)/2,r=(t.y+e.y)/2;do{n.y>r!=n.next.y>r&&n.next.y!==n.y&&s<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(xC(t.prev,t,e.prev)||xC(t,e.prev,e))||bC(t,e)&&xC(t.prev,t,t.next)>0&&xC(e.prev,e,e.next)>0)}function xC(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function bC(t,e){return t.x===e.x&&t.y===e.y}function wC(t,e,n,i){const s=AC(xC(t,e,n)),r=AC(xC(t,e,i)),o=AC(xC(n,i,t)),a=AC(xC(n,i,e));return s!==r&&o!==a||(!(0!==s||!TC(t,n,e))||(!(0!==r||!TC(t,i,e))||(!(0!==o||!TC(n,t,i))||!(0!==a||!TC(n,e,i)))))}function TC(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function AC(t){return t>0?1:t<0?-1:0}function MC(t,e){return xC(t.prev,t,t.next)<0?xC(t,e,t.next)>=0&&xC(t,t.prev,e)>=0:xC(t,e,t.prev)<0||xC(t,t.next,e)<0}function EC(t,e){const n=new NC(t.i,t.x,t.y),i=new NC(e.i,e.x,e.y),s=t.next,r=e.prev;return t.next=e,e.prev=t,n.next=s,s.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function SC(t,e,n,i){const s=new NC(t,e,n);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function CC(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function NC(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class LC{static area(t){const e=t.length;let n=0;for(let i=e-1,s=0;s<e;i=s++)n+=t[i].x*t[s].y-t[s].x*t[i].y;return.5*n}static isClockWise(t){return LC.area(t)<0}static triangulateShape(t,e){const n=[],i=[],s=[];OC(t),PC(n,t);let r=t.length;e.forEach(OC);for(let t=0;t<e.length;t++)i.push(r),r+=e[t].length,PC(n,e[t]);const o=rC(n,i);for(let t=0;t<o.length;t+=3)s.push(o.slice(t,t+3));return s}}function OC(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function PC(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class RC extends hT{constructor(t=new sC([new _b(.5,.5),new _b(-.5,.5),new _b(-.5,-.5),new _b(.5,-.5)]),e={}){super(),this.type=\\\\\\\"ExtrudeGeometry\\\\\\\",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],s=[];for(let e=0,n=t.length;e<n;e++){r(t[e])}function r(t){const r=[],o=void 0!==e.curveSegments?e.curveSegments:12,a=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:1,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:.2,u=void 0!==e.bevelSize?e.bevelSize:h-.1,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const _=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:IC;void 0!==e.amount&&(console.warn(\\\\\\\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\\\\\\\"),l=e.amount);let f,g,v,y,x,b=!1;_&&(f=_.getSpacedPoints(a),b=!0,c=!1,g=_.computeFrenetFrames(a,!1),v=new Sb,y=new Sb,x=new Sb),c||(p=0,h=0,u=0,d=0);const w=t.extractPoints(o);let T=w.shape;const A=w.holes;if(!LC.isClockWise(T)){T=T.reverse();for(let t=0,e=A.length;t<e;t++){const e=A[t];LC.isClockWise(e)&&(A[t]=e.reverse())}}const M=LC.triangulateShape(T,A),E=T;for(let t=0,e=A.length;t<e;t++){const e=A[t];T=T.concat(e)}function S(t,e,n){return e||console.error(\\\\\\\"THREE.ExtrudeGeometry: vec does not exist\\\\\\\"),e.clone().multiplyScalar(n).add(t)}const C=T.length,N=M.length;function L(t,e,n){let i,s,r;const o=t.x-e.x,a=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=o*o+a*a,u=o*c-a*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-a/u,_=e.y+o/u,m=((n.x-c/d-p)*c-(n.y+l/d-_)*l)/(o*c-a*l);i=p+o*m-t.x,s=_+a*m-t.y;const f=i*i+s*s;if(f<=2)return new _b(i,s);r=Math.sqrt(f/2)}else{let t=!1;o>Number.EPSILON?l>Number.EPSILON&&(t=!0):o<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(a)===Math.sign(c)&&(t=!0),t?(i=-a,s=o,r=Math.sqrt(h)):(i=o,s=a,r=Math.sqrt(h/2))}return new _b(i/r,s/r)}const O=[];for(let t=0,e=E.length,n=e-1,i=t+1;t<e;t++,n++,i++)n===e&&(n=0),i===e&&(i=0),O[t]=L(E[t],E[n],E[i]);const P=[];let R,I=O.concat();for(let t=0,e=A.length;t<e;t++){const e=A[t];R=[];for(let t=0,n=e.length,i=n-1,s=t+1;t<n;t++,i++,s++)i===n&&(i=0),s===n&&(s=0),R[t]=L(e[t],e[i],e[s]);P.push(R),I=I.concat(R)}for(let t=0;t<p;t++){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=S(E[t],O[t],i);B(e.x,e.y,-n)}for(let t=0,e=A.length;t<e;t++){const e=A[t];R=P[t];for(let t=0,s=e.length;t<s;t++){const s=S(e[t],R[t],i);B(s.x,s.y,-n)}}}const F=u+d;for(let t=0;t<C;t++){const e=c?S(T[t],I[t],F):T[t];b?(y.copy(g.normals[0]).multiplyScalar(e.x),v.copy(g.binormals[0]).multiplyScalar(e.y),x.copy(f[0]).add(y).add(v),B(x.x,x.y,x.z)):B(e.x,e.y,0)}for(let t=1;t<=a;t++)for(let e=0;e<C;e++){const n=c?S(T[e],I[e],F):T[e];b?(y.copy(g.normals[t]).multiplyScalar(n.x),v.copy(g.binormals[t]).multiplyScalar(n.y),x.copy(f[t]).add(y).add(v),B(x.x,x.y,x.z)):B(n.x,n.y,l/a*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=S(E[t],O[t],i);B(e.x,e.y,l+n)}for(let t=0,e=A.length;t<e;t++){const e=A[t];R=P[t];for(let t=0,s=e.length;t<s;t++){const s=S(e[t],R[t],i);b?B(s.x,s.y+f[a-1].y,f[a-1].x+n):B(s.x,s.y,l+n)}}}function D(t,e){let n=t.length;for(;--n>=0;){const i=n;let s=n-1;s<0&&(s=t.length-1);for(let t=0,n=a+2*p;t<n;t++){const n=C*t,r=C*(t+1);k(e+i+n,e+s+n,e+s+r,e+i+r)}}}function B(t,e,n){r.push(t),r.push(e),r.push(n)}function z(t,e,s){U(t),U(e),U(s);const r=i.length/3,o=m.generateTopUV(n,i,r-3,r-2,r-1);G(o[0]),G(o[1]),G(o[2])}function k(t,e,s,r){U(t),U(e),U(r),U(e),U(s),U(r);const o=i.length/3,a=m.generateSideWallUV(n,i,o-6,o-3,o-2,o-1);G(a[0]),G(a[1]),G(a[3]),G(a[1]),G(a[2]),G(a[3])}function U(t){i.push(r[3*t+0]),i.push(r[3*t+1]),i.push(r[3*t+2])}function G(t){s.push(t.x),s.push(t.y)}!function(){const t=i.length/3;if(c){let t=0,e=C*t;for(let t=0;t<N;t++){const n=M[t];z(n[2]+e,n[1]+e,n[0]+e)}t=a+2*p,e=C*t;for(let t=0;t<N;t++){const n=M[t];z(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<N;t++){const e=M[t];z(e[2],e[1],e[0])}for(let t=0;t<N;t++){const e=M[t];z(e[0]+C*a,e[1]+C*a,e[2]+C*a)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;D(E,e),e+=E.length;for(let t=0,n=A.length;t<n;t++){const n=A[t];D(n,e),e+=n.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute(\\\\\\\"position\\\\\\\",new nT(i,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new nT(s,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let i=0,s=t.shapes.length;i<s;i++){const s=e[t.shapes[i]];n.push(s)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new eC[i.type]).fromJSON(i)),new RC(n,t.options)}}const IC={generateTopUV:function(t,e,n,i,s){const r=e[3*n],o=e[3*n+1],a=e[3*i],l=e[3*i+1],c=e[3*s],h=e[3*s+1];return[new _b(r,o),new _b(a,l),new _b(c,h)]},generateSideWallUV:function(t,e,n,i,s,r){const o=e[3*n],a=e[3*n+1],l=e[3*n+2],c=e[3*i],h=e[3*i+1],u=e[3*i+2],d=e[3*s],p=e[3*s+1],_=e[3*s+2],m=e[3*r],f=e[3*r+1],g=e[3*r+2];return Math.abs(a-h)<Math.abs(o-c)?[new _b(o,1-l),new _b(c,1-u),new _b(d,1-_),new _b(m,1-g)]:[new _b(a,1-l),new _b(h,1-u),new _b(p,1-_),new _b(f,1-g)]}};class FC extends hT{constructor(t=new sC([new _b(0,.5),new _b(-.5,-.5),new _b(.5,-.5)]),e=12){super(),this.type=\\\\\\\"ShapeGeometry\\\\\\\",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],s=[],r=[];let o=0,a=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(o,a,e),o+=a,a=0;function l(t){const o=i.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===LC.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===LC.isClockWise(e)&&(h[t]=e.reverse())}const u=LC.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0),s.push(0,0,1),r.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],i=e[0]+o,s=e[1]+o,r=e[2]+o;n.push(i,s,r),a+=3}}this.setIndex(n),this.setAttribute(\\\\\\\"position\\\\\\\",new nT(i,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new nT(s,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new nT(r,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,s=t.shapes.length;i<s;i++){const s=e[t.shapes[i]];n.push(s)}return new FC(n,t.curveSegments)}}class DC extends Vw{constructor(t){super(),this.type=\\\\\\\"ShadowMaterial\\\\\\\",this.color=new $w(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}DC.prototype.isShadowMaterial=!0;class BC extends Vw{constructor(t){super(),this.defines={STANDARD:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshStandardMaterial\\\\\\\",this.color=new $w(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new $w(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new _b(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\\\\\\\"\\\\\\\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}BC.prototype.isMeshStandardMaterial=!0;class zC extends BC{constructor(t){super(),this.defines={STANDARD:\\\\\\\"\\\\\\\",PHYSICAL:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshPhysicalMaterial\\\\\\\",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new _b(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,\\\\\\\"reflectivity\\\\\\\",{get:function(){return ab(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.sheenTint=new $w(0),this.sheenRoughness=1,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationTint=new $w(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularTint=new $w(1,1,1),this.specularTintMap=null,this._sheen=0,this._clearcoat=0,this._transmission=0,this.setValues(t)}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:\\\\\\\"\\\\\\\",PHYSICAL:\\\\\\\"\\\\\\\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.sheen=t.sheen,this.sheenTint.copy(t.sheenTint),this.sheenRoughness=t.sheenRoughness,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationTint.copy(t.attenuationTint),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularTint.copy(t.specularTint),this.specularTintMap=t.specularTintMap,this}}zC.prototype.isMeshPhysicalMaterial=!0;class kC extends Vw{constructor(t){super(),this.type=\\\\\\\"MeshPhongMaterial\\\\\\\",this.color=new $w(16777215),this.specular=new $w(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new $w(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new _b(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}kC.prototype.isMeshPhongMaterial=!0;class UC extends Vw{constructor(t){super(),this.defines={TOON:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshToonMaterial\\\\\\\",this.color=new $w(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new $w(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new _b(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}UC.prototype.isMeshToonMaterial=!0;class GC extends Vw{constructor(t){super(),this.type=\\\\\\\"MeshNormalMaterial\\\\\\\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new _b(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}GC.prototype.isMeshNormalMaterial=!0;class VC extends Vw{constructor(t){super(),this.type=\\\\\\\"MeshLambertMaterial\\\\\\\",this.color=new $w(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new $w(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\\\\\\\"round\\\\\\\",this.wireframeLinejoin=\\\\\\\"round\\\\\\\",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}VC.prototype.isMeshLambertMaterial=!0;class HC extends Vw{constructor(t){super(),this.defines={MATCAP:\\\\\\\"\\\\\\\"},this.type=\\\\\\\"MeshMatcapMaterial\\\\\\\",this.color=new $w(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new _b(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:\\\\\\\"\\\\\\\"},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this}}HC.prototype.isMeshMatcapMaterial=!0;class jC extends vS{constructor(t){super(),this.type=\\\\\\\"LineDashedMaterial\\\\\\\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}jC.prototype.isLineDashedMaterial=!0;const WC={arraySlice:function(t,e,n){return WC.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:\\\\\\\"number\\\\\\\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,s=new t.constructor(i);for(let r=0,o=0;o!==i;++r){const i=n[r]*e;for(let n=0;n!==e;++n)s[o++]=t[i+n]}return s},flattenJSON:function(t,e,n,i){let s=1,r=t[0];for(;void 0!==r&&void 0===r[i];)r=t[s++];if(void 0===r)return;let o=r[i];if(void 0!==o)if(Array.isArray(o))do{o=r[i],void 0!==o&&(e.push(r.time),n.push.apply(n,o)),r=t[s++]}while(void 0!==r);else if(void 0!==o.toArray)do{o=r[i],void 0!==o&&(e.push(r.time),o.toArray(n,n.length)),r=t[s++]}while(void 0!==r);else do{o=r[i],void 0!==o&&(e.push(r.time),n.push(o)),r=t[s++]}while(void 0!==r)},subclip:function(t,e,n,i,s=30){const r=t.clone();r.name=e;const o=[];for(let t=0;t<r.tracks.length;++t){const e=r.tracks[t],a=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const r=e.times[t]*s;if(!(r<n||r>=i)){l.push(e.times[t]);for(let n=0;n<a;++n)c.push(e.values[t*a+n])}}0!==l.length&&(e.times=WC.convertArray(l,e.times.constructor),e.values=WC.convertArray(c,e.values.constructor),o.push(e))}r.tracks=o;let a=1/0;for(let t=0;t<r.tracks.length;++t)a>r.tracks[t].times[0]&&(a=r.tracks[t].times[0]);for(let t=0;t<r.tracks.length;++t)r.tracks[t].shift(-1*a);return r.resetDuration(),r},makeClipAdditive:function(t,e=0,n=t,i=30){i<=0&&(i=30);const s=n.tracks.length,r=e/i;for(let e=0;e<s;++e){const i=n.tracks[e],s=i.ValueTypeName;if(\\\\\\\"bool\\\\\\\"===s||\\\\\\\"string\\\\\\\"===s)continue;const o=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===s}));if(void 0===o)continue;let a=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(a=l/3);let c=0;const h=o.getValueSize();o.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=i.times.length-1;let d;if(r<=i.times[0]){const t=a,e=l-a;d=WC.arraySlice(i.values,t,e)}else if(r>=i.times[u]){const t=u*l+a,e=t+l-a;d=WC.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=a,n=l-a;t.evaluate(r),d=WC.arraySlice(t.resultBuffer,e,n)}if(\\\\\\\"quaternion\\\\\\\"===s){(new Eb).fromArray(d).normalize().conjugate().toArray(d)}const p=o.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(\\\\\\\"quaternion\\\\\\\"===s)Eb.multiplyQuaternionsFlat(o.values,e,d,0,o.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)o.values[e+n]-=d[n]}}}return t.blendMode=2501,t}};class qC{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],s=e[n-1];t:{e:{let r;n:{i:if(!(t<i)){for(let r=n+2;;){if(void 0===i){if(t<s)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,s)}if(n===r)break;if(s=i,i=e[++n],t<i)break e}r=e.length;break n}if(t>=s)break t;{const o=e[1];t<o&&(n=2,s=o);for(let r=n-2;;){if(void 0===s)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===r)break;if(i=s,s=e[--n-1],t>=s)break e}r=n,n=0}}for(;n<r;){const i=n+r>>>1;t<e[i]?r=i:n=i+1}if(i=e[n],s=e[n-1],void 0===s)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,s,t)}this._cachedIndex=n,this.intervalChanged_(n,s,i)}return this.interpolate_(n,s,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,s=t*i;for(let t=0;t!==i;++t)e[t]=n[s+t];return e}interpolate_(){throw new Error(\\\\\\\"call to abstract method\\\\\\\")}intervalChanged_(){}}qC.prototype.beforeStart_=qC.prototype.copySampleValue_,qC.prototype.afterEnd_=qC.prototype.copySampleValue_;class XC extends qC{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Vx,endingEnd:Vx}}intervalChanged_(t,e,n){const i=this.parameterPositions;let s=t-2,r=t+1,o=i[s],a=i[r];if(void 0===o)switch(this.getSettings_().endingStart){case Hx:s=t,o=2*e-n;break;case jx:s=i.length-2,o=e+i[s]-i[s+1];break;default:s=t,o=n}if(void 0===a)switch(this.getSettings_().endingEnd){case Hx:r=t,a=2*n-e;break;case jx:r=1,a=n+i[1]-i[0];break;default:r=t-1,a=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-o),this._weightNext=l/(a-n),this._offsetPrev=s*c,this._offsetNext=r*c}interpolate_(t,e,n,i){const s=this.resultBuffer,r=this.sampleValues,o=this.valueSize,a=t*o,l=a-o,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),_=p*p,m=_*p,f=-u*m+2*u*_-u*p,g=(1+u)*m+(-1.5-2*u)*_+(-.5+u)*p+1,v=(-1-d)*m+(1.5+d)*_+.5*p,y=d*m-d*_;for(let t=0;t!==o;++t)s[t]=f*r[c+t]+g*r[l+t]+v*r[a+t]+y*r[h+t];return s}}class YC extends qC{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const s=this.resultBuffer,r=this.sampleValues,o=this.valueSize,a=t*o,l=a-o,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==o;++t)s[t]=r[l+t]*h+r[a+t]*c;return s}}class $C extends qC{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class JC{constructor(t,e,n,i){if(void 0===t)throw new Error(\\\\\\\"THREE.KeyframeTrack: track name is undefined\\\\\\\");if(void 0===e||0===e.length)throw new Error(\\\\\\\"THREE.KeyframeTrack: no keyframes in track named \\\\\\\"+t);this.name=t,this.times=WC.convertArray(e,this.TimeBufferType),this.values=WC.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:WC.convertArray(t.times,Array),values:WC.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new $C(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new YC(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new XC(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case kx:e=this.InterpolantFactoryMethodDiscrete;break;case Ux:e=this.InterpolantFactoryMethodLinear;break;case Gx:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\\\\\\\"unsupported interpolation for \\\\\\\"+this.ValueTypeName+\\\\\\\" keyframe track named \\\\\\\"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\\\\\\\"THREE.KeyframeTrack:\\\\\\\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return kx;case this.InterpolantFactoryMethodLinear:return Ux;case this.InterpolantFactoryMethodSmooth:return Gx}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let s=0,r=i-1;for(;s!==i&&n[s]<t;)++s;for(;-1!==r&&n[r]>e;)--r;if(++r,0!==s||r!==i){s>=r&&(r=Math.max(r,1),s=r-1);const t=this.getValueSize();this.times=WC.arraySlice(n,s,r),this.values=WC.arraySlice(this.values,s*t,r*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\\\\\\\"THREE.KeyframeTrack: Invalid value size in track.\\\\\\\",this),t=!1);const n=this.times,i=this.values,s=n.length;0===s&&(console.error(\\\\\\\"THREE.KeyframeTrack: Track is empty.\\\\\\\",this),t=!1);let r=null;for(let e=0;e!==s;e++){const i=n[e];if(\\\\\\\"number\\\\\\\"==typeof i&&isNaN(i)){console.error(\\\\\\\"THREE.KeyframeTrack: Time is not a valid number.\\\\\\\",this,e,i),t=!1;break}if(null!==r&&r>i){console.error(\\\\\\\"THREE.KeyframeTrack: Out of order keys.\\\\\\\",this,e,i,r),t=!1;break}r=i}if(void 0!==i&&WC.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error(\\\\\\\"THREE.KeyframeTrack: Value is not a valid number.\\\\\\\",this,e,n),t=!1;break}}return t}optimize(){const t=WC.arraySlice(this.times),e=WC.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===Gx,s=t.length-1;let r=1;for(let o=1;o<s;++o){let s=!1;const a=t[o];if(a!==t[o+1]&&(1!==o||a!==t[0]))if(i)s=!0;else{const t=o*n,i=t-n,r=t+n;for(let o=0;o!==n;++o){const n=e[t+o];if(n!==e[i+o]||n!==e[r+o]){s=!0;break}}}if(s){if(o!==r){t[r]=t[o];const i=o*n,s=r*n;for(let t=0;t!==n;++t)e[s+t]=e[i+t]}++r}}if(s>0){t[r]=t[s];for(let t=s*n,i=r*n,o=0;o!==n;++o)e[i+o]=e[t+o];++r}return r!==t.length?(this.times=WC.arraySlice(t,0,r),this.values=WC.arraySlice(e,0,r*n)):(this.times=t,this.values=e),this}clone(){const t=WC.arraySlice(this.times,0),e=WC.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}JC.prototype.TimeBufferType=Float32Array,JC.prototype.ValueBufferType=Float32Array,JC.prototype.DefaultInterpolation=Ux;class ZC extends JC{}ZC.prototype.ValueTypeName=\\\\\\\"bool\\\\\\\",ZC.prototype.ValueBufferType=Array,ZC.prototype.DefaultInterpolation=kx,ZC.prototype.InterpolantFactoryMethodLinear=void 0,ZC.prototype.InterpolantFactoryMethodSmooth=void 0;class KC extends JC{}KC.prototype.ValueTypeName=\\\\\\\"color\\\\\\\";class QC extends JC{}QC.prototype.ValueTypeName=\\\\\\\"number\\\\\\\";class tN extends qC{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const s=this.resultBuffer,r=this.sampleValues,o=this.valueSize,a=(n-e)/(i-e);let l=t*o;for(let t=l+o;l!==t;l+=4)Eb.slerpFlat(s,0,r,l-o,r,l,a);return s}}class eN extends JC{InterpolantFactoryMethodLinear(t){return new tN(this.times,this.values,this.getValueSize(),t)}}eN.prototype.ValueTypeName=\\\\\\\"quaternion\\\\\\\",eN.prototype.DefaultInterpolation=Ux,eN.prototype.InterpolantFactoryMethodSmooth=void 0;class nN extends JC{}nN.prototype.ValueTypeName=\\\\\\\"string\\\\\\\",nN.prototype.ValueBufferType=Array,nN.prototype.DefaultInterpolation=kx,nN.prototype.InterpolantFactoryMethodLinear=void 0,nN.prototype.InterpolantFactoryMethodSmooth=void 0;class iN extends JC{}iN.prototype.ValueTypeName=\\\\\\\"vector\\\\\\\";class sN{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ob(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,s=n.length;t!==s;++t)e.push(rN(n[t]).scale(i));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(JC.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const s=e.length,r=[];for(let t=0;t<s;t++){let o=[],a=[];o.push((t+s-1)%s,t,(t+1)%s),a.push(0,1,0);const l=WC.getKeyframeOrder(o);o=WC.sortedArray(o,1,l),a=WC.sortedArray(a,1,l),i||0!==o[0]||(o.push(s),a.push(a[0])),r.push(new QC(\\\\\\\".morphTargetInfluences[\\\\\\\"+e[t].name+\\\\\\\"]\\\\\\\",o,a).scale(1/n))}return new this(t,-1,r)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},s=/^([\\\\w-]*?)([\\\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],r=n.name.match(s);if(r&&r.length>1){const t=r[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const r=[];for(const t in i)r.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return r}static parseAnimation(t,e){if(!t)return console.error(\\\\\\\"THREE.AnimationClip: No animation in JSONLoader data.\\\\\\\"),null;const n=function(t,e,n,i,s){if(0!==n.length){const r=[],o=[];WC.flattenJSON(n,r,o,i),0!==r.length&&s.push(new t(e,r,o))}},i=[],s=t.name||\\\\\\\"default\\\\\\\",r=t.fps||30,o=t.blendMode;let a=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const s=l[t].keys;if(s&&0!==s.length)if(s[0].morphTargets){const t={};let e;for(e=0;e<s.length;e++)if(s[e].morphTargets)for(let n=0;n<s[e].morphTargets.length;n++)t[s[e].morphTargets[n]]=-1;for(const n in t){const t=[],r=[];for(let i=0;i!==s[e].morphTargets.length;++i){const i=s[e];t.push(i.time),r.push(i.morphTarget===n?1:0)}i.push(new QC(\\\\\\\".morphTargetInfluence[\\\\\\\"+n+\\\\\\\"]\\\\\\\",t,r))}a=t.length*(r||1)}else{const r=\\\\\\\".bones[\\\\\\\"+e[t].name+\\\\\\\"]\\\\\\\";n(iN,r+\\\\\\\".position\\\\\\\",s,\\\\\\\"pos\\\\\\\",i),n(eN,r+\\\\\\\".quaternion\\\\\\\",s,\\\\\\\"rot\\\\\\\",i),n(iN,r+\\\\\\\".scale\\\\\\\",s,\\\\\\\"scl\\\\\\\",i)}}if(0===i.length)return null;return new this(s,a,i,o)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function rN(t){if(void 0===t.type)throw new Error(\\\\\\\"THREE.KeyframeTrack: track type undefined, can not parse\\\\\\\");const e=function(t){switch(t.toLowerCase()){case\\\\\\\"scalar\\\\\\\":case\\\\\\\"double\\\\\\\":case\\\\\\\"float\\\\\\\":case\\\\\\\"number\\\\\\\":case\\\\\\\"integer\\\\\\\":return QC;case\\\\\\\"vector\\\\\\\":case\\\\\\\"vector2\\\\\\\":case\\\\\\\"vector3\\\\\\\":case\\\\\\\"vector4\\\\\\\":return iN;case\\\\\\\"color\\\\\\\":return KC;case\\\\\\\"quaternion\\\\\\\":return eN;case\\\\\\\"bool\\\\\\\":case\\\\\\\"boolean\\\\\\\":return ZC;case\\\\\\\"string\\\\\\\":return nN}throw new Error(\\\\\\\"THREE.KeyframeTrack: Unsupported typeName: \\\\\\\"+t)}(t.type);if(void 0===t.times){const e=[],n=[];WC.flattenJSON(t.keys,e,n,\\\\\\\"value\\\\\\\"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const oN={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class aN{constructor(t,e,n){const i=this;let s,r=!1,o=0,a=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){a++,!1===r&&void 0!==i.onStart&&i.onStart(t,o,a),r=!0},this.itemEnd=function(t){o++,void 0!==i.onProgress&&i.onProgress(t,o,a),o===a&&(r=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return s?s(t):t},this.setURLModifier=function(t){return s=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const lN=new aN;class cN{constructor(t){this.manager=void 0!==t?t:lN,this.crossOrigin=\\\\\\\"anonymous\\\\\\\",this.withCredentials=!1,this.path=\\\\\\\"\\\\\\\",this.resourcePath=\\\\\\\"\\\\\\\",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,s){n.load(t,i,e,s)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const hN={};class uN extends cN{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=\\\\\\\"\\\\\\\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,r=oN.get(t);if(void 0!==r)return s.manager.itemStart(t),setTimeout((function(){e&&e(r),s.manager.itemEnd(t)}),0),r;if(void 0!==hN[t])return void hN[t].push({onLoad:e,onProgress:n,onError:i});const o=t.match(/^data:(.*?)(;base64)?,(.*)$/);let a;if(o){const n=o[1],r=!!o[2];let a=o[3];a=decodeURIComponent(a),r&&(a=atob(a));try{let i;const r=(this.responseType||\\\\\\\"\\\\\\\").toLowerCase();switch(r){case\\\\\\\"arraybuffer\\\\\\\":case\\\\\\\"blob\\\\\\\":const t=new Uint8Array(a.length);for(let e=0;e<a.length;e++)t[e]=a.charCodeAt(e);i=\\\\\\\"blob\\\\\\\"===r?new Blob([t.buffer],{type:n}):t.buffer;break;case\\\\\\\"document\\\\\\\":const e=new DOMParser;i=e.parseFromString(a,n);break;case\\\\\\\"json\\\\\\\":i=JSON.parse(a);break;default:i=a}setTimeout((function(){e&&e(i),s.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){i&&i(e),s.manager.itemError(t),s.manager.itemEnd(t)}),0)}}else{hN[t]=[],hN[t].push({onLoad:e,onProgress:n,onError:i}),a=new XMLHttpRequest,a.open(\\\\\\\"GET\\\\\\\",t,!0),a.addEventListener(\\\\\\\"load\\\\\\\",(function(e){const n=this.response,i=hN[t];if(delete hN[t],200===this.status||0===this.status){0===this.status&&console.warn(\\\\\\\"THREE.FileLoader: HTTP Status 0 received.\\\\\\\"),oN.add(t,n);for(let t=0,e=i.length;t<e;t++){const e=i[t];e.onLoad&&e.onLoad(n)}s.manager.itemEnd(t)}else{for(let t=0,n=i.length;t<n;t++){const n=i[t];n.onError&&n.onError(e)}s.manager.itemError(t),s.manager.itemEnd(t)}}),!1),a.addEventListener(\\\\\\\"progress\\\\\\\",(function(e){const n=hN[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),a.addEventListener(\\\\\\\"error\\\\\\\",(function(e){const n=hN[t];delete hN[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}s.manager.itemError(t),s.manager.itemEnd(t)}),!1),a.addEventListener(\\\\\\\"abort\\\\\\\",(function(e){const n=hN[t];delete hN[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}s.manager.itemError(t),s.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(a.responseType=this.responseType),void 0!==this.withCredentials&&(a.withCredentials=this.withCredentials),a.overrideMimeType&&a.overrideMimeType(void 0!==this.mimeType?this.mimeType:\\\\\\\"text/plain\\\\\\\");for(const t in this.requestHeader)a.setRequestHeader(t,this.requestHeader[t]);a.send(null)}return s.manager.itemStart(t),a}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class dN extends cN{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,r=oN.get(t);if(void 0!==r)return s.manager.itemStart(t),setTimeout((function(){e&&e(r),s.manager.itemEnd(t)}),0),r;const o=gb(\\\\\\\"img\\\\\\\");function a(){o.removeEventListener(\\\\\\\"load\\\\\\\",a,!1),o.removeEventListener(\\\\\\\"error\\\\\\\",l,!1),oN.add(t,this),e&&e(this),s.manager.itemEnd(t)}function l(e){o.removeEventListener(\\\\\\\"load\\\\\\\",a,!1),o.removeEventListener(\\\\\\\"error\\\\\\\",l,!1),i&&i(e),s.manager.itemError(t),s.manager.itemEnd(t)}return o.addEventListener(\\\\\\\"load\\\\\\\",a,!1),o.addEventListener(\\\\\\\"error\\\\\\\",l,!1),\\\\\\\"data:\\\\\\\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(o.crossOrigin=this.crossOrigin),s.manager.itemStart(t),o.src=t,o}}class pN extends cN{constructor(t){super(t)}load(t,e,n,i){const s=new kT,r=new dN(this.manager);r.setCrossOrigin(this.crossOrigin),r.setPath(this.path);let o=0;function a(n){r.load(t[n],(function(t){s.images[n]=t,o++,6===o&&(s.needsUpdate=!0,e&&e(s))}),void 0,i)}for(let e=0;e<t.length;++e)a(e);return s}}class _N extends cN{constructor(t){super(t)}load(t,e,n,i){const s=new bb,r=new dN(this.manager);return r.setCrossOrigin(this.crossOrigin),r.setPath(this.path),r.load(t,(function(t){s.image=t,s.needsUpdate=!0,void 0!==e&&e(s)}),n,i),s}}class mN extends Nw{constructor(t,e=1){super(),this.type=\\\\\\\"Light\\\\\\\",this.color=new $w(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}mN.prototype.isLight=!0;class fN extends mN{constructor(t,e,n){super(t,n),this.type=\\\\\\\"HemisphereLight\\\\\\\",this.position.copy(Nw.DefaultUp),this.updateMatrix(),this.groundColor=new $w(e)}copy(t){return mN.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}fN.prototype.isHemisphereLight=!0;const gN=new sw,vN=new Sb,yN=new Sb;class xN{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new _b(512,512),this.map=null,this.mapPass=null,this.matrix=new sw,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new XT,this._frameExtents=new _b(1,1),this._viewportCount=1,this._viewports=[new Tb(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;vN.setFromMatrixPosition(t.matrixWorld),e.position.copy(vN),yN.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(yN),e.updateMatrixWorld(),gN.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(gN),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class bN extends xN{constructor(){super(new DT(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*ib*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;n===e.fov&&i===e.aspect&&s===e.far||(e.fov=n,e.aspect=i,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}bN.prototype.isSpotLightShadow=!0;class wN extends mN{constructor(t,e,n=0,i=Math.PI/3,s=0,r=1){super(t,e),this.type=\\\\\\\"SpotLight\\\\\\\",this.position.copy(Nw.DefaultUp),this.updateMatrix(),this.target=new Nw,this.distance=n,this.angle=i,this.penumbra=s,this.decay=r,this.shadow=new bN}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}wN.prototype.isSpotLight=!0;const TN=new sw,AN=new Sb,MN=new Sb;class EN extends xN{constructor(){super(new DT(90,1,.5,500)),this._frameExtents=new _b(4,2),this._viewportCount=6,this._viewports=[new Tb(2,1,1,1),new Tb(0,1,1,1),new Tb(3,1,1,1),new Tb(1,1,1,1),new Tb(3,0,1,1),new Tb(1,0,1,1)],this._cubeDirections=[new Sb(1,0,0),new Sb(-1,0,0),new Sb(0,0,1),new Sb(0,0,-1),new Sb(0,1,0),new Sb(0,-1,0)],this._cubeUps=[new Sb(0,1,0),new Sb(0,1,0),new Sb(0,1,0),new Sb(0,1,0),new Sb(0,0,1),new Sb(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),AN.setFromMatrixPosition(t.matrixWorld),n.position.copy(AN),MN.copy(n.position),MN.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(MN),n.updateMatrixWorld(),i.makeTranslation(-AN.x,-AN.y,-AN.z),TN.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(TN)}}EN.prototype.isPointLightShadow=!0;class SN extends mN{constructor(t,e,n=0,i=1){super(t,e),this.type=\\\\\\\"PointLight\\\\\\\",this.distance=n,this.decay=i,this.shadow=new EN}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}SN.prototype.isPointLight=!0;class CN extends xN{constructor(){super(new oA(-5,5,5,-5,.5,500))}}CN.prototype.isDirectionalLightShadow=!0;class NN extends mN{constructor(t,e){super(t,e),this.type=\\\\\\\"DirectionalLight\\\\\\\",this.position.copy(Nw.DefaultUp),this.updateMatrix(),this.target=new Nw,this.shadow=new CN}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}NN.prototype.isDirectionalLight=!0;class LN extends mN{constructor(t,e){super(t,e),this.type=\\\\\\\"AmbientLight\\\\\\\"}}LN.prototype.isAmbientLight=!0;class ON extends mN{constructor(t,e,n=10,i=10){super(t,e),this.type=\\\\\\\"RectAreaLight\\\\\\\",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}ON.prototype.isRectAreaLight=!0;class PN{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Sb)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,s=t.z,r=this.coefficients;return e.copy(r[0]).multiplyScalar(.282095),e.addScaledVector(r[1],.488603*i),e.addScaledVector(r[2],.488603*s),e.addScaledVector(r[3],.488603*n),e.addScaledVector(r[4],n*i*1.092548),e.addScaledVector(r[5],i*s*1.092548),e.addScaledVector(r[6],.315392*(3*s*s-1)),e.addScaledVector(r[7],n*s*1.092548),e.addScaledVector(r[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,s=t.z,r=this.coefficients;return e.copy(r[0]).multiplyScalar(.886227),e.addScaledVector(r[1],1.023328*i),e.addScaledVector(r[2],1.023328*s),e.addScaledVector(r[3],1.023328*n),e.addScaledVector(r[4],.858086*n*i),e.addScaledVector(r[5],.858086*i*s),e.addScaledVector(r[6],.743125*s*s-.247708),e.addScaledVector(r[7],.858086*n*s),e.addScaledVector(r[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,s=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*s,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*s,e[6]=.315392*(3*s*s-1),e[7]=1.092548*n*s,e[8]=.546274*(n*n-i*i)}}PN.prototype.isSphericalHarmonics3=!0;class RN extends mN{constructor(t=new PN,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}RN.prototype.isLightProbe=!0;class IN{static decodeText(t){if(\\\\\\\"undefined\\\\\\\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\\\\\\\"\\\\\\\";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\\\\\\\"/\\\\\\\");return-1===e?\\\\\\\"./\\\\\\\":t.substr(0,e+1)}}class FN extends hT{constructor(){super(),this.type=\\\\\\\"InstancedBufferGeometry\\\\\\\",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}FN.prototype.isInstancedBufferGeometry=!0;let DN;(class extends cN{constructor(t){super(t),\\\\\\\"undefined\\\\\\\"==typeof createImageBitmap&&console.warn(\\\\\\\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\\\\\\\"),\\\\\\\"undefined\\\\\\\"==typeof fetch&&console.warn(\\\\\\\"THREE.ImageBitmapLoader: fetch() not supported.\\\\\\\"),this.options={premultiplyAlpha:\\\\\\\"none\\\\\\\"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=\\\\\\\"\\\\\\\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,r=oN.get(t);if(void 0!==r)return s.manager.itemStart(t),setTimeout((function(){e&&e(r),s.manager.itemEnd(t)}),0),r;const o={};o.credentials=\\\\\\\"anonymous\\\\\\\"===this.crossOrigin?\\\\\\\"same-origin\\\\\\\":\\\\\\\"include\\\\\\\",o.headers=this.requestHeader,fetch(t,o).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(s.options,{colorSpaceConversion:\\\\\\\"none\\\\\\\"}))})).then((function(n){oN.add(t,n),e&&e(n),s.manager.itemEnd(t)})).catch((function(e){i&&i(e),s.manager.itemError(t),s.manager.itemEnd(t)})),s.manager.itemStart(t)}}).prototype.isImageBitmapLoader=!0;const BN=function(){return void 0===DN&&(DN=new(window.AudioContext||window.webkitAudioContext)),DN};class zN extends cN{constructor(t){super(t)}load(t,e,n,i){const s=this,r=new uN(this.manager);r.setResponseType(\\\\\\\"arraybuffer\\\\\\\"),r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(t,(function(n){try{const t=n.slice(0);BN().decodeAudioData(t,(function(t){e(t)}))}catch(e){i?i(e):console.error(e),s.manager.itemError(t)}}),n,i)}}(class extends RN{constructor(t,e,n=1){super(void 0,n);const i=(new $w).set(t),s=(new $w).set(e),r=new Sb(i.r,i.g,i.b),o=new Sb(s.r,s.g,s.b),a=Math.sqrt(Math.PI),l=a*Math.sqrt(.75);this.sh.coefficients[0].copy(r).add(o).multiplyScalar(a),this.sh.coefficients[1].copy(r).sub(o).multiplyScalar(l)}}).prototype.isHemisphereLightProbe=!0;(class extends RN{constructor(t,e=1){super(void 0,e);const n=(new $w).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}).prototype.isAmbientLightProbe=!0;class kN extends Nw{constructor(t){super(),this.type=\\\\\\\"Audio\\\\\\\",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=\\\\\\\"empty\\\\\\\",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=\\\\\\\"audioNode\\\\\\\",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=\\\\\\\"mediaNode\\\\\\\",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=\\\\\\\"mediaStreamNode\\\\\\\",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=\\\\\\\"buffer\\\\\\\",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn(\\\\\\\"THREE.Audio: Audio is already playing.\\\\\\\");if(!1===this.hasPlaybackControl)return void console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\"),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}class UN{constructor(t,e,n){let i,s,r;switch(this.binding=t,this.valueSize=n,e){case\\\\\\\"quaternion\\\\\\\":i=this._slerp,s=this._slerpAdditive,r=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case\\\\\\\"string\\\\\\\":case\\\\\\\"bool\\\\\\\":i=this._select,s=this._select,r=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,s=this._lerpAdditive,r=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=s,this._setIdentity=r,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,s=t*i+i;let r=this.cumulativeWeight;if(0===r){for(let t=0;t!==i;++t)n[s+t]=n[t];r=e}else{r+=e;const t=e/r;this._mixBufferRegion(n,s,0,t,i)}this.cumulativeWeight=r}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,s=this.cumulativeWeight,r=this.cumulativeWeightAdditive,o=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,s<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-s,e)}r>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,s=e+e;t!==s;++t)if(n[t]!==n[t+e]){o.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,s=i;t!==s;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,s){if(i>=.5)for(let i=0;i!==s;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Eb.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,s){const r=this._workIndex*s;Eb.multiplyQuaternionsFlat(t,r,t,e,t,n),Eb.slerpFlat(t,e,t,e,t,r,i)}_lerp(t,e,n,i,s){const r=1-i;for(let o=0;o!==s;++o){const s=e+o;t[s]=t[s]*r+t[n+o]*i}}_lerpAdditive(t,e,n,i,s){for(let r=0;r!==s;++r){const s=e+r;t[s]=t[s]+t[n+r]*i}}}const GN=\\\\\\\"\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/\\\\\\\",VN=new RegExp(\\\\\\\"[\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/]\\\\\\\",\\\\\\\"g\\\\\\\"),HN=\\\\\\\"[^\\\\\\\\[\\\\\\\\]\\\\\\\\.:\\\\\\\\/]\\\\\\\",jN=\\\\\\\"[^\\\\\\\"+GN.replace(\\\\\\\"\\\\\\\\.\\\\\\\",\\\\\\\"\\\\\\\")+\\\\\\\"]\\\\\\\",WN=/((?:WC+[\\\\/:])*)/.source.replace(\\\\\\\"WC\\\\\\\",HN),qN=/(WCOD+)?/.source.replace(\\\\\\\"WCOD\\\\\\\",jN),XN=/(?:\\\\.(WC+)(?:\\\\[(.+)\\\\])?)?/.source.replace(\\\\\\\"WC\\\\\\\",HN),YN=/\\\\.(WC+)(?:\\\\[(.+)\\\\])?/.source.replace(\\\\\\\"WC\\\\\\\",HN),$N=new RegExp(\\\\\\\"^\\\\\\\"+WN+qN+XN+YN+\\\\\\\"$\\\\\\\"),JN=[\\\\\\\"material\\\\\\\",\\\\\\\"materials\\\\\\\",\\\\\\\"bones\\\\\\\"];class ZN{constructor(t,e,n){this.path=e,this.parsedPath=n||ZN.parseTrackName(e),this.node=ZN.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new ZN.Composite(t,e,n):new ZN(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\\\s/g,\\\\\\\"_\\\\\\\").replace(VN,\\\\\\\"\\\\\\\")}static parseTrackName(t){const e=$N.exec(t);if(!e)throw new Error(\\\\\\\"PropertyBinding: Cannot parse trackName: \\\\\\\"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(\\\\\\\".\\\\\\\");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==JN.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\\\\\\\"PropertyBinding: can not parse propertyName from trackName: \\\\\\\"+t);return n}static findNode(t,e){if(!e||\\\\\\\"\\\\\\\"===e||\\\\\\\".\\\\\\\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const s=t[i];if(s.name===e||s.uuid===e)return s;const r=n(s.children);if(r)return r}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,s=n.length;i!==s;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let s=e.propertyIndex;if(t||(t=ZN.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to update node for track: \\\\\\\"+this.path+\\\\\\\" but it wasn't found.\\\\\\\");if(n){let i=e.objectIndex;switch(n){case\\\\\\\"materials\\\\\\\":if(!t.material)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\\\\\\\",this);if(!t.material.materials)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\\\\\\\",this);t=t.material.materials;break;case\\\\\\\"bones\\\\\\\":if(!t.skeleton)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\\\\\\\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\\\\\\\",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\\\\\\\",this,t);t=t[i]}}const r=t[i];if(void 0===r){const n=e.nodeName;return void console.error(\\\\\\\"THREE.PropertyBinding: Trying to update property for track: \\\\\\\"+n+\\\\\\\".\\\\\\\"+i+\\\\\\\" but it wasn't found.\\\\\\\",t)}let o=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?o=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(o=this.Versioning.MatrixWorldNeedsUpdate);let a=this.BindingType.Direct;if(void 0!==s){if(\\\\\\\"morphTargetInfluences\\\\\\\"===i){if(!t.geometry)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\\\\\\\",this);if(!t.geometry.isBufferGeometry)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\",this);if(!t.geometry.morphAttributes)return void console.error(\\\\\\\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\\\\\\\",this);void 0!==t.morphTargetDictionary[s]&&(s=t.morphTargetDictionary[s])}a=this.BindingType.ArrayElement,this.resolvedProperty=r,this.propertyIndex=s}else void 0!==r.fromArray&&void 0!==r.toArray?(a=this.BindingType.HasFromToArray,this.resolvedProperty=r):Array.isArray(r)?(a=this.BindingType.EntireArray,this.resolvedProperty=r):this.propertyName=i;this.getValue=this.GetterByBindingType[a],this.setValue=this.SetterByBindingTypeAndVersioning[a][o]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}ZN.Composite=class{constructor(t,e,n){const i=n||ZN.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},ZN.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},ZN.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},ZN.prototype.GetterByBindingType=[ZN.prototype._getValue_direct,ZN.prototype._getValue_array,ZN.prototype._getValue_arrayElement,ZN.prototype._getValue_toArray],ZN.prototype.SetterByBindingTypeAndVersioning=[[ZN.prototype._setValue_direct,ZN.prototype._setValue_direct_setNeedsUpdate,ZN.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[ZN.prototype._setValue_array,ZN.prototype._setValue_array_setNeedsUpdate,ZN.prototype._setValue_array_setMatrixWorldNeedsUpdate],[ZN.prototype._setValue_arrayElement,ZN.prototype._setValue_arrayElement_setNeedsUpdate,ZN.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[ZN.prototype._setValue_fromArray,ZN.prototype._setValue_fromArray_setNeedsUpdate,ZN.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class KN{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const s=e.tracks,r=s.length,o=new Array(r),a={endingStart:Vx,endingEnd:Vx};for(let t=0;t!==r;++t){const e=s[t].createInterpolant(null);o[t]=e,e.settings=a}this._interpolantSettings=a,this._interpolants=o,this._propertyBindings=new Array(r),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,s=i/n,r=n/i;t.warp(1,s,e),this.warp(r,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,s=i.time,r=this.timeScale;let o=this._timeScaleInterpolant;null===o&&(o=i._lendControlInterpolant(),this._timeScaleInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,a[1]=s+n,l[0]=t/r,l[1]=e/r,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const s=this._startTime;if(null!==s){const i=(t-s)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const r=this._updateTime(e),o=this._updateWeight(t);if(o>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case 2501:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(r),e[n].accumulateAdditive(o);break;case Wx:default:for(let n=0,s=t.length;n!==s;++n)t[n].evaluate(r),e[n].accumulate(i,o)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,s=this._loopCount;const r=2202===n;if(0===t)return-1===s?i:r&&1==(1&s)?e-i:i;if(2200===n){-1===s&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:\\\\\\\"finished\\\\\\\",action:this,direction:t<0?-1:1})}}else{if(-1===s&&(t>=0?(s=0,this._setEndings(!0,0===this.repetitions,r)):this._setEndings(0===this.repetitions,!0,r)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,s+=Math.abs(n);const o=this.repetitions-s;if(o<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:\\\\\\\"finished\\\\\\\",action:this,direction:t>0?1:-1});else{if(1===o){const e=t<0;this._setEndings(e,!e,r)}else this._setEndings(!1,!1,r);this._loopCount=s,this.time=i,this._mixer.dispatchEvent({type:\\\\\\\"loop\\\\\\\",action:this,loopDelta:n})}}else this.time=i;if(r&&1==(1&s))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=Hx,i.endingEnd=Hx):(i.endingStart=t?this.zeroSlopeAtStart?Hx:Vx:jx,i.endingEnd=e?this.zeroSlopeAtEnd?Hx:Vx:jx)}_scheduleFading(t,e,n){const i=this._mixer,s=i.time;let r=this._weightInterpolant;null===r&&(r=i._lendControlInterpolant(),this._weightInterpolant=r);const o=r.parameterPositions,a=r.sampleValues;return o[0]=s,a[0]=e,o[1]=s+t,a[1]=n,this}}(class extends tb{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,s=i.length,r=t._propertyBindings,o=t._interpolants,a=n.uuid,l=this._bindingsByRootAndName;let c=l[a];void 0===c&&(c={},l[a]=c);for(let t=0;t!==s;++t){const s=i[t],l=s.name;let h=c[l];if(void 0!==h)r[t]=h;else{if(h=r[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,a,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new UN(ZN.create(n,l,i),s.ValueTypeName,s.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,a,l),r[t]=h}o[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,s=this._actionsByClip;let r=s[e];if(void 0===r)r={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,s[e]=r;else{const e=r.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),r.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const s=t._clip.uuid,r=this._actionsByClip,o=r[s],a=o.knownActions,l=a[a.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,a[c]=l,a.pop(),t._byClipCacheIndex=null;delete o.actionByRoot[(t._localRoot||this._root).uuid],0===a.length&&delete r[s],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,s=this._bindings;let r=i[e];void 0===r&&(r={},i[e]=r),r[n]=t,t._cacheIndex=s.length,s.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,s=n.path,r=this._bindingsByRootAndName,o=r[i],a=e[e.length-1],l=t._cacheIndex;a._cacheIndex=l,e[l]=a,e.pop(),delete o[s],0===Object.keys(o).length&&delete r[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new YC(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,s=e[i];t.__cacheIndex=i,e[i]=t,s.__cacheIndex=n,e[n]=s}clipAction(t,e,n){const i=e||this._root,s=i.uuid;let r=\\\\\\\"string\\\\\\\"==typeof t?sN.findByName(i,t):t;const o=null!==r?r.uuid:t,a=this._actionsByClip[o];let l=null;if(void 0===n&&(n=null!==r?r.blendMode:Wx),void 0!==a){const t=a.actionByRoot[s];if(void 0!==t&&t.blendMode===n)return t;l=a.knownActions[0],null===r&&(r=l._clip)}if(null===r)return null;const c=new KN(this,r,e,n);return this._bindAction(c,l),this._addInactiveAction(c,o,s),c}existingAction(t,e){const n=e||this._root,i=n.uuid,s=\\\\\\\"string\\\\\\\"==typeof t?sN.findByName(n,t):t,r=s?s.uuid:t,o=this._actionsByClip[r];return void 0!==o&&o.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,s=Math.sign(t),r=this._accuIndex^=1;for(let o=0;o!==n;++o){e[o]._update(i,t,s,r)}const o=this._bindings,a=this._nActiveBindings;for(let t=0;t!==a;++t)o[t].apply(r);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,s=i[n];if(void 0!==s){const t=s.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const s=i._cacheIndex,r=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,r._cacheIndex=s,e[s]=r,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const t in i){const e=i[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}).prototype._controlInterpolantsResultBuffer=new Float32Array(1);class QN{constructor(t){\\\\\\\"string\\\\\\\"==typeof t&&(console.warn(\\\\\\\"THREE.Uniform: Type parameter is no longer needed.\\\\\\\"),t=arguments[1]),this.value=t}clone(){return new QN(void 0===this.value.clone?this.value:this.value.clone())}}(class extends kE{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}).prototype.isInstancedInterleavedBuffer=!0;const tL=new _b;class eL{constructor(t=new _b(1/0,1/0),e=new _b(-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=tL.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return tL.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}eL.prototype.isBox2=!0;const nL=new Sb,iL=new Sb;class sL{constructor(t=new Sb,e=new Sb){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){nL.subVectors(t,this.start),iL.subVectors(this.end,this.start);const n=iL.dot(iL);let i=iL.dot(nL)/n;return e&&(i=ab(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}(class extends Nw{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}).prototype.isImmediateRenderObject=!0;const rL=new Sb,oL=new sw,aL=new sw;function lL(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,lL(t.children[n]));return e}const cL=new Float32Array(1);new Int32Array(cL.buffer);BS.create=function(t,e){return console.log(\\\\\\\"THREE.Curve.create() has been deprecated\\\\\\\"),t.prototype=Object.create(BS.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},iC.prototype.fromPoints=function(t){return console.warn(\\\\\\\"THREE.Path: .fromPoints() has been renamed to .setFromPoints().\\\\\\\"),this.setFromPoints(t)},class extends SS{constructor(t=10,e=10,n=4473924,i=8947848){n=new $w(n),i=new $w(i);const s=e/2,r=t/e,o=t/2,a=[],l=[];for(let t=0,c=0,h=-o;t<=e;t++,h+=r){a.push(-o,0,h,o,0,h),a.push(h,0,-o,h,0,o);const e=t===s?n:i;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new hT;c.setAttribute(\\\\\\\"position\\\\\\\",new nT(a,3)),c.setAttribute(\\\\\\\"color\\\\\\\",new nT(l,3));super(c,new vS({vertexColors:!0,toneMapped:!1})),this.type=\\\\\\\"GridHelper\\\\\\\"}}.prototype.setColors=function(){console.error(\\\\\\\"THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.\\\\\\\")},class extends SS{constructor(t){const e=lL(t),n=new hT,i=[],s=[],r=new $w(0,0,1),o=new $w(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),s.push(r.r,r.g,r.b),s.push(o.r,o.g,o.b))}n.setAttribute(\\\\\\\"position\\\\\\\",new nT(i,3)),n.setAttribute(\\\\\\\"color\\\\\\\",new nT(s,3));super(n,new vS({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type=\\\\\\\"SkeletonHelper\\\\\\\",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute(\\\\\\\"position\\\\\\\");aL.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const s=e[t];s.parent&&s.parent.isBone&&(oL.multiplyMatrices(aL,s.matrixWorld),rL.setFromMatrixPosition(oL),i.setXYZ(n,rL.x,rL.y,rL.z),oL.multiplyMatrices(aL,s.parent.matrixWorld),rL.setFromMatrixPosition(oL),i.setXYZ(n+1,rL.x,rL.y,rL.z),n+=2)}n.getAttribute(\\\\\\\"position\\\\\\\").needsUpdate=!0,super.updateMatrixWorld(t)}}.prototype.update=function(){console.error(\\\\\\\"THREE.SkeletonHelper: update() no longer needs to be called.\\\\\\\")},cN.prototype.extractUrlBase=function(t){return console.warn(\\\\\\\"THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.\\\\\\\"),IN.extractUrlBase(t)},cN.Handlers={add:function(){console.error(\\\\\\\"THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.\\\\\\\")},get:function(){console.error(\\\\\\\"THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.\\\\\\\")}},eL.prototype.center=function(t){return console.warn(\\\\\\\"THREE.Box2: .center() has been renamed to .getCenter().\\\\\\\"),this.getCenter(t)},eL.prototype.empty=function(){return console.warn(\\\\\\\"THREE.Box2: .empty() has been renamed to .isEmpty().\\\\\\\"),this.isEmpty()},eL.prototype.isIntersectionBox=function(t){return console.warn(\\\\\\\"THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().\\\\\\\"),this.intersectsBox(t)},eL.prototype.size=function(t){return console.warn(\\\\\\\"THREE.Box2: .size() has been renamed to .getSize().\\\\\\\"),this.getSize(t)},Lb.prototype.center=function(t){return console.warn(\\\\\\\"THREE.Box3: .center() has been renamed to .getCenter().\\\\\\\"),this.getCenter(t)},Lb.prototype.empty=function(){return console.warn(\\\\\\\"THREE.Box3: .empty() has been renamed to .isEmpty().\\\\\\\"),this.isEmpty()},Lb.prototype.isIntersectionBox=function(t){return console.warn(\\\\\\\"THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().\\\\\\\"),this.intersectsBox(t)},Lb.prototype.isIntersectionSphere=function(t){return console.warn(\\\\\\\"THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().\\\\\\\"),this.intersectsSphere(t)},Lb.prototype.size=function(t){return console.warn(\\\\\\\"THREE.Box3: .size() has been renamed to .getSize().\\\\\\\"),this.getSize(t)},$b.prototype.empty=function(){return console.warn(\\\\\\\"THREE.Sphere: .empty() has been renamed to .isEmpty().\\\\\\\"),this.isEmpty()},XT.prototype.setFromMatrix=function(t){return console.warn(\\\\\\\"THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().\\\\\\\"),this.setFromProjectionMatrix(t)},sL.prototype.center=function(t){return console.warn(\\\\\\\"THREE.Line3: .center() has been renamed to .getCenter().\\\\\\\"),this.getCenter(t)},mb.prototype.flattenToArrayOffset=function(t,e){return console.warn(\\\\\\\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\\\\\\\"),this.toArray(t,e)},mb.prototype.multiplyVector3=function(t){return console.warn(\\\\\\\"THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.\\\\\\\"),t.applyMatrix3(this)},mb.prototype.multiplyVector3Array=function(){console.error(\\\\\\\"THREE.Matrix3: .multiplyVector3Array() has been removed.\\\\\\\")},mb.prototype.applyToBufferAttribute=function(t){return console.warn(\\\\\\\"THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.\\\\\\\"),t.applyMatrix3(this)},mb.prototype.applyToVector3Array=function(){console.error(\\\\\\\"THREE.Matrix3: .applyToVector3Array() has been removed.\\\\\\\")},mb.prototype.getInverse=function(t){return console.warn(\\\\\\\"THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\\\\\\\"),this.copy(t).invert()},sw.prototype.extractPosition=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().\\\\\\\"),this.copyPosition(t)},sw.prototype.flattenToArrayOffset=function(t,e){return console.warn(\\\\\\\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\\\\\\\"),this.toArray(t,e)},sw.prototype.getPosition=function(){return console.warn(\\\\\\\"THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.\\\\\\\"),(new Sb).setFromMatrixColumn(this,3)},sw.prototype.setRotationFromQuaternion=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().\\\\\\\"),this.makeRotationFromQuaternion(t)},sw.prototype.multiplyToArray=function(){console.warn(\\\\\\\"THREE.Matrix4: .multiplyToArray() has been removed.\\\\\\\")},sw.prototype.multiplyVector3=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.\\\\\\\"),t.applyMatrix4(this)},sw.prototype.multiplyVector4=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.\\\\\\\"),t.applyMatrix4(this)},sw.prototype.multiplyVector3Array=function(){console.error(\\\\\\\"THREE.Matrix4: .multiplyVector3Array() has been removed.\\\\\\\")},sw.prototype.rotateAxis=function(t){console.warn(\\\\\\\"THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.\\\\\\\"),t.transformDirection(this)},sw.prototype.crossVector=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.\\\\\\\"),t.applyMatrix4(this)},sw.prototype.translate=function(){console.error(\\\\\\\"THREE.Matrix4: .translate() has been removed.\\\\\\\")},sw.prototype.rotateX=function(){console.error(\\\\\\\"THREE.Matrix4: .rotateX() has been removed.\\\\\\\")},sw.prototype.rotateY=function(){console.error(\\\\\\\"THREE.Matrix4: .rotateY() has been removed.\\\\\\\")},sw.prototype.rotateZ=function(){console.error(\\\\\\\"THREE.Matrix4: .rotateZ() has been removed.\\\\\\\")},sw.prototype.rotateByAxis=function(){console.error(\\\\\\\"THREE.Matrix4: .rotateByAxis() has been removed.\\\\\\\")},sw.prototype.applyToBufferAttribute=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.\\\\\\\"),t.applyMatrix4(this)},sw.prototype.applyToVector3Array=function(){console.error(\\\\\\\"THREE.Matrix4: .applyToVector3Array() has been removed.\\\\\\\")},sw.prototype.makeFrustum=function(t,e,n,i,s,r){return console.warn(\\\\\\\"THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.\\\\\\\"),this.makePerspective(t,e,i,n,s,r)},sw.prototype.getInverse=function(t){return console.warn(\\\\\\\"THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\\\\\\\"),this.copy(t).invert()},jT.prototype.isIntersectionLine=function(t){return console.warn(\\\\\\\"THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().\\\\\\\"),this.intersectsLine(t)},Eb.prototype.multiplyVector3=function(t){return console.warn(\\\\\\\"THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.\\\\\\\"),t.applyQuaternion(this)},Eb.prototype.inverse=function(){return console.warn(\\\\\\\"THREE.Quaternion: .inverse() has been renamed to invert().\\\\\\\"),this.invert()},iw.prototype.isIntersectionBox=function(t){return console.warn(\\\\\\\"THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().\\\\\\\"),this.intersectsBox(t)},iw.prototype.isIntersectionPlane=function(t){return console.warn(\\\\\\\"THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().\\\\\\\"),this.intersectsPlane(t)},iw.prototype.isIntersectionSphere=function(t){return console.warn(\\\\\\\"THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().\\\\\\\"),this.intersectsSphere(t)},Uw.prototype.area=function(){return console.warn(\\\\\\\"THREE.Triangle: .area() has been renamed to .getArea().\\\\\\\"),this.getArea()},Uw.prototype.barycoordFromPoint=function(t,e){return console.warn(\\\\\\\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\\\\\\\"),this.getBarycoord(t,e)},Uw.prototype.midpoint=function(t){return console.warn(\\\\\\\"THREE.Triangle: .midpoint() has been renamed to .getMidpoint().\\\\\\\"),this.getMidpoint(t)},Uw.prototypenormal=function(t){return console.warn(\\\\\\\"THREE.Triangle: .normal() has been renamed to .getNormal().\\\\\\\"),this.getNormal(t)},Uw.prototype.plane=function(t){return console.warn(\\\\\\\"THREE.Triangle: .plane() has been renamed to .getPlane().\\\\\\\"),this.getPlane(t)},Uw.barycoordFromPoint=function(t,e,n,i,s){return console.warn(\\\\\\\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\\\\\\\"),Uw.getBarycoord(t,e,n,i,s)},Uw.normal=function(t,e,n,i){return console.warn(\\\\\\\"THREE.Triangle: .normal() has been renamed to .getNormal().\\\\\\\"),Uw.getNormal(t,e,n,i)},sC.prototype.extractAllPoints=function(t){return console.warn(\\\\\\\"THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.\\\\\\\"),this.extractPoints(t)},sC.prototype.extrude=function(t){return console.warn(\\\\\\\"THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.\\\\\\\"),new RC(this,t)},sC.prototype.makeGeometry=function(t){return console.warn(\\\\\\\"THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.\\\\\\\"),new FC(this,t)},_b.prototype.fromAttribute=function(t,e,n){return console.warn(\\\\\\\"THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().\\\\\\\"),this.fromBufferAttribute(t,e,n)},_b.prototype.distanceToManhattan=function(t){return console.warn(\\\\\\\"THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\\\\\\\"),this.manhattanDistanceTo(t)},_b.prototype.lengthManhattan=function(){return console.warn(\\\\\\\"THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().\\\\\\\"),this.manhattanLength()},Sb.prototype.setEulerFromRotationMatrix=function(){console.error(\\\\\\\"THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.\\\\\\\")},Sb.prototype.setEulerFromQuaternion=function(){console.error(\\\\\\\"THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.\\\\\\\")},Sb.prototype.getPositionFromMatrix=function(t){return console.warn(\\\\\\\"THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().\\\\\\\"),this.setFromMatrixPosition(t)},Sb.prototype.getScaleFromMatrix=function(t){return console.warn(\\\\\\\"THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().\\\\\\\"),this.setFromMatrixScale(t)},Sb.prototype.getColumnFromMatrix=function(t,e){return console.warn(\\\\\\\"THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().\\\\\\\"),this.setFromMatrixColumn(e,t)},Sb.prototype.applyProjection=function(t){return console.warn(\\\\\\\"THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.\\\\\\\"),this.applyMatrix4(t)},Sb.prototype.fromAttribute=function(t,e,n){return console.warn(\\\\\\\"THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().\\\\\\\"),this.fromBufferAttribute(t,e,n)},Sb.prototype.distanceToManhattan=function(t){return console.warn(\\\\\\\"THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\\\\\\\"),this.manhattanDistanceTo(t)},Sb.prototype.lengthManhattan=function(){return console.warn(\\\\\\\"THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().\\\\\\\"),this.manhattanLength()},Tb.prototype.fromAttribute=function(t,e,n){return console.warn(\\\\\\\"THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().\\\\\\\"),this.fromBufferAttribute(t,e,n)},Tb.prototype.lengthManhattan=function(){return console.warn(\\\\\\\"THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().\\\\\\\"),this.manhattanLength()},Nw.prototype.getChildByName=function(t){return console.warn(\\\\\\\"THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().\\\\\\\"),this.getObjectByName(t)},Nw.prototype.renderDepth=function(){console.warn(\\\\\\\"THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.\\\\\\\")},Nw.prototype.translate=function(t,e){return console.warn(\\\\\\\"THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.\\\\\\\"),this.translateOnAxis(e,t)},Nw.prototype.getWorldRotation=function(){console.error(\\\\\\\"THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.\\\\\\\")},Nw.prototype.applyMatrix=function(t){return console.warn(\\\\\\\"THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().\\\\\\\"),this.applyMatrix4(t)},Object.defineProperties(Nw.prototype,{eulerOrder:{get:function(){return console.warn(\\\\\\\"THREE.Object3D: .eulerOrder is now .rotation.order.\\\\\\\"),this.rotation.order},set:function(t){console.warn(\\\\\\\"THREE.Object3D: .eulerOrder is now .rotation.order.\\\\\\\"),this.rotation.order=t}},useQuaternion:{get:function(){console.warn(\\\\\\\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\\\\\\\")}}}),CT.prototype.setDrawMode=function(){console.error(\\\\\\\"THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\\\\\\\")},Object.defineProperties(CT.prototype,{drawMode:{get:function(){return console.error(\\\\\\\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.\\\\\\\"),0},set:function(){console.error(\\\\\\\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\\\\\\\")}}}),cS.prototype.initBones=function(){console.error(\\\\\\\"THREE.SkinnedMesh: initBones() has been removed.\\\\\\\")},DT.prototype.setLens=function(t,e){console.warn(\\\\\\\"THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.\\\\\\\"),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(mN.prototype,{onlyShadow:{set:function(){console.warn(\\\\\\\"THREE.Light: .onlyShadow has been removed.\\\\\\\")}},shadowCameraFov:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraFov is now .shadow.camera.fov.\\\\\\\"),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraLeft is now .shadow.camera.left.\\\\\\\"),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraRight is now .shadow.camera.right.\\\\\\\"),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraTop is now .shadow.camera.top.\\\\\\\"),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.\\\\\\\"),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraNear is now .shadow.camera.near.\\\\\\\"),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowCameraFar is now .shadow.camera.far.\\\\\\\"),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn(\\\\\\\"THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.\\\\\\\")}},shadowBias:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowBias is now .shadow.bias.\\\\\\\"),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn(\\\\\\\"THREE.Light: .shadowDarkness has been removed.\\\\\\\")}},shadowMapWidth:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.\\\\\\\"),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn(\\\\\\\"THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.\\\\\\\"),this.shadow.mapSize.height=t}}}),Object.defineProperties(Qw.prototype,{length:{get:function(){return console.warn(\\\\\\\"THREE.BufferAttribute: .length has been deprecated. Use .count instead.\\\\\\\"),this.array.length}},dynamic:{get:function(){return console.warn(\\\\\\\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\\\\\\\"),this.usage===Kx},set:function(){console.warn(\\\\\\\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\\\\\\\"),this.setUsage(Kx)}}}),Qw.prototype.setDynamic=function(t){return console.warn(\\\\\\\"THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.\\\\\\\"),this.setUsage(!0===t?Kx:Zx),this},Qw.prototype.copyIndicesArray=function(){console.error(\\\\\\\"THREE.BufferAttribute: .copyIndicesArray() has been removed.\\\\\\\")},Qw.prototype.setArray=function(){console.error(\\\\\\\"THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\\\\\\\")},hT.prototype.addIndex=function(t){console.warn(\\\\\\\"THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().\\\\\\\"),this.setIndex(t)},hT.prototype.addAttribute=function(t,e){return console.warn(\\\\\\\"THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().\\\\\\\"),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?\\\\\\\"index\\\\\\\"===t?(console.warn(\\\\\\\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\\\\\\\"),this.setIndex(e),this):this.setAttribute(t,e):(console.warn(\\\\\\\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\\\\\\\"),this.setAttribute(t,new Qw(arguments[1],arguments[2])))},hT.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn(\\\\\\\"THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.\\\\\\\"),console.warn(\\\\\\\"THREE.BufferGeometry: .addDrawCall() is now .addGroup().\\\\\\\"),this.addGroup(t,e)},hT.prototype.clearDrawCalls=function(){console.warn(\\\\\\\"THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().\\\\\\\"),this.clearGroups()},hT.prototype.computeOffsets=function(){console.warn(\\\\\\\"THREE.BufferGeometry: .computeOffsets() has been removed.\\\\\\\")},hT.prototype.removeAttribute=function(t){return console.warn(\\\\\\\"THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().\\\\\\\"),this.deleteAttribute(t)},hT.prototype.applyMatrix=function(t){return console.warn(\\\\\\\"THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().\\\\\\\"),this.applyMatrix4(t)},Object.defineProperties(hT.prototype,{drawcalls:{get:function(){return console.error(\\\\\\\"THREE.BufferGeometry: .drawcalls has been renamed to .groups.\\\\\\\"),this.groups}},offsets:{get:function(){return console.warn(\\\\\\\"THREE.BufferGeometry: .offsets has been renamed to .groups.\\\\\\\"),this.groups}}}),kE.prototype.setDynamic=function(t){return console.warn(\\\\\\\"THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.\\\\\\\"),this.setUsage(!0===t?Kx:Zx),this},kE.prototype.setArray=function(){console.error(\\\\\\\"THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\\\\\\\")},RC.prototype.getArrays=function(){console.error(\\\\\\\"THREE.ExtrudeGeometry: .getArrays() has been removed.\\\\\\\")},RC.prototype.addShapeList=function(){console.error(\\\\\\\"THREE.ExtrudeGeometry: .addShapeList() has been removed.\\\\\\\")},RC.prototype.addShape=function(){console.error(\\\\\\\"THREE.ExtrudeGeometry: .addShape() has been removed.\\\\\\\")},zE.prototype.dispose=function(){console.error(\\\\\\\"THREE.Scene: .dispose() has been removed.\\\\\\\")},QN.prototype.onUpdate=function(){return console.warn(\\\\\\\"THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.\\\\\\\"),this},Object.defineProperties(Vw.prototype,{wrapAround:{get:function(){console.warn(\\\\\\\"THREE.Material: .wrapAround has been removed.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.Material: .wrapAround has been removed.\\\\\\\")}},overdraw:{get:function(){console.warn(\\\\\\\"THREE.Material: .overdraw has been removed.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.Material: .overdraw has been removed.\\\\\\\")}},wrapRGB:{get:function(){return console.warn(\\\\\\\"THREE.Material: .wrapRGB has been removed.\\\\\\\"),new $w}},shading:{get:function(){console.error(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .shading has been removed. Use the boolean .flatShading instead.\\\\\\\")},set:function(t){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .shading has been removed. Use the boolean .flatShading instead.\\\\\\\"),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .stencilMask has been removed. Use .stencilFuncMask instead.\\\\\\\"),this.stencilFuncMask},set:function(t){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .stencilMask has been removed. Use .stencilFuncMask instead.\\\\\\\"),this.stencilFuncMask=t}},vertexTangents:{get:function(){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .vertexTangents has been removed.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.\\\\\\\"+this.type+\\\\\\\": .vertexTangents has been removed.\\\\\\\")}}}),Object.defineProperties(IT.prototype,{derivatives:{get:function(){return console.warn(\\\\\\\"THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\\\\\\\"),this.extensions.derivatives},set:function(t){console.warn(\\\\\\\"THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\\\\\\\"),this.extensions.derivatives=t}}}),FE.prototype.clearTarget=function(t,e,n,i){console.warn(\\\\\\\"THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.\\\\\\\"),this.setRenderTarget(t),this.clear(e,n,i)},FE.prototype.animate=function(t){console.warn(\\\\\\\"THREE.WebGLRenderer: .animate() is now .setAnimationLoop().\\\\\\\"),this.setAnimationLoop(t)},FE.prototype.getCurrentRenderTarget=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().\\\\\\\"),this.getRenderTarget()},FE.prototype.getMaxAnisotropy=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().\\\\\\\"),this.capabilities.getMaxAnisotropy()},FE.prototype.getPrecision=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.\\\\\\\"),this.capabilities.precision},FE.prototype.resetGLState=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .resetGLState() is now .state.reset().\\\\\\\"),this.state.reset()},FE.prototype.supportsFloatTextures=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).\\\\\\\"),this.extensions.get(\\\\\\\"OES_texture_float\\\\\\\")},FE.prototype.supportsHalfFloatTextures=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).\\\\\\\"),this.extensions.get(\\\\\\\"OES_texture_half_float\\\\\\\")},FE.prototype.supportsStandardDerivatives=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).\\\\\\\"),this.extensions.get(\\\\\\\"OES_standard_derivatives\\\\\\\")},FE.prototype.supportsCompressedTextureS3TC=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).\\\\\\\"),this.extensions.get(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\")},FE.prototype.supportsCompressedTexturePVRTC=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).\\\\\\\"),this.extensions.get(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\")},FE.prototype.supportsBlendMinMax=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).\\\\\\\"),this.extensions.get(\\\\\\\"EXT_blend_minmax\\\\\\\")},FE.prototype.supportsVertexTextures=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.\\\\\\\"),this.capabilities.vertexTextures},FE.prototype.supportsInstancedArrays=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).\\\\\\\"),this.extensions.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\")},FE.prototype.enableScissorTest=function(t){console.warn(\\\\\\\"THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().\\\\\\\"),this.setScissorTest(t)},FE.prototype.initMaterial=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .initMaterial() has been removed.\\\\\\\")},FE.prototype.addPrePlugin=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .addPrePlugin() has been removed.\\\\\\\")},FE.prototype.addPostPlugin=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .addPostPlugin() has been removed.\\\\\\\")},FE.prototype.updateShadowMap=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .updateShadowMap() has been removed.\\\\\\\")},FE.prototype.setFaceCulling=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .setFaceCulling() has been removed.\\\\\\\")},FE.prototype.allocTextureUnit=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .allocTextureUnit() has been removed.\\\\\\\")},FE.prototype.setTexture=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .setTexture() has been removed.\\\\\\\")},FE.prototype.setTexture2D=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .setTexture2D() has been removed.\\\\\\\")},FE.prototype.setTextureCube=function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .setTextureCube() has been removed.\\\\\\\")},FE.prototype.getActiveMipMapLevel=function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().\\\\\\\"),this.getActiveMipmapLevel()},Object.defineProperties(FE.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.\\\\\\\"),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.\\\\\\\"),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\\\\\\\")}},context:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.\\\\\\\"),this.getContext()}},vr:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .vr has been renamed to .xr\\\\\\\"),this.xr}},gammaInput:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\\\\\\\"),!1},set:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\\\\\\\")}},gammaOutput:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\\\\\\\"),!1},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\\\\\\\"),this.outputEncoding=!0===t?Xx:qx}},toneMappingWhitePoint:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\\\\\\\"),1},set:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\\\\\\\")}}}),Object.defineProperties(ME.prototype,{cullFace:{get:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\\\\\\\")}},renderReverseSided:{get:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\\\\\\\")}},renderSingleSided:{get:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\\\\\\\")},set:function(){console.warn(\\\\\\\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\\\\\\\")}}}),Object.defineProperties(Ab.prototype,{wrapS:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\\\\\\\"),this.texture.wrapS},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\\\\\\\"),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\\\\\\\"),this.texture.wrapT},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\\\\\\\"),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\\\\\\\"),this.texture.magFilter},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\\\\\\\"),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\\\\\\\"),this.texture.minFilter},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\\\\\\\"),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\\\\\\\"),this.texture.anisotropy},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\\\\\\\"),this.texture.anisotropy=t}},offset:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\\\\\\\"),this.texture.offset},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\\\\\\\"),this.texture.offset=t}},repeat:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\\\\\\\"),this.texture.repeat},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\\\\\\\"),this.texture.repeat=t}},format:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .format is now .texture.format.\\\\\\\"),this.texture.format},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .format is now .texture.format.\\\\\\\"),this.texture.format=t}},type:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .type is now .texture.type.\\\\\\\"),this.texture.type},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .type is now .texture.type.\\\\\\\"),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn(\\\\\\\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\\\\\\\"),this.texture.generateMipmaps},set:function(t){console.warn(\\\\\\\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\\\\\\\"),this.texture.generateMipmaps=t}}}),kN.prototype.load=function(t){console.warn(\\\\\\\"THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.\\\\\\\");const e=this;return(new zN).load(t,(function(t){e.setBuffer(t)})),this},zT.prototype.updateCubeMap=function(t,e){return console.warn(\\\\\\\"THREE.CubeCamera: .updateCubeMap() is now .update().\\\\\\\"),this.update(t,e)},zT.prototype.clear=function(t,e,n,i){return console.warn(\\\\\\\"THREE.CubeCamera: .clear() is now .renderTarget.clear().\\\\\\\"),this.renderTarget.clear(t,e,n,i)},yb.crossOrigin=void 0,yb.loadTexture=function(t,e,n,i){console.warn(\\\\\\\"THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.\\\\\\\");const s=new _N;s.setCrossOrigin(this.crossOrigin);const r=s.load(t,n,void 0,i);return e&&(r.mapping=e),r},yb.loadTextureCube=function(t,e,n,i){console.warn(\\\\\\\"THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.\\\\\\\");const s=new pN;s.setCrossOrigin(this.crossOrigin);const r=s.load(t,n,void 0,i);return e&&(r.mapping=e),r},yb.loadCompressedTexture=function(){console.error(\\\\\\\"THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.\\\\\\\")},yb.loadCompressedTextureCube=function(){console.error(\\\\\\\"THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.\\\\\\\")};\\\\\\\"undefined\\\\\\\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"register\\\\\\\",{detail:{revision:\\\\\\\"133\\\\\\\"}})),\\\\\\\"undefined\\\\\\\"!=typeof window&&(window.__THREE__?console.warn(\\\\\\\"WARNING: Multiple instances of Three.js being imported.\\\\\\\"):window.__THREE__=\\\\\\\"133\\\\\\\");const hL=new Sb,uL=new Sb,dL=new Sb;class pL{constructor(t=new Sb(0,0,0),e=new Sb(0,1,0),n=1){this.start=t,this.end=e,this.radius=n}clone(){return new pL(this.start.clone(),this.end.clone(),this.radius)}set(t,e,n){this.start.copy(t),this.end.copy(e),this.radius=n}copy(t){this.start.copy(t.start),this.end.copy(t.end),this.radius=t.radius}getCenter(t){return t.copy(this.end).add(this.start).multiplyScalar(.5)}translate(t){this.start.add(t),this.end.add(t)}checkAABBAxis(t,e,n,i,s,r,o,a,l){return(s-t<l||s-n<l)&&(t-r<l||n-r<l)&&(o-e<l||o-i<l)&&(e-a<l||i-a<l)}intersectsBox(t){return this.checkAABBAxis(this.start.x,this.start.y,this.end.x,this.end.y,t.min.x,t.max.x,t.min.y,t.max.y,this.radius)&&this.checkAABBAxis(this.start.x,this.start.z,this.end.x,this.end.z,t.min.x,t.max.x,t.min.z,t.max.z,this.radius)&&this.checkAABBAxis(this.start.y,this.start.z,this.end.y,this.end.z,t.min.y,t.max.y,t.min.z,t.max.z,this.radius)}lineLineMinimumPoints(t,e){const n=hL.copy(t.end).sub(t.start),i=uL.copy(e.end).sub(e.start),s=dL.copy(e.start).sub(t.start),r=n.dot(i),o=n.dot(n),a=i.dot(i),l=i.dot(s),c=n.dot(s);let h,u;const d=o*a-r*r;if(Math.abs(d)<1e-10){const t=-l/a,e=(r-l)/a;Math.abs(t-.5)<Math.abs(e-.5)?(h=0,u=t):(h=1,u=e)}else h=(l*r+c*a)/d,u=(h*r-l)/a;u=Math.max(0,Math.min(1,u)),h=Math.max(0,Math.min(1,h));return[n.multiplyScalar(h).add(t.start),i.multiplyScalar(u).add(e.start)]}}const _L=new Sb,mL=new Sb,fL=new jT,gL=new sL,vL=new sL,yL=new $b,xL=new pL;class bL{constructor(t){this.triangles=[],this.box=t,this.subTrees=[]}addTriangle(t){return this.bounds||(this.bounds=new Lb),this.bounds.min.x=Math.min(this.bounds.min.x,t.a.x,t.b.x,t.c.x),this.bounds.min.y=Math.min(this.bounds.min.y,t.a.y,t.b.y,t.c.y),this.bounds.min.z=Math.min(this.bounds.min.z,t.a.z,t.b.z,t.c.z),this.bounds.max.x=Math.max(this.bounds.max.x,t.a.x,t.b.x,t.c.x),this.bounds.max.y=Math.max(this.bounds.max.y,t.a.y,t.b.y,t.c.y),this.bounds.max.z=Math.max(this.bounds.max.z,t.a.z,t.b.z,t.c.z),this.triangles.push(t),this}calcBox(){return this.box=this.bounds.clone(),this.box.min.x-=.01,this.box.min.y-=.01,this.box.min.z-=.01,this}split(t){if(!this.box)return;const e=[],n=mL.copy(this.box.max).sub(this.box.min).multiplyScalar(.5);for(let t=0;t<2;t++)for(let i=0;i<2;i++)for(let s=0;s<2;s++){const r=new Lb,o=_L.set(t,i,s);r.min.copy(this.box.min).add(o.multiply(n)),r.max.copy(r.min).add(n),e.push(new bL(r))}let i;for(;i=this.triangles.pop();)for(let t=0;t<e.length;t++)e[t].box.intersectsTriangle(i)&&e[t].triangles.push(i);for(let n=0;n<e.length;n++){const i=e[n].triangles.length;i>8&&t<16&&e[n].split(t+1),0!==i&&this.subTrees.push(e[n])}return this}build(){return this.calcBox(),this.split(0),this}getRayTriangles(t,e){for(let n=0;n<this.subTrees.length;n++){const i=this.subTrees[n];if(t.intersectsBox(i.box))if(i.triangles.length>0)for(let t=0;t<i.triangles.length;t++)-1===e.indexOf(i.triangles[t])&&e.push(i.triangles[t]);else i.getRayTriangles(t,e)}return e}triangleCapsuleIntersect(t,e){e.getPlane(fL);const n=fL.distanceToPoint(t.start)-t.radius,i=fL.distanceToPoint(t.end)-t.radius;if(n>0&&i>0||n<-t.radius&&i<-t.radius)return!1;const s=Math.abs(n/(Math.abs(n)+Math.abs(i))),r=_L.copy(t.start).lerp(t.end,s);if(e.containsPoint(r))return{normal:fL.normal.clone(),point:r.clone(),depth:Math.abs(Math.min(n,i))};const o=t.radius*t.radius,a=gL.set(t.start,t.end),l=[[e.a,e.b],[e.b,e.c],[e.c,e.a]];for(let e=0;e<l.length;e++){const n=vL.set(l[e][0],l[e][1]),[i,s]=t.lineLineMinimumPoints(a,n);if(i.distanceToSquared(s)<o)return{normal:i.clone().sub(s).normalize(),point:s.clone(),depth:t.radius-i.distanceTo(s)}}return!1}triangleSphereIntersect(t,e){if(e.getPlane(fL),!t.intersectsPlane(fL))return!1;const n=Math.abs(fL.distanceToSphere(t)),i=t.radius*t.radius-n*n,s=fL.projectPoint(t.center,_L);if(e.containsPoint(t.center))return{normal:fL.normal.clone(),point:s.clone(),depth:Math.abs(fL.distanceToSphere(t))};const r=[[e.a,e.b],[e.b,e.c],[e.c,e.a]];for(let e=0;e<r.length;e++){gL.set(r[e][0],r[e][1]),gL.closestPointToPoint(s,!0,mL);const n=mL.distanceToSquared(t.center);if(n<i)return{normal:t.center.clone().sub(mL).normalize(),point:mL.clone(),depth:t.radius-Math.sqrt(n)}}return!1}getSphereTriangles(t,e){for(let n=0;n<this.subTrees.length;n++){const i=this.subTrees[n];if(t.intersectsBox(i.box))if(i.triangles.length>0)for(let t=0;t<i.triangles.length;t++)-1===e.indexOf(i.triangles[t])&&e.push(i.triangles[t]);else i.getSphereTriangles(t,e)}}getCapsuleTriangles(t,e){for(let n=0;n<this.subTrees.length;n++){const i=this.subTrees[n];if(t.intersectsBox(i.box))if(i.triangles.length>0)for(let t=0;t<i.triangles.length;t++)-1===e.indexOf(i.triangles[t])&&e.push(i.triangles[t]);else i.getCapsuleTriangles(t,e)}}sphereIntersect(t){yL.copy(t);const e=[];let n,i=!1;this.getSphereTriangles(t,e);for(let t=0;t<e.length;t++)(n=this.triangleSphereIntersect(yL,e[t]))&&(i=!0,yL.center.add(n.normal.multiplyScalar(n.depth)));if(i){const e=yL.center.clone().sub(t.center),n=e.length();return{normal:e.normalize(),depth:n}}return!1}capsuleIntersect(t){xL.copy(t);const e=[];let n,i=!1;this.getCapsuleTriangles(xL,e);for(let t=0;t<e.length;t++)(n=this.triangleCapsuleIntersect(xL,e[t]))&&(i=!0,xL.translate(n.normal.multiplyScalar(n.depth)));if(i){const e=xL.getCenter(new Sb).sub(t.getCenter(_L)),n=e.length();return{normal:e.normalize(),depth:n}}return!1}rayIntersect(t){if(0===t.direction.length())return;const e=[];let n,i,s=1e100;this.getRayTriangles(t,e);for(let r=0;r<e.length;r++){const o=t.intersectTriangle(e[r].a,e[r].b,e[r].c,!0,_L);if(o){const a=o.sub(t.origin).length();s>a&&(i=o.clone().add(t.origin),s=a,n=e[r])}}return s<1e100&&{distance:s,triangle:n,position:i}}fromGraphNode(t){return t.updateWorldMatrix(!0,!0),t.traverse((t=>{if(!0===t.isMesh){let e,n=!1;null!==t.geometry.index?(n=!0,e=t.geometry.toNonIndexed()):e=t.geometry;const i=e.getAttribute(\\\\\\\"position\\\\\\\");for(let e=0;e<i.count;e+=3){const n=(new Sb).fromBufferAttribute(i,e),s=(new Sb).fromBufferAttribute(i,e+1),r=(new Sb).fromBufferAttribute(i,e+2);n.applyMatrix4(t.matrixWorld),s.applyMatrix4(t.matrixWorld),r.applyMatrix4(t.matrixWorld),this.addTriangle(new Uw(n,s,r))}n&&e.dispose()}})),this.build(),this}}class wL{constructor(t){this._object=t,this._octree=new bL,this._capsuleHeight=new p.a(0,1,0),this._capsule=new pL(new p.a(0,.35,0),new p.a(0,1,0),.6),this._octree.fromGraphNode(this._object)}setCapsule(t){this._capsule.copy(t),this._capsuleHeight.copy(t.end).sub(t.start)}testPosition(t){return this._capsule.end.copy(t),this._capsule.start.copy(t).sub(this._capsuleHeight),this._octree.capsuleIntersect(this._capsule)}}class TL extends J.a{setCheckCollisions(t){if(t){let e;t.traverse((t=>{if(!e){const n=t;n.geometry&&(e=n)}})),e?this._playerCollisionController=new wL(e):console.error(\\\\\\\"no geo found in\\\\\\\",t)}else this._playerCollisionController=void 0}setCollisionCapsule(t){var e;null===(e=this._playerCollisionController)||void 0===e||e.setCapsule(t)}setJumpParams(t){}setGravity(t){}setPlayerMass(t){}}const AL={rotateSpeed:1,rotationRange:{min:.25*-Math.PI,max:.25*Math.PI}},ML={type:\\\\\\\"change\\\\\\\"},EL=new p.a,SL=new uy;class CL extends TL{constructor(t,e,n){super(),this._camera=t,this.domElement=e,this.player=n,this.translationData={direction:new p.a},this.rotationData={direction:{x:0,y:0}},this._boundMethods={onRotateStart:this._onRotateStart.bind(this),onRotateMove:this._onRotateMove.bind(this),onRotateEnd:this._onRotateEnd.bind(this),onTranslateStart:this._onTranslateStart.bind(this),onTranslateMove:this._onTranslateMove.bind(this),onTranslateEnd:this._onTranslateEnd.bind(this),onJump:this._onJump.bind(this),onRunToggle:this._onRunToggle.bind(this)},this._startCameraRotation=new ny.a,this._rotationSpeed=AL.rotateSpeed,this._rotationRange={min:AL.rotationRange.min,max:AL.rotationRange.max},this._azimuthalAngle=0,this.vLeft=new p.a,this.vRight=new p.a,this.vTop=new p.a,this.vBottom=new p.a,this.angleY=0,this.angleX=0,this._rotationStartPosition=new d.a,this._rotationMovePosition=new d.a,this._rotationDelta=new d.a,this._startCameraPosition=new p.a,this._translationStartPosition=new d.a,this._translationMovePosition=new d.a,this._translationDelta=new d.a,this._camera.rotation.order=\\\\\\\"ZYX\\\\\\\",this._translateDomElement=this._createTranslateDomElement(),this._translateDomElementRect=this._translateDomElement.getBoundingClientRect(),this._runDomElement=this._createRunDomElement(),this._jumpDomElement=this._createJumpDomElement(),this._addElements(),this._addEvents()}dispose(){this._removeEvents(),this._removeElements(),this.updateElements()}_createTranslateDomElement(){const t=this.domElement.getBoundingClientRect(),e=Math.min(t.width,t.height),n=Math.round(.4*e),i=Math.round(.1*e),s=document.createElement(\\\\\\\"div\\\\\\\");return s.id=\\\\\\\"MobileJoystickControls-translate\\\\\\\",s.style.width=`${n}px`,s.style.height=s.style.width,s.style.border=\\\\\\\"1px solid black\\\\\\\",s.style.borderRadius=`${n}px`,s.style.position=\\\\\\\"absolute\\\\\\\",s.style.bottom=`${i}px`,s.style.left=`${i}px`,s}_jumpDomElementSize(){const t=this.domElement.getBoundingClientRect(),e=Math.min(t.width,t.height);return{size:Math.round(.2*e),margin:Math.round(.05*e)}}_createJumpDomElement(){const{size:t,margin:e}=this._jumpDomElementSize(),n=document.createElement(\\\\\\\"div\\\\\\\");n.id=\\\\\\\"MobileJoystickControls-jump\\\\\\\",n.style.width=`${t}px`;const i=Math.floor(t);return n.style.height=`${i}px`,n.style.border=\\\\\\\"1px solid black\\\\\\\",n.style.position=\\\\\\\"absolute\\\\\\\",n.style.bottom=`${2*e+parseInt(this._runDomElement.style.height)}px`,n.style.right=`${e}px`,n.style.borderRadius=`${i}px`,n}_createRunDomElement(){const t=document.createElement(\\\\\\\"div\\\\\\\"),e=this.domElement.getBoundingClientRect(),n=Math.min(e.width,e.height),i=Math.round(.2*n),s=Math.round(.05*n);return t.id=\\\\\\\"MobileJoystickControls-run\\\\\\\",t.style.width=`${i}px`,t.style.height=`${Math.floor(i)}px`,t.style.border=\\\\\\\"1px solid black\\\\\\\",t.style.position=\\\\\\\"absolute\\\\\\\",t.style.bottom=`${s}px`,t.style.right=`${s}px`,t.style.translate=\\\\\\\"-50%\\\\\\\",t}_addElements(){var t,e,n;null===(t=this.domElement.parentElement)||void 0===t||t.append(this._translateDomElement),null===(e=this.domElement.parentElement)||void 0===e||e.append(this._jumpDomElement),null===(n=this.domElement.parentElement)||void 0===n||n.append(this._runDomElement)}_removeElements(){var t;const e=[this._translateDomElement,this._jumpDomElement,this._runDomElement];for(let n of e)null===(t=n.parentElement)||void 0===t||t.removeChild(n)}updateElements(){this.player&&(this._jumpDomElement.style.display=this.player.jumpAllowed?\\\\\\\"block\\\\\\\":\\\\\\\"none\\\\\\\",this._runDomElement.style.display=this.player.runAllowed?\\\\\\\"block\\\\\\\":\\\\\\\"none\\\\\\\")}_addEvents(){xv.disableContextMenu(),this.domElement.addEventListener(\\\\\\\"touchstart\\\\\\\",this._boundMethods.onRotateStart),this.domElement.addEventListener(\\\\\\\"touchmove\\\\\\\",this._boundMethods.onRotateMove),this.domElement.addEventListener(\\\\\\\"touchend\\\\\\\",this._boundMethods.onRotateEnd),this._translateDomElement.addEventListener(\\\\\\\"touchstart\\\\\\\",this._boundMethods.onTranslateStart),this._translateDomElement.addEventListener(\\\\\\\"touchmove\\\\\\\",this._boundMethods.onTranslateMove),this._translateDomElement.addEventListener(\\\\\\\"touchend\\\\\\\",this._boundMethods.onTranslateEnd),this._jumpDomElement.addEventListener(\\\\\\\"pointerdown\\\\\\\",this._boundMethods.onJump),this._runDomElement.addEventListener(\\\\\\\"pointerdown\\\\\\\",this._boundMethods.onRunToggle)}_removeEvents(){xv.reEstablishContextMenu(),this.domElement.removeEventListener(\\\\\\\"touchstart\\\\\\\",this._boundMethods.onRotateStart),this.domElement.removeEventListener(\\\\\\\"touchmove\\\\\\\",this._boundMethods.onRotateMove),this.domElement.removeEventListener(\\\\\\\"touchend\\\\\\\",this._boundMethods.onRotateEnd),this._translateDomElement.removeEventListener(\\\\\\\"touchstart\\\\\\\",this._boundMethods.onTranslateStart),this._translateDomElement.removeEventListener(\\\\\\\"touchmove\\\\\\\",this._boundMethods.onTranslateMove),this._translateDomElement.removeEventListener(\\\\\\\"touchend\\\\\\\",this._boundMethods.onTranslateEnd),this._jumpDomElement.removeEventListener(\\\\\\\"pointerdown\\\\\\\",this._boundMethods.onJump),this._runDomElement.removeEventListener(\\\\\\\"pointerdown\\\\\\\",this._boundMethods.onRunToggle)}setRotationSpeed(t){this._rotationSpeed=t}setRotationRange(t){this._rotationRange.min=t.min,this._rotationRange.max=t.max}_onRotateStart(t){this._startCameraRotation.copy(this._camera.rotation);const e=this._getTouch(t,this.domElement);e&&(this._rotationStartPosition.set(e.clientX,e.clientY),this.vLeft.set(-1,0,.5),this.vRight.set(1,0,.5),[this.vLeft,this.vRight].forEach((t=>{t.unproject(this._camera),this._camera.worldToLocal(t)})),this.angleY=this.vLeft.angleTo(this.vRight),this.vTop.set(0,1,.5),this.vBottom.set(0,-1,.5),[this.vTop,this.vBottom].forEach((t=>{t.unproject(this._camera),this._camera.worldToLocal(t)})),this.angleX=this.vTop.angleTo(this.vBottom))}_onRotateMove(t){const e=this._getTouch(t,this.domElement);e&&(this._rotationMovePosition.set(e.clientX,e.clientY),this._rotationDelta.copy(this._rotationMovePosition).sub(this._rotationStartPosition),this.rotationData.direction.x=this._rotationDelta.x/this.domElement.clientWidth,this.rotationData.direction.y=this._rotationDelta.y/this.domElement.clientHeight,this._rotateCamera(this.rotationData))}_onRotateEnd(){this.rotationData.direction.x=0,this.rotationData.direction.y=0}_rotateCamera(t){let e=this.angleY*t.direction.x*this._rotationSpeed;this._camera.rotation.y=this._startCameraRotation.y+-e;let n=this.angleX*t.direction.y*this._rotationSpeed;this._camera.rotation.x=or.clamp(this._startCameraRotation.x+-n,this._rotationRange.min,this._rotationRange.max),this._computeAzimuthalAngle(),this.dispatchEvent(ML)}_computeAzimuthalAngle(){this._camera.updateMatrixWorld(),EL.set(0,0,1),this._camera.localToWorld(EL),EL.sub(this._camera.position),SL.setFromVector3(EL),this._azimuthalAngle=SL.theta}_onTranslateStart(t){this._startCameraPosition.copy(this._camera.position);if(!this._getTouch(t,this._translateDomElement))return;this._translateDomElementRect=this._translateDomElement.getBoundingClientRect();const e=this._translateDomElementRect.left+.5*this._translateDomElementRect.width,n=this._translateDomElementRect.top+.5*this._translateDomElementRect.height;this._translationStartPosition.set(e,n)}_onTranslateMove(t){const e=this._getTouch(t,this._translateDomElement);e&&(this._translationMovePosition.set(e.clientX,e.clientY),this._translationDelta.copy(this._translationMovePosition).sub(this._translationStartPosition),this.translationData.direction.x=this._translationDelta.x/this._translateDomElementRect.width*.5,this.translationData.direction.z=-this._translationDelta.y/this._translateDomElementRect.height*.5,this._updatePlayerTranslate(),this.dispatchEvent(ML))}_onTranslateEnd(){this.translationData.direction.x=0,this.translationData.direction.z=0,this._updatePlayerTranslate()}_updatePlayerTranslate(){if(!this.player)return;const t=this.translationData.direction;this.player.setForward(!1),this.player.setBackward(!1),this.player.setLeft(!1),this.player.setRight(!1);const e=Math.abs(t.x),n=Math.abs(t.z),i=n-e;function s(e){t.z>0&&e.setForward(!0),t.z<0&&e.setBackward(!0)}function r(e){t.x>0&&e.setRight(!0),t.x<0&&e.setLeft(!0)}i>0?(s(this.player),i<.5*n&&r(this.player)):(r(this.player),i<.5*e&&s(this.player))}_onJump(){var t;null===(t=this.player)||void 0===t||t.jump()}_onRunToggle(){if(!this.player)return;const t=this.player.running();this.player.setRun(!t);const e=this.player.running()?3:1;this._runDomElement.style.border=`${e}px solid black`}update(t){this.player&&(this.player.setAzimuthalAngle(this._azimuthalAngle),this.player.update(t))}_getTouch(t,e){for(let n=0;n<t.touches.length;n++){const i=t.touches[n];if(i.target===e)return i}}}const NL=\\\\\\\"start\\\\\\\",LL=\\\\\\\"change\\\\\\\",OL=\\\\\\\"end\\\\\\\";function PL(){return{cook:!1,callback:t=>{IL.PARAM_CALLBACK_updatePlayerParams(t)}}}const RL=new class extends ua{constructor(){super(...arguments),this.main=ha.FOLDER(),this.colliderObject=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.SOP},dependentOnFoundNode:!1,callback:t=>{IL.PARAM_CALLBACK_updateCollider(t)}}),this.capsuleRadius=ha.FLOAT(.5,{range:[0,1],rangeLocked:[!0,!1],...PL()}),this.capsuleHeight=ha.FLOAT(1,{range:[0,2],rangeLocked:[!0,!1],...PL()}),this.physics=ha.FOLDER(),this.physicsSteps=ha.INTEGER(5,{range:[1,10],rangeLocked:[!0,!1],...PL()}),this.gravity=ha.VECTOR3([0,-30,0],{...PL()}),this.translateSpeed=ha.FLOAT(1),this.rotateSpeed=ha.FLOAT(AL.rotateSpeed),this.jumpAllowed=ha.BOOLEAN(!0,{...PL()}),this.jumpStrength=ha.FLOAT(10,{range:[0,100],rangeLocked:[!0,!1],...PL()}),this.runAllowed=ha.BOOLEAN(!0,{...PL()}),this.runSpeedMult=ha.FLOAT(2,{range:[0,10],rangeLocked:[!0,!1],...PL()}),this.updateCollider=ha.BUTTON(null,{callback:t=>{IL.PARAM_CALLBACK_updateCollider(t)}}),this.init=ha.FOLDER(),this.startPosition=ha.VECTOR3([0,2,0],{...PL()}),this.startRotation=ha.VECTOR3([0,0,0],{...PL()}),this.reset=ha.BUTTON(null,{callback:t=>{IL.PARAM_CALLBACK_resetPlayer(t)}}),this.minPolarAngle=ha.FLOAT(\\\\\\\"-$PI*0.5\\\\\\\",{range:[-Math.PI,Math.PI],rangeLocked:[!0,!0]}),this.maxPolarAngle=ha.FLOAT(\\\\\\\"$PI*0.5\\\\\\\",{range:[-Math.PI,Math.PI],rangeLocked:[!0,!0]})}};class IL extends ey{constructor(){super(...arguments),this.paramsConfig=RL,this._controls_by_element_id=new Map}static type(){return _s.MOBILE_JOYSTICK}endEventName(){return\\\\\\\"end\\\\\\\"}collisionController(){return this._collisionController=this._collisionController||new tx(this)}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(IL.INPUT_UPDATE_COLLIDER,Qo.BASE,this._updateCollider.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(NL,Qo.BASE),new ta(LL,Qo.BASE),new ta(OL,Qo.BASE)])}async createControlsInstance(t,e){await this._initPlayer(t);const n=new CL(t,e,this._player);return this._controls_by_element_id.set(e.id,n),this._bind_listeners_to_controls_instance(n),n}async _initPlayer(t){this._player=this._player||await this._createPlayer(t),this._player&&(this._updatePlayerParams(),this._player.reset())}player(){return this._player}async _updatePlayerParams(){this._player&&(this._player.startPosition.copy(this.pv.startPosition),this._player.physicsSteps=this.pv.physicsSteps,this._player.jumpAllowed=this.pv.jumpAllowed,this._player.jumpStrength=this.pv.jumpStrength,this._player.runAllowed=this.pv.runAllowed,this._player.runSpeedMult=this.pv.runSpeedMult,this._player.gravity.copy(this.pv.gravity),this._player.speed=this.pv.translateSpeed,this._player.setCapsule({radius:this.pv.capsuleRadius,height:this.pv.capsuleHeight}),this._controls_by_element_id.forEach((t=>t.updateElements())))}async _createPlayer(t){const e=t,n=await this.collisionController().getCollider();if(!n)return void this.states.error.set(\\\\\\\"invalid collider\\\\\\\");return new $y({object:e,collider:n})}_resetPlayer(){var t;null===(t=this._player)||void 0===t||t.reset()}async _updateCollider(){await this.collisionController().updateCollider()}_bind_listeners_to_controls_instance(t){t.addEventListener(NL,(()=>{this.dispatchEventToOutput(NL,{})})),t.addEventListener(LL,(()=>{this.dispatchEventToOutput(LL,{})})),t.addEventListener(OL,(()=>{this.dispatchEventToOutput(OL,{})}))}updateRequired(){return!0}setupControls(t){t.setRotationSpeed(this.pv.rotateSpeed),t.setRotationRange({min:this.pv.minPolarAngle,max:this.pv.maxPolarAngle}),t.updateElements()}disposeControlsForHtmlElementId(t){this._controls_by_element_id.get(t)&&this._controls_by_element_id.delete(t)}static PARAM_CALLBACK_updateCollider(t){t._updateCollider()}static PARAM_CALLBACK_updatePlayerParams(t){t._updatePlayerParams()}static PARAM_CALLBACK_resetPlayer(t){t._resetPlayer()}}var FL;IL.INPUT_UPDATE_COLLIDER=\\\\\\\"updateCollider\\\\\\\",function(t){t.ALL_TOGETHER=\\\\\\\"all together\\\\\\\",t.BATCH=\\\\\\\"batch\\\\\\\"}(FL||(FL={}));const DL=[FL.ALL_TOGETHER,FL.BATCH];const BL=new class extends ua{constructor(){super(...arguments),this.mask=ha.STRING(\\\\\\\"/geo*\\\\\\\",{callback:t=>{zL.PARAM_CALLBACK_updateResolvedNodes(t)}}),this.force=ha.BOOLEAN(0),this.cookMode=ha.INTEGER(DL.indexOf(FL.ALL_TOGETHER),{menu:{entries:DL.map(((t,e)=>({name:t,value:e})))}}),this.batchSize=ha.INTEGER(1,{visibleIf:{cookMode:DL.indexOf(FL.BATCH)},separatorAfter:!0}),this.registerOnlyFirstCooks=ha.BOOLEAN(!0),this.updateResolve=ha.BUTTON(null,{callback:(t,e)=>{zL.PARAM_CALLBACK_updateResolve(t)}}),this.printResolve=ha.BUTTON(null,{callback:(t,e)=>{zL.PARAM_CALLBACK_printResolve(t)}})}};class zL extends Va{constructor(){super(...arguments),this.paramsConfig=BL,this._resolvedNodes=[],this._dispatchedFirstNodeCooked=!1,this._dispatchedAllNodesCooked=!1,this._cookStateByNodeId=new Map}static type(){return\\\\\\\"nodeCook\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(zL.INPUT_TRIGGER,Qo.BASE,this.processEventTrigger.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(zL.OUTPUT_FIRST_NODE,Qo.BASE),new ta(zL.OUTPUT_EACH_NODE,Qo.BASE),new ta(zL.OUTPUT_ALL_NODES,Qo.BASE)])}trigger(){this.processEventTrigger({})}cook(){this._updateResolvedNodes(),this.cookController.endCook()}dispose(){super.dispose(),this._reset()}resolvedNodes(){return this._resolvedNodes}processEventTrigger(t){this._cook_nodes_with_mode()}_cook_nodes_with_mode(){this._updateResolvedNodes();const t=DL[this.pv.cookMode];switch(t){case FL.ALL_TOGETHER:return this._cookNodesAllTogether();case FL.BATCH:return this._cookNodesInBatch()}os.unreachable(t)}_cookNodesAllTogether(){this._cookNodes(this._resolvedNodes)}async _cookNodesInBatch(){const t=this.pv.batchSize,e=Math.ceil(this._resolvedNodes.length/t);for(let n=0;n<e;n++){const e=n*t,i=(n+1)*t,s=this._resolvedNodes.slice(e,i);await this._cookNodes(s)}}async _cookNodes(t){const e=[];for(let n of t)e.push(this._cookNode(n));return await Promise.all(e)}_cookNode(t){return this.pv.force&&t.setDirty(this),t.compute()}static PARAM_CALLBACK_updateResolvedNodes(t){t._updateResolvedNodes()}_updateResolvedNodes(){this._reset(),this._resolvedNodes=this.scene().nodesController.nodesFromMask(this.pv.mask||\\\\\\\"\\\\\\\");for(let t of this._resolvedNodes)t.cookController.registerOnCookEnd(this._callbackNameForNode(t),(()=>{this._onNodeCookComplete(t)})),this._cookStateByNodeId.set(t.graphNodeId(),!1)}_callbackNameForNode(t){return`owner-${this.graphNodeId()}-target-${t.graphNodeId()}`}_reset(){this._dispatchedFirstNodeCooked=!1,this._cookStateByNodeId.clear();for(let t of this._resolvedNodes)t.cookController.deregisterOnCookEnd(this._callbackNameForNode(t));this._resolvedNodes=[]}_allNodesHaveCooked(){for(let t of this._resolvedNodes){if(!this._cookStateByNodeId.get(t.graphNodeId()))return!1}return!0}_onNodeCookComplete(t){const e={value:{node:t}};this._dispatchedFirstNodeCooked||(this._dispatchedFirstNodeCooked=!0,this.dispatchEventToOutput(zL.OUTPUT_FIRST_NODE,e));this._cookStateByNodeId.get(t.graphNodeId())&&this.pv.registerOnlyFirstCooks||this.dispatchEventToOutput(zL.OUTPUT_EACH_NODE,e),this._cookStateByNodeId.set(t.graphNodeId(),!0),this._dispatchedAllNodesCooked||this._allNodesHaveCooked()&&(this._dispatchedAllNodesCooked=!0,this.dispatchEventToOutput(zL.OUTPUT_ALL_NODES,{}))}static PARAM_CALLBACK_updateResolve(t){t._allNodesHaveCooked()}static PARAM_CALLBACK_printResolve(t){t.printResolve()}printResolve(){console.log(this._resolvedNodes)}}var kL,UL;zL.INPUT_TRIGGER=\\\\\\\"trigger\\\\\\\",zL.OUTPUT_FIRST_NODE=\\\\\\\"first\\\\\\\",zL.OUTPUT_EACH_NODE=\\\\\\\"each\\\\\\\",zL.OUTPUT_ALL_NODES=\\\\\\\"all\\\\\\\",function(t){t.TRIGGER=\\\\\\\"trigger\\\\\\\"}(kL||(kL={})),function(t){t.OUT=\\\\\\\"out\\\\\\\"}(UL||(UL={}));const GL=new class extends ua{};class VL extends Va{constructor(){super(...arguments),this.paramsConfig=GL}static type(){return\\\\\\\"null\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(kL.TRIGGER,Qo.BASE,this.processEventTrigger.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(UL.OUT,Qo.BASE)])}processEvent(t){}processEventTrigger(t){this.dispatchEventToOutput(UL.OUT,t)}}const HL=\\\\\\\"init\\\\\\\",jL=\\\\\\\"dispose\\\\\\\",WL=\\\\\\\"reset\\\\\\\";function qL(){return{callback:t=>{ZL.PARAM_CALLBACK_updatePlayerParams(t)}}}const XL=new p.a,YL=new p.a,$L=new uy;const JL=new class extends ua{constructor(){super(...arguments),this.main=ha.FOLDER(),this.playerObject=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ}}),this.colliderObject=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.SOP},dependentOnFoundNode:!1,callback:t=>{ZL.PARAM_CALLBACK_updateCollider(t)}}),this.camera=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{types:[is.PERSPECTIVE,is.ORTHOGRAPHIC],context:ts.OBJ}}),this.initPlayer=ha.BUTTON(null,{callback:t=>{ZL.PARAM_CALLBACK_initPlayer(t)}}),this.capsuleRadius=ha.FLOAT(.5,{range:[0,1],rangeLocked:[!0,!1],...qL()}),this.capsuleHeight=ha.FLOAT(1,{range:[0,2],rangeLocked:[!0,!1],...qL()}),this.physics=ha.FOLDER(),this.physicsSteps=ha.INTEGER(5,{range:[1,10],rangeLocked:[!0,!1],...qL()}),this.gravity=ha.VECTOR3([0,-30,0],{...qL()}),this.speed=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1],...qL()}),this.jumpAllowed=ha.BOOLEAN(!0,{...qL()}),this.jumpStrength=ha.FLOAT(10,{range:[0,100],rangeLocked:[!0,!1],...qL()}),this.runAllowed=ha.BOOLEAN(!0,{...qL()}),this.runSpeedMult=ha.FLOAT(2,{range:[0,10],rangeLocked:[!0,!1],...qL()}),this.updateCollider=ha.BUTTON(null,{callback:t=>{ZL.PARAM_CALLBACK_updateCollider(t)}}),this.mesh=ha.FOLDER(),this.useMesh=ha.BOOLEAN(!0,{callback:t=>{ZL.PARAM_CALLBACK_updatePlayerMesh(t)}}),this.material=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.MAT},callback:t=>{ZL.PARAM_CALLBACK_updatePlayerMaterial(t)}}),this.init=ha.FOLDER(),this.startPosition=ha.VECTOR3([0,5,0],{...qL()}),this.reset=ha.BUTTON(null,{callback:t=>{ZL.PARAM_CALLBACK_resetPlayer(t)}})}};class ZL extends Va{constructor(){super(...arguments),this.paramsConfig=JL}static type(){return _s.PLAYER}collisionController(){return this._collisionController=this._collisionController||new tx(this)}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(HL,Qo.BASE,this._initPlayer.bind(this)),new ta(jL,Qo.BASE,this._disposePlayer.bind(this)),new ta(WL,Qo.BASE,this._resetPlayer.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(HL,Qo.BASE),new ta(jL,Qo.BASE),new ta(WL,Qo.BASE)])}async _initPlayer(){if(this._player=this._player||await this._createPlayer(),!this._player)return void this.states.error.set(\\\\\\\"could not create player\\\\\\\");this._updatePlayerMesh(),this._updatePlayerMaterial(),this._updatePlayerParams(),this._corePlayerKeyEvents=new Zy(this._player),this._corePlayerKeyEvents.addEvents(),this._player.reset();const t=this._player;this.scene().registerOnBeforeTick(this._callbackName(),(e=>{t.setAzimuthalAngle(this._getAzimuthalAngle()),t.update(e)})),this.dispatchEventToOutput(HL,{})}player(){return this._player}_callbackName(){return`event/PlayerControls-${this.graphNodeId()}`}_disposePlayer(){var t;this._player&&(null===(t=this._corePlayerKeyEvents)||void 0===t||t.removeEvents(),this.scene().unRegisterOnBeforeTick(this._callbackName())),this.dispatchEventToOutput(jL,{})}_resetPlayer(){this._player&&this._player.reset(),this.dispatchEventToOutput(WL,{})}async _updatePlayerParams(){this._player&&(this._player.startPosition.copy(this.pv.startPosition),this._player.physicsSteps=this.pv.physicsSteps,this._player.jumpAllowed=this.pv.jumpAllowed,this._player.jumpStrength=this.pv.jumpStrength,this._player.runAllowed=this.pv.runAllowed,this._player.runSpeedMult=this.pv.runSpeedMult,this._player.gravity.copy(this.pv.gravity),this._player.speed=this.pv.speed,this._player.setCapsule({radius:this.pv.capsuleRadius,height:this.pv.capsuleHeight}))}_updatePlayerMesh(){this._player&&this._player.setUsePlayerMesh(this.pv.useMesh)}async _updatePlayerMaterial(){if(!this._player)return;const t=this.pv.material.nodeWithContext(ts.MAT);if(!t)return void this.states.error.set(\\\\\\\"material node not found\\\\\\\");const e=(await t.compute()).material();this._player.setMaterial(e)}async _createPlayer(){const t=this.pv.playerObject.nodeWithContext(ts.OBJ);if(!t)return void this.states.error.set(\\\\\\\"player node not found\\\\\\\");const e=this.pv.camera.nodeWithContext(ts.OBJ);if(!e)return void this.states.error.set(\\\\\\\"invalid camera node\\\\\\\");this._cameraObject=e.object;const n=t.object,i=await this.collisionController().getCollider();if(!i)return void this.states.error.set(\\\\\\\"invalid collider\\\\\\\");return new $y({object:n,collider:i,meshName:this.path()})}async _updateCollider(){await this.collisionController().updateCollider()}_getAzimuthalAngle(){if(!this._cameraObject||!this._player)return 0;const t=this._cameraObject.position,e=this._player.object.position;return XL.copy(t),YL.copy(e),XL.sub(YL),$L.setFromVector3(XL),$L.theta}static PARAM_CALLBACK_initPlayer(t){t._initPlayer()}static PARAM_CALLBACK_updatePlayerParams(t){t._updatePlayerParams()}static PARAM_CALLBACK_updatePlayerMaterial(t){t._updatePlayerMaterial()}static PARAM_CALLBACK_updatePlayerMesh(t){t._updatePlayerMesh()}static PARAM_CALLBACK_updateCollider(t){t._updateCollider()}static PARAM_CALLBACK_resetPlayer(t){t._resetPlayer()}}var KL,QL=n(39),tO=n(36);class eO{constructor(t,e,n=0,i=1/0){this.ray=new QL.a(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new tO.a,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error(\\\\\\\"THREE.Raycaster: Unsupported camera type: \\\\\\\"+e.type)}intersectObject(t,e=!0,n=[]){return iO(t,this,n,e),n.sort(nO),n}intersectObjects(t,e=!0,n=[]){for(let i=0,s=t.length;i<s;i++)iO(t[i],this,n,e);return n.sort(nO),n}}function nO(t,e){return t.distance-e.distance}function iO(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,s=i.length;t<s;t++)iO(i[t],e,n,!0)}}!function(t){t.GEOMETRY=\\\\\\\"geometry\\\\\\\",t.PLANE=\\\\\\\"plane\\\\\\\"}(KL||(KL={}));KL.GEOMETRY,KL.PLANE;class sO{constructor(t){this._node=t,this._set_pos_timestamp=-1,this._hit_velocity=new p.a(0,0,0),this._hit_velocity_array=[0,0,0]}process(t){if(!this._node.pv.tvelocity)return;if(!this._prev_position)return this._prev_position=this._prev_position||new p.a,void this._prev_position.copy(t);const e=li.performance.performanceManager().now(),n=e-this._set_pos_timestamp;if(this._set_pos_timestamp=e,this._hit_velocity.copy(t).sub(this._prev_position).divideScalar(n).multiplyScalar(1e3),this._hit_velocity.toArray(this._hit_velocity_array),this._node.pv.tvelocityTarget){if(li.playerMode())this._found_velocity_target_param=this._found_velocity_target_param||this._node.pv.velocityTarget.paramWithType(Cr.VECTOR3);else{const t=this._node.pv.velocityTarget;this._found_velocity_target_param=t.paramWithType(Cr.VECTOR3)}this._found_velocity_target_param&&this._found_velocity_target_param.set(this._hit_velocity_array)}else this._node.p.velocity.set(this._hit_velocity_array);this._prev_position.copy(t)}reset(){this._prev_position=void 0}}var rO;!function(t){t.GEOMETRY=\\\\\\\"geometry\\\\\\\",t.PLANE=\\\\\\\"plane\\\\\\\"}(rO||(rO={}));const oO=[rO.GEOMETRY,rO.PLANE];function aO(t,e,n){var i=e.getBoundingClientRect();n.offsetX=t.pageX-i.left,n.offsetY=t.pageY-i.top}class lO{constructor(t){this._node=t,this._offset={offsetX:0,offsetY:0},this._mouse=new d.a,this._mouse_array=[0,0],this._raycaster=function(){const t=new eO;return t.firstHitOnly=!0,t}(),this._plane=new Y.a,this._plane_intersect_target=new p.a,this._intersections=[],this._hit_position_array=[0,0,0],this.velocity_controller=new sO(this._node)}updateMouse(t){var e;const n=null===(e=t.viewer)||void 0===e?void 0:e.canvas(),i=t.cameraNode;if(!n||!i)return;const s=t.event;if((s instanceof MouseEvent||s instanceof DragEvent||s instanceof PointerEvent)&&aO(s,n,this._offset),window.TouchEvent&&s instanceof TouchEvent){aO(s.touches[0],n,this._offset)}(t=>{this._mouse.x=t.offsetX/n.offsetWidth*2-1,this._mouse.y=-t.offsetY/n.offsetHeight*2+1,this._mouse.toArray(this._mouse_array),this._node.p.mouse.set(this._mouse_array)})(this._offset),this._raycaster.setFromCamera(this._mouse,i.object)}processEvent(t){this._prepareRaycaster(t);const e=oO[this._node.pv.intersectWith];switch(e){case rO.GEOMETRY:return this._intersect_with_geometry(t);case rO.PLANE:return this._intersect_with_plane(t)}os.unreachable(e)}_intersect_with_plane(t){this._plane.normal.copy(this._node.pv.planeDirection),this._plane.constant=this._node.pv.planeOffset,this._raycaster.ray.intersectPlane(this._plane,this._plane_intersect_target),this._set_position_param(this._plane_intersect_target),this._node.trigger_hit(t)}_intersect_with_geometry(t){if(this._resolved_targets||this.update_target(),this._resolved_targets){this._intersections.length=0;const e=this._raycaster.intersectObjects(this._resolved_targets,this._node.pv.traverseChildren,this._intersections)[0];e?(this._set_position_param(e.point),this._node.pv.geoAttribute&&this._resolve_geometry_attribute(e),t.value={intersect:e},this._node.trigger_hit(t)):this._node.trigger_miss(t)}}_resolve_geometry_attribute(t){const e=ks[this._node.pv.geoAttributeType],n=lO.resolve_geometry_attribute(t,this._node.pv.geoAttributeName,e);if(null!=n){switch(e){case zs.NUMERIC:return void this._node.p.geoAttributeValue1.set(n);case zs.STRING:return void(m.isString(n)&&this._node.p.geoAttributeValues.set(n))}os.unreachable(e)}}static resolve_geometry_attribute(t,e,n){switch(Os(t.object.constructor)){case Ns.MESH:return this.resolve_geometry_attribute_for_mesh(t,e,n);case Ns.POINTS:return this.resolve_geometry_attribute_for_point(t,e,n)}}static resolve_geometry_attribute_for_mesh(t,e,n){const i=t.object.geometry;if(i){const s=i.getAttribute(e);if(s){switch(n){case zs.NUMERIC:{const e=i.getAttribute(\\\\\\\"position\\\\\\\");return t.face?(this._vA.fromBufferAttribute(e,t.face.a),this._vB.fromBufferAttribute(e,t.face.b),this._vC.fromBufferAttribute(e,t.face.c),this._uvA.fromBufferAttribute(s,t.face.a),this._uvB.fromBufferAttribute(s,t.face.b),this._uvC.fromBufferAttribute(s,t.face.c),t.uv=tr.a.getUV(t.point,this._vA,this._vB,this._vC,this._uvA,this._uvB,this._uvC,this._hitUV),this._hitUV.x):void 0}case zs.STRING:{const t=new fr(i).points()[0];return t?t.stringAttribValue(e):void 0}}os.unreachable(n)}}}static resolve_geometry_attribute_for_point(t,e,n){const i=t.object.geometry;if(i&&null!=t.index){switch(n){case zs.NUMERIC:{const n=i.getAttribute(e);return n?n.array[t.index]:void 0}case zs.STRING:{const n=new fr(i).points()[t.index];return n?n.stringAttribValue(e):void 0}}os.unreachable(n)}}_set_position_param(t){if(t.toArray(this._hit_position_array),this._node.pv.tpositionTarget){if(li.playerMode())this._found_position_target_param=this._found_position_target_param||this._node.pv.positionTarget.paramWithType(Cr.VECTOR3);else{const t=this._node.pv.positionTarget;this._found_position_target_param=t.paramWithType(Cr.VECTOR3)}this._found_position_target_param&&this._found_position_target_param.set(this._hit_position_array)}else this._node.p.position.set(this._hit_position_array);this.velocity_controller.process(t)}_prepareRaycaster(t){const e=this._raycaster.params.Points;e&&(e.threshold=this._node.pv.pointsThreshold);let n=t.cameraNode;if(this._node.pv.overrideCamera)if(this._node.pv.overrideRay)this._raycaster.ray.origin.copy(this._node.pv.rayOrigin),this._raycaster.ray.direction.copy(this._node.pv.rayDirection);else{const t=this._node.p.camera.found_node_with_context(ts.OBJ);t&&(n=t)}n&&!this._node.pv.overrideRay&&n.prepareRaycaster(this._mouse,this._raycaster)}update_target(){const t=vO[this._node.pv.targetType];switch(t){case gO.NODE:return this._update_target_from_node();case gO.SCENE_GRAPH:return this._update_target_from_scene_graph()}os.unreachable(t)}_update_target_from_node(){const t=this._node.p.targetNode.value.nodeWithContext(ts.OBJ);if(t){const e=this._node.pv.traverseChildren?t.object:t.childrenDisplayController.sopGroup();this._resolved_targets=e?[e]:void 0}else this._node.states.error.set(\\\\\\\"node is not an object\\\\\\\")}_update_target_from_scene_graph(){const t=this._node.scene().objectsByMask(this._node.pv.objectMask);t.length>0?this._resolved_targets=t:this._resolved_targets=void 0}async update_position_target(){this._node.p.positionTarget.isDirty()&&await this._node.p.positionTarget.compute()}static PARAM_CALLBACK_update_target(t){t.cpuController.update_target()}static PARAM_CALLBACK_print_resolve(t){t.cpuController.print_resolve()}print_resolve(){this.update_target(),console.log(this._resolved_targets)}}lO._vA=new p.a,lO._vB=new p.a,lO._vC=new p.a,lO._uvA=new d.a,lO._uvB=new d.a,lO._uvC=new d.a,lO._hitUV=new d.a;class cO{constructor(t){this._node=t,this._resolved_material=null,this._restore_context={scene:{overrideMaterial:null},renderer:{toneMapping:-1,outputEncoding:-1}},this._mouse=new d.a,this._mouse_array=[0,0],this._read=new Float32Array(4),this._param_read=[0,0,0,0]}updateMouse(t){var e;const n=null===(e=t.viewer)||void 0===e?void 0:e.canvas();n&&t.event&&(t.event instanceof MouseEvent||t.event instanceof DragEvent||t.event instanceof PointerEvent?(this._mouse.x=t.event.offsetX/n.offsetWidth,this._mouse.y=1-t.event.offsetY/n.offsetHeight,this._mouse.toArray(this._mouse_array),this._node.p.mouse.set(this._mouse_array)):console.warn(\\\\\\\"event type not implemented\\\\\\\"))}processEvent(t){var e;const n=null===(e=t.viewer)||void 0===e?void 0:e.canvas();if(!n||!t.cameraNode)return;const i=t.cameraNode,s=i.renderController;if(s){if(this._render_target=this._render_target||new K(n.offsetWidth,n.offsetHeight,{minFilter:w.V,magFilter:w.ob,format:w.Ib,type:w.G}),!this._resolved_material)return this.update_material(),void console.warn(\\\\\\\"no material found\\\\\\\");const e=i,r=s.resolved_scene||i.scene().threejsScene(),o=s.renderer(n);this._modify_scene_and_renderer(r,o),o.setRenderTarget(this._render_target),o.clear(),o.render(r,e.object),o.setRenderTarget(null),this._restore_scene_and_renderer(r,o),o.readRenderTargetPixels(this._render_target,Math.round(this._mouse.x*n.offsetWidth),Math.round(this._mouse.y*n.offsetHeight),1,1,this._read),this._param_read[0]=this._read[0],this._param_read[1]=this._read[1],this._param_read[2]=this._read[2],this._param_read[3]=this._read[3],this._node.p.pixelValue.set(this._param_read),this._node.pv.pixelValue.x>this._node.pv.hitThreshold?this._node.trigger_hit(t):this._node.trigger_miss(t)}}_modify_scene_and_renderer(t,e){this._restore_context.scene.overrideMaterial=t.overrideMaterial,this._restore_context.renderer.outputEncoding=e.outputEncoding,this._restore_context.renderer.toneMapping=e.toneMapping,t.overrideMaterial=this._resolved_material,e.toneMapping=w.vb,e.outputEncoding=w.U}_restore_scene_and_renderer(t,e){t.overrideMaterial=this._restore_context.scene.overrideMaterial,e.outputEncoding=this._restore_context.renderer.outputEncoding,e.toneMapping=this._restore_context.renderer.toneMapping}update_material(){const t=this._node.p.material.found_node();t?t.context()==ts.MAT?this._resolved_material=t.material:this._node.states.error.set(\\\\\\\"target is not an obj\\\\\\\"):this._node.states.error.set(\\\\\\\"no target found\\\\\\\")}static PARAM_CALLBACK_update_material(t){t.gpuController.update_material()}}const hO=1e3/60;var uO;!function(t){t.CPU=\\\\\\\"cpu\\\\\\\",t.GPU=\\\\\\\"gpu\\\\\\\"}(uO||(uO={}));const dO=[uO.CPU,uO.GPU];function pO(t={}){return t.mode=dO.indexOf(uO.CPU),{visibleIf:t}}function _O(t={}){return t.mode=dO.indexOf(uO.CPU),t.intersectWith=oO.indexOf(rO.GEOMETRY),{visibleIf:t}}function mO(t={}){return t.mode=dO.indexOf(uO.CPU),t.intersectWith=oO.indexOf(rO.PLANE),{visibleIf:t}}function fO(t={}){return t.mode=dO.indexOf(uO.GPU),{visibleIf:t}}var gO;!function(t){t.SCENE_GRAPH=\\\\\\\"scene graph\\\\\\\",t.NODE=\\\\\\\"node\\\\\\\"}(gO||(gO={}));const vO=[gO.SCENE_GRAPH,gO.NODE];const yO=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(dO.indexOf(uO.CPU),{menu:{entries:dO.map(((t,e)=>({name:t,value:e})))}}),this.mouse=ha.VECTOR2([0,0],{cook:!1}),this.overrideCamera=ha.BOOLEAN(0),this.overrideRay=ha.BOOLEAN(0,{visibleIf:{mode:dO.indexOf(uO.CPU),overrideCamera:1}}),this.camera=ha.OPERATOR_PATH(\\\\\\\"/perspective_camera1\\\\\\\",{nodeSelection:{context:ts.OBJ},dependentOnFoundNode:!1,visibleIf:{overrideCamera:1,overrideRay:0}}),this.rayOrigin=ha.VECTOR3([0,0,0],{visibleIf:{overrideCamera:1,overrideRay:1}}),this.rayDirection=ha.VECTOR3([0,0,1],{visibleIf:{overrideCamera:1,overrideRay:1}}),this.material=ha.OPERATOR_PATH(\\\\\\\"/MAT/mesh_basic_builder1\\\\\\\",{nodeSelection:{context:ts.MAT},dependentOnFoundNode:!1,callback:(t,e)=>{cO.PARAM_CALLBACK_update_material(t)},...fO()}),this.pixelValue=ha.VECTOR4([0,0,0,0],{cook:!1,...fO()}),this.hitThreshold=ha.FLOAT(.5,{cook:!1,...fO()}),this.intersectWith=ha.INTEGER(oO.indexOf(rO.GEOMETRY),{menu:{entries:oO.map(((t,e)=>({name:t,value:e})))},...pO()}),this.pointsThreshold=ha.FLOAT(1,{range:[0,100],rangeLocked:[!0,!1],...pO()}),this.planeDirection=ha.VECTOR3([0,1,0],{...mO()}),this.planeOffset=ha.FLOAT(0,{...mO()}),this.targetType=ha.INTEGER(0,{menu:{entries:vO.map(((t,e)=>({name:t,value:e})))},..._O()}),this.targetNode=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ},dependentOnFoundNode:!1,callback:(t,e)=>{lO.PARAM_CALLBACK_update_target(t)},..._O({targetType:vO.indexOf(gO.NODE)})}),this.objectMask=ha.STRING(\\\\\\\"*geo1*\\\\\\\",{callback:(t,e)=>{lO.PARAM_CALLBACK_update_target(t)},..._O({targetType:vO.indexOf(gO.SCENE_GRAPH)})}),this.printFoundObjectsFromMask=ha.BUTTON(null,{callback:(t,e)=>{lO.PARAM_CALLBACK_print_resolve(t)},..._O({targetType:vO.indexOf(gO.SCENE_GRAPH)})}),this.traverseChildren=ha.BOOLEAN(!0,{callback:(t,e)=>{lO.PARAM_CALLBACK_update_target(t)},..._O(),separatorAfter:!0}),this.tpositionTarget=ha.BOOLEAN(0,{cook:!1,...pO()}),this.position=ha.VECTOR3([0,0,0],{cook:!1,...pO({tpositionTarget:0})}),this.positionTarget=ha.PARAM_PATH(\\\\\\\"\\\\\\\",{cook:!1,...pO({tpositionTarget:1}),paramSelection:Cr.VECTOR3,computeOnDirty:!0}),this.tvelocity=ha.BOOLEAN(0,{cook:!1}),this.tvelocityTarget=ha.BOOLEAN(0,{cook:!1,...pO({tvelocity:1})}),this.velocity=ha.VECTOR3([0,0,0],{cook:!1,...pO({tvelocity:1,tvelocityTarget:0})}),this.velocityTarget=ha.PARAM_PATH(\\\\\\\"\\\\\\\",{cook:!1,...pO({tvelocity:1,tvelocityTarget:1}),paramSelection:Cr.VECTOR3,computeOnDirty:!0}),this.geoAttribute=ha.BOOLEAN(0,_O()),this.geoAttributeName=ha.STRING(\\\\\\\"id\\\\\\\",{cook:!1,..._O({geoAttribute:1})}),this.geoAttributeType=ha.INTEGER(ks.indexOf(zs.NUMERIC),{menu:{entries:Us},..._O({geoAttribute:1})}),this.geoAttributeValue1=ha.FLOAT(0,{cook:!1,..._O({geoAttribute:1,geoAttributeType:ks.indexOf(zs.NUMERIC)})}),this.geoAttributeValues=ha.STRING(\\\\\\\"\\\\\\\",{..._O({geoAttribute:1,geoAttributeType:ks.indexOf(zs.STRING)})})}};class xO extends Va{constructor(){super(...arguments),this.paramsConfig=yO,this.cpuController=new lO(this),this.gpuController=new cO(this),this._last_event_processed_at=-1}static type(){return\\\\\\\"raycast\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(xO.INPUT_TRIGGER,Qo.BASE,this._process_trigger_event_throttled.bind(this)),new ta(xO.INPUT_MOUSE,Qo.MOUSE,this._process_mouse_event.bind(this)),new ta(xO.INPUT_UPDATE_OBJECTS,Qo.BASE,this._process_trigger_update_objects.bind(this)),new ta(xO.INPUT_TRIGGER_VEL_RESET,Qo.BASE,this._process_trigger_vel_reset.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(xO.OUTPUT_HIT,Qo.BASE),new ta(xO.OUTPUT_MISS,Qo.BASE)])}trigger_hit(t){this.dispatchEventToOutput(xO.OUTPUT_HIT,t)}trigger_miss(t){this.dispatchEventToOutput(xO.OUTPUT_MISS,t)}_process_mouse_event(t){this.pv.mode==dO.indexOf(uO.CPU)?this.cpuController.updateMouse(t):this.gpuController.updateMouse(t)}_process_trigger_event_throttled(t){const e=this._last_event_processed_at,n=li.performance.performanceManager().now();this._last_event_processed_at=n;const i=n-e;i<hO?setTimeout((()=>{this._process_trigger_event(t)}),hO-i):this._process_trigger_event(t)}_process_trigger_event(t){this.pv.mode==dO.indexOf(uO.CPU)?this.cpuController.processEvent(t):this.gpuController.processEvent(t)}_process_trigger_update_objects(t){this.pv.mode==dO.indexOf(uO.CPU)&&this.cpuController.update_target()}_process_trigger_vel_reset(t){this.pv.mode==dO.indexOf(uO.CPU)&&this.cpuController.velocity_controller.reset()}}var bO;xO.INPUT_TRIGGER=\\\\\\\"trigger\\\\\\\",xO.INPUT_MOUSE=\\\\\\\"mouse\\\\\\\",xO.INPUT_UPDATE_OBJECTS=\\\\\\\"updateObjects\\\\\\\",xO.INPUT_TRIGGER_VEL_RESET=\\\\\\\"triggerVelReset\\\\\\\",xO.OUTPUT_HIT=\\\\\\\"hit\\\\\\\",xO.OUTPUT_MISS=\\\\\\\"miss\\\\\\\",function(t){t.SET=\\\\\\\"set\\\\\\\",t.TOGGLE=\\\\\\\"toggle\\\\\\\"}(bO||(bO={}));const wO=[bO.SET,bO.TOGGLE];const TO=new class extends ua{constructor(){super(...arguments),this.mask=ha.STRING(\\\\\\\"/geo*\\\\\\\",{separatorAfter:!0}),this.tdisplay=ha.BOOLEAN(0),this.displayMode=ha.INTEGER(wO.indexOf(bO.SET),{visibleIf:{tdisplay:1},menu:{entries:wO.map(((t,e)=>({name:t,value:e})))}}),this.display=ha.BOOLEAN(0,{visibleIf:{tdisplay:1,displayMode:wO.indexOf(bO.SET)},separatorAfter:!0}),this.tbypass=ha.BOOLEAN(0),this.bypassMode=ha.INTEGER(wO.indexOf(bO.SET),{visibleIf:{tbypass:1},menu:{entries:wO.map(((t,e)=>({name:t,value:e})))}}),this.bypass=ha.BOOLEAN(0,{visibleIf:{tbypass:1,displayMode:wO.indexOf(bO.SET)}}),this.execute=ha.BUTTON(null,{callback:t=>{AO.PARAM_CALLBACK_execute(t)}})}};class AO extends Va{constructor(){super(...arguments),this.paramsConfig=TO}static type(){return\\\\\\\"setFlag\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"trigger\\\\\\\",Qo.BASE)])}async processEvent(t){let e=this.pv.mask;if(t.value){const n=t.value.node;if(n){const t=n.parent();t&&(e=`${t.path()}/${e}`)}}const n=this.scene().nodesController.nodesFromMask(e);for(let t of n)this._update_node_flags(t)}_update_node_flags(t){this._update_node_display_flag(t),this._update_node_bypass_flag(t)}_update_node_display_flag(t){var e;if(!this.pv.tdisplay)return;if(!(null===(e=t.flags)||void 0===e?void 0:e.hasDisplay()))return;const n=t.flags.display;if(!n)return;const i=wO[this.pv.displayMode];switch(i){case bO.SET:return void n.set(this.pv.display);case bO.TOGGLE:return void n.set(!n.active())}os.unreachable(i)}_update_node_bypass_flag(t){var e;if(!this.pv.tbypass)return;if(!(null===(e=t.flags)||void 0===e?void 0:e.hasBypass()))return;const n=t.flags.bypass;if(!n)return;const i=wO[this.pv.bypassMode];switch(i){case bO.SET:return void n.set(this.pv.bypass);case bO.TOGGLE:return void n.set(!n.active())}os.unreachable(i)}static PARAM_CALLBACK_execute(t){t.processEvent({})}}var MO;!function(t){t.BOOLEAN=\\\\\\\"boolean\\\\\\\",t.BUTTON=\\\\\\\"button\\\\\\\",t.NUMBER=\\\\\\\"number\\\\\\\",t.VECTOR2=\\\\\\\"vector2\\\\\\\",t.VECTOR3=\\\\\\\"vector3\\\\\\\",t.VECTOR4=\\\\\\\"vector4\\\\\\\",t.STRING=\\\\\\\"string\\\\\\\"}(MO||(MO={}));const EO=[MO.BOOLEAN,MO.BUTTON,MO.NUMBER,MO.VECTOR2,MO.VECTOR3,MO.VECTOR4,MO.STRING],SO=EO.indexOf(MO.BOOLEAN),CO=EO.indexOf(MO.NUMBER),NO=EO.indexOf(MO.VECTOR2),LO=EO.indexOf(MO.VECTOR3),OO=EO.indexOf(MO.VECTOR4),PO=EO.indexOf(MO.STRING),RO=\\\\\\\"output\\\\\\\";const IO=new class extends ua{constructor(){super(...arguments),this.param=ha.PARAM_PATH(\\\\\\\"\\\\\\\",{paramSelection:!0,computeOnDirty:!0}),this.type=ha.INTEGER(CO,{menu:{entries:EO.map(((t,e)=>({name:t,value:e})))}}),this.toggle=ha.BOOLEAN(0,{visibleIf:{type:SO}}),this.boolean=ha.BOOLEAN(0,{visibleIf:{type:SO,toggle:0}}),this.number=ha.FLOAT(0,{visibleIf:{type:CO}}),this.vector2=ha.VECTOR2([0,0],{visibleIf:{type:NO}}),this.vector3=ha.VECTOR3([0,0,0],{visibleIf:{type:LO}}),this.vector4=ha.VECTOR4([0,0,0,0],{visibleIf:{type:OO}}),this.increment=ha.BOOLEAN(0,{visibleIf:[{type:CO},{type:NO},{type:LO},{type:OO}]}),this.string=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{type:PO}}),this.execute=ha.BUTTON(null,{callback:t=>{FO.PARAM_CALLBACK_execute(t)}})}};class FO extends Va{constructor(){super(...arguments),this.paramsConfig=IO,this._tmp_vector2=new d.a,this._tmp_vector3=new p.a,this._tmp_vector4=new _.a,this._tmp_array2=[0,0],this._tmp_array3=[0,0,0],this._tmp_array4=[0,0,0,0]}static type(){return\\\\\\\"setParam\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"trigger\\\\\\\",Qo.BASE)]),this.io.outputs.setNamedOutputConnectionPoints([new ta(RO,Qo.BASE)]),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.param])}))}))}async processEvent(t){this.p.param.isDirty()&&await this.p.param.compute();const e=this.p.param.value.param();if(e){const t=await this._new_param_value(e);null!=t&&e.set(t)}else this.states.error.set(\\\\\\\"target param not found\\\\\\\");this.dispatchEventToOutput(RO,t)}async _new_param_value(t){const e=EO[this.pv.type];switch(e){case MO.BOOLEAN:return await this._compute_params_if_dirty([this.p.toggle]),this.pv.toggle?t.value?0:1:this.pv.boolean?1:0;case MO.BUTTON:return t.options.executeCallback();case MO.NUMBER:return await this._compute_params_if_dirty([this.p.increment,this.p.number]),this.pv.increment?t.type()==Cr.FLOAT?t.value+this.pv.number:t.value:this.pv.number;case MO.VECTOR2:return await this._compute_params_if_dirty([this.p.increment,this.p.vector2]),this.pv.increment?t.type()==Cr.VECTOR2?(this._tmp_vector2.copy(t.value),this._tmp_vector2.add(this.pv.vector2),this._tmp_vector2.toArray(this._tmp_array2)):t.value.toArray(this._tmp_array2):this.pv.vector2.toArray(this._tmp_array2),this._tmp_array2;case MO.VECTOR3:return await this._compute_params_if_dirty([this.p.increment,this.p.vector3]),this.pv.increment?t.type()==Cr.VECTOR3?(this._tmp_vector3.copy(t.value),this._tmp_vector3.add(this.pv.vector3),this._tmp_vector3.toArray(this._tmp_array3)):t.value.toArray(this._tmp_array3):this.pv.vector3.toArray(this._tmp_array3),this._tmp_array3;case MO.VECTOR4:return await this._compute_params_if_dirty([this.p.increment,this.p.vector4]),this.pv.increment?t.type()==Cr.VECTOR4?(this._tmp_vector4.copy(t.value),this._tmp_vector4.add(this.pv.vector4),this._tmp_vector4.toArray(this._tmp_array4)):t.value.toArray(this._tmp_array4):this.pv.vector4.toArray(this._tmp_array4),this._tmp_array4;case MO.STRING:return await this._compute_params_if_dirty([this.p.string]),this.pv.string}os.unreachable(e)}static PARAM_CALLBACK_execute(t){t.processEvent({})}async _compute_params_if_dirty(t){const e=[];for(let n of t)n.isDirty()&&e.push(n);const n=[];for(let t of e)n.push(t.compute());return await Promise.all(n)}}const DO=new class extends ua{constructor(){super(...arguments),this.outputsCount=ha.INTEGER(5,{range:[1,10],rangeLocked:[!0,!1]})}};class BO extends Va{constructor(){super(...arguments),this.paramsConfig=DO}static type(){return\\\\\\\"sequence\\\\\\\"}initializeNode(){this.io.connection_points.set_input_name_function((()=>\\\\\\\"trigger\\\\\\\")),this.io.connection_points.set_expected_input_types_function((()=>[Qo.BASE])),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this)),this.io.connection_points.set_output_name_function(this._output_name.bind(this))}_expected_output_types(){const t=new Array(this.pv.outputsCount);return t.fill(Qo.BASE),t}_output_name(t){return`out${t}`}processEvent(t){const e=this.pv.outputsCount;for(let n=0;n<e;n++){const e=this.io.outputs.namedOutputConnectionPoints()[n];this.dispatchEventToOutput(e.name(),t)}}}const zO=\\\\\\\"tick\\\\\\\";const kO=new class extends ua{constructor(){super(...arguments),this.period=ha.INTEGER(1e3),this.count=ha.INTEGER(-1)}};class UO extends Va{constructor(){super(...arguments),this.paramsConfig=kO,this._timer_active=!1,this._current_count=0}static type(){return\\\\\\\"timer\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"start\\\\\\\",Qo.BASE,this._start_timer.bind(this)),new ta(\\\\\\\"stop\\\\\\\",Qo.BASE,this._stop_timer.bind(this))]),this.io.outputs.setNamedOutputConnectionPoints([new ta(zO,Qo.BASE)])}_start_timer(t){this._timer_active||(this._timer_active=!0,this._current_count=0),this._run_timer(t)}_stop_timer(){this._timer_active=!1}_run_timer(t){setTimeout((()=>{this._timer_active&&(this.pv.count<=0||this._current_count<this.pv.count?(this.dispatchEventToOutput(zO,t),this._current_count+=1,this._run_timer(t)):this._stop_timer())}),this.pv.period)}}const GO=new class extends ua{constructor(){super(...arguments),this.className=ha.STRING(\\\\\\\"active\\\\\\\")}};class VO extends Va{constructor(){super(...arguments),this.paramsConfig=GO}static type(){return\\\\\\\"viewer\\\\\\\"}initializeNode(){this.io.inputs.setNamedInputConnectionPoints([new ta(\\\\\\\"setCss\\\\\\\",Qo.BASE,this._process_trigger_setClass.bind(this)),new ta(\\\\\\\"unSetCss\\\\\\\",Qo.BASE,this._process_trigger_unsetClass.bind(this)),new ta(\\\\\\\"createControls\\\\\\\",Qo.BASE,this._process_trigger_createControls.bind(this)),new ta(\\\\\\\"disposeControls\\\\\\\",Qo.BASE,this._process_trigger_disposeControls.bind(this))])}_process_trigger_setClass(t){var e;const n=null===(e=t.viewer)||void 0===e?void 0:e.canvas();n&&n.classList.add(this.pv.className)}_process_trigger_unsetClass(t){var e;const n=null===(e=t.viewer)||void 0===e?void 0:e.canvas();n&&n.classList.remove(this.pv.className)}_process_trigger_createControls(t){this.scene().viewersRegister.traverseViewers((t=>{var e;null===(e=t.controlsController)||void 0===e||e.create_controls()}))}_process_trigger_disposeControls(t){this.scene().viewersRegister.traverseViewers((t=>{var e;null===(e=t.controlsController)||void 0===e||e.dispose_controls()}))}}class HO extends aa{static context(){return ts.EVENT}cook(){this.cookController.endCook()}}class jO extends HO{}class WO extends jO{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class qO extends jO{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class XO extends jO{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class YO extends jO{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class $O extends HO{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class JO extends jO{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}const ZO=\\\\\\\"int\\\\\\\";const KO=new class extends ua{constructor(){super(...arguments),this.float=ha.FLOAT(0)}};class QO extends gf{constructor(){super(...arguments),this.paramsConfig=KO}static type(){return\\\\\\\"floatToInt\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(ZO,Uo.INT)])}setLines(t){const e=this.variableForInputParam(this.p.float),n=`int ${this.glVarName(ZO)} = int(${mf.float(e)})`;t.addBodyLines(this,[n])}}const tP=\\\\\\\"float\\\\\\\";const eP=new class extends ua{constructor(){super(...arguments),this.int=ha.INTEGER(0)}};class nP extends gf{constructor(){super(...arguments),this.paramsConfig=eP}static type(){return\\\\\\\"intToFloat\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(tP,Uo.FLOAT)])}setLines(t){const e=this.variableForInputParam(this.p.int),n=`float ${this.glVarName(tP)} = float(${mf.integer(e)})`;t.addBodyLines(this,[n])}}const iP=\\\\\\\"bool\\\\\\\";const sP=new class extends ua{constructor(){super(...arguments),this.int=ha.INTEGER(0)}};class rP extends gf{constructor(){super(...arguments),this.paramsConfig=sP}static type(){return\\\\\\\"intToBool\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(iP,Uo.BOOL)])}setLines(t){const e=this.variableForInputParam(this.p.int),n=`bool ${this.glVarName(iP)} = bool(${mf.integer(e)})`;t.addBodyLines(this,[n])}}const oP=new class extends ua{constructor(){super(...arguments),this.bool=ha.BOOLEAN(0)}};class aP extends gf{constructor(){super(...arguments),this.paramsConfig=oP}static type(){return\\\\\\\"boolToInt\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(ZO,Uo.INT)])}setLines(t){const e=this.variableForInputParam(this.p.bool),n=`int ${this.glVarName(ZO)} = int(${mf.bool(e)})`;t.addBodyLines(this,[n])}}const lP=new class extends ua{constructor(){super(...arguments),this.x=ha.FLOAT(0),this.y=ha.FLOAT(0)}};class cP extends gf{constructor(){super(...arguments),this.paramsConfig=lP}static type(){return\\\\\\\"floatToVec2\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(cP.OUTPUT_NAME,Uo.VEC2)])}setLines(t){const e=this.variableForInputParam(this.p.x),n=this.variableForInputParam(this.p.y),i=`vec2 ${this.glVarName(cP.OUTPUT_NAME)} = ${mf.float2(e,n)}`;t.addBodyLines(this,[i])}}cP.OUTPUT_NAME=\\\\\\\"vec2\\\\\\\";const hP=new class extends ua{constructor(){super(...arguments),this.x=ha.FLOAT(0),this.y=ha.FLOAT(0),this.z=ha.FLOAT(0)}};class uP extends gf{constructor(){super(...arguments),this.paramsConfig=hP}static type(){return\\\\\\\"floatToVec3\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(uP.OUTPUT_NAME,Uo.VEC3)])}setLines(t){const e=this.variableForInputParam(this.p.x),n=this.variableForInputParam(this.p.y),i=this.variableForInputParam(this.p.z),s=`vec3 ${this.glVarName(uP.OUTPUT_NAME)} = ${mf.float3(e,n,i)}`;t.addBodyLines(this,[s])}}uP.OUTPUT_NAME=\\\\\\\"vec3\\\\\\\";const dP=new class extends ua{constructor(){super(...arguments),this.x=ha.FLOAT(0),this.y=ha.FLOAT(0),this.z=ha.FLOAT(0),this.w=ha.FLOAT(0)}};class pP extends gf{constructor(){super(...arguments),this.paramsConfig=dP}static type(){return\\\\\\\"floatToVec4\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(pP.OUTPUT_NAME,Uo.VEC4)])}setLines(t){const e=this.variableForInputParam(this.p.x),n=this.variableForInputParam(this.p.y),i=this.variableForInputParam(this.p.z),s=this.variableForInputParam(this.p.w),r=`vec4 ${this.glVarName(pP.OUTPUT_NAME)} = ${mf.float4(e,n,i,s)}`;t.addBodyLines(this,[r])}}pP.OUTPUT_NAME=\\\\\\\"vec4\\\\\\\";const _P=new class extends ua{};class mP extends gf{constructor(){super(...arguments),this.paramsConfig=_P}}function fP(t,e){const n=e.components,i=e.param_type;return class extends mP{static type(){return t}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints(n.map((t=>new qo(t,Uo.FLOAT))))}createParams(){this.addParam(i,\\\\\\\"vec\\\\\\\",n.map((t=>0)))}setLines(t){const e=[],n=this.variableForInput(\\\\\\\"vec\\\\\\\");this.io.outputs.used_output_names().forEach((t=>{const i=this.glVarName(t);e.push(`float ${i} = ${n}.${t}`)})),t.addBodyLines(this,e)}}}const gP=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\"],vP=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"],yP=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"];class xP extends(fP(\\\\\\\"vec2ToFloat\\\\\\\",{components:[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\"],param_type:Cr.VECTOR2})){}class bP extends(fP(\\\\\\\"vec3ToFloat\\\\\\\",{components:[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"],param_type:Cr.VECTOR3})){}class wP extends(fP(\\\\\\\"vec4ToFloat\\\\\\\",{components:yP,param_type:Cr.VECTOR4})){}class TP extends mP{static type(){return\\\\\\\"vec4ToVec3\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(TP.OUTPUT_NAME_VEC3,Uo.VEC3),new qo(TP.OUTPUT_NAME_W,Uo.FLOAT)])}createParams(){this.addParam(Cr.VECTOR4,TP.INPUT_NAME_VEC4,yP.map((t=>0)))}setLines(t){const e=[],n=TP.INPUT_NAME_VEC4,i=TP.OUTPUT_NAME_VEC3,s=TP.OUTPUT_NAME_W,r=this.variableForInput(n),o=this.io.outputs.used_output_names();if(o.indexOf(i)>=0){const t=this.glVarName(i);e.push(`vec3 ${t} = ${r}.xyz`)}if(o.indexOf(s)>=0){const t=this.glVarName(s);e.push(`float ${t} = ${r}.w`)}t.addBodyLines(this,e)}}TP.INPUT_NAME_VEC4=\\\\\\\"vec4\\\\\\\",TP.OUTPUT_NAME_VEC3=\\\\\\\"vec3\\\\\\\",TP.OUTPUT_NAME_W=\\\\\\\"w\\\\\\\";class AP extends mP{static type(){return\\\\\\\"vec3ToVec2\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(AP.OUTPUT_NAME_VEC2,Uo.VEC2),new qo(AP.OUTPUT_NAME_Z,Uo.FLOAT)])}createParams(){this.addParam(Cr.VECTOR3,AP.INPUT_NAME_VEC3,vP.map((t=>0)))}setLines(t){const e=[],n=AP.INPUT_NAME_VEC3,i=AP.OUTPUT_NAME_VEC2,s=AP.OUTPUT_NAME_Z,r=this.variableForInput(n),o=this.io.outputs.used_output_names();if(o.indexOf(i)>=0){const t=this.glVarName(i);e.push(`vec2 ${t} = ${r}.xy`)}if(o.indexOf(s)>=0){const t=this.glVarName(s);e.push(`float ${t} = ${r}.z`)}t.addBodyLines(this,e)}}AP.INPUT_NAME_VEC3=\\\\\\\"vec3\\\\\\\",AP.OUTPUT_NAME_VEC2=\\\\\\\"vec2\\\\\\\",AP.OUTPUT_NAME_Z=\\\\\\\"z\\\\\\\";class MP extends mP{static type(){return\\\\\\\"vec2ToVec3\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(MP.OUTPUT_NAME_VEC3,Uo.VEC3)])}createParams(){this.addParam(Cr.VECTOR2,MP.INPUT_NAME_VEC2,gP.map((t=>0))),this.addParam(Cr.FLOAT,MP.INPUT_NAME_Z,0)}setLines(t){const e=[],n=MP.INPUT_NAME_VEC2,i=MP.INPUT_NAME_Z,s=MP.OUTPUT_NAME_VEC3,r=this.variableForInput(n),o=this.variableForInput(i),a=this.glVarName(s);e.push(`vec3 ${a} = vec3(${r}.xy, ${o})`),t.addBodyLines(this,e)}}MP.INPUT_NAME_VEC2=\\\\\\\"vec3\\\\\\\",MP.INPUT_NAME_Z=\\\\\\\"z\\\\\\\",MP.OUTPUT_NAME_VEC3=\\\\\\\"vec3\\\\\\\";class EP extends mP{static type(){return\\\\\\\"vec3ToVec4\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(EP.OUTPUT_NAME_VEC4,Uo.VEC4)])}createParams(){this.addParam(Cr.VECTOR3,EP.INPUT_NAME_VEC3,vP.map((t=>0))),this.addParam(Cr.FLOAT,EP.INPUT_NAME_W,0)}setLines(t){const e=[],n=EP.INPUT_NAME_VEC3,i=EP.INPUT_NAME_W,s=EP.OUTPUT_NAME_VEC4,r=this.variableForInput(n),o=this.variableForInput(i),a=this.glVarName(s);e.push(`vec4 ${a} = vec4(${r}.xyz, ${o})`),t.addBodyLines(this,e)}}EP.INPUT_NAME_VEC3=\\\\\\\"vec3\\\\\\\",EP.INPUT_NAME_W=\\\\\\\"w\\\\\\\",EP.OUTPUT_NAME_VEC4=\\\\\\\"vec4\\\\\\\";const SP=new class extends ua{};class CP extends gf{constructor(){super(...arguments),this.paramsConfig=SP}gl_method_name(){return\\\\\\\"\\\\\\\"}gl_function_definitions(){return[]}initializeNode(){super.initializeNode(),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this)),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this))}_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;if(this.io.connections.firstInputConnection()){const e=this.io.connections.inputConnections();if(e){let n=Math.max(f.compact(e).length+1,2);return f.range(n).map((e=>t))}return[]}return f.range(2).map((e=>t))}_expected_output_types(){return[this._expected_input_types()[0]]}_gl_input_name(t){return\\\\\\\"in\\\\\\\"}setLines(t){const e=this.io.outputs.namedOutputConnectionPoints()[0].type(),n=this.io.inputs.namedInputConnectionPoints().map(((t,e)=>{const n=t.name();return mf.any(this.variableForInput(n))})).join(\\\\\\\", \\\\\\\"),i=`${e} ${this.glVarName(this.io.connection_points.output_name(0))} = ${this.gl_method_name()}(${n})`;t.addBodyLines(this,[i]),t.addDefinitions(this,this.gl_function_definitions())}}class NP extends CP{_gl_input_name(t){return\\\\\\\"in\\\\\\\"}_expected_input_types(){return[this.io.connection_points.first_input_connection_type()||Uo.FLOAT]}}class LP extends CP{_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;return[t,t]}}class OP extends CP{_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;return[t,t,t]}}class PP extends CP{_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;return[t,t,t,t]}}class RP extends CP{_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;return[t,t,t,t,t]}}function IP(t,e={}){const n=e.method||t,i=e.out||\\\\\\\"val\\\\\\\",s=e.in||\\\\\\\"in\\\\\\\";return class extends NP{static type(){return t}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this))}_gl_input_name(t){return s}_gl_output_name(t){return i}gl_method_name(){return n}}}class FP extends(IP(\\\\\\\"abs\\\\\\\")){}class DP extends(IP(\\\\\\\"acos\\\\\\\",{out:\\\\\\\"radians\\\\\\\"})){}class BP extends(IP(\\\\\\\"asin\\\\\\\",{out:\\\\\\\"radians\\\\\\\"})){}class zP extends(IP(\\\\\\\"atan\\\\\\\",{out:\\\\\\\"radians\\\\\\\"})){}class kP extends(IP(\\\\\\\"ceil\\\\\\\")){}class UP extends(IP(\\\\\\\"cos\\\\\\\",{in:\\\\\\\"radians\\\\\\\"})){}class GP extends(IP(\\\\\\\"degrees\\\\\\\",{in:\\\\\\\"radians\\\\\\\",out:\\\\\\\"degrees\\\\\\\"})){}class VP extends(IP(\\\\\\\"exp\\\\\\\")){}class HP extends(IP(\\\\\\\"exp2\\\\\\\")){}class jP extends(IP(\\\\\\\"floor\\\\\\\")){}class WP extends(IP(\\\\\\\"fract\\\\\\\")){}class qP extends(IP(\\\\\\\"inverseSqrt\\\\\\\",{method:\\\\\\\"inversesqrt\\\\\\\"})){}class XP extends(IP(\\\\\\\"log\\\\\\\")){}class YP extends(IP(\\\\\\\"log2\\\\\\\")){}class $P extends(IP(\\\\\\\"normalize\\\\\\\",{out:\\\\\\\"normalized\\\\\\\"})){}class JP extends(IP(\\\\\\\"radians\\\\\\\",{in:\\\\\\\"degrees\\\\\\\",out:\\\\\\\"radians\\\\\\\"})){}class ZP extends(IP(\\\\\\\"sign\\\\\\\")){}class KP extends(IP(\\\\\\\"sin\\\\\\\",{in:\\\\\\\"radians\\\\\\\"})){}class QP extends(IP(\\\\\\\"sqrt\\\\\\\")){}class tR extends(IP(\\\\\\\"tan\\\\\\\")){}function eR(t,e={}){const n=e.method||t,i=e.out||\\\\\\\"val\\\\\\\",s=e.in||[\\\\\\\"in0\\\\\\\",\\\\\\\"in1\\\\\\\"],r=e.default_in_type,o=e.allowed_in_types,a=e.out_type,l=e.functions||[];return class extends LP{static type(){return t}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this)),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),a&&this.io.connection_points.set_expected_output_types_function((()=>[a]))}_gl_input_name(t){return s[t]}_gl_output_name(t){return i}gl_method_name(){return n}gl_function_definitions(){return l?l.map((t=>new Cf(this,t))):[]}_expected_input_types(){let t=this.io.connection_points.first_input_connection_type();if(t&&o&&!o.includes(t)){const e=this.io.inputs.namedInputConnectionPoints()[0];t=e?e.type():r}const e=t||r||Uo.FLOAT;return[e,e]}}}class nR extends(eR(\\\\\\\"distance\\\\\\\",{in:[\\\\\\\"p0\\\\\\\",\\\\\\\"p1\\\\\\\"],default_in_type:Uo.VEC3,allowed_in_types:[Uo.VEC2,Uo.VEC3,Uo.VEC4],out_type:Uo.FLOAT})){}class iR extends(eR(\\\\\\\"dot\\\\\\\",{in:[\\\\\\\"vec0\\\\\\\",\\\\\\\"vec1\\\\\\\"],default_in_type:Uo.VEC3,allowed_in_types:[Uo.VEC2,Uo.VEC3,Uo.VEC4],out_type:Uo.FLOAT})){}class sR extends(eR(\\\\\\\"max\\\\\\\")){}class rR extends(eR(\\\\\\\"min\\\\\\\")){}class oR extends(eR(\\\\\\\"mod\\\\\\\")){paramDefaultValue(t){return{in1:1}[t]}_expected_input_types(){const t=Uo.FLOAT;return[t,t]}}class aR extends(eR(\\\\\\\"pow\\\\\\\",{in:[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\"]})){}class lR extends(eR(\\\\\\\"reflect\\\\\\\",{in:[\\\\\\\"I\\\\\\\",\\\\\\\"N\\\\\\\"],default_in_type:Uo.VEC3})){}class cR extends(eR(\\\\\\\"step\\\\\\\",{in:[\\\\\\\"edge\\\\\\\",\\\\\\\"x\\\\\\\"]})){}function hR(t,e={}){const n=e.method||t,i=e.out||\\\\\\\"val\\\\\\\",s=e.in||[\\\\\\\"in0\\\\\\\",\\\\\\\"in1\\\\\\\",\\\\\\\"in2\\\\\\\"],r=e.default||{},o=e.out_type||Uo.FLOAT,a=e.functions||[];return class extends OP{static type(){return t}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_gl_input_name(t){return s[t]}_gl_output_name(t){return i}gl_method_name(){return n}_expected_output_types(){return[o]}paramDefaultValue(t){return r[t]}gl_function_definitions(){return a.map((t=>new Cf(this,t)))}}}class uR extends(hR(\\\\\\\"clamp\\\\\\\",{in:[\\\\\\\"value\\\\\\\",\\\\\\\"min\\\\\\\",\\\\\\\"max\\\\\\\"],default:{max:1}})){_expected_output_types(){return[this._expected_input_types()[0]]}}class dR extends(hR(\\\\\\\"faceForward\\\\\\\",{in:[\\\\\\\"N\\\\\\\",\\\\\\\"I\\\\\\\",\\\\\\\"Nref\\\\\\\"]})){}class pR extends(hR(\\\\\\\"smoothstep\\\\\\\",{in:[\\\\\\\"edge0\\\\\\\",\\\\\\\"edge1\\\\\\\",\\\\\\\"x\\\\\\\"],default:{edge1:1}})){_expected_output_types(){return[this._expected_input_types()[0]]}}function _R(t,e){const n=e.in_prefix||t,i=e.out||\\\\\\\"val\\\\\\\",s=e.operation,r=e.allowed_in_types;return class extends LP{static type(){return t}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this)),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}setLines(t){const e=this.io.outputs.namedOutputConnectionPoints()[0].type(),n=this.io.inputs.namedInputConnectionPoints().map(((t,e)=>{const n=t.name(),i=this.variableForInput(n);if(i)return mf.any(i)})).join(` ${this.gl_operation()} `),i=`${e} ${this.glVarName(this.io.connection_points.output_name(0))} = ${this.gl_method_name()}(${n})`;t.addBodyLines(this,[i])}_gl_input_name(t){return`${n}${t}`}_gl_output_name(t){return i}gl_operation(){return s}_expected_input_types(){let t=this.io.connection_points.first_input_connection_type();if(t&&r&&!r.includes(t)){const e=this.io.inputs.namedInputConnectionPoints()[0];e&&(t=e.type())}const e=t||Uo.FLOAT,n=this.io.connections.existingInputConnections(),i=n?Math.max(n.length+1,2):2,s=[];for(let t=0;t<i;t++)s.push(e);return s}_expected_output_types(){const t=this._expected_input_types();return[t[1]||t[0]||Uo.FLOAT]}}}class mR extends(_R(\\\\\\\"add\\\\\\\",{in_prefix:\\\\\\\"add\\\\\\\",out:\\\\\\\"sum\\\\\\\",operation:\\\\\\\"+\\\\\\\"})){}class fR extends(_R(\\\\\\\"divide\\\\\\\",{in_prefix:\\\\\\\"div\\\\\\\",out:\\\\\\\"divide\\\\\\\",operation:\\\\\\\"/\\\\\\\"})){paramDefaultValue(t){return 1}}class gR extends(_R(\\\\\\\"substract\\\\\\\",{in_prefix:\\\\\\\"sub\\\\\\\",out:\\\\\\\"substract\\\\\\\",operation:\\\\\\\"-\\\\\\\"})){}class vR extends(_R(\\\\\\\"mult\\\\\\\",{in_prefix:\\\\\\\"mult\\\\\\\",out:\\\\\\\"product\\\\\\\",operation:\\\\\\\"*\\\\\\\"})){static type(){return\\\\\\\"mult\\\\\\\"}paramDefaultValue(t){return 1}initializeNode(){super.initializeNode(),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_expected_output_type(){const t=this._expected_input_types();return[t[t.length-1]]}_expected_input_types(){const t=this.io.connections.existingInputConnections();if(t){const e=t[0];if(e){const n=e.node_src.io.outputs.namedOutputConnectionPoints()[e.output_index].type(),i=Math.max(t.length+1,2),s=new Array(i);if(n==Uo.FLOAT){const e=t[1];if(e){const t=e.node_src.io.outputs.namedOutputConnectionPoints()[e.output_index].type();return t==Uo.FLOAT?s.fill(n):[n,t]}return[n,n]}return s.fill(n)}}return[Uo.FLOAT,Uo.FLOAT]}}class yR extends LP{initializeNode(){super.initializeNode(),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_expected_input_types(){return[Uo.BOOL,Uo.BOOL]}_expected_output_types(){return[Uo.BOOL]}setLines(t){const e=this.io.inputs.namedInputConnectionPoints().map(((t,e)=>{const n=t.name();return mf.any(this.variableForInput(n))})).join(` ${this.boolean_operation()} `),n=`bool ${this.glVarName(this.io.connection_points.output_name(0))} = ${e}`;t.addBodyLines(this,[n])}}function xR(t,e){return class extends yR{static type(){return t}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this))}boolean_operation(){return e.op}_gl_output_name(e){return t}_gl_input_name(e=0){return`${t}${e}`}}}class bR extends(xR(\\\\\\\"and\\\\\\\",{op:\\\\\\\"&&\\\\\\\"})){}class wR extends(xR(\\\\\\\"or\\\\\\\",{op:\\\\\\\"||\\\\\\\"})){}var TR;!function(t){t.TIME=\\\\\\\"time\\\\\\\",t.DELTA_TIME=\\\\\\\"delta_time\\\\\\\"}(TR||(TR={}));var AR,MR;!function(t){t.POSITION=\\\\\\\"position\\\\\\\",t.VELOCITY=\\\\\\\"velocity\\\\\\\",t.MASS=\\\\\\\"mass\\\\\\\",t.FORCE=\\\\\\\"force\\\\\\\"}(AR||(AR={})),function(t){t.POSITION=\\\\\\\"position\\\\\\\",t.VELOCITY=\\\\\\\"velocity\\\\\\\"}(MR||(MR={}));const ER=[AR.POSITION,AR.VELOCITY,AR.MASS,AR.FORCE],SR=[MR.POSITION,MR.VELOCITY],CR={[AR.POSITION]:[0,0,0],[AR.VELOCITY]:[0,0,0],[AR.MASS]:1,[AR.FORCE]:[0,-9.8,0]};const NR=new class extends ua{};class LR extends gf{constructor(){super(...arguments),this.paramsConfig=NR}static type(){return\\\\\\\"acceleration\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(MR.POSITION,Uo.VEC3),new qo(MR.VELOCITY,Uo.VEC3)]),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this)),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this))}_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.VEC3;return[t,t,Uo.FLOAT,t]}_expected_output_types(){const t=this._expected_input_types()[0];return[t,t]}_gl_input_name(t){return ER[t]}_gl_output_name(t){return SR[t]}paramDefaultValue(t){return CR[t]}setLines(t){const e=this.io.outputs.namedOutputConnectionPoints()[0].type(),n=new Nf(this,Uo.FLOAT,TR.DELTA_TIME),i=new Cf(this,\\\\\\\"float compute_velocity_from_acceleration(float vel, float force, float mass, float time_delta){\\\\n\\\\tfloat impulse = (force * mass) * time_delta;\\\\n\\\\treturn vel + impulse;\\\\n}\\\\nvec2 compute_velocity_from_acceleration(vec2 vel, vec2 force, float mass, float time_delta){\\\\n\\\\tvec2 impulse = (force * mass) * time_delta;\\\\n\\\\treturn vel + impulse;\\\\n}\\\\nvec3 compute_velocity_from_acceleration(vec3 vel, vec3 force, float mass, float time_delta){\\\\n\\\\tvec3 impulse = (force * mass) * time_delta;\\\\n\\\\treturn vel + impulse;\\\\n}\\\\nvec4 compute_velocity_from_acceleration(vec4 vel, vec4 force, float mass, float time_delta){\\\\n\\\\tvec4 impulse = (force * mass) * time_delta;\\\\n\\\\treturn vel + impulse;\\\\n}\\\\nfloat compute_position_from_velocity(float position, float velocity, float time_delta){\\\\n\\\\treturn position + (velocity * time_delta);\\\\n}\\\\nvec2 compute_position_from_velocity(vec2 position, vec2 velocity, float time_delta){\\\\n\\\\treturn position + (velocity * time_delta);\\\\n}\\\\nvec3 compute_position_from_velocity(vec3 position, vec3 velocity, float time_delta){\\\\n\\\\treturn position + (velocity * time_delta);\\\\n}\\\\nvec4 compute_position_from_velocity(vec4 position, vec4 velocity, float time_delta){\\\\n\\\\treturn position + (velocity * time_delta);\\\\n}\\\\\\\");t.addDefinitions(this,[n,i]);const s=mf.any(this.variableForInput(AR.POSITION)),r=mf.any(this.variableForInput(AR.VELOCITY)),o=mf.float(this.variableForInput(AR.MASS)),a=mf.any(this.variableForInput(AR.FORCE)),l=this.glVarName(MR.POSITION),c=this.glVarName(MR.VELOCITY),h=`${e} ${c} = compute_velocity_from_acceleration(${[r,a,o,TR.DELTA_TIME].join(\\\\\\\", \\\\\\\")})`,u=`${e} ${l} = compute_position_from_velocity(${[s,c,TR.DELTA_TIME].join(\\\\\\\", \\\\\\\")})`;t.addBodyLines(this,[h,u])}}var OR,PR=\\\\\\\"\\\\n\\\\n// https://github.com/mattatz/ShibuyaCrowd/blob/master/source/shaders/common/quaternion.glsl\\\\nvec4 quatMult(vec4 q1, vec4 q2)\\\\n{\\\\n\\\\treturn vec4(\\\\n\\\\tq1.w * q2.x + q1.x * q2.w + q1.z * q2.y - q1.y * q2.z,\\\\n\\\\tq1.w * q2.y + q1.y * q2.w + q1.x * q2.z - q1.z * q2.x,\\\\n\\\\tq1.w * q2.z + q1.z * q2.w + q1.y * q2.x - q1.x * q2.y,\\\\n\\\\tq1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\\\\n\\\\t);\\\\n}\\\\n// http://glmatrix.net/docs/quat.js.html#line97\\\\n//   let ax = a[0], ay = a[1], az = a[2], aw = a[3];\\\\n\\\\n//   let bx = b[0], by = b[1], bz = b[2], bw = b[3];\\\\n\\\\n//   out[0] = ax * bw + aw * bx + ay * bz - az * by;\\\\n\\\\n//   out[1] = ay * bw + aw * by + az * bx - ax * bz;\\\\n\\\\n//   out[2] = az * bw + aw * bz + ax * by - ay * bx;\\\\n\\\\n//   out[3] = aw * bw - ax * bx - ay * by - az * bz;\\\\n\\\\n//   return out\\\\n\\\\n\\\\n\\\\n// http://www.neilmendoza.com/glsl-rotation-about-an-arbitrary-axis/\\\\nmat4 rotationMatrix(vec3 axis, float angle)\\\\n{\\\\n\\\\taxis = normalize(axis);\\\\n\\\\tfloat s = sin(angle);\\\\n\\\\tfloat c = cos(angle);\\\\n\\\\tfloat oc = 1.0 - c;\\\\n\\\\n \\\\treturn mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s,  oc * axis.z * axis.x + axis.y * s, 0.0, oc * axis.x * axis.y + axis.z * s,  oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s,  0.0, oc * axis.z * axis.x - axis.y * s,  oc * axis.y * axis.z + axis.x * s,  oc * axis.z * axis.z + c, 0.0, 0.0, 0.0, 0.0, 1.0);\\\\n}\\\\n\\\\n// https://www.geeks3d.com/20141201/how-to-rotate-a-vertex-by-a-quaternion-in-glsl/\\\\nvec4 quatFromAxisAngle(vec3 axis, float angle)\\\\n{\\\\n\\\\tvec4 qr;\\\\n\\\\tfloat half_angle = (angle * 0.5); // * 3.14159 / 180.0;\\\\n\\\\tfloat sin_half_angle = sin(half_angle);\\\\n\\\\tqr.x = axis.x * sin_half_angle;\\\\n\\\\tqr.y = axis.y * sin_half_angle;\\\\n\\\\tqr.z = axis.z * sin_half_angle;\\\\n\\\\tqr.w = cos(half_angle);\\\\n\\\\treturn qr;\\\\n}\\\\nvec3 rotateWithAxisAngle(vec3 position, vec3 axis, float angle)\\\\n{\\\\n\\\\tvec4 q = quatFromAxisAngle(axis, angle);\\\\n\\\\tvec3 v = position.xyz;\\\\n\\\\treturn v + 2.0 * cross(q.xyz, cross(q.xyz, v) + q.w * v);\\\\n}\\\\n// vec3 applyQuaternionToVector( vec4 q, vec3 v ){\\\\n// \\\\treturn v + 2.0 * cross( q.xyz, cross( q.xyz, v ) + q.w * v );\\\\n// }\\\\nvec3 rotateWithQuat( vec3 v, vec4 q )\\\\n{\\\\n\\\\t// vec4 qv = multQuat( quat, vec4(vec, 0.0) );\\\\n\\\\t// return multQuat( qv, vec4(-quat.x, -quat.y, -quat.z, quat.w) ).xyz;\\\\n\\\\treturn v + 2.0 * cross( q.xyz, cross( q.xyz, v ) + q.w * v );\\\\n}\\\\n// https://github.com/glslify/glsl-look-at/blob/gh-pages/index.glsl\\\\n// mat3 rotation_matrix(vec3 origin, vec3 target, float roll) {\\\\n// \\\\tvec3 rr = vec3(sin(roll), cos(roll), 0.0);\\\\n// \\\\tvec3 ww = normalize(target - origin);\\\\n// \\\\tvec3 uu = normalize(cross(ww, rr));\\\\n// \\\\tvec3 vv = normalize(cross(uu, ww));\\\\n\\\\n// \\\\treturn mat3(uu, vv, ww);\\\\n// }\\\\n// mat3 rotation_matrix(vec3 target, float roll) {\\\\n// \\\\tvec3 rr = vec3(sin(roll), cos(roll), 0.0);\\\\n// \\\\tvec3 ww = normalize(target);\\\\n// \\\\tvec3 uu = normalize(cross(ww, rr));\\\\n// \\\\tvec3 vv = normalize(cross(uu, ww));\\\\n\\\\n// \\\\treturn mat3(uu, vv, ww);\\\\n// }\\\\n\\\\nfloat vectorAngle(vec3 start, vec3 dest){\\\\n\\\\tstart = normalize(start);\\\\n\\\\tdest = normalize(dest);\\\\n\\\\n\\\\tfloat cosTheta = dot(start, dest);\\\\n\\\\tvec3 c1 = cross(start, dest);\\\\n\\\\t// We use the dot product of the cross with the Y axis.\\\\n\\\\t// This is a little arbitrary, but can still give a good sense of direction\\\\n\\\\tvec3 y_axis = vec3(0.0, 1.0, 0.0);\\\\n\\\\tfloat d1 = dot(c1, y_axis);\\\\n\\\\tfloat angle = acos(cosTheta) * sign(d1);\\\\n\\\\treturn angle;\\\\n}\\\\n\\\\n// http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-17-quaternions/#i-need-an-equivalent-of-glulookat-how-do-i-orient-an-object-towards-a-point-\\\\nvec4 vectorAlign(vec3 start, vec3 dest){\\\\n\\\\tstart = normalize(start);\\\\n\\\\tdest = normalize(dest);\\\\n\\\\n\\\\tfloat cosTheta = dot(start, dest);\\\\n\\\\tvec3 axis;\\\\n\\\\n\\\\t// if (cosTheta < -1 + 0.001f){\\\\n\\\\t// \\\\t// special case when vectors in opposite directions:\\\\n\\\\t// \\\\t// there is no ideal rotation axis\\\\n\\\\t// \\\\t// So guess one; any will do as long as it's perpendicular to start\\\\n\\\\t// \\\\taxis = cross(vec3(0.0f, 0.0f, 1.0f), start);\\\\n\\\\t// \\\\tif (length2(axis) < 0.01 ) // bad luck, they were parallel, try again!\\\\n\\\\t// \\\\t\\\\taxis = cross(vec3(1.0f, 0.0f, 0.0f), start);\\\\n\\\\n\\\\t// \\\\taxis = normalize(axis);\\\\n\\\\t// \\\\treturn gtx::quaternion::angleAxis(glm::radians(180.0f), axis);\\\\n\\\\t// }\\\\n\\\\tif(cosTheta > (1.0 - 0.0001) || cosTheta < (-1.0 + 0.0001) ){\\\\n\\\\t\\\\taxis = normalize(cross(start, vec3(0.0, 1.0, 0.0)));\\\\n\\\\t\\\\tif (length(axis) < 0.001 ){ // bad luck, they were parallel, try again!\\\\n\\\\t\\\\t\\\\taxis = normalize(cross(start, vec3(1.0, 0.0, 0.0)));\\\\n\\\\t\\\\t}\\\\n\\\\t} else {\\\\n\\\\t\\\\taxis = normalize(cross(start, dest));\\\\n\\\\t}\\\\n\\\\n\\\\tfloat angle = acos(cosTheta);\\\\n\\\\n\\\\treturn quatFromAxisAngle(axis, angle);\\\\n}\\\\nvec4 vectorAlignWithUp(vec3 start, vec3 dest, vec3 up){\\\\n\\\\tvec4 rot1 = vectorAlign(start, dest);\\\\n\\\\tup = normalize(up);\\\\n\\\\n\\\\t// Recompute desiredUp so that it's perpendicular to the direction\\\\n\\\\t// You can skip that part if you really want to force desiredUp\\\\n\\\\t// vec3 right = normalize(cross(dest, up));\\\\n\\\\t// up = normalize(cross(right, dest));\\\\n\\\\n\\\\t// Because of the 1rst rotation, the up is probably completely screwed up.\\\\n\\\\t// Find the rotation between the up of the rotated object, and the desired up\\\\n\\\\tvec3 newUp = rotateWithQuat(vec3(0.0, 1.0, 0.0), rot1);//rot1 * vec3(0.0, 1.0, 0.0);\\\\n\\\\tvec4 rot2 = vectorAlign(up, newUp);\\\\n\\\\n\\\\t// return rot1;\\\\n\\\\treturn rot2;\\\\n\\\\t// return multQuat(rot1, rot2);\\\\n\\\\t// return rot2 * rot1;\\\\n\\\\n}\\\\n\\\\n// https://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\\\\nfloat quatToAngle(vec4 q){\\\\n\\\\treturn 2.0 * acos(q.w);\\\\n}\\\\nvec3 quatToAxis(vec4 q){\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\tq.x / sqrt(1.0-q.w*q.w),\\\\n\\\\t\\\\tq.y / sqrt(1.0-q.w*q.w),\\\\n\\\\t\\\\tq.z / sqrt(1.0-q.w*q.w)\\\\n\\\\t);\\\\n}\\\\n\\\\nvec4 align(vec3 dir, vec3 up){\\\\n\\\\tvec3 start_dir = vec3(0.0, 0.0, 1.0);\\\\n\\\\tvec3 start_up = vec3(0.0, 1.0, 0.0);\\\\n\\\\tvec4 rot1 = vectorAlign(start_dir, dir);\\\\n\\\\tup = normalize(up);\\\\n\\\\n\\\\t// Recompute desiredUp so that it's perpendicular to the direction\\\\n\\\\t// You can skip that part if you really want to force desiredUp\\\\n\\\\tvec3 right = normalize(cross(dir, up));\\\\n\\\\tif(length(right)<0.001){\\\\n\\\\t\\\\tright = vec3(1.0, 0.0, 0.0);\\\\n\\\\t}\\\\n\\\\tup = normalize(cross(right, dir));\\\\n\\\\n\\\\t// Because of the 1rst rotation, the up is probably completely screwed up.\\\\n\\\\t// Find the rotation between the up of the rotated object, and the desired up\\\\n\\\\tvec3 newUp = rotateWithQuat(start_up, rot1);//rot1 * vec3(0.0, 1.0, 0.0);\\\\n\\\\tvec4 rot2 = vectorAlign(normalize(newUp), up);\\\\n\\\\n\\\\t// return rot1;\\\\n\\\\treturn quatMult(rot1, rot2);\\\\n\\\\t// return rot2 * rot1;\\\\n\\\\n}\\\\\\\";!function(t){t.DIR=\\\\\\\"dir\\\\\\\",t.UP=\\\\\\\"up\\\\\\\"}(OR||(OR={}));const RR=[OR.DIR,OR.UP],IR={[OR.DIR]:[0,0,1],[OR.UP]:[0,1,0]};class FR extends LP{static type(){return\\\\\\\"align\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>RR[t])),this.io.connection_points.set_expected_input_types_function((()=>[Uo.VEC3,Uo.VEC3])),this.io.connection_points.set_expected_output_types_function((()=>[Uo.VEC4]))}paramDefaultValue(t){return IR[t]}gl_method_name(){return\\\\\\\"align\\\\\\\"}gl_function_definitions(){return[new Cf(this,PR)]}}var DR;!function(t){t.LINEAR=\\\\\\\"Linear\\\\\\\",t.GAMMA=\\\\\\\"Gamma\\\\\\\",t.SRGB=\\\\\\\"sRGB\\\\\\\",t.RGBE=\\\\\\\"RGBE\\\\\\\",t.RGBM=\\\\\\\"RGBM\\\\\\\",t.RGBD=\\\\\\\"RGBD\\\\\\\",t.LogLuv=\\\\\\\"LogLuv\\\\\\\"}(DR||(DR={}));const BR=[DR.LINEAR,DR.GAMMA,DR.SRGB,DR.RGBE,DR.RGBM,DR.RGBD,DR.LogLuv];const zR=new class extends ua{constructor(){super(...arguments),this.color=ha.VECTOR4([1,1,1,1]),this.from=ha.INTEGER(BR.indexOf(DR.LINEAR),{menu:{entries:BR.map(((t,e)=>({name:t,value:e})))}}),this.to=ha.INTEGER(BR.indexOf(DR.GAMMA),{menu:{entries:BR.map(((t,e)=>({name:t,value:e})))}}),this.gammaFactor=ha.FLOAT(2.2)}};class kR extends gf{constructor(){super(...arguments),this.paramsConfig=zR}static type(){return\\\\\\\"colorCorrect\\\\\\\"}initializeNode(){this.io.connection_points.spare_params.set_inputless_param_names([\\\\\\\"to\\\\\\\",\\\\\\\"from\\\\\\\"]),this.io.outputs.setNamedOutputConnectionPoints([new qo(kR.OUTPUT_NAME,Uo.VEC4)])}setLines(t){const e=BR[this.pv.from],n=BR[this.pv.to],i=this.glVarName(kR.OUTPUT_NAME),s=mf.any(this.variableForInput(kR.INPUT_NAME)),r=[];if(e!=n){const t=`${e}To${n}`,o=[];if(o.push(s),e==DR.GAMMA||n==DR.GAMMA){const t=mf.any(this.variableForInputParam(this.p.gammaFactor));o.push(t)}r.push(`vec4 ${i} = ${t}(${o.join(\\\\\\\", \\\\\\\")})`)}else r.push(`vec4 ${i} = ${s}`);t.addBodyLines(this,r)}}var UR,GR;kR.INPUT_NAME=\\\\\\\"color\\\\\\\",kR.INPUT_GAMMA_FACTOR=\\\\\\\"gammaFactor\\\\\\\",kR.OUTPUT_NAME=\\\\\\\"out\\\\\\\",function(t){t.EQUAL=\\\\\\\"Equal\\\\\\\",t.LESS_THAN=\\\\\\\"Less Than\\\\\\\",t.GREATER_THAN=\\\\\\\"Greater Than\\\\\\\",t.LESS_THAN_OR_EQUAL=\\\\\\\"Less Than Or Equal\\\\\\\",t.GREATER_THAN_OR_EQUAL=\\\\\\\"Greater Than Or Equal\\\\\\\",t.NOT_EQUAL=\\\\\\\"Not Equal\\\\\\\"}(UR||(UR={})),function(t){t.EQUAL=\\\\\\\"==\\\\\\\",t.LESS_THAN=\\\\\\\"<\\\\\\\",t.GREATER_THAN=\\\\\\\">\\\\\\\",t.LESS_THAN_OR_EQUAL=\\\\\\\"<=\\\\\\\",t.GREATER_THAN_OR_EQUAL=\\\\\\\">=\\\\\\\",t.NOT_EQUAL=\\\\\\\"!=\\\\\\\"}(GR||(GR={}));const VR=[UR.EQUAL,UR.LESS_THAN,UR.GREATER_THAN,UR.LESS_THAN_OR_EQUAL,UR.GREATER_THAN_OR_EQUAL,UR.NOT_EQUAL],HR=[GR.EQUAL,GR.LESS_THAN,GR.GREATER_THAN,GR.LESS_THAN_OR_EQUAL,GR.GREATER_THAN_OR_EQUAL,GR.NOT_EQUAL],jR=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"];const WR=new class extends ua{constructor(){super(...arguments),this.test=ha.INTEGER(0,{menu:{entries:VR.map(((t,e)=>({name:`${HR[e].padEnd(2,\\\\\\\" \\\\\\\")} (${t})`,value:e})))}})}};class qR extends gf{constructor(){super(...arguments),this.paramsConfig=WR}static type(){return\\\\\\\"compare\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.spare_params.set_inputless_param_names([\\\\\\\"test\\\\\\\"]),this.io.connection_points.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function((t=>\\\\\\\"val\\\\\\\")),this.io.connection_points.set_expected_input_types_function(this._expected_input_type.bind(this)),this.io.connection_points.set_expected_output_types_function((()=>[Uo.BOOL]))}set_test_name(t){this.p.test.set(VR.indexOf(t))}_gl_input_name(t){return[\\\\\\\"value0\\\\\\\",\\\\\\\"value1\\\\\\\"][t]}_expected_input_type(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;return[t,t]}setLines(t){const e=[],n=this.glVarName(\\\\\\\"val\\\\\\\"),i=HR[this.pv.test],s=mf.any(this.variableForInput(this._gl_input_name(0))),r=mf.any(this.variableForInput(this._gl_input_name(1))),o=this.io.inputs.namedInputConnectionPoints()[0];let a=1;if(o&&(a=Wo[o.type()]||1),a>1){let t=[];for(let n=0;n<a;n++){const o=this.glVarName(`tmp_value_${n}`),a=jR[n];t.push(o),e.push(`bool ${o} = (${s}.${a} ${i} ${r}.${a})`)}e.push(`bool ${n} = (${t.join(\\\\\\\" && \\\\\\\")})`)}else e.push(`bool ${n} = (${s} ${i} ${r})`);t.addBodyLines(this,e)}}class XR extends NP{static type(){return\\\\\\\"complement\\\\\\\"}gl_method_name(){return\\\\\\\"complement\\\\\\\"}gl_function_definitions(){return[new Cf(this,\\\\\\\"float complement(float x){return 1.0-x;}\\\\nvec2 complement(vec2 x){return vec2(1.0-x.x, 1.0-x.y);}\\\\nvec3 complement(vec3 x){return vec3(1.0-x.x, 1.0-x.y, 1.0-x.z);}\\\\nvec4 complement(vec4 x){return vec4(1.0-x.x, 1.0-x.y, 1.0-x.z, 1.0-x.w);}\\\\n\\\\\\\")]}}function YR(t){return{visibleIf:{type:Go.indexOf(t)}}}const $R=new class extends ua{constructor(){super(...arguments),this.type=ha.INTEGER(Go.indexOf(Uo.FLOAT),{menu:{entries:Go.map(((t,e)=>({name:t,value:e})))}}),this.bool=ha.BOOLEAN(0,YR(Uo.BOOL)),this.int=ha.INTEGER(0,YR(Uo.INT)),this.float=ha.FLOAT(0,YR(Uo.FLOAT)),this.vec2=ha.VECTOR2([0,0],YR(Uo.VEC2)),this.vec3=ha.VECTOR3([0,0,0],YR(Uo.VEC3)),this.vec4=ha.VECTOR4([0,0,0,0],YR(Uo.VEC4))}};class JR extends gf{constructor(){super(...arguments),this.paramsConfig=$R,this._allow_inputs_created_from_params=!1}static type(){return\\\\\\\"constant\\\\\\\"}initializeNode(){this.io.connection_points.set_output_name_function((t=>JR.OUTPUT_NAME)),this.io.connection_points.set_expected_input_types_function((()=>[])),this.io.connection_points.set_expected_output_types_function((()=>[this._current_connection_type]))}setLines(t){const e=this._current_param;if(e){const n=this._current_connection_type;let i=mf.any(e.value);e.name()==this.p.int.name()&&m.isNumber(e.value)&&(i=mf.integer(e.value));const s=`${n} ${this._current_var_name} = ${i}`;t.addBodyLines(this,[s])}else console.warn(`no param found for constant node for type '${this.pv.type}'`)}get _current_connection_type(){null==this.pv.type&&console.warn(\\\\\\\"constant gl node type if not valid\\\\\\\");const t=Go[this.pv.type];return null==t&&console.warn(\\\\\\\"constant gl node type if not valid\\\\\\\"),t}get _current_param(){this._params_by_type=this._params_by_type||new Map([[Uo.BOOL,this.p.bool],[Uo.INT,this.p.int],[Uo.FLOAT,this.p.float],[Uo.VEC2,this.p.vec2],[Uo.VEC3,this.p.vec3],[Uo.VEC4,this.p.vec4]]);const t=Go[this.pv.type];return this._params_by_type.get(t)}get _current_var_name(){return this.glVarName(JR.OUTPUT_NAME)}set_gl_type(t){this.p.type.set(Go.indexOf(t))}}JR.OUTPUT_NAME=\\\\\\\"val\\\\\\\";const ZR=\\\\\\\"cross\\\\\\\";const KR=new class extends ua{constructor(){super(...arguments),this.x=ha.VECTOR3([0,0,1]),this.y=ha.VECTOR3([0,1,0])}};class QR extends gf{constructor(){super(...arguments),this.paramsConfig=KR}static type(){return\\\\\\\"cross\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(ZR,Uo.VEC3)])}setLines(t){const e=mf.float(this.variableForInputParam(this.p.x)),n=mf.float(this.variableForInputParam(this.p.y)),i=`vec3 ${this.glVarName(ZR)} = cross(${e}, ${n})`;t.addBodyLines(this,[i])}}class tI extends(hR(\\\\\\\"cycle\\\\\\\",{in:[\\\\\\\"in\\\\\\\",\\\\\\\"min\\\\\\\",\\\\\\\"max\\\\\\\"],default:{max:1},functions:[\\\\\\\"float cycle(float val, float val_min, float val_max){\\\\n\\\\tif(val >= val_min && val < val_max){\\\\n\\\\t\\\\treturn val;\\\\n\\\\t} else {\\\\n\\\\t\\\\tfloat range = val_max - val_min;\\\\n\\\\t\\\\tif(val >= val_max){\\\\n\\\\t\\\\t\\\\tfloat delta = (val - val_max);\\\\n\\\\t\\\\t\\\\treturn val_min + mod(delta, range);\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tfloat delta = (val_min - val);\\\\n\\\\t\\\\t\\\\treturn val_max - mod(delta, range);\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n}\\\\\\\"]})){}var eI=\\\\\\\"float disk_feather(float dist, float radius, float feather){\\\\n\\\\tif(feather <= 0.0){\\\\n\\\\t\\\\tif(dist < radius){return 1.0;}else{return 0.0;}\\\\n\\\\t} else {\\\\n\\\\t\\\\tfloat half_feather = feather * 0.5;\\\\n\\\\t\\\\tif(dist < (radius - half_feather)){\\\\n\\\\t\\\\t\\\\treturn 1.0;\\\\n\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\tif(dist > (radius + half_feather)){\\\\n\\\\t\\\\t\\\\t\\\\treturn 0.0;\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\t\\\\tfloat feather_start = (radius - half_feather);\\\\n\\\\t\\\\t\\\\t\\\\tfloat blend = 1.0 - (dist - feather_start) / feather;\\\\n\\\\t\\\\t\\\\t\\\\treturn blend;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n}\\\\n\\\\nfloat disk2d(vec2 pos, vec2 center, float radius, float feather){\\\\n\\\\tfloat dist = distance(pos, center);\\\\n\\\\treturn disk_feather(dist, radius, feather);\\\\n}\\\\n\\\\n// function could be called sphere, but is an overload of disk, and is the same\\\\nfloat disk3d(vec3 pos, vec3 center, float radius, float feather){\\\\n\\\\tfloat dist = distance(pos, center);\\\\n\\\\treturn disk_feather(dist, radius, feather);\\\\n}\\\\\\\";const nI=new class extends ua{constructor(){super(...arguments),this.position=ha.VECTOR2([0,0]),this.center=ha.VECTOR2([0,0]),this.radius=ha.FLOAT(1),this.feather=ha.FLOAT(.1)}};class iI extends gf{constructor(){super(...arguments),this.paramsConfig=nI}static type(){return\\\\\\\"disk\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"float\\\\\\\",Uo.FLOAT)])}setLines(t){const e=mf.vector2(this.variableForInputParam(this.p.position)),n=mf.vector2(this.variableForInputParam(this.p.center)),i=mf.float(this.variableForInputParam(this.p.radius)),s=mf.float(this.variableForInputParam(this.p.feather)),r=`float ${this.glVarName(\\\\\\\"float\\\\\\\")} = disk2d(${e}, ${n}, ${i}, ${s})`;t.addBodyLines(this,[r]),t.addDefinitions(this,[new Cf(this,eI)])}}var sI=\\\\\\\"\\\\nfloat bounceOut(float t) {\\\\n  const float a = 4.0 / 11.0;\\\\n  const float b = 8.0 / 11.0;\\\\n  const float c = 9.0 / 10.0;\\\\n\\\\n  const float ca = 4356.0 / 361.0;\\\\n  const float cb = 35442.0 / 1805.0;\\\\n  const float cc = 16061.0 / 1805.0;\\\\n\\\\n  float t2 = t * t;\\\\n\\\\n  return t < a\\\\n    ? 7.5625 * t2\\\\n    : t < b\\\\n      ? 9.075 * t2 - 9.9 * t + 3.4\\\\n      : t < c\\\\n        ? ca * t2 - cb * t + cc\\\\n        : 10.8 * t * t - 20.52 * t + 10.72;\\\\n}\\\\n\\\\n\\\\\\\";const rI=[\\\\\\\"back-in-out\\\\\\\",\\\\\\\"back-in\\\\\\\",\\\\\\\"back-out\\\\\\\",\\\\\\\"bounce-in-out\\\\\\\",\\\\\\\"bounce-in\\\\\\\",\\\\\\\"bounce-out\\\\\\\",\\\\\\\"circular-in-out\\\\\\\",\\\\\\\"circular-in\\\\\\\",\\\\\\\"circular-out\\\\\\\",\\\\\\\"cubic-in-out\\\\\\\",\\\\\\\"cubic-in\\\\\\\",\\\\\\\"cubic-out\\\\\\\",\\\\\\\"elastic-in-out\\\\\\\",\\\\\\\"elastic-in\\\\\\\",\\\\\\\"elastic-out\\\\\\\",\\\\\\\"exponential-in-out\\\\\\\",\\\\\\\"exponential-in\\\\\\\",\\\\\\\"exponential-out\\\\\\\",\\\\\\\"linear\\\\\\\",\\\\\\\"quadratic-in-out\\\\\\\",\\\\\\\"quadratic-in\\\\\\\",\\\\\\\"quadratic-out\\\\\\\",\\\\\\\"sine-in-out\\\\\\\",\\\\\\\"sine-in\\\\\\\",\\\\\\\"sine-out\\\\\\\"],oI={\\\\\\\"circular-in-out\\\\\\\":\\\\\\\"float circularInOut(float t) {\\\\n  return t < 0.5\\\\n    ? 0.5 * (1.0 - sqrt(1.0 - 4.0 * t * t))\\\\n    : 0.5 * (sqrt((3.0 - 2.0 * t) * (2.0 * t - 1.0)) + 1.0);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"exponential-in-out\\\\\\\":\\\\\\\"float exponentialInOut(float t) {\\\\n  return t == 0.0 || t == 1.0\\\\n    ? t\\\\n    : t < 0.5\\\\n      ? +0.5 * pow(2.0, (20.0 * t) - 10.0)\\\\n      : -0.5 * pow(2.0, 10.0 - (t * 20.0)) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"circular-in\\\\\\\":\\\\\\\"float circularIn(float t) {\\\\n  return 1.0 - sqrt(1.0 - t * t);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"elastic-out\\\\\\\":\\\\\\\"#ifndef HALF_PI\\\\n#define HALF_PI 1.5707963267948966\\\\n#endif\\\\n\\\\nfloat elasticOut(float t) {\\\\n  return sin(-13.0 * (t + 1.0) * HALF_PI) * pow(2.0, -10.0 * t) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"cubic-in\\\\\\\":\\\\\\\"float cubicIn(float t) {\\\\n  return t * t * t;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"exponential-out\\\\\\\":\\\\\\\"float exponentialOut(float t) {\\\\n  return t == 1.0 ? t : 1.0 - pow(2.0, -10.0 * t);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quintic-out\\\\\\\":\\\\\\\"float quinticOut(float t) {\\\\n  return 1.0 - (pow(t - 1.0, 5.0));\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"elastic-in-out\\\\\\\":\\\\\\\"#ifndef HALF_PI\\\\n#define HALF_PI 1.5707963267948966\\\\n#endif\\\\n\\\\nfloat elasticInOut(float t) {\\\\n  return t < 0.5\\\\n    ? 0.5 * sin(+13.0 * HALF_PI * 2.0 * t) * pow(2.0, 10.0 * (2.0 * t - 1.0))\\\\n    : 0.5 * sin(-13.0 * HALF_PI * ((2.0 * t - 1.0) + 1.0)) * pow(2.0, -10.0 * (2.0 * t - 1.0)) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",linear:\\\\\\\"float linear(float t) {\\\\n  return t;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"circular-out\\\\\\\":\\\\\\\"float circularOut(float t) {\\\\n  return sqrt((2.0 - t) * t);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"back-in-out\\\\\\\":\\\\\\\"\\\\nfloat backInOut(float t) {\\\\n  float f = t < 0.5\\\\n    ? 2.0 * t\\\\n    : 1.0 - (2.0 * t - 1.0);\\\\n\\\\n  float g = pow(f, 3.0) - f * sin(f * PI);\\\\n\\\\n  return t < 0.5\\\\n    ? 0.5 * g\\\\n    : 0.5 * (1.0 - g) + 0.5;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"back-in\\\\\\\":\\\\\\\"\\\\nfloat backIn(float t) {\\\\n  return pow(t, 3.0) - t * sin(t * PI);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"sine-in\\\\\\\":\\\\\\\"#ifndef HALF_PI\\\\n#define HALF_PI 1.5707963267948966\\\\n#endif\\\\n\\\\nfloat sineIn(float t) {\\\\n  return sin((t - 1.0) * HALF_PI) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"back-out\\\\\\\":\\\\\\\"\\\\nfloat backOut(float t) {\\\\n  float f = 1.0 - t;\\\\n  return 1.0 - (pow(f, 3.0) - f * sin(f * PI));\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quartic-in-out\\\\\\\":\\\\\\\"float quarticInOut(float t) {\\\\n  return t < 0.5\\\\n    ? +8.0 * pow(t, 4.0)\\\\n    : -8.0 * pow(t - 1.0, 4.0) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quadratic-in\\\\\\\":\\\\\\\"float quadraticIn(float t) {\\\\n  return t * t;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"cubic-in-out\\\\\\\":\\\\\\\"float cubicInOut(float t) {\\\\n  return t < 0.5\\\\n    ? 4.0 * t * t * t\\\\n    : 0.5 * pow(2.0 * t - 2.0, 3.0) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"elastic-in\\\\\\\":\\\\\\\"#ifndef HALF_PI\\\\n#define HALF_PI 1.5707963267948966\\\\n#endif\\\\n\\\\nfloat elasticIn(float t) {\\\\n  return sin(13.0 * t * HALF_PI) * pow(2.0, 10.0 * (t - 1.0));\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"bounce-out\\\\\\\":sI,\\\\\\\"quadratic-in-out\\\\\\\":\\\\\\\"float quadraticInOut(float t) {\\\\n  float p = 2.0 * t * t;\\\\n  return t < 0.5 ? p : -p + (4.0 * t) - 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"exponential-in\\\\\\\":\\\\\\\"float exponentialIn(float t) {\\\\n  return t == 0.0 ? t : pow(2.0, 10.0 * (t - 1.0));\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quintic-in-out\\\\\\\":\\\\\\\"float quinticInOut(float t) {\\\\n  return t < 0.5\\\\n    ? +16.0 * pow(t, 5.0)\\\\n    : -0.5 * pow(2.0 * t - 2.0, 5.0) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"sine-in-out\\\\\\\":\\\\\\\"\\\\nfloat sineInOut(float t) {\\\\n  return -0.5 * (cos(PI * t) - 1.0);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"cubic-out\\\\\\\":\\\\\\\"float cubicOut(float t) {\\\\n  float f = t - 1.0;\\\\n  return f * f * f + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quadratic-out\\\\\\\":\\\\\\\"float quadraticOut(float t) {\\\\n  return -t * (t - 2.0);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"bounce-in-out\\\\\\\":\\\\\\\"\\\\nfloat bounceInOut(float t) {\\\\n  return t < 0.5\\\\n    ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\\\\n    : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\\\\n}\\\\n\\\\n\\\\n\\\\n\\\\\\\",\\\\\\\"quintic-in\\\\\\\":\\\\\\\"float quinticIn(float t) {\\\\n  return pow(t, 5.0);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quartic-in\\\\\\\":\\\\\\\"float quarticIn(float t) {\\\\n  return pow(t, 4.0);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"quartic-out\\\\\\\":\\\\\\\"float quarticOut(float t) {\\\\n  return pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"bounce-in\\\\\\\":\\\\\\\"\\\\nfloat bounceIn(float t) {\\\\n  return 1.0 - bounceOut(1.0 - t);\\\\n}\\\\n\\\\n\\\\\\\",\\\\\\\"sine-out\\\\\\\":\\\\\\\"#ifndef HALF_PI\\\\n#define HALF_PI 1.5707963267948966\\\\n#endif\\\\n\\\\nfloat sineOut(float t) {\\\\n  return sin(t * HALF_PI);\\\\n}\\\\n\\\\n\\\\\\\"},aI={\\\\\\\"bounce-in\\\\\\\":[sI],\\\\\\\"bounce-in-out\\\\\\\":[sI]},lI={\\\\\\\"circular-in-out\\\\\\\":\\\\\\\"circularInOut\\\\\\\",\\\\\\\"exponential-in-out\\\\\\\":\\\\\\\"exponentialInOut\\\\\\\",\\\\\\\"circular-in\\\\\\\":\\\\\\\"circularIn\\\\\\\",\\\\\\\"elastic-out\\\\\\\":\\\\\\\"elasticOut\\\\\\\",\\\\\\\"cubic-in\\\\\\\":\\\\\\\"cubicIn\\\\\\\",\\\\\\\"exponential-out\\\\\\\":\\\\\\\"exponentialOut\\\\\\\",\\\\\\\"quintic-out\\\\\\\":\\\\\\\"quinticOut\\\\\\\",\\\\\\\"elastic-in-out\\\\\\\":\\\\\\\"elasticInOut\\\\\\\",linear:\\\\\\\"linear\\\\\\\",\\\\\\\"circular-out\\\\\\\":\\\\\\\"circularOut\\\\\\\",\\\\\\\"back-in-out\\\\\\\":\\\\\\\"backInOut\\\\\\\",\\\\\\\"back-in\\\\\\\":\\\\\\\"backIn\\\\\\\",\\\\\\\"sine-in\\\\\\\":\\\\\\\"sineIn\\\\\\\",\\\\\\\"back-out\\\\\\\":\\\\\\\"backOut\\\\\\\",\\\\\\\"quartic-in-out\\\\\\\":\\\\\\\"quarticInOut\\\\\\\",\\\\\\\"quadratic-in\\\\\\\":\\\\\\\"quadraticIn\\\\\\\",\\\\\\\"cubic-in-out\\\\\\\":\\\\\\\"cubicInOut\\\\\\\",\\\\\\\"elastic-in\\\\\\\":\\\\\\\"elasticIn\\\\\\\",\\\\\\\"bounce-out\\\\\\\":\\\\\\\"bounceOut\\\\\\\",\\\\\\\"quadratic-in-out\\\\\\\":\\\\\\\"quadraticInOut\\\\\\\",\\\\\\\"exponential-in\\\\\\\":\\\\\\\"exponentialIn\\\\\\\",\\\\\\\"quintic-in-out\\\\\\\":\\\\\\\"quinticInOut\\\\\\\",\\\\\\\"sine-in-out\\\\\\\":\\\\\\\"sineInOut\\\\\\\",\\\\\\\"cubic-out\\\\\\\":\\\\\\\"cubicOut\\\\\\\",\\\\\\\"quadratic-out\\\\\\\":\\\\\\\"quadraticOut\\\\\\\",\\\\\\\"bounce-in-out\\\\\\\":\\\\\\\"bounceInOut\\\\\\\",\\\\\\\"quintic-in\\\\\\\":\\\\\\\"quinticIn\\\\\\\",\\\\\\\"quartic-in\\\\\\\":\\\\\\\"quarticIn\\\\\\\",\\\\\\\"quartic-out\\\\\\\":\\\\\\\"quarticOut\\\\\\\",\\\\\\\"bounce-in\\\\\\\":\\\\\\\"bounceIn\\\\\\\",\\\\\\\"sine-out\\\\\\\":\\\\\\\"sineOut\\\\\\\"},cI=rI.indexOf(\\\\\\\"sine-in-out\\\\\\\");const hI=new class extends ua{constructor(){super(...arguments),this.type=ha.INTEGER(cI,{menu:{entries:rI.map(((t,e)=>({name:t,value:e})))}}),this.input=ha.FLOAT(0)}};class uI extends gf{constructor(){super(...arguments),this.paramsConfig=hI}static type(){return\\\\\\\"easing\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.spare_params.set_inputless_param_names([\\\\\\\"type\\\\\\\"]),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"out\\\\\\\",Uo.FLOAT)])}setLines(t){const e=rI[this.pv.type],n=lI[e];let i=[new Cf(this,oI[e])];const s=(aI[e]||[]).map((t=>new Cf(this,t)));s&&(i=s.concat(i));const r=mf.float(this.variableForInputParam(this.p.input)),o=`float ${this.glVarName(\\\\\\\"out\\\\\\\")} = ${n}(${r})`;t.addDefinitions(this,i),t.addBodyLines(this,[o])}}var dI=\\\\\\\"//\\\\n//\\\\n// FIT\\\\n//\\\\n//\\\\nfloat fit(float val, float srcMin, float srcMax, float destMin, float destMax){\\\\n\\\\tfloat src_range = srcMax - srcMin;\\\\n\\\\tfloat dest_range = destMax - destMin;\\\\n\\\\n\\\\tfloat r = (val - srcMin) / src_range;\\\\n\\\\treturn (r * dest_range) + destMin;\\\\n}\\\\nvec2 fit(vec2 val, vec2 srcMin, vec2 srcMax, vec2 destMin, vec2 destMax){\\\\n\\\\treturn vec2(\\\\n\\\\t\\\\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\\\\n\\\\t\\\\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y)\\\\n\\\\t);\\\\n}\\\\nvec3 fit(vec3 val, vec3 srcMin, vec3 srcMax, vec3 destMin, vec3 destMax){\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\\\\n\\\\t\\\\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y),\\\\n\\\\t\\\\tfit(val.z, srcMin.z, srcMax.z, destMin.z, destMax.z)\\\\n\\\\t);\\\\n}\\\\nvec4 fit(vec4 val, vec4 srcMin, vec4 srcMax, vec4 destMin, vec4 destMax){\\\\n\\\\treturn vec4(\\\\n\\\\t\\\\tfit(val.x, srcMin.x, srcMax.x, destMin.x, destMax.x),\\\\n\\\\t\\\\tfit(val.y, srcMin.y, srcMax.y, destMin.y, destMax.y),\\\\n\\\\t\\\\tfit(val.z, srcMin.z, srcMax.z, destMin.z, destMax.z),\\\\n\\\\t\\\\tfit(val.w, srcMin.w, srcMax.w, destMin.w, destMax.w)\\\\n\\\\t);\\\\n}\\\\n\\\\n//\\\\n//\\\\n// FIT TO 01\\\\n// fits the range [srcMin, srcMax] to [0, 1]\\\\n//\\\\nfloat fitTo01(float val, float srcMin, float srcMax){\\\\n\\\\tfloat size = srcMax - srcMin;\\\\n\\\\treturn (val - srcMin) / size;\\\\n}\\\\nvec2 fitTo01(vec2 val, vec2 srcMin, vec2 srcMax){\\\\n\\\\treturn vec2(\\\\n\\\\t\\\\tfitTo01(val.x, srcMin.x, srcMax.x),\\\\n\\\\t\\\\tfitTo01(val.y, srcMin.y, srcMax.y)\\\\n\\\\t);\\\\n}\\\\nvec3 fitTo01(vec3 val, vec3 srcMin, vec3 srcMax){\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\tfitTo01(val.x, srcMin.x, srcMax.x),\\\\n\\\\t\\\\tfitTo01(val.y, srcMin.y, srcMax.y),\\\\n\\\\t\\\\tfitTo01(val.z, srcMin.z, srcMax.z)\\\\n\\\\t);\\\\n}\\\\nvec4 fitTo01(vec4 val, vec4 srcMin, vec4 srcMax){\\\\n\\\\treturn vec4(\\\\n\\\\t\\\\tfitTo01(val.x, srcMin.x, srcMax.x),\\\\n\\\\t\\\\tfitTo01(val.y, srcMin.y, srcMax.y),\\\\n\\\\t\\\\tfitTo01(val.z, srcMin.z, srcMax.z),\\\\n\\\\t\\\\tfitTo01(val.w, srcMin.w, srcMax.w)\\\\n\\\\t);\\\\n}\\\\n\\\\n//\\\\n//\\\\n// FIT FROM 01\\\\n// fits the range [0, 1] to [destMin, destMax]\\\\n//\\\\nfloat fitFrom01(float val, float destMin, float destMax){\\\\n\\\\treturn fit(val, 0.0, 1.0, destMin, destMax);\\\\n}\\\\nvec2 fitFrom01(vec2 val, vec2 srcMin, vec2 srcMax){\\\\n\\\\treturn vec2(\\\\n\\\\t\\\\tfitFrom01(val.x, srcMin.x, srcMax.x),\\\\n\\\\t\\\\tfitFrom01(val.y, srcMin.y, srcMax.y)\\\\n\\\\t);\\\\n}\\\\nvec3 fitFrom01(vec3 val, vec3 srcMin, vec3 srcMax){\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\tfitFrom01(val.x, srcMin.x, srcMax.x),\\\\n\\\\t\\\\tfitFrom01(val.y, srcMin.y, srcMax.y),\\\\n\\\\t\\\\tfitFrom01(val.z, srcMin.z, srcMax.z)\\\\n\\\\t);\\\\n}\\\\nvec4 fitFrom01(vec4 val, vec4 srcMin, vec4 srcMax){\\\\n\\\\treturn vec4(\\\\n\\\\t\\\\tfitFrom01(val.x, srcMin.x, srcMax.x),\\\\n\\\\t\\\\tfitFrom01(val.y, srcMin.y, srcMax.y),\\\\n\\\\t\\\\tfitFrom01(val.z, srcMin.z, srcMax.z),\\\\n\\\\t\\\\tfitFrom01(val.w, srcMin.w, srcMax.w)\\\\n\\\\t);\\\\n}\\\\n\\\\n//\\\\n//\\\\n// FIT FROM 01 TO VARIANCE\\\\n// fits the range [0, 1] to [center - variance, center + variance]\\\\n//\\\\nfloat fitFrom01ToVariance(float val, float center, float variance){\\\\n\\\\treturn fitFrom01(val, center - variance, center + variance);\\\\n}\\\\nvec2 fitFrom01ToVariance(vec2 val, vec2 center, vec2 variance){\\\\n\\\\treturn vec2(\\\\n\\\\t\\\\tfitFrom01ToVariance(val.x, center.x, variance.x),\\\\n\\\\t\\\\tfitFrom01ToVariance(val.y, center.y, variance.y)\\\\n\\\\t);\\\\n}\\\\nvec3 fitFrom01ToVariance(vec3 val, vec3 center, vec3 variance){\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\tfitFrom01ToVariance(val.x, center.x, variance.x),\\\\n\\\\t\\\\tfitFrom01ToVariance(val.y, center.y, variance.y),\\\\n\\\\t\\\\tfitFrom01ToVariance(val.z, center.z, variance.z)\\\\n\\\\t);\\\\n}\\\\nvec4 fitFrom01ToVariance(vec4 val, vec4 center, vec4 variance){\\\\n\\\\treturn vec4(\\\\n\\\\t\\\\tfitFrom01ToVariance(val.x, center.x, variance.x),\\\\n\\\\t\\\\tfitFrom01ToVariance(val.y, center.y, variance.y),\\\\n\\\\t\\\\tfitFrom01ToVariance(val.z, center.z, variance.z),\\\\n\\\\t\\\\tfitFrom01ToVariance(val.w, center.w, variance.w)\\\\n\\\\t);\\\\n}\\\\\\\";const pI={srcMin:0,srcMax:1,destMin:0,destMax:1};class _I extends RP{static type(){return\\\\\\\"fit\\\\\\\"}_gl_input_name(t){return[\\\\\\\"val\\\\\\\",\\\\\\\"srcMin\\\\\\\",\\\\\\\"srcMax\\\\\\\",\\\\\\\"destMin\\\\\\\",\\\\\\\"destMax\\\\\\\"][t]}paramDefaultValue(t){return pI[t]}gl_method_name(){return\\\\\\\"fit\\\\\\\"}gl_function_definitions(){return[new Cf(this,dI)]}}const mI={srcMin:0,srcMax:1};class fI extends OP{static type(){return\\\\\\\"fitTo01\\\\\\\"}_gl_input_name(t){return[\\\\\\\"val\\\\\\\",\\\\\\\"srcMin\\\\\\\",\\\\\\\"srcMax\\\\\\\"][t]}paramDefaultValue(t){return mI[t]}gl_method_name(){return\\\\\\\"fitTo01\\\\\\\"}gl_function_definitions(){return[new Cf(this,dI)]}}const gI={destMin:0,destMax:1};class vI extends OP{static type(){return\\\\\\\"fitFrom01\\\\\\\"}_gl_input_name(t){return[\\\\\\\"val\\\\\\\",\\\\\\\"destMin\\\\\\\",\\\\\\\"destMax\\\\\\\"][t]}paramDefaultValue(t){return gI[t]}gl_method_name(){return\\\\\\\"fitFrom01\\\\\\\"}gl_function_definitions(){return[new Cf(this,dI)]}}const yI={center:.5,variance:.5};class xI extends OP{static type(){return\\\\\\\"fitFrom01ToVariance\\\\\\\"}_gl_input_name(t){return[\\\\\\\"val\\\\\\\",\\\\\\\"center\\\\\\\",\\\\\\\"variance\\\\\\\"][t]}paramDefaultValue(t){return yI[t]}gl_method_name(){return\\\\\\\"fitFrom01ToVariance\\\\\\\"}gl_function_definitions(){return[new Cf(this,dI)]}}const bI=\\\\\\\"color\\\\\\\";const wI=new class extends ua{constructor(){super(...arguments),this.mvPosition=ha.VECTOR4([0,0,0,0]),this.baseColor=ha.COLOR([0,0,0]),this.fogColor=ha.COLOR([1,1,1]),this.near=ha.FLOAT(0),this.far=ha.FLOAT(0)}};class TI extends gf{constructor(){super(...arguments),this.paramsConfig=wI}static type(){return\\\\\\\"fog\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(bI,Uo.VEC3)])}setLines(t){if(t.current_shader_name==Mf.FRAGMENT){const e=this.glVarName(this.name()),n=new Lf(this,Uo.VEC4,e),i=`${e} = modelViewMatrix * vec4(position, 1.0)`;t.addDefinitions(this,[n],Mf.VERTEX),t.addBodyLines(this,[i],Mf.VERTEX);const s=new Cf(this,\\\\\\\"vec3 compute_fog(vec4 mvPosition, vec3 base_color, vec3 fog_color, float near, float far) {\\\\n\\\\tfloat blend = (-mvPosition.z - near) / (far - near);\\\\n\\\\tblend = clamp(blend, 0.0, 1.0);\\\\n\\\\treturn blend * fog_color + (1.0 - blend) * base_color;\\\\n}\\\\\\\"),r=mf.vector4(this.variableForInputParam(this.p.mvPosition)),o=mf.vector3(this.variableForInputParam(this.p.baseColor)),a=mf.vector3(this.variableForInputParam(this.p.fogColor)),l=mf.vector3(this.variableForInputParam(this.p.near)),c=mf.vector3(this.variableForInputParam(this.p.far)),h=`vec3 ${this.glVarName(bI)} = compute_fog(${[r,o,a,l,c].join(\\\\\\\", \\\\\\\")})`;t.addDefinitions(this,[n,s]),t.addBodyLines(this,[h])}}}const AI=new class extends ua{};class MI extends gf{constructor(){super(...arguments),this.paramsConfig=AI}static type(){return ns.OUTPUT}initializeNode(){this.io.connection_points.set_input_name_function(this._expected_input_name.bind(this)),this.io.connection_points.set_expected_output_types_function((()=>[])),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_create_spare_params_from_inputs(!1),this.addPostDirtyHook(\\\\\\\"setParentDirty\\\\\\\",(()=>{var t;null===(t=this.parent())||void 0===t||t.setDirty(this)}))}parent(){return super.parent()}_expected_input_name(t){const e=this.parent();return(null==e?void 0:e.child_expected_output_connection_point_name(t))||`in${t}`}_expected_input_types(){const t=this.parent();return(null==t?void 0:t.child_expected_output_connection_point_types())||[]}setLines(t){const e=this.parent();if(!e)return;const n=[],i=this.io.connections.inputConnections();if(i)for(let t of i)if(t){const i=t.dest_connection_point(),s=mf.any(this.variableForInput(i.name())),r=`\\\\t${e.glVarName(i.name())} = ${s}`;n.push(r)}t.addBodyLines(this,n),e.set_lines_block_end(t,this)}}class EI extends gf{constructor(){super(...arguments),this._children_controller_context=ts.GL}initializeNode(){var t;null===(t=this.childrenController)||void 0===t||t.set_output_node_find_method((()=>this.nodesByType(MI.type())[0])),this.io.connection_points.set_input_name_function(this._expected_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._expected_output_name.bind(this)),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_expected_inputs_count(){const t=this.io.connections.inputConnections();return t?t.length+1:1}_expected_input_types(){const t=[],e=Uo.FLOAT,n=this.io.connections.inputConnections(),i=this._expected_inputs_count();for(let s=0;s<i;s++)if(n){const i=n[s];if(i){const e=i.src_connection_point().type();t.push(e)}else t.push(e)}else t.push(e);return t}_expected_output_types(){const t=[],e=this._expected_input_types();for(let n=0;n<e.length;n++)t.push(e[n]);return t}_expected_input_name(t){const e=this.io.connections.inputConnection(t);if(e){return e.src_connection_point().name()}return`in${t}`}_expected_output_name(t){return this._expected_input_name(t)}child_expected_input_connection_point_types(){return this._expected_input_types()}child_expected_output_connection_point_types(){return this._expected_output_types()}child_expected_input_connection_point_name(t){return this._expected_input_name(t)}child_expected_output_connection_point_name(t){return this._expected_output_name(t)}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}set_lines_block_start(t,e){const n=[],i=this.io.inputs.namedInputConnectionPoints();for(let t=0;t<i.length;t++){const e=i[t],s=`${e.type()} ${this.glVarName(e.name())} = ${mf.any(this.variableForInput(e.name()))}`;n.push(s)}n.push(\\\\\\\"if(true){\\\\\\\");const s=this.io.connections.inputConnections();if(s)for(let t of s)if(t){const i=t.dest_connection_point(),s=mf.any(this.variableForInput(i.name())),r=`\\\\t${i.type()} ${e.glVarName(i.name())} = ${s}`;n.push(r)}t.addBodyLines(e,n)}set_lines_block_end(t,e){t.addBodyLines(e,[\\\\\\\"}\\\\\\\"])}setLines(t){}}const SI=new class extends ua{};class CI extends EI{constructor(){super(...arguments),this.paramsConfig=SI}static type(){return\\\\\\\"subnet\\\\\\\"}}var NI;!function(t){t.START_INDEX=\\\\\\\"i\\\\\\\",t.MAX=\\\\\\\"max\\\\\\\",t.STEP=\\\\\\\"step\\\\\\\"}(NI||(NI={}));const LI={[NI.START_INDEX]:0,[NI.MAX]:10,[NI.STEP]:1};const OI=new class extends ua{constructor(){super(...arguments),this.start=ha.FLOAT(0),this.max=ha.FLOAT(10,{range:[0,100],rangeLocked:[!1,!1]}),this.step=ha.FLOAT(1)}};class PI extends EI{constructor(){super(...arguments),this.paramsConfig=OI}static type(){return\\\\\\\"forLoop\\\\\\\"}paramDefaultValue(t){return LI[t]}_expected_inputs_count(){const t=this.io.connections.inputConnections();return t?t.length+1:1}_expected_input_types(){const t=[],e=Uo.FLOAT,n=this.io.connections.inputConnections(),i=this._expected_inputs_count();for(let s=0;s<i;s++)if(n){const i=n[s];if(i){const e=i.src_connection_point().type();t.push(e)}else t.push(e)}else t.push(e);return t}_expected_output_types(){const t=[],e=this._expected_input_types();for(let n=0;n<e.length;n++)t.push(e[n]);return t}_expected_input_name(t){const e=this.io.connections.inputConnection(t);if(e){return e.src_connection_point().name()}return`in${t}`}_expected_output_name(t){return this._expected_input_name(t+0)}child_expected_input_connection_point_types(){return this._expected_input_types()}child_expected_input_connection_point_name(t){return this._expected_input_name(t)}child_expected_output_connection_point_types(){return this._expected_output_types()}child_expected_output_connection_point_name(t){return this._expected_output_name(t)}set_lines_block_start(t,e){const n=[],i=this.io.inputs.namedInputConnectionPoints();for(let t=0;t<i.length;t++){const e=i[t],s=`${e.type()} ${this.glVarName(e.name())} = ${mf.any(this.variableForInput(e.name()))}`;n.push(s)}const s=this.io.connections.inputConnections();if(s)for(let t of s)if(t&&t.input_index>=0){const e=t.dest_connection_point(),i=mf.any(this.variableForInput(e.name())),s=`${e.type()} ${this.glVarName(e.name())} = ${i}`;n.push(s)}const r=this.pv.start,o=this.pv.max,a=this.pv.step,l=mf.float(r),c=mf.float(o),h=mf.float(a),u=this.glVarName(\\\\\\\"i\\\\\\\"),d=`for(float ${u} = ${l}; ${u} < ${c}; ${u}+= ${h}){`;n.push(d);const p=`\\\\tfloat ${e.glVarName(NI.START_INDEX)} = ${u}`;if(n.push(p),s)for(let t of s)if(t&&t.input_index>=0){const i=t.dest_connection_point(),s=this.glVarName(i.name()),r=`\\\\t${i.type()} ${e.glVarName(i.name())} = ${s}`;n.push(r)}t.addBodyLines(e,n)}setLines(t){}}const RI=new class extends ua{};class II extends gf{constructor(){super(...arguments),this.paramsConfig=RI}static type(){return\\\\\\\"globals\\\\\\\"}initializeNode(){super.initializeNode(),this.lifecycle.add_on_add_hook((()=>{var t,e;null===(e=null===(t=this.material_node)||void 0===t?void 0:t.assemblerController)||void 0===e||e.add_globals_outputs(this)}))}setLines(t){t.assembler().set_node_lines_globals(this,t)}}const FI=new class extends ua{constructor(){super(...arguments),this.hsluv=ha.VECTOR3([1,1,1])}};class DI extends gf{constructor(){super(...arguments),this.paramsConfig=FI}static type(){return\\\\\\\"hsluvToRgb\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"rgb\\\\\\\",Uo.VEC3)])}setLines(t){const e=[],n=[];e.push(new Cf(this,\\\\\\\"// from https://github.com/williammalo/hsluv-glsl\\\\n/*\\\\nHSLUV-GLSL v4.2\\\\nHSLUV is a human-friendly alternative to HSL. ( http://www.hsluv.org )\\\\nGLSL port by William Malo ( https://github.com/williammalo )\\\\nPut this code in your fragment shader.\\\\n*/\\\\n\\\\nvec3 hsluv_intersectLineLine(vec3 line1x, vec3 line1y, vec3 line2x, vec3 line2y) {\\\\n\\\\treturn (line1y - line2y) / (line2x - line1x);\\\\n}\\\\n\\\\nvec3 hsluv_distanceFromPole(vec3 pointx,vec3 pointy) {\\\\n\\\\treturn sqrt(pointx*pointx + pointy*pointy);\\\\n}\\\\n\\\\nvec3 hsluv_lengthOfRayUntilIntersect(float theta, vec3 x, vec3 y) {\\\\n\\\\tvec3 len = y / (sin(theta) - x * cos(theta));\\\\n\\\\tif (len.r < 0.0) {len.r=1000.0;}\\\\n\\\\tif (len.g < 0.0) {len.g=1000.0;}\\\\n\\\\tif (len.b < 0.0) {len.b=1000.0;}\\\\n\\\\treturn len;\\\\n}\\\\n\\\\nfloat hsluv_maxSafeChromaForL(float L){\\\\n\\\\tmat3 m2 = mat3(\\\\n\\\\t\\\\t 3.2409699419045214  ,-0.96924363628087983 , 0.055630079696993609,\\\\n\\\\t\\\\t-1.5373831775700935  , 1.8759675015077207  ,-0.20397695888897657 ,\\\\n\\\\t\\\\t-0.49861076029300328 , 0.041555057407175613, 1.0569715142428786  \\\\n\\\\t);\\\\n\\\\tfloat sub0 = L + 16.0;\\\\n\\\\tfloat sub1 = sub0 * sub0 * sub0 * .000000641;\\\\n\\\\tfloat sub2 = sub1 > 0.0088564516790356308 ? sub1 : L / 903.2962962962963;\\\\n\\\\n\\\\tvec3 top1   = (284517.0 * m2[0] - 94839.0  * m2[2]) * sub2;\\\\n\\\\tvec3 bottom = (632260.0 * m2[2] - 126452.0 * m2[1]) * sub2;\\\\n\\\\tvec3 top2   = (838422.0 * m2[2] + 769860.0 * m2[1] + 731718.0 * m2[0]) * L * sub2;\\\\n\\\\n\\\\tvec3 bounds0x = top1 / bottom;\\\\n\\\\tvec3 bounds0y = top2 / bottom;\\\\n\\\\n\\\\tvec3 bounds1x =              top1 / (bottom+126452.0);\\\\n\\\\tvec3 bounds1y = (top2-769860.0*L) / (bottom+126452.0);\\\\n\\\\n\\\\tvec3 xs0 = hsluv_intersectLineLine(bounds0x, bounds0y, -1.0/bounds0x, vec3(0.0) );\\\\n\\\\tvec3 xs1 = hsluv_intersectLineLine(bounds1x, bounds1y, -1.0/bounds1x, vec3(0.0) );\\\\n\\\\n\\\\tvec3 lengths0 = hsluv_distanceFromPole( xs0, bounds0y + xs0 * bounds0x );\\\\n\\\\tvec3 lengths1 = hsluv_distanceFromPole( xs1, bounds1y + xs1 * bounds1x );\\\\n\\\\n\\\\treturn  min(lengths0.r,\\\\n\\\\t\\\\t\\\\tmin(lengths1.r,\\\\n\\\\t\\\\t\\\\tmin(lengths0.g,\\\\n\\\\t\\\\t\\\\tmin(lengths1.g,\\\\n\\\\t\\\\t\\\\tmin(lengths0.b,\\\\n\\\\t\\\\t\\\\t\\\\tlengths1.b)))));\\\\n}\\\\n\\\\nfloat hsluv_maxChromaForLH(float L, float H) {\\\\n\\\\n\\\\tfloat hrad = radians(H);\\\\n\\\\n\\\\tmat3 m2 = mat3(\\\\n\\\\t\\\\t 3.2409699419045214  ,-0.96924363628087983 , 0.055630079696993609,\\\\n\\\\t\\\\t-1.5373831775700935  , 1.8759675015077207  ,-0.20397695888897657 ,\\\\n\\\\t\\\\t-0.49861076029300328 , 0.041555057407175613, 1.0569715142428786  \\\\n\\\\t);\\\\n\\\\tfloat sub1 = pow(L + 16.0, 3.0) / 1560896.0;\\\\n\\\\tfloat sub2 = sub1 > 0.0088564516790356308 ? sub1 : L / 903.2962962962963;\\\\n\\\\n\\\\tvec3 top1   = (284517.0 * m2[0] - 94839.0  * m2[2]) * sub2;\\\\n\\\\tvec3 bottom = (632260.0 * m2[2] - 126452.0 * m2[1]) * sub2;\\\\n\\\\tvec3 top2   = (838422.0 * m2[2] + 769860.0 * m2[1] + 731718.0 * m2[0]) * L * sub2;\\\\n\\\\n\\\\tvec3 bound0x = top1 / bottom;\\\\n\\\\tvec3 bound0y = top2 / bottom;\\\\n\\\\n\\\\tvec3 bound1x =              top1 / (bottom+126452.0);\\\\n\\\\tvec3 bound1y = (top2-769860.0*L) / (bottom+126452.0);\\\\n\\\\n\\\\tvec3 lengths0 = hsluv_lengthOfRayUntilIntersect(hrad, bound0x, bound0y );\\\\n\\\\tvec3 lengths1 = hsluv_lengthOfRayUntilIntersect(hrad, bound1x, bound1y );\\\\n\\\\n\\\\treturn  min(lengths0.r,\\\\n\\\\t\\\\t\\\\tmin(lengths1.r,\\\\n\\\\t\\\\t\\\\tmin(lengths0.g,\\\\n\\\\t\\\\t\\\\tmin(lengths1.g,\\\\n\\\\t\\\\t\\\\tmin(lengths0.b,\\\\n\\\\t\\\\t\\\\t\\\\tlengths1.b)))));\\\\n}\\\\n\\\\nfloat hsluv_fromLinear(float c) {\\\\n\\\\treturn c <= 0.0031308 ? 12.92 * c : 1.055 * pow(c, 1.0 / 2.4) - 0.055;\\\\n}\\\\nvec3 hsluv_fromLinear(vec3 c) {\\\\n\\\\treturn vec3( hsluv_fromLinear(c.r), hsluv_fromLinear(c.g), hsluv_fromLinear(c.b) );\\\\n}\\\\n\\\\nfloat hsluv_toLinear(float c) {\\\\n\\\\treturn c > 0.04045 ? pow((c + 0.055) / (1.0 + 0.055), 2.4) : c / 12.92;\\\\n}\\\\n\\\\nvec3 hsluv_toLinear(vec3 c) {\\\\n\\\\treturn vec3( hsluv_toLinear(c.r), hsluv_toLinear(c.g), hsluv_toLinear(c.b) );\\\\n}\\\\n\\\\nfloat hsluv_yToL(float Y){\\\\n\\\\treturn Y <= 0.0088564516790356308 ? Y * 903.2962962962963 : 116.0 * pow(Y, 1.0 / 3.0) - 16.0;\\\\n}\\\\n\\\\nfloat hsluv_lToY(float L) {\\\\n\\\\treturn L <= 8.0 ? L / 903.2962962962963 : pow((L + 16.0) / 116.0, 3.0);\\\\n}\\\\n\\\\nvec3 xyzToRgb(vec3 tuple) {\\\\n\\\\tconst mat3 m = mat3( \\\\n\\\\t\\\\t3.2409699419045214  ,-1.5373831775700935 ,-0.49861076029300328 ,\\\\n\\\\t\\\\t-0.96924363628087983 , 1.8759675015077207 , 0.041555057407175613,\\\\n\\\\t\\\\t0.055630079696993609,-0.20397695888897657, 1.0569715142428786  );\\\\n\\\\t\\\\n\\\\treturn hsluv_fromLinear(tuple*m);\\\\n}\\\\n\\\\nvec3 rgbToXyz(vec3 tuple) {\\\\n\\\\tconst mat3 m = mat3(\\\\n\\\\t\\\\t0.41239079926595948 , 0.35758433938387796, 0.18048078840183429 ,\\\\n\\\\t\\\\t0.21263900587151036 , 0.71516867876775593, 0.072192315360733715,\\\\n\\\\t\\\\t0.019330818715591851, 0.11919477979462599, 0.95053215224966058 \\\\n\\\\t);\\\\n\\\\treturn hsluv_toLinear(tuple) * m;\\\\n}\\\\n\\\\nvec3 xyzToLuv(vec3 tuple){\\\\n\\\\tfloat X = tuple.x;\\\\n\\\\tfloat Y = tuple.y;\\\\n\\\\tfloat Z = tuple.z;\\\\n\\\\n\\\\tfloat L = hsluv_yToL(Y);\\\\n\\\\t\\\\n\\\\tfloat div = 1./dot(tuple,vec3(1,15,3)); \\\\n\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\t1.,\\\\n\\\\t\\\\t(52. * (X*div) - 2.57179),\\\\n\\\\t\\\\t(117.* (Y*div) - 6.08816)\\\\n\\\\t) * L;\\\\n}\\\\n\\\\n\\\\nvec3 luvToXyz(vec3 tuple) {\\\\n\\\\tfloat L = tuple.x;\\\\n\\\\n\\\\tfloat U = tuple.y / (13.0 * L) + 0.19783000664283681;\\\\n\\\\tfloat V = tuple.z / (13.0 * L) + 0.468319994938791;\\\\n\\\\n\\\\tfloat Y = hsluv_lToY(L);\\\\n\\\\tfloat X = 2.25 * U * Y / V;\\\\n\\\\tfloat Z = (3./V - 5.)*Y - (X/3.);\\\\n\\\\n\\\\treturn vec3(X, Y, Z);\\\\n}\\\\n\\\\nvec3 luvToLch(vec3 tuple) {\\\\n\\\\tfloat L = tuple.x;\\\\n\\\\tfloat U = tuple.y;\\\\n\\\\tfloat V = tuple.z;\\\\n\\\\n\\\\tfloat C = length(tuple.yz);\\\\n\\\\tfloat H = degrees(atan(V,U));\\\\n\\\\tif (H < 0.0) {\\\\n\\\\t\\\\tH = 360.0 + H;\\\\n\\\\t}\\\\n\\\\t\\\\n\\\\treturn vec3(L, C, H);\\\\n}\\\\n\\\\nvec3 lchToLuv(vec3 tuple) {\\\\n\\\\tfloat hrad = radians(tuple.b);\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\ttuple.r,\\\\n\\\\t\\\\tcos(hrad) * tuple.g,\\\\n\\\\t\\\\tsin(hrad) * tuple.g\\\\n\\\\t);\\\\n}\\\\n\\\\nvec3 hsluvToLch(vec3 tuple) {\\\\n\\\\ttuple.g *= hsluv_maxChromaForLH(tuple.b, tuple.r) * .01;\\\\n\\\\treturn tuple.bgr;\\\\n}\\\\n\\\\nvec3 lchToHsluv(vec3 tuple) {\\\\n\\\\ttuple.g /= hsluv_maxChromaForLH(tuple.r, tuple.b) * .01;\\\\n\\\\treturn tuple.bgr;\\\\n}\\\\n\\\\nvec3 hpluvToLch(vec3 tuple) {\\\\n\\\\ttuple.g *= hsluv_maxSafeChromaForL(tuple.b) * .01;\\\\n\\\\treturn tuple.bgr;\\\\n}\\\\n\\\\nvec3 lchToHpluv(vec3 tuple) {\\\\n\\\\ttuple.g /= hsluv_maxSafeChromaForL(tuple.r) * .01;\\\\n\\\\treturn tuple.bgr;\\\\n}\\\\n\\\\nvec3 lchToRgb(vec3 tuple) {\\\\n\\\\treturn xyzToRgb(luvToXyz(lchToLuv(tuple)));\\\\n}\\\\n\\\\nvec3 rgbToLch(vec3 tuple) {\\\\n\\\\treturn luvToLch(xyzToLuv(rgbToXyz(tuple)));\\\\n}\\\\n\\\\nvec3 hsluvToRgb(vec3 tuple) {\\\\n\\\\treturn lchToRgb(hsluvToLch(tuple));\\\\n}\\\\n\\\\nvec3 rgbToHsluv(vec3 tuple) {\\\\n\\\\treturn lchToHsluv(rgbToLch(tuple));\\\\n}\\\\n\\\\nvec3 hpluvToRgb(vec3 tuple) {\\\\n\\\\treturn lchToRgb(hpluvToLch(tuple));\\\\n}\\\\n\\\\nvec3 rgbToHpluv(vec3 tuple) {\\\\n\\\\treturn lchToHpluv(rgbToLch(tuple));\\\\n}\\\\n\\\\nvec3 luvToRgb(vec3 tuple){\\\\n\\\\treturn xyzToRgb(luvToXyz(tuple));\\\\n}\\\\n\\\\n// allow vec4's\\\\nvec4   xyzToRgb(vec4 c) {return vec4(   xyzToRgb( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   rgbToXyz(vec4 c) {return vec4(   rgbToXyz( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   xyzToLuv(vec4 c) {return vec4(   xyzToLuv( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   luvToXyz(vec4 c) {return vec4(   luvToXyz( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   luvToLch(vec4 c) {return vec4(   luvToLch( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   lchToLuv(vec4 c) {return vec4(   lchToLuv( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 hsluvToLch(vec4 c) {return vec4( hsluvToLch( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 lchToHsluv(vec4 c) {return vec4( lchToHsluv( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 hpluvToLch(vec4 c) {return vec4( hpluvToLch( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 lchToHpluv(vec4 c) {return vec4( lchToHpluv( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   lchToRgb(vec4 c) {return vec4(   lchToRgb( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   rgbToLch(vec4 c) {return vec4(   rgbToLch( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 hsluvToRgb(vec4 c) {return vec4( hsluvToRgb( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 rgbToHsluv(vec4 c) {return vec4( rgbToHsluv( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 hpluvToRgb(vec4 c) {return vec4( hpluvToRgb( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4 rgbToHpluv(vec4 c) {return vec4( rgbToHpluv( vec3(c.x,c.y,c.z) ), c.a);}\\\\nvec4   luvToRgb(vec4 c) {return vec4(   luvToRgb( vec3(c.x,c.y,c.z) ), c.a);}\\\\n// allow 3 floats\\\\nvec3   xyzToRgb(float x, float y, float z) {return   xyzToRgb( vec3(x,y,z) );}\\\\nvec3   rgbToXyz(float x, float y, float z) {return   rgbToXyz( vec3(x,y,z) );}\\\\nvec3   xyzToLuv(float x, float y, float z) {return   xyzToLuv( vec3(x,y,z) );}\\\\nvec3   luvToXyz(float x, float y, float z) {return   luvToXyz( vec3(x,y,z) );}\\\\nvec3   luvToLch(float x, float y, float z) {return   luvToLch( vec3(x,y,z) );}\\\\nvec3   lchToLuv(float x, float y, float z) {return   lchToLuv( vec3(x,y,z) );}\\\\nvec3 hsluvToLch(float x, float y, float z) {return hsluvToLch( vec3(x,y,z) );}\\\\nvec3 lchToHsluv(float x, float y, float z) {return lchToHsluv( vec3(x,y,z) );}\\\\nvec3 hpluvToLch(float x, float y, float z) {return hpluvToLch( vec3(x,y,z) );}\\\\nvec3 lchToHpluv(float x, float y, float z) {return lchToHpluv( vec3(x,y,z) );}\\\\nvec3   lchToRgb(float x, float y, float z) {return   lchToRgb( vec3(x,y,z) );}\\\\nvec3   rgbToLch(float x, float y, float z) {return   rgbToLch( vec3(x,y,z) );}\\\\nvec3 hsluvToRgb(float x, float y, float z) {return hsluvToRgb( vec3(x,y,z) );}\\\\nvec3 rgbToHsluv(float x, float y, float z) {return rgbToHsluv( vec3(x,y,z) );}\\\\nvec3 hpluvToRgb(float x, float y, float z) {return hpluvToRgb( vec3(x,y,z) );}\\\\nvec3 rgbToHpluv(float x, float y, float z) {return rgbToHpluv( vec3(x,y,z) );}\\\\nvec3   luvToRgb(float x, float y, float z) {return   luvToRgb( vec3(x,y,z) );}\\\\n// allow 4 floats\\\\nvec4   xyzToRgb(float x, float y, float z, float a) {return   xyzToRgb( vec4(x,y,z,a) );}\\\\nvec4   rgbToXyz(float x, float y, float z, float a) {return   rgbToXyz( vec4(x,y,z,a) );}\\\\nvec4   xyzToLuv(float x, float y, float z, float a) {return   xyzToLuv( vec4(x,y,z,a) );}\\\\nvec4   luvToXyz(float x, float y, float z, float a) {return   luvToXyz( vec4(x,y,z,a) );}\\\\nvec4   luvToLch(float x, float y, float z, float a) {return   luvToLch( vec4(x,y,z,a) );}\\\\nvec4   lchToLuv(float x, float y, float z, float a) {return   lchToLuv( vec4(x,y,z,a) );}\\\\nvec4 hsluvToLch(float x, float y, float z, float a) {return hsluvToLch( vec4(x,y,z,a) );}\\\\nvec4 lchToHsluv(float x, float y, float z, float a) {return lchToHsluv( vec4(x,y,z,a) );}\\\\nvec4 hpluvToLch(float x, float y, float z, float a) {return hpluvToLch( vec4(x,y,z,a) );}\\\\nvec4 lchToHpluv(float x, float y, float z, float a) {return lchToHpluv( vec4(x,y,z,a) );}\\\\nvec4   lchToRgb(float x, float y, float z, float a) {return   lchToRgb( vec4(x,y,z,a) );}\\\\nvec4   rgbToLch(float x, float y, float z, float a) {return   rgbToLch( vec4(x,y,z,a) );}\\\\nvec4 hsluvToRgb(float x, float y, float z, float a) {return hsluvToRgb( vec4(x,y,z,a) );}\\\\nvec4 rgbToHslul(float x, float y, float z, float a) {return rgbToHsluv( vec4(x,y,z,a) );}\\\\nvec4 hpluvToRgb(float x, float y, float z, float a) {return hpluvToRgb( vec4(x,y,z,a) );}\\\\nvec4 rgbToHpluv(float x, float y, float z, float a) {return rgbToHpluv( vec4(x,y,z,a) );}\\\\nvec4   luvToRgb(float x, float y, float z, float a) {return   luvToRgb( vec4(x,y,z,a) );}\\\\n\\\\n/*\\\\nEND HSLUV-GLSL\\\\n*/\\\\n\\\\n\\\\n// from https://gist.github.com/mattatz/44f081cac87e2f7c8980\\\\n// converted to glsl by gui@polygonjs.com\\\\n// and made function names consistent with the ones above\\\\n/*\\\\n * Conversion between RGB and LAB colorspace.\\\\n * Import from flowabs glsl program : https://code.google.com/p/flowabs/source/browse/glsl/?r=f36cbdcf7790a28d90f09e2cf89ec9a64911f138\\\\n */\\\\n\\\\n\\\\n\\\\nvec3 xyzToLab( vec3 c ) {\\\\n\\\\tvec3 n = c / vec3(95.047, 100, 108.883);\\\\n\\\\tvec3 v;\\\\n\\\\tv.x = ( n.x > 0.008856 ) ? pow( n.x, 1.0 / 3.0 ) : ( 7.787 * n.x ) + ( 16.0 / 116.0 );\\\\n\\\\tv.y = ( n.y > 0.008856 ) ? pow( n.y, 1.0 / 3.0 ) : ( 7.787 * n.y ) + ( 16.0 / 116.0 );\\\\n\\\\tv.z = ( n.z > 0.008856 ) ? pow( n.z, 1.0 / 3.0 ) : ( 7.787 * n.z ) + ( 16.0 / 116.0 );\\\\n\\\\treturn vec3(( 116.0 * v.y ) - 16.0, 500.0 * ( v.x - v.y ), 200.0 * ( v.y - v.z ));\\\\n}\\\\n\\\\nvec3 rgbToLab( vec3 c ) {\\\\n\\\\tvec3 lab = xyzToLab( rgbToXyz( c ) );\\\\n\\\\treturn vec3( lab.x / 100.0, 0.5 + 0.5 * ( lab.y / 127.0 ), 0.5 + 0.5 * ( lab.z / 127.0 ));\\\\n}\\\\n\\\\nvec3 labToXyz( vec3 c ) {\\\\n\\\\tfloat fy = ( c.x + 16.0 ) / 116.0;\\\\n\\\\tfloat fx = c.y / 500.0 + fy;\\\\n\\\\tfloat fz = fy - c.z / 200.0;\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\t 95.047 * (( fx > 0.206897 ) ? fx * fx * fx : ( fx - 16.0 / 116.0 ) / 7.787),\\\\n\\\\t\\\\t100.000 * (( fy > 0.206897 ) ? fy * fy * fy : ( fy - 16.0 / 116.0 ) / 7.787),\\\\n\\\\t\\\\t108.883 * (( fz > 0.206897 ) ? fz * fz * fz : ( fz - 16.0 / 116.0 ) / 7.787)\\\\n\\\\t);\\\\n}\\\\n\\\\n\\\\n\\\\nvec3 labToRgb( vec3 c ) {\\\\n\\\\treturn xyzToRgb( labToXyz( vec3(100.0 * c.x, 2.0 * 127.0 * (c.y - 0.5), 2.0 * 127.0 * (c.z - 0.5)) ) );\\\\n}\\\\\\\"));const i=mf.vector3(this.variableForInputParam(this.p.hsluv)),s=this.glVarName(\\\\\\\"rgb\\\\\\\");n.push(`vec3 ${s} = hsluvToRgb(${i}.x * 360.0, ${i}.y * 100.0, ${i}.z * 100.0)`),t.addDefinitions(this,e),t.addBodyLines(this,n)}}const BI=new class extends ua{constructor(){super(...arguments),this.hsv=ha.VECTOR3([1,1,1])}};class zI extends gf{constructor(){super(...arguments),this.paramsConfig=BI}static type(){return\\\\\\\"hsvToRgb\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"rgb\\\\\\\",Uo.VEC3)])}setLines(t){const e=[],n=[];e.push(new Cf(this,\\\\\\\"// https://github.com/hughsk/glsl-hsv2rgb\\\\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\\\\nvec3 hsv2rgb(vec3 c) {\\\\n\\\\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\\\n\\\\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\\\n\\\\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\\\n}\\\\\\\"));const i=mf.vector3(this.variableForInputParam(this.p.hsv)),s=this.glVarName(\\\\\\\"rgb\\\\\\\");n.push(`vec3 ${s} = hsv2rgb(${i})`),t.addDefinitions(this,e),t.addBodyLines(this,n)}}const kI=\\\\\\\"condition\\\\\\\";const UI=new class extends ua{};class GI extends CI{constructor(){super(...arguments),this.paramsConfig=UI}static type(){return\\\\\\\"ifThen\\\\\\\"}_expected_inputs_count(){const t=this.io.connections.inputConnections();return t?Math.max(t.length+1,2):2}_expected_input_types(){const t=[Uo.BOOL],e=Uo.FLOAT,n=this.io.connections.inputConnections(),i=this._expected_inputs_count();for(let s=1;s<i;s++)if(n){const i=n[s];if(i){const e=i.src_connection_point().type();t.push(e)}else t.push(e)}else t.push(e);return t}_expected_output_types(){const t=[],e=this._expected_input_types();for(let n=1;n<e.length;n++)t.push(e[n]);return t}_expected_input_name(t){if(0==t)return kI;{const e=this.io.connections.inputConnection(t);if(e){return e.src_connection_point().name()}return`in${t}`}}_expected_output_name(t){return this._expected_input_name(t+1)}child_expected_input_connection_point_types(){return this._expected_output_types()}child_expected_input_connection_point_name(t){return this._expected_output_name(t)}child_expected_output_connection_point_types(){return this._expected_output_types()}child_expected_output_connection_point_name(t){return this._expected_output_name(t)}set_lines_block_start(t,e){const n=[],i=this.io.inputs.namedInputConnectionPoints();for(let t=1;t<i.length;t++){const e=i[t],s=`${e.type()} ${this.glVarName(e.name())} = ${mf.any(this.variableForInput(e.name()))}`;n.push(s)}const s=`if(${mf.any(this.variableForInput(kI))}){`;n.push(s);const r=this.io.connections.inputConnections();if(r)for(let t of r)if(t&&0!=t.input_index){const i=t.dest_connection_point(),s=mf.any(this.variableForInput(i.name())),r=`\\\\t${i.type()} ${e.glVarName(i.name())} = ${s}`;n.push(r)}t.addBodyLines(e,n)}setLines(t){}}const VI=new class extends ua{constructor(){super(...arguments),this.center=ha.VECTOR3([0,0,0]),this.cameraPos=ha.VECTOR3([0,0,0]),this.uv=ha.VECTOR2([0,0]),this.tilesCount=ha.INTEGER(8,{range:[0,32],rangeLocked:[!0,!1]}),this.offset=ha.FLOAT(0)}};class HI extends gf{constructor(){super(...arguments),this.paramsConfig=VI}static type(){return\\\\\\\"impostorUv\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"uv\\\\\\\",Uo.VEC2)])}setLines(t){const e=[];t.addDefinitions(this,[new Cf(this,PR),new Cf(this,\\\\\\\"// ANGLE_NORMALIZER = 1 / (2*PI)\\\\n# define IMPOSTOR_UV_ANGLE_NORMALIZER 0.15915494309189535\\\\nvec2 impostor_uv(vec3 center, vec3 camera_pos, vec2 imp_uv, float tiles_count, float offset){\\\\n\\\\timp_uv.x /= tiles_count;\\\\n\\\\n\\\\tcamera_pos.y = center.y;\\\\n\\\\tvec3 delta = normalize(center - camera_pos);\\\\n\\\\tvec3 angle_start = vec3(-1.0,0.0,0.0);\\\\n\\\\tfloat angle = vector_angle(delta, angle_start) + offset;\\\\n\\\\tangle *= IMPOSTOR_UV_ANGLE_NORMALIZER;\\\\n\\\\tangle *= tiles_count;\\\\n\\\\tangle = floor(angle);\\\\n\\\\tangle /= tiles_count;\\\\n\\\\timp_uv.x -= angle;\\\\n\\\\n\\\\treturn imp_uv;\\\\n}\\\\n\\\\\\\")]);const n=mf.vector3(this.variableForInputParam(this.p.center)),i=mf.vector3(this.variableForInputParam(this.p.cameraPos)),s=mf.vector2(this.variableForInputParam(this.p.uv)),r=mf.float(this.variableForInputParam(this.p.tilesCount)),o=mf.float(this.variableForInputParam(this.p.offset)),a=this.glVarName(\\\\\\\"uv\\\\\\\"),l=[n,i,s,r,o].join(\\\\\\\", \\\\\\\");e.push(`vec2 ${a} = impostor_uv(${l})`),t.addBodyLines(this,e)}}const jI=\\\\\\\"position\\\\\\\",WI=\\\\\\\"normal\\\\\\\",qI=\\\\\\\"instancePosition\\\\\\\",XI=\\\\\\\"instanceOrientation\\\\\\\",YI=\\\\\\\"instanceScale\\\\\\\";const $I=new class extends ua{constructor(){super(...arguments),this.position=ha.VECTOR3([0,0,0]),this.normal=ha.VECTOR3([0,0,1]),this.instancePosition=ha.VECTOR3([0,0,0]),this.instanceOrientation=ha.VECTOR4([0,0,0,0]),this.instanceScale=ha.VECTOR3([1,1,1])}};class JI extends gf{constructor(){super(...arguments),this.paramsConfig=$I}static type(){return\\\\\\\"instanceTransform\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(this.gl_output_name_position(),Uo.VEC3),new qo(this.gl_output_name_normal(),Uo.VEC3)])}setLines(t){const e=[],n=[];n.push(new Cf(this,PR));const i=this.io.inputs.named_input(this.p.position.name())?mf.float(this.variableForInputParam(this.p.position)):this._default_position(),s=this.io.inputs.named_input(this.p.normal.name())?mf.float(this.variableForInputParam(this.p.normal)):this._default_normal(),r=this.io.inputs.named_input(this.p.instancePosition.name())?mf.float(this.variableForInputParam(this.p.instancePosition)):this._default_instancePosition(t),o=this.io.inputs.named_input(this.p.instanceOrientation.name())?mf.float(this.variableForInputParam(this.p.instanceOrientation)):this._default_input_instanceOrientation(t),a=this.io.inputs.named_input(this.p.instanceScale.name())?mf.float(this.variableForInputParam(this.p.instanceScale)):this._default_input_instanceScale(t),l=this.glVarName(this.gl_output_name_position()),c=this.glVarName(this.gl_output_name_normal());e.push(`vec3 ${l} = vec3(${i})`),e.push(`${l} *= ${a}`),e.push(`${l} = rotateWithQuat( ${l}, ${o} )`),e.push(`${l} += ${r}`),e.push(`vec3 ${c} = vec3(${s})`),e.push(`${c} = rotateWithQuat( ${c}, ${o} )`),t.addBodyLines(this,e),t.addDefinitions(this,n)}gl_output_name_position(){return\\\\\\\"position\\\\\\\"}gl_output_name_normal(){return\\\\\\\"normal\\\\\\\"}_default_position(){return jI}_default_normal(){return WI}_default_instancePosition(t){var e;return null===(e=t.assembler().globals_handler)||void 0===e?void 0:e.read_attribute(this,Uo.VEC3,qI,t)}_default_input_instanceOrientation(t){var e;return null===(e=t.assembler().globals_handler)||void 0===e?void 0:e.read_attribute(this,Uo.VEC4,XI,t)}_default_input_instanceScale(t){var e;return null===(e=t.assembler().globals_handler)||void 0===e?void 0:e.read_attribute(this,Uo.VEC3,YI,t)}}class ZI extends NP{static type(){return\\\\\\\"length\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_gl_input_name(t){return[\\\\\\\"x\\\\\\\"][t]}gl_method_name(){return\\\\\\\"length\\\\\\\"}_expected_output_types(){return[Uo.FLOAT]}}const KI=new class extends ua{constructor(){super(...arguments),this.color=ha.VECTOR3([1,1,1])}};class QI extends gf{constructor(){super(...arguments),this.paramsConfig=KI}static type(){return\\\\\\\"luminance\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"lum\\\\\\\",Uo.FLOAT)])}setLines(t){const e=mf.vector3(this.variableForInputParam(this.p.color)),n=`float ${this.glVarName(\\\\\\\"lum\\\\\\\")} = linearToRelativeLuminance(${e})`;t.addBodyLines(this,[n])}}const tF={max:1};class eF extends LP{static type(){return\\\\\\\"maxLength\\\\\\\"}_expected_input_types(){return[this.io.connection_points.first_input_connection_type()||Uo.VEC3,Uo.FLOAT]}_gl_input_name(t){return[\\\\\\\"val\\\\\\\",\\\\\\\"max\\\\\\\"][t]}paramDefaultValue(t){return tF[t]}gl_method_name(){return\\\\\\\"maxLength\\\\\\\"}gl_function_definitions(){return[new Cf(this,\\\\\\\"//\\\\n//\\\\n// CLAMP_LENGTH\\\\n//\\\\n//\\\\nfloat maxLength(float val, float max_l){\\\\n\\\\treturn min(val, max_l);\\\\n}\\\\nvec2 maxLength(vec2 val, float max_l){\\\\n\\\\tfloat vec_length = length(val);\\\\n\\\\tif(vec_length == 0.0){\\\\n\\\\t\\\\treturn val;\\\\n\\\\t} else {\\\\n\\\\t\\\\tfloat new_length = min(vec_length, max_l);\\\\n\\\\t\\\\treturn new_length * normalize(val);\\\\n\\\\t}\\\\n}\\\\nvec3 maxLength(vec3 val, float max_l){\\\\n\\\\tfloat vec_length = length(val);\\\\n\\\\tif(vec_length == 0.0){\\\\n\\\\t\\\\treturn val;\\\\n\\\\t} else {\\\\n\\\\t\\\\tfloat new_length = min(vec_length, max_l);\\\\n\\\\t\\\\treturn new_length * normalize(val);\\\\n\\\\t}\\\\n}\\\\nvec4 maxLength(vec4 val, float max_l){\\\\n\\\\tfloat vec_length = length(val);\\\\n\\\\tif(vec_length == 0.0){\\\\n\\\\t\\\\treturn val;\\\\n\\\\t} else {\\\\n\\\\t\\\\tfloat new_length = min(vec_length, max_l);\\\\n\\\\t\\\\treturn new_length * normalize(val);\\\\n\\\\t}\\\\n}\\\\n\\\\\\\")]}}const nF={blend:.5};class iF extends CP{static type(){return\\\\\\\"mix\\\\\\\"}gl_method_name(){return\\\\\\\"mix\\\\\\\"}paramDefaultValue(t){return nF[t]}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>[\\\\\\\"value0\\\\\\\",\\\\\\\"value1\\\\\\\",\\\\\\\"blend\\\\\\\"][t])),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this)),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_gl_output_name(){return\\\\\\\"mix\\\\\\\"}_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.FLOAT;return[t,t,Uo.FLOAT]}_expected_output_types(){return[this._expected_input_types()[0]]}}const sF=\\\\\\\"mvMult\\\\\\\";const rF=new class extends ua{constructor(){super(...arguments),this.vector=ha.VECTOR3([0,0,0])}};class oF extends gf{constructor(){super(...arguments),this.paramsConfig=rF}static type(){return\\\\\\\"modelViewMatrixMult\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(sF,Uo.VEC4)])}setLines(t){if(t.current_shader_name==Mf.VERTEX){const e=mf.vector3(this.variableForInputParam(this.p.vector)),n=`vec4 ${this.glVarName(sF)} = modelViewMatrix * vec4(${e}, 1.0)`;t.addBodyLines(this,[n],Mf.VERTEX)}}}const aF={mult:1};var lF;!function(t){t.VALUE=\\\\\\\"value\\\\\\\",t.PRE_ADD=\\\\\\\"preAdd\\\\\\\",t.MULT=\\\\\\\"mult\\\\\\\",t.POST_ADD=\\\\\\\"postAdd\\\\\\\"}(lF||(lF={}));class cF extends PP{static type(){return\\\\\\\"multAdd\\\\\\\"}_gl_input_name(t){return[lF.VALUE,lF.PRE_ADD,lF.MULT,lF.POST_ADD][t]}paramDefaultValue(t){return aF[t]}setLines(t){const e=mf.any(this.variableForInput(lF.VALUE)),n=mf.any(this.variableForInput(lF.PRE_ADD)),i=mf.any(this.variableForInput(lF.MULT)),s=mf.any(this.variableForInput(lF.POST_ADD)),r=this._expected_output_types()[0],o=this.io.outputs.namedOutputConnectionPoints()[0].name(),a=`${r} ${this.glVarName(o)} = (${i}*(${e} + ${n})) + ${s}`;t.addBodyLines(this,[a])}}class hF extends NP{static type(){return\\\\\\\"negate\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>[\\\\\\\"in\\\\\\\"][t]))}_gl_input_name(t){return[\\\\\\\"in\\\\\\\"][t]}setLines(t){const e=mf.any(this.variableForInput(this._gl_input_name(0))),n=`${this.io.inputs.namedInputConnectionPoints()[0].type()} ${this.glVarName(this.io.connection_points.output_name(0))} = -1.0 * ${e}`;t.addBodyLines(this,[n])}}var uF;!function(t){t.CLASSIC_PERLIN_2D=\\\\\\\"Classic Perlin 2D\\\\\\\",t.CLASSIC_PERLIN_3D=\\\\\\\"Classic Perlin 3D\\\\\\\",t.CLASSIC_PERLIN_4D=\\\\\\\"Classic Perlin 4D\\\\\\\",t.NOISE_2D=\\\\\\\"noise2D\\\\\\\",t.NOISE_3D=\\\\\\\"noise3D\\\\\\\",t.NOISE_4D=\\\\\\\"noise4D\\\\\\\"}(uF||(uF={}));const dF=[uF.CLASSIC_PERLIN_2D,uF.CLASSIC_PERLIN_3D,uF.CLASSIC_PERLIN_4D,uF.NOISE_2D,uF.NOISE_3D,uF.NOISE_4D],pF={[uF.CLASSIC_PERLIN_2D]:'//\\\\n// GLSL textureless classic 2D noise \\\\\\\"cnoise\\\\\\\",\\\\n// with an RSL-style periodic variant \\\\\\\"pnoise\\\\\\\".\\\\n// Author:  Stefan Gustavson (stefan.gustavson@liu.se)\\\\n// Version: 2011-08-22\\\\n//\\\\n// Many thanks to Ian McEwan of Ashima Arts for the\\\\n// ideas for permutation and gradient selection.\\\\n//\\\\n// Copyright (c) 2011 Stefan Gustavson. All rights reserved.\\\\n// Distributed under the MIT license. See LICENSE file.\\\\n// https://github.com/stegu/webgl-noise\\\\n//\\\\n\\\\n\\\\n// Classic Perlin noise\\\\nfloat cnoise(vec2 P)\\\\n{\\\\n  vec4 Pi = floor(P.xyxy) + vec4(0.0, 0.0, 1.0, 1.0);\\\\n  vec4 Pf = fract(P.xyxy) - vec4(0.0, 0.0, 1.0, 1.0);\\\\n  Pi = mod289(Pi); // To avoid truncation effects in permutation\\\\n  vec4 ix = Pi.xzxz;\\\\n  vec4 iy = Pi.yyww;\\\\n  vec4 fx = Pf.xzxz;\\\\n  vec4 fy = Pf.yyww;\\\\n\\\\n  vec4 i = permute(permute(ix) + iy);\\\\n\\\\n  vec4 gx = fract(i * (1.0 / 41.0)) * 2.0 - 1.0 ;\\\\n  vec4 gy = abs(gx) - 0.5 ;\\\\n  vec4 tx = floor(gx + 0.5);\\\\n  gx = gx - tx;\\\\n\\\\n  vec2 g00 = vec2(gx.x,gy.x);\\\\n  vec2 g10 = vec2(gx.y,gy.y);\\\\n  vec2 g01 = vec2(gx.z,gy.z);\\\\n  vec2 g11 = vec2(gx.w,gy.w);\\\\n\\\\n  vec4 norm = taylorInvSqrt(vec4(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));\\\\n  g00 *= norm.x;  \\\\n  g01 *= norm.y;  \\\\n  g10 *= norm.z;  \\\\n  g11 *= norm.w;  \\\\n\\\\n  float n00 = dot(g00, vec2(fx.x, fy.x));\\\\n  float n10 = dot(g10, vec2(fx.y, fy.y));\\\\n  float n01 = dot(g01, vec2(fx.z, fy.z));\\\\n  float n11 = dot(g11, vec2(fx.w, fy.w));\\\\n\\\\n  vec2 fade_xy = fade(Pf.xy);\\\\n  vec2 n_x = mix(vec2(n00, n01), vec2(n10, n11), fade_xy.x);\\\\n  float n_xy = mix(n_x.x, n_x.y, fade_xy.y);\\\\n  return 2.3 * n_xy;\\\\n}\\\\n\\\\n// Classic Perlin noise, periodic variant\\\\nfloat pnoise(vec2 P, vec2 rep)\\\\n{\\\\n  vec4 Pi = floor(P.xyxy) + vec4(0.0, 0.0, 1.0, 1.0);\\\\n  vec4 Pf = fract(P.xyxy) - vec4(0.0, 0.0, 1.0, 1.0);\\\\n  Pi = mod(Pi, rep.xyxy); // To create noise with explicit period\\\\n  Pi = mod289(Pi);        // To avoid truncation effects in permutation\\\\n  vec4 ix = Pi.xzxz;\\\\n  vec4 iy = Pi.yyww;\\\\n  vec4 fx = Pf.xzxz;\\\\n  vec4 fy = Pf.yyww;\\\\n\\\\n  vec4 i = permute(permute(ix) + iy);\\\\n\\\\n  vec4 gx = fract(i * (1.0 / 41.0)) * 2.0 - 1.0 ;\\\\n  vec4 gy = abs(gx) - 0.5 ;\\\\n  vec4 tx = floor(gx + 0.5);\\\\n  gx = gx - tx;\\\\n\\\\n  vec2 g00 = vec2(gx.x,gy.x);\\\\n  vec2 g10 = vec2(gx.y,gy.y);\\\\n  vec2 g01 = vec2(gx.z,gy.z);\\\\n  vec2 g11 = vec2(gx.w,gy.w);\\\\n\\\\n  vec4 norm = taylorInvSqrt(vec4(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));\\\\n  g00 *= norm.x;  \\\\n  g01 *= norm.y;  \\\\n  g10 *= norm.z;  \\\\n  g11 *= norm.w;  \\\\n\\\\n  float n00 = dot(g00, vec2(fx.x, fy.x));\\\\n  float n10 = dot(g10, vec2(fx.y, fy.y));\\\\n  float n01 = dot(g01, vec2(fx.z, fy.z));\\\\n  float n11 = dot(g11, vec2(fx.w, fy.w));\\\\n\\\\n  vec2 fade_xy = fade(Pf.xy);\\\\n  vec2 n_x = mix(vec2(n00, n01), vec2(n10, n11), fade_xy.x);\\\\n  float n_xy = mix(n_x.x, n_x.y, fade_xy.y);\\\\n  return 2.3 * n_xy;\\\\n}\\\\n',[uF.CLASSIC_PERLIN_3D]:'//\\\\n// GLSL textureless classic 3D noise \\\\\\\"cnoise\\\\\\\",\\\\n// with an RSL-style periodic variant \\\\\\\"pnoise\\\\\\\".\\\\n// Author:  Stefan Gustavson (stefan.gustavson@liu.se)\\\\n// Version: 2011-10-11\\\\n//\\\\n// Many thanks to Ian McEwan of Ashima Arts for the\\\\n// ideas for permutation and gradient selection.\\\\n//\\\\n// Copyright (c) 2011 Stefan Gustavson. All rights reserved.\\\\n// Distributed under the MIT license. See LICENSE file.\\\\n// https://github.com/stegu/webgl-noise\\\\n//\\\\n\\\\n// Classic Perlin noise\\\\nfloat cnoise(vec3 P)\\\\n{\\\\n  vec3 Pi0 = floor(P); // Integer part for indexing\\\\n  vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1\\\\n  Pi0 = mod289(Pi0);\\\\n  Pi1 = mod289(Pi1);\\\\n  vec3 Pf0 = fract(P); // Fractional part for interpolation\\\\n  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\\\n  vec4 iz0 = Pi0.zzzz;\\\\n  vec4 iz1 = Pi1.zzzz;\\\\n\\\\n  vec4 ixy = permute(permute(ix) + iy);\\\\n  vec4 ixy0 = permute(ixy + iz0);\\\\n  vec4 ixy1 = permute(ixy + iz1);\\\\n\\\\n  vec4 gx0 = ixy0 * (1.0 / 7.0);\\\\n  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\\\n  gx0 = fract(gx0);\\\\n  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\\\n  vec4 sz0 = step(gz0, vec4(0.0));\\\\n  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\\\n  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\\\n\\\\n  vec4 gx1 = ixy1 * (1.0 / 7.0);\\\\n  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\\\n  gx1 = fract(gx1);\\\\n  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\\\n  vec4 sz1 = step(gz1, vec4(0.0));\\\\n  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\\\n  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\\\n\\\\n  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\\\\n  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\\\\n  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\\\\n  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\\\\n  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\\\\n  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\\\\n  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\\\\n  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\\\\n\\\\n  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\\\n  g000 *= norm0.x;\\\\n  g010 *= norm0.y;\\\\n  g100 *= norm0.z;\\\\n  g110 *= norm0.w;\\\\n  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\\\n  g001 *= norm1.x;\\\\n  g011 *= norm1.y;\\\\n  g101 *= norm1.z;\\\\n  g111 *= norm1.w;\\\\n\\\\n  float n000 = dot(g000, Pf0);\\\\n  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\\\n  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\\\n  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\\\n  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\\\n  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\\\n  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\\\n  float n111 = dot(g111, Pf1);\\\\n\\\\n  vec3 fade_xyz = fade(Pf0);\\\\n  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\\\n  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\\\n  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); \\\\n  return 2.2 * n_xyz;\\\\n}\\\\n\\\\n// Classic Perlin noise, periodic variant\\\\nfloat pnoise(vec3 P, vec3 rep)\\\\n{\\\\n  vec3 Pi0 = mod(floor(P), rep); // Integer part, modulo period\\\\n  vec3 Pi1 = mod(Pi0 + vec3(1.0), rep); // Integer part + 1, mod period\\\\n  Pi0 = mod289(Pi0);\\\\n  Pi1 = mod289(Pi1);\\\\n  vec3 Pf0 = fract(P); // Fractional part for interpolation\\\\n  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\\\n  vec4 iz0 = Pi0.zzzz;\\\\n  vec4 iz1 = Pi1.zzzz;\\\\n\\\\n  vec4 ixy = permute(permute(ix) + iy);\\\\n  vec4 ixy0 = permute(ixy + iz0);\\\\n  vec4 ixy1 = permute(ixy + iz1);\\\\n\\\\n  vec4 gx0 = ixy0 * (1.0 / 7.0);\\\\n  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\\\n  gx0 = fract(gx0);\\\\n  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\\\n  vec4 sz0 = step(gz0, vec4(0.0));\\\\n  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\\\n  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\\\n\\\\n  vec4 gx1 = ixy1 * (1.0 / 7.0);\\\\n  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\\\n  gx1 = fract(gx1);\\\\n  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\\\n  vec4 sz1 = step(gz1, vec4(0.0));\\\\n  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\\\n  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\\\n\\\\n  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\\\\n  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\\\\n  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\\\\n  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\\\\n  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\\\\n  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\\\\n  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\\\\n  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\\\\n\\\\n  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\\\n  g000 *= norm0.x;\\\\n  g010 *= norm0.y;\\\\n  g100 *= norm0.z;\\\\n  g110 *= norm0.w;\\\\n  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\\\n  g001 *= norm1.x;\\\\n  g011 *= norm1.y;\\\\n  g101 *= norm1.z;\\\\n  g111 *= norm1.w;\\\\n\\\\n  float n000 = dot(g000, Pf0);\\\\n  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\\\n  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\\\n  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\\\n  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\\\n  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\\\n  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\\\n  float n111 = dot(g111, Pf1);\\\\n\\\\n  vec3 fade_xyz = fade(Pf0);\\\\n  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\\\n  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\\\n  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); \\\\n  return 2.2 * n_xyz;\\\\n}\\\\n',[uF.CLASSIC_PERLIN_4D]:'//\\\\n// GLSL textureless classic 4D noise \\\\\\\"cnoise\\\\\\\",\\\\n// with an RSL-style periodic variant \\\\\\\"pnoise\\\\\\\".\\\\n// Author:  Stefan Gustavson (stefan.gustavson@liu.se)\\\\n// Version: 2011-08-22\\\\n//\\\\n// Many thanks to Ian McEwan of Ashima Arts for the\\\\n// ideas for permutation and gradient selection.\\\\n//\\\\n// Copyright (c) 2011 Stefan Gustavson. All rights reserved.\\\\n// Distributed under the MIT license. See LICENSE file.\\\\n// https://github.com/stegu/webgl-noise\\\\n//\\\\n\\\\n\\\\n\\\\n// Classic Perlin noise\\\\nfloat cnoise(vec4 P)\\\\n{\\\\n  vec4 Pi0 = floor(P); // Integer part for indexing\\\\n  vec4 Pi1 = Pi0 + 1.0; // Integer part + 1\\\\n  Pi0 = mod289(Pi0);\\\\n  Pi1 = mod289(Pi1);\\\\n  vec4 Pf0 = fract(P); // Fractional part for interpolation\\\\n  vec4 Pf1 = Pf0 - 1.0; // Fractional part - 1.0\\\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\\\n  vec4 iz0 = vec4(Pi0.zzzz);\\\\n  vec4 iz1 = vec4(Pi1.zzzz);\\\\n  vec4 iw0 = vec4(Pi0.wwww);\\\\n  vec4 iw1 = vec4(Pi1.wwww);\\\\n\\\\n  vec4 ixy = permute(permute(ix) + iy);\\\\n  vec4 ixy0 = permute(ixy + iz0);\\\\n  vec4 ixy1 = permute(ixy + iz1);\\\\n  vec4 ixy00 = permute(ixy0 + iw0);\\\\n  vec4 ixy01 = permute(ixy0 + iw1);\\\\n  vec4 ixy10 = permute(ixy1 + iw0);\\\\n  vec4 ixy11 = permute(ixy1 + iw1);\\\\n\\\\n  vec4 gx00 = ixy00 * (1.0 / 7.0);\\\\n  vec4 gy00 = floor(gx00) * (1.0 / 7.0);\\\\n  vec4 gz00 = floor(gy00) * (1.0 / 6.0);\\\\n  gx00 = fract(gx00) - 0.5;\\\\n  gy00 = fract(gy00) - 0.5;\\\\n  gz00 = fract(gz00) - 0.5;\\\\n  vec4 gw00 = vec4(0.75) - abs(gx00) - abs(gy00) - abs(gz00);\\\\n  vec4 sw00 = step(gw00, vec4(0.0));\\\\n  gx00 -= sw00 * (step(0.0, gx00) - 0.5);\\\\n  gy00 -= sw00 * (step(0.0, gy00) - 0.5);\\\\n\\\\n  vec4 gx01 = ixy01 * (1.0 / 7.0);\\\\n  vec4 gy01 = floor(gx01) * (1.0 / 7.0);\\\\n  vec4 gz01 = floor(gy01) * (1.0 / 6.0);\\\\n  gx01 = fract(gx01) - 0.5;\\\\n  gy01 = fract(gy01) - 0.5;\\\\n  gz01 = fract(gz01) - 0.5;\\\\n  vec4 gw01 = vec4(0.75) - abs(gx01) - abs(gy01) - abs(gz01);\\\\n  vec4 sw01 = step(gw01, vec4(0.0));\\\\n  gx01 -= sw01 * (step(0.0, gx01) - 0.5);\\\\n  gy01 -= sw01 * (step(0.0, gy01) - 0.5);\\\\n\\\\n  vec4 gx10 = ixy10 * (1.0 / 7.0);\\\\n  vec4 gy10 = floor(gx10) * (1.0 / 7.0);\\\\n  vec4 gz10 = floor(gy10) * (1.0 / 6.0);\\\\n  gx10 = fract(gx10) - 0.5;\\\\n  gy10 = fract(gy10) - 0.5;\\\\n  gz10 = fract(gz10) - 0.5;\\\\n  vec4 gw10 = vec4(0.75) - abs(gx10) - abs(gy10) - abs(gz10);\\\\n  vec4 sw10 = step(gw10, vec4(0.0));\\\\n  gx10 -= sw10 * (step(0.0, gx10) - 0.5);\\\\n  gy10 -= sw10 * (step(0.0, gy10) - 0.5);\\\\n\\\\n  vec4 gx11 = ixy11 * (1.0 / 7.0);\\\\n  vec4 gy11 = floor(gx11) * (1.0 / 7.0);\\\\n  vec4 gz11 = floor(gy11) * (1.0 / 6.0);\\\\n  gx11 = fract(gx11) - 0.5;\\\\n  gy11 = fract(gy11) - 0.5;\\\\n  gz11 = fract(gz11) - 0.5;\\\\n  vec4 gw11 = vec4(0.75) - abs(gx11) - abs(gy11) - abs(gz11);\\\\n  vec4 sw11 = step(gw11, vec4(0.0));\\\\n  gx11 -= sw11 * (step(0.0, gx11) - 0.5);\\\\n  gy11 -= sw11 * (step(0.0, gy11) - 0.5);\\\\n\\\\n  vec4 g0000 = vec4(gx00.x,gy00.x,gz00.x,gw00.x);\\\\n  vec4 g1000 = vec4(gx00.y,gy00.y,gz00.y,gw00.y);\\\\n  vec4 g0100 = vec4(gx00.z,gy00.z,gz00.z,gw00.z);\\\\n  vec4 g1100 = vec4(gx00.w,gy00.w,gz00.w,gw00.w);\\\\n  vec4 g0010 = vec4(gx10.x,gy10.x,gz10.x,gw10.x);\\\\n  vec4 g1010 = vec4(gx10.y,gy10.y,gz10.y,gw10.y);\\\\n  vec4 g0110 = vec4(gx10.z,gy10.z,gz10.z,gw10.z);\\\\n  vec4 g1110 = vec4(gx10.w,gy10.w,gz10.w,gw10.w);\\\\n  vec4 g0001 = vec4(gx01.x,gy01.x,gz01.x,gw01.x);\\\\n  vec4 g1001 = vec4(gx01.y,gy01.y,gz01.y,gw01.y);\\\\n  vec4 g0101 = vec4(gx01.z,gy01.z,gz01.z,gw01.z);\\\\n  vec4 g1101 = vec4(gx01.w,gy01.w,gz01.w,gw01.w);\\\\n  vec4 g0011 = vec4(gx11.x,gy11.x,gz11.x,gw11.x);\\\\n  vec4 g1011 = vec4(gx11.y,gy11.y,gz11.y,gw11.y);\\\\n  vec4 g0111 = vec4(gx11.z,gy11.z,gz11.z,gw11.z);\\\\n  vec4 g1111 = vec4(gx11.w,gy11.w,gz11.w,gw11.w);\\\\n\\\\n  vec4 norm00 = taylorInvSqrt(vec4(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));\\\\n  g0000 *= norm00.x;\\\\n  g0100 *= norm00.y;\\\\n  g1000 *= norm00.z;\\\\n  g1100 *= norm00.w;\\\\n\\\\n  vec4 norm01 = taylorInvSqrt(vec4(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));\\\\n  g0001 *= norm01.x;\\\\n  g0101 *= norm01.y;\\\\n  g1001 *= norm01.z;\\\\n  g1101 *= norm01.w;\\\\n\\\\n  vec4 norm10 = taylorInvSqrt(vec4(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));\\\\n  g0010 *= norm10.x;\\\\n  g0110 *= norm10.y;\\\\n  g1010 *= norm10.z;\\\\n  g1110 *= norm10.w;\\\\n\\\\n  vec4 norm11 = taylorInvSqrt(vec4(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));\\\\n  g0011 *= norm11.x;\\\\n  g0111 *= norm11.y;\\\\n  g1011 *= norm11.z;\\\\n  g1111 *= norm11.w;\\\\n\\\\n  float n0000 = dot(g0000, Pf0);\\\\n  float n1000 = dot(g1000, vec4(Pf1.x, Pf0.yzw));\\\\n  float n0100 = dot(g0100, vec4(Pf0.x, Pf1.y, Pf0.zw));\\\\n  float n1100 = dot(g1100, vec4(Pf1.xy, Pf0.zw));\\\\n  float n0010 = dot(g0010, vec4(Pf0.xy, Pf1.z, Pf0.w));\\\\n  float n1010 = dot(g1010, vec4(Pf1.x, Pf0.y, Pf1.z, Pf0.w));\\\\n  float n0110 = dot(g0110, vec4(Pf0.x, Pf1.yz, Pf0.w));\\\\n  float n1110 = dot(g1110, vec4(Pf1.xyz, Pf0.w));\\\\n  float n0001 = dot(g0001, vec4(Pf0.xyz, Pf1.w));\\\\n  float n1001 = dot(g1001, vec4(Pf1.x, Pf0.yz, Pf1.w));\\\\n  float n0101 = dot(g0101, vec4(Pf0.x, Pf1.y, Pf0.z, Pf1.w));\\\\n  float n1101 = dot(g1101, vec4(Pf1.xy, Pf0.z, Pf1.w));\\\\n  float n0011 = dot(g0011, vec4(Pf0.xy, Pf1.zw));\\\\n  float n1011 = dot(g1011, vec4(Pf1.x, Pf0.y, Pf1.zw));\\\\n  float n0111 = dot(g0111, vec4(Pf0.x, Pf1.yzw));\\\\n  float n1111 = dot(g1111, Pf1);\\\\n\\\\n  vec4 fade_xyzw = fade(Pf0);\\\\n  vec4 n_0w = mix(vec4(n0000, n1000, n0100, n1100), vec4(n0001, n1001, n0101, n1101), fade_xyzw.w);\\\\n  vec4 n_1w = mix(vec4(n0010, n1010, n0110, n1110), vec4(n0011, n1011, n0111, n1111), fade_xyzw.w);\\\\n  vec4 n_zw = mix(n_0w, n_1w, fade_xyzw.z);\\\\n  vec2 n_yzw = mix(n_zw.xy, n_zw.zw, fade_xyzw.y);\\\\n  float n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);\\\\n  return 2.2 * n_xyzw;\\\\n}\\\\n\\\\n// Classic Perlin noise, periodic version\\\\nfloat pnoise(vec4 P, vec4 rep)\\\\n{\\\\n  vec4 Pi0 = mod(floor(P), rep); // Integer part modulo rep\\\\n  vec4 Pi1 = mod(Pi0 + 1.0, rep); // Integer part + 1 mod rep\\\\n  Pi0 = mod289(Pi0);\\\\n  Pi1 = mod289(Pi1);\\\\n  vec4 Pf0 = fract(P); // Fractional part for interpolation\\\\n  vec4 Pf1 = Pf0 - 1.0; // Fractional part - 1.0\\\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\\\n  vec4 iz0 = vec4(Pi0.zzzz);\\\\n  vec4 iz1 = vec4(Pi1.zzzz);\\\\n  vec4 iw0 = vec4(Pi0.wwww);\\\\n  vec4 iw1 = vec4(Pi1.wwww);\\\\n\\\\n  vec4 ixy = permute(permute(ix) + iy);\\\\n  vec4 ixy0 = permute(ixy + iz0);\\\\n  vec4 ixy1 = permute(ixy + iz1);\\\\n  vec4 ixy00 = permute(ixy0 + iw0);\\\\n  vec4 ixy01 = permute(ixy0 + iw1);\\\\n  vec4 ixy10 = permute(ixy1 + iw0);\\\\n  vec4 ixy11 = permute(ixy1 + iw1);\\\\n\\\\n  vec4 gx00 = ixy00 * (1.0 / 7.0);\\\\n  vec4 gy00 = floor(gx00) * (1.0 / 7.0);\\\\n  vec4 gz00 = floor(gy00) * (1.0 / 6.0);\\\\n  gx00 = fract(gx00) - 0.5;\\\\n  gy00 = fract(gy00) - 0.5;\\\\n  gz00 = fract(gz00) - 0.5;\\\\n  vec4 gw00 = vec4(0.75) - abs(gx00) - abs(gy00) - abs(gz00);\\\\n  vec4 sw00 = step(gw00, vec4(0.0));\\\\n  gx00 -= sw00 * (step(0.0, gx00) - 0.5);\\\\n  gy00 -= sw00 * (step(0.0, gy00) - 0.5);\\\\n\\\\n  vec4 gx01 = ixy01 * (1.0 / 7.0);\\\\n  vec4 gy01 = floor(gx01) * (1.0 / 7.0);\\\\n  vec4 gz01 = floor(gy01) * (1.0 / 6.0);\\\\n  gx01 = fract(gx01) - 0.5;\\\\n  gy01 = fract(gy01) - 0.5;\\\\n  gz01 = fract(gz01) - 0.5;\\\\n  vec4 gw01 = vec4(0.75) - abs(gx01) - abs(gy01) - abs(gz01);\\\\n  vec4 sw01 = step(gw01, vec4(0.0));\\\\n  gx01 -= sw01 * (step(0.0, gx01) - 0.5);\\\\n  gy01 -= sw01 * (step(0.0, gy01) - 0.5);\\\\n\\\\n  vec4 gx10 = ixy10 * (1.0 / 7.0);\\\\n  vec4 gy10 = floor(gx10) * (1.0 / 7.0);\\\\n  vec4 gz10 = floor(gy10) * (1.0 / 6.0);\\\\n  gx10 = fract(gx10) - 0.5;\\\\n  gy10 = fract(gy10) - 0.5;\\\\n  gz10 = fract(gz10) - 0.5;\\\\n  vec4 gw10 = vec4(0.75) - abs(gx10) - abs(gy10) - abs(gz10);\\\\n  vec4 sw10 = step(gw10, vec4(0.0));\\\\n  gx10 -= sw10 * (step(0.0, gx10) - 0.5);\\\\n  gy10 -= sw10 * (step(0.0, gy10) - 0.5);\\\\n\\\\n  vec4 gx11 = ixy11 * (1.0 / 7.0);\\\\n  vec4 gy11 = floor(gx11) * (1.0 / 7.0);\\\\n  vec4 gz11 = floor(gy11) * (1.0 / 6.0);\\\\n  gx11 = fract(gx11) - 0.5;\\\\n  gy11 = fract(gy11) - 0.5;\\\\n  gz11 = fract(gz11) - 0.5;\\\\n  vec4 gw11 = vec4(0.75) - abs(gx11) - abs(gy11) - abs(gz11);\\\\n  vec4 sw11 = step(gw11, vec4(0.0));\\\\n  gx11 -= sw11 * (step(0.0, gx11) - 0.5);\\\\n  gy11 -= sw11 * (step(0.0, gy11) - 0.5);\\\\n\\\\n  vec4 g0000 = vec4(gx00.x,gy00.x,gz00.x,gw00.x);\\\\n  vec4 g1000 = vec4(gx00.y,gy00.y,gz00.y,gw00.y);\\\\n  vec4 g0100 = vec4(gx00.z,gy00.z,gz00.z,gw00.z);\\\\n  vec4 g1100 = vec4(gx00.w,gy00.w,gz00.w,gw00.w);\\\\n  vec4 g0010 = vec4(gx10.x,gy10.x,gz10.x,gw10.x);\\\\n  vec4 g1010 = vec4(gx10.y,gy10.y,gz10.y,gw10.y);\\\\n  vec4 g0110 = vec4(gx10.z,gy10.z,gz10.z,gw10.z);\\\\n  vec4 g1110 = vec4(gx10.w,gy10.w,gz10.w,gw10.w);\\\\n  vec4 g0001 = vec4(gx01.x,gy01.x,gz01.x,gw01.x);\\\\n  vec4 g1001 = vec4(gx01.y,gy01.y,gz01.y,gw01.y);\\\\n  vec4 g0101 = vec4(gx01.z,gy01.z,gz01.z,gw01.z);\\\\n  vec4 g1101 = vec4(gx01.w,gy01.w,gz01.w,gw01.w);\\\\n  vec4 g0011 = vec4(gx11.x,gy11.x,gz11.x,gw11.x);\\\\n  vec4 g1011 = vec4(gx11.y,gy11.y,gz11.y,gw11.y);\\\\n  vec4 g0111 = vec4(gx11.z,gy11.z,gz11.z,gw11.z);\\\\n  vec4 g1111 = vec4(gx11.w,gy11.w,gz11.w,gw11.w);\\\\n\\\\n  vec4 norm00 = taylorInvSqrt(vec4(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));\\\\n  g0000 *= norm00.x;\\\\n  g0100 *= norm00.y;\\\\n  g1000 *= norm00.z;\\\\n  g1100 *= norm00.w;\\\\n\\\\n  vec4 norm01 = taylorInvSqrt(vec4(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));\\\\n  g0001 *= norm01.x;\\\\n  g0101 *= norm01.y;\\\\n  g1001 *= norm01.z;\\\\n  g1101 *= norm01.w;\\\\n\\\\n  vec4 norm10 = taylorInvSqrt(vec4(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));\\\\n  g0010 *= norm10.x;\\\\n  g0110 *= norm10.y;\\\\n  g1010 *= norm10.z;\\\\n  g1110 *= norm10.w;\\\\n\\\\n  vec4 norm11 = taylorInvSqrt(vec4(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));\\\\n  g0011 *= norm11.x;\\\\n  g0111 *= norm11.y;\\\\n  g1011 *= norm11.z;\\\\n  g1111 *= norm11.w;\\\\n\\\\n  float n0000 = dot(g0000, Pf0);\\\\n  float n1000 = dot(g1000, vec4(Pf1.x, Pf0.yzw));\\\\n  float n0100 = dot(g0100, vec4(Pf0.x, Pf1.y, Pf0.zw));\\\\n  float n1100 = dot(g1100, vec4(Pf1.xy, Pf0.zw));\\\\n  float n0010 = dot(g0010, vec4(Pf0.xy, Pf1.z, Pf0.w));\\\\n  float n1010 = dot(g1010, vec4(Pf1.x, Pf0.y, Pf1.z, Pf0.w));\\\\n  float n0110 = dot(g0110, vec4(Pf0.x, Pf1.yz, Pf0.w));\\\\n  float n1110 = dot(g1110, vec4(Pf1.xyz, Pf0.w));\\\\n  float n0001 = dot(g0001, vec4(Pf0.xyz, Pf1.w));\\\\n  float n1001 = dot(g1001, vec4(Pf1.x, Pf0.yz, Pf1.w));\\\\n  float n0101 = dot(g0101, vec4(Pf0.x, Pf1.y, Pf0.z, Pf1.w));\\\\n  float n1101 = dot(g1101, vec4(Pf1.xy, Pf0.z, Pf1.w));\\\\n  float n0011 = dot(g0011, vec4(Pf0.xy, Pf1.zw));\\\\n  float n1011 = dot(g1011, vec4(Pf1.x, Pf0.y, Pf1.zw));\\\\n  float n0111 = dot(g0111, vec4(Pf0.x, Pf1.yzw));\\\\n  float n1111 = dot(g1111, Pf1);\\\\n\\\\n  vec4 fade_xyzw = fade(Pf0);\\\\n  vec4 n_0w = mix(vec4(n0000, n1000, n0100, n1100), vec4(n0001, n1001, n0101, n1101), fade_xyzw.w);\\\\n  vec4 n_1w = mix(vec4(n0010, n1010, n0110, n1110), vec4(n0011, n1011, n0111, n1111), fade_xyzw.w);\\\\n  vec4 n_zw = mix(n_0w, n_1w, fade_xyzw.z);\\\\n  vec2 n_yzw = mix(n_zw.xy, n_zw.zw, fade_xyzw.y);\\\\n  float n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);\\\\n  return 2.2 * n_xyzw;\\\\n}\\\\n',[uF.NOISE_2D]:\\\\\\\"//\\\\n// Description : Array and textureless GLSL 2D simplex noise function.\\\\n//      Author : Ian McEwan, Ashima Arts.\\\\n//  Maintainer : stegu\\\\n//     Lastmod : 20110822 (ijm)\\\\n//     License : Copyright (C) 2011 Ashima Arts. All rights reserved.\\\\n//               Distributed under the MIT License. See LICENSE file.\\\\n//               https://github.com/ashima/webgl-noise\\\\n//               https://github.com/stegu/webgl-noise\\\\n// \\\\n\\\\n\\\\nfloat snoise(vec2 v)\\\\n  {\\\\n  const vec4 C = vec4(0.211324865405187,  // (3.0-sqrt(3.0))/6.0\\\\n                      0.366025403784439,  // 0.5*(sqrt(3.0)-1.0)\\\\n                     -0.577350269189626,  // -1.0 + 2.0 * C.x\\\\n                      0.024390243902439); // 1.0 / 41.0\\\\n// First corner\\\\n  vec2 i  = floor(v + dot(v, C.yy) );\\\\n  vec2 x0 = v -   i + dot(i, C.xx);\\\\n\\\\n// Other corners\\\\n  vec2 i1;\\\\n  //i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0\\\\n  //i1.y = 1.0 - i1.x;\\\\n  i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\\\\n  // x0 = x0 - 0.0 + 0.0 * C.xx ;\\\\n  // x1 = x0 - i1 + 1.0 * C.xx ;\\\\n  // x2 = x0 - 1.0 + 2.0 * C.xx ;\\\\n  vec4 x12 = x0.xyxy + C.xxzz;\\\\n  x12.xy -= i1;\\\\n\\\\n// Permutations\\\\n  i = mod289(i); // Avoid truncation effects in permutation\\\\n  vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\\\\n\\\\t\\\\t+ i.x + vec3(0.0, i1.x, 1.0 ));\\\\n\\\\n  vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);\\\\n  m = m*m ;\\\\n  m = m*m ;\\\\n\\\\n// Gradients: 41 points uniformly over a line, mapped onto a diamond.\\\\n// The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287)\\\\n\\\\n  vec3 x = 2.0 * fract(p * C.www) - 1.0;\\\\n  vec3 h = abs(x) - 0.5;\\\\n  vec3 ox = floor(x + 0.5);\\\\n  vec3 a0 = x - ox;\\\\n\\\\n// Normalise gradients implicitly by scaling m\\\\n// Approximation of: m *= inversesqrt( a0*a0 + h*h );\\\\n  m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\\\\n\\\\n// Compute final noise value at P\\\\n  vec3 g;\\\\n  g.x  = a0.x  * x0.x  + h.x  * x0.y;\\\\n  g.yz = a0.yz * x12.xz + h.yz * x12.yw;\\\\n  return 130.0 * dot(m, g);\\\\n}\\\\n\\\\\\\",[uF.NOISE_3D]:\\\\\\\"//\\\\n// Description : Array and textureless GLSL 2D/3D/4D simplex \\\\n//               noise functions.\\\\n//      Author : Ian McEwan, Ashima Arts.\\\\n//  Maintainer : stegu\\\\n//     Lastmod : 20110822 (ijm)\\\\n//     License : Copyright (C) 2011 Ashima Arts. All rights reserved.\\\\n//               Distributed under the MIT License. See LICENSE file.\\\\n//               https://github.com/ashima/webgl-noise\\\\n//               https://github.com/stegu/webgl-noise\\\\n// \\\\n\\\\n\\\\n\\\\nfloat snoise(vec3 v)\\\\n  { \\\\n  const vec2  C = vec2(1.0/6.0, 1.0/3.0) ;\\\\n  const vec4  D = vec4(0.0, 0.5, 1.0, 2.0);\\\\n\\\\n// First corner\\\\n  vec3 i  = floor(v + dot(v, C.yyy) );\\\\n  vec3 x0 =   v - i + dot(i, C.xxx) ;\\\\n\\\\n// Other corners\\\\n  vec3 g = step(x0.yzx, x0.xyz);\\\\n  vec3 l = 1.0 - g;\\\\n  vec3 i1 = min( g.xyz, l.zxy );\\\\n  vec3 i2 = max( g.xyz, l.zxy );\\\\n\\\\n  //   x0 = x0 - 0.0 + 0.0 * C.xxx;\\\\n  //   x1 = x0 - i1  + 1.0 * C.xxx;\\\\n  //   x2 = x0 - i2  + 2.0 * C.xxx;\\\\n  //   x3 = x0 - 1.0 + 3.0 * C.xxx;\\\\n  vec3 x1 = x0 - i1 + C.xxx;\\\\n  vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\\\\n  vec3 x3 = x0 - D.yyy;      // -1.0+3.0*C.x = -0.5 = -D.y\\\\n\\\\n// Permutations\\\\n  i = mod289(i); \\\\n  vec4 p = permute( permute( permute( \\\\n             i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\\\\n           + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) \\\\n           + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\\\\n\\\\n// Gradients: 7x7 points over a square, mapped onto an octahedron.\\\\n// The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294)\\\\n  float n_ = 0.142857142857; // 1.0/7.0\\\\n  vec3  ns = n_ * D.wyz - D.xzx;\\\\n\\\\n  vec4 j = p - 49.0 * floor(p * ns.z * ns.z);  //  mod(p,7*7)\\\\n\\\\n  vec4 x_ = floor(j * ns.z);\\\\n  vec4 y_ = floor(j - 7.0 * x_ );    // mod(j,N)\\\\n\\\\n  vec4 x = x_ *ns.x + ns.yyyy;\\\\n  vec4 y = y_ *ns.x + ns.yyyy;\\\\n  vec4 h = 1.0 - abs(x) - abs(y);\\\\n\\\\n  vec4 b0 = vec4( x.xy, y.xy );\\\\n  vec4 b1 = vec4( x.zw, y.zw );\\\\n\\\\n  //vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0;\\\\n  //vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0;\\\\n  vec4 s0 = floor(b0)*2.0 + 1.0;\\\\n  vec4 s1 = floor(b1)*2.0 + 1.0;\\\\n  vec4 sh = -step(h, vec4(0.0));\\\\n\\\\n  vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\\\\n  vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\\\\n\\\\n  vec3 p0 = vec3(a0.xy,h.x);\\\\n  vec3 p1 = vec3(a0.zw,h.y);\\\\n  vec3 p2 = vec3(a1.xy,h.z);\\\\n  vec3 p3 = vec3(a1.zw,h.w);\\\\n\\\\n//Normalise gradients\\\\n  vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\\\\n  p0 *= norm.x;\\\\n  p1 *= norm.y;\\\\n  p2 *= norm.z;\\\\n  p3 *= norm.w;\\\\n\\\\n// Mix final noise value\\\\n  vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\\\\n  m = m * m;\\\\n  return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1), \\\\n                                dot(p2,x2), dot(p3,x3) ) );\\\\n  }\\\\n\\\\\\\",[uF.NOISE_4D]:\\\\\\\"//\\\\n// Description : Array and textureless GLSL 2D/3D/4D simplex \\\\n//               noise functions.\\\\n//      Author : Ian McEwan, Ashima Arts.\\\\n//  Maintainer : stegu\\\\n//     Lastmod : 20110822 (ijm)\\\\n//     License : Copyright (C) 2011 Ashima Arts. All rights reserved.\\\\n//               Distributed under the MIT License. See LICENSE file.\\\\n//               https://github.com/ashima/webgl-noise\\\\n//               https://github.com/stegu/webgl-noise\\\\n// \\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\nvec4 grad4(float j, vec4 ip)\\\\n  {\\\\n  const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\\\\n  vec4 p,s;\\\\n\\\\n  p.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\\\\n  p.w = 1.5 - dot(abs(p.xyz), ones.xyz);\\\\n  s = vec4(lessThan(p, vec4(0.0)));\\\\n  p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www; \\\\n\\\\n  return p;\\\\n  }\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\n// (sqrt(5) - 1)/4 = F4, used once below\\\\n#define F4 0.309016994374947451\\\\n\\\\nfloat snoise(vec4 v)\\\\n  {\\\\n  const vec4  C = vec4( 0.138196601125011,  // (5 - sqrt(5))/20  G4\\\\n                        0.276393202250021,  // 2 * G4\\\\n                        0.414589803375032,  // 3 * G4\\\\n                       -0.447213595499958); // -1 + 4 * G4\\\\n\\\\n// First corner\\\\n  vec4 i  = floor(v + dot(v, vec4(F4)) );\\\\n  vec4 x0 = v -   i + dot(i, C.xxxx);\\\\n\\\\n// Other corners\\\\n\\\\n// Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI)\\\\n  vec4 i0;\\\\n  vec3 isX = step( x0.yzw, x0.xxx );\\\\n  vec3 isYZ = step( x0.zww, x0.yyz );\\\\n//  i0.x = dot( isX, vec3( 1.0 ) );\\\\n  i0.x = isX.x + isX.y + isX.z;\\\\n  i0.yzw = 1.0 - isX;\\\\n//  i0.y += dot( isYZ.xy, vec2( 1.0 ) );\\\\n  i0.y += isYZ.x + isYZ.y;\\\\n  i0.zw += 1.0 - isYZ.xy;\\\\n  i0.z += isYZ.z;\\\\n  i0.w += 1.0 - isYZ.z;\\\\n\\\\n  // i0 now contains the unique values 0,1,2,3 in each channel\\\\n  vec4 i3 = clamp( i0, 0.0, 1.0 );\\\\n  vec4 i2 = clamp( i0-1.0, 0.0, 1.0 );\\\\n  vec4 i1 = clamp( i0-2.0, 0.0, 1.0 );\\\\n\\\\n  //  x0 = x0 - 0.0 + 0.0 * C.xxxx\\\\n  //  x1 = x0 - i1  + 1.0 * C.xxxx\\\\n  //  x2 = x0 - i2  + 2.0 * C.xxxx\\\\n  //  x3 = x0 - i3  + 3.0 * C.xxxx\\\\n  //  x4 = x0 - 1.0 + 4.0 * C.xxxx\\\\n  vec4 x1 = x0 - i1 + C.xxxx;\\\\n  vec4 x2 = x0 - i2 + C.yyyy;\\\\n  vec4 x3 = x0 - i3 + C.zzzz;\\\\n  vec4 x4 = x0 + C.wwww;\\\\n\\\\n// Permutations\\\\n  i = mod289(i); \\\\n  float j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x);\\\\n  vec4 j1 = permute( permute( permute( permute (\\\\n             i.w + vec4(i1.w, i2.w, i3.w, 1.0 ))\\\\n           + i.z + vec4(i1.z, i2.z, i3.z, 1.0 ))\\\\n           + i.y + vec4(i1.y, i2.y, i3.y, 1.0 ))\\\\n           + i.x + vec4(i1.x, i2.x, i3.x, 1.0 ));\\\\n\\\\n// Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope\\\\n// 7*7*6 = 294, which is close to the ring size 17*17 = 289.\\\\n  vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\\\\n\\\\n  vec4 p0 = grad4(j0,   ip);\\\\n  vec4 p1 = grad4(j1.x, ip);\\\\n  vec4 p2 = grad4(j1.y, ip);\\\\n  vec4 p3 = grad4(j1.z, ip);\\\\n  vec4 p4 = grad4(j1.w, ip);\\\\n\\\\n// Normalise gradients\\\\n  vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\\\\n  p0 *= norm.x;\\\\n  p1 *= norm.y;\\\\n  p2 *= norm.z;\\\\n  p3 *= norm.w;\\\\n  p4 *= taylorInvSqrt(dot(p4,p4));\\\\n\\\\n// Mix contributions from the five corners\\\\n  vec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0);\\\\n  vec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4)            ), 0.0);\\\\n  m0 = m0 * m0;\\\\n  m1 = m1 * m1;\\\\n  return 49.0 * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 )))\\\\n               + dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ;\\\\n\\\\n  }\\\\n\\\\\\\"},_F={[uF.CLASSIC_PERLIN_2D]:Uo.VEC2,[uF.CLASSIC_PERLIN_3D]:Uo.VEC3,[uF.CLASSIC_PERLIN_4D]:Uo.VEC4,[uF.NOISE_2D]:Uo.VEC2,[uF.NOISE_3D]:Uo.VEC3,[uF.NOISE_4D]:Uo.VEC4},mF={[uF.CLASSIC_PERLIN_2D]:Uo.FLOAT,[uF.CLASSIC_PERLIN_3D]:Uo.FLOAT,[uF.CLASSIC_PERLIN_4D]:Uo.FLOAT,[uF.NOISE_2D]:Uo.FLOAT,[uF.NOISE_3D]:Uo.FLOAT,[uF.NOISE_4D]:Uo.FLOAT},fF={[uF.CLASSIC_PERLIN_2D]:\\\\\\\"cnoise\\\\\\\",[uF.CLASSIC_PERLIN_3D]:\\\\\\\"cnoise\\\\\\\",[uF.CLASSIC_PERLIN_4D]:\\\\\\\"cnoise\\\\\\\",[uF.NOISE_2D]:\\\\\\\"snoise\\\\\\\",[uF.NOISE_3D]:\\\\\\\"snoise\\\\\\\",[uF.NOISE_4D]:\\\\\\\"snoise\\\\\\\"};var gF;!function(t){t[t.NoChange=0]=\\\\\\\"NoChange\\\\\\\",t[t.Float=1]=\\\\\\\"Float\\\\\\\",t[t.Vec2=2]=\\\\\\\"Vec2\\\\\\\",t[t.Vec3=3]=\\\\\\\"Vec3\\\\\\\",t[t.Vec4=4]=\\\\\\\"Vec4\\\\\\\"}(gF||(gF={}));const vF=[gF.NoChange,gF.Float,gF.Vec2,gF.Vec3,gF.Vec4],yF={[gF.NoChange]:\\\\\\\"Same as noise\\\\\\\",[gF.Float]:\\\\\\\"Float\\\\\\\",[gF.Vec2]:\\\\\\\"Vec2\\\\\\\",[gF.Vec3]:\\\\\\\"Vec3\\\\\\\",[gF.Vec4]:\\\\\\\"Vec4\\\\\\\"},xF={[gF.NoChange]:Uo.FLOAT,[gF.Float]:Uo.FLOAT,[gF.Vec2]:Uo.VEC2,[gF.Vec3]:Uo.VEC3,[gF.Vec4]:Uo.VEC4},bF=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"],wF=\\\\\\\"noise\\\\\\\",TF=dF.indexOf(uF.NOISE_3D),AF=gF.NoChange,MF={amp:1,freq:1};var EF;!function(t){t.AMP=\\\\\\\"amp\\\\\\\",t.POSITION=\\\\\\\"position\\\\\\\",t.FREQ=\\\\\\\"freq\\\\\\\",t.OFFSET=\\\\\\\"offset\\\\\\\"}(EF||(EF={}));const SF=new class extends ua{constructor(){super(...arguments),this.type=ha.INTEGER(TF,{menu:{entries:dF.map(((t,e)=>({name:`${t} (output: ${mF[t]})`,value:e})))}}),this.outputType=ha.INTEGER(AF,{menu:{entries:vF.map((t=>{const e=vF[t];return{name:yF[e],value:e}}))}}),this.octaves=ha.INTEGER(3,{range:[1,10],rangeLocked:[!0,!1]}),this.ampAttenuation=ha.FLOAT(.5,{range:[0,1]}),this.freqIncrease=ha.FLOAT(2,{range:[0,10],separatorAfter:!0})}};class CF extends gf{constructor(){super(...arguments),this.paramsConfig=SF}static type(){return\\\\\\\"noise\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.initializeNode(),this.io.connection_points.spare_params.set_inputless_param_names([\\\\\\\"octaves\\\\\\\",\\\\\\\"ampAttenuation\\\\\\\",\\\\\\\"freqIncrease\\\\\\\"]),this.io.outputs.setNamedOutputConnectionPoints([new qo(wF,Uo.FLOAT)]),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this)),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function((()=>wF))}_gl_input_name(t){return[EF.AMP,EF.POSITION,EF.FREQ,EF.OFFSET][t]}paramDefaultValue(t){return MF[t]}_expected_input_types(){const t=dF[this.pv.type],e=this._expected_output_types()[0],n=_F[t];return[e,n,n,n]}_expected_output_types(){const t=dF[this.pv.type],e=vF[this.pv.outputType];return e==gF.NoChange?[_F[t]]:[xF[e]]}setLines(t){const e=[],n=[],i=dF[this.pv.type],s=pF[i],r=mF[i];e.push(new Cf(this,\\\\\\\"// Modulo 289 without a division (only multiplications)\\\\nfloat mod289(float x) {\\\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\\\n}\\\\nvec2 mod289(vec2 x) {\\\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\\\n}\\\\nvec3 mod289(vec3 x) {\\\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\\\n}\\\\nvec4 mod289(vec4 x) {\\\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\\\n}\\\\n// Modulo 7 without a division\\\\nvec3 mod7(vec3 x) {\\\\n  return x - floor(x * (1.0 / 7.0)) * 7.0;\\\\n}\\\\n\\\\n// Permutation polynomial: (34x^2 + x) mod 289\\\\nfloat permute(float x) {\\\\n     return mod289(((x*34.0)+1.0)*x);\\\\n}\\\\nvec3 permute(vec3 x) {\\\\n  return mod289((34.0 * x + 1.0) * x);\\\\n}\\\\nvec4 permute(vec4 x) {\\\\n     return mod289(((x*34.0)+1.0)*x);\\\\n}\\\\n\\\\nfloat taylorInvSqrt(float r)\\\\n{\\\\n  return 1.79284291400159 - 0.85373472095314 * r;\\\\n}\\\\nvec4 taylorInvSqrt(vec4 r)\\\\n{\\\\n  return 1.79284291400159 - 0.85373472095314 * r;\\\\n}\\\\n\\\\nvec2 fade(vec2 t) {\\\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\\\n}\\\\nvec3 fade(vec3 t) {\\\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\\\n}\\\\nvec4 fade(vec4 t) {\\\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\\\n}\\\\\\\")),e.push(new Cf(this,s)),e.push(new Cf(this,this.fbm_function()));const o=this._expected_output_types()[0];if(o==r){const t=this.single_noise_line();n.push(t)}else{const t=Wo[o],e=[],s=this.glVarName(\\\\\\\"noise\\\\\\\");for(let r=0;r<t;r++){const t=bF[r];e.push(`${s}${t}`);const o=_F[i],a=Wo[o],l=`${o}(${f.range(a).map((t=>mf.float(1e3*r))).join(\\\\\\\", \\\\\\\")})`,c=this.single_noise_line(t,t,l);n.push(c)}const r=`vec${t} ${s} = vec${t}(${e.join(\\\\\\\", \\\\\\\")})`;n.push(r)}t.addDefinitions(this,e),t.addBodyLines(this,n)}fbm_method_name(){const t=dF[this.pv.type];return`fbm_${fF[t]}_${this.name()}`}fbm_function(){const t=dF[this.pv.type],e=fF[t],n=_F[t];return`\\\\nfloat ${this.fbm_method_name()} (in ${n} st) {\\\\n\\\\tfloat value = 0.0;\\\\n\\\\tfloat amplitude = 1.0;\\\\n\\\\tfor (int i = 0; i < ${mf.integer(this.pv.octaves)}; i++) {\\\\n\\\\t\\\\tvalue += amplitude * ${e}(st);\\\\n\\\\t\\\\tst *= ${mf.float(this.pv.freqIncrease)};\\\\n\\\\t\\\\tamplitude *= ${mf.float(this.pv.ampAttenuation)};\\\\n\\\\t}\\\\n\\\\treturn value;\\\\n}\\\\n`}single_noise_line(t,e,n){const i=this.fbm_method_name(),s=mf.any(this.variableForInput(EF.AMP)),r=mf.any(this.variableForInput(EF.POSITION)),o=mf.any(this.variableForInput(EF.FREQ));let a=mf.any(this.variableForInput(EF.OFFSET));n&&(a=`(${a}+${n})`);const l=[`(${r}*${o})+${a}`].join(\\\\\\\", \\\\\\\"),c=this.glVarName(wF),h=`${s}*${i}(${l})`;if(e)return`float ${c}${t} = (${h}).${e}`;return`${this.io.outputs.namedOutputConnectionPoints()[0].type()} ${c} = ${h}`}}class NF extends NP{static type(){return\\\\\\\"null\\\\\\\"}setLines(t){const e=mf.any(this.variableForInput(this._gl_input_name(0))),n=this.io.outputs.namedOutputConnectionPoints()[0],i=`${n.type()} ${this.glVarName(n.name())} = ${e}`;t.addBodyLines(this,[i])}}const LF=new class extends ua{};class OF extends gf{constructor(){super(...arguments),this.paramsConfig=LF}static type(){return\\\\\\\"output\\\\\\\"}initializeNode(){super.initializeNode(),this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile.bind(this)),this.lifecycle.add_on_add_hook((()=>{var t,e;null===(e=null===(t=this.material_node)||void 0===t?void 0:t.assemblerController)||void 0===e||e.add_output_inputs(this)}))}setLines(t){t.assembler().set_node_lines_output(this,t)}}class PF{constructor(){this._param_configs=[]}reset(){this._param_configs=[]}push(t){this._param_configs.push(t)}list(){return this._param_configs}}const RF=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"\\\\\\\"),this.type=ha.INTEGER(Go.indexOf(Uo.FLOAT),{menu:{entries:Go.map(((t,e)=>({name:t,value:e})))}}),this.asColor=ha.BOOLEAN(0,{visibleIf:{type:Go.indexOf(Uo.VEC3)}})}};class IF extends gf{constructor(){super(...arguments),this.paramsConfig=RF,this._allow_inputs_created_from_params=!1,this._on_create_set_name_if_none_bound=this._on_create_set_name_if_none.bind(this)}static type(){return\\\\\\\"param\\\\\\\"}initializeNode(){this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile.bind(this)),this.lifecycle.add_on_create_hook(this._on_create_set_name_if_none_bound),this.io.connection_points.initializeNode(),this.io.connection_points.set_expected_input_types_function((()=>[])),this.io.connection_points.set_expected_output_types_function((()=>[Go[this.pv.type]])),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}setLines(t){const e=[],n=Go[this.pv.type],i=this.uniform_name();e.push(new Nf(this,n,i)),t.addDefinitions(this,e)}paramsGenerating(){return!0}setParamConfigs(){const t=Go[this.pv.type],e=jo[t];let n=Vo[t];if(this._param_configs_controller=this._param_configs_controller||new PF,this._param_configs_controller.reset(),n==Cr.VECTOR3&&this.p.asColor.value&&m.isArray(e)&&3==e.length){const t=new tg(Cr.COLOR,this.pv.name,e,this.uniform_name());this._param_configs_controller.push(t)}else{const t=new tg(n,this.pv.name,e,this.uniform_name());this._param_configs_controller.push(t)}}uniform_name(){const t=this.io.outputs.namedOutputConnectionPoints()[0];return this.glVarName(t.name())}set_gl_type(t){const e=Go.indexOf(t);this.p.type.set(e)}_on_create_set_name_if_none(){\\\\\\\"\\\\\\\"==this.pv.name&&this.p.name.set(this.name())}}class FF extends CP{static type(){return\\\\\\\"refract\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>[\\\\\\\"I\\\\\\\",\\\\\\\"N\\\\\\\",\\\\\\\"eta\\\\\\\"][t])),this.io.connection_points.set_output_name_function((t=>\\\\\\\"refract\\\\\\\")),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}gl_method_name(){return\\\\\\\"refract\\\\\\\"}_expected_input_types(){const t=this.io.connection_points.first_input_connection_type()||Uo.VEC3;return[t,t,Uo.FLOAT]}_expected_output_types(){return[this._expected_input_types()[0]]}}const DF=\\\\\\\"SSSModel\\\\\\\";const BF=new class extends ua{constructor(){super(...arguments),this.color=ha.COLOR([1,1,1]),this.thickness=ha.FLOAT(.1),this.power=ha.FLOAT(2),this.scale=ha.FLOAT(16),this.distortion=ha.FLOAT(.1),this.ambient=ha.FLOAT(.4),this.attenuation=ha.FLOAT(.8)}};class zF extends gf{constructor(){super(...arguments),this.paramsConfig=BF}static type(){return\\\\\\\"SSSModel\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(DF,Uo.SSS_MODEL)])}setLines(t){const e=[],n=this.glVarName(DF);e.push(`SSSModel ${n}`),e.push(`${n}.isActive = true;`),e.push(this._paramLineFloat(n,this.p.color)),e.push(this._paramLineFloat(n,this.p.thickness)),e.push(this._paramLineFloat(n,this.p.power)),e.push(this._paramLineFloat(n,this.p.scale)),e.push(this._paramLineFloat(n,this.p.distortion)),e.push(this._paramLineFloat(n,this.p.ambient)),e.push(this._paramLineFloat(n,this.p.attenuation)),t.addBodyLines(this,e)}_paramLineFloat(t,e){return`${t}.${e.name()} = ${mf.vector3(this.variableForInputParam(e))};`}}class kF extends NP{static type(){return\\\\\\\"quatMult\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>[\\\\\\\"quat0\\\\\\\",\\\\\\\"quat1\\\\\\\"][t])),this.io.connection_points.set_expected_input_types_function((()=>[Uo.VEC4,Uo.VEC4])),this.io.connection_points.set_expected_output_types_function((()=>[Uo.VEC4]))}gl_method_name(){return\\\\\\\"quatMult\\\\\\\"}gl_function_definitions(){return[new Cf(this,PR)]}}var UF;!function(t){t.AXIS=\\\\\\\"axis\\\\\\\",t.ANGLE=\\\\\\\"angle\\\\\\\"}(UF||(UF={}));const GF=[UF.AXIS,UF.ANGLE],VF={[UF.AXIS]:[0,0,1],[UF.ANGLE]:0};class HF extends LP{static type(){return\\\\\\\"quatFromAxisAngle\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>GF[t])),this.io.connection_points.set_expected_input_types_function((()=>[Uo.VEC3,Uo.FLOAT])),this.io.connection_points.set_expected_output_types_function((()=>[Uo.VEC4]))}paramDefaultValue(t){return VF[t]}gl_method_name(){return\\\\\\\"quatFromAxisAngle\\\\\\\"}gl_function_definitions(){return[new Cf(this,PR)]}}class jF extends NP{static type(){return\\\\\\\"quatToAngle\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>[\\\\\\\"quat\\\\\\\"][t])),this.io.connection_points.set_expected_input_types_function((()=>[Uo.VEC4])),this.io.connection_points.set_expected_output_types_function((()=>[Uo.FLOAT]))}gl_method_name(){return\\\\\\\"quatToAngle\\\\\\\"}gl_function_definitions(){return[new Cf(this,PR)]}}class WF extends NP{static type(){return\\\\\\\"quatToAxis\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_input_name_function((t=>[\\\\\\\"quat\\\\\\\"][t])),this.io.connection_points.set_expected_input_types_function((()=>[Uo.VEC4])),this.io.connection_points.set_expected_output_types_function((()=>[Uo.VEC3]))}gl_method_name(){return\\\\\\\"quatToAxis\\\\\\\"}gl_function_definitions(){return[new Cf(this,PR)]}}const qF=\\\\\\\"val\\\\\\\";const XF=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"ramp\\\\\\\"),this.input=ha.FLOAT(0)}};class YF extends gf{constructor(){super(...arguments),this.paramsConfig=XF}static type(){return\\\\\\\"ramp\\\\\\\"}initializeNode(){super.initializeNode(),this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile.bind(this)),this.io.outputs.setNamedOutputConnectionPoints([new qo(qF,Uo.FLOAT)]),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}setLines(t){const e=Uo.VEC3,n=this.glVarName(\\\\\\\"tmpTexureVarName\\\\\\\"),i=Uo.FLOAT,s=this._uniform_name(),r=this.glVarName(qF),o=new Nf(this,Uo.SAMPLER_2D,s);t.addDefinitions(this,[o]);const a=this.variableForInputParam(this.p.input),l=[`${e} ${n} = texture2D(${this._uniform_name()}, vec2(${a}, 0.0)).xyz`,`${i} ${r} = -1.0 + ${n}.x + ${n}.y + ${n}.z`];t.addBodyLines(this,l)}paramsGenerating(){return!0}setParamConfigs(){this._param_configs_controller=this._param_configs_controller||new PF,this._param_configs_controller.reset();const t=new tg(Cr.RAMP,this.pv.name,Ao.DEFAULT_VALUE,this._uniform_name());this._param_configs_controller.push(t)}_uniform_name(){return\\\\\\\"ramp_texture_\\\\\\\"+this.glVarName(qF)}}const $F=\\\\\\\"rand\\\\\\\";const JF=new class extends ua{constructor(){super(...arguments),this.seed=ha.VECTOR2([1,1])}};class ZF extends gf{constructor(){super(...arguments),this.paramsConfig=JF}static type(){return\\\\\\\"random\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo($F,Uo.FLOAT)])}setLines(t){const e=this.io.inputs.namedInputConnectionPoints()[0].name(),n=mf.vector2(this.variableForInput(e)),i=`float ${this.glVarName($F)} = rand(${n})`;t.addBodyLines(this,[i])}}const KF=new class extends ua{constructor(){super(...arguments),this.rgb=ha.VECTOR3([1,1,1])}};class QF extends gf{constructor(){super(...arguments),this.paramsConfig=KF}static type(){return\\\\\\\"rgbToHsv\\\\\\\"}initializeNode(){this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"hsv\\\\\\\",Uo.VEC3)])}setLines(t){const e=[],n=[];e.push(new Cf(this,\\\\\\\"// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\\\\nvec3 rgb2hsv(vec3 c)\\\\n{\\\\n\\\\tvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\\\n\\\\tvec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\\\\n\\\\tvec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\\\\n\\\\n\\\\tfloat d = q.x - min(q.w, q.y);\\\\n\\\\tfloat e = 1.0e-10;\\\\n\\\\treturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\\\\n}\\\\\\\"));const i=mf.vector3(this.variableForInputParam(this.p.rgb)),s=this.glVarName(\\\\\\\"hsv\\\\\\\");n.push(`vec3 ${s} = rgb2hsv(${i})`),t.addDefinitions(this,e),t.addBodyLines(this,n)}}var tD;!function(t){t[t.AXIS=0]=\\\\\\\"AXIS\\\\\\\",t[t.QUAT=1]=\\\\\\\"QUAT\\\\\\\"}(tD||(tD={}));const eD=[tD.AXIS,tD.QUAT],nD={[tD.AXIS]:\\\\\\\"from axis + angle\\\\\\\",[tD.QUAT]:\\\\\\\"from quaternion\\\\\\\"},iD={[tD.AXIS]:[\\\\\\\"vector\\\\\\\",\\\\\\\"axis\\\\\\\",\\\\\\\"angle\\\\\\\"],[tD.QUAT]:[\\\\\\\"vector\\\\\\\",\\\\\\\"quat\\\\\\\"]},sD={[tD.AXIS]:\\\\\\\"rotateWithAxisAngle\\\\\\\",[tD.QUAT]:\\\\\\\"rotateWithQuat\\\\\\\"},rD={[tD.AXIS]:[Uo.VEC3,Uo.VEC3,Uo.FLOAT],[tD.QUAT]:[Uo.VEC3,Uo.VEC4]},oD={vector:[0,0,1],axis:[0,1,0]};const aD=new class extends ua{constructor(){super(...arguments),this.signature=ha.INTEGER(tD.AXIS,{menu:{entries:eD.map(((t,e)=>({name:nD[t],value:e})))}})}};class lD extends gf{constructor(){super(...arguments),this.paramsConfig=aD}static type(){return\\\\\\\"rotate\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this)),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this))}set_signature(t){const e=eD.indexOf(t);this.p.signature.set(e)}_gl_input_name(t){const e=eD[this.pv.signature];return iD[e][t]}paramDefaultValue(t){return oD[t]}gl_method_name(){const t=eD[this.pv.signature];return sD[t]}_expected_input_types(){const t=eD[this.pv.signature];return rD[t]}_expected_output_types(){return[Uo.VEC3]}gl_function_definitions(){return[new Cf(this,PR)]}setLines(t){const e=this.io.outputs.namedOutputConnectionPoints()[0].type(),n=this.io.inputs.namedInputConnectionPoints().map(((t,e)=>{const n=t.name();return mf.any(this.variableForInput(n))})).join(\\\\\\\", \\\\\\\"),i=`${e} ${this.glVarName(this.io.connection_points.output_name(0))} = ${this.gl_method_name()}(${n})`;t.addBodyLines(this,[i]),t.addDefinitions(this,this.gl_function_definitions())}}const cD=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"];class hD extends NP{static type(){return\\\\\\\"round\\\\\\\"}setLines(t){const e=this.io.inputs.namedInputConnectionPoints()[0],n=mf.vector2(this.variableForInput(e.name())),i=this.io.outputs.namedOutputConnectionPoints()[0],s=this.glVarName(i.name()),r=[];if(1==Wo[i.type()])r.push(`${i.type()} ${s} = ${this._simple_line(n)}`);else{const t=cD.map((t=>this._simple_line(`${n}.${t}`)));r.push(`${i.type()} ${s} = ${i.type()}(${t.join(\\\\\\\",\\\\\\\")})`)}t.addBodyLines(this,r)}_simple_line(t){return`sign(${t})*floor(abs(${t})+0.5)`}}const uD=new class extends ua{constructor(){super(...arguments),this.position=ha.VECTOR3([0,0,0]),this.center=ha.VECTOR3([0,0,0]),this.radius=ha.FLOAT(1),this.feather=ha.FLOAT(.1)}};class dD extends gf{constructor(){super(...arguments),this.paramsConfig=uD}static type(){return\\\\\\\"sphere\\\\\\\"}initializeNode(){super.initializeNode(),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"float\\\\\\\",Uo.FLOAT)])}setLines(t){const e=mf.vector2(this.variableForInputParam(this.p.position)),n=mf.vector2(this.variableForInputParam(this.p.center)),i=mf.float(this.variableForInputParam(this.p.radius)),s=mf.float(this.variableForInputParam(this.p.feather)),r=`float ${this.glVarName(\\\\\\\"float\\\\\\\")} = disk3d(${e}, ${n}, ${i}, ${s})`;t.addBodyLines(this,[r]),t.addDefinitions(this,[new Cf(this,eI)])}}const pD=new class extends ua{};class _D extends gf{constructor(){super(...arguments),this.paramsConfig=pD}static type(){return ns.INPUT}initializeNode(){this.io.connection_points.set_output_name_function(this._expected_output_names.bind(this)),this.io.connection_points.set_expected_input_types_function((()=>[])),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}parent(){return super.parent()}_expected_output_names(t){const e=this.parent();return(null==e?void 0:e.child_expected_input_connection_point_name(t))||`out${t}`}_expected_output_types(){const t=this.parent();return(null==t?void 0:t.child_expected_input_connection_point_types())||[]}setLines(t){const e=this.parent();e&&e.set_lines_block_start(t,this)}}const mD=new class extends ua{};class fD extends gf{constructor(){super(...arguments),this.paramsConfig=mD}static type(){return\\\\\\\"switch\\\\\\\"}initializeNode(){this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this))}_gl_input_name(t){return 0==t?fD.INPUT_INDEX:\\\\\\\"in\\\\\\\"+(t-1)}_expected_input_types(){const t=this.io.connection_points.input_connection_type(1)||Uo.FLOAT,e=this.io.connections.inputConnections(),n=e?or.clamp(e.length,2,16):2,i=[Uo.INT];for(let e=0;e<n;e++)i.push(t);return i}_expected_output_types(){return[this._expected_input_types()[1]||Uo.FLOAT]}setLines(t){const e=this.io.outputs.namedOutputConnectionPoints()[0].type(),n=this.glVarName(this.io.connection_points.output_name(0)),i=this.io.connection_points.input_name(0),s=mf.integer(this.variableForInput(i)),r=this.glVarName(\\\\\\\"index\\\\\\\"),o=[`${e} ${n};`,`int ${r} = ${s}`],a=this._expected_input_types().length-1;for(let t=0;t<a;t++){const e=0==t?\\\\\\\"if\\\\\\\":\\\\\\\"else if\\\\\\\",i=`${r} == ${t}`,s=this.io.connection_points.input_name(t+1),a=`${e}(${i}){${`${n} = ${mf.any(this.variableForInput(s))};`}}`;o.push(a)}t.addBodyLines(this,o)}}fD.INPUT_INDEX=\\\\\\\"index\\\\\\\";const gD=new class extends ua{constructor(){super(...arguments),this.paramName=ha.STRING(\\\\\\\"textureMap\\\\\\\"),this.defaultValue=ha.STRING(vi.UV),this.uv=ha.VECTOR2([0,0])}};class vD extends gf{constructor(){super(...arguments),this.paramsConfig=gD}static type(){return\\\\\\\"texture\\\\\\\"}initializeNode(){this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile.bind(this)),this.io.outputs.setNamedOutputConnectionPoints([new qo(vD.OUTPUT_NAME,Uo.VEC4)]),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.paramName])}))}))}setLines(t){const e=mf.vector2(this.variableForInputParam(this.p.uv)),n=this.glVarName(vD.OUTPUT_NAME),i=this._uniform_name(),s=new Nf(this,Uo.SAMPLER_2D,i),r=`vec4 ${n} = texture2D(${i}, ${e})`;t.addDefinitions(this,[s]),t.addBodyLines(this,[r])}paramsGenerating(){return!0}setParamConfigs(){this._param_configs_controller=this._param_configs_controller||new PF,this._param_configs_controller.reset();const t=new tg(Cr.OPERATOR_PATH,this.pv.paramName,this.pv.defaultValue,this._uniform_name());this._param_configs_controller.push(t)}_uniform_name(){return this.glVarName(this.pv.paramName)}}var yD;vD.OUTPUT_NAME=\\\\\\\"rgba\\\\\\\",function(t){t.POSITION=\\\\\\\"position\\\\\\\",t.DIR_VEC=\\\\\\\"direction vector\\\\\\\"}(yD||(yD={}));const xD=[yD.POSITION,yD.DIR_VEC];const bD=new class extends ua{constructor(){super(...arguments),this.vec=ha.VECTOR3([0,0,0]),this.interpretation=ha.INTEGER(0,{menu:{entries:xD.map(((t,e)=>({name:t,value:e})))}})}};class wD extends gf{constructor(){super(...arguments),this.paramsConfig=bD}static type(){return\\\\\\\"toWorldSpace\\\\\\\"}initializeNode(){this.io.connection_points.spare_params.set_inputless_param_names([\\\\\\\"interpretation\\\\\\\"]),this.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"out\\\\\\\",Uo.VEC3)])}setLines(t){const e=[],n=mf.vector3(this.variableForInputParam(this.p.vec)),i=this.glVarName(\\\\\\\"out\\\\\\\");switch(xD[this.pv.interpretation]){case yD.POSITION:e.push(`vec3 ${i} = (modelMatrix * vec4( ${n}, 1.0 )).xyz`);break;case yD.DIR_VEC:e.push(`vec3 ${i} = normalize( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * ${n} )`)}t.addBodyLines(this,e)}}var TD;!function(t){t.CONDITION=\\\\\\\"condition\\\\\\\",t.IF_TRUE=\\\\\\\"ifTrue\\\\\\\",t.IF_FALSE=\\\\\\\"ifFalse\\\\\\\"}(TD||(TD={}));const AD=[TD.CONDITION,TD.IF_TRUE,TD.IF_FALSE];class MD extends yf{static type(){return\\\\\\\"twoWaySwitch\\\\\\\"}initializeNode(){super.initializeNode(),this.io.connection_points.initializeNode(),this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this)),this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this)),this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this)),this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this))}_gl_input_name(t){return AD[t]}_gl_output_name(){return\\\\\\\"val\\\\\\\"}_expected_input_types(){const t=this.io.connections.inputConnection(1)||this.io.connections.inputConnection(2),e=t?t.src_connection_point().type():Uo.FLOAT;return[Uo.BOOL,e,e]}_expected_output_types(){return[this._expected_input_types()[1]]}setLines(t){const e=[],n=this.glVarName(\\\\\\\"val\\\\\\\"),i=mf.bool(this.variableForInput(TD.CONDITION)),s=mf.any(this.variableForInput(TD.IF_TRUE)),r=mf.any(this.variableForInput(TD.IF_FALSE)),o=this._expected_output_types()[0];e.push(`${o} ${n}`),e.push(`if(${i}){`),e.push(`${n} = ${s}`),e.push(\\\\\\\"} else {\\\\\\\"),e.push(`${n} = ${r}`),e.push(\\\\\\\"}\\\\\\\"),t.addBodyLines(this,e)}}const ED=[Uo.FLOAT,Uo.VEC2,Uo.VEC3,Uo.VEC4];const SD=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"\\\\\\\"),this.type=ha.INTEGER(0,{menu:{entries:ED.map(((t,e)=>({name:t,value:e})))}})}};class CD extends gf{constructor(){super(...arguments),this.paramsConfig=SD,this._on_create_set_name_if_none_bound=this._on_create_set_name_if_none.bind(this)}static type(){return\\\\\\\"varyingRead\\\\\\\"}initializeNode(){this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_mat_to_recompile.bind(this)),this.lifecycle.add_on_create_hook(this._on_create_set_name_if_none_bound),this.io.connection_points.initializeNode(),this.io.connection_points.set_output_name_function((()=>this.output_name)),this.io.connection_points.set_expected_input_types_function((()=>[])),this.io.connection_points.set_expected_output_types_function((()=>[ED[this.pv.type]])),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}get output_name(){return CD.OUTPUT_NAME}setLines(t){if(t.current_shader_name==Mf.FRAGMENT){const e=this.pv.name,n=new Lf(this,this.gl_type(),e),i=this.glVarName(CD.OUTPUT_NAME),s=`${this.gl_type()} ${i} = ${e}`;t.addDefinitions(this,[n]),t.addBodyLines(this,[s])}}get attribute_name(){return this.pv.name.trim()}gl_type(){return this.io.outputs.namedOutputConnectionPoints()[0].type()}set_gl_type(t){this.p.type.set(ED.indexOf(t))}_on_create_set_name_if_none(){\\\\\\\"\\\\\\\"==this.pv.name&&this.p.name.set(this.name())}}CD.OUTPUT_NAME=\\\\\\\"fragment\\\\\\\";const ND={start:[0,0,1],end:[1,0,0],up:[0,1,0]};class LD extends(hR(\\\\\\\"vectorAlign\\\\\\\",{in:[\\\\\\\"start\\\\\\\",\\\\\\\"end\\\\\\\",\\\\\\\"up\\\\\\\"],method:\\\\\\\"vectorAlignWithUp\\\\\\\",functions:[PR]})){_expected_input_types(){const t=Uo.VEC3;return[t,t,t]}_expected_output_types(){return[Uo.VEC4]}paramDefaultValue(t){return ND[t]}}const OD={start:[0,0,1],end:[1,0,0]};class PD extends(eR(\\\\\\\"vectorAngle\\\\\\\",{in:[\\\\\\\"start\\\\\\\",\\\\\\\"end\\\\\\\"],method:\\\\\\\"vectorAngle\\\\\\\",functions:[PR]})){_expected_input_types(){const t=Uo.VEC3;return[t,t]}_expected_output_types(){return[Uo.FLOAT]}paramDefaultValue(t){return OD[t]}}const RD={only:[`${GI.context()}/${GI.type()}`,`${CI.context()}/${CI.type()}`,`${PI.context()}/${PI.type()}`]};class ID extends aa{static context(){return ts.JS}initializeBaseNode(){this.uiData.setLayoutHorizontal(),this.io.connection_points.initializeNode()}cook(){console.warn(\\\\\\\"js nodes should never cook\\\\\\\")}_set_function_node_to_recompile(){var t;null===(t=this.function_node)||void 0===t||t.assembler_controller.set_compilation_required_and_dirty(this)}get function_node(){var t;const e=this.parent();if(e)return e.type()==this.type()?null===(t=e)||void 0===t?void 0:t.function_node:e}js_var_name(t){return`v_POLY_${this.name()}_${t}`}variableForInput(t){const e=this.io.inputs.get_input_index(t),n=this.io.connections.inputConnection(e);if(n){const e=n.node_src,i=e.io.outputs.namedOutputConnectionPoints()[n.output_index];if(i){const t=i.name();return e.js_var_name(t)}throw console.warn(`no output called '${t}' for gl node ${e.path()}`),\\\\\\\"variable_for_input ERROR\\\\\\\"}return\\\\\\\"to debug...\\\\\\\"}setLines(t){}reset_code(){var t;null===(t=this._param_configs_controller)||void 0===t||t.reset()}setParamConfigs(){}param_configs(){var t;return null===(t=this._param_configs_controller)||void 0===t?void 0:t.list()}js_input_default_value(t){return null}}new class extends ua{};const FD=[Xo.FLOAT,Xo.VEC2,Xo.VEC3,Xo.VEC4];const DD=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"\\\\\\\"),this.type=ha.INTEGER(0,{menu:{entries:FD.map(((t,e)=>({name:t,value:e})))}})}};class BD extends ID{constructor(){super(...arguments),this.paramsConfig=DD,this._on_create_set_name_if_none_bound=this._on_create_set_name_if_none.bind(this)}static type(){return\\\\\\\"attribute\\\\\\\"}initializeNode(){this.lifecycle.add_on_create_hook(this._on_create_set_name_if_none_bound),this.io.connection_points.initializeNode(),this.io.connection_points.set_expected_input_types_function((()=>[])),this.io.connection_points.set_expected_output_types_function((()=>[FD[this.pv.type]]))}get input_name(){return BD.INPUT_NAME}get output_name(){return BD.OUTPUT_NAME}setLines(t){var e;null===(e=this.function_node)||void 0===e||e.assembler_controller.assembler.set_node_lines_attribute(this,t)}get attribute_name(){return this.pv.name.trim()}gl_type(){return this.io.outputs.namedOutputConnectionPoints()[0].type()}set_gl_type(t){this.p.type.set(FD.indexOf(t))}connected_input_node(){return this.io.inputs.named_input(BD.INPUT_NAME)}connected_input_connection_point(){return this.io.inputs.named_input_connection_point(BD.INPUT_NAME)}output_connection_point(){return this.io.outputs.namedOutputConnectionPointsByName(this.input_name)}get is_importing(){return this.io.outputs.used_output_names().length>0}_on_create_set_name_if_none(){\\\\\\\"\\\\\\\"==this.pv.name&&this.p.name.set(this.name())}}BD.INPUT_NAME=\\\\\\\"export\\\\\\\",BD.OUTPUT_NAME=\\\\\\\"val\\\\\\\";const zD=new class extends ua{};class kD extends ID{constructor(){super(...arguments),this.paramsConfig=zD}static type(){return\\\\\\\"globals\\\\\\\"}createParams(){var t;null===(t=this.function_node)||void 0===t||t.assembler_controller.add_globals_outputs(this)}setLines(t){var e,n;null===(n=null===(e=this.function_node)||void 0===e?void 0:e.assembler_controller)||void 0===n||n.assembler.set_node_lines_globals(this,t)}}const UD=new class extends ua{};class GD extends ID{constructor(){super(...arguments),this.paramsConfig=UD}static type(){return\\\\\\\"output\\\\\\\"}initializeNode(){super.initializeNode(),this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_function_node_to_recompile.bind(this))}createParams(){var t;null===(t=this.function_node)||void 0===t||t.assembler_controller.add_output_inputs(this)}setLines(t){var e;null===(e=this.function_node)||void 0===e||e.assembler_controller.assembler.set_node_lines_output(this,t)}}class VD{constructor(t=[]){this._definitions=t,this._errored=!1}get errored(){return this._errored}get error_message(){return this._error_message}uniq(){const t=new Map,e=[];for(let n of this._definitions)if(!this._errored){const i=n.name(),s=t.get(i);s?s.data_type!=n.data_type&&(this._errored=!0,this._error_message=`attempt to create '${n.name()}' with types '${n.data_type}' by node '${n.node.path()}', when there is already an existing with type ${s.data_type} from node '${s.node.path()}'`,console.warn(\\\\\\\"emitting error message:\\\\\\\",this._error_message)):(t.set(i,n),e.push(i))}const n=[];for(let i of e){const e=t.get(i);e&&n.push(e)}return n}}var HD;!function(t){t.ATTRIBUTE=\\\\\\\"attribute\\\\\\\",t.FUNCTION=\\\\\\\"function\\\\\\\",t.UNIFORM=\\\\\\\"uniform\\\\\\\"}(HD||(HD={}));class jD{constructor(t,e,n,i){this._definition_type=t,this._data_type=e,this._node=n,this._name=i}get definition_type(){return this._definition_type}get data_type(){return this._data_type}get node(){return this._node}name(){return this._name}collection_instance(){return new VD}}class WD extends jD{constructor(t,e,n){super(HD.UNIFORM,e,t,n),this._node=t,this._data_type=e,this._name=n}get line(){return`uniform ${this.data_type} ${this.name()}`}}class qD extends Qf{constructor(t,e,n,i){super(t,e,n),this._uniform_name=i}get uniform_name(){return this._uniform_name}static uniform_by_type(t){switch(t){case Cr.BOOLEAN:case Cr.BUTTON:return{value:0};case Cr.COLOR:return{value:new D.a(0,0,0)};case Cr.FLOAT:case Cr.FOLDER:case Cr.INTEGER:case Cr.OPERATOR_PATH:case Cr.NODE_PATH:case Cr.PARAM_PATH:return{value:0};case Cr.RAMP:case Cr.STRING:return{value:null};case Cr.VECTOR2:return{value:new d.a(0,0)};case Cr.VECTOR3:return{value:new p.a(0,0,0)};case Cr.VECTOR4:return{value:new _.a(0,0,0,0)}}os.unreachable(t)}}const XD=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(\\\\\\\"\\\\\\\"),this.type=ha.INTEGER(Yo.indexOf(Xo.FLOAT),{menu:{entries:Yo.map(((t,e)=>({name:t,value:e})))}}),this.asColor=ha.BOOLEAN(0,{visibleIf:{type:Yo.indexOf(Xo.VEC3)}})}};class YD extends ID{constructor(){super(...arguments),this.paramsConfig=XD,this._allow_inputs_created_from_params=!1,this._on_create_set_name_if_none_bound=this._on_create_set_name_if_none.bind(this)}static type(){return\\\\\\\"param\\\\\\\"}initializeNode(){this.addPostDirtyHook(\\\\\\\"_set_mat_to_recompile\\\\\\\",this._set_function_node_to_recompile.bind(this)),this.lifecycle.add_on_create_hook(this._on_create_set_name_if_none_bound),this.io.connection_points.initializeNode(),this.io.connection_points.set_expected_input_types_function((()=>[])),this.io.connection_points.set_expected_output_types_function((()=>[Yo[this.pv.type]]))}setLines(t){const e=[],n=Yo[this.pv.type],i=this.uniform_name();e.push(new WD(this,n,i)),t.addDefinitions(this,e)}setParamConfigs(){const t=Yo[this.pv.type],e=Zo[t];let n=$o[t];if(this._param_configs_controller=this._param_configs_controller||new PF,this._param_configs_controller.reset(),n==Cr.VECTOR3&&this.p.asColor.value&&m.isArray(e)&&3==e.length){const t=new qD(Cr.COLOR,this.pv.name,e,this.uniform_name());this._param_configs_controller.push(t)}else{const t=new qD(n,this.pv.name,e,this.uniform_name());this._param_configs_controller.push(t)}}uniform_name(){const t=this.io.outputs.namedOutputConnectionPoints()[0];return this.js_var_name(t.name())}set_gl_type(t){const e=Yo.indexOf(t);this.p.type.set(e)}_on_create_set_name_if_none(){\\\\\\\"\\\\\\\"==this.pv.name&&this.p.name.set(this.name())}}class $D extends aa{constructor(){super(...arguments),this._cook_main_without_inputs_when_dirty_bound=this._cook_main_without_inputs_when_dirty.bind(this)}static context(){return ts.MAT}initializeBaseNode(){super.initializeBaseNode(),this.nameController.add_post_set_fullPath_hook(this.set_material_name.bind(this)),this.addPostDirtyHook(\\\\\\\"_cook_main_without_inputs_when_dirty\\\\\\\",(()=>{setTimeout(this._cook_main_without_inputs_when_dirty_bound,0)}))}async _cook_main_without_inputs_when_dirty(){await this.cookController.cookMainWithoutInputs()}set_material_name(){this._material&&(this._material.name=this.path())}get material(){return this._material=this._material||this.createMaterial()}setMaterial(t){this._setContainer(t)}}class JD{constructor(t){this.node=t}add_params(){}update(){}get material(){return this.node.material}}const ZD={NoBlending:w.ub,NormalBlending:w.xb,AdditiveBlending:w.e,SubtractiveBlending:w.Sc,MultiplyBlending:w.mb},KD=Object.keys(ZD);function QD(t){return class extends t{constructor(){super(...arguments),this.doubleSided=ha.BOOLEAN(0),this.front=ha.BOOLEAN(1,{visibleIf:{doubleSided:!1}}),this.overrideShadowSide=ha.BOOLEAN(0),this.shadowDoubleSided=ha.BOOLEAN(0,{visibleIf:{overrideShadowSide:!0}}),this.shadowFront=ha.BOOLEAN(1,{visibleIf:{overrideShadowSide:!0,shadowDoubleSided:!1}}),this.colorWrite=ha.BOOLEAN(1,{separatorBefore:!0,cook:!1,callback:(t,e)=>{tB.update(t)}}),this.depthWrite=ha.BOOLEAN(1,{cook:!1,callback:(t,e)=>{tB.update(t)}}),this.depthTest=ha.BOOLEAN(1,{cook:!1,callback:(t,e)=>{tB.update(t)}}),this.premultipliedAlpha=ha.BOOLEAN(!1,{separatorAfter:!0}),this.blending=ha.INTEGER(w.xb,{menu:{entries:KD.map((t=>({name:t,value:ZD[t]})))}}),this.dithering=ha.BOOLEAN(0),this.polygonOffset=ha.BOOLEAN(!1,{separatorBefore:!0}),this.polygonOffsetFactor=ha.INTEGER(0,{range:[0,1e3],visibleIf:{polygonOffset:1}}),this.polygonOffsetUnits=ha.INTEGER(0,{range:[0,1e3],visibleIf:{polygonOffset:1}})}}}QD(ua);class tB extends JD{constructor(t){super(t),this.node=t}initializeNode(){}async update(){const t=this.node.material,e=this.node.pv;this._updateSides(t,e),t.colorWrite=e.colorWrite,t.depthWrite=e.depthWrite,t.depthTest=e.depthTest,t.blending=e.blending,t.premultipliedAlpha=e.premultipliedAlpha,t.dithering=e.dithering,t.polygonOffset=e.polygonOffset,t.polygonOffset&&(t.polygonOffsetFactor=e.polygonOffsetFactor,t.polygonOffsetUnits=e.polygonOffsetUnits,t.needsUpdate=!0)}_updateSides(t,e){const n=e.front?w.H:w.i,i=e.doubleSided?w.z:n;if(i!=t.side&&(t.side=i,t.needsUpdate=!0),e.overrideShadowSide){const t=e.shadowFront?w.H:w.i,n=e.shadowDoubleSided?w.z:t,i=this.node.material;n!=i.shadowSide&&(i.shadowSide=n,i.needsUpdate=!0)}else t.shadowSide=null;const s=t.customMaterials;if(s){const t=Object.keys(s);for(let n of t){const t=s[n];t&&this._updateSides(t,e)}}}static async update(t){t.controllers.advancedCommon.update()}}class eB extends(QD(ua)){constructor(){super(...arguments),this.color=ha.COLOR([1,1,1]),this.lineWidth=ha.FLOAT(1,{range:[1,10],rangeLocked:[!0,!1]})}}const nB=new eB;class iB extends $D{constructor(){super(...arguments),this.paramsConfig=nB,this.controllers={advancedCommon:new tB(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"lineBasic\\\\\\\"}createMaterial(){return new As.a({color:16777215,linewidth:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();this.material.color.copy(this.pv.color),this.material.linewidth=this.pv.lineWidth,this.setMaterial(this.material)}}function sB(t){return class extends t{constructor(){super(...arguments),this.transparent=ha.BOOLEAN(0),this.opacity=ha.FLOAT(1),this.alphaTest=ha.FLOAT(0)}}}sB(ua);class rB extends JD{constructor(t){super(t),this.node=t}static update(t){const e=t.material,n=t.pv;this._updateTransparency(e,n)}static _updateTransparency(t,e){t.transparent=e.transparent,this._updateCommon(t,e)}static _updateCommon(t,e){t.uniforms.opacity&&(t.uniforms.opacity.value=e.opacity),t.opacity=e.opacity,t.alphaTest=e.alphaTest;const n=t.customMaterials;if(n){const t=Object.keys(n);for(let i of t){const t=n[i];t&&this._updateCommon(t,e)}}}}class oB extends Kf{constructor(t){super(t),this.node=t}toJSON(){const t=this.node.assemblerController;if(!t)return;const e={},n=this.node.material.customMaterials;if(n){const t=Object.keys(n);for(let i of t){const t=n[i];if(t){const n=this._materialToJson(t,{node:this.node,suffix:i});n&&(e[i]=n)}}}const i=[],s=t.assembler.param_configs();for(let t of s)i.push([t.name(),t.uniform_name]);const r=this._materialToJson(this.node.material,{node:this.node,suffix:\\\\\\\"main\\\\\\\"});r||console.warn(\\\\\\\"failed to save material from node\\\\\\\",this.node.path());return{material:r||{},uniforms_time_dependent:t.assembler.uniformsTimeDependent(),uniforms_resolution_dependent:t.assembler.uniforms_resolution_dependent(),param_uniform_pairs:i,customMaterials:e}}load(t){if(this._material=this._loadMaterial(t.material),this._material){if(this._material.customMaterials=this._material.customMaterials||{},t.customMaterials){const e=Object.keys(t.customMaterials);for(let n of e){const e=t.customMaterials[n],i=this._loadMaterial(e);i&&(this._material.customMaterials[n]=i)}}if(t.uniforms_time_dependent&&this.node.scene().uniformsController.addTimeDependentUniformOwner(this._material.uuid,this._material.uniforms),t.uniforms_resolution_dependent&&this.node.scene().uniformsController.addResolutionDependentUniformOwner(this._material.uuid,this._material.uniforms),t.param_uniform_pairs)for(let e of t.param_uniform_pairs){const t=e[0],n=e[1],i=this.node.params.get(t),s=this._material.uniforms[n],r=Object.keys(this._material.customMaterials);let o;for(let t of r){const e=this._material.customMaterials[t],i=null==e?void 0:e.uniforms[n];i&&(o=o||[],o.push(i))}i&&(s||o)&&i.options.setOption(\\\\\\\"callback\\\\\\\",(()=>{if(s&&tg.callback(i,s),o)for(let t of o)tg.callback(i,t)}))}}}material(){if(li.playerMode())return this._material}}function aB(t){return class extends t{constructor(){super(...arguments),this.setBuilderNode=ha.BOOLEAN(0,{callback:t=>{lB.PARAM_CALLBACK_setCompileRequired(t)}}),this.builderNode=ha.NODE_PATH(\\\\\\\"\\\\\\\",{visibleIf:{setBuilderNode:!0},callback:t=>{lB.PARAM_CALLBACK_setCompileRequired(t)}})}}}aB(ua);class lB extends $D{constructor(){super(...arguments),this._children_controller_context=ts.GL,this.persisted_config=new oB(this)}createMaterial(){var t;let e;return this.persisted_config&&(e=this.persisted_config.material()),e||(e=null===(t=this.assemblerController)||void 0===t?void 0:t.assembler.createMaterial()),e}get assemblerController(){return this._assembler_controller=this._assembler_controller||this._create_assembler_controller()}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}childrenAllowed(){return this.assemblerController?super.childrenAllowed():(this.scene().markAsReadOnly(this),!1)}compileIfRequired(){var t;(null===(t=this.assemblerController)||void 0===t?void 0:t.compileRequired())&&this._compile()}_compile(){const t=this.assemblerController;this.material&&t&&(t.assembler.setGlParentNode(this),this._setAssemblerGlParentNode(t),t.assembler.compileMaterial(this.material),t.post_compile())}_setAssemblerGlParentNode(t){if(!this.pv.setBuilderNode)return;const e=this.pv.builderNode.nodeWithContext(ts.MAT);if(!e)return;const n=e;n.assemblerController?n.type()==this.type()?t.assembler.setGlParentNode(n):this.states.error.set(`resolved node '${e.path()}' does not have the same type '${e.type()}' as current node '${this.type()}'`):this.states.error.set(`resolved node '${e.path()}' is not a builder node`)}static PARAM_CALLBACK_setCompileRequired(t){t.PARAM_CALLBACK_setCompileRequired()}PARAM_CALLBACK_setCompileRequired(){var t;null===(t=this.assemblerController)||void 0===t||t.setCompilationRequired(!0)}}function cB(t){return class extends t{constructor(){super(...arguments),this.useFog=ha.BOOLEAN(0)}}}cB(ua);class hB extends JD{constructor(t){super(t),this.node=t}static update(t){const e=t.material,n=t.pv;e.fog=n.useFog}}function uB(t){return class extends t{constructor(){super(...arguments),this.default=ha.FOLDER(null)}}}function dB(t){return class extends t{constructor(){super(...arguments),this.advanced=ha.FOLDER(null)}}}class pB extends(cB(QD(aB(dB(sB(uB(ua))))))){constructor(){super(...arguments),this.linewidth=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1]})}}const _B=new pB;class mB extends lB{constructor(){super(...arguments),this.paramsConfig=_B,this.controllers={advancedCommon:new tB(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"lineBasicBuilder\\\\\\\"}usedAssembler(){return jn.GL_LINE}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),this.compileIfRequired(),this.material.linewidth=this.pv.linewidth,this.setMaterial(this.material)}}function fB(t){return class extends t{constructor(){super(...arguments),this.color=ha.COLOR([1,1,1],{conversion:lo.SRGB_TO_LINEAR}),this.useVertexColors=ha.BOOLEAN(0,{separatorAfter:!0}),this.transparent=ha.BOOLEAN(0),this.opacity=ha.FLOAT(1),this.alphaTest=ha.FLOAT(0)}}}O.a;fB(ua);class gB extends JD{constructor(t){super(t),this.node=t}static update(t){const e=t.material,n=t.pv;e.color.copy(n.color);const i=n.useVertexColors;i!=e.vertexColors&&(e.vertexColors=i,e.needsUpdate=!0),e.opacity=n.opacity,e.transparent=n.transparent,e.alphaTest=n.alphaTest}}function vB(t){return class extends t{constructor(){super(...arguments),this.useFog=ha.BOOLEAN(0)}}}vB(ua);class yB extends JD{constructor(t){super(t),this.node=t}static update(t){const e=t.material,n=t.pv;e.fog=n.useFog}}function xB(t){return{cook:!1,callback:(e,n)=>{t.update(e)}}}function bB(t,e,n){return{visibleIf:{[e]:1},nodeSelection:{context:ts.COP,types:null==n?void 0:n.types},cook:!1,callback:(e,n)=>{t.update(e)}}}class wB extends JD{constructor(t,e){super(t),this.node=t,this._update_options=e}add_hooks(t,e){t.addPostDirtyHook(\\\\\\\"TextureController\\\\\\\",(()=>{this.update()})),e.addPostDirtyHook(\\\\\\\"TextureController\\\\\\\",(()=>{this.update()}))}static update(t){}async _update(t,e,n,i){if(this._update_options.uniforms){const s=t,r=e;await this._update_texture_on_uniforms(s,r,n,i)}if(this._update_options.directParams){const s=t,r=e;await this._update_texture_on_material(s,r,n,i)}}async _update_texture_on_uniforms(t,e,n,i){this._update_required_attribute(t,t.uniforms,e,n,i,this._apply_texture_on_uniforms.bind(this),this._remove_texture_from_uniforms.bind(this))}_apply_texture_on_uniforms(t,e,n,i){const s=null!=e[n]&&null!=e[n].value;let r=!1;if(s){e[n].value.uuid!=i.uuid&&(r=!0)}if(!s||r){e[n]&&(e[n].value=i),this._apply_texture_on_material(t,t,n,i),t.needsUpdate=!0;const s=t.customMaterials;if(s){const t=Object.keys(s);for(let e of t){const t=s[e];t&&this._apply_texture_on_uniforms(t,t.uniforms,n,i)}}}}_remove_texture_from_uniforms(t,e,n){if(e[n]){if(e[n].value){e[n].value=null,this._remove_texture_from_material(t,t,n),t.needsUpdate=!0;const i=t.customMaterials;if(i){const t=Object.keys(i);for(let e of t){const t=i[e];t&&this._remove_texture_from_uniforms(t,t.uniforms,n)}}}}else li.warn(`'${n}' uniform not found. existing uniforms are:`,Object.keys(e).sort())}async _update_texture_on_material(t,e,n,i){this._update_required_attribute(t,t,e,n,i,this._apply_texture_on_material.bind(this),this._remove_texture_from_material.bind(this))}_apply_texture_on_material(t,e,n,i){const s=null!=e[n];let r=!1;if(s){e[n].uuid!=i.uuid&&(r=!0)}s&&!r||(e[n]=i,t.needsUpdate=!0)}_remove_texture_from_material(t,e,n){e[n]&&(e[n]=null,t.needsUpdate=!0)}async _update_required_attribute(t,e,n,i,s,r,o){i.isDirty()&&await i.compute();if(i.value){s.isDirty()&&await s.compute();const i=s.value.nodeWithContext(ts.COP);if(i){const s=(await i.compute()).texture();if(s)return void r(t,e,n,s)}}o(t,e,n)}}function TB(t){return class extends t{constructor(){super(...arguments),this.useMap=ha.BOOLEAN(0,xB(AB)),this.map=ha.NODE_PATH(vi.EMPTY,bB(AB,\\\\\\\"useMap\\\\\\\"))}}}O.a;TB(ua);class AB extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useMap,this.node.p.map)}async update(){this._update(this.node.material,\\\\\\\"map\\\\\\\",this.node.p.useMap,this.node.p.map)}static async update(t){t.controllers.map.update()}}function MB(t){return class extends t{constructor(){super(...arguments),this.useAlphaMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(EB)}),this.alphaMap=ha.NODE_PATH(vi.EMPTY,bB(EB,\\\\\\\"useAlphaMap\\\\\\\"))}}}O.a;MB(ua);class EB extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useAlphaMap,this.node.p.alphaMap)}async update(){this._update(this.node.material,\\\\\\\"alphaMap\\\\\\\",this.node.p.useAlphaMap,this.node.p.alphaMap)}static async update(t){t.controllers.alphaMap.update()}}function SB(t){return class extends t{constructor(){super(...arguments),this.useAOMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(CB)}),this.aoMap=ha.NODE_PATH(vi.EMPTY,bB(CB,\\\\\\\"useAOMap\\\\\\\")),this.aoMapIntensity=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],visibleIf:{useAOMap:1}})}}}O.a;SB(ua);class CB extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useAOMap,this.node.p.aoMap)}async update(){if(this._update(this.node.material,\\\\\\\"aoMap\\\\\\\",this.node.p.useAOMap,this.node.p.aoMap),this._update_options.uniforms){this.node.material.uniforms.aoMapIntensity.value=this.node.pv.aoMapIntensity}if(this._update_options.directParams){this.node.material.aoMapIntensity=this.node.pv.aoMapIntensity}}static async update(t){t.controllers.aoMap.update()}}var NB;!function(t){t.MULT=\\\\\\\"mult\\\\\\\",t.ADD=\\\\\\\"add\\\\\\\",t.MIX=\\\\\\\"mix\\\\\\\"}(NB||(NB={}));const LB=[NB.MULT,NB.ADD,NB.MIX],OB={[NB.MULT]:w.nb,[NB.ADD]:w.c,[NB.MIX]:w.lb};function PB(t){return class extends t{constructor(){super(...arguments),this.useEnvMap=ha.BOOLEAN(0,xB(RB)),this.envMap=ha.NODE_PATH(vi.EMPTY,bB(RB,\\\\\\\"useEnvMap\\\\\\\",{types:[Fg.CUBE_CAMERA]})),this.combine=ha.INTEGER(0,{visibleIf:{useEnvMap:1},menu:{entries:LB.map(((t,e)=>({name:t,value:e})))}}),this.reflectivity=ha.FLOAT(1,{visibleIf:{useEnvMap:1}}),this.refractionRatio=ha.FLOAT(.98,{range:[-1,1],rangeLocked:[!1,!1],visibleIf:{useEnvMap:1}})}}}PB(ua);class RB extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useEnvMap,this.node.p.envMap)}async update(){this._update(this.node.material,\\\\\\\"envMap\\\\\\\",this.node.p.useEnvMap,this.node.p.envMap);const t=OB[LB[this.node.pv.combine]];if(this._update_options.uniforms){const t=this.node.material;t.uniforms.reflectivity.value=this.node.pv.reflectivity,t.uniforms.refractionRatio.value=this.node.pv.refractionRatio}if(this._update_options.directParams){const e=this.node.material;e.combine=t,e.reflectivity=this.node.pv.reflectivity,e.refractionRatio=this.node.pv.refractionRatio}}static async update(t){t.controllers.envMap.update()}}function IB(t){return class extends t{constructor(){super(...arguments),this.useLightMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(FB)}),this.lightMap=ha.NODE_PATH(vi.EMPTY,bB(FB,\\\\\\\"useLightMap\\\\\\\")),this.lightMapIntensity=ha.FLOAT(1,{visibleIf:{useLightMap:1}})}}}O.a;IB(ua);class FB extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useLightMap,this.node.p.lightMap)}async update(){if(this._update(this.node.material,\\\\\\\"lightMap\\\\\\\",this.node.p.useLightMap,this.node.p.lightMap),this._update_options.uniforms){this.node.material.uniforms.lightMapIntensity.value=this.node.pv.lightMapIntensity}if(this._update_options.directParams){this.node.material.lightMapIntensity=this.node.pv.lightMapIntensity}}static async update(t){t.controllers.lightMap.update()}}var DB;!function(t){t.ROUND=\\\\\\\"round\\\\\\\",t.BUTT=\\\\\\\"butt\\\\\\\",t.SQUARE=\\\\\\\"square\\\\\\\"}(DB||(DB={}));const BB=[DB.ROUND,DB.BUTT,DB.SQUARE];var zB;!function(t){t.ROUND=\\\\\\\"round\\\\\\\",t.BEVEL=\\\\\\\"bevel\\\\\\\",t.MITER=\\\\\\\"miter\\\\\\\"}(zB||(zB={}));const kB=[zB.ROUND,zB.BEVEL,zB.MITER];function UB(t){return class extends t{constructor(){super(...arguments),this.wireframe=ha.BOOLEAN(0,{separatorBefore:!0}),this.wireframeLinecap=ha.INTEGER(0,{menu:{entries:BB.map(((t,e)=>({name:t,value:e})))},visibleIf:{wireframe:1}}),this.wireframeLinejoin=ha.INTEGER(0,{menu:{entries:kB.map(((t,e)=>({name:t,value:e})))},visibleIf:{wireframe:1}})}}}O.a;UB(ua);class GB extends JD{constructor(t){super(t),this.node=t}static update(t){const e=t.material,n=t.pv;e.wireframe=n.wireframe,e.wireframeLinecap=BB[n.wireframeLinecap],e.wireframeLinejoin=kB[n.wireframeLinejoin],e.needsUpdate=!0}}function VB(t){return class extends t{constructor(){super(...arguments),this.textures=ha.FOLDER(null)}}}const HB={directParams:!0};class jB extends(vB(UB(QD(dB(IB(PB(SB(MB(TB(VB(fB(uB(ua))))))))))))){}const WB=new jB;class qB extends $D{constructor(){super(...arguments),this.paramsConfig=WB,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,HB),aoMap:new CB(this,HB),envMap:new RB(this,HB),lightMap:new FB(this,HB),map:new AB(this,HB)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshBasic\\\\\\\"}createMaterial(){return new lt.a({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),GB.update(this),this.setMaterial(this.material)}}function XB(t){return class extends t{constructor(){super(...arguments),this.wireframe=ha.BOOLEAN(0)}}}XB(ua);class YB extends JD{constructor(t){super(t),this.node=t}static update(t){const e=t.material,n=t.pv;e.wireframe=n.wireframe,e.needsUpdate=!0}}const $B={uniforms:!0};class JB extends(cB(XB(QD(aB(dB(PB(SB(MB(TB(VB(sB(uB(ua))))))))))))){}const ZB=new JB;class KB extends lB{constructor(){super(...arguments),this.paramsConfig=ZB,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,$B),aoMap:new CB(this,$B),envMap:new RB(this,$B),map:new AB(this,$B)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshBasicBuilder\\\\\\\"}usedAssembler(){return jn.GL_MESH_BASIC}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),YB.update(this),this.compileIfRequired(),this.setMaterial(this.material)}}function QB(t){return class extends t{constructor(){super(...arguments),this.emissive=ha.COLOR([0,0,0],{separatorBefore:!0}),this.useEmissiveMap=ha.BOOLEAN(0,xB(tz)),this.emissiveMap=ha.NODE_PATH(vi.EMPTY,bB(tz,\\\\\\\"useEmissiveMap\\\\\\\")),this.emissiveIntensity=ha.FLOAT(1)}}}O.a;QB(ua);class tz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useEmissiveMap,this.node.p.emissiveMap)}async update(){if(this._update(this.node.material,\\\\\\\"emissiveMap\\\\\\\",this.node.p.useEmissiveMap,this.node.p.emissiveMap),this._update_options.uniforms){this.node.material.uniforms.emissive.value.copy(this.node.pv.emissive)}if(this._update_options.directParams){const t=this.node.material;t.emissive.copy(this.node.pv.emissive),t.emissiveIntensity=this.node.pv.emissiveIntensity}}static async update(t){t.controllers.emissiveMap.update()}}const ez={directParams:!0};class nz extends(vB(UB(QD(dB(IB(PB(QB(SB(MB(TB(VB(fB(uB(ua)))))))))))))){}const iz=new nz;class sz extends $D{constructor(){super(...arguments),this.paramsConfig=iz,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,ez),aoMap:new CB(this,ez),emissiveMap:new tz(this,ez),envMap:new RB(this,ez),lightMap:new FB(this,ez),map:new AB(this,ez)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshLambert\\\\\\\"}createMaterial(){return new Ts.a({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),GB.update(this),this.setMaterial(this.material)}}function rz(t){return class extends t{constructor(){super(...arguments),this.shadowPCSS=ha.BOOLEAN(0,{callback:t=>{oz.PARAM_CALLBACK_setRecompileRequired(t)},separatorBefore:!0}),this.shadowPCSSSamplesCount=ha.INTEGER(16,{visibleIf:{shadowPCSS:1},range:[0,128],rangeLocked:[!0,!1]}),this.shadowPCSSFilterSize=ha.FLOAT(1,{visibleIf:{shadowPCSS:1},range:[0,10],rangeLocked:[!0,!1]})}}}rz(ua);class oz extends JD{constructor(t){super(t),this.node=t}initializeNode(){}static filterFragmentShader(t,e){const n=`\\\\n#define NUM_SAMPLES ${mf.integer(t.pv.shadowPCSSSamplesCount)}\\\\n#define PCSS_FILTER_SIZE ${mf.float(t.pv.shadowPCSSFilterSize)}\\\\n#define LIGHT_WORLD_SIZE 0.005\\\\n// #define LIGHT_FRUSTUM_WIDTH 1.0\\\\n// #define PCSS_FILTER_SIZE 1.0\\\\n#define LIGHT_SIZE_UV (PCSS_FILTER_SIZE * LIGHT_WORLD_SIZE)\\\\n#define NEAR_PLANE 9.5\\\\n\\\\n// #define NUM_SAMPLES 32\\\\n#define NUM_RINGS 11\\\\n#define BLOCKER_SEARCH_NUM_SAMPLES NUM_SAMPLES\\\\n#define PCF_NUM_SAMPLES NUM_SAMPLES\\\\n\\\\nvec2 poissonDisk[NUM_SAMPLES];\\\\n\\\\nvoid initPoissonSamples( const in vec2 randomSeed ) {\\\\n\\\\tfloat ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\\\\n\\\\tfloat INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\\\\n\\\\n\\\\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\\\\n\\\\tfloat angle = rand( randomSeed ) * PI2;\\\\n\\\\tfloat radius = INV_NUM_SAMPLES;\\\\n\\\\tfloat radiusStep = radius;\\\\n\\\\n\\\\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\\\\n\\\\t\\\\tpoissonDisk[i] = vec2( cos( angle ), sin( angle ) ) * pow( radius, 0.75 );\\\\n\\\\t\\\\tradius += radiusStep;\\\\n\\\\t\\\\tangle += ANGLE_STEP;\\\\n\\\\t}\\\\n}\\\\n\\\\nfloat penumbraSize( const in float zReceiver, const in float zBlocker ) { // Parallel plane estimation\\\\n\\\\treturn (zReceiver - zBlocker) / zBlocker;\\\\n}\\\\n\\\\nfloat findBlocker( sampler2D shadowMap, const in vec2 uv, const in float zReceiver ) {\\\\n\\\\t// This uses similar triangles to compute what\\\\n\\\\t// area of the shadow map we should search\\\\n\\\\tfloat searchRadius = LIGHT_SIZE_UV * ( zReceiver - NEAR_PLANE ) / zReceiver;\\\\n\\\\tfloat blockerDepthSum = 0.0;\\\\n\\\\tint numBlockers = 0;\\\\n\\\\n\\\\tfor( int i = 0; i < BLOCKER_SEARCH_NUM_SAMPLES; i++ ) {\\\\n\\\\t\\\\tfloat shadowMapDepth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[i] * searchRadius));\\\\n\\\\t\\\\tif ( shadowMapDepth < zReceiver ) {\\\\n\\\\t\\\\t\\\\tblockerDepthSum += shadowMapDepth;\\\\n\\\\t\\\\t\\\\tnumBlockers ++;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\tif( numBlockers == 0 ) return -1.0;\\\\n\\\\n\\\\treturn blockerDepthSum / float( numBlockers );\\\\n}\\\\n\\\\nfloat PCF_Filter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius ) {\\\\n\\\\tfloat sum = 0.0;\\\\n\\\\tfor( int i = 0; i < PCF_NUM_SAMPLES; i ++ ) {\\\\n\\\\t\\\\tfloat depth = unpackRGBAToDepth( texture2D( shadowMap, uv + poissonDisk[ i ] * filterRadius ) );\\\\n\\\\t\\\\tif( zReceiver <= depth ) sum += 1.0;\\\\n\\\\t}\\\\n\\\\tfor( int i = 0; i < PCF_NUM_SAMPLES; i ++ ) {\\\\n\\\\t\\\\tfloat depth = unpackRGBAToDepth( texture2D( shadowMap, uv + -poissonDisk[ i ].yx * filterRadius ) );\\\\n\\\\t\\\\tif( zReceiver <= depth ) sum += 1.0;\\\\n\\\\t}\\\\n\\\\treturn sum / ( 2.0 * float( PCF_NUM_SAMPLES ) );\\\\n}\\\\n\\\\nfloat PCSS ( sampler2D shadowMap, vec4 coords ) {\\\\n\\\\tvec2 uv = coords.xy;\\\\n\\\\tfloat zReceiver = coords.z; // Assumed to be eye-space z in this code\\\\n\\\\n\\\\tinitPoissonSamples( uv );\\\\n\\\\t// STEP 1: blocker search\\\\n\\\\tfloat avgBlockerDepth = findBlocker( shadowMap, uv, zReceiver );\\\\n\\\\n\\\\t//There are no occluders so early out (this saves filtering)\\\\n\\\\tif( avgBlockerDepth == -1.0 ) return 1.0;\\\\n\\\\n\\\\t// STEP 2: penumbra size\\\\n\\\\tfloat penumbraRatio = penumbraSize( zReceiver, avgBlockerDepth );\\\\n\\\\tfloat filterRadius = penumbraRatio * LIGHT_SIZE_UV * NEAR_PLANE / zReceiver;\\\\n\\\\n\\\\t// STEP 3: filtering\\\\n\\\\t//return avgBlockerDepth;\\\\n\\\\treturn PCF_Filter( shadowMap, uv, zReceiver, filterRadius );\\\\n}\\\\n`;let i=z;return i=i.replace(\\\\\\\"#ifdef USE_SHADOWMAP\\\\\\\",`#ifdef USE_SHADOWMAP\\\\n${n}\\\\n\\\\t\\\\t\\\\t\\\\t`),i=i.replace(\\\\\\\"#if defined( SHADOWMAP_TYPE_PCF )\\\\\\\",\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\treturn PCSS( shadowMap, shadowCoord );\\\\n\\\\t\\\\t\\\\t\\\\t#if defined( SHADOWMAP_TYPE_PCF )\\\\\\\"),e=e.replace(\\\\\\\"#include <shadowmap_pars_fragment>\\\\\\\",i)}async update(){const t=this.node;if(!t.assemblerController)return;const e=\\\\\\\"PCSS\\\\\\\";this.node.pv.shadowPCSS?t.assemblerController.addFilterFragmentShaderCallback(e,(t=>oz.filterFragmentShader(this.node,t))):t.assemblerController.removeFilterFragmentShaderCallback(e)}static async update(t){t.controllers.PCSS.update()}static PARAM_CALLBACK_setRecompileRequired(t){t.controllers.PCSS.update()}}const az={uniforms:!0};class lz extends(rz(cB(XB(QD(aB(dB(IB(PB(QB(SB(MB(TB(VB(sB(uB(ua)))))))))))))))){}const cz=new lz;class hz extends lB{constructor(){super(...arguments),this.paramsConfig=cz,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,az),aoMap:new CB(this,az),emissiveMap:new tz(this,az),envMap:new RB(this,az),lightMap:new FB(this,az),map:new AB(this,az),PCSS:new oz(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshLambertBuilder\\\\\\\"}usedAssembler(){return jn.GL_MESH_LAMBERT}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),YB.update(this),this.compileIfRequired(),this.setMaterial(this.material)}}function uz(t){return class extends t{constructor(){super(...arguments),this.useBumpMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(dz)}),this.bumpMap=ha.NODE_PATH(\\\\\\\"\\\\\\\",bB(dz,\\\\\\\"useBumpMap\\\\\\\")),this.bumpScale=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],...bB(dz,\\\\\\\"useBumpMap\\\\\\\")}),this.bumpBias=ha.FLOAT(0,{range:[0,1],rangeLocked:[!1,!1],...bB(dz,\\\\\\\"useBumpMap\\\\\\\")})}}}O.a;uz(ua);class dz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useBumpMap,this.node.p.bumpMap)}async update(){if(this._update(this.node.material,\\\\\\\"bumpMap\\\\\\\",this.node.p.useBumpMap,this.node.p.bumpMap),this._update_options.uniforms){this.node.material.uniforms.bumpScale.value=this.node.pv.bumpScale}if(this._update_options.directParams){this.node.material.bumpScale=this.node.pv.bumpScale}}static async update(t){t.controllers.bumpMap.update()}}var pz;!function(t){t.TANGENT=\\\\\\\"tangent\\\\\\\",t.OBJECT=\\\\\\\"object\\\\\\\"}(pz||(pz={}));const _z=[pz.TANGENT,pz.OBJECT],mz={[pz.TANGENT]:w.Uc,[pz.OBJECT]:w.zb};function fz(t){return class extends t{constructor(){super(...arguments),this.useNormalMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(gz)}),this.normalMap=ha.NODE_PATH(vi.EMPTY,bB(gz,\\\\\\\"useNormalMap\\\\\\\")),this.normalMapType=ha.INTEGER(0,{visibleIf:{useNormalMap:1},menu:{entries:_z.map(((t,e)=>({name:t,value:e})))}}),this.normalScale=ha.VECTOR2([1,1],{visibleIf:{useNormalMap:1}})}}}O.a;fz(ua);class gz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useNormalMap,this.node.p.normalMap)}async update(){this._update(this.node.material,\\\\\\\"normalMap\\\\\\\",this.node.p.useNormalMap,this.node.p.normalMap);const t=mz[_z[this.node.pv.normalMapType]];if(this._update_options.uniforms){this.node.material.uniforms.normalScale.value.copy(this.node.pv.normalScale)}const e=this.node.material;e.normalMapType=t,this._update_options.directParams&&e.normalScale.copy(this.node.pv.normalScale)}static async update(t){t.controllers.normalMap.update()}}function vz(t){return class extends t{constructor(){super(...arguments),this.useDisplacementMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(yz)}),this.displacementMap=ha.NODE_PATH(\\\\\\\"\\\\\\\",bB(yz,\\\\\\\"useDisplacementMap\\\\\\\")),this.displacementScale=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],...bB(yz,\\\\\\\"useDisplacementMap\\\\\\\")}),this.displacementBias=ha.FLOAT(0,{range:[0,1],rangeLocked:[!1,!1],...bB(yz,\\\\\\\"useDisplacementMap\\\\\\\")})}}}O.a;vz(ua);class yz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useDisplacementMap,this.node.p.displacementMap)}async update(){if(this._update(this.node.material,\\\\\\\"displacementMap\\\\\\\",this.node.p.useDisplacementMap,this.node.p.displacementMap),this._update_options.uniforms){const t=this.node.material;t.uniforms.displacementScale.value=this.node.pv.displacementScale,t.uniforms.displacementBias.value=this.node.pv.displacementBias}if(this._update_options.directParams){const t=this.node.material;t.displacementScale=this.node.pv.displacementScale,t.displacementBias=this.node.pv.displacementBias}}static async update(t){t.controllers.displacementMap.update()}}function xz(t){return class extends t{constructor(){super(...arguments),this.useMatcapMap=ha.BOOLEAN(0,xB(bz)),this.matcapMap=ha.NODE_PATH(vi.EMPTY,bB(bz,\\\\\\\"useMatcapMap\\\\\\\"))}}}O.a;xz(ua);class bz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useMatcapMap,this.node.p.matcapMap)}async update(){this._update(this.node.material,\\\\\\\"matcap\\\\\\\",this.node.p.useMatcapMap,this.node.p.matcapMap)}static async update(t){t.controllers.matcap.update()}}const wz={directParams:!0};class Tz extends(vB(QD(dB(fz(vz(uz(MB(TB(xz(VB(fB(uB(ua))))))))))))){}const Az=new Tz;class Mz extends $D{constructor(){super(...arguments),this.paramsConfig=Az,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,wz),bumpMap:new dz(this,wz),displacementMap:new yz(this,wz),map:new AB(this,wz),matcap:new bz(this,wz),normalMap:new gz(this,wz)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshMatcap\\\\\\\"}createMaterial(){return new $f({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),this.setMaterial(this.material)}}const Ez={directParams:!0};class Sz extends(vB(QD(fz(vz(uz(VB(uB(ua)))))))){}const Cz=new Sz;class Nz extends $D{constructor(){super(...arguments),this.paramsConfig=Cz,this.controllers={advancedCommon:new tB(this),bumpMap:new dz(this,Ez),displacementMap:new yz(this,Ez),normalMap:new gz(this,Ez)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshNormal\\\\\\\"}createMaterial(){return new Yf({vertexColors:!1,side:w.H,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();yB.update(this),this.setMaterial(this.material)}}function Lz(t){return class extends t{constructor(){super(...arguments),this.useSpecularMap=ha.BOOLEAN(0,xB(Oz)),this.specularMap=ha.NODE_PATH(vi.EMPTY,bB(Oz,\\\\\\\"useSpecularMap\\\\\\\"))}}}O.a;Lz(ua);class Oz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useSpecularMap,this.node.p.specularMap)}async update(){this._update(this.node.material,\\\\\\\"specularMap\\\\\\\",this.node.p.useSpecularMap,this.node.p.specularMap)}static async update(t){t.controllers.specularMap.update()}}const Pz={directParams:!0};class Rz extends(vB(UB(QD(dB(Lz(fz(IB(PB(QB(vz(uz(SB(MB(TB(VB(fB(uB(ua)))))))))))))))))){constructor(){super(...arguments),this.flatShading=ha.BOOLEAN(0)}}const Iz=new Rz;class Fz extends $D{constructor(){super(...arguments),this.paramsConfig=Iz,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,Pz),aoMap:new CB(this,Pz),bumpMap:new dz(this,Pz),displacementMap:new yz(this,Pz),emissiveMap:new tz(this,Pz),envMap:new RB(this,Pz),lightMap:new FB(this,Pz),map:new AB(this,Pz),normalMap:new gz(this,Pz),specularMap:new Oz(this,Pz)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshPhong\\\\\\\"}createMaterial(){return new qf.a({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),GB.update(this),this.material.flatShading!=this.pv.flatShading&&(this.material.flatShading=this.pv.flatShading,this.material.needsUpdate=!0),this.setMaterial(this.material)}}const Dz={uniforms:!0};class Bz extends(rz(cB(XB(QD(aB(dB(Lz(fz(IB(PB(QB(vz(uz(SB(MB(TB(VB(sB(uB(ua)))))))))))))))))))){}const zz=new Bz;class kz extends lB{constructor(){super(...arguments),this.paramsConfig=zz,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,Dz),aoMap:new CB(this,Dz),bumpMap:new dz(this,Dz),displacementMap:new yz(this,Dz),emissiveMap:new tz(this,Dz),envMap:new RB(this,Dz),lightMap:new FB(this,Dz),map:new AB(this,Dz),normalMap:new gz(this,Dz),specularMap:new Oz(this,Dz),PCSS:new oz(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshPhongBuilder\\\\\\\"}usedAssembler(){return jn.GL_MESH_PHONG}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),YB.update(this),this.compileIfRequired(),this.setMaterial(this.material)}}function Uz(t){return class extends t{constructor(){super(...arguments),this.useEnvMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(Gz)}),this.envMap=ha.NODE_PATH(vi.EMPTY,bB(Gz,\\\\\\\"useEnvMap\\\\\\\")),this.envMapIntensity=ha.FLOAT(1,{visibleIf:{useEnvMap:1}}),this.refractionRatio=ha.FLOAT(.98,{range:[-1,1],rangeLocked:[!1,!1],visibleIf:{useEnvMap:1}})}}}Uz(ua);class Gz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useEnvMap,this.node.p.envMap)}async update(){if(this._update(this.node.material,\\\\\\\"envMap\\\\\\\",this.node.p.useEnvMap,this.node.p.envMap),this._update_options.uniforms){const t=this.node.material;t.uniforms.envMapIntensity.value=this.node.pv.envMapIntensity,t.uniforms.refractionRatio.value=this.node.pv.refractionRatio}if(this._update_options.directParams){const t=this.node.material;t.envMapIntensity=this.node.pv.envMapIntensity,t.refractionRatio=this.node.pv.refractionRatio}}static async update(t){t.controllers.envMap.update()}}function Vz(t){return class extends t{constructor(){super(...arguments),this.useMetalnessMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(Hz)}),this.metalnessMap=ha.NODE_PATH(vi.EMPTY,bB(Hz,\\\\\\\"useMetalnessMap\\\\\\\")),this.metalness=ha.FLOAT(1),this.useRoughnessMap=ha.BOOLEAN(0,{separatorBefore:!0,...xB(Hz)}),this.roughnessMap=ha.NODE_PATH(vi.EMPTY,bB(Hz,\\\\\\\"useRoughnessMap\\\\\\\")),this.roughness=ha.FLOAT(.5)}}}O.a;Vz(ua);class Hz extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useMetalnessMap,this.node.p.metalnessMap)}async update(){if(this._update(this.node.material,\\\\\\\"metalnessMap\\\\\\\",this.node.p.useMetalnessMap,this.node.p.metalnessMap),this._update_options.uniforms){this.node.material.uniforms.metalness.value=this.node.pv.metalness}if(this._update_options.directParams){this.node.material.metalness=this.node.pv.metalness}if(this._update(this.node.material,\\\\\\\"roughnessMap\\\\\\\",this.node.p.useRoughnessMap,this.node.p.roughnessMap),this._update_options.uniforms){this.node.material.uniforms.roughness.value=this.node.pv.roughness}if(this._update_options.directParams){this.node.material.roughness=this.node.pv.roughness}}static async update(t){t.controllers.metalnessRoughnessMap.update()}}function jz(t){return class extends t{constructor(){super(...arguments),this.clearcoat=ha.FLOAT(0,{separatorBefore:!0}),this.useClearCoatMap=ha.BOOLEAN(0,xB(qz)),this.clearcoatMap=ha.NODE_PATH(vi.EMPTY,bB(qz,\\\\\\\"useClearCoatMap\\\\\\\")),this.useClearCoatNormalMap=ha.BOOLEAN(0,xB(qz)),this.clearcoatNormalMap=ha.NODE_PATH(vi.EMPTY,bB(qz,\\\\\\\"useClearCoatNormalMap\\\\\\\")),this.clearcoatNormalScale=ha.VECTOR2([1,1],{visibleIf:{useClearCoatNormalMap:1}}),this.clearcoatRoughness=ha.FLOAT(0),this.useClearCoatRoughnessMap=ha.BOOLEAN(0,xB(qz)),this.clearcoatRoughnessMap=ha.NODE_PATH(vi.EMPTY,bB(qz,\\\\\\\"useClearCoatRoughnessMap\\\\\\\")),this.useSheen=ha.BOOLEAN(0),this.sheen=ha.FLOAT(0,{range:[0,1],rangeLocked:[!0,!1],visibleIf:{useSheen:1}}),this.sheenRoughness=ha.FLOAT(1,{range:[0,1],rangeLocked:[!0,!1],visibleIf:{useSheen:1}}),this.sheenColor=ha.COLOR([1,1,1],{visibleIf:{useSheen:1}}),this.transmission=ha.FLOAT(0,{range:[0,1]}),this.useTransmissionMap=ha.BOOLEAN(0),this.transmissionMap=ha.NODE_PATH(vi.EMPTY,{visibleIf:{useTransmissionMap:1}}),this.ior=ha.FLOAT(1.5,{range:[1,2.3333],rangeLocked:[!0,!0]}),this.thickness=ha.FLOAT(.01,{range:[0,10],rangeLocked:[!0,!1]}),this.useThicknessMap=ha.BOOLEAN(0),this.thicknessMap=ha.NODE_PATH(vi.EMPTY,{visibleIf:{useThicknessMap:1}}),this.attenuationDistance=ha.FLOAT(0,{range:[0,10],rangeLocked:[!0,!1]}),this.attenuationColor=ha.COLOR([1,1,1])}}}jz(ua);const Wz=new Wf.a;class qz extends wB{constructor(t,e){super(t,e),this.node=t,this._sheenColorClone=new D.a}initializeNode(){this.add_hooks(this.node.p.useClearCoatMap,this.node.p.clearcoatMap),this.add_hooks(this.node.p.useClearCoatNormalMap,this.node.p.clearcoatNormalMap),this.add_hooks(this.node.p.useClearCoatRoughnessMap,this.node.p.clearcoatRoughnessMap),this.add_hooks(this.node.p.useTransmissionMap,this.node.p.transmissionMap),this.add_hooks(this.node.p.useThicknessMap,this.node.p.thicknessMap)}async update(){this._update(this.node.material,\\\\\\\"clearcoatMap\\\\\\\",this.node.p.useClearCoatMap,this.node.p.clearcoatMap),this._update(this.node.material,\\\\\\\"clearcoatNormalMap\\\\\\\",this.node.p.useClearCoatNormalMap,this.node.p.clearcoatNormalMap),this._update(this.node.material,\\\\\\\"clearcoatRoughnessMap\\\\\\\",this.node.p.useClearCoatRoughnessMap,this.node.p.clearcoatRoughnessMap),this._update(this.node.material,\\\\\\\"transmissionMap\\\\\\\",this.node.p.useTransmissionMap,this.node.p.transmissionMap),this._update(this.node.material,\\\\\\\"thicknessMap\\\\\\\",this.node.p.useThicknessMap,this.node.p.thicknessMap);const t=this.node.pv;Wz.ior=t.ior;const e=Wz.reflectivity;if(this._update_options.uniforms){const n=this.node.material;n.uniforms.clearcoat.value=t.clearcoat,n.uniforms.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),n.uniforms.clearcoatRoughness.value=t.clearcoatRoughness,n.uniforms.reflectivity.value=e,n.uniforms.transmission.value=t.transmission,n.uniforms.thickness.value=t.thickness,n.uniforms.attenuationDistance.value=t.attenuationDistance,n.uniforms.attenuationTint.value=t.attenuationColor,t.useSheen?(this._sheenColorClone.copy(t.sheenColor),n.uniforms.sheen.value=t.sheen,n.uniforms.sheenRoughness.value=t.sheenRoughness,n.uniforms.sheenTint.value=this._sheenColorClone):n.uniforms.sheen.value=0,n.uniforms.ior.value=t.ior,n.specularTint=n.uniforms.specularTint.value,n.ior=n.uniforms.ior.value}if(this._update_options.directParams){const n=this.node.material;n.clearcoat=t.clearcoat,null!=n.clearcoatNormalScale&&n.clearcoatNormalScale.copy(t.clearcoatNormalScale),n.clearcoatRoughness=t.clearcoatRoughness,n.reflectivity=e,t.useSheen?(this._sheenColorClone.copy(t.sheenColor),n.sheen=t.sheen,n.sheenRoughness=t.sheenRoughness,n.sheenTint=this._sheenColorClone):n.sheen=0,n.transmission=t.transmission,n.thickness=t.thickness,n.attenuationDistance=t.attenuationDistance,n.attenuationTint=t.attenuationColor}}static async update(t){t.controllers.physical.update()}}const Xz={directParams:!0};class Yz extends(vB(UB(QD(dB(jz(Vz(fz(IB(Uz(QB(vz(uz(SB(MB(TB(VB(fB(uB(ua))))))))))))))))))){}const $z=new Yz;class Jz extends $D{constructor(){super(...arguments),this.paramsConfig=$z,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,Xz),aoMap:new CB(this,Xz),bumpMap:new dz(this,Xz),displacementMap:new yz(this,Xz),emissiveMap:new tz(this,Xz),envMap:new Gz(this,Xz),lightMap:new FB(this,Xz),map:new AB(this,Xz),metalnessRoughnessMap:new Hz(this,Xz),normalMap:new gz(this,Xz),physical:new qz(this,Xz)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshPhysical\\\\\\\"}createMaterial(){return new Wf.a({vertexColors:!1,side:w.H,color:16777215,opacity:1,metalness:1,roughness:0})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),GB.update(this),this.setMaterial(this.material)}}const Zz={uniforms:!0};class Kz extends(function(t){return class extends(rz(cB(XB(QD(aB(t)))))){}}(dB(jz(Vz(fz(IB(Uz(QB(vz(uz(SB(MB(TB(VB(sB(uB(ua))))))))))))))))){}const Qz=new Kz;class tk extends lB{constructor(){super(...arguments),this.paramsConfig=Qz,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,Zz),aoMap:new CB(this,Zz),bumpMap:new dz(this,Zz),displacementMap:new yz(this,Zz),emissiveMap:new tz(this,Zz),envMap:new Gz(this,{uniforms:!0,directParams:!0}),lightMap:new FB(this,Zz),map:new AB(this,Zz),metalnessRoughnessMap:new Hz(this,{uniforms:!0,directParams:!0}),normalMap:new gz(this,Zz),physical:new qz(this,{uniforms:!0,directParams:!0}),PCSS:new oz(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshPhysicalBuilder\\\\\\\"}usedAssembler(){return jn.GL_MESH_PHYSICAL}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}createMaterial(){const t=super.createMaterial();return t.isMeshStandardMaterial=!0,t.isMeshPhysicalMaterial=!0,t}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),YB.update(this),this.compileIfRequired(),this.setMaterial(this.material)}}const ek={directParams:!0};class nk extends(vB(UB(QD(dB(Vz(fz(IB(Uz(QB(vz(uz(SB(MB(TB(VB(fB(uB(ua)))))))))))))))))){}const ik=new nk;class sk extends $D{constructor(){super(...arguments),this.paramsConfig=ik,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,ek),aoMap:new CB(this,ek),bumpMap:new dz(this,ek),displacementMap:new yz(this,ek),emissiveMap:new tz(this,ek),envMap:new Gz(this,ek),lightMap:new FB(this,ek),map:new AB(this,ek),metalnessRoughnessMap:new Hz(this,ek),normalMap:new gz(this,ek)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshStandard\\\\\\\"}createMaterial(){return new ws.a({vertexColors:!1,side:w.H,color:16777215,opacity:1,metalness:1,roughness:0})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),GB.update(this),this.setMaterial(this.material)}}const rk={uniforms:!0};class ok extends(rz(cB(XB(QD(aB(dB(Vz(fz(IB(Uz(QB(vz(uz(SB(MB(TB(VB(sB(uB(ua)))))))))))))))))))){}const ak=new ok;class lk extends lB{constructor(){super(...arguments),this.paramsConfig=ak,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,rk),aoMap:new CB(this,rk),bumpMap:new dz(this,rk),displacementMap:new yz(this,rk),emissiveMap:new tz(this,rk),envMap:new Gz(this,rk),lightMap:new FB(this,rk),map:new AB(this,rk),metalnessRoughnessMap:new Hz(this,rk),normalMap:new gz(this,rk),PCSS:new oz(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshStandardBuilder\\\\\\\"}usedAssembler(){return jn.GL_MESH_STANDARD}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),YB.update(this),this.compileIfRequired(),this.setMaterial(this.material)}}const ck=U.meshphong_frag.slice(0,U.meshphong_frag.indexOf(\\\\\\\"void main() {\\\\\\\")),hk=U.meshphong_frag.slice(U.meshphong_frag.indexOf(\\\\\\\"void main() {\\\\\\\")),uk={uniforms:I.merge([H.phong.uniforms,{thicknessMap:{value:null},thicknessColor:{value:new D.a(16777215)},thicknessDistortion:{value:.1},thicknessAmbient:{value:0},thicknessAttenuation:{value:.1},thicknessPower:{value:2},thicknessScale:{value:10}}]),vertexShader:[\\\\\\\"#define USE_UV\\\\\\\",U.meshphong_vert].join(\\\\\\\"\\\\n\\\\\\\"),fragmentShader:[\\\\\\\"#define USE_UV\\\\\\\",\\\\\\\"#define SUBSURFACE\\\\\\\",ck,\\\\\\\"uniform sampler2D thicknessMap;\\\\\\\",\\\\\\\"uniform float thicknessPower;\\\\\\\",\\\\\\\"uniform float thicknessScale;\\\\\\\",\\\\\\\"uniform float thicknessDistortion;\\\\\\\",\\\\\\\"uniform float thicknessAmbient;\\\\\\\",\\\\\\\"uniform float thicknessAttenuation;\\\\\\\",\\\\\\\"uniform vec3 thicknessColor;\\\\\\\",\\\\\\\"void RE_Direct_Scattering(const in IncidentLight directLight, const in vec2 uv, const in GeometricContext geometry, inout ReflectedLight reflectedLight) {\\\\\\\",\\\\\\\"\\\\tvec3 thickness = thicknessColor * texture2D(thicknessMap, uv).r;\\\\\\\",\\\\\\\"\\\\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * thicknessDistortion));\\\\\\\",\\\\\\\"\\\\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), thicknessPower) * thicknessScale;\\\\\\\",\\\\\\\"\\\\tvec3 scatteringIllu = (scatteringDot + thicknessAmbient) * thickness;\\\\\\\",\\\\\\\"\\\\treflectedLight.directDiffuse += scatteringIllu * thicknessAttenuation * directLight.color;\\\\\\\",\\\\\\\"}\\\\\\\",hk.replace(\\\\\\\"#include <lights_fragment_begin>\\\\\\\",(dk=U.lights_fragment_begin,pk=\\\\\\\"RE_Direct( directLight, geometry, material, reflectedLight );\\\\\\\",_k=[\\\\\\\"RE_Direct( directLight, geometry, material, reflectedLight );\\\\\\\",\\\\\\\"#if defined( SUBSURFACE ) && defined( USE_UV )\\\\\\\",\\\\\\\" RE_Direct_Scattering(directLight, vUv, geometry, reflectedLight);\\\\\\\",\\\\\\\"#endif\\\\\\\"].join(\\\\\\\"\\\\n\\\\\\\"),dk.split(pk).join(_k)))].join(\\\\\\\"\\\\n\\\\\\\")};var dk,pk,_k;function mk(t){return{cook:!1,callback:(e,n)=>{xk.PARAM_CALLBACK_update_uniformColor(e,n,t)}}}function fk(t){return{cook:!1,callback:(e,n)=>{xk.PARAM_CALLBACK_update_uniformN(e,n,t)}}}const gk={uniforms:!0};class vk extends(vB(XB(QD(dB(MB(TB(VB(function(t){return class extends t{constructor(){var t;super(...arguments),this.diffuse=ha.COLOR([1,1,1],{...mk(\\\\\\\"diffuse\\\\\\\")}),this.shininess=ha.FLOAT(1,{range:[0,1e3]}),this.thicknessMap=ha.NODE_PATH(vi.EMPTY,{nodeSelection:{context:ts.COP},...(t=\\\\\\\"thicknessMap\\\\\\\",{cook:!1,callback:(e,n)=>{xk.PARAM_CALLBACK_update_uniformTexture(e,n,t)}})}),this.thicknessColor=ha.COLOR([.5,.3,0],{...mk(\\\\\\\"thicknessColor\\\\\\\")}),this.thicknessDistortion=ha.FLOAT(.1,{...fk(\\\\\\\"thicknessDistortion\\\\\\\")}),this.thicknessAmbient=ha.FLOAT(.4,{...fk(\\\\\\\"thicknessAmbient\\\\\\\")}),this.thicknessAttenuation=ha.FLOAT(.8,{...fk(\\\\\\\"thicknessAttenuation\\\\\\\")}),this.thicknessPower=ha.FLOAT(2,{range:[0,10],...fk(\\\\\\\"thicknessPower\\\\\\\")}),this.thicknessScale=ha.FLOAT(16,{range:[0,100],...fk(\\\\\\\"thicknessScale\\\\\\\")})}}}(uB(ua)))))))))){}const yk=new vk;class xk extends $D{constructor(){super(...arguments),this.paramsConfig=yk,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,gk),map:new AB(this,gk)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshSubsurfaceScattering\\\\\\\"}createMaterial(){const t=I.clone(uk.uniforms),e=new F({uniforms:t,vertexShader:uk.vertexShader,fragmentShader:uk.fragmentShader,lights:!0});return e.extensions.derivatives=!0,e}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();yB.update(this),YB.update(this),this.update_map(this.p.thicknessMap,\\\\\\\"thicknessMap\\\\\\\"),this.material.uniforms.diffuse.value.copy(this.pv.diffuse),this.material.uniforms.shininess.value=this.pv.shininess,this.material.uniforms.thicknessColor.value.copy(this.pv.thicknessColor),this.material.uniforms.thicknessDistortion.value=this.pv.thicknessDistortion,this.material.uniforms.thicknessAmbient.value=this.pv.thicknessAmbient,this.material.uniforms.thicknessAttenuation.value=this.pv.thicknessAttenuation,this.material.uniforms.thicknessPower.value=this.pv.thicknessPower,this.material.uniforms.thicknessScale.value=this.pv.thicknessScale,this.setMaterial(this.material)}static PARAM_CALLBACK_update_uniformN(t,e,n){t.material.uniforms[n].value=e.value}static PARAM_CALLBACK_update_uniformColor(t,e,n){e.parent_param&&t.material.uniforms[n].value.copy(e.parent_param.value)}static PARAM_CALLBACK_update_uniformTexture(t,e,n){t.update_map(e,n)}async update_map(t,e){const n=t.value.nodeWithContext(ts.COP);n||(this.material.uniforms[e].value=null);const i=n,s=await i.compute();this.material.uniforms[e].value=s.texture()}}function bk(t){return class extends t{constructor(){super(...arguments),this.useGradientMap=ha.BOOLEAN(0,xB(wk)),this.gradientMap=ha.NODE_PATH(vi.EMPTY,bB(wk,\\\\\\\"useGradientMap\\\\\\\"))}}}O.a;bk(ua);class wk extends wB{constructor(t,e){super(t,e),this.node=t}initializeNode(){this.add_hooks(this.node.p.useGradientMap,this.node.p.gradientMap)}async update(){this._update(this.node.material,\\\\\\\"gradientMap\\\\\\\",this.node.p.useGradientMap,this.node.p.gradientMap)}static async update(t){t.controllers.gradientMap.update()}}const Tk={directParams:!0};class Ak extends(vB(UB(QD(dB(fz(IB(bk(QB(vz(uz(SB(MB(TB(VB(fB(uB(ua))))))))))))))))){}const Mk=new Ak;class Ek extends $D{constructor(){super(...arguments),this.paramsConfig=Mk,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,Tk),aoMap:new CB(this,Tk),bumpMap:new dz(this,Tk),displacementMap:new yz(this,Tk),emissiveMap:new tz(this,Tk),gradientMap:new wk(this,Tk),lightMap:new FB(this,Tk),map:new AB(this,Tk),normalMap:new gz(this,Tk)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"meshToon\\\\\\\"}createMaterial(){return new Xf({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),yB.update(this),GB.update(this),this.setMaterial(this.material)}}const Sk={directParams:!0};class Ck extends(cB(QD(dB(MB(TB(VB(fB(function(t){return class extends t{constructor(){super(...arguments),this.size=ha.FLOAT(1),this.sizeAttenuation=ha.BOOLEAN(1)}}}(uB(ua)))))))))){}const Nk=new Ck;class Lk extends $D{constructor(){super(...arguments),this.paramsConfig=Nk,this.controllers={advancedCommon:new tB(this),alphaMap:new EB(this,Sk),map:new AB(this,Sk)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"points\\\\\\\"}createMaterial(){return new bs.a({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),hB.update(this),this.material.size=this.pv.size,this.material.sizeAttenuation=this.pv.sizeAttenuation,this.setMaterial(this.material)}}class Ok extends(cB(QD(aB(dB(sB(uB(ua))))))){}const Pk=new Ok;class Rk extends lB{constructor(){super(...arguments),this.paramsConfig=Pk,this.controllers={advancedCommon:new tB(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"pointsBuilder\\\\\\\"}usedAssembler(){return jn.GL_POINTS}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();rB.update(this),hB.update(this),this.compileIfRequired(),this.setMaterial(this.material)}}class Ik extends(QD(fB(ua))){}const Fk=new Ik;class Dk extends $D{constructor(){super(...arguments),this.paramsConfig=Fk,this.controllers={advancedCommon:new tB(this)},this.controllerNames=Object.keys(this.controllers)}static type(){return\\\\\\\"shadow\\\\\\\"}createMaterial(){return new Hf({vertexColors:!1,side:w.H,color:16777215,opacity:1})}initializeNode(){this.params.onParamsCreated(\\\\\\\"init controllers\\\\\\\",(()=>{for(let t of this.controllerNames)this.controllers[t].initializeNode()}))}async cook(){for(let t of this.controllerNames)this.controllers[t].update();gB.update(this),this.setMaterial(this.material)}}class Bk extends B.a{constructor(){const t=Bk.SkyShader,e=new F({name:\\\\\\\"SkyShader\\\\\\\",fragmentShader:t.fragmentShader,vertexShader:t.vertexShader,uniforms:I.clone(t.uniforms),side:w.i,depthWrite:!1});super(new N(1,1,1),e)}}Bk.prototype.isSky=!0,Bk.SkyShader={uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new p.a},up:{value:new p.a(0,1,0)}},vertexShader:\\\\\\\"\\\\n\\\\t\\\\tuniform vec3 sunPosition;\\\\n\\\\t\\\\tuniform float rayleigh;\\\\n\\\\t\\\\tuniform float turbidity;\\\\n\\\\t\\\\tuniform float mieCoefficient;\\\\n\\\\t\\\\tuniform vec3 up;\\\\n\\\\n\\\\t\\\\tvarying vec3 vWorldPosition;\\\\n\\\\t\\\\tvarying vec3 vSunDirection;\\\\n\\\\t\\\\tvarying float vSunfade;\\\\n\\\\t\\\\tvarying vec3 vBetaR;\\\\n\\\\t\\\\tvarying vec3 vBetaM;\\\\n\\\\t\\\\tvarying float vSunE;\\\\n\\\\n\\\\t\\\\t// constants for atmospheric scattering\\\\n\\\\t\\\\tconst float e = 2.71828182845904523536028747135266249775724709369995957;\\\\n\\\\t\\\\tconst float pi = 3.141592653589793238462643383279502884197169;\\\\n\\\\n\\\\t\\\\t// wavelength of used primaries, according to preetham\\\\n\\\\t\\\\tconst vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );\\\\n\\\\t\\\\t// this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function:\\\\n\\\\t\\\\t// (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn))\\\\n\\\\t\\\\tconst vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );\\\\n\\\\n\\\\t\\\\t// mie stuff\\\\n\\\\t\\\\t// K coefficient for the primaries\\\\n\\\\t\\\\tconst float v = 4.0;\\\\n\\\\t\\\\tconst vec3 K = vec3( 0.686, 0.678, 0.666 );\\\\n\\\\t\\\\t// MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K\\\\n\\\\t\\\\tconst vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );\\\\n\\\\n\\\\t\\\\t// earth shadow hack\\\\n\\\\t\\\\t// cutoffAngle = pi / 1.95;\\\\n\\\\t\\\\tconst float cutoffAngle = 1.6110731556870734;\\\\n\\\\t\\\\tconst float steepness = 1.5;\\\\n\\\\t\\\\tconst float EE = 1000.0;\\\\n\\\\n\\\\t\\\\tfloat sunIntensity( float zenithAngleCos ) {\\\\n\\\\t\\\\t\\\\tzenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );\\\\n\\\\t\\\\t\\\\treturn EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec3 totalMie( float T ) {\\\\n\\\\t\\\\t\\\\tfloat c = ( 0.2 * T ) * 10E-18;\\\\n\\\\t\\\\t\\\\treturn 0.434 * c * MieConst;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\tvWorldPosition = worldPosition.xyz;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\tgl_Position.z = gl_Position.w; // set z to camera.far\\\\n\\\\n\\\\t\\\\t\\\\tvSunDirection = normalize( sunPosition );\\\\n\\\\n\\\\t\\\\t\\\\tvSunE = sunIntensity( dot( vSunDirection, up ) );\\\\n\\\\n\\\\t\\\\t\\\\tvSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\tfloat rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );\\\\n\\\\n\\\\t\\\\t\\\\t// extinction (absorbtion + out scattering)\\\\n\\\\t\\\\t\\\\t// rayleigh coefficients\\\\n\\\\t\\\\t\\\\tvBetaR = totalRayleigh * rayleighCoefficient;\\\\n\\\\n\\\\t\\\\t\\\\t// mie coefficients\\\\n\\\\t\\\\t\\\\tvBetaM = totalMie( turbidity ) * mieCoefficient;\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\t\\\\tvarying vec3 vWorldPosition;\\\\n\\\\t\\\\tvarying vec3 vSunDirection;\\\\n\\\\t\\\\tvarying float vSunfade;\\\\n\\\\t\\\\tvarying vec3 vBetaR;\\\\n\\\\t\\\\tvarying vec3 vBetaM;\\\\n\\\\t\\\\tvarying float vSunE;\\\\n\\\\n\\\\t\\\\tuniform float mieDirectionalG;\\\\n\\\\t\\\\tuniform vec3 up;\\\\n\\\\n\\\\t\\\\tconst vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );\\\\n\\\\n\\\\t\\\\t// constants for atmospheric scattering\\\\n\\\\t\\\\tconst float pi = 3.141592653589793238462643383279502884197169;\\\\n\\\\n\\\\t\\\\tconst float n = 1.0003; // refractive index of air\\\\n\\\\t\\\\tconst float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius)\\\\n\\\\n\\\\t\\\\t// optical length at zenith for molecules\\\\n\\\\t\\\\tconst float rayleighZenithLength = 8.4E3;\\\\n\\\\t\\\\tconst float mieZenithLength = 1.25E3;\\\\n\\\\t\\\\t// 66 arc seconds -> degrees, and the cosine of that\\\\n\\\\t\\\\tconst float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\\\\n\\\\n\\\\t\\\\t// 3.0 / ( 16.0 * pi )\\\\n\\\\t\\\\tconst float THREE_OVER_SIXTEENPI = 0.05968310365946075;\\\\n\\\\t\\\\t// 1.0 / ( 4.0 * pi )\\\\n\\\\t\\\\tconst float ONE_OVER_FOURPI = 0.07957747154594767;\\\\n\\\\n\\\\t\\\\tfloat rayleighPhase( float cosTheta ) {\\\\n\\\\t\\\\t\\\\treturn THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tfloat hgPhase( float cosTheta, float g ) {\\\\n\\\\t\\\\t\\\\tfloat g2 = pow( g, 2.0 );\\\\n\\\\t\\\\t\\\\tfloat inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );\\\\n\\\\t\\\\t\\\\treturn ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec3 direction = normalize( vWorldPosition - cameraPos );\\\\n\\\\n\\\\t\\\\t\\\\t// optical length\\\\n\\\\t\\\\t\\\\t// cutoff angle at 90 to avoid singularity in next formula.\\\\n\\\\t\\\\t\\\\tfloat zenithAngle = acos( max( 0.0, dot( up, direction ) ) );\\\\n\\\\t\\\\t\\\\tfloat inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );\\\\n\\\\t\\\\t\\\\tfloat sR = rayleighZenithLength * inverse;\\\\n\\\\t\\\\t\\\\tfloat sM = mieZenithLength * inverse;\\\\n\\\\n\\\\t\\\\t\\\\t// combined extinction factor\\\\n\\\\t\\\\t\\\\tvec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );\\\\n\\\\n\\\\t\\\\t\\\\t// in scattering\\\\n\\\\t\\\\t\\\\tfloat cosTheta = dot( direction, vSunDirection );\\\\n\\\\n\\\\t\\\\t\\\\tfloat rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );\\\\n\\\\t\\\\t\\\\tvec3 betaRTheta = vBetaR * rPhase;\\\\n\\\\n\\\\t\\\\t\\\\tfloat mPhase = hgPhase( cosTheta, mieDirectionalG );\\\\n\\\\t\\\\t\\\\tvec3 betaMTheta = vBetaM * mPhase;\\\\n\\\\n\\\\t\\\\t\\\\tvec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );\\\\n\\\\t\\\\t\\\\tLin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );\\\\n\\\\n\\\\t\\\\t\\\\t// nightsky\\\\n\\\\t\\\\t\\\\tfloat theta = acos( direction.y ); // elevation --\\\\x3e y-axis, [-pi/2, pi/2]\\\\n\\\\t\\\\t\\\\tfloat phi = atan( direction.z, direction.x ); // azimuth --\\\\x3e x-axis [-pi/2, pi/2]\\\\n\\\\t\\\\t\\\\tvec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );\\\\n\\\\t\\\\t\\\\tvec3 L0 = vec3( 0.1 ) * Fex;\\\\n\\\\n\\\\t\\\\t\\\\t// composition + solar disc\\\\n\\\\t\\\\t\\\\tfloat sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );\\\\n\\\\t\\\\t\\\\tL0 += ( vSunE * 19000.0 * Fex ) * sundisk;\\\\n\\\\n\\\\t\\\\t\\\\tvec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );\\\\n\\\\n\\\\t\\\\t\\\\tvec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( retColor, 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\t#include <tonemapping_fragment>\\\\n\\\\t\\\\t\\\\t#include <encodings_fragment>\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const zk=new class extends ua{constructor(){super(...arguments),this.turbidity=ha.FLOAT(2,{range:[0,20]}),this.rayleigh=ha.FLOAT(1,{range:[0,4]}),this.mieCoefficient=ha.FLOAT(.005),this.mieDirectional=ha.FLOAT(.8),this.inclination=ha.FLOAT(.5),this.azimuth=ha.FLOAT(.25),this.up=ha.VECTOR3([0,1,0])}};class kk extends $D{constructor(){super(...arguments),this.paramsConfig=zk}static type(){return\\\\\\\"sky\\\\\\\"}createMaterial(){const t=(new Bk).material;return t.depthWrite=!0,t}async cook(){const t=this.material.uniforms;t.turbidity.value=this.pv.turbidity,t.rayleigh.value=this.pv.rayleigh,t.mieCoefficient.value=this.pv.mieCoefficient,t.mieDirectionalG.value=this.pv.mieDirectional,t.up.value.copy(this.pv.up);const e=Math.PI*(this.pv.inclination-.5),n=2*Math.PI*(this.pv.azimuth-.5);t.sunPosition.value.x=Math.cos(n),t.sunPosition.value.y=Math.sin(n)*Math.sin(e),t.sunPosition.value.z=Math.sin(n)*Math.cos(e),this.setMaterial(this.material)}}var Uk=\\\\\\\"precision highp float;\\\\nprecision highp int;\\\\n\\\\nvarying vec3 vPw;\\\\n\\\\n#include <common>\\\\n\\\\nvoid main()\\\\t{\\\\n\\\\n\\\\t// start builder body code\\\\n\\\\n\\\\tvPw = position;\\\\n\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n}\\\\\\\",Gk=\\\\\\\"precision highp float;\\\\nprecision highp int;\\\\n\\\\n#include <common>\\\\n\\\\n#define DIR_LIGHTS_COUNT 1\\\\n#define MAX_STEPS_COUNT 4096\\\\n\\\\nuniform vec3 u_Color;\\\\nuniform float u_VolumeDensity;\\\\nuniform float u_ShadowDensity;\\\\nuniform float u_StepSize;\\\\nuniform vec3 u_BoundingBoxMin;\\\\nuniform vec3 u_BoundingBoxMax;\\\\n//const int u_PointsCount = 3;\\\\n//uniform vec3 u_Points[3];\\\\nuniform sampler2D u_Map;\\\\n\\\\n//const int u_DirectionalLightsCount = 1;\\\\nuniform vec3 u_DirectionalLightDirection; //[DIR_LIGHTS_COUNT];\\\\n\\\\nvarying vec3 vPw;\\\\n// varying vec3 vN;\\\\n// varying vec2 vUV;\\\\n//varying vec3 vPCameraSpace;\\\\n// varying vec4 vCd;\\\\n\\\\nvec3 normalize_in_bbox(vec3 point){\\\\n\\\\n\\\\tvec3 min = u_BoundingBoxMin;\\\\n\\\\tvec3 max = u_BoundingBoxMax;\\\\n\\\\n\\\\treturn vec3(\\\\n\\\\t\\\\t(point.x - min.x) / (max.x - min.x),\\\\n\\\\t\\\\t(point.y - min.y) / (max.y - min.y),\\\\n\\\\t\\\\t(point.z - min.z) / (max.z - min.z)\\\\n\\\\t);\\\\n}\\\\n\\\\nbool is_inside_bbox(vec3 Pw){\\\\n\\\\n\\\\tvec3 min = u_BoundingBoxMin;\\\\n\\\\tvec3 max = u_BoundingBoxMax;\\\\n\\\\n\\\\treturn (\\\\n\\\\t\\\\tPw.x > min.x &&\\\\n\\\\t\\\\tPw.y > min.y &&\\\\n\\\\t\\\\tPw.z > min.z &&\\\\n\\\\n\\\\t\\\\tPw.x < max.x &&\\\\n\\\\t\\\\tPw.y < max.y &&\\\\n\\\\t\\\\tPw.z < max.z\\\\n\\\\t\\\\t);\\\\n}\\\\n\\\\nfloat density_to_opacity(float density, float step_size){\\\\n\\\\tfloat curent_density = density;\\\\n\\\\tcurent_density = max(0.0, curent_density);\\\\n\\\\n\\\\tfloat opacity = (1.0-exp(-curent_density * step_size));\\\\n\\\\treturn max(opacity,0.0);\\\\n}\\\\n\\\\nfloat density_function(vec3 position_for_step){\\\\n\\\\tfloat density = 1.0;\\\\n\\\\t// start builder body code\\\\n\\\\n\\\\treturn density;\\\\n}\\\\n\\\\nvec4 raymarch_light(vec3 ray_dir, vec3 start_pos){\\\\n\\\\n\\\\tfloat step_size = u_StepSize;\\\\n\\\\tvec3 step_vector = ray_dir * step_size;\\\\n\\\\n\\\\tvec3 current_pos = start_pos + step_vector*rand(start_pos.x*ray_dir.xy);\\\\n\\\\tfloat opacity = 0.0;\\\\n\\\\tfor(int i=0; i<MAX_STEPS_COUNT; i++){\\\\n\\\\t\\\\tif(opacity >= 0.99){ break; }\\\\n\\\\n\\\\t\\\\tif( is_inside_bbox(current_pos) ){\\\\n\\\\n\\\\t\\\\t\\\\tfloat density = density_function(current_pos) * u_ShadowDensity;\\\\n\\\\t\\\\t\\\\topacity += density_to_opacity(density, step_size);\\\\n\\\\t\\\\t\\\\tcurrent_pos += step_vector;\\\\n\\\\n\\\\t\\\\t}else{\\\\n\\\\t\\\\t\\\\tbreak;\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n\\\\n\\\\tvec3 light_color = vec3(1.0, 1.0, 1.0) * u_Color;\\\\n\\\\tlight_color *= (1.0-opacity);\\\\n\\\\treturn vec4(light_color, 1.0-opacity);\\\\n}\\\\n\\\\nvec4 raymarch_bbox(vec3 start_pos, vec3 ray_dir){\\\\n\\\\n\\\\tfloat step_size = u_StepSize;\\\\n\\\\tvec3 step_vector = ray_dir * step_size;\\\\n\\\\n\\\\tvec3 current_pos = start_pos - step_vector*rand(ray_dir.xz);\\\\n\\\\tfloat opacity = 0.0;\\\\n\\\\tvec3 color = vec3(0.0, 0.0, 0.0);\\\\n\\\\tfloat steps_count = 0.0;\\\\n\\\\tbool was_inside_bbox = false;\\\\n\\\\tfor(int i=0; i<MAX_STEPS_COUNT; i++){\\\\n\\\\t\\\\tif(opacity >= 0.99){ break; }\\\\n\\\\n\\\\t\\\\tif( i==0 || is_inside_bbox(current_pos) ){\\\\n\\\\t\\\\t\\\\twas_inside_bbox = true;\\\\n\\\\n\\\\t\\\\t\\\\tfloat density = density_function(current_pos) * u_VolumeDensity;\\\\n\\\\t\\\\t\\\\topacity += density_to_opacity(density, step_size);\\\\n\\\\n\\\\t\\\\t\\\\tvec4 light_color = vec4(0.0,0.0,0.0,1.0); //vec4(1.0,1.0,1.0,1.0);\\\\n\\\\t\\\\t\\\\t// vec3 directional_light_direction;\\\\n\\\\t\\\\t\\\\t// for ( int l = 0; l < DIR_LIGHTS_COUNT; l++ ) {\\\\n\\\\t\\\\t\\\\t// directional_light_direction = u_DirectionalLightsDirection[ l ];\\\\n\\\\t\\\\t\\\\tlight_color += raymarch_light(-u_DirectionalLightDirection, current_pos);\\\\n\\\\t\\\\t\\\\t// }\\\\n\\\\t\\\\t\\\\tfloat blend = 1.0-opacity;\\\\n\\\\t\\\\t\\\\tcolor = mix( color.xyz, light_color.xyz, vec3(blend, blend, blend) );\\\\n\\\\t\\\\t\\\\tsteps_count += 1.0;\\\\n\\\\n\\\\t\\\\t}else{\\\\n\\\\t\\\\t\\\\tif (was_inside_bbox) { break; }\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\tcurrent_pos += step_vector;\\\\n\\\\t}\\\\n\\\\n\\\\treturn vec4(color, opacity);\\\\n\\\\t// steps_count = steps_count / 5.0;\\\\n\\\\t// return vec4(vec3(steps_count, steps_count, steps_count), 1.0);\\\\n}\\\\n\\\\nvoid main()\\\\t{\\\\n\\\\n\\\\tvec3 eye = normalize(vPw - cameraPosition);\\\\n\\\\t// we can start from the bbox, as we are front facing\\\\n\\\\tvec3 start_pos = vPw;\\\\n\\\\n\\\\tvec4 color = raymarch_bbox(start_pos, eye);\\\\n\\\\tgl_FragColor = color;\\\\n\\\\n}\\\\\\\";const Vk={u_Color:{value:new D.a(1,1,1)},u_VolumeDensity:{value:5},u_ShadowDensity:{value:2},u_StepSize:{value:.01},u_BoundingBoxMin:{value:new p.a(-1,-1,-1)},u_BoundingBoxMax:{value:new p.a(1,1,1)},u_DirectionalLightDirection:{value:new p.a(-1,-1,-1)}};function Hk(t){return class extends t{constructor(){super(...arguments),this.color=ha.COLOR([1,1,1]),this.stepSize=ha.FLOAT(.01),this.density=ha.FLOAT(1),this.shadowDensity=ha.FLOAT(1),this.lightDir=ha.VECTOR3([-1,-1,-1])}}}Hk(ua);class jk{constructor(t){this.node=t}static render_hook(t,e,n,i,s,r,o){if(o){this._object_bbox.setFromObject(o);const t=s;t.uniforms.u_BoundingBoxMin.value.copy(this._object_bbox.min),t.uniforms.u_BoundingBoxMax.value.copy(this._object_bbox.max)}}update_uniforms_from_params(){const t=this.node.material.uniforms;t.u_Color.value.copy(this.node.pv.color),t.u_StepSize.value=this.node.pv.stepSize,t.u_VolumeDensity.value=this.node.pv.density,t.u_ShadowDensity.value=this.node.pv.shadowDensity;const e=t.u_DirectionalLightDirection.value,n=this.node.pv.lightDir;e&&(e.x=n.x,e.y=n.y,e.z=n.z)}}jk._object_bbox=new Ry.a;class Wk extends(Hk(ua)){}const qk=new Wk;class Xk extends $D{constructor(){super(...arguments),this.paramsConfig=qk,this._volume_controller=new jk(this)}static type(){return\\\\\\\"volume\\\\\\\"}createMaterial(){const t=new F({vertexShader:Uk,fragmentShader:Gk,side:w.H,transparent:!0,depthTest:!0,uniforms:I.clone(Vk)});return yr.add_user_data_render_hook(t,jk.render_hook.bind(jk)),t}initializeNode(){}async cook(){this._volume_controller.update_uniforms_from_params(),this.setMaterial(this.material)}}class Yk extends(aB(Hk(ua))){}const $k=new Yk;class Jk extends lB{constructor(){super(...arguments),this.paramsConfig=$k,this._volume_controller=new jk(this)}static type(){return\\\\\\\"volumeBuilder\\\\\\\"}usedAssembler(){return jn.GL_VOLUME}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}initializeNode(){}async cook(){this._volume_controller.update_uniforms_from_params(),this.compileIfRequired(),this.setMaterial(this.material)}}class Zk extends aa{static context(){return ts.MAT}cook(){this.cookController.endCook()}}class Kk extends Zk{}class Qk extends Kk{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class tU extends Kk{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class eU extends Kk{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class nU extends Kk{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class iU extends Zk{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class sU extends Kk{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}var rU=n(87);const oU=\\\\\\\"parent object\\\\\\\",aU=[oU,oU,oU,oU];var lU;!function(t){t[t.MANAGER=0]=\\\\\\\"MANAGER\\\\\\\",t[t.CAMERA=2]=\\\\\\\"CAMERA\\\\\\\",t[t.LIGHT=3]=\\\\\\\"LIGHT\\\\\\\"}(lU||(lU={}));class cU extends aa{constructor(){super(...arguments),this.renderOrder=lU.MANAGER,this._children_group=this._create_children_group(),this._attachableToHierarchy=!0,this._used_in_scene=!0}static context(){return ts.OBJ}static displayedInputNames(){return aU}_create_children_group(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}attachableToHierarchy(){return this._attachableToHierarchy}usedInScene(){return this._used_in_scene}addObjectToParent(t){this.attachableToHierarchy()&&t.add(this.object)}removeObjectFromParent(){if(this.attachableToHierarchy()){const t=this.object.parent;t&&t.remove(this.object)}}initializeBaseNode(){this._object=this._create_object_with_attributes(),this.nameController.add_post_set_fullPath_hook(this.set_object_name.bind(this)),this.set_object_name()}get children_group(){return this._children_group}get object(){return this._object}_create_object_with_attributes(){const t=this.createObject();return t.node=this,t.add(this._children_group),t}set_object_name(){this._object&&(this._object.name=this.path(),this._children_group.name=`${this.path()}:parented_outputs`)}createObject(){const t=new Q.a;return t.matrixAutoUpdate=!1,t}isDisplayNodeCooking(){if(this.displayNodeController){const t=this.displayNodeController.displayNode();if(t)return t.cookController.isCooking()}return!1}isDisplayed(){var t,e;return(null===(e=null===(t=this.flags)||void 0===t?void 0:t.display)||void 0===e?void 0:e.active())||!1}}class hU extends cU{constructor(){super(...arguments),this.flags=new Di(this),this.renderOrder=lU.LIGHT,this._color_with_intensity=new D.a(0),this._used_in_scene=!0,this._cook_main_without_inputs_when_dirty_bound=this._cook_main_without_inputs_when_dirty.bind(this)}get light(){return this._light}initializeBaseNode(){super.initializeBaseNode(),this._light=this.createLight(),this.object.add(this._light),this.flags.display.onUpdate((()=>{this._updateLightAttachment()})),this.dirtyController.addPostDirtyHook(\\\\\\\"_cook_main_without_inputs_when_dirty\\\\\\\",this._cook_main_without_inputs_when_dirty_bound)}async _cook_main_without_inputs_when_dirty(){await this.cookController.cookMainWithoutInputs()}set_object_name(){super.set_object_name(),this._light&&(this._light.name=`${this.path()}:light`)}_updateLightAttachment(){this.flags.display.active()?(this.object.add(this.light),this._cook_main_without_inputs_when_dirty()):this.object.remove(this.light)}cook(){this.updateLightParams(),this.updateShadowParams(),this.cookController.endCook()}updateLightParams(){}updateShadowParams(){}}const uU=new class extends ua{constructor(){super(...arguments),this.color=ha.COLOR([1,1,1],{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(1)}};class dU extends hU{constructor(){super(...arguments),this.paramsConfig=uU}static type(){return\\\\\\\"ambientLight\\\\\\\"}createLight(){const t=new rU.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.io.inputs.setCount(0,1)}updateLightParams(){this.light.color=this.pv.color,this.light.intensity=this.pv.intensity}}class pU extends cv.a{constructor(t,e,n=10,i=10){super(t,e),this.type=\\\\\\\"RectAreaLight\\\\\\\",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}pU.prototype.isRectAreaLight=!0;var _U,mU=n(61);class fU{static init(){const t=[1,0,0,2e-5,1,0,0,503905e-9,1,0,0,.00201562,1,0,0,.00453516,1,0,0,.00806253,1,0,0,.0125978,1,0,0,.018141,1,0,0,.0246924,1,0,0,.0322525,1,0,0,.0408213,1,0,0,.0503999,1,0,0,.0609894,1,0,0,.0725906,1,0,0,.0852058,1,0,0,.0988363,1,0,0,.113484,1,0,0,.129153,1,0,0,.145839,1,0,0,.163548,1,0,0,.182266,1,0,0,.201942,1,0,0,.222314,1,0,0,.241906,1,0,0,.262314,1,0,0,.285754,1,0,0,.310159,1,0,0,.335426,1,0,0,.361341,1,0,0,.387445,1,0,0,.412784,1,0,0,.438197,1,0,0,.466966,1,0,0,.49559,1,0,0,.523448,1,0,0,.549938,1,0,0,.57979,1,0,0,.608746,1,0,0,.636185,1,0,0,.664748,1,0,0,.69313,1,0,0,.71966,1,0,0,.747662,1,0,0,.774023,1,0,0,.799775,1,0,0,.825274,1,0,0,.849156,1,0,0,.873248,1,0,0,.89532,1,0,0,.917565,1,0,0,.937863,1,0,0,.958139,1,0,0,.976563,1,0,0,.994658,1,0,0,1.0112,1,0,0,1.02712,1,0,0,1.04189,1,0,0,1.05568,1,0,0,1.06877,1,0,0,1.08058,1,0,0,1.09194,1,0,0,1.10191,1,0,0,1.11161,1,0,0,1.1199,1,0,0,1.12813,.999547,-4.48815e-7,.0224417,199902e-10,.999495,-113079e-10,.0224406,503651e-9,.999496,-452317e-10,.0224406,.00201461,.999496,-101772e-9,.0224406,.00453287,.999495,-180928e-9,.0224406,.00805845,.999497,-282702e-9,.0224406,.0125914,.999496,-407096e-9,.0224406,.0181319,.999498,-554114e-9,.0224406,.02468,.999499,-723768e-9,.0224406,.0322363,.999495,-916058e-9,.0224405,.0408009,.999499,-.00113101,.0224408,.050375,.999494,-.00136863,.0224405,.0609586,.999489,-.00162896,.0224401,.0725537,.999489,-.00191201,.0224414,.0851619,.999498,-.00221787,.0224413,.0987867,.999492,-.00254642,.0224409,.113426,.999507,-.00289779,.0224417,.129088,.999494,-.0032716,.0224386,.145767,.999546,-.0036673,.0224424,.163472,.999543,-.00408166,.0224387,.182182,.999499,-.00450056,.0224338,.201843,.999503,-.00483661,.0224203,.222198,.999546,-.00452928,.022315,.241714,.999508,-.00587403,.0224329,.262184,.999509,-.00638806,.0224271,.285609,.999501,-.00691028,.0224166,.309998,.999539,-.00741979,.0223989,.335262,.999454,-.00786282,.0223675,.361154,.999529,-.00811928,.0222828,.387224,.999503,-.00799941,.0221063,.41252,.999561,-.00952753,.0223057,.438006,.999557,-.0099134,.0222065,.466735,.999541,-.0100935,.0220402,.495332,.999562,-.00996821,.0218067,.523197,.999556,-.0105031,.0217096,.550223,.999561,-.0114191,.0217215,.579498,.999588,-.0111818,.0213357,.608416,.999633,-.0107725,.0208689,.635965,.999527,-.0121671,.0210149,.664476,.999508,-.0116005,.020431,.692786,.999568,-.0115604,.0199791,.719709,.999671,-.0121117,.0197415,.74737,.999688,-.0110769,.0188846,.773692,.99962,-.0122368,.0188452,.799534,.999823,-.0110325,.0178001,.825046,.999599,-.0114923,.0174221,.849075,.999619,-.0105923,.0164345,.872999,.999613,-.0105988,.0158227,.895371,.99964,-.00979861,.0148131,.917364,.99977,-.00967238,.0140721,.938002,.999726,-.00869175,.0129543,.957917,.99973,-.00866872,.0122329,.976557,.999773,-.00731956,.0108958,.994459,.999811,-.00756027,.0102715,1.01118,.999862,-.00583732,.00878781,1.02701,.999835,-.00631438,.00827529,1.04186,.999871,-.00450785,.00674583,1.05569,.999867,-.00486079,.00621041,1.06861,.999939,-.00322072,.00478301,1.08064,.999918,-.00318199,.00406395,1.09181,1.00003,-.00193348,.00280682,1.10207,.999928,-.00153729,.00198741,1.11152,.999933,-623666e-9,917714e-9,1.12009,1,-102387e-11,9.07581e-7,1.12813,.997866,-8.96716e-7,.0448334,199584e-10,.997987,-225945e-10,.0448389,502891e-9,.997987,-903781e-10,.0448388,.00201156,.997985,-203351e-9,.0448388,.00452602,.997986,-361514e-9,.0448388,.00804629,.997987,-56487e-8,.0448389,.0125724,.997988,-813423e-9,.0448389,.0181045,.997984,-.00110718,.0448387,.0246427,.997985,-.00144616,.0448388,.0321875,.997987,-.00183038,.044839,.0407392,.997983,-.00225987,.0448387,.0502986,.997991,-.00273467,.0448389,.0608667,.997984,-.00325481,.0448384,.0724444,.998002,-.00382043,.044839,.0850348,.997997,-.00443145,.0448396,.0986372,.998007,-.00508796,.0448397,.113255,.998008,-.00578985,.04484,.128891,.998003,-.00653683,.0448384,.145548,.997983,-.00732713,.0448358,.163221,.997985,-.00815454,.0448358,.181899,.998005,-.00898985,.0448286,.201533,.998026,-.00964404,.0447934,.221821,.998055,-.00922677,.044611,.241282,.99804,-.0117361,.0448245,.261791,.998048,-.0127628,.0448159,.285181,.998088,-.0138055,.0447996,.30954,.998058,-.0148206,.0447669,.334751,.998099,-.0156998,.044697,.36061,.998116,-.0161976,.0445122,.386603,.998195,-.015945,.0441711,.411844,.998168,-.0183947,.0444255,.43773,.998184,-.0197913,.0443809,.466009,.998251,-.0201426,.0440689,.494574,.998305,-.0198847,.0435632,.522405,.998273,-.0210577,.043414,.549967,.998254,-.0227901,.0433943,.578655,.998349,-.0223108,.0426529,.60758,.99843,-.0223088,.042,.635524,.998373,-.0241141,.0418987,.663621,.998425,-.0231446,.0408118,.691906,.998504,-.0233684,.0400565,.719339,.998443,-.0241652,.0394634,.74643,.99848,-.0228715,.0380002,.773086,.998569,-.023519,.0372322,.798988,.998619,-.0223108,.0356468,.824249,.998594,-.0223105,.034523,.848808,.998622,-.0213426,.0328887,.87227,.998669,-.0207912,.0314374,.895157,.998705,-.0198416,.0296925,.916769,.998786,-.0189168,.0279634,.937773,.998888,-.0178811,.0261597,.957431,.99906,-.0166845,.0242159,.976495,.999038,-.0155464,.0222638,.994169,.999237,-.0141349,.0201967,1.01112,.999378,-.0129324,.0181744,1.02692,.999433,-.0113192,.0159898,1.04174,.999439,-.0101244,.0140385,1.05559,.999614,-.00837456,.0117826,1.06852,.999722,-.00721769,.00983745,1.08069,.999817,-.00554067,.00769002,1.09176,.99983,-.00426961,.005782,1.10211,.999964,-.00273904,.00374503,1.11152,1.00001,-.00136739,.00187176,1.12031,.999946,393227e-10,-28919e-9,1.12804,.995847,-13435e-10,.0671785,19916e-9,.995464,-338387e-10,.0671527,501622e-9,.99547,-135355e-9,.0671531,.00200649,.995471,-30455e-8,.0671532,.00451461,.99547,-541423e-9,.0671531,.008026,.995471,-84598e-8,.0671531,.0125407,.99547,-.00121823,.0671531,.0180589,.99547,-.00165817,.0671531,.0245806,.995463,-.00216583,.0671526,.0321062,.995468,-.00274127,.0671527,.0406366,.995474,-.00338447,.0671534,.0501717,.995473,-.00409554,.0671533,.0607131,.995478,-.00487451,.0671531,.0722618,.995476,-.00572148,.0671532,.0848191,.995477,-.00663658,.0671539,.0983882,.995498,-.00761986,.0671541,.112972,.995509,-.00867094,.0671542,.128568,.995509,-.00978951,.0671531,.145183,.995503,-.0109725,.0671491,.162808,.995501,-.012211,.0671465,.181441,.99553,-.0134565,.0671371,.201015,.99555,-.014391,.0670831,.221206,.99558,-.014351,.0668883,.240813,.995577,-.0173997,.0671055,.261257,.995602,-.0191111,.0671178,.284467,.995623,-.0206705,.0670946,.308765,.995658,-.022184,.0670472,.333905,.995705,-.0234832,.0669417,.359677,.995719,-.0241933,.0666714,.385554,.995786,-.0243539,.066266,.410951,.995887,-.0271866,.0664367,.437163,.995944,-.0296012,.0664931,.464842,.996004,-.0301045,.0660105,.49332,.996128,-.0298311,.0652694,.521131,.996253,-.0316426,.0650739,.549167,.996244,-.0339043,.0649433,.57737,.996309,-.033329,.0638926,.606073,.996417,-.0338935,.0630849,.634527,.996372,-.0353104,.0625083,.66256,.996542,-.0348942,.0611986,.690516,.996568,-.0351614,.060069,.718317,.996711,-.0354317,.0588522,.74528,.996671,-.0349513,.0571902,.772061,.996865,-.0345622,.0555321,.798089,.996802,-.0342566,.0537816,.823178,.996992,-.0330862,.0516095,.847949,.996944,-.0324666,.0495537,.871431,.997146,-.0309544,.0470302,.894357,.997189,-.0299372,.0446043,.916142,.997471,-.0281389,.0418812,.937193,.997515,-.0268702,.0391823,.957,.997812,-.0247166,.0361338,.975936,.998027,-.0233525,.0333945,.99391,.998233,-.0209839,.0301917,1.01075,.998481,-.0194309,.027271,1.02669,.998859,-.0169728,.0240162,1.04173,.99894,-.0152322,.0210517,1.05551,.999132,-.0127497,.0178632,1.06856,.999369,-.0108282,.014787,1.08054,.999549,-.00845886,.0116185,1.09185,.999805,-.0063937,.00867209,1.10207,.99985,-.00414582,.00566823,1.1117,.999912,-.00207443,.00277562,1.12022,1.00001,870226e-10,-53766e-9,1.12832,.991943,-178672e-11,.0893382,198384e-10,.991952,-450183e-10,.089339,499849e-9,.991956,-180074e-9,.0893394,.0019994,.991955,-405167e-9,.0893393,.00449867,.991953,-720298e-9,.0893391,.00799764,.991955,-.00112548,.0893393,.0124964,.991957,-.0016207,.0893395,.0179951,.991958,-.00220601,.0893396,.0244939,.991947,-.00288137,.0893385,.0319929,.991962,-.00364693,.0893399,.0404933,.991965,-.00450264,.0893399,.049995,.99198,-.00544862,.0893411,.0604995,.99197,-.00648491,.0893397,.0720074,.991976,-.00761164,.089341,.0845207,.99198,-.00882891,.0893405,.0980413,.991982,-.0101367,.0893396,.112571,.992008,-.011535,.0893415,.128115,.992026,-.0130228,.0893414,.144672,.992064,-.0145966,.0893418,.162241,.992041,-.0162421,.0893359,.180801,.992086,-.0178888,.0893214,.200302,.992157,-.0190368,.0892401,.220332,.992181,-.0195584,.0890525,.240144,.992175,-.0227257,.0892153,.260728,.99221,-.0254195,.089304,.283473,.99222,-.0274883,.0892703,.307673,.992317,-.0294905,.0892027,.332729,.992374,-.0311861,.0890577,.358387,.992505,-.0320656,.0886994,.384102,.992568,-.0329715,.0883198,.409767,.992675,-.036006,.0883602,.436145,.992746,-.0392897,.0884591,.463217,.992873,-.0399337,.0878287,.491557,.992934,-.040231,.0870108,.519516,.993091,-.0422013,.0865857,.547741,.993259,-.0443503,.0861937,.575792,.993455,-.0446368,.0851187,.604233,.993497,-.0454299,.0840576,.632925,.993694,-.0463296,.0829671,.660985,.993718,-.0470619,.0817185,.688714,.993973,-.0468838,.0800294,.716743,.994207,-.046705,.0781286,.74377,.994168,-.0469698,.0763337,.77042,.9945,-.0456816,.0738184,.796659,.994356,-.0455518,.0715545,.821868,.994747,-.0439488,.0686085,.846572,.994937,-.0430056,.065869,.870435,.995142,-.0413414,.0626446,.893272,.995451,-.0396521,.05929,.915376,.995445,-.0378453,.0558503,.936196,.995967,-.0355219,.0520949,.956376,.996094,-.0335146,.048377,.975327,.996622,-.030682,.0442575,.993471,.996938,-.0285504,.0404693,1.01052,.997383,-.0253399,.0360903,1.02637,.997714,-.0231651,.0322176,1.04139,.998249,-.0198138,.0278433,1.05542,.998596,-.0174337,.0238759,1.06846,.998946,-.0141349,.0195944,1.08056,.99928,-.0115603,.0156279,1.09181,.999507,-.00839065,.0114607,1.10213,.999697,-.005666,.00763325,1.11169,.999869,-.00269902,.00364946,1.12042,1.00001,623836e-10,-319288e-10,1.12832,.987221,-222675e-11,.111332,197456e-10,.98739,-561116e-10,.111351,497563e-9,.987448,-224453e-9,.111357,.00199031,.987441,-505019e-9,.111357,.0044782,.987442,-897816e-9,.111357,.00796129,.987442,-.00140284,.111357,.0124396,.987444,-.00202012,.111357,.0179132,.987442,-.00274964,.111357,.0243824,.987446,-.00359147,.111357,.0318474,.987435,-.00454562,.111356,.0403086,.987461,-.00561225,.111358,.0497678,.987458,-.00679125,.111358,.0602239,.987443,-.0080828,.111356,.0716792,.987476,-.0094872,.111358,.0841364,.98749,-.0110044,.111361,.097597,.987508,-.0126344,.111362,.112062,.987494,-.0143767,.111357,.127533,.987526,-.0162307,.111359,.144015,.987558,-.0181912,.111361,.161502,.987602,-.0202393,.111355,.179979,.987692,-.022273,.111346,.199386,.987702,-.0235306,.111215,.219183,.987789,-.0247628,.111061,.239202,.987776,-.0280668,.111171,.259957,.987856,-.0316751,.111327,.282198,.987912,-.0342468,.111282,.306294,.988,-.0367205,.111198,.331219,.988055,-.0387766,.110994,.356708,.988241,-.0397722,.110547,.382234,.988399,-.0416076,.110198,.408227,.988539,-.0448192,.110137,.434662,.988661,-.0483793,.110143,.461442,.988967,-.0495895,.109453,.489318,.989073,-.0506797,.108628,.517516,.989274,-.0526953,.108003,.545844,.989528,-.054578,.107255,.573823,.989709,-.0561503,.106294,.601944,.989991,-.056866,.104896,.630855,.990392,-.0572914,.103336,.658925,.990374,-.0586224,.10189,.686661,.990747,-.0584764,.099783,.714548,.991041,-.0582662,.0974309,.74186,.991236,-.0584118,.0951678,.768422,.991585,-.0573055,.0921581,.794817,.991984,-.0564241,.0891167,.820336,.9921,-.0553608,.085805,.84493,.992749,-.0533816,.0820354,.868961,.99288,-.0518661,.0782181,.891931,.993511,-.0492492,.0738935,.914186,.993617,-.0471956,.0696402,.93532,.99411,-.044216,.0649659,.95543,.994595,-.0416654,.0603177,.974685,.994976,-.0384314,.0553493,.992807,.995579,-.0353491,.0503942,1.00996,.996069,-.0319787,.0452123,1.02606,.996718,-.028472,.0400112,1.04114,.997173,-.0250789,.0349456,1.05517,.997818,-.0213326,.029653,1.0683,.998318,-.0178509,.024549,1.0805,.998853,-.0141118,.0194197,1.09177,.999218,-.0105914,.0143869,1.1022,.999594,-.00693474,.00943517,1.11175,.99975,-.00340478,.00464051,1.12056,1.00001,109172e-9,-112821e-9,1.12853,.983383,-266524e-11,.133358,196534e-10,.981942,-671009e-10,.133162,494804e-9,.981946,-268405e-9,.133163,.00197923,.981944,-603912e-9,.133163,.00445326,.981941,-.00107362,.133162,.00791693,.981946,-.00167755,.133163,.0123703,.981944,-.00241569,.133162,.0178135,.981945,-.00328807,.133163,.0242466,.981945,-.00429472,.133162,.03167,.981955,-.00543573,.133164,.0400846,.981951,-.00671105,.133163,.0494901,.981968,-.00812092,.133165,.0598886,.981979,-.00966541,.133166,.0712811,.981996,-.0113446,.133168,.083669,.982014,-.0131585,.133169,.0970533,.982011,-.0151073,.133167,.111438,.982062,-.0171906,.133172,.126826,.9821,-.0194067,.133175,.143215,.982149,-.0217502,.133176,.160609,.982163,-.0241945,.133173,.178981,.982247,-.0265907,.133148,.198249,.982291,-.027916,.132974,.217795,.982396,-.0299663,.132868,.238042,.982456,-.0334544,.132934,.258901,.982499,-.0378636,.133137,.280639,.982617,-.0409274,.133085,.304604,.98274,-.0438523,.132985,.329376,.982944,-.0462288,.132728,.354697,.98308,-.0475995,.132228,.380102,.983391,-.0501901,.131924,.406256,.983514,-.0535899,.131737,.432735,.98373,-.0571858,.131567,.459359,.984056,-.0592353,.130932,.486637,.984234,-.0610488,.130092,.51509,.984748,-.0630758,.12923,.543461,.985073,-.0647398,.128174,.571376,.985195,-.0671941,.127133,.599414,.985734,-.0681345,.125576,.628134,.986241,-.0686089,.123639,.656399,.986356,-.0698511,.121834,.684258,.986894,-.0700931,.119454,.711818,.987382,-.0698321,.116718,.739511,.988109,-.0693975,.113699,.766267,.988363,-.0689584,.110454,.792456,.989112,-.0672353,.106602,.81813,.989241,-.0662034,.10267,.842889,.990333,-.0638938,.0981381,.867204,.990591,-.0618534,.0935388,.89038,.991106,-.0593117,.088553,.912576,.991919,-.0562676,.0832187,.934118,.992111,-.0534085,.0778302,.954254,.992997,-.0495459,.0720453,.973722,.993317,-.0463707,.0663458,.991949,.994133,-.0421245,.0601883,1.00936,.994705,-.0384977,.0542501,1.02559,.995495,-.0340956,.0479862,1.04083,.996206,-.030105,.041887,1.05497,.996971,-.0256095,.0355355,1.06824,.997796,-.0213932,.0293655,1.08056,.998272,-.0169612,.0232926,1.09182,.998857,-.0126756,.0172786,1.10219,.99939,-.00832486,.0113156,1.11192,.999752,-.00410826,.00557892,1.12075,1,150957e-9,-119101e-9,1.12885,.975169,-309397e-11,.154669,195073e-10,.975439,-779608e-10,.154712,491534e-9,.975464,-311847e-9,.154716,.00196617,.975464,-701656e-9,.154716,.00442387,.975462,-.0012474,.154715,.0078647,.975461,-.00194906,.154715,.0122886,.975464,-.00280667,.154715,.0176959,.975468,-.00382025,.154716,.0240867,.975471,-.00498985,.154716,.0314612,.975472,-.00631541,.154717,.0398199,.975486,-.00779719,.154718,.0491639,.975489,-.00943505,.154718,.0594932,.975509,-.0112295,.154721,.0708113,.97554,-.0131802,.154724,.0831176,.975557,-.0152876,.154726,.096415,.975585,-.0175512,.154728,.110705,.975605,-.0199713,.154729,.125992,.975645,-.0225447,.154729,.142272,.975711,-.0252649,.154735,.159549,.975788,-.0280986,.154736,.177805,.975872,-.0308232,.154704,.196911,.975968,-.0324841,.154525,.216324,.976063,-.0351281,.154432,.236628,.976157,-.0388618,.15446,.257539,.976204,-.0437704,.154665,.278975,.976358,-.047514,.154652,.302606,.976571,-.0508638,.154535,.327204,.976725,-.0534995,.154221,.352276,.977013,-.0555547,.153737,.377696,.977294,-.0586728,.153403,.403855,.977602,-.0622715,.15312,.430333,.977932,-.0658166,.152755,.456855,.978241,-.0689877,.152233,.483668,.978602,-.0712805,.15132,.512097,.979234,-.0732775,.150235,.540455,.97977,-.075163,.148978,.568486,.979995,-.0778026,.147755,.596524,.98078,-.0791854,.146019,.624825,.981628,-.0799666,.143906,.653403,.982067,-.0808532,.141561,.681445,.98271,-.0816024,.139025,.708918,.983734,-.0812511,.135764,.736594,.98431,-.0806201,.132152,.763576,.985071,-.0801605,.12846,.789797,.98618,-.0784208,.124084,.815804,.986886,-.0766643,.1193,.840869,.987485,-.0747744,.114236,.864952,.988431,-.0716701,.108654,.888431,.988886,-.0691609,.102994,.910963,.990024,-.0654048,.0967278,.932629,.990401,-.0619765,.090384,.95313,.991093,-.0579296,.0837885,.972587,.992018,-.0536576,.0770171,.991184,.992536,-.0493719,.0701486,1.00863,.993421,-.0444813,.062953,1.02494,.993928,-.040008,.0560455,1.04017,.994994,-.0347982,.04856,1.05463,.995866,-.0301017,.0416152,1.06807,.996916,-.0248225,.0342597,1.08039,.997766,-.0199229,.0271668,1.09177,.998479,-.0147422,.0201387,1.10235,.99921,-.00980173,.0131944,1.11206,.999652,-.0047426,.00640712,1.12104,.999998,891673e-10,-10379e-8,1.12906,.967868,-351885e-11,.175947,193569e-10,.968001,-886733e-10,.175972,487782e-9,.96801,-354697e-9,.175973,.00195115,.968012,-798063e-9,.175974,.00439006,.968011,-.00141879,.175973,.00780461,.968011,-.00221686,.175973,.0121948,.968016,-.00319231,.175974,.0175607,.968019,-.00434515,.175974,.0239027,.968018,-.00567538,.175974,.0312208,.968033,-.00718308,.175977,.0395158,.968049,-.00886836,.175979,.0487885,.968047,-.0107312,.175978,.0590394,.968072,-.0127719,.175981,.0702705,.968108,-.0149905,.175986,.0824836,.968112,-.0173866,.175985,.0956783,.968173,-.0199611,.175993,.109862,.96827,-.0227128,.176008,.125033,.968292,-.025639,.17601,.141193,.968339,-.0287299,.176007,.158336,.968389,-.0319399,.176001,.176441,.968501,-.034941,.175962,.195359,.968646,-.0370812,.175793,.214686,.968789,-.0402329,.175708,.234973,.96886,-.0442601,.1757,.255871,.969013,-.049398,.175876,.277238,.969242,-.0539932,.17594,.300326,.969419,-.0577299,.175781,.324702,.969763,-.0605643,.175432,.349527,.970093,-.0634488,.174992,.374976,.970361,-.0670589,.174611,.401097,.970825,-.0708246,.174226,.427496,.971214,-.0742871,.173684,.453858,.971622,-.0782608,.173186,.480637,.972175,-.0813151,.172288,.508655,.972944,-.0832678,.170979,.536973,.973595,-.0855964,.169573,.565138,.974345,-.0882163,.168152,.593222,.975233,-.0901671,.166314,.621201,.976239,-.0912111,.163931,.649919,.977289,-.0916959,.161106,.678011,.978076,-.0927061,.158272,.705717,.979533,-.0925562,.15475,.733228,.980335,-.0918159,.150638,.760454,.981808,-.0908508,.146201,.786918,.983061,-.0896172,.141386,.812953,.984148,-.0871588,.135837,.838281,.985047,-.0850624,.130135,.862594,.986219,-.0818541,.123882,.88633,.987043,-.0784523,.117126,.908952,.988107,-.0749601,.110341,.930744,.988955,-.0703548,.102885,.951728,.989426,-.0662798,.0954167,.971166,.990421,-.0610834,.0876331,.989984,.991032,-.0562936,.0797785,1.00765,.992041,-.0508154,.0718166,1.02434,.992794,-.0454045,.0637125,1.03976,.993691,-.0398194,.0555338,1.05418,.994778,-.0341482,.0473388,1.06772,.995915,-.028428,.0391016,1.08028,.997109,-.022642,.0309953,1.09185,.998095,-.0168738,.0230288,1.10247,.998985,-.0111274,.0150722,1.11229,.999581,-.00543881,.00740605,1.12131,1.00003,162239e-9,-105549e-9,1.12946,.959505,-393734e-11,.196876,191893e-10,.959599,-992157e-10,.196895,483544e-9,.959641,-396868e-9,.196903,.0019342,.959599,-892948e-9,.196895,.00435193,.959603,-.00158747,.196896,.0077368,.959604,-.00248042,.196896,.0120888,.959605,-.00357184,.196896,.0174082,.959605,-.00486169,.196896,.0236949,.959613,-.00635008,.196897,.0309497,.959619,-.00803696,.196898,.0391725,.959636,-.00992255,.196901,.0483649,.959634,-.0120067,.1969,.0585266,.959675,-.0142898,.196906,.0696609,.959712,-.0167717,.196911,.0817678,.959752,-.0194524,.196918,.0948494,.959807,-.0223321,.196925,.10891,.959828,-.0254091,.196924,.123947,.959906,-.0286815,.196934,.139968,.960005,-.0321371,.196944,.156968,.960071,-.0357114,.196936,.17491,.960237,-.0389064,.196882,.193597,.960367,-.041623,.196731,.21285,.960562,-.0452655,.196654,.233075,.960735,-.0496207,.196643,.253941,.960913,-.0549379,.196774,.275278,.961121,-.0603414,.196893,.297733,.96139,-.0644244,.196717,.321877,.961818,-.067556,.196314,.346476,.962175,-.0712709,.195917,.371907,.96255,-.0752848,.1955,.397916,.963164,-.0792073,.195026,.424229,.963782,-.0828225,.194424,.450637,.964306,-.0873119,.193831,.477288,.964923,-.0911051,.192973,.504716,.966048,-.093251,.19151,.533053,.967024,-.0958983,.190013,.561366,.968038,-.09835,.188253,.589464,.969152,-.100754,.186257,.617433,.970557,-.102239,.183775,.645801,.972104,-.102767,.180645,.674278,.973203,-.103492,.177242,.702004,.975123,-.103793,.17345,.729529,.97641,-.102839,.168886,.756712,.978313,-.101687,.163892,.783801,.980036,-.100314,.158439,.809671,.981339,-.097836,.152211,.835402,.982794,-.0950006,.145679,.860081,.984123,-.0920994,.138949,.883757,.984918,-.0878641,.131283,.90685,.985999,-.083939,.123464,.928786,.987151,-.0791234,.115324,.94983,.987827,-.0739332,.106854,.96962,.988806,-.0688088,.0982691,.98861,.989588,-.0628962,.0893456,1.00667,.990438,-.0573146,.0805392,1.02344,.991506,-.0509433,.0713725,1.03933,.992492,-.0448724,.0623732,1.05378,.993663,-.0383497,.0530838,1.06747,.994956,-.0319593,.0439512,1.08007,.99634,-.025401,.0347803,1.09182,.99761,-.0189687,.0257954,1.1025,.99863,-.0124441,.0169893,1.11247,.99947,-.00614003,.00829498,1.12151,1.00008,216624e-9,-146107e-9,1.12993,.950129,-434955e-11,.217413,190081e-10,.950264,-10957e-8,.217444,47884e-8,.9503,-438299e-9,.217451,.00191543,.950246,-986124e-9,.21744,.00430951,.950246,-.00175311,.21744,.00766137,.950245,-.00273923,.21744,.011971,.950253,-.00394453,.217441,.0172385,.950258,-.00536897,.217442,.0234641,.950267,-.00701262,.217444,.030648,.950277,-.00887551,.217446,.038791,.950284,-.0109576,.217446,.0478931,.950312,-.0132591,.217451,.0579568,.950334,-.01578,.217454,.0689821,.950378,-.0185204,.217462,.0809714,.950417,-.0214803,.217467,.0939265,.950488,-.0246594,.217479,.10785,.950534,-.0280565,.217483,.122743,.950633,-.0316685,.217498,.138611,.950698,-.0354787,.217499,.155442,.950844,-.0394003,.217507,.173208,.950999,-.0426812,.217419,.191605,.951221,-.0461302,.217317,.21084,.951412,-.0502131,.217238,.230945,.951623,-.0549183,.21722,.251745,.951867,-.0604493,.217306,.273001,.952069,-.0665189,.217466,.294874,.952459,-.0709179,.217266,.318732,.952996,-.0746112,.216891,.34318,.953425,-.0789252,.216503,.36849,.953885,-.0833293,.216042,.394373,.954617,-.087371,.215469,.420505,.955429,-.0914054,.214802,.446907,.956068,-.0961671,.214146,.473522,.957094,-.10048,.213286,.50052,.958372,-.103248,.211796,.528715,.959654,-.106033,.21016,.557065,.961305,-.108384,.208149,.585286,.962785,-.111122,.206024,.613334,.964848,-.112981,.203442,.641334,.966498,-.113717,.19996,.669955,.968678,-.114121,.196105,.698094,.970489,-.114524,.191906,.725643,.972903,-.113792,.186963,.752856,.974701,-.112406,.181343,.780013,.976718,-.110685,.175185,.806268,.978905,-.108468,.168535,.832073,.980267,-.105061,.161106,.857149,.981967,-.101675,.153387,.881145,.983063,-.0974492,.145199,.904255,.984432,-.0925815,.136527,.926686,.985734,-.0877983,.127584,.947901,.986228,-.081884,.118125,.968111,.98719,-.0761208,.108594,.98719,.988228,-.0698196,.0989996,1.00559,.989046,-.0632739,.0890074,1.02246,.990242,-.056522,.0790832,1.03841,.991252,-.0495272,.0689182,1.05347,.992542,-.0425373,.0588592,1.06724,.994096,-.0353198,.0486833,1.08009,.995593,-.028235,.0385977,1.09177,.99711,-.0209511,.0286457,1.10274,.998263,-.0139289,.0188497,1.11262,.999254,-.0067359,.009208,1.12191,.999967,141846e-9,-657764e-10,1.13024,.935608,-474692e-11,.236466,187817e-10,.93996,-11971e-8,.237568,473646e-9,.939959,-478845e-9,.237567,.0018946,.939954,-.0010774,.237566,.00426284,.939956,-.00191538,.237566,.00757842,.939954,-.00299277,.237566,.0118413,.93996,-.00430961,.237567,.0170518,.939969,-.00586589,.237569,.02321,.939982,-.00766166,.237572,.0303164,.939987,-.00969686,.237572,.0383711,.939997,-.0119715,.237574,.0473751,.940031,-.0144858,.237581,.0573298,.940073,-.0172399,.237589,.0682366,.94012,-.0202335,.237598,.080097,.940162,-.0234663,.237604,.0929116,.940237,-.0269387,.237615,.106686,.940328,-.0306489,.237632,.121421,.940419,-.0345917,.237645,.137115,.940522,-.0387481,.237654,.153766,.940702,-.0429906,.237661,.17133,.940871,-.0465089,.237561,.189502,.941103,-.050531,.23748,.208616,.941369,-.0550657,.237423,.228595,.941641,-.0601337,.237399,.249287,.941903,-.0658804,.237443,.270467,.942224,-.0722674,.237597,.292024,.942633,-.0771788,.237419,.315272,.943172,-.0815623,.237068,.339579,.943691,-.0863973,.236682,.364717,.944382,-.0911536,.236213,.390435,.945392,-.0952967,.235562,.416425,.946185,-.0998948,.234832,.442772,.947212,-.104796,.234114,.469347,.948778,-.10928,.233222,.496162,.950149,-.113081,.231845,.523978,.951989,-.115893,.230005,.552295,.953921,-.11846,.227862,.580569,.955624,-.12115,.225439,.608698,.958234,-.123373,.222635,.636696,.960593,-.124519,.219093,.665208,.963201,-.124736,.214749,.693557,.965642,-.125012,.210059,.721334,.968765,-.124661,.204935,.748613,.971753,-.122996,.198661,.776224,.973751,-.120998,.191823,.802461,.976709,-.118583,.184359,.828399,.977956,-.115102,.176437,.853693,.979672,-.111077,.167681,.877962,.981816,-.10688,.158872,.901564,.98238,-.101469,.149398,.924057,.983964,-.0960013,.139436,.945751,.984933,-.0899626,.12943,.966272,.985694,-.0832973,.11894,.985741,.986822,-.0767082,.108349,1.00407,.987725,-.0693614,.0976026,1.02154,.98877,-.06211,.086652,1.03757,.990129,-.0544143,.0756182,1.05296,.991337,-.046744,.0645753,1.06683,.992978,-.0387931,.0534683,1.0798,.994676,-.030973,.0424137,1.09181,.99645,-.0230311,.0314035,1.10286,.997967,-.0152065,.0206869,1.11291,.99922,-.00744837,.010155,1.12237,1.00002,240209e-9,-752767e-10,1.13089,.922948,-515351e-11,.255626,186069e-10,.928785,-129623e-9,.257244,468009e-9,.928761,-51849e-8,.257237,.00187202,.928751,-.0011666,.257235,.00421204,.928751,-.00207395,.257234,.0074881,.928754,-.00324055,.257235,.0117002,.92876,-.00466639,.257236,.0168486,.928763,-.00635149,.257237,.0229334,.928774,-.00829584,.257239,.029955,.928791,-.0104995,.257243,.0379139,.928804,-.0129623,.257245,.0468108,.928847,-.0156846,.257255,.0566473,.92889,-.0186661,.257263,.0674246,.928924,-.0219067,.257268,.0791433,.928989,-.0254066,.257282,.0918076,.92909,-.0291651,.257301,.105419,.92918,-.0331801,.257316,.119978,.92929,-.0374469,.257332,.135491,.929453,-.041939,.257357,.151948,.929586,-.0464612,.257347,.169275,.929858,-.0503426,.257269,.187257,.930125,-.0548409,.257199,.206204,.930403,-.0598063,.257149,.22601,.930726,-.0652437,.257122,.246561,.931098,-.0712376,.257153,.267618,.931396,-.0777506,.257237,.288993,.931947,-.0832374,.257124,.311527,.932579,-.0883955,.25683,.335697,.933194,-.0937037,.256444,.360634,.934013,-.0987292,.255939,.386126,.935307,-.103215,.255282,.412018,.936374,-.108234,.254538,.438292,.93776,-.113234,.253728,.464805,.939599,-.118013,.25275,.491464,.941036,-.122661,.251404,.518751,.94337,-.125477,.249435,.547133,.945318,-.128374,.247113,.575456,.947995,-.130996,.244441,.60372,.950818,-.133438,.241352,.63174,.954378,-.135004,.237849,.659971,.957151,-.135313,.233188,.688478,.960743,-.13521,.228001,.716767,.964352,-.135007,.222249,.744349,.967273,-.133523,.21542,.771786,.969767,-.131155,.208039,.798639,.973195,-.128492,.200076,.824774,.975557,-.125094,.191451,.850222,.977692,-.120578,.18184,.874761,.98026,-.115882,.172102,.898497,.981394,-.110372,.161859,.921636,.982386,-.10415,.15108,.943467,.983783,-.0978128,.140407,.964045,.98422,-.0906171,.129058,.98398,.985447,-.0832921,.117614,1.00276,.986682,-.0754412,.10585,1.02047,.987326,-.0673885,.0940943,1.03678,.988707,-.0592565,.0822093,1.05218,.990185,-.050717,.070192,1.06652,.991866,-.0423486,.0582081,1.07965,.993897,-.0336118,.0460985,1.09188,.995841,-.0252178,.0342737,1.10307,.997605,-.0164893,.0224829,1.11324,.999037,-.00817112,.0110647,1.12262,1.00003,291686e-9,-168673e-9,1.13139,.915304,-552675e-11,.275999,183285e-10,.91668,-139285e-9,.276414,461914e-9,.916664,-55713e-8,.276409,.00184763,.916653,-.00125354,.276406,.00415715,.916651,-.00222851,.276405,.00739053,.916655,-.00348205,.276406,.0115478,.916653,-.00501414,.276405,.0166291,.916667,-.00682478,.276409,.0226346,.91668,-.00891398,.276412,.0295648,.91669,-.0112817,.276413,.0374199,.916727,-.013928,.276422,.0462016,.916759,-.0168528,.276429,.0559101,.916793,-.0200558,.276436,.0665466,.916849,-.0235373,.276448,.0781139,.916964,-.0272973,.276474,.0906156,.917047,-.0313344,.276491,.104051,.917152,-.0356465,.276511,.118424,.917286,-.0402271,.276533,.133736,.917469,-.0450408,.276564,.149978,.917686,-.0497872,.276563,.167057,.917953,-.0540937,.276493,.184846,.918228,-.0590709,.276437,.203614,.918572,-.0644277,.276398,.223212,.918918,-.0702326,.276362,.243584,.919356,-.076484,.276383,.264465,.919842,-.0830808,.276434,.285701,.920451,-.0892972,.276407,.307559,.921113,-.095016,.276128,.331501,.921881,-.100771,.275754,.356207,.923027,-.106029,.275254,.381477,.924364,-.111029,.274595,.40722,.925818,-.116345,.273841,.433385,.92746,-.121424,.272913,.459848,.929167,-.12657,.271837,.486493,.931426,-.131581,.270575,.513432,.934001,-.135038,.268512,.541502,.936296,-.138039,.266135,.569658,.939985,-.140687,.263271,.598375,.943516,-.143247,.260058,.626563,.94782,-.145135,.256138,.654711,.951023,-.145733,.251154,.683285,.955338,-.145554,.245562,.711831,.959629,-.145008,.239265,.739573,.963123,-.144003,.232064,.767027,.966742,-.141289,.224036,.794359,.969991,-.138247,.215305,.820361,.973403,-.134786,.206051,.846548,.975317,-.129966,.195914,.871541,.977647,-.12471,.185184,.895313,.980137,-.119086,.174161,.918398,.981031,-.112297,.162792,.940679,.982037,-.105372,.150952,.961991,.983164,-.097821,.138921,.981913,.983757,-.0897245,.126611,1.00109,.985036,-.0815974,.114228,1.01902,.986289,-.0727725,.101389,1.03604,.987329,-.0639323,.0886476,1.05149,.989193,-.0548109,.0756837,1.06619,.990716,-.045687,.0627581,1.07948,.992769,-.0364315,.0498337,1.09172,.99524,-.0271761,.0370305,1.1033,.997154,-.0179609,.0243959,1.11353,.998845,-.00878063,.0119567,1.12319,1.00002,259038e-9,-108146e-9,1.13177,.903945,-591681e-11,.295126,181226e-10,.903668,-148672e-9,.295037,455367e-9,.903677,-594683e-9,.29504,.00182145,.903673,-.00133805,.295039,.00409831,.903666,-.00237872,.295036,.00728584,.903668,-.00371676,.295037,.0113842,.903679,-.00535212,.29504,.0163936,.903684,-.00728479,.295041,.0223141,.903698,-.00951473,.295044,.0291462,.903718,-.0120419,.295049,.0368904,.903754,-.0148664,.295058,.0455477,.903801,-.017988,.29507,.0551194,.903851,-.0214064,.295082,.0656058,.903921,-.0251219,.295097,.0770109,.904002,-.0291337,.295116,.0893354,.904111,-.033441,.29514,.102583,.904246,-.0380415,.295169,.116755,.904408,-.0429258,.295202,.131853,.904637,-.0480468,.295245,.147869,.904821,-.0529208,.295214,.164658,.905163,-.0577748,.295185,.182274,.905469,-.0631763,.295143,.200828,.905851,-.068917,.295112,.2202,.906322,-.0750861,.295104,.240372,.906761,-.0815855,.295086,.261082,.90735,-.0882138,.295095,.282123,.908087,-.095082,.295139,.303563,.908826,-.101488,.29492,.327028,.909832,-.107577,.294577,.351464,.911393,-.113033,.294115,.376497,.912804,-.118629,.293446,.402115,.914081,-.124232,.292581,.428111,.91637,-.129399,.29166,.454442,.91814,-.134892,.290422,.481024,.921179,-.140069,.289194,.507924,.924544,-.144431,.287421,.535557,.927995,-.147498,.284867,.563984,.931556,-.150197,.281722,.5923,.935777,-.152711,.278207,.620832,.940869,-.154836,.274148,.649069,.945994,-.155912,.269057,.677746,.949634,-.155641,.262799,.706293,.955032,-.154809,.256097,.734278,.95917,-.153678,.248618,.761751,.962931,-.151253,.239794,.789032,.966045,-.147625,.230281,.815422,.96971,-.143964,.220382,.841787,.972747,-.139464,.209846,.867446,.975545,-.133459,.198189,.892004,.978381,-.127424,.186362,.915458,.979935,-.120506,.173964,.937948,.980948,-.11282,.161429,.959732,.982234,-.104941,.148557,.980118,.982767,-.0962905,.135508,.999463,.983544,-.0873625,.122338,1.01756,.984965,-.0783447,.108669,1.03492,.986233,-.0684798,.0949911,1.05087,.987796,-.0590867,.0811386,1.0656,.989885,-.0489145,.0673099,1.0794,.991821,-.0391,.0535665,1.09174,.99448,-.029087,.0397529,1.10341,.996769,-.019114,.0261463,1.11383,.998641,-.00947007,.0128731,1.1237,.999978,446316e-9,-169093e-9,1.13253,.888362,-627064e-11,.312578,178215e-10,.889988,-157791e-9,.313148,448451e-9,.889825,-631076e-9,.313092,.00179356,.88984,-.00141994,.313097,.00403554,.889828,-.0025243,.313092,.00717429,.889831,-.00394421,.313093,.0112099,.889831,-.00567962,.313093,.0161425,.889844,-.00773051,.313096,.0219724,.889858,-.0100968,.3131,.0286999,.889882,-.0127786,.313106,.0363256,.889918,-.0157757,.313116,.0448509,.889967,-.0190878,.313129,.0542758,.89003,-.022715,.313145,.0646032,.890108,-.0266566,.313165,.0758339,.890218,-.0309131,.313193,.0879729,.890351,-.0354819,.313226,.101019,.89051,-.0403613,.313263,.114979,.890672,-.0455385,.313294,.129848,.890882,-.0509444,.313333,.145616,.891189,-.0559657,.313324,.162122,.891457,-.0613123,.313281,.179524,.891856,-.0671488,.313281,.197855,.892312,-.0732732,.313268,.216991,.892819,-.0797865,.313263,.236924,.893369,-.0865269,.313247,.257433,.894045,-.0931592,.313205,.278215,.894884,-.100532,.313276,.299467,.895832,-.107716,.313205,.322276,.897043,-.114099,.312873,.34642,.898515,-.119941,.312331,.371187,.900191,-.126044,.311731,.396656,.90188,-.131808,.310859,.422488,.904359,-.137289,.309857,.448744,.906923,-.142991,.308714,.475239,.910634,-.148253,.307465,.501983,.914502,-.153332,.305774,.529254,.919046,-.156646,.303156,.557709,.923194,-.159612,.299928,.586267,.928858,-.162027,.296245,.614925,.934464,-.164203,.291832,.643187,.939824,-.165602,.286565,.671601,.944582,-.165383,.280073,.700213,.949257,-.164439,.272891,.728432,.954389,-.162953,.264771,.756082,.958595,-.161007,.255927,.78369,.962138,-.157243,.245769,.810769,.966979,-.152872,.235127,.836999,.969566,-.148209,.22347,.862684,.972372,-.142211,.211147,.887847,.975916,-.135458,.198606,.911843,.978026,-.128398,.185498,.934795,.979686,-.120313,.17171,.956787,.980748,-.11166,.158159,.978046,.981622,-.103035,.144399,.997693,.982356,-.0930328,.13001,1.01642,.983308,-.0834627,.115778,1.03366,.985037,-.0732249,.101327,1.05014,.986493,-.0628145,.086554,1.06507,.988484,-.0526556,.0720413,1.07907,.991051,-.0415744,.0571151,1.09189,.993523,-.0314275,.0426643,1.10369,.99628,-.0203603,.0279325,1.11423,.998344,-.0102446,.0138182,1.12421,.999997,42612e-8,-193628e-9,1.1333,.871555,-660007e-11,.329176,174749e-10,.875255,-166579e-9,.330571,441051e-9,.875644,-666394e-9,.330718,.00176441,.875159,-.00149903,.330536,.00396899,.87516,-.00266493,.330536,.007056,.875158,-.00416393,.330535,.0110251,.87516,-.00599598,.330535,.0158764,.875163,-.00816108,.330536,.0216101,.875174,-.0106591,.330538,.0282266,.875199,-.0134899,.330545,.0357266,.875257,-.0166538,.330563,.0441117,.875304,-.0201501,.330575,.0533821,.875373,-.0239785,.330595,.0635395,.875464,-.0281389,.330619,.0745872,.875565,-.0326301,.330645,.0865255,.875691,-.0374516,.330676,.0993599,.875897,-.0425993,.330733,.113093,.876091,-.0480576,.330776,.127722,.876353,-.0537216,.330826,.143227,.876649,-.0589807,.330809,.159462,.877034,-.0647865,.330819,.176642,.877443,-.0709789,.330817,.194702,.877956,-.0774782,.330832,.213577,.878499,-.0843175,.330822,.233246,.879144,-.0912714,.330804,.253512,.879982,-.0980824,.330766,.274137,.88097,-.105823,.330864,.295209,.882051,-.113671,.330896,.317226,.883397,-.120303,.330545,.341068,.884987,-.12667,.330068,.365613,.886789,-.133118,.329418,.390807,.889311,-.139024,.328683,.416494,.891995,-.144971,.327729,.442618,.895106,-.150747,.326521,.469131,.899527,-.156283,.325229,.495921,.90504,-.161707,.32378,.523162,.909875,-.165661,.32122,.55092,.91561,-.168755,.317942,.579928,.921225,-.171193,.313983,.608539,.927308,-.17319,.309636,.636854,.933077,-.174819,.304262,.66523,.938766,-.175002,.297563,.693609,.943667,-.173946,.289613,.722157,.949033,-.172221,.281227,.750021,.953765,-.169869,.271545,.777466,.95804,-.166578,.261034,.804853,.962302,-.161761,.249434,.831569,.966544,-.156636,.237484,.857779,.969372,-.150784,.224395,.883051,.972486,-.143672,.210786,.907864,.975853,-.135772,.196556,.931223,.977975,-.127942,.182307,.954061,.979122,-.118347,.167607,.97531,.980719,-.109112,.152739,.995666,.981223,-.0991789,.137932,1.01475,.98216,-.0883553,.122692,1.03253,.983379,-.0780825,.107493,1.04917,.985434,-.0665646,.0917791,1.06464,.987332,-.0557714,.0764949,1.07896,.990004,-.0442805,.060721,1.09199,.992975,-.0331676,.0452284,1.10393,.995811,-.0219547,.0297934,1.11476,.9982,-.0107613,.0146415,1.12484,1.00002,248678e-9,-14555e-8,1.13413,.859519,-693595e-11,.347264,171673e-10,.859843,-17503e-8,.347394,433219e-9,.859656,-700076e-9,.347319,.00173277,.859671,-.00157517,.347325,.00389875,.859669,-.00280028,.347324,.00693112,.85967,-.0043754,.347324,.01083,.859665,-.00630049,.347321,.0155954,.859685,-.0085755,.347328,.0212278,.859694,-.0112003,.347329,.0277273,.859718,-.0141747,.347336,.0350946,.85976,-.0174988,.347348,.0433314,.85982,-.0211722,.347366,.0524384,.859892,-.0251941,.347387,.0624168,.860006,-.0295649,.347422,.0732708,.860122,-.0342825,.347453,.0849999,.860282,-.0393462,.347499,.0976102,.860482,-.0447513,.347554,.111104,.860719,-.0504775,.347614,.125479,.860998,-.0563577,.347666,.140703,.861322,-.0619473,.347662,.156681,.861724,-.0681277,.347684,.173597,.862198,-.0746567,.347709,.191371,.862733,-.0815234,.347727,.209976,.863371,-.0886643,.347744,.229351,.86414,-.0957908,.347734,.24934,.865138,-.102912,.34772,.269797,.866182,-.110924,.3478,.290654,.867436,-.119223,.347911,.312074,.869087,-.126197,.347649,.335438,.870859,-.133145,.347222,.359732,.872997,-.139869,.346645,.38467,.875939,-.146089,.345935,.41019,.879012,-.152334,.345012,.436218,.883353,-.15821,.343924,.462641,.888362,-.164097,.342636,.489449,.895026,-.169528,.341351,.516629,.900753,-.174408,.339115,.544109,.906814,-.17751,.335809,.572857,.912855,-.180101,.331597,.601554,.919438,-.182116,.32698,.630198,.925962,-.183494,.321449,.658404,.931734,-.184159,.314595,.686625,.93762,-.18304,.306462,.71531,.943858,-.181323,.297514,.744272,.948662,-.178683,.287447,.771462,.953299,-.175379,.276166,.798593,.957346,-.170395,.263758,.8256,.962565,-.165042,.251019,.852575,.966075,-.158655,.237011,.878316,.969048,-.151707,.222518,.90329,.972423,-.143271,.207848,.927745,.975833,-.134824,.192463,.950859,.977629,-.125444,.1768,.972947,.978995,-.114949,.161033,.993263,.980533,-.104936,.145523,1.01337,.980745,-.0935577,.129799,1.03128,.981814,-.0822956,.113486,1.04825,.983943,-.0710082,.0972925,1.06405,.986141,-.0587931,.0808138,1.0785,.988878,-.0472755,.0644915,1.09204,.992132,-.0349128,.0478128,1.10413,.9953,-.0232407,.031621,1.11527,.998117,-.0112713,.0154935,1.12551,1.00003,339743e-9,-195763e-9,1.13504,.845441,-729126e-11,.364305,169208e-10,.843588,-183164e-9,.363506,425067e-9,.843412,-73253e-8,.36343,.00169999,.843401,-.00164818,.363426,.00382495,.843399,-.00293008,.363425,.00679993,.843401,-.00457822,.363425,.010625,.843394,-.00659249,.363421,.0153002,.843398,-.00897282,.363421,.0208258,.843415,-.0117191,.363426,.0272024,.843438,-.0148312,.363432,.0344305,.843483,-.018309,.363447,.0425116,.84356,-.0221521,.363472,.0514471,.843646,-.0263597,.363499,.061238,.843743,-.0309315,.363527,.0718873,.84388,-.0358658,.363569,.0833969,.844079,-.0411624,.363631,.0957742,.844279,-.0468128,.363688,.109015,.844549,-.0527923,.363761,.123124,.844858,-.0588204,.363817,.138044,.84522,-.0647573,.36383,.153755,.845669,-.0713181,.363879,.170394,.846155,-.0781697,.363908,.187861,.846789,-.0853913,.363969,.206176,.847502,-.0928086,.363999,.225244,.8484,-.10005,.363997,.244926,.849461,-.107615,.364008,.265188,.850562,-.115814,.364055,.28587,.851962,-.124334,.364179,.306926,.854326,-.131995,.364233,.329605,.856295,-.139338,.363856,.35359,.858857,-.146346,.363347,.37831,.862428,-.152994,.362807,.403722,.866203,-.159463,.361963,.429537,.871629,-.165623,.36112,.456,.877365,-.171649,.359917,.482773,.883744,-.177151,.35848,.509705,.890693,-.182381,.356523,.537215,.897278,-.186076,.3533,.565493,.903958,-.188602,.349095,.594293,.910908,-.190755,.344215,.623165,.918117,-.192063,.338606,.651573,.924644,-.192758,.331544,.679869,.931054,-.192238,.323163,.708668,.937303,-.190035,.313529,.737201,.943387,-.187162,.303152,.764977,.948494,-.183876,.29146,.792683,.952546,-.178901,.277917,.819228,.958077,-.173173,.264753,.846559,.962462,-.16645,.25002,.872962,.966569,-.159452,.234873,.898729,.969108,-.15074,.218752,.923126,.973072,-.141523,.202673,.947278,.975452,-.132075,.186326,.969938,.977784,-.121257,.169396,.991325,.97899,-.110182,.153044,1.01123,.979777,-.0989634,.136485,1.0299,.980865,-.0865894,.119343,1.04727,.982432,-.0746115,.102452,1.06341,.984935,-.0621822,.0852423,1.07834,.987776,-.0495694,.0678546,1.092,.99103,-.0372386,.0506917,1.1043,.99474,-.0244353,.0333316,1.11576,.997768,-.0121448,.0164348,1.12617,1.00003,31774e-8,-169504e-9,1.13598,.825551,-756799e-11,.378425,165099e-10,.82664,-190922e-9,.378923,416504e-9,.826323,-763495e-9,.378779,.0016656,.826359,-.00171789,.378795,.00374768,.82636,-.00305402,.378795,.00666259,.826368,-.00477185,.378798,.0104104,.826364,-.00687131,.378795,.0149912,.826368,-.00935232,.378795,.0204054,.826376,-.0122146,.378797,.0266532,.826399,-.0154581,.378803,.0337355,.82646,-.0190825,.378824,.0416537,.826525,-.0230873,.378846,.0504091,.826614,-.0274719,.378876,.0600032,.82674,-.0322355,.378917,.0704393,.826888,-.0373766,.378964,.0817195,.827078,-.0428936,.379024,.0938492,.827318,-.0487778,.379099,.106828,.82764,-.0549935,.379199,.120659,.827926,-.0611058,.379227,.13526,.828325,-.0675054,.379275,.150713,.828801,-.0743455,.379332,.167034,.8294,-.0815523,.379415,.184209,.830094,-.0890779,.379495,.202203,.8309,-.096736,.379555,.220945,.831943,-.104135,.379577,.240306,.833037,-.112106,.379604,.260317,.834278,-.120554,.379668,.2808,.836192,-.129128,.3799,.301654,.838671,-.137541,.380109,.323502,.840939,-.14523,.379809,.347176,.844575,-.15248,.379593,.371706,.848379,-.159607,.37909,.39688,.853616,-.166267,.378617,.422702,.858921,-.172698,.377746,.448919,.865324,-.178823,.376749,.475661,.872207,-.184542,.375363,.502599,.880018,-.189836,.373657,.529914,.88694,-.194294,.370673,.557683,.894779,-.197022,.36662,.586848,.902242,-.199108,.36138,.615831,.909914,-.200398,.355434,.644478,.917088,-.20094,.348173,.672905,.923888,-.200671,.339482,.701327,.930495,-.198773,.32956,.730101,.937247,-.195394,.318363,.758383,.943108,-.191956,.306323,.786539,.948296,-.187227,.292576,.813637,.953472,-.181165,.278234,.840793,.958485,-.174119,.263054,.867712,.962714,-.166564,.246756,.893635,.966185,-.158181,.229945,.919028,.970146,-.148275,.212633,.943413,.973491,-.138157,.195229,.966627,.975741,-.127574,.178048,.988817,.977238,-.11554,.160312,1.00924,.978411,-.10364,.142857,1.02845,.979811,-.0913122,.125317,1.04648,.98116,-.0782558,.107627,1.06284,.983543,-.0655957,.0895862,1.07798,.986789,-.0520411,.0713756,1.092,.990292,-.0389727,.053228,1.10484,.994187,-.025808,.0351945,1.11642,.997499,-.0126071,.0173198,1.12703,.999999,275604e-9,-148602e-9,1.13674,.81075,-78735e-10,.394456,161829e-10,.808692,-198293e-9,.393453,407564e-9,.80846,-792877e-9,.39334,.00162965,.808595,-.00178416,.393407,.00366711,.808597,-.00317182,.393408,.00651934,.808598,-.00495589,.393408,.0101866,.808591,-.00713627,.393403,.0146689,.808592,-.00971285,.393402,.0199667,.80861,-.0126855,.393407,.0260803,.808633,-.0160538,.393413,.0330107,.80868,-.0198175,.393429,.0407589,.808748,-.0239758,.393453,.0493264,.808854,-.0285286,.39349,.0587161,.808992,-.0334748,.39354,.0689304,.809141,-.0388116,.393588,.0799707,.809352,-.0445375,.39366,.0918432,.809608,-.0506427,.393742,.104549,.809915,-.0570708,.393834,.118085,.810253,-.0633526,.393885,.132377,.810687,-.0700966,.393953,.147537,.811233,-.0772274,.394047,.163543,.811865,-.0847629,.394148,.180394,.812648,-.0925663,.394265,.198051,.813583,-.100416,.394363,.216443,.814683,-.108119,.394402,.235502,.815948,-.11644,.394489,.255242,.817278,-.125036,.394542,.275441,.819605,-.133655,.39486,.296094,.822256,-.142682,.395248,.317309,.825349,-.150756,.395241,.340516,.829605,-.158392,.395285,.364819,.83391,-.165801,.394922,.389736,.839808,-.172677,.394691,.415409,.845708,-.179448,.394006,.441546,.853025,-.185746,.393279,.46832,.859666,-.191684,.391655,.495302,.86789,-.197146,.390068,.52262,.875845,-.201904,.38727,.550336,.882634,-.205023,.382688,.578825,.891076,-.207098,.377543,.608103,.900589,-.208474,.371752,.63723,.90791,-.209068,.364016,.665769,.915971,-.208655,.355593,.694428,.923455,-.20729,.345439,.723224,.931514,-.203821,.334099,.751925,.937885,-.19986,.321069,.780249,.943136,-.194993,.306571,.8077,.948818,-.189132,.291556,.83497,.954433,-.181617,.275745,.86188,.959078,-.173595,.258695,.888562,.962705,-.164855,.240825,.914008,.966753,-.155129,.22268,.939145,.970704,-.144241,.204542,.963393,.973367,-.133188,.185927,.985983,.975984,-.121146,.167743,1.00704,.976994,-.108366,.149218,1.02715,.978485,-.0956746,.13131,1.0455,.980074,-.0820733,.112513,1.06221,.98225,-.0684061,.0938323,1.07782,.98553,-.0549503,.0749508,1.09199,.989529,-.0407857,.055848,1.10508,.993536,-.0271978,.0368581,1.11684,.997247,-.0132716,.0181845,1.12789,1,431817e-9,-198809e-9,1.13792,.785886,-812608e-11,.405036,157669e-10,.790388,-205278e-9,.407355,398297e-9,.790145,-820824e-9,.407231,.00159263,.790135,-.00184681,.407226,.00358336,.790119,-.00328316,.407218,.00637039,.790126,-.00512988,.40722,.0099539,.79013,-.00738684,.407221,.0143339,.790135,-.0100538,.407221,.0195107,.790134,-.0131306,.407217,.0254848,.79016,-.0166169,.407224,.0322572,.790197,-.020512,.407236,.0398284,.790273,-.0248157,.407263,.0482014,.790381,-.029527,.407304,.0573777,.790521,-.0346446,.407355,.0673602,.790704,-.0401665,.40742,.0781522,.790925,-.0460896,.407499,.0897582,.791195,-.0524017,.407589,.10218,.791522,-.0590121,.407691,.11541,.791878,-.0654876,.407748,.12939,.792361,-.0725207,.407849,.144237,.792942,-.0799844,.407963,.159924,.79362,-.0877896,.408087,.176425,.794529,-.0958451,.408259,.193733,.795521,-.103827,.408362,.211756,.796778,-.111937,.408482,.230524,.798027,-.120521,.408547,.249967,.799813,-.129242,.408721,.269926,.802387,-.138048,.409148,.290338,.805279,-.147301,.409641,.311193,.809251,-.155895,.410154,.333611,.813733,-.163942,.410297,.357615,.819081,-.171666,.410373,.382339,.825427,-.178905,.410348,.407828,.83172,-.185812,.409486,.434034,.83877,-.192318,.408776,.460493,.845817,-.198249,.407176,.487346,.854664,-.204034,.405719,.514832,.863495,-.208908,.403282,.542401,.871883,-.212765,.399293,.570683,.88065,-.214911,.393803,.599947,.89004,-.216214,.387536,.62932,.898476,-.216745,.379846,.658319,.906738,-.216387,.370625,.687138,.914844,-.215053,.360139,.71601,.923877,-.212007,.348849,.745124,.931925,-.207481,.335639,.773366,.938054,-.202418,.320798,.801636,.943895,-.196507,.304772,.829055,.949468,-.189009,.288033,.856097,.955152,-.180539,.270532,.88301,.959403,-.171437,.251639,.909296,.963309,-.161661,.232563,.934868,.967399,-.150425,.213231,.959662,.972009,-.138659,.194247,.98302,.97433,-.126595,.174718,1.00517,.975823,-.113205,.155518,1.02566,.976371,-.0996096,.136709,1.04418,.978705,-.0860754,.117571,1.06146,.981477,-.0714438,.0980046,1.07777,.984263,-.0572304,.0782181,1.09214,.988423,-.0428875,.0584052,1.10553,.993,-.0282442,.038522,1.11758,.99704,-.0140183,.0190148,1.12864,.999913,369494e-9,-145203e-9,1.13901,.777662,-84153e-10,.423844,154403e-10,.770458,-211714e-9,.419915,38845e-8,.770716,-846888e-9,.420055,.00155386,.770982,-.00190567,.420202,.00349653,.770981,-.00338782,.420201,.00621606,.77098,-.00529338,.4202,.00971274,.770983,-.00762223,.4202,.0139867,.770985,-.0103741,.420198,.0190381,.770996,-.0135489,.4202,.0248677,.771029,-.0171461,.420212,.0314764,.771052,-.0211647,.420215,.0388648,.771131,-.0256048,.420245,.047036,.771235,-.0304647,.420284,.0559911,.771383,-.0357436,.420341,.0657346,.771591,-.0414392,.420423,.0762694,.771819,-.0475462,.420506,.0875984,.772123,-.0540506,.420617,.099727,.772464,-.060797,.42072,.112637,.772855,-.0675393,.420799,.126313,.773317,-.0748323,.420893,.140824,.773981,-.0825681,.421058,.15617,.774746,-.0906307,.421226,.172322,.77566,-.0988982,.421397,.189253,.776837,-.106994,.421569,.206912,.778097,-.115528,.421704,.225359,.779588,-.124317,.421849,.24447,.781574,-.133139,.422097,.264156,.784451,-.142179,.422615,.284318,.787682,-.15165,.423269,.304902,.792433,-.160771,.424396,.3265,.797359,-.169166,.424772,.35014,.803986,-.177149,.425475,.374768,.809504,-.184745,.424996,.399928,.815885,-.19173,.424247,.425796,.823513,-.198525,.423515,.452287,.832549,-.204709,.422787,.479321,.841653,-.210447,.421187,.506718,.850401,-.215501,.418519,.53432,.859854,-.219752,.414715,.56242,.869364,-.222305,.409462,.591558,.878837,-.223744,.402926,.621074,.888636,-.224065,.395043,.650538,.898132,-.223742,.38564,.679538,.907181,-.222308,.375378,.708674,.915621,-.219837,.363212,.737714,.9239,-.215233,.349313,.767014,.931644,-.209592,.334162,.795133,.938887,-.203644,.317943,.823228,.945282,-.196349,.300581,.850822,.950758,-.18742,.282195,.877594,.956146,-.177879,.262481,.904564,.960355,-.167643,.242487,.930741,.965256,-.156671,.222668,.955868,.968029,-.144123,.201907,.979869,.97251,-.131305,.18202,1.00291,.974925,-.118335,.161909,1.02392,.975402,-.103714,.142129,1.0433,.976987,-.089415,.122447,1.06089,.979677,-.0748858,.102248,1.07713,.983184,-.0596086,.0814851,1.09218,.987466,-.0447671,.0609484,1.10585,.992348,-.0295217,.0401835,1.11829,.996674,-.0143917,.0198163,1.12966,1.00003,321364e-9,-149983e-9,1.1402,.757901,-869074e-11,.436176,151011e-10,.751195,-217848e-9,.432317,378533e-9,.751178,-871373e-9,.432307,.0015141,.751195,-.00196061,.432317,.0034068,.751198,-.00348552,.432318,.00605659,.751195,-.00544599,.432315,.00946353,.751207,-.00784203,.43232,.013628,.751213,-.0106732,.43232,.0185499,.751221,-.0139393,.432319,.0242302,.751244,-.0176398,.432325,.0306694,.7513,-.0217743,.432348,.0378698,.751358,-.0263412,.432367,.0458321,.751458,-.0313396,.432404,.0545587,.751608,-.0367682,.432464,.0640543,.7518,-.0426246,.43254,.0743222,.752065,-.0489031,.432645,.0853668,.752376,-.0555828,.432762,.0971911,.752715,-.0623861,.432859,.109768,.753137,-.069415,.432958,.123126,.753676,-.0770039,.433099,.137308,.754345,-.084971,.433272,.15229,.755235,-.0932681,.433504,.168075,.756186,-.10171,.433693,.184625,.757363,-.110019,.433857,.201897,.75884,-.11887,.434102,.220014,.760467,-.127881,.434306,.238778,.762969,-.136766,.434751,.258172,.765823,-.14612,.43529,.278062,.769676,-.15566,.436236,.298437,.774909,-.165177,.437754,.319532,.77994,-.17402,.438343,.342505,.785757,-.182201,.438609,.366693,.792487,-.190104,.438762,.391668,.80038,-.197438,.438795,.417494,.808494,-.204365,.438226,.443933,.817695,-.210714,.437283,.470929,.828111,-.216651,.436087,.498569,.837901,-.221804,.433717,.526165,.847813,-.226318,.430133,.554155,.858314,-.229297,.425213,.582822,.868891,-.230999,.418576,.612847,.878941,-.231155,.410405,.642445,.888809,-.230935,.400544,.672024,.898089,-.229343,.389613,.701366,.908081,-.226886,.377197,.730763,.916819,-.222676,.363397,.759642,.924968,-.216835,.347437,.788775,.932906,-.210245,.32995,.817135,.940025,-.202992,.312262,.844912,.946101,-.19436,.293313,.872164,.952835,-.184125,.273638,.899443,.957347,-.173657,.252385,.926389,.961434,-.162204,.231038,.951947,.965522,-.14979,.209834,.976751,.969412,-.136307,.188821,1.00022,.973902,-.122527,.168013,1.02229,.974045,-.108213,.147634,1.04199,.975775,-.0927397,.12705,1.06019,.978383,-.0778212,.106309,1.07711,.98211,-.0621216,.0849279,1.09245,.986517,-.0463847,.0633519,1.10651,.991696,-.0309353,.0419698,1.11903,.996349,-.0150914,.0206272,1.13073,1.00003,442449e-9,-231396e-9,1.14146,.727498,-885074e-11,.441528,145832e-10,.730897,-223525e-9,.443589,368298e-9,.730796,-893996e-9,.443528,.00147303,.730805,-.00201149,.443533,.00331433,.730814,-.00357596,.443538,.00589222,.730815,-.00558734,.443538,.00920678,.730822,-.00804544,.44354,.0132582,.730836,-.0109501,.443545,.0180468,.730848,-.0143008,.443546,.0235732,.730871,-.0180969,.443552,.0298382,.730915,-.022338,.443567,.0368438,.730982,-.0270225,.443591,.044591,.731076,-.0321491,.443627,.0530831,.731245,-.0377166,.443699,.0623243,.73144,-.0437216,.443777,.0723181,.7317,-.0501576,.443881,.0830691,.732034,-.0569942,.444014,.0945809,.732388,-.0638756,.444113,.106825,.732853,-.071203,.444247,.119859,.733473,-.0790076,.444442,.13369,.734195,-.0871937,.444645,.148304,.735069,-.095696,.444877,.163702,.736169,-.10426,.445133,.179861,.73747,-.112853,.44537,.196778,.738991,-.12199,.445651,.214496,.740865,-.131153,.445958,.232913,.743637,-.140245,.446548,.251977,.746797,-.149722,.447246,.271551,.751517,-.159341,.448656,.291774,.756156,-.169106,.449866,.312455,.761519,-.178436,.450919,.334552,.768295,-.186904,.451776,.358491,.776613,-.195117,.452832,.383446,.783966,-.202695,.45249,.408945,.793542,-.20985,.452587,.435364,.803192,-.216403,.451852,.462336,.813892,-.22251,.450708,.48987,.824968,-.227676,.4486,.517697,.835859,-.232443,.445156,.545975,.846825,-.235775,.440351,.574483,.858085,-.237897,.433641,.604246,.868825,-.238074,.425354,.634101,.879638,-.237661,.415383,.664201,.889966,-.236186,.404136,.693918,.899479,-.233599,.390917,.723481,.908769,-.229737,.376352,.75258,.917966,-.223836,.360372,.781764,.926304,-.217067,.342551,.811139,.934626,-.209309,.324238,.839585,.941841,-.20071,.304484,.867044,.94789,-.190602,.283607,.894579,.954196,-.179253,.262205,.921743,.958383,-.167646,.239847,.948026,.963119,-.155073,.218078,.973296,.966941,-.141426,.195899,.998135,.970836,-.126849,.174121,1.02021,.973301,-.112296,.153052,1.04085,.97448,-.0964965,.131733,1.05946,.977045,-.080489,.10997,1.07693,.980751,-.064844,.0881657,1.09254,.985475,-.0481938,.0657987,1.10697,.991089,-.0319185,.0435215,1.12004,.996122,-.0158088,.0214779,1.13173,1.00001,372455e-9,-200295e-9,1.14291,.708622,-907597e-11,.45304,141962e-10,.711162,-228911e-9,.454662,358052e-9,.709812,-914446e-9,.453797,.00143034,.709865,-.00205819,.453834,.00321935,.709864,-.00365894,.453833,.00572331,.709855,-.00571692,.453826,.00894278,.709862,-.00823201,.453828,.012878,.709875,-.011204,.453832,.0175295,.709896,-.0146323,.453839,.0228978,.709925,-.0185163,.453847,.0289839,.709974,-.0228551,.453866,.0357894,.710045,-.0276473,.453892,.0433161,.710133,-.032891,.453924,.0515665,.710292,-.0385851,.453992,.0605458,.710485,-.0447254,.45407,.0702574,.710769,-.0513051,.454192,.0807077,.711106,-.0582733,.454329,.091896,.711516,-.0652866,.45446,.103814,.712071,-.0728426,.454653,.116508,.712676,-.0808307,.45484,.129968,.713476,-.0892216,.455096,.144206,.714377,-.0979047,.455346,.159212,.715579,-.106531,.455647,.174973,.716977,-.115492,.455961,.191504,.71862,-.124821,.456315,.208835,.72084,-.134079,.4568,.226869,.723786,-.143427,.457521,.245582,.727464,-.153061,.458475,.264957,.732771,-.162768,.460239,.284948,.736515,-.172627,.460899,.30522,.743519,-.182487,.463225,.326717,.750041,-.191295,.464027,.350113,.758589,-.199746,.465227,.374782,.767703,-.207584,.465877,.400226,.777484,-.214973,.465996,.426442,.788792,-.221796,.466019,.453688,.800194,-.228038,.465083,.481246,.811234,-.233346,.462506,.509086,.822859,-.238073,.459257,.537338,.835082,-.241764,.454863,.566108,.846332,-.244241,.448163,.595126,.858355,-.244736,.439709,.625574,.87034,-.244278,.429837,.65617,.881027,-.24255,.418002,.686029,.891007,-.239912,.404325,.716039,.900874,-.236133,.389222,.745518,.911072,-.230672,.373269,.775026,.920359,-.22356,.355083,.804521,.928604,-.215591,.335533,.834045,.937175,-.206503,.315278,.861612,.942825,-.196684,.293653,.889131,.949805,-.185116,.271503,.916853,.955535,-.172703,.248821,.943541,.959843,-.159978,.225591,.970132,.964393,-.146375,.202719,.994709,.968008,-.131269,.179928,1.0186,.971013,-.11569,.158007,1.03928,.973334,-.1003,.13624,1.05887,.975775,-.0833352,.1138,1.07652,.979579,-.0668981,.0913141,1.09297,.984323,-.0500902,.0683051,1.10734,.990351,-.0332377,.0451771,1.12084,.995823,-.0161491,.0221705,1.13296,1.0001,234083e-9,-108712e-9,1.14441,.683895,-924677e-11,.46015,137429e-10,.68833,-233383e-9,.463134,346865e-9,.688368,-933547e-9,.463159,.00138748,.688367,-.00210049,.463159,.00312187,.688369,-.00373415,.463159,.00555004,.688377,-.00583449,.463163,.00867216,.688386,-.00840128,.463166,.0124884,.688398,-.0114343,.463169,.0169993,.688418,-.0149329,.463175,.0222054,.688453,-.0188964,.463188,.028108,.688515,-.0233239,.463214,.0347085,.68857,-.0282136,.463231,.0420091,.688679,-.033564,.463276,.0500132,.688854,-.0393733,.463356,.0587255,.689038,-.0456354,.46343,.0681476,.689321,-.0523433,.463553,.0782897,.689662,-.059412,.463693,.0891501,.690188,-.0665736,.4639,.100735,.690755,-.0743106,.464107,.113074,.691405,-.0824722,.464329,.126161,.692198,-.0910484,.464585,.140007,.693196,-.0998778,.464893,.154612,.69454,-.108651,.465285,.169984,.695921,-.117855,.465596,.186106,.697749,-.12734,.466056,.203034,.700375,-.136714,.466771,.220703,.703395,-.146386,.467579,.239062,.707904,-.156096,.469067,.258188,.711673,-.165904,.469851,.277759,.717489,-.175812,.471815,.297935,.724051,-.185931,.47389,.318916,.731965,-.195238,.47587,.341591,.741151,-.204021,.477523,.366062,.751416,-.212113,.478881,.391396,.761848,-.21979,.479226,.417599,.771886,-.2267,.478495,.444401,.783998,-.232991,.477622,.472084,.796523,-.238645,.475833,.500193,.808851,-.243396,.472568,.52865,.821191,-.247226,.467857,.557362,.834261,-.250102,.461871,.586768,.846762,-.251056,.453543,.617085,.859867,-.250604,.443494,.647659,.871948,-.248783,.431711,.678119,.882967,-.245855,.417911,.708399,.892826,-.242168,.401993,.738256,.90332,-.237062,.385371,.767999,.913633,-.22997,.366837,.798191,.922774,-.221687,.346372,.827756,.931371,-.212345,.325682,.856425,.938929,-.20206,.303665,.884299,.944821,-.190981,.280786,.912023,.951792,-.178065,.2573,.939669,.957712,-.164634,.233448,.96655,.961912,-.150863,.209504,.992366,.966382,-.13577,.18597,1.01633,.969588,-.119593,.162905,1.03843,.971777,-.103203,.14053,1.05841,.97433,-.0865888,.117909,1.07632,.978686,-.0690829,.0944101,1.09326,.983281,-.0516568,.0705671,1.10796,.989562,-.034558,.0468592,1.12182,.995465,-.0167808,.0229846,1.1342,.999991,373016e-9,-235606e-9,1.1459,.662251,-939016e-11,.468575,132714e-10,.666634,-237624e-9,.471675,335842e-9,.666411,-950385e-9,.471516,.00134321,.666399,-.00213833,.471509,.00302221,.666386,-.0038014,.471499,.00537283,.666405,-.00593958,.471511,.00839533,.666406,-.00855253,.471508,.0120898,.666428,-.0116401,.471519,.0164569,.666444,-.0152015,.471522,.0214971,.66649,-.0192362,.471543,.027212,.666537,-.0237428,.471558,.033603,.666617,-.0287198,.471591,.0406728,.666718,-.0341647,.471631,.0484238,.666889,-.0400759,.47171,.0568621,.667104,-.0464479,.471805,.0659915,.667374,-.0532677,.471923,.0758178,.667772,-.0603805,.472098,.0863425,.668371,-.0677392,.472363,.0975917,.668971,-.0756028,.472596,.109567,.669696,-.0839293,.472869,.122272,.670481,-.0926683,.473126,.135718,.6715,-.1016,.473442,.149914,.672911,-.110566,.47389,.164882,.674512,-.119984,.474354,.180602,.67651,-.129574,.474922,.19711,.679292,-.139106,.475764,.214371,.682798,-.148993,.476886,.232405,.686955,-.158737,.478179,.251153,.691406,-.168754,.479432,.270436,.697438,-.178703,.481481,.290374,.704761,-.188955,.484143,.311044,.713599,-.198814,.487007,.333003,.723194,-.207869,.488962,.357144,.732601,-.216189,.489815,.382169,.744193,-.22398,.490888,.408227,.754907,-.231156,.490355,.434928,.767403,-.23747,.489548,.462599,.78107,-.243503,.488274,.490908,.793893,-.248114,.484843,.519421,.807296,-.25222,.4803,.548561,.820529,-.255265,.474097,.577772,.833716,-.256741,.466041,.607782,.848403,-.25637,.456547,.638807,.860755,-.254804,.443946,.670058,.874012,-.251834,.430852,.700749,.885619,-.247867,.414903,.731446,.896069,-.242634,.397276,.761191,.906266,-.236093,.378535,.791053,.916759,-.227543,.358038,.821298,.92523,-.21783,.335705,.850747,.93436,-.207534,.313797,.879258,.941631,-.195983,.289671,.907734,.947564,-.183567,.265319,.935206,.953681,-.169345,.240815,.962739,.960008,-.154909,.216119,.989227,.964145,-.140161,.192096,1.01465,.968171,-.123411,.167855,1.03737,.969859,-.106525,.144817,1.05767,.972666,-.0891023,.12149,1.0761,.977055,-.0718094,.0975306,1.09336,.982527,-.0534213,.0730217,1.10878,.989001,-.0355579,.0483366,1.12285,.99512,-.0176383,.023938,1.13548,1.00007,368831e-9,-211581e-9,1.14744,.651047,-960845e-11,.484101,12922e-9,.644145,-241347e-9,.478968,324578e-9,.64396,-965142e-9,.478831,.00129798,.64396,-.00217154,.47883,.00292046,.643968,-.00386049,.478835,.00519202,.643974,-.00603186,.478838,.0081128,.643977,-.0086854,.478836,.011683,.643982,-.0118207,.478834,.0159031,.644024,-.0154374,.478856,.0207743,.644059,-.0195343,.478868,.0262975,.644122,-.0241103,.478896,.0324747,.644207,-.0291638,.478933,.039309,.64432,-.0346919,.478981,.0468029,.644481,-.0406919,.479053,.0549614,.644722,-.047159,.479169,.0637909,.645013,-.0540748,.479302,.0732974,.645503,-.0612001,.479541,.0834898,.646117,-.0687303,.479829,.0943873,.646707,-.0767846,.480061,.105991,.647431,-.0852465,.480343,.11831,.64831,-.0940719,.48066,.131348,.649486,-.103056,.481083,.14514,.650864,-.112261,.481528,.159676,.652604,-.121852,.482102,.174979,.654825,-.131505,.482813,.191079,.657876,-.141189,.483876,.207927,.661339,-.151239,.48499,.225586,.665463,-.161091,.486279,.243947,.670542,-.171235,.487968,.262957,.677361,-.181347,.49053,.282781,.685672,-.191679,.493862,.303311,.694551,-.201781,.49699,.324607,.703753,-.211164,.498884,.347916,.713703,-.219675,.500086,.372628,.725911,-.227836,.501554,.398694,.73862,-.23533,.502193,.425529,.752118,-.241786,.501811,.453209,.76579,-.247865,.500185,.481381,.779568,-.252696,.497159,.51011,.793991,-.256802,.492765,.539322,.808182,-.259942,.486827,.569078,.821698,-.261703,.478386,.598818,.836009,-.262006,.468772,.629762,.849824,-.260333,.456352,.661366,.863888,-.257398,.442533,.69295,.876585,-.253264,.426573,.723608,.888665,-.248026,.408964,.754378,.899537,-.241487,.389677,.784761,.9094,-.233463,.368516,.814688,.920166,-.223397,.346624,.845009,.928899,-.21255,.322717,.874431,.937156,-.200869,.298698,.902922,.943861,-.188387,.273491,.931356,.949557,-.174341,.247866,.958854,.955862,-.158994,.222496,.986098,.961721,-.143664,.197522,1.01229,.965976,-.127412,.17302,1.03571,.968652,-.109798,.148954,1.05699,.971084,-.0916787,.125044,1.07587,.975584,-.0739634,.100577,1.09372,.98122,-.055322,.0753666,1.10948,.988253,-.0366825,.0498899,1.12394,.99482,-.0180389,.024611,1.13694,1.00001,229839e-9,-188283e-9,1.14919,.613867,-964198e-11,.479449,123452e-10,.621485,-244534e-9,.485399,313091e-9,.621429,-978202e-9,.485353,.00125245,.62112,-.00220004,.485114,.00281687,.621119,-.0039111,.485112,.00500783,.621122,-.00611091,.485112,.00782498,.621133,-.00879922,.485117,.0112687,.621152,-.0119756,.485125,.0153394,.621183,-.0156396,.485139,.0200382,.621227,-.0197898,.485158,.0253663,.621298,-.0244253,.485192,.0313261,.621388,-.0295441,.485233,.0379204,.621507,-.0351432,.485286,.0451523,.621693,-.0412198,.485378,.0530277,.621933,-.0477673,.485495,.0615522,.622232,-.0547574,.485635,.0707316,.622809,-.0619417,.485943,.0805883,.623407,-.069625,.486232,.0911267,.62406,-.077796,.486516,.102354,.624835,-.0863731,.486838,.114279,.625758,-.095251,.487188,.126902,.627043,-.104299,.487695,.140285,.628438,-.113724,.488163,.154397,.630325,-.123417,.488858,.169267,.632801,-.133137,.489754,.184941,.635784,-.143052,.490815,.20136,.639406,-.153132,.492048,.218643,.643872,-.163143,.49363,.236615,.6499,-.17333,.496009,.255449,.657201,-.183622,.498994,.275006,.666221,-.194019,.502888,.295354,.674419,-.204192,.505459,.316244,.683729,-.21406,.507771,.33849,.695584,-.222854,.510245,.363166,.708583,-.231315,.512293,.389071,.721233,-.238911,.512747,.415737,.735134,-.245657,.512482,.443331,.750179,-.251879,.511526,.471891,.765073,-.256911,.508935,.500892,.779794,-.261144,.504341,.530294,.794801,-.264316,.498515,.560144,.810339,-.266276,.491015,.590213,.824818,-.266981,.481126,.620865,.839375,-.265778,.468685,.652687,.853043,-.262748,.453925,.684759,.867335,-.258474,.437912,.716209,.88037,-.253187,.419648,.747508,.891711,-.246476,.39982,.77797,.902896,-.238735,.37879,.808586,.913601,-.22885,.355891,.838843,.923019,-.217656,.331773,.869014,.933432,-.205539,.307356,.898512,.939691,-.192595,.281321,.9269,.946938,-.178945,.255441,.955297,.952372,-.163587,.229013,.983231,.95909,-.147214,.203179,1.00971,.963675,-.13064,.17792,1.03438,.968247,-.113121,.152898,1.05625,.97001,-.0945824,.128712,1.07598,.974458,-.0755648,.103349,1.094,.980168,-.0571998,.0776731,1.1104,.987295,-.0377994,.0514445,1.12491,.994432,-.0186417,.025429,1.13851,.999975,542714e-9,-282356e-9,1.15108,.592656,-980249e-11,.486018,119532e-10,.598467,-247275e-9,.490781,301531e-9,.597934,-988317e-9,.490343,.00120517,.597903,-.00222366,.490319,.0027116,.597913,-.00395315,.490327,.00482077,.597919,-.00617653,.490329,.00753264,.597936,-.00889375,.490339,.0108478,.597956,-.0121043,.490347,.0147668,.597992,-.0158073,.490365,.0192905,.598032,-.0200017,.490382,.0244204,.598109,-.0246865,.49042,.0301593,.598215,-.0298594,.490474,.03651,.59833,-.0355167,.490524,.0434757,.598525,-.0416559,.490624,.0510629,.598778,-.0482692,.490753,.0592781,.599135,-.0553114,.49094,.0681304,.599802,-.062542,.491328,.0776467,.600361,-.0703638,.491598,.0878184,.60101,-.0786256,.491882,.0986573,.601811,-.0872962,.492232,.11018,.602861,-.0962284,.492684,.1224,.604167,-.10538,.493213,.135354,.605693,-.114896,.493799,.149034,.607682,-.124654,.494576,.163469,.610672,-.13456,.4959,.178747,.613313,-.144581,.496713,.194723,.617603,-.154703,.498499,.211617,.622174,-.16489,.500188,.229183,.628855,-.175164,.503072,.247786,.636963,-.185565,.506798,.267116,.644866,-.195911,.509719,.28702,.653741,-.206104,.512776,.307763,.664942,-.216447,.516812,.329631,.67633,-.22552,.519181,.353515,.690012,-.234316,.521681,.379226,.704243,-.242032,.523129,.405901,.719396,-.249172,.523768,.433585,.734471,-.255543,.522541,.462085,.750539,-.260697,.520217,.491233,.766365,-.26501,.516293,.521094,.781677,-.268409,.509708,.551014,.797132,-.270399,.501944,.581463,.812655,-.271247,.492025,.612402,.828592,-.270708,.480424,.643798,.844044,-.268085,.465955,.67682,.857305,-.263459,.448425,.708496,.87114,-.258151,.430243,.74046,.884936,-.251171,.410578,.771583,.895772,-.243305,.38862,.802234,.906961,-.234037,.365214,.833179,.917775,-.222714,.34116,.86353,.927883,-.210175,.31572,.893557,.936617,-.196925,.289159,.922976,.943384,-.182788,.261996,.951606,.949713,-.167965,.235324,.979958,.955818,-.151109,.208408,1.00765,.961344,-.133834,.182591,1.03329,.965469,-.115987,.156958,1.0557,.968693,-.09746,.132239,1.07583,.973165,-.0778514,.106195,1.09451,.979387,-.0585067,.0797669,1.11137,.98671,-.0390409,.0530263,1.12643,.994093,-.019408,.0263163,1.14016,1.00002,540029e-9,-194487e-9,1.15299,.574483,-989066e-11,.494533,114896e-10,.574478,-249127e-9,.494528,289403e-9,.574607,-996811e-9,.494637,.00115797,.574396,-.00224241,.494458,.00260498,.574377,-.00398632,.49444,.00463102,.574386,-.00622836,.494445,.00723623,.574401,-.0089683,.494453,.010421,.574419,-.0122056,.49446,.0141859,.574459,-.0159396,.494481,.0185322,.574525,-.0201692,.49452,.0234617,.574587,-.0248924,.494547,.0289762,.574697,-.0301074,.494604,.0350797,.574853,-.0358114,.494688,.0417767,.575027,-.041999,.494772,.0490718,.575294,-.0486618,.494915,.0569728,.575733,-.0557148,.495173,.0654955,.576356,-.0630489,.495537,.0746612,.576944,-.0709285,.495836,.0844615,.57765,-.0792723,.496177,.0949142,.578491,-.0880167,.496563,.10603,.579639,-.0969462,.497096,.117841,.580989,-.10622,.497684,.130367,.582587,-.115861,.498337,.143609,.584951,-.125605,.499414,.157625,.587602,-.135608,.500518,.172413,.59076,-.145742,.501767,.187999,.594992,-.155934,.503542,.20445,.600656,-.166303,.506135,.221764,.607816,-.176681,.509542,.24002,.61522,-.187071,.51263,.258992,.623702,-.197465,.516021,.278773,.634192,-.207816,.520422,.299377,.644936,-.218183,.524073,.320802,.657888,-.2278,.528049,.34384,.670666,-.236747,.52986,.36916,.685626,-.24484,.531892,.395867,.701304,-.252071,.532727,.423488,.717727,-.258714,.532146,.452201,.733914,-.264211,.529883,.481579,.750529,-.26859,.5259,.511558,.76747,-.272046,.51999,.542042,.785189,-.274225,.513083,.572799,.800954,-.275189,.502936,.603816,.816962,-.274946,.490921,.635461,.83336,-.272695,.47684,.6676,.848143,-.268223,.459405,.70051,.861818,-.262768,.440319,.732902,.876828,-.255872,.420123,.765084,.889312,-.247703,.398379,.796391,.900412,-.238381,.374496,.827333,.912251,-.227783,.349874,.858385,.921792,-.214832,.323181,.888652,.931273,-.200949,.296624,.917763,.940295,-.186537,.269211,.947878,.946812,-.171538,.241447,.977016,.953588,-.155254,.213829,1.00501,.958841,-.137156,.186807,1.03179,.963746,-.118699,.160706,1.05502,.966468,-.0998358,.135504,1.07568,.971178,-.0805186,.109131,1.09479,.97831,-.0599348,.0818293,1.1123,.985886,-.0399661,.0545872,1.12771,.994021,-.0198682,.0269405,1.14186,1.00009,271022e-9,-12989e-8,1.15514,.538716,-990918e-11,.486732,109675e-10,.550656,-250642e-9,.497518,277412e-9,.55057,-.00100265,.497441,.00110974,.550903,-.00225672,.497733,.00249779,.550568,-.00401046,.497438,.00443906,.550574,-.00626613,.49744,.00693637,.550591,-.0090226,.497449,.00998921,.550623,-.0122795,.497469,.0135984,.550667,-.0160361,.497495,.0177654,.550724,-.0202908,.497526,.0224915,.550792,-.0250421,.497557,.0277795,.550918,-.0302878,.49763,.0336334,.551058,-.0360241,.497701,.0400573,.551276,-.0422473,.497824,.0470585,.551551,-.0489441,.497977,.0546433,.552074,-.0559596,.498312,.0628367,.552681,-.0633978,.498679,.071646,.553324,-.0713176,.499031,.0810746,.554011,-.0797268,.499365,.091129,.55488,-.0885238,.499779,.101837,.556171,-.0974417,.500444,.113239,.557498,-.106841,.501025,.125316,.559299,-.116533,.501864,.138128,.561647,-.126298,.502967,.151695,.564347,-.136388,.504129,.16604,.567863,-.146576,.505713,.181207,.572569,-.156832,.507953,.197259,.578919,-.167323,.511186,.214258,.585387,-.177712,.514042,.232038,.593134,-.188184,.517484,.250733,.603295,-.198717,.522345,.270454,.613854,-.209177,.526751,.290807,.626092,-.219644,.531595,.312202,.637868,-.229494,.534721,.334435,.652458,-.238718,.538304,.359184,.666985,-.247061,.539875,.385637,.683301,-.254652,.541042,.41328,.69998,-.261376,.540735,.441903,.717824,-.267085,.539139,.471609,.734617,-.271465,.534958,.501446,.753663,-.27528,.53032,.532571,.770512,-.277617,.522134,.563641,.787356,-.278525,.51206,.595067,.806252,-.278512,.50119,.627226,.822061,-.277023,.486791,.659402,.838959,-.273175,.470467,.692874,.85379,-.267238,.450688,.725702,.868268,-.260327,.429741,.75832,.881994,-.251946,.407223,.790189,.893885,-.242432,.383214,.821625,.905118,-.231904,.357297,.853011,.916045,-.219545,.330733,.883773,.927614,-.205378,.303916,.914435,.936005,-.190388,.275941,.944502,.944533,-.1749,.247493,.974439,.950758,-.158588,.218996,1.00286,.957078,-.141027,.191559,1.0304,.962448,-.121507,.164457,1.05466,.964993,-.102068,.138636,1.0761,.970017,-.0822598,.111861,1.09541,.97661,-.062033,.0843438,1.11317,.985073,-.0409832,.0558496,1.12911,.993515,-.020146,.0275331,1.1438,1.00006,27329e-8,-107883e-9,1.15736,.525324,-999341e-11,.498153,105385e-10,.526513,-251605e-9,.499277,265329e-9,.526517,-.00100641,.499282,.0010613,.526588,-.00226466,.499337,.00238823,.526539,-.0040255,.499302,.00424535,.526547,-.00628954,.499306,.00663364,.526561,-.00905628,.499313,.00955337,.526593,-.0123253,.499334,.0130054,.526642,-.0160957,.499365,.0169911,.5267,-.0203661,.499396,.0215122,.526792,-.0251347,.499451,.0265718,.526904,-.0303985,.499511,.0321732,.527079,-.0361554,.499617,.0383231,.527285,-.0423982,.499731,.045026,.527602,-.0491121,.499924,.0522936,.528166,-.0561127,.500306,.0601528,.52879,-.0635988,.5007,.0686059,.529421,-.071581,.501048,.0776518,.530144,-.0799854,.501421,.0873148,.531062,-.0888032,.501884,.0976084,.532374,-.0977643,.50259,.108588,.533828,-.107197,.50329,.120234,.53581,-.116887,.504312,.132602,.538063,-.126755,.505365,.145721,.5409,-.136819,.506668,.159617,.544882,-.147117,.508731,.174369,.550238,-.157446,.511601,.190028,.556038,-.167988,.514431,.206587,.563031,-.178364,.517808,.224046,.571543,-.189007,.521937,.242503,.582255,-.199546,.527415,.261977,.59272,-.210084,.531682,.282162,.605648,-.220448,.537123,.303426,.61785,-.230593,.540664,.325323,.632223,-.240238,.544467,.348993,.648819,-.24887,.547594,.375462,.665825,-.256657,.54912,.403024,.683389,-.263711,.549294,.431773,.701495,-.269666,.547649,.461494,.719197,-.274169,.543786,.491623,.737906,-.278124,.538644,.522994,.756652,-.280632,.531057,.554775,.775279,-.281741,.521972,.586441,.792688,-.281652,.509613,.618596,.811894,-.280345,.496497,.651462,.827938,-.277128,.47968,.684023,.844837,-.271646,.460688,.718024,.859239,-.264397,.438872,.751207,.874088,-.256144,.41577,.784232,.887693,-.246311,.391369,.816191,.899402,-.235497,.365872,.847828,.910973,-.223631,.338618,.87934,.92204,-.209874,.310803,.910325,.930987,-.194265,.281802,.940695,.94,-.178125,.252836,.970958,.948018,-.161479,.224239,1.00078,.955141,-.144038,.195857,1.0288,.960513,-.124915,.168487,1.05371,.963964,-.104284,.141495,1.07596,.968713,-.0838732,.114437,1.09628,.975524,-.0635579,.0863105,1.11448,.98431,-.042291,.0574774,1.13069,.992916,-.0209131,.0284343,1.14568,.999926,743097e-9,-379265e-9,1.15955,.501042,-998428e-11,.498726,100306e-10,.502992,-252112e-9,.500665,253283e-9,.502417,-.00100791,.500092,.00101259,.502965,-.00226919,.500621,.00227978,.502318,-.00403109,.499994,.00405011,.502333,-.00629832,.500005,.00632868,.502362,-.00906907,.500027,.00911446,.502369,-.0123423,.500023,.0124078,.50243,-.0161178,.500066,.016211,.502493,-.0203937,.500103,.0205256,.502592,-.0251684,.500166,.0253548,.502707,-.0304389,.50023,.0307029,.502881,-.0362015,.500335,.0365753,.503124,-.0424507,.500488,.0429798,.503443,-.0491582,.500686,.0499268,.504083,-.0561476,.501155,.0574541,.504668,-.0636846,.501524,.0655408,.505319,-.0716834,.501904,.0742072,.50609,-.0800925,.502321,.0834699,.507122,-.0888425,.502896,.0933603,.508414,-.097855,.503603,.10391,.509955,-.107304,.504416,.115113,.512061,-.116921,.505565,.127054,.514419,-.12689,.506732,.139709,.517529,-.136934,.508338,.153173,.522085,-.147327,.510987,.167528,.526986,-.157612,.513527,.182708,.533122,-.168213,.516717,.198881,.540807,-.178688,.520832,.215986,.550687,-.189511,.52632,.234335,.560567,-.199998,.531009,.253375,.571698,-.210652,.535839,.273499,.584364,-.220917,.541091,.294355,.599066,-.23137,.546875,.316525,.614148,-.241206,.551306,.339671,.631157,-.250379,.555187,.36531,.647919,-.258397,.556595,.392767,.666112,-.265528,.556949,.421397,.686158,-.271827,.556617,.451433,.704838,-.27674,.552975,.482131,.723957,-.280733,.547814,.513458,.74262,-.283359,.53997,.545446,.762009,-.284541,.530422,.57775,.781314,-.284507,.518546,.610434,.799116,-.283309,.504178,.643178,.817604,-.280378,.48843,.676248,.83459,-.275619,.469457,.709698,.850974,-.26856,.447698,.744245,.866747,-.260094,.424791,.777695,.881412,-.249929,.399913,.810392,.8936,-.239137,.37308,.842872,.905943,-.226818,.345705,.874677,.916408,-.213699,.31706,.906257,.927215,-.198428,.288444,.936881,.935625,-.181643,.258329,.96795,.944076,-.164386,.228488,.998216,.951229,-.146339,.199763,1.02689,.958793,-.127709,.172153,1.0535,.963219,-.107244,.144989,1.07646,.967562,-.0857764,.11685,1.09675,.974866,-.0645377,.0880571,1.11576,.983353,-.0431732,.0587352,1.13227,.992503,-.0218356,.0294181,1.1478,1.00003,605203e-9,-231013e-9,1.16207,.482935,-101177e-10,.504695,968142e-11,.477554,-251521e-9,.499071,240676e-9,.477904,-.00100683,.499436,96342e-8,.478368,-.00226636,.499899,.0021687,.477977,-.00402719,.499513,.00385384,.477993,-.00629226,.499525,.0060221,.478011,-.00906011,.499536,.00867289,.478051,-.0123305,.499566,.0118074,.478089,-.016102,.499587,.0154269,.478171,-.0203736,.499645,.0195341,.478254,-.025143,.499692,.0241318,.47839,-.0304071,.499779,.0292247,.478588,-.0361631,.499911,.0348196,.478812,-.0424023,.500046,.0409231,.479208,-.0490724,.500326,.047552,.479841,-.0560722,.500805,.0547377,.480392,-.0636125,.501152,.0624607,.481068,-.0716134,.501561,.0707473,.481898,-.0800062,.502054,.0796118,.483022,-.0886568,.502728,.0890974,.484332,-.0977553,.503479,.0992099,.486126,-.107173,.504546,.10999,.488066,-.11677,.50557,.121476,.490521,-.126725,.506849,.133672,.494232,-.136793,.50911,.146731,.498302,-.147116,.511345,.160577,.503565,-.157446,.514344,.175335,.510902,-.168121,.518824,.191207,.519263,-.178799,.523666,.208058,.528204,-.189407,.528296,.225875,.538854,-.200145,.533724,.244782,.551278,-.210701,.539833,.264753,.565222,-.221303,.546131,.285745,.579403,-.231688,.551496,.307592,.595469,-.241718,.556809,.330582,.610929,-.250992,.559641,.354995,.629433,-.259602,.562379,.382471,.648504,-.267038,.563676,.411126,.66756,-.273388,.562092,.440924,.689143,-.278788,.560807,.472118,.709056,-.282783,.555701,.503774,.729855,-.285836,.548698,.536364,.748954,-.287078,.538544,.56895,.768373,-.287133,.526711,.601991,.78827,-.285839,.512511,.635403,.807465,-.283238,.496323,.668797,.825194,-.27906,.477638,.702584,.842203,-.272286,.456253,.736393,.857749,-.263854,.432412,.77096,.874799,-.253943,.407806,.80489,.887497,-.24237,.38033,.83771,.89966,-.230278,.352446,.870376,.911753,-.21646,.323268,.902256,.923011,-.202071,.294314,.933306,.932375,-.185519,.264104,.965177,.940537,-.167604,.234035,.996303,.948904,-.149068,.20412,1.0261,.955263,-.129539,.175431,1.05304,.960303,-.109932,.148116,1.07617,.965512,-.0880572,.119693,1.09742,.973466,-.0660548,.0901619,1.11721,.98284,-.0439228,.0599875,1.13436,.992216,-.0219588,.0298975,1.15006,.999946,119402e-9,-208547e-10,1.16471,.447827,-100414e-10,.491543,914833e-11,.454778,-251257e-9,.499172,22891e-8,.453519,-.00100342,.497787,914184e-9,.45357,-.00225776,.497847,.00205701,.453578,-.00401371,.497855,.00365705,.45357,-.00627107,.497841,.00571453,.453598,-.00902968,.497864,.00823019,.453627,-.0122888,.497882,.0112049,.453684,-.0160475,.497923,.0146405,.453764,-.0203044,.49798,.0185394,.453866,-.0250576,.498049,.0229054,.453996,-.0303028,.49813,.0277424,.454196,-.0360379,.498267,.0330587,.454457,-.0422521,.498445,.0388613,.454926,-.0488393,.498812,.0451767,.455525,-.0558653,.499272,.0520153,.456074,-.0633772,.499625,.0593754,.456752,-.0713606,.500049,.0672751,.457648,-.07971,.500615,.0757447,.458849,-.0883032,.501399,.0848231,.46029,-.0974095,.502293,.0945135,.462,-.106729,.503301,.104848,.464121,-.116354,.504533,.115884,.466889,-.126214,.506172,.127652,.470744,-.136324,.508667,.14024,.47488,-.146595,.510995,.153673,.480845,-.157027,.514832,.168053,.488262,-.167658,.519506,.183508,.496547,-.178343,.524347,.199948,.506254,-.188916,.52983,.217503,.517961,-.199975,.536357,.236272,.531484,-.210624,.543641,.256096,.545496,-.221227,.550048,.277085,.559497,-.231568,.555076,.298615,.575752,-.241698,.560541,.321547,.591999,-.251172,.564156,.345602,.610654,-.260178,.567607,.371851,.630484,-.268094,.56923,.40076,.651807,-.274661,.569779,.430801,.67239,-.280331,.566791,.461939,.693024,-.284501,.562007,.493854,.715473,-.287852,.555791,.526992,.736323,-.28929,.546345,.560102,.755771,-.289405,.534,.593543,.775424,-.2881,.519114,.627256,.795447,-.285562,.502543,.661464,.815319,-.281416,.484773,.695206,.831769,-.275523,.463445,.729044,.849464,-.267516,.440269,.764069,.866775,-.257584,.415049,.799089,.881252,-.245817,.388049,.831948,.894209,-.233127,.35889,.865526,.906922,-.219579,.329915,.89818,.919686,-.204491,.300441,.930013,.929044,-.188962,.269445,.962061,.938393,-.171079,.238402,.994214,.94661,-.15199,.208204,1.02533,.953095,-.131953,.178653,1.0529,.958644,-.111233,.150684,1.0771,.963925,-.0903098,.122359,1.09855,.971995,-.0680505,.0923342,1.11874,.981658,-.0448512,.0614195,1.13635,.991649,-.0221931,.0303582,1.15238,.999985,393403e-9,-111086e-9,1.16772,.396806,-971563e-11,.457671,842355e-11,.429186,-249421e-9,.495017,21625e-8,.429324,-998052e-9,.495173,865322e-9,.429175,-.00224487,.494999,.00194637,.429129,-.00399041,.494952,.00346004,.429153,-.00623476,.494974,.00540684,.429168,-.0089773,.494983,.00778714,.429207,-.0122175,.495012,.0106022,.429257,-.0159542,.495047,.0138535,.429338,-.0201864,.495106,.0175443,.429431,-.0249104,.495165,.0216774,.429587,-.0301252,.495279,.0262594,.429796,-.0358249,.495432,.0312968,.430065,-.0419972,.495621,.0367985,.430588,-.0485144,.496061,.042798,.43113,-.0555028,.496472,.0492914,.431743,-.0629852,.496904,.0562907,.432448,-.0709256,.497369,.0638056,.433414,-.0791942,.498032,.071885,.434638,-.0877346,.498854,.0805517,.43611,-.0968056,.499812,.0898047,.437859,-.106002,.500891,.0997142,.440017,-.115648,.502198,.110289,.443236,-.125427,.504389,.121644,.44697,-.135492,.506809,.133769,.451689,-.145746,.509858,.146787,.45811,-.156219,.514247,.160793,.465305,-.166834,.518816,.175791,.474085,-.177546,.524331,.191906,.484808,-.188262,.53104,.209199,.49732,-.199346,.538511,.227825,.509693,-.209951,.544554,.247269,.524367,-.220533,.551616,.267978,.539228,-.231082,.557368,.289672,.55644,-.241342,.563782,.31268,.574204,-.250964,.568851,.33651,.593388,-.260306,.57312,.362219,.613358,-.268667,.574916,.390322,.634512,-.275591,.575053,.420478,.65563,-.281328,.572404,.451614,.678265,-.285948,.568893,.484112,.70011,-.289408,.561878,.517348,.723005,-.291328,.55359,.551355,.743744,-.291418,.541099,.585109,.763949,-.290252,.526489,.619487,.784186,-.287648,.509496,.65404,.804304,-.283782,.491484,.688649,.823629,-.278067,.470517,.723133,.84094,-.270588,.44705,.757163,.857852,-.261188,.421252,.792816,.874934,-.249313,.394191,.827248,.888709,-.236492,.365359,.861074,.902589,-.222185,.336016,.894417,.914201,-.207314,.30527,.926825,.925978,-.191146,.274532,.9595,.93512,-.174135,.243393,.991583,.943656,-.155231,.212414,1.02356,.951719,-.134403,.182005,1.05239,.957164,-.113023,.153043,1.07754,.962656,-.0914493,.124186,1.09984,.970695,-.0694179,.0941654,1.12,.980749,-.0466199,.0629671,1.13849,.991205,-.0227032,.0311146,1.15494,.999884,632388e-9,-254483e-9,1.1706,.379821,-957289e-11,.460637,789337e-11,.405188,-247483e-9,.491396,204064e-9,.404796,-989434e-9,.490914,815853e-9,.40483,-.00222607,.490949,.00183559,.40473,-.00395723,.49084,.00326332,.404731,-.00618287,.490836,.00509945,.404768,-.00890258,.490871,.00734463,.404791,-.0121156,.490883,.00999992,.404857,-.0158214,.490938,.0130676,.404943,-.0200178,.491004,.0165503,.405059,-.0247027,.491093,.0204521,.405213,-.0298729,.491205,.0247788,.405399,-.0355226,.491333,.0295373,.405731,-.0416352,.491604,.034741,.406303,-.0480807,.492116,.0404255,.406814,-.0550458,.492506,.0465732,.407404,-.0624652,.492926,.0532058,.408149,-.0702958,.493442,.0603442,.409128,-.0784623,.494136,.0680297,.410408,-.087007,.495054,.0762786,.411813,-.0959639,.495962,.0851046,.413735,-.105075,.497257,.0945878,.416137,-.114646,.498882,.104725,.41934,-.124394,.501132,.11563,.423326,-.134328,.503883,.127325,.428419,-.14458,.50747,.139911,.43484,-.154979,.511964,.153481,.442641,-.165628,.517328,.168114,.452511,-.176365,.524258,.183995,.463473,-.187298,.531248,.200953,.475564,-.198244,.538367,.219176,.488664,-.208938,.545175,.238514,.504073,-.219599,.553227,.259129,.520832,-.230378,.560653,.280997,.538455,-.240703,.567523,.303821,.55709,-.250548,.573287,.327948,.576646,-.259964,.577795,.353362,.596705,-.268721,.580077,.380336,.618053,-.276054,.58018,.4101,.640303,-.282176,.578747,.44161,.662365,-.286931,.574294,.474106,.684542,-.290521,.567035,.507549,.707984,-.292672,.558687,.541853,.730913,-.293189,.547606,.576581,.752948,-.292199,.533471,.61172,.773452,-.289508,.516395,.646339,.794715,-.285716,.497873,.682131,.814251,-.280051,.476845,.716396,.833057,-.272873,.453449,.751503,.84959,-.263982,.427857,.786085,.867022,-.252745,.400335,.821355,.882277,-.239655,.371304,.85646,.895375,-.225386,.340397,.890828,.909347,-.209587,.310005,.923532,.921885,-.193433,.2796,.956419,.932127,-.176135,.247276,.989445,.941869,-.157872,.216186,1.02221,.949735,-.137577,.185602,1.05195,.956617,-.115285,.155767,1.07822,.961974,-.0928418,.126103,1.10149,.96972,-.0700592,.0956758,1.12207,.98012,-.0474671,.0643269,1.1408,.990825,-.0238113,.0320863,1.1577,.999876,381574e-9,-812203e-10,1.17403,.367636,-961342e-11,.469176,753287e-11,.380377,-244772e-9,.485434,191797e-9,.380416,-978857e-9,.485475,767015e-9,.380376,-.00220165,.485435,.00172522,.380419,-.00391408,.485487,.00306734,.380438,-.00611549,.485505,.00479332,.380462,-.00880558,.485525,.00690391,.380496,-.0119837,.485551,.00940039,.38056,-.0156487,.485605,.0122848,.38064,-.0197988,.485666,.0155601,.380767,-.0244324,.48577,.0192313,.380909,-.0295444,.485871,.0233032,.381142,-.0351321,.48606,.0277861,.381472,-.0411535,.486336,.0326939,.382015,-.0475408,.486833,.0380565,.382523,-.0544395,.487231,.0438615,.383129,-.061784,.487683,.0501332,.383952,-.0695085,.488313,.0568996,.38498,-.0775819,.489077,.0641952,.386331,-.0860443,.490113,.0720324,.387788,-.0948406,.491099,.0804379,.389808,-.103899,.492566,.0894899,.39252,-.113313,.494601,.0992098,.395493,-.123007,.496619,.109641,.399826,-.132859,.499912,.120919,.405341,-.143077,.504061,.133107,.411932,-.153465,.508905,.146263,.420591,-.164108,.515482,.160544,.43101,-.174893,.523191,.176123,.441881,-.185839,.53026,.192757,.453919,-.196633,.537295,.210535,.468715,-.207611,.546156,.229886,.485182,-.218517,.555173,.250543,.501926,-.229249,.562728,.27221,.51785,-.239481,.567494,.294892,.536947,-.249395,.573889,.318987,.557115,-.259,.578831,.344348,.577966,-.268075,.582055,.371223,.599489,-.276115,.583307,.399834,.62479,-.282523,.583902,.431415,.647504,-.287663,.57953,.464301,.670601,-.291538,.573103,.498123,.693539,-.293842,.563731,.532662,.717385,-.294681,.553169,.567925,.741533,-.293717,.539908,.603502,.762142,-.291156,.521902,.639074,.783014,-.28719,.502815,.674439,.805158,-.281773,.482598,.710497,.823646,-.274682,.458949,.7456,.841879,-.266184,.433129,.781085,.859515,-.255682,.406064,.816,.875335,-.242849,.376509,.851074,.890147,-.228329,.345502,.886473,.903144,-.212491,.31428,.920751,.916618,-.195695,.282994,.954606,.927953,-.178267,.251091,.988402,.937414,-.159549,.219107,1.02141,.946823,-.140022,.18896,1.05167,.954651,-.118154,.158667,1.07819,.959955,-.0946636,.128808,1.1025,.96858,-.0711792,.0973787,1.12391,.97938,-.0475046,.0650965,1.14322,.990498,-.024059,.0326267,1.16077,.999844,-512408e-10,112444e-9,1.17727,.316912,-934977e-11,.425996,695559e-11,.356423,-241372e-9,.479108,179562e-9,.356272,-965292e-9,.478897,71811e-8,.356262,-.00217182,.478894,.00161574,.356265,-.00386092,.478895,.00287261,.356278,-.0060324,.478905,.00448907,.356293,-.00868565,.478914,.00646572,.356346,-.0118207,.478965,.00880438,.356395,-.0154355,.479001,.0115066,.356484,-.019529,.479075,.0145762,.356609,-.0240991,.47918,.018018,.356766,-.0291413,.479305,.0218379,.357009,-.0346498,.479512,.0260454,.357424,-.0405462,.479909,.0306657,.357899,-.0468825,.480337,.0357054,.358424,-.0536887,.480771,.0411728,.359041,-.0609416,.481242,.0470841,.359903,-.0685239,.481943,.0534831,.360932,-.0764883,.482741,.0603795,.362196,-.0848364,.483688,.0678028,.363847,-.0935002,.484947,.0758086,.365972,-.102471,.486588,.0844173,.368741,-.111751,.488787,.0937199,.372146,-.121334,.491405,.103732,.377114,-.131147,.495604,.114608,.38226,-.141213,.499436,.126345,.389609,-.151632,.505334,.139116,.397925,-.162073,.51168,.152995,.407824,-.172819,.518876,.168071,.420014,-.183929,.527639,.184495,.434266,-.195032,.537588,.20232,.447352,-.205792,.544379,.221189,.463726,-.216704,.553422,.241616,.481406,-.227531,.562074,.263298,.498707,-.238017,.568227,.286116,.518039,-.247936,.574473,.3101,.538277,-.257437,.579191,.335401,.561166,-.266829,.584807,.362246,.583189,-.275329,.586476,.390609,.606024,-.28234,.585578,.420998,.632419,-.287924,.584496,.454357,.656128,-.291972,.577766,.488233,.679953,-.29456,.56875,.523248,.704654,-.295816,.558388,.559168,.729016,-.295157,.544826,.595326,.752062,-.292779,.528273,.631864,.773138,-.288681,.508482,.667793,.794869,-.283358,.487341,.704035,.815101,-.27608,.46354,.739925,.834212,-.26767,.438672,.775539,.852368,-.257397,.411239,.810895,.870207,-.245689,.3829,.846472,.884063,-.231452,.351496,.881788,.898284,-.215561,.31895,.917438,.912964,-.198208,.287367,.952422,.924666,-.180426,.254487,.987551,.934429,-.161525,.222226,1.02142,.943485,-.141197,.191143,1.05218,.9521,-.120085,.161112,1.07937,.957876,-.0975881,.130982,1.10403,.966943,-.0726842,.0990553,1.12616,.978313,-.0483705,.0662818,1.14619,.990048,-.0239072,.0329243,1.16413,.999984,461885e-9,-772859e-10,1.18099,.321287,-935049e-11,.455413,659662e-11,.332595,-237513e-9,.471437,167562e-9,.332729,-949964e-9,.471618,670192e-9,.332305,-.00213618,.471028,.00150712,.332326,-.00379765,.471055,.00267959,.332344,-.00593353,.471072,.00418751,.332356,-.00854349,.471077,.00603172,.332403,-.0116268,.471121,.00821362,.332461,-.0151824,.47117,.0107357,.332552,-.0192088,.471251,.0136014,.332657,-.0237024,.47133,.0168152,.332835,-.0286615,.471487,.0203853,.333083,-.0340765,.471708,.0243212,.333547,-.0398563,.47219,.0286518,.333989,-.0460916,.472587,.0333763,.334532,-.0527897,.473054,.0385084,.335167,-.0599284,.473568,.0440638,.33608,-.0673514,.474362,.0500962,.337146,-.0752237,.475231,.0566022,.338462,-.083418,.476282,.0636272,.34014,-.0919382,.477615,.0712153,.342341,-.100741,.479404,.079417,.345088,-.109905,.481618,.0882631,.349049,-.119369,.485081,.0978851,.353939,-.129033,.489317,.108336,.359893,-.139038,.494309,.119698,.366945,-.149411,.499983,.132024,.375814,-.159843,.507185,.145558,.387112,-.170664,.516392,.160433,.40023,-.181897,.526519,.176648,.412555,-.192785,.53423,.193922,.427023,-.203663,.542741,.212662,.443685,-.214695,.552066,.232944,.461499,-.225561,.560762,.254495,.480975,-.236257,.569421,.277531,.501,-.24639,.576101,.301724,.521691,-.256101,.581493,.327112,.543478,-.265289,.585221,.353917,.566094,-.273938,.587614,.381941,.589578,-.281679,.587991,.41172,.614583,-.287655,.585928,.444148,.641813,-.292228,.582092,.478617,.666189,-.295172,.57398,.51397,.690475,-.29648,.561676,.550118,.715543,-.296203,.548758,.586933,.740405,-.293999,.532792,.62384,.762183,-.28998,.512735,.660723,.786069,-.28478,.492402,.69807,.806812,-.277568,.469058,.734422,.826987,-.268951,.443017,.770946,.844588,-.259049,.415501,.80699,.863725,-.2471,.387328,.842107,.879137,-.234157,.356108,.878078,.894634,-.218719,.324315,.914058,.909162,-.201293,.291813,.949922,.92072,-.18267,.258474,.985337,.93158,-.163212,.225593,1.0205,.941238,-.142771,.193986,1.05273,.949293,-.120956,.163392,1.08075,.956226,-.0985743,.132934,1.10559,.96546,-.075118,.101255,1.12823,.977403,-.0497921,.0675441,1.149,.989648,-.0241574,.0334681,1.16765,1.00001,5762e-7,-184807e-9,1.18519,.303474,-916603e-11,.4542,61243e-10,.308894,-232869e-9,.462306,155592e-9,.309426,-931661e-9,.463093,622499e-9,.308643,-.0020949,.461933,.00139979,.308651,-.0037242,.461941,.00248874,.308662,-.00581873,.46195,.00388933,.308687,-.00837818,.461974,.00560247,.308728,-.0114016,.462011,.00762948,.308789,-.0148884,.462067,.00997326,.308882,-.0188369,.462151,.0126375,.309007,-.0232436,.462263,.0156271,.30918,-.0281054,.462417,.0189498,.309442,-.0334065,.462667,.0226167,.309901,-.0390589,.463162,.0266614,.310331,-.0452042,.463555,.0310715,.310858,-.0517735,.464019,.0358698,.311576,-.0587359,.464669,.0410848,.312436,-.0660383,.465406,.0467453,.313526,-.0737266,.466339,.0528718,.314903,-.0817574,.467504,.0595039,.316814,-.090167,.469226,.0666888,.318965,-.0987555,.470981,.0744658,.322077,-.107792,.473814,.082912,.325947,-.117098,.477241,.0920846,.331008,-.126602,.48184,.102137,.337893,-.136619,.488334,.113135,.345106,-.146838,.494415,.12511,.355111,-.157357,.503275,.138356,.365095,-.167955,.510966,.152686,.378344,-.179157,.521508,.16856,.391599,-.190143,.530455,.18561,.407786,-.20123,.541275,.204308,.425294,-.212456,.551784,.224623,.444021,-.223568,.561493,.246172,.463418,-.234154,.569886,.268979,.484077,-.244546,.577116,.293411,.505513,-.254301,.582914,.318936,.527672,-.263564,.587208,.345856,.550565,-.272332,.589277,.374054,.573656,-.280011,.588426,.403276,.59827,-.286924,.587504,.43474,.624731,-.291994,.583401,.468767,.652396,-.295159,.576997,.504411,.67732,-.296954,.565863,.54114,.703147,-.296877,.552316,.57816,.728715,-.295147,.536773,.616124,.752448,-.291275,.51771,.653885,.775169,-.285905,.496087,.691537,.799307,-.279064,.474232,.729251,.819482,-.270294,.447676,.766267,.837659,-.260032,.419656,.802616,.856903,-.248497,.391328,.838583,.873325,-.235252,.360285,.874711,.889788,-.221126,.329215,.91077,.904486,-.204304,.296392,.94653,.917711,-.185562,.262159,.983828,.928969,-.165635,.229142,1.01955,.939707,-.14442,.19673,1.05317,.948167,-.122147,.165095,1.0823,.955222,-.099098,.13451,1.10791,.964401,-.0755332,.102476,1.1312,.976605,-.0513817,.0689667,1.15218,.989085,-.0258499,.034506,1.17129,.999908,617773e-9,-271268e-9,1.18961,.285803,-905752e-11,.452348,572272e-11,.284689,-22732e-8,.450581,143626e-9,.285263,-910214e-9,.451482,575099e-9,.285302,-.00204784,.451553,.00129395,.285318,-.00364057,.451574,.0023006,.28533,-.00568813,.451585,.00359547,.285361,-.00819001,.451618,.00517934,.285397,-.0111458,.45165,.007054,.285447,-.0145536,.451688,.00922167,.285527,-.0184127,.451758,.0116869,.285688,-.0227207,.451929,.0144555,.28584,-.0274712,.452055,.0175341,.286136,-.0326278,.452369,.0209406,.286574,-.0381792,.452853,.0246965,.287012,-.0441879,.453272,.0287996,.287542,-.0506096,.453752,.033268,.288299,-.0573634,.454488,.0381504,.289186,-.0645458,.455294,.0434447,.290302,-.0720405,.456301,.0491973,.291776,-.0799046,.457648,.0554453,.29372,-.088117,.459483,.0622311,.296052,-.0965328,.461571,.0695992,.299563,-.105409,.465085,.077658,.30335,-.114553,.468506,.0864176,.309167,-.123917,.474423,.0961078,.31529,-.13381,.47995,.106643,.324163,-.144021,.488592,.118322,.333272,-.154382,.496461,.131133,.344224,-.165015,.50562,.145208,.357733,-.176168,.516719,.16073,.373046,-.187468,.528513,.177807,.38788,-.198488,.537713,.196072,.405133,-.209545,.547999,.21605,.423845,-.220724,.55759,.237484,.443777,-.231518,.566246,.26039,.464824,-.242035,.574326,.284835,.486635,-.251898,.58037,.310518,.51012,-.261304,.58568,.337678,.535301,-.270384,.590197,.366242,.559193,-.27841,.590569,.395873,.583544,-.285325,.588161,.426857,.608834,-.291113,.584249,.459477,.635753,-.294882,.57763,.494734,.664367,-.297088,.569479,.532023,.689688,-.297364,.555064,.569629,.715732,-.295949,.539522,.608124,.741307,-.292259,.521613,.646231,.764949,-.287063,.49969,.684938,.788599,-.28012,.476747,.723548,.81048,-.27153,.45116,.761135,.831372,-.261289,.424101,.798916,.850092,-.249559,.39443,.835952,.867777,-.236348,.363849,.871606,.884632,-.221569,.332477,.907843,.90047,-.20618,.300667,.944187,.914524,-.188771,.266552,.981371,.926892,-.168362,.232349,1.01841,.937951,-.146761,.199359,1.05308,.947236,-.123813,.1675,1.0839,.954367,-.099984,.136166,1.11047,.963907,-.0759278,.103808,1.13414,.976218,-.0511367,.0697061,1.15575,.988772,-.0267415,.0352529,1.17531,.999888,-520778e-9,289926e-9,1.19389,.263546,-883274e-11,.441896,526783e-11,.262352,-221849e-9,.439889,132311e-9,.262325,-886683e-9,.439848,528824e-9,.26228,-.00199476,.439765,.00118975,.262372,-.00354671,.439922,.00211568,.26239,-.00554141,.439941,.00330652,.262412,-.00797888,.439961,.00476346,.262453,-.0108584,.440002,.00648818,.262528,-.0141788,.440085,.0084835,.262615,-.017938,.440166,.0107533,.262744,-.0221346,.440291,.0133044,.262939,-.026762,.440493,.0161445,.263277,-.0317573,.440889,.0192974,.26368,-.0371832,.441338,.0227699,.264106,-.0430371,.441753,.0265698,.264624,-.0493035,.442227,.0307178,.265378,-.0558669,.442985,.0352616,.266253,-.0628718,.443795,.0401968,.267478,-.0701569,.445008,.04559,.269062,-.077845,.446599,.0514539,.270926,-.0857941,.448349,.0578382,.273693,-.0940773,.451221,.0648363,.276746,-.102704,.454097,.0724389,.281693,-.111735,.459517,.0808744,.287335,-.121004,.46531,.0901551,.29448,-.130734,.472605,.100371,.30257,-.140777,.480251,.111644,.312465,-.15111,.489444,.124111,.324856,-.16189,.500919,.137979,.33774,-.172946,.511317,.153163,.35255,-.184152,.522684,.169817,.367786,-.19522,.53248,.187886,.385474,-.20632,.543326,.207634,.404976,-.217744,.554109,.229165,.425203,-.228691,.563395,.252068,.446704,-.239299,.571565,.276471,.468951,-.249348,.577935,.302323,.493487,-.258933,.584309,.329882,.517861,-.268009,.58773,.358525,.543309,-.276238,.589612,.388585,.569704,-.28356,.589294,.419787,.594871,-.289497,.585137,.452114,.622555,-.294452,.580356,.486466,.651167,-.296918,.57185,.523079,.677332,-.297647,.558428,.5611,.703718,-.296321,.542232,.599592,.730262,-.293339,.524541,.639138,.754304,-.288036,.502691,.677978,.778051,-.281018,.479212,.716537,.801557,-.272414,.454071,.75586,.822559,-.262419,.425952,.794477,.843051,-.250702,.397313,.832664,.86232,-.237264,.366534,.869876,.879044,-.222716,.334816,.906973,.896362,-.206827,.303143,.943558,.910342,-.189659,.269699,.979759,.924119,-.171108,.236411,1.01718,.935374,-.149579,.202224,1.05289,.944295,-.126295,.16989,1.08496,.952227,-.101511,.138089,1.11256,.962041,-.0766392,.105053,1.1375,.97528,-.0511967,.070329,1.15983,.988476,-.025463,.0351268,1.17987,.999962,286808e-10,145564e-10,1.19901,.227089,-841413e-11,.404216,472707e-11,.239725,-215083e-9,.426708,120833e-9,.239904,-860718e-9,.427028,483555e-9,.239911,-.00193661,.427039,.00108806,.239914,-.00344276,.42704,.00193457,.239933,-.00537907,.427064,.00302363,.239944,-.00774482,.427065,.00435604,.239993,-.01054,.427122,.00593398,.240052,-.0137626,.427179,.00775987,.240148,-.0174115,.427279,.00983854,.240278,-.021484,.42741,.0121763,.240472,-.0259729,.427618,.0147827,.240839,-.0308131,.428086,.0176837,.241201,-.0360893,.428482,.0208775,.241626,-.0417723,.428907,.0243821,.242207,-.0478337,.42952,.0282228,.24298,-.0542199,.430332,.0324333,.243881,-.0610015,.431222,.0370252,.245123,-.0680874,.432512,.0420535,.24667,-.0755482,.434088,.0475414,.248779,-.0832873,.436323,.0535542,.251665,-.0913546,.439509,.0601716,.255305,-.0998489,.443478,.0674282,.260049,-.108576,.448713,.0754673,.266192,-.117754,.455524,.084339,.273158,-.127294,.4627,.0941683,.282131,-.137311,.472068,.10515,.293332,-.147736,.483565,.117402,.304667,-.158357,.493702,.130824,.317785,-.169274,.504708,.145724,.333245,-.180595,.517107,.16215,.349843,-.191892,.528849,.180149,.367944,-.203168,.540301,.199746,.387579,-.214443,.551514,.221047,.408247,-.225624,.560906,.243981,.43014,-.236422,.56959,.268513,.452669,-.24654,.576098,.294409,.476196,-.256157,.580925,.322002,.501157,-.265289,.584839,.351052,.527632,-.273671,.587614,.3812,.555754,-.281254,.589119,.412994,.581682,-.287448,.585204,.445498,.608196,-.292614,.579006,.479505,.635661,-.296068,.571297,.514643,.664999,-.297395,.560855,.552213,.691039,-.296645,.544525,.591365,.7179,-.293785,.526535,.630883,.744059,-.289089,.50545,.670932,.76863,-.282239,.482514,.710904,.793273,-.273688,.457246,.750259,.814731,-.26328,.428872,.78948,.835603,-.251526,.399384,.828597,.85489,-.238339,.368811,.866892,.872828,-.223607,.336617,.90563,.889462,-.207538,.303997,.943538,.904929,-.190297,.270812,.980591,.919101,-.172034,.237453,1.01935,.930536,-.152058,.204431,1.05498,.941223,-.129515,.172495,1.08717,.94982,-.104263,.140175,1.11551,.960592,-.0781944,.106465,1.14098,.974629,-.051688,.0711592,1.16418,.98811,-.0253929,.0354432,1.18465,1.00004,804378e-9,-330876e-9,1.20462,.214668,-821282e-11,.406619,433582e-11,.218053,-208144e-9,.413025,109887e-9,.217987,-832212e-9,.412901,439362e-9,.217971,-.00187246,.412876,988623e-9,.217968,-.00332855,.41286,.00175772,.217985,-.00520055,.412882,.00274729,.218014,-.00748814,.412916,.00395842,.218054,-.0101901,.412957,.00539274,.218106,-.0133057,.413005,.00705348,.218217,-.0168342,.413139,.00894581,.218338,-.0207707,.413258,.0110754,.21855,-.0251001,.413509,.0134551,.218913,-.0297861,.413992,.0161081,.219265,-.0348956,.414383,.0190307,.219696,-.0403909,.414839,.0222458,.220329,-.0462003,.415567,.025792,.220989,-.0524208,.41621,.0296637,.222027,-.058948,.417385,.0339323,.223301,-.0658208,.418779,.0386055,.224988,-.0730347,.420665,.0437355,.227211,-.0805274,.423198,.0493844,.230131,-.088395,.426566,.0556135,.233908,-.0966208,.43091,.0624829,.239092,-.105223,.437148,.0701636,.245315,-.11424,.444302,.0786949,.253166,-.12368,.453262,.0882382,.262374,-.133569,.463211,.0988682,.273145,-.143836,.474271,.110727,.285512,-.154577,.4863,.123945,.299512,-.165501,.498817,.138581,.314287,-.176698,.510341,.154676,.331083,-.188066,.522583,.172459,.349615,-.199597,.534879,.191979,.369318,-.210843,.546083,.21309,.390377,-.222068,.5562,.235998,.412411,-.233059,.564704,.260518,.435715,-.24357,.572314,.286795,.461196,-.253356,.579395,.314559,.485587,-.262362,.581985,.343581,.511908,-.270895,.584347,.374367,.539798,-.278452,.58505,.406015,.567974,-.284877,.583344,.439168,.594303,-.290124,.577348,.473005,.622951,-.294183,.570751,.508534,.652404,-.296389,.561541,.544764,.679291,-.296605,.546426,.582927,.706437,-.294095,.528599,.622681,.734485,-.28978,.508676,.663567,.758841,-.283363,.484768,.704092,.78537,-.275015,.460434,.745101,.807315,-.264689,.432166,.784712,.8271,-.252597,.401807,.824241,.849191,-.239154,.371458,.863803,.867046,-.224451,.338873,.903063,.8852,-.208342,.306175,.942763,.901771,-.190684,.272759,.981559,.915958,-.172105,.239306,1.02048,.928046,-.152214,.206071,1.05765,.939961,-.130247,.17367,1.08999,.948711,-.10672,.142201,1.11829,.959305,-.0808688,.108454,1.14467,.973009,-.0539145,.0728109,1.16839,.987631,-.0262947,.0360625,1.19004,.999978,.00132758,-559424e-9,1.21058,.193925,-793421e-11,.391974,392537e-11,.196746,-200315e-9,.397675,991033e-10,.19667,-801099e-9,.397521,396342e-9,.196633,-.00180246,.397445,891829e-9,.196654,-.00320443,.397482,.00158582,.196659,-.00500647,.39748,.00247867,.196683,-.0072086,.397506,.00357167,.196728,-.00981001,.397562,.00486675,.196792,-.0128096,.397633,.00636707,.19689,-.0162055,.397746,.00807752,.197017,-.0199943,.397884,.0100052,.19729,-.024139,.39827,.0121691,.197583,-.0286671,.398639,.0145755,.197927,-.0335858,.399034,.0172355,.198383,-.0388806,.399554,.0201718,.199002,-.0444736,.400289,.0234194,.199739,-.0504583,.401111,.026984,.200784,-.056729,.402349,.0309217,.202075,-.0633643,.403841,.0352496,.203898,-.0703247,.406076,.0400313,.206199,-.0775565,.408841,.0453282,.209252,-.085184,.41259,.0511794,.213638,-.0931994,.418288,.0577459,.21881,-.101617,.424681,.0650508,.225642,-.11052,.433429,.0732759,.233717,-.119772,.442897,.0824683,.242823,-.129505,.452888,.0927484,.254772,-.139906,.466407,.104417,.266603,-.150402,.477413,.117211,.28073,-.161395,.490519,.131598,.295399,-.172465,.50201,.147407,.312705,-.183982,.515311,.165031,.331335,-.195532,.52786,.184336,.351037,-.206971,.5392,.205361,.372175,-.218117,.54941,.228043,.394548,-.229327,.558642,.25267,.419598,-.240052,.567861,.279071,.443922,-.249937,.573332,.306882,.471495,-.259407,.58013,.33661,.496769,-.267749,.580564,.367328,.524951,-.275524,.581696,.399753,.55318,-.282148,.579885,.433134,.581577,-.287533,.575471,.467534,.609231,-.291612,.567445,.502943,.637478,-.293911,.557657,.53871,.667795,-.295096,.546535,.576568,.694272,-.294073,.529561,.614929,.722937,-.290386,.510561,.655909,.749682,-.284481,.487846,.697663,.774754,-.276188,.462487,.738515,.799301,-.266215,.43481,.779802,.820762,-.254116,.404879,.820045,.843231,-.240393,.374559,.860294,.861857,-.225503,.341582,.900965,.880815,-.209382,.308778,.941727,.89766,-.19155,.275232,.980916,.912926,-.172346,.240938,1.02162,.926391,-.151799,.207223,1.0597,.938429,-.129968,.17484,1.09291,.947834,-.10651,.142984,1.12248,.958432,-.0824098,.109902,1.149,.972402,-.0565242,.0744454,1.1733,.987191,-.028427,.0373794,1.19538,.999975,385685e-10,-4203e-8,1.21676,.178114,-766075e-11,.385418,354027e-11,.176074,-191966e-9,.381002,887135e-10,.17601,-767549e-9,.380861,354715e-9,.17598,-.00172696,.380798,798168e-9,.175994,-.00307012,.380824,.00141928,.176017,-.00479684,.380858,.00221859,.176019,-.00690648,.380839,.00319714,.176072,-.00939888,.380913,.0043572,.176131,-.0122726,.380979,.005702,.176239,-.0155264,.38112,.00723689,.176371,-.0191551,.381272,.00896907,.176638,-.023117,.381669,.0109194,.176912,-.0274633,.382015,.0130903,.177279,-.032173,.382476,.0154949,.17774,-.0372219,.383041,.0181669,.178344,-.0426132,.38378,.0211209,.179153,-.0483309,.384773,.0243899,.180197,-.0543447,.386076,.0280062,.181581,-.0607122,.387809,.032004,.18344,-.0673855,.390205,.036453,.186139,-.0743989,.393944,.0414162,.189432,-.0817731,.39832,.0469394,.193795,-.0895464,.404188,.0531442,.199641,-.0978264,.4121,.0601374,.206679,-.106499,.421425,.0680078,.214865,-.115654,.431504,.076919,.224406,-.125268,.442526,.0868835,.235876,-.135475,.455465,.0981875,.248335,-.146023,.4681,.110759,.262868,-.157016,.482069,.124885,.278962,-.168245,.496182,.140645,.295082,-.17958,.507401,.157838,.313738,-.191227,.520252,.17695,.333573,-.202718,.531708,.197817,.356433,-.214424,.544509,.220785,.378853,-.225492,.55373,.245306,.402717,-.236236,.561348,.271593,.428375,-.246568,.568538,.299776,.454724,-.255941,.573462,.329433,.482291,-.264511,.576356,.360598,.509706,-.272129,.576446,.393204,.538805,-.278979,.575298,.427227,.568919,-.284528,.572154,.462157,.596804,-.288801,.564691,.497997,.625987,-.291334,.555134,.534467,.656414,-.292722,.545051,.571736,.683916,-.292185,.528813,.610158,.711809,-.290043,.51106,.649061,.739547,-.285246,.490103,.690081,.766914,-.277647,.465523,.732554,.791375,-.267603,.437718,.773982,.814772,-.256109,.40882,.81609,.836691,-.242281,.377823,.856849,.856984,-.227155,.34496,.898363,.876332,-.210395,.311335,.939471,.894988,-.192612,.277703,.980799,.911113,-.173236,.243019,1.02215,.924092,-.152258,.209037,1.06139,.936828,-.129575,.175909,1.09635,.946869,-.10594,.143852,1.12707,.958284,-.081318,.110289,1.15419,.972325,-.0556133,.0747232,1.17909,.986878,-.0297899,.0383149,1.20163,.999936,-.00197169,912402e-9,1.22338,.151174,-720365e-11,.351531,309789e-11,.155594,-18279e-8,.361806,78608e-9,.156099,-731569e-9,.362982,314615e-9,.156053,-.00164578,.362869,707845e-9,.156093,-.0029261,.362961,.00125884,.156099,-.00457155,.362959,.00196783,.15612,-.00658224,.362982,.00283622,.156168,-.00895774,.363048,.00386625,.156221,-.0116962,.363101,.00506109,.156324,-.0147973,.363241,.00642675,.156476,-.0182503,.363448,.00797175,.156731,-.0220266,.36384,.00971484,.156994,-.026176,.364179,.0116575,.157341,-.0306701,.36462,.0138207,.157867,-.0354591,.365364,.0162356,.15846,-.0406141,.366111,.0189092,.159308,-.0460519,.367248,.021885,.160426,-.0518096,.368767,.0252004,.161877,-.0578906,.370745,.0288825,.163995,-.0642812,.373831,.0330139,.16655,-.0710067,.377366,.0376283,.170237,-.0781522,.382799,.0428493,.175096,-.0857172,.389915,.0487324,.181069,-.0938025,.398487,.0554214,.188487,-.102363,.408799,.0630189,.197029,-.111343,.419991,.071634,.206684,-.120812,.431455,.0812797,.218698,-.131033,.445746,.0923651,.230726,-.141373,.457471,.104545,.245516,-.152387,.472388,.118449,.261551,-.163628,.486671,.133923,.277437,-.174814,.49762,.150849,.296662,-.186713,.51162,.169924,.31795,-.198513,.525435,.190848,.339422,-.210119,.536267,.213504,.362143,-.221354,.545982,.237947,.387198,-.23224,.555364,.264427,.412349,-.24257,.561489,.292519,.439274,-.252284,.566903,.322561,.466779,-.261023,.569614,.353952,.496011,-.26899,.571589,.387278,.524964,-.275498,.570325,.421356,.556518,-.281449,.568792,.457314,.584363,-.285526,.560268,.493199,.614214,-.28844,.55205,.530276,.645684,-.289777,.541906,.56855,.673446,-.289722,.526464,.606927,.701924,-.287792,.509872,.645945,.73037,-.284315,.490649,.685564,.757405,-.278804,.467964,.726511,.784025,-.269543,.441468,.768601,.808255,-.258117,.41216,.811321,.830739,-.244728,.380606,.853496,.851914,-.229428,.348111,.895374,.872586,-.212508,.314732,.937674,.891581,-.194025,.280338,.979869,.907641,-.174711,.245203,1.02253,.922233,-.153509,.21077,1.06371,.935878,-.130418,.177399,1.09972,.946338,-.105558,.144507,1.13124,.957265,-.080059,.110508,1.15973,.971668,-.0539766,.0742311,1.18515,.9866,-.0277101,.0375224,1.20858,1.00021,-515531e-9,135226e-9,1.23135,.137468,-686011e-11,.345041,273315e-11,.13703,-173378e-9,.343936,690761e-10,.136986,-693048e-9,.34383,276126e-9,.136964,-.00155931,.343761,621337e-9,.137003,-.00277211,.343863,.00110494,.137012,-.00433103,.343868,.00172744,.137043,-.00623606,.343916,.00249022,.13709,-.0084868,.343986,.00339559,.137145,-.0110814,.344045,.00444687,.137242,-.0140187,.344177,.00565007,.137431,-.0172713,.344491,.00701868,.137644,-.0208605,.344805,.00856042,.13791,-.024792,.345172,.0102863,.138295,-.0290461,.345734,.0122185,.138764,-.0335957,.346371,.0143771,.139415,-.038467,.347298,.0167894,.140272,-.0436176,.348527,.0194895,.141457,-.0491016,.350276,.0225043,.14303,-.0548764,.352646,.0258962,.145289,-.0610096,.356206,.0297168,.148502,-.0674777,.361488,.0340562,.152188,-.074345,.367103,.0389534,.157359,-.0817442,.375247,.0445541,.16379,-.0896334,.385064,.0509535,.171376,-.098005,.396082,.0582611,.179901,-.106817,.407418,.06654,.189892,-.116239,.420031,.075994,.201838,-.12627,.434321,.0867239,.214311,-.136701,.447631,.0987517,.228902,-.147616,.462046,.112353,.245107,-.158871,.476942,.127605,.262292,-.170261,.490285,.144469,.281215,-.182017,.503783,.163282,.301058,-.193729,.515505,.183873,.322752,-.205512,.52682,.206466,.347547,-.217214,.539473,.231194,.370969,-.227966,.546625,.257288,.397533,-.238555,.55472,.285789,.42398,-.248278,.559468,.315746,.452928,-.257422,.564095,.347724,.482121,-.265306,.565426,.380922,.510438,-.272043,.563205,.415639,.541188,-.277614,.561087,.451702,.571667,-.281927,.554922,.48845,.602432,-.285015,.546838,.526442,.634126,-.286512,.537415,.564896,.662816,-.286388,.522906,.604037,.692411,-.284734,.507003,.643795,.720946,-.281297,.488398,.68298,.748293,-.276262,.466353,.723466,.776931,-.269978,.443573,.764565,.801065,-.260305,.415279,.805838,.825843,-.247426,.384773,.849985,.84807,-.232437,.352555,.893174,.869122,-.215806,.318642,.936564,.888963,-.197307,.28381,.980253,.905547,-.177203,.247888,1.02463,.918554,-.155542,.212904,1.06714,.931395,-.131948,.1787,1.10451,.941749,-.106723,.145902,1.13694,.954551,-.0804939,.111193,1.1666,.970279,-.0534239,.0744697,1.19249,.986117,-.0257452,.0368788,1.21665,.999938,.00190634,-.0010291,1.23981,.118493,-647439e-11,.32272,23772e-10,.118765,-163023e-9,.323456,598573e-10,.118772,-65212e-8,.323477,239447e-9,.118843,-.00146741,.323657,538881e-9,.118804,-.00260846,.323553,95826e-8,.118826,-.00407576,.323595,.00149845,.118846,-.00586826,.323617,.00216047,.118886,-.00798578,.32367,.00294679,.118947,-.0104273,.323753,.00386124,.119055,-.0131909,.323922,.00490999,.119241,-.0162444,.324251,.00610804,.11944,-.0196339,.324544,.00745805,.119739,-.0233378,.325026,.00897805,.12011,-.0273179,.325586,.0106895,.120571,-.0316143,.326231,.0126073,.12124,-.0361939,.327264,.0147654,.122162,-.0410511,.328733,.0172001,.123378,-.0462233,.330659,.0199375,.125183,-.0517109,.333754,.0230498,.127832,-.0575652,.338507,.026597,.130909,-.0637441,.343666,.0306345,.135221,-.0704302,.351063,.035273,.14082,-.0776364,.360604,.0406137,.146781,-.0852293,.369638,.0466788,.155121,-.0935351,.3827,.0537628,.16398,-.102234,.39522,.0617985,.173926,-.111465,.40793,.07097,.185137,-.121296,.42105,.0813426,.19826,-.13169,.435735,.0931596,.212938,-.142614,.450932,.106547,.229046,-.153884,.465726,.121575,.246246,-.165382,.479461,.138286,.264637,-.176806,.492106,.15666,.284959,-.188793,.504774,.17728,.308157,-.200763,.518805,.19988,.330951,-.21239,.528231,.224293,.3549,-.223521,.536376,.250541,.381502,-.234169,.544846,.278902,.409529,-.244077,.551717,.309227,.437523,-.253363,.55517,.341426,.467624,-.261659,.557772,.37518,.497268,-.268498,.556442,.41007,.528294,-.274018,.553915,.446445,.559053,-.278169,.549153,.483779,.589329,-.281229,.539878,.522249,.622503,-.282902,.53162,.561754,.652382,-.282815,.518119,.601544,.681847,-.281247,.502187,.641574,.712285,-.277986,.484824,.682633,.740094,-.273017,.463483,.723426,.768478,-.266692,.441299,.763747,.794556,-.258358,.415238,.805565,.819408,-.248807,.386912,.847254,.843411,-.236214,.356165,.891091,.862397,-.219794,.320562,.936174,.883113,-.201768,.285322,.982562,.90023,-.181672,.249713,1.02862,.915192,-.159279,.214546,1.07163,.928458,-.134725,.180285,1.10995,.94069,-.10913,.147119,1.14354,.953409,-.0821315,.112492,1.17372,.969537,-.0542677,.0752014,1.20043,.985612,-.0259096,.0370361,1.22528,.999835,.00298198,-.00151801,1.24959,.10097,-602574e-11,.300277,202619e-11,.101577,-152164e-9,.302077,511662e-10,.101572,-608889e-9,.302066,204751e-9,.101566,-.00136997,.302047,460753e-9,.101592,-.00243557,.302114,819497e-9,.101608,-.0038053,.30214,.00128154,.101627,-.00547906,.30216,.0018483,.101669,-.00745647,.302224,.00252223,.101732,-.00973615,.302318,.00330716,.101844,-.0123097,.302513,.00421061,.102025,-.0151681,.30285,.00524481,.102224,-.0183334,.303166,.0064154,.102515,-.0217819,.303654,.00774063,.102886,-.0255067,.304243,.0092398,.103395,-.029514,.305089,.0109339,.104109,-.0337912,.306301,.0128561,.105074,-.0383565,.30798,.0150338,.10654,-.0432132,.310726,.0175228,.108478,-.0484244,.314351,.0203648,.111015,-.0539339,.319032,.0236325,.114682,-.0598885,.32605,.0274188,.11911,-.0663375,.334109,.0317905,.124736,-.0733011,.344013,.0368502,.131479,-.0807744,.355358,.0427104,.139283,-.0888204,.367614,.0494788,.148054,-.0973394,.380072,.0572367,.159037,-.10665,.395678,.0662704,.169794,-.116221,.40795,.0763192,.18314,-.126632,.423546,.087956,.197515,-.137383,.438213,.101042,.213514,-.148641,.453248,.115827,.23065,-.160117,.46688,.132283,.249148,-.171807,.479962,.150644,.270219,-.183695,.494618,.171073,.292338,-.195574,.506937,.193378,.314999,-.207205,.516463,.217585,.340991,-.218955,.528123,.24428,.367982,-.229917,.537025,.272784,.39432,-.239737,.541627,.302742,.423364,-.249048,.546466,.335112,.453751,-.257329,.549466,.369032,.48416,-.264623,.549503,.404577,.515262,-.270411,.547008,.441337,.547036,-.274581,.542249,.479162,.576614,-.277266,.533015,.517904,.611143,-.279144,.525512,.558508,.640989,-.279001,.51154,.598995,.671182,-.277324,.495641,.639935,.700848,-.273908,.477526,.681017,.729862,-.269063,.457955,.722764,.758273,-.262282,.434846,.764349,.784121,-.254281,.409203,.806206,.809798,-.24505,.382694,.848617,.834953,-.233861,.354034,.892445,.856817,-.221308,.321764,.936263,.877609,-.205996,.288118,.982401,.897489,-.186702,.253277,1.02975,.913792,-.164618,.217963,1.07488,.92785,-.140023,.183221,1.11487,.940378,-.11328,.149385,1.14947,.95273,-.0853958,.114152,1.1807,.969059,-.0568698,.0769845,1.20912,.985574,-.0276502,.0381186,1.23498,.999943,.00239052,-.00126861,1.25987,.0852715,-560067e-11,.279021,171162e-11,.0854143,-140871e-9,.279483,430516e-10,.0854191,-563385e-9,.2795,172184e-9,.0854188,-.00126753,.279493,387464e-9,.0854229,-.00225337,.279501,68918e-8,.0854443,-.00352086,.279549,.00107803,.0854697,-.00506962,.279591,.00155536,.0855093,-.00689873,.279652,.00212354,.0855724,-.00900821,.279752,.00278703,.0856991,-.0113799,.280011,.0035551,.085855,-.0140314,.280297,.00443449,.0860682,-.016963,.280682,.00543636,.086344,-.0201438,.281159,.0065788,.0867426,-.0235999,.281886,.00787977,.087239,-.0273069,.282745,.0093606,.0879815,-.031269,.284139,.011056,.0891258,-.035531,.28647,.0130065,.0906909,-.0400947,.289708,.0152495,.0927624,-.0449638,.293904,.0178454,.0958376,-.0502427,.300471,.0208915,.0995827,-.0559514,.30806,.0244247,.104526,-.0622152,.317874,.0285721,.110532,-.0690046,.329332,.0334227,.117385,-.0763068,.341217,.0390466,.12522,-.084184,.353968,.0455786,.134037,-.0925248,.366797,.0530773,.144014,-.101487,.380209,.0617424,.156013,-.111273,.395956,.071777,.168872,-.121431,.41053,.0830905,.183089,-.132105,.425073,.0959341,.198763,-.143286,.439833,.110448,.216159,-.154841,.454507,.126769,.234859,-.166588,.468368,.14495,.255879,-.178626,.482846,.165233,.27677,-.190218,.493489,.187217,.301184,-.202227,.506549,.211659,.325852,-.213764,.5158,.237922,.352824,-.22487,.525442,.26632,.380882,-.235246,.532487,.296691,.410137,-.244847,.537703,.329179,.439787,-.253122,.540361,.363135,.472291,-.260517,.542734,.399222,.501856,-.266519,.538826,.436352,.534816,-.270905,.535152,.474505,.565069,-.273826,.525979,.513988,.597154,-.275333,.516394,.554852,.630473,-.275314,.506206,.596592,.660574,-.273323,.489769,.638117,.692015,-.270008,.472578,.680457,.720647,-.265001,.452134,.723008,.750528,-.258311,.430344,.765954,.777568,-.250046,.405624,.809012,.80387,-.240114,.378339,.852425,.828439,-.228737,.349877,.895346,.851472,-.216632,.318968,.940695,.873906,-.202782,.287489,.987235,.89467,-.187059,.254394,1.03348,.912281,-.168818,.221294,1.07812,.927358,-.146494,.18675,1.11928,.940385,-.120009,.152322,1.15609,.952672,-.0917183,.117514,1.18875,.968496,-.0620321,.0797405,1.21821,.985236,-.0314945,.0402383,1.24523,.99998,-575153e-9,110644e-9,1.27133,.0702429,-512222e-11,.255273,140947e-11,.0702981,-128826e-9,.255469,354488e-10,.0703691,-515562e-9,.255727,141874e-9,.0703805,-.00116,.255754,31929e-8,.0703961,-.00206224,.255813,567999e-9,.0704102,-.00322223,.255839,88871e-8,.0704298,-.00463928,.255863,.00128272,.0704759,-.00631375,.255953,.00175283,.0705434,-.00824317,.256079,.00230342,.0706693,-.010412,.25636,.0029443,.0708189,-.0128439,.256647,.00368031,.0710364,-.0155177,.257084,.00452614,.0713223,-.0184374,.257637,.00549706,.0717182,-.0216002,.258416,.00661246,.072321,-.0249966,.259699,.00790147,.0731446,-.0286566,.261475,.0093884,.0743352,-.0325888,.264132,.0111186,.0760676,-.036843,.26815,.013145,.078454,-.0414292,.273636,.0155251,.0818618,-.0464634,.281653,.0183525,.0857382,-.0519478,.289992,.0216642,.0908131,-.0579836,.30066,.0255956,.0967512,-.0645124,.312204,.0301954,.103717,-.0716505,.325001,.0356017,.111596,-.0793232,.338129,.041896,.120933,-.087645,.352853,.0492447,.130787,-.096492,.366192,.0576749,.142311,-.105973,.380864,.0673969,.155344,-.116182,.396575,.0785899,.169535,-.126815,.411443,.0912377,.185173,-.138015,.426256,.105607,.201755,-.149325,.439607,.121551,.221334,-.161207,.455467,.139608,.241461,-.173162,.469096,.159591,.26294,-.18504,.481014,.18156,.286776,-.196881,.493291,.205781,.311596,-.208311,.503556,.231819,.338667,-.219671,.513268,.260274,.366021,-.230451,.519414,.290862,.395875,-.240131,.526766,.323196,.425564,-.248566,.52905,.357071,.457094,-.256195,.530796,.393262,.488286,-.262331,.528703,.430797,.522291,-.267141,.52727,.470231,.554172,-.270411,.519848,.510477,.586427,-.271986,.510307,.551594,.619638,-.27192,.499158,.593849,.650656,-.269817,.483852,.636314,.68284,-.266267,.467515,.679679,.714356,-.26113,.44931,.723884,.742717,-.254067,.425789,.767245,.770894,-.245652,.401144,.811819,.797358,-.235554,.374224,.856315,.823377,-.223896,.346167,.901077,.847456,-.210865,.316056,.946502,.870697,-.196574,.284503,.993711,.891068,-.180814,.251628,1.04134,.909267,-.163314,.219065,1.08609,.925653,-.143304,.186446,1.12702,.940017,-.121322,.153416,1.16371,.952398,-.0973872,.120334,1.19712,.967568,-.0698785,.08352,1.22791,.984772,-.0390031,.0439209,1.25672,1.00026,-.0070087,.00315668,1.28428,.0556653,-459654e-11,.227325,112556e-11,.0565238,-116382e-9,.230826,284985e-10,.0565717,-465666e-9,.231026,114036e-9,.0565859,-.00104773,.231079,256656e-9,.0565761,-.00186255,.231025,45663e-8,.0565913,-.00291002,.231058,714664e-9,.0566108,-.00418998,.231085,.00103224,.0566532,-.00570206,.231169,.00141202,.0567473,-.00743666,.231417,.00186018,.0568567,-.00940298,.231661,.00238264,.0569859,-.0115991,.231895,.00298699,.0572221,-.0140096,.232456,.00368957,.057519,-.0166508,.233096,.00450303,.0579534,-.01951,.234094,.00544945,.0585922,-.0225991,.235629,.00655564,.0595647,-.0259416,.238106,.00785724,.0609109,-.0295661,.241557,.00939127,.0628751,-.0335126,.246652,.0112198,.0656908,-.0378604,.254091,.0134168,.0691347,-.0426543,.262666,.0160374,.0732165,-.0478967,.272029,.0191514,.0782863,-.0536716,.283007,.0228597,.0843973,-.0600683,.295732,.0272829,.0913598,-.0670095,.308779,.032484,.0994407,-.0745516,.322886,.0385886,.108189,-.082712,.336408,.0457133,.118574,-.0914927,.351692,.0539832,.129989,-.100854,.366502,.0635162,.142722,-.110837,.381675,.0744386,.156654,-.121353,.3963,.0868483,.172151,-.132414,.411477,.100963,.188712,-.143809,.42508,.116795,.208093,-.155765,.441328,.134715,.227936,-.167608,.454328,.154396,.249495,-.179579,.467235,.176179,.27362,-.191488,.480248,.200193,.296371,-.202618,.487886,.225775,.324234,-.214133,.499632,.25441,.353049,-.225212,.509532,.285077,.381785,-.234875,.514265,.317047,.414038,-.244205,.521282,.351874,.445251,-.252145,.522931,.388279,.476819,-.258433,.520947,.425825,.509209,-.263411,.517669,.465104,.542759,-.266732,.512841,.505741,.574822,-.268263,.503317,.547611,.609324,-.268489,.493035,.590953,.641772,-.266941,.478816,.63488,.674049,-.263297,.462863,.679072,.705071,-.257618,.442931,.723487,.734709,-.250625,.421299,.768708,.763704,-.24179,.397085,.814375,.791818,-.231115,.370577,.859907,.817439,-.21922,.34232,.906715,.843202,-.205658,.312627,.953943,.866639,-.190563,.280933,1.00185,.888129,-.173978,.248393,1.05105,.907239,-.155485,.216007,1.09704,.923893,-.134782,.183233,1.13857,.938882,-.11249,.150376,1.17539,.952464,-.0890706,.117177,1.20924,.968529,-.0646523,.0813095,1.24055,.984763,-.038606,.0439378,1.27018,1.00053,-.01238,.00598668,1.29873,.0437928,-409594e-11,.204012,8.79224e-7,.0440166,-103395e-9,.205049,221946e-10,.0440529,-413633e-9,.205225,887981e-10,.0440493,-930594e-9,.2052,199858e-9,.0439884,-.00165352,.204901,355495e-9,.0440716,-.0025849,.205255,556983e-9,.0440968,-.00372222,.205311,805326e-9,.0441359,-.00506478,.205391,.00110333,.0442231,-.00660384,.205638,.00145768,.0443254,-.00835246,.205877,.00187275,.0444832,-.0102992,.20627,.00235938,.0447001,-.0124449,.206796,.0029299,.0450168,-.0147935,.207593,.0036005,.0454816,-.017336,.208819,.00439246,.0462446,-.0201156,.211036,.00533864,.0473694,-.0231568,.214388,.00646984,.0490191,-.0264941,.219357,.00783856,.0512776,-.030184,.226061,.00950182,.0541279,-.0342661,.234094,.0115156,.0578989,-.0388539,.244297,.0139687,.0620835,-.0438735,.254457,.0169015,.0673497,-.04951,.266706,.0204554,.0731759,-.0556263,.278753,.0246606,.0803937,-.0624585,.29309,.0297126,.0879287,-.0697556,.305856,.0355868,.0970669,-.0778795,.321059,.0425768,.106508,-.0863541,.333873,.05056,.11776,-.0955935,.349008,.0598972,.130081,-.105438,.363776,.0706314,.144454,-.115899,.380112,.0828822,.1596,-.126827,.394843,.0967611,.176097,-.138161,.409033,.112381,.194726,-.149904,.424257,.129952,.213944,-.161675,.436945,.149333,.235516,-.173659,.450176,.170892,.260564,-.185963,.466305,.194984,.285183,-.197582,.477328,.220805,.311095,-.208697,.486566,.248694,.338924,-.219519,.494811,.279015,.369757,-.229766,.504065,.311725,.3996,-.238879,.507909,.345844,.430484,-.246802,.509805,.381749,.46413,-.253924,.511436,.420251,.497077,-.259319,.508787,.459957,.530434,-.263297,.50394,.501356,.565725,-.265619,.49804,.544252,.599254,-.265842,.487346,.587856,.631251,-.263978,.472975,.631969,.663972,-.26043,.457135,.677471,.697724,-.255358,.439844,.723744,.727725,-.248308,.417872,.770653,.756417,-.239181,.39273,.817357,.785419,-.22814,.367839,.864221,.81266,-.215681,.339449,.912701,.839391,-.201623,.309279,.962419,.86366,-.185624,.278029,1.0122,.885028,-.16797,.245294,1.06186,.904639,-.148336,.212689,1.10934,.922048,-.12637,.179616,1.15063,.936952,-.102928,.146749,1.18885,.951895,-.0785268,.112733,1.22352,.967198,-.0530153,.0760056,1.25681,.984405,-.02649,.0383183,1.28762,1.00021,70019e-8,-20039e-8,1.31656,.0325964,-355447e-11,.176706,6.55682e-7,.0329333,-899174e-10,.178527,165869e-10,.0329181,-359637e-9,.178453,663498e-10,.0329085,-808991e-9,.178383,149332e-9,.0329181,-.00143826,.178394,265873e-9,.0329425,-.00224678,.178517,416597e-9,.0329511,-.00323575,.17849,603299e-9,.033011,-.00439875,.178695,829422e-9,.0330733,-.00574059,.178843,.00109908,.0331857,-.00725896,.179176,.00141933,.0333445,-.00895289,.179618,.0017999,.0335674,-.0108219,.180238,.00225316,.033939,-.0128687,.181417,.00279765,.0345239,-.015114,.183395,.0034564,.0354458,-.017596,.186616,.00425864,.0368313,-.0203524,.191547,.00524936,.0386115,-.0234105,.197508,.00647033,.0410303,-.0268509,.205395,.00798121,.0442245,-.0307481,.215365,.0098557,.0478659,-.0350863,.225595,.0121417,.0522416,-.0399506,.236946,.0149385,.0574513,-.045357,.249442,.0183189,.0631208,-.0512863,.261222,.0223644,.0701124,-.0579273,.275418,.0272418,.0777331,-.0650652,.288989,.0329458,.0862709,-.0728813,.302546,.0396819,.096103,-.081363,.317164,.04757,.106976,-.0904463,.331733,.0567012,.119175,-.100105,.34661,.067202,.132919,-.110375,.362249,.0792588,.147727,-.121115,.376978,.0928672,.163618,-.132299,.390681,.108228,.182234,-.143887,.406571,.125502,.201809,-.155827,.42042,.144836,.225041,-.168357,.438411,.166706,.247621,-.18004,.450368,.189909,.27097,-.191536,.460083,.215251,.296658,-.203024,.469765,.243164,.325892,-.214056,.481837,.273388,.35406,-.224104,.487474,.305344,.384372,-.233489,.492773,.339741,.41749,-.241874,.498451,.376287,.45013,-.248834,.499632,.414195,.481285,-.254658,.495233,.454077,.519183,-.259367,.496401,.496352,.551544,-.261818,.487686,.538798,.587349,-.262964,.479453,.583626,.621679,-.262128,.467709,.629451,.654991,-.258998,.452123,.67566,.686873,-.254119,.433495,.723248,.719801,-.246946,.413657,.771156,.750355,-.237709,.390366,.81989,.780033,-.226549,.364947,.868601,.809254,-.214186,.337256,.920034,.836576,-.199639,.307395,.971706,.861774,-.183169,.275431,1.02479,.885707,-.165111,.243431,1.07837,.904742,-.144363,.210921,1.12783,.915604,-.121305,.17647,1.17254,.930959,-.0962119,.143106,1.21012,.948404,-.069969,.108112,1.24474,.967012,-.0427586,.0708478,1.27718,.984183,-.0147043,.032335,1.3083,.999577,.0142165,-.00726867,1.3382,.0229227,-299799e-11,.148623,4.62391e-7,.0232194,-758796e-10,.15054,117033e-10,.0232315,-303636e-9,.15063,468397e-10,.0232354,-683189e-9,.150624,105472e-9,.0232092,-.0012136,.150445,187744e-9,.0232523,-.00189765,.150679,294847e-9,.0232828,-.00273247,.150789,428013e-9,.0233371,-.00371287,.150995,591134e-9,.0234015,-.00484794,.15118,787642e-9,.023514,-.00612877,.151562,.00102547,.023679,-.00756125,.152116,.00131351,.0239559,-.00914651,.153162,.00166594,.0244334,-.010904,.155133,.00210182,.025139,-.0128615,.158035,.00264406,.0262598,-.0150628,.162751,.00332923,.0277875,-.0175532,.168944,.00419773,.0298472,-.0203981,.176835,.00530034,.0325444,-.023655,.186686,.00669777,.0355581,-.0272982,.196248,.00842661,.0392841,-.0314457,.207352,.0105854,.0436815,-.0361157,.219279,.0132458,.0485272,-.0412932,.230728,.0164736,.0541574,-.0470337,.242994,.0203715,.0609479,-.0535002,.257042,.0250953,.0685228,-.0605409,.27102,.0306856,.0768042,-.0680553,.28406,.037193,.0864844,-.0765011,.299186,.0449795,.0969415,-.0852674,.3132,.0538316,.108478,-.0947333,.327138,.0641149,.121705,-.10481,.342345,.0759185,.136743,-.115474,.358472,.0894116,.152986,-.126536,.374067,.104562,.170397,-.138061,.388267,.121632,.191392,-.150203,.406467,.140996,.211566,-.161751,.418641,.161696,.233567,-.173407,.430418,.184557,.257769,-.185397,.44277,.210092,.28531,-.197048,.457191,.237827,.311726,-.20784,.464712,.267253,.340537,-.218345,.472539,.299332,.372921,-.228306,.482331,.333988,.402924,-.236665,.484378,.369722,.434475,-.244097,.484717,.407836,.469736,-.250547,.487093,.448465,.505045,-.25511,.485575,.490263,.540262,-.258444,.481225,.534495,.576347,-.259903,.473481,.579451,.608656,-.259572,.4603,.625604,.646679,-.257908,.450341,.674511,.679902,-.253663,.431561,.723269,.714159,-.247419,.412684,.773263,.745345,-.239122,.389388,.824182,.778248,-.228837,.365361,.876634,.807208,-.216197,.337667,.92945,.835019,-.201772,.307197,.985261,.860261,-.185291,.274205,1.04299,.877601,-.165809,.240178,1.09816,.898211,-.143897,.207571,1.14694,.915789,-.119513,.174904,1.19008,.931831,-.0932919,.141423,1.2297,.949244,-.0656528,.105603,1.26553,.967527,-.0370262,.0679551,1.29986,.984139,-.00730117,.0283133,1.33252,.999713,.0234648,-.0121785,1.36397,.0152135,-245447e-11,.122795,3.04092e-7,.0151652,-615778e-10,.122399,76292e-10,.0151181,-245948e-9,.122023,304802e-10,.0151203,-553394e-9,.12203,686634e-10,.015125,-983841e-9,.122037,122463e-9,.0151427,-.00153774,.12214,192706e-9,.0151708,-.0022103,.122237,281219e-9,.0152115,-.00300741,.12238,390804e-9,.0152877,-.00392494,.1227,526317e-9,.015412,-.00496597,.123244,69443e-8,.0156201,-.00613314,.124228,90547e-8,.0159658,-.00744113,.125945,.0011732,.0165674,-.00892546,.129098,.00151888,.017487,-.010627,.133865,.00197007,.018839,-.0126043,.140682,.0025637,.020554,-.0148814,.148534,.00333637,.0226727,-.0175123,.157381,.00433738,.0251879,-.0205266,.166685,.00561664,.0283635,-.0240319,.177796,.00725563,.0318694,-.0279432,.188251,.00928811,.0361044,-.0324313,.200038,.011835,.0406656,-.0373527,.210685,.0149146,.0463846,-.0430132,.224182,.0187254,.0525696,-.0491013,.23634,.0232283,.0598083,-.0559175,.250013,.0286521,.0679437,-.0633657,.263981,.0350634,.0771181,-.0714602,.278072,.0425882,.0881273,-.0803502,.29511,.0514487,.0996628,-.0896903,.309976,.0615766,.112702,-.099644,.325611,.0732139,.126488,-.109829,.339321,.0862324,.142625,-.120859,.35574,.101275,.15953,-.131956,.369845,.117892,.176991,-.143145,.38146,.136205,.199715,-.155292,.40052,.157252,.220787,-.167066,.412055,.179966,.243697,-.178396,.423133,.204418,.272106,-.190433,.439524,.232141,.297637,-.201265,.447041,.261109,.325273,-.211834,.454488,.292627,.357219,-.221889,.465004,.326669,.387362,-.230729,.468527,.362426,.423131,-.23924,.475836,.401533,.45543,-.246067,.475017,.441902,.493393,-.251557,.478017,.484239,.526253,-.255571,.4709,.528586,.560554,-.257752,.463167,.574346,.599306,-.258076,.456452,.621655,.634541,-.256471,.443725,.670492,.668907,-.253283,.428719,.721943,.705619,-.247562,.411348,.772477,.739034,-.240626,.388939,.8264,.771408,-.231493,.36425,.881702,.803312,-.220125,.337321,.9385,.828457,-.206645,.305364,.997437,.854819,-.190664,.273715,1.05693,.878666,-.171429,.242218,1.11251,.898404,-.149235,.209556,1.16398,.917416,-.12435,.176863,1.21014,.933133,-.0972703,.142775,1.25178,.95066,-.0683607,.106735,1.29028,.968589,-.0378724,.0681609,1.32703,.984776,-.00605712,.0273966,1.36158,.99994,.0263276,-.0138124,1.3943,.00867437,-186005e-11,.0928979,1.73682e-7,.00864003,-466389e-10,.0925237,435505e-11,.00864593,-186594e-9,.0925806,174322e-10,.00864095,-419639e-9,.0924903,392862e-10,.00863851,-746272e-9,.0924589,702598e-10,.00868531,-.00116456,.0929,111188e-9,.00869667,-.00167711,.0928529,163867e-9,.00874332,-.00228051,.0930914,23104e-8,.00882709,-.00297864,.0935679,31741e-8,.00898874,-.00377557,.0946165,430186e-9,.00929346,-.00469247,.0967406,580383e-9,.00978271,-.00575491,.100084,783529e-9,.0105746,-.00701514,.105447,.00106304,.0116949,-.00851797,.112494,.00144685,.0130419,-.0102757,.119876,.00196439,.0148375,-.012381,.129034,.00266433,.0168725,-.01482,.137812,.00358364,.0193689,-.0176563,.147696,.00478132,.0222691,-.0209211,.157795,.00631721,.0256891,-.0246655,.168431,.00826346,.0294686,-.0288597,.178587,.0106714,.0340412,-.0336441,.190251,.0136629,.0393918,-.039033,.202999,.0173272,.0453947,-.0450087,.215655,.0217448,.0521936,-.0515461,.228686,.0269941,.0600279,-.058817,.242838,.033272,.0692398,-.0667228,.258145,.0406457,.0793832,-.0752401,.273565,.0492239,.0902297,-.0841851,.287735,.0590105,.102014,-.0936479,.301161,.0702021,.116054,-.103967,.317438,.0832001,.13191,-.114622,.334166,.0977951,.148239,-.125452,.348192,.113985,.165809,-.136453,.361094,.131928,.184616,-.147648,.373534,.151811,.207491,-.159607,.39101,.174476,.230106,-.171119,.402504,.198798,.257036,-.182906,.418032,.225796,.281172,-.193605,.425468,.254027,.312034,-.204771,.440379,.285713,.340402,-.214988,.445406,.319196,.370231,-.224711,.44968,.35537,.407105,-.233516,.460747,.393838,.439037,-.240801,.460624,.433747,.47781,-.24762,.465957,.477234,.510655,-.251823,.460054,.52044,.550584,-.255552,.459172,.567853,.585872,-.257036,.450311,.615943,.620466,-.257535,.437763,.667693,.660496,-.255248,.426639,.718988,.695578,-.251141,.409185,.772503,.732176,-.244718,.39015,.827023,.760782,-.236782,.362594,.885651,.79422,-.225923,.33711,.943756,.824521,-.213855,.308272,1.00874,.854964,-.197723,.278529,1.06764,.878065,-.179209,.246208,1.12836,.899834,-.157569,.21329,1.18318,.918815,-.133206,.181038,1.23161,.934934,-.106545,.146993,1.27644,.952115,-.0780574,.111175,1.31842,.96906,-.0478279,.0728553,1.35839,.985178,-.0160014,.032579,1.39697,1.00039,.0173126,-.0095256,1.43312,.00384146,-124311e-11,.0613583,7.78271e-8,.00390023,-314043e-10,.0622919,196626e-11,.00389971,-125622e-9,.0622632,787379e-11,.00389491,-282352e-9,.0620659,1778e-8,.00391618,-502512e-9,.0624687,320918e-10,.00392662,-784458e-9,.0625113,515573e-10,.00396053,-.00112907,.0628175,778668e-10,.00401911,-.00153821,.0633286,113811e-9,.00414994,-.0020208,.0646443,16445e-8,.00441223,-.00260007,.0673886,237734e-9,.00484427,-.0033097,.0716528,345929e-9,.00549109,-.00418966,.0774998,505987e-9,.00636293,-.00527331,.0844758,739208e-9,.00746566,-.00660428,.0921325,.00107347,.00876625,-.00818826,.0997067,.00153691,.0103125,-.0100811,.107433,.00217153,.0123309,-.0123643,.117088,.00303427,.0146274,-.0150007,.126438,.00416018,.0172295,-.0180531,.135672,.00561513,.0204248,-.0215962,.146244,.007478,.0241597,-.0256234,.157481,.00981046,.0284693,-.0302209,.169125,.0127148,.033445,-.0353333,.181659,.0162453,.0391251,-.0410845,.1944,.0205417,.0454721,-.0473451,.207082,.0256333,.0530983,-.0542858,.221656,.0317036,.0615356,-.0618384,.236036,.0388319,.0703363,-.0697631,.248398,.046974,.0810391,-.0784757,.263611,.0565246,.0920144,-.0873488,.275857,.0671724,.105584,-.0973652,.292555,.0798105,.119506,-.107271,.306333,.0935945,.134434,-.117608,.318888,.109106,.153399,-.128938,.337552,.127074,.171258,-.139944,.349955,.14643,.191059,-.151288,.361545,.168,.215069,-.163018,.378421,.192082,.237838,-.174226,.38879,.217838,.266965,-.186063,.405857,.246931,.292827,-.196909,.414146,.277505,.324352,-.207473,.426955,.310711,.354427,-.217713,.433429,.346794,.389854,-.227183,.443966,.385237,.420749,-.235131,.44471,.424955,.459597,-.242786,.451729,.468446,.495316,-.248767,.45072,.513422,.534903,-.253351,.450924,.560618,.572369,-.256277,.445266,.609677,.612383,-.2576,.438798,.660995,.644037,-.256931,.421693,.713807,.686749,-.254036,.4109,.767616,.719814,-.249785,.390151,.82533,.754719,-.244283,.367847,.888311,.792022,-.235076,.345013,.948177,.822404,-.225061,.316193,1.01661,.853084,-.211113,.287013,1.08075,.879871,-.19449,.255424,1.14501,.901655,-.174023,.222879,1.20203,.919957,-.1509,.18989,1.25698,.938412,-.124923,.15606,1.30588,.953471,-.0968139,.120512,1.3529,.970451,-.066734,.0828515,1.3986,.985522,-.034734,.0424458,1.44148,1.00099,-.00102222,678929e-9,1.48398,965494e-9,-6.27338e-7,.0306409,1.97672e-8,99168e-8,-158573e-10,.0314638,4.99803e-7,991068e-9,-634012e-10,.031363,200682e-11,974567e-9,-14144e-8,.03036,457312e-11,998079e-9,-252812e-9,.031496,860131e-11,.00102243,-396506e-9,.0319955,148288e-10,.00107877,-577593e-9,.0331376,249141e-10,.00121622,-816816e-9,.0359396,423011e-10,.0014455,-.00113761,.0399652,724613e-10,.00178791,-.00156959,.0450556,123929e-9,.00225668,-.00214064,.0508025,208531e-9,.00285627,-.00287655,.0568443,341969e-9,.0035991,-.00380271,.0630892,544158e-9,.00455524,-.00496264,.0702204,842423e-9,.00569143,-.0063793,.0773426,.00126704,.00716928,-.00813531,.0860839,.00186642,.00885307,-.0101946,.0944079,.00267014,.0109316,-.0126386,.103951,.00374033,.0133704,-.0154876,.113786,.0051304,.0161525,-.0187317,.123477,.00688858,.0194267,-.0224652,.133986,.00910557,.0230967,-.0265976,.143979,.0118074,.0273627,-.0312848,.154645,.0151266,.0323898,-.0365949,.166765,.0191791,.0379225,-.0422914,.177932,.0239236,.0447501,-.0487469,.19167,.0296568,.0519391,-.0556398,.203224,.0362924,.0599464,-.0631646,.215652,.0440585,.0702427,-.0714308,.232089,.0531619,.0806902,-.0800605,.245258,.0634564,.0923194,-.0892815,.258609,.0752481,.106938,-.09931,.276654,.0888914,.121238,-.109575,.289847,.104055,.138817,-.120461,.307566,.121266,.15595,-.131209,.320117,.139944,.178418,-.143049,.339677,.161591,.197875,-.154074,.349886,.184303,.224368,-.166307,.369352,.210669,.252213,-.178051,.386242,.238895,.277321,-.189335,.395294,.269182,.310332,-.200683,.412148,.302508,.338809,-.210856,.418266,.337264,.372678,-.220655,.428723,.374881,.405632,-.230053,.433887,.415656,.442293,-.237993,.439911,.457982,.477256,-.244897,.440175,.502831,.515592,-.250657,.441079,.550277,.550969,-.255459,.435219,.601102,.592883,-.257696,.432882,.651785,.629092,-.259894,.421054,.708961,.672033,-.258592,.41177,.763806,.709147,-.256525,.395267,.824249,.745367,-.254677,.375013,.8951,.784715,-.247892,.353906,.959317,.818107,-.240162,.327801,1.03153,.847895,-.229741,.298821,1.10601,.879603,-.213084,.269115,1.164,.902605,-.195242,.236606,1.22854,.922788,-.174505,.203442,1.29017,.944831,-.150169,.169594,1.34157,.959656,-.124099,.135909,1.3956,.972399,-.0960626,.0990563,1.45128,.986549,-.0657097,.0602348,1.50312,1.00013,-.0333558,.0186694,1.55364,619747e-11,-1e-7,.00778326,796756e-16,2.37499e-8,-9.99999e-8,282592e-10,1.14596e-10,100292e-11,-166369e-11,250354e-9,6.77492e-9,350752e-11,-637769e-11,357289e-9,6.31655e-8,826445e-11,-174689e-10,516179e-9,3.1851e-7,242481e-10,-450868e-10,.0010223,130577e-11,455631e-10,-89044e-9,.00144302,374587e-11,971222e-10,-178311e-9,.00241912,102584e-10,171403e-9,-313976e-9,.00354938,236481e-10,292747e-9,-520026e-9,.00513765,496014e-10,789827e-9,-.00118187,.0238621,139056e-9,.00114093,-.00171827,.0286691,244093e-9,.00176119,-.00249667,.0368565,420623e-9,.0022233,-.00333742,.0400469,65673e-8,.00343382,-.00481976,.0535751,.00109323,.00427602,-.00600755,.057099,.00155268,.00461435,-.00737637,.0551084,.00215031,.00695698,-.00971401,.0715767,.00316529,.00867619,-.0120943,.0793314,.00436995,.0106694,-.0148202,.0869391,.0058959,.0140351,-.0183501,.101572,.00798757,.0168939,-.022006,.11018,.0104233,.020197,-.0261568,.119041,.0134167,.0254702,-.0312778,.135404,.0173009,.0298384,-.0362469,.1437,.0215428,.035159,-.042237,.15512,.0268882,.0427685,-.0488711,.17128,.033235,.0494848,-.0557997,.181813,.0404443,.0592394,-.0635578,.198745,.0490043,.0681463,-.071838,.210497,.0588239,.0804753,-.0809297,.228864,.0702835,.0942205,-.0906488,.247008,.0834012,.106777,-.100216,.258812,.0975952,.124471,-.110827,.278617,.114162,.138389,-.121193,.287049,.131983,.159543,-.13253,.307151,.152541,.176432,-.143611,.31564,.174673,.201723,-.15548,.33538,.199842,.229721,-.167166,.355256,.227097,.250206,-.178238,.360047,.256014,.282118,-.189905,.378761,.28855,.312821,-.201033,.39181,.323348,.341482,-.211584,.397716,.360564,.377368,-.221314,.410141,.400004,.418229,-.230474,.423485,.442371,.444881,-.239443,.418874,.488796,.488899,-.245987,.427545,.535012,.520317,-.253948,.422147,.589678,.568566,-.256616,.42719,.637683,.599607,-.26376,.415114,.703363,.64222,-.268687,.408715,.771363,.685698,-.2694,.399722,.83574,.732327,-.266642,.388651,.897764,.769873,-.267712,.369198,.983312,.806733,-.263479,.346802,1.06222,.843466,-.254575,.321368,1.13477,.873008,-.242749,.29211,1.20712,.908438,-.22725,.262143,1.27465,.936321,-.207621,.228876,1.33203,.950353,-.187932,.19484,1.40439,.96442,-.165154,.163178,1.4732,.979856,-.139302,.127531,1.53574,.982561,-.11134,.0903457,1.59982,.996389,-.0808124,.0489007,1.6577],e=[1,0,0,0,1,791421e-36,0,0,1,104392e-29,0,0,1,349405e-26,0,0,1,109923e-23,0,0,1,947414e-22,0,0,1,359627e-20,0,0,1,772053e-19,0,0,1,108799e-17,0,0,1,110655e-16,0,0,1,865818e-16,0,0,.999998,5.45037e-10,0,0,.999994,2.85095e-9,0,0,.999989,1.26931e-8,0,0,.999973,4.89938e-8,0,0,.999947,1.66347e-7,0,0,.999894,5.02694e-7,0,0,.999798,136532e-11,0,0,.999617,335898e-11,0,0,.999234,752126e-11,0,0,.998258,152586e-10,0,0,.99504,266207e-10,0,0,.980816,236802e-10,0,0,.967553,207684e-11,0,0,.966877,403733e-11,0,0,.965752,741174e-11,0,0,.96382,127746e-10,0,0,.960306,202792e-10,0,0,.953619,280232e-10,0,0,.941103,278816e-10,0,0,.926619,160221e-10,0,0,.920983,235164e-10,0,0,.912293,311924e-10,0,.0158731,.899277,348118e-10,0,.0476191,.880884,26041e-9,0,.0793651,.870399,338726e-10,0,.111111,.856138,392906e-10,0,.142857,.837436,372874e-10,0,.174603,.820973,392558e-10,0,.206349,.803583,434658e-10,0,.238095,.782168,40256e-9,0,.269841,.764107,448159e-10,0,.301587,.743092,457627e-10,0,.333333,.721626,455314e-10,0,.365079,.700375,477335e-10,0,.396825,.677334,461072e-10,0,.428571,.655702,484393e-10,0,.460317,.632059,464583e-10,0,.492064,.610125,483923e-10,0,.52381,.58653,464342e-10,0,.555556,.564508,477033e-10,0,.587302,.541405,459263e-10,0,.619048,.519556,46412e-9,0,.650794,.497292,448913e-10,0,.68254,.475898,445789e-10,0,.714286,.454722,433496e-10,0,.746032,.434042,423054e-10,0,.777778,.414126,413737e-10,0,.809524,.394387,397265e-10,0,.84127,.375841,390709e-10,0,.873016,.357219,369938e-10,0,.904762,.340084,365618e-10,0,.936508,.322714,342533e-10,0,.968254,.306974,339596e-10,0,1,1,101524e-23,0,0,1,10292e-22,0,0,1,130908e-23,0,0,1,473331e-23,0,0,1,625319e-22,0,0,1,107932e-20,0,0,1,163779e-19,0,0,1,203198e-18,0,0,1,204717e-17,0,0,.999999,168995e-16,0,0,.999998,1.15855e-10,0,0,.999996,6.6947e-10,0,0,.999991,3.30863e-9,0,0,.999983,1.41737e-8,0,0,.999968,5.32626e-8,0,0,.99994,1.77431e-7,0,0,.999891,5.28835e-7,0,0,.999797,142169e-11,0,0,.999617,347057e-11,0,0,.999227,77231e-10,0,0,.998239,155753e-10,0,0,.994937,268495e-10,0,0,.980225,213742e-10,0,0,.967549,21631e-10,0,0,.966865,417989e-11,0,0,.965739,763341e-11,0,0,.963794,130892e-10,0,0,.960244,206456e-10,0,0,.953495,282016e-10,0,148105e-9,.940876,271581e-10,0,.002454,.926569,164159e-10,0,.00867491,.920905,239521e-10,0,.01956,.912169,315127e-10,0,.035433,.899095,346626e-10,0,.056294,.882209,290223e-10,0,.0818191,.870272,342992e-10,0,.111259,.855977,394164e-10,0,.142857,.837431,372343e-10,0,.174603,.820826,396691e-10,0,.206349,.803408,435395e-10,0,.238095,.782838,419579e-10,0,.269841,.763941,450953e-10,0,.301587,.742904,455847e-10,0,.333333,.721463,458833e-10,0,.365079,.700197,477159e-10,0,.396825,.677501,470641e-10,0,.428571,.655527,484732e-10,0,.460317,.6324,476834e-10,0,.492064,.609964,484213e-10,0,.52381,.586839,475541e-10,0,.555556,.564353,476951e-10,0,.587302,.541589,467611e-10,0,.619048,.519413,463493e-10,0,.650794,.497337,453994e-10,0,.68254,.475797,445308e-10,0,.714286,.454659,435787e-10,0,.746032,.434065,424839e-10,0,.777778,.414018,41436e-9,0,.809524,.39455,401902e-10,0,.84127,.375742,390813e-10,0,.873016,.357501,377116e-10,0,.904762,.339996,36535e-9,0,.936508,.323069,351265e-10,0,.968254,.306897,339112e-10,0,1,1,10396e-19,0,0,1,104326e-20,0,0,1,110153e-20,0,0,1,144668e-20,0,0,1,34528e-19,0,0,1,175958e-19,0,0,1,12627e-17,0,0,1,936074e-18,0,0,1,645742e-17,0,0,.999998,401228e-16,0,0,.999997,2.22338e-10,0,0,.999995,1.0967e-9,0,0,.999991,4.82132e-9,0,0,.999981,1.89434e-8,0,0,.999967,6.67716e-8,0,0,.999938,2.12066e-7,0,0,.999886,6.0977e-7,0,0,.999792,159504e-11,0,0,.999608,381191e-11,0,0,.999209,833727e-11,0,0,.998179,165288e-10,0,0,.994605,274387e-10,0,0,.979468,167316e-10,0,0,.967529,242877e-11,0,0,.966836,461696e-11,0,0,.96569,830977e-11,0,0,.963706,140427e-10,0,244659e-11,.960063,217353e-10,0,760774e-9,.953113,286606e-10,0,.00367261,.940192,247691e-10,0,.00940263,.927731,195814e-10,0,.018333,.920669,252531e-10,0,.0306825,.911799,324277e-10,0,.0465556,.89857,340982e-10,0,.0659521,.883283,319622e-10,0,.0887677,.86989,35548e-9,0,.114784,.855483,397143e-10,0,.143618,.837987,391665e-10,0,.174606,.820546,411306e-10,0,.206349,.802878,436753e-10,0,.238095,.783402,444e-7,0,.269841,.763439,458726e-10,0,.301587,.742925,467097e-10,0,.333333,.721633,478887e-10,0,.365079,.69985,481251e-10,0,.396825,.67783,491811e-10,0,.428571,.655126,488199e-10,0,.460318,.632697,496025e-10,0,.492064,.609613,48829e-9,0,.52381,.587098,492754e-10,0,.555556,.564119,482625e-10,0,.587302,.541813,482807e-10,0,.619048,.519342,471552e-10,0,.650794,.497514,466765e-10,0,.68254,.475879,455582e-10,0,.714286,.454789,446007e-10,0,.746032,.434217,435382e-10,0,.777778,.414086,421753e-10,0,.809524,.394744,412093e-10,0,.84127,.375782,396634e-10,0,.873016,.357707,386419e-10,0,.904762,.340038,370345e-10,0,.936508,.323284,359725e-10,0,.968254,.306954,3436e-8,0,1,1,599567e-19,0,0,1,600497e-19,0,0,1,614839e-19,0,0,1,686641e-19,0,0,1,972658e-19,0,0,1,221271e-18,0,0,1,833195e-18,0,0,1,403601e-17,0,0,.999999,206001e-16,0,0,.999998,1.01739e-10,0,0,.999997,4.70132e-10,0,0,.999993,2.00436e-9,0,0,.999988,7.83682e-9,0,0,.999979,2.80338e-8,0,0,.999962,9.17033e-8,0,0,.999933,2.74514e-7,0,0,.999881,7.53201e-7,0,0,.999783,189826e-11,0,0,.999594,440279e-11,0,0,.999178,93898e-10,0,0,.998073,181265e-10,0,0,.993993,280487e-10,0,0,.979982,149422e-10,0,0,.968145,378481e-11,0,0,.966786,53771e-10,0,0,.965611,947508e-11,0,388934e-10,.963557,156616e-10,0,9693e-7,.959752,235144e-10,0,.00370329,.952461,291568e-10,0,.00868428,.940193,240102e-10,0,.0161889,.929042,231235e-10,0,.0263948,.920266,273968e-10,0,.0394088,.911178,337915e-10,0,.0552818,.897873,333629e-10,0,.0740138,.884053,351405e-10,0,.0955539,.869455,378034e-10,0,.119795,.854655,399378e-10,0,.14656,.838347,419108e-10,0,.175573,.820693,440831e-10,0,.206388,.802277,445599e-10,0,.238095,.783634,472691e-10,0,.269841,.763159,476984e-10,0,.301587,.742914,491487e-10,0,.333333,.721662,502312e-10,0,.365079,.699668,502817e-10,0,.396825,.677839,51406e-9,0,.428571,.655091,511095e-10,0,.460317,.632665,516067e-10,0,.492064,.609734,512255e-10,0,.52381,.587043,510263e-10,0,.555556,.564298,50565e-9,0,.587302,.541769,497951e-10,0,.619048,.519529,492698e-10,0,.650794,.497574,482066e-10,0,.68254,.476028,473689e-10,0,.714286,.454961,461941e-10,0,.746032,.434341,450618e-10,0,.777778,.414364,438355e-10,0,.809524,.394832,424196e-10,0,.84127,.376109,412563e-10,0,.873016,.35779,396226e-10,0,.904762,.340379,384886e-10,0,.936508,.323385,368214e-10,0,.968254,.307295,356636e-10,0,1,1,106465e-17,0,0,1,106555e-17,0,0,1,107966e-17,0,0,1,114601e-17,0,0,1,137123e-17,0,0,1,21243e-16,0,0,.999999,489653e-17,0,0,.999999,160283e-16,0,0,.999998,62269e-15,0,0,.999997,2.51859e-10,0,0,.999996,9.96192e-10,0,0,.999992,3.74531e-9,0,0,.999986,1.32022e-8,0,0,.999975,4.33315e-8,0,0,.999959,1.31956e-7,0,0,.999927,3.72249e-7,0,0,.999871,9.72461e-7,0,0,.999771,235343e-11,0,0,.999572,52768e-10,0,0,.999133,109237e-10,0,0,.997912,203675e-10,0,0,.993008,279396e-10,0,0,.980645,139604e-10,0,0,.970057,646596e-11,0,0,.966717,65089e-10,0,474145e-10,.965497,111863e-10,0,89544e-8,.96334,179857e-10,0,.0032647,.959294,259045e-10,0,.0075144,.951519,292327e-10,0,.0138734,.940517,249769e-10,0,.0224952,.93014,26803e-9,0,.0334828,.91972,303656e-10,0,.0468973,.910294,353323e-10,0,.0627703,.897701,351002e-10,0,.0811019,.884522,388104e-10,0,.10186,.869489,412932e-10,0,.124985,.853983,415781e-10,0,.150372,.838425,454066e-10,0,.177868,.820656,471624e-10,0,.207245,.801875,475243e-10,0,.238143,.783521,505621e-10,0,.269841,.763131,50721e-9,0,.301587,.74261,523293e-10,0,.333333,.72148,528699e-10,0,.365079,.699696,538677e-10,0,.396825,.677592,539255e-10,0,.428571,.65525,546367e-10,0,.460317,.632452,541348e-10,0,.492064,.609903,544976e-10,0,.52381,.586928,536201e-10,0,.555556,.564464,535185e-10,0,.587302,.541801,524949e-10,0,.619048,.519681,51812e-9,0,.650794,.497685,507687e-10,0,.68254,.47622,496243e-10,0,.714286,.455135,485714e-10,0,.746032,.4346,471847e-10,0,.777778,.414564,459294e-10,0,.809524,.395165,444705e-10,0,.84127,.376333,430772e-10,0,.873016,.358197,416229e-10,0,.904762,.34064,401019e-10,0,.936508,.323816,386623e-10,0,.968254,.307581,370933e-10,0,1,1,991541e-17,0,0,1,992077e-17,0,0,1,100041e-16,0,0,1,10385e-15,0,0,1,115777e-16,0,0,1,150215e-16,0,0,.999999,254738e-16,0,0,.999999,598822e-16,0,0,.999998,1.79597e-10,0,0,.999997,6.02367e-10,0,0,.999994,2.06835e-9,0,0,.99999,6.94952e-9,0,0,.999984,2.23363e-8,0,0,.999972,6.78578e-8,0,0,.999952,1.93571e-7,0,0,.999919,5.16594e-7,0,0,.99986,128739e-11,0,0,.999753,299298e-11,0,0,.999546,648258e-11,0,0,.999074,129985e-10,0,0,.997671,232176e-10,0,0,.991504,256701e-10,0,0,.981148,131141e-10,0,0,.971965,869048e-11,0,280182e-10,.966624,808301e-11,0,695475e-9,.965344,135235e-10,0,.00265522,.963048,210592e-10,0,.00622975,.958673,287473e-10,0,.0116234,.950262,281379e-10,0,.018976,.940836,271089e-10,0,.0283844,.930996,30926e-9,0,.0399151,.919848,348359e-10,0,.0536063,.909136,366092e-10,0,.0694793,.897554,384162e-10,0,.0875342,.884691,430971e-10,0,.107749,.869414,447803e-10,0,.130087,.853462,452858e-10,0,.154481,.838187,495769e-10,0,.180833,.820381,502709e-10,0,.209005,.801844,522713e-10,0,.238791,.783061,541505e-10,0,.269869,.763205,553712e-10,0,.301587,.742362,564909e-10,0,.333333,.721393,572646e-10,0,.365079,.699676,581012e-10,0,.396825,.677395,58096e-9,0,.428571,.655208,585766e-10,0,.460317,.632451,583602e-10,0,.492064,.609839,580234e-10,0,.52381,.587093,577161e-10,0,.555556,.564467,568447e-10,0,.587302,.542043,563166e-10,0,.619048,.519826,55156e-9,0,.650794,.497952,541682e-10,0,.68254,.476477,528971e-10,0,.714286,.455412,514952e-10,0,.746032,.434926,502222e-10,0,.777778,.4149,485779e-10,0,.809524,.395552,472242e-10,0,.84127,.376712,454891e-10,0,.873016,.358622,440924e-10,0,.904762,.341048,422984e-10,0,.936508,.324262,408582e-10,0,.968254,.308013,390839e-10,0,1,1,613913e-16,0,0,1,614145e-16,0,0,1,617708e-16,0,0,1,633717e-16,0,0,1,681648e-16,0,0,1,808291e-16,0,0,1,1.14608e-10,0,0,.999998,2.10507e-10,0,0,.999997,4.99595e-10,0,0,.999995,1.39897e-9,0,0,.999994,4.19818e-9,0,0,.999988,1.27042e-8,0,0,.999979,3.75153e-8,0,0,.999965,1.06206e-7,0,0,.999945,2.85381e-7,0,0,.999908,7.23611e-7,0,0,.999846,17255e-10,0,0,.999733,386104e-11,0,0,.999511,808493e-11,0,0,.998993,156884e-10,0,0,.997326,265538e-10,0,0,.989706,206466e-10,0,0,.981713,130756e-10,0,70005e-10,.973636,106473e-10,0,464797e-9,.966509,10194e-9,0,.00201743,.965149,165881e-10,0,.00497549,.962669,249147e-10,0,.00953262,.95786,317449e-10,0,.0158211,.949334,281045e-10,0,.0239343,.941041,303263e-10,0,.0339372,.931575,356754e-10,0,.0458738,.920102,397075e-10,0,.059772,.908002,384886e-10,0,.075645,.897269,43027e-9,0,.0934929,.884559,479925e-10,0,.113302,.869161,48246e-9,0,.135045,.853342,509505e-10,0,.158678,.837633,542846e-10,0,.184136,.820252,554139e-10,0,.211325,.801872,581412e-10,0,.240113,.782418,585535e-10,0,.270306,.7631,610923e-10,0,.301594,.742183,613678e-10,0,.333333,.721098,627275e-10,0,.365079,.699512,629413e-10,0,.396825,.677372,636351e-10,0,.428571,.655059,633555e-10,0,.460317,.632567,636513e-10,0,.492064,.609784,628965e-10,0,.52381,.587237,625546e-10,0,.555556,.564525,615825e-10,0,.587302,.542181,605048e-10,0,.619048,.520017,596329e-10,0,.650794,.498204,581516e-10,0,.68254,.476742,569186e-10,0,.714286,.455803,553833e-10,0,.746032,.435251,537807e-10,0,.777778,.415374,522025e-10,0,.809524,.395921,503421e-10,0,.84127,.377253,488211e-10,0,.873016,.359021,468234e-10,0,.904762,.341637,453269e-10,0,.936508,.3247,433014e-10,0,.968254,.308625,418007e-10,0,1,1,2.86798e-10,0,0,1,2.86877e-10,0,0,1,2.88094e-10,0,0,1,2.93506e-10,0,0,1,3.09262e-10,0,0,.999999,3.48593e-10,0,0,.999999,4.44582e-10,0,0,.999998,6.88591e-10,0,0,.999996,1.34391e-9,0,0,.999993,3.17438e-9,0,0,.999989,8.35609e-9,0,0,.999983,2.28677e-8,0,0,.999974,6.23361e-8,0,0,.999959,1.65225e-7,0,0,.999936,4.19983e-7,0,0,.999896,101546e-11,0,0,.99983,232376e-11,0,0,.999709,50156e-10,0,0,.999469,10167e-9,0,0,.998886,190775e-10,0,0,.996819,300511e-10,0,0,.988837,185092e-10,0,1.68222e-7,.982178,134622e-10,0,259622e-9,.975017,125961e-10,0,.00142595,.967101,13507e-9,0,.00382273,.964905,205003e-10,0,.00764164,.96218,29546e-9,0,.0130121,.956821,343738e-10,0,.0200253,.948829,305063e-10,0,.0287452,.941092,346487e-10,0,.039218,.931883,412061e-10,0,.0514748,.920211,444651e-10,0,.0655351,.907307,431252e-10,0,.0814082,.89684,490382e-10,0,.0990939,.884119,53334e-9,0,.118583,.869148,54114e-9,0,.139856,.853377,578536e-10,0,.162882,.836753,592285e-10,0,.187615,.820063,622787e-10,0,.213991,.801694,645492e-10,0,.241918,.782116,65353e-9,0,.271267,.762673,674344e-10,0,.301847,.742133,682788e-10,0,.333333,.720779,691959e-10,0,.365079,.699386,696817e-10,0,.396826,.67732,699583e-10,0,.428572,.654888,698447e-10,0,.460318,.632499,694063e-10,0,.492064,.609825,691612e-10,0,.52381,.587287,681576e-10,0,.555556,.564743,674138e-10,0,.587302,.542409,661617e-10,0,.619048,.520282,647785e-10,0,.650794,.498506,633836e-10,0,.68254,.477102,615905e-10,0,.714286,.456167,601013e-10,0,.746032,.435728,581457e-10,0,.777778,.415809,564215e-10,0,.809524,.396517,544997e-10,0,.84127,.377737,525061e-10,0,.873016,.359698,506831e-10,0,.904762,.342164,48568e-9,0,.936508,.325417,467826e-10,0,.968254,.309186,446736e-10,0,1,1,1.09018e-9,0,0,1,1.0904e-9,0,0,1,1.09393e-9,0,0,1,1.1095e-9,0,0,1,1.154e-9,0,0,1,1.26089e-9,0,0,.999999,1.5059e-9,0,0,.999997,2.07899e-9,0,0,.999994,3.48164e-9,0,0,.999993,7.05728e-9,0,0,.999987,1.63692e-8,0,0,.999981,4.06033e-8,0,0,.999969,1.0245e-7,0,0,.999953,2.55023e-7,0,0,.999925,6.1511e-7,0,0,.999881,142218e-11,0,0,.99981,313086e-11,0,0,.99968,653119e-11,0,0,.999418,12832e-9,0,0,.998748,232497e-10,0,0,.996066,329522e-10,0,0,.988379,179613e-10,0,108799e-9,.982567,143715e-10,0,921302e-9,.976097,148096e-10,0,.00280738,.968475,178905e-10,0,.00596622,.964606,253921e-10,0,.0105284,.961564,348623e-10,0,.0165848,.955517,357612e-10,0,.0242,.948381,343493e-10,0,.03342,.941095,405849e-10,0,.0442777,.931923,475394e-10,0,.0567958,.91996,484328e-10,0,.0709879,.907419,502146e-10,0,.086861,.89618,561654e-10,0,.104415,.88337,587612e-10,0,.123643,.869046,618057e-10,0,.144531,.853278,657392e-10,0,.167057,.836091,66303e-9,0,.191188,.819644,704445e-10,0,.216878,.801246,714071e-10,0,.244062,.782031,740093e-10,0,.272649,.762066,74685e-9,0,.302509,.741964,766647e-10,0,.333442,.720554,766328e-10,0,.365079,.699098,777857e-10,0,.396826,.677189,774633e-10,0,.428572,.65484,776235e-10,0,.460318,.632496,770316e-10,0,.492064,.609908,762669e-10,0,.52381,.587312,753972e-10,0,.555556,.564938,739994e-10,0,.587302,.542577,728382e-10,0,.619048,.52062,71112e-9,0,.650794,.498819,694004e-10,0,.68254,.477555,675575e-10,0,.714286,.456568,653449e-10,0,.746032,.436278,636068e-10,0,.777778,.41637,613466e-10,0,.809524,.397144,594177e-10,0,.84127,.378412,570987e-10,0,.873016,.360376,550419e-10,0,.904762,.342906,527422e-10,0,.936508,.326136,506544e-10,0,.968254,.30997,484307e-10,0,1,1,3.54014e-9,0,0,1,3.54073e-9,0,0,1,3.54972e-9,0,0,1,3.58929e-9,0,0,1,3.70093e-9,0,0,.999999,3.96194e-9,0,0,.999998,4.53352e-9,0,0,.999997,5.78828e-9,0,0,.999994,8.63812e-9,0,0,.999991,1.53622e-8,0,0,.999985,3.16356e-8,0,0,.999977,7.12781e-8,0,0,.999964,1.66725e-7,0,0,.999945,3.90501e-7,0,0,.999912,8.95622e-7,0,0,.999866,198428e-11,0,0,.999786,421038e-11,0,0,.999647,850239e-11,0,0,.999356,162059e-10,0,0,.998563,282652e-10,0,0,.994928,336309e-10,0,244244e-10,.987999,178458e-10,0,523891e-9,.982893,159162e-10,0,.00194729,.977044,178056e-10,0,.00451099,.969972,230624e-10,0,.00835132,.964237,313922e-10,0,.013561,.960791,406145e-10,0,.0202056,.954292,372796e-10,0,.0283321,.948052,403199e-10,0,.0379739,.940938,479537e-10,0,.0491551,.931689,545292e-10,0,.0618918,.91987,54038e-9,0,.0761941,.907665,589909e-10,0,.0920672,.895281,642651e-10,0,.109511,.882621,659707e-10,0,.12852,.86873,709973e-10,0,.149085,.853008,742221e-10,0,.171189,.835944,761754e-10,0,.194809,.818949,797052e-10,0,.21991,.800951,812434e-10,0,.246447,.781847,838075e-10,0,.274352,.761649,84501e-9,0,.303535,.74152,860258e-10,0,.333857,.720495,866233e-10,0,.365104,.698742,868326e-10,0,.396826,.677096,87133e-9,0,.428572,.654782,863497e-10,0,.460318,.632335,860206e-10,0,.492064,.610031,849337e-10,0,.52381,.587457,838279e-10,0,.555556,.56513,82309e-9,0,.587302,.542877,803542e-10,0,.619048,.5209,786928e-10,0,.650794,.499291,765171e-10,0,.68254,.477971,744753e-10,0,.714286,.457221,72209e-9,0,.746032,.436803,697448e-10,0,.777778,.417083,675333e-10,0,.809524,.397749,648058e-10,0,.84127,.379177,625759e-10,0,.873016,.361061,598584e-10,0,.904762,.343713,575797e-10,0,.936508,.326894,549999e-10,0,.968254,.310816,527482e-10,0,1,1,1.0153e-8,0,0,1,1.01544e-8,0,0,1,1.01751e-8,0,0,1,1.02662e-8,0,0,1,1.0521e-8,0,0,.999999,1.11049e-8,0,0,.999999,1.23408e-8,0,0,.999996,1.4924e-8,0,0,.999992,2.04471e-8,0,0,.999989,3.26539e-8,0,0,.99998,6.03559e-8,0,0,.999971,1.23936e-7,0,0,.999955,2.69058e-7,0,0,.999933,5.93604e-7,0,0,.999901,129633e-11,0,0,.999847,275621e-11,0,0,.999761,564494e-11,0,0,.999607,110485e-10,0,0,.999282,204388e-10,0,0,.99831,341084e-10,0,2.2038e-7,.993288,294949e-10,0,242388e-9,.987855,192736e-10,0,.0012503,.983167,182383e-10,0,.0032745,.977908,218633e-10,0,.00646321,.971194,290662e-10,0,.0109133,.963867,386401e-10,0,.0166927,.95982,462827e-10,0,.0238494,.953497,420705e-10,0,.0324178,.947621,477743e-10,0,.0424225,.940611,568258e-10,0,.0538808,.931174,618061e-10,0,.0668047,.919919,627098e-10,0,.0812014,.907856,694714e-10,0,.0970745,.894509,735008e-10,0,.114424,.881954,763369e-10,0,.133246,.868309,821896e-10,0,.153534,.852511,83769e-9,0,.175275,.835821,881615e-10,0,.198453,.817981,896368e-10,0,.223042,.800504,930906e-10,0,.249009,.78141,945056e-10,0,.276304,.761427,963605e-10,0,.304862,.74094,968088e-10,0,.334584,.720233,981481e-10,0,.365322,.698592,979122e-10,0,.396826,.676763,981057e-10,0,.428571,.654808,973956e-10,0,.460318,.632326,962619e-10,0,.492064,.610049,952996e-10,0,.52381,.58763,933334e-10,0,.555556,.565261,917573e-10,0,.587302,.543244,896636e-10,0,.619048,.521273,873304e-10,0,.650794,.499818,852648e-10,0,.68254,.478536,823961e-10,0,.714286,.457826,79939e-9,0,.746032,.437549,77126e-9,0,.777778,.41776,743043e-10,0,.809524,.39863,716426e-10,0,.84127,.379954,686456e-10,0,.873016,.362025,660514e-10,0,.904762,.344581,630755e-10,0,.936508,.327909,605439e-10,0,.968254,.311736,576345e-10,0,1,1,2.63344e-8,0,0,1,2.63373e-8,0,0,1,2.63815e-8,0,0,1,2.65753e-8,0,0,1,2.71132e-8,0,0,.999999,2.83279e-8,0,0,.999997,3.0833e-8,0,0,.999995,3.58711e-8,0,0,.999992,4.61266e-8,0,0,.999985,6.7574e-8,0,0,.999977,1.1358e-7,0,0,.999966,2.13657e-7,0,0,.999948,4.31151e-7,0,0,.999923,8.96656e-7,0,0,.999884,186603e-11,0,0,.999826,381115e-11,0,0,.999732,754184e-11,0,0,.999561,143192e-10,0,0,.999191,257061e-10,0,0,.997955,405724e-10,0,744132e-10,.992228,276537e-10,0,716477e-9,.987638,208885e-10,0,.0022524,.983395,215226e-10,0,.00484816,.978614,270795e-10,0,.00860962,.972389,365282e-10,0,.0136083,.964392,474747e-10,0,.0198941,.95861,509141e-10,0,.0275023,.952806,48963e-9,0,.0364584,.94712,571119e-10,0,.04678,.940104,671704e-10,0,.0584799,.930398,687586e-10,0,.0715665,.919866,738161e-10,0,.086045,.907853,813235e-10,0,.101918,.894078,834582e-10,0,.119186,.881177,892093e-10,0,.137845,.867575,944548e-10,0,.157891,.852107,969607e-10,0,.179316,.835502,101456e-9,0,.202106,.81756,103256e-9,0,.226243,.79984,106954e-9,0,.251704,.780998,108066e-9,0,.278451,.761132,110111e-9,0,.306436,.740429,110459e-9,0,.335586,.719836,111219e-9,0,.365796,.698467,11145e-8,0,.3969,.676446,110393e-9,0,.428571,.654635,110035e-9,0,.460318,.632411,108548e-9,0,.492064,.609986,106963e-9,0,.52381,.587872,105238e-9,0,.555556,.565528,102665e-9,0,.587302,.543563,100543e-9,0,.619048,.52176,976182e-10,0,.650794,.500188,947099e-10,0,.68254,.479204,919929e-10,0,.714286,.458413,886139e-10,0,.746032,.438314,857839e-10,0,.777778,.418573,82411e-9,0,.809524,.39947,792211e-10,0,.84127,.380892,759546e-10,0,.873016,.362953,727571e-10,0,.904762,.345601,695738e-10,0,.936508,.328895,664907e-10,0,.968254,.312808,634277e-10,0,1,1,6.28647e-8,0,0,1,6.28705e-8,0,0,1,6.29587e-8,0,0,1,6.33441e-8,0,0,.999999,6.44087e-8,0,0,.999998,6.67856e-8,0,0,.999997,7.15889e-8,0,0,.999995,8.09577e-8,0,0,.999989,9.92764e-8,0,0,.999983,1.35834e-7,0,0,.999974,2.10482e-7,0,0,.999959,3.65215e-7,0,0,.999939,6.86693e-7,0,0,.999911,13472e-10,0,0,.999868,26731e-10,0,0,.999804,524756e-11,0,0,.9997,100403e-10,0,0,.99951,185019e-10,0,0,.999078,322036e-10,0,620676e-11,.997428,470002e-10,0,341552e-9,.99162,287123e-10,0,.00143727,.987479,234706e-10,0,.00349201,.983582,260083e-10,0,.0066242,.979186,337927e-10,0,.0109113,.97325,454689e-10,0,.0164064,.965221,573759e-10,0,.0231463,.957262,544114e-10,0,.0311571,.952211,587006e-10,0,.0404572,.946631,692256e-10,0,.0510592,.939391,787819e-10,0,.0629723,.929795,792368e-10,0,.0762025,.91965,875075e-10,0,.090753,.907737,950903e-10,0,.106626,.893899,972963e-10,0,.123822,.880239,10459e-8,0,.142337,.866562,107689e-9,0,.16217,.85164,113081e-9,0,.183314,.835021,116636e-9,0,.20576,.817311,120074e-9,0,.229496,.798845,121921e-9,0,.254502,.780479,12475e-8,0,.280753,.760694,125255e-9,0,.308212,.740142,126719e-9,0,.336825,.719248,12636e-8,0,.366517,.698209,126712e-9,0,.397167,.676398,125769e-9,0,.428578,.654378,124432e-9,0,.460318,.632484,123272e-9,0,.492064,.610113,12085e-8,0,.52381,.587931,118411e-9,0,.555556,.565872,11569e-8,0,.587302,.543814,112521e-9,0,.619048,.522265,109737e-9,0,.650794,.500835,106228e-9,0,.68254,.479818,102591e-9,0,.714286,.459258,991288e-10,0,.746032,.439061,952325e-10,0,.777778,.419552,91895e-9,0,.809524,.400399,879051e-10,0,.84127,.381976,844775e-10,0,.873016,.364009,806316e-10,0,.904762,.346761,771848e-10,0,.936508,.330049,735429e-10,0,.968254,.314018,702103e-10,0,1,1,1.39968e-7,0,0,1,1.39979e-7,0,0,1,1.40145e-7,0,0,1,1.4087e-7,0,0,.999999,1.42865e-7,0,0,.999998,1.47279e-7,0,0,.999997,1.56057e-7,0,0,.999992,1.7276e-7,0,0,.999989,2.04352e-7,0,0,.99998,2.6494e-7,0,0,.999969,3.83435e-7,0,0,.999953,6.18641e-7,0,0,.999929,108755e-11,0,0,.999898,201497e-11,0,0,.999849,381346e-11,0,0,.999778,719815e-11,0,0,.999661,133215e-10,0,0,.999451,238313e-10,0,0,.998936,401343e-10,0,113724e-9,.99662,517346e-10,0,820171e-9,.991094,304323e-10,0,.00238143,.987487,281757e-10,0,.00493527,.983731,320048e-10,0,.00856859,.979647,423905e-10,0,.0133393,.973837,562935e-10,0,.0192863,.96584,677442e-10,0,.0264369,.956309,623073e-10,0,.03481,.951523,704131e-10,0,.0444184,.946003,836594e-10,0,.0552713,.938454,911736e-10,0,.0673749,.929279,938264e-10,0,.0807329,.919239,103754e-9,0,.0953479,.907293,109928e-9,0,.111221,.893936,115257e-9,0,.128352,.879674,122265e-9,0,.14674,.865668,125733e-9,0,.166382,.850998,132305e-9,0,.187276,.834498,134844e-9,0,.209413,.816903,139276e-9,0,.232786,.798235,140984e-9,0,.257382,.779724,14378e-8,0,.283181,.760251,144623e-9,0,.310156,.739808,145228e-9,0,.338269,.718762,14539e-8,0,.367461,.697815,144432e-9,0,.397646,.67631,143893e-9,0,.428685,.654278,141846e-9,0,.460318,.632347,13935e-8,0,.492064,.610296,137138e-9,0,.52381,.588039,133806e-9,0,.555556,.566218,130755e-9,0,.587302,.544346,127128e-9,0,.619048,.522701,123002e-9,0,.650794,.501542,119443e-9,0,.68254,.480508,115055e-9,0,.714286,.460092,111032e-9,0,.746032,.440021,106635e-9,0,.777778,.420446,102162e-9,0,.809524,.401512,98184e-9,0,.84127,.38299,936497e-10,0,.873016,.365232,89813e-9,0,.904762,.347865,853073e-10,0,.936508,.331342,817068e-10,0,.968254,.315202,773818e-10,0,1,1,2.9368e-7,0,0,1,2.937e-7,0,0,1,2.93998e-7,0,0,1,2.95298e-7,0,0,.999999,2.98865e-7,0,0,.999998,3.067e-7,0,0,.999995,3.22082e-7,0,0,.999992,3.50767e-7,0,0,.999986,4.03538e-7,0,0,.999976,5.01372e-7,0,0,.999964,6.8562e-7,0,0,.999945,10374e-10,0,0,.999919,171269e-11,0,0,.999882,300175e-11,0,0,.999829,542144e-11,0,0,.999749,984182e-11,0,0,.99962,176213e-10,0,0,.999382,305995e-10,0,138418e-10,.998751,496686e-10,0,389844e-9,.995344,510733e-10,0,.00150343,.990768,345829e-10,0,.00352451,.987464,342841e-10,0,.00655379,.983846,399072e-10,0,.0106554,.980007,533219e-10,0,.0158723,.974494,696992e-10,0,.0222333,.96622,776754e-10,0,.029758,.956273,747718e-10,0,.0384596,.950952,864611e-10,0,.0483473,.945215,100464e-9,0,.0594266,.937287,103729e-9,0,.0717019,.928649,111665e-9,0,.0851752,.918791,12353e-8,0,.0998479,.906685,127115e-9,0,.115721,.893706,13628e-8,0,.132794,.879248,142427e-9,0,.151067,.864685,148091e-9,0,.170538,.850032,153517e-9,0,.191204,.833853,157322e-9,0,.213063,.816353,161086e-9,0,.236107,.797834,164111e-9,0,.260329,.778831,165446e-9,0,.285714,.759756,167492e-9,0,.312243,.739419,166928e-9,0,.339887,.718491,167e-6,0,.368604,.697392,165674e-9,0,.398329,.676102,163815e-9,0,.428961,.654243,162003e-9,0,.460331,.632176,158831e-9,0,.492064,.610407,155463e-9,0,.52381,.588394,152062e-9,0,.555556,.56645,147665e-9,0,.587302,.5449,14375e-8,0,.619048,.523276,138905e-9,0,.650794,.502179,134189e-9,0,.68254,.481359,129392e-9,0,.714286,.46092,124556e-9,0,.746032,.441084,11957e-8,0,.777778,.421517,114652e-9,0,.809524,.402721,109688e-9,0,.84127,.384222,104667e-9,0,.873016,.366534,999633e-10,0,.904762,.349205,950177e-10,0,.936508,.332702,907301e-10,0,.968254,.316599,859769e-10,0,1,1,5.85473e-7,0,0,1,5.85507e-7,0,0,1,5.8602e-7,0,0,.999999,5.88259e-7,0,0,.999999,5.94381e-7,0,0,.999998,6.07754e-7,0,0,.999995,6.33729e-7,0,0,.99999,6.8137e-7,0,0,.999984,7.67003e-7,0,0,.999973,9.21212e-7,0,0,.999959,120218e-11,0,0,.999936,172024e-11,0,0,.999907,268088e-11,0,0,.999866,445512e-11,0,0,.999806,768481e-11,0,0,.999716,1342e-8,0,0,.999576,232473e-10,0,0,.9993,391694e-10,0,129917e-9,.998498,608429e-10,0,845035e-9,.994132,489743e-10,0,.00237616,.99031,384644e-10,0,.00484456,.987409,421768e-10,0,.00832472,.983981,504854e-10,0,.0128643,.980268,671028e-10,0,.0184947,.974875,852749e-10,0,.025237,.966063,85531e-9,0,.0331046,.956779,900588e-10,0,.0421067,.950259,10577e-8,0,.0522487,.944239,119458e-9,0,.0635343,.936341,122164e-9,0,.0759654,.928047,134929e-9,0,.0895434,.918065,145544e-9,0,.104269,.906267,150531e-9,0,.120142,.893419,161652e-9,0,.137163,.878758,16593e-8,0,.15533,.863699,174014e-9,0,.174645,.848876,177877e-9,0,.195106,.833032,184049e-9,0,.21671,.815557,186088e-9,0,.239454,.797323,19054e-8,0,.263332,.778124,191765e-9,0,.288336,.758929,192535e-9,0,.314451,.738979,192688e-9,0,.341658,.718213,191522e-9,0,.369924,.696947,190491e-9,0,.399202,.675807,187913e-9,0,.429416,.654147,184451e-9,0,.460447,.63229,181442e-9,0,.492064,.610499,177139e-9,0,.523809,.588747,172596e-9,0,.555555,.566783,167457e-9,0,.587301,.545359,162518e-9,0,.619048,.523984,156818e-9,0,.650794,.502917,151884e-9,0,.68254,.482294,145514e-9,0,.714286,.461945,140199e-9,0,.746032,.442133,134101e-9,0,.777778,.422705,128374e-9,0,.809524,.403916,122996e-9,0,.84127,.38554,116808e-9,0,.873016,.367909,111973e-9,0,.904762,.350651,105938e-9,0,.936508,.334208,101355e-9,0,.968254,.318123,957629e-10,0,1,1,111633e-11,0,0,1,111639e-11,0,0,1,111725e-11,0,0,1,112096e-11,0,0,.999999,11311e-10,0,0,.999997,115315e-11,0,0,.999995,11956e-10,0,0,.999989,127239e-11,0,0,.999981,140772e-11,0,0,.999969,164541e-11,0,0,.999952,206607e-11,0,0,.999928,281783e-11,0,0,.999895,416835e-11,0,0,.999848,658728e-11,0,0,.999781,108648e-10,0,0,.999682,182579e-10,0,0,.999523,306003e-10,0,159122e-10,.999205,499862e-10,0,391184e-9,.998131,73306e-9,0,.00147534,.993334,513229e-10,0,.0034227,.99016,467783e-10,0,.00632232,.987321,523413e-10,0,.0102295,.984099,64267e-9,0,.0151794,.980432,843042e-10,0,.0211947,.974976,102819e-9,0,.0282899,.966429,996234e-10,0,.0364739,.957633,111074e-9,0,.0457522,.949422,128644e-9,0,.0561278,.943045,140076e-9,0,.0676023,.935448,146349e-9,0,.0801762,.927225,161854e-9,0,.0938499,.917033,169135e-9,0,.108623,.905762,179987e-9,0,.124496,.892879,189832e-9,0,.141469,.878435,195881e-9,0,.159541,.863114,20466e-8,0,.178713,.84776,209473e-9,0,.198985,.832084,214861e-9,0,.220355,.814915,217695e-9,0,.242823,.796711,220313e-9,0,.266385,.777603,22313e-8,0,.291036,.757991,222471e-9,0,.316767,.738371,222869e-9,0,.343563,.717872,221243e-9,0,.371402,.696619,218089e-9,0,.400248,.675379,21562e-8,0,.430047,.65411,21169e-8,0,.460709,.63241,206947e-9,0,.492079,.61046,201709e-9,0,.52381,.58903,196753e-9,0,.555556,.567267,189637e-9,0,.587302,.545886,184735e-9,0,.619048,.524714,177257e-9,0,.650794,.503789,171424e-9,0,.68254,.483204,164688e-9,0,.714286,.462976,157172e-9,0,.746032,.443294,151341e-9,0,.777778,.423988,143737e-9,0,.809524,.405325,138098e-9,0,.84127,.386981,130698e-9,0,.873016,.369436,125276e-9,0,.904762,.35219,118349e-9,0,.936508,.335804,11312e-8,0,.968254,.319749,106687e-9,0,1,1,204685e-11,0,0,1,204694e-11,0,0,1,204831e-11,0,0,.999999,205428e-11,0,0,.999999,207056e-11,0,0,.999997,210581e-11,0,0,.999993,21732e-10,0,0,.999987,229365e-11,0,0,.999979,250243e-11,0,0,.999965,286127e-11,0,0,.999947,348028e-11,0,0,.999918,455588e-11,0,0,.999881,643303e-11,0,0,.999828,970064e-11,0,0,.999753,153233e-10,0,0,.999642,24793e-9,0,0,.999464,402032e-10,0,122947e-9,.999089,635852e-10,0,807414e-9,.997567,857026e-10,0,.00227206,.992903,594912e-10,0,.00462812,.990011,578515e-10,0,.00794162,.987192,65399e-9,0,.0122534,.98418,819675e-10,0,.0175888,.980491,105514e-9,0,.0239635,.974779,121532e-9,0,.031387,.96675,119144e-9,0,.0398644,.958248,136125e-9,0,.0493982,.948884,155408e-9,0,.0599896,.941673,162281e-9,0,.0716382,.934521,176754e-9,0,.0843437,.926205,192873e-9,0,.0981056,.916089,200038e-9,0,.112923,.904963,213624e-9,0,.128796,.892089,221834e-9,0,.145725,.878028,232619e-9,0,.163709,.86249,238632e-9,0,.182749,.846587,247002e-9,0,.202847,.830988,250702e-9,0,.224001,.814165,255562e-9,0,.246214,.796135,257505e-9,0,.269482,.777052,258625e-9,0,.293805,.757201,258398e-9,0,.319176,.737655,256714e-9,0,.345587,.717477,255187e-9,0,.373021,.696433,251792e-9,0,.401454,.675084,247223e-9,0,.430844,.653907,242213e-9,0,.461125,.632561,237397e-9,0,.492187,.610658,229313e-9,0,.52381,.589322,224402e-9,0,.555556,.567857,216116e-9,0,.587302,.54652,209124e-9,0,.619048,.525433,201601e-9,0,.650794,.504679,192957e-9,0,.68254,.484203,186052e-9,0,.714286,.464203,177672e-9,0,.746032,.444549,170005e-9,0,.777778,.425346,162401e-9,0,.809524,.406706,1544e-7,0,.84127,.388576,147437e-9,0,.873016,.37094,139493e-9,0,.904762,.353996,133219e-9,0,.936508,.337391,125573e-9,0,.968254,.321648,119867e-9,0,1,1,362511e-11,0,0,1,362525e-11,0,0,1,362739e-11,0,0,.999999,363673e-11,0,0,.999998,366214e-11,0,0,.999996,371698e-11,0,0,.999992,382116e-11,0,0,.999986,400554e-11,0,0,.999976,432058e-11,0,0,.999961,485194e-11,0,0,.999938,574808e-11,0,0,.999908,726643e-11,0,0,.999865,984707e-11,0,0,.999807,142217e-10,0,0,.999723,215581e-10,0,0,.999602,336114e-10,0,119113e-10,.999398,527353e-10,0,355813e-9,.998946,805809e-10,0,.00137768,.996647,942908e-10,0,.00322469,.992298,668733e-10,0,.00597897,.989802,716564e-10,0,.00968903,.987019,821355e-10,0,.0143845,.984219,104555e-9,0,.0200831,.980425,131245e-9,0,.0267948,.974241,139613e-9,0,.034525,.967006,145931e-9,0,.0432757,.95893,167153e-9,0,.0530471,.949157,188146e-9,0,.0638386,.94062,194625e-9,0,.0756487,.933509,213721e-9,0,.0884762,.925088,229616e-9,0,.10232,.915178,239638e-9,0,.117178,.904093,254814e-9,0,.133051,.891337,263685e-9,0,.149939,.877326,274789e-9,0,.167841,.861794,280534e-9,0,.18676,.845758,289534e-9,0,.206696,.829792,294446e-9,0,.22765,.813037,296877e-9,0,.249625,.795285,300217e-9,0,.27262,.776323,299826e-9,0,.296636,.756673,299787e-9,0,.321671,.736856,297867e-9,0,.347718,.716883,294052e-9,0,.374768,.696089,289462e-9,0,.402804,.67505,285212e-9,0,.431796,.653509,27653e-8,0,.461695,.63258,271759e-9,0,.49242,.61104,262811e-9,0,.523822,.589567,255151e-9,0,.555556,.568322,246434e-9,0,.587302,.547235,237061e-9,0,.619048,.52616,228343e-9,0,.650794,.505716,219236e-9,0,.68254,.485274,209595e-9,0,.714286,.465411,201011e-9,0,.746032,.445854,19109e-8,0,.777778,.426911,182897e-9,0,.809524,.408222,173569e-9,0,.84127,.390307,165496e-9,0,.873016,.372624,156799e-9,0,.904762,.355804,14917e-8,0,.936508,.33924,140907e-9,0,.968254,.323534,134062e-9,0,1,1,622487e-11,0,0,1,62251e-10,0,0,1,622837e-11,0,0,.999999,624259e-11,0,0,.999998,628127e-11,0,0,.999996,636451e-11,0,0,.999991,65218e-10,0,0,.999984,679782e-11,0,0,.999973,726361e-11,0,0,.999955,803644e-11,0,0,.999931,931397e-11,0,0,.999896,114299e-10,0,0,.999847,149402e-10,0,0,.999784,207461e-10,0,0,.999692,302493e-10,0,0,.999554,454957e-10,0,997275e-10,.999326,690762e-10,0,724813e-9,.998757,101605e-9,0,.0020972,.995367,958745e-10,0,.00432324,.99209,832808e-10,0,.00746347,.989517,887601e-10,0,.0115534,.987008,10564e-8,0,.0166134,.98421,133179e-9,0,.0226552,.98021,161746e-9,0,.0296838,.973676,161821e-9,0,.0377016,.967052,178635e-9,0,.0467079,.959385,206765e-9,0,.0567013,.949461,22476e-8,0,.0676796,.939578,23574e-8,0,.0796403,.932416,25893e-8,0,.0925812,.923759,271228e-9,0,.106501,.914223,289165e-9,0,.121397,.902942,301156e-9,0,.13727,.890419,313852e-9,0,.15412,.876639,324408e-9,0,.171946,.861316,33249e-8,0,.190751,.84496,338497e-9,0,.210537,.828427,345861e-9,0,.231305,.811871,347863e-9,0,.253057,.794397,350225e-9,0,.275797,.775726,349915e-9,0,.299525,.75617,347297e-9,0,.324242,.736091,344232e-9,0,.349947,.716213,340835e-9,0,.376633,.695736,332369e-9,0,.404289,.674961,327943e-9,0,.432895,.653518,318533e-9,0,.462415,.632574,310391e-9,0,.492788,.61134,300755e-9,0,.523909,.590017,290506e-9,0,.555556,.568752,280446e-9,0,.587302,.548061,269902e-9,0,.619048,.52711,258815e-9,0,.650794,.506682,248481e-9,0,.68254,.486524,237141e-9,0,.714286,.466812,226872e-9,0,.746032,.44732,216037e-9,0,.777778,.428473,205629e-9,0,.809524,.409921,195691e-9,0,.84127,.392028,185457e-9,0,.873016,.374606,176436e-9,0,.904762,.357601,166508e-9,0,.936508,.341348,158385e-9,0,.968254,.32542,149203e-9,0,1,1,103967e-10,0,0,1,10397e-9,0,0,1,104019e-10,0,0,.999999,104231e-10,0,0,.999998,104806e-10,0,0,.999995,106042e-10,0,0,.999991,108366e-10,0,0,.999982,112415e-10,0,0,.999968,119174e-10,0,0,.99995,130227e-10,0,0,.999922,148176e-10,0,0,.999884,177303e-10,0,0,.99983,224564e-10,0,0,.999758,300966e-10,0,0,.999654,423193e-10,0,549083e-11,.999503,614848e-10,0,296087e-9,.999237,903576e-10,0,.00123144,.998491,1271e-7,0,.00295954,.994594,107754e-9,0,.00555829,.99178,103025e-9,0,.00907209,.989265,11154e-8,0,.0135257,.986998,136296e-9,0,.0189327,.984137,169154e-9,0,.0252993,.979798,196671e-9,0,.0326272,.97337,196678e-9,0,.0409157,.967239,223121e-9,0,.0501623,.959543,253809e-9,0,.0603638,.949466,265972e-9,0,.0715171,.939074,288372e-9,0,.0836187,.931118,310983e-9,0,.0966657,.922525,325561e-9,0,.110656,.912983,345725e-9,0,.125588,.901617,3556e-7,0,.141461,.889487,374012e-9,0,.158275,.875787,383445e-9,0,.176031,.860654,393972e-9,0,.19473,.844417,400311e-9,0,.214374,.82741,405004e-9,0,.234967,.810545,407378e-9,0,.256512,.793312,407351e-9,0,.279011,.774847,406563e-9,0,.302468,.755621,404903e-9,0,.326887,.735511,397486e-9,0,.352266,.715435,39357e-8,0,.378605,.695403,384739e-9,0,.405897,.674681,376108e-9,0,.43413,.65359,365997e-9,0,.463277,.632471,354957e-9,0,.493295,.61151,343593e-9,0,.524106,.59064,331841e-9,0,.555561,.569386,318891e-9,0,.587302,.548785,3072e-7,0,.619048,.528146,29361e-8,0,.650794,.507872,281709e-9,0,.68254,.487805,268627e-9,0,.714286,.468196,255887e-9,0,.746032,.448922,243997e-9,0,.777778,.430093,231662e-9,0,.809524,.411845,220339e-9,0,.84127,.393808,208694e-9,0,.873016,.376615,198045e-9,0,.904762,.359655,187375e-9,0,.936508,.343452,177371e-9,0,.968254,.32765,167525e-9,0,1,1,169351e-10,0,0,1,169356e-10,0,0,1,169427e-10,0,0,.999999,169736e-10,0,0,.999998,170575e-10,0,0,.999995,172372e-10,0,0,.99999,175739e-10,0,0,.999979,181568e-10,0,0,.999966,191206e-10,0,0,.999944,20677e-9,0,0,.999912,231644e-10,0,0,.999869,271268e-10,0,0,.999811,334272e-10,0,0,.99973,433979e-10,0,0,.999617,590083e-10,0,680315e-10,.999445,829497e-10,0,612796e-9,.999138,118019e-9,0,.00187408,.998095,156712e-9,0,.00395791,.993919,125054e-9,0,.00692144,.991333,126091e-9,0,.0107962,.989226,144912e-9,0,.0155986,.986954,175737e-9,0,.0213364,.983982,213883e-9,0,.0280114,.979128,234526e-9,0,.0356226,.973327,243725e-9,0,.0441668,.967416,2773e-7,0,.0536399,.959729,308799e-9,0,.0640376,.949758,322447e-9,0,.0753554,.939173,350021e-9,0,.0875893,.9296,370089e-9,0,.100736,.921181,391365e-9,0,.114793,.91164,413636e-9,0,.129759,.900435,427068e-9,0,.145632,.888183,441046e-9,0,.162412,.874772,454968e-9,0,.180101,.859566,461882e-9,0,.1987,.843579,471556e-9,0,.218213,.826453,474335e-9,0,.238641,.809164,477078e-9,0,.259989,.792179,47755e-8,0,.282262,.773866,472573e-9,0,.305464,.754944,469765e-9,0,.329599,.735133,462371e-9,0,.35467,.714858,453674e-9,0,.380678,.694829,443888e-9,0,.407622,.674453,432052e-9,0,.435493,.653685,420315e-9,0,.464275,.632666,406829e-9,0,.493938,.611676,392234e-9,0,.524422,.591193,379208e-9,0,.555624,.570145,36319e-8,0,.587302,.549566,349111e-9,0,.619048,.529278,334166e-9,0,.650794,.509026,318456e-9,0,.68254,.489186,30449e-8,0,.714286,.469662,289051e-9,0,.746032,.450691,275494e-9,0,.777778,.431841,261437e-9,0,.809524,.413752,247846e-9,0,.84127,.395951,235085e-9,0,.873016,.378633,222245e-9,0,.904762,.36194,210533e-9,0,.936508,.345599,198494e-9,0,.968254,.329999,188133e-9,0,1,1,269663e-10,0,0,1,26967e-9,0,0,1,269772e-10,0,0,.999999,270214e-10,0,0,.999998,271415e-10,0,0,.999994,27398e-9,0,0,.999988,278771e-10,0,0,.999977,287019e-10,0,0,.999961,300544e-10,0,0,.999937,322138e-10,0,0,.999904,356163e-10,0,0,.999854,409465e-10,0,0,.99979,492651e-10,0,0,.999699,621722e-10,0,8.8288e-7,.999572,819715e-10,0,223369e-9,.999381,111689e-9,0,.00105414,.999016,153862e-9,0,.0026493,.997437,187667e-9,0,.00508608,.993545,155672e-9,0,.00840554,.991135,161455e-9,0,.012629,.989157,188241e-9,0,.0177661,.986874,226229e-9,0,.0238198,.983714,268668e-9,0,.0307887,.978301,277109e-9,0,.0386688,.973227,303446e-9,0,.0474554,.967317,341851e-9,0,.0571428,.959477,370885e-9,0,.0677256,.950012,392753e-9,0,.0791988,.939484,42781e-8,0,.0915576,.928135,443866e-9,0,.104798,.919819,472959e-9,0,.118918,.910049,491551e-9,0,.133915,.899181,512616e-9,0,.149788,.886881,523563e-9,0,.166537,.87359,540183e-9,0,.184164,.858613,547386e-9,0,.202669,.842809,554809e-9,0,.222056,.825727,558316e-9,0,.242329,.808086,557824e-9,0,.263492,.790728,556346e-9,0,.285551,.772987,552672e-9,0,.30851,.7541,543738e-9,0,.332376,.734669,536107e-9,0,.357153,.714411,523342e-9,0,.382845,.694196,512238e-9,0,.409454,.674252,497465e-9,0,.436977,.65357,481096e-9,0,.465404,.632999,467054e-9,0,.494713,.611994,448771e-9,0,.524864,.591604,431889e-9,0,.555779,.571134,415238e-9,0,.587302,.550528,396369e-9,0,.619048,.530292,379477e-9,0,.650794,.510364,361488e-9,0,.68254,.490749,343787e-9,0,.714286,.471266,327822e-9,0,.746032,.452462,310626e-9,0,.777778,.433907,295352e-9,0,.809524,.415659,279179e-9,0,.84127,.398138,264685e-9,0,.873016,.380833,249905e-9,0,.904762,.364247,236282e-9,0,.936508,.348041,222905e-9,0,.968254,.332389,210522e-9,0,1,1,420604e-10,0,0,1,420614e-10,0,0,1,420757e-10,0,0,.999999,42138e-9,0,0,.999997,423067e-10,0,0,.999993,426668e-10,0,0,.999986,433372e-10,0,0,.999974,444857e-10,0,0,.999956,463554e-10,0,0,.99993,493105e-10,0,0,.999892,539077e-10,0,0,.999838,610005e-10,0,0,.999767,718822e-10,0,0,.999666,884581e-10,0,365471e-10,.999525,113398e-9,0,485623e-9,.999311,150043e-9,0,.00162096,.998865,200063e-9,0,.00355319,.996278,211014e-9,0,.00633818,.992956,189672e-9,0,.0100043,.991017,210262e-9,0,.0145648,.989055,244292e-9,0,.0200237,.986741,290481e-9,0,.0263798,.983288,334303e-9,0,.033629,.977784,340307e-9,0,.0417652,.973037,377864e-9,0,.0507821,.967181,4239e-7,0,.060673,.958971,443854e-9,0,.0714314,.950093,483039e-9,0,.0830518,.939552,517934e-9,0,.0955288,.927678,539449e-9,0,.108859,.918278,568604e-9,0,.123038,.908449,588505e-9,0,.138065,.897713,612473e-9,0,.153938,.885533,625575e-9,0,.170657,.872131,63854e-8,0,.188224,.857517,647034e-9,0,.20664,.841796,65209e-8,0,.225909,.824726,6544e-7,0,.246035,.807297,655744e-9,0,.267022,.789058,646716e-9,0,.288878,.77189,643898e-9,0,.311607,.753082,629973e-9,0,.335216,.7341,621564e-9,0,.359713,.714094,605171e-9,0,.385103,.693839,588752e-9,0,.41139,.673891,573294e-9,0,.438576,.653565,552682e-9,0,.466656,.633326,533446e-9,0,.495617,.612582,514635e-9,0,.525431,.59205,49303e-8,0,.556041,.571918,471842e-9,0,.587338,.551572,451713e-9,0,.619048,.531553,430049e-9,0,.650794,.51175,410445e-9,0,.68254,.49238,390098e-9,0,.714286,.473143,370033e-9,0,.746032,.45423,351205e-9,0,.777778,.435963,332049e-9,0,.809524,.41787,315021e-9,0,.84127,.400387,297315e-9,0,.873016,.383332,281385e-9,0,.904762,.366665,265397e-9,0,.936508,.350633,250601e-9,0,.968254,.334964,23589e-8,0,1,1,643736e-10,0,0,1,64375e-9,0,0,1,643947e-10,0,0,.999999,64481e-9,0,0,.999997,647143e-10,0,0,.999994,652119e-10,0,0,.999985,661359e-10,0,0,.999972,677116e-10,0,0,.999952,702599e-10,0,0,.999922,742517e-10,0,0,.99988,803906e-10,0,0,.99982,897315e-10,0,0,.999741,103838e-9,0,0,.999629,12496e-8,0,149024e-9,.999474,156161e-9,0,861027e-9,.999229,201034e-9,0,.00231198,.998662,259069e-9,0,.00458147,.995299,245439e-9,0,.00770895,.992732,24498e-8,0,.0117126,.990847,273211e-9,0,.0165989,.988911,316492e-9,0,.0223674,.98654,37161e-8,0,.0290135,.982636,410352e-9,0,.0365309,.977346,421756e-9,0,.0449117,.972909,475578e-9,0,.0541481,.966821,522482e-9,0,.0642326,.958686,545008e-9,0,.075158,.949754,589286e-9,0,.0869181,.939184,619995e-9,0,.0995074,.927505,654266e-9,0,.112922,.916606,682362e-9,0,.127157,.906707,704286e-9,0,.142212,.895937,725909e-9,0,.158085,.883913,743939e-9,0,.174776,.870642,755157e-9,0,.192287,.856241,764387e-9,0,.210619,.84069,771032e-9,0,.229775,.823728,765906e-9,0,.249761,.806481,767604e-9,0,.270582,.787924,754385e-9,0,.292243,.770588,749668e-9,0,.314753,.751991,731613e-9,0,.338118,.733407,717655e-9,0,.362347,.713688,700604e-9,0,.387447,.693595,678765e-9,0,.413424,.673426,657042e-9,0,.440284,.65359,635892e-9,0,.468027,.633576,611569e-9,0,.496645,.613144,586011e-9,0,.526122,.592711,563111e-9,0,.556417,.572722,537699e-9,0,.587451,.552762,512556e-9,0,.619048,.532985,489757e-9,0,.650794,.513219,464139e-9,0,.68254,.493992,442193e-9,0,.714286,.47509,418629e-9,0,.746032,.456287,397045e-9,0,.777778,.438152,375504e-9,0,.809524,.420294,35492e-8,0,.84127,.402749,335327e-9,0,.873016,.385879,316422e-9,0,.904762,.369352,298333e-9,0,.936508,.353301,281417e-9,0,.968254,.337781,265203e-9,0,1,1,968267e-10,0,0,1,968284e-10,0,0,1,968556e-10,0,0,.999999,969733e-10,0,0,.999997,972913e-10,0,0,.999993,979688e-10,0,0,.999984,992239e-10,0,0,.999969,101356e-9,0,0,.999946,104784e-9,0,0,.999913,110111e-9,0,0,.999868,118217e-9,0,0,.999801,130396e-9,0,0,.999712,148523e-9,0,124907e-10,.999589,175233e-9,0,355405e-9,.999416,213999e-9,0,.0013528,.999136,268529e-9,0,.00312557,.998367,333088e-9,0,.00573045,.994701,304757e-9,0,.00919397,.992497,318031e-9,0,.0135261,.990608,353863e-9,0,.0187278,.988715,409044e-9,0,.0247947,.986241,472967e-9,0,.0317196,.981696,495104e-9,0,.039494,.977097,532873e-9,0,.0481087,.972583,594447e-9,0,.0575549,.966142,636867e-9,0,.0678242,.95823,669899e-9,0,.0789089,.949677,719499e-9,0,.0908023,.939226,750584e-9,0,.103499,.927501,793183e-9,0,.116993,.915199,81995e-8,0,.131282,.90498,847654e-9,0,.146364,.894243,868929e-9,0,.162237,.882154,884278e-9,0,.178902,.869161,898108e-9,0,.196358,.854751,901254e-9,0,.21461,.839368,90679e-8,0,.23366,.822874,901541e-9,0,.253512,.805514,897297e-9,0,.274174,.78716,881856e-9,0,.29565,.769061,870032e-9,0,.31795,.751,851719e-9,0,.341081,.732614,830671e-9,0,.365053,.713171,806569e-9,0,.389874,.693472,78338e-8,0,.415553,.673528,756404e-9,0,.442098,.653397,726872e-9,0,.469512,.633781,700494e-9,0,.497794,.613877,67105e-8,0,.526935,.593506,640361e-9,0,.556908,.573667,613502e-9,0,.587657,.553932,583177e-9,0,.61906,.534345,554375e-9,0,.650794,.515042,527811e-9,0,.68254,.495674,499367e-9,0,.714286,.477132,47429e-8,0,.746032,.458609,447726e-9,0,.777778,.440354,424205e-9,0,.809524,.422765,399549e-9,0,.84127,.405472,378315e-9,0,.873016,.388482,355327e-9,0,.904762,.372191,336122e-9,0,.936508,.356099,315247e-9,0,.968254,.340737,29794e-8,0,1,1,143327e-9,0,0,1,14333e-8,0,0,1,143366e-9,0,0,.999999,143524e-9,0,0,.999996,143952e-9,0,0,.999991,144862e-9,0,0,.999981,146544e-9,0,0,.999966,149391e-9,0,0,.999941,153946e-9,0,0,.999905,160971e-9,0,0,.999852,171562e-9,0,0,.99978,18729e-8,0,0,.999681,210386e-9,0,826239e-10,.999546,243906e-9,0,664807e-9,.999352,291739e-9,0,.00196192,.999027,357419e-9,0,.00405941,.997886,422349e-9,0,.00699664,.99419,385008e-9,0,.0107896,.99214,409775e-9,0,.0154415,.990274,456418e-9,0,.0209488,.988455,527008e-9,0,.0273037,.985804,597685e-9,0,.0344969,.98103,613124e-9,0,.0425183,.976674,668321e-9,0,.0513575,.972021,736985e-9,0,.0610046,.965274,773789e-9,0,.0714508,.958046,830852e-9,0,.0826877,.949333,875766e-9,0,.0947085,.939135,917088e-9,0,.107507,.927119,952244e-9,0,.121078,.91469,990626e-9,0,.135419,.903006,.00101304,0,.150526,.892368,.00103834,0,.166399,.880231,.00105002,0,.183038,.867432,.00106331,0,.200443,.853208,.00106783,0,.218618,.837956,.00106458,0,.237566,.821772,.00105945,0,.257291,.804328,.00104685,0,.2778,.786465,.00103178,0,.2991,.768004,.00101077,0,.321199,.74972,985504e-9,0,.344106,.731682,962893e-9,0,.36783,.712813,932146e-9,0,.392383,.693139,89871e-8,0,.417774,.673566,869678e-9,0,.444013,.653483,835525e-9,0,.471107,.633891,799853e-9,0,.49906,.614433,766838e-9,0,.527869,.594586,732227e-9,0,.557517,.574769,696442e-9,0,.587966,.555149,663935e-9,0,.61913,.535898,629826e-9,0,.650794,.516753,596486e-9,0,.68254,.497816,567078e-9,0,.714286,.479034,534399e-9,0,.746032,.460975,507013e-9,0,.777778,.442935,477421e-9,0,.809524,.425263,451101e-9,0,.84127,.408248,424964e-9,0,.873016,.391339,39993e-8,0,.904762,.37513,377619e-9,0,.936508,.359172,354418e-9,0,.968254,.343876,334823e-9,0,1,1,209042e-9,0,0,1,209045e-9,0,0,1,209093e-9,0,0,.999999,209304e-9,0,0,.999996,209871e-9,0,0,.999991,211078e-9,0,0,.999979,213304e-9,0,0,.999963,217061e-9,0,0,.999933,223042e-9,0,0,.999894,232206e-9,0,0,.999837,245901e-9,0,0,.999756,266023e-9,0,102927e-11,.999648,295204e-9,0,233468e-9,.999499,336958e-9,0,.00108237,.999283,395563e-9,0,.00268832,.998896,473785e-9,0,.00511138,.997006,520008e-9,0,.00837705,.993819,497261e-9,0,.0124928,.991632,523722e-9,0,.0174561,.989875,587258e-9,0,.0232596,.988109,676329e-9,0,.0298932,.985155,747701e-9,0,.0373453,.980479,768803e-9,0,.0456045,.976271,841054e-9,0,.0546593,.971347,911469e-9,0,.0644994,.964528,953057e-9,0,.0751152,.957632,.00102221,0,.0864981,.948681,.00106122,0,.0986407,.938716,.00111857,0,.111537,.926629,.00114762,0,.125182,.914025,.00118995,0,.139571,.901026,.00121228,0,.154703,.890358,.00123946,0,.170576,.878283,.0012527,0,.18719,.865459,.00125536,0,.204547,.851407,.00126134,0,.222648,.836276,.00124759,0,.241498,.820436,.00124443,0,.261101,.803253,.00122071,0,.281465,.785562,.00120107,0,.302595,.76718,.00117762,0,.324501,.748551,.00114289,0,.347192,.730564,.00110872,0,.370679,.712253,.00107636,0,.394973,.692867,.00103646,0,.420085,.673695,996793e-9,0,.446027,.653912,95675e-8,0,.47281,.634129,916739e-9,0,.500441,.615004,874401e-9,0,.528921,.595587,833411e-9,0,.558244,.575965,794556e-9,0,.588384,.5566,75196e-8,0,.619281,.537428,716381e-9,0,.650795,.518623,676558e-9,0,.68254,.499964,64074e-8,0,.714286,.481356,605984e-9,0,.746032,.463279,570256e-9,0,.777778,.445673,540138e-9,0,.809524,.428032,507299e-9,0,.84127,.411112,479553e-9,0,.873016,.394444,450737e-9,0,.904762,.378247,424269e-9,0,.936508,.362415,399111e-9,0,.968254,.347103,375274e-9,0,1,1,300729e-9,0,0,1,300733e-9,0,0,1,300797e-9,0,0,.999998,301072e-9,0,0,.999996,301817e-9,0,0,.999989,303398e-9,0,0,.999977,306309e-9,0,0,.999958,311209e-9,0,0,.999927,318975e-9,0,0,.999884,330804e-9,0,0,.99982,34834e-8,0,0,.999733,373854e-9,0,326995e-10,.999613,410424e-9,0,477174e-9,.999447,462047e-9,0,.00161099,.999204,533322e-9,0,.00353153,.998725,624964e-9,0,.00627965,.995871,631786e-9,0,.0098693,.993194,632017e-9,0,.0143011,.991541,68923e-8,0,.019568,.989773,766892e-9,0,.0256593,.987647,863668e-9,0,.0325625,.984193,922089e-9,0,.0402647,.980016,970749e-9,0,.0487532,.975859,.00106027,0,.058016,.970514,.00112239,0,.0680419,.963625,.00117212,0,.0788208,.956959,.00125211,0,.0903439,.947956,.00129411,0,.102604,.93809,.00135879,0,.115594,.92659,.00139309,0,.129309,.913829,.00143253,0,.143745,.90005,.00145809,0,.158901,.888129,.0014748,0,.174774,.87607,.00148756,0,.191365,.863461,.00148714,0,.208674,.849594,.00148892,0,.226705,.834531,.00146496,0,.245461,.81903,.0014579,0,.264947,.802122,.00143039,0,.28517,.78445,.00139717,0,.306137,.766434,.00136312,0,.327857,.747816,.00132597,0,.350341,.729519,.00128323,0,.373598,.711454,.00123803,0,.397642,.692699,.00119097,0,.422485,.673723,.00114565,0,.448139,.654386,.00109552,0,.474619,.634673,.00104553,0,.501933,.615554,99985e-8,0,.530089,.596462,948207e-9,0,.559087,.577385,902299e-9,0,.588913,.558257,856448e-9,0,.619525,.5392,810395e-9,0,.650826,.520543,768558e-9,0,.68254,.502206,7239e-7,0,.714286,.48402,685794e-9,0,.746032,.465779,64471e-8,0,.777778,.448455,609583e-9,0,.809524,.431091,57227e-8,0,.84127,.414147,54042e-8,0,.873016,.39765,506545e-9,0,.904762,.381576,477635e-9,0,.936508,.365881,448446e-9,0,.968254,.350582,421424e-9,0,1,1,427144e-9,0,0,1,427151e-9,0,0,1,427232e-9,0,0,.999998,42759e-8,0,0,.999995,428555e-9,0,0,.999988,430603e-9,0,0,.999976,434368e-9,0,0,.999952,440688e-9,0,0,.999919,450667e-9,0,0,.999871,46578e-8,0,0,.999801,488024e-9,0,0,.999704,520092e-9,0,129791e-9,.999572,565553e-9,0,821056e-9,.999389,628906e-9,0,.00225241,.999114,714911e-9,0,.00449109,.998488,819218e-9,0,.00756249,.995234,80415e-8,0,.0114716,.993021,830181e-9,0,.0162131,.991407,902645e-9,0,.021776,.989625,996934e-9,0,.0281471,.987064,.00109707,0,.0353118,.983265,.00114353,0,.0432562,.979535,.0012272,0,.0519665,.975224,.00132642,0,.0614298,.969574,.00138092,0,.0716348,.963021,.00145896,0,.0825709,.956046,.00152834,0,.094229,.947136,.00158217,0,.106602,.937313,.0016347,0,.119682,.926073,.00168383,0,.133465,.913121,.00171627,0,.147947,.899165,.00174229,0,.163125,.885891,.00176137,0,.178998,.873783,.00176406,0,.195566,.861331,.00176156,0,.21283,.847569,.00175346,0,.230793,.832785,.00172753,0,.249459,.817442,.00170204,0,.268832,.800613,.00166576,0,.28892,.783597,.00162909,0,.30973,.76571,.0015826,0,.331271,.747021,.00153106,0,.353554,.728593,.00148036,0,.37659,.710661,.00142808,0,.400391,.692426,.00136906,0,.424973,.673623,.00131066,0,.450347,.65494,.00125569,0,.476531,.635448,.00119517,0,.503535,.616221,.00113828,0,.531372,.597531,.0010816,0,.560047,.578795,.00102673,0,.589554,.559892,970985e-9,0,.619869,.541307,919773e-9,0,.650923,.522608,868479e-9,0,.68254,.504484,82137e-8,0,.714286,.486603,772916e-9,0,.746032,.468802,730353e-9,0,.777778,.451172,684955e-9,0,.809524,.434348,647565e-9,0,.84127,.417445,605863e-9,0,.873016,.401077,571885e-9,0,.904762,.385039,536034e-9,0,.936508,.369483,504227e-9,0,.968254,.354272,473165e-9,0,1,1,599525e-9,0,0,1,599533e-9,0,0,1,599639e-9,0,0,.999998,600097e-9,0,0,.999994,601336e-9,0,0,.999987,603958e-9,0,0,.999972,608775e-9,0,0,.999949,616842e-9,0,0,.999912,629534e-9,0,0,.999857,648658e-9,0,0,.999781,676615e-9,0,538873e-11,.999674,716574e-9,0,308602e-9,.999528,772641e-9,0,.00127003,.999326,849806e-9,0,.00300783,.999009,952682e-9,0,.00556637,.998112,.00106394,0,.00895889,.994496,.00102228,0,.0131827,.992806,.00108586,0,.0182277,.991211,.0011759,0,.0240795,.989415,.00128955,0,.030723,.986499,.00139038,0,.0381418,.982679,.00144539,0,.046321,.978839,.00153954,0,.0552459,.974295,.00164417,0,.0649034,.968784,.00171517,0,.0752814,.962324,.00180282,0,.0863693,.954956,.00186387,0,.0981578,.94624,.00193817,0,.110639,.936517,.00198156,0,.123806,.925186,.00203042,0,.137655,.91252,.0020664,0,.15218,.898441,.00207822,0,.16738,.884394,.0020992,0,.183253,.871273,.00208748,0,.199799,.859057,.00208686,0,.21702,.845243,.00205519,0,.234918,.830723,.00202868,0,.253496,.815801,.00199501,0,.272761,.79914,.00194193,0,.292719,.782372,.00188824,0,.313377,.76482,.00183695,0,.334745,.746586,.00177418,0,.356833,.7281,.00170628,0,.379654,.709842,.00164063,0,.403221,.692019,.00157355,0,.427548,.67364,.00150262,0,.452651,.655277,.00143473,0,.478545,.636438,.00136371,0,.505246,.617364,.00129911,0,.532768,.598603,.00123014,0,.561122,.580195,.00116587,0,.590309,.561786,.00110398,0,.620318,.543377,.00104148,0,.651102,.525093,983984e-9,0,.682545,.506791,92667e-8,0,.714286,.489291,874326e-9,0,.746032,.471811,821734e-9,0,.777778,.454435,774698e-9,0,.809524,.437493,727302e-9,0,.84127,.420977,684039e-9,0,.873016,.404729,64373e-8,0,.904762,.388756,60285e-8,0,.936508,.373344,56765e-8,0,.968254,.358191,531929e-9,0,1,1,832169e-9,0,0,1,832178e-9,0,0,1,83231e-8,0,0,.999998,832893e-9,0,0,.999995,834465e-9,0,0,.999985,837791e-9,0,0,.999969,843893e-9,0,0,.999944,854086e-9,0,0,.999903,870071e-9,0,0,.999843,894042e-9,0,0,.999759,928865e-9,0,531805e-10,.999643,978242e-9,0,579365e-9,.99948,.00104684,0,.00182774,.999255,.00114012,0,.00387804,.998885,.00126188,0,.00675709,.997405,.00135888,0,.010468,.99424,.00133626,0,.0150018,.992458,.00140905,0,.0203443,.990929,.00152305,0,.0264786,.989116,.00165882,0,.0333875,.985624,.00174128,0,.0410536,.982003,.00182108,0,.0494609,.978336,.00194498,0,.0585941,.973184,.00202708,0,.0684396,.9678,.00212166,0,.0789851,.961348,.00221366,0,.0902199,.953841,.00228219,0,.102134,.94534,.00235662,0,.114721,.935552,.00240572,0,.127972,.924064,.00244405,0,.141884,.911827,.00247557,0,.156451,.897731,.00248374,0,.171672,.883409,.00249863,0,.187545,.868625,.00246688,0,.20407,.856529,.00246523,0,.221249,.842999,.00242368,0,.239083,.828505,.00237354,0,.257578,.813825,.00232588,0,.276738,.797813,.00226731,0,.296569,.781097,.00219704,0,.31708,.764038,.00212394,0,.338281,.746067,.00204786,0,.360181,.727687,.00196728,0,.382794,.709571,.00188779,0,.406133,.691503,.00180532,0,.430213,.673673,.00171849,0,.45505,.655732,.00164147,0,.480662,.637399,.00155858,0,.507065,.618616,.00147641,0,.534278,.60005,.00140125,0,.562313,.581713,.00132441,0,.59118,.563546,.00125014,0,.620875,.545605,.00118249,0,.651373,.527559,.0011116,0,.682593,.509764,.00104979,0,.714286,.49193,985977e-9,0,.746032,.475011,928592e-9,0,.777778,.457878,873466e-9,0,.809524,.440979,819585e-9,0,.84127,.424613,772365e-9,0,.873016,.408549,722195e-9,0,.904762,.392771,680014e-9,0,.936508,.377317,636797e-9,0,.968254,.362352,598318e-9,0,1,1,.00114313,0,0,1,.00114314,0,0,.999999,.00114331,0,0,.999998,.00114404,0,0,.999994,.00114601,0,0,.999984,.00115019,0,0,.999967,.00115784,0,0,.999937,.0011706,0,0,.999894,.00119054,0,0,.999828,.00122031,0,0,.999735,.00126331,0,169263e-9,.999606,.00132382,0,949167e-9,.999426,.0014071,0,.00249668,.999173,.00151895,0,.00486392,.99873,.00166102,0,.00806323,.996243,.0017023,0,.0120895,.993779,.00172782,0,.0169288,.9919,.0018108,0,.0225633,.990524,.00196028,0,.028974,.98868,.00212014,0,.036142,.984663,.00217598,0,.044049,.981457,.00230563,0,.0526781,.977608,.00243966,0,.0620137,.972215,.00251336,0,.0720418,.966798,.0026285,0,.0827499,.960241,.00271409,0,.0941271,.952489,.00278381,0,.106164,.944127,.00285399,0,.118852,.934282,.00290994,0,.132185,.923271,.00294558,0,.146157,.910803,.00296269,0,.160766,.896705,.00296803,0,.176007,.88238,.00296637,0,.19188,.867116,.00293163,0,.208385,.853636,.00289418,0,.225523,.840469,.00284663,0,.243296,.82639,.00278594,0,.261709,.811759,.00271618,0,.280767,.796113,.00263187,0,.300476,.779518,.00254589,0,.320845,.763142,.00246003,0,.341883,.745464,.00236529,0,.363601,.727491,.00226536,0,.386011,.709414,.00216375,0,.409128,.691396,.00207127,0,.432967,.67368,.00197106,0,.457545,.656049,.00187022,0,.482881,.638188,.00177605,0,.508992,.620177,.00168482,0,.535899,.601506,.00158909,0,.563619,.58362,.00150583,0,.592165,.565496,.00141791,0,.621544,.54789,.00133693,0,.651743,.530323,.00126038,0,.682709,.512795,.00118556,0,.714286,.495199,.00111527,0,.746032,.478101,.0010489,0,.777778,.461511,984264e-9,0,.809524,.444879,92591e-8,0,.84127,.428424,866582e-9,0,.873016,.412495,814463e-9,0,.904762,.396975,764498e-9,0,.936508,.381614,715967e-9,0,.968254,.366732,672483e-9,0,1,1,.00155501,0,0,1,.00155503,0,0,1,.00155524,0,0,.999998,.00155615,0,0,.999994,.0015586,0,0,.999983,.00156379,0,0,.999963,.0015733,0,0,.999932,.00158911,0,0,.999882,.00161376,0,0,.99981,.00165041,0,100875e-10,.999708,.00170304,0,367658e-9,.999565,.00177658,0,.0014234,.999368,.00187688,0,.00327939,.999081,.00200989,0,.00596629,.99852,.00217177,0,.0094852,.99549,.0021745,0,.013824,.993252,.00222357,0,.0189642,.991727,.00235022,0,.0248856,.989951,.00250561,0,.0315669,.988029,.00268829,0,.0389882,.984029,.0027496,0,.0471302,.980683,.00289793,0,.0559754,.976554,.00303315,0,.0655081,.97139,.00313257,0,.0757138,.965544,.00323656,0,.08658,.95912,.00333432,0,.0980954,.951183,.0034039,0,.110251,.942974,.00347515,0,.123038,.932642,.00350381,0,.13645,.922158,.00354519,0,.150482,.909404,.00353851,0,.165129,.896071,.0035435,0,.18039,.881206,.00349936,0,.196263,.866077,.00347256,0,.212748,.85093,.003415,0,.229847,.837703,.00333367,0,.247561,.823878,.003249,0,.265895,.809449,.00316347,0,.284854,.794379,.00306351,0,.304445,.778138,.0029499,0,.324675,.761997,.00284099,0,.345555,.744938,.00272104,0,.367095,.727212,.00260715,0,.389309,.709549,.00248855,0,.41221,.691704,.00236783,0,.435814,.673689,.00225178,0,.460138,.656453,.00213765,0,.485203,.639128,.00202178,0,.511028,.621512,.00191443,0,.537634,.603598,.00180977,0,.565041,.58559,.00170456,0,.593268,.567852,.00160927,0,.622327,.5503,.00151395,0,.652217,.533033,.00142499,0,.682907,.515942,.00133955,0,.714296,.498814,.0012602,0,.746032,.481595,.00118188,0,.777778,.465117,.00111171,0,.809524,.448865,.00104091,0,.84127,.432711,976618e-9,0,.873016,.416822,91859e-8,0,.904762,.401272,857704e-9,0,.936508,.386226,807172e-9,0,.968254,.371321,75464e-8,0,1,1,.00209596,0,0,1,.00209598,0,0,1,.00209624,0,0,.999997,.00209736,0,0,.999991,.00210039,0,0,.999979,.00210678,0,0,.999959,.00211847,0,0,.999925,.0021379,0,0,.99987,.00216809,0,0,.999791,.00221281,0,681487e-10,.999677,.00227669,0,658161e-9,.999521,.00236533,0,.00200635,.999301,.00248514,0,.0041779,.998977,.00264185,0,.00718648,.998191,.00281695,0,.0110239,.994801,.00278518,0,.015672,.993091,.00288774,0,.0211091,.991571,.00303931,0,.0273123,.9897,.00321643,0,.034259,.987023,.00337332,0,.0419282,.983289,.00346146,0,.0502998,.979892,.00363704,0,.0593562,.975111,.00373601,0,.069081,.970351,.0038842,0,.0794598,.964131,.00397053,0,.0904798,.957747,.00408078,0,.10213,.949536,.00413533,0,.1144,.941372,.00420305,0,.127284,.931049,.00422815,0,.140772,.920647,.00425048,0,.154862,.908033,.0042281,0,.169548,.895028,.00422026,0,.184828,.879968,.00415042,0,.200701,.864875,.00408821,0,.217167,.84918,.00400909,0,.234227,.834934,.00391178,0,.251884,.821397,.00380066,0,.270141,.807135,.00367974,0,.289004,.792363,.00355172,0,.308479,.776661,.003411,0,.328575,.760705,.00328123,0,.349301,.744408,.00314003,0,.370668,.726994,.0029906,0,.392689,.709598,.00285034,0,.415379,.692112,.00271179,0,.438754,.674435,.00257185,0,.46283,.65676,.00243425,0,.48763,.639982,.00230351,0,.513173,.622983,.0021777,0,.539482,.605471,.00204991,0,.566579,.58796,.00193759,0,.594488,.570463,.00181976,0,.623226,.553058,.00171497,0,.6528,.535894,.00161109,0,.683198,.519089,.00151394,0,.714354,.502454,.00142122,0,.746032,.485681,.00133488,0,.777778,.468935,.00124975,0,.809524,.452951,.00117309,0,.84127,.437139,.00110155,0,.873016,.421446,.00103124,0,.904762,.405951,966387e-9,0,.936508,.391003,908119e-9,0,.968254,.376198,848057e-9,0,1,1,.00280076,0,0,1,.00280078,0,0,.999999,.00280109,0,0,.999997,.00280246,0,0,.999992,.00280616,0,0,.999979,.00281396,0,0,.999956,.00282822,0,0,.999916,.00285186,0,0,.999857,.0028885,0,0,.999768,.00294259,0,196026e-9,.999645,.00301946,0,.00104842,.99947,.00312541,0,.00270199,.999229,.00326733,0,.00519449,.998852,.00344992,0,.00852602,.997558,.00361052,0,.0126804,.994417,.0035898,0,.017635,.992824,.00372393,0,.023365,.991344,.00390695,0,.0298456,.989337,.00410392,0,.0370529,.985811,.00420987,0,.0449651,.982772,.00437488,0,.0535615,.979001,.00455069,0,.0628243,.974102,.00464462,0,.0727368,.969197,.00480577,0,.0832844,.962759,.00487818,0,.0944545,.956207,.00498176,0,.106236,.947909,.00503392,0,.118619,.939596,.00507474,0,.131595,.929642,.00509798,0,.145159,.918807,.00508476,0,.159305,.906921,.00505634,0,.174028,.893312,.00498845,0,.189327,.878933,.0049133,0,.2052,.863986,.0048259,0,.221647,.847936,.00470848,0,.23867,.832253,.00456889,0,.25627,.818619,.00442726,0,.274453,.804788,.00427677,0,.293222,.790241,.00411906,0,.312585,.775162,.00394833,0,.33255,.759463,.00377366,0,.353126,.743598,.00361026,0,.374324,.72697,.00343627,0,.396158,.709646,.00326422,0,.418641,.69277,.00309717,0,.44179,.675371,.0029356,0,.465624,.657863,.00277712,0,.490163,.640772,.00261738,0,.515429,.624441,.0024737,0,.541445,.607497,.00233125,0,.568236,.590438,.00218994,0,.595828,.573224,.0020664,0,.624242,.556168,.00193526,0,.653496,.539232,.00182463,0,.683588,.522352,.00170735,0,.714482,.506172,.00160555,0,.746032,.489842,.00150451,0,.777778,.473463,.00140938,0,.809524,.457266,.00132568,0,.84127,.441609,.0012376,0,.873016,.426348,.00116265,0,.904762,.411002,.00108935,0,.936508,.396045,.00101946,0,.968254,.381448,955665e-9,0,1,1,.0037121,0,0,1,.00371213,0,0,1,.00371251,0,0,.999997,.00371417,0,0,.99999,.00371863,0,0,.999977,.00372807,0,0,.99995,.00374529,0,0,.999908,.0037738,0,0,.999843,.00381789,0,123596e-10,.999745,.00388273,0,407442e-9,.999608,.00397443,0,.0015447,.999415,.00409998,0,.00351385,.999143,.00426662,0,.0063316,.9987,.00447625,0,.00998679,.996363,.00455323,0,.0144569,.994021,.00461052,0,.0197151,.992372,.00476359,0,.0257344,.991007,.00499101,0,.0324882,.988767,.0051972,0,.0399517,.984872,.00528407,0,.0481022,.982004,.00548926,0,.0569191,.977714,.00564385,0,.0663839,.973076,.0057693,0,.0764801,.967565,.0058924,0,.0871928,.961384,.00599629,0,.0985095,.954435,.00605998,0,.110419,.946303,.0061133,0,.122912,.937662,.00612028,0,.13598,.927867,.00612209,0,.149617,.916475,.00604813,0,.163817,.90541,.00603088,0,.178577,.891591,.00592218,0,.193894,.877573,.00578854,0,.209767,.862511,.00566648,0,.226196,.846861,.00551481,0,.243182,.83068,.00533754,0,.260728,.815725,.00515487,0,.278837,.802321,.0049655,0,.297515,.787826,.00475421,0,.316768,.773454,.00456002,0,.336605,.758224,.00434727,0,.357034,.74265,.00414444,0,.378067,.726729,.00393738,0,.399717,.710155,.00373575,0,.421998,.693312,.00353736,0,.444928,.67653,.00334368,0,.468523,.659444,.00315981,0,.492806,.642051,.00297809,0,.517798,.625758,.00280592,0,.543525,.609615,.00264254,0,.570012,.592919,.00248459,0,.597288,.576298,.00233327,0,.625379,.559489,.00219519,0,.654307,.542891,.00205441,0,.684084,.526255,.00193385,0,.714693,.509853,.00180745,0,.746044,.494131,.00169817,0,.777778,.478114,.0015913,0,.809524,.462274,.00148981,0,.84127,.446412,.00139537,0,.873016,.431274,.00130984,0,.904762,.41635,.00122403,0,.936508,.401476,.00114809,0,.968254,.386993,.00107563,0,1,1,.00488216,0,0,1,.0048822,0,0,1,.00488265,0,0,.999997,.00488463,0,0,.999988,.00488999,0,0,.999974,.00490129,0,0,.999946,.00492191,0,0,.999897,.00495598,0,0,.999825,.00500855,0,744791e-10,.999718,.00508559,0,712744e-9,.999565,.005194,0,.00215249,.999352,.00534147,0,.00444576,.999046,.00553523,0,.00759218,.998492,.00577016,0,.0115714,.995564,.00578487,0,.0163557,.993339,.00586414,0,.021915,.991834,.00606002,0,.0282201,.990496,.00633312,0,.0352433,.987826,.00651941,0,.042959,.98383,.00660842,0,.0513439,.98109,.00685523,0,.0603772,.976131,.00695778,0,.0700402,.971922,.00714236,0,.0803163,.965901,.00721437,0,.0911908,.959606,.00732017,0,.102651,.952504,.00735788,0,.114686,.944365,.00738493,0,.127286,.935652,.00737969,0,.140443,.925813,.00733612,0,.154151,.914397,.00723094,0,.168405,.903257,.00714002,0,.183201,.890015,.00700149,0,.198536,.876014,.00682813,0,.214409,.861436,.00665567,0,.23082,.845752,.00644526,0,.24777,.829169,.00621635,0,.265263,.813435,.00597789,0,.283301,.799701,.00575694,0,.301889,.785726,.00549866,0,.321035,.77152,.0052503,0,.340746,.75683,.00499619,0,.361032,.741951,.0047543,0,.381904,.726367,.0045084,0,.403374,.710537,.00426784,0,.425457,.693965,.00403487,0,.448169,.677724,.0038075,0,.47153,.66117,.00359431,0,.495561,.644274,.00338354,0,.520284,.627449,.00318163,0,.545725,.611645,.00299672,0,.571911,.595614,.00281016,0,.598873,.579426,.00264252,0,.62664,.563016,.00247509,0,.655239,.546728,.00232647,0,.684692,.530539,.00217803,0,.714999,.514164,.00204216,0,.746106,.498344,.00191403,0,.777778,.482957,.00179203,0,.809524,.467336,.00167695,0,.84127,.451994,.00157567,0,.873016,.436514,.00147113,0,.904762,.42178,.00138034,0,.936508,.407271,.00129219,0,.968254,.392822,.0012098,0,1,1,.00637427,0,0,1,.00637431,0,0,.999999,.00637485,0,0,.999996,.00637721,0,0,.999987,.00638357,0,0,.999971,.006397,0,0,.999939,.00642142,0,0,.999888,.00646177,0,0,.999807,.00652387,0,207916e-9,.999689,.00661454,0,.00112051,.99952,.00674155,0,.00287719,.999283,.00691313,0,.00550145,.998936,.00713598,0,.00897928,.998165,.00738501,0,.0132829,.994847,.00734388,0,.01838,.993182,.00749991,0,.0242381,.991665,.0077246,0,.030826,.989708,.00797579,0,.0381152,.986663,.00813011,0,.0460794,.983288,.00830365,0,.0546951,.980104,.00853496,0,.0639411,.974855,.00861045,0,.0737988,.97045,.00879133,0,.0842516,.964509,.00886377,0,.0952848,.957594,.00890346,0,.106886,.950546,.00893289,0,.119044,.942225,.00890074,0,.131749,.933365,.00886826,0,.144994,.923202,.0087316,0,.158772,.912605,.00863082,0,.173078,.901099,.00847403,0,.187908,.888177,.00825838,0,.203261,.873955,.00801834,0,.219134,.860091,.00779026,0,.235527,.84434,.00752478,0,.252443,.828517,.00724074,0,.269883,.81239,.00693769,0,.287851,.79721,.00664817,0,.306352,.783489,.00634763,0,.325393,.769514,.00604221,0,.344981,.755419,.00573568,0,.365126,.741083,.00544359,0,.385839,.726059,.00515515,0,.407132,.710809,.00487139,0,.42902,.695052,.00459846,0,.45152,.678886,.00433412,0,.474651,.663042,.00407981,0,.498433,.646634,.00384264,0,.52289,.630117,.00360897,0,.548048,.613804,.00338863,0,.573936,.598338,.00318486,0,.600584,.582687,.00298377,0,.628027,.566809,.00280082,0,.656295,.550817,.00262255,0,.685417,.534937,.00245835,0,.715406,.519151,.00230574,0,.74624,.503118,.0021549,0,.777778,.487723,.00202008,0,.809524,.472725,.00189355,0,.84127,.457599,.00177108,0,.873016,.442558,.00165843,0,.904762,.427624,.00155494,0,.936508,.413171,.00145273,0,.968254,.399122,.00136454,0,1,1,.00826496,0,0,1,.00826499,0,0,1,.00826564,0,0,.999996,.00826842,0,0,.999987,.00827589,0,0,.999967,.00829167,0,0,.999933,.00832037,0,0,.999876,.00836768,0,109338e-10,.999786,.00844031,0,427145e-9,.999655,.00854603,0,.0016384,.999468,.00869337,0,.00372392,.999203,.008891,0,.00668513,.998803,.00914387,0,.0104968,.99748,.00935838,0,.015125,.994446,.00933309,0,.0205338,.99292,.00953084,0,.0266884,.991414,.0097893,0,.0335565,.989049,.0100228,0,.0411086,.98582,.0101664,0,.0493181,.982441,.0103582,0,.0581613,.978595,.0105292,0,.0676169,.973495,.0106274,0,.0776661,.968405,.0107261,0,.0882926,.962717,.0108234,0,.0994817,.955478,.0108102,0,.111221,.948275,.0107914,0,.123499,.940006,.0107161,0,.136308,.930831,.0106309,0,.149639,.920648,.0104083,0,.163485,.910205,.0102312,0,.177843,.898445,.0100051,0,.192707,.885986,.00971928,0,.208077,.872204,.00940747,0,.22395,.858436,.0091085,0,.240326,.843454,.00876595,0,.257208,.827437,.00839794,0,.274596,.811488,.00803692,0,.292496,.796039,.00767352,0,.310911,.781083,.0073097,0,.329849,.767642,.00694032,0,.349316,.753901,.00657476,0,.369323,.740131,.00622699,0,.38988,.725845,.0058838,0,.410999,.710991,.00555586,0,.432696,.696002,.00523089,0,.454987,.680461,.00492494,0,.47789,.664875,.00463464,0,.501426,.649273,.00435422,0,.52562,.63302,.0040875,0,.550498,.61705,.00384075,0,.576089,.601154,.00359557,0,.602427,.586008,.00337636,0,.629544,.570699,.00316019,0,.657479,.555166,.00296033,0,.686264,.539645,.00277552,0,.715924,.524159,.00259499,0,.746459,.508682,.00243257,0,.777789,.493163,.00227851,0,.809524,.478004,.00213083,0,.84127,.46347,.00199502,0,.873016,.448778,.00186967,0,.904762,.434105,.00174732,0,.936508,.419576,.00163861,0,.968254,.405541,.00153341,0,1,1,.0106462,0,0,1,.0106462,0,0,.999999,.010647,0,0,.999995,.0106502,0,0,.999985,.0106589,0,0,.999964,.0106773,0,0,.999925,.0107106,0,0,.999861,.0107655,0,712986e-10,.999763,.0108497,0,743959e-9,.999616,.0109716,0,.00227361,.999408,.0111408,0,.0046983,.999112,.0113659,0,.00800158,.998637,.0116475,0,.0121493,.996223,.0117231,0,.0171023,.994006,.0118064,0,.0228218,.992444,.0120254,0,.0292711,.991028,.0123314,0,.036417,.98803,.0124954,0,.0442295,.984816,.0126538,0,.0526815,.981399,.0128537,0,.0617492,.977085,.0129694,0,.0714114,.972154,.013091,0,.0816495,.966617,.0131166,0,.0924472,.960628,.0131583,0,.10379,.953295,.0131094,0,.115665,.94575,.0129966,0,.128062,.937654,.0128796,0,.140972,.927716,.0126477,0,.154387,.917932,.0123889,0,.168301,.907719,.012131,0,.182709,.89584,.0118013,0,.197608,.883526,.0114145,0,.212994,.870301,.0110075,0,.228867,.856272,.0106019,0,.245227,.842251,.0101938,0,.262074,.826466,.00973254,0,.279412,.810859,.0092846,0,.297244,.795051,.00883304,0,.315575,.780053,.00840272,0,.334412,.76575,.00796438,0,.35376,.752298,.00752526,0,.373631,.739153,.00711486,0,.394034,.725514,.00670361,0,.414983,.711473,.00632656,0,.436491,.696936,.00595206,0,.458575,.682126,.00559191,0,.481253,.667027,.00525362,0,.504547,.651875,.00493805,0,.528481,.636463,.00462848,0,.553081,.620641,.00433936,0,.578377,.604931,.00407,0,.604404,.589549,.00380864,0,.631197,.574712,.00357049,0,.658795,.559775,.00334466,0,.687238,.544514,.00312505,0,.716559,.529555,.00293199,0,.746776,.514402,.00274204,0,.777849,.499302,.00256647,0,.809524,.484114,.00239901,0,.84127,.469308,.00225148,0,.873016,.455133,.00210178,0,.904762,.440939,.0019727,0,.936508,.426627,.00184382,0,.968254,.412509,.00172548,0,1,1,.013628,0,0,1,.0136281,0,0,.999999,.0136289,0,0,.999995,.0136327,0,0,.999983,.0136427,0,0,.99996,.0136638,0,0,.999917,.0137022,0,0,.999846,.0137652,0,204597e-9,.999736,.0138615,0,.00116837,.999573,.0140007,0,.00303325,.99934,.0141927,0,.00580613,.999004,.0144457,0,.00945626,.998407,.0147489,0,.0139421,.995464,.014731,0,.0192202,.993328,.0148283,0,.0252495,.991799,.0150797,0,.0319921,.990397,.0154316,0,.0394138,.986835,.0155005,0,.0474843,.983938,.0157308,0,.0561763,.980154,.0158753,0,.0654661,.975659,.0159581,0,.0753326,.970171,.0159832,0,.0857571,.964803,.0160084,0,.0967236,.958366,.0159484,0,.108218,.950613,.0158001,0,.120227,.942874,.0155845,0,.132741,.935005,.0154292,0,.145751,.924991,.0150742,0,.159249,.914814,.0146757,0,.17323,.904743,.0143097,0,.187687,.893216,.0138695,0,.202619,.880769,.0133706,0,.218021,.868136,.0128606,0,.233894,.85469,.0123403,0,.250238,.840593,.0118091,0,.267052,.825808,.011253,0,.284341,.81009,.0107099,0,.302106,.79504,.0101636,0,.320354,.779757,.00964041,0,.33909,.764697,.00911896,0,.358322,.750913,.00859533,0,.378059,.738175,.00811592,0,.398311,.725242,.00764504,0,.41909,.711864,.00718885,0,.440412,.698009,.00675843,0,.462292,.683841,.00634984,0,.484748,.669391,.00595502,0,.507802,.654731,.00558671,0,.531477,.639805,.00523578,0,.555802,.624789,.00490834,0,.580805,.609325,.00459448,0,.606522,.593975,.00430342,0,.63299,.578983,.00403019,0,.66025,.564442,.0037707,0,.688346,.549835,.0035316,0,.717319,.535039,.00330255,0,.7472,.520403,.00308932,0,.777982,.505687,.00289335,0,.809524,.490939,.00270818,0,.84127,.476233,.0025343,0,.873016,.461624,.00237097,0,.904762,.447833,.00222065,0,.936508,.433992,.00207561,0,.968254,.420147,.00194955,0,1,1,.0173415,0,0,1,.0173416,0,0,.999999,.0173426,0,0,.999995,.0173468,0,0,.999983,.0173582,0,0,.999954,.0173822,0,0,.999908,.0174258,0,669501e-11,.999828,.0174973,0,427399e-9,.999705,.0176063,0,.00171019,.999524,.0177631,0,.0039248,.999263,.0179781,0,.00705382,.998878,.018258,0,.0110552,.998012,.0185551,0,.0158812,.994614,.0184264,0,.0214852,.993132,.0186385,0,.0278239,.991563,.0189067,0,.0348585,.989298,.0191577,0,.0425544,.986036,.0192522,0,.050881,.982558,.0194063,0,.059811,.978531,.019486,0,.0693209,.974198,.0195847,0,.0793895,.968148,.0194749,0,.0899984,.962565,.0194277,0,.101132,.956041,.0192991,0,.112775,.947749,.0189893,0,.124917,.94018,.018704,0,.137547,.93165,.0183458,0,.150655,.921798,.0178775,0,.164236,.911573,.0173618,0,.178281,.901569,.0168482,0,.192788,.890341,.016265,0,.207752,.877835,.0156199,0,.223171,.865472,.0149516,0,.239044,.852905,.0143274,0,.255371,.838906,.0136643,0,.272153,.824888,.0129903,0,.289393,.809977,.0123218,0,.307093,.794697,.0116572,0,.325259,.780028,.0110307,0,.343896,.765124,.0104236,0,.363012,.750411,.0098219,0,.382617,.737264,.00924397,0,.402719,.724799,.00868719,0,.423332,.712253,.00816476,0,.444469,.699267,.00767262,0,.466146,.685618,.00719746,0,.488383,.671736,.00673916,0,.511199,.657777,.00631937,0,.534618,.643497,.00592411,0,.558668,.62889,.00553928,0,.58338,.614299,.0051934,0,.608787,.599197,.00485985,0,.634929,.584175,.00454357,0,.661849,.569541,.00425787,0,.689594,.555193,.00397905,0,.718211,.540947,.00372364,0,.747742,.526593,.00348599,0,.778205,.512335,.00326103,0,.80953,.498017,.00305137,0,.84127,.483609,.00285485,0,.873016,.469368,.00267472,0,.904762,.455037,.00249945,0,.936508,.441493,.00234792,0,.968254,.428147,.00219936,0,1,1,.0219422,0,0,1,.0219423,0,0,.999998,.0219434,0,0,.999993,.0219481,0,0,.999981,.021961,0,0,.999949,.0219879,0,0,.999896,.0220367,0,593194e-10,.999808,.0221167,0,75364e-8,.99967,.0222383,0,.00237884,.999466,.0224125,0,.00495612,.999174,.0226495,0,.00844887,.998725,.0229525,0,.0128058,.996979,.0231123,0,.0179742,.994317,.0230742,0,.0239047,.992781,.0232895,0,.0305526,.991191,.0235734,0,.0378786,.987787,.0236152,0,.0458475,.985092,.0237994,0,.0544287,.981121,.0238553,0,.0635952,.976924,.0238706,0,.0733233,.97218,.0238704,0,.0835922,.965956,.0236598,0,.0943839,.959998,.0234735,0,.105682,.953245,.0232277,0,.117474,.944445,.0226973,0,.129747,.937087,.0223527,0,.142491,.928341,.0218144,0,.155697,.9184,.0211516,0,.169358,.907959,.0204553,0,.183469,.89808,.0197673,0,.198024,.887047,.0189915,0,.21302,.875221,.0182082,0,.228455,.86269,.0173584,0,.244329,.850735,.0165718,0,.260639,.837545,.0157524,0,.277389,.823639,.0149482,0,.29458,.809699,.0141431,0,.312216,.794797,.0133527,0,.3303,.780578,.0126193,0,.34884,.766019,.0118914,0,.367842,.751447,.0111839,0,.387315,.737275,.010514,0,.40727,.724545,.00987277,0,.427717,.712644,.00926569,0,.448671,.700432,.00869029,0,.470149,.687664,.00814691,0,.492167,.674288,.00763012,0,.514746,.660966,.00714437,0,.537911,.647264,.00668457,0,.561688,.633431,.00626581,0,.586108,.619133,.00585593,0,.611206,.604935,.00548188,0,.637022,.590236,.00513288,0,.663599,.575473,.0047906,0,.690989,.561228,.00448895,0,.719242,.547054,.00420233,0,.748411,.533175,.00392869,0,.778531,.519163,.00367445,0,.809583,.505328,.00344097,0,.84127,.491446,.00322003,0,.873016,.477356,.00301283,0,.904762,.46356,.00282592,0,.936508,.449623,.00264956,0,.968254,.436068,.00246956,0,1,1,.0276135,0,0,1,.0276136,0,0,.999998,.0276148,0,0,.999993,.0276201,0,0,.999976,.0276342,0,0,.999945,.027664,0,0,.999884,.0277179,0,18679e-8,.999784,.027806,0,.00119607,.99963,.0279394,0,.00318407,.999401,.0281295,0,.00613601,.999066,.0283858,0,.00999963,.998524,.0287027,0,.0147164,.995702,.0286256,0,.0202295,.993593,.0286733,0,.0264876,.992067,.0288989,0,.0334452,.990548,.0292135,0,.0410621,.986775,.0291296,0,.0493032,.984054,.0293099,0,.0581381,.979481,.0291881,0,.0675397,.975297,.0291598,0,.0774848,.96981,.028954,0,.0879528,.963524,.028628,0,.0989258,.957398,.0283135,0,.110388,.950088,.0278469,0,.122327,.941538,.0271798,0,.134729,.933332,.0265388,0,.147587,.924392,.0257776,0,.160889,.914581,.024916,0,.174631,.904347,.0240242,0,.188806,.894324,.0231229,0,.203409,.883724,.022153,0,.218437,.872207,.0211355,0,.233888,.859927,.0201048,0,.249761,.848373,.0191263,0,.266056,.836023,.0181306,0,.282774,.82289,.0171718,0,.299917,.809324,.0162196,0,.317488,.795361,.0152622,0,.335493,.781253,.01439,0,.353936,.767338,.013533,0,.372825,.753156,.0127244,0,.392168,.739122,.0119454,0,.411976,.725358,.0112054,0,.432259,.712949,.010487,0,.453032,.701621,.00984032,0,.47431,.689703,.00921495,0,.496111,.677216,.00862492,0,.518456,.664217,.00806882,0,.541367,.65137,.00755922,0,.564872,.638,.00705705,0,.589001,.62453,.00661266,0,.613789,.610601,.00618432,0,.639277,.59676,.00578033,0,.66551,.582433,.00540927,0,.692539,.568026,.00506104,0,.720422,.55414,.0047353,0,.749216,.540178,.00442889,0,.778974,.526513,.00414363,0,.809711,.512954,.00388237,0,.84127,.499403,.00362875,0,.873016,.486026,.00340827,0,.904762,.472345,.00318598,0,.936508,.458828,.00297635,0,.968254,.445379,.00279447,0,1,1,.0345716,0,0,1,.0345717,0,0,.999999,.034573,0,0,.999991,.0345787,0,0,.999974,.0345941,0,0,.999937,.0346263,0,188589e-11,.999869,.0346847,0,409238e-9,.999757,.0347798,0,.0017674,.999582,.0349233,0,.00413658,.999322,.0351265,0,.00747408,.998939,.0353967,0,.0117157,.998219,.0357018,0,.0167966,.994974,.0354726,0,.0226572,.993201,.0355621,0,.0292445,.991573,.0357641,0,.0365123,.989301,.0359252,0,.0444203,.985712,.0358017,0,.0529334,.982411,.0358353,0,.0620214,.977827,.035617,0,.0716574,.973278,.0354398,0,.0818186,.967397,.0350483,0,.0924846,.960696,.0344795,0,.103638,.954349,.0339861,0,.115263,.946066,.0331323,0,.127348,.938012,.032359,0,.13988,.929413,.0314413,0,.152849,.920355,.0304103,0,.166248,.910586,.0292785,0,.18007,.900609,.0281391,0,.194308,.890093,.0269103,0,.208958,.880013,.0257269,0,.224018,.869001,.0244671,0,.239485,.85751,.0232252,0,.255359,.84582,.0220117,0,.271638,.834383,.0208274,0,.288324,.822158,.0196628,0,.305419,.809056,.0185306,0,.322927,.795832,.0174174,0,.340851,.782547,.0163758,0,.359199,.7689,.015391,0,.377975,.755526,.0144488,0,.397189,.741681,.0135372,0,.416851,.728178,.0126957,0,.436971,.714642,.0118812,0,.457564,.702756,.0111165,0,.478644,.69175,.0104145,0,.500229,.680159,.00974439,0,.522339,.668073,.00911926,0,.544997,.655405,.00851393,0,.56823,.642921,.00797637,0,.592068,.629993,.00745119,0,.616546,.616828,.00696972,0,.641705,.603305,.00652425,0,.66759,.589833,.00610188,0,.694255,.575945,.00570834,0,.72176,.561745,.00533384,0,.750168,.548277,.00500001,0,.779545,.534467,.00467582,0,.809933,.521032,.00438092,0,.841272,.507877,.00410348,0,.873016,.494654,.00383618,0,.904762,.481592,.00358699,0,.936508,.468509,.00337281,0,.968254,.455293,.00316196,0,1,1,.0430698,0,0,1,.0430699,0,0,.999998,.0430713,0,0,.999991,.0430773,0,0,.99997,.0430936,0,0,.999928,.0431277,0,406396e-10,.999852,.0431893,0,744376e-9,.999724,.0432895,0,.0024806,.999527,.0434397,0,.00524779,.99923,.0436507,0,.00898164,.998783,.0439255,0,.0136083,.997507,.0441104,0,.0190582,.994418,.0438225,0,.0252694,.992864,.0439396,0,.0321879,.991127,.0440962,0,.039767,.987331,.0438408,0,.0479667,.984819,.0438991,0,.056752,.980384,.0435906,0,.0660929,.975846,.0432543,0,.075963,.970748,.0428293,0,.0863398,.964303,.042153,0,.0972035,.95772,.0414111,0,.108537,.950747,.0405893,0,.120325,.942533,.0394887,0,.132554,.934045,.0383544,0,.145215,.924942,.037057,0,.158296,.915811,.0356993,0,.17179,.90612,.0342401,0,.185691,.896434,.0328078,0,.199993,.886021,.031288,0,.214691,.876081,.0297776,0,.229782,.865608,.0282334,0,.245265,.854924,.026749,0,.261138,.843607,.02526,0,.277401,.832456,.0238214,0,.294056,.821342,.0224682,0,.311104,.809303,.0211297,0,.328548,.796468,.0198387,0,.346394,.784046,.0186227,0,.364645,.771262,.0174561,0,.38331,.758118,.0163806,0,.402396,.745075,.0153287,0,.421912,.731926,.0143647,0,.44187,.71863,.0134363,0,.462283,.705414,.0125603,0,.483165,.693792,.0117508,0,.504535,.683108,.0110016,0,.52641,.67183,.0102757,0,.548816,.66015,.00962044,0,.571776,.647907,.00898031,0,.595323,.635734,.00840811,0,.619489,.623208,.00786211,0,.644317,.610438,.00734953,0,.669852,.597345,.00687688,0,.696148,.584138,.00643469,0,.723267,.5707,.00602236,0,.75128,.556966,.0056324,0,.780258,.543607,.00528277,0,.810268,.530213,.00493999,0,.841311,.516912,.00462265,0,.873016,.503916,.0043307,0,.904762,.491146,.00406858,0,.936508,.478439,.00381436,0,.968254,.465834,.00358003,0,1,1,.0534039,0,0,1,.053404,0,0,.999998,.0534055,0,0,.999989,.0534116,0,0,.999968,.0534283,0,0,.999918,.0534633,0,155895e-9,.99983,.0535262,0,.00120914,.999685,.0536281,0,.00334944,.999461,.0537799,0,.00653077,.999119,.0539902,0,.0106718,.998582,.0542524,0,.0156907,.995919,.0540318,0,.0215147,.993735,.0538914,0,.0280801,.992126,.0539557,0,.0353323,.990266,.0540401,0,.0432247,.986317,.0536064,0,.0517172,.983213,.0534425,0,.0607754,.978303,.0528622,0,.0703698,.973665,.0523363,0,.0804742,.968091,.0516165,0,.0910667,.961026,.0505434,0,.102128,.954333,.049523,0,.113641,.946372,.0481698,0,.125591,.938254,.0467674,0,.137965,.929516,.0452341,0,.150754,.920106,.0435083,0,.163947,.910899,.0417399,0,.177537,.901532,.0399389,0,.191516,.891919,.0380901,0,.205881,.882006,.0362341,0,.220626,.871965,.0343444,0,.235749,.862145,.0324832,0,.251248,.852058,.0306681,0,.267121,.84161,.0289097,0,.283368,.830806,.0272079,0,.299992,.820476,.0256089,0,.316992,.809514,.0240394,0,.334374,.797865,.0225379,0,.35214,.785621,.0211235,0,.370296,.773765,.0197908,0,.388849,.761629,.0185235,0,.407807,.748891,.0173358,0,.427178,.736437,.0162305,0,.446974,.723707,.0151778,0,.467207,.710606,.0141791,0,.487892,.698019,.0132592,0,.509046,.686203,.0123887,0,.530687,.675692,.0115976,0,.552839,.664826,.0108325,0,.575527,.65349,.0101348,0,.59878,.641774,.00947756,0,.622634,.629794,.00886058,0,.647128,.617647,.00828526,0,.672308,.60534,.00775312,0,.698231,.592718,.00726033,0,.724958,.579746,.00679731,0,.752563,.566763,.00636111,0,.781127,.553515,.00595228,0,.810733,.540118,.00556876,0,.841426,.527325,.00523051,0,.873016,.514265,.00490712,0,.904762,.501406,.00460297,0,.936508,.488922,.00431247,0,.968254,.476541,.0040472,0,1,1,.0659184,0,0,1,.0659185,0,0,.999998,.06592,0,0,.999988,.0659259,0,0,.999963,.0659423,0,0,.999907,.0659764,0,374198e-9,.999806,.0660376,0,.00182071,.999639,.0661361,0,.0043894,.999378,.0662814,0,.00800055,.998985,.0664779,0,.0125594,.998285,.0666914,0,.0179786,.995071,.0661989,0,.0241822,.993172,.0660454,0,.031106,.991438,.0660105,0,.0386952,.988428,.0656875,0,.0469032,.985218,.0652913,0,.0556905,.981128,.0647107,0,.065023,.976015,.0638491,0,.0748717,.97097,.062993,0,.0852112,.964582,.0617927,0,.0960199,.957383,.0603626,0,.107279,.949969,.0588128,0,.118971,.941843,.0570274,0,.131084,.933624,.0551885,0,.143604,.924543,.053122,0,.156521,.914919,.0508897,0,.169825,.905773,.0486418,0,.18351,.896434,.0463364,0,.197569,.887195,.0440623,0,.211997,.877706,.0417799,0,.226789,.867719,.03945,0,.241944,.858587,.037243,0,.257458,.849317,.0350956,0,.273331,.839585,.0329852,0,.289563,.829856,.0310028,0,.306154,.819589,.0290953,0,.323108,.809714,.0272738,0,.340426,.79934,.0255631,0,.358113,.788224,.0239175,0,.376175,.776619,.0223831,0,.394616,.76521,.0209298,0,.413445,.753716,.0195786,0,.432671,.741564,.0183001,0,.452305,.729413,.0171259,0,.472358,.717146,.0159933,0,.492845,.70436,.0149495,0,.513783,.69219,.0139681,0,.535189,.680289,.0130577,0,.557087,.669611,.0122198,0,.5795,.659113,.0114174,0,.602459,.648148,.0106729,0,.625997,.636905,.00998997,0,.650154,.625154,.00934313,0,.674976,.613481,.00874839,0,.700518,.60154,.00818265,0,.726845,.58943,.00766889,0,.754032,.576828,.00717153,0,.782167,.564194,.00672696,0,.811344,.551501,.00630863,0,.841644,.538635,.00592177,0,.873016,.525724,.00554888,0,.904762,.513209,.00520225,0,.936508,.500457,.00488231,0,.968254,.48799,.00457153,0,1,1,.0810131,0,0,1,.0810133,0,0,.999997,.0810145,0,0,.999985,.08102,0,0,.999956,.0810347,0,195026e-10,.999893,.0810656,0,719316e-9,.999777,.0811205,0,.00259774,.999583,.081208,0,.00561807,.999281,.0813343,0,.00967472,.998813,.0814969,0,.0146627,.997597,.0815217,0,.0204902,.994379,.0808502,0,.0270802,.992744,.0806792,0,.0343674,.990745,.0804589,0,.0422974,.986646,.0796107,0,.0508242,.983611,.0790913,0,.0599087,.978869,.0780746,0,.0695175,.973475,.0768218,0,.0796223,.967845,.0754926,0,.0901983,.960778,.0737063,0,.101224,.953333,.0718052,0,.112682,.945274,.0695946,0,.124555,.936955,.0672492,0,.136831,.928319,.0647732,0,.149496,.919075,.0620947,0,.162542,.909114,.0591816,0,.175958,.900137,.0563917,0,.189739,.891069,.0535392,0,.203877,.882262,.0507642,0,.218368,.873232,.0479793,0,.233208,.864042,.045226,0,.248393,.855002,.0425413,0,.263923,.846569,.0400126,0,.279796,.837714,.0375269,0,.296012,.828918,.0352027,0,.312573,.819783,.0330011,0,.329479,.810129,.0308908,0,.346734,.800866,.0289112,0,.364342,.79093,.0270255,0,.382307,.780593,.0252758,0,.400637,.769511,.0236178,0,.419337,.758558,.0220652,0,.438418,.747632,.0206289,0,.457889,.736146,.0192873,0,.477761,.724093,.0180333,0,.49805,.71234,.0168264,0,.51877,.700201,.015746,0,.53994,.687949,.0147027,0,.561581,.676163,.0137512,0,.583718,.665001,.0128655,0,.60638,.65472,.0120366,0,.629599,.644213,.0112604,0,.653415,.633382,.0105413,0,.677874,.62212,.00986498,0,.70303,.610631,.00923308,0,.728948,.599078,.00864206,0,.755706,.587519,.00811784,0,.783396,.575505,.00761237,0,.812121,.563148,.00713949,0,.841989,.550828,.00668379,0,.873035,.538458,.00627715,0,.904762,.525905,.00588336,0,.936508,.513517,.00552687,0,.968254,.501395,.00519681,0,1,1,.0991506,0,0,1,.0991504,0,0,.999996,.0991515,0,0,.999984,.0991558,0,0,.999947,.0991672,0,114389e-9,.999874,.0991912,0,.00121503,.999739,.0992331,0,.00356108,.999514,.0992983,0,.00705578,.999159,.0993877,0,.011574,.998586,.0994837,0,.017003,.995731,.0988425,0,.0232484,.993384,.098276,0,.0302318,.991615,.0979269,0,.0378884,.989029,.0973432,0,.0461641,.985373,.0963539,0,.0550136,.981278,.0952306,0,.0643988,.975777,.0936233,0,.0742868,.970526,.0920219,0,.0846501,.963755,.0898912,0,.0954644,.956676,.0876064,0,.106709,.948099,.0847751,0,.118367,.939718,.0818638,0,.130423,.931305,.078857,0,.142862,.922342,.0756127,0,.155674,.912842,.0721473,0,.168849,.903304,.0686195,0,.182378,.89411,.0650589,0,.196255,.885512,.0616022,0,.210473,.877193,.0582434,0,.225027,.86877,.0548979,0,.239915,.860267,.0516095,0,.255132,.851915,.048468,0,.270678,.843912,.0454447,0,.286551,.83604,.0425612,0,.302751,.828245,.0398752,0,.31928,.820159,.0373198,0,.336138,.81167,.034916,0,.35333,.802659,.0326402,0,.370858,.793921,.0304901,0,.388728,.784713,.0284857,0,.406944,.774946,.0266186,0,.425515,.76448,.0248593,0,.444449,.753793,.0232114,0,.463756,.743506,.0217039,0,.483447,.732555,.0202841,0,.503535,.720965,.0189648,0,.524036,.709422,.0177189,0,.544968,.697756,.0165626,0,.56635,.685565,.015483,0,.588208,.673987,.0144892,0,.610569,.66244,.0135607,0,.633466,.651675,.0126956,0,.656936,.641598,.0118788,0,.681025,.63121,.0111261,0,.705788,.620514,.010437,0,.731289,.609366,.00978747,0,.757606,.598137,.00917257,0,.784834,.586966,.00859778,0,.813085,.575549,.00806803,0,.842485,.563797,.00757294,0,.87313,.551758,.00710592,0,.904762,.539894,.0066841,0,.936508,.527901,.00627901,0,.968254,.515819,.00590506,0,1,1,.120864,0,0,1,.120864,0,0,.999996,.120864,0,0,.99998,.120867,0,0,.99994,.120872,0,323781e-9,.999852,.120884,0,.00188693,.999693,.120903,0,.00473489,.999426,.120929,0,.00872704,.999002,.120955,0,.0137237,.998235,.120918,0,.0196068,.994608,.119764,0,.0262803,.992997,.119265,0,.0336657,.990968,.11863,0,.0416987,.987002,.117261,0,.0503261,.983524,.116009,0,.0595035,.97875,.114252,0,.0691935,.972652,.11193,0,.0793645,.966613,.109555,0,.0899894,.959275,.106612,0,.101045,.951272,.103375,0,.112512,.942323,.0996594,0,.124372,.933679,.0958841,0,.136611,.924822,.0919265,0,.149216,.915742,.0878061,0,.162176,.906348,.0834894,0,.175482,.896883,.079085,0,.189125,.88774,.0746745,0,.203098,.87986,.0705773,0,.217396,.871998,.0665005,0,.232015,.864325,.0625413,0,.24695,.856685,.0586781,0,.2622,.84925,.0550063,0,.277761,.841719,.0514727,0,.293634,.834755,.0481398,0,.309819,.827853,.0450172,0,.326315,.820888,.0420969,0,.343126,.813616,.0393702,0,.360254,.805767,.0367771,0,.377701,.797338,.0343274,0,.395474,.789122,.0320529,0,.413577,.780601,.0299485,0,.432018,.771424,.0279812,0,.450804,.761502,.0261054,0,.469944,.751166,.0243942,0,.489451,.741276,.0228087,0,.509337,.730898,.0213265,0,.529617,.719878,.0199307,0,.550307,.708379,.0186574,0,.571428,.697165,.0174446,0,.593003,.685554,.0163144,0,.615059,.673631,.015276,0,.637628,.662385,.0143003,0,.660746,.651059,.0134112,0,.68446,.640451,.0125794,0,.70882,.630536,.011793,0,.733893,.620316,.0110547,0,.759756,.609722,.0103668,0,.786505,.598804,.00973009,0,.814259,.587871,.00912812,0,.843157,.577121,.00858916,0,.87334,.566019,.00807333,0,.904762,.554664,.00759687,0,.936508,.543101,.00714759,0,.968254,.531558,.00673418,0,1,1,.146767,0,0,1,.146767,0,0,.999997,.146767,0,0,.999977,.146765,0,320658e-11,.999929,.146762,0,682576e-9,.999823,.146753,0,.00276402,.999633,.146735,0,.00614771,.999314,.146699,0,.0106613,.998796,.14662,0,.0161546,.997124,.146107,0,.0225063,.994062,.144857,0,.0296198,.992154,.144011,0,.037417,.989186,.142712,0,.0458348,.985279,.140926,0,.0548211,.980826,.13885,0,.0643326,.975056,.136168,0,.074333,.969005,.133217,0,.0847917,.961554,.12959,0,.0956828,.954206,.125886,0,.106984,.945046,.121335,0,.118675,.935678,.116492,0,.130741,.926748,.111635,0,.143166,.917764,.106625,0,.155939,.908358,.101325,0,.169049,.899219,.0960249,0,.182487,.890089,.0906527,0,.196245,.881488,.0853905,0,.210317,.874031,.0804177,0,.224697,.866932,.0756005,0,.23938,.859976,.0709019,0,.254364,.853375,.0664391,0,.269646,.846971,.0622012,0,.285223,.840483,.058129,0,.301096,.833969,.0542762,0,.317265,.82806,.0507042,0,.333729,.822128,.047368,0,.350491,.815989,.044272,0,.367554,.809336,.0413444,0,.38492,.802177,.038601,0,.402594,.79441,.0360227,0,.420582,.786573,.0336383,0,.438891,.778619,.0314321,0,.457527,.77,.029362,0,.476499,.760698,.0274102,0,.49582,.750932,.0256146,0,.5155,.740993,.023974,0,.535555,.731159,.0224182,0,.556,.720836,.0209889,0,.576855,.709913,.0196411,0,.598143,.698415,.0183824,0,.619888,.68745,.0172222,0,.642123,.676154,.0161509,0,.664883,.664383,.0151397,0,.688211,.6533,.0141873,0,.71216,.642072,.0133105,0,.736792,.631412,.0124932,0,.762186,.621622,.0117408,0,.788439,.611681,.0110358,0,.815672,.60142,.0103775,0,.844034,.59083,.00975623,0,.873699,.580254,.00918084,0,.904765,.569841,.00864721,0,.936508,.559224,.00815731,0,.968254,.548315,.00767924,0,1,1,.177563,0,0,1,.177563,0,0,.999994,.177562,0,0,.999972,.177555,0,664171e-10,.999914,.177536,0,.0012276,.999787,.177496,0,.00388025,.999556,.17742,0,.00783463,.999165,.177285,0,.0128953,.9985,.177037,0,.0189053,.995388,.175634,0,.025742,.993102,.174375,0,.033309,.990992,.173121,0,.0415298,.986932,.170896,0,.0503425,.982786,.16847,0,.0596964,.977592,.165455,0,.0695498,.971075,.161676,0,.0798676,.963967,.157458,0,.0906201,.956397,.152836,0,.101783,.947489,.147467,0,.113333,.937564,.14145,0,.125254,.928182,.135383,0,.137529,.919027,.129212,0,.150144,.909618,.12276,0,.163088,.900492,.116273,0,.176351,.891671,.1098,0,.189924,.883146,.103362,0,.203799,.875151,.0970799,0,.21797,.868338,.0911732,0,.232433,.862033,.0854966,0,.247182,.856107,.0800691,0,.262216,.850644,.0749618,0,.27753,.845261,.070079,0,.293124,.839885,.0654321,0,.308997,.834609,.0610975,0,.325149,.829083,.0569741,0,.341581,.82404,.0531736,0,.358294,.818968,.049665,0,.37529,.813496,.0463856,0,.392573,.807533,.0433217,0,.410148,.80099,.0404402,0,.428019,.793891,.0377578,0,.446192,.786281,.0352616,0,.464676,.778773,.0329577,0,.483478,.770737,.030808,0,.502608,.762094,.0287964,0,.522079,.752898,.0269254,0,.541905,.743306,.0251926,0,.5621,.733416,.023595,0,.582684,.723742,.0221155,0,.603677,.713542,.0207435,0,.625106,.702755,.019434,0,.646998,.691484,.0182046,0,.66939,.680531,.0170771,0,.692324,.66953,.0160339,0,.715849,.658126,.0150677,0,.740028,.646933,.0141551,0,.764937,.636107,.0133179,0,.790673,.625271,.0125284,0,.817358,.615225,.0117937,0,.84515,.605678,.0111181,0,.874244,.59583,.0104759,0,.904828,.585704,.00986672,0,.936508,.575413,.00929712,0,.968254,.565373,.00876713,0,1,1,.214058,0,0,.999999,.214058,0,0,.999994,.214055,0,0,.999966,.214039,0,259642e-9,.999893,.213998,0,.00200075,.999737,.21391,0,.00527775,.999449,.213745,0,.00983959,.99896,.213458,0,.0154755,.9979,.212855,0,.0220249,.994278,.210779,0,.0293654,.992254,.20926,0,.0374021,.98881,.206908,0,.0460604,.984715,.204009,0,.0552802,.979738,.200471,0,.0650127,.972884,.195813,0,.0752175,.965996,.190856,0,.0858612,.957974,.185077,0,.0969155,.949155,.17868,0,.108356,.939288,.171513,0,.120163,.928996,.163838,0,.132319,.919563,.156246,0,.144808,.910004,.148359,0,.157618,.900791,.140417,0,.170737,.892135,.132569,0,.184155,.883803,.124741,0,.197866,.876034,.117091,0,.211861,.869219,.109835,0,.226134,.863062,.102859,0,.240682,.857795,.0962928,0,.255499,.853009,.0900725,0,.270583,.848603,.0842101,0,.285931,.844335,.0786527,0,.301542,.840208,.0734397,0,.317415,.836035,.0685334,0,.33355,.83172,.0639275,0,.349948,.827135,.0595909,0,.36661,.822797,.0556204,0,.383539,.818387,.0519394,0,.400738,.813565,.0485317,0,.41821,.808142,.0453138,0,.435961,.802212,.0423354,0,.453997,.79573,.0395553,0,.472324,.788741,.036988,0,.490951,.781093,.0345688,0,.509887,.773597,.0323297,0,.529144,.765622,.0302719,0,.548735,.757083,.0283477,0,.568674,.747992,.0265562,0,.588979,.738591,.0248844,0,.609671,.728719,.0233342,0,.630773,.719146,.0219081,0,.652314,.709165,.0205711,0,.674328,.69875,.0193248,0,.696854,.687884,.0181582,0,.719942,.676818,.0170746,0,.743651,.666247,.0160718,0,.768057,.655284,.0151262,0,.793253,.64401,.0142561,0,.819363,.633353,.0134327,0,.846547,.622674,.012653,0,.875017,.612265,.0119354,0,.905021,.602455,.0112533,0,.936508,.593147,.0106234,0,.968254,.583592,.0100213,0,1,1,.25717,0,0,1,.25717,0,0,.999992,.257164,0,0,.999958,.257135,0,641715e-9,.999864,.25706,0,.00305314,.999666,.256897,0,.00700975,.999302,.256596,0,.0122194,.998663,.25607,0,.0184622,.995607,.254123,0,.0255773,.993094,.252081,0,.0334439,.9907,.249867,0,.0419696,.98594,.246118,0,.0510823,.981214,.242049,0,.0607242,.974966,.236869,0,.0708486,.967589,.230724,0,.081417,.95915,.223635,0,.0923974,.950257,.21596,0,.103763,.940165,.207296,0,.115491,.929396,.197901,0,.127562,.919288,.188437,0,.13996,.909428,.178762,0,.15267,.900105,.169072,0,.165679,.891418,.159478,0,.178979,.883347,.15002,0,.192558,.875992,.140813,0,.20641,.869466,.13196,0,.220529,.863699,.123501,0,.234907,.858553,.115436,0,.249542,.854379,.107901,0,.264428,.850894,.10088,0,.279564,.847632,.0942296,0,.294947,.844571,.0879861,0,.310575,.84163,.0821534,0,.326448,.838542,.0766409,0,.342566,.835412,.0715322,0,.358929,.831899,.0666883,0,.37554,.828177,.0622175,0,.392399,.82416,.0580452,0,.409511,.820393,.054267,0,.426878,.816068,.0507172,0,.444506,.811201,.0474041,0,.4624,.805785,.0443174,0,.480566,.799878,.0414562,0,.499013,.793469,.0388147,0,.517749,.786473,.0363453,0,.536785,.778874,.0340225,0,.556134,.771277,.0318599,0,.575809,.763426,.0298859,0,.595827,.755044,.0280357,0,.616207,.746161,.0262979,0,.636973,.737124,.0247295,0,.65815,.72761,.0232514,0,.679772,.717822,.0218755,0,.701876,.708279,.0205942,0,.724509,.698333,.0193947,0,.74773,.68802,.0182717,0,.771609,.677321,.0172044,0,.79624,.666504,.0162122,0,.821743,.656184,.0152924,0,.84828,.64556,.0144326,0,.876069,.634636,.0136157,0,.905404,.624124,.0128612,0,.936508,.613914,.0121435,0,.968254,.603589,.0114887,0,1,1,.307946,0,0,.999999,.307945,0,0,.999988,.307934,0,204479e-10,.999944,.307886,0,.00127833,.999824,.307756,0,.00445047,.999565,.30748,0,.00914673,.999085,.306966,0,.0150498,.998103,.306004,0,.0219367,.994249,.303028,0,.0296485,.991807,.300435,0,.038068,.987773,.296554,0,.0471062,.982673,.2916,0,.0566942,.976623,.285641,0,.0667768,.968757,.27815,0,.0773099,.959849,.269529,0,.088257,.950663,.260248,0,.0995879,.940129,.249704,0,.111277,.92895,.238291,0,.123304,.917996,.226501,0,.13565,.907813,.214669,0,.148299,.898305,.202835,0,.161237,.889626,.191158,0,.174455,.88175,.179695,0,.187941,.874715,.168548,0,.201687,.868746,.15792,0,.215687,.863703,.147807,0,.229933,.859315,.138149,0,.24442,.855538,.128993,0,.259145,.852428,.120414,0,.274103,.850168,.112498,0,.289293,.848132,.105054,0,.304711,.846291,.0981087,0,.320357,.844431,.0915942,0,.33623,.842493,.0855056,0,.35233,.840368,.0798204,0,.368658,.83798,.0745097,0,.385214,.83523,.0695424,0,.402002,.832091,.0649092,0,.419023,.828667,.0606291,0,.436282,.824805,.0566523,0,.453782,.820988,.0530229,0,.471529,.816635,.0496364,0,.489528,.811725,.0464658,0,.507788,.806316,.0435082,0,.526317,.800469,.0407873,0,.545124,.794107,.038255,0,.564221,.787218,.0358825,0,.583621,.779872,.0336785,0,.603341,.772097,.0316379,0,.623397,.764484,.0297379,0,.643812,.756428,.0279581,0,.664611,.748022,.0263153,0,.685824,.739268,.0247799,0,.707488,.73024,.0233385,0,.729646,.720893,.0220035,0,.752354,.71119,.0207555,0,.77568,.701791,.0195843,0,.799715,.692184,.0184891,0,.824574,.682258,.0174541,0,.850417,.67206,.0164873,0,.877466,.661717,.0155959,0,.90604,.651462,.0147519,0,.936528,.641467,.0139727,0,.968254,.631229,.0132363,0,1,1,.367573,0,0,.999999,.367571,0,0,.999984,.367553,0,183382e-9,.999925,.367473,0,.00225254,.999759,.367259,0,.00628165,.99941,.366801,0,.0117858,.998739,.365946,0,.0184359,.995529,.363191,0,.0260114,.992875,.360171,0,.0343581,.989135,.355981,0,.0433637,.984166,.350401,0,.0529438,.977871,.343348,0,.0630334,.96951,.334341,0,.0735805,.959964,.323862,0,.0845437,.950162,.312521,0,.095889,.938882,.299577,0,.107588,.926992,.285573,0,.119617,.915589,.271212,0,.131957,.904791,.256611,0,.144591,.895177,.242224,0,.157503,.886403,.227952,0,.170682,.878957,.214192,0,.184117,.872418,.200795,0,.197799,.867029,.188015,0,.21172,.862835,.175975,0,.225873,.859411,.164526,0,.240253,.856655,.153693,0,.254854,.854519,.14352,0,.269673,.852828,.13397,0,.284707,.851412,.124984,0,.299953,.850609,.116748,0,.315408,.849855,.10905,0,.331073,.849017,.101839,0,.346946,.848079,.0951359,0,.363028,.846911,.0888774,0,.379318,.845445,.0830375,0,.395818,.84362,.0775844,0,.41253,.841411,.0725054,0,.429457,.838768,.0677691,0,.446602,.835801,.0634016,0,.463968,.832341,.0593095,0,.481561,.828424,.0555121,0,.499386,.824312,.052024,0,.51745,.819918,.0487865,0,.535761,.815072,.0457801,0,.554328,.809863,.0430184,0,.573162,.804164,.0404245,0,.592275,.798034,.0380146,0,.611681,.791436,.0357436,0,.631398,.784498,.0336475,0,.651445,.777125,.0316666,0,.671845,.769365,.0298122,0,.692628,.761579,.0281001,0,.713827,.753746,.0265049,0,.735484,.745573,.0250067,0,.75765,.737083,.0236026,0,.78039,.728545,.0223302,0,.803789,.719691,.0211243,0,.82796,.710569,.0199983,0,.853056,.701216,.0189569,0,.879298,.692094,.0179702,0,.907014,.682909,.0170418,0,.936691,.673509,.0161732,0,.968254,.663863,.0153406,0,1,1,.437395,0,0,.999998,.437394,0,0,.99998,.437363,0,616704e-9,.999891,.437232,0,.00367925,.999656,.436877,0,.00867446,.999148,.436121,0,.0150679,.997959,.434564,0,.022531,.993464,.430134,0,.0308507,.990606,.426077,0,.0398805,.985027,.419397,0,.0495148,.978491,.41118,0,.0596749,.969643,.40048,0,.0703001,.959189,.38769,0,.0813427,.948223,.373575,0,.0927641,.935955,.357622,0,.104533,.923237,.34043,0,.116624,.911074,.322735,0,.129015,.899724,.30479,0,.141687,.890189,.287392,0,.154626,.881796,.270248,0,.167818,.874781,.253659,0,.181252,.869166,.237786,0,.194918,.864725,.222618,0,.208807,.861565,.208356,0,.222913,.859284,.194867,0,.237229,.857677,.18212,0,.25175,.856714,.17018,0,.266473,.856155,.158969,0,.281392,.8558,.148413,0,.296505,.855672,.138578,0,.311811,.855538,.129345,0,.327306,.855689,.120861,0,.342991,.855767,.112969,0,.358864,.855618,.105593,0,.374925,.85525,.0987451,0,.391176,.854583,.0923727,0,.407616,.853534,.0864143,0,.424249,.852061,.0808338,0,.441076,.850253,.0756771,0,.4581,.848004,.0708612,0,.475324,.845333,.0663784,0,.492754,.842376,.0622631,0,.510394,.838956,.0584112,0,.528251,.835121,.0548328,0,.546331,.830842,.0514838,0,.564644,.826212,.048355,0,.583198,.821522,.0454714,0,.602005,.816551,.0428263,0,.621078,.811211,.0403612,0,.640434,.805479,.038039,0,.660089,.799409,.0358739,0,.680066,.79306,.0338727,0,.70039,.786395,.0319985,0,.721094,.779416,.030241,0,.742215,.77214,.0285951,0,.7638,.764636,.0270747,0,.785912,.756836,.0256354,0,.808628,.749315,.0243027,0,.832055,.741561,.0230497,0,.856338,.733589,.0218801,0,.88169,.725479,.020784,0,.908441,.717255,.0197702,0,.937125,.708829,.0188168,0,.968254,.700191,.0179113,0,1,1,.518937,0,0,.999998,.518933,0,0,.999967,.518883,0,.00147741,.999832,.51866,0,.00573221,.999466,.518057,0,.011826,.998644,.516752,0,.0192116,.994458,.512347,0,.027573,.991223,.507675,0,.0367099,.985515,.500188,0,.046487,.978308,.490408,0,.0568071,.968359,.477357,0,.0675984,.95682,.461752,0,.0788059,.943929,.443796,0,.090386,.930224,.423893,0,.102304,.916514,.402682,0,.114532,.903653,.380914,0,.127047,.892315,.359212,0,.139828,.882942,.338102,0,.152861,.875438,.31773,0,.16613,.869642,.298186,0,.179624,.865304,.279491,0,.193332,.862382,.261804,0,.207247,.860666,.245146,0,.22136,.859788,.229406,0,.235666,.859608,.214605,0,.250158,.859912,.200691,0,.264832,.86053,.187623,0,.279684,.861368,.17539,0,.294711,.862237,.163901,0,.309911,.863127,.153175,0,.32528,.863923,.143147,0,.340819,.864567,.133781,0,.356524,.865013,.125042,0,.372397,.86539,.116952,0,.388438,.865591,.109476,0,.404645,.865517,.102542,0,.421022,.865084,.0960688,0,.437569,.864309,.0900499,0,.454287,.863151,.0844328,0,.471181,.861649,.0792218,0,.488253,.859742,.0743482,0,.505507,.857446,.0697963,0,.522947,.854757,.0655364,0,.54058,.851783,.061608,0,.558412,.848516,.0579701,0,.576449,.844897,.0545742,0,.594701,.840956,.0514167,0,.613178,.836676,.0484598,0,.631892,.832075,.0456934,0,.650856,.827191,.0431178,0,.670088,.822295,.0407718,0,.689606,.817294,.0386032,0,.709434,.812013,.0365675,0,.7296,.806465,.0346547,0,.750138,.800691,.0328717,0,.771093,.794709,.031211,0,.792519,.788493,.0296504,0,.814488,.782049,.0281782,0,.837097,.775403,.0267965,0,.860481,.76857,.0255002,0,.884842,.761536,.0242759,0,.910494,.754303,.0231142,0,.937985,.74692,.0220305,0,.968254,.739745,.0210192,0,1,1,.613914,0,0,.999996,.613907,0,963597e-10,.999942,.613814,0,.00301247,.999704,.613407,0,.00870385,.999046,.612302,0,.0160714,.995516,.608266,0,.0245899,.991726,.602863,0,.0339681,.985157,.593956,0,.0440254,.97642,.581748,0,.0546409,.964404,.565183,0,.0657284,.950601,.545273,0,.0772246,.935158,.522129,0,.0890812,.919364,.496782,0,.10126,.904754,.470571,0,.113731,.89176,.444037,0,.126469,.881492,.418322,0,.139454,.873656,.393522,0,.15267,.868053,.369795,0,.166101,.864336,.347171,0,.179736,.862259,.325737,0,.193565,.861556,.305532,0,.207578,.861776,.286416,0,.221769,.862661,.268355,0,.23613,.864015,.251334,0,.250656,.865711,.235352,0,.265343,.867519,.220302,0,.280187,.869351,.206161,0,.295183,.871144,.192908,0,.31033,.872839,.180505,0,.325624,.874307,.168848,0,.341065,.875667,.158021,0,.35665,.876758,.147877,0,.37238,.87764,.138441,0,.388253,.878237,.129627,0,.404269,.878563,.121415,0,.42043,.878572,.113741,0,.436735,.87842,.106652,0,.453187,.878057,.100097,0,.469786,.877413,.0940128,0,.486536,.87646,.0883462,0,.503439,.875233,.0830924,0,.520498,.8737,.0781975,0,.537717,.871873,.07364,0,.555102,.86978,.0694103,0,.572657,.867405,.0654696,0,.59039,.864751,.0617914,0,.608307,.861818,.0583491,0,.626419,.858645,.0551443,0,.644733,.855307,.0521894,0,.663264,.851736,.0494334,0,.682025,.847927,.0468504,0,.701032,.843888,.0444261,0,.720308,.839629,.0421497,0,.739875,.835158,.0400082,0,.759764,.830509,.0380076,0,.780014,.825714,.0361488,0,.800673,.820729,.0343956,0,.821803,.815751,.0327781,0,.843492,.810752,.031275,0,.86586,.805587,.0298542,0,.889087,.800317,.0285397,0,.913466,.79489,.0272948,0,.93952,.789314,.0261139,0,.96835,.783593,.0249938,0,1,1,.724258,0,0,.999992,.724243,0,726889e-9,.99987,.724044,0,.00569574,.999336,.72317,0,.0131702,.996271,.719432,0,.0220738,.991159,.712576,0,.0319405,.982465,.700927,0,.0425202,.97049,.684297,0,.0536599,.953973,.661244,0,.065258,.935546,.633804,0,.0772427,.916596,.603071,0,.0895616,.899353,.57105,0,.102175,.885216,.539206,0,.11505,.875076,.508714,0,.128164,.868334,.479571,0,.141495,.864414,.451796,0,.155026,.862678,.425328,0,.168745,.862835,.400352,0,.182639,.864067,.376532,0,.196699,.866086,.35391,0,.210915,.868557,.332424,0,.225282,.871271,.312053,0,.239792,.874058,.292764,0,.25444,.8768,.27453,0,.269223,.87939,.257297,0,.284135,.8819,.24114,0,.299174,.884187,.225934,0,.314337,.886262,.211669,0,.329622,.888119,.198311,0,.345026,.889709,.185783,0,.360549,.891054,.174063,0,.376189,.892196,.163143,0,.391946,.893101,.152952,0,.407819,.893803,.143475,0,.423808,.894277,.134647,0,.439914,.894532,.126434,0,.456137,.894576,.1188,0,.472479,.894393,.111694,0,.48894,.893976,.105069,0,.505523,.893346,.0989077,0,.52223,.892502,.0931724,0,.539064,.891441,.0878276,0,.556028,.890276,.082903,0,.573125,.888972,.0783505,0,.590361,.887469,.0741083,0,.607741,.885785,.0701633,0,.62527,.883914,.0664835,0,.642957,.881872,.0630567,0,.660809,.879651,.0598527,0,.678836,.877267,.0568615,0,.69705,.874717,.05406,0,.715465,.872012,.0514378,0,.734098,.869157,.0489805,0,.752968,.866155,.0466727,0,.772101,.863014,.0445056,0,.791529,.859748,.0424733,0,.81129,.856416,.0405957,0,.831438,.852958,.0388273,0,.852044,.849382,.0371619,0,.87321,.845694,.0355959,0,.89509,.841893,.0341155,0,.917932,.837981,.0327141,0,.942204,.833963,.0313856,0,.968981,.829847,.0301275,0,1,1,.85214,0,0,.999969,.852095,0,.00279627,.999483,.851408,0,.0107635,.994545,.84579,0,.0206454,.986188,.835231,0,.0315756,.969847,.814687,0,.0432021,.945951,.783735,0,.0553396,.91917,.746074,0,.0678766,.895488,.706938,0,.0807395,.878232,.669534,0,.0938767,.868252,.635168,0,.10725,.863873,.603069,0,.120832,.863369,.572514,0,.134598,.86545,.543169,0,.148533,.868803,.514578,0,.16262,.872794,.486762,0,.176849,.87702,.459811,0,.19121,.881054,.433654,0,.205694,.884974,.408574,0,.220294,.888587,.384525,0,.235005,.891877,.36156,0,.24982,.894793,.339661,0,.264737,.89743,.318913,0,.279751,.899796,.299302,0,.294859,.901943,.280843,0,.310058,.903858,.263481,0,.325346,.905574,.247197,0,.340721,.907069,.231915,0,.356181,.908379,.217614,0,.371725,.90952,.20425,0,.387353,.910483,.191758,0,.403063,.91128,.180092,0,.418854,.911936,.169222,0,.434727,.912454,.159098,0,.450682,.912835,.149668,0,.466718,.913078,.140884,0,.482837,.913192,.132709,0,.499038,.913175,.125095,0,.515324,.91304,.118012,0,.531695,.912781,.111417,0,.548153,.91241,.105281,0,.5647,.911924,.0995691,0,.581338,.911331,.0942531,0,.59807,.910637,.0893076,0,.6149,.90984,.0846998,0,.63183,.908941,.0804044,0,.648865,.907944,.0763984,0,.666011,.906857,.0726638,0,.683273,.90568,.0691783,0,.700659,.904416,.0659222,0,.718176,.903067,.0628782,0,.735834,.901637,.0600307,0,.753646,.900128,.0573647,0,.771625,.898544,.0548668,0,.78979,.89689,.052527,0,.808162,.895165,.0503306,0,.826771,.893371,.0482668,0,.845654,.891572,.0463605,0,.864863,.889763,.0445998,0,.884472,.887894,.0429451,0,.904592,.885967,.0413884,0,.925407,.883984,.0399225,0,.947271,.881945,.0385405,0,.97105,.879854,.0372362,0,1,.999804,.995833,0,0,.938155,.933611,0,.0158731,.864755,.854311,0,.0317461,.888594,.865264,0,.0476191,.905575,.863922,0,.0634921,.915125,.850558,0,.0793651,.920665,.829254,0,.0952381,.924073,.802578,0,.111111,.926304,.772211,0,.126984,.927829,.739366,0,.142857,.928924,.705033,0,.15873,.92973,.670019,0,.174603,.930339,.634993,0,.190476,.930811,.600485,0,.206349,.931191,.566897,0,.222222,.93149,.534485,0,.238095,.931737,.503429,0,.253968,.931939,.473811,0,.269841,.932108,.445668,0,.285714,.93225,.418993,0,.301587,.932371,.393762,0,.31746,.932474,.369939,0,.333333,.932562,.347479,0,.349206,.932638,.326336,0,.365079,.932703,.306462,0,.380952,.93276,.287805,0,.396825,.932809,.270313,0,.412698,.932851,.253933,0,.428571,.932887,.23861,0,.444444,.932917,.224289,0,.460317,.932943,.210917,0,.47619,.932965,.19844,0,.492063,.932982,.186807,0,.507937,.932995,.175966,0,.52381,.933005,.165869,0,.539683,.933011,.156468,0,.555556,.933013,.147719,0,.571429,.933013,.139579,0,.587302,.93301,.132007,0,.603175,.933004,.124965,0,.619048,.932994,.118416,0,.634921,.932982,.112326,0,.650794,.932968,.106663,0,.666667,.93295,.101397,0,.68254,.932931,.0964993,0,.698413,.932908,.0919438,0,.714286,.932883,.0877057,0,.730159,.932856,.0837623,0,.746032,.932827,.0800921,0,.761905,.932796,.0766754,0,.777778,.932762,.0734936,0,.793651,.932727,.0705296,0,.809524,.932689,.0677676,0,.825397,.93265,.0651929,0,.84127,.932609,.0627917,0,.857143,.932565,.0605515,0,.873016,.932521,.0584606,0,.888889,.932474,.0565082,0,.904762,.932427,.0546841,0,.920635,.932377,.0529793,0,.936508,.932326,.0513851,0,.952381,.932274,.0498936,0,.968254,.93222,.0484975,0,.984127,.932164,.0471899,0,1],n=new Float32Array(t),i=new Float32Array(e);V.LTC_FLOAT_1=new vo.a(n,64,64,w.Ib,w.G,w.Yc,w.n,w.n,w.V,w.ob,1),V.LTC_FLOAT_2=new vo.a(i,64,64,w.Ib,w.G,w.Yc,w.n,w.n,w.V,w.ob,1);const s=new Uint16Array(t.length);t.forEach((function(t,e){s[e]=mU.a.toHalfFloat(t)}));const r=new Uint16Array(e.length);e.forEach((function(t,e){r[e]=mU.a.toHalfFloat(t)})),V.LTC_HALF_1=new vo.a(s,64,64,w.Ib,w.M,w.Yc,w.n,w.n,w.V,w.ob,1),V.LTC_HALF_2=new vo.a(r,64,64,w.Ib,w.M,w.Yc,w.n,w.n,w.V,w.ob,1)}}!function(t){t.OBJECTS=\\\\\\\"objects\\\\\\\",t.GEOMETRIES=\\\\\\\"geometries\\\\\\\"}(_U||(_U={}));const gU=[_U.GEOMETRIES,_U.OBJECTS];var vU;!function(t){t.XYZ=\\\\\\\"XYZ\\\\\\\",t.XZY=\\\\\\\"XZY\\\\\\\",t.YXZ=\\\\\\\"YXZ\\\\\\\",t.YZX=\\\\\\\"YZX\\\\\\\",t.ZYX=\\\\\\\"ZYX\\\\\\\",t.ZXY=\\\\\\\"ZXY\\\\\\\"}(vU||(vU={}));const yU=[vU.XYZ,vU.XZY,vU.YXZ,vU.YZX,vU.ZXY,vU.ZYX],xU=vU.XYZ;class bU{constructor(){this._translation_matrix=new A.a,this._translation_matrix_q=new hh.a,this._translation_matrix_s=new p.a(1,1,1),this._matrix=(new A.a).identity(),this._matrix_q=new hh.a,this._matrix_euler=new ny.a,this._matrix_s=new p.a,this._rotate_geometry_m=new A.a,this._rotate_geometry_q=new hh.a,this._rotate_geometry_vec_dest=new p.a}static setParamsFromMatrix(t,e,n={}){let i=n.scale;null==i&&(i=!0),t.decompose(this.set_params_from_matrix_position,this.set_params_from_matrix_quaternion,this.set_params_from_matrix_scale),this.set_params_from_matrix_euler.setFromQuaternion(this.set_params_from_matrix_quaternion),this.set_params_from_matrix_euler.toVector3(this.set_params_from_matrix_rotation),this.set_params_from_matrix_rotation.divideScalar(Math.PI/180),this.set_params_from_matrix_position.toArray(this.set_params_from_matrix_t),this.set_params_from_matrix_rotation.toArray(this.set_params_from_matrix_r),this.set_params_from_matrix_scale.toArray(this.set_params_from_matrix_s),e.scene().batchUpdates((()=>{e.params.set_vector3(\\\\\\\"t\\\\\\\",this.set_params_from_matrix_t),e.params.set_vector3(\\\\\\\"r\\\\\\\",this.set_params_from_matrix_r),e.params.set_vector3(\\\\\\\"s\\\\\\\",this.set_params_from_matrix_s),i&&e.params.set_float(\\\\\\\"scale\\\\\\\",1)}))}static setParamsFromObject(t,e){t.position.toArray(this.set_params_from_object_position_array),t.rotation.toArray(this.set_params_from_object_rotation_array),this.set_params_from_object_rotation_deg.fromArray(this.set_params_from_object_rotation_array),this.set_params_from_object_rotation_deg.multiplyScalar(180/Math.PI),this.set_params_from_object_rotation_deg.toArray(this.set_params_from_object_rotation_array),e.scene().batchUpdates((()=>{e.params.set_vector3(\\\\\\\"t\\\\\\\",this.set_params_from_object_position_array),e.params.set_vector3(\\\\\\\"r\\\\\\\",this.set_params_from_object_rotation_array)}))}translationMatrix(t){return this._translation_matrix.compose(t,this._translation_matrix_q,this._translation_matrix_s),this._translation_matrix}matrix(t,e,n,i,s){return this._matrix_euler.set(Object(On.e)(e.x),Object(On.e)(e.y),Object(On.e)(e.z),s),this._matrix_q.setFromEuler(this._matrix_euler),this._matrix_s.copy(n).multiplyScalar(i),this._matrix.compose(t,this._matrix_q,this._matrix_s),this._matrix}rotateGeometry(t,e,n){this._rotate_geometry_vec_dest.copy(n),this._rotate_geometry_vec_dest.normalize(),this._rotate_geometry_q.setFromUnitVectors(e,this._rotate_geometry_vec_dest),this._rotate_geometry_m.makeRotationFromQuaternion(this._rotate_geometry_q),t.applyMatrix4(this._rotate_geometry_m)}static decomposeMatrix(t){t.matrix.decompose(t.position,t.quaternion,t.scale)}}function wU(t,e){const n=(null==e?void 0:e.matrixAutoUpdate)||!1;return class extends t{constructor(){super(...arguments),this.transform=ha.FOLDER(),this.keepPosWhenParenting=ha.BOOLEAN(0),this.rotationOrder=ha.INTEGER(yU.indexOf(vU.XYZ),{menu:{entries:yU.map(((t,e)=>({name:t,value:e})))}}),this.t=ha.VECTOR3([0,0,0]),this.r=ha.VECTOR3([0,0,0]),this.s=ha.VECTOR3([1,1,1]),this.scale=ha.FLOAT(1),this.matrixAutoUpdate=ha.BOOLEAN(n?1:0),this.updateTransformFromObject=ha.BUTTON(null,{callback:t=>{AU.PARAM_CALLBACK_update_transform_from_object(t)}})}}}bU.set_params_from_matrix_position=new p.a,bU.set_params_from_matrix_quaternion=new hh.a,bU.set_params_from_matrix_scale=new p.a,bU.set_params_from_matrix_euler=new ny.a,bU.set_params_from_matrix_rotation=new p.a,bU.set_params_from_matrix_t=[0,0,0],bU.set_params_from_matrix_r=[0,0,0],bU.set_params_from_matrix_s=[0,0,0],bU.set_params_from_object_position_array=[0,0,0],bU.set_params_from_object_rotation_deg=new p.a,bU.set_params_from_object_rotation_array=[0,0,0];wU(ua);const TU=\\\\\\\"_cook_main_without_inputs_when_dirty\\\\\\\";class AU{constructor(t){this.node=t,this._cook_main_without_inputs_when_dirty_bound=this._cook_main_without_inputs_when_dirty.bind(this),this._core_transform=new bU,this._keep_pos_when_parenting_m_object=new A.a,this._keep_pos_when_parenting_m_new_parent_inv=new A.a}initializeNode(){this.node.dirtyController.hasHook(TU)||this.node.dirtyController.addPostDirtyHook(TU,this._cook_main_without_inputs_when_dirty_bound)}async _cook_main_without_inputs_when_dirty(){await this.node.cookController.cookMainWithoutInputs()}update(){this.update_transform_with_matrix();this.node.object.matrixAutoUpdate=this.node.pv.matrixAutoUpdate}update_transform_with_matrix(t){const e=this.node.object;null==t||t.equals(e.matrix)?this._update_matrix_from_params_with_core_transform():(e.matrix.copy(t),e.dispatchEvent({type:\\\\\\\"change\\\\\\\"}))}_update_matrix_from_params_with_core_transform(){const t=this.node.object;let e=t.matrixAutoUpdate;e&&(t.matrixAutoUpdate=!1);const n=this._core_transform.matrix(this.node.pv.t,this.node.pv.r,this.node.pv.s,this.node.pv.scale,yU[this.node.pv.rotationOrder]);t.matrix.identity(),t.applyMatrix4(n),this._apply_look_at(),t.updateMatrix(),e&&(t.matrixAutoUpdate=!0),t.dispatchEvent({type:\\\\\\\"change\\\\\\\"})}_apply_look_at(){}set_params_from_matrix(t,e={}){bU.setParamsFromMatrix(t,this.node,e)}static update_node_transform_params_if_required(t,e){t.transformController.update_node_transform_params_if_required(e)}update_node_transform_params_if_required(t){if(!this.node.pv.keepPosWhenParenting)return;if(!this.node.scene().loadingController.loaded())return;if(t==this.node.object.parent)return;const e=this.node.object;e.updateMatrixWorld(!0),t.updateMatrixWorld(!0),this._keep_pos_when_parenting_m_object.copy(e.matrixWorld),this._keep_pos_when_parenting_m_new_parent_inv.copy(t.matrixWorld),this._keep_pos_when_parenting_m_new_parent_inv.invert(),this._keep_pos_when_parenting_m_object.premultiply(this._keep_pos_when_parenting_m_new_parent_inv),bU.setParamsFromMatrix(this._keep_pos_when_parenting_m_object,this.node,{scale:!0})}update_node_transform_params_from_object(t=!1){const e=this.node.object;t&&e.updateMatrix(),bU.setParamsFromMatrix(e.matrix,this.node,{scale:!0})}static PARAM_CALLBACK_update_transform_from_object(t){t.transformController.update_node_transform_params_from_object()}}class MU{constructor(t){this.node=t}initializeNode(){this.node.io.inputs.setCount(0,1),this.node.io.inputs.set_depends_on_inputs(!1),this.node.io.outputs.setHasOneOutput(),this.node.io.inputs.add_on_set_input_hook(\\\\\\\"on_input_updated:update_parent\\\\\\\",(()=>{this.on_input_updated()}))}static on_input_updated(t){const e=t.root().getParentForNode(t);t.transformController&&e&&AU.update_node_transform_params_if_required(t,e),null!=t.io.inputs.input(0)?t.root().addToParentTransform(t):t.root().removeFromParentTransform(t)}on_input_updated(){MU.on_input_updated(this.node)}}wU(ua);class EU extends hU{constructor(){super(...arguments),this.flags=new Di(this),this.hierarchyController=new MU(this),this.transformController=new AU(this)}initializeBaseNode(){super.initializeBaseNode(),this.hierarchyController.initializeNode(),this.transformController.initializeNode()}cook(){this.transformController.update(),this.updateLightParams(),this.updateShadowParams(),this.cookController.endCook()}}class SU{constructor(t,e,n){this.node=t,this._helperConstructor=e,this._name=n}initializeNode(){this.node.flags.display.onUpdate((()=>{this.update()}))}visible(){return this.node.flags.display.active()&&this.node.pv.showHelper}_createHelper(){const t=new this._helperConstructor(this.node,this._name);return t.build(),t}update(){this.visible()?(this._helper||(this._helper=this._createHelper()),this._helper&&(this.node.light.add(this._helper.object),this._helper.update())):this._helper&&this.node.light.remove(this._helper.object)}}var CU=n(41);class NU extends CU.a{constructor(t,e){const n=new S.a;n.setAttribute(\\\\\\\"position\\\\\\\",new C.c([1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),n.computeBoundingSphere();super(n,new As.a({fog:!1})),this.light=t,this.color=e,this.type=\\\\\\\"RectAreaLightHelper\\\\\\\";const i=new S.a;i.setAttribute(\\\\\\\"position\\\\\\\",new C.c([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),i.computeBoundingSphere(),this.add(new B.a(i,new lt.a({side:w.i,fog:!1})))}updateMatrixWorld(){if(this.scale.set(.5*this.light.width,.5*this.light.height,1),void 0!==this.color)this.material.color.set(this.color),this.children[0].material.color.set(this.color);else{this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);const t=this.material.color,e=Math.max(t.r,t.g,t.b);e>1&&t.multiplyScalar(1/e),this.children[0].material.color.copy(this.material.color)}this.matrixWorld.extractRotation(this.light.matrixWorld).scale(this.scale).copyPosition(this.light.matrixWorld),this.children[0].matrixWorld.copy(this.matrixWorld)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}class LU{constructor(t,e){this.node=t,this._name=e,this._object=this.createObject(),this._material=new lt.a({wireframe:!0,fog:!1})}build(){this._object.matrixAutoUpdate=!1,this._object.name=this._name,this.buildHelper()}get object(){return this._object}}class OU extends LU{createObject(){return new NU(this.node.light)}buildHelper(){}update(){this._object.updateMatrixWorld()}}class PU extends(function(t){return class extends t{constructor(){super(...arguments),this.light=ha.FOLDER(),this.color=ha.COLOR([1,1,1],{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(1,{range:[0,10]}),this.width=ha.FLOAT(1,{range:[0,10]}),this.height=ha.FLOAT(1,{range:[0,10]}),this.showHelper=ha.BOOLEAN(0)}}}(wU(ua))){}const RU=new PU;class IU extends EU{constructor(){super(...arguments),this.paramsConfig=RU,this._helperController=new SU(this,OU,\\\\\\\"RectAreaLightObjNodeHelper\\\\\\\")}static type(){return\\\\\\\"areaLight\\\\\\\"}initializeNode(){this._helperController.initializeNode()}createLight(){const t=new pU(16777215,1,1,1);return t.matrixAutoUpdate=!1,fU.initialized||(fU.init(),fU.initialized=!0),t}updateLightParams(){this.light.color=this.pv.color,this.light.intensity=this.pv.intensity,this.light.width=this.pv.width,this.light.height=this.pv.height,this._helperController.update()}}var FU=n(72);const DU=new p.a,BU=new of.a;class zU extends Ms.a{constructor(t){const e=new S.a,n=new As.a({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],r={},o=new D.a(16755200),a=new D.a(16711680),l=new D.a(43775),c=new D.a(16777215),h=new D.a(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),s.push(e.r,e.g,e.b),void 0===r[t]&&(r[t]=[]),r[t].push(i.length/3-1)}u(\\\\\\\"n1\\\\\\\",\\\\\\\"n2\\\\\\\",o),u(\\\\\\\"n2\\\\\\\",\\\\\\\"n4\\\\\\\",o),u(\\\\\\\"n4\\\\\\\",\\\\\\\"n3\\\\\\\",o),u(\\\\\\\"n3\\\\\\\",\\\\\\\"n1\\\\\\\",o),u(\\\\\\\"f1\\\\\\\",\\\\\\\"f2\\\\\\\",o),u(\\\\\\\"f2\\\\\\\",\\\\\\\"f4\\\\\\\",o),u(\\\\\\\"f4\\\\\\\",\\\\\\\"f3\\\\\\\",o),u(\\\\\\\"f3\\\\\\\",\\\\\\\"f1\\\\\\\",o),u(\\\\\\\"n1\\\\\\\",\\\\\\\"f1\\\\\\\",o),u(\\\\\\\"n2\\\\\\\",\\\\\\\"f2\\\\\\\",o),u(\\\\\\\"n3\\\\\\\",\\\\\\\"f3\\\\\\\",o),u(\\\\\\\"n4\\\\\\\",\\\\\\\"f4\\\\\\\",o),u(\\\\\\\"p\\\\\\\",\\\\\\\"n1\\\\\\\",a),u(\\\\\\\"p\\\\\\\",\\\\\\\"n2\\\\\\\",a),u(\\\\\\\"p\\\\\\\",\\\\\\\"n3\\\\\\\",a),u(\\\\\\\"p\\\\\\\",\\\\\\\"n4\\\\\\\",a),u(\\\\\\\"u1\\\\\\\",\\\\\\\"u2\\\\\\\",l),u(\\\\\\\"u2\\\\\\\",\\\\\\\"u3\\\\\\\",l),u(\\\\\\\"u3\\\\\\\",\\\\\\\"u1\\\\\\\",l),u(\\\\\\\"c\\\\\\\",\\\\\\\"t\\\\\\\",c),u(\\\\\\\"p\\\\\\\",\\\\\\\"c\\\\\\\",h),u(\\\\\\\"cn1\\\\\\\",\\\\\\\"cn2\\\\\\\",h),u(\\\\\\\"cn3\\\\\\\",\\\\\\\"cn4\\\\\\\",h),u(\\\\\\\"cf1\\\\\\\",\\\\\\\"cf2\\\\\\\",h),u(\\\\\\\"cf3\\\\\\\",\\\\\\\"cf4\\\\\\\",h),e.setAttribute(\\\\\\\"position\\\\\\\",new C.c(i,3)),e.setAttribute(\\\\\\\"color\\\\\\\",new C.c(s,3)),super(e,n),this.type=\\\\\\\"CameraHelper\\\\\\\",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrixAutoUpdate=!1,this.pointMap=r,this.update()}update(){const t=this.geometry,e=this.pointMap;BU.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),kU(\\\\\\\"c\\\\\\\",e,t,BU,0,0,-1),kU(\\\\\\\"t\\\\\\\",e,t,BU,0,0,1),kU(\\\\\\\"n1\\\\\\\",e,t,BU,-1,-1,-1),kU(\\\\\\\"n2\\\\\\\",e,t,BU,1,-1,-1),kU(\\\\\\\"n3\\\\\\\",e,t,BU,-1,1,-1),kU(\\\\\\\"n4\\\\\\\",e,t,BU,1,1,-1),kU(\\\\\\\"f1\\\\\\\",e,t,BU,-1,-1,1),kU(\\\\\\\"f2\\\\\\\",e,t,BU,1,-1,1),kU(\\\\\\\"f3\\\\\\\",e,t,BU,-1,1,1),kU(\\\\\\\"f4\\\\\\\",e,t,BU,1,1,1),kU(\\\\\\\"u1\\\\\\\",e,t,BU,.7,1.1,-1),kU(\\\\\\\"u2\\\\\\\",e,t,BU,-.7,1.1,-1),kU(\\\\\\\"u3\\\\\\\",e,t,BU,0,2,-1),kU(\\\\\\\"cf1\\\\\\\",e,t,BU,-1,0,1),kU(\\\\\\\"cf2\\\\\\\",e,t,BU,1,0,1),kU(\\\\\\\"cf3\\\\\\\",e,t,BU,0,-1,1),kU(\\\\\\\"cf4\\\\\\\",e,t,BU,0,1,1),kU(\\\\\\\"cn1\\\\\\\",e,t,BU,-1,0,-1),kU(\\\\\\\"cn2\\\\\\\",e,t,BU,1,0,-1),kU(\\\\\\\"cn3\\\\\\\",e,t,BU,0,-1,-1),kU(\\\\\\\"cn4\\\\\\\",e,t,BU,0,1,-1),t.getAttribute(\\\\\\\"position\\\\\\\").needsUpdate=!0}}function kU(t,e,n,i,s,r,o){DU.set(s,r,o).unproject(i);const a=e[t];if(void 0!==a){const t=n.getAttribute(\\\\\\\"position\\\\\\\");for(let e=0,n=a.length;e<n;e++)t.setXYZ(a[e],DU.x,DU.y,DU.z)}}class UU extends LU{constructor(){super(...arguments),this._square=new CU.a,this._line_material=new As.a({fog:!1})}createObject(){return new B.a}buildHelper(){const t=new S.a;t.setAttribute(\\\\\\\"position\\\\\\\",new C.c([-1,1,0,1,1,0,1,-1,0,-1,-1,0,-1,1,0],3)),this._square.geometry=t,this._square.material=this._line_material,this._square.rotateX(.5*Math.PI),this._square.updateMatrix(),this._square.matrixAutoUpdate=!1,this.object.add(this._square),this._cameraHelper=new zU(this.node.light.shadow.camera),this._cameraHelper.rotateX(.5*-Math.PI),this._cameraHelper.updateMatrix(),this._cameraHelper.matrixAutoUpdate=!1,this.object.add(this._cameraHelper)}update(){this._object.updateMatrix(),this._cameraHelper.update(),this._line_material.color.copy(this.node.light.color)}}var GU,VU;!function(t){t.DIRECTIONAL=\\\\\\\"directionalLight\\\\\\\",t.HEMISPHERE=\\\\\\\"hemisphereLight\\\\\\\",t.POINT=\\\\\\\"pointLight\\\\\\\",t.SPOT=\\\\\\\"spotLight\\\\\\\"}(GU||(GU={})),function(t){t.DIRECTIONAL=\\\\\\\"DirectionalLight\\\\\\\",t.HEMISPHERE=\\\\\\\"HemisphereLight\\\\\\\",t.POINT=\\\\\\\"PointLight\\\\\\\",t.SPOT=\\\\\\\"SpotLight\\\\\\\"}(VU||(VU={}));class HU extends(function(t){return class extends t{constructor(){super(...arguments),this.light=ha.FOLDER(),this.color=ha.COLOR([1,1,1],{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(1),this.distance=ha.FLOAT(100,{range:[0,100]}),this.showHelper=ha.BOOLEAN(0),this.shadow=ha.FOLDER(),this.castShadow=ha.BOOLEAN(1),this.shadowRes=ha.VECTOR2([1024,1024],{visibleIf:{castShadow:!0}}),this.shadowSize=ha.VECTOR2([2,2],{visibleIf:{castShadow:!0}}),this.shadowBias=ha.FLOAT(.001,{visibleIf:{castShadow:!0}}),this.shadowRadius=ha.FLOAT(0,{visibleIf:{castShadow:1},range:[0,10],rangeLocked:[!0,!1]})}}}(wU(ua))){}const jU=new HU;class WU extends EU{constructor(){super(...arguments),this.paramsConfig=jU,this._helperController=new SU(this,UU,\\\\\\\"DirectionalLightHelper\\\\\\\")}static type(){return GU.DIRECTIONAL}initializeNode(){this._helperController.initializeNode()}createLight(){const t=new FU.a;return t.matrixAutoUpdate=!1,t.castShadow=!0,t.shadow.bias=-.001,t.shadow.mapSize.x=1024,t.shadow.mapSize.y=1024,t.shadow.camera.near=.1,this._target_target=t.target,this._target_target.name=\\\\\\\"DirectionalLight Default Target\\\\\\\",this.object.add(this._target_target),t}updateLightParams(){this.light.color=this.pv.color,this.light.intensity=this.pv.intensity,this.light.shadow.camera.far=this.pv.distance}updateShadowParams(){this.light.castShadow=this.pv.castShadow,this.light.shadow.mapSize.copy(this.pv.shadowRes),this.light.shadow.bias=this.pv.shadowBias,this.light.shadow.radius=this.pv.shadowRadius;const t=this.light.shadow.camera,e=this.pv.shadowSize;t.left=.5*-e.x,t.right=.5*e.x,t.top=.5*e.y,t.bottom=.5*-e.y,this.light.shadow.camera.updateProjectionMatrix(),this._helperController.update()}}class qU extends cv.a{constructor(t,e,n){super(t,n),this.type=\\\\\\\"HemisphereLight\\\\\\\",this.position.copy(Q.a.DefaultUp),this.updateMatrix(),this.groundColor=new D.a(e)}copy(t){return cv.a.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}qU.prototype.isHemisphereLight=!0;class XU extends S.a{constructor(t=[],e=[],n=1,i=0){super(),this.type=\\\\\\\"PolyhedronGeometry\\\\\\\",this.parameters={vertices:t,indices:e,radius:n,detail:i};const s=[],r=[];function o(t,e,n,i){const s=i+1,r=[];for(let i=0;i<=s;i++){r[i]=[];const o=t.clone().lerp(n,i/s),a=e.clone().lerp(n,i/s),l=s-i;for(let t=0;t<=l;t++)r[i][t]=0===t&&i===s?o:o.clone().lerp(a,t/l)}for(let t=0;t<s;t++)for(let e=0;e<2*(s-t)-1;e++){const n=Math.floor(e/2);e%2==0?(a(r[t][n+1]),a(r[t+1][n]),a(r[t][n])):(a(r[t][n+1]),a(r[t+1][n+1]),a(r[t+1][n]))}}function a(t){s.push(t.x,t.y,t.z)}function l(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function c(t,e,n,i){i<0&&1===t.x&&(r[e]=t.x-1),0===n.x&&0===n.z&&(r[e]=i/2/Math.PI+.5)}function h(t){return Math.atan2(t.z,-t.x)}!function(t){const n=new p.a,i=new p.a,s=new p.a;for(let r=0;r<e.length;r+=3)l(e[r+0],n),l(e[r+1],i),l(e[r+2],s),o(n,i,s,t)}(i),function(t){const e=new p.a;for(let n=0;n<s.length;n+=3)e.x=s[n+0],e.y=s[n+1],e.z=s[n+2],e.normalize().multiplyScalar(t),s[n+0]=e.x,s[n+1]=e.y,s[n+2]=e.z}(n),function(){const t=new p.a;for(let n=0;n<s.length;n+=3){t.x=s[n+0],t.y=s[n+1],t.z=s[n+2];const i=h(t)/2/Math.PI+.5,o=(e=t,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5);r.push(i,1-o)}var e;(function(){const t=new p.a,e=new p.a,n=new p.a,i=new p.a,o=new d.a,a=new d.a,l=new d.a;for(let u=0,d=0;u<s.length;u+=9,d+=6){t.set(s[u+0],s[u+1],s[u+2]),e.set(s[u+3],s[u+4],s[u+5]),n.set(s[u+6],s[u+7],s[u+8]),o.set(r[d+0],r[d+1]),a.set(r[d+2],r[d+3]),l.set(r[d+4],r[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=h(i);c(o,d+0,t,p),c(a,d+2,e,p),c(l,d+4,n,p)}})(),function(){for(let t=0;t<r.length;t+=6){const e=r[t+0],n=r[t+2],i=r[t+4],s=Math.max(e,n,i),o=Math.min(e,n,i);s>.9&&o<.1&&(e<.2&&(r[t+0]+=1),n<.2&&(r[t+2]+=1),i<.2&&(r[t+4]+=1))}}()}(),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(s,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(s.slice(),3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(r,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(t){return new XU(t.vertices,t.indices,t.radius,t.details)}}class YU extends XU{constructor(t=1,e=0){super([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],t,e),this.type=\\\\\\\"OctahedronGeometry\\\\\\\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new YU(t.radius,t.detail)}}class $U extends LU{constructor(){super(...arguments),this._geometry=new YU(1),this._quat=new hh.a,this._default_position=new p.a(0,1,0),this._color1=new D.a,this._color2=new D.a}createObject(){return new B.a}buildHelper(){this._geometry.rotateZ(.5*Math.PI),this._material.vertexColors=!0;const t=this._geometry.getAttribute(\\\\\\\"position\\\\\\\"),e=new Float32Array(3*t.count);this._geometry.setAttribute(\\\\\\\"color\\\\\\\",new C.a(e,3)),this._object.geometry=this._geometry,this._object.material=this._material,this._object.matrixAutoUpdate=!1}update(){if(!this.node.pv.position)return;this._object.position.copy(this.node.pv.position).multiplyScalar(-1),this._quat.setFromUnitVectors(this._default_position,this.node.pv.position),this._object.setRotationFromQuaternion(this._quat),this._object.scale.setScalar(this.node.pv.helperSize),this._object.updateMatrix();const t=this._geometry.getAttribute(\\\\\\\"color\\\\\\\");this._color1.copy(this.node.light.color),this._color2.copy(this.node.light.groundColor);for(let e=0,n=t.count;e<n;e++){const i=e<n/2?this._color1:this._color2;t.setXYZ(e,i.r,i.g,i.b)}t.needsUpdate=!0}}const JU={skyColor:new D.a(1,1,1),groundColor:new D.a(0,0,0)};const ZU=new class extends ua{constructor(){super(...arguments),this.skyColor=ha.COLOR(JU.skyColor,{conversion:lo.SRGB_TO_LINEAR}),this.groundColor=ha.COLOR(JU.groundColor,{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(1),this.position=ha.VECTOR3([0,1,0]),this.showHelper=ha.BOOLEAN(0),this.helperSize=ha.FLOAT(1,{visibleIf:{showHelper:1}})}};class KU extends hU{constructor(){super(...arguments),this.paramsConfig=ZU,this._helperController=new SU(this,$U,\\\\\\\"HemisphereLightHelper\\\\\\\")}static type(){return GU.HEMISPHERE}createLight(){const t=new qU;return t.matrixAutoUpdate=!1,t.color.copy(JU.skyColor),t.groundColor.copy(JU.groundColor),t}initializeNode(){this.io.inputs.setCount(0,1),this._helperController.initializeNode()}updateLightParams(){this.light.color=this.pv.skyColor,this.light.groundColor=this.pv.groundColor,this.light.position.copy(this.pv.position),this.light.intensity=this.pv.intensity,this._helperController.update()}}var QU=n(58);class tG extends S.a{constructor(t=1,e=32,n=16,i=0,s=2*Math.PI,r=0,o=Math.PI){super(),this.type=\\\\\\\"SphereGeometry\\\\\\\",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:s,thetaStart:r,thetaLength:o},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const a=Math.min(r+o,Math.PI);let l=0;const c=[],h=new p.a,u=new p.a,d=[],_=[],m=[],f=[];for(let d=0;d<=n;d++){const p=[],g=d/n;let v=0;0==d&&0==r?v=.5/e:d==n&&a==Math.PI&&(v=-.5/e);for(let n=0;n<=e;n++){const a=n/e;h.x=-t*Math.cos(i+a*s)*Math.sin(r+g*o),h.y=t*Math.cos(r+g*o),h.z=t*Math.sin(i+a*s)*Math.sin(r+g*o),_.push(h.x,h.y,h.z),u.copy(h).normalize(),m.push(u.x,u.y,u.z),f.push(a+v,1-g),p.push(l++)}c.push(p)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1],s=c[t][i],o=c[t+1][i],l=c[t+1][i+1];(0!==t||r>0)&&d.push(e,s,l),(t!==n-1||a<Math.PI)&&d.push(s,o,l)}this.setIndex(d),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(_,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(m,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(f,2))}static fromJSON(t){return new tG(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class eG extends LU{constructor(){super(...arguments),this._matrix_scale=new p.a(1,1,1)}createObject(){return new B.a}buildHelper(){this._object.geometry=new tG(1,4,2),this._object.matrixAutoUpdate=!1,this._object.material=this._material}update(){const t=this.node.pv.helperSize;this._matrix_scale.set(t,t,t),this._object.matrix.identity(),this._object.matrix.scale(this._matrix_scale),this._material.color.copy(this.node.light.color)}}class nG extends(wU(ua)){constructor(){super(...arguments),this.light=ha.FOLDER(),this.color=ha.COLOR([1,1,1],{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(1),this.decay=ha.FLOAT(.1),this.distance=ha.FLOAT(100),this.castShadows=ha.BOOLEAN(1),this.shadowRes=ha.VECTOR2([1024,1024],{visibleIf:{castShadows:1}}),this.shadowBias=ha.FLOAT(.001,{visibleIf:{castShadows:1}}),this.shadowNear=ha.FLOAT(1,{visibleIf:{castShadows:1}}),this.shadowFar=ha.FLOAT(100,{visibleIf:{castShadows:1}}),this.showHelper=ha.BOOLEAN(0),this.helperSize=ha.FLOAT(1,{visibleIf:{showHelper:1}})}}const iG=new nG;class sG extends EU{constructor(){super(...arguments),this.paramsConfig=iG,this._helperController=new SU(this,eG,\\\\\\\"PointLightHelper\\\\\\\")}static type(){return GU.POINT}initializeNode(){this._helperController.initializeNode()}createLight(){const t=new QU.a;return t.matrixAutoUpdate=!1,t.castShadow=!0,t.shadow.bias=-.001,t.shadow.mapSize.x=1024,t.shadow.mapSize.y=1024,t.shadow.camera.near=.1,t}updateLightParams(){this.light.color=this.pv.color,this.light.intensity=this.pv.intensity,this.light.decay=this.pv.decay,this.light.distance=this.pv.distance,this._helperController.update()}updateShadowParams(){this.light.castShadow=this.pv.castShadows,this.light.shadow.mapSize.copy(this.pv.shadowRes),this.light.shadow.camera.near=this.pv.shadowNear,this.light.shadow.camera.far=this.pv.shadowFar,this.light.shadow.bias=this.pv.shadowBias}}var rG=n(73);class oG extends LU{constructor(){super(...arguments),this._cone=new Ms.a,this._line_material=new As.a({fog:!1})}createObject(){return new B.a}static buildConeGeometry(){const t=new S.a,e=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,n=1,i=32;t<i;t++,n++){const s=t/i*Math.PI*2,r=n/i*Math.PI*2;e.push(Math.cos(s),Math.sin(s),1,Math.cos(r),Math.sin(r),1)}return t.setAttribute(\\\\\\\"position\\\\\\\",new C.c(e,3)),t}static updateConeObject(t,e){const n=(e.distance?e.distance:1e3)*e.sizeMult,i=n*Math.tan(e.angle);this._matrix_scale.set(i,i,n),t.matrix.identity(),t.matrix.makeRotationX(.5*Math.PI),t.matrix.scale(this._matrix_scale)}buildHelper(){this._cone.geometry=oG.buildConeGeometry(),this._cone.material=this._line_material,this._cone.matrixAutoUpdate=!1,this.object.add(this._cone)}update(){oG.updateConeObject(this._cone,{sizeMult:this.node.pv.helperSize,distance:this.node.light.distance,angle:this.node.light.angle}),this._line_material.color.copy(this.node.light.color)}}oG._matrix_scale=new p.a;class aG extends S.a{constructor(t=1,e=1,n=1,i=8,s=1,r=!1,o=0,a=2*Math.PI){super(),this.type=\\\\\\\"CylinderGeometry\\\\\\\",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:s,openEnded:r,thetaStart:o,thetaLength:a};const l=this;i=Math.floor(i),s=Math.floor(s);const c=[],h=[],u=[],_=[];let m=0;const f=[],g=n/2;let v=0;function y(n){const s=m,r=new d.a,f=new p.a;let y=0;const x=!0===n?t:e,b=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,g*b,0),u.push(0,b,0),_.push(.5,.5),m++;const w=m;for(let t=0;t<=i;t++){const e=t/i*a+o,n=Math.cos(e),s=Math.sin(e);f.x=x*s,f.y=g*b,f.z=x*n,h.push(f.x,f.y,f.z),u.push(0,b,0),r.x=.5*n+.5,r.y=.5*s*b+.5,_.push(r.x,r.y),m++}for(let t=0;t<i;t++){const e=s+t,i=w+t;!0===n?c.push(i,i+1,e):c.push(i+1,i,e),y+=3}l.addGroup(v,y,!0===n?1:2),v+=y}!function(){const r=new p.a,d=new p.a;let y=0;const x=(e-t)/n;for(let l=0;l<=s;l++){const c=[],p=l/s,v=p*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,s=e*a+o,l=Math.sin(s),f=Math.cos(s);d.x=v*l,d.y=-p*n+g,d.z=v*f,h.push(d.x,d.y,d.z),r.set(l,x,f).normalize(),u.push(r.x,r.y,r.z),_.push(e,1-p),c.push(m++)}f.push(c)}for(let t=0;t<i;t++)for(let e=0;e<s;e++){const n=f[e][t],i=f[e+1][t],s=f[e+1][t+1],r=f[e][t+1];c.push(n,i,r),c.push(i,s,r),y+=6}l.addGroup(v,y,0),v+=y}(),!1===r&&(t>0&&y(!0),e>0&&y(!1)),this.setIndex(c),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(h,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(u,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(_,2))}static fromJSON(t){return new aG(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class lG extends aG{constructor(t=1,e=1,n=8,i=1,s=!1,r=0,o=2*Math.PI){super(0,t,e,n,i,s,r,o),this.type=\\\\\\\"ConeGeometry\\\\\\\",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:s,thetaStart:r,thetaLength:o}}static fromJSON(t){return new lG(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class cG{constructor(t){this.node=t}update(){const t=this.node.pv;if(t.tvolumetric){const e=this.object(),n=this.node.light;oG.updateConeObject(e,{sizeMult:t.helperSize,distance:n.distance,angle:n.angle});const i=e.material.uniforms;i.lightColor.value.copy(n.color),i.attenuation.value=t.volAttenuation,i.anglePower.value=t.volAnglePower,this.node.light.add(e)}else this._mesh&&this.node.light.remove(this._mesh)}object(){return this._mesh=this._mesh||this._createMesh()}_createMesh(){const t=new lG(1,1,256,1);t.applyMatrix4((new A.a).makeTranslation(0,-.5,0)),t.applyMatrix4((new A.a).makeRotationX(-Math.PI/2));const e=this._createMaterial(),n=new B.a(t,e);return n.matrixAutoUpdate=!1,n.name=\\\\\\\"Volumetric\\\\\\\",e.uniforms.lightColor.value.set(\\\\\\\"white\\\\\\\"),n}_createMaterial(){return new F({uniforms:{attenuation:{value:5},anglePower:{value:1.2},lightColor:{value:new D.a(\\\\\\\"cyan\\\\\\\")}},vertexShader:\\\\\\\"varying vec3 vNormal;\\\\nvarying vec3 vWorldPosition;\\\\nvarying vec3 vWorldOrigin;\\\\n\\\\nvoid main(){\\\\n\\\\t// compute intensity\\\\n\\\\tvNormal\\\\t\\\\t= normalize( normalMatrix * normal );\\\\n\\\\n\\\\tvec4 worldPosition\\\\t= modelMatrix * vec4( position, 1.0 );\\\\n\\\\tvWorldPosition\\\\t\\\\t= worldPosition.xyz;\\\\n\\\\n\\\\tvec4 worldOrigin\\\\t= modelMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\\\n\\\\tvWorldOrigin\\\\t\\\\t= worldOrigin.xyz;\\\\n\\\\n\\\\t// set gl_Position\\\\n\\\\tgl_Position\\\\t= projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n}\\\\\\\",fragmentShader:\\\\\\\"varying vec3 vNormal;\\\\nvarying vec3 vWorldPosition;\\\\nvarying vec3 vWorldOrigin;\\\\n\\\\nuniform vec3 lightColor;\\\\n\\\\n// uniform vec3 spotPosition;\\\\n\\\\nuniform float attenuation;\\\\nuniform float anglePower;\\\\n\\\\nvoid main(){\\\\n\\\\n\\\\t//////////////////////////////////////////////////////////\\\\n\\\\t// distance attenuation   //\\\\n\\\\t//////////////////////////////////////////////////////////\\\\n\\\\tfloat intensity = distance(vWorldPosition, vWorldOrigin) / attenuation;\\\\n\\\\tintensity = 1.0 - clamp(intensity, 0.0, 1.0);\\\\n\\\\n\\\\t//////////////////////////////////////////////////////////\\\\n\\\\t// intensity on angle   //\\\\n\\\\t//////////////////////////////////////////////////////////\\\\n\\\\tvec3 normal = vec3(vNormal.x, vNormal.y, abs(vNormal.z));\\\\n\\\\tfloat angleIntensity = pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\\\\n\\\\tintensity = intensity * angleIntensity;\\\\n\\\\t// 'gl_FragColor = vec4( lightColor, intensity );\\\\n\\\\n\\\\t//////////////////////////////////////////////////////////\\\\n\\\\t// final color   //\\\\n\\\\t//////////////////////////////////////////////////////////\\\\n\\\\n\\\\t// set the final color\\\\n\\\\tgl_FragColor = vec4( lightColor, intensity);\\\\n}\\\\\\\",transparent:!0,depthWrite:!1})}}class hG extends(wU(ua)){constructor(){super(...arguments),this.light=ha.FOLDER(),this.color=ha.COLOR([1,1,1],{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(1),this.angle=ha.FLOAT(45,{range:[0,180]}),this.penumbra=ha.FLOAT(.1),this.decay=ha.FLOAT(.1,{range:[0,1]}),this.distance=ha.FLOAT(100,{range:[0,100]}),this.showHelper=ha.BOOLEAN(0),this.helperSize=ha.FLOAT(1,{visibleIf:{showHelper:1}}),this.shadow=ha.FOLDER(),this.castShadow=ha.BOOLEAN(1),this.shadowAutoUpdate=ha.BOOLEAN(1,{visibleIf:{castShadow:1}}),this.shadowUpdateOnNextRender=ha.BOOLEAN(0,{visibleIf:{castShadow:1,shadowAutoUpdate:0}}),this.shadowRes=ha.VECTOR2([256,256],{visibleIf:{castShadow:1}}),this.shadowBias=ha.FLOAT(.001,{visibleIf:{castShadow:1},range:[-.01,.01],rangeLocked:[!1,!1]}),this.shadowNear=ha.FLOAT(.1,{visibleIf:{castShadow:1},range:[0,100],rangeLocked:[!0,!1]}),this.shadowFar=ha.FLOAT(100,{visibleIf:{castShadow:1},range:[0,100],rangeLocked:[!0,!1]}),this.shadowRadius=ha.FLOAT(0,{visibleIf:{castShadow:1},range:[0,10],rangeLocked:[!0,!1]}),this.volumetric=ha.FOLDER(),this.tvolumetric=ha.BOOLEAN(0),this.volAttenuation=ha.FLOAT(5,{range:[0,10],rangeLocked:[!0,!1]}),this.volAnglePower=ha.FLOAT(10,{range:[0,20],rangeLocked:[!0,!1]})}}const uG=new hG;class dG extends EU{constructor(){super(...arguments),this.paramsConfig=uG,this._helperController=new SU(this,oG,\\\\\\\"SpotLightHelper\\\\\\\"),this._volumetricController=new cG(this)}static type(){return GU.SPOT}initializeNode(){this._helperController.initializeNode()}createLight(){const t=new rG.a;return t.matrixAutoUpdate=!1,t.castShadow=!0,t.shadow.bias=-.001,t.shadow.mapSize.x=256,t.shadow.mapSize.y=256,t.shadow.camera.near=.1,this._target_target=t.target,this._target_target.name=\\\\\\\"SpotLight Default Target\\\\\\\",this._target_target.matrixAutoUpdate=!1,this.object.add(this._target_target),t}updateLightParams(){this.light.color=this.pv.color,this.light.intensity=this.pv.intensity,this.light.angle=this.pv.angle*(Math.PI/180),this.light.penumbra=this.pv.penumbra,this.light.decay=this.pv.decay,this.light.distance=this.pv.distance,this._helperController.update(),this._volumetricController.update()}updateShadowParams(){this.light.castShadow=this.pv.castShadow,this.light.shadow.autoUpdate=this.pv.shadowAutoUpdate,this.light.shadow.needsUpdate=this.pv.shadowUpdateOnNextRender,this.light.shadow.mapSize.copy(this.pv.shadowRes),this.light.shadow.camera.near=this.pv.shadowNear,this.light.shadow.camera.far=this.pv.shadowFar,this.light.shadow.bias=this.pv.shadowBias,this.light.shadow.radius=this.pv.shadowRadius}}let pG;const _G=function(){return void 0===pG&&(pG=new(window.AudioContext||window.webkitAudioContext)),pG},mG=new p.a,fG=new hh.a,gG=new p.a,vG=new p.a;class yG extends Q.a{constructor(){super(),this.type=\\\\\\\"AudioListener\\\\\\\",this.context=_G(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Dm}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(mG,fG,gG),vG.set(0,0,-1).applyQuaternion(fG),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(mG.x,t),e.positionY.linearRampToValueAtTime(mG.y,t),e.positionZ.linearRampToValueAtTime(mG.z,t),e.forwardX.linearRampToValueAtTime(vG.x,t),e.forwardY.linearRampToValueAtTime(vG.y,t),e.forwardZ.linearRampToValueAtTime(vG.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(mG.x,mG.y,mG.z),e.setOrientation(vG.x,vG.y,vG.z,n.x,n.y,n.z)}}class xG extends(wU(ua)){constructor(){super(...arguments),this.audio=ha.FOLDER(),this.soundOn=ha.BOOLEAN(1),this.masterVolume=ha.FLOAT(1,{range:[0,1],rangeLocked:[!0,!1]})}}const bG=new xG;class wG extends cU{constructor(){super(...arguments),this.paramsConfig=bG,this.hierarchyController=new MU(this),this.transformController=new AU(this),this.flags=new Di(this)}static type(){return Ig.AUDIO_LISTENER}createObject(){const t=new yG;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.soundOn],(()=>this.pv.soundOn?\\\\\\\"on\\\\\\\":\\\\\\\"off\\\\\\\"))}))}))}cook(){this.transformController.update(),this._updatePositionalAudio(),this.cookController.endCook()}_updatePositionalAudio(){const t=this.pv.soundOn?this.pv.masterVolume:0;this.object.setMasterVolume(t)}}class TG extends Ms.a{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new S.a;n.setAttribute(\\\\\\\"position\\\\\\\",new C.c(e,3)),n.setAttribute(\\\\\\\"color\\\\\\\",new C.c([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new As.a({vertexColors:!0,toneMapped:!1})),this.type=\\\\\\\"AxesHelper\\\\\\\"}setColors(t,e,n){const i=new D.a,s=this.geometry.attributes.color.array;return i.set(t),i.toArray(s,0),i.toArray(s,3),i.set(e),i.toArray(s,6),i.toArray(s,9),i.set(n),i.toArray(s,12),i.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}var AG;!function(t){t.TOGETHER=\\\\\\\"translate + rotate together\\\\\\\",t.SEPARATELY=\\\\\\\"translate + rotate separately\\\\\\\"}(AG||(AG={}));const MG=[AG.TOGETHER,AG.SEPARATELY];const EG=new class extends ua{constructor(){super(...arguments),this.object0=ha.OPERATOR_PATH(\\\\\\\"/geo1\\\\\\\",{nodeSelection:{context:ts.OBJ}}),this.object1=ha.OPERATOR_PATH(\\\\\\\"/geo2\\\\\\\",{nodeSelection:{context:ts.OBJ}}),this.mode=ha.INTEGER(MG.indexOf(AG.TOGETHER),{menu:{entries:MG.map(((t,e)=>({name:t,value:e})))}}),this.blend=ha.FLOAT(0,{visibleIf:{mode:MG.indexOf(AG.TOGETHER)},range:[0,1],rangeLocked:[!1,!1]}),this.blendT=ha.FLOAT(0,{visibleIf:{mode:MG.indexOf(AG.SEPARATELY)},range:[0,1],rangeLocked:[!1,!1]}),this.blendR=ha.FLOAT(0,{visibleIf:{mode:MG.indexOf(AG.SEPARATELY)},range:[0,1],rangeLocked:[!1,!1]})}};class SG extends cU{constructor(){super(...arguments),this.paramsConfig=EG,this.hierarchyController=new MU(this),this.flags=new Di(this),this._helper=new TG(1),this._t0=new p.a,this._q0=new hh.a,this._s0=new p.a,this._t1=new p.a,this._q1=new hh.a,this._s1=new p.a}static type(){return\\\\\\\"blend\\\\\\\"}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.io.inputs.setCount(0),this.addPostDirtyHook(\\\\\\\"blend_on_dirty\\\\\\\",(()=>{this.cookController.cookMainWithoutInputs()})),this._updateHelperHierarchy(),this.flags.display.onUpdate((()=>{this._updateHelperHierarchy()}))}_updateHelperHierarchy(){this.flags.display.active()?this.object.add(this._helper):this.object.remove(this._helper)}cook(){const t=this.p.object0.found_node_with_context(ts.OBJ),e=this.p.object1.found_node_with_context(ts.OBJ);t&&e&&this._blend(t.object,e.object),this.cookController.endCook()}_blend(t,e){const n=MG[this.pv.mode];switch(n){case AG.TOGETHER:return this._blend_together(t,e);case AG.SEPARATELY:return this._blend_separately(t,e)}os.unreachable(n)}_blend_together(t,e){this._decompose_matrices(t,e),this._object.position.copy(this._t0).lerp(this._t1,this.pv.blend),this._object.quaternion.copy(this._q0).slerp(this._q1,this.pv.blend),this._object.matrixAutoUpdate||this._object.updateMatrix()}_blend_separately(t,e){this._decompose_matrices(t,e),this._object.position.copy(this._t0).lerp(this._t1,this.pv.blendT),this._object.quaternion.copy(this._q0).slerp(this._q1,this.pv.blendR),this._object.matrixAutoUpdate||this._object.updateMatrix()}_decompose_matrices(t,e){t.matrixWorld.decompose(this._t0,this._q0,this._s0),e.matrixWorld.decompose(this._t1,this._q1,this._s1)}}var CG={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform float h;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 sum = vec4( 0.0 );\\\\n\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = sum;\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const NG={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform float v;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 sum = vec4( 0.0 );\\\\n\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\\\\n\\\\t\\\\t\\\\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = sum;\\\\n\\\\n\\\\t\\\\t}\\\\\\\"},LG=1/256e3;class OG{constructor(t){this._renderTargetBlur=this._createRenderTarget(t),this._camera=this._createCamera(),this._blurPlane=this._createBlurPlane(),this._horizontalBlurMaterial=new F(CG),this._horizontalBlurMaterial.depthTest=!1,this._verticalBlurMaterial=new F(NG),this._verticalBlurMaterial.depthTest=!1}setSize(t,e){this._renderTargetBlur.setSize(t,e)}_createRenderTarget(t){const e=new K(t.x,t.y);return e.texture.generateMipmaps=!1,e}_createCamera(){const t=new ot.a(-.5,.5,.5,-.5,0,1);return t.position.z=.5,t}_createBlurPlane(){const t=new L(1,1);return new B.a(t)}applyBlur(t,e,n,i){const s=Math.max(this._renderTargetBlur.width,this._renderTargetBlur.height);this._horizontalBlurMaterial.uniforms.tDiffuse.value=t.texture,this._horizontalBlurMaterial.uniforms.h.value=n*s*LG,this._blurPlane.material=this._horizontalBlurMaterial,e.setRenderTarget(this._renderTargetBlur),e.render(this._blurPlane,this._camera),this._verticalBlurMaterial.uniforms.tDiffuse.value=this._renderTargetBlur.texture,this._verticalBlurMaterial.uniforms.v.value=i*s*LG,this._blurPlane.material=this._verticalBlurMaterial,e.setRenderTarget(t),e.render(this._blurPlane,this._camera)}}var PG;!function(t){t.ON_RENDER=\\\\\\\"On Every Render\\\\\\\",t.MANUAL=\\\\\\\"Manual\\\\\\\"}(PG||(PG={}));const RG=[PG.ON_RENDER,PG.MANUAL];class IG extends(wU(ua)){constructor(){super(...arguments),this.shadow=ha.FOLDER(),this.dist=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1]}),this.planeSize=ha.VECTOR2([1,1]),this.shadowRes=ha.VECTOR2([256,256]),this.blur=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1]}),this.tblur2=ha.BOOLEAN(1),this.blur2=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1],visibleIf:{tblur2:1}}),this.darkness=ha.FLOAT(1),this.opacity=ha.FLOAT(1),this.showHelper=ha.BOOLEAN(0),this.updateMode=ha.INTEGER(RG.indexOf(PG.ON_RENDER),{callback:t=>{BG.PARAM_CALLBACK_update_updateMode(t)},menu:{entries:RG.map(((t,e)=>({name:t,value:e})))}}),this.update=ha.BUTTON(null,{callback:t=>{BG.PARAM_CALLBACK_updateManual(t)},visibleIf:{updateMode:RG.indexOf(PG.MANUAL)}}),this.scene=ha.FOLDER(),this.include=ha.STRING(\\\\\\\"\\\\\\\"),this.exclude=ha.STRING(\\\\\\\"\\\\\\\"),this.updateObjectsList=ha.BUTTON(null,{callback:t=>{BG.PARAM_CALLBACK_updateObjectsList(t)}}),this.printResolveObjectsList=ha.BUTTON(null,{callback:t=>{BG.PARAM_CALLBACK_printResolveObjectsList(t)}})}}const FG=new IG,DG=new d.a(256,256);class BG extends cU{constructor(){super(...arguments),this.paramsConfig=FG,this.hierarchyController=new MU(this),this.flags=new Di(this),this._renderTarget=this._createRenderTarget(DG),this._coreRenderBlur=this._createCoreRenderBlur(DG),this._includedObjects=[],this._includedAncestors=[],this._excludedObjects=[],this.transformController=new AU(this),this._darknessUniform={value:1},this._emptyOnBeforeRender=()=>{},this._emptyRenderHook=()=>{},this._on_object_before_render_bound=this._update.bind(this),this._initialVisibilityState=new WeakMap}static type(){return\\\\\\\"contactShadow\\\\\\\"}_createRenderTarget(t){const e=new K(t.x,t.y);return e.texture.generateMipmaps=!1,e}_createCoreRenderBlur(t){return new OG(t)}createObject(){const t=new Fn.a;this._shadowGroup=new Fn.a,t.add(this._shadowGroup),this._shadowGroup.name=\\\\\\\"shadowGroup\\\\\\\";const e=new L(1,1).rotateX(-Math.PI/2),n=e.getAttribute(\\\\\\\"uv\\\\\\\").array;for(let t of[1,3,5,7])n[t]=1-n[t];return this._planeMaterial=new lt.a({map:this._renderTarget.texture,opacity:1,transparent:!0,depthWrite:!1}),this._plane=new B.a(e,this._planeMaterial),this._plane.renderOrder=1,this._plane.matrixAutoUpdate=!1,this._shadowGroup.add(this._plane),this._createDepthCamera(this._shadowGroup),this._createMaterials(),t}initializeNode(){this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this._updateShadowGroupVisibility(),this._updateHelperVisibility(),this.flags.display.onUpdate((()=>{this._updateShadowGroupVisibility(),this._updateHelperVisibility()}))}async cook(){this.transformController.update(),this._updateRenderHook(),this._updateHelperVisibility(),this._updateObjectsList(),this._planeMaterial&&(this._planeMaterial.opacity=this.pv.opacity),this._darknessUniform.value=this.pv.darkness,this._plane&&this._shadowCamera&&this._helper&&(this._plane.scale.x=this.pv.planeSize.x,this._plane.scale.z=this.pv.planeSize.y,this._plane.updateMatrix(),this._shadowCamera.left=-this.pv.planeSize.x/2,this._shadowCamera.right=this.pv.planeSize.x/2,this._shadowCamera.bottom=-this.pv.planeSize.y/2,this._shadowCamera.top=this.pv.planeSize.y/2,this._shadowCamera.far=this.pv.dist,this._shadowCamera.updateProjectionMatrix(),this._helper.update()),this._renderTarget.width==this.pv.shadowRes.x&&this._renderTarget.height==this.pv.shadowRes.y||this._planeMaterial&&(this._renderTarget=this._createRenderTarget(this.pv.shadowRes),this._coreRenderBlur=this._createCoreRenderBlur(this.pv.shadowRes),this._planeMaterial.map=this._renderTarget.texture),this.cookController.endCook()}_createDepthCamera(t){this._shadowCamera=new ot.a(-.5,.5,.5,-.5,0,1),this._shadowCamera.rotation.x=Math.PI/2,t.add(this._shadowCamera),this._helper=new zU(this._shadowCamera),this._helper.visible=!1,this._shadowCamera.add(this._helper)}_createMaterials(){this._depthMaterial=new Sn,this._depthMaterial.onBeforeCompile=t=>{t.uniforms.darkness=this._darknessUniform,t.fragmentShader=`\\\\n\\\\t\\\\t\\\\tuniform float darkness;\\\\n\\\\t\\\\t\\\\t${t.fragmentShader.replace(\\\\\\\"gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\\\\\\",\\\\\\\"gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );\\\\\\\")}\\\\n\\\\t\\\\t`},this._depthMaterial.depthTest=!1,this._depthMaterial.depthWrite=!1}_renderShadow(t,e){if(!this._helper)return;if(!this._depthMaterial)return;if(!this._shadowCamera)return;if(!this._helper)return;if(!this._plane)return;const n=this._plane.onBeforeRender,i=e.background,s=this._helper.visible;e.background=null,this._plane.onBeforeRender=this._emptyOnBeforeRender,this._helper.visible=!1,e.overrideMaterial=this._depthMaterial,this._initVisibility(e),t.setRenderTarget(this._renderTarget),t.render(e,this._shadowCamera),this._coreRenderBlur.applyBlur(this._renderTarget,t,this.pv.blur,this.pv.blur),this.pv.tblur2&&this._coreRenderBlur.applyBlur(this._renderTarget,t,this.pv.blur2,this.pv.blur2),this._restoreVisibility(e),e.overrideMaterial=null,this._helper.visible=s,t.setRenderTarget(null),e.background=i,this._plane.onBeforeRender=n}_updateShadowGroupVisibility(){this._shadowGroup&&(this.flags.display.active()?this._shadowGroup.visible=!0:this._shadowGroup.visible=!1)}_updateHelperVisibility(){this._helper&&(this.flags.display.active()&&this.pv.showHelper?this._helper.visible=!0:this._helper.visible=!1)}_updateRenderHook(){const t=RG[this.pv.updateMode];switch(t){case PG.ON_RENDER:return this._addRenderHook();case PG.MANUAL:return this._removeRenderHook()}os.unreachable(t)}_addRenderHook(){this._plane&&this._plane.onBeforeRender!=this._on_object_before_render_bound&&(this._plane.onBeforeRender=this._on_object_before_render_bound)}_removeRenderHook(){this._plane&&this._plane.onBeforeRender!=this._emptyRenderHook&&(this._plane.onBeforeRender=this._emptyRenderHook)}_update(t,e,n,i,s,r){t&&e?this._renderShadow(t,e):console.log(\\\\\\\"no renderer or scene\\\\\\\")}_updateManual(){const t=li.renderersController.firstRenderer();if(!t)return void console.log(\\\\\\\"no renderer found\\\\\\\");const e=this.scene().threejsScene();this._renderShadow(t,e)}static PARAM_CALLBACK_update_updateMode(t){t._updateRenderHook()}static PARAM_CALLBACK_updateManual(t){t._updateManual()}static PARAM_CALLBACK_updateObjectsList(t){t._updateObjectsList()}_updateObjectsList(){\\\\\\\"\\\\\\\"!=this.pv.include?this._includedObjects=this.scene().objectsByMask(this.pv.include):this._includedObjects=[];const t=new Map;for(let e of this._includedObjects)e.traverseAncestors((e=>{t.set(e.uuid,e)}));this._includedAncestors=[],t.forEach(((t,e)=>{this._includedAncestors.push(t)})),\\\\\\\"\\\\\\\"!=this.pv.exclude?this._excludedObjects=this.scene().objectsByMask(this.pv.exclude):this._excludedObjects=[]}static PARAM_CALLBACK_printResolveObjectsList(t){t._printResolveObjectsList()}_printResolveObjectsList(){console.log(\\\\\\\"included objects:\\\\\\\"),console.log(this._includedObjects),console.log(\\\\\\\"included parents:\\\\\\\"),console.log(this._includedAncestors),console.log(\\\\\\\"excluded objects:\\\\\\\"),console.log(this._excludedObjects)}_initVisibility(t){this._includedObjects.length>0?t.traverse((t=>{this._initialVisibilityState.set(t,t.visible),t.visible=!1})):(this._storeObjectsVisibility(this._includedObjects),this._storeObjectsVisibility(this._includedAncestors),this._storeObjectsVisibility(this._excludedObjects)),this._setObjectsVisibility(this._includedObjects,!0),this._setObjectsVisibility(this._includedAncestors,!0),this._setObjectsVisibility(this._excludedObjects,!1)}_storeObjectsVisibility(t){for(let e of t)this._initialVisibilityState.set(e,e.visible)}_setObjectsVisibility(t,e){for(let n of t)n.visible=e}_restoreVisibility(t){this._includedObjects.length>0?t.traverse((t=>{const e=this._initialVisibilityState.get(t);e&&(t.visible=e)})):(this._restoreObjectsVisibility(this._includedObjects),this._restoreObjectsVisibility(this._includedAncestors),this._restoreObjectsVisibility(this._excludedObjects))}_restoreObjectsVisibility(t){for(let e of t){const t=this._initialVisibilityState.get(e);t&&(e.visible=t)}}}const zG=\\\\\\\"display\\\\\\\";class kG{constructor(t){this.node=t,this._children_uuids_dict=new Map,this._children_length=0,this._sop_group=this._create_sop_group()}_create_sop_group(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}sopGroup(){return this._sop_group}set_sop_group_name(){this._sop_group.name=`${this.node.name()}:sop_group`}displayNodeControllerCallbacks(){return{onDisplayNodeRemove:()=>{this.remove_children()},onDisplayNodeSet:()=>{setTimeout((()=>{this.request_display_node_container()}),0)},onDisplayNodeUpdate:()=>{this.request_display_node_container()}}}initializeNode(){var t;this.node.object.add(this.sopGroup()),this.node.nameController.add_post_set_fullPath_hook(this.set_sop_group_name.bind(this)),this._create_sop_group();const e=null===(t=this.node.flags)||void 0===t?void 0:t.display;e&&e.onUpdate((()=>{this._updateSopGroupHierarchy(),e.active()&&this.request_display_node_container()}))}_updateSopGroupHierarchy(){var t;if(null===(t=this.node.flags)||void 0===t?void 0:t.display){const t=this.sopGroup();this.usedInScene()?(t.visible=!0,this.node.object.add(t),t.updateMatrix()):(t.visible=!1,this.node.object.remove(t))}}usedInScene(){var t,e;const n=this.node.params.has(zG),i=this.node.params.boolean(zG),s=this.node.usedInScene(),r=(null===(e=null===(t=this.node.flags)||void 0===t?void 0:t.display)||void 0===e?void 0:e.active())||!1;return s&&r&&(!n||i)}async request_display_node_container(){this.node.scene().loadingController.loaded()&&this.usedInScene()&&await this._set_content_under_sop_group()}remove_children(){if(0==this._sop_group.children.length)return;let t;for(;t=this._sop_group.children[0];)this._sop_group.remove(t);this._children_uuids_dict.clear(),this._children_length=0}async _set_content_under_sop_group(){var t;const e=this.node.displayNodeController.displayNode();if(e&&(null===(t=e.parent())||void 0===t?void 0:t.graphNodeId())==this.node.graphNodeId()){const t=(await e.compute()).coreContent();if(t){const e=t.objects();let n=e.length!=this._children_length;if(!n)for(let t of e)this._children_uuids_dict.get(t.uuid)||(n=!0);if(n){this.remove_children();for(let t of e)this._sop_group.add(t),t.updateMatrix(),this._children_uuids_dict.set(t.uuid,!0);this._children_length=e.length}return}}this.remove_children()}}class UG extends(wU(ua)){constructor(){super(...arguments),this.display=ha.BOOLEAN(1),this.renderOrder=ha.INTEGER(0,{range:[0,10],rangeLocked:[!0,!1]})}}const GG=new UG;class VG extends cU{constructor(){super(...arguments),this.paramsConfig=GG,this.hierarchyController=new MU(this),this.transformController=new AU(this),this.flags=new Di(this),this.childrenDisplayController=new kG(this),this.displayNodeController=new Fm(this,this.childrenDisplayController.displayNodeControllerCallbacks()),this._children_controller_context=ts.SOP,this._onChildAddBound=this._onChildAdd.bind(this)}static type(){return Ig.GEO}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.lifecycle.add_on_child_add_hook(this._onChildAddBound),this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this.childrenDisplayController.initializeNode()}isDisplayNodeCooking(){if(this.flags.display.active()){const t=this.displayNodeController.displayNode();return!!t&&t.isDirty()}return!1}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}_onChildAdd(t){var e,n;this.scene().loadingController.loaded()&&1==this.children().length&&(null===(n=null===(e=t.flags)||void 0===e?void 0:e.display)||void 0===n||n.set(!0))}cook(){this.transformController.update(),this.object.visible=this.pv.display,this.object.renderOrder=this.pv.renderOrder,this.cookController.endCook()}}class HG extends(wU(ua)){}const jG=new HG;class WG extends cU{constructor(){super(...arguments),this.paramsConfig=jG,this.hierarchyController=new MU(this),this.transformController=new AU(this),this.flags=new Di(this),this._helper=new TG(1)}static type(){return\\\\\\\"null\\\\\\\"}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this._updateHelperHierarchy(),this._helper.matrixAutoUpdate=!1,this.flags.display.onUpdate((()=>{this._updateHelperHierarchy()}))}_updateHelperHierarchy(){this.flags.display.active()?(this.object.add(this._helper),this._helper.updateMatrix()):this.object.remove(this._helper)}cook(){this.transformController.update(),this.cookController.endCook()}}const qG=new class extends ua{constructor(){super(...arguments),this.center=ha.VECTOR3([0,0,0]),this.longitude=ha.FLOAT(0,{range:[0,360]}),this.latitude=ha.FLOAT(0,{range:[-180,180]}),this.depth=ha.FLOAT(1,{range:[0,10]})}},XG=\\\\\\\"_cook_main_without_inputs_when_dirty\\\\\\\",YG=new p.a(0,1,0),$G=new p.a(-1,0,0);class JG extends cU{constructor(){super(...arguments),this.paramsConfig=qG,this.hierarchyController=new MU(this),this.flags=new Di(this),this._helper=new TG(1),this._cook_main_without_inputs_when_dirty_bound=this._cook_main_without_inputs_when_dirty.bind(this),this._centerMatrix=new A.a,this._longitudeMatrix=new A.a,this._latitudeMatrix=new A.a,this._depthMatrix=new A.a,this._fullMatrix=new A.a,this._decomposed={t:new p.a,q:new hh.a,s:new p.a}}static type(){return\\\\\\\"polarTransform\\\\\\\"}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.dirtyController.hasHook(XG)||this.dirtyController.addPostDirtyHook(XG,this._cook_main_without_inputs_when_dirty_bound),this._updateHelperHierarchy(),this._helper.matrixAutoUpdate=!1,this.flags.display.onUpdate((()=>{this._updateHelperHierarchy()}))}_updateHelperHierarchy(){this.flags.display.active()?(this.object.add(this._helper),this._helper.updateMatrix()):this.object.remove(this._helper)}async _cook_main_without_inputs_when_dirty(){await this.cookController.cookMainWithoutInputs()}cook(){const t=this.object;this._centerMatrix.identity(),this._longitudeMatrix.identity(),this._latitudeMatrix.identity(),this._depthMatrix.identity(),this._centerMatrix.makeTranslation(this.pv.center.x,this.pv.center.y,this.pv.center.z),this._longitudeMatrix.makeRotationAxis(YG,Object(On.e)(this.pv.longitude)),this._latitudeMatrix.makeRotationAxis($G,Object(On.e)(this.pv.latitude)),this._depthMatrix.makeTranslation(0,0,this.pv.depth),this._fullMatrix.copy(this._centerMatrix).multiply(this._longitudeMatrix).multiply(this._latitudeMatrix).multiply(this._depthMatrix),this._fullMatrix.decompose(this._decomposed.t,this._decomposed.q,this._decomposed.s),t.position.copy(this._decomposed.t),t.quaternion.copy(this._decomposed.q),t.scale.copy(this._decomposed.s),t.updateMatrix(),this.cookController.endCook()}}class ZG{constructor(t){this._scene=t,this._data={}}data(t){this._scene.nodesController.reset_node_context_signatures();const e=rV.dispatch_node(this._scene.root()),n=e.data(),i=e.ui_data();return this._data={properties:{frame:this._scene.frame()||Nl.START_FRAME,maxFrame:this._scene.maxFrame(),maxFrameLocked:this._scene.timeController.maxFrameLocked(),realtimeState:this._scene.timeController.realtimeState(),mainCameraNodePath:this._scene.camerasController.mainCameraNodePath(),versions:t},root:n,ui:i},this._data}static sanitize_string(t){return t=t.replace(/'/g,\\\\\\\"'\\\\\\\"),t=ss.escapeLineBreaks(t)}}class KG{constructor(t){this._node=t}data(t={}){var e,n,i,s,r,o,a;this.is_root()||this._node.scene().nodesController.register_node_context_signature(this._node),this._data={type:this._node.type()};const l=this.nodes_data(t);Object.keys(l).length>0&&(this._data.nodes=l);const c=this.params_data();if(Object.keys(c).length>0&&(this._data.params=c),!this.is_root()){this._node.io.inputs.maxInputsCountOverriden()&&(this._data.maxInputsCount=this._node.io.inputs.maxInputsCount());const t=this.inputs_data();t.length>0&&(this._data.inputs=t);const e=this.connection_points_data();e&&(this._data.connection_points=e)}if(this._node.flags){const t={};(this._node.flags.hasBypass()||this._node.flags.hasDisplay()||this._node.flags.hasOptimize())&&(this._node.flags.hasBypass()&&(null===(e=this._node.flags.bypass)||void 0===e?void 0:e.active())&&(t.bypass=this._node.flags.bypass.active()),this._node.flags.hasDisplay()&&(!(null===(n=this._node.flags.display)||void 0===n?void 0:n.active())&&(null===(i=this._node.parent())||void 0===i?void 0:i.displayNodeController)||(t.display=null===(s=this._node.flags.display)||void 0===s?void 0:s.active())),this._node.flags.hasOptimize()&&(null===(r=this._node.flags.optimize)||void 0===r?void 0:r.active())&&(t.optimize=null===(o=this._node.flags.optimize)||void 0===o?void 0:o.active())),Object.keys(t).length>0&&(this._data.flags=t)}if(this._node.childrenAllowed()){const t=null===(a=this._node.childrenController)||void 0===a?void 0:a.selection;if(t&&this._node.children().length>0){const e=[],n={};for(let e of t.nodes())n[e.graphNodeId()]=!0;for(let t of this._node.children())t.graphNodeId()in n&&e.push(t);const i=e.map((t=>t.name()));i.length>0&&(this._data.selection=i)}}if(this._node.io.inputs.overrideClonedStateAllowed()){const t=this._node.io.inputs.clonedStateOverriden();t&&(this._data.cloned_state_overriden=t)}if(this._node.persisted_config){const t=this._node.persisted_config.toJSON();t&&(this._data.persisted_config=t)}return this.add_custom(),this._data}ui_data(t={}){const e=this.ui_data_without_children(),n=this._node.children();return n.length>0&&(e.nodes={},n.forEach((n=>{const i=rV.dispatch_node(n);e.nodes[n.name()]=i.ui_data(t)}))),e}ui_data_without_children(){const t={};if(!this.is_root()){const e=this._node.uiData;t.pos=e.position().toArray();const n=e.comment();n&&(t.comment=ZG.sanitize_string(n))}return t}is_root(){return null===this._node.parent()&&this._node.graphNodeId()==this._node.root().graphNodeId()}inputs_data(){const t=[];return this._node.io.inputs.inputs().forEach(((e,n)=>{var i;if(e){const s=this._node.io.connections.inputConnection(n);if(this._node.io.inputs.hasNamedInputs()){const r=s.output_index,o=null===(i=e.io.outputs.namedOutputConnectionPoints()[r])||void 0===i?void 0:i.name();o&&(t[n]={index:n,node:e.name(),output:o})}else t[n]=e.name()}})),t}connection_points_data(){if(this._node.io.has_connection_points_controller&&this._node.io.connection_points.initialized()&&(this._node.io.inputs.hasNamedInputs()||this._node.io.outputs.hasNamedOutputs())){const t={};if(this._node.io.inputs.hasNamedInputs()){t.in=[];for(let e of this._node.io.inputs.namedInputConnectionPoints())e&&t.in.push(e.toJSON())}if(this._node.io.outputs.hasNamedOutputs()){t.out=[];for(let e of this._node.io.outputs.namedOutputConnectionPoints())e&&t.out.push(e.toJSON())}return t}}params_data(){const t={};for(let e of this._node.params.names){const n=this._node.params.get(e);if(n&&!n.parent_param){const e=rV.dispatch_param(n);if(e.required()){const i=e.data();t[n.name()]=i}}}return t}nodes_data(t={}){const e={};for(let n of this._node.children()){const i=rV.dispatch_node(n);e[n.name()]=i.data(t)}return e}add_custom(){}}class QG{constructor(t){this._param=t,this._complex_data={}}required(){const t=this._param.options.isSpare()&&!this._param.parent_param,e=!this._param.isDefault();return t||e||this._param.options.hasOptionsOverridden()}data(){if(this._param.parent_param)throw console.warn(\\\\\\\"no component should be saved\\\\\\\"),\\\\\\\"no component should be saved\\\\\\\";return this._require_data_complex()?this._data_complex():this._data_simple()}_data_simple(){return this._param.rawInputSerialized()}_data_complex(){if(this._complex_data={},this._param.options.isSpare()&&!this._param.parent_param&&(this._complex_data.type=this._param.type(),this._complex_data.default_value=this._param.defaultValueSerialized(),this._complex_data.options=this._param.options.current()),this._param.isDefault()||(this._complex_data.raw_input=this._param.rawInputSerialized()),this._param.options.hasOptionsOverridden()){const t={},e=this._param.options.overriddenOptions();for(let n of Object.keys(e)){const i=e[n];m.isString(i)||m.isNumber(i)?t[n]=i:t[n]=JSON.stringify(i)}this._complex_data.overriden_options=t}return this._complex_data}_require_data_complex(){return!!this._param.options.isSpare()||!!this._param.options.hasOptionsOverridden()}add_main(){}}class tV extends QG{add_main(){if(!this._require_data_complex())return this._param.rawInputSerialized();this._complex_data.raw_input=this._param.rawInputSerialized()}}class eV extends QG{add_main(){let t=this._param.rawInput();if(t=ZG.sanitize_string(t),!this._require_data_complex())return t;this._complex_data.raw_input=t}}class nV extends QG{add_main(){let t=this._param.rawInput();if(t=ZG.sanitize_string(t),!this._require_data_complex())return t;this._complex_data.raw_input=t}}class iV extends QG{add_main(){if(!this._require_data_complex())return this._param.rawInputSerialized();this._complex_data.raw_input=this._param.rawInputSerialized()}}class sV extends KG{nodes_data(t={}){return t.showPolyNodesData?super.nodes_data(t):{}}ui_data(t={}){return t.showPolyNodesData?super.ui_data(t):this.ui_data_without_children()}}class rV{static dispatch_node(t){return t.polyNodeController?new sV(t):new KG(t)}static dispatch_param(t){return t instanceof ro?new tV(t):t instanceof fo?new eV(t):t instanceof Mo?new nV(t):t instanceof Ao?new iV(t):new QG(t)}}class oV{constructor(){this._objects=[],this._objects_with_geo=[],this.touch()}timestamp(){return this._timestamp}touch(){const t=li.performance.performanceManager();this._timestamp=t.now(),this.reset()}reset(){this._bounding_box=void 0,this._core_geometries=void 0,this._core_objects=void 0}clone(){const t=new oV;if(this._objects){const e=[];for(let t of this._objects)e.push(br.clone(t));t.setObjects(e)}return t}setObjects(t){this._objects=t,this._objects_with_geo=t.filter((t=>null!=t.geometry)),this.touch()}objects(){return this._objects}objectsWithGeo(){return this._objects_with_geo}coreObjects(){return this._core_objects=this._core_objects||this._create_core_objects()}_create_core_objects(){return this._objects?this._objects.map(((t,e)=>new br(t,e))):[]}objectsData(){return this._objects?this._objects.map((t=>this._objectData(t))):[]}_objectData(t){let e=0;return t.geometry&&(e=fr.pointsCount(t.geometry)),{type:Os(t.constructor),name:t.name,children_count:t.children.length,points_count:e}}geometries(){const t=[];for(let e of this.coreObjects()){const n=e.object().geometry;n&&t.push(n)}return t}coreGeometries(){return this._core_geometries=this._core_geometries||this._createCoreGeometries()}_createCoreGeometries(){const t=[];for(let e of this.geometries())t.push(new fr(e));return t}static geometryFromObject(t){return t.isMesh||t.isLine||t.isPoints?t.geometry:null}faces(){const t=[];for(let e of this.objectsWithGeo())if(e.geometry){const n=new fr(e.geometry).faces();for(let i of n)i.applyMatrix4(e.matrix),t.push(i)}return t}points(){return this.coreGeometries().map((t=>t.points())).flat()}pointsCount(){return f.sum(this.coreGeometries().map((t=>t.pointsCount())))}totalPointsCount(){if(this._objects){let t=0;for(let e of this._objects)e.traverse((e=>{const n=e.geometry;n&&(t+=fr.pointsCount(n))}));return t}return 0}pointsFromGroup(t){if(t){const e=ss.indices(t),n=this.points();return f.compact(e.map((t=>n[t])))}return this.points()}static _fromObjects(t){const e=new oV;return e.setObjects(t),e}objectsFromGroup(t){return this.coreObjectsFromGroup(t).map((t=>t.object()))}coreObjectsFromGroup(t){if(\\\\\\\"\\\\\\\"!==(t=t.trim())){const e=parseInt(t);return m.isNaN(e)?this.coreObjects().filter((e=>ss.matchMask(t,e.name()))):f.compact([this.coreObjects()[e]])}return this.coreObjects()}boundingBox(t=!1){return this._bounding_box=t?this._computeBoundingBox():this._bounding_box||this._computeBoundingBox()}center(){const t=new p.a;return this.boundingBox().getCenter(t),t}size(){const t=new p.a;return this.boundingBox().getSize(t),t}_computeBoundingBox(){let t;if(this._objects)for(let e of this._objects){const n=e.geometry;n&&(n.computeBoundingBox(),t?t.expandByObject(e):n.boundingBox&&(t=n.boundingBox.clone()))}return t=t||new Ry.a(new p.a(-1,-1,-1),new p.a(1,1,1)),t}computeVertexNormals(){for(let t of this.coreObjects())t.computeVertexNormals()}hasAttrib(t){let e;return null!=(e=this.coreGeometries()[0])&&e.hasAttrib(t)}attribType(t){const e=this.coreGeometries()[0];return null!=e?e.attribType(t):null}objectAttribType(t){const e=this.coreObjects()[0];return null!=e?e.attribType(t):null}renameAttrib(t,e,n){switch(n){case js.ATTRIB_CLASS.VERTEX:if(this.hasAttrib(t)&&this._objects)for(let n of this._objects)n.traverse((n=>{const i=oV.geometryFromObject(n);if(i){new fr(i).renameAttrib(t,e)}}));break;case js.ATTRIB_CLASS.OBJECT:if(this.hasAttrib(t)&&this._objects)for(let n of this._objects)n.traverse((n=>{new br(n,0).renameAttrib(t,e)}))}}attribNames(){let t;return null!=(t=this.coreGeometries()[0])?t.attribNames():[]}objectAttribNames(){let t;return null!=(t=this.coreObjects()[0])?t.attribNames():[]}attribNamesMatchingMask(t){const e=ss.attribNames(t),n=[];for(let t of this.attribNames())for(let i of e)if(ss.matchMask(t,i))n.push(t);else{t==Xs.remapName(i)&&n.push(t)}return f.uniq(n)}attribSizes(){let t;return null!=(t=this.coreGeometries()[0])?t.attribSizes():{}}objectAttribSizes(){let t;return null!=(t=this.coreObjects()[0])?t.attribSizes():{}}attribSize(t){let e;return null!=(e=this.coreGeometries()[0])?e.attribSize(t):0}addNumericVertexAttrib(t,e,n){null==n&&(n=Xs.default_value(e));for(let i of this.coreGeometries())i.addNumericAttrib(t,e,n)}static clone(t){const e=new Fn.a;return t.children.forEach((t=>{const n=br.clone(t);e.add(n)})),e}}class aV extends zl{static context(){return ts.SOP}cook(t,e){}createCoreGroupFromObjects(t){const e=new oV;return e.setObjects(t),e}createCoreGroupFromGeometry(t,e=Ns.MESH){const n=aV.createObject(t,e);return this.createCoreGroupFromObjects([n])}createObject(t,e,n){return aV.createObject(t,e,n)}static createObject(t,e,n){this.createIndexIfNone(t);const i=new(0,Ls[e])(t,n=n||js.MATERIALS[e].clone());return i.castShadow=!0,i.receiveShadow=!0,i.frustumCulled=!1,i.matrixAutoUpdate=!1,i}createIndexIfNone(t){aV.createIndexIfNone(t)}static createIndexIfNone(t){pr.createIndexIfNone(t)}}var lV;!function(t){t.FROM_SET_CORE_GROUP=\\\\\\\"from set_core_group\\\\\\\",t.FROM_SET_GROUP=\\\\\\\"from set_group\\\\\\\",t.FROM_SET_OBJECTS=\\\\\\\"from set_objects\\\\\\\",t.FROM_SET_OBJECT=\\\\\\\"from set_object\\\\\\\",t.FROM_SET_GEOMETRIES=\\\\\\\"from set_geometries\\\\\\\",t.FROM_SET_GEOMETRY=\\\\\\\"from set_geometry\\\\\\\"}(lV||(lV={}));const cV=\\\\\\\"input geometry\\\\\\\",hV=[cV,cV,cV,cV];class uV extends aa{constructor(){super(...arguments),this.flags=new Ui(this)}static context(){return ts.SOP}static displayedInputNames(){return hV}initializeBaseNode(){this.flags.display.set(!1),this.flags.display.onUpdate((()=>{if(this.flags.display.active()){const t=this.parent();t&&t.displayNodeController&&t.displayNodeController.setDisplayNode(this)}})),this.io.outputs.setHasOneOutput()}setCoreGroup(t){this._setContainer(t,lV.FROM_SET_CORE_GROUP)}setObject(t){this._setContainerObjects([t],lV.FROM_SET_OBJECT)}setObjects(t){this._setContainerObjects(t,lV.FROM_SET_OBJECTS)}setGeometry(t,e=Ns.MESH){const n=this.createObject(t,e);this._setContainerObjects([n],lV.FROM_SET_GEOMETRY)}setGeometries(t,e=Ns.MESH){const n=[];let i;for(let s of t)i=this.createObject(s,e),n.push(i);this._setContainerObjects(n,lV.FROM_SET_GEOMETRIES)}_setContainerObjects(t,e){const n=this.containerController.container().coreContent()||new oV;n.setObjects(t),n.touch(),this._setContainer(n)}static createObject(t,e,n){return aV.createObject(t,e,n)}createObject(t,e,n){return uV.createObject(t,e,n)}static createIndexIfNone(t){aV.createIndexIfNone(t)}_createIndexIfNone(t){uV.createIndexIfNone(t)}}const dV=new class extends ua{};class pV extends uV{constructor(){super(...arguments),this.paramsConfig=dV}static type(){return ns.OUTPUT}initializeNode(){this.io.inputs.setCount(1),this.io.outputs.setHasNoOutput(),this.io.inputs.initInputsClonedState(Qi.NEVER)}cook(t){this.setCoreGroup(t[0])}}class _V extends uV{constructor(){super(...arguments),this.childrenDisplayController=new fV(this),this.displayNodeController=new Fm(this,this.childrenDisplayController.displayNodeControllerCallbacks()),this._children_controller_context=ts.SOP}initializeBaseNode(){super.initializeBaseNode(),this.childrenDisplayController.initializeNode(),this.cookController.disallowInputsEvaluation()}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}async cook(t){const e=this.childrenDisplayController.output_node();if(e){const t=(await e.compute()).coreContent();t?this.setCoreGroup(t):e.states.error.active()?this.states.error.set(e.states.error.message()):this.setObjects([])}else this.states.error.set(\\\\\\\"no output node found inside subnet\\\\\\\")}}const mV={dependsOnDisplayNode:!0};class fV{constructor(t,e=mV){this.node=t,this.options=e,this._output_node_needs_update=!0}dispose(){var t;null===(t=this._graph_node)||void 0===t||t.dispose()}displayNodeControllerCallbacks(){return{onDisplayNodeRemove:()=>{this.node.setDirty()},onDisplayNodeSet:()=>{this.node.setDirty()},onDisplayNodeUpdate:()=>{this.node.setDirty()}}}output_node(){return this._output_node_needs_update&&this._update_output_node(),this._output_node}initializeNode(){var t;const e=null===(t=this.node.flags)||void 0===t?void 0:t.display;e&&e.onUpdate((()=>{e.active()&&this.node.setDirty()})),this.node.lifecycle.add_on_child_add_hook((()=>{this._output_node_needs_update=!0,this.node.setDirty()})),this.node.lifecycle.add_on_child_remove_hook((()=>{this._output_node_needs_update=!0,this.node.setDirty()}))}_update_output_node(){const t=this.node.nodesByType(pV.type())[0];null!=this._output_node&&null!=t&&this._output_node.graphNodeId()==t.graphNodeId()||(this._graph_node&&this._output_node&&this._graph_node.removeGraphInput(this._output_node),this._output_node=t,this._output_node&&this.options.dependsOnDisplayNode&&(this._graph_node=this._graph_node||this._create_graph_node(),this._graph_node.addGraphInput(this._output_node)))}_create_graph_node(){const t=new Mi(this.node.scene(),\\\\\\\"subnetChildrenDisplayController\\\\\\\");return t.addPostDirtyHook(\\\\\\\"subnetChildrenDisplayController\\\\\\\",(()=>{this.node.setDirty()})),t}}function gV(t,e){const n=new class extends ua{constructor(){super(...arguments),this.template=ha.OPERATOR_PATH(\\\\\\\"../template\\\\\\\"),this.debug=ha.BUTTON(null,{callback:t=>{i.PARAM_CALLBACK_debug(t)}})}};class i extends _V{constructor(){super(...arguments),this.paramsConfig=n,this.polyNodeController=new xV(this,e)}static type(){return t}static PARAM_CALLBACK_debug(t){t._debug()}_debug(){this.polyNodeController.debug(this.p.template)}}return i}const vV=gV(\\\\\\\"poly\\\\\\\",{nodeContext:ts.SOP,inputs:[0,4]});class yV extends vV{}class xV{constructor(t,e){this.node=t,this._definition=e}initializeNode(){this.init_inputs(),this.node.params.onParamsCreated(\\\\\\\"poly_node_init\\\\\\\",(()=>{this.create_params_from_definition()})),this.node.lifecycle.add_on_create_hook((()=>{this.create_params_from_definition(),this.createChildNodesFromDefinition()}))}init_inputs(){const t=this._definition.inputs;t&&this.node.io.inputs.setCount(t[0],t[1])}create_params_from_definition(){const t=this._definition.params;if(t){for(let e of t)e.options=e.options||{},e.options.spare=!0;this.node.params.updateParams({toAdd:t})}}createChildNodesFromDefinition(){const t=this._definition.nodes;if(!t)return;const e=this.node.scene().loadingController.loaded();e&&this.node.scene().loadingController.markAsLoading();const n=new Jl({}),i=new Vl(this.node);i.create_nodes(n,t);const s=this._definition.ui;s&&i.process_nodes_ui_data(n,s),e&&this.node.scene().loadingController.markAsLoaded()}debug(t){const e=t.found_node();if(e){const t=rV.dispatch_node(e),n=t.data({showPolyNodesData:!0}),i=t.ui_data({showPolyNodesData:!0}),s={nodeContext:e.context(),inputs:[0,0],params:[],nodes:n.nodes,ui:i.nodes};console.log(JSON.stringify(s))}}static createNodeClass(t,e,n){switch(e){case ts.SOP:return gV(t,n);case ts.OBJ:return bV(t,n)}}}function bV(t,e){const n=new class extends ua{constructor(){super(...arguments),this.display=ha.BOOLEAN(1),this.template=ha.OPERATOR_PATH(\\\\\\\"../template\\\\\\\"),this.debug=ha.BUTTON(null,{callback:t=>{i.PARAM_CALLBACK_debug(t)}})}};class i extends cU{constructor(){super(...arguments),this.paramsConfig=n,this.hierarchyController=new MU(this),this.flags=new Di(this),this.childrenDisplayController=new kG(this),this.displayNodeController=new Fm(this,this.childrenDisplayController.displayNodeControllerCallbacks()),this._children_controller_context=ts.SOP,this.polyNodeController=new xV(this,e)}static type(){return t}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.childrenDisplayController.initializeNode()}isDisplayNodeCooking(){if(this.flags.display.active()){const t=this.displayNodeController.displayNode();return!!t&&t.isDirty()}return!1}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}cook(){this.object.visible=this.pv.display,this.cookController.endCook()}static PARAM_CALLBACK_debug(t){t._debug()}_debug(){this.polyNodeController.debug(this.p.template)}}return i}const wV=bV(\\\\\\\"poly\\\\\\\",{nodeContext:ts.OBJ});class TV extends wV{}class AV extends Q.a{constructor(t){super(),this.type=\\\\\\\"Audio\\\\\\\",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=\\\\\\\"empty\\\\\\\",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=\\\\\\\"audioNode\\\\\\\",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=\\\\\\\"mediaNode\\\\\\\",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=\\\\\\\"mediaStreamNode\\\\\\\",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=\\\\\\\"buffer\\\\\\\",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn(\\\\\\\"THREE.Audio: Audio is already playing.\\\\\\\");if(!1===this.hasPlaybackControl)return void console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\"),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}const MV=new p.a,EV=new hh.a,SV=new p.a,CV=new p.a;class NV extends AV{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel=\\\\\\\"HRTF\\\\\\\",this.panner.connect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(MV,EV,SV),CV.set(0,0,1).applyQuaternion(EV);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(MV.x,t),e.positionY.linearRampToValueAtTime(MV.y,t),e.positionZ.linearRampToValueAtTime(MV.z,t),e.orientationX.linearRampToValueAtTime(CV.x,t),e.orientationY.linearRampToValueAtTime(CV.y,t),e.orientationZ.linearRampToValueAtTime(CV.z,t)}else e.setPosition(MV.x,MV.y,MV.z),e.setOrientation(CV.x,CV.y,CV.z)}}class LV extends CU.a{constructor(t,e=1,n=16,i=2){const s=new S.a,r=new Float32Array(3*(3*(n+2*i)+3));s.setAttribute(\\\\\\\"position\\\\\\\",new C.a(r,3));const o=new As.a({color:65280});super(s,[new As.a({color:16776960}),o]),this.audio=t,this.range=e,this.divisionsInnerAngle=n,this.divisionsOuterAngle=i,this.type=\\\\\\\"PositionalAudioHelper\\\\\\\",this.update()}update(){const t=this.audio,e=this.range,n=this.divisionsInnerAngle,i=this.divisionsOuterAngle,s=On.e(t.panner.coneInnerAngle),r=On.e(t.panner.coneOuterAngle),o=s/2,a=r/2;let l,c,h=0,u=0;const d=this.geometry,p=d.attributes.position;function _(t,n,i,s){const r=(n-t)/i;for(p.setXYZ(h,0,0,0),u++,l=t;l<n;l+=r)c=h+u,p.setXYZ(c,Math.sin(l)*e,0,Math.cos(l)*e),p.setXYZ(c+1,Math.sin(Math.min(l+r,n))*e,0,Math.cos(Math.min(l+r,n))*e),p.setXYZ(c+2,0,0,0),u+=3;d.addGroup(h,u,s),h+=u,u=0}d.clearGroups(),_(-a,-o,i,0),_(-o,o,n,1),_(o,a,i,0),p.needsUpdate=!0,s===r&&(this.material[0].visible=!1)}dispose(){this.geometry.dispose(),this.material[0].dispose(),this.material[1].dispose()}}class OV extends Vf.a{constructor(t){super(t)}load(t,e,n,i){const s=this,r=new Gf.a(this.manager);r.setResponseType(\\\\\\\"arraybuffer\\\\\\\"),r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(t,(function(n){try{const t=n.slice(0);_G().decodeAudioData(t,(function(t){e(t)}))}catch(e){i?i(e):console.error(e),s.manager.itemError(t)}}),n,i)}}var PV;!function(t){t.MP3=\\\\\\\"mp3\\\\\\\",t.WAV=\\\\\\\"wav\\\\\\\"}(PV||(PV={}));PV.MP3,PV.WAV;class RV extends $g{async load(){const t=new OV(this.loadingManager),e=await this._urlToLoad();return new Promise((n=>{t.load(e,(function(t){n(t)}))}))}}var IV;!function(t){t.LINEAR=\\\\\\\"linear\\\\\\\",t.INVERSE=\\\\\\\"inverse\\\\\\\",t.EXPONENTIAL=\\\\\\\"exponential\\\\\\\"}(IV||(IV={}));const FV=[IV.LINEAR,IV.INVERSE,IV.EXPONENTIAL];class DV extends(wU(ua)){constructor(){super(...arguments),this.audio=ha.FOLDER(),this.listener=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ,types:[Ig.AUDIO_LISTENER]}}),this.url=ha.STRING(\\\\\\\"\\\\\\\",{fileBrowse:{type:[Rr.AUDIO]}}),this.volume=ha.FLOAT(1),this.loop=ha.BOOLEAN(1,{separatorBefore:!0}),this.loopStart=ha.FLOAT(0,{visibleIf:{loop:1}}),this.loopEnd=ha.FLOAT(0,{visibleIf:{loop:1},separatorAfter:!0}),this.refDistance=ha.FLOAT(10,{range:[0,10],rangeLocked:[!0,!1]}),this.rolloffFactor=ha.FLOAT(10,{range:[0,10],rangeLocked:[!0,!1]}),this.maxDistance=ha.FLOAT(100,{range:[.001,100],rangeLocked:[!0,!1]}),this.distanceModel=ha.INTEGER(FV.indexOf(IV.LINEAR),{menu:{entries:FV.map(((t,e)=>({name:t,value:e})))}}),this.coneInnerAngle=ha.FLOAT(180,{range:[0,360],rangeLocked:[!0,!0]}),this.coneOuterAngle=ha.FLOAT(230,{range:[0,360],rangeLocked:[!0,!0]}),this.coneOuterGain=ha.FLOAT(.1,{range:[0,1],rangeLocked:[!0,!0]}),this.autoplay=ha.BOOLEAN(1),this.showHelper=ha.BOOLEAN(0),this.helperSize=ha.FLOAT(1,{range:[0,10],rangeLocked:[!0,!1],visibleIf:{showHelper:!0}}),this.play=ha.BUTTON(null,{callback:t=>{zV.PARAM_CALLBACK_play(t)}}),this.pause=ha.BUTTON(null,{callback:t=>{zV.PARAM_CALLBACK_pause(t)}})}}const BV=new DV;class zV extends cU{constructor(){super(...arguments),this.paramsConfig=BV,this.hierarchyController=new MU(this),this.transformController=new AU(this),this.flags=new Di(this)}static type(){return Ig.POSITIONAL_AUDIO}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this._updateHelperHierarchy(),this.flags.display.onUpdate((()=>{this._updateHelperHierarchy()})),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.url],(()=>{const t=this.p.url.rawInput();if(t){const e=t.split(\\\\\\\"/\\\\\\\");return e[e.length-1]}return\\\\\\\"\\\\\\\"}))}))}))}_updateHelperHierarchy(){this._helper&&(this.flags.display.active()?this.object.add(this._helper):this.object.remove(this._helper))}cook(){this.transformController.update(),this._updatePositionalAudio(),this.cookController.endCook()}async _updatePositionalAudio(){this.p.listener.isDirty()&&await this.p.listener.compute();const t=this.pv.url;if(this._loadedUrl!=t)try{await this._createPositionalAudio()}catch(t){this.states.error.set(`error when creating audio: ${t}`)}this._positionalAudio&&(this._positionalAudio.setVolume(this.pv.volume),this._positionalAudio.setLoop(this.pv.loop),this._positionalAudio.setLoopStart(this.pv.loopStart),this._positionalAudio.setLoopEnd(this.pv.loopEnd),this._positionalAudio.setRefDistance(this.pv.refDistance),this._positionalAudio.setRolloffFactor(this.pv.rolloffFactor),this._positionalAudio.setMaxDistance(this.pv.maxDistance),this._positionalAudio.setDistanceModel(FV[this.pv.distanceModel]),this._positionalAudio.setDirectionalCone(this.pv.coneInnerAngle,this.pv.coneOuterAngle,this.pv.coneOuterGain),this.pv.showHelper&&(this._helper=this._helper||this._createHelper(this._positionalAudio),this.object.add(this._helper)),this._helper&&(this._helper.visible=this.pv.showHelper,this._helper.range=this.pv.helperSize,this._helper.update()))}_createHelper(t){const e=new LV(t);return e.matrixAutoUpdate=!1,e}async _createPositionalAudio(){const t=this.pv.listener.nodeWithContext(ts.OBJ);if(!t)return;const e=t.object;this._positionalAudio&&(this._positionalAudio.source&&(this._positionalAudio.stop(),this._positionalAudio.disconnect()),this.object.remove(this._positionalAudio),this._positionalAudio=void 0),this._helper&&(this._helper.dispose(),this._helper=void 0),this._positionalAudio=new NV(e),this._positionalAudio.matrixAutoUpdate=!1;const n=new RV(this.pv.url,this.scene(),this),i=await n.load();this._loadedUrl=this.pv.url,this._positionalAudio.autoplay=this.pv.autoplay,this._positionalAudio.setBuffer(i),this.object.add(this._positionalAudio)}isPlaying(){return!!this._positionalAudio&&this._positionalAudio.isPlaying}static PARAM_CALLBACK_play(t){t.PARAM_CALLBACK_play()}static PARAM_CALLBACK_pause(t){t.PARAM_CALLBACK_pause()}PARAM_CALLBACK_play(){this._positionalAudio&&(this.isPlaying()||this._positionalAudio.play())}PARAM_CALLBACK_pause(){this._positionalAudio&&this.isPlaying()&&this._positionalAudio.pause()}}var kV;!function(t){t.ON_RENDER=\\\\\\\"On Every Render\\\\\\\",t.MANUAL=\\\\\\\"Manual\\\\\\\"}(kV||(kV={}));const UV=[kV.ON_RENDER,kV.MANUAL];const GV=new class extends ua{constructor(){super(...arguments),this.object=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ},dependentOnFoundNode:!1,computeOnDirty:!0,callback:t=>{VV.PARAM_CALLBACK_update_resolved_object(t)}}),this.pointIndex=ha.INTEGER(0,{range:[0,100]}),this.updateMode=ha.INTEGER(UV.indexOf(kV.ON_RENDER),{callback:t=>{VV.PARAM_CALLBACK_update_updateMode(t)},menu:{entries:UV.map(((t,e)=>({name:t,value:e})))}}),this.update=ha.BUTTON(null,{callback:t=>{VV.PARAM_CALLBACK_update(t)},visibleIf:{updateMode:UV.indexOf(kV.MANUAL)}})}};class VV extends cU{constructor(){super(...arguments),this.paramsConfig=GV,this.hierarchyController=new MU(this),this.flags=new Di(this),this._helper=new TG(1),this._found_point_post=new p.a,this._on_object_before_render_bound=this._update.bind(this)}static type(){return\\\\\\\"rivet\\\\\\\"}createObject(){const t=new B.a;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode(),this.addPostDirtyHook(\\\\\\\"rivet_on_dirty\\\\\\\",(()=>{this.cookController.cookMainWithoutInputs()})),this._updateHelperHierarchy(),this.flags.display.onUpdate((()=>{this._updateHelperHierarchy()}))}_updateHelperHierarchy(){this.flags.display.active()?this.object.add(this._helper):this.object.remove(this._helper)}async cook(){await this._update_resolved_object(),this._update_render_hook(),this.cookController.endCook()}_update_render_hook(){const t=UV[this.pv.updateMode];switch(t){case kV.ON_RENDER:return this._add_render_hook();case kV.MANUAL:return this._remove_render_hook()}os.unreachable(t)}_add_render_hook(){this.object.onBeforeRender=this._on_object_before_render_bound,this.object.frustumCulled=!1}_remove_render_hook(){this.object.onBeforeRender=()=>{}}_update(t,e,n,i,s,r){const o=this._resolved_object();if(o){const t=o.geometry;if(t){const e=t.attributes.position;if(e){const t=e.array;this._found_point_post.fromArray(t,3*this.pv.pointIndex),o.updateWorldMatrix(!0,!1),o.localToWorld(this._found_point_post),this.object.matrix.makeTranslation(this._found_point_post.x,this._found_point_post.y,this._found_point_post.z)}}}}static PARAM_CALLBACK_update_resolved_object(t){t._update_resolved_object()}async _update_resolved_object(){this.p.object.isDirty()&&await this.p.object.compute();const t=this.p.object.found_node();if(t)if(t.context()==ts.OBJ&&t.type()==VG.type()){const e=t;this._resolved_sop_group=e.childrenDisplayController.sopGroup()}else this.states.error.set(\\\\\\\"found node is not a geo node\\\\\\\")}_resolved_object(){if(!this._resolved_sop_group)return;const t=this._resolved_sop_group.children[0];return t||void 0}static PARAM_CALLBACK_update_updateMode(t){t._update_render_hook()}static PARAM_CALLBACK_update(t){t._update()}}class HV extends(Pa(Na(wa(ya(_a(ua)))))){}const jV=new HV;class WV extends cU{constructor(){super(...arguments),this.paramsConfig=jV,this.hierarchyController=new MU(this),this.SceneAutoUpdateController=new ma(this),this.sceneBackgroundController=new xa(this),this.SceneEnvController=new Ta(this),this.sceneFogController=new La(this),this.sceneMaterialOverrideController=new Ra(this)}static type(){return\\\\\\\"scene\\\\\\\"}createObject(){const t=new vs;return t.matrixAutoUpdate=!1,t}initializeNode(){this.hierarchyController.initializeNode()}cook(){this.SceneAutoUpdateController.update(),this.sceneBackgroundController.update(),this.SceneEnvController.update(),this.sceneFogController.update(),this.sceneMaterialOverrideController.update(),this.cookController.endCook()}}class qV{constructor(t,e,n){this._camera_node_id=t,this._controls_node=e,this._controls=n,this._updateRequired=this._controls_node.updateRequired()}updateRequired(){return this._updateRequired}get camera_node_id(){return this._camera_node_id}get controls(){return this._controls}get controls_node(){return this._controls_node}is_equal(t){return t.camera_node_id==this._camera_node_id&&t.controls_node.graphNodeId()==this._controls_node.graphNodeId()}}const XV=\\\\\\\"controls\\\\\\\";class YV{constructor(t){this.node=t,this._applied_controls_by_element_id=new Map,this._controls_node=null}controls_param(){return this.node.params.has(XV)?this.node.params.get(XV):null}async controls_node(){const t=this.node.p.controls,e=t.rawInput();if(e&&\\\\\\\"\\\\\\\"!=e){t.isDirty()&&await t.compute();const e=t.value.node();if(e){if(ms.includes(e.type()))return e;this.node.states.error.set(\\\\\\\"found node is not of a camera control type\\\\\\\")}else this.node.states.error.set(\\\\\\\"no node has been found\\\\\\\")}return null}async update_controls(){const t=await this.controls_node();t&&this._controls_node!=t&&this._dispose_control_refs(),this._controls_node=t}async apply_controls(t){const e=t.canvas();if(!e)return;const n=await this.controls_node();if(n){this._controlsEndEventName=n.endEventName();const i=n.controls_id();let s=!1,r=this._applied_controls_by_element_id.get(e.id);if(r&&r.get(i)&&(s=!0),!s){r=new Map,this._applied_controls_by_element_id.set(e.id,r),r.set(i,n);const s=await n.apply_controls(this.node.object,t);if(!s)return;const o=new qV(this.node.graphNodeId(),n,s);return this.set_controls_events(s),o}}}_dispose_control_refs(){this._applied_controls_by_element_id.forEach(((t,e)=>{this._dispose_controls_for_element_id(e)})),this._applied_controls_by_element_id.clear(),this._controlsEndEventName=void 0}_dispose_controls_for_element_id(t){const e=this._applied_controls_by_element_id.get(t);e&&e.forEach(((e,n)=>{e.disposeControlsForHtmlElementId(t)})),this._applied_controls_by_element_id.delete(t)}async dispose_controls(t){this._dispose_controls_for_element_id(t.id)}set_controls_events(t){const e=UH[this.node.pv.updateFromControlsMode];switch(e){case kH.ON_END:return this._set_controls_events_to_update_on_end(t);case kH.ALWAYS:return this._set_controls_events_to_update_always(t);case kH.NEVER:return this._reset(t)}os.unreachable(e)}_reset(t){this.controls_change_listener&&(t.removeEventListener(\\\\\\\"change\\\\\\\",this.controls_change_listener),this.controls_change_listener=void 0),this.controls_end_listener&&this._controlsEndEventName&&(t.removeEventListener(this._controlsEndEventName,this.controls_end_listener),this.controls_end_listener=void 0)}_set_controls_events_to_update_on_end(t){this._reset(t),this._controlsEndEventName&&(this.controls_end_listener=()=>{this.node.update_transform_params_from_object()},t.addEventListener(this._controlsEndEventName,this.controls_end_listener))}_set_controls_events_to_update_always(t){this._reset(t),this.controls_change_listener=()=>{this.node.update_transform_params_from_object()},t.addEventListener(\\\\\\\"change\\\\\\\",this.controls_change_listener)}}function $V(t){return class extends t{constructor(){super(...arguments),this.layer=ha.INTEGER(0,{range:[0,31],rangeLocked:[!0,!0]})}}}class JV{constructor(t){this.node=t}update(){const t=this.node.object;t.layers.set(0),t.layers.enable(this.node.params.integer(\\\\\\\"layer\\\\\\\"))}}const ZV={callback:t=>{$H.PARAM_CALLBACK_reset_effects_composer(t)}};function KV(t){return class extends t{constructor(){super(...arguments),this.doPostProcess=ha.BOOLEAN(0),this.postProcessNode=ha.NODE_PATH(\\\\\\\"\\\\\\\",{visibleIf:{doPostProcess:1},nodeSelection:{types:[es.POST]},...ZV})}}}class QV{constructor(t){this.node=t,this._composers_by_canvas_id={},this.node.p.postProcessNode?this._add_param_dirty_hook():this.node.params.onParamsCreated(\\\\\\\"post process add param dirty hook\\\\\\\",(()=>{this._add_param_dirty_hook()}))}_add_param_dirty_hook(){this.node.p.postProcessNode.addPostDirtyHook(\\\\\\\"on_post_node_dirty\\\\\\\",(()=>{this.reset()}))}render(t,e){const n=this.composer(t);n&&(e&&n.setSize(e.x,e.y),n.render())}reset(){const t=Object.keys(this._composers_by_canvas_id);for(let e of t)delete this._composers_by_canvas_id[e]}composer(t){return this._composers_by_canvas_id[t.id]=this._composers_by_canvas_id[t.id]||this._create_composer(t)}_create_composer(t){const e=this.node.renderController.renderer(t);if(e){const n=this.node.renderController.resolved_scene||this.node.scene().threejsScene(),i=this.node.object,s=this.node.p.postProcessNode.value.node();if(s){if(s.type()==es.POST){const r=s,o=this.node.renderController.canvas_resolution(t);return r.effectsComposerController.createEffectsComposer({renderer:e,scene:n,camera:i,resolution:o,requester:this.node,camera_node:this.node})}this.node.states.error.set(\\\\\\\"found node is not a post process node\\\\\\\")}else this.node.states.error.set(\\\\\\\"no post node found\\\\\\\")}}}class tH extends aa{constructor(){super(...arguments),this.flags=new Pi(this)}static context(){return ts.ROP}initializeBaseNode(){this.dirtyController.addPostDirtyHook(\\\\\\\"cook_immediately\\\\\\\",(()=>{this.cookController.cookMainWithoutInputs()}))}cook(){this.cookController.endCook()}}var eH,nH,iH,sH;!function(t){t.CSS2D=\\\\\\\"CSS2DRenderer\\\\\\\",t.CSS3D=\\\\\\\"CSS3DRenderer\\\\\\\",t.WEBGL=\\\\\\\"WebGLRenderer\\\\\\\"}(eH||(eH={})),function(t){t.Linear=\\\\\\\"Linear\\\\\\\",t.sRGB=\\\\\\\"sRGB\\\\\\\",t.Gamma=\\\\\\\"Gamma\\\\\\\",t.RGBE=\\\\\\\"RGBE\\\\\\\",t.LogLuv=\\\\\\\"LogLuv\\\\\\\",t.RGBM7=\\\\\\\"RGBM7\\\\\\\",t.RGBM16=\\\\\\\"RGBM16\\\\\\\",t.RGBD=\\\\\\\"RGBD\\\\\\\"}(nH||(nH={})),(sH=iH||(iH={}))[sH.Linear=w.U]=\\\\\\\"Linear\\\\\\\",sH[sH.sRGB=w.ld]=\\\\\\\"sRGB\\\\\\\",sH[sH.Gamma=w.J]=\\\\\\\"Gamma\\\\\\\",sH[sH.RGBE=w.gc]=\\\\\\\"RGBE\\\\\\\",sH[sH.LogLuv=w.bb]=\\\\\\\"LogLuv\\\\\\\",sH[sH.RGBM7=w.lc]=\\\\\\\"RGBM7\\\\\\\",sH[sH.RGBM16=w.kc]=\\\\\\\"RGBM16\\\\\\\",sH[sH.RGBD=w.fc]=\\\\\\\"RGBD\\\\\\\";const rH=[nH.Linear,nH.sRGB,nH.Gamma,nH.RGBE,nH.LogLuv,nH.RGBM7,nH.RGBM16,nH.RGBD],oH=[iH.Linear,iH.sRGB,iH.Gamma,iH.RGBE,iH.LogLuv,iH.RGBM7,iH.RGBM16,iH.RGBD],aH=iH.sRGB;var lH,cH,hH;!function(t){t.No=\\\\\\\"No\\\\\\\",t.Linear=\\\\\\\"Linear\\\\\\\",t.Reinhard=\\\\\\\"Reinhard\\\\\\\",t.Cineon=\\\\\\\"Cineon\\\\\\\",t.ACESFilmic=\\\\\\\"ACESFilmic\\\\\\\"}(lH||(lH={})),(hH=cH||(cH={}))[hH.No=w.vb]=\\\\\\\"No\\\\\\\",hH[hH.Linear=w.ab]=\\\\\\\"Linear\\\\\\\",hH[hH.Reinhard=w.vc]=\\\\\\\"Reinhard\\\\\\\",hH[hH.Cineon=w.m]=\\\\\\\"Cineon\\\\\\\",hH[hH.ACESFilmic=w.a]=\\\\\\\"ACESFilmic\\\\\\\";const uH=[lH.No,lH.Linear,lH.Reinhard,lH.Cineon,lH.ACESFilmic],dH=[cH.No,cH.Linear,cH.Reinhard,cH.Cineon,cH.ACESFilmic],pH=cH.ACESFilmic,_H=uH.map(((t,e)=>({name:t,value:dH[e]})));var mH;!function(t){t.HIGH=\\\\\\\"highp\\\\\\\",t.MEDIUM=\\\\\\\"mediump\\\\\\\",t.LOW=\\\\\\\"lowp\\\\\\\"}(mH||(mH={}));const fH=[mH.HIGH,mH.MEDIUM,mH.LOW];var gH;!function(t){t.HIGH=\\\\\\\"high-performance\\\\\\\",t.LOW=\\\\\\\"low-power\\\\\\\",t.DEFAULT=\\\\\\\"default\\\\\\\"}(gH||(gH={}));const vH=[gH.HIGH,gH.LOW,gH.DEFAULT];var yH,xH,bH;!function(t){t.Basic=\\\\\\\"Basic\\\\\\\",t.PCF=\\\\\\\"PCF\\\\\\\",t.PCFSoft=\\\\\\\"PCFSoft\\\\\\\",t.VSM=\\\\\\\"VSM\\\\\\\"}(yH||(yH={})),(bH=xH||(xH={}))[bH.Basic=w.k]=\\\\\\\"Basic\\\\\\\",bH[bH.PCF=w.Fb]=\\\\\\\"PCF\\\\\\\",bH[bH.PCFSoft=w.Gb]=\\\\\\\"PCFSoft\\\\\\\",bH[bH.VSM=w.gd]=\\\\\\\"VSM\\\\\\\";const wH=[yH.Basic,yH.PCF,yH.PCFSoft,yH.VSM],TH=[xH.Basic,xH.PCF,xH.PCFSoft,xH.VSM],AH=(w.k,w.Fb,w.Gb,w.gd,xH.PCFSoft),MH={alpha:!1,precision:mH.HIGH,premultipliedAlpha:!0,antialias:!1,stencil:!0,preserveDrawingBuffer:!1,powerPreference:gH.DEFAULT,depth:!0,logarithmicDepthBuffer:!1};const EH=new class extends ua{constructor(){super(...arguments),this.tprecision=ha.BOOLEAN(0),this.precision=ha.INTEGER(fH.indexOf(mH.HIGH),{visibleIf:{tprecision:1},menu:{entries:fH.map(((t,e)=>({value:e,name:t})))}}),this.tpowerPreference=ha.BOOLEAN(0),this.powerPreference=ha.INTEGER(vH.indexOf(gH.DEFAULT),{visibleIf:{tpowerPreference:1},menu:{entries:vH.map(((t,e)=>({value:e,name:t})))}}),this.alpha=ha.BOOLEAN(1),this.premultipliedAlpha=ha.BOOLEAN(1),this.antialias=ha.BOOLEAN(1),this.stencil=ha.BOOLEAN(1),this.depth=ha.BOOLEAN(1),this.logarithmicDepthBuffer=ha.BOOLEAN(0),this.toneMapping=ha.INTEGER(pH,{menu:{entries:_H}}),this.toneMappingExposure=ha.FLOAT(1,{range:[0,2]}),this.outputEncoding=ha.INTEGER(aH,{menu:{entries:rH.map(((t,e)=>({name:t,value:oH[e]})))}}),this.physicallyCorrectLights=ha.BOOLEAN(1),this.sortObjects=ha.BOOLEAN(1),this.tpixelRatio=ha.BOOLEAN(0),this.pixelRatio=ha.INTEGER(2,{visibleIf:{tpixelRatio:!0},range:[1,4],rangeLocked:[!0,!1]}),this.tshadowMap=ha.BOOLEAN(1),this.shadowMapAutoUpdate=ha.BOOLEAN(1,{visibleIf:{tshadowMap:1}}),this.shadowMapNeedsUpdate=ha.BOOLEAN(0,{visibleIf:{tshadowMap:1}}),this.shadowMapType=ha.INTEGER(AH,{visibleIf:{tshadowMap:1},menu:{entries:wH.map(((t,e)=>({name:t,value:TH[e]})))}})}};class SH extends tH{constructor(){super(...arguments),this.paramsConfig=EH,this._renderers_by_canvas_id={}}static type(){return eH.WEBGL}createRenderer(t,e){const n={},i=Object.keys(MH);let s;for(s of i)n[s]=MH[s];if(this.pv.tprecision){const t=fH[this.pv.precision];n.precision=t}if(this.pv.tpowerPreference){const t=vH[this.pv.powerPreference];n.powerPreference=t}n.antialias=this.pv.antialias,n.antialias=this.pv.antialias,n.alpha=this.pv.alpha,n.premultipliedAlpha=this.pv.premultipliedAlpha,n.depth=this.pv.depth,n.stencil=this.pv.stencil,n.logarithmicDepthBuffer=this.pv.logarithmicDepthBuffer,n.canvas=t,n.context=e;const r=li.renderersController.createWebGLRenderer(n);return li.renderersController.printDebug()&&(li.renderersController.printDebugMessage(`create renderer from node '${this.path()}'`),li.renderersController.printDebugMessage({params:n})),this._update_renderer(r),this._renderers_by_canvas_id[t.id]=r,r}cook(){const t=Object.keys(this._renderers_by_canvas_id);for(let e of t){const t=this._renderers_by_canvas_id[e];this._update_renderer(t)}this._traverse_scene_and_update_materials(),this.cookController.endCook()}_update_renderer(t){t.physicallyCorrectLights=this.pv.physicallyCorrectLights,t.outputEncoding=this.pv.outputEncoding,t.toneMapping=this.pv.toneMapping,t.toneMappingExposure=this.pv.toneMappingExposure,t.shadowMap.enabled=this.pv.tshadowMap,t.shadowMap.autoUpdate=this.pv.shadowMapAutoUpdate,t.shadowMap.needsUpdate=this.pv.shadowMapNeedsUpdate,t.shadowMap.type=this.pv.shadowMapType,t.sortObjects=this.pv.sortObjects;const e=this.pv.tpixelRatio?this.pv.pixelRatio:NH.defaultPixelRatio();li.renderersController.printDebug()&&(li.renderersController.printDebugMessage(`set renderer pixelRatio from '${this.path()}'`),li.renderersController.printDebugMessage({pixelRatio:e})),t.setPixelRatio(e)}_traverse_scene_and_update_materials(){this.scene().threejsScene().traverse((t=>{const e=t.material;if(e)if(m.isArray(e))for(let t of e)t.needsUpdate=!0;else e.needsUpdate=!0}))}}function CH(t){return class extends t{constructor(){super(...arguments),this.render=ha.FOLDER(),this.setScene=ha.BOOLEAN(0),this.scene=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{visibleIf:{setScene:1},nodeSelection:{context:ts.OBJ,types:[WV.type()]}}),this.setRenderer=ha.BOOLEAN(0),this.renderer=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{visibleIf:{setRenderer:1},nodeSelection:{context:ts.ROP,types:[SH.type()]}}),this.setCSSRenderer=ha.BOOLEAN(0),this.CSSRenderer=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{visibleIf:{setCSSRenderer:1},nodeSelection:{context:ts.ROP,types:[eH.CSS2D,eH.CSS3D]}})}}}class NH{constructor(t){this.node=t,this._renderers_by_canvas_id={},this._resolution_by_canvas_id={},this._super_sampling_size=new d.a}render(t,e,n,i){if(this.node.pv.doPostProcess?this.node.postProcessController.render(t,e):this.renderWithRenderer(t,i),this._resolved_cssRenderer_rop&&this._resolved_scene&&this.node.pv.setCSSRenderer){const e=this.cssRenderer(t);e&&e.render(this._resolved_scene,this.node.object)}}renderWithRenderer(t,e){const n=this.renderer(t);if(n){const t=this._resolved_scene;t&&n.render(t,this.node.object)}}async update(){this.update_scene(),this.update_renderer(),this.update_cssRenderer()}get resolved_scene(){return this._resolved_scene}update_scene(){if(this.node.pv.setScene){const t=this.node.p.scene;t.isDirty()&&t.find_target();const e=t.found_node_with_context_and_type(ts.OBJ,WV.type());e&&(e.isDirty()&&e.cookController.cookMainWithoutInputs(),this._resolved_scene=e.object)}else this._resolved_scene=this.node.scene().threejsScene()}update_renderer(){if(this.node.pv.setRenderer){const t=this.node.p.renderer;t.isDirty()&&t.find_target(),this._resolved_renderer_rop=t.found_node_with_context_and_type(ts.ROP,eH.WEBGL)}else this._resolved_renderer_rop=void 0}update_cssRenderer(){if(this.node.pv.setCSSRenderer){const t=this.node.p.CSSRenderer;t.isDirty()&&t.find_target(),this._resolved_cssRenderer_rop=t.found_node_with_context_and_type(ts.ROP,[eH.CSS2D,eH.CSS3D])}else this._resolved_cssRenderer_rop,this._resolved_cssRenderer_rop=void 0}renderer(t){return this._renderers_by_canvas_id[t.id]}cssRenderer(t){if(this._resolved_cssRenderer_rop&&this.node.pv.setCSSRenderer)return this._resolved_cssRenderer_rop.renderer(t)}createRenderer(t,e){const n=li.renderersController.createRenderingContext(t);if(!n)return void console.error(\\\\\\\"failed to create webgl context\\\\\\\");let i;return this.node.pv.setRenderer&&(this.update_renderer(),this._resolved_renderer_rop&&(i=this._resolved_renderer_rop.createRenderer(t,n))),i||(i=NH._createDefaultRenderer(t,n)),li.renderersController.registerRenderer(i),this._renderers_by_canvas_id[t.id]=i,this._super_sampling_size.copy(e),this.set_renderer_size(t,this._super_sampling_size),i}static defaultPixelRatio(){return ng.isMobile()?1:Math.max(2,window.devicePixelRatio)}static _createDefaultRenderer(t,e){const n={canvas:t,antialias:!1,alpha:!1,context:e},i=li.renderersController.createWebGLRenderer(n),s=this.defaultPixelRatio();return i.setPixelRatio(s),i.shadowMap.enabled=!0,i.shadowMap.type=AH,i.physicallyCorrectLights=!0,i.toneMapping=pH,i.toneMappingExposure=1,i.outputEncoding=aH,li.renderersController.printDebug()&&(li.renderersController.printDebugMessage(\\\\\\\"create default renderer\\\\\\\"),li.renderersController.printDebugMessage({params:n,pixelRatio:s})),i}deleteRenderer(t){const e=this.renderer(t);e&&li.renderersController.deregisterRenderer(e)}canvas_resolution(t){return this._resolution_by_canvas_id[t.id]}set_renderer_size(t,e){this._resolution_by_canvas_id[t.id]=this._resolution_by_canvas_id[t.id]||new d.a,this._resolution_by_canvas_id[t.id].copy(e);const n=this.renderer(t);if(n){const t=!1;n.setSize(e.x,e.y,t)}if(this._resolved_cssRenderer_rop){const n=this.cssRenderer(t);n&&n.setSize(e.x,e.y)}}}class LH{constructor(t){this.viewer=t,this._active=!1,this._controls=null,this._bound_on_controls_start=this._on_controls_start.bind(this),this._bound_on_controls_end=this._on_controls_end.bind(this),this._update_graph_node()}controls(){return this._controls}async create_controls(){var t;this.dispose_controls();this.viewer.canvas()&&(this._config=await(null===(t=this.viewer.cameraControlsController)||void 0===t?void 0:t.apply_controls(this.viewer)),this._config&&(this._controls=this._config.controls,this._controls&&(this.viewer.active()?(this._controls.addEventListener(\\\\\\\"start\\\\\\\",this._bound_on_controls_start),this._controls.addEventListener(\\\\\\\"end\\\\\\\",this._bound_on_controls_end)):this.dispose_controls())))}update(t){this._config&&this._controls&&this._config.updateRequired()&&this._controls.update(t)}dispose(){var t;null===(t=this._graph_node)||void 0===t||t.graphDisconnectPredecessors(),this.dispose_controls()}dispose_controls(){var t;if(this._controls){const e=this.viewer.canvas();e&&(null===(t=this.viewer)||void 0===t||t.cameraControlsController.dispose_controls(e)),this._bound_on_controls_start&&this._controls.removeEventListener(\\\\\\\"start\\\\\\\",this._bound_on_controls_start),this._bound_on_controls_end&&this._controls.removeEventListener(\\\\\\\"end\\\\\\\",this._bound_on_controls_end),this._controls.dispose(),this._controls=null}}_on_controls_start(){this._active=!0}_on_controls_end(){this._active=!1}_update_graph_node(){const t=this.viewer.cameraNode().p.controls;this._graph_node=this._graph_node||this._create_graph_node(),this._graph_node&&(this._graph_node.graphDisconnectPredecessors(),this._graph_node.addGraphInput(t))}_create_graph_node(){const t=new Mi(this.viewer.cameraNode().scene(),\\\\\\\"viewer-controls\\\\\\\");return t.addPostDirtyHook(\\\\\\\"this.viewer.controls_controller\\\\\\\",(async()=>{await this.create_controls()})),t}}class OH{constructor(t){this._viewer=t,this._size=new d.a(100,100),this._aspect=1}cameraNode(){return this._viewer.cameraNode()}get size(){return this._size}get aspect(){return this._aspect}computeSizeAndAspect(){this._updateSize(),this.cameraNode().scene().uniformsController.updateResolutionDependentUniformOwners(this._size),this._aspect=this._getAspect()}_updateSize(){this._size.x=this._viewer.domElement().offsetWidth,this._size.y=this._viewer.domElement().offsetHeight}_getAspect(){return this._size.x/this._size.y}updateCameraAspect(){this.cameraNode().setupForAspectRatio(this._aspect)}async prepareCurrentCamera(){await this.cameraNode().compute(),await this._updateFromCameraContainer()}async _updateFromCameraContainer(){var t;this.updateCameraAspect(),await(null===(t=this._viewer.controlsController)||void 0===t?void 0:t.create_controls())}}class PH{constructor(t){this.viewer=t}init(){const t=this.viewer.canvas();t&&(t.onwebglcontextlost=this._on_webglcontextlost.bind(this),t.onwebglcontextrestored=this._on_webglcontextrestored.bind(this))}_on_webglcontextlost(){console.warn(\\\\\\\"context lost at frame\\\\\\\",this.viewer.scene().frame()),this.request_animation_frame_id?cancelAnimationFrame(this.request_animation_frame_id):console.warn(\\\\\\\"request_animation_frame_id not initialized\\\\\\\"),console.warn(\\\\\\\"not canceled\\\\\\\",this.request_animation_frame_id)}_on_webglcontextrestored(){console.log(\\\\\\\"context restored\\\\\\\")}}const RH=\\\\\\\"hovered\\\\\\\";class IH{constructor(t,e,n){this._container=t,this._scene=e,this._camera_node=n,this._active=!1,this._id=IH._next_viewer_id++,this._scene.viewersRegister.registerViewer(this)}setRenderObjectOverride(t){console.log(\\\\\\\"setRenderObjectOverride\\\\\\\",t),this._renderObjectOverride=t||void 0}active(){return this._active}activate(){this._active=!0}deactivate(){this._active=!1}get camerasController(){return this._cameras_controller=this._cameras_controller||new OH(this)}get controlsController(){return this._controls_controller}get eventsController(){return this._events_controller=this._events_controller||new Wa(this)}get webglController(){return this._webgl_controller=this._webgl_controller||new PH(this)}domElement(){return this._container}scene(){return this._scene}canvas(){return this._canvas}cameraNode(){return this._camera_node}get cameraControlsController(){}id(){return this._id}dispose(){let t;for(this._scene.viewersRegister.unregisterViewer(this),this.eventsController.dispose();t=this._container.children[0];)this._container.removeChild(t)}resetContainerClass(){this.domElement().classList.remove(RH)}setContainerClassHovered(){this.domElement().classList.add(RH)}registerOnBeforeTick(t,e){this._registerCallback(t,e,this.registeredBeforeTickCallbacks())}unRegisterOnBeforeTick(t){this._unregisterCallback(t,this._onBeforeTickCallbacks)}registeredBeforeTickCallbacks(){return this._onBeforeTickCallbacks=this._onBeforeTickCallbacks||new Map}registerOnAfterTick(t,e){this._registerCallback(t,e,this.registeredAfterTickCallbacks())}unRegisterOnAfterTick(t){this._unregisterCallback(t,this._onAfterTickCallbacks)}registeredAfterTickCallbacks(){return this._onAfterTickCallbacks=this._onAfterTickCallbacks||new Map}registerOnBeforeRender(t,e){this._registerCallback(t,e,this.registeredBeforeRenderCallbacks())}unRegisterOnBeforeRender(t){this._unregisterCallback(t,this._onBeforeRenderCallbacks)}registeredBeforeRenderCallbacks(){return this._onBeforeRenderCallbacks=this._onBeforeRenderCallbacks||new Map}registerOnAfterRender(t,e){this._registerCallback(t,e,this.registeredAfterRenderCallbacks())}unRegisterOnAfterRender(t){this._unregisterCallback(t,this._onAfterRenderCallbacks)}registeredAfterRenderCallbacks(){return this._onAfterRenderCallbacks=this._onAfterRenderCallbacks||new Map}_registerCallback(t,e,n){n.has(t)?console.warn(`callback ${t} already registered`):n.set(t,e)}_unregisterCallback(t,e){e&&e.delete(t)}}IH._next_viewer_id=0;class FH extends IH{constructor(t,e,n,i){super(t,e,n),this._scene=e,this._camera_node=n,this._properties=i,this._do_render=!0,this._clock=new Dm,this._delta=0,this._animate_method=this.animate.bind(this),this._onResizeBound=this.onResize.bind(this),this._do_render=null==this._properties||this._properties.autoRender,this._canvas=document.createElement(\\\\\\\"canvas\\\\\\\"),this._canvas.id=`canvas_id_${Math.random()}`.replace(\\\\\\\".\\\\\\\",\\\\\\\"_\\\\\\\"),this._canvas.style.display=\\\\\\\"block\\\\\\\",this._canvas.style.outline=\\\\\\\"none\\\\\\\",this._container.appendChild(this._canvas),this._container.classList.add(\\\\\\\"CoreThreejsViewer\\\\\\\"),this._build(),this._setEvents()}get controlsController(){return this._controls_controller=this._controls_controller||new LH(this)}_build(){this._init_display(),this.activate()}dispose(){this._cancel_animate(),this.controlsController.dispose(),this._disposeEvents(),super.dispose()}get cameraControlsController(){return this._camera_node.controls_controller}_setEvents(){this.eventsController.init(),this.webglController.init(),window.addEventListener(\\\\\\\"resize\\\\\\\",this._onResizeBound.bind(this),!1)}_disposeEvents(){window.removeEventListener(\\\\\\\"resize\\\\\\\",this._onResizeBound.bind(this),!1)}onResize(){const t=this.canvas();t&&(this.camerasController.computeSizeAndAspect(),this._camera_node.renderController.set_renderer_size(t,this.camerasController.size),this.camerasController.updateCameraAspect())}_init_display(){if(!this._canvas)return void console.warn(\\\\\\\"no canvas found for viewer\\\\\\\");this.camerasController.computeSizeAndAspect();const t=this.camerasController.size;this._camera_node.renderController.createRenderer(this._canvas,t),this.camerasController.prepareCurrentCamera(),this.animate()}setAutoRender(t=!0){this._do_render=t,this._do_render&&this.animate()}animate(){var t,e,n;this._do_render&&(this._delta=this._clock.getDelta(),this._request_animation_frame_id=requestAnimationFrame(this._animate_method),null===(t=this._onBeforeTickCallbacks)||void 0===t||t.forEach((t=>t(this._delta))),this._scene.timeController.incrementTimeIfPlaying(this._delta),null===(e=this._onAfterTickCallbacks)||void 0===e||e.forEach((t=>t(this._delta))),this.render(this._delta),null===(n=this._controls_controller)||void 0===n||n.update(this._delta))}_cancel_animate(){this._do_render=!1,this._request_animation_frame_id&&cancelAnimationFrame(this._request_animation_frame_id),this._canvas&&this._camera_node.renderController.deleteRenderer(this._canvas)}render(t){var e,n;if(this.camerasController.cameraNode()&&this._canvas){null===(e=this._onBeforeRenderCallbacks)||void 0===e||e.forEach((e=>e(t)));const i=this.camerasController.size,s=this.camerasController.aspect;this._camera_node.renderController.render(this._canvas,i,s,this._renderObjectOverride),null===(n=this._onAfterRenderCallbacks)||void 0===n||n.forEach((e=>e(t)))}else console.warn(\\\\\\\"no camera to render with\\\\\\\")}renderer(){if(this._canvas)return this._camera_node.renderController.renderer(this._canvas)}}const DH={type:\\\\\\\"change\\\\\\\"},BH=1,zH=100;var kH;!function(t){t.ON_END=\\\\\\\"on move end\\\\\\\",t.ALWAYS=\\\\\\\"always\\\\\\\",t.NEVER=\\\\\\\"never\\\\\\\"}(kH||(kH={}));const UH=[kH.ON_END,kH.ALWAYS,kH.NEVER];function GH(t){return class extends t{constructor(){super(...arguments),this.setMainCamera=ha.BUTTON(null,{callback:(t,e)=>{YH.PARAM_CALLBACK_setMasterCamera(t)}})}}}function VH(t){return class extends t{constructor(){super(...arguments),this.camera=ha.FOLDER(),this.controls=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.EVENT}}),this.updateFromControlsMode=ha.INTEGER(UH.indexOf(kH.ON_END),{menu:{entries:UH.map(((t,e)=>({name:t,value:e})))}}),this.near=ha.FLOAT(BH,{range:[0,100],cook:!1,computeOnDirty:!0,callback:(t,e)=>{$H.PARAM_CALLBACK_update_near_far_from_param(t,e)}}),this.far=ha.FLOAT(zH,{range:[0,100],cook:!1,computeOnDirty:!0,callback:(t,e)=>{$H.PARAM_CALLBACK_update_near_far_from_param(t,e)}}),this.display=ha.BOOLEAN(1),this.showHelper=ha.BOOLEAN(0)}}}var HH;!function(t){t.DEFAULT=\\\\\\\"default\\\\\\\",t.COVER=\\\\\\\"cover\\\\\\\",t.CONTAIN=\\\\\\\"contain\\\\\\\"}(HH||(HH={}));const jH=[HH.DEFAULT,HH.COVER,HH.CONTAIN];function WH(t){return class extends t{constructor(){super(...arguments),this.fovAdjustMode=ha.INTEGER(jH.indexOf(HH.DEFAULT),{menu:{entries:jH.map(((t,e)=>({name:t,value:e})))}}),this.expectedAspectRatio=ha.FLOAT(\\\\\\\"16/9\\\\\\\",{visibleIf:[{fovAdjustMode:jH.indexOf(HH.COVER)},{fovAdjustMode:jH.indexOf(HH.CONTAIN)}],range:[0,2],rangeLocked:[!0,!1]})}}}GH(ua);KV(CH(wU($V(VH(GH(ua))))));class qH extends cU{constructor(){super(...arguments),this.renderOrder=lU.CAMERA,this._aspect=-1}get object(){return this._object}async cook(){this.updateCamera(),this._object.dispatchEvent(DH),this.cookController.endCook()}on_create(){}on_delete(){}prepareRaycaster(t,e){}camera(){return this._object}updateCamera(){}static PARAM_CALLBACK_setMasterCamera(t){t.set_as_master_camera()}set_as_master_camera(){this.scene().camerasController.setMainCameraNodePath(this.path())}setupForAspectRatio(t){}_updateForAspectRatio(){}update_transform_params_from_object(){bU.setParamsFromObject(this._object,this)}static PARAM_CALLBACK_update_from_param(t,e){t.object[e.name()]=t.pv[e.name()]}}class XH extends qH{constructor(){super(...arguments),this.flags=new Di(this),this.hierarchyController=new MU(this),this.transformController=new AU(this),this.childrenDisplayController=new kG(this),this.displayNodeController=new Fm(this,this.childrenDisplayController.displayNodeControllerCallbacks()),this._children_controller_context=ts.SOP}get controls_controller(){return this._controls_controller=this._controls_controller||new YV(this)}get layers_controller(){return this._layers_controller=this._layers_controller||new JV(this)}get renderController(){return this._render_controller=this._render_controller||new NH(this)}get postProcessController(){return this._post_process_controller=this._post_process_controller||new QV(this)}initializeBaseNode(){super.initializeBaseNode(),this.io.outputs.setHasOneOutput(),this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this.childrenDisplayController.initializeNode(),this.initHelperHook()}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}prepareRaycaster(t,e){e.setFromCamera(t,this._object)}async cook(){this.transformController.update(),this.layers_controller.update(),this.updateNearFar(),this.renderController.update(),this.updateCamera(),this._updateHelper(),this.controls_controller.update_controls(),this._object.dispatchEvent(DH),this.cookController.endCook()}static PARAM_CALLBACK_update_near_far_from_param(t,e){t.updateNearFar()}updateNearFar(){this._object.near==this.pv.near&&this._object.far==this.pv.far||(this._object.near=this.pv.near,this._object.far=this.pv.far,this._object.updateProjectionMatrix(),this._updateHelper())}setupForAspectRatio(t){m.isNaN(t)||t&&this._aspect!=t&&(this._aspect=t,this._updateForAspectRatio())}createViewer(t,e){return new FH(t,this.scene(),this,e)}static PARAM_CALLBACK_reset_effects_composer(t){t.postProcessController.reset()}initHelperHook(){this.flags.display.onUpdate((()=>{this._updateHelper()}))}helperVisible(){return this.flags.display.active()&&this.pv.showHelper}_createHelper(){const t=new zU(this.object);return t.update(),t}_updateHelper(){this.helperVisible()?(this._helper||(this._helper=this._createHelper()),this._helper&&(this.object.add(this._helper),this._helper.update())):this._helper&&this.object.remove(this._helper)}}class YH extends qH{}class $H extends XH{PARAM_CALLBACK_update_effects_composer(t){}}const JH=-.5,ZH=.5,KH=.5,QH=-.5;class tj extends(KV(CH($V(GH(WH(function(t){return class extends t{constructor(){super(...arguments),this.size=ha.FLOAT(1)}}}(VH(wU(ua,{matrixAutoUpdate:!0}))))))))){}const ej=new tj;class nj extends XH{constructor(){super(...arguments),this.paramsConfig=ej}static type(){return is.ORTHOGRAPHIC}createObject(){return new ot.a(2*JH,2*ZH,2*KH,2*QH,BH,zH)}updateCamera(){this._updateForAspectRatio()}_updateForAspectRatio(){this._aspect&&(this._adjustFOVFromMode(),this._object.updateProjectionMatrix())}_adjustFOVFromMode(){const t=jH[this.pv.fovAdjustMode];switch(t){case HH.DEFAULT:return this._adjustFOVFromModeDefault();case HH.COVER:return this._adjustFOVFromModeCover();case HH.CONTAIN:return this._adjustFOVFromModeContain()}os.unreachable(t)}_adjustFOVFromModeDefault(){this._adjustFOVFromSize(this.pv.size||1)}_adjustFOVFromModeCover(){const t=this.pv.size||1;this._aspect>this.pv.expectedAspectRatio?this._adjustFOVFromSize(this.pv.expectedAspectRatio*t/this._aspect):this._adjustFOVFromSize(t)}_adjustFOVFromModeContain(){const t=this.pv.size||1;this._aspect>this.pv.expectedAspectRatio?this._adjustFOVFromSize(t):this._adjustFOVFromSize(this.pv.expectedAspectRatio*t/this._aspect)}_adjustFOVFromSize(t){const e=t*this._aspect;this._object.left=JH*e*1,this._object.right=ZH*e*1,this._object.top=KH*t*1,this._object.bottom=QH*t*1}}const ij=50;class sj extends(KV(CH($V(GH(WH(function(t){return class extends t{constructor(){super(...arguments),this.fov=ha.FLOAT(ij,{range:[0,100]})}}}(VH(wU(ua,{matrixAutoUpdate:!0}))))))))){}const rj=new sj;class oj extends XH{constructor(){super(...arguments),this.paramsConfig=rj}static type(){return is.PERSPECTIVE}createObject(){return new tt.a(ij,1,BH,zH)}updateCamera(){this._object.fov!=this.pv.fov&&(this._object.fov=this.pv.fov,this._object.updateProjectionMatrix()),this._updateForAspectRatio()}_updateForAspectRatio(){this._aspect&&(this._object.aspect=this._aspect,this._adjustFOVFromMode(),this._object.updateProjectionMatrix())}_adjustFOVFromMode(){const t=jH[this.pv.fovAdjustMode];switch(t){case HH.DEFAULT:return this._adjustFOVFromModeDefault();case HH.COVER:return this._adjustFOVFromModeCover();case HH.CONTAIN:return this._adjustFOVFromModeContain()}os.unreachable(t)}_adjustFOVFromModeDefault(){this._object.fov=this.pv.fov}_adjustFOVFromModeCover(){if(this._object.aspect>this.pv.expectedAspectRatio){const t=Math.tan(Object(On.e)(this.pv.fov/2))/(this._object.aspect/this.pv.expectedAspectRatio);this._object.fov=2*Object(On.k)(Math.atan(t))}else this._object.fov=this.pv.fov}_adjustFOVFromModeContain(){if(this._object.aspect>this.pv.expectedAspectRatio)this._object.fov=this.pv.fov;else{const t=Math.tan(Object(On.e)(this.pv.fov/2))/(this._object.aspect/this.pv.expectedAspectRatio);this._object.fov=2*Object(On.k)(Math.atan(t))}}}class aj extends(function(t){return class extends t{constructor(){super(...arguments),this.main=ha.FOLDER(),this.resolution=ha.INTEGER(256),this.excludedObjects=ha.STRING(\\\\\\\"*`$OS`\\\\\\\"),this.printResolve=ha.BUTTON(null,{callback:t=>{cj.PARAM_CALLBACK_printResolve(t)}}),this.near=ha.FLOAT(1),this.far=ha.FLOAT(100),this.render=ha.BUTTON(null,{callback:t=>{cj.PARAM_CALLBACK_render(t)}}),this.renderTarget=ha.FOLDER(),this.tencoding=ha.BOOLEAN(0),this.encoding=ha.INTEGER(w.ld,{visibleIf:{tencoding:1},menu:{entries:og.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))}}),this.tminFilter=ha.BOOLEAN(0),this.minFilter=ha.INTEGER(Km,{visibleIf:{tminFilter:1},menu:{entries:tf}}),this.tmagFilter=ha.BOOLEAN(0),this.magFilter=ha.INTEGER(Zm,{visibleIf:{tmagFilter:1},menu:{entries:Qm}})}}}(wU(ua))){}const lj=new aj;class cj extends cU{constructor(){super(...arguments),this.paramsConfig=lj,this.hierarchyController=new MU(this),this.transformController=new AU(this),this.flags=new Di(this),this._excludedObjects=[],this._previousVisibleStateByUuid=new Map,this._helper=new TG(1)}static type(){return Ig.CUBE_CAMERA}initializeNode(){this.hierarchyController.initializeNode(),this.transformController.initializeNode(),this._updateHelperHierarchy(),this._helper.matrixAutoUpdate=!1,this.flags.display.onUpdate((()=>{this._updateHelperHierarchy()})),this.io.inputs.setCount(0,1)}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!0,t}cook(){this.transformController.update(),this._resolveObjects();const t=this._setupCubeCamera();this._cubeCamera&&!t||this._createCubeCamera(),this.cookController.endCook()}_updateHelperHierarchy(){this.flags.display.active()?this.object.add(this._helper):this.object.remove(this._helper)}_setupCubeCamera(){let t=!1;if(this._cubeCamera){const e=this._cubeCamera.children[0],n=e.near,i=e.far,s=this._cubeCamera.renderTarget.width;n==this.pv.near&&i==this.pv.far&&s==this.pv.resolution||(t=!0),t&&this.object.remove(this._cubeCamera)}return t}_createCubeCamera(){const t=new st(this.pv.resolution,{encoding:this.pv.tencoding?this.pv.encoding:w.ld,minFilter:this.pv.tminFilter?this.pv.minFilter:void 0,magFilter:this.pv.tmagFilter?this.pv.magFilter:void 0});this._cubeCamera=new nt(this.pv.near,this.pv.far,t),this._cubeCamera.matrixAutoUpdate=!0,this.object.add(this._cubeCamera)}renderTarget(){if(this._cubeCamera)return this._cubeCamera.renderTarget}render(){const t=li.renderersController.firstRenderer();if(t)if(this._cubeCamera){for(let t of this._excludedObjects)this._previousVisibleStateByUuid.set(t.uuid,t.visible),t.visible=!1;this._cubeCamera.update(t,this.scene().threejsScene());for(let t of this._excludedObjects){const e=this._previousVisibleStateByUuid.get(t.uuid);e&&(t.visible=e)}this._previousVisibleStateByUuid.clear()}else console.warn(`no cubeCamera for ${this.path()}`);else console.warn(`no renderer found for ${this.path()}`)}_resolveObjects(){const t=this.scene().objectsByMask(this.pv.excludedObjects),e=new Map;for(let n of t)e.set(n.uuid,n);this._excludedObjects=[];for(let n of t){const t=n.parent;t&&(e.get(t.uuid)||this._excludedObjects.push(n))}}static PARAM_CALLBACK_printResolve(t){t.param_callback_printResolve()}param_callback_printResolve(){this._resolveObjects(),console.log(this._excludedObjects)}static PARAM_CALLBACK_render(t){t.param_callback_render()}param_callback_render(){this.render()}}class hj extends cU{constructor(){super(...arguments),this._attachableToHierarchy=!1}createObject(){const t=new Fn.a;return t.matrixAutoUpdate=!1,t}cook(){this.cookController.endCook()}}class uj extends hj{}class dj extends uj{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class pj extends dj{constructor(){super(...arguments),this.renderOrder=lU.MANAGER}}class _j extends uj{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class mj extends uj{constructor(){super(...arguments),this.renderOrder=lU.MANAGER,this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class fj extends uj{constructor(){super(...arguments),this.renderOrder=lU.MANAGER,this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class gj extends hj{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class vj extends uj{constructor(){super(...arguments),this.renderOrder=lU.MANAGER,this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}const yj=[\\\\\\\"input pass\\\\\\\"];const xj={cook:!1,callback:function(t,e){bj.PARAM_CALLBACK_updatePasses(t)},computeOnDirty:!0};class bj extends aa{constructor(){super(...arguments),this.flags=new zi(this),this._passes_by_requester_id=new Map,this._update_pass_bound=this.updatePass.bind(this)}static context(){return ts.POST}static displayedInputNames(){return yj}initializeNode(){this.flags.display.set(!1),this.flags.display.onUpdate((()=>{if(this.flags.display.active()){const t=this.parent();t&&t.displayNodeController&&t.displayNodeController.setDisplayNode(this)}})),this.io.inputs.setCount(0,1),this.io.outputs.setHasOneOutput()}cook(){this.cookController.endCook()}setupComposer(t){if(this._addPassFromInput(0,t),!this.flags.bypass.active()){let e=this._passes_by_requester_id.get(t.requester.graphNodeId());e||(e=this._createPass(t),e&&this._passes_by_requester_id.set(t.requester.graphNodeId(),e)),e&&t.composer.addPass(e)}}_addPassFromInput(t,e){const n=this.io.inputs.input(t);n&&n.setupComposer(e)}_createPass(t){}static PARAM_CALLBACK_updatePasses(t){t._updatePasses()}_updatePasses(){this._passes_by_requester_id.forEach(this._update_pass_bound)}updatePass(t){}}const wj={uniforms:{tDiffuse:{value:null}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t#include <common>\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 texel = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tfloat l = linearToRelativeLuminance( texel.rgb );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( l, l, l, texel.w );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};var Tj={uniforms:{tDiffuse:{value:null},averageLuminance:{value:1},luminanceMap:{value:null},maxLuminance:{value:16},minLuminance:{value:.01},middleGrey:{value:.6}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t#include <common>\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tuniform float middleGrey;\\\\n\\\\t\\\\tuniform float minLuminance;\\\\n\\\\t\\\\tuniform float maxLuminance;\\\\n\\\\t\\\\t#ifdef ADAPTED_LUMINANCE\\\\n\\\\t\\\\t\\\\tuniform sampler2D luminanceMap;\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\tuniform float averageLuminance;\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tvec3 ToneMap( vec3 vColor ) {\\\\n\\\\t\\\\t\\\\t#ifdef ADAPTED_LUMINANCE\\\\n\\\\t\\\\t\\\\t\\\\t// Get the calculated average luminance\\\\n\\\\t\\\\t\\\\t\\\\tfloat fLumAvg = texture2D(luminanceMap, vec2(0.5, 0.5)).r;\\\\n\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\tfloat fLumAvg = averageLuminance;\\\\n\\\\t\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t\\\\t// Calculate the luminance of the current pixel\\\\n\\\\t\\\\t\\\\tfloat fLumPixel = linearToRelativeLuminance( vColor );\\\\n\\\\n\\\\t\\\\t\\\\t// Apply the modified operator (Eq. 4)\\\\n\\\\t\\\\t\\\\tfloat fLumScaled = (fLumPixel * middleGrey) / max( minLuminance, fLumAvg );\\\\n\\\\n\\\\t\\\\t\\\\tfloat fLumCompressed = (fLumScaled * (1.0 + (fLumScaled / (maxLuminance * maxLuminance)))) / (1.0 + fLumScaled);\\\\n\\\\t\\\\t\\\\treturn fLumCompressed * vColor;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 texel = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( ToneMap( texel.xyz ), texel.w );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};class Aj extends km{constructor(t,e){super(),this.resolution=void 0!==e?e:256,this.needsInit=!0,this.adaptive=void 0===t||!!t,this.luminanceRT=null,this.previousLuminanceRT=null,this.currentLuminanceRT=null,void 0===zm&&console.error(\\\\\\\"THREE.AdaptiveToneMappingPass relies on CopyShader\\\\\\\");const n=zm;this.copyUniforms=I.clone(n.uniforms),this.materialCopy=new F({uniforms:this.copyUniforms,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,blending:w.ub,depthTest:!1}),void 0===wj&&console.error(\\\\\\\"THREE.AdaptiveToneMappingPass relies on LuminosityShader\\\\\\\"),this.materialLuminance=new F({uniforms:I.clone(wj.uniforms),vertexShader:wj.vertexShader,fragmentShader:wj.fragmentShader,blending:w.ub}),this.adaptLuminanceShader={defines:{MIP_LEVEL_1X1:(Math.log(this.resolution)/Math.log(2)).toFixed(1)},uniforms:{lastLum:{value:null},currentLum:{value:null},minLuminance:{value:.01},delta:{value:.016},tau:{value:1}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D lastLum;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D currentLum;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float minLuminance;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float delta;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float tau;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 lastLum = texture2D( lastLum, vUv, MIP_LEVEL_1X1 );\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 currentLum = texture2D( currentLum, vUv, MIP_LEVEL_1X1 );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat fLastLum = max( minLuminance, lastLum.r );\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat fCurrentLum = max( minLuminance, currentLum.r );\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t//The adaption seems to work better in extreme lighting differences\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t//if the input luminance is squared.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfCurrentLum *= fCurrentLum;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t// Adapt the luminance using Pattanaik's technique\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat fAdaptedLum = fLastLum + (fCurrentLum - fLastLum) * (1.0 - exp(-delta * tau));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t// \\\\\\\\\\\"fAdaptedLum = sqrt(fAdaptedLum);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor.r = fAdaptedLum;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\"},this.materialAdaptiveLum=new F({uniforms:I.clone(this.adaptLuminanceShader.uniforms),vertexShader:this.adaptLuminanceShader.vertexShader,fragmentShader:this.adaptLuminanceShader.fragmentShader,defines:Object.assign({},this.adaptLuminanceShader.defines),blending:w.ub}),void 0===Tj&&console.error(\\\\\\\"THREE.AdaptiveToneMappingPass relies on ToneMapShader\\\\\\\"),this.materialToneMap=new F({uniforms:I.clone(Tj.uniforms),vertexShader:Tj.vertexShader,fragmentShader:Tj.fragmentShader,blending:w.ub}),this.fsQuad=new Vm(null)}render(t,e,n,i){this.needsInit&&(this.reset(t),this.luminanceRT.texture.type=n.texture.type,this.previousLuminanceRT.texture.type=n.texture.type,this.currentLuminanceRT.texture.type=n.texture.type,this.needsInit=!1),this.adaptive&&(this.fsQuad.material=this.materialLuminance,this.materialLuminance.uniforms.tDiffuse.value=n.texture,t.setRenderTarget(this.currentLuminanceRT),this.fsQuad.render(t),this.fsQuad.material=this.materialAdaptiveLum,this.materialAdaptiveLum.uniforms.delta.value=i,this.materialAdaptiveLum.uniforms.lastLum.value=this.previousLuminanceRT.texture,this.materialAdaptiveLum.uniforms.currentLum.value=this.currentLuminanceRT.texture,t.setRenderTarget(this.luminanceRT),this.fsQuad.render(t),this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.luminanceRT.texture,t.setRenderTarget(this.previousLuminanceRT),this.fsQuad.render(t)),this.fsQuad.material=this.materialToneMap,this.materialToneMap.uniforms.tDiffuse.value=n.texture,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(),this.fsQuad.render(t))}reset(){this.luminanceRT&&this.luminanceRT.dispose(),this.currentLuminanceRT&&this.currentLuminanceRT.dispose(),this.previousLuminanceRT&&this.previousLuminanceRT.dispose();const t={minFilter:w.V,magFilter:w.V,format:w.Ib};this.luminanceRT=new K(this.resolution,this.resolution,t),this.luminanceRT.texture.name=\\\\\\\"AdaptiveToneMappingPass.l\\\\\\\",this.luminanceRT.texture.generateMipmaps=!1,this.previousLuminanceRT=new K(this.resolution,this.resolution,t),this.previousLuminanceRT.texture.name=\\\\\\\"AdaptiveToneMappingPass.pl\\\\\\\",this.previousLuminanceRT.texture.generateMipmaps=!1,t.minFilter=w.Y,t.generateMipmaps=!0,this.currentLuminanceRT=new K(this.resolution,this.resolution,t),this.currentLuminanceRT.texture.name=\\\\\\\"AdaptiveToneMappingPass.cl\\\\\\\",this.adaptive&&(this.materialToneMap.defines.ADAPTED_LUMINANCE=\\\\\\\"\\\\\\\",this.materialToneMap.uniforms.luminanceMap.value=this.luminanceRT.texture),this.fsQuad.material=new lt.a({color:7829367}),this.materialLuminance.needsUpdate=!0,this.materialAdaptiveLum.needsUpdate=!0,this.materialToneMap.needsUpdate=!0}setAdaptive(t){t?(this.adaptive=!0,this.materialToneMap.defines.ADAPTED_LUMINANCE=\\\\\\\"\\\\\\\",this.materialToneMap.uniforms.luminanceMap.value=this.luminanceRT.texture):(this.adaptive=!1,delete this.materialToneMap.defines.ADAPTED_LUMINANCE,this.materialToneMap.uniforms.luminanceMap.value=null),this.materialToneMap.needsUpdate=!0}setAdaptionRate(t){t&&(this.materialAdaptiveLum.uniforms.tau.value=Math.abs(t))}setMinLuminance(t){t&&(this.materialToneMap.uniforms.minLuminance.value=t,this.materialAdaptiveLum.uniforms.minLuminance.value=t)}setMaxLuminance(t){t&&(this.materialToneMap.uniforms.maxLuminance.value=t)}setAverageLuminance(t){t&&(this.materialToneMap.uniforms.averageLuminance.value=t)}setMiddleGrey(t){t&&(this.materialToneMap.uniforms.middleGrey.value=t)}dispose(){this.luminanceRT&&this.luminanceRT.dispose(),this.previousLuminanceRT&&this.previousLuminanceRT.dispose(),this.currentLuminanceRT&&this.currentLuminanceRT.dispose(),this.materialLuminance&&this.materialLuminance.dispose(),this.materialAdaptiveLum&&this.materialAdaptiveLum.dispose(),this.materialCopy&&this.materialCopy.dispose(),this.materialToneMap&&this.materialToneMap.dispose()}}const Mj=new class extends ua{constructor(){super(...arguments),this.adaptive=ha.BOOLEAN(1,{...xj}),this.averageLuminance=ha.FLOAT(.7,{...xj}),this.midGrey=ha.FLOAT(.04,{...xj}),this.maxLuminance=ha.FLOAT(16,{range:[0,20],...xj}),this.adaptiveRange=ha.FLOAT(2,{range:[0,10],...xj})}};class Ej extends bj{constructor(){super(...arguments),this.paramsConfig=Mj}static type(){return\\\\\\\"adaptiveToneMapping\\\\\\\"}_createPass(t){const e=new Aj(this.pv.adaptive,t.resolution.x);return this.updatePass(e),e}updatePass(t){t.setMaxLuminance(this.pv.maxLuminance),t.setMiddleGrey(this.pv.midGrey),t.setAverageLuminance(this.pv.averageLuminance)}}const Sj={uniforms:{damp:{value:.96},tOld:{value:null},tNew:{value:null}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform float damp;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tOld;\\\\n\\\\t\\\\tuniform sampler2D tNew;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvec4 when_gt( vec4 x, float y ) {\\\\n\\\\n\\\\t\\\\t\\\\treturn max( sign( x - y ), 0.0 );\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 texelOld = texture2D( tOld, vUv );\\\\n\\\\t\\\\t\\\\tvec4 texelNew = texture2D( tNew, vUv );\\\\n\\\\n\\\\t\\\\t\\\\ttexelOld *= damp * when_gt( texelOld, 0.1 );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = max(texelNew, texelOld);\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};class Cj extends km{constructor(t=.96){super(),void 0===Sj&&console.error(\\\\\\\"THREE.AfterimagePass relies on AfterimageShader\\\\\\\"),this.shader=Sj,this.uniforms=I.clone(this.shader.uniforms),this.uniforms.damp.value=t,this.textureComp=new K(window.innerWidth,window.innerHeight,{minFilter:w.V,magFilter:w.ob,format:w.Ib}),this.textureOld=new K(window.innerWidth,window.innerHeight,{minFilter:w.V,magFilter:w.ob,format:w.Ib}),this.shaderMaterial=new F({uniforms:this.uniforms,vertexShader:this.shader.vertexShader,fragmentShader:this.shader.fragmentShader}),this.compFsQuad=new Vm(this.shaderMaterial);const e=new lt.a;this.copyFsQuad=new Vm(e)}render(t,e,n){this.uniforms.tOld.value=this.textureOld.texture,this.uniforms.tNew.value=n.texture,t.setRenderTarget(this.textureComp),this.compFsQuad.render(t),this.copyFsQuad.material.map=this.textureComp.texture,this.renderToScreen?(t.setRenderTarget(null),this.copyFsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(),this.copyFsQuad.render(t));const i=this.textureOld;this.textureOld=this.textureComp,this.textureComp=i}setSize(t,e){this.textureComp.setSize(t,e),this.textureOld.setSize(t,e)}}const Nj=new class extends ua{constructor(){super(...arguments),this.damp=ha.FLOAT(.96,{range:[0,1],rangeLocked:[!0,!0],...xj})}};class Lj extends bj{constructor(){super(...arguments),this.paramsConfig=Nj}static type(){return\\\\\\\"afterImage\\\\\\\"}_createPass(t){const e=new Cj;return this.updatePass(e),e}updatePass(t){t.uniforms.damp.value=this.pv.damp}}const Oj={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform float opacity;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 base = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tvec3 lumCoeff = vec3( 0.25, 0.65, 0.1 );\\\\n\\\\t\\\\t\\\\tfloat lum = dot( lumCoeff, base.rgb );\\\\n\\\\t\\\\t\\\\tvec3 blend = vec3( lum );\\\\n\\\\n\\\\t\\\\t\\\\tfloat L = min( 1.0, max( 0.0, 10.0 * ( lum - 0.45 ) ) );\\\\n\\\\n\\\\t\\\\t\\\\tvec3 result1 = 2.0 * base.rgb * blend;\\\\n\\\\t\\\\t\\\\tvec3 result2 = 1.0 - 2.0 * ( 1.0 - blend ) * ( 1.0 - base.rgb );\\\\n\\\\n\\\\t\\\\t\\\\tvec3 newColor = mix( result1, result2, L );\\\\n\\\\n\\\\t\\\\t\\\\tfloat A2 = opacity * base.a;\\\\n\\\\t\\\\t\\\\tvec3 mixRGB = A2 * newColor.rgb;\\\\n\\\\t\\\\t\\\\tmixRGB += ( ( 1.0 - A2 ) * base.rgb );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( mixRGB, base.a );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const Pj=new class extends ua{constructor(){super(...arguments),this.opacity=ha.FLOAT(.95,{range:[-5,5],rangeLocked:[!0,!0],...xj})}};class Rj extends bj{constructor(){super(...arguments),this.paramsConfig=Pj}static type(){return\\\\\\\"bleach\\\\\\\"}_createPass(t){const e=new Hm(Oj);return this.updatePass(e),e}updatePass(t){t.uniforms.opacity.value=this.pv.opacity}}const Ij={uniforms:{tDiffuse:{value:null},brightness:{value:0},contrast:{value:0}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform float brightness;\\\\n\\\\t\\\\tuniform float contrast;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor.rgb += brightness;\\\\n\\\\n\\\\t\\\\t\\\\tif (contrast > 0.0) {\\\\n\\\\t\\\\t\\\\t\\\\tgl_FragColor.rgb = (gl_FragColor.rgb - 0.5) / (1.0 - contrast) + 0.5;\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\t\\\\tgl_FragColor.rgb = (gl_FragColor.rgb - 0.5) * (1.0 + contrast) + 0.5;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const Fj=new class extends ua{constructor(){super(...arguments),this.brightness=ha.FLOAT(0,{range:[-1,1],rangeLocked:[!1,!1],...xj}),this.contrast=ha.FLOAT(0,{range:[-1,1],rangeLocked:[!1,!1],...xj}),this.transparent=ha.BOOLEAN(1,xj)}};class Dj extends bj{constructor(){super(...arguments),this.paramsConfig=Fj}static type(){return\\\\\\\"brightnessContrast\\\\\\\"}_createPass(t){const e=new Hm(Ij);return e.fsQuad.material.transparent=!0,this.updatePass(e),e}updatePass(t){t.uniforms.brightness.value=this.pv.brightness,t.uniforms.contrast.value=this.pv.contrast,t.material.transparent=this.pv.transparent}}class Bj extends km{constructor(t,e){super(),this.needsSwap=!1,this.clearColor=void 0!==t?t:0,this.clearAlpha=void 0!==e?e:0,this._oldClearColor=new D.a}render(t,e,n){let i;this.clearColor&&(t.getClearColor(this._oldClearColor),i=t.getClearAlpha(),t.setClearColor(this.clearColor,this.clearAlpha)),t.setRenderTarget(this.renderToScreen?null:n),t.clear(),this.clearColor&&t.setClearColor(this._oldClearColor,i)}}const zj=new class extends ua{};class kj extends bj{constructor(){super(...arguments),this.paramsConfig=zj}static type(){return\\\\\\\"clear\\\\\\\"}_createPass(t){const e=new Bj;return this.updatePass(e),e}updatePass(t){}}const Uj=new class extends ua{};class Gj extends bj{constructor(){super(...arguments),this.paramsConfig=Uj}static type(){return\\\\\\\"clearMask\\\\\\\"}_createPass(t){const e=new Wm;return this.updatePass(e),e}updatePass(t){}}const Vj={uniforms:{tDiffuse:{value:null},powRGB:{value:new p.a(2,2,2)},mulRGB:{value:new p.a(1,1,1)},addRGB:{value:new p.a(0,0,0)}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform vec3 powRGB;\\\\n\\\\t\\\\tuniform vec3 mulRGB;\\\\n\\\\t\\\\tuniform vec3 addRGB;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = texture2D( tDiffuse, vUv );\\\\n\\\\t\\\\t\\\\tgl_FragColor.rgb = mulRGB * pow( ( gl_FragColor.rgb + addRGB ), powRGB );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const Hj=new class extends ua{constructor(){super(...arguments),this.pow=ha.VECTOR3([2,2,2],{...xj}),this.mult=ha.COLOR([1,1,1],{...xj}),this.add=ha.COLOR([0,0,0],{...xj})}};class jj extends bj{constructor(){super(...arguments),this.paramsConfig=Hj}static type(){return\\\\\\\"colorCorrection\\\\\\\"}_createPass(t){const e=new Hm(Vj);return this.updatePass(e),e}updatePass(t){t.uniforms.powRGB.value.copy(this.pv.pow),t.uniforms.mulRGB.value.set(this.pv.mult.r,this.pv.mult.g,this.pv.mult.b),t.uniforms.addRGB.value.set(this.pv.add.r,this.pv.add.g,this.pv.add.b)}}const Wj=new class extends ua{constructor(){super(...arguments),this.opacity=ha.FLOAT(1,{range:[0,1],rangeLocked:[!0,!0],...xj}),this.transparent=ha.BOOLEAN(1,xj)}};class qj extends bj{constructor(){super(...arguments),this.paramsConfig=Wj}static type(){return\\\\\\\"copy\\\\\\\"}_createPass(t){const e=new Hm(zm);return this.updatePass(e),e}updatePass(t){t.uniforms.opacity.value=this.pv.opacity,t.material.transparent=this.pv.transparent}}const Xj={uniforms:{textureWidth:{value:1},textureHeight:{value:1},focalDepth:{value:1},focalLength:{value:24},fstop:{value:.9},tColor:{value:null},tDepth:{value:null},maxblur:{value:1},showFocus:{value:0},manualdof:{value:0},vignetting:{value:0},depthblur:{value:0},threshold:{value:.5},gain:{value:2},bias:{value:.5},fringe:{value:.7},znear:{value:.1},zfar:{value:100},noise:{value:1},dithering:{value:1e-4},pentagon:{value:0},shaderFocus:{value:1},focusCoords:{value:new d.a}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t#include <common>\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tColor;\\\\n\\\\t\\\\tuniform sampler2D tDepth;\\\\n\\\\t\\\\tuniform float textureWidth;\\\\n\\\\t\\\\tuniform float textureHeight;\\\\n\\\\n\\\\t\\\\tuniform float focalDepth;  //focal distance value in meters, but you may use autofocus option below\\\\n\\\\t\\\\tuniform float focalLength; //focal length in mm\\\\n\\\\t\\\\tuniform float fstop; //f-stop value\\\\n\\\\t\\\\tuniform bool showFocus; //show debug focus point and focal range (red = focal point, green = focal range)\\\\n\\\\n\\\\t\\\\t/*\\\\n\\\\t\\\\tmake sure that these two values are the same for your camera, otherwise distances will be wrong.\\\\n\\\\t\\\\t*/\\\\n\\\\n\\\\t\\\\tuniform float znear; // camera clipping start\\\\n\\\\t\\\\tuniform float zfar; // camera clipping end\\\\n\\\\n\\\\t\\\\t//------------------------------------------\\\\n\\\\t\\\\t//user variables\\\\n\\\\n\\\\t\\\\tconst int samples = SAMPLES; //samples on the first ring\\\\n\\\\t\\\\tconst int rings = RINGS; //ring count\\\\n\\\\n\\\\t\\\\tconst int maxringsamples = rings * samples;\\\\n\\\\n\\\\t\\\\tuniform bool manualdof; // manual dof calculation\\\\n\\\\t\\\\tfloat ndofstart = 1.0; // near dof blur start\\\\n\\\\t\\\\tfloat ndofdist = 2.0; // near dof blur falloff distance\\\\n\\\\t\\\\tfloat fdofstart = 1.0; // far dof blur start\\\\n\\\\t\\\\tfloat fdofdist = 3.0; // far dof blur falloff distance\\\\n\\\\n\\\\t\\\\tfloat CoC = 0.03; //circle of confusion size in mm (35mm film = 0.03mm)\\\\n\\\\n\\\\t\\\\tuniform bool vignetting; // use optical lens vignetting\\\\n\\\\n\\\\t\\\\tfloat vignout = 1.3; // vignetting outer border\\\\n\\\\t\\\\tfloat vignin = 0.0; // vignetting inner border\\\\n\\\\t\\\\tfloat vignfade = 22.0; // f-stops till vignete fades\\\\n\\\\n\\\\t\\\\tuniform bool shaderFocus;\\\\n\\\\t\\\\t// disable if you use external focalDepth value\\\\n\\\\n\\\\t\\\\tuniform vec2 focusCoords;\\\\n\\\\t\\\\t// autofocus point on screen (0.0,0.0 - left lower corner, 1.0,1.0 - upper right)\\\\n\\\\t\\\\t// if center of screen use vec2(0.5, 0.5);\\\\n\\\\n\\\\t\\\\tuniform float maxblur;\\\\n\\\\t\\\\t//clamp value of max blur (0.0 = no blur, 1.0 default)\\\\n\\\\n\\\\t\\\\tuniform float threshold; // highlight threshold;\\\\n\\\\t\\\\tuniform float gain; // highlight gain;\\\\n\\\\n\\\\t\\\\tuniform float bias; // bokeh edge bias\\\\n\\\\t\\\\tuniform float fringe; // bokeh chromatic aberration / fringing\\\\n\\\\n\\\\t\\\\tuniform bool noise; //use noise instead of pattern for sample dithering\\\\n\\\\n\\\\t\\\\tuniform float dithering;\\\\n\\\\n\\\\t\\\\tuniform bool depthblur; // blur the depth buffer\\\\n\\\\t\\\\tfloat dbsize = 1.25; // depth blur size\\\\n\\\\n\\\\t\\\\t/*\\\\n\\\\t\\\\tnext part is experimental\\\\n\\\\t\\\\tnot looking good with small sample and ring count\\\\n\\\\t\\\\tlooks okay starting from samples = 4, rings = 4\\\\n\\\\t\\\\t*/\\\\n\\\\n\\\\t\\\\tuniform bool pentagon; //use pentagon as bokeh shape?\\\\n\\\\t\\\\tfloat feather = 0.4; //pentagon shape feather\\\\n\\\\n\\\\t\\\\t//------------------------------------------\\\\n\\\\n\\\\t\\\\tfloat penta(vec2 coords) {\\\\n\\\\t\\\\t\\\\t//pentagonal shape\\\\n\\\\t\\\\t\\\\tfloat scale = float(rings) - 1.3;\\\\n\\\\t\\\\t\\\\tvec4  HS0 = vec4( 1.0,         0.0,         0.0,  1.0);\\\\n\\\\t\\\\t\\\\tvec4  HS1 = vec4( 0.309016994, 0.951056516, 0.0,  1.0);\\\\n\\\\t\\\\t\\\\tvec4  HS2 = vec4(-0.809016994, 0.587785252, 0.0,  1.0);\\\\n\\\\t\\\\t\\\\tvec4  HS3 = vec4(-0.809016994,-0.587785252, 0.0,  1.0);\\\\n\\\\t\\\\t\\\\tvec4  HS4 = vec4( 0.309016994,-0.951056516, 0.0,  1.0);\\\\n\\\\t\\\\t\\\\tvec4  HS5 = vec4( 0.0        ,0.0         , 1.0,  1.0);\\\\n\\\\n\\\\t\\\\t\\\\tvec4  one = vec4( 1.0 );\\\\n\\\\n\\\\t\\\\t\\\\tvec4 P = vec4((coords),vec2(scale, scale));\\\\n\\\\n\\\\t\\\\t\\\\tvec4 dist = vec4(0.0);\\\\n\\\\t\\\\t\\\\tfloat inorout = -4.0;\\\\n\\\\n\\\\t\\\\t\\\\tdist.x = dot( P, HS0 );\\\\n\\\\t\\\\t\\\\tdist.y = dot( P, HS1 );\\\\n\\\\t\\\\t\\\\tdist.z = dot( P, HS2 );\\\\n\\\\t\\\\t\\\\tdist.w = dot( P, HS3 );\\\\n\\\\n\\\\t\\\\t\\\\tdist = smoothstep( -feather, feather, dist );\\\\n\\\\n\\\\t\\\\t\\\\tinorout += dot( dist, one );\\\\n\\\\n\\\\t\\\\t\\\\tdist.x = dot( P, HS4 );\\\\n\\\\t\\\\t\\\\tdist.y = HS5.w - abs( P.z );\\\\n\\\\n\\\\t\\\\t\\\\tdist = smoothstep( -feather, feather, dist );\\\\n\\\\t\\\\t\\\\tinorout += dist.x;\\\\n\\\\n\\\\t\\\\t\\\\treturn clamp( inorout, 0.0, 1.0 );\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tfloat bdepth(vec2 coords) {\\\\n\\\\t\\\\t\\\\t// Depth buffer blur\\\\n\\\\t\\\\t\\\\tfloat d = 0.0;\\\\n\\\\t\\\\t\\\\tfloat kernel[9];\\\\n\\\\t\\\\t\\\\tvec2 offset[9];\\\\n\\\\n\\\\t\\\\t\\\\tvec2 wh = vec2(1.0/textureWidth,1.0/textureHeight) * dbsize;\\\\n\\\\n\\\\t\\\\t\\\\toffset[0] = vec2(-wh.x,-wh.y);\\\\n\\\\t\\\\t\\\\toffset[1] = vec2( 0.0, -wh.y);\\\\n\\\\t\\\\t\\\\toffset[2] = vec2( wh.x -wh.y);\\\\n\\\\n\\\\t\\\\t\\\\toffset[3] = vec2(-wh.x,  0.0);\\\\n\\\\t\\\\t\\\\toffset[4] = vec2( 0.0,   0.0);\\\\n\\\\t\\\\t\\\\toffset[5] = vec2( wh.x,  0.0);\\\\n\\\\n\\\\t\\\\t\\\\toffset[6] = vec2(-wh.x, wh.y);\\\\n\\\\t\\\\t\\\\toffset[7] = vec2( 0.0,  wh.y);\\\\n\\\\t\\\\t\\\\toffset[8] = vec2( wh.x, wh.y);\\\\n\\\\n\\\\t\\\\t\\\\tkernel[0] = 1.0/16.0;   kernel[1] = 2.0/16.0;   kernel[2] = 1.0/16.0;\\\\n\\\\t\\\\t\\\\tkernel[3] = 2.0/16.0;   kernel[4] = 4.0/16.0;   kernel[5] = 2.0/16.0;\\\\n\\\\t\\\\t\\\\tkernel[6] = 1.0/16.0;   kernel[7] = 2.0/16.0;   kernel[8] = 1.0/16.0;\\\\n\\\\n\\\\n\\\\t\\\\t\\\\tfor( int i=0; i<9; i++ ) {\\\\n\\\\t\\\\t\\\\t\\\\tfloat tmp = texture2D(tDepth, coords + offset[i]).r;\\\\n\\\\t\\\\t\\\\t\\\\td += tmp * kernel[i];\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\treturn d;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\n\\\\t\\\\tvec3 color(vec2 coords,float blur) {\\\\n\\\\t\\\\t\\\\t//processing the sample\\\\n\\\\n\\\\t\\\\t\\\\tvec3 col = vec3(0.0);\\\\n\\\\t\\\\t\\\\tvec2 texel = vec2(1.0/textureWidth,1.0/textureHeight);\\\\n\\\\n\\\\t\\\\t\\\\tcol.r = texture2D(tColor,coords + vec2(0.0,1.0)*texel*fringe*blur).r;\\\\n\\\\t\\\\t\\\\tcol.g = texture2D(tColor,coords + vec2(-0.866,-0.5)*texel*fringe*blur).g;\\\\n\\\\t\\\\t\\\\tcol.b = texture2D(tColor,coords + vec2(0.866,-0.5)*texel*fringe*blur).b;\\\\n\\\\n\\\\t\\\\t\\\\tvec3 lumcoeff = vec3(0.299,0.587,0.114);\\\\n\\\\t\\\\t\\\\tfloat lum = dot(col.rgb, lumcoeff);\\\\n\\\\t\\\\t\\\\tfloat thresh = max((lum-threshold)*gain, 0.0);\\\\n\\\\t\\\\t\\\\treturn col+mix(vec3(0.0),col,thresh*blur);\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvec3 debugFocus(vec3 col, float blur, float depth) {\\\\n\\\\t\\\\t\\\\tfloat edge = 0.002*depth; //distance based edge smoothing\\\\n\\\\t\\\\t\\\\tfloat m = clamp(smoothstep(0.0,edge,blur),0.0,1.0);\\\\n\\\\t\\\\t\\\\tfloat e = clamp(smoothstep(1.0-edge,1.0,blur),0.0,1.0);\\\\n\\\\n\\\\t\\\\t\\\\tcol = mix(col,vec3(1.0,0.5,0.0),(1.0-m)*0.6);\\\\n\\\\t\\\\t\\\\tcol = mix(col,vec3(0.0,0.5,1.0),((1.0-e)-(1.0-m))*0.2);\\\\n\\\\n\\\\t\\\\t\\\\treturn col;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tfloat linearize(float depth) {\\\\n\\\\t\\\\t\\\\treturn -zfar * znear / (depth * (zfar - znear) - zfar);\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tfloat vignette() {\\\\n\\\\t\\\\t\\\\tfloat dist = distance(vUv.xy, vec2(0.5,0.5));\\\\n\\\\t\\\\t\\\\tdist = smoothstep(vignout+(fstop/vignfade), vignin+(fstop/vignfade), dist);\\\\n\\\\t\\\\t\\\\treturn clamp(dist,0.0,1.0);\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tfloat gather(float i, float j, int ringsamples, inout vec3 col, float w, float h, float blur) {\\\\n\\\\t\\\\t\\\\tfloat rings2 = float(rings);\\\\n\\\\t\\\\t\\\\tfloat step = PI*2.0 / float(ringsamples);\\\\n\\\\t\\\\t\\\\tfloat pw = cos(j*step)*i;\\\\n\\\\t\\\\t\\\\tfloat ph = sin(j*step)*i;\\\\n\\\\t\\\\t\\\\tfloat p = 1.0;\\\\n\\\\t\\\\t\\\\tif (pentagon) {\\\\n\\\\t\\\\t\\\\t\\\\tp = penta(vec2(pw,ph));\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\tcol += color(vUv.xy + vec2(pw*w,ph*h), blur) * mix(1.0, i/rings2, bias) * p;\\\\n\\\\t\\\\t\\\\treturn 1.0 * mix(1.0, i /rings2, bias) * p;\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t//scene depth calculation\\\\n\\\\n\\\\t\\\\t\\\\tfloat depth = linearize(texture2D(tDepth,vUv.xy).x);\\\\n\\\\n\\\\t\\\\t\\\\t// Blur depth?\\\\n\\\\t\\\\t\\\\tif ( depthblur ) {\\\\n\\\\t\\\\t\\\\t\\\\tdepth = linearize(bdepth(vUv.xy));\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t//focal plane calculation\\\\n\\\\n\\\\t\\\\t\\\\tfloat fDepth = focalDepth;\\\\n\\\\n\\\\t\\\\t\\\\tif (shaderFocus) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfDepth = linearize(texture2D(tDepth,focusCoords).x);\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t// dof blur factor calculation\\\\n\\\\n\\\\t\\\\t\\\\tfloat blur = 0.0;\\\\n\\\\n\\\\t\\\\t\\\\tif (manualdof) {\\\\n\\\\t\\\\t\\\\t\\\\tfloat a = depth-fDepth; // Focal plane\\\\n\\\\t\\\\t\\\\t\\\\tfloat b = (a-fdofstart)/fdofdist; // Far DoF\\\\n\\\\t\\\\t\\\\t\\\\tfloat c = (-a-ndofstart)/ndofdist; // Near Dof\\\\n\\\\t\\\\t\\\\t\\\\tblur = (a>0.0) ? b : c;\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\t\\\\tfloat f = focalLength; // focal length in mm\\\\n\\\\t\\\\t\\\\t\\\\tfloat d = fDepth*1000.0; // focal plane in mm\\\\n\\\\t\\\\t\\\\t\\\\tfloat o = depth*1000.0; // depth in mm\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfloat a = (o*f)/(o-f);\\\\n\\\\t\\\\t\\\\t\\\\tfloat b = (d*f)/(d-f);\\\\n\\\\t\\\\t\\\\t\\\\tfloat c = (d-f)/(d*fstop*CoC);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tblur = abs(a-b)*c;\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tblur = clamp(blur,0.0,1.0);\\\\n\\\\n\\\\t\\\\t\\\\t// calculation of pattern for dithering\\\\n\\\\n\\\\t\\\\t\\\\tvec2 noise = vec2(rand(vUv.xy), rand( vUv.xy + vec2( 0.4, 0.6 ) ) )*dithering*blur;\\\\n\\\\n\\\\t\\\\t\\\\t// getting blur x and y step factor\\\\n\\\\n\\\\t\\\\t\\\\tfloat w = (1.0/textureWidth)*blur*maxblur+noise.x;\\\\n\\\\t\\\\t\\\\tfloat h = (1.0/textureHeight)*blur*maxblur+noise.y;\\\\n\\\\n\\\\t\\\\t\\\\t// calculation of final color\\\\n\\\\n\\\\t\\\\t\\\\tvec3 col = vec3(0.0);\\\\n\\\\n\\\\t\\\\t\\\\tif(blur < 0.05) {\\\\n\\\\t\\\\t\\\\t\\\\t//some optimization thingy\\\\n\\\\t\\\\t\\\\t\\\\tcol = texture2D(tColor, vUv.xy).rgb;\\\\n\\\\t\\\\t\\\\t} else {\\\\n\\\\t\\\\t\\\\t\\\\tcol = texture2D(tColor, vUv.xy).rgb;\\\\n\\\\t\\\\t\\\\t\\\\tfloat s = 1.0;\\\\n\\\\t\\\\t\\\\t\\\\tint ringsamples;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfor (int i = 1; i <= rings; i++) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t/*unboxstart*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tringsamples = i * samples;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfor (int j = 0 ; j < maxringsamples ; j++) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif (j >= ringsamples) break;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ts += gather(float(i), float(j), ringsamples, col, w, h, blur);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t/*unboxend*/\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcol /= s; //divide by sample count\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tif (showFocus) {\\\\n\\\\t\\\\t\\\\t\\\\tcol = debugFocus(col, blur, depth);\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tif (vignetting) {\\\\n\\\\t\\\\t\\\\t\\\\tcol *= vignette();\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor.rgb = col;\\\\n\\\\t\\\\t\\\\tgl_FragColor.a = 1.0;\\\\n\\\\t\\\\t}\\\\\\\"},Yj={uniforms:{mNear:{value:1},mFar:{value:1e3}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying float vViewZDepth;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t#include <begin_vertex>\\\\n\\\\t\\\\t\\\\t#include <project_vertex>\\\\n\\\\n\\\\t\\\\t\\\\tvViewZDepth = - mvPosition.z;\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform float mNear;\\\\n\\\\t\\\\tuniform float mFar;\\\\n\\\\n\\\\t\\\\tvarying float vViewZDepth;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( vec3( color ), 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};class $j{constructor(t){this._scene=t}scene(){return this._scene}with_overriden_material(t,e,n,i){const s={};let r;this._scene.traverse((i=>{const o=i;if(o.material){const i=o.geometry;if(i){const a=o.customDepthDOFMaterial;if(a){if(r=a,r.uniforms)for(let t of Object.keys(n))r.uniforms[t].value=n[t].value}else r=fr.markedAsInstance(i)?e:t;r&&(s[o.uuid]=o.material,o.material=r)}}})),i(),this._scene.traverse((t=>{const e=t;if(e.material){e.geometry&&(e.material=s[e.uuid])}}));for(let t of Object.keys(s))delete s[t]}}class Jj{constructor(t,e,n,i){this._depth_of_field_node=t,this._scene=e,this._camera=n,this._resolution=i,this._camera_uniforms={mNear:{value:0},mFar:{value:0}},this.enabled=!0,this.needsSwap=!0,this.clear=!0,this.renderToScreen=!0,this._processing_scene=new vs,this.clear_color=new D.a(1,1,1),this._prev_clear_color=new D.a,this._core_scene=new $j(this._scene);const s=3,r=4;this._processing_camera=new ot.a(this._resolution.x/-2,this._resolution.x/2,this._resolution.y/2,this._resolution.y/-2,-1e4,1e4),this._processing_camera.position.z=100,this._processing_scene.add(this._processing_camera);var o={minFilter:w.V,magFilter:w.V,format:w.ic};this._rtTextureDepth=new K(this._resolution.x,this._resolution.y,o),this._rtTextureColor=new K(this._resolution.x,this._resolution.y,o);var a=Xj;a||console.error(\\\\\\\"BokehPass relies on BokehShader\\\\\\\"),this.bokeh_uniforms=I.clone(a.uniforms),this.bokeh_uniforms.tColor.value=this._rtTextureColor.texture,this.bokeh_uniforms.tDepth.value=this._rtTextureDepth.texture,this.bokeh_uniforms.textureWidth.value=this._resolution.x,this.bokeh_uniforms.textureHeight.value=this._resolution.y,this.bokeh_material=new F({uniforms:this.bokeh_uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader,defines:{RINGS:s,SAMPLES:r}}),this._quad=new B.a(new L(this._resolution.x,this._resolution.y),this.bokeh_material),this._quad.position.z=-500,this._processing_scene.add(this._quad);var l=Yj;l||console.error(\\\\\\\"BokehPass relies on BokehDepthShader\\\\\\\"),this.materialDepth=new F({uniforms:l.uniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}),this.materialDepthInstance=new F({uniforms:l.uniforms,vertexShader:\\\\\\\"#include <common>\\\\n\\\\nvec3 rotate_with_quat( vec3 v, vec4 q )\\\\n{\\\\n\\\\treturn v + 2.0 * cross( q.xyz, cross( q.xyz, v ) + q.w * v );\\\\n}\\\\n\\\\n\\\\nattribute vec4 instanceOrientation;\\\\nattribute vec3 instancePosition;\\\\nattribute vec3 instanceScale;\\\\nvarying float vViewZDepth;\\\\n\\\\n\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec3 v_POLYGON_instance_transform1_position = vec3(position);\\\\n\\\\tv_POLYGON_instance_transform1_position *= instanceScale;\\\\n\\\\tv_POLYGON_instance_transform1_position = rotate_with_quat( v_POLYGON_instance_transform1_position, instanceOrientation );\\\\n\\\\tv_POLYGON_instance_transform1_position += instancePosition;\\\\n\\\\t\\\\n\\\\t// replaces #include <begin_vertex>\\\\n\\\\tvec3 transformed = v_POLYGON_instance_transform1_position;\\\\n\\\\n\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\tvViewZDepth = - mvPosition.z;\\\\n}\\\\\\\",fragmentShader:l.fragmentShader}),this.update_camera_uniforms_with_node(this._depth_of_field_node,this._camera)}setSize(t,e){this._rtTextureDepth.setSize(t,e),this._rtTextureColor.setSize(t,e),this.bokeh_uniforms.textureWidth.value=t,this.bokeh_uniforms.textureHeight.value=e}dispose(){this._rtTextureDepth.dispose(),this._rtTextureColor.dispose()}render(t,e,n){t.getClearColor(this._prev_clear_color),t.setClearColor(this.clear_color),t.clear(),t.setRenderTarget(this._rtTextureColor),t.clear(),t.render(this._scene,this._camera),t.setClearColor(0),this._core_scene.with_overriden_material(this.materialDepth,this.materialDepthInstance,this._camera_uniforms,(()=>{t.setRenderTarget(this._rtTextureDepth),t.clear(),t.render(this._scene,this._camera)})),t.setRenderTarget(null),t.clear(),t.render(this._processing_scene,this._processing_camera),t.setClearColor(this._prev_clear_color)}update_camera_uniforms_with_node(t,e){this.bokeh_uniforms.focalLength.value=e.getFocalLength(),this.bokeh_uniforms.znear.value=e.near,this.bokeh_uniforms.zfar.value=e.far;var n=Kj.smoothstep(e.near,e.far,t.pv.focalDepth),i=Kj.linearize(1-n,e.near,e.far);this.bokeh_uniforms.focalDepth.value=i,this._camera_uniforms={mNear:{value:e.near},mFar:{value:e.far}};for(let t of[this.materialDepth,this.materialDepthInstance])t.uniforms.mNear.value=this._camera_uniforms.mNear.value,t.uniforms.mFar.value=this._camera_uniforms.mFar.value}}const Zj=new class extends ua{constructor(){super(...arguments),this.focalDepth=ha.FLOAT(10,{range:[0,50],rangeLocked:[!0,!1],step:.001,...xj}),this.fStep=ha.FLOAT(10,{range:[.1,22],rangeLocked:[!0,!0],...xj}),this.maxBlur=ha.FLOAT(2,{range:[0,10],rangeLocked:[!0,!1],...xj}),this.vignetting=ha.BOOLEAN(0,{...xj}),this.depthBlur=ha.BOOLEAN(0,{...xj}),this.threshold=ha.FLOAT(.5,{range:[0,1],rangeLocked:[!0,!0],step:.001,...xj}),this.gain=ha.FLOAT(1,{range:[0,100],rangeLocked:[!0,!0],step:.001,...xj}),this.bias=ha.FLOAT(1,{range:[0,3],rangeLocked:[!0,!0],step:.001,...xj}),this.fringe=ha.FLOAT(.7,{range:[0,5],rangeLocked:[!0,!1],step:.001,...xj}),this.noise=ha.BOOLEAN(0,{...xj}),this.dithering=ha.FLOAT(0,{range:[0,.001],rangeLocked:[!0,!0],step:1e-4,...xj}),this.pentagon=ha.BOOLEAN(0,{...xj}),this.rings=ha.INTEGER(3,{range:[1,8],rangeLocked:[!0,!0],...xj}),this.samples=ha.INTEGER(4,{range:[1,13],rangeLocked:[!0,!0],...xj}),this.clearColor=ha.COLOR([1,1,1],{...xj})}};class Kj extends bj{constructor(){super(...arguments),this.paramsConfig=Zj}static type(){return\\\\\\\"depthOfField\\\\\\\"}static saturate(t){return Math.max(0,Math.min(1,t))}static linearize(t,e,n){return-n*e/(t*(n-e)-n)}static smoothstep(t,e,n){var i=this.saturate((n-t)/(e-t));return i*i*(3-2*i)}_createPass(t){if(t.camera.isPerspectiveCamera){const e=t.camera_node;if(e){const n=new Jj(this,t.scene,e.object,t.resolution);this.updatePass(n);const i=new Mi(this.scene(),\\\\\\\"DOF\\\\\\\");return i.addGraphInput(e.p.near),i.addGraphInput(e.p.far),i.addGraphInput(e.p.fov),i.addGraphInput(this.p.focalDepth),i.addPostDirtyHook(\\\\\\\"post/DOF\\\\\\\",(()=>{this.update_pass_from_camera_node(n,e)})),n}}}update_pass_from_camera_node(t,e){t.update_camera_uniforms_with_node(this,e.object)}updatePass(t){t.bokeh_uniforms.fstop.value=this.pv.fStep,t.bokeh_uniforms.maxblur.value=this.pv.maxBlur,t.bokeh_uniforms.threshold.value=this.pv.threshold,t.bokeh_uniforms.gain.value=this.pv.gain,t.bokeh_uniforms.bias.value=this.pv.bias,t.bokeh_uniforms.fringe.value=this.pv.fringe,t.bokeh_uniforms.dithering.value=this.pv.dithering,t.bokeh_uniforms.noise.value=this.pv.noise?1:0,t.bokeh_uniforms.pentagon.value=this.pv.pentagon?1:0,t.bokeh_uniforms.vignetting.value=this.pv.vignetting?1:0,t.bokeh_uniforms.depthblur.value=this.pv.depthBlur?1:0,t.bokeh_uniforms.shaderFocus.value=0,t.bokeh_uniforms.showFocus.value=0,t.bokeh_uniforms.manualdof.value=0,t.bokeh_uniforms.focusCoords.value.set(.5,.5),t.bokeh_material.defines.RINGS=this.pv.rings,t.bokeh_material.defines.SAMPLES=this.pv.samples,t.bokeh_material.needsUpdate=!0,t.clear_color.copy(this.pv.clearColor)}}const Qj={uniforms:{tDiffuse:{value:null},tSize:{value:new d.a(256,256)},center:{value:new d.a(.5,.5)},angle:{value:1.57},scale:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform vec2 center;\\\\n\\\\t\\\\tuniform float angle;\\\\n\\\\t\\\\tuniform float scale;\\\\n\\\\t\\\\tuniform vec2 tSize;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tfloat pattern() {\\\\n\\\\n\\\\t\\\\t\\\\tfloat s = sin( angle ), c = cos( angle );\\\\n\\\\n\\\\t\\\\t\\\\tvec2 tex = vUv * tSize - center;\\\\n\\\\t\\\\t\\\\tvec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;\\\\n\\\\n\\\\t\\\\t\\\\treturn ( sin( point.x ) * sin( point.y ) ) * 4.0;\\\\n\\\\n\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 color = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tfloat average = ( color.r + color.g + color.b ) / 3.0;\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( vec3( average * 10.0 - 5.0 + pattern() ), color.a );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const tW=new class extends ua{constructor(){super(...arguments),this.center=ha.VECTOR2([.5,.5],{...xj}),this.angle=ha.FLOAT(\\\\\\\"$PI*0.5\\\\\\\",{range:[0,10],rangeLocked:[!1,!1],...xj}),this.scale=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],...xj})}};class eW extends bj{constructor(){super(...arguments),this.paramsConfig=tW}static type(){return\\\\\\\"dotScreen\\\\\\\"}_createPass(t){const e=new Hm(Qj);return this.updatePass(e),e}updatePass(t){t.uniforms.center.value=this.pv.center,t.uniforms.angle.value=this.pv.angle,t.uniforms.scale.value=this.pv.scale}}const nW={uniforms:{tDiffuse:{value:null},time:{value:0},nIntensity:{value:.5},sIntensity:{value:.05},sCount:{value:4096},grayscale:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\t#include <common>\\\\n\\\\n\\\\t\\\\t// control parameter\\\\n\\\\t\\\\tuniform float time;\\\\n\\\\n\\\\t\\\\tuniform bool grayscale;\\\\n\\\\n\\\\t\\\\t// noise effect intensity value (0 = no effect, 1 = full effect)\\\\n\\\\t\\\\tuniform float nIntensity;\\\\n\\\\n\\\\t\\\\t// scanlines effect intensity value (0 = no effect, 1 = full effect)\\\\n\\\\t\\\\tuniform float sIntensity;\\\\n\\\\n\\\\t\\\\t// scanlines effect count value (0 = no effect, 4096 = full effect)\\\\n\\\\t\\\\tuniform float sCount;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t// sample the source\\\\n\\\\t\\\\t\\\\tvec4 cTextureScreen = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t// make some noise\\\\n\\\\t\\\\t\\\\tfloat dx = rand( vUv + time );\\\\n\\\\n\\\\t\\\\t// add noise\\\\n\\\\t\\\\t\\\\tvec3 cResult = cTextureScreen.rgb + cTextureScreen.rgb * clamp( 0.1 + dx, 0.0, 1.0 );\\\\n\\\\n\\\\t\\\\t// get us a sine and cosine\\\\n\\\\t\\\\t\\\\tvec2 sc = vec2( sin( vUv.y * sCount ), cos( vUv.y * sCount ) );\\\\n\\\\n\\\\t\\\\t// add scanlines\\\\n\\\\t\\\\t\\\\tcResult += cTextureScreen.rgb * vec3( sc.x, sc.y, sc.x ) * sIntensity;\\\\n\\\\n\\\\t\\\\t// interpolate between source and result by intensity\\\\n\\\\t\\\\t\\\\tcResult = cTextureScreen.rgb + clamp( nIntensity, 0.0,1.0 ) * ( cResult - cTextureScreen.rgb );\\\\n\\\\n\\\\t\\\\t// convert to grayscale if desired\\\\n\\\\t\\\\t\\\\tif( grayscale ) {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tcResult = vec3( cResult.r * 0.3 + cResult.g * 0.59 + cResult.b * 0.11 );\\\\n\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor =  vec4( cResult, cTextureScreen.a );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};class iW extends km{constructor(t,e,n,i){super(),void 0===nW&&console.error(\\\\\\\"THREE.FilmPass relies on FilmShader\\\\\\\");const s=nW;this.uniforms=I.clone(s.uniforms),this.material=new F({uniforms:this.uniforms,vertexShader:s.vertexShader,fragmentShader:s.fragmentShader}),void 0!==i&&(this.uniforms.grayscale.value=i),void 0!==t&&(this.uniforms.nIntensity.value=t),void 0!==e&&(this.uniforms.sIntensity.value=e),void 0!==n&&(this.uniforms.sCount.value=n),this.fsQuad=new Vm(this.material)}render(t,e,n,i){this.uniforms.tDiffuse.value=n.texture,this.uniforms.time.value+=i,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(),this.fsQuad.render(t))}}const sW=new class extends ua{constructor(){super(...arguments),this.noiseIntensity=ha.FLOAT(.5,{range:[0,1],rangeLocked:[!1,!1],...xj}),this.scanlinesIntensity=ha.FLOAT(.05,{range:[0,1],rangeLocked:[!0,!1],...xj}),this.scanlinesCount=ha.FLOAT(4096,{range:[0,4096],rangeLocked:[!0,!1],...xj}),this.grayscale=ha.BOOLEAN(1,{...xj})}};class rW extends bj{constructor(){super(...arguments),this.paramsConfig=sW}static type(){return\\\\\\\"film\\\\\\\"}_createPass(t){const e=new iW(this.pv.noiseIntensity,this.pv.scanlinesIntensity,this.pv.scanlinesCount,this.pv.grayscale?1:0);return this.updatePass(e),e}updatePass(t){t.uniforms.nIntensity.value=this.pv.noiseIntensity,t.uniforms.sIntensity.value=this.pv.scanlinesIntensity,t.uniforms.sCount.value=this.pv.scanlinesCount,t.uniforms.grayscale.value=this.pv.grayscale?1:0}}const oW={uniforms:{tDiffuse:{value:null},resolution:{value:new d.a(1/1024,1/512)}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:'\\\\n\\\\n\\\\t\\\\tprecision highp float;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tuniform vec2 resolution;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\t#define FXAA_PC 1\\\\n\\\\t\\\\t#define FXAA_GLSL_100 1\\\\n\\\\t\\\\t#define FXAA_QUALITY_PRESET 12\\\\n\\\\n\\\\t\\\\t#define FXAA_GREEN_AS_LUMA 1\\\\n\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_PC_CONSOLE\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// The console algorithm for PC is included\\\\n\\\\t\\\\t\\\\t\\\\t// for developers targeting really low spec machines.\\\\n\\\\t\\\\t\\\\t\\\\t// Likely better to just run FXAA_PC, and use a really low preset.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_PC_CONSOLE 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_GLSL_120\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_GLSL_120 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_GLSL_130\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_GLSL_130 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_HLSL_3\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_HLSL_3 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_HLSL_4\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_HLSL_4 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_HLSL_5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_HLSL_5 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*==========================================================================*/\\\\n\\\\t\\\\t#ifndef FXAA_GREEN_AS_LUMA\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// For those using non-linear color,\\\\n\\\\t\\\\t\\\\t\\\\t// and either not able to get luma in alpha, or not wanting to,\\\\n\\\\t\\\\t\\\\t\\\\t// this enables FXAA to run using green as a proxy for luma.\\\\n\\\\t\\\\t\\\\t\\\\t// So with this enabled, no need to pack luma in alpha.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// This will turn off AA on anything which lacks some amount of green.\\\\n\\\\t\\\\t\\\\t\\\\t// Pure red and blue or combination of only R and B, will get no AA.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Might want to lower the settings for both,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t\\\\tfxaaConsoleEdgeThresholdMin\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t\\\\tfxaaQualityEdgeThresholdMin\\\\n\\\\t\\\\t\\\\t\\\\t// In order to insure AA does not get turned off on colors\\\\n\\\\t\\\\t\\\\t\\\\t// which contain a minor amount of green.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// 1 = On.\\\\n\\\\t\\\\t\\\\t\\\\t// 0 = Off.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_GREEN_AS_LUMA 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_EARLY_EXIT\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Controls algorithm\\\\'s early exit path.\\\\n\\\\t\\\\t\\\\t\\\\t// On PS3 turning this ON adds 2 cycles to the shader.\\\\n\\\\t\\\\t\\\\t\\\\t// On 360 turning this OFF adds 10ths of a millisecond to the shader.\\\\n\\\\t\\\\t\\\\t\\\\t// Turning this off on console will result in a more blurry image.\\\\n\\\\t\\\\t\\\\t\\\\t// So this defaults to on.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// 1 = On.\\\\n\\\\t\\\\t\\\\t\\\\t// 0 = Off.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_EARLY_EXIT 1\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_DISCARD\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only valid for PC OpenGL currently.\\\\n\\\\t\\\\t\\\\t\\\\t// Probably will not work when FXAA_GREEN_AS_LUMA = 1.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// 1 = Use discard on pixels which don\\\\'t need AA.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t\\\\t For APIs which enable concurrent TEX+ROP from same surface.\\\\n\\\\t\\\\t\\\\t\\\\t// 0 = Return unchanged color on pixels which don\\\\'t need AA.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_DISCARD 0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_FAST_PIXEL_OFFSET\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Used for GLSL 120 only.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// 1 = GL API supports fast pixel offsets\\\\n\\\\t\\\\t\\\\t\\\\t// 0 = do not use fast pixel offsets\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#ifdef GL_EXT_gpu_shader4\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_FAST_PIXEL_OFFSET 1\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#ifdef GL_NV_gpu_shader5\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_FAST_PIXEL_OFFSET 1\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#ifdef GL_ARB_gpu_shader5\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_FAST_PIXEL_OFFSET 1\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#ifndef FXAA_FAST_PIXEL_OFFSET\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_FAST_PIXEL_OFFSET 0\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#ifndef FXAA_GATHER4_ALPHA\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// 1 = API supports gather4 on alpha channel.\\\\n\\\\t\\\\t\\\\t\\\\t// 0 = API does not support gather4 on alpha channel.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_HLSL_5 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_GATHER4_ALPHA 1\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#ifdef GL_ARB_gpu_shader5\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_GATHER4_ALPHA 1\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#ifdef GL_NV_gpu_shader5\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_GATHER4_ALPHA 1\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#ifndef FXAA_GATHER4_ALPHA\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FXAA_GATHER4_ALPHA 0\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFXAA QUALITY - TUNING KNOBS\\\\n\\\\t\\\\t------------------------------------------------------------------------------\\\\n\\\\t\\\\tNOTE the other tuning knobs are now in the shader function inputs!\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#ifndef FXAA_QUALITY_PRESET\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Choose the quality preset.\\\\n\\\\t\\\\t\\\\t\\\\t// This needs to be compiled into the shader as it effects code.\\\\n\\\\t\\\\t\\\\t\\\\t// Best option to include multiple presets is to\\\\n\\\\t\\\\t\\\\t\\\\t// in each shader define the preset, then include this file.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// OPTIONS\\\\n\\\\t\\\\t\\\\t\\\\t// -----------------------------------------------------------------------\\\\n\\\\t\\\\t\\\\t\\\\t// 10 to 15 - default medium dither (10=fastest, 15=highest quality)\\\\n\\\\t\\\\t\\\\t\\\\t// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)\\\\n\\\\t\\\\t\\\\t\\\\t// 39\\\\t\\\\t\\\\t - no dither, very expensive\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// NOTES\\\\n\\\\t\\\\t\\\\t\\\\t// -----------------------------------------------------------------------\\\\n\\\\t\\\\t\\\\t\\\\t// 12 = slightly faster then FXAA 3.9 and higher edge quality (default)\\\\n\\\\t\\\\t\\\\t\\\\t// 13 = about same speed as FXAA 3.9 and better than 12\\\\n\\\\t\\\\t\\\\t\\\\t// 23 = closest to FXAA 3.9 visually and performance wise\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t_ = the lowest digit is directly related to performance\\\\n\\\\t\\\\t\\\\t\\\\t// _\\\\t= the highest digit is directly related to style\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PRESET 12\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t FXAA QUALITY - PRESETS\\\\n\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t FXAA QUALITY - MEDIUM DITHER PRESETS\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 10)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 3\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 3.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 12.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 11)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 4\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 3.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 12.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 12)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 12.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 13)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 6\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 12.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 14)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 7\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 12.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 15)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 8\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 12.0\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t FXAA QUALITY - LOW DITHER PRESETS\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 20)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 3\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 21)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 4\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 22)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 23)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 6\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 24)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 7\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 3.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 25)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 8\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 26)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 9\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P8 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 27)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 10\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P8 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P9 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 28)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 11\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P8 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P9 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P10 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 29)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 12\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P8 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P9 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P10 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P11 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t FXAA QUALITY - EXTREME QUALITY\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#if (FXAA_QUALITY_PRESET == 39)\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_PS 12\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P0 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P1 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P2 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P3 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P4 1.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P5 1.5\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P6 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P7 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P8 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P9 2.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P10 4.0\\\\n\\\\t\\\\t\\\\t\\\\t#define FXAA_QUALITY_P11 8.0\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tAPI PORTING\\\\n\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaBool bool\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaDiscard discard\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat float\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat2 vec2\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat3 vec3\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat4 vec4\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf float\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf2 vec2\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf3 vec3\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf4 vec4\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaInt2 ivec2\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaSat(x) clamp(x, 0.0, 1.0)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTex sampler2D\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaBool bool\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaDiscard clip(-1)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat float\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat2 float2\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat3 float3\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaFloat4 float4\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf half\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf2 half2\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf3 half3\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaHalf4 half4\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaSat(x) saturate(x)\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_GLSL_100 == 1)\\\\n\\\\t\\\\t\\\\t#define FxaaTexTop(t, p) texture2D(t, p, 0.0)\\\\n\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_GLSL_120 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t// Requires,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t#version 120\\\\n\\\\t\\\\t\\\\t\\\\t// And at least,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t#extension GL_EXT_gpu_shader4 : enable\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t(or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_FAST_PIXEL_OFFSET == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)\\\\n\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_GATHER4_ALPHA == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t// use #extension GL_ARB_gpu_shader5 : enable\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexGreen4(t, p) textureGather(t, p, 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_GLSL_130 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t// Requires \\\\\\\"#version 130\\\\\\\" or better\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexTop(t, p) textureLod(t, p, 0.0)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_GATHER4_ALPHA == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t// use #extension GL_ARB_gpu_shader5 : enable\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexGreen4(t, p) textureGather(t, p, 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_HLSL_3 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaInt2 float2\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTex sampler2D\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_HLSL_4 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaInt2 int2\\\\n\\\\t\\\\t\\\\t\\\\tstruct FxaaTex { SamplerState smpl; Texture2D tex; };\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\\\\n\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t#if (FXAA_HLSL_5 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaInt2 int2\\\\n\\\\t\\\\t\\\\t\\\\tstruct FxaaTex { SamplerState smpl; Texture2D tex; };\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)\\\\n\\\\t\\\\t\\\\t\\\\t#define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t GREEN AS LUMA OPTION SUPPORT FUNCTION\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#if (FXAA_GREEN_AS_LUMA == 0)\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }\\\\n\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\n\\\\n\\\\n\\\\t\\\\t/*============================================================================\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t FXAA3 QUALITY - PC\\\\n\\\\n\\\\t\\\\t============================================================================*/\\\\n\\\\t\\\\t#if (FXAA_PC == 1)\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\tFxaaFloat4 FxaaPixelShader(\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Use noperspective interpolation here (turn off perspective interpolation).\\\\n\\\\t\\\\t\\\\t\\\\t// {xy} = center of pixel\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 pos,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Used only for FXAA Console, and not used on the 360 version.\\\\n\\\\t\\\\t\\\\t\\\\t// Use noperspective interpolation here (turn off perspective interpolation).\\\\n\\\\t\\\\t\\\\t\\\\t// {xy_} = upper left of pixel\\\\n\\\\t\\\\t\\\\t\\\\t// {_zw} = lower right of pixel\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat4 fxaaConsolePosPos,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Input color texture.\\\\n\\\\t\\\\t\\\\t\\\\t// {rgb_} = color in linear or perceptual color space\\\\n\\\\t\\\\t\\\\t\\\\t// if (FXAA_GREEN_AS_LUMA == 0)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t\\\\t {__a} = luma in perceptual color space (not linear)\\\\n\\\\t\\\\t\\\\t\\\\tFxaaTex tex,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on the optimized 360 version of FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// For everything but 360, just use the same input here as for \\\\\\\"tex\\\\\\\".\\\\n\\\\t\\\\t\\\\t\\\\t// For 360, same texture, just alias with a 2nd sampler.\\\\n\\\\t\\\\t\\\\t\\\\t// This sampler needs to have an exponent bias of -1.\\\\n\\\\t\\\\t\\\\t\\\\tFxaaTex fxaaConsole360TexExpBiasNegOne,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on the optimized 360 version of FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// For everything but 360, just use the same input here as for \\\\\\\"tex\\\\\\\".\\\\n\\\\t\\\\t\\\\t\\\\t// For 360, same texture, just alias with a 3nd sampler.\\\\n\\\\t\\\\t\\\\t\\\\t// This sampler needs to have an exponent bias of -2.\\\\n\\\\t\\\\t\\\\t\\\\tFxaaTex fxaaConsole360TexExpBiasNegTwo,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Quality.\\\\n\\\\t\\\\t\\\\t\\\\t// This must be from a constant/uniform.\\\\n\\\\t\\\\t\\\\t\\\\t// {x_} = 1.0/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_y} = 1.0/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 fxaaQualityRcpFrame,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// This must be from a constant/uniform.\\\\n\\\\t\\\\t\\\\t\\\\t// This effects sub-pixel AA quality and inversely sharpness.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Where N ranges between,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t\\\\t N = 0.50 (default)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t\\\\t N = 0.33 (sharper)\\\\n\\\\t\\\\t\\\\t\\\\t// {x__} = -N/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_y_} = -N/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_z_} =\\\\tN/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {__w} =\\\\tN/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat4 fxaaConsoleRcpFrameOpt,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// Not used on 360, but used on PS3 and PC.\\\\n\\\\t\\\\t\\\\t\\\\t// This must be from a constant/uniform.\\\\n\\\\t\\\\t\\\\t\\\\t// {x__} = -2.0/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_y_} = -2.0/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_z_} =\\\\t2.0/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {__w} =\\\\t2.0/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat4 fxaaConsoleRcpFrameOpt2,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on 360 in place of fxaaConsoleRcpFrameOpt2.\\\\n\\\\t\\\\t\\\\t\\\\t// This must be from a constant/uniform.\\\\n\\\\t\\\\t\\\\t\\\\t// {x__} =\\\\t8.0/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_y_} =\\\\t8.0/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {_z_} = -4.0/screenWidthInPixels\\\\n\\\\t\\\\t\\\\t\\\\t// {__w} = -4.0/screenHeightInPixels\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat4 fxaaConsole360RcpFrameOpt2,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Quality.\\\\n\\\\t\\\\t\\\\t\\\\t// This used to be the FXAA_QUALITY_SUBPIX define.\\\\n\\\\t\\\\t\\\\t\\\\t// It is here now to allow easier tuning.\\\\n\\\\t\\\\t\\\\t\\\\t// Choose the amount of sub-pixel aliasing removal.\\\\n\\\\t\\\\t\\\\t\\\\t// This can effect sharpness.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 1.00 - upper limit (softer)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.75 - default amount of filtering\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.50 - lower limit (sharper, less sub-pixel aliasing removal)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.25 - almost off\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.00 - completely off\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat fxaaQualitySubpix,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Quality.\\\\n\\\\t\\\\t\\\\t\\\\t// This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.\\\\n\\\\t\\\\t\\\\t\\\\t// It is here now to allow easier tuning.\\\\n\\\\t\\\\t\\\\t\\\\t// The minimum amount of local contrast required to apply algorithm.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.333 - too little (faster)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.250 - low quality\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.166 - default\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.125 - high quality\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.063 - overkill (slower)\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat fxaaQualityEdgeThreshold,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Quality.\\\\n\\\\t\\\\t\\\\t\\\\t// This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.\\\\n\\\\t\\\\t\\\\t\\\\t// It is here now to allow easier tuning.\\\\n\\\\t\\\\t\\\\t\\\\t// Trims the algorithm from processing darks.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.0833 - upper limit (default, the start of visible unfiltered edges)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.0625 - high quality (faster)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.0312 - visible limit (slower)\\\\n\\\\t\\\\t\\\\t\\\\t// Special notes when using FXAA_GREEN_AS_LUMA,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Likely want to set this to zero.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t As colors that are mostly not-green\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t will appear very dark in the green channel!\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Tune by looking at mostly non-green content,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t then start at zero and increase until aliasing is a problem.\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat fxaaQualityEdgeThresholdMin,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define.\\\\n\\\\t\\\\t\\\\t\\\\t// It is here now to allow easier tuning.\\\\n\\\\t\\\\t\\\\t\\\\t// This does not effect PS3, as this needs to be compiled in.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Due to the PS3 being ALU bound,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t there are only three safe values here: 2 and 4 and 8.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t These options use the shaders ability to a free *|/ by 2|4|8.\\\\n\\\\t\\\\t\\\\t\\\\t// For all other platforms can be a non-power of two.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 8.0 is sharper (default!!!)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 4.0 is softer\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 2.0 is really soft (good only for vector graphics inputs)\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat fxaaConsoleEdgeSharpness,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define.\\\\n\\\\t\\\\t\\\\t\\\\t// It is here now to allow easier tuning.\\\\n\\\\t\\\\t\\\\t\\\\t// This does not effect PS3, as this needs to be compiled in.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Due to the PS3 being ALU bound,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t there are only two safe values here: 1/4 and 1/8.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t These options use the shaders ability to a free *|/ by 2|4|8.\\\\n\\\\t\\\\t\\\\t\\\\t// The console setting has a different mapping than the quality setting.\\\\n\\\\t\\\\t\\\\t\\\\t// Other platforms can use other values.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.125 leaves less aliasing, but is softer (default!!!)\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.25 leaves more aliasing, and is sharper\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat fxaaConsoleEdgeThreshold,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Only used on FXAA Console.\\\\n\\\\t\\\\t\\\\t\\\\t// This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define.\\\\n\\\\t\\\\t\\\\t\\\\t// It is here now to allow easier tuning.\\\\n\\\\t\\\\t\\\\t\\\\t// Trims the algorithm from processing darks.\\\\n\\\\t\\\\t\\\\t\\\\t// The console setting has a different mapping than the quality setting.\\\\n\\\\t\\\\t\\\\t\\\\t// This only applies when FXAA_EARLY_EXIT is 1.\\\\n\\\\t\\\\t\\\\t\\\\t// This does not apply to PS3,\\\\n\\\\t\\\\t\\\\t\\\\t// PS3 was simplified to avoid more shader instructions.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.06 - faster but more aliasing in darks\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.05 - default\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t 0.04 - slower and less aliasing in darks\\\\n\\\\t\\\\t\\\\t\\\\t// Special notes when using FXAA_GREEN_AS_LUMA,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Likely want to set this to zero.\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t As colors that are mostly not-green\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t will appear very dark in the green channel!\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t Tune by looking at mostly non-green content,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\t then start at zero and increase until aliasing is a problem.\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat fxaaConsoleEdgeThresholdMin,\\\\n\\\\t\\\\t\\\\t\\\\t//\\\\n\\\\t\\\\t\\\\t\\\\t// Extra constants for 360 FXAA Console only.\\\\n\\\\t\\\\t\\\\t\\\\t// Use zeros or anything else for other platforms.\\\\n\\\\t\\\\t\\\\t\\\\t// These must be in physical constant registers and NOT immediates.\\\\n\\\\t\\\\t\\\\t\\\\t// Immediates will result in compiler un-optimizing.\\\\n\\\\t\\\\t\\\\t\\\\t// {xyzw} = float4(1.0, -1.0, 0.25, -0.25)\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat4 fxaaConsole360ConstDir\\\\n\\\\t\\\\t) {\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 posM;\\\\n\\\\t\\\\t\\\\t\\\\tposM.x = pos.x;\\\\n\\\\t\\\\t\\\\t\\\\tposM.y = pos.y;\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_GATHER4_ALPHA == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_DISCARD == 0)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_GREEN_AS_LUMA == 0)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaM rgbyM.w\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaM rgbyM.y\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_GREEN_AS_LUMA == 0)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_DISCARD == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaM luma4A.w\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaE luma4A.z\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaS luma4A.x\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaSE luma4A.y\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaNW luma4B.w\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaN luma4B.z\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaW luma4B.x\\\\n\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_GREEN_AS_LUMA == 0)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaM rgbyM.w\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#define lumaM rgbyM.y\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_GLSL_100 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat maxSM = max(lumaS, lumaM);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat minSM = min(lumaS, lumaM);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat maxESM = max(lumaE, maxSM);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat minESM = min(lumaE, minSM);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat maxWN = max(lumaN, lumaW);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat minWN = min(lumaN, lumaW);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat rangeMax = max(maxWN, maxESM);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat rangeMin = min(minWN, minESM);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat range = rangeMax - rangeMin;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool earlyExit = range < rangeMaxClamped;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tif(earlyExit)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_DISCARD == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaDiscard;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\treturn rgbyM;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_GATHER4_ALPHA == 0)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_GLSL_100 == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNS = lumaN + lumaS;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaWE = lumaW + lumaE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixRcpRange = 1.0/range;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixNSWE = lumaNS + lumaWE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNESE = lumaNE + lumaSE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNWNE = lumaNW + lumaNE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNWSW = lumaNW + lumaSW;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSWSE = lumaSW + lumaSE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lengthSign = fxaaQualityRcpFrame.x;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool horzSpan = edgeHorz >= edgeVert;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tif(!horzSpan) lumaN = lumaW;\\\\n\\\\t\\\\t\\\\t\\\\tif(!horzSpan) lumaS = lumaE;\\\\n\\\\t\\\\t\\\\t\\\\tif(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat gradientN = lumaN - lumaM;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat gradientS = lumaS - lumaM;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaNN = lumaN + lumaM;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaSS = lumaS + lumaM;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool pairN = abs(gradientN) >= abs(gradientS);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat gradient = max(abs(gradientN), abs(gradientS));\\\\n\\\\t\\\\t\\\\t\\\\tif(pairN) lengthSign = -lengthSign;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 posB;\\\\n\\\\t\\\\t\\\\t\\\\tposB.x = posM.x;\\\\n\\\\t\\\\t\\\\t\\\\tposB.y = posM.y;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 offNP;\\\\n\\\\t\\\\t\\\\t\\\\toffNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\\\\n\\\\t\\\\t\\\\t\\\\toffNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\\\\n\\\\t\\\\t\\\\t\\\\tif(!horzSpan) posB.x += lengthSign * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\tif( horzSpan) posB.y += lengthSign * 0.5;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 posN;\\\\n\\\\t\\\\t\\\\t\\\\tposN.x = posB.x - offNP.x * FXAA_QUALITY_P0;\\\\n\\\\t\\\\t\\\\t\\\\tposN.y = posB.y - offNP.y * FXAA_QUALITY_P0;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat2 posP;\\\\n\\\\t\\\\t\\\\t\\\\tposP.x = posB.x + offNP.x * FXAA_QUALITY_P0;\\\\n\\\\t\\\\t\\\\t\\\\tposP.y = posB.y + offNP.y * FXAA_QUALITY_P0;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixE = subpixC * subpixC;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tif(!pairN) lumaNN = lumaSS;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat gradientScaled = gradient * 1.0/4.0;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat lumaMM = lumaM - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixF = subpixD * subpixE;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool lumaMLTZero = lumaMM < 0.0;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tlumaEndN -= lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\tlumaEndP -= lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool doneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool doneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;\\\\n\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool doneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;\\\\n\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 3)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 4)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 5)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 6)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 7)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 8)\\\\n\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 9)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 10)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 11)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#if (FXAA_QUALITY_PS > 12)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(doneNP) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneN = abs(lumaEndN) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneP = abs(lumaEndP) >= gradientScaled;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdoneNP = (!doneN) || (!doneP);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat dstN = posM.x - posN.x;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat dstP = posP.x - posM.x;\\\\n\\\\t\\\\t\\\\t\\\\tif(!horzSpan) dstN = posM.y - posN.y;\\\\n\\\\t\\\\t\\\\t\\\\tif(!horzSpan) dstP = posP.y - posM.y;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat spanLength = (dstP + dstN);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat spanLengthRcp = 1.0/spanLength;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool directionN = dstN < dstP;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat dst = min(dstN, dstP);\\\\n\\\\t\\\\t\\\\t\\\\tFxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixG = subpixF * subpixF;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat subpixH = subpixG * fxaaQualitySubpix;\\\\n\\\\t\\\\t/*--------------------------------------------------------------------------*/\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\\\\n\\\\t\\\\t\\\\t\\\\tFxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\\\\n\\\\t\\\\t\\\\t\\\\tif(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\\\\n\\\\t\\\\t\\\\t\\\\tif( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\\\\n\\\\t\\\\t\\\\t\\\\t#if (FXAA_DISCARD == 1)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\treturn FxaaTexTop(tex, posM);\\\\n\\\\t\\\\t\\\\t\\\\t#else\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\treturn FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);\\\\n\\\\t\\\\t\\\\t\\\\t#endif\\\\n\\\\t\\\\t}\\\\n\\\\t\\\\t/*==========================================================================*/\\\\n\\\\t\\\\t#endif\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\tgl_FragColor = FxaaPixelShader(\\\\n\\\\t\\\\t\\\\t\\\\tvUv,\\\\n\\\\t\\\\t\\\\t\\\\tvec4(0.0),\\\\n\\\\t\\\\t\\\\t\\\\ttDiffuse,\\\\n\\\\t\\\\t\\\\t\\\\ttDiffuse,\\\\n\\\\t\\\\t\\\\t\\\\ttDiffuse,\\\\n\\\\t\\\\t\\\\t\\\\tresolution,\\\\n\\\\t\\\\t\\\\t\\\\tvec4(0.0),\\\\n\\\\t\\\\t\\\\t\\\\tvec4(0.0),\\\\n\\\\t\\\\t\\\\t\\\\tvec4(0.0),\\\\n\\\\t\\\\t\\\\t\\\\t0.75,\\\\n\\\\t\\\\t\\\\t\\\\t0.166,\\\\n\\\\t\\\\t\\\\t\\\\t0.0833,\\\\n\\\\t\\\\t\\\\t\\\\t0.0,\\\\n\\\\t\\\\t\\\\t\\\\t0.0,\\\\n\\\\t\\\\t\\\\t\\\\t0.0,\\\\n\\\\t\\\\t\\\\t\\\\tvec4(0.0)\\\\n\\\\t\\\\t\\\\t);\\\\n\\\\n\\\\t\\\\t\\\\t// TODO avoid querying texture twice for same texel\\\\n\\\\t\\\\t\\\\tgl_FragColor.a = texture2D(tDiffuse, vUv).a;\\\\n\\\\t\\\\t}'};const aW=new class extends ua{constructor(){super(...arguments),this.transparent=ha.BOOLEAN(1,xj)}};class lW extends bj{constructor(){super(...arguments),this.paramsConfig=aW}static type(){return\\\\\\\"FXAA\\\\\\\"}_createPass(t){const e=new Hm(oW);return e.uniforms.resolution.value.set(1/t.resolution.x,1/t.resolution.y),e.material.transparent=!0,this.updatePass(e),e}updatePass(t){t.material.transparent=this.pv.transparent}}const cW={uniforms:{tDiffuse:{value:null}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 tex = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = LinearTosRGB( tex ); // optional: LinearToGamma( tex, float( GAMMA_FACTOR ) );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const hW=new class extends ua{};class uW extends bj{constructor(){super(...arguments),this.paramsConfig=hW}static type(){return\\\\\\\"gammaCorrection\\\\\\\"}_createPass(t){const e=new Hm(cW);return this.updatePass(e),e}updatePass(t){}}const dW=new class extends ua{constructor(){super(...arguments),this.amount=ha.FLOAT(2,{range:[0,10],rangeLocked:[!0,!1],step:.01,...xj}),this.transparent=ha.BOOLEAN(1,xj)}};class pW extends bj{constructor(){super(...arguments),this.paramsConfig=dW}static type(){return\\\\\\\"horizontalBlur\\\\\\\"}_createPass(t){const e=new Hm(CG);return e.resolution_x=t.resolution.x,this.updatePass(e),e}updatePass(t){t.uniforms.h.value=this.pv.amount/(t.resolution_x*window.devicePixelRatio),t.material.transparent=this.pv.transparent}}const _W=new class extends ua{constructor(){super(...arguments),this.map=ha.OPERATOR_PATH(vi.UV,{nodeSelection:{context:ts.COP},...xj}),this.darkness=ha.FLOAT(0,{range:[0,2],rangeLocked:[!0,!1],...xj}),this.offset=ha.FLOAT(0,{range:[0,2],rangeLocked:[!0,!1],...xj})}};class mW extends bj{constructor(){super(...arguments),this.paramsConfig=_W}static type(){return\\\\\\\"image\\\\\\\"}static _create_shader(){return{uniforms:{tDiffuse:{value:null},map:{value:null},offset:{value:1},darkness:{value:1}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\nvoid main() {\\\\n\\\\tvUv = uv;\\\\n\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n}\\\\\\\",fragmentShader:\\\\\\\"uniform float offset;\\\\nuniform float darkness;\\\\nuniform sampler2D tDiffuse;\\\\nuniform sampler2D map;\\\\nvarying vec2 vUv;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec4 texel = texture2D( tDiffuse, vUv );\\\\n\\\\tvec4 map_val = texture2D( map, vUv );\\\\n\\\\tvec2 uv = ( vUv - vec2( 0.5 ) ) * vec2( offset );\\\\n\\\\t// gl_FragColor = vec4( mix( texel.rgb, vec3( 1.0 - darkness ), dot( uv, uv ) ), texel.a );\\\\n\\\\tgl_FragColor = vec4( mix( texel.rgb, map_val.rgb, map_val.a ), texel.a );\\\\n\\\\n}\\\\n\\\\\\\"}}_createPass(t){const e=new Hm(mW._create_shader());return this.updatePass(e),e}updatePass(t){t.uniforms.darkness.value=this.pv.darkness,t.uniforms.offset.value=this.pv.offset,this._update_map(t)}async _update_map(t){this.p.map.isDirty()&&await this.p.map.compute();const e=this.p.map.found_node();if(e)if(e.context()==ts.COP){const n=e,i=(await n.compute()).coreContent();t.uniforms.map.value=i}else this.states.error.set(\\\\\\\"node is not COP\\\\\\\");else this.states.error.set(\\\\\\\"no map found\\\\\\\")}}const fW={tDiffuse:{value:null},texture1:{value:null},texture2:{value:null},h:{value:1/512}},gW=\\\\\\\"varying vec2 vUv;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvUv = uv;\\\\n\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n}\\\\\\\",vW=\\\\\\\"uniform sampler2D texture1;\\\\nuniform sampler2D texture2;\\\\nvarying vec2 vUv;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec4 t1 = texture2D( texture1, vUv);\\\\n\\\\tvec4 t2 = texture2D( texture2, vUv);\\\\n\\\\n\\\\tvec3 c1 = t1.rgb * t1.a * (1.0-t2.a);\\\\n\\\\tvec3 c2 = t2.rgb * t2.a;\\\\n\\\\tfloat a = t2.a + t1.a;\\\\n\\\\tvec3 c = max(c1,c2);\\\\n\\\\n\\\\tgl_FragColor = vec4(c,a);\\\\n\\\\n}\\\\\\\";class yW extends km{constructor(t,e){super(),this._composer1=t,this._composer2=e,this.uniforms=I.clone(fW),this.material=new F({uniforms:this.uniforms,vertexShader:gW,fragmentShader:vW,transparent:!0}),this.fsQuad=new Vm(this.material)}render(t,e){this._composer1.render(),this._composer2.render(),this.uniforms.texture1.value=this._composer1.readBuffer.texture,this.uniforms.texture2.value=this._composer2.readBuffer.texture,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}}const xW=new class extends ua{};class bW extends bj{constructor(){super(...arguments),this.paramsConfig=xW}static type(){return\\\\\\\"layer\\\\\\\"}initializeNode(){super.initializeNode(),this.io.inputs.setCount(2)}setupComposer(t){const e=t.composer.renderer,n={minFilter:w.V,magFilter:w.V,format:w.Ib,stencilBuffer:!0},i=li.renderersController.renderTarget(e.domElement.offsetWidth,e.domElement.offsetHeight,n),s=li.renderersController.renderTarget(e.domElement.offsetWidth,e.domElement.offsetHeight,n),r=new qm(e,i),o=new qm(e,s);r.renderToScreen=!1,o.renderToScreen=!1;const a={...t},l={...t};a.composer=r,l.composer=o,this._addPassFromInput(0,a),this._addPassFromInput(1,l);const c=new yW(r,o);this.updatePass(c),t.composer.addPass(c)}updatePass(t){}}const wW=new class extends ua{constructor(){super(...arguments),this.overrideScene=ha.BOOLEAN(0,xj),this.scene=ha.OPERATOR_PATH(\\\\\\\"/scene1\\\\\\\",{visibleIf:{overrideScene:1},nodeSelection:{context:ts.OBJ,types:[WV.type()]},...xj}),this.overrideCamera=ha.BOOLEAN(0,xj),this.camera=ha.OPERATOR_PATH(\\\\\\\"/perspective_camera1\\\\\\\",{visibleIf:{overrideCamera:1},nodeSelection:{context:ts.OBJ},...xj}),this.inverse=ha.BOOLEAN(0,xj)}};class TW extends bj{constructor(){super(...arguments),this.paramsConfig=wW}static type(){return\\\\\\\"mask\\\\\\\"}_createPass(t){const e=new jm(t.scene,t.camera);return e.context={scene:t.scene,camera:t.camera},this.updatePass(e),e}updatePass(t){t.inverse=this.pv.inverse,this._update_scene(t),this._updateCamera(t)}async _update_scene(t){if(this.pv.overrideScene){this.p.scene.isDirty()&&await this.p.scene.compute();const e=this.p.scene.found_node_with_expected_type();if(e)return void(t.scene=e.object)}t.scene=t.context.scene}async _updateCamera(t){if(this.pv.overrideCamera){this.p.camera.isDirty()&&await this.p.camera.compute();const e=this.p.camera.found_node_with_expected_type();if(e)return void(t.camera=e.object)}t.camera=t.context.camera}}const AW=new class extends ua{};class MW extends bj{constructor(){super(...arguments),this.paramsConfig=AW}static type(){return\\\\\\\"null\\\\\\\"}}class EW extends km{constructor(t,e,n,i){super(),this.renderScene=e,this.renderCamera=n,this.selectedObjects=void 0!==i?i:[],this.visibleEdgeColor=new D.a(1,1,1),this.hiddenEdgeColor=new D.a(.1,.04,.02),this.edgeGlow=0,this.usePatternTexture=!1,this.edgeThickness=1,this.edgeStrength=3,this.downSampleRatio=2,this.pulsePeriod=0,this._visibilityCache=new Map,this.resolution=void 0!==t?new d.a(t.x,t.y):new d.a(256,256);const s={minFilter:w.V,magFilter:w.V,format:w.Ib},r=Math.round(this.resolution.x/this.downSampleRatio),o=Math.round(this.resolution.y/this.downSampleRatio);this.maskBufferMaterial=new lt.a({color:16777215}),this.maskBufferMaterial.side=w.z,this.renderTargetMaskBuffer=new K(this.resolution.x,this.resolution.y,s),this.renderTargetMaskBuffer.texture.name=\\\\\\\"OutlinePass.mask\\\\\\\",this.renderTargetMaskBuffer.texture.generateMipmaps=!1,this.depthMaterial=new Sn,this.depthMaterial.side=w.z,this.depthMaterial.depthPacking=w.Hb,this.depthMaterial.blending=w.ub,this.prepareMaskMaterial=this.getPrepareMaskMaterial(),this.prepareMaskMaterial.side=w.z,this.prepareMaskMaterial.fragmentShader=function(t,e){var n=e.isPerspectiveCamera?\\\\\\\"perspective\\\\\\\":\\\\\\\"orthographic\\\\\\\";return t.replace(/DEPTH_TO_VIEW_Z/g,n+\\\\\\\"DepthToViewZ\\\\\\\")}(this.prepareMaskMaterial.fragmentShader,this.renderCamera),this.renderTargetDepthBuffer=new K(this.resolution.x,this.resolution.y,s),this.renderTargetDepthBuffer.texture.name=\\\\\\\"OutlinePass.depth\\\\\\\",this.renderTargetDepthBuffer.texture.generateMipmaps=!1,this.renderTargetMaskDownSampleBuffer=new K(r,o,s),this.renderTargetMaskDownSampleBuffer.texture.name=\\\\\\\"OutlinePass.depthDownSample\\\\\\\",this.renderTargetMaskDownSampleBuffer.texture.generateMipmaps=!1,this.renderTargetBlurBuffer1=new K(r,o,s),this.renderTargetBlurBuffer1.texture.name=\\\\\\\"OutlinePass.blur1\\\\\\\",this.renderTargetBlurBuffer1.texture.generateMipmaps=!1,this.renderTargetBlurBuffer2=new K(Math.round(r/2),Math.round(o/2),s),this.renderTargetBlurBuffer2.texture.name=\\\\\\\"OutlinePass.blur2\\\\\\\",this.renderTargetBlurBuffer2.texture.generateMipmaps=!1,this.edgeDetectionMaterial=this.getEdgeDetectionMaterial(),this.renderTargetEdgeBuffer1=new K(r,o,s),this.renderTargetEdgeBuffer1.texture.name=\\\\\\\"OutlinePass.edge1\\\\\\\",this.renderTargetEdgeBuffer1.texture.generateMipmaps=!1,this.renderTargetEdgeBuffer2=new K(Math.round(r/2),Math.round(o/2),s),this.renderTargetEdgeBuffer2.texture.name=\\\\\\\"OutlinePass.edge2\\\\\\\",this.renderTargetEdgeBuffer2.texture.generateMipmaps=!1;this.separableBlurMaterial1=this.getSeperableBlurMaterial(4),this.separableBlurMaterial1.uniforms.texSize.value.set(r,o),this.separableBlurMaterial1.uniforms.kernelRadius.value=1,this.separableBlurMaterial2=this.getSeperableBlurMaterial(4),this.separableBlurMaterial2.uniforms.texSize.value.set(Math.round(r/2),Math.round(o/2)),this.separableBlurMaterial2.uniforms.kernelRadius.value=4,this.overlayMaterial=this.getOverlayMaterial(),void 0===zm&&console.error(\\\\\\\"THREE.OutlinePass relies on CopyShader\\\\\\\");const a=zm;this.copyUniforms=I.clone(a.uniforms),this.copyUniforms.opacity.value=1,this.materialCopy=new F({uniforms:this.copyUniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader,blending:w.ub,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new D.a,this.oldClearAlpha=1,this.fsQuad=new Vm(null),this.tempPulseColor1=new D.a,this.tempPulseColor2=new D.a,this.textureMatrix=new A.a}dispose(){this.renderTargetMaskBuffer.dispose(),this.renderTargetDepthBuffer.dispose(),this.renderTargetMaskDownSampleBuffer.dispose(),this.renderTargetBlurBuffer1.dispose(),this.renderTargetBlurBuffer2.dispose(),this.renderTargetEdgeBuffer1.dispose(),this.renderTargetEdgeBuffer2.dispose()}setSize(t,e){this.renderTargetMaskBuffer.setSize(t,e),this.renderTargetDepthBuffer.setSize(t,e);let n=Math.round(t/this.downSampleRatio),i=Math.round(e/this.downSampleRatio);this.renderTargetMaskDownSampleBuffer.setSize(n,i),this.renderTargetBlurBuffer1.setSize(n,i),this.renderTargetEdgeBuffer1.setSize(n,i),this.separableBlurMaterial1.uniforms.texSize.value.set(n,i),n=Math.round(n/2),i=Math.round(i/2),this.renderTargetBlurBuffer2.setSize(n,i),this.renderTargetEdgeBuffer2.setSize(n,i),this.separableBlurMaterial2.uniforms.texSize.value.set(n,i)}changeVisibilityOfSelectedObjects(t){const e=this._visibilityCache;function n(n){n.isMesh&&(!0===t?n.visible=e.get(n):(e.set(n,n.visible),n.visible=t))}for(let t=0;t<this.selectedObjects.length;t++){this.selectedObjects[t].traverse(n)}}changeVisibilityOfNonSelectedObjects(t){const e=this._visibilityCache,n=[];function i(t){t.isMesh&&n.push(t)}for(let t=0;t<this.selectedObjects.length;t++){this.selectedObjects[t].traverse(i)}this.renderScene.traverse((function(i){if(i.isMesh||i.isSprite){let s=!1;for(let t=0;t<n.length;t++){if(n[t].id===i.id){s=!0;break}}if(!1===s){const n=i.visible;!1!==t&&!0!==e.get(i)||(i.visible=t),e.set(i,n)}}else(i.isPoints||i.isLine)&&(!0===t?i.visible=e.get(i):(e.set(i,i.visible),i.visible=t))}))}updateTextureMatrix(){this.textureMatrix.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),this.textureMatrix.multiply(this.renderCamera.projectionMatrix),this.textureMatrix.multiply(this.renderCamera.matrixWorldInverse)}render(t,e,n,i,s){if(this.selectedObjects.length>0){t.getClearColor(this._oldClearColor),this.oldClearAlpha=t.getClearAlpha();const e=t.autoClear;t.autoClear=!1,s&&t.state.buffers.stencil.setTest(!1),t.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);const i=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,t.setRenderTarget(this.renderTargetDepthBuffer),t.clear(),t.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,t.setRenderTarget(this.renderTargetMaskBuffer),t.clear(),t.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=i,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,t.setRenderTarget(this.renderTargetMaskDownSampleBuffer),t.clear(),this.fsQuad.render(t),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){const t=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(t),this.tempPulseColor2.multiplyScalar(t)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,t.setRenderTarget(this.renderTargetEdgeBuffer1),t.clear(),this.fsQuad.render(t),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=EW.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,t.setRenderTarget(this.renderTargetBlurBuffer1),t.clear(),this.fsQuad.render(t),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=EW.BlurDirectionY,t.setRenderTarget(this.renderTargetEdgeBuffer1),t.clear(),this.fsQuad.render(t),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=EW.BlurDirectionX,t.setRenderTarget(this.renderTargetBlurBuffer2),t.clear(),this.fsQuad.render(t),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=EW.BlurDirectionY,t.setRenderTarget(this.renderTargetEdgeBuffer2),t.clear(),this.fsQuad.render(t),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,s&&t.state.buffers.stencil.setTest(!0),t.setRenderTarget(n),this.fsQuad.render(t),t.setClearColor(this._oldClearColor,this.oldClearAlpha),t.autoClear=e}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=n.texture,t.setRenderTarget(null),this.fsQuad.render(t))}getPrepareMaskMaterial(){return new F({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new d.a(.5,.5)},textureMatrix:{value:null}},vertexShader:\\\\\\\"#include <morphtarget_pars_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t#include <skinning_pars_vertex>\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec4 projTexCoord;\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec4 vPosition;\\\\n\\\\t\\\\t\\\\t\\\\tuniform mat4 textureMatrix;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <skinbase_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <begin_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <morphtarget_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <skinning_vertex>\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t#include <project_vertex>\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvPosition = mvPosition;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tprojTexCoord = textureMatrix * worldPosition;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"#include <packing>\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec4 vPosition;\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec4 projTexCoord;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D depthTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec2 cameraNearFar;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\"})}getEdgeDetectionMaterial(){return new F({uniforms:{maskTexture:{value:null},texSize:{value:new d.a(.5,.5)},visibleEdgeColor:{value:new p.a(1,1,1)},hiddenEdgeColor:{value:new p.a(1,1,1)}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D maskTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec2 texSize;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec3 visibleEdgeColor;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec3 hiddenEdgeColor;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 invSize = 1.0 / texSize;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat diff1 = (c1.r - c2.r)*0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat diff2 = (c3.r - c4.r)*0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat d = length( vec2(diff1, diff2) );\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat a1 = min(c1.g, c2.g);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat a2 = min(c3.g, c4.g);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat visibilityFactor = min(a1, a2);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\"})}getSeperableBlurMaterial(t){return new F({defines:{MAX_RADIUS:t},uniforms:{colorTexture:{value:null},texSize:{value:new d.a(.5,.5)},direction:{value:new d.a(.5,.5)},kernelRadius:{value:1}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"#include <common>\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D colorTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec2 texSize;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec2 direction;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float kernelRadius;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfloat gaussianPdf(in float x, in float sigma) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 invSize = 1.0 / texSize;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat weightSum = gaussianPdf(0.0, kernelRadius);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 uvOffset = delta;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tfloat w = gaussianPdf(uvOffset.x, kernelRadius);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdiffuseSum += ((sample1 + sample2) * w);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tweightSum += (2.0 * w);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tuvOffset += delta;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = diffuseSum/weightSum;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\"})}getOverlayMaterial(){return new F({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D maskTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D edgeTexture1;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D edgeTexture2;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D patternTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float edgeStrength;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float edgeGlow;\\\\n\\\\t\\\\t\\\\t\\\\tuniform bool usePatternTexture;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 maskColor = texture2D(maskTexture, vUv);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tif(usePatternTexture)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = finalColor;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",blending:w.e,depthTest:!1,depthWrite:!1,transparent:!0})}}EW.BlurDirectionX=new d.a(1,0),EW.BlurDirectionY=new d.a(0,1);const SW=new class extends ua{constructor(){super(...arguments),this.objectsMask=ha.STRING(\\\\\\\"*outlined*\\\\\\\",{...xj}),this.refreshObjects=ha.BUTTON(null,{...xj}),this.printObjects=ha.BUTTON(null,{cook:!1,callback:t=>{CW.PARAM_CALLBACK_printResolve(t)}}),this.edgeStrength=ha.FLOAT(3,{range:[0,10],rangeLocked:[!0,!1],...xj}),this.edgeThickness=ha.FLOAT(1,{range:[0,4],rangeLocked:[!0,!1],...xj}),this.edgeGlow=ha.FLOAT(0,{range:[0,1],rangeLocked:[!0,!1],...xj}),this.pulsePeriod=ha.FLOAT(0,{range:[0,5],rangeLocked:[!0,!1],...xj}),this.visibleEdgeColor=ha.COLOR([1,1,1],{...xj}),this.hiddenEdgeColor=ha.COLOR([.2,.1,.4],{...xj})}};class CW extends bj{constructor(){super(...arguments),this.paramsConfig=SW,this._resolvedObjects=[],this._map=new Map}static type(){return\\\\\\\"outline\\\\\\\"}_createPass(t){const e=new EW(new d.a(t.resolution.x,t.resolution.y),t.scene,t.camera,t.scene.children);return this.updatePass(e),e}updatePass(t){t.edgeStrength=this.pv.edgeStrength,t.edgeThickness=this.pv.edgeThickness,t.edgeGlow=this.pv.edgeGlow,t.pulsePeriod=this.pv.pulsePeriod,t.visibleEdgeColor=this.pv.visibleEdgeColor,t.hiddenEdgeColor=this.pv.hiddenEdgeColor,this._setSelectedObjects(t)}_setSelectedObjects(t){const e=this.scene().objectsByMask(this.pv.objectsMask);this._map.clear();for(let t of e)this._map.set(t.uuid,t);this._resolvedObjects=e.filter((t=>{let e=!1;return t.traverseAncestors((t=>{this._map.has(t.uuid)&&(e=!0)})),!e})),t.selectedObjects=this._resolvedObjects}static PARAM_CALLBACK_printResolve(t){t.printResolve()}printResolve(){console.log(this._resolvedObjects)}}const NW={uniforms:{tDiffuse:{value:null},resolution:{value:null},pixelSize:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying highp vec2 vUv;\\\\n\\\\n\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform float pixelSize;\\\\n\\\\t\\\\tuniform vec2 resolution;\\\\n\\\\n\\\\t\\\\tvarying highp vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main(){\\\\n\\\\n\\\\t\\\\t\\\\tvec2 dxy = pixelSize / resolution;\\\\n\\\\t\\\\t\\\\tvec2 coord = dxy * floor( vUv / dxy );\\\\n\\\\t\\\\t\\\\tgl_FragColor = texture2D(tDiffuse, coord);\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const LW=new class extends ua{constructor(){super(...arguments),this.pixelSize=ha.INTEGER(16,{range:[1,50],rangeLocked:[!0,!1],...xj})}};class OW extends bj{constructor(){super(...arguments),this.paramsConfig=LW}static type(){return\\\\\\\"pixel\\\\\\\"}_createPass(t){const e=new Hm(NW);return e.uniforms.resolution.value=t.resolution,e.uniforms.resolution.value.multiplyScalar(window.devicePixelRatio),this.updatePass(e),e}updatePass(t){t.uniforms.pixelSize.value=this.pv.pixelSize}}const PW=new class extends ua{constructor(){super(...arguments),this.overrideScene=ha.BOOLEAN(0,xj),this.scene=ha.OPERATOR_PATH(\\\\\\\"/scene1\\\\\\\",{visibleIf:{overrideScene:1},nodeSelection:{context:ts.OBJ,types:[WV.type()]},...xj}),this.overrideCamera=ha.BOOLEAN(0,xj),this.camera=ha.OPERATOR_PATH(\\\\\\\"/perspective_camera1\\\\\\\",{visibleIf:{overrideCamera:1},nodeSelection:{context:ts.OBJ},...xj})}};class RW extends bj{constructor(){super(...arguments),this.paramsConfig=PW}static type(){return\\\\\\\"render\\\\\\\"}_createPass(t){const e=new Ym(t.scene,t.camera);return e.context={camera:t.camera,scene:t.scene},this.updatePass(e),e}updatePass(t){this._updateCamera(t),this._update_scene(t)}async _updateCamera(t){if(this.pv.overrideCamera){this.p.camera.isDirty()&&await this.p.camera.compute();const e=this.p.camera.found_node_with_context(ts.OBJ);if(e&&(e.type()==is.PERSPECTIVE||e.type()==is.ORTHOGRAPHIC)){const n=e.object;t.camera=n}}else t.camera=t.context.camera}async _update_scene(t){if(this.pv.overrideScene){this.p.camera.isDirty()&&await this.p.scene.compute();const e=this.p.scene.found_node_with_context(ts.OBJ);if(e&&e.type()==WV.type()){const n=e.object;t.scene=n}}else t.scene=t.context.scene}}const IW={uniforms:{tDiffuse:{value:null},amount:{value:.005},angle:{value:0}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform float amount;\\\\n\\\\t\\\\tuniform float angle;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec2 offset = amount * vec2( cos(angle), sin(angle));\\\\n\\\\t\\\\t\\\\tvec4 cr = texture2D(tDiffuse, vUv + offset);\\\\n\\\\t\\\\t\\\\tvec4 cga = texture2D(tDiffuse, vUv);\\\\n\\\\t\\\\t\\\\tvec4 cb = texture2D(tDiffuse, vUv - offset);\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const FW=new class extends ua{constructor(){super(...arguments),this.amount=ha.FLOAT(.005,{range:[0,1],rangeLocked:[!0,!1],...xj}),this.angle=ha.FLOAT(0,{range:[0,10],rangeLocked:[!0,!1],...xj})}};class DW extends bj{constructor(){super(...arguments),this.paramsConfig=FW}static type(){return\\\\\\\"RGBShift\\\\\\\"}_createPass(t){const e=new Hm(IW);return this.updatePass(e),e}updatePass(t){t.uniforms.amount.value=this.pv.amount,t.uniforms.angle.value=this.pv.angle}}const BW={uniforms:{tDiffuse:{value:null},amount:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform float amount;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 color = texture2D( tDiffuse, vUv );\\\\n\\\\t\\\\t\\\\tvec3 c = color.rgb;\\\\n\\\\n\\\\t\\\\t\\\\tcolor.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );\\\\n\\\\t\\\\t\\\\tcolor.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );\\\\n\\\\t\\\\t\\\\tcolor.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const zW=new class extends ua{constructor(){super(...arguments),this.amount=ha.FLOAT(.5,{range:[0,2],rangeLocked:[!1,!1],...xj})}};class kW extends bj{constructor(){super(...arguments),this.paramsConfig=zW}static type(){return\\\\\\\"sepia\\\\\\\"}_createPass(t){const e=new Hm(BW);return this.updatePass(e),e}updatePass(t){t.uniforms.amount.value=this.pv.amount}}const UW=new class extends ua{};class GW extends bj{constructor(){super(...arguments),this.paramsConfig=UW}static type(){return\\\\\\\"sequence\\\\\\\"}initializeNode(){super.initializeNode(),this.io.inputs.setCount(0,4)}setupComposer(t){this._addPassFromInput(0,t),this._addPassFromInput(1,t),this._addPassFromInput(2,t),this._addPassFromInput(3,t)}}const VW=I.clone(CG.uniforms);VW.delta={value:new d.a};const HW={uniforms:VW,vertexShader:CG.vertexShader,fragmentShader:\\\\\\\"\\\\n#include <common>\\\\n#define ITERATIONS 10.0\\\\nuniform sampler2D tDiffuse;\\\\nuniform vec2 delta;\\\\nvarying vec2 vUv;\\\\nvoid main() {\\\\n\\\\tvec4 color = vec4( 0.0 );\\\\n\\\\tfloat total = 0.0;\\\\n\\\\tfloat offset = rand( vUv );\\\\n\\\\tfor ( float t = -ITERATIONS; t <= ITERATIONS; t ++ ) {\\\\n\\\\t\\\\tfloat percent = ( t + offset - 0.5 ) / ITERATIONS;\\\\n\\\\t\\\\tfloat weight = 1.0 - abs( percent );\\\\n\\\\t\\\\tcolor += texture2D( tDiffuse, vUv + delta * percent ) * weight;\\\\n\\\\t\\\\ttotal += weight;\\\\n\\\\t}\\\\n\\\\tgl_FragColor = color / total;\\\\n}\\\\\\\"};const jW=new class extends ua{constructor(){super(...arguments),this.delta=ha.VECTOR2([2,2],{...xj})}};class WW extends bj{constructor(){super(...arguments),this.paramsConfig=jW}static type(){return\\\\\\\"triangleBlur\\\\\\\"}_createPass(t){const e=new Hm(HW);return e.resolution=t.resolution.clone(),this.updatePass(e),e}updatePass(t){t.uniforms.delta.value.copy(this.pv.delta).divide(t.resolution).multiplyScalar(window.devicePixelRatio)}}const qW={shaderID:\\\\\\\"luminosityHighPass\\\\\\\",uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new D.a(0)},defaultOpacity:{value:0}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\t\\\\tuniform vec3 defaultColor;\\\\n\\\\t\\\\tuniform float defaultOpacity;\\\\n\\\\t\\\\tuniform float luminosityThreshold;\\\\n\\\\t\\\\tuniform float smoothWidth;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvec4 texel = texture2D( tDiffuse, vUv );\\\\n\\\\n\\\\t\\\\t\\\\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\\\\n\\\\n\\\\t\\\\t\\\\tfloat v = dot( texel.xyz, luma );\\\\n\\\\n\\\\t\\\\t\\\\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\\\\n\\\\n\\\\t\\\\t\\\\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\\\\n\\\\n\\\\t\\\\t\\\\tgl_FragColor = mix( outputColor, texel, alpha );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};class XW extends km{constructor(t,e,n,i){super(),this.strength=void 0!==e?e:1,this.radius=n,this.threshold=i,this.resolution=void 0!==t?new d.a(t.x,t.y):new d.a(256,256),this.clearColor=new D.a(0,0,0);const s={minFilter:w.V,magFilter:w.V,format:w.Ib};this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let r=Math.round(this.resolution.x/2),o=Math.round(this.resolution.y/2);this.renderTargetBright=new K(r,o,s),this.renderTargetBright.texture.name=\\\\\\\"UnrealBloomPass.bright\\\\\\\",this.renderTargetBright.texture.generateMipmaps=!1;for(let t=0;t<this.nMips;t++){const e=new K(r,o,s);e.texture.name=\\\\\\\"UnrealBloomPass.h\\\\\\\"+t,e.texture.generateMipmaps=!1,this.renderTargetsHorizontal.push(e);const n=new K(r,o,s);n.texture.name=\\\\\\\"UnrealBloomPass.v\\\\\\\"+t,n.texture.generateMipmaps=!1,this.renderTargetsVertical.push(n),r=Math.round(r/2),o=Math.round(o/2)}void 0===qW&&console.error(\\\\\\\"THREE.UnrealBloomPass relies on LuminosityHighPassShader\\\\\\\");const a=qW;this.highPassUniforms=I.clone(a.uniforms),this.highPassUniforms.luminosityThreshold.value=i,this.highPassUniforms.smoothWidth.value=.01,this.materialHighPassFilter=new F({uniforms:this.highPassUniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader,defines:{}}),this.separableBlurMaterials=[];const l=[3,5,7,9,11];r=Math.round(this.resolution.x/2),o=Math.round(this.resolution.y/2);for(let t=0;t<this.nMips;t++)this.separableBlurMaterials.push(this.getSeperableBlurMaterial(l[t])),this.separableBlurMaterials[t].uniforms.texSize.value=new d.a(r,o),r=Math.round(r/2),o=Math.round(o/2);this.compositeMaterial=this.getCompositeMaterial(this.nMips),this.compositeMaterial.uniforms.blurTexture1.value=this.renderTargetsVertical[0].texture,this.compositeMaterial.uniforms.blurTexture2.value=this.renderTargetsVertical[1].texture,this.compositeMaterial.uniforms.blurTexture3.value=this.renderTargetsVertical[2].texture,this.compositeMaterial.uniforms.blurTexture4.value=this.renderTargetsVertical[3].texture,this.compositeMaterial.uniforms.blurTexture5.value=this.renderTargetsVertical[4].texture,this.compositeMaterial.uniforms.bloomStrength.value=e,this.compositeMaterial.uniforms.bloomRadius.value=.1,this.compositeMaterial.needsUpdate=!0;this.compositeMaterial.uniforms.bloomFactors.value=[1,.8,.6,.4,.2],this.bloomTintColors=[new p.a(1,1,1),new p.a(1,1,1),new p.a(1,1,1),new p.a(1,1,1),new p.a(1,1,1)],this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors,void 0===zm&&console.error(\\\\\\\"THREE.UnrealBloomPass relies on CopyShader\\\\\\\");const c=zm;this.copyUniforms=I.clone(c.uniforms),this.copyUniforms.opacity.value=1,this.materialCopy=new F({uniforms:this.copyUniforms,vertexShader:c.vertexShader,fragmentShader:c.fragmentShader,blending:w.e,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new D.a,this.oldClearAlpha=1,this.basic=new lt.a,this.fsQuad=new Vm(null)}dispose(){for(let t=0;t<this.renderTargetsHorizontal.length;t++)this.renderTargetsHorizontal[t].dispose();for(let t=0;t<this.renderTargetsVertical.length;t++)this.renderTargetsVertical[t].dispose();this.renderTargetBright.dispose()}setSize(t,e){let n=Math.round(t/2),i=Math.round(e/2);this.renderTargetBright.setSize(n,i);for(let t=0;t<this.nMips;t++)this.renderTargetsHorizontal[t].setSize(n,i),this.renderTargetsVertical[t].setSize(n,i),this.separableBlurMaterials[t].uniforms.texSize.value=new d.a(n,i),n=Math.round(n/2),i=Math.round(i/2)}render(t,e,n,i,s){t.getClearColor(this._oldClearColor),this.oldClearAlpha=t.getClearAlpha();const r=t.autoClear;t.autoClear=!1,t.setClearColor(this.clearColor,0),s&&t.state.buffers.stencil.setTest(!1),this.renderToScreen&&(this.fsQuad.material=this.basic,this.basic.map=n.texture,t.setRenderTarget(null),t.clear(),this.fsQuad.render(t)),this.highPassUniforms.tDiffuse.value=n.texture,this.highPassUniforms.luminosityThreshold.value=this.threshold,this.fsQuad.material=this.materialHighPassFilter,t.setRenderTarget(this.renderTargetBright),t.clear(),this.fsQuad.render(t);let o=this.renderTargetBright;for(let e=0;e<this.nMips;e++)this.fsQuad.material=this.separableBlurMaterials[e],this.separableBlurMaterials[e].uniforms.colorTexture.value=o.texture,this.separableBlurMaterials[e].uniforms.direction.value=XW.BlurDirectionX,t.setRenderTarget(this.renderTargetsHorizontal[e]),t.clear(),this.fsQuad.render(t),this.separableBlurMaterials[e].uniforms.colorTexture.value=this.renderTargetsHorizontal[e].texture,this.separableBlurMaterials[e].uniforms.direction.value=XW.BlurDirectionY,t.setRenderTarget(this.renderTargetsVertical[e]),t.clear(),this.fsQuad.render(t),o=this.renderTargetsVertical[e];this.fsQuad.material=this.compositeMaterial,this.compositeMaterial.uniforms.bloomStrength.value=this.strength,this.compositeMaterial.uniforms.bloomRadius.value=this.radius,this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors,t.setRenderTarget(this.renderTargetsHorizontal[0]),t.clear(),this.fsQuad.render(t),this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetsHorizontal[0].texture,s&&t.state.buffers.stencil.setTest(!0),this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(n),this.fsQuad.render(t)),t.setClearColor(this._oldClearColor,this.oldClearAlpha),t.autoClear=r}getSeperableBlurMaterial(t){return new F({defines:{KERNEL_RADIUS:t,SIGMA:t},uniforms:{colorTexture:{value:null},texSize:{value:new d.a(.5,.5)},direction:{value:new d.a(.5,.5)}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"#include <common>\\\\n\\\\t\\\\t\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D colorTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec2 texSize;\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec2 direction;\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfloat gaussianPdf(in float x, in float sigma) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec2 invSize = 1.0 / texSize;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat fSigma = float(SIGMA);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat weightSum = gaussianPdf(0.0, fSigma);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tfloat x = float(i);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tfloat w = gaussianPdf(x, fSigma);\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tvec2 uvOffset = direction * invSize * x;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tdiffuseSum += (sample1 + sample2) * w;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tweightSum += 2.0 * w;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\"})}getCompositeMaterial(t){return new F({defines:{NUM_MIPS:t},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},dirtTexture:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"varying vec2 vUv;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D blurTexture1;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D blurTexture2;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D blurTexture3;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D blurTexture4;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D blurTexture5;\\\\n\\\\t\\\\t\\\\t\\\\tuniform sampler2D dirtTexture;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float bloomStrength;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float bloomRadius;\\\\n\\\\t\\\\t\\\\t\\\\tuniform float bloomFactors[NUM_MIPS];\\\\n\\\\t\\\\t\\\\t\\\\tuniform vec3 bloomTintColors[NUM_MIPS];\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tfloat lerpBloomFactor(const in float factor) {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tfloat mirrorFactor = 1.2 - factor;\\\\n\\\\t\\\\t\\\\t\\\\t\\\\treturn mix(factor, mirrorFactor, bloomRadius);\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\n\\\\t\\\\t\\\\t\\\\tvoid main() {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\\\\"})}}XW.BlurDirectionX=new d.a(1,0),XW.BlurDirectionY=new d.a(0,1);const YW=new class extends ua{constructor(){super(...arguments),this.strength=ha.FLOAT(1.5,{range:[0,3],rangeLocked:[!0,!1],...xj}),this.radius=ha.FLOAT(1,{...xj}),this.threshold=ha.FLOAT(0,{...xj})}};class $W extends bj{constructor(){super(...arguments),this.paramsConfig=YW}static type(){return\\\\\\\"unrealBloom\\\\\\\"}_createPass(t){return new XW(new d.a(t.resolution.x,t.resolution.y),this.pv.strength,this.pv.radius,this.pv.threshold)}updatePass(t){t.strength=this.pv.strength,t.radius=this.pv.radius,t.threshold=this.pv.threshold}}const JW=new class extends ua{constructor(){super(...arguments),this.amount=ha.FLOAT(2,{range:[0,10],rangeLocked:[!0,!1],step:.01,...xj}),this.transparent=ha.BOOLEAN(1,xj)}};class ZW extends bj{constructor(){super(...arguments),this.paramsConfig=JW}static type(){return\\\\\\\"verticalBlur\\\\\\\"}_createPass(t){const e=new Hm(NG);return e.resolution_y=t.resolution.y,this.updatePass(e),e}updatePass(t){t.uniforms.v.value=this.pv.amount/(t.resolution_y*window.devicePixelRatio),t.material.transparent=this.pv.transparent}}const KW={uniforms:{tDiffuse:{value:null},offset:{value:1},darkness:{value:1}},vertexShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\tvUv = uv;\\\\n\\\\t\\\\t\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n\\\\t\\\\t}\\\\\\\",fragmentShader:\\\\\\\"\\\\n\\\\n\\\\t\\\\tuniform float offset;\\\\n\\\\t\\\\tuniform float darkness;\\\\n\\\\n\\\\t\\\\tuniform sampler2D tDiffuse;\\\\n\\\\n\\\\t\\\\tvarying vec2 vUv;\\\\n\\\\n\\\\t\\\\tvoid main() {\\\\n\\\\n\\\\t\\\\t\\\\t// Eskil's vignette\\\\n\\\\n\\\\t\\\\t\\\\tvec4 texel = texture2D( tDiffuse, vUv );\\\\n\\\\t\\\\t\\\\tvec2 uv = ( vUv - vec2( 0.5 ) ) * vec2( offset );\\\\n\\\\t\\\\t\\\\tgl_FragColor = vec4( mix( texel.rgb, vec3( 1.0 - darkness ), dot( uv, uv ) ), texel.a );\\\\n\\\\n\\\\t\\\\t}\\\\\\\"};const QW=new class extends ua{constructor(){super(...arguments),this.offset=ha.FLOAT(1,{range:[0,1],rangeLocked:[!1,!1],...xj}),this.darkness=ha.FLOAT(1,{range:[0,2],rangeLocked:[!0,!1],...xj})}};class tq extends bj{constructor(){super(...arguments),this.paramsConfig=QW}static type(){return\\\\\\\"vignette\\\\\\\"}_createPass(t){const e=new Hm(KW);return this.updatePass(e),e}updatePass(t){t.uniforms.offset.value=this.pv.offset,t.uniforms.darkness.value=this.pv.darkness}}class eq extends aa{static context(){return ts.POST}cook(){this.cookController.endCook()}}class nq extends eq{}class iq extends nq{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class sq extends nq{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class rq extends nq{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class oq extends nq{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class aq extends eq{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class lq extends nq{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class cq extends aa{static context(){return ts.ROP}cook(){this.cookController.endCook()}}class hq extends cq{}class uq extends hq{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class dq extends Q.a{constructor(t){super(),this._element=t,this._element.style.position=\\\\\\\"absolute\\\\\\\",this.addEventListener(\\\\\\\"removed\\\\\\\",this._on_removed.bind(this))}_on_removed(){this.traverse((function(t){t instanceof dq&&t.element instanceof Element&&null!==t.element.parentNode&&t.element.parentNode.removeChild(t.element)}))}get element(){return this._element}clone(t){const e=this._element.cloneNode(!0);return new dq(e).copy(this,t)}copy(t,e){return Q.a.prototype.copy.call(this,t,e),this._element=t.element.cloneNode(!0),this.matrixAutoUpdate=t.matrixAutoUpdate,this}}class pq{constructor(){this._width=0,this._height=0,this._widthHalf=0,this._heightHalf=0,this.vector=new p.a,this.viewMatrix=new A.a,this.viewProjectionMatrix=new A.a,this.cache_distanceToCameraSquared=new WeakMap,this.domElement=document.createElement(\\\\\\\"div\\\\\\\"),this._sort_objects=!1,this._use_fog=!1,this._fog_near=1,this._fog_far=100,this.a=new p.a,this.b=new p.a,this.domElement.classList.add(\\\\\\\"polygonjs-CSS2DRenderer\\\\\\\")}getSize(){return{width:this._width,height:this._height}}setSize(t,e){this._width=t,this._height=e,this._widthHalf=this._width/2,this._heightHalf=this._height/2,this.domElement.style.width=t+\\\\\\\"px\\\\\\\",this.domElement.style.height=e+\\\\\\\"px\\\\\\\"}renderObject(t,e,n){if(t instanceof dq){this.vector.setFromMatrixPosition(t.matrixWorld),this.vector.applyMatrix4(this.viewProjectionMatrix);var i=t.element,s=\\\\\\\"translate(-50%,-50%) translate(\\\\\\\"+(this.vector.x*this._widthHalf+this._widthHalf)+\\\\\\\"px,\\\\\\\"+(-this.vector.y*this._heightHalf+this._heightHalf)+\\\\\\\"px)\\\\\\\";if(i.style.webkitTransform=s,i.style.transform=s,i.style.display=t.visible&&this.vector.z>=-1&&this.vector.z<=1?\\\\\\\"\\\\\\\":\\\\\\\"none\\\\\\\",this._sort_objects||this._use_fog){const e=this.getDistanceToSquared(n,t);if(this._use_fog){const t=Math.sqrt(e),n=or.fit(t,this._fog_near,this._fog_far,0,1),s=or.clamp(1-n,0,1);i.style.opacity=`${s}`,0==s&&(i.style.display=\\\\\\\"none\\\\\\\")}this.cache_distanceToCameraSquared.set(t,e)}i.parentNode!==this.domElement&&this.domElement.appendChild(i)}for(var r=0,o=t.children.length;r<o;r++)this.renderObject(t.children[r],e,n)}getDistanceToSquared(t,e){return this.a.setFromMatrixPosition(t.matrixWorld),this.b.setFromMatrixPosition(e.matrixWorld),this.a.distanceToSquared(this.b)}filterAndFlatten(t){const e=[];return t.traverse((function(t){t instanceof dq&&e.push(t)})),e}render(t,e){!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),this.viewMatrix.copy(e.matrixWorldInverse),this.viewProjectionMatrix.multiplyMatrices(e.projectionMatrix,this.viewMatrix),this.renderObject(t,t,e),this._sort_objects&&this.zOrder(t)}set_sorting(t){this._sort_objects=t}zOrder(t){const e=this.filterAndFlatten(t).sort(((t,e)=>{const n=this.cache_distanceToCameraSquared.get(t),i=this.cache_distanceToCameraSquared.get(e);return null!=n&&null!=i?n-i:0})),n=e.length;for(let t=0,i=e.length;t<i;t++)e[t].element.style.zIndex=\\\\\\\"\\\\\\\"+(n-t)}set_use_fog(t){this._use_fog=t}set_fog_range(t,e){this._fog_near=t,this._fog_far=e}}const _q=new class extends ua{constructor(){super(...arguments),this.css=ha.STRING(\\\\\\\"\\\\\\\",{multiline:!0}),this.sortObjects=ha.BOOLEAN(0),this.useFog=ha.BOOLEAN(0),this.fogNear=ha.FLOAT(1,{range:[0,100],rangeLocked:[!0,!1],visibleIf:{useFog:1}}),this.fogFar=ha.FLOAT(100,{range:[0,100],rangeLocked:[!0,!1],visibleIf:{useFog:1}})}};class mq extends tH{constructor(){super(...arguments),this.paramsConfig=_q,this._renderers_by_canvas_id=new Map}static type(){return eH.CSS2D}createRenderer(t){const e=new pq;this._renderers_by_canvas_id.set(t.id,e);const n=t.parentElement;n&&(n.prepend(e.domElement),n.style.position=\\\\\\\"relative\\\\\\\"),e.domElement.style.position=\\\\\\\"absolute\\\\\\\",e.domElement.style.top=\\\\\\\"0px\\\\\\\",e.domElement.style.left=\\\\\\\"0px\\\\\\\",e.domElement.style.pointerEvents=\\\\\\\"none\\\\\\\";const i=t.getBoundingClientRect();return e.setSize(i.width,i.height),this._update_renderer(e),e}renderer(t){return this._renderers_by_canvas_id.get(t.id)||this.createRenderer(t)}cook(){this._update_css(),this._renderers_by_canvas_id.forEach((t=>{this._update_renderer(t)})),this.cookController.endCook()}_update_renderer(t){t.set_sorting(this.pv.sortObjects),t.set_use_fog(this.pv.useFog),t.set_fog_range(this.pv.fogNear,this.pv.fogFar)}_update_css(){this.css_element().innerHTML=this.pv.css}css_element(){return this._css_element=this._css_element||this._find_element()||this._create_element()}_find_element(){return document.getElementById(this._css_element_id())}_create_element(){const t=document.createElement(\\\\\\\"style\\\\\\\");return t.appendChild(document.createTextNode(\\\\\\\"\\\\\\\")),document.head.appendChild(t),t.id=this._css_element_id(),t}_css_element_id(){return`css_2d_renderer-${this.graphNodeId()}`}}class fq extends hq{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class gq extends hq{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class vq extends hq{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class yq extends cq{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class xq extends hq{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class bq extends aV{static type(){return\\\\\\\"add\\\\\\\"}cook(t,e){const n=[];return this._create_point(n,e),this._create_polygon(t[0],n,e),this.createCoreGroupFromObjects(n)}_create_point(t,e){if(!e.createPoint)return;const n=new S.a,i=[];for(let t=0;t<e.pointsCount;t++)e.position.toArray(i,3*t);n.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(i),3));const s=this.createObject(n,Ns.POINTS);t&&t.push(s)}_create_polygon(t,e,n){if(!n.connectInputPoints)return;t.points().length>0&&this._create_polygon_open(t,e,n)}_create_polygon_open(t,e,n){const i=t.points();let s=[];const r=[];let o;for(let t=0;t<i.length;t++)o=i[t],o.position().toArray(s,3*t),t>0&&(r.push(t-1),r.push(t));if(i.length>2&&n.connectToLastPoint){i[0].position().toArray(s,s.length);const t=r[r.length-1];r.push(t),r.push(0)}const a=new S.a;a.setAttribute(\\\\\\\"position\\\\\\\",new C.c(s,3)),a.setIndex(r);const l=this.createObject(a,Ns.LINE_SEGMENTS);e.push(l)}}bq.DEFAULT_PARAMS={createPoint:!0,pointsCount:1,position:new p.a(0,0,0),connectInputPoints:!1,connectToLastPoint:!1};const wq=bq.DEFAULT_PARAMS;const Tq=new class extends ua{constructor(){super(...arguments),this.createPoint=ha.BOOLEAN(wq.createPoint),this.pointsCount=ha.INTEGER(wq.pointsCount,{range:[1,100],rangeLocked:[!0,!1],visibleIf:{createPoint:!0}}),this.position=ha.VECTOR3(wq.position,{visibleIf:{createPoint:!0}}),this.connectInputPoints=ha.BOOLEAN(wq.connectInputPoints),this.connectToLastPoint=ha.BOOLEAN(wq.connectToLastPoint)}};class Aq extends uV{constructor(){super(...arguments),this.paramsConfig=Tq}static type(){return\\\\\\\"add\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create polygons from (optional)\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1)}cook(t){this._operation=this._operation||new bq(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const Mq=new class extends ua{};class Eq extends uV{constructor(){super(...arguments),this.paramsConfig=Mq}static type(){return\\\\\\\"animationCopy\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to copy animation to\\\\\\\",\\\\\\\"geometry to copy animation from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState([Qi.FROM_NODE,Qi.NEVER])}cook(t){const e=t[0],n=t[1].objects()[0],i=e.objects()[0],s=n.animations;s?(i.animations=s.map((t=>t.clone())),this.setCoreGroup(e)):this.states.error.set(\\\\\\\"no animation found\\\\\\\")}}class Sq{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const s=e.tracks,r=s.length,o=new Array(r),a={endingStart:w.id,endingEnd:w.id};for(let t=0;t!==r;++t){const e=s[t].createInterpolant(null);o[t]=e,e.settings=a}this._interpolantSettings=a,this._interpolants=o,this._propertyBindings=new Array(r),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=w.eb,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,s=i/n,r=n/i;t.warp(1,s,e),this.warp(r,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,s=i.time,r=this.timeScale;let o=this._timeScaleInterpolant;null===o&&(o=i._lendControlInterpolant(),this._timeScaleInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,a[1]=s+n,l[0]=t/r,l[1]=e/r,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const s=this._startTime;if(null!==s){const i=(t-s)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const r=this._updateTime(e),o=this._updateWeight(t);if(o>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case w.d:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(r),e[n].accumulateAdditive(o);break;case w.wb:default:for(let n=0,s=t.length;n!==s;++n)t[n].evaluate(r),e[n].accumulate(i,o)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,s=this._loopCount;const r=n===w.db;if(0===t)return-1===s?i:r&&1==(1&s)?e-i:i;if(n===w.cb){-1===s&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:\\\\\\\"finished\\\\\\\",action:this,direction:t<0?-1:1})}}else{if(-1===s&&(t>=0?(s=0,this._setEndings(!0,0===this.repetitions,r)):this._setEndings(0===this.repetitions,!0,r)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,s+=Math.abs(n);const o=this.repetitions-s;if(o<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:\\\\\\\"finished\\\\\\\",action:this,direction:t>0?1:-1});else{if(1===o){const e=t<0;this._setEndings(e,!e,r)}else this._setEndings(!1,!1,r);this._loopCount=s,this.time=i,this._mixer.dispatchEvent({type:\\\\\\\"loop\\\\\\\",action:this,loopDelta:n})}}else this.time=i;if(r&&1==(1&s))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=w.kd,i.endingEnd=w.kd):(i.endingStart=t?this.zeroSlopeAtStart?w.kd:w.id:w.hd,i.endingEnd=e?this.zeroSlopeAtEnd?w.kd:w.id:w.hd)}_scheduleFading(t,e,n){const i=this._mixer,s=i.time;let r=this._weightInterpolant;null===r&&(r=i._lendControlInterpolant(),this._weightInterpolant=r);const o=r.parameterPositions,a=r.sampleValues;return o[0]=s,a[0]=e,o[1]=s+t,a[1]=n,this}}var Cq=n(71),Nq=n(66);class Lq{constructor(t,e,n){let i,s,r;switch(this.binding=t,this.valueSize=n,e){case\\\\\\\"quaternion\\\\\\\":i=this._slerp,s=this._slerpAdditive,r=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case\\\\\\\"string\\\\\\\":case\\\\\\\"bool\\\\\\\":i=this._select,s=this._select,r=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,s=this._lerpAdditive,r=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=s,this._setIdentity=r,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,s=t*i+i;let r=this.cumulativeWeight;if(0===r){for(let t=0;t!==i;++t)n[s+t]=n[t];r=e}else{r+=e;const t=e/r;this._mixBufferRegion(n,s,0,t,i)}this.cumulativeWeight=r}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,s=this.cumulativeWeight,r=this.cumulativeWeightAdditive,o=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,s<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-s,e)}r>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,s=e+e;t!==s;++t)if(n[t]!==n[t+e]){o.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,s=i;t!==s;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,s){if(i>=.5)for(let i=0;i!==s;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){hh.a.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,s){const r=this._workIndex*s;hh.a.multiplyQuaternionsFlat(t,r,t,e,t,n),hh.a.slerpFlat(t,e,t,e,t,r,i)}_lerp(t,e,n,i,s){const r=1-i;for(let o=0;o!==s;++o){const s=e+o;t[s]=t[s]*r+t[n+o]*i}}_lerpAdditive(t,e,n,i,s){for(let r=0;r!==s;++r){const s=e+r;t[s]=t[s]+t[n+r]*i}}}var Oq=n(64);class Pq extends J.a{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,s=i.length,r=t._propertyBindings,o=t._interpolants,a=n.uuid,l=this._bindingsByRootAndName;let c=l[a];void 0===c&&(c={},l[a]=c);for(let t=0;t!==s;++t){const s=i[t],l=s.name;let h=c[l];if(void 0!==h)r[t]=h;else{if(h=r[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,a,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Lq(Nq.a.create(n,l,i),s.ValueTypeName,s.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,a,l),r[t]=h}o[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,s=this._actionsByClip;let r=s[e];if(void 0===r)r={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,s[e]=r;else{const e=r.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),r.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const s=t._clip.uuid,r=this._actionsByClip,o=r[s],a=o.knownActions,l=a[a.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,a[c]=l,a.pop(),t._byClipCacheIndex=null;delete o.actionByRoot[(t._localRoot||this._root).uuid],0===a.length&&delete r[s],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,s=this._bindings;let r=i[e];void 0===r&&(r={},i[e]=r),r[n]=t,t._cacheIndex=s.length,s.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,s=n.path,r=this._bindingsByRootAndName,o=r[i],a=e[e.length-1],l=t._cacheIndex;a._cacheIndex=l,e[l]=a,e.pop(),delete o[s],0===Object.keys(o).length&&delete r[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,s=e[i];t._cacheIndex=i,e[i]=t,s._cacheIndex=n,e[n]=s}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new Cq.a(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,s=e[i];t.__cacheIndex=i,e[i]=t,s.__cacheIndex=n,e[n]=s}clipAction(t,e,n){const i=e||this._root,s=i.uuid;let r=\\\\\\\"string\\\\\\\"==typeof t?Oq.a.findByName(i,t):t;const o=null!==r?r.uuid:t,a=this._actionsByClip[o];let l=null;if(void 0===n&&(n=null!==r?r.blendMode:w.wb),void 0!==a){const t=a.actionByRoot[s];if(void 0!==t&&t.blendMode===n)return t;l=a.knownActions[0],null===r&&(r=l._clip)}if(null===r)return null;const c=new Sq(this,r,e,n);return this._bindAction(c,l),this._addInactiveAction(c,o,s),c}existingAction(t,e){const n=e||this._root,i=n.uuid,s=\\\\\\\"string\\\\\\\"==typeof t?Oq.a.findByName(n,t):t,r=s?s.uuid:t,o=this._actionsByClip[r];return void 0!==o&&o.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,s=Math.sign(t),r=this._accuIndex^=1;for(let o=0;o!==n;++o){e[o]._update(i,t,s,r)}const o=this._bindings,a=this._nActiveBindings;for(let t=0;t!==a;++t)o[t].apply(r);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,s=i[n];if(void 0!==s){const t=s.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const s=i._cacheIndex,r=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,r._cacheIndex=s,e[s]=r,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const t in i){const e=i[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}Pq.prototype._controlInterpolantsResultBuffer=new Float32Array(1);const Rq=new class extends ua{constructor(){super(...arguments),this.time=ha.FLOAT(\\\\\\\"$T\\\\\\\",{range:[0,10]}),this.clip=ha.OPERATOR_PATH(\\\\\\\"/ANIM/OUT\\\\\\\",{nodeSelection:{context:ts.ANIM},dependentOnFoundNode:!1}),this.reset=ha.BUTTON(null,{callback:(t,e)=>{Iq.PARAM_CALLBACK_reset(t,e)}})}};class Iq extends uV{constructor(){super(...arguments),this.paramsConfig=Rq}static type(){return\\\\\\\"animationMixer\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to be animated\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}async cook(t){const e=t[0].objects()[0];e&&(await this.create_mixer_if_required(e),this._update_mixer()),this.setObjects([e])}async create_mixer_if_required(t){if(!this._mixer){const e=await this._create_mixer(t);e&&(this._mixer=e)}}async _create_mixer(t){this.p.clip.isDirty()&&await this.p.clip.compute();if(this.p.clip.found_node_with_context(ts.ANIM)){return new Pq(t)}}_update_mixer(){this._set_mixer_time()}_set_mixer_time(){this.pv.time!=this._previous_time&&(this._mixer&&this._mixer.setTime(this.pv.time),this._previous_time=this.pv.time)}static PARAM_CALLBACK_reset(t,e){e.setDirty(),t.reset_animation_mixer()}async reset_animation_mixer(){this._mixer=void 0,this._previous_time=void 0,this.setDirty()}}class Fq extends aV{static type(){return\\\\\\\"attribAddMult\\\\\\\"}cook(t,e){const n=t[0],i=n.attribNamesMatchingMask(e.name);for(let t of i){const i=n.geometries();for(let n of i)this._update_attrib(t,n,e)}return n}_update_attrib(t,e,n){const i=e.getAttribute(t);if(i){const t=i.array,e=n.preAdd,s=n.mult,r=n.postAdd;for(let n=0;n<t.length;n++){const i=t[n];t[n]=(i+e)*s+r}i.needsUpdate=!0}}}Fq.DEFAULT_PARAMS={name:\\\\\\\"\\\\\\\",preAdd:0,mult:1,postAdd:0},Fq.INPUT_CLONED_STATE=Qi.FROM_NODE;const Dq=Fq.DEFAULT_PARAMS;const Bq=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(Dq.name),this.preAdd=ha.FLOAT(Dq.preAdd,{range:[0,1]}),this.mult=ha.FLOAT(Dq.mult,{range:[0,1]}),this.postAdd=ha.FLOAT(Dq.postAdd,{range:[0,1]})}};class zq extends uV{constructor(){super(...arguments),this.paramsConfig=Bq}static type(){return\\\\\\\"attribAddMult\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Fq.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new Fq(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var kq;!function(t){t.Float64BufferAttribute=\\\\\\\"Float64BufferAttribute\\\\\\\",t.Float32BufferAttribute=\\\\\\\"Float32BufferAttribute\\\\\\\",t.Float16BufferAttribute=\\\\\\\"Float16BufferAttribute\\\\\\\",t.Uint32BufferAttribute=\\\\\\\"Uint32BufferAttribute\\\\\\\",t.Int32BufferAttribute=\\\\\\\"Int32BufferAttribute\\\\\\\",t.Uint16BufferAttribute=\\\\\\\"Uint16BufferAttribute\\\\\\\",t.Int16BufferAttribute=\\\\\\\"Int16BufferAttribute\\\\\\\",t.Uint8ClampedBufferAttribute=\\\\\\\"Uint8ClampedBufferAttribute\\\\\\\",t.Uint8BufferAttribute=\\\\\\\"Uint8BufferAttribute\\\\\\\",t.Int8BufferAttribute=\\\\\\\"Int8BufferAttribute\\\\\\\"}(kq||(kq={}));const Uq=[kq.Float64BufferAttribute,kq.Float32BufferAttribute,kq.Float16BufferAttribute,kq.Uint32BufferAttribute,kq.Int32BufferAttribute,kq.Uint16BufferAttribute,kq.Int16BufferAttribute,kq.Uint8ClampedBufferAttribute,kq.Uint8BufferAttribute,kq.Int8BufferAttribute],Gq={[kq.Float64BufferAttribute]:C.d,[kq.Float32BufferAttribute]:C.c,[kq.Float16BufferAttribute]:C.b,[kq.Uint32BufferAttribute]:C.i,[kq.Int32BufferAttribute]:C.f,[kq.Uint16BufferAttribute]:C.h,[kq.Int16BufferAttribute]:C.e,[kq.Uint8ClampedBufferAttribute]:C.k,[kq.Uint8BufferAttribute]:C.j,[kq.Int8BufferAttribute]:C.g},Vq={[kq.Float64BufferAttribute]:Float64Array,[kq.Float32BufferAttribute]:Float32Array,[kq.Float16BufferAttribute]:Uint16Array,[kq.Uint32BufferAttribute]:Uint32Array,[kq.Int32BufferAttribute]:Int32Array,[kq.Uint16BufferAttribute]:Uint16Array,[kq.Int16BufferAttribute]:Int16Array,[kq.Uint8ClampedBufferAttribute]:Uint8Array,[kq.Uint8BufferAttribute]:Uint8Array,[kq.Int8BufferAttribute]:Int8Array};class Hq extends aV{static type(){return\\\\\\\"attribCast\\\\\\\"}cook(t,e){const n=t[0],i=n.objectsWithGeo();for(let t of i)this._castGeoAttributes(t.geometry,e);return n}_castGeoAttributes(t,e){const n=Uq[e.type],i=Gq[n],s=Vq[n];if(e.castAttributes){const n=fr.attribNamesMatchingMask(t,e.mask);for(let e of n){const n=t.attributes[e],r=n.array,o=new s(n.count*n.itemSize);for(let t=0;t<r.length;t++)o[t]=r[t];const a=new i(o,1);t.setAttribute(e,a)}}if(e.castIndex){const e=t.getIndex();if(e){const n=e.array,r=new s(e.count*1);for(let t=0;t<n.length;t++)r[t]=n[t];const o=new i(r,1);t.setIndex(o)}}}}Hq.DEFAULT_PARAMS={castAttributes:!0,mask:\\\\\\\"*\\\\\\\",castIndex:!1,type:Uq.indexOf(kq.Float32BufferAttribute)},Hq.INPUT_CLONED_STATE=Qi.FROM_NODE;const jq=Hq.DEFAULT_PARAMS;const Wq=new class extends ua{constructor(){super(...arguments),this.castAttributes=ha.BOOLEAN(jq.castAttributes),this.mask=ha.STRING(jq.mask,{visibleIf:{castAttributes:1}}),this.castIndex=ha.BOOLEAN(jq.castIndex),this.type=ha.INTEGER(jq.type,{menu:{entries:Uq.map(((t,e)=>({name:t,value:e})))}})}};class qq extends uV{constructor(){super(...arguments),this.paramsConfig=Wq}static type(){return\\\\\\\"attribCast\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Hq.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.type],(()=>Uq[this.pv.type]))}))}))}cook(t){this._operation=this._operation||new Hq(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class Xq extends aV{static type(){return\\\\\\\"attribCopy\\\\\\\"}cook(t,e){const n=t[0],i=t[1]||n,s=i.attribNamesMatchingMask(e.name);for(let t of s)this.copy_vertex_attribute_between_core_groups(n,i,t,e);return n}copy_vertex_attribute_between_core_groups(t,e,n,i){var s;const r=e.objectsWithGeo(),o=t.objectsWithGeo();if(o.length>r.length)null===(s=this.states)||void 0===s||s.error.set(\\\\\\\"second input does not have enough objects to copy attributes from\\\\\\\");else for(let t=0;t<o.length;t++){const e=o[t].geometry,s=r[t].geometry;this.copy_vertex_attribute_between_geometries(e,s,n,i)}}copy_vertex_attribute_between_geometries(t,e,n,i){var s,r;const o=e.getAttribute(n);if(o){const r=o.itemSize,a=e.getAttribute(\\\\\\\"position\\\\\\\").array.length/3,l=t.getAttribute(\\\\\\\"position\\\\\\\").array.length/3;l>a&&(null===(s=this.states)||void 0===s||s.error.set(\\\\\\\"not enough points in second input\\\\\\\"));const c=i.tnewName?i.newName:n;let h=t.getAttribute(c);if(h)this._fill_dest_array(h,o,i),h.needsUpdate=!0;else{const e=o.array.slice(0,l*r);t.setAttribute(c,new C.c(e,r))}}else null===(r=this.states)||void 0===r||r.error.set(`attribute '${n}' does not exist on second input`)}_fill_dest_array(t,e,n){const i=t.array,s=e.array,r=i.length,o=t.itemSize,a=e.itemSize,l=n.srcOffset,c=n.destOffset;if(t.itemSize==e.itemSize){t.copyArray(e.array);for(let t=0;t<r;t++)i[t]=s[t]}else{const t=i.length/o;if(o<a)for(let e=0;e<t;e++)for(let t=0;t<o;t++)i[e*o+t+c]=s[e*a+t+l];else for(let e=0;e<t;e++)for(let t=0;t<a;t++)i[e*o+t+c]=s[e*a+t+l]}}}Xq.DEFAULT_PARAMS={name:\\\\\\\"\\\\\\\",tnewName:!1,newName:\\\\\\\"\\\\\\\",srcOffset:0,destOffset:0},Xq.INPUT_CLONED_STATE=[Qi.FROM_NODE,Qi.NEVER];const Yq=Xq.DEFAULT_PARAMS;const $q=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(Yq.name),this.tnewName=ha.BOOLEAN(Yq.tnewName),this.newName=ha.STRING(Yq.newName,{visibleIf:{tnewName:1}}),this.srcOffset=ha.INTEGER(Yq.srcOffset,{range:[0,3],rangeLocked:[!0,!0]}),this.destOffset=ha.INTEGER(Yq.destOffset,{range:[0,3],rangeLocked:[!0,!0]})}};class Jq extends uV{constructor(){super(...arguments),this.paramsConfig=$q}static type(){return\\\\\\\"attribCopy\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to copy attributes to\\\\\\\",\\\\\\\"geometry to copy attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState(Xq.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name,this.p.tnewName,this.p.newName],(()=>this.pv.tnewName?`${this.pv.name} -> ${this.pv.newName}`:this.pv.name))}))}))}cook(t){this._operation=this._operation||new Xq(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class Zq extends aV{static type(){return\\\\\\\"attribCreate\\\\\\\"}cook(t,e){var n;const i=t[0];return e.name&&\\\\\\\"\\\\\\\"!=e.name.trim()?this._add_attribute(Ds[e.class],i,e):null===(n=this.states)||void 0===n||n.error.set(\\\\\\\"attribute name is not valid\\\\\\\"),i}async _add_attribute(t,e,n){const i=ks[n.type];switch(t){case Fs.VERTEX:return void await this.add_point_attribute(i,e,n);case Fs.OBJECT:return void await this.add_object_attribute(i,e,n)}os.unreachable(t)}async add_point_attribute(t,e,n){const i=e.coreObjects();switch(t){case zs.NUMERIC:for(let t=0;t<i.length;t++)await this.add_numeric_attribute_to_points(i[t],n);return;case zs.STRING:for(let t=0;t<i.length;t++)await this.add_string_attribute_to_points(i[t],n);return}os.unreachable(t)}async add_object_attribute(t,e,n){const i=e.coreObjectsFromGroup(n.group);switch(t){case zs.NUMERIC:return void await this.add_numeric_attribute_to_object(i,n);case zs.STRING:return void await this.add_string_attribute_to_object(i,n)}os.unreachable(t)}async add_numeric_attribute_to_points(t,e){if(!t.coreGeometry())return;const n=[e.value1,e.value2,e.value3,e.value4][e.size-1];t.addNumericVertexAttrib(e.name,e.size,n)}async add_numeric_attribute_to_object(t,e){const n=[e.value1,e.value2,e.value3,e.value4][e.size-1];for(let i of t)i.setAttribValue(e.name,n)}async add_string_attribute_to_points(t,e){const n=t.pointsFromGroup(e.group),i=e.string,s=new Array(n.length);for(let t=0;t<n.length;t++)s[t]=i;const r=Xs.arrayToIndexedArrays(s),o=t.coreGeometry();o&&o.setIndexedAttribute(e.name,r.values,r.indices)}async add_string_attribute_to_object(t,e){const n=e.string;for(let i of t)i.setAttribValue(e.name,n)}}Zq.DEFAULT_PARAMS={group:\\\\\\\"\\\\\\\",class:Ds.indexOf(Fs.VERTEX),type:ks.indexOf(zs.NUMERIC),name:\\\\\\\"new_attrib\\\\\\\",size:1,value1:0,value2:new d.a(0,0),value3:new p.a(0,0,0),value4:new _.a(0,0,0,0),string:\\\\\\\"\\\\\\\"},Zq.INPUT_CLONED_STATE=Qi.FROM_NODE;const Kq=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\",\\\\\\\"w\\\\\\\"],Qq=Zq.DEFAULT_PARAMS;const tX=new class extends ua{constructor(){super(...arguments),this.group=ha.STRING(Qq.group),this.class=ha.INTEGER(Qq.class,{menu:{entries:Bs}}),this.type=ha.INTEGER(Qq.type,{menu:{entries:Us}}),this.name=ha.STRING(Qq.name),this.size=ha.INTEGER(Qq.size,{range:[1,4],rangeLocked:[!0,!0],visibleIf:{type:zs.NUMERIC}}),this.value1=ha.FLOAT(Qq.value1,{visibleIf:{type:zs.NUMERIC,size:1},expression:{forEntities:!0}}),this.value2=ha.VECTOR2(Qq.value2,{visibleIf:{type:zs.NUMERIC,size:2},expression:{forEntities:!0}}),this.value3=ha.VECTOR3(Qq.value3,{visibleIf:{type:zs.NUMERIC,size:3},expression:{forEntities:!0}}),this.value4=ha.VECTOR4(Qq.value4,{visibleIf:{type:zs.NUMERIC,size:4},expression:{forEntities:!0}}),this.string=ha.STRING(Qq.string,{visibleIf:{type:zs.STRING},expression:{forEntities:!0}})}};class eX extends uV{constructor(){super(...arguments),this.paramsConfig=tX,this._x_arrays_by_geometry_uuid={},this._y_arrays_by_geometry_uuid={},this._z_arrays_by_geometry_uuid={},this._w_arrays_by_geometry_uuid={}}static type(){return\\\\\\\"attribCreate\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Zq.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}cook(t){if(this._is_using_expression())this.pv.name&&\\\\\\\"\\\\\\\"!=this.pv.name.trim()?this._addAttribute(Ds[this.pv.class],t[0]):this.states.error.set(\\\\\\\"attribute name is not valid\\\\\\\");else{this._operation=this._operation||new Zq(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}async _addAttribute(t,e){const n=ks[this.pv.type];switch(t){case Fs.VERTEX:return await this._addPointAttribute(n,e),this.setCoreGroup(e);case Fs.OBJECT:return await this._addObjectAttribute(n,e),this.setCoreGroup(e)}os.unreachable(t)}async _addPointAttribute(t,e){const n=e.coreObjects();switch(t){case zs.NUMERIC:for(let t=0;t<n.length;t++)await this._addNumericAttributeToPoints(n[t]);return;case zs.STRING:for(let t=0;t<n.length;t++)await this._addStringAttributeToPoints(n[t]);return}os.unreachable(t)}async _addObjectAttribute(t,e){const n=e.coreObjectsFromGroup(this.pv.group);switch(t){case zs.NUMERIC:return void await this.add_numeric_attribute_to_object(n);case zs.STRING:return void await this.add_string_attribute_to_object(n)}os.unreachable(t)}async _addNumericAttributeToPoints(t){const e=t.coreGeometry();if(!e)return;const n=t.pointsFromGroup(this.pv.group),i=[this.p.value1,this.p.value2,this.p.value3,this.p.value4][this.pv.size-1];if(i.hasExpression()){e.hasAttrib(this.pv.name)||e.addNumericAttrib(this.pv.name,this.pv.size,i.value);const t=e.geometry(),s=t.getAttribute(this.pv.name).array;if(1==this.pv.size)this.p.value1.expressionController&&await this.p.value1.expressionController.computeExpressionForPoints(n,((t,e)=>{s[t.index()*this.pv.size+0]=e}));else{let e=[this.p.value2,this.p.value3,this.p.value4][this.pv.size-2].components;const i=new Array(e.length);let r;const o=[this._x_arrays_by_geometry_uuid,this._y_arrays_by_geometry_uuid,this._z_arrays_by_geometry_uuid,this._w_arrays_by_geometry_uuid];for(let a=0;a<e.length;a++)if(r=e[a],r.hasExpression()&&r.expressionController)i[a]=this._init_array_if_required(t,o[a],n.length),await r.expressionController.computeExpressionForPoints(n,((t,e)=>{i[a][t.index()]=e}));else{const t=r.value;for(let e of n)s[e.index()*this.pv.size+a]=t}for(let t=0;t<i.length;t++){const e=i[t];if(e)for(let n=0;n<e.length;n++)s[n*this.pv.size+t]=e[n]}}}}async add_numeric_attribute_to_object(t){if([this.p.value1,this.p.value2,this.p.value3,this.p.value4][this.pv.size-1].hasExpression())if(1==this.pv.size)this.p.value1.expressionController&&await this.p.value1.expressionController.computeExpressionForObjects(t,((t,e)=>{t.setAttribValue(this.pv.name,e)}));else{let e=[this.p.value2,this.p.value3,this.p.value4][this.pv.size-2].components,n={};const i=this._vector_by_attrib_size(this.pv.size);if(i){for(let e of t)n[e.index()]=i;for(let i=0;i<e.length;i++){const s=e[i],r=Kq[i];if(s.hasExpression()&&s.expressionController)await s.expressionController.computeExpressionForObjects(t,((t,e)=>{n[t.index()][r]=e}));else for(let e of t){n[e.index()][r]=s.value}}for(let e=0;e<t.length;e++){const i=t[e],s=n[i.index()];i.setAttribValue(this.pv.name,s)}}}}_vector_by_attrib_size(t){switch(t){case 2:return new d.a(0,0);case 3:return new p.a(0,0,0);case 4:return new _.a(0,0,0,0)}}async _addStringAttributeToPoints(t){const e=t.pointsFromGroup(this.pv.group),n=this.p.string,i=new Array(e.length);n.hasExpression()&&n.expressionController&&await n.expressionController.computeExpressionForPoints(e,((t,e)=>{i[t.index()]=e}));const s=Xs.arrayToIndexedArrays(i),r=t.coreGeometry();r&&r.setIndexedAttribute(this.pv.name,s.values,s.indices)}async add_string_attribute_to_object(t){const e=this.p.string;e.hasExpression()&&e.expressionController&&await e.expressionController.computeExpressionForObjects(t,((t,e)=>{t.setAttribValue(this.pv.name,e)}))}_init_array_if_required(t,e,n){const i=t.uuid,s=e[i];return s?s.length<n&&(e[i]=new Array(n)):e[i]=new Array(n),e[i]}_is_using_expression(){switch(ks[this.pv.type]){case zs.NUMERIC:return[this.p.value1,this.p.value2,this.p.value3,this.p.value4][this.pv.size-1].hasExpression();case zs.STRING:return this.p.string.hasExpression()}}setType(t){this.p.type.set(ks.indexOf(t))}}const nX=new class extends ua{constructor(){super(...arguments),this.class=ha.INTEGER(Fs.VERTEX,{menu:{entries:Bs}}),this.name=ha.STRING(\\\\\\\"\\\\\\\")}};class iX extends uV{constructor(){super(...arguments),this.paramsConfig=nX}static type(){return\\\\\\\"attribDelete\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to delete attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}cook(t){const e=t[0],n=e.attribNamesMatchingMask(this.pv.name);for(let t of n)switch(this.pv.class){case Fs.VERTEX:this.delete_vertex_attribute(e,t);case Fs.OBJECT:this.delete_object_attribute(e,t)}this.setCoreGroup(e)}delete_vertex_attribute(t,e){for(let n of t.objects())n.traverse((t=>{const n=t;if(n.geometry){new fr(n.geometry).deleteAttribute(e)}}))}delete_object_attribute(t,e){for(let n of t.objects()){let t=0;n.traverse((n=>{new br(n,t).deleteAttribute(e),t++}))}}}class sX{set_attrib(t){const e=t.geometry,n=t.targetAttribSize;if(n<1||n>4)return;const i=t.add,s=t.mult,r=this._data_from_texture(t.texture);if(!r)return;const{data:o,resx:a,resy:l}=r,c=o.length/(a*l),h=e.getAttribute(t.uvAttribName).array,u=h.length/2,d=new Array(u*n);let p,_,m,f,g,v,y,x,b;const w=or.clamp;for(v=0;v<u;v++)for(p=2*v,_=w(h[p],0,1),m=w(h[p+1],0,1),f=Math.floor((a-1)*_),g=Math.floor((l-1)*(1-m)),y=g*a+f,b=0;b<n;b++)x=o[c*y+b],d[v*n+b]=s*x+i;const T=Xs.remapName(t.targetAttribName),A=new Float32Array(d);e.setAttribute(T,new C.a(A,n))}_data_from_texture(t){if(t.image)return t.image.data?this._data_from_data_texture(t):this._data_from_default_texture(t)}_data_from_default_texture(t){const e=t.image.width,n=t.image.height;return{data:Bf.data_from_image(t.image).data,resx:e,resy:n}}_data_from_data_texture(t){return{data:t.image.data,resx:t.image.width,resy:t.image.height}}}class rX extends aV{static type(){return\\\\\\\"attribFromTexture\\\\\\\"}async cook(t,e){var n;const i=t[0],s=e.texture.nodeWithContext(ts.COP,null===(n=this.states)||void 0===n?void 0:n.error);if(!s)return i;const r=(await s.compute()).texture();for(let t of i.coreObjects())this._set_position_from_data_texture(t,r,e);return i}_set_position_from_data_texture(t,e,n){var i,s;const r=null===(i=t.coreGeometry())||void 0===i?void 0:i.geometry();if(!r)return;if(null==r.getAttribute(n.uvAttrib))return void(null===(s=this.states)||void 0===s||s.error.set(`param '${n.uvAttrib} not found'`));(new sX).set_attrib({geometry:r,texture:e,uvAttribName:n.uvAttrib,targetAttribName:n.attrib,targetAttribSize:n.attribSize,add:n.add,mult:n.mult})}}rX.DEFAULT_PARAMS={texture:new yi(vi.EMPTY),uvAttrib:\\\\\\\"uv\\\\\\\",attrib:\\\\\\\"pscale\\\\\\\",attribSize:1,add:0,mult:1},rX.INPUT_CLONED_STATE=Qi.FROM_NODE;const oX=rX.DEFAULT_PARAMS;const aX=new class extends ua{constructor(){super(...arguments),this.texture=ha.NODE_PATH(oX.texture.path(),{nodeSelection:{context:ts.COP}}),this.uvAttrib=ha.STRING(oX.uvAttrib),this.attrib=ha.STRING(oX.attrib),this.attribSize=ha.INTEGER(oX.attribSize,{range:[1,3],rangeLocked:[!0,!0]}),this.add=ha.FLOAT(oX.add),this.mult=ha.FLOAT(oX.mult)}};class lX extends uV{constructor(){super(...arguments),this.paramsConfig=aX}static type(){return\\\\\\\"attribFromTexture\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.attrib])}))}))}async cook(t){this._operation=this._operation||new rX(this.scene(),this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var cX;!function(t){t.MIN_MAX_TO_01=\\\\\\\"min/max to 0/1\\\\\\\",t.VECTOR_TO_LENGTH_1=\\\\\\\"vectors to length 1\\\\\\\"}(cX||(cX={}));const hX=[cX.MIN_MAX_TO_01,cX.VECTOR_TO_LENGTH_1];class uX extends aV{constructor(){super(...arguments),this.min3=new p.a,this.max3=new p.a,this._vec=new p.a}static type(){return\\\\\\\"attribNormalize\\\\\\\"}cook(t,e){const n=t[0],i=t[0].objectsWithGeo(),s=ss.attribNames(e.name);for(let t of i){const n=t.geometry;for(let t of s){const i=n.getAttribute(t);if(i){let t=i;e.changeName&&\\\\\\\"\\\\\\\"!=e.newName&&(t=n.getAttribute(e.newName),t&&(t.needsUpdate=!0),t=t||i.clone()),this._normalize_attribute(i,t,e)}}}return n}_normalize_attribute(t,e,n){switch(hX[n.mode]){case cX.MIN_MAX_TO_01:return this._normalize_from_min_max_to_01(t,e);case cX.VECTOR_TO_LENGTH_1:return this._normalize_vectors(t,e)}}_normalize_from_min_max_to_01(t,e){const n=t.itemSize,i=t.array,s=e.array;switch(n){case 1:{const t=Math.min(...i),e=Math.max(...i);for(let n=0;n<s.length;n++)s[n]=(i[n]-t)/(e-t);return}case 3:{const t=i.length/n,e=new Array(t),r=new Array(t),o=new Array(t);let a=0;for(let s=0;s<t;s++)a=s*n,e[s]=i[a+0],r[s]=i[a+1],o[s]=i[a+2];this.min3.set(Math.min(...e),Math.min(...r),Math.min(...o)),this.max3.set(Math.max(...e),Math.max(...r),Math.max(...o));for(let i=0;i<t;i++)a=i*n,s[a+0]=(e[i]-this.min3.x)/(this.max3.x-this.min3.x),s[a+1]=(r[i]-this.min3.y)/(this.max3.y-this.min3.y),s[a+2]=(o[i]-this.min3.z)/(this.max3.z-this.min3.z);return}}}_normalize_vectors(t,e){const n=t.array,i=e.array,s=n.length;if(3==t.itemSize)for(let t=0;t<s;t+=3)this._vec.fromArray(n,t),this._vec.normalize(),this._vec.toArray(i,t)}}uX.DEFAULT_PARAMS={mode:0,name:\\\\\\\"position\\\\\\\",changeName:!1,newName:\\\\\\\"\\\\\\\"},uX.INPUT_CLONED_STATE=Qi.FROM_NODE;const dX=uX.DEFAULT_PARAMS;const pX=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(dX.mode,{menu:{entries:hX.map(((t,e)=>({name:t,value:e})))}}),this.name=ha.STRING(dX.name),this.changeName=ha.BOOLEAN(dX.changeName),this.newName=ha.STRING(dX.newName,{visibleIf:{changeName:1}})}};class _X extends uV{constructor(){super(...arguments),this.paramsConfig=pX}static type(){return\\\\\\\"attribNormalize\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(uX.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name])}))}))}set_mode(t){this.p.mode.set(hX.indexOf(t))}cook(t){this._operation=this._operation||new uX(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var mX;!function(t){t[t.MIN=0]=\\\\\\\"MIN\\\\\\\",t[t.MAX=1]=\\\\\\\"MAX\\\\\\\",t[t.FIRST_FOUND=2]=\\\\\\\"FIRST_FOUND\\\\\\\"}(mX||(mX={}));class fX extends aV{constructor(){super(...arguments),this._values_per_attrib_name={},this._filtered_values_per_attrib_name={}}static type(){return\\\\\\\"attribPromote\\\\\\\"}cook(t,e){this._core_group=t[0],this._values_per_attrib_name={},this._filtered_values_per_attrib_name={};for(let t of this._core_group.coreObjects())this._core_object=t,this.find_values(e),this.filter_values(e),this.set_values(e);return this._core_group}find_values(t){const e=ss.attribNames(t.name);for(let n of e)this._find_values_for_attrib_name(n,t)}_find_values_for_attrib_name(t,e){switch(e.classFrom){case Fs.VERTEX:return this.find_values_from_points(t,e);case Fs.OBJECT:return this.find_values_from_object(t,e)}}find_values_from_points(t,e){if(this._core_object){const e=this._core_object.points(),n=e[0];if(n&&!n.isAttribIndexed(t)){const n=new Array(e.length);let i;for(let s=0;s<e.length;s++)i=e[s],n[s]=i.attribValue(t);this._values_per_attrib_name[t]=n}}}find_values_from_object(t,e){this._values_per_attrib_name[t]=[],this._core_object&&this._values_per_attrib_name[t].push(this._core_object.attribValue(t))}filter_values(t){const e=Object.keys(this._values_per_attrib_name);for(let n of e){const e=this._values_per_attrib_name[n];switch(t.mode){case mX.MIN:this._filtered_values_per_attrib_name[n]=f.min(e);break;case mX.MAX:this._filtered_values_per_attrib_name[n]=f.max(e);break;case mX.FIRST_FOUND:this._filtered_values_per_attrib_name[n]=e[0]}}}set_values(t){const e=Object.keys(this._filtered_values_per_attrib_name);for(let n of e){const e=this._filtered_values_per_attrib_name[n];if(null!=e)switch(t.classTo){case Fs.VERTEX:this.set_values_to_points(n,e,t);break;case Fs.OBJECT:this.set_values_to_object(n,e,t)}}}set_values_to_points(t,e,n){if(this._core_group&&this._core_object){if(!this._core_group.hasAttrib(t)){const n=Xs.attribSizeFromValue(e);n&&this._core_group.addNumericVertexAttrib(t,n,e)}const n=this._core_object.points();for(let i of n)i.setAttribValue(t,e)}}set_values_to_object(t,e,n){var i;null===(i=this._core_object)||void 0===i||i.setAttribValue(t,e)}}fX.DEFAULT_PARAMS={classFrom:Fs.VERTEX,classTo:Fs.OBJECT,mode:mX.FIRST_FOUND,name:\\\\\\\"\\\\\\\"},fX.INPUT_CLONED_STATE=Qi.FROM_NODE;const gX=[{name:\\\\\\\"min\\\\\\\",value:mX.MIN},{name:\\\\\\\"max\\\\\\\",value:mX.MAX},{name:\\\\\\\"first_found\\\\\\\",value:mX.FIRST_FOUND}],vX=fX.DEFAULT_PARAMS;const yX=new class extends ua{constructor(){super(...arguments),this.classFrom=ha.INTEGER(vX.classFrom,{menu:{entries:Bs}}),this.classTo=ha.INTEGER(vX.classTo,{menu:{entries:Bs}}),this.mode=ha.INTEGER(vX.mode,{menu:{entries:gX}}),this.name=ha.STRING(vX.name)}};class xX extends uV{constructor(){super(...arguments),this.paramsConfig=yX}static type(){return\\\\\\\"attribPromote\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(fX.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.name,this.p.classFrom,this.p.classTo],(()=>{if(\\\\\\\"\\\\\\\"!=this.pv.name){const t=Bs.filter((t=>t.value==this.pv.classFrom))[0].name,e=Bs.filter((t=>t.value==this.pv.classTo))[0].name;return`${this.pv.name} (${t} -> ${e})`}return\\\\\\\"\\\\\\\"}))}))}))}cook(t){this._operation=this._operation||new fX(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const bX=new class extends ua{constructor(){super(...arguments),this.name=ha.STRING(),this.ramp=ha.RAMP(),this.changeName=ha.BOOLEAN(0),this.newName=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{changeName:1}})}};class wX extends uV{constructor(){super(...arguments),this.paramsConfig=bX}static type(){return\\\\\\\"attribRemap\\\\\\\"}initializeNode(){this.io.inputs.setCount(1)}cook(t){const e=t[0];this._remap_attribute(e),this.setCoreGroup(e)}_remap_attribute(t){const e=t.points();if(0===e.length)return;if(\\\\\\\"\\\\\\\"===this.pv.name)return;const n=e[0].attribSize(this.pv.name),i=e.map((t=>t.attribValue(this.pv.name)));let s=new Array(e.length);this._get_remaped_values(n,i,s);let r=this.pv.name;this.pv.changeName&&(r=this.pv.newName,t.hasAttrib(r)||t.addNumericVertexAttrib(r,n,0));let o=0;for(let t of s){e[o].setAttribValue(r,t),o++}}_get_remaped_values(t,e,n){switch(t){case Gs.FLOAT:return this._get_normalized_float(e,n);case Gs.VECTOR2:return this._get_normalized_vector2(e,n);case Gs.VECTOR3:return this._get_normalized_vector3(e,n);case Gs.VECTOR4:return this._get_normalized_vector4(e,n)}os.unreachable(t)}_get_normalized_float(t,e){const n=t,i=this.p.ramp;for(let t=0;t<n.length;t++){const s=n[t],r=i.valueAtPosition(s);e[t]=r}}_get_normalized_vector2(t,e){const n=t,i=this.p.ramp;for(let t=0;t<n.length;t++){const s=n[t],r=new d.a(i.valueAtPosition(s.x),i.valueAtPosition(s.y));e[t]=r}}_get_normalized_vector3(t,e){const n=t,i=this.p.ramp;for(let t=0;t<n.length;t++){const s=n[t],r=new p.a(i.valueAtPosition(s.x),i.valueAtPosition(s.y),i.valueAtPosition(s.z));e[t]=r}}_get_normalized_vector4(t,e){const n=t,i=this.p.ramp;for(let t=0;t<n.length;t++){const s=n[t],r=new _.a(i.valueAtPosition(s.x),i.valueAtPosition(s.y),i.valueAtPosition(s.z),i.valueAtPosition(s.w));e[t]=r}}}const TX=new class extends ua{constructor(){super(...arguments),this.class=ha.INTEGER(Fs.VERTEX,{menu:{entries:Bs}}),this.oldName=ha.STRING(),this.newName=ha.STRING()}};class AX extends uV{constructor(){super(...arguments),this.paramsConfig=TX}static type(){return\\\\\\\"attribRename\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.oldName,this.p.newName],(()=>\\\\\\\"\\\\\\\"!=this.pv.oldName&&\\\\\\\"\\\\\\\"!=this.pv.newName?`${this.pv.oldName} -> ${this.pv.newName}`:\\\\\\\"\\\\\\\"))}))}))}cook(t){const e=t[0];e.renameAttrib(this.pv.oldName,this.pv.newName,this.pv.class),this.setCoreGroup(e)}}var MX=n(18);class EX{constructor(t,e=0){this._bbox=t,this._level=e,this._leaves_by_octant={},this._points_by_octant_id={},this._leaves=[],this._bounding_boxes_by_octant={},this._bounding_boxes_by_octant_prepared=!1,this._center=this._bbox.max.clone().add(this._bbox.min).multiplyScalar(.5)}level(){return this._level}traverse(t){t(this);Object.values(this._leaves_by_octant).forEach((e=>{e.traverse(t)}))}intersects_sphere(t){return!!this._bbox&&this._bbox.intersectsSphere(t)}points_in_sphere(t,e){if(0==this._leaves.length){Object.values(this._points_by_octant_id).flat().filter((e=>t.containsPoint(e.position()))).forEach((t=>{e.push(t)}))}else{this._leaves.filter((e=>e.intersects_sphere(t))).forEach((n=>n.points_in_sphere(t,e)))}}bounding_box(){return this._bbox}set_points(t){this._points_by_octant_id={};for(let e of t)this.add_point(e);const e=Object.keys(this._points_by_octant_id);e.length>1&&e.forEach((t=>{this.create_leaf(t)}))}create_leaf(t){const e=this._leaf_bbox(t),n=new EX(e,this._level+1);this._leaves_by_octant[t]=n,this._leaves.push(n),n.set_points(this._points_by_octant_id[t])}add_point(t){const e=this._octant_id(t.position());null==this._points_by_octant_id[e]&&(this._points_by_octant_id[e]=[]),this._points_by_octant_id[e].push(t)}_octant_id(t){return`${t.x>this._center.x?1:0}${t.y>this._center.y?1:0}${t.z>this._center.z?1:0}`}_leaf_bbox(t){return this._bounding_boxes_by_octant_prepared||(this._prepare_leaves_bboxes(),this._bounding_boxes_by_octant_prepared=!0),this._bounding_boxes_by_octant[t]}_bbox_center(t,e,n){const i=this._bbox.min.clone();return t&&(i.x=this._bbox.max.x),e&&(i.y=this._bbox.max.y),n&&(i.z=this._bbox.max.z),i.clone().add(this._center).multiplyScalar(.5)}_prepare_leaves_bboxes(){const t=[];t.push(this._bbox_center(0,0,0)),t.push(this._bbox_center(0,0,1)),t.push(this._bbox_center(0,1,0)),t.push(this._bbox_center(0,1,1)),t.push(this._bbox_center(1,0,0)),t.push(this._bbox_center(1,0,1)),t.push(this._bbox_center(1,1,0)),t.push(this._bbox_center(1,1,1));const e=this._bbox.max.clone().sub(this._bbox.min).multiplyScalar(.25);for(let n of t){const t=this._octant_id(n),i=new Ry.a(n.clone().sub(e),n.clone().add(e));this._bounding_boxes_by_octant[t]=i}}}class SX{constructor(t){this._root=new EX(t)}set_points(t){this._root.set_points(t)}traverse(t){this._root.traverse(t)}find_points(t,e,n){const i=new MX.a(t,e);let s=[];return this._root.intersects_sphere(i)&&this._root.points_in_sphere(i,s),null==n||s.length>n&&(s=f.sortBy(s,(e=>e.position().distanceTo(t))),s=s.slice(0,n)),s}}class CX{constructor(t={}){this._array_index=0,this._count=0,this._current_count_index=0,this._resolve=null,this._max_time_per_chunk=t.max_time_per_chunk||10,this._check_every_interations=t.check_every_interations||100}async startWithCount(t,e){if(this._count=t,this._current_count_index=0,this._iteratee_method_count=e,this._bound_next_with_count=this.nextWithCount.bind(this),this._resolve)throw\\\\\\\"an iterator cannot be started twice\\\\\\\";return new Promise(((t,e)=>{this._resolve=t,this.nextWithCount()}))}nextWithCount(){const t=li.performance.performanceManager(),e=t.now();if(this._iteratee_method_count&&this._bound_next_with_count)for(;this._current_count_index<this._count;)if(this._iteratee_method_count(this._current_count_index),this._current_count_index++,this._current_count_index%this._check_every_interations==0&&t.now()-e>this._max_time_per_chunk){setTimeout(this._bound_next_with_count,1);break}this._current_count_index>=this._count&&this._resolve&&this._resolve()}async startWithArray(t,e){if(this._array=t,this._array_index=0,this._iteratee_method_array=e,this._bound_next_with_array=this.nextWithArray.bind(this),this._resolve)throw\\\\\\\"an iterator cannot be started twice\\\\\\\";return new Promise(((t,e)=>{this._resolve=t,this.nextWithArray()}))}nextWithArray(){const t=li.performance.performanceManager(),e=t.now();if(this._iteratee_method_array&&this._bound_next_with_array&&this._array)for(;this._current_array_element=this._array[this._array_index];)if(this._iteratee_method_array(this._current_array_element,this._array_index),this._array_index++,this._array_index%this._check_every_interations==0&&t.now()-e>this._max_time_per_chunk){setTimeout(this._bound_next_with_array,1);break}void 0===this._current_array_element&&this._resolve&&this._resolve()}}const NX=new class extends ua{constructor(){super(...arguments),this.srcGroup=ha.STRING(),this.destGroup=ha.STRING(),this.name=ha.STRING(),this.maxSamplesCount=ha.INTEGER(1,{range:[1,10],rangeLocked:[!0,!1]}),this.distanceThreshold=ha.FLOAT(1),this.blendWidth=ha.FLOAT(0)}};class LX extends uV{constructor(){super(...arguments),this.paramsConfig=NX}static type(){return\\\\\\\"attribTransfer\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to transfer attributes to\\\\\\\",\\\\\\\"geometry to transfer attributes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState([Qi.FROM_NODE,Qi.NEVER])}async cook(t){this._core_group_dest=t[0];const e=this._core_group_dest.pointsFromGroup(this.pv.destGroup);this._core_group_src=t[1],this._attrib_names=this._core_group_src.attribNamesMatchingMask(this.pv.name),this._error_if_attribute_not_found_on_second_input(),this._build_octree_if_required(this._core_group_src),this._add_attribute_if_required(),await this._transfer_attributes(e),this.setCoreGroup(this._core_group_dest)}_error_if_attribute_not_found_on_second_input(){for(let t of this._attrib_names)this._core_group_src.hasAttrib(t)||this.states.error.set(`attribute '${t}' not found on second input`)}_build_octree_if_required(t){const e=null==this._octree_timestamp||this._octree_timestamp!==t.timestamp();if(this._prev_param_srcGroup!==this.pv.srcGroup||e){this._octree_timestamp=t.timestamp(),this._prev_param_srcGroup=this.pv.srcGroup;const e=this._core_group_src.pointsFromGroup(this.pv.srcGroup);this._octree=new SX(this._core_group_src.boundingBox()),this._octree.set_points(e)}}_add_attribute_if_required(){for(let t of this._attrib_names)if(!this._core_group_dest.hasAttrib(t)){const e=this._core_group_src.attribSize(t);this._core_group_dest.addNumericVertexAttrib(t,e,0)}}async _transfer_attributes(t){const e=new CX;await e.startWithArray(t,this._transfer_attributes_for_point.bind(this))}_transfer_attributes_for_point(t){var e;const n=this.pv.distanceThreshold+this.pv.blendWidth,i=(null===(e=this._octree)||void 0===e?void 0:e.find_points(t.position(),n,this.pv.maxSamplesCount))||[];for(let e of this._attrib_names)this._interpolate_points(t,i,e)}_interpolate_points(t,e,n){let i;i=class{static perform(t,e,n,i,s){switch(e.length){case 0:return t.attribValue(n);case 1:return this._interpolate_with_1_point(t,e[0],n,i,s);default:return this._interpolate_with_multiple_points(t,e,n,i,s)}}static _interpolate_with_1_point(t,e,n,i,s){const r=t.position(),o=e.position(),a=r.distanceTo(o),l=e.attribValue(n);return m.isNumber(l)?this._weighted_value_from_distance(t,l,n,a,i,s):(console.warn(\\\\\\\"value is not a number\\\\\\\",l),0)}static _weight_from_distance(t,e,n){return(t-e)/n}static _weighted_value_from_distance(t,e,n,i,s,r){if(i<=s)return e;{const o=t.attribValue(n);if(m.isNumber(o)){const t=this._weight_from_distance(i,s,r);return t*o+(1-t)*e}return console.warn(\\\\\\\"value is not a number\\\\\\\",o),0}}static _interpolate_with_multiple_points(t,e,n,i,s){const r=e.map((e=>this._interpolate_with_1_point(t,e,n,i,s)));return f.max(r)||0}static weights(t,e){switch(e.length){case 1:return 1;case 2:return this._weights_from_2(t,e);default:return e=e.slice(0,3),this._weights_from_3(t,e)}}static _weights_from_2(t,e){const n=e.map((e=>t.distanceTo(e))),i=f.sum(n);return[n[1]/i,n[0]/i]}static _weights_from_3(t,e){const n=e.map((e=>t.distanceTo(e))),i=f.sum([n[0]*n[1],n[0]*n[2],n[1]*n[2]]);return[n[1]*n[2]/i,n[0]*n[2]/i,n[0]*n[1]/i]}}.perform(t,e,n,this.pv.distanceThreshold,this.pv.blendWidth),null!=i&&t.setAttribValue(n,i)}}const OX=new class extends ua{constructor(){super(...arguments),this.stepSize=ha.FLOAT(.1)}};class PX extends uV{constructor(){super(...arguments),this.paramsConfig=OX}static type(){return\\\\\\\"bboxScatter\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create points from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1)}cook(t){const e=t[0],n=this.pv.stepSize,i=e.boundingBox(),s=i.min,r=i.max,o=[];for(let t=s.x;t<=r.x;t+=n)for(let e=s.y;e<=r.y;e+=n)for(let i=s.z;i<=r.z;i+=n)o.push(t),o.push(e),o.push(i);const a=new S.a;a.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(o),3)),this.setGeometry(a,Ns.POINTS)}}const RX=new class extends ua{constructor(){super(...arguments),this.attribName=ha.STRING(\\\\\\\"position\\\\\\\"),this.blend=ha.FLOAT(.5,{range:[0,1],rangeLocked:[!0,!0]})}};class IX extends uV{constructor(){super(...arguments),this.paramsConfig=RX}static type(){return\\\\\\\"blend\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to blend from\\\\\\\",\\\\\\\"geometry to blend to\\\\\\\"]}initializeNode(){this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState([Qi.FROM_NODE,Qi.NEVER])}cook(t){const e=t[0],n=t[1],i=e.objects(),s=n.objects();let r,o;for(let t=0;t<i.length;t++)r=i[t],o=s[t],this.blend(r,o,this.pv.blend);this.setCoreGroup(e)}blend(t,e,n){const i=t.geometry,s=e.geometry;if(null==i||null==s)return;const r=i.getAttribute(this.pv.attribName),o=s.getAttribute(this.pv.attribName);if(null==r||null==o)return;const a=r.array,l=o.array;let c,h;for(let t=0;t<a.length;t++)c=a[t],h=l[t],null!=h&&(a[t]=(1-n)*c+n*h);i.computeVertexNormals()}}class FX{constructor(){this.polygons=[]}clone(){let t=new FX;return t.polygons=this.polygons.map((function(t){return t.clone()})),t}toPolygons(){return this.polygons}union(t){let e=new VX(this.clone().polygons),n=new VX(t.clone().polygons);return e.clipTo(n),n.clipTo(e),n.invert(),n.clipTo(e),n.invert(),e.build(n.allPolygons()),FX.fromPolygons(e.allPolygons())}subtract(t){let e=new VX(this.clone().polygons),n=new VX(t.clone().polygons);return e.invert(),e.clipTo(n),n.clipTo(e),n.invert(),n.clipTo(e),n.invert(),e.build(n.allPolygons()),e.invert(),FX.fromPolygons(e.allPolygons())}intersect(t){let e=new VX(this.clone().polygons),n=new VX(t.clone().polygons);return e.invert(),n.clipTo(e),n.invert(),e.clipTo(n),n.clipTo(e),e.build(n.allPolygons()),e.invert(),FX.fromPolygons(e.allPolygons())}inverse(){let t=this.clone();return t.polygons.forEach((t=>t.flip())),t}}FX.fromPolygons=function(t){let e=new FX;return e.polygons=t,e};class DX{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}clone(){return new DX(this.x,this.y,this.z)}negate(){return this.x*=-1,this.y*=-1,this.z*=-1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}times(t){return this.x*=t,this.y*=t,this.z*=t,this}dividedBy(t){return this.x/=t,this.y/=t,this.z/=t,this}lerp(t,e){return this.add(BX.copy(t).sub(this).times(e))}unit(){return this.dividedBy(this.length())}length(){return Math.sqrt(this.x**2+this.y**2+this.z**2)}normalize(){return this.unit()}cross(t){let e=this;const n=e.x,i=e.y,s=e.z,r=t.x,o=t.y,a=t.z;return this.x=i*a-s*o,this.y=s*r-n*a,this.z=n*o-i*r,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}}let BX=new DX,zX=new DX;class kX{constructor(t,e,n,i){this.pos=(new DX).copy(t),this.normal=(new DX).copy(e),this.uv=(new DX).copy(n),this.uv.z=0,i&&(this.color=(new DX).copy(i))}clone(){return new kX(this.pos,this.normal,this.uv,this.color)}flip(){this.normal.negate()}interpolate(t,e){return new kX(this.pos.clone().lerp(t.pos,e),this.normal.clone().lerp(t.normal,e),this.uv.clone().lerp(t.uv,e),this.color&&t.color&&this.color.clone().lerp(t.color,e))}}class UX{constructor(t,e){this.normal=t,this.w=e}clone(){return new UX(this.normal.clone(),this.w)}flip(){this.normal.negate(),this.w=-this.w}splitPolygon(t,e,n,i,s){let r=0,o=[];for(let e=0;e<t.vertices.length;e++){let n=this.normal.dot(t.vertices[e].pos)-this.w,i=n<-UX.EPSILON?2:n>UX.EPSILON?1:0;r|=i,o.push(i)}switch(r){case 0:(this.normal.dot(t.plane.normal)>0?e:n).push(t);break;case 1:i.push(t);break;case 2:s.push(t);break;case 3:let r=[],a=[];for(let e=0;e<t.vertices.length;e++){let n=(e+1)%t.vertices.length,i=o[e],s=o[n],l=t.vertices[e],c=t.vertices[n];if(2!=i&&r.push(l),1!=i&&a.push(2!=i?l.clone():l),3==(i|s)){let t=(this.w-this.normal.dot(l.pos))/this.normal.dot(BX.copy(c.pos).sub(l.pos)),e=l.interpolate(c,t);r.push(e),a.push(e.clone())}}r.length>=3&&i.push(new GX(r,t.shared)),a.length>=3&&s.push(new GX(a,t.shared))}}}UX.EPSILON=1e-5,UX.fromPoints=function(t,e,n){let i=BX.copy(e).sub(t).cross(zX.copy(n).sub(t)).normalize();return new UX(i.clone(),i.dot(t))};class GX{constructor(t,e){this.vertices=t,this.shared=e,this.plane=UX.fromPoints(t[0].pos,t[1].pos,t[2].pos)}clone(){return new GX(this.vertices.map((t=>t.clone())),this.shared)}flip(){this.vertices.reverse().map((t=>t.flip())),this.plane.flip()}}class VX{constructor(t){this.plane=null,this.front=null,this.back=null,this.polygons=[],t&&this.build(t)}clone(){let t=new VX;return t.plane=this.plane&&this.plane.clone(),t.front=this.front&&this.front.clone(),t.back=this.back&&this.back.clone(),t.polygons=this.polygons.map((t=>t.clone())),t}invert(){for(let t=0;t<this.polygons.length;t++)this.polygons[t].flip();this.plane&&this.plane.flip(),this.front&&this.front.invert(),this.back&&this.back.invert();let t=this.front;this.front=this.back,this.back=t}clipPolygons(t){if(!this.plane)return t.slice();let e=[],n=[];for(let i=0;i<t.length;i++)this.plane.splitPolygon(t[i],e,n,e,n);return this.front&&(e=this.front.clipPolygons(e)),n=this.back?this.back.clipPolygons(n):[],e.concat(n)}clipTo(t){this.polygons=t.clipPolygons(this.polygons),this.front&&this.front.clipTo(t),this.back&&this.back.clipTo(t)}allPolygons(){let t=this.polygons.slice();return this.front&&(t=t.concat(this.front.allPolygons())),this.back&&(t=t.concat(this.back.allPolygons())),t}build(t){if(!t.length)return;this.plane||(this.plane=t[0].plane.clone());let e=[],n=[];for(let i=0;i<t.length;i++)this.plane.splitPolygon(t[i],this.polygons,this.polygons,e,n);e.length&&(this.front||(this.front=new VX),this.front.build(e)),n.length&&(this.back||(this.back=new VX),this.back.build(n))}}FX.fromJSON=function(t){return FX.fromPolygons(t.polygons.map((t=>new GX(t.vertices.map((t=>new kX(t.pos,t.normal,t.uv))),t.shared))))},FX.fromGeometry=function(t,e){let n=[];if(t.isGeometry){let i=t.faces,s=t.vertices,r=[\\\\\\\"a\\\\\\\",\\\\\\\"b\\\\\\\",\\\\\\\"c\\\\\\\"];for(let o=0;o<i.length;o++){let a=i[o],l=[];for(let e=0;e<3;e++)l.push(new kX(s[a[r[e]]],a.vertexNormals[e],t.faceVertexUvs[0][o][e]));n.push(new GX(l,e))}}else if(t.isBufferGeometry){let i,s=t.attributes.position,r=t.attributes.normal,o=t.attributes.uv,a=t.attributes.color;if(t.index)i=t.index.array;else{i=new Array(s.array.length/s.itemSize|0);for(let t=0;t<i.length;t++)i[t]=t}let l=i.length/3|0;n=new Array(l);for(let t=0,l=0,c=i.length;t<c;t+=3,l++){let c=new Array(3);for(let e=0;e<3;e++){let n=i[t+e],l=3*n,h=2*n,u=s.array[l],d=s.array[l+1],p=s.array[l+2],_=r.array[l],m=r.array[l+1],f=r.array[l+2],g=o.array[h],v=o.array[h+1];c[e]=new kX({x:u,y:d,z:p},{x:_,y:m,z:f},{x:g,y:v,z:0},a&&{x:a.array[h],y:a.array[h+1],z:a.array[h+2]})}n[l]=new GX(c,e)}}else console.error(\\\\\\\"Unsupported CSG input type:\\\\\\\"+t.type);return FX.fromPolygons(n)};let HX=new p.a,jX=new G.a;FX.fromMesh=function(t,e){let n=FX.fromGeometry(t.geometry,e);jX.getNormalMatrix(t.matrix);for(let e=0;e<n.polygons.length;e++){let i=n.polygons[e];for(let e=0;e<i.vertices.length;e++){let n=i.vertices[e];n.pos.copy(HX.copy(n.pos).applyMatrix4(t.matrix)),n.normal.copy(HX.copy(n.normal).applyMatrix3(jX))}}return n};let WX=t=>({top:0,array:new Float32Array(t),write:function(t){this.array[this.top++]=t.x,this.array[this.top++]=t.y,this.array[this.top++]=t.z}}),qX=t=>({top:0,array:new Float32Array(t),write:function(t){this.array[this.top++]=t.x,this.array[this.top++]=t.y}});var XX;FX.toMesh=function(t,e,n){let i,s,r=t.polygons;{let t=0;r.forEach((e=>t+=e.vertices.length-2)),i=new S.a;let e,n=WX(3*t*3),o=WX(3*t*3),a=qX(2*t*3),l=[];if(r.forEach((i=>{let s=i.vertices,r=s.length;void 0!==i.shared&&(l[i.shared]||(l[i.shared]=[])),r&&void 0!==s[0].color&&(e||(e=WX(3*t*3)));for(let t=3;t<=r;t++)void 0!==i.shared&&l[i.shared].push(n.top/3,n.top/3+1,n.top/3+2),n.write(s[0].pos),n.write(s[t-2].pos),n.write(s[t-1].pos),o.write(s[0].normal),o.write(s[t-2].normal),o.write(s[t-1].normal),a.write(s[0].uv),a.write(s[t-2].uv),a.write(s[t-1].uv),e&&(e.write(s[0].color)||e.write(s[t-2].color)||e.write(s[t-1].color))})),i.setAttribute(\\\\\\\"position\\\\\\\",new C.a(n.array,3)),i.setAttribute(\\\\\\\"normal\\\\\\\",new C.a(o.array,3)),i.setAttribute(\\\\\\\"uv\\\\\\\",new C.a(a.array,2)),e&&i.setAttribute(\\\\\\\"color\\\\\\\",new C.a(e.array,3)),l.length){let t=[],e=0;for(let n=0;n<l.length;n++)i.addGroup(e,l[n].length,n),e+=l[n].length,t=t.concat(l[n]);i.setIndex(t)}s=i}let o=(new A.a).copy(e).invert();i.applyMatrix4(o),i.computeBoundingSphere(),i.computeBoundingBox();let a=new B.a(i,n);return a.matrix.copy(e),a.matrix.decompose(a.position,a.quaternion,a.scale),a.rotation.setFromQuaternion(a.quaternion),a.updateMatrixWorld(),a.castShadow=a.receiveShadow=!0,a},function(t){t.INTERSECT=\\\\\\\"intersect\\\\\\\",t.SUBSTRACT=\\\\\\\"substract\\\\\\\",t.UNION=\\\\\\\"union\\\\\\\"}(XX||(XX={}));const YX=[XX.INTERSECT,XX.SUBSTRACT,XX.UNION];class $X extends aV{static type(){return\\\\\\\"boolean\\\\\\\"}cook(t,e){const n=t[0].objectsWithGeo()[0],i=t[1].objectsWithGeo()[0],s=this._applyBooleaOperation(n,i,e);let r=n.material;if(e.useBothMaterials){r=m.isArray(r)?r[0]:r;let t=i.material;t=m.isArray(t)?t[0]:t,r=[r,t]}const o=FX.toMesh(s,n.matrix,r);return this.createCoreGroupFromObjects([o])}_applyBooleaOperation(t,e,n){const i=YX[n.operation];let s=FX.fromMesh(t,0),r=FX.fromMesh(e,1);switch(i){case XX.INTERSECT:return s.intersect(r);case XX.SUBSTRACT:return s.subtract(r);case XX.UNION:return s.union(r)}os.unreachable(i)}}$X.DEFAULT_PARAMS={operation:YX.indexOf(XX.INTERSECT),useBothMaterials:!0},$X.INPUT_CLONED_STATE=[Qi.FROM_NODE,Qi.NEVER];const JX=$X.DEFAULT_PARAMS;const ZX=new class extends ua{constructor(){super(...arguments),this.operation=ha.INTEGER(JX.operation,{menu:{entries:YX.map(((t,e)=>({name:t,value:e})))}}),this.useBothMaterials=ha.BOOLEAN(JX.useBothMaterials)}};class KX extends uV{constructor(){super(...arguments),this.paramsConfig=ZX}static type(){return\\\\\\\"boolean\\\\\\\"}initializeNode(){super.initializeNode(),this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState($X.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.operation],(()=>YX[this.pv.operation]))}))}))}setOperation(t){this.p.operation.set(YX.indexOf(t))}async cook(t){this._operation=this._operation||new $X(this.scene(),this.states,this);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class QX extends aV{constructor(){super(...arguments),this._core_transform=new bU}static type(){return\\\\\\\"box\\\\\\\"}cook(t,e){const n=t[0],i=n?this._cookWithInput(n,e):this._cookWithoutInput(e);return this.createCoreGroupFromGeometry(i)}_cookWithoutInput(t){const e=t.divisions,n=t.size,i=new N(n,n,n,e,e,e);return i.translate(t.center.x,t.center.y,t.center.z),i.computeVertexNormals(),i}_cookWithInput(t,e){const n=e.divisions,i=t.boundingBox(),s=i.max.clone().sub(i.min),r=i.max.clone().add(i.min).multiplyScalar(.5),o=new N(s.x,s.y,s.z,n,n,n),a=this._core_transform.translationMatrix(r);return o.applyMatrix4(a),o}}QX.DEFAULT_PARAMS={size:1,divisions:1,center:new p.a(0,0,0)},QX.INPUT_CLONED_STATE=Qi.NEVER;const tY=QX.DEFAULT_PARAMS;const eY=new class extends ua{constructor(){super(...arguments),this.size=ha.FLOAT(tY.size),this.divisions=ha.INTEGER(tY.divisions,{range:[1,10],rangeLocked:[!0,!1]}),this.center=ha.VECTOR3(tY.center)}};class nY extends uV{constructor(){super(...arguments),this.paramsConfig=eY}static type(){return\\\\\\\"box\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create bounding box from (optional)\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(QX.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new QX(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class iY{constructor(){}}function sY(t,e,n){return n.min.x=e[t],n.min.y=e[t+1],n.min.z=e[t+2],n.max.x=e[t+3],n.max.y=e[t+4],n.max.z=e[t+5],n}function rY(t){let e=-1,n=-1/0;for(let i=0;i<3;i++){const s=t[i+3]-t[i];s>n&&(n=s,e=i)}return e}function oY(t,e){e.set(t)}function aY(t,e,n){let i,s;for(let r=0;r<3;r++){const o=r+3;i=t[r],s=e[r],n[r]=i<s?i:s,i=t[o],s=e[o],n[o]=i>s?i:s}}function lY(t){const e=t[3]-t[0],n=t[4]-t[1],i=t[5]-t[2];return 2*(e*n+n*i+i*e)}const cY=Math.pow(2,-24);function hY(t,e,n,i,s=null){let r=1/0,o=1/0,a=1/0,l=-1/0,c=-1/0,h=-1/0,u=1/0,d=1/0,p=1/0,_=-1/0,m=-1/0,f=-1/0;const g=null!==s;for(let i=6*e,s=6*(e+n);i<s;i+=6){const e=t[i+0],n=t[i+1],s=e-n,v=e+n;s<r&&(r=s),v>l&&(l=v),g&&e<u&&(u=e),g&&e>_&&(_=e);const y=t[i+2],x=t[i+3],b=y-x,w=y+x;b<o&&(o=b),w>c&&(c=w),g&&y<d&&(d=y),g&&y>m&&(m=y);const T=t[i+4],A=t[i+5],M=T-A,E=T+A;M<a&&(a=M),E>h&&(h=E),g&&T<p&&(p=T),g&&T>f&&(f=T)}i[0]=r,i[1]=o,i[2]=a,i[3]=l,i[4]=c,i[5]=h,g&&(s[0]=u,s[1]=d,s[2]=p,s[3]=_,s[4]=m,s[5]=f)}const uY=32,dY=new Array(uY).fill().map((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),candidate:0}))),pY=new Float32Array(6);function _Y(t,e){function n(e,i,d,p=null,_=0){if(!u&&_>=a&&(u=!0,l&&(console.warn(`MeshBVH: Max depth of ${a} reached when generating BVH. Consider increasing maxDepth.`),console.warn(t))),d<=c||_>=a)return e.offset=i,e.count=d,e;const m=function(t,e,n,i,s,r){let o=-1,a=0;if(0===r)o=rY(e),-1!==o&&(a=(e[o]+e[o+3])/2);else if(1===r)o=rY(t),-1!==o&&(a=function(t,e,n,i){let s=0;for(let r=e,o=e+n;r<o;r++)s+=t[6*r+2*i];return s/n}(n,i,s,o));else if(2===r){const r=lY(t);let l=1.25*s;const c=6*i,h=6*(i+s);for(let t=0;t<3;t++){const i=e[t],u=(e[t+3]-i)/uY;for(let t=0;t<uY;t++){const e=dY[t];e.count=0,e.candidate=i+u+t*u;const n=e.bounds;for(let t=0;t<3;t++)n[t]=1/0,n[t+3]=-1/0}for(let e=c;e<h;e+=6){let s=~~((n[e+2*t]-i)/u);s>=uY&&(s=31);const r=dY[s];r.count++;const o=r.bounds;for(let t=0;t<3;t++){const i=n[e+2*t],s=n[e+2*t+1],r=i-s,a=i+s;r<o[t]&&(o[t]=r),a>o[t+3]&&(o[t+3]=a)}}const d=dY[31];oY(d.bounds,d.rightCacheBounds);for(let t=30;t>=0;t--){const e=dY[t],n=dY[t+1];aY(e.bounds,n.rightCacheBounds,e.rightCacheBounds)}let p=0;for(let e=0;e<31;e++){const n=dY[e],i=n.count,c=n.bounds,h=dY[e+1].rightCacheBounds;0!==i&&(0===p?oY(c,pY):aY(c,pY,pY)),p+=i;let u=0,d=0;0!==p&&(u=lY(pY)/r);const _=s-p;0!==_&&(d=lY(h)/r);const m=1+1.25*(u*p+d*_);m<l&&(o=t,l=m,a=n.candidate)}}}return{axis:o,pos:a}}(e.boundingData,p,r,i,d,h);if(-1===m.axis)return e.offset=i,e.count=d,e;const f=function(t,e,n,i,s){let r=n,o=n+i-1;const a=s.pos,l=2*s.axis;for(;;){for(;r<=o&&e[6*r+l]<a;)r++;for(;r<=o&&e[6*o+l]>=a;)o--;if(!(r<o))return r;for(let n=0;n<3;n++){let i=t[3*r+n];t[3*r+n]=t[3*o+n],t[3*o+n]=i;let s=e[6*r+2*n+0];e[6*r+2*n+0]=e[6*o+2*n+0],e[6*o+2*n+0]=s;let a=e[6*r+2*n+1];e[6*r+2*n+1]=e[6*o+2*n+1],e[6*o+2*n+1]=a}r++,o--}}(o,r,i,d,m);if(f===i||f===i+d)e.offset=i,e.count=d;else{e.splitAxis=m.axis;const t=new iY,o=i,a=f-i;e.left=t,t.boundingData=new Float32Array(6),hY(r,o,a,t.boundingData,s),n(t,o,a,s,_+1);const l=new iY,c=f,h=d-a;e.right=l,l.boundingData=new Float32Array(6),hY(r,c,h,l.boundingData,s),n(l,c,h,s,_+1)}return e}!function(t,e){if(!t.index){const n=t.attributes.position.count,i=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;let s;s=n>65535?new Uint32Array(new i(4*n)):new Uint16Array(new i(2*n)),t.setIndex(new Qw(s,1));for(let t=0;t<n;t++)s[t]=t}}(t,e);const i=new Float32Array(6),s=new Float32Array(6),r=function(t,e){const n=t.attributes.position,i=n.array,s=t.index.array,r=s.length/3,o=new Float32Array(6*r),a=n.offset||0;let l=3;n.isInterleavedBufferAttribute&&(l=n.data.stride);for(let t=0;t<r;t++){const n=3*t,r=6*t,c=s[n+0]*l+a,h=s[n+1]*l+a,u=s[n+2]*l+a;for(let t=0;t<3;t++){const n=i[c+t],s=i[h+t],a=i[u+t];let l=n;s<l&&(l=s),a<l&&(l=a);let d=n;s>d&&(d=s),a>d&&(d=a);const p=(d-l)/2,_=2*t;o[r+_+0]=l+p,o[r+_+1]=p+(Math.abs(l)+p)*cY,l<e[t]&&(e[t]=l),d>e[t+3]&&(e[t+3]=d)}}return o}(t,i),o=t.index.array,a=e.maxDepth,l=e.verbose,c=e.maxLeafTris,h=e.strategy;let u=!1;const d=[],p=function(t){if(!t.groups||!t.groups.length)return[{offset:0,count:t.index.count/3}];const e=[],n=new Set;for(const e of t.groups)n.add(e.start),n.add(e.start+e.count);const i=Array.from(n.values()).sort(((t,e)=>t-e));for(let t=0;t<i.length-1;t++){const n=i[t],s=i[t+1];e.push({offset:n/3,count:(s-n)/3})}return e}(t);if(1===p.length){const t=p[0],e=new iY;e.boundingData=i,function(t,e,n,i){let s=1/0,r=1/0,o=1/0,a=-1/0,l=-1/0,c=-1/0;for(let i=6*e,h=6*(e+n);i<h;i+=6){const e=t[i+0];e<s&&(s=e),e>a&&(a=e);const n=t[i+2];n<r&&(r=n),n>l&&(l=n);const h=t[i+4];h<o&&(o=h),h>c&&(c=h)}i[0]=s,i[1]=r,i[2]=o,i[3]=a,i[4]=l,i[5]=c}(r,t.offset,t.count,s),n(e,t.offset,t.count,s),d.push(e)}else for(let t of p){const e=new iY;e.boundingData=new Float32Array(6),hY(r,t.offset,t.count,e.boundingData,s),n(e,t.offset,t.count,s),d.push(e)}return d}const mY=65535;class fY{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,e){let n=1/0,i=-1/0;for(let s=0,r=t.length;s<r;s++){const r=t[s][e];n=r<n?r:n,i=r>i?r:i}this.min=n,this.max=i}setFromPoints(t,e){let n=1/0,i=-1/0;for(let s=0,r=e.length;s<r;s++){const r=e[s],o=t.dot(r);n=o<n?o:n,i=o>i?o:i}this.min=n,this.max=i}isSeparated(t){return this.min>t.max||t.min>this.max}}fY.prototype.setFromBox=function(){const t=new Sb;return function(e,n){const i=n.min,s=n.max;let r=1/0,o=-1/0;for(let n=0;n<=1;n++)for(let a=0;a<=1;a++)for(let l=0;l<=1;l++){t.x=i.x*n+s.x*(1-n),t.y=i.y*a+s.y*(1-a),t.z=i.z*l+s.z*(1-l);const c=e.dot(t);r=Math.min(c,r),o=Math.max(c,o)}this.min=r,this.max=o}}();!function(){const t=new fY}();const gY=function(){const t=new Sb,e=new Sb,n=new Sb;return function(i,s,r){const o=i.start,a=t,l=s.start,c=e;n.subVectors(o,l),t.subVectors(i.end,s.start),e.subVectors(s.end,s.start);const h=n.dot(c),u=c.dot(a),d=c.dot(c),p=n.dot(a),_=a.dot(a)*d-u*u;let m,f;m=0!==_?(h*u-p*d)/_:0,f=(h+m*u)/d,r.x=m,r.y=f}}(),vY=function(){const t=new _b,e=new Sb,n=new Sb;return function(i,s,r,o){gY(i,s,t);let a=t.x,l=t.y;if(a>=0&&a<=1&&l>=0&&l<=1)return i.at(a,r),void s.at(l,o);if(a>=0&&a<=1)return l<0?s.at(0,o):s.at(1,o),void i.closestPointToPoint(o,!0,r);if(l>=0&&l<=1)return a<0?i.at(0,r):i.at(1,r),void s.closestPointToPoint(r,!0,o);{let t,c;t=a<0?i.start:i.end,c=l<0?s.start:s.end;const h=e,u=n;return i.closestPointToPoint(c,!0,e),s.closestPointToPoint(t,!0,n),h.distanceToSquared(c)<=u.distanceToSquared(t)?(r.copy(h),void o.copy(c)):(r.copy(t),void o.copy(u))}}}(),yY=function(){const t=new Sb,e=new Sb,n=new jT,i=new sL;return function(s,r){const{radius:o,center:a}=s,{a:l,b:c,c:h}=r;i.start=l,i.end=c;if(i.closestPointToPoint(a,!0,t).distanceTo(a)<=o)return!0;i.start=l,i.end=h;if(i.closestPointToPoint(a,!0,t).distanceTo(a)<=o)return!0;i.start=c,i.end=h;if(i.closestPointToPoint(a,!0,t).distanceTo(a)<=o)return!0;const u=r.getPlane(n);if(Math.abs(u.distanceToPoint(a))<=o){const t=u.projectPoint(a,e);if(r.containsPoint(t))return!0}return!1}}();class xY extends Uw{constructor(...t){super(...t),this.isSeparatingAxisTriangle=!0,this.satAxes=new Array(4).fill().map((()=>new Sb)),this.satBounds=new Array(4).fill().map((()=>new fY)),this.points=[this.a,this.b,this.c],this.sphere=new $b,this.plane=new jT,this.needsUpdate=!1}intersectsSphere(t){return yY(t,this)}update(){const t=this.a,e=this.b,n=this.c,i=this.points,s=this.satAxes,r=this.satBounds,o=s[0],a=r[0];this.getNormal(o),a.setFromPoints(o,i);const l=s[1],c=r[1];l.subVectors(t,e),c.setFromPoints(l,i);const h=s[2],u=r[2];h.subVectors(e,n),u.setFromPoints(h,i);const d=s[3],p=r[3];d.subVectors(n,t),p.setFromPoints(d,i),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,t),this.needsUpdate=!1}}xY.prototype.closestPointToSegment=function(){const t=new Sb,e=new Sb,n=new sL;return function(i,s=null,r=null){const{start:o,end:a}=i,l=this.points;let c,h=1/0;for(let o=0;o<3;o++){const a=(o+1)%3;n.start.copy(l[o]),n.end.copy(l[a]),vY(n,i,t,e),c=t.distanceToSquared(e),c<h&&(h=c,s&&s.copy(t),r&&r.copy(e))}return this.closestPointToPoint(o,t),c=o.distanceToSquared(t),c<h&&(h=c,s&&s.copy(t),r&&r.copy(o)),this.closestPointToPoint(a,t),c=a.distanceToSquared(t),c<h&&(h=c,s&&s.copy(t),r&&r.copy(a)),Math.sqrt(h)}}(),xY.prototype.intersectsTriangle=function(){const t=new xY,e=new Array(3),n=new Array(3),i=new fY,s=new fY,r=new Sb,o=new Sb,a=new Sb,l=new Sb,c=new sL,h=new sL,u=new sL;return function(d,p=null){this.needsUpdate&&this.update(),d.isSeparatingAxisTriangle?d.needsUpdate&&d.update():(t.copy(d),t.update(),d=t);const _=this.satBounds,m=this.satAxes;n[0]=d.a,n[1]=d.b,n[2]=d.c;for(let t=0;t<4;t++){const e=_[t],s=m[t];if(i.setFromPoints(s,n),e.isSeparated(i))return!1}const f=d.satBounds,g=d.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let t=0;t<4;t++){const n=f[t],s=g[t];if(i.setFromPoints(s,e),n.isSeparated(i))return!1}for(let t=0;t<4;t++){const o=m[t];for(let t=0;t<4;t++){const a=g[t];if(r.crossVectors(o,a),i.setFromPoints(r,e),s.setFromPoints(r,n),i.isSeparated(s))return!1}}if(p){const t=this.plane,e=d.plane;if(Math.abs(t.normal.dot(e.normal))>1-1e-10)console.warn(\\\\\\\"SeparatingAxisTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.\\\\\\\"),p.start.set(0,0,0),p.end.set(0,0,0);else{const n=this.points;let i=!1;for(let t=0;t<3;t++){const s=n[t],r=n[(t+1)%3];if(c.start.copy(s),c.end.copy(r),e.intersectLine(c,i?h.start:h.end)){if(i)break;i=!0}}const s=d.points;let r=!1;for(let e=0;e<3;e++){const n=s[e],i=s[(e+1)%3];if(c.start.copy(n),c.end.copy(i),t.intersectLine(c,r?u.start:u.end)){if(r)break;r=!0}}if(h.delta(o),u.delta(a),o.dot(a)<0){let t=u.start;u.start=u.end,u.end=t}l.subVectors(h.start,u.start),l.dot(o)>0?p.start.copy(h.start):p.start.copy(u.start),l.subVectors(h.end,u.end),l.dot(o)<0?p.end.copy(h.end):p.end.copy(u.end)}}return!0}}(),xY.prototype.distanceToPoint=function(){const t=new Sb;return function(e){return this.closestPointToPoint(e,t),e.distanceTo(t)}}(),xY.prototype.distanceToTriangle=function(){const t=new Sb,e=new Sb,n=[\\\\\\\"a\\\\\\\",\\\\\\\"b\\\\\\\",\\\\\\\"c\\\\\\\"],i=new sL,s=new sL;return function(r,o=null,a=null){const l=o||a?i:null;if(this.intersectsTriangle(r,l))return(o||a)&&(o&&l.getCenter(o),a&&l.getCenter(a)),0;let c=1/0;for(let e=0;e<3;e++){let i;const s=n[e],l=r[s];this.closestPointToPoint(l,t),i=l.distanceToSquared(t),i<c&&(c=i,o&&o.copy(t),a&&a.copy(l));const h=this[s];r.closestPointToPoint(h,t),i=h.distanceToSquared(t),i<c&&(c=i,o&&o.copy(h),a&&a.copy(t))}for(let l=0;l<3;l++){const h=n[l],u=n[(l+1)%3];i.set(this[h],this[u]);for(let l=0;l<3;l++){const h=n[l],u=n[(l+1)%3];s.set(r[h],r[u]),vY(i,s,t,e);const d=t.distanceToSquared(e);d<c&&(c=d,o&&o.copy(t),a&&a.copy(e))}}return Math.sqrt(c)}}();class bY extends Lb{constructor(...t){super(...t),this.isOrientedBox=!0,this.matrix=new sw,this.invMatrix=new sw,this.points=new Array(8).fill().map((()=>new Sb)),this.satAxes=new Array(3).fill().map((()=>new Sb)),this.satBounds=new Array(3).fill().map((()=>new fY)),this.alignedSatBounds=new Array(3).fill().map((()=>new fY)),this.needsUpdate=!1}set(t,e,n){super.set(t,e),this.matrix=n,this.needsUpdate=!0}copy(t){super.copy(t),this.matrix.copy(t.matrix),this.needsUpdate=!0}}bY.prototype.update=function(){const t=this.matrix,e=this.min,n=this.max,i=this.points;for(let s=0;s<=1;s++)for(let r=0;r<=1;r++)for(let o=0;o<=1;o++){const a=i[1*s|2*r|4*o];a.x=s?n.x:e.x,a.y=r?n.y:e.y,a.z=o?n.z:e.z,a.applyMatrix4(t)}const s=this.satBounds,r=this.satAxes,o=i[0];for(let t=0;t<3;t++){const e=r[t],n=s[t],a=i[1<<t];e.subVectors(o,a),n.setFromPoints(e,i)}const a=this.alignedSatBounds;a[0].setFromPointsField(i,\\\\\\\"x\\\\\\\"),a[1].setFromPointsField(i,\\\\\\\"y\\\\\\\"),a[2].setFromPointsField(i,\\\\\\\"z\\\\\\\"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1},bY.prototype.intersectsBox=function(){const t=new fY;return function(e){this.needsUpdate&&this.update();const n=e.min,i=e.max,s=this.satBounds,r=this.satAxes,o=this.alignedSatBounds;if(t.min=n.x,t.max=i.x,o[0].isSeparated(t))return!1;if(t.min=n.y,t.max=i.y,o[1].isSeparated(t))return!1;if(t.min=n.z,t.max=i.z,o[2].isSeparated(t))return!1;for(let n=0;n<3;n++){const i=r[n],o=s[n];if(t.setFromBox(i,e),o.isSeparated(t))return!1}return!0}}(),bY.prototype.intersectsTriangle=function(){const t=new xY,e=new Array(3),n=new fY,i=new fY,s=new Sb;return function(r){this.needsUpdate&&this.update(),r.isSeparatingAxisTriangle?r.needsUpdate&&r.update():(t.copy(r),t.update(),r=t);const o=this.satBounds,a=this.satAxes;e[0]=r.a,e[1]=r.b,e[2]=r.c;for(let t=0;t<3;t++){const i=o[t],s=a[t];if(n.setFromPoints(s,e),i.isSeparated(n))return!1}const l=r.satBounds,c=r.satAxes,h=this.points;for(let t=0;t<3;t++){const e=l[t],i=c[t];if(n.setFromPoints(i,h),e.isSeparated(n))return!1}for(let t=0;t<3;t++){const r=a[t];for(let t=0;t<4;t++){const o=c[t];if(s.crossVectors(r,o),n.setFromPoints(s,e),i.setFromPoints(s,h),n.isSeparated(i))return!1}}return!0}}(),bY.prototype.closestPointToPoint=function(t,e){return this.needsUpdate&&this.update(),e.copy(t).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),e},bY.prototype.distanceToPoint=function(){const t=new Sb;return function(e){return this.closestPointToPoint(e,t),e.distanceTo(t)}}(),bY.prototype.distanceToBox=function(){const t=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"],e=new Array(12).fill().map((()=>new sL)),n=new Array(12).fill().map((()=>new sL)),i=new Sb,s=new Sb;return function(r,o=0,a=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(r))return(a||l)&&(r.getCenter(s),this.closestPointToPoint(s,i),r.closestPointToPoint(i,s),a&&a.copy(i),l&&l.copy(s)),0;const c=o*o,h=r.min,u=r.max,d=this.points;let p=1/0;for(let t=0;t<8;t++){const e=d[t];s.copy(e).clamp(h,u);const n=e.distanceToSquared(s);if(n<p&&(p=n,a&&a.copy(e),l&&l.copy(s),n<c))return Math.sqrt(n)}let _=0;for(let i=0;i<3;i++)for(let s=0;s<=1;s++)for(let r=0;r<=1;r++){const o=(i+1)%3,a=(i+2)%3,l=1<<i|s<<o|r<<a,c=d[s<<o|r<<a],p=d[l];e[_].set(c,p);const m=t[i],f=t[o],g=t[a],v=n[_],y=v.start,x=v.end;y[m]=h[m],y[f]=s?h[f]:u[f],y[g]=r?h[g]:u[f],x[m]=u[m],x[f]=s?h[f]:u[f],x[g]=r?h[g]:u[f],_++}for(let t=0;t<=1;t++)for(let e=0;e<=1;e++)for(let n=0;n<=1;n++){s.x=t?u.x:h.x,s.y=e?u.y:h.y,s.z=n?u.z:h.z,this.closestPointToPoint(s,i);const r=s.distanceToSquared(i);if(r<p&&(p=r,a&&a.copy(i),l&&l.copy(s),r<c))return Math.sqrt(r)}for(let t=0;t<12;t++){const r=e[t];for(let t=0;t<12;t++){const e=n[t];vY(r,e,i,s);const o=i.distanceToSquared(s);if(o<p&&(p=o,a&&a.copy(i),l&&l.copy(s),o<c))return Math.sqrt(o)}}return Math.sqrt(p)}}();const wY=new Sb,TY=new Sb,AY=new Sb,MY=new _b,EY=new _b,SY=new _b,CY=new Sb;function NY(t,e,n,i,s){const r=3*i,o=t.index.getX(r),a=t.index.getX(r+1),l=t.index.getX(r+2),c=function(t,e,n,i,s,r,o){wY.fromBufferAttribute(e,i),TY.fromBufferAttribute(e,s),AY.fromBufferAttribute(e,r);const a=function(t,e,n,i,s,r){let o;return o=1===r?t.intersectTriangle(i,n,e,!0,s):t.intersectTriangle(e,n,i,2!==r,s),null===o?null:{distance:t.origin.distanceTo(s),point:s.clone()}}(t,wY,TY,AY,CY,o);if(a){n&&(MY.fromBufferAttribute(n,i),EY.fromBufferAttribute(n,s),SY.fromBufferAttribute(n,r),a.uv=Uw.getUV(CY,wY,TY,AY,MY,EY,SY,new _b));const t={a:i,b:s,c:r,normal:new Sb,materialIndex:0};Uw.getNormal(wY,TY,AY,t.normal),a.face=t,a.faceIndex=i}return a}(n,t.attributes.position,t.attributes.uv,o,a,l,e);return c?(c.faceIndex=i,s&&s.push(c),c):null}function LY(t,e,n){return null===t?null:(t.point.applyMatrix4(e.matrixWorld),t.distance=t.point.distanceTo(n.ray.origin),t.object=e,t.distance<n.near||t.distance>n.far?null:t)}function OY(t,e,n,i){const s=t.a,r=t.b,o=t.c;let a=e,l=e+1,c=e+2;n&&(a=n.getX(e),l=n.getX(e+1),c=n.getX(e+2)),s.x=i.getX(a),s.y=i.getY(a),s.z=i.getZ(a),r.x=i.getX(l),r.y=i.getY(l),r.z=i.getZ(l),o.x=i.getX(c),o.y=i.getY(c),o.z=i.getZ(c)}function PY(t,e,n,i,s,r,o){const a=n.index,l=n.attributes.position;for(let n=t,c=e+t;n<c;n++)if(OY(o,3*n,a,l),o.needsUpdate=!0,i(o,n,s,r))return!0;return!1}class RY{constructor(t){this._getNewPrimitive=t,this._primitives=[]}getPrimitive(){const t=this._primitives;return 0===t.length?this._getNewPrimitive():t.pop()}releasePrimitive(t){this._primitives.push(t)}}function IY(t,e){return 65535===e[t+15]}function FY(t,e){return e[t+6]}function DY(t,e){return e[t+14]}function BY(t){return t+8}function zY(t,e){return e[t+6]}const kY=new Lb,UY=new Sb,GY=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"];function VY(t,e,n,i,s){let r=2*t,o=$Y,a=JY,l=ZY;if(IY(r,a)){!function(t,e,n,i,s,r){for(let o=i,a=i+s;o<a;o++)NY(t,e,n,o,r)}(e,n,i,FY(t,l),DY(r,a),s)}else{const r=BY(t);qY(r,o,i,UY)&&VY(r,e,n,i,s);const a=zY(t,l);qY(a,o,i,UY)&&VY(a,e,n,i,s)}}function HY(t,e,n,i){let s=2*t,r=$Y,o=JY,a=ZY;if(IY(s,o)){return function(t,e,n,i,s){let r=1/0,o=null;for(let a=i,l=i+s;a<l;a++){const i=NY(t,e,n,a);i&&i.distance<r&&(o=i,r=i.distance)}return o}(e,n,i,FY(t,a),DY(s,o))}{const s=function(t,e){return e[t+7]}(t,a),o=GY[s],l=i.direction[o]>=0;let c,h;l?(c=BY(t),h=zY(t,a)):(c=zY(t,a),h=BY(t));const u=qY(c,r,i,UY)?HY(c,e,n,i):null;if(u){const t=u.point[o];if(l?t<=r[h+s]:t>=r[h+s+3])return u}const d=qY(h,r,i,UY)?HY(h,e,n,i):null;return u&&d?u.distance<=d.distance?u:d:u||d||null}}const jY=function(){let t,e;const n=[],i=new RY((()=>new Lb));return function(...r){t=i.getPrimitive(),e=i.getPrimitive(),n.push(t,e);const o=s(...r);i.releasePrimitive(t),i.releasePrimitive(e),n.pop(),n.pop();const a=n.length;return a>0&&(e=n[a-1],t=n[a-2]),o};function s(n,i,r,o,a=null,l=0,c=0){function h(t){let e=2*t,n=JY,i=ZY;for(;!IY(e,n);)e=2*(t=BY(t));return FY(t,i)}function u(t){let e=2*t,n=JY,i=ZY;for(;!IY(e,n);)e=2*(t=zY(t,i));return FY(t,i)+DY(e,n)}let d=2*n,p=$Y,_=JY,m=ZY;if(IY(d,_)){const e=FY(n,m),i=DY(d,_);return sY(n,p,t),o(e,i,!1,c,l+n,t)}{const d=BY(n),f=zY(n,m);let g,v,y,x,b=d,w=f;if(a&&(y=t,x=e,sY(b,p,y),sY(w,p,x),g=a(y),v=a(x),v<g)){b=f,w=d;const t=g;g=v,v=t,y=x}y||(y=t,sY(b,p,y));const T=r(y,IY(2*b,_),g,c+1,l+b);let A;if(2===T){const t=h(b);A=o(t,u(b)-t,!0,c+1,l+b,y)}else A=T&&s(b,i,r,o,a,l,c+1);if(A)return!0;x=e,sY(w,p,x);const M=r(x,IY(2*w,_),v,c+1,l+w);let E;if(2===M){const t=h(w);E=o(t,u(w)-t,!0,c+1,l+w,x)}else E=M&&s(w,i,r,o,a,l,c+1);return!!E}}}(),WY=function(){const t=new xY,e=new xY,n=new sw,i=new bY,s=new bY;return function r(o,a,l,c,h=null){let u=2*o,d=$Y,p=JY,_=ZY;null===h&&(l.boundingBox||l.computeBoundingBox(),i.set(l.boundingBox.min,l.boundingBox.max,c),h=i);if(!IY(u,p)){const t=o+8,e=_[o+6];sY(t,d,kY);if(h.intersectsBox(kY)&&r(t,a,l,c,h))return!0;sY(e,d,kY);return!!(h.intersectsBox(kY)&&r(e,a,l,c,h))}{const i=a,r=i.index,h=i.attributes.position,m=l.index,f=l.attributes.position,g=FY(o,_),v=DY(u,p);if(n.copy(c).invert(),l.boundsTree){sY(o,d,s),s.matrix.copy(n),s.needsUpdate=!0;return l.boundsTree.shapecast({intersectsBounds:t=>s.intersectsBox(t),intersectsTriangle:t=>{t.a.applyMatrix4(c),t.b.applyMatrix4(c),t.c.applyMatrix4(c),t.needsUpdate=!0;for(let n=3*g,i=3*(v+g);n<i;n+=3)if(OY(e,n,r,h),e.needsUpdate=!0,t.intersectsTriangle(e))return!0;return!1}})}for(let i=3*g,s=v+3*g;i<s;i+=3){OY(t,i,r,h),t.a.applyMatrix4(n),t.b.applyMatrix4(n),t.c.applyMatrix4(n),t.needsUpdate=!0;for(let n=0,i=m.count;n<i;n+=3)if(OY(e,n,m,f),e.needsUpdate=!0,t.intersectsTriangle(e))return!0}}}}();function qY(t,e,n,i){return sY(t,e,kY),n.intersectBox(kY,i)}const XY=[];let YY,$Y,JY,ZY;function KY(t){YY&&XY.push(YY),YY=t,$Y=new Float32Array(t),JY=new Uint16Array(t),ZY=new Uint32Array(t)}function QY(){YY=null,$Y=null,JY=null,ZY=null,XY.length&&KY(XY.pop())}const t$=Symbol(\\\\\\\"skip tree generation\\\\\\\"),e$=new Lb,n$=new Lb,i$=new sw,s$=new bY,r$=new bY,o$=new Sb,a$=new Sb,l$=new Sb,c$=new Sb,h$=new Sb,u$=new Lb,d$=new RY((()=>new xY));class p${static serialize(t,e={}){if(e.isBufferGeometry)return console.warn(\\\\\\\"MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature.\\\\\\\"),p$.serialize(arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});e={cloneBuffers:!0,...e};const n=t.geometry,i=t._roots,s=n.getIndex();let r;return r=e.cloneBuffers?{roots:i.map((t=>t.slice())),index:s.array.slice()}:{roots:i,index:s.array},r}static deserialize(t,e,n={}){if(\\\\\\\"boolean\\\\\\\"==typeof n)return console.warn(\\\\\\\"MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature.\\\\\\\"),p$.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});n={setIndex:!0,...n};const{index:i,roots:s}=t,r=new p$(e,{...n,[t$]:!0});if(r._roots=s,n.setIndex){const n=e.getIndex();if(null===n){const n=new Qw(t.index,1,!1);e.setIndex(n)}else n.array!==i&&(n.array.set(i),n.needsUpdate=!0)}return r}constructor(t,e={}){if(!t.isBufferGeometry)throw new Error(\\\\\\\"MeshBVH: Only BufferGeometries are supported.\\\\\\\");if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error(\\\\\\\"MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.\\\\\\\");if((e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,[t$]:!1},e)).useSharedArrayBuffer&&\\\\\\\"undefined\\\\\\\"==typeof SharedArrayBuffer)throw new Error(\\\\\\\"MeshBVH: SharedArrayBuffer is not available.\\\\\\\");this._roots=null,e[t$]||(this._roots=function(t,e){const n=_Y(t,e);let i,s,r;const o=[],a=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let t=0;t<n.length;t++){const e=n[t],h=new a(32*l(e));i=new Float32Array(h),s=new Uint32Array(h),r=new Uint16Array(h),c(0,e),o.push(h)}return o;function l(t){return t.count?1:1+l(t.left)+l(t.right)}function c(t,e){const n=t/4,o=t/2,a=!!e.count,l=e.boundingData;for(let t=0;t<6;t++)i[n+t]=l[t];if(a){const i=e.offset,a=e.count;return s[n+6]=i,r[o+14]=a,r[o+15]=mY,t+32}{const i=e.left,r=e.right,o=e.splitAxis;let a;if(a=c(t+32,i),a/4>Math.pow(2,32))throw new Error(\\\\\\\"MeshBVH: Cannot store child pointer greater than 32 bits.\\\\\\\");return s[n+6]=a/4,a=c(a,r),s[n+7]=o,a}}}(t,e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new Lb))),this.geometry=t}refit(t=null){t&&Array.isArray(t)&&(t=new Set(t));const e=this.geometry,n=e.index.array,i=e.attributes.position,s=i.array,r=i.offset||0;let o,a,l,c,h=3;i.isInterleavedBufferAttribute&&(h=i.data.stride);let u=0;const d=this._roots;for(let t=0,e=d.length;t<e;t++)o=d[t],a=new Uint32Array(o),l=new Uint16Array(o),c=new Float32Array(o),p(0,u),u+=o.byteLength;function p(e,i,o=!1){const u=2*e;if(l[u+15]===mY){const t=a[e+6];let i=1/0,o=1/0,d=1/0,p=-1/0,_=-1/0,m=-1/0;for(let e=3*t,a=3*(t+l[u+14]);e<a;e++){const t=n[e]*h+r,a=s[t+0],l=s[t+1],c=s[t+2];a<i&&(i=a),a>p&&(p=a),l<o&&(o=l),l>_&&(_=l),c<d&&(d=c),c>m&&(m=c)}return(c[e+0]!==i||c[e+1]!==o||c[e+2]!==d||c[e+3]!==p||c[e+4]!==_||c[e+5]!==m)&&(c[e+0]=i,c[e+1]=o,c[e+2]=d,c[e+3]=p,c[e+4]=_,c[e+5]=m,!0)}{const n=e+8,s=a[e+6],r=n+i,l=s+i;let h=o,u=!1,d=!1;t?h||(u=t.has(r),d=t.has(l),h=!u&&!d):(u=!0,d=!0);const _=h||d;let m=!1;(h||u)&&(m=p(n,i,h));let f=!1;_&&(f=p(s,i,h));const g=m||f;if(g)for(let t=0;t<3;t++){const i=n+t,r=s+t,o=c[i],a=c[i+3],l=c[r],h=c[r+3];c[e+t]=o<l?o:l,c[e+t+3]=a>h?a:h}return g}}}traverse(t,e=0){const n=this._roots[e],i=new Uint32Array(n),s=new Uint16Array(n);!function e(r,o=0){const a=2*r,l=s[a+15]===mY;if(l){const e=i[r+6],c=s[a+14];t(o,l,new Float32Array(n,4*r,6),e,c)}else{const s=r+8,a=i[r+6],c=i[r+7];t(o,l,new Float32Array(n,4*r,6),c)||(e(s,o+1),e(a,o+1))}}(0)}raycast(t,e=0){const n=this._roots,i=this.geometry,s=[],r=e.isMaterial,o=Array.isArray(e),a=i.groups,l=r?e.side:e;for(let r=0,c=n.length;r<c;r++){const c=o?e[a[r].materialIndex].side:l,h=s.length;if(KY(n[r]),VY(0,i,c,t,s),QY(),o){const t=a[r].materialIndex;for(let e=h,n=s.length;e<n;e++)s[e].face.materialIndex=t}}return s}raycastFirst(t,e=0){const n=this._roots,i=this.geometry,s=e.isMaterial,r=Array.isArray(e);let o=null;const a=i.groups,l=s?e.side:e;for(let s=0,c=n.length;s<c;s++){const c=r?e[a[s].materialIndex].side:l;KY(n[s]);const h=HY(0,i,c,t);QY(),null!=h&&(null==o||h.distance<o.distance)&&(o=h,r&&(h.face.materialIndex=a[s].materialIndex))}return o}intersectsGeometry(t,e){const n=this.geometry;let i=!1;for(const s of this._roots)if(KY(s),i=WY(0,n,t,e),QY(),i)break;return i}shapecast(t,e,n){const i=this.geometry;if(t instanceof Function){if(e){const t=e;e=(e,n,i,s)=>{const r=3*n;return t(e,r,r+1,r+2,i,s)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn(\\\\\\\"MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.\\\\\\\")}const s=d$.getPrimitive();let{boundsTraverseOrder:r,intersectsBounds:o,intersectsRange:a,intersectsTriangle:l}=t;if(a&&l){const t=a;a=(e,n,r,o,a)=>!!t(e,n,r,o,a)||PY(e,n,i,l,r,o,s)}else a||(a=l?(t,e,n,r)=>PY(t,e,i,l,n,r,s):(t,e,n)=>n);let c=!1,h=0;for(const t of this._roots){if(KY(t),c=jY(0,i,o,a,r,h),QY(),c)break;h+=t.byteLength}return d$.releasePrimitive(s),c}bvhcast(t,e,n){let{intersectsRanges:i,intersectsTriangles:s}=n;const r=t.geometry,o=r.index,a=r.attributes.position;i$.copy(e).invert();const l=d$.getPrimitive(),c=d$.getPrimitive();if(s){function h(t,n,i,r,h,u,d,p){for(let _=i,m=i+r;_<m;_++){OY(c,3*_,o,a),c.a.applyMatrix4(e),c.b.applyMatrix4(e),c.c.applyMatrix4(e),c.needsUpdate=!0;for(let e=t,i=t+n;e<i;e++)if(OY(l,3*e,o,a),l.needsUpdate=!0,s(l,c,e,_,h,u,d,p))return!0}return!1}if(i){const t=i;i=function(e,n,i,s,r,o,a,l){return!!t(e,n,i,s,r,o,a,l)||h(e,n,i,s,r,o,a,l)}}else i=h}this.getBoundingBox(n$),n$.applyMatrix4(e);const u=this.shapecast({intersectsBounds:t=>n$.intersectsBox(t),intersectsRange:(e,n,s,r,o,a)=>(e$.copy(a),e$.applyMatrix4(i$),t.shapecast({intersectsBounds:t=>e$.intersectsBox(t),intersectsRange:(t,s,a,l,c)=>i(e,n,t,s,r,o,l,c)}))});return d$.releasePrimitive(l),d$.releasePrimitive(c),u}intersectsBox(t,e){return s$.set(t.min,t.max,e),s$.needsUpdate=!0,this.shapecast({intersectsBounds:t=>s$.intersectsBox(t),intersectsTriangle:t=>s$.intersectsTriangle(t)})}intersectsSphere(t){return this.shapecast({intersectsBounds:e=>t.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(t)})}closestPointToGeometry(t,e,n={},i={},s=0,r=1/0){t.boundingBox||t.computeBoundingBox(),s$.set(t.boundingBox.min,t.boundingBox.max,e),s$.needsUpdate=!0;const o=this.geometry,a=o.attributes.position,l=o.index,c=t.attributes.position,h=t.index,u=d$.getPrimitive(),d=d$.getPrimitive();let p=a$,_=l$,m=null,f=null;i&&(m=c$,f=h$);let g=1/0,v=null,y=null;return i$.copy(e).invert(),r$.matrix.copy(i$),this.shapecast({boundsTraverseOrder:t=>s$.distanceToBox(t,Math.min(g,r)),intersectsBounds:(t,e,n)=>n<g&&n<r&&(e&&(r$.min.copy(t.min),r$.max.copy(t.max),r$.needsUpdate=!0),!0),intersectsRange:(n,i)=>{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:t=>r$.distanceToBox(t,Math.min(g,r)),intersectsBounds:(t,e,n)=>n<g&&n<r,intersectsRange:(t,r)=>{for(let o=3*t,x=3*(t+r);o<x;o+=3){OY(d,o,h,c),d.a.applyMatrix4(e),d.b.applyMatrix4(e),d.c.applyMatrix4(e),d.needsUpdate=!0;for(let t=3*n,e=3*(n+i);t<e;t+=3){OY(u,t,l,a),u.needsUpdate=!0;const e=u.distanceToTriangle(d,p,m);if(e<g&&(_.copy(p),f&&f.copy(m),g=e,v=t/3,y=o/3),e<s)return!0}}}});for(let t=0,r=h?h.count:c.count;t<r;t+=3){OY(d,t,h,c),d.a.applyMatrix4(e),d.b.applyMatrix4(e),d.c.applyMatrix4(e),d.needsUpdate=!0;for(let e=3*n,r=3*(n+i);e<r;e+=3){OY(u,e,l,a),u.needsUpdate=!0;const n=u.distanceToTriangle(d,p,m);if(n<g&&(_.copy(p),f&&f.copy(m),g=n,v=e/3,y=t/3),n<s)return!0}}}}),d$.releasePrimitive(u),d$.releasePrimitive(d),g===1/0?null:(n.point?n.point.copy(_):n.point=_.clone(),n.distance=g,n.faceIndex=v,i&&(i.point?i.point.copy(f):i.point=f.clone(),i.point.applyMatrix4(i$),_.applyMatrix4(i$),i.distance=_.sub(i.point).length(),i.faceIndex=y),n)}closestPointToPoint(t,e={},n=0,i=1/0){const s=n*n,r=i*i;let o=1/0,a=null;if(this.shapecast({boundsTraverseOrder:e=>(o$.copy(t).clamp(e.min,e.max),o$.distanceToSquared(t)),intersectsBounds:(t,e,n)=>n<o&&n<r,intersectsTriangle:(e,n)=>{e.closestPointToPoint(t,o$);const i=t.distanceToSquared(o$);return i<o&&(a$.copy(o$),o=i,a=n),i<s}}),o===1/0)return null;const l=Math.sqrt(o);return e.point?e.point.copy(a$):e.point=a$.clone(),e.distance=l,e.faceIndex=a,e}getBoundingBox(t){t.makeEmpty();return this._roots.forEach((e=>{sY(0,new Float32Array(e),u$),t.union(u$)})),t}}const _$=p$.prototype.raycast;p$.prototype.raycast=function(...t){if(t[0].isMesh){console.warn('MeshBVH: The function signature and results frame for \\\\\\\"raycast\\\\\\\" has changed. See docs for new signature.');const[e,n,i,s]=t;return _$.call(this,i,e.material).forEach((t=>{(t=LY(t,e,n))&&s.push(t)})),s}return _$.apply(this,t)};const m$=p$.prototype.raycastFirst;p$.prototype.raycastFirst=function(...t){if(t[0].isMesh){console.warn('MeshBVH: The function signature and results frame for \\\\\\\"raycastFirst\\\\\\\" has changed. See docs for new signature.');const[e,n,i]=t;return LY(m$.call(this,i,e.material),e,n)}return m$.apply(this,t)};const f$=p$.prototype.closestPointToPoint;p$.prototype.closestPointToPoint=function(...t){if(t[0].isMesh){console.warn('MeshBVH: The function signature and results frame for \\\\\\\"closestPointToPoint\\\\\\\" has changed. See docs for new signature.'),t.unshift();const e=t[1],n={};return t[1]=n,f$.apply(this,t),e&&e.copy(n.point),n.distance}return f$.apply(this,t)};const g$=p$.prototype.closestPointToGeometry;p$.prototype.closestPointToGeometry=function(...t){const e=t[2],n=t[3];if(e&&e.isVector3||n&&n.isVector3){console.warn('MeshBVH: The function signature and results frame for \\\\\\\"closestPointToGeometry\\\\\\\" has changed. See docs for new signature.');const i={},s={},r=t[1];return t[2]=i,t[3]=s,g$.apply(this,t),e&&e.copy(i.point),n&&n.copy(s.point).applyMatrix4(r),i.distance}return g$.apply(this,t)};const v$=p$.prototype.refit;p$.prototype.refit=function(...t){const e=t[0],n=t[1];if(n&&(n instanceof Set||Array.isArray(n))){console.warn('MeshBVH: The function signature for \\\\\\\"refit\\\\\\\" has changed. See docs for new signature.');const t=new Set;n.forEach((e=>t.add(e))),e&&e.forEach((e=>t.add(e))),v$.call(this,t)}else v$.apply(this,t)},[\\\\\\\"intersectsGeometry\\\\\\\",\\\\\\\"shapecast\\\\\\\",\\\\\\\"intersectsBox\\\\\\\",\\\\\\\"intersectsSphere\\\\\\\"].forEach((t=>{const e=p$.prototype[t];p$.prototype[t]=function(...n){return(null===n[0]||n[0].isMesh)&&(n.shift(),console.warn(`MeshBVH: The function signature for \\\\\\\"${t}\\\\\\\" has changed and no longer takes Mesh. See docs for new signature.`)),e.apply(this,n)}}));const y$=new iw,x$=new sw,b$=CT.prototype.raycast;function w$(t,e){if(this.geometry.boundsTree){if(void 0===this.material)return;x$.copy(this.matrixWorld).invert(),y$.copy(t.ray).applyMatrix4(x$);const n=this.geometry.boundsTree;if(!0===t.firstHitOnly){const i=LY(n.raycastFirst(y$,this.material),this,t);i&&e.push(i)}else{const i=n.raycast(y$,this.material);for(let n=0,s=i.length;n<s;n++){const s=LY(i[n],this,t);s&&e.push(s)}}}else b$.call(this,t,e)}const T$=new Lb;class A$ extends Nw{get isMesh(){return!this.displayEdges}get isLineSegments(){return this.displayEdges}get isLine(){return this.displayEdges}constructor(t,e,n=10,i=0){super(),this.material=e,this.geometry=new hT,this.name=\\\\\\\"MeshBVHRootVisualizer\\\\\\\",this.depth=n,this.displayParents=!1,this.mesh=t,this.displayEdges=!0,this._group=i}raycast(){}update(){const t=this.geometry,e=this.mesh.geometry.boundsTree,n=this._group;if(t.dispose(),this.visible=!1,e){const i=this.depth-1,s=this.displayParents;let r=0;e.traverse(((t,e)=>{if(t===i||e)return r++,!0;s&&r++}),n);let o=0;const a=new Float32Array(24*r);let l,c;e.traverse(((t,e,n)=>{const r=t===i||e;if(r||s){sY(0,n,T$);const{min:t,max:e}=T$;for(let n=-1;n<=1;n+=2){const i=n<0?t.x:e.x;for(let n=-1;n<=1;n+=2){const s=n<0?t.y:e.y;for(let n=-1;n<=1;n+=2){const r=n<0?t.z:e.z;a[o+0]=i,a[o+1]=s,a[o+2]=r,o+=3}}}return r}}),n),c=this.displayEdges?new Uint8Array([0,4,1,5,2,6,3,7,0,2,1,3,4,6,5,7,0,1,2,3,4,5,6,7]):new Uint8Array([0,1,2,2,1,3,4,6,5,6,7,5,1,4,5,0,4,1,2,3,6,3,7,6,0,2,4,2,6,4,1,5,3,3,5,7]),l=a.length>65535?new Uint32Array(c.length*r):new Uint16Array(c.length*r);const h=c.length;for(let t=0;t<r;t++){const e=8*t,n=t*h;for(let t=0;t<h;t++)l[n+t]=e+c[t]}t.setIndex(new Qw(l,1,!1)),t.setAttribute(\\\\\\\"position\\\\\\\",new Qw(a,3,!1)),this.visible=!0}}}class M$ extends LE{get color(){return this.edgeMaterial.color}get opacity(){return this.edgeMaterial.opacity}set opacity(t){this.edgeMaterial.opacity=t,this.meshMaterial.opacity=t}constructor(t,e=10){super(),this.name=\\\\\\\"MeshBVHVisualizer\\\\\\\",this.depth=e,this.mesh=t,this.displayParents=!1,this.displayEdges=!0,this._roots=[];const n=new vS({color:65416,transparent:!0,opacity:.3,depthWrite:!1}),i=new Jw({color:65416,transparent:!0,opacity:.3,depthWrite:!1});i.color=n.color,this.edgeMaterial=n,this.meshMaterial=i,this.update()}update(){const t=this.mesh.geometry.boundsTree,e=t?t._roots.length:0;for(;this._roots.length>e;)this._roots.pop();for(let t=0;t<e;t++){if(t>=this._roots.length){const e=new A$(this.mesh,this.edgeMaterial,this.depth,t);this.add(e),this._roots.push(e)}const e=this._roots[t];e.depth=this.depth,e.mesh=this.mesh,e.displayParents=this.displayParents,e.displayEdges=this.displayEdges,e.material=this.displayEdges?this.edgeMaterial:this.meshMaterial,e.update()}}updateMatrixWorld(...t){this.position.copy(this.mesh.position),this.rotation.copy(this.mesh.rotation),this.scale.copy(this.mesh.scale),super.updateMatrixWorld(...t)}copy(t){this.depth=t.depth,this.mesh=t.mesh}clone(){return new M$(this.mesh,this.depth)}dispose(){this.edgeMaterial.dispose(),this.meshMaterial.dispose();const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].geometry.dispose()}}class E$ extends aV{static type(){return\\\\\\\"BVH\\\\\\\"}cook(t,e){const n=[];for(let i of t)if(i){const t=i.objects();for(let i of t)i.traverse((t=>{const i=t;if(i.isMesh){if(e.keepOnlyPosition){const t=i.geometry;for(const e in t.attributes)\\\\\\\"position\\\\\\\"!==e&&t.deleteAttribute(e)}n.push(i)}}))}const i=this._makeCompact(n);if(i){i.matrixAutoUpdate=!1,i.raycast=w$;const t=new p$(i.geometry,{verbose:!1});return i.geometry.boundsTree=t,this.createCoreGroupFromObjects([i])}return this.createCoreGroupFromObjects([])}_makeCompact(t){var e,n;const i=[];let s;for(let e of t){s=s||e.material;const t=e.geometry;t.applyMatrix4(e.matrix),i.push(t)}try{const t=fr.mergeGeometries(i);if(t){return this.createObject(t,Ns.MESH,s)}null===(e=this.states)||void 0===e||e.error.set(\\\\\\\"merge failed, check that input geometries have the same attributes\\\\\\\")}catch(t){null===(n=this.states)||void 0===n||n.error.set(t.message)}}}E$.DEFAULT_PARAMS={keepOnlyPosition:!1},E$.INPUT_CLONED_STATE=Qi.ALWAYS;const S$=E$.DEFAULT_PARAMS;const C$=new class extends ua{constructor(){super(...arguments),this.keepOnlyPosition=ha.BOOLEAN(S$.keepOnlyPosition)}};class N$ extends uV{constructor(){super(...arguments),this.paramsConfig=C$}static type(){return\\\\\\\"BVH\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create BVH from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(E$.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new E$(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class L$ extends aV{static type(){return\\\\\\\"BVHVisualizer\\\\\\\"}cook(t,e){const n=t[0].objects()[0],i=new M$(n,e.depth);return i.opacity=1,i.update(),this.createCoreGroupFromObjects([i])}}L$.DEFAULT_PARAMS={depth:0},L$.INPUT_CLONED_STATE=Qi.NEVER;const O$=L$.DEFAULT_PARAMS;const P$=new class extends ua{constructor(){super(...arguments),this.depth=ha.INTEGER(O$.depth,{range:[0,20],rangeLocked:[!0,!1]})}};class R$ extends uV{constructor(){super(...arguments),this.paramsConfig=P$}static type(){return\\\\\\\"BVHVisualizer\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry with bvh\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(L$.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new L$(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class I$ extends C.a{constructor(t,e,n,i=1){\\\\\\\"number\\\\\\\"==typeof n&&(i=n,n=!1,console.error(\\\\\\\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\\\\\\\")),super(t,e,n),this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}I$.prototype.isInstancedBufferAttribute=!0;const F$=new A.a,D$=new A.a,B$=[],z$=new B.a;class k$ extends B.a{constructor(t,e,n){super(t,e),this.instanceMatrix=new I$(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,i=this.count;if(z$.geometry=this.geometry,z$.material=this.material,void 0!==z$.material)for(let s=0;s<i;s++){this.getMatrixAt(s,F$),D$.multiplyMatrices(n,F$),z$.matrixWorld=D$,z$.raycast(t,B$);for(let t=0,n=B$.length;t<n;t++){const n=B$[t];n.instanceId=s,n.object=this,e.push(n)}B$.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new I$(new Float32Array(3*this.instanceMatrix.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}}let U$;k$.prototype.isInstancedMesh=!0;const G$=new p.a,V$=new p.a,H$=new p.a,j$=new d.a,W$=new d.a,q$=new A.a,X$=new p.a,Y$=new p.a,$$=new p.a,J$=new d.a,Z$=new d.a,K$=new d.a;class Q$ extends Q.a{constructor(t){if(super(),this.type=\\\\\\\"Sprite\\\\\\\",void 0===U$){U$=new S.a;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new cr.a(t,5);U$.setIndex([0,1,2,0,2,3]),U$.setAttribute(\\\\\\\"position\\\\\\\",new hr.a(e,3,0,!1)),U$.setAttribute(\\\\\\\"uv\\\\\\\",new hr.a(e,2,3,!1))}this.geometry=U$,this.material=void 0!==t?t:new jf,this.center=new d.a(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: \\\\\\\"Raycaster.camera\\\\\\\" needs to be set in order to raycast against sprites.'),V$.setFromMatrixScale(this.matrixWorld),q$.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),H$.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&V$.multiplyScalar(-H$.z);const n=this.material.rotation;let i,s;0!==n&&(s=Math.cos(n),i=Math.sin(n));const r=this.center;tJ(X$.set(-.5,-.5,0),H$,r,V$,i,s),tJ(Y$.set(.5,-.5,0),H$,r,V$,i,s),tJ($$.set(.5,.5,0),H$,r,V$,i,s),J$.set(0,0),Z$.set(1,0),K$.set(1,1);let o=t.ray.intersectTriangle(X$,Y$,$$,!1,G$);if(null===o&&(tJ(Y$.set(-.5,.5,0),H$,r,V$,i,s),Z$.set(0,1),o=t.ray.intersectTriangle(X$,$$,Y$,!1,G$),null===o))return;const a=t.ray.origin.distanceTo(G$);a<t.near||a>t.far||e.push({distance:a,point:G$.clone(),uv:tr.a.getUV(G$,X$,Y$,$$,J$,Z$,K$,new d.a),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function tJ(t,e,n,i,s,r){j$.subVectors(t,n).addScalar(.5).multiply(i),void 0!==s?(W$.x=r*j$.x-s*j$.y,W$.y=s*j$.x+r*j$.y):W$.copy(j$),t.copy(e),t.x+=W$.x,t.y+=W$.y,t.applyMatrix4(q$)}Q$.prototype.isSprite=!0;var eJ=n(92),nJ=n(81),iJ=n(46);class sJ{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new p.a)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,s=t.z,r=this.coefficients;return e.copy(r[0]).multiplyScalar(.282095),e.addScaledVector(r[1],.488603*i),e.addScaledVector(r[2],.488603*s),e.addScaledVector(r[3],.488603*n),e.addScaledVector(r[4],n*i*1.092548),e.addScaledVector(r[5],i*s*1.092548),e.addScaledVector(r[6],.315392*(3*s*s-1)),e.addScaledVector(r[7],n*s*1.092548),e.addScaledVector(r[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,s=t.z,r=this.coefficients;return e.copy(r[0]).multiplyScalar(.886227),e.addScaledVector(r[1],1.023328*i),e.addScaledVector(r[2],1.023328*s),e.addScaledVector(r[3],1.023328*n),e.addScaledVector(r[4],.858086*n*i),e.addScaledVector(r[5],.858086*i*s),e.addScaledVector(r[6],.743125*s*s-.247708),e.addScaledVector(r[7],.858086*n*s),e.addScaledVector(r[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,s=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*s,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*s,e[6]=.315392*(3*s*s-1),e[7]=1.092548*n*s,e[8]=.546274*(n*n-i*i)}}sJ.prototype.isSphericalHarmonics3=!0;class rJ extends cv.a{constructor(t=new sJ,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}rJ.prototype.isLightProbe=!0;var oJ=n(63),aJ=n(43);class lJ extends S.a{constructor(){super(),this.type=\\\\\\\"InstancedBufferGeometry\\\\\\\",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}lJ.prototype.isInstancedBufferGeometry=!0;class cJ extends Vf.a{constructor(t){super(t)}load(t,e,n,i){const s=this,r=new Gf.a(s.manager);r.setPath(s.path),r.setRequestHeader(s.requestHeader),r.setWithCredentials(s.withCredentials),r.load(t,(function(n){try{e(s.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),s.manager.itemError(t)}}),n,i)}parse(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const s=t.interleavedBuffers[i],r=function(t,e){if(void 0!==n[e])return n[e];const i=t.arrayBuffers[e],s=new Uint32Array(i).buffer;return n[e]=s,s}(t,s.buffer),o=Object(It.c)(s.type,r),a=new cr.a(o,s.stride);return a.uuid=s.uuid,e[i]=a,a}const s=t.isInstancedBufferGeometry?new lJ:new S.a,r=t.data.index;if(void 0!==r){const t=Object(It.c)(r.type,r.array);s.setIndex(new C.a(t,1))}const o=t.data.attributes;for(const e in o){const n=o[e];let r;if(n.isInterleavedBufferAttribute){const e=i(t.data,n.data);r=new hr.a(e,n.itemSize,n.offset,n.normalized)}else{const t=Object(It.c)(n.type,n.array);r=new(n.isInstancedBufferAttribute?I$:C.a)(t,n.itemSize,n.normalized)}void 0!==n.name&&(r.name=n.name),void 0!==n.usage&&r.setUsage(n.usage),void 0!==n.updateRange&&(r.updateRange.offset=n.updateRange.offset,r.updateRange.count=n.updateRange.count),s.setAttribute(e,r)}const a=t.data.morphAttributes;if(a)for(const e in a){const n=a[e],r=[];for(let e=0,s=n.length;e<s;e++){const s=n[e];let o;if(s.isInterleavedBufferAttribute){const e=i(t.data,s.data);o=new hr.a(e,s.itemSize,s.offset,s.normalized)}else{const t=Object(It.c)(s.type,s.array);o=new C.a(t,s.itemSize,s.normalized)}void 0!==s.name&&(o.name=s.name),r.push(o)}s.morphAttributes[e]=r}t.data.morphTargetsRelative&&(s.morphTargetsRelative=!0);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==l)for(let t=0,e=l.length;t!==e;++t){const e=l[t];s.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(void 0!==c){const t=new p.a;void 0!==c.center&&t.fromArray(c.center),s.boundingSphere=new MX.a(t,c.radius)}return t.name&&(s.name=t.name),t.userData&&(s.userData=t.userData),s}}class hJ extends S.a{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type=\\\\\\\"CircleGeometry\\\\\\\",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const s=[],r=[],o=[],a=[],l=new p.a,c=new d.a;r.push(0,0,0),o.push(0,0,1),a.push(.5,.5);for(let s=0,h=3;s<=e;s++,h+=3){const u=n+s/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),r.push(l.x,l.y,l.z),o.push(0,0,1),c.x=(r[h]/t+1)/2,c.y=(r[h+1]/t+1)/2,a.push(c.x,c.y)}for(let t=1;t<=e;t++)s.push(t,t+1,0);this.setIndex(s),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(r,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(o,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(a,2))}static fromJSON(t){return new hJ(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class uJ extends XU{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[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],t,e),this.type=\\\\\\\"DodecahedronGeometry\\\\\\\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new uJ(t.radius,t.detail)}}const dJ=new p.a,pJ=new p.a,_J=new p.a,mJ=new tr.a;class fJ extends S.a{constructor(t=null,e=1){if(super(),this.type=\\\\\\\"EdgesGeometry\\\\\\\",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),s=Math.cos(On.a*e),r=t.getIndex(),o=t.getAttribute(\\\\\\\"position\\\\\\\"),a=r?r.count:o.count,l=[0,0,0],c=[\\\\\\\"a\\\\\\\",\\\\\\\"b\\\\\\\",\\\\\\\"c\\\\\\\"],h=new Array(3),u={},d=[];for(let t=0;t<a;t+=3){r?(l[0]=r.getX(t),l[1]=r.getX(t+1),l[2]=r.getX(t+2)):(l[0]=t,l[1]=t+1,l[2]=t+2);const{a:e,b:n,c:a}=mJ;if(e.fromBufferAttribute(o,l[0]),n.fromBufferAttribute(o,l[1]),a.fromBufferAttribute(o,l[2]),mJ.getNormal(_J),h[0]=`${Math.round(e.x*i)},${Math.round(e.y*i)},${Math.round(e.z*i)}`,h[1]=`${Math.round(n.x*i)},${Math.round(n.y*i)},${Math.round(n.z*i)}`,h[2]=`${Math.round(a.x*i)},${Math.round(a.y*i)},${Math.round(a.z*i)}`,h[0]!==h[1]&&h[1]!==h[2]&&h[2]!==h[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=h[t],i=h[e],r=mJ[c[t]],o=mJ[c[e]],a=`${n}_${i}`,p=`${i}_${n}`;p in u&&u[p]?(_J.dot(u[p].normal)<=s&&(d.push(r.x,r.y,r.z),d.push(o.x,o.y,o.z)),u[p]=null):a in u||(u[a]={index0:l[t],index1:l[e],normal:_J.clone()})}}for(const t in u)if(u[t]){const{index0:e,index1:n}=u[t];dJ.fromBufferAttribute(o,e),pJ.fromBufferAttribute(o,n),d.push(dJ.x,dJ.y,dJ.z),d.push(pJ.x,pJ.y,pJ.z)}this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(d,3))}}}var gJ=n(79),vJ=n(53);class yJ extends S.a{constructor(t=new iJ.a([new d.a(.5,.5),new d.a(-.5,.5),new d.a(-.5,-.5),new d.a(.5,-.5)]),e={}){super(),this.type=\\\\\\\"ExtrudeGeometry\\\\\\\",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],s=[];for(let e=0,n=t.length;e<n;e++){r(t[e])}function r(t){const r=[],o=void 0!==e.curveSegments?e.curveSegments:12,a=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:1,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:.2,u=void 0!==e.bevelSize?e.bevelSize:h-.1,_=void 0!==e.bevelOffset?e.bevelOffset:0,m=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,g=void 0!==e.UVGenerator?e.UVGenerator:xJ;void 0!==e.amount&&(console.warn(\\\\\\\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\\\\\\\"),l=e.amount);let v,y,x,b,w,T=!1;f&&(v=f.getSpacedPoints(a),T=!0,c=!1,y=f.computeFrenetFrames(a,!1),x=new p.a,b=new p.a,w=new p.a),c||(m=0,h=0,u=0,_=0);const A=t.extractPoints(o);let M=A.shape;const E=A.holes;if(!vJ.a.isClockWise(M)){M=M.reverse();for(let t=0,e=E.length;t<e;t++){const e=E[t];vJ.a.isClockWise(e)&&(E[t]=e.reverse())}}const S=vJ.a.triangulateShape(M,E),C=M;for(let t=0,e=E.length;t<e;t++){const e=E[t];M=M.concat(e)}function N(t,e,n){return e||console.error(\\\\\\\"THREE.ExtrudeGeometry: vec does not exist\\\\\\\"),e.clone().multiplyScalar(n).add(t)}const L=M.length,O=S.length;function P(t,e,n){let i,s,r;const o=t.x-e.x,a=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=o*o+a*a,u=o*c-a*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),p=Math.sqrt(l*l+c*c),_=e.x-a/u,m=e.y+o/u,f=((n.x-c/p-_)*c-(n.y+l/p-m)*l)/(o*c-a*l);i=_+o*f-t.x,s=m+a*f-t.y;const g=i*i+s*s;if(g<=2)return new d.a(i,s);r=Math.sqrt(g/2)}else{let t=!1;o>Number.EPSILON?l>Number.EPSILON&&(t=!0):o<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(a)===Math.sign(c)&&(t=!0),t?(i=-a,s=o,r=Math.sqrt(h)):(i=o,s=a,r=Math.sqrt(h/2))}return new d.a(i/r,s/r)}const R=[];for(let t=0,e=C.length,n=e-1,i=t+1;t<e;t++,n++,i++)n===e&&(n=0),i===e&&(i=0),R[t]=P(C[t],C[n],C[i]);const I=[];let F,D=R.concat();for(let t=0,e=E.length;t<e;t++){const e=E[t];F=[];for(let t=0,n=e.length,i=n-1,s=t+1;t<n;t++,i++,s++)i===n&&(i=0),s===n&&(s=0),F[t]=P(e[t],e[i],e[s]);I.push(F),D=D.concat(F)}for(let t=0;t<m;t++){const e=t/m,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+_;for(let t=0,e=C.length;t<e;t++){const e=N(C[t],R[t],i);k(e.x,e.y,-n)}for(let t=0,e=E.length;t<e;t++){const e=E[t];F=I[t];for(let t=0,s=e.length;t<s;t++){const s=N(e[t],F[t],i);k(s.x,s.y,-n)}}}const B=u+_;for(let t=0;t<L;t++){const e=c?N(M[t],D[t],B):M[t];T?(b.copy(y.normals[0]).multiplyScalar(e.x),x.copy(y.binormals[0]).multiplyScalar(e.y),w.copy(v[0]).add(b).add(x),k(w.x,w.y,w.z)):k(e.x,e.y,0)}for(let t=1;t<=a;t++)for(let e=0;e<L;e++){const n=c?N(M[e],D[e],B):M[e];T?(b.copy(y.normals[t]).multiplyScalar(n.x),x.copy(y.binormals[t]).multiplyScalar(n.y),w.copy(v[t]).add(b).add(x),k(w.x,w.y,w.z)):k(n.x,n.y,l/a*t)}for(let t=m-1;t>=0;t--){const e=t/m,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+_;for(let t=0,e=C.length;t<e;t++){const e=N(C[t],R[t],i);k(e.x,e.y,l+n)}for(let t=0,e=E.length;t<e;t++){const e=E[t];F=I[t];for(let t=0,s=e.length;t<s;t++){const s=N(e[t],F[t],i);T?k(s.x,s.y+v[a-1].y,v[a-1].x+n):k(s.x,s.y,l+n)}}}function z(t,e){let n=t.length;for(;--n>=0;){const i=n;let s=n-1;s<0&&(s=t.length-1);for(let t=0,n=a+2*m;t<n;t++){const n=L*t,r=L*(t+1);G(e+i+n,e+s+n,e+s+r,e+i+r)}}}function k(t,e,n){r.push(t),r.push(e),r.push(n)}function U(t,e,s){V(t),V(e),V(s);const r=i.length/3,o=g.generateTopUV(n,i,r-3,r-2,r-1);H(o[0]),H(o[1]),H(o[2])}function G(t,e,s,r){V(t),V(e),V(r),V(e),V(s),V(r);const o=i.length/3,a=g.generateSideWallUV(n,i,o-6,o-3,o-2,o-1);H(a[0]),H(a[1]),H(a[3]),H(a[1]),H(a[2]),H(a[3])}function V(t){i.push(r[3*t+0]),i.push(r[3*t+1]),i.push(r[3*t+2])}function H(t){s.push(t.x),s.push(t.y)}!function(){const t=i.length/3;if(c){let t=0,e=L*t;for(let t=0;t<O;t++){const n=S[t];U(n[2]+e,n[1]+e,n[0]+e)}t=a+2*m,e=L*t;for(let t=0;t<O;t++){const n=S[t];U(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<O;t++){const e=S[t];U(e[2],e[1],e[0])}for(let t=0;t<O;t++){const e=S[t];U(e[0]+L*a,e[1]+L*a,e[2]+L*a)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;z(C,e),e+=C.length;for(let t=0,n=E.length;t<n;t++){const n=E[t];z(n,e),e+=n.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(i,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(s,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let i=0,s=t.shapes.length;i<s;i++){const s=e[t.shapes[i]];n.push(s)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new gJ[i.type]).fromJSON(i)),new yJ(n,t.options)}}const xJ={generateTopUV:function(t,e,n,i,s){const r=e[3*n],o=e[3*n+1],a=e[3*i],l=e[3*i+1],c=e[3*s],h=e[3*s+1];return[new d.a(r,o),new d.a(a,l),new d.a(c,h)]},generateSideWallUV:function(t,e,n,i,s,r){const o=e[3*n],a=e[3*n+1],l=e[3*n+2],c=e[3*i],h=e[3*i+1],u=e[3*i+2],p=e[3*s],_=e[3*s+1],m=e[3*s+2],f=e[3*r],g=e[3*r+1],v=e[3*r+2];return Math.abs(a-h)<Math.abs(o-c)?[new d.a(o,1-l),new d.a(c,1-u),new d.a(p,1-m),new d.a(f,1-v)]:[new d.a(a,1-l),new d.a(h,1-u),new d.a(_,1-m),new d.a(g,1-v)]}};class bJ extends XU{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[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],t,e),this.type=\\\\\\\"IcosahedronGeometry\\\\\\\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new bJ(t.radius,t.detail)}}class wJ extends S.a{constructor(t=[new d.a(0,.5),new d.a(.5,0),new d.a(0,-.5)],e=12,n=0,i=2*Math.PI){super(),this.type=\\\\\\\"LatheGeometry\\\\\\\",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=On.d(i,0,2*Math.PI);const s=[],r=[],o=[],a=1/e,l=new p.a,c=new d.a;for(let s=0;s<=e;s++){const h=n+s*a*i,u=Math.sin(h),d=Math.cos(h);for(let n=0;n<=t.length-1;n++)l.x=t[n].x*u,l.y=t[n].y,l.z=t[n].x*d,r.push(l.x,l.y,l.z),c.x=s/e,c.y=n/(t.length-1),o.push(c.x,c.y)}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length,r=i,o=i+t.length,a=i+t.length+1,l=i+1;s.push(r,o,l),s.push(o,a,l)}if(this.setIndex(s),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(r,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(o,2)),this.computeVertexNormals(),i===2*Math.PI){const n=this.attributes.normal.array,i=new p.a,s=new p.a,r=new p.a,o=e*t.length*3;for(let e=0,a=0;e<t.length;e++,a+=3)i.x=n[a+0],i.y=n[a+1],i.z=n[a+2],s.x=n[o+a+0],s.y=n[o+a+1],s.z=n[o+a+2],r.addVectors(i,s).normalize(),n[a+0]=n[o+a+0]=r.x,n[a+1]=n[o+a+1]=r.y,n[a+2]=n[o+a+2]=r.z}}static fromJSON(t){return new wJ(t.points,t.segments,t.phiStart,t.phiLength)}}class TJ extends S.a{constructor(t=.5,e=1,n=8,i=1,s=0,r=2*Math.PI){super(),this.type=\\\\\\\"RingGeometry\\\\\\\",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:s,thetaLength:r},n=Math.max(3,n);const o=[],a=[],l=[],c=[];let h=t;const u=(e-t)/(i=Math.max(1,i)),_=new p.a,m=new d.a;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=s+t/n*r;_.x=h*Math.cos(i),_.y=h*Math.sin(i),a.push(_.x,_.y,_.z),l.push(0,0,1),m.x=(_.x/e+1)/2,m.y=(_.y/e+1)/2,c.push(m.x,m.y)}h+=u}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e,s=i,r=i+n+1,a=i+n+2,l=i+1;o.push(s,r,l),o.push(r,a,l)}}this.setIndex(o),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(a,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(l,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(c,2))}static fromJSON(t){return new TJ(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class AJ extends S.a{constructor(t=new iJ.a([new d.a(0,.5),new d.a(-.5,-.5),new d.a(.5,-.5)]),e=12){super(),this.type=\\\\\\\"ShapeGeometry\\\\\\\",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],s=[],r=[];let o=0,a=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(o,a,e),o+=a,a=0;function l(t){const o=i.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===vJ.a.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===vJ.a.isClockWise(e)&&(h[t]=e.reverse())}const u=vJ.a.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0),s.push(0,0,1),r.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],i=e[0]+o,s=e[1]+o,r=e[2]+o;n.push(i,s,r),a+=3}}this.setIndex(n),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(i,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(s,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(r,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,s=t.shapes.length;i<s;i++){const s=e[t.shapes[i]];n.push(s)}return new AJ(n,t.curveSegments)}}class MJ extends XU{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type=\\\\\\\"TetrahedronGeometry\\\\\\\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new MJ(t.radius,t.detail)}}class EJ extends S.a{constructor(t=1,e=.4,n=8,i=6,s=2*Math.PI){super(),this.type=\\\\\\\"TorusGeometry\\\\\\\",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:s},n=Math.floor(n),i=Math.floor(i);const r=[],o=[],a=[],l=[],c=new p.a,h=new p.a,u=new p.a;for(let r=0;r<=n;r++)for(let d=0;d<=i;d++){const p=d/i*s,_=r/n*Math.PI*2;h.x=(t+e*Math.cos(_))*Math.cos(p),h.y=(t+e*Math.cos(_))*Math.sin(p),h.z=e*Math.sin(_),o.push(h.x,h.y,h.z),c.x=t*Math.cos(p),c.y=t*Math.sin(p),u.subVectors(h,c).normalize(),a.push(u.x,u.y,u.z),l.push(d/i),l.push(r/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+e-1,s=(i+1)*(t-1)+e-1,o=(i+1)*(t-1)+e,a=(i+1)*t+e;r.push(n,s,a),r.push(s,o,a)}this.setIndex(r),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(o,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(a,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(l,2))}static fromJSON(t){return new EJ(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class SJ extends S.a{constructor(t=1,e=.4,n=64,i=8,s=2,r=3){super(),this.type=\\\\\\\"TorusKnotGeometry\\\\\\\",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:s,q:r},n=Math.floor(n),i=Math.floor(i);const o=[],a=[],l=[],c=[],h=new p.a,u=new p.a,d=new p.a,_=new p.a,m=new p.a,f=new p.a,g=new p.a;for(let o=0;o<=n;++o){const p=o/n*s*Math.PI*2;v(p,s,r,t,d),v(p+.01,s,r,t,_),f.subVectors(_,d),g.addVectors(_,d),m.crossVectors(f,g),g.crossVectors(m,f),m.normalize(),g.normalize();for(let t=0;t<=i;++t){const s=t/i*Math.PI*2,r=-e*Math.cos(s),p=e*Math.sin(s);h.x=d.x+(r*g.x+p*m.x),h.y=d.y+(r*g.y+p*m.y),h.z=d.z+(r*g.z+p*m.z),a.push(h.x,h.y,h.z),u.subVectors(h,d).normalize(),l.push(u.x,u.y,u.z),c.push(o/n),c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),s=(i+1)*t+(e-1),r=(i+1)*t+e,a=(i+1)*(t-1)+e;o.push(n,s,a),o.push(s,r,a)}function v(t,e,n,i,s){const r=Math.cos(t),o=Math.sin(t),a=n/e*t,l=Math.cos(a);s.x=i*(2+l)*.5*r,s.y=i*(2+l)*o*.5,s.z=i*Math.sin(a)*.5}this.setIndex(o),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(a,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(l,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(c,2))}static fromJSON(t){return new SJ(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}var CJ=n(90);class NJ extends S.a{constructor(t=new CJ.a(new p.a(-1,-1,0),new p.a(-1,1,0),new p.a(1,1,0)),e=64,n=1,i=8,s=!1){super(),this.type=\\\\\\\"TubeGeometry\\\\\\\",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:s};const r=t.computeFrenetFrames(e,s);this.tangents=r.tangents,this.normals=r.normals,this.binormals=r.binormals;const o=new p.a,a=new p.a,l=new d.a;let c=new p.a;const h=[],u=[],_=[],m=[];function f(s){c=t.getPointAt(s/e,c);const l=r.normals[s],d=r.binormals[s];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,s=Math.sin(e),r=-Math.cos(e);a.x=r*l.x+s*d.x,a.y=r*l.y+s*d.y,a.z=r*l.z+s*d.z,a.normalize(),u.push(a.x,a.y,a.z),o.x=c.x+n*a.x,o.y=c.y+n*a.y,o.z=c.z+n*a.z,h.push(o.x,o.y,o.z)}}!function(){for(let t=0;t<e;t++)f(t);f(!1===s?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)l.x=t/e,l.y=n/i,_.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),s=(i+1)*t+(e-1),r=(i+1)*t+e,o=(i+1)*(t-1)+e;m.push(n,s,o),m.push(s,r,o)}}()}(),this.setIndex(m),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(h,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(u,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(_,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new NJ((new gJ[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class LJ extends S.a{constructor(t=null){if(super(),this.type=\\\\\\\"WireframeGeometry\\\\\\\",this.parameters={geometry:t},null!==t){const e=[],n=new Set,i=new p.a,s=new p.a;if(null!==t.index){const r=t.attributes.position,o=t.index;let a=t.groups;0===a.length&&(a=[{start:0,count:o.count,materialIndex:0}]);for(let t=0,l=a.length;t<l;++t){const l=a[t],c=l.start;for(let t=c,a=c+l.count;t<a;t+=3)for(let a=0;a<3;a++){const l=o.getX(t+a),c=o.getX(t+(a+1)%3);i.fromBufferAttribute(r,l),s.fromBufferAttribute(r,c),!0===OJ(i,s,n)&&(e.push(i.x,i.y,i.z),e.push(s.x,s.y,s.z))}}}else{const r=t.attributes.position;for(let t=0,o=r.count/3;t<o;t++)for(let o=0;o<3;o++){const a=3*t+o,l=3*t+(o+1)%3;i.fromBufferAttribute(r,a),s.fromBufferAttribute(r,l),!0===OJ(i,s,n)&&(e.push(i.x,i.y,i.z),e.push(s.x,s.y,s.z))}}this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(e,3))}}}function OJ(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`,s=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;return!0!==n.has(i)&&!0!==n.has(s)&&(n.add(i,s),!0)}class PJ extends Vf.a{constructor(t){super(t)}load(t,e,n,i){const s=this,r=\\\\\\\"\\\\\\\"===this.path?aJ.a.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||r;const o=new Gf.a(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,(function(n){let r=null;try{r=JSON.parse(n)}catch(e){return void 0!==i&&i(e),void console.error(\\\\\\\"THREE:ObjectLoader: Can't parse \\\\\\\"+t+\\\\\\\".\\\\\\\",e.message)}const o=r.metadata;void 0!==o&&void 0!==o.type&&\\\\\\\"geometry\\\\\\\"!==o.type.toLowerCase()?s.parse(r,e):console.error(\\\\\\\"THREE.ObjectLoader: Can't load \\\\\\\"+t)}),n,i)}async loadAsync(t,e){const n=\\\\\\\"\\\\\\\"===this.path?aJ.a.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||n;const i=new Gf.a(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials);const s=await i.loadAsync(t,e),r=JSON.parse(s),o=r.metadata;if(void 0===o||void 0===o.type||\\\\\\\"geometry\\\\\\\"===o.type.toLowerCase())throw new Error(\\\\\\\"THREE.ObjectLoader: Can't load \\\\\\\"+t);return await this.parseAsync(r)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),s=this.parseGeometries(t.geometries,i),r=this.parseImages(t.images,(function(){void 0!==e&&e(l)})),o=this.parseTextures(t.textures,r),a=this.parseMaterials(t.materials,o),l=this.parseObject(t.object,s,a,o,n),c=this.parseSkeletons(t.skeletons,l);if(this.bindSkeletons(l,c),void 0!==e){let t=!1;for(const e in r)if(r[e]instanceof HTMLImageElement){t=!0;break}!1===t&&e(l)}return l}async parseAsync(t){const e=this.parseAnimations(t.animations),n=this.parseShapes(t.shapes),i=this.parseGeometries(t.geometries,n),s=await this.parseImagesAsync(t.images),r=this.parseTextures(t.textures,s),o=this.parseMaterials(t.materials,r),a=this.parseObject(t.object,i,o,r,e),l=this.parseSkeletons(t.skeletons,a);return this.bindSkeletons(a,l),a}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new iJ.a).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse((function(t){t.isBone&&(i[t.uuid]=t)})),void 0!==t)for(let e=0,s=t.length;e<s;e++){const s=(new nJ.a).fromJSON(t[e],i);n[s.uuid]=s}return n}parseGeometries(t,e){const n={};if(void 0!==t){const i=new cJ;for(let r=0,o=t.length;r<o;r++){let o;const a=t[r];switch(a.type){case\\\\\\\"BufferGeometry\\\\\\\":case\\\\\\\"InstancedBufferGeometry\\\\\\\":o=i.parse(a);break;case\\\\\\\"Geometry\\\\\\\":console.error(\\\\\\\"THREE.ObjectLoader: The legacy Geometry type is no longer supported.\\\\\\\");break;default:a.type in s?o=s[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type \\\\\\\"${a.type}\\\\\\\"`)}o.uuid=a.uuid,void 0!==a.name&&(o.name=a.name),!0===o.isBufferGeometry&&void 0!==a.userData&&(o.userData=a.userData),n[a.uuid]=o}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const s=new Zf;s.setTextures(e);for(let e=0,r=t.length;e<r;e++){const r=t[e];if(\\\\\\\"MultiMaterial\\\\\\\"===r.type){const t=[];for(let e=0;e<r.materials.length;e++){const i=r.materials[e];void 0===n[i.uuid]&&(n[i.uuid]=s.parse(i)),t.push(n[i.uuid])}i[r.uuid]=t}else void 0===n[r.uuid]&&(n[r.uuid]=s.parse(r)),i[r.uuid]=n[r.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=t[n],s=Oq.a.parse(i);e[s.uuid]=s}return e}parseImages(t,e){const n=this,i={};let s;function r(t){if(\\\\\\\"string\\\\\\\"==typeof t){const e=t;return function(t){return n.manager.itemStart(t),s.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t),n.manager.itemEnd(t)}))}(/^(\\\\/\\\\/)|([a-z]+:(\\\\/\\\\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:Object(It.c)(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new Xg.b(e);s=new oJ.a(n),s.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e],s=n.url;if(Array.isArray(s)){i[n.uuid]=[];for(let t=0,e=s.length;t<e;t++){const e=r(s[t]);null!==e&&(e instanceof HTMLImageElement?i[n.uuid].push(e):i[n.uuid].push(new vo.a(e.data,e.width,e.height)))}}else{const t=r(n.url);null!==t&&(i[n.uuid]=t)}}}return i}async parseImagesAsync(t){const e=this,n={};let i;async function s(t){if(\\\\\\\"string\\\\\\\"==typeof t){const n=t,s=/^(\\\\/\\\\/)|([a-z]+:(\\\\/\\\\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(s)}return t.data?{data:Object(It.c)(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){i=new oJ.a(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e],r=i.url;if(Array.isArray(r)){n[i.uuid]=[];for(let t=0,e=r.length;t<e;t++){const e=r[t],o=await s(e);null!==o&&(o instanceof HTMLImageElement?n[i.uuid].push(o):n[i.uuid].push(new vo.a(o.data,o.width,o.height)))}}else{const t=await s(i.url);null!==t&&(n[i.uuid]=t)}}}return n}parseTextures(t,e){function n(t,e){return\\\\\\\"number\\\\\\\"==typeof t?t:(console.warn(\\\\\\\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\\\\\\\",t),e[t])}const i={};if(void 0!==t)for(let s=0,r=t.length;s<r;s++){const r=t[s];let o;void 0===r.image&&console.warn('THREE.ObjectLoader: No \\\\\\\"image\\\\\\\" specified for',r.uuid),void 0===e[r.image]&&console.warn(\\\\\\\"THREE.ObjectLoader: Undefined image\\\\\\\",r.image);const a=e[r.image];Array.isArray(a)?(o=new it(a),6===a.length&&(o.needsUpdate=!0)):(o=a&&a.data?new vo.a(a.data,a.width,a.height):new Z.a(a),a&&(o.needsUpdate=!0)),o.uuid=r.uuid,void 0!==r.name&&(o.name=r.name),void 0!==r.mapping&&(o.mapping=n(r.mapping,RJ)),void 0!==r.offset&&o.offset.fromArray(r.offset),void 0!==r.repeat&&o.repeat.fromArray(r.repeat),void 0!==r.center&&o.center.fromArray(r.center),void 0!==r.rotation&&(o.rotation=r.rotation),void 0!==r.wrap&&(o.wrapS=n(r.wrap[0],IJ),o.wrapT=n(r.wrap[1],IJ)),void 0!==r.format&&(o.format=r.format),void 0!==r.type&&(o.type=r.type),void 0!==r.encoding&&(o.encoding=r.encoding),void 0!==r.minFilter&&(o.minFilter=n(r.minFilter,FJ)),void 0!==r.magFilter&&(o.magFilter=n(r.magFilter,FJ)),void 0!==r.anisotropy&&(o.anisotropy=r.anisotropy),void 0!==r.flipY&&(o.flipY=r.flipY),void 0!==r.premultiplyAlpha&&(o.premultiplyAlpha=r.premultiplyAlpha),void 0!==r.unpackAlignment&&(o.unpackAlignment=r.unpackAlignment),i[r.uuid]=o}return i}parseObject(t,e,n,i,s){let r,o,a;function l(t){return void 0===e[t]&&console.warn(\\\\\\\"THREE.ObjectLoader: Undefined geometry\\\\\\\",t),e[t]}function c(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,s=t.length;i<s;i++){const s=t[i];void 0===n[s]&&console.warn(\\\\\\\"THREE.ObjectLoader: Undefined material\\\\\\\",s),e.push(n[s])}return e}return void 0===n[t]&&console.warn(\\\\\\\"THREE.ObjectLoader: Undefined material\\\\\\\",t),n[t]}}function h(t){return void 0===i[t]&&console.warn(\\\\\\\"THREE.ObjectLoader: Undefined texture\\\\\\\",t),i[t]}switch(t.type){case\\\\\\\"Scene\\\\\\\":r=new vs,void 0!==t.background&&(Number.isInteger(t.background)?r.background=new D.a(t.background):r.background=h(t.background)),void 0!==t.environment&&(r.environment=h(t.environment)),void 0!==t.fog&&(\\\\\\\"Fog\\\\\\\"===t.fog.type?r.fog=new Aa(t.fog.color,t.fog.near,t.fog.far):\\\\\\\"FogExp2\\\\\\\"===t.fog.type&&(r.fog=new Ma(t.fog.color,t.fog.density)));break;case\\\\\\\"PerspectiveCamera\\\\\\\":r=new tt.a(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(r.focus=t.focus),void 0!==t.zoom&&(r.zoom=t.zoom),void 0!==t.filmGauge&&(r.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(r.filmOffset=t.filmOffset),void 0!==t.view&&(r.view=Object.assign({},t.view));break;case\\\\\\\"OrthographicCamera\\\\\\\":r=new ot.a(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(r.zoom=t.zoom),void 0!==t.view&&(r.view=Object.assign({},t.view));break;case\\\\\\\"AmbientLight\\\\\\\":r=new rU.a(t.color,t.intensity);break;case\\\\\\\"DirectionalLight\\\\\\\":r=new FU.a(t.color,t.intensity);break;case\\\\\\\"PointLight\\\\\\\":r=new QU.a(t.color,t.intensity,t.distance,t.decay);break;case\\\\\\\"RectAreaLight\\\\\\\":r=new pU(t.color,t.intensity,t.width,t.height);break;case\\\\\\\"SpotLight\\\\\\\":r=new rG.a(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case\\\\\\\"HemisphereLight\\\\\\\":r=new qU(t.color,t.groundColor,t.intensity);break;case\\\\\\\"LightProbe\\\\\\\":r=(new rJ).fromJSON(t);break;case\\\\\\\"SkinnedMesh\\\\\\\":o=l(t.geometry),a=c(t.material),r=new gs.a(o,a),void 0!==t.bindMode&&(r.bindMode=t.bindMode),void 0!==t.bindMatrix&&r.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(r.skeleton=t.skeleton);break;case\\\\\\\"Mesh\\\\\\\":o=l(t.geometry),a=c(t.material),r=new B.a(o,a);break;case\\\\\\\"InstancedMesh\\\\\\\":o=l(t.geometry),a=c(t.material);const e=t.count,n=t.instanceMatrix,i=t.instanceColor;r=new k$(o,a,e),r.instanceMatrix=new I$(new Float32Array(n.array),16),void 0!==i&&(r.instanceColor=new I$(new Float32Array(i.array),i.itemSize));break;case\\\\\\\"LOD\\\\\\\":r=new Cs;break;case\\\\\\\"Line\\\\\\\":r=new CU.a(l(t.geometry),c(t.material));break;case\\\\\\\"LineLoop\\\\\\\":r=new eJ.a(l(t.geometry),c(t.material));break;case\\\\\\\"LineSegments\\\\\\\":r=new Ms.a(l(t.geometry),c(t.material));break;case\\\\\\\"PointCloud\\\\\\\":case\\\\\\\"Points\\\\\\\":r=new ys.a(l(t.geometry),c(t.material));break;case\\\\\\\"Sprite\\\\\\\":r=new Q$(c(t.material));break;case\\\\\\\"Group\\\\\\\":r=new Fn.a;break;case\\\\\\\"Bone\\\\\\\":r=new xs.a;break;default:r=new Q.a}if(r.uuid=t.uuid,void 0!==t.name&&(r.name=t.name),void 0!==t.matrix?(r.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(r.matrixAutoUpdate=t.matrixAutoUpdate),r.matrixAutoUpdate&&r.matrix.decompose(r.position,r.quaternion,r.scale)):(void 0!==t.position&&r.position.fromArray(t.position),void 0!==t.rotation&&r.rotation.fromArray(t.rotation),void 0!==t.quaternion&&r.quaternion.fromArray(t.quaternion),void 0!==t.scale&&r.scale.fromArray(t.scale)),void 0!==t.castShadow&&(r.castShadow=t.castShadow),void 0!==t.receiveShadow&&(r.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(r.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(r.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(r.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&r.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(r.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(r.visible=t.visible),void 0!==t.frustumCulled&&(r.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(r.renderOrder=t.renderOrder),void 0!==t.userData&&(r.userData=t.userData),void 0!==t.layers&&(r.layers.mask=t.layers),void 0!==t.children){const o=t.children;for(let t=0;t<o.length;t++)r.add(this.parseObject(o[t],e,n,i,s))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];r.animations.push(s[n])}}if(\\\\\\\"LOD\\\\\\\"===t.type){void 0!==t.autoUpdate&&(r.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=r.getObjectByProperty(\\\\\\\"uuid\\\\\\\",n.object);void 0!==i&&r.addLevel(i,n.distance)}}return r}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse((function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?console.warn(\\\\\\\"THREE.ObjectLoader: No skeleton found with UUID:\\\\\\\",t.skeleton):t.bind(n,t.bindMatrix)}}))}setTexturePath(t){return console.warn(\\\\\\\"THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().\\\\\\\"),this.setResourcePath(t)}}const RJ={UVMapping:w.Yc,CubeReflectionMapping:w.o,CubeRefractionMapping:w.p,EquirectangularReflectionMapping:w.D,EquirectangularRefractionMapping:w.E,CubeUVReflectionMapping:w.q,CubeUVRefractionMapping:w.r},IJ={RepeatWrapping:w.wc,ClampToEdgeWrapping:w.n,MirroredRepeatWrapping:w.kb},FJ={NearestFilter:w.ob,NearestMipmapNearestFilter:w.sb,NearestMipmapLinearFilter:w.rb,LinearFilter:w.V,LinearMipmapNearestFilter:w.Z,LinearMipmapLinearFilter:w.Y};const DJ=new class extends ua{constructor(){super(...arguments),this.cache=ha.STRING(\\\\\\\"\\\\\\\",{hidden:!0}),this.reset=ha.BUTTON(null,{callback:(t,e)=>{BJ.PARAM_CALLBACK_reset(t,e)}})}};class BJ extends uV{constructor(){super(...arguments),this.paramsConfig=DJ}static type(){return\\\\\\\"cache\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to cache\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1)}cook(t){const e=\\\\\\\"\\\\\\\"==this.pv.cache||null==this.pv.cache,n=t[0];if(e&&n){const t=[];for(let e of n.objects())t.push(e.toJSON());this.setCoreGroup(n),this.p.cache.set(JSON.stringify(t))}else if(this.pv.cache){const t=new PJ,e=JSON.parse(this.pv.cache),n=[];for(let i of e){const e=t.parse(i);n.push(e)}this.setObjects(n)}else this.setObjects([])}static PARAM_CALLBACK_reset(t,e){t.param_callback_PARAM_CALLBACK_reset()}async param_callback_PARAM_CALLBACK_reset(){this.p.cache.set(\\\\\\\"\\\\\\\"),this.compute()}}const zJ={direction:new p.a(0,1,0)},kJ=[new d.a(-1,-1),new d.a(-1,1),new d.a(1,1),new d.a(1,-1)],UJ=new p.a(0,0,1);const GJ=new class extends ua{constructor(){super(...arguments),this.camera=ha.NODE_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.OBJ,types:ds}}),this.direction=ha.VECTOR3(zJ.direction),this.offset=ha.FLOAT(0,{range:[-10,10],rangeLocked:[!1,!1]}),this.useSegmentsCount=ha.BOOLEAN(!0),this.stepSize=ha.FLOAT(1,{range:[.001,1],rangeLocked:[!1,!1],visibleIf:{useSegmentsCount:0}}),this.segments=ha.VECTOR2([10,10],{visibleIf:{useSegmentsCount:1}}),this.sizeMult=ha.FLOAT(1,{range:[0,2],rangeLocked:[!0,!1]}),this.updateOnWindowResize=ha.BOOLEAN(1),this.update=ha.BUTTON(null,{callback:t=>{VJ.PARAM_CALLBACK_update(t)}})}};class VJ extends uV{constructor(){super(...arguments),this.paramsConfig=GJ,this._plane=new Y.a,this._raycaster=new eO,this._planeCorners=[new p.a,new p.a,new p.a,new p.a],this._planeCenter=new p.a,this._core_transform=new bU,this.segments_count=new d.a(1,1),this.planeSize=new d.a}static type(){return\\\\\\\"cameraPlane\\\\\\\"}cook(){this._updateWindowControllerDependency();const t=this.pv.camera.nodeWithContext(ts.OBJ);if(!t)return this.states.error.set(\\\\\\\"no camera found\\\\\\\"),void this.cookController.endCook();if(!ds.includes(t.type()))return this.states.error.set(\\\\\\\"node found is not a camera\\\\\\\"),void this.cookController.endCook();const e=t.object;this._computePlaneParams(e)}_updateWindowControllerDependency(){this.pv.updateOnWindowResize?this.addGraphInput(this.scene().windowController.graphNode()):this.removeGraphInput(this.scene().windowController.graphNode())}_computePlaneParams(t){this._plane.normal.copy(this.pv.direction),this._plane.constant=this.pv.offset;let e=0;this._planeCenter.set(0,0,0);for(let n of kJ){this._raycaster.setFromCamera(n,t);const i=this._planeCorners[e];this._raycaster.ray.intersectPlane(this._plane,i),this._planeCenter.add(i),e++}this._planeCenter.multiplyScalar(.25);const n=this._planeCorners[1].distanceTo(this._planeCorners[2]),i=this._planeCorners[0].distanceTo(this._planeCorners[3]),s=this._planeCorners[0].distanceTo(this._planeCorners[1]),r=this._planeCorners[2].distanceTo(this._planeCorners[3]),o=Math.max(n,i)*this.pv.sizeMult,a=Math.max(s,r)*this.pv.sizeMult;this.planeSize.set(o,a);const l=this._createPlane(this.planeSize);this._core_transform.rotateGeometry(l,UJ,this.pv.direction);const c=this._core_transform.translationMatrix(this._planeCenter);l.applyMatrix4(c),this.setGeometry(l)}_createPlane(t){return t=t.clone(),this.pv.useSegmentsCount?(this.segments_count.x=Math.floor(this.pv.segments.x),this.segments_count.y=Math.floor(this.pv.segments.y)):this.pv.stepSize>0&&(this.segments_count.x=Math.floor(t.x/this.pv.stepSize),this.segments_count.y=Math.floor(t.y/this.pv.stepSize),t.x=this.segments_count.x*this.pv.stepSize,t.y=this.segments_count.y*this.pv.stepSize),new L(t.x,t.y,this.segments_count.x,this.segments_count.y)}static PARAM_CALLBACK_update(t){t._paramCallbackUpdate()}_paramCallbackUpdate(){this.setDirty()}}class HJ extends aV{constructor(){super(...arguments),this._pointPosition=new p.a}static type(){return\\\\\\\"cameraProject\\\\\\\"}cook(t,e){var n,i;const s=t[0],r=e.camera.nodeWithContext(ts.OBJ,null===(n=this.states)||void 0===n?void 0:n.error);if(r){const t=r.object;for(let n of s.points())n.getPosition(this._pointPosition),e.unproject?this._pointPosition.unproject(t):this._pointPosition.project(t),n.setPosition(this._pointPosition)}else null===(i=this.states)||void 0===i||i.error.set(\\\\\\\"cameraNode invalid.\\\\\\\");return s}}HJ.DEFAULT_PARAMS={camera:new yi(\\\\\\\"\\\\\\\"),unproject:!1},HJ.INPUT_CLONED_STATE=Qi.FROM_NODE;const jJ=HJ.DEFAULT_PARAMS;const WJ=new class extends ua{constructor(){super(...arguments),this.camera=ha.NODE_PATH(jJ.camera.path(),{nodeSelection:{context:ts.OBJ,types:ds}}),this.unproject=ha.BOOLEAN(jJ.unproject)}};class qJ extends uV{constructor(){super(...arguments),this.paramsConfig=WJ}static type(){return\\\\\\\"cameraProject\\\\\\\"}static displayedInputNames(){return[\\\\\\\"points to project/unproject\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(HJ.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new HJ(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class XJ extends aV{constructor(){super(...arguments),this._geo_center=new p.a}static type(){return\\\\\\\"center\\\\\\\"}cook(t,e){var n;const i=t[0].objectsWithGeo(),s=new Array(3*i.length);s.fill(0);for(let t=0;t<i.length;t++){const e=i[t],r=e.geometry;r.computeBoundingBox(),r.boundingBox&&(null===(n=r.boundingBox)||void 0===n||n.getCenter(this._geo_center),e.updateMatrixWorld(),this._geo_center.applyMatrix4(e.matrixWorld),this._geo_center.toArray(s,3*t))}const r=new S.a;r.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(s),3));const o=this.createObject(r,Ns.POINTS);return this.createCoreGroupFromObjects([o])}}XJ.DEFAULT_PARAMS={},XJ.INPUT_CLONED_STATE=Qi.FROM_NODE;const YJ=new class extends ua{};class $J extends uV{constructor(){super(...arguments),this.paramsConfig=YJ}static type(){return\\\\\\\"center\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(XJ.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new XJ(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class JJ{static positions(t,e,n=360){const i=or.degrees_to_radians(n)/e,s=[];for(let n=0;n<e;n++){const e=i*n,r=t*Math.cos(e),o=t*Math.sin(e);s.push(new d.a(r,o))}return s}static create(t,e,n=360){const i=this.positions(t,e,n),s=[],r=[];let o;for(let t=0;t<i.length;t++)o=i[t],s.push(o.x),s.push(o.y),s.push(0),t>0&&(r.push(t-1),r.push(t));r.push(e-1),r.push(0);const a=new S.a;return a.setAttribute(\\\\\\\"position\\\\\\\",new C.c(s,3)),a.setIndex(r),a}}const ZJ=new p.a(0,0,1);class KJ extends aV{constructor(){super(...arguments),this._core_transform=new bU}static type(){return\\\\\\\"circle\\\\\\\"}cook(t,e){return e.open?this._create_circle(e):this._create_disk(e)}_create_circle(t){const e=JJ.create(t.radius,t.segments,t.arcAngle);return this._core_transform.rotateGeometry(e,ZJ,t.direction),this.createCoreGroupFromGeometry(e,Ns.LINE_SEGMENTS)}_create_disk(t){const e=new hJ(t.radius,t.segments);return this._core_transform.rotateGeometry(e,ZJ,t.direction),this.createCoreGroupFromGeometry(e)}}KJ.DEFAULT_PARAMS={radius:1,segments:12,open:!0,arcAngle:360,direction:new p.a(0,1,0)};const QJ=KJ.DEFAULT_PARAMS;const tZ=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(QJ.radius),this.segments=ha.INTEGER(QJ.segments,{range:[1,50],rangeLocked:[!0,!1]}),this.open=ha.BOOLEAN(QJ.open),this.arcAngle=ha.FLOAT(QJ.arcAngle,{range:[0,360],rangeLocked:[!1,!1],visibleIf:{open:1}}),this.direction=ha.VECTOR3(QJ.direction)}};class eZ extends uV{constructor(){super(...arguments),this.paramsConfig=tZ}static type(){return\\\\\\\"circle\\\\\\\"}initializeNode(){}cook(){this._operation=this._operation||new KJ(this._scene,this.states);const t=this._operation.cook([],this.pv);this.setCoreGroup(t)}}var nZ;!function(t){t.SEGMENTS_COUNT=\\\\\\\"segments count\\\\\\\",t.SEGMENTS_LENGTH=\\\\\\\"segments length\\\\\\\"}(nZ||(nZ={}));const iZ=[nZ.SEGMENTS_COUNT,nZ.SEGMENTS_LENGTH];var sZ;!function(t){t.ABC=\\\\\\\"abc\\\\\\\",t.ACB=\\\\\\\"acb\\\\\\\",t.AB=\\\\\\\"ab\\\\\\\",t.BC=\\\\\\\"bc\\\\\\\",t.AC=\\\\\\\"ac\\\\\\\"}(sZ||(sZ={}));const rZ=[sZ.ABC,sZ.ACB,sZ.AB,sZ.AC,sZ.BC];class oZ{constructor(t){this.params=t,this.a=new p.a,this.b=new p.a,this.c=new p.a,this.an=new p.a,this.bn=new p.a,this.cn=new p.a,this.ac=new p.a,this.ab=new p.a,this.ab_x_ac=new p.a,this.part0=new p.a,this.part1=new p.a,this.divider=1,this.a_center=new p.a,this.center=new p.a,this.normal=new p.a,this.radius=1,this.x=new p.a,this.y=new p.a,this.z=new p.a,this.angle_ab=1,this.angle_ac=1,this.angle_bc=1,this.angle=2*Math.PI,this.x_rotated=new p.a,this._created_geometries={}}created_geometries(){return this._created_geometries}create(t,e,n){this.a.copy(t),this.b.copy(e),this.c.copy(n),this._compute_axis(),this._create_arc(),this._create_center()}_create_arc(){this._compute_angle();const t=this._points_count(),e=new Array(3*t),n=new Array(t),i=this.angle/(t-1);this.x_rotated.copy(this.x).multiplyScalar(this.radius);let s=0;for(s=0;s<t;s++)this.x_rotated.copy(this.x).applyAxisAngle(this.normal,i*s).multiplyScalar(this.radius).add(this.center),this.x_rotated.toArray(e,3*s),s>0&&(n[2*(s-1)]=s-1,n[2*(s-1)+1]=s);this.params.full&&(n.push(s-1),n.push(0));const r=new S.a;if(r.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(e),3)),r.setIndex(n),this.params.addIdAttribute||this.params.addIdnAttribute){const e=new Array(t);for(let t=0;t<e.length;t++)e[t]=t;this.params.addIdAttribute&&r.setAttribute(\\\\\\\"id\\\\\\\",new C.a(new Float32Array(e),1));const n=e.map((e=>e/(t-1)));this.params.addIdnAttribute&&r.setAttribute(\\\\\\\"idn\\\\\\\",new C.a(new Float32Array(n),1))}this._created_geometries.arc=r}_create_center(){if(!this.params.center)return;const t=new S.a,e=[this.center.x,this.center.y,this.center.z];t.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(e),3)),this._created_geometries.center=t}_compute_axis(){this.ac.copy(this.c).sub(this.a),this.ab.copy(this.b).sub(this.a),this.ab_x_ac.copy(this.ab).cross(this.ac),this.divider=2*this.ab_x_ac.lengthSq(),this.part0.copy(this.ab_x_ac).cross(this.ab).multiplyScalar(this.ac.lengthSq()),this.part1.copy(this.ac).cross(this.ab_x_ac).multiplyScalar(this.ab.lengthSq()),this.a_center.copy(this.part0).add(this.part1).divideScalar(this.divider),this.radius=this.a_center.length(),this.normal.copy(this.ab_x_ac).normalize(),this.center.copy(this.a).add(this.a_center)}_compute_angle(){this.params.arc&&(this.params.full?(this.x.copy(this.a).sub(this.center).normalize(),this.angle=2*Math.PI):(this.an.copy(this.a).sub(this.center).normalize(),this.bn.copy(this.b).sub(this.center).normalize(),this.cn.copy(this.c).sub(this.center).normalize(),this._set_x_from_joinMode(),this.y.copy(this.normal),this.z.copy(this.x).cross(this.y).normalize(),this.angle_ab=this.an.angleTo(this.bn),this.angle_ac=this.an.angleTo(this.cn),this.angle_bc=this.bn.angleTo(this.cn),this._set_angle_from_joinMode()))}_points_count(){const t=this.params.pointsCountMode;switch(t){case nZ.SEGMENTS_COUNT:return this.params.segmentsCount+1;case nZ.SEGMENTS_LENGTH:{let t=Math.PI*this.radius*this.radius;return this.params.full||(t*=Math.abs(this.angle)/(2*Math.PI)),Math.ceil(t/this.params.segmentsLength)}}os.unreachable(t)}_set_x_from_joinMode(){const t=this.params.joinMode;switch(this.x.copy(this.a).sub(this.center).normalize(),t){case sZ.ABC:case sZ.ACB:case sZ.AB:case sZ.AC:return this.x.copy(this.an);case sZ.BC:return this.x.copy(this.bn)}os.unreachable(t)}_set_angle_from_joinMode(){const t=this.params.joinMode;switch(t){case sZ.ABC:return void(this.angle=this.angle_ab+this.angle_bc);case sZ.ACB:return this.angle=this.angle_ac+this.angle_bc,void(this.angle*=-1);case sZ.AB:return void(this.angle=this.angle_ab);case sZ.AC:return this.angle=this.angle_ac,void(this.angle*=-1);case sZ.BC:return void(this.angle=this.angle_bc)}os.unreachable(t)}}const aZ=new class extends ua{constructor(){super(...arguments),this.arc=ha.BOOLEAN(1),this.pointsCountMode=ha.INTEGER(iZ.indexOf(nZ.SEGMENTS_COUNT),{visibleIf:{arc:1},menu:{entries:iZ.map(((t,e)=>({value:e,name:t})))}}),this.segmentsLength=ha.FLOAT(.1,{visibleIf:{arc:1,pointsCountMode:iZ.indexOf(nZ.SEGMENTS_LENGTH)},range:[0,1],rangeLocked:[!0,!1]}),this.segmentsCount=ha.INTEGER(100,{visibleIf:{arc:1,pointsCountMode:iZ.indexOf(nZ.SEGMENTS_COUNT)},range:[1,100],rangeLocked:[!0,!1]}),this.full=ha.BOOLEAN(1,{visibleIf:{arc:1}}),this.joinMode=ha.INTEGER(rZ.indexOf(sZ.ABC),{visibleIf:{arc:1,full:0},menu:{entries:rZ.map(((t,e)=>({value:e,name:t})))}}),this.addIdAttribute=ha.BOOLEAN(1),this.addIdnAttribute=ha.BOOLEAN(1),this.center=ha.BOOLEAN(0)}};class lZ extends uV{constructor(){super(...arguments),this.paramsConfig=aZ,this.a=new p.a,this.b=new p.a,this.c=new p.a}static type(){return\\\\\\\"circle3Points\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState([Qi.NEVER])}cook(t){const e=t[0].points();e.length<3?this.states.error.set(`only ${e.length} points found, when 3 are required`):this._create_circle(e)}_create_circle(t){const e=new oZ({arc:this.pv.arc,center:this.pv.center,pointsCountMode:iZ[this.pv.pointsCountMode],segmentsLength:this.pv.segmentsLength,segmentsCount:this.pv.segmentsCount,full:this.pv.full,joinMode:rZ[this.pv.joinMode],addIdAttribute:this.pv.addIdAttribute,addIdnAttribute:this.pv.addIdnAttribute});t[0].getPosition(this.a),t[1].getPosition(this.b),t[2].getPosition(this.c),e.create(this.a,this.b,this.c);const n=[],i=e.created_geometries();i.arc&&n.push(this.createObject(i.arc,Ns.LINE_SEGMENTS)),i.center&&n.push(this.createObject(i.center,Ns.POINTS)),this.setObjects(n)}}const cZ=new p.a,hZ=new Dy;class uZ extends aV{constructor(){super(...arguments),this._plane=new Y.a}static type(){return\\\\\\\"clip\\\\\\\"}cook(t,e){const n=t[0].objectsWithGeo()[0];this._plane.set(e.direction,-e.distance),this._plane.translate(e.origin);const i=this._createClipGeo(n);return i?this.createCoreGroupFromObjects([i]):this.createCoreGroupFromObjects([])}_createClipGeo(t){var e;const n=t;if(!n.geometry.boundsTree)return void(null===(e=this.states)||void 0===e||e.error.set(\\\\\\\"no BVH found on input geo, make sure to use a BVH SOP node\\\\\\\"));const i=n.geometry.boundsTree,s=t=>{let e=0;return i.shapecast({intersectsBounds:t=>this._plane.intersectsBox(t),intersectsTriangle:n=>{let i=0;hZ.start.copy(n.a),hZ.end.copy(n.b),this._plane.intersectLine(hZ,cZ)&&(null==t||t.setXYZ(e,cZ.x,cZ.y,cZ.z),e++,i++),hZ.start.copy(n.b),hZ.end.copy(n.c),this._plane.intersectLine(hZ,cZ)&&(null==t||t.setXYZ(e,cZ.x,cZ.y,cZ.z),i++,e++),hZ.start.copy(n.c),hZ.end.copy(n.a),this._plane.intersectLine(hZ,cZ)&&(null==t||t.setXYZ(e,cZ.x,cZ.y,cZ.z),i++,e++),2!==i&&(e-=i)}}),{index:e}},{index:r}=s(),o=new S.a,a=new C.a(new Float32Array(3*r),3,!1);o.setAttribute(\\\\\\\"position\\\\\\\",a);const l=new Ms.a(o,js.MATERIALS[Ns.LINE_SEGMENTS]);l.frustumCulled=!1;return s(l.geometry.attributes.position),l}}uZ.DEFAULT_PARAMS={origin:new p.a(0,0,0),distance:0,direction:new p.a(0,1,0)},uZ.INPUT_CLONED_STATE=Qi.NEVER;const dZ=uZ.DEFAULT_PARAMS;const pZ=new class extends ua{constructor(){super(...arguments),this.origin=ha.VECTOR3(dZ.origin),this.distance=ha.FLOAT(dZ.distance,{range:[-10,10],rangeLocked:[!1,!1]}),this.direction=ha.VECTOR3(dZ.direction)}};class _Z extends uV{constructor(){super(...arguments),this.paramsConfig=pZ}static type(){return\\\\\\\"clip\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(uZ.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new uZ(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class mZ extends aV{static type(){return\\\\\\\"color\\\\\\\"}cook(t,e){}}mZ.DEFAULT_PARAMS={fromAttribute:!1,attribName:\\\\\\\"\\\\\\\",color:new D.a(1,1,1),asHsv:!1};const fZ=new D.a(1,1,1),gZ=\\\\\\\"color\\\\\\\",vZ=mZ.DEFAULT_PARAMS;const yZ=new class extends ua{constructor(){super(...arguments),this.fromAttribute=ha.BOOLEAN(vZ.fromAttribute),this.attribName=ha.STRING(vZ.attribName,{visibleIf:{fromAttribute:1}}),this.color=ha.COLOR(vZ.color,{visibleIf:{fromAttribute:0},expression:{forEntities:!0}}),this.asHsv=ha.BOOLEAN(vZ.asHsv,{visibleIf:{fromAttribute:0}})}};class xZ extends uV{constructor(){super(...arguments),this.paramsConfig=yZ,this._r_arrays_by_geometry_uuid={},this._g_arrays_by_geometry_uuid={},this._b_arrays_by_geometry_uuid={}}static type(){return\\\\\\\"color\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to update color of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}async cook(t){const e=t[0],n=e.coreObjects();for(let t of n)if(this.pv.fromAttribute)this._set_fromAttribute(t);else{this.p.color.hasExpression()?await this._eval_expressions(t):this._eval_simple_values(t)}if(!this.io.inputs.cloneRequired(0)){const t=e.geometries();for(let e of t)e.getAttribute(gZ).needsUpdate=!0}this.setCoreGroup(e)}_set_fromAttribute(t){const e=t.coreGeometry();if(!e)return;this._create_init_color(e,fZ);const n=e.points(),i=e.attribSize(this.pv.attribName),s=e.geometry(),r=s.getAttribute(this.pv.attribName).array,o=s.getAttribute(gZ).array;switch(i){case 1:for(let t=0;t<n.length;t++){const e=3*t;o[e+0]=r[t],o[e+1]=1-r[t],o[e+2]=0}break;case 2:for(let t=0;t<n.length;t++){const e=3*t,n=2*t;o[e+0]=r[n+0],o[e+1]=r[n+1],o[e+2]=0}break;case 3:for(let t=0;t<r.length;t++)o[t]=r[t];break;case 4:for(let t=0;t<n.length;t++){const e=3*t,n=4*t;o[e+0]=r[n+0],o[e+1]=r[n+1],o[e+2]=r[n+2]}}}_create_init_color(t,e){t.hasAttrib(gZ)||t.addNumericAttrib(gZ,3,fZ)}_eval_simple_values(t){const e=t.coreGeometry();if(!e)return;let n;this._create_init_color(e,fZ),this.pv.asHsv?(n=new D.a,co.set_hsv(this.pv.color.r,this.pv.color.g,this.pv.color.b,n)):n=this.pv.color,e.addNumericAttrib(gZ,3,n)}async _eval_expressions(t){const e=t.points(),n=t.object(),i=t.coreGeometry();i&&this._create_init_color(i,fZ);const s=n.geometry;if(s){const t=s.getAttribute(gZ).array,n=await this._update_from_param(s,t,e,0),i=await this._update_from_param(s,t,e,1),r=await this._update_from_param(s,t,e,2);if(n&&this._commit_tmp_values(n,t,0),i&&this._commit_tmp_values(i,t,1),r&&this._commit_tmp_values(r,t,2),this.pv.asHsv){let n,i=new D.a,s=new D.a;for(let r of e)n=3*r.index(),i.fromArray(t,n),co.set_hsv(i.r,i.g,i.b,s),s.toArray(t,n)}}}async _update_from_param(t,e,n,i){const s=this.p.color.components[i],r=[this.pv.color.r,this.pv.color.g,this.pv.color.b][i],o=[this._r_arrays_by_geometry_uuid,this._g_arrays_by_geometry_uuid,this._b_arrays_by_geometry_uuid][i];let a;if(s.hasExpression()&&s.expressionController)a=this._init_array_if_required(t,o,n.length),await s.expressionController.computeExpressionForPoints(n,((t,e)=>{a[t.index()]=e}));else for(let t of n)e[3*t.index()+i]=r;return a}_init_array_if_required(t,e,n){const i=t.uuid,s=e[i];return s?s.length<n&&(e[i]=new Array(n)):e[i]=new Array(n),e[i]}_commit_tmp_values(t,e,n){for(let i=0;i<t.length;i++)e[3*i+n]=t[i]}}const bZ=new p.a(0,1,0);const wZ=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(1,{range:[0,1]}),this.height=ha.FLOAT(1,{range:[0,1]}),this.segmentsRadial=ha.INTEGER(12,{range:[3,20],rangeLocked:[!0,!1]}),this.segmentsHeight=ha.INTEGER(1,{range:[1,20],rangeLocked:[!0,!1]}),this.cap=ha.BOOLEAN(1),this.thetaStart=ha.FLOAT(1,{range:[0,2*Math.PI]}),this.thetaLength=ha.FLOAT(\\\\\\\"2*$PI\\\\\\\",{range:[0,2*Math.PI]}),this.center=ha.VECTOR3([0,0,0]),this.direction=ha.VECTOR3([0,0,1])}};class TZ extends uV{constructor(){super(...arguments),this.paramsConfig=wZ,this._core_transform=new bU}static type(){return\\\\\\\"cone\\\\\\\"}cook(){const t=new lG(this.pv.radius,this.pv.height,this.pv.segmentsRadial,this.pv.segmentsHeight,!this.pv.cap,this.pv.thetaStart,this.pv.thetaLength);this._core_transform.rotateGeometry(t,bZ,this.pv.direction),t.translate(this.pv.center.x,this.pv.center.y,this.pv.center.z),this.setGeometry(t)}}const AZ={SCALE:new p.a(1,1,1),PSCALE:1,EYE:new p.a(0,0,0),UP:new p.a(0,1,0)},MZ=new p.a(1,1,1),EZ=new d.a(0,0),SZ=\\\\\\\"color\\\\\\\";var CZ;!function(t){t.POSITION=\\\\\\\"instancePosition\\\\\\\",t.SCALE=\\\\\\\"instanceScale\\\\\\\",t.ORIENTATION=\\\\\\\"instanceOrientation\\\\\\\",t.COLOR=\\\\\\\"instanceColor\\\\\\\",t.UV=\\\\\\\"instanceUv\\\\\\\"}(CZ||(CZ={}));const NZ={P:CZ.POSITION,N:CZ.ORIENTATION,up:CZ.ORIENTATION,Cd:CZ.COLOR,[Ws.COLOR]:CZ.COLOR,[Ws.NORMAL]:CZ.ORIENTATION,[Ws.POSITION]:CZ.POSITION,[Ws.PSCALE]:CZ.SCALE,[Ws.SCALE]:CZ.SCALE};class LZ{constructor(t){this._coreGroup=t,this._is_pscale_present=!1,this._is_scale_present=!1,this._is_normal_present=!1,this._is_up_present=!1,this._do_rotate_matrices=!1,this._matrixT=new A.a,this._matrixR=new A.a,this._matrixS=new A.a,this._pointScale=new p.a,this._pointNormal=new p.a,this._pointUp=new p.a,t&&this.setCoreGroup(t)}static remapName(t){return NZ[t]||t}setCoreGroup(t){this._coreGroup=t,this._is_pscale_present=this._coreGroup.hasAttrib(Ws.PSCALE),this._is_scale_present=this._coreGroup.hasAttrib(Ws.SCALE),this._is_normal_present=this._coreGroup.hasAttrib(Ws.NORMAL),this._is_up_present=this._coreGroup.hasAttrib(Ws.UP),this._do_rotate_matrices=this._is_normal_present}matrixFromPoint(t,e){e.identity();const n=t.position();this._is_scale_present?t.attribValue(\\\\\\\"scale\\\\\\\",this._pointScale):this._pointScale.copy(AZ.SCALE);const i=this._is_pscale_present?t.attribValue(\\\\\\\"pscale\\\\\\\"):AZ.PSCALE;this._pointScale.multiplyScalar(i);const s=this._matrixS;s.makeScale(this._pointScale.x,this._pointScale.y,this._pointScale.z);const r=this._matrixT;if(r.makeTranslation(n.x,n.y,n.z),e.multiply(r),this._do_rotate_matrices){const n=this._matrixR,i=AZ.EYE;t.attribValue(\\\\\\\"normal\\\\\\\",this._pointNormal),this._pointNormal.multiplyScalar(-1),this._is_up_present?t.attribValue(\\\\\\\"up\\\\\\\",this._pointUp):this._pointUp.copy(AZ.UP),this._pointUp.normalize(),n.lookAt(i,this._pointNormal,this._pointUp),e.multiply(n)}e.multiply(s)}static updateTransformInstanceAttributes(t,e,n){const i=t.length,s=new Float32Array(3*i),r=new Float32Array(3*i),o=new Float32Array(4*i),a=new LZ(e);let l=0;for(let e of t){a.matrixFromPoint(e,this._tmpMatrix);const t=3*l,n=4*l;this._tmpMatrix.decompose(this._position,this._quaternion,this._scale),this._position.toArray(s,t),this._quaternion.toArray(o,n),this._scale.toArray(r,t),l++}n.setAttribute(CZ.POSITION,new I$(s,3)),n.setAttribute(CZ.SCALE,new I$(r,3)),n.setAttribute(CZ.ORIENTATION,new I$(o,4))}static updateColorInstanceAttribute(t,e,n){const i=t.length,s=new Float32Array(3*i),r=e.hasAttrib(SZ);let o=0;for(let e of t){(r?e.attribValue(SZ,this._point_color):MZ).toArray(s,3*o),o++}n.setAttribute(CZ.COLOR,new I$(s,3))}static createInstanceBufferGeometry(t,e,n){const i=e.points(),s=new lJ;s.copy(t),s.instanceCount=1/0;const r=i.length,o=e.hasAttrib(\\\\\\\"uv\\\\\\\");if(o){const t=new Float32Array(2*r);let e=0;for(let n of i){const i=2*e;(o?n.attribValue(\\\\\\\"uv\\\\\\\",this._point_uv):EZ).toArray(t,i),e++}s.setAttribute(CZ.UV,new I$(t,2))}this.updateTransformInstanceAttributes(i,e,s),this.updateColorInstanceAttribute(i,e,s);e.attribNamesMatchingMask(n).forEach((t=>{const n=e.attribSize(t),o=new Float32Array(r*n);i.forEach(((e,i)=>{const s=e.attribValue(t);m.isNumber(s)?o[i]=s:s.toArray(o,i*n)})),s.setAttribute(t,new I$(o,n))}));return new fr(s).markAsInstance(),s}}LZ.transformAttributeNames=[CZ.POSITION,CZ.ORIENTATION,CZ.SCALE],LZ._point_color=new p.a,LZ._point_uv=new d.a,LZ._position=new p.a(0,0,0),LZ._quaternion=new hh.a,LZ._scale=new p.a(1,1,1),LZ._tmpMatrix=new A.a;class OZ extends ah{set_point(t){this._point=t,this.setDirty(),this.removeDirtyState()}value(t){return this._point?t?this._point.attribValue(t):this._point.index():this._global_index}}var PZ;!function(t){t[t.OBJECT=0]=\\\\\\\"OBJECT\\\\\\\",t[t.GEOMETRY=1]=\\\\\\\"GEOMETRY\\\\\\\"}(PZ||(PZ={}));const RZ=[PZ.OBJECT,PZ.GEOMETRY],IZ=[{name:\\\\\\\"object\\\\\\\",value:PZ.OBJECT},{name:\\\\\\\"geometry\\\\\\\",value:PZ.GEOMETRY}];const FZ=new class extends ua{constructor(){super(...arguments),this.count=ha.INTEGER(1,{range:[1,20],rangeLocked:[!0,!1]}),this.transformOnly=ha.BOOLEAN(0),this.transformMode=ha.INTEGER(0,{menu:{entries:IZ}}),this.copyAttributes=ha.BOOLEAN(0),this.attributesToCopy=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{copyAttributes:!0}}),this.useCopyExpr=ha.BOOLEAN(0)}};class DZ extends uV{constructor(){super(...arguments),this.paramsConfig=FZ,this._attribute_names_to_copy=[],this._objects=[],this._instancer=new LZ,this._instanceMatrix=new A.a,this._object_position=new p.a}static type(){return\\\\\\\"copy\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to be copied\\\\\\\",\\\\\\\"points to copy to\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState([Qi.ALWAYS,Qi.NEVER])}async cook(t){const e=t[0];if(!this.io.inputs.has_input(1))return void await this.cook_without_template(e);const n=t[1];n?await this.cook_with_template(e,n):this.states.error.set(\\\\\\\"second input invalid\\\\\\\")}async cook_with_template(t,e){this._objects=[];const n=e.points();this._instancer.setCoreGroup(e),this._attribute_names_to_copy=ss.attribNames(this.pv.attributesToCopy).filter((t=>e.hasAttrib(t))),await this._copy_moved_objects_on_template_points(t,n),this.setObjects(this._objects)}async _copy_moved_objects_on_template_points(t,e){for(let n=0;n<e.length;n++)await this._copy_moved_object_on_template_point(t,e,n)}async _copy_moved_object_on_template_point(t,e,n){this._instancer.matrixFromPoint(e[n],this._instanceMatrix);const i=e[n];this.stamp_node.set_point(i);const s=await this._get_moved_objects_for_template_point(t,n);for(let t of s)this.pv.copyAttributes&&this._copyAttributes_from_template(t,i),this.pv.transformOnly?t.applyMatrix4(this._instanceMatrix):this._apply_matrix_to_object_or_geometry(t,this._instanceMatrix),this._objects.push(t)}_apply_matrix_to_object_or_geometry(t,e){const n=RZ[this.pv.transformMode];switch(n){case PZ.OBJECT:return void this._apply_matrix_to_object(t,e);case PZ.GEOMETRY:{const n=t.geometry;return void(n&&n.applyMatrix4(e))}}os.unreachable(n)}_apply_matrix_to_object(t,e){this._object_position.copy(t.position),t.position.multiplyScalar(0),t.updateMatrix(),t.applyMatrix4(e),t.position.add(this._object_position),t.updateMatrix()}async _get_moved_objects_for_template_point(t,e){const n=await this._stamp_instance_group_if_required(t);if(n){return this.pv.transformOnly?f.compact([n.objects()[e]]):n.clone().objects()}return[]}async _stamp_instance_group_if_required(t){if(!this.pv.useCopyExpr)return t;{const t=await this.containerController.requestInputContainer(0);if(t){const e=t.coreContent();return e||void 0}this.states.error.set(`input failed for index ${this.stamp_value()}`)}}async _copy_moved_objects_for_each_instance(t){for(let e=0;e<this.pv.count;e++)await this._copy_moved_objects_for_instance(t,e)}async _copy_moved_objects_for_instance(t,e){this.stamp_node.set_global_index(e);const n=await this._stamp_instance_group_if_required(t);n&&n.objects().forEach((t=>{const e=br.clone(t);this._objects.push(e)}))}async cook_without_template(t){this._objects=[],await this._copy_moved_objects_for_each_instance(t),this.setObjects(this._objects)}_copyAttributes_from_template(t,e){this._attribute_names_to_copy.forEach(((n,i)=>{const s=e.attribValue(n);new br(t,i).addAttribute(n,s)}))}stamp_value(t){return this.stamp_node.value(t)}get stamp_node(){return this._stamp_node=this._stamp_node||this.create_stamp_node()}create_stamp_node(){const t=new OZ(this.scene());return this.dirtyController.setForbiddenTriggerNodes([t]),t}dispose(){super.dispose(),this._stamp_node&&this._stamp_node.dispose()}}const BZ=\\\\\\\"id\\\\\\\",zZ=\\\\\\\"class\\\\\\\",kZ=\\\\\\\"html\\\\\\\";class UZ extends aV{static type(){return\\\\\\\"CSS2DObject\\\\\\\"}cook(t,e){const n=t[0];if(n){const t=this._create_objects_from_input_points(n,e);return this.createCoreGroupFromObjects(t)}{const t=this._create_object_from_scratch(e);return this.createCoreGroupFromObjects([t])}}_create_objects_from_input_points(t,e){const n=t.points(),i=[];for(let t of n){const n=e.useIdAttrib?t.attribValue(BZ):e.id,s=e.useClassAttrib?t.attribValue(zZ):e.className,r=e.useHTMLAttrib?t.attribValue(kZ):e.html,o=UZ.create_css_object({id:n,className:s,html:r}),a=o.element;if(e.copyAttributes){const n=ss.attribNames(e.attributesToCopy);for(let e of n){const n=t.attribValue(e);m.isString(n)?a.setAttribute(e,n):m.isNumber(n)&&a.setAttribute(e,`${n}`)}}o.position.copy(t.position()),o.updateMatrix(),i.push(o)}return i}_create_object_from_scratch(t){return UZ.create_css_object({id:t.id,className:t.className,html:t.html})}static create_css_object(t){const e=document.createElement(\\\\\\\"div\\\\\\\");e.id=t.id,e.className=t.className,e.innerHTML=t.html;const n=new dq(e);return n.matrixAutoUpdate=!1,n}}UZ.DEFAULT_PARAMS={useIdAttrib:!1,id:\\\\\\\"myCSSObject\\\\\\\",useClassAttrib:!1,className:\\\\\\\"CSS2DObject\\\\\\\",useHTMLAttrib:!1,html:\\\\\\\"<div>default html</div>\\\\\\\",copyAttributes:!1,attributesToCopy:\\\\\\\"\\\\\\\"},UZ.INPUT_CLONED_STATE=Qi.NEVER;const GZ=UZ.DEFAULT_PARAMS;const VZ=new class extends ua{constructor(){super(...arguments),this.useIdAttrib=ha.BOOLEAN(GZ.useIdAttrib),this.id=ha.STRING(GZ.id,{visibleIf:{useIdAttrib:0}}),this.useClassAttrib=ha.BOOLEAN(GZ.useClassAttrib),this.className=ha.STRING(GZ.className,{visibleIf:{useClassAttrib:0}}),this.useHTMLAttrib=ha.BOOLEAN(GZ.useHTMLAttrib),this.html=ha.STRING(GZ.html,{visibleIf:{useHTMLAttrib:0},multiline:!0}),this.copyAttributes=ha.BOOLEAN(GZ.copyAttributes),this.attributesToCopy=ha.STRING(GZ.attributesToCopy,{visibleIf:{copyAttributes:!0}})}};class HZ extends uV{constructor(){super(...arguments),this.paramsConfig=VZ}static type(){return\\\\\\\"CSS2DObject\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(UZ.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new UZ(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class jZ{constructor(t,e){this._size=t,this._type=e}size(){return this._size}type(){return this._type}static from_value(t){const e=m.isString(t)?zs.STRING:zs.NUMERIC;return new this(m.isArray(t)?t.length:1,e)}}class WZ{constructor(t={}){this._attribute_datas_by_name={},this._options={},this._options.dataKeysPrefix=t.dataKeysPrefix,this._options.skipEntries=t.skipEntries,this._options.doConvert=t.doConvert||!1,this._options.convertToNumeric=t.convertToNumeric}dataKeysPrefix(){return this._options.dataKeysPrefix}get_prefixed_json(t,e){if(0==e.length)return t;{const n=e.shift();if(n)return this.get_prefixed_json(t[n],e)}return[]}setJSON(t){return this._json=t}createObject(){const t=new S.a,e=new fr(t);if(null!=this._json){const n=this._json.length;e.initPositionAttribute(n),this._find_attributes();const i=ss.attribNames(this._options.convertToNumeric||\\\\\\\"\\\\\\\");for(let n of Object.keys(this._attribute_datas_by_name)){const s=Xs.remapName(n);let r=this._attribute_values_for_name(n).flat();const o=this._attribute_datas_by_name[n],a=o.size();if(o.type()===zs.STRING)if(this._options.doConvert&&ss.matchesOneMask(n,i)){const e=r.map((t=>m.isString(t)?parseFloat(t)||0:t));t.setAttribute(s,new C.c(e,a))}else{const t=Xs.arrayToIndexedArrays(r);e.setIndexedAttribute(s,t.values,t.indices)}else{const e=r;t.setAttribute(s,new C.c(e,a))}}}return t}_find_attributes(){let t;const e=ss.attribNames(this._options.skipEntries||\\\\\\\"\\\\\\\");if(this._json&&null!=(t=this._json[0]))for(let n of Object.keys(t)){const i=t[n];if(this._value_has_subentries(i))for(let t of Object.keys(i)){const s=[n,t].join(\\\\\\\":\\\\\\\"),r=i[n];ss.matchesOneMask(s,e)||(this._attribute_datas_by_name[s]=jZ.from_value(r))}else ss.matchesOneMask(n,e)||(this._attribute_datas_by_name[n]=jZ.from_value(i))}}_attribute_values_for_name(t){return this._json?this._json.map((e=>{const n=t.split(\\\\\\\":\\\\\\\")[0],i=e[n];if(this._value_has_subentries(i)){return i[t.substring(n.length+1)]||0}return i||0})):[]}_value_has_subentries(t){return m.isObject(t)&&!m.isArray(t)}}const qZ=JSON.stringify([{value:-40},{value:-30},{value:-20},{value:-10},{value:0},{value:10},{value:20},{value:30},{value:40},{value:50},{value:60},{value:70},{value:80}]);const XZ=new class extends ua{constructor(){super(...arguments),this.data=ha.STRING(qZ)}};class YZ extends uV{constructor(){super(...arguments),this.paramsConfig=XZ}static type(){return\\\\\\\"data\\\\\\\"}cook(){let t=null;try{t=JSON.parse(this.pv.data)}catch(t){this.states.error.set(\\\\\\\"could not parse json\\\\\\\")}if(t)try{const e=new WZ;e.setJSON(t);const n=e.createObject();this.setGeometry(n,Ns.POINTS)}catch(t){this.states.error.set(\\\\\\\"could not build geometry from json\\\\\\\")}else this.cookController.endCook()}}class $Z extends $g{constructor(t,e,n={},i){super(t,e,i),this._node=i,this._parser=new WZ(n)}async load(t,e,n){const i=await this._urlToLoad();fetch(i).then((async e=>{let n=await e.json();const i=this._parser.dataKeysPrefix();null!=i&&\\\\\\\"\\\\\\\"!=i&&(n=this._parser.get_prefixed_json(n,i.split(\\\\\\\".\\\\\\\"))),this._parser.setJSON(n);const s=this._parser.createObject();t(s)})).catch((t=>{li.error(\\\\\\\"error\\\\\\\",t),n(t)}))}}const JZ=\\\\\\\"position\\\\\\\";class ZZ extends $g{constructor(t,e,n,i){super(t,e,i),this.attribute_names=n,this._node=i,this.attribute_names_from_first_line=!1,this.lines=[],this.points_count=0,this.attribute_values_by_name={},this.attribute_data_by_name={},this._loading=!1,this.attribute_names||(this.attribute_names_from_first_line=!0)}async load(){if(this._loading)return void console.warn(\\\\\\\"is already loading\\\\\\\");this._loading=!0,this.points_count=0,await this.loadData(),this.infer_types(),this.read_values();return this.create_points()}async loadData(){const t=await this._urlToLoad(),e=await fetch(t),n=await e.text();this.lines=n.split(\\\\\\\"\\\\n\\\\\\\"),this.attribute_names||(this.attribute_names=this.lines[0].split(ZZ.SEPARATOR)),this.attribute_names=this.attribute_names.map((t=>Xs.remapName(t)));for(let t of this.attribute_names)this.attribute_values_by_name[t]=[]}infer_types(){const t=this.attribute_names_from_first_line?1:0;let e=this.lines[t].split(ZZ.SEPARATOR);for(let t=0;t<e.length;t++){const n=this.attribute_names[t],i=e[t],s=this._value_from_line_element(i);this.attribute_data_by_name[n]=jZ.from_value(s)}}_value_from_line_element(t){if(m.isString(t)){if(`${parseFloat(t)}`===t)return parseFloat(t);if(\\\\\\\"[\\\\\\\"===t[0]&&\\\\\\\"]\\\\\\\"===t[t.length-1]){return t.substring(1,t.length-1).split(ZZ.VECTOR_SEPARATOR).map((t=>parseFloat(t)))}return t}return t}read_values(){if(!this.attribute_names)return;let t;for(let e=this.attribute_names_from_first_line?1:0;e<this.lines.length;e++){t=this.lines[e];const n=t.split(ZZ.SEPARATOR);if(n.length>=this.attribute_names.length){for(let t=0;t<n.length;t++){const e=this.attribute_names[t];if(e){const i=n[t],s=this._value_from_line_element(i);this.attribute_values_by_name[e].push(s)}}this.points_count+=1}}if(!this.attribute_values_by_name.position){const t=new Array(3*this.points_count);t.fill(0),this.attribute_values_by_name.position=t,this.attribute_data_by_name.position=new jZ(3,zs.NUMERIC),this.attribute_names.push(JZ)}}create_points(){if(!this.attribute_names)return;const t=new S.a,e=new fr(t);for(let n of this.attribute_names){const i=this.attribute_values_by_name[n].flat(),s=this.attribute_data_by_name[n].size();if(this.attribute_data_by_name[n].type()==zs.STRING){const t=Xs.arrayToIndexedArrays(i);e.setIndexedAttribute(n,t.values,t.indices)}else t.setAttribute(n,new C.c(i,s))}const n=new Array(this.points_count);for(let t=0;t<this.points_count;t++)n.push(t);return t.setIndex(n),t}}var KZ;ZZ.SEPARATOR=\\\\\\\",\\\\\\\",ZZ.VECTOR_SEPARATOR=\\\\\\\",\\\\\\\",function(t){t.JSON=\\\\\\\"json\\\\\\\",t.CSV=\\\\\\\"csv\\\\\\\"}(KZ||(KZ={}));const QZ=[KZ.JSON,KZ.CSV],tK=`${qg}/nodes/sop/DataUrl/basic.json`;const eK=new class extends ua{constructor(){super(...arguments),this.dataType=ha.INTEGER(QZ.indexOf(KZ.JSON),{menu:{entries:QZ.map(((t,e)=>({name:t,value:e})))}}),this.url=ha.STRING(tK,{fileBrowse:{type:[Rr.JSON]}}),this.jsonDataKeysPrefix=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{dataType:QZ.indexOf(KZ.JSON)}}),this.skipEntries=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{dataType:QZ.indexOf(KZ.JSON)}}),this.convert=ha.BOOLEAN(0,{visibleIf:{dataType:QZ.indexOf(KZ.JSON)}}),this.convertToNumeric=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{dataType:QZ.indexOf(KZ.JSON),convert:1}}),this.readAttribNamesFromFile=ha.BOOLEAN(1,{visibleIf:{dataType:QZ.indexOf(KZ.CSV)}}),this.attribNames=ha.STRING(\\\\\\\"height scale\\\\\\\",{visibleIf:{dataType:QZ.indexOf(KZ.CSV),readAttribNamesFromFile:0}}),this.reload=ha.BUTTON(null,{callback:(t,e)=>{nK.PARAM_CALLBACK_reload(t,e)}})}};class nK extends uV{constructor(){super(...arguments),this.paramsConfig=eK}static type(){return\\\\\\\"dataUrl\\\\\\\"}initializeNode(){this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.url],(()=>{const t=this.p.url.rawInput();if(t){const e=t.split(\\\\\\\"/\\\\\\\");return e[e.length-1]}return\\\\\\\"\\\\\\\"}))}))}))}async cook(){this._load()}_load(){switch(QZ[this.pv.dataType]){case KZ.JSON:return this._loadJSON();case KZ.CSV:return this._loadCSV()}}_clearLoadedBlob(){switch(QZ[this.pv.dataType]){case KZ.JSON:return this._resetJSON();case KZ.CSV:return this._resetCSV()}}_url(){const t=this.scene().assets.root();return t?`${t}${this.pv.url}`:this.pv.url}_loadJSON(){new $Z(this._url(),this.scene(),{dataKeysPrefix:this.pv.jsonDataKeysPrefix,skipEntries:this.pv.skipEntries,doConvert:this.pv.convert,convertToNumeric:this.pv.convertToNumeric},this).load(this._onLoad.bind(this),void 0,this._onError.bind(this))}_resetJSON(){new $Z(this._url(),this.scene()).deregisterUrl()}_onLoad(t){this.setGeometry(t,Ns.POINTS)}_onError(t){this.states.error.set(`could not load geometry from ${this._url()} (${t})`),this.cookController.endCook()}async _loadCSV(){const t=this.pv.readAttribNamesFromFile?void 0:this.pv.attribNames.split(\\\\\\\" \\\\\\\"),e=new ZZ(this._url(),this.scene(),t,this),n=await e.load();n?this.setGeometry(n,Ns.POINTS):this.states.error.set(\\\\\\\"could not generate points\\\\\\\")}_resetCSV(){new ZZ(this._url(),this.scene(),[],this).deregisterUrl()}static PARAM_CALLBACK_reload(t,e){t.param_callback_reload()}param_callback_reload(){this._clearLoadedBlob(),this.p.url.setDirty()}}class iK extends S.a{constructor(t,e,n,i){super();const s=[],r=[],o=[],a=new p.a,l=new A.a;l.makeRotationFromEuler(n),l.setPosition(e);const c=new A.a;function h(e,n,i){n.applyMatrix4(t.matrixWorld),n.applyMatrix4(c),i.transformDirection(t.matrixWorld),e.push(new sK(n.clone(),i.clone()))}function u(t,e){const n=[],s=.5*Math.abs(i.dot(e));for(let i=0;i<t.length;i+=3){let r,o,a,l,c=0;const h=t[i+0].position.dot(e)-s>0,u=t[i+1].position.dot(e)-s>0,p=t[i+2].position.dot(e)-s>0;switch(c=(h?1:0)+(u?1:0)+(p?1:0),c){case 0:n.push(t[i]),n.push(t[i+1]),n.push(t[i+2]);break;case 1:if(h&&(r=t[i+1],o=t[i+2],a=d(t[i],r,e,s),l=d(t[i],o,e,s)),u){r=t[i],o=t[i+2],a=d(t[i+1],r,e,s),l=d(t[i+1],o,e,s),n.push(a),n.push(o.clone()),n.push(r.clone()),n.push(o.clone()),n.push(a.clone()),n.push(l);break}p&&(r=t[i],o=t[i+1],a=d(t[i+2],r,e,s),l=d(t[i+2],o,e,s)),n.push(r.clone()),n.push(o.clone()),n.push(a),n.push(l),n.push(a.clone()),n.push(o.clone());break;case 2:h||(r=t[i].clone(),o=d(r,t[i+1],e,s),a=d(r,t[i+2],e,s),n.push(r),n.push(o),n.push(a)),u||(r=t[i+1].clone(),o=d(r,t[i+2],e,s),a=d(r,t[i],e,s),n.push(r),n.push(o),n.push(a)),p||(r=t[i+2].clone(),o=d(r,t[i],e,s),a=d(r,t[i+1],e,s),n.push(r),n.push(o),n.push(a))}}return n}function d(t,e,n,i){const s=t.position.dot(n)-i,r=s/(s-(e.position.dot(n)-i));return new sK(new p.a(t.position.x+r*(e.position.x-t.position.x),t.position.y+r*(e.position.y-t.position.y),t.position.z+r*(e.position.z-t.position.z)),new p.a(t.normal.x+r*(e.normal.x-t.normal.x),t.normal.y+r*(e.normal.y-t.normal.y),t.normal.z+r*(e.normal.z-t.normal.z)))}c.copy(l).invert(),function(){let e=[];const n=new p.a,c=new p.a;if(!0===t.geometry.isGeometry)return void console.error(\\\\\\\"THREE.DecalGeometry no longer supports THREE.Geometry. Use BufferGeometry instead.\\\\\\\");const d=t.geometry,_=d.attributes.position,m=d.attributes.normal;if(null!==d.index){const t=d.index;for(let i=0;i<t.count;i++)n.fromBufferAttribute(_,t.getX(i)),c.fromBufferAttribute(m,t.getX(i)),h(e,n,c)}else for(let t=0;t<_.count;t++)n.fromBufferAttribute(_,t),c.fromBufferAttribute(m,t),h(e,n,c);e=u(e,a.set(1,0,0)),e=u(e,a.set(-1,0,0)),e=u(e,a.set(0,1,0)),e=u(e,a.set(0,-1,0)),e=u(e,a.set(0,0,1)),e=u(e,a.set(0,0,-1));for(let t=0;t<e.length;t++){const n=e[t];o.push(.5+n.position.x/i.x,.5+n.position.y/i.y),n.position.applyMatrix4(l),s.push(n.position.x,n.position.y,n.position.z),r.push(n.normal.x,n.normal.y,n.normal.z)}}(),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(s,3)),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(r,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(o,2))}}class sK{constructor(t,e){this.position=t,this.normal=e}clone(){return new this.constructor(this.position.clone(),this.normal.clone())}}class rK extends aV{constructor(){super(...arguments),this._r=new p.a,this._rotation=new ny.a(0,0,0),this._scale=new p.a(1,1,1)}static type(){return\\\\\\\"decal\\\\\\\"}cook(t,e){const n=t[0];this._r.copy(e.r).multiplyScalar(On.a),this._rotation.set(this._r.x,this._r.y,this._r.z),this._scale.copy(e.s).multiplyScalar(e.scale);const i=n.objectsWithGeo(),s=[];for(let t of i)if(t.isMesh){const n=new iK(t,e.t,this._rotation,this._scale),i=new B.a(n,t.material);s.push(i)}return this.createCoreGroupFromObjects(s)}}rK.DEFAULT_PARAMS={t:new p.a(0,0,0),r:new p.a(0,0,0),s:new p.a(1,1,1),scale:1},rK.INPUT_CLONED_STATE=Qi.NEVER;const oK=rK.DEFAULT_PARAMS;const aK=new class extends ua{constructor(){super(...arguments),this.t=ha.VECTOR3(oK.t),this.r=ha.VECTOR3(oK.r),this.s=ha.VECTOR3(oK.s),this.scale=ha.FLOAT(oK.scale)}};class lK extends uV{constructor(){super(...arguments),this.paramsConfig=aK}static type(){return\\\\\\\"decal\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create decal from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(rK.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new rK(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const cK=new class extends ua{constructor(){super(...arguments),this.duration=ha.INTEGER(1e3,{range:[0,1e3],rangeLocked:[!0,!1]})}};class hK extends uV{constructor(){super(...arguments),this.paramsConfig=cK}static type(){return\\\\\\\"delay\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.ALWAYS)}cook(t){const e=t[0];setTimeout((()=>{this.setCoreGroup(e)}),Math.max(this.pv.duration,0))}}class uK{constructor(t){this.node=t,this.selected_state=new Map,this._entities_count=0,this._selected_entities_count=0}init(t){this.selected_state.clear();for(let e of t)this.selected_state.set(e,!1);this._entities_count=t.length,this._selected_entities_count=0}select(t){const e=this.selected_state.get(t);null!=e&&0==e&&(this.selected_state.set(t,!0),this._selected_entities_count++)}entities_to_keep(){return this._entities_for_state(this.node.pv.invert)}entities_to_delete(){return this._entities_for_state(!this.node.pv.invert)}_entities_for_state(t){const e=!!t,n=t?this._selected_entities_count:this._entities_count-this._selected_entities_count;if(0==n)return[];{const t=new Array(n);let i=0;return this.selected_state.forEach(((n,s)=>{n==e&&(t[i]=s,i++)})),t}}}var dK;!function(t){t.EQUAL=\\\\\\\"==\\\\\\\",t.LESS_THAN=\\\\\\\"<\\\\\\\",t.EQUAL_OR_LESS_THAN=\\\\\\\"<=\\\\\\\",t.EQUAL_OR_GREATER_THAN=\\\\\\\">=\\\\\\\",t.GREATER_THAN=\\\\\\\">\\\\\\\",t.DIFFERENT=\\\\\\\"!=\\\\\\\"}(dK||(dK={}));const pK=[dK.EQUAL,dK.LESS_THAN,dK.EQUAL_OR_LESS_THAN,dK.EQUAL_OR_GREATER_THAN,dK.GREATER_THAN,dK.DIFFERENT],_K={[dK.EQUAL]:(t,e)=>t==e,[dK.LESS_THAN]:(t,e)=>t<e,[dK.EQUAL_OR_LESS_THAN]:(t,e)=>t<=e,[dK.EQUAL_OR_GREATER_THAN]:(t,e)=>t>=e,[dK.GREATER_THAN]:(t,e)=>t>e,[dK.DIFFERENT]:(t,e)=>t!=e},mK=pK.map(((t,e)=>({name:t,value:e})));class fK{constructor(t){this.node=t}evalForEntities(t){const e=ks[this.node.pv.attribType];switch(e){case zs.NUMERIC:return void this._eval_for_numeric(t);case zs.STRING:return void this._eval_for_string(t)}os.unreachable(e)}_eval_for_string(t){let e;for(let n of t)e=n.stringAttribValue(this.node.pv.attribName),e==this.node.pv.attribString&&this.node.entitySelectionHelper.select(n)}_eval_for_numeric(t){const e=Vs[this.node.pv.attribSize-1];switch(e){case Gs.FLOAT:return this._eval_for_points_numeric_float(t);case Gs.VECTOR2:return this._eval_for_points_numeric_vector2(t);case Gs.VECTOR3:return this._eval_for_points_numeric_vector3(t);case Gs.VECTOR4:return this._eval_for_points_numeric_vector4(t)}os.unreachable(e)}_eval_for_points_numeric_float(t){let e=this.node.pv.attribName;const n=this.node.pv.attribValue1;let i;const s=pK[this.node.pv.attribComparisonOperator],r=_K[s];for(let s of t)i=s.attribValue(e),r(i,n)&&this.node.entitySelectionHelper.select(s)}_eval_for_points_numeric_vector2(t){let e=this.node.pv.attribName;const n=this.node.pv.attribValue2;let i=new d.a;for(let s of t){const t=s.attribValue(e,i);n.equals(t)&&this.node.entitySelectionHelper.select(s)}}_eval_for_points_numeric_vector3(t){let e=this.node.pv.attribName;const n=this.node.pv.attribValue3;let i=new p.a;for(let s of t){const t=s.attribValue(e,i);n.equals(t)&&this.node.entitySelectionHelper.select(s)}}_eval_for_points_numeric_vector4(t){let e=this.node.pv.attribName;const n=this.node.pv.attribValue4;let i=new _.a;for(let s of t){const t=s.attribValue(e,i);n.equals(t)&&this.node.entitySelectionHelper.select(s)}}}class gK{constructor(t){this.node=t}async evalForEntities(t){const e=this.node.p.expression;this.node.p.expression.hasExpression()&&e.expressionController?await this.eval_expressions_for_points_with_expression(t):this.eval_expressions_without_expression(t)}async eval_expressions_for_points_with_expression(t){const e=this.node.p.expression;e.expressionController&&await e.expressionController.computeExpressionForEntities(t,((t,e)=>{e&&this.node.entitySelectionHelper.select(t)}))}eval_expressions_without_expression(t){if(this.node.pv.expression)for(let e of t)this.node.entitySelectionHelper.select(e)}}class vK{constructor(t){this.node=t,this._point_position=new p.a}evalForPoints(t){const e=this._createBbox();for(let n of t){e.containsPoint(n.getPosition(this._point_position))&&this.node.entitySelectionHelper.select(n)}}_createBbox(){return new Ry.a(this.node.pv.bboxCenter.clone().sub(this.node.pv.bboxSize.clone().multiplyScalar(.5)),this.node.pv.bboxCenter.clone().add(this.node.pv.bboxSize.clone().multiplyScalar(.5)))}}class yK{constructor(t){this.node=t}eval_for_objects(t){const e=Ps[this.node.pv.objectType];for(let n of t){Os(n.object().constructor)==e&&this.node.entitySelectionHelper.select(n)}}}class xK{constructor(){this._sidePropertyByMaterial=new WeakMap,this._bound_setMat=this._setObjectMaterialDoubleSided.bind(this),this._bound_restoreMat=this._restoreObjectMaterialSide.bind(this)}setCoreGroupMaterialDoubleSided(t){const e=t.objects();for(let t of e)t.traverse(this._bound_setMat)}restoreMaterialSideProperty(t){const e=t.objects();for(let t of e)t.traverse(this._bound_restoreMat)}_setObjectMaterialDoubleSided(t){const e=t.material;if(e)if(m.isArray(e))for(let t of e)this._setMaterialDoubleSided(t);else this._setMaterialDoubleSided(e)}_restoreObjectMaterialSide(t){const e=t.material;if(e)if(m.isArray(e))for(let t of e)this._restoreMaterialDoubleSided(t);else this._restoreMaterialDoubleSided(e)}_setMaterialDoubleSided(t){this._sidePropertyByMaterial.set(t,t.side),t.side=w.z}_restoreMaterialDoubleSided(t){t.side=this._sidePropertyByMaterial.get(t)||w.z}}const bK=new p.a(0,1,0),wK=new p.a(0,-1,0);class TK{constructor(t){this.node=t,this._matDoubleSideTmpSetter=new xK,this._point_position=new p.a,this._raycaster=new eO,this._intersections=[]}evalForPoints(t,e){if(!e)return;const n=null==e?void 0:e.objectsWithGeo()[0];if(!n)return;const i=n;if(!i.isMesh)return;this._matDoubleSideTmpSetter.setCoreGroupMaterialDoubleSided(e);const s=n.geometry;s.computeBoundingBox();const r=s.boundingBox;for(let e of t)e.getPosition(this._point_position),r.containsPoint(this._point_position)?this._isPositionInObject(this._point_position,i,bK)&&this._isPositionInObject(this._point_position,i,wK)&&this.node.entitySelectionHelper.select(e):this.node.entitySelectionHelper.select(e);this._matDoubleSideTmpSetter.restoreMaterialSideProperty(e)}_isPositionInObject(t,e,n){var i;this._raycaster.ray.direction.copy(n),this._raycaster.ray.origin.copy(t),this._intersections.length=0;const s=this._raycaster.intersectObject(e,!1,this._intersections);if(!s)return!1;if(0==s.length)return!1;const r=null===(i=s[0].face)||void 0===i?void 0:i.normal;if(!r)return!1;return this._raycaster.ray.direction.dot(r)>=0}}const AK=new class extends ua{constructor(){super(...arguments),this.class=ha.INTEGER(Ds.indexOf(Fs.VERTEX),{menu:{entries:Bs}}),this.invert=ha.BOOLEAN(0),this.byObjectType=ha.BOOLEAN(0,{visibleIf:{class:Ds.indexOf(Fs.OBJECT)}}),this.objectType=ha.INTEGER(Ps.indexOf(Ns.MESH),{menu:{entries:Rs},visibleIf:{class:Ds.indexOf(Fs.OBJECT),byObjectType:!0},separatorAfter:!0}),this.byExpression=ha.BOOLEAN(0),this.expression=ha.BOOLEAN(\\\\\\\"@ptnum==0\\\\\\\",{visibleIf:{byExpression:!0},expression:{forEntities:!0},separatorAfter:!0}),this.byAttrib=ha.BOOLEAN(0),this.attribType=ha.INTEGER(ks.indexOf(zs.NUMERIC),{menu:{entries:Us},visibleIf:{byAttrib:1}}),this.attribName=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{byAttrib:1}}),this.attribSize=ha.INTEGER(1,{range:Hs,rangeLocked:[!0,!0],visibleIf:{byAttrib:1,attribType:ks.indexOf(zs.NUMERIC)}}),this.attribComparisonOperator=ha.INTEGER(pK.indexOf(dK.EQUAL),{menu:{entries:mK},visibleIf:{byAttrib:!0,attribType:ks.indexOf(zs.NUMERIC),attribSize:Gs.FLOAT}}),this.attribValue1=ha.FLOAT(0,{visibleIf:{byAttrib:1,attribType:ks.indexOf(zs.NUMERIC),attribSize:1}}),this.attribValue2=ha.VECTOR2([0,0],{visibleIf:{byAttrib:1,attribType:ks.indexOf(zs.NUMERIC),attribSize:2}}),this.attribValue3=ha.VECTOR3([0,0,0],{visibleIf:{byAttrib:1,attribType:ks.indexOf(zs.NUMERIC),attribSize:3}}),this.attribValue4=ha.VECTOR4([0,0,0,0],{visibleIf:{byAttrib:1,attribType:ks.indexOf(zs.NUMERIC),attribSize:4}}),this.attribString=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{byAttrib:1,attribType:ks.indexOf(zs.STRING)},separatorAfter:!0}),this.byBbox=ha.BOOLEAN(0,{visibleIf:{class:Ds.indexOf(Fs.VERTEX)}}),this.bboxSize=ha.VECTOR3([1,1,1],{visibleIf:{class:Ds.indexOf(Fs.VERTEX),byBbox:!0}}),this.bboxCenter=ha.VECTOR3([0,0,0],{visibleIf:{class:Ds.indexOf(Fs.VERTEX),byBbox:!0},separatorAfter:!0}),this.byBoundingObject=ha.BOOLEAN(0,{visibleIf:{class:Ds.indexOf(Fs.VERTEX)}}),this.keepPoints=ha.BOOLEAN(0,{visibleIf:{class:Ds.indexOf(Fs.OBJECT)}})}};class MK extends uV{constructor(){super(...arguments),this.paramsConfig=AK,this._marked_for_deletion_per_object_index=new Map,this.entitySelectionHelper=new uK(this),this.byExpressionHelper=new gK(this),this.byAttributeHelper=new fK(this),this.byObjectTypeHelper=new yK(this),this.byBboxHelper=new vK(this),this.byBoundingObjectHelper=new TK(this)}static type(){return\\\\\\\"delete\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to delete from\\\\\\\",\\\\\\\"points inside this geometry will be deleted (optional)\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}async cook(t){const e=t[0],n=t[1];switch(this.pv.class){case Fs.VERTEX:await this._eval_for_points(e,n);break;case Fs.OBJECT:await this._eval_for_objects(e)}}set_class(t){this.p.class.set(t)}async _eval_for_objects(t){const e=t.coreObjects();this.entitySelectionHelper.init(e),this._marked_for_deletion_per_object_index=new Map;for(let t of e)this._marked_for_deletion_per_object_index.set(t.index(),!1);this.pv.byExpression&&await this.byExpressionHelper.evalForEntities(e),this.pv.byObjectType&&this.byObjectTypeHelper.eval_for_objects(e),this.pv.byAttrib&&\\\\\\\"\\\\\\\"!=this.pv.attribName&&this.byAttributeHelper.evalForEntities(e);const n=this.entitySelectionHelper.entities_to_keep().map((t=>t.object()));if(this.pv.keepPoints){const t=this.entitySelectionHelper.entities_to_delete();for(let e of t){const t=this._point_object(e);t&&n.push(t)}}this.setObjects(n)}async _eval_for_points(t,e){const n=t.coreObjects();let i,s=[];for(let t=0;t<n.length;t++){i=n[t];let r=i.coreGeometry();if(r){const t=i.object(),n=r.pointsFromGeometry();this.entitySelectionHelper.init(n);const o=n.length;this.pv.byExpression&&await this.byExpressionHelper.evalForEntities(n),this.pv.byAttrib&&\\\\\\\"\\\\\\\"!=this.pv.attribName&&this.byAttributeHelper.evalForEntities(n),this.pv.byBbox&&this.byBboxHelper.evalForPoints(n),this.pv.byBoundingObject&&this.byBoundingObjectHelper.evalForPoints(n,e);const a=this.entitySelectionHelper.entities_to_keep();if(a.length==o)s.push(t);else if(r.geometry().dispose(),a.length>0){const e=fr.geometryFromPoints(a,Os(t.constructor));e&&(t.geometry=e,s.push(t))}}}this.setObjects(s)}_point_object(t){const e=t.points(),n=fr.geometryFromPoints(e,Ns.POINTS);if(n)return this.createObject(n,Ns.POINTS)}}const EK=new class extends ua{constructor(){super(...arguments),this.start=ha.INTEGER(0,{range:[0,100],rangeLocked:[!0,!1]}),this.useCount=ha.BOOLEAN(0),this.count=ha.INTEGER(0,{range:[0,100],rangeLocked:[!0,!1],visibleIf:{useCount:1}})}};class SK extends uV{constructor(){super(...arguments),this.paramsConfig=EK}static type(){return\\\\\\\"drawRange\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}cook(t){const e=t[0],n=e.objects();for(let t of n){const e=t.geometry;if(e){const t=e.drawRange;t.start=this.pv.start,this.pv.useCount?t.count=this.pv.count:t.count=1/0}}this.setCoreGroup(e)}}class CK{constructor(){this.pluginCallbacks=[],this.register((function(t){return new nQ(t)})),this.register((function(t){return new iQ(t)})),this.register((function(t){return new sQ(t)})),this.register((function(t){return new rQ(t)})),this.register((function(t){return new oQ(t)}))}register(t){return-1===this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.push(t),this}unregister(t){return-1!==this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,n){const i=new eQ,s=[];for(let t=0,e=this.pluginCallbacks.length;t<e;t++)s.push(this.pluginCallbacks[t](i));i.setPlugins(s),i.write(t,e,n)}}const NK=0,LK=1,OK=2,PK=3,RK=4,IK=5121,FK=5123,DK=5126,BK=5125,zK=34962,kK=34963,UK=9728,GK=9729,VK=9984,HK=9985,jK=9986,WK=9987,qK=33071,XK=33648,YK=10497,$K={};$K[1003]=UK,$K[1004]=VK,$K[1005]=jK,$K[1006]=GK,$K[1007]=HK,$K[1008]=WK,$K[1001]=qK,$K[1e3]=YK,$K[1002]=XK;const JK={scale:\\\\\\\"scale\\\\\\\",position:\\\\\\\"translation\\\\\\\",quaternion:\\\\\\\"rotation\\\\\\\",morphTargetInfluences:\\\\\\\"weights\\\\\\\"};function ZK(t,e){return t.length===e.length&&t.every((function(t,n){return t===e[n]}))}function KK(t){return 4*Math.ceil(t/4)}function QK(t,e=0){const n=KK(t.byteLength);if(n!==t.byteLength){const i=new Uint8Array(n);if(i.set(new Uint8Array(t)),0!==e)for(let s=t.byteLength;s<n;s++)i[s]=e;return i.buffer}return t}let tQ=null;class eQ{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.uids=new Map,this.uid=0,this.json={asset:{version:\\\\\\\"2.0\\\\\\\",generator:\\\\\\\"THREE.GLTFExporter\\\\\\\"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(t){this.plugins=t}write(t,e,n){this.options=Object.assign({},{binary:!1,trs:!1,onlyVisible:!0,truncateDrawRange:!0,embedImages:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(t);const i=this;Promise.all(this.pending).then((function(){const t=i.buffers,n=i.json,s=i.options,r=i.extensionsUsed,o=new Blob(t,{type:\\\\\\\"application/octet-stream\\\\\\\"}),a=Object.keys(r);if(a.length>0&&(n.extensionsUsed=a),n.buffers&&n.buffers.length>0&&(n.buffers[0].byteLength=o.size),!0===s.binary){const t=new window.FileReader;t.readAsArrayBuffer(o),t.onloadend=function(){const i=QK(t.result),s=new DataView(new ArrayBuffer(8));s.setUint32(0,i.byteLength,!0),s.setUint32(4,5130562,!0);const r=QK(function(t){if(void 0!==window.TextEncoder)return(new TextEncoder).encode(t).buffer;const e=new Uint8Array(new ArrayBuffer(t.length));for(let n=0,i=t.length;n<i;n++){const i=t.charCodeAt(n);e[n]=i>255?32:i}return e.buffer}(JSON.stringify(n)),32),o=new DataView(new ArrayBuffer(8));o.setUint32(0,r.byteLength,!0),o.setUint32(4,1313821514,!0);const a=new ArrayBuffer(12),l=new DataView(a);l.setUint32(0,1179937895,!0),l.setUint32(4,2,!0);const c=12+o.byteLength+r.byteLength+s.byteLength+i.byteLength;l.setUint32(8,c,!0);const h=new Blob([a,o,r,s,i],{type:\\\\\\\"application/octet-stream\\\\\\\"}),u=new window.FileReader;u.readAsArrayBuffer(h),u.onloadend=function(){e(u.result)}}}else if(n.buffers&&n.buffers.length>0){const t=new window.FileReader;t.readAsDataURL(o),t.onloadend=function(){const i=t.result;n.buffers[0].uri=i,e(n)}}else e(n)}))}serializeUserData(t,e){if(0===Object.keys(t.userData).length)return;const n=this.options,i=this.extensionsUsed;try{const s=JSON.parse(JSON.stringify(t.userData));if(n.includeCustomExtensions&&s.gltfExtensions){void 0===e.extensions&&(e.extensions={});for(const t in s.gltfExtensions)e.extensions[t]=s.gltfExtensions[t],i[t]=!0;delete s.gltfExtensions}Object.keys(s).length>0&&(e.extras=s)}catch(e){console.warn(\\\\\\\"THREE.GLTFExporter: userData of '\\\\\\\"+t.name+\\\\\\\"' won't be serialized because of JSON.stringify error - \\\\\\\"+e.message)}}getUID(t){return this.uids.has(t)||this.uids.set(t,this.uid++),this.uids.get(t)}isNormalizedNormalAttribute(t){if(this.cache.attributesNormalized.has(t))return!1;const e=new Sb;for(let n=0,i=t.count;n<i;n++)if(Math.abs(e.fromBufferAttribute(t,n).length()-1)>5e-4)return!1;return!0}createNormalizedNormalAttribute(t){const e=this.cache;if(e.attributesNormalized.has(t))return e.attributesNormalized.get(t);const n=t.clone(),i=new Sb;for(let t=0,e=n.count;t<e;t++)i.fromBufferAttribute(n,t),0===i.x&&0===i.y&&0===i.z?i.setX(1):i.normalize(),n.setXYZ(t,i.x,i.y,i.z);return e.attributesNormalized.set(t,n),n}applyTextureTransform(t,e){let n=!1;const i={};0===e.offset.x&&0===e.offset.y||(i.offset=e.offset.toArray(),n=!0),0!==e.rotation&&(i.rotation=e.rotation,n=!0),1===e.repeat.x&&1===e.repeat.y||(i.scale=e.repeat.toArray(),n=!0),n&&(t.extensions=t.extensions||{},t.extensions.KHR_texture_transform=i,this.extensionsUsed.KHR_texture_transform=!0)}processBuffer(t){const e=this.json,n=this.buffers;return e.buffers||(e.buffers=[{byteLength:0}]),n.push(t),0}processBufferView(t,e,n,i,s){const r=this.json;let o;r.bufferViews||(r.bufferViews=[]),o=e===IK?1:e===FK?2:4;const a=KK(i*t.itemSize*o),l=new DataView(new ArrayBuffer(a));let c=0;for(let s=n;s<n+i;s++)for(let n=0;n<t.itemSize;n++){let i;t.itemSize>4?i=t.array[s*t.itemSize+n]:0===n?i=t.getX(s):1===n?i=t.getY(s):2===n?i=t.getZ(s):3===n&&(i=t.getW(s)),e===DK?l.setFloat32(c,i,!0):e===BK?l.setUint32(c,i,!0):e===FK?l.setUint16(c,i,!0):e===IK&&l.setUint8(c,i),c+=o}const h={buffer:this.processBuffer(l.buffer),byteOffset:this.byteOffset,byteLength:a};void 0!==s&&(h.target=s),s===zK&&(h.byteStride=t.itemSize*o),this.byteOffset+=a,r.bufferViews.push(h);return{id:r.bufferViews.length-1,byteLength:0}}processBufferViewImage(t){const e=this,n=e.json;return n.bufferViews||(n.bufferViews=[]),new Promise((function(i){const s=new window.FileReader;s.readAsArrayBuffer(t),s.onloadend=function(){const t=QK(s.result),r={buffer:e.processBuffer(t),byteOffset:e.byteOffset,byteLength:t.byteLength};e.byteOffset+=t.byteLength,i(n.bufferViews.push(r)-1)}}))}processAccessor(t,e,n,i){const s=this.options,r=this.json;let o;if(t.array.constructor===Float32Array)o=DK;else if(t.array.constructor===Uint32Array)o=BK;else if(t.array.constructor===Uint16Array)o=FK;else{if(t.array.constructor!==Uint8Array)throw new Error(\\\\\\\"THREE.GLTFExporter: Unsupported bufferAttribute component type.\\\\\\\");o=IK}if(void 0===n&&(n=0),void 0===i&&(i=t.count),s.truncateDrawRange&&void 0!==e&&null===e.index){const s=n+i,r=e.drawRange.count===1/0?t.count:e.drawRange.start+e.drawRange.count;n=Math.max(n,e.drawRange.start),(i=Math.min(s,r)-n)<0&&(i=0)}if(0===i)return null;const a=function(t,e,n){const i={min:new Array(t.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(t.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let s=e;s<e+n;s++)for(let e=0;e<t.itemSize;e++){let n;t.itemSize>4?n=t.array[s*t.itemSize+e]:0===e?n=t.getX(s):1===e?n=t.getY(s):2===e?n=t.getZ(s):3===e&&(n=t.getW(s)),i.min[e]=Math.min(i.min[e],n),i.max[e]=Math.max(i.max[e],n)}return i}(t,n,i);let l;void 0!==e&&(l=t===e.index?kK:zK);const c=this.processBufferView(t,o,n,i,l),h={bufferView:c.id,byteOffset:c.byteOffset,componentType:o,count:i,max:a.max,min:a.min,type:{1:\\\\\\\"SCALAR\\\\\\\",2:\\\\\\\"VEC2\\\\\\\",3:\\\\\\\"VEC3\\\\\\\",4:\\\\\\\"VEC4\\\\\\\",16:\\\\\\\"MAT4\\\\\\\"}[t.itemSize]};return!0===t.normalized&&(h.normalized=!0),r.accessors||(r.accessors=[]),r.accessors.push(h)-1}processImage(t,e,n){const i=this,s=i.cache,r=i.json,o=i.options,a=i.pending;s.images.has(t)||s.images.set(t,{});const l=s.images.get(t),c=e===Dx?\\\\\\\"image/png\\\\\\\":\\\\\\\"image/jpeg\\\\\\\",h=c+\\\\\\\":flipY/\\\\\\\"+n.toString();if(void 0!==l[h])return l[h];r.images||(r.images=[]);const u={mimeType:c};if(o.embedImages){const s=tQ=tQ||document.createElement(\\\\\\\"canvas\\\\\\\");s.width=Math.min(t.width,o.maxTextureSize),s.height=Math.min(t.height,o.maxTextureSize);const r=s.getContext(\\\\\\\"2d\\\\\\\");if(!0===n&&(r.translate(0,s.height),r.scale(1,-1)),\\\\\\\"undefined\\\\\\\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\\\\\\\"undefined\\\\\\\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\\\\\\\"undefined\\\\\\\"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas||\\\\\\\"undefined\\\\\\\"!=typeof ImageBitmap&&t instanceof ImageBitmap)r.drawImage(t,0,0,s.width,s.height);else{e!==Dx&&e!==Fx&&console.error(\\\\\\\"GLTFExporter: Only RGB and RGBA formats are supported.\\\\\\\"),(t.width>o.maxTextureSize||t.height>o.maxTextureSize)&&console.warn(\\\\\\\"GLTFExporter: Image size is bigger than maxTextureSize\\\\\\\",t);const n=new Uint8ClampedArray(t.height*t.width*4);if(e===Dx)for(let e=0;e<n.length;e+=4)n[e+0]=t.data[e+0],n[e+1]=t.data[e+1],n[e+2]=t.data[e+2],n[e+3]=t.data[e+3];else for(let e=0,i=0;e<n.length;e+=4,i+=3)n[e+0]=t.data[i+0],n[e+1]=t.data[i+1],n[e+2]=t.data[i+2],n[e+3]=255;r.putImageData(new ImageData(n,t.width,t.height),0,0)}!0===o.binary?a.push(new Promise((function(t){s.toBlob((function(e){i.processBufferViewImage(e).then((function(e){u.bufferView=e,t()}))}),c)}))):u.uri=s.toDataURL(c)}else u.uri=t.src;const d=r.images.push(u)-1;return l[h]=d,d}processSampler(t){const e=this.json;e.samplers||(e.samplers=[]);const n={magFilter:$K[t.magFilter],minFilter:$K[t.minFilter],wrapS:$K[t.wrapS],wrapT:$K[t.wrapT]};return e.samplers.push(n)-1}processTexture(t){const e=this.cache,n=this.json;if(e.textures.has(t))return e.textures.get(t);n.textures||(n.textures=[]);const i={sampler:this.processSampler(t),source:this.processImage(t.image,t.format,t.flipY)};t.name&&(i.name=t.name),this._invokeAll((function(e){e.writeTexture&&e.writeTexture(t,i)}));const s=n.textures.push(i)-1;return e.textures.set(t,s),s}processMaterial(t){const e=this.cache,n=this.json;if(e.materials.has(t))return e.materials.get(t);if(t.isShaderMaterial)return console.warn(\\\\\\\"GLTFExporter: THREE.ShaderMaterial not supported.\\\\\\\"),null;n.materials||(n.materials=[]);const i={pbrMetallicRoughness:{}};!0!==t.isMeshStandardMaterial&&!0!==t.isMeshBasicMaterial&&console.warn(\\\\\\\"GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.\\\\\\\");const s=t.color.toArray().concat([t.opacity]);if(ZK(s,[1,1,1,1])||(i.pbrMetallicRoughness.baseColorFactor=s),t.isMeshStandardMaterial?(i.pbrMetallicRoughness.metallicFactor=t.metalness,i.pbrMetallicRoughness.roughnessFactor=t.roughness):(i.pbrMetallicRoughness.metallicFactor=.5,i.pbrMetallicRoughness.roughnessFactor=.5),t.metalnessMap||t.roughnessMap)if(t.metalnessMap===t.roughnessMap){const e={index:this.processTexture(t.metalnessMap)};this.applyTextureTransform(e,t.metalnessMap),i.pbrMetallicRoughness.metallicRoughnessTexture=e}else console.warn(\\\\\\\"THREE.GLTFExporter: Ignoring metalnessMap and roughnessMap because they are not the same Texture.\\\\\\\");if(t.map){const e={index:this.processTexture(t.map)};this.applyTextureTransform(e,t.map),i.pbrMetallicRoughness.baseColorTexture=e}if(t.emissive){const e=t.emissive.clone().multiplyScalar(t.emissiveIntensity),n=Math.max(e.r,e.g,e.b);if(n>1&&(e.multiplyScalar(1/n),console.warn(\\\\\\\"THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited\\\\\\\")),n>0&&(i.emissiveFactor=e.toArray()),t.emissiveMap){const e={index:this.processTexture(t.emissiveMap)};this.applyTextureTransform(e,t.emissiveMap),i.emissiveTexture=e}}if(t.normalMap){const e={index:this.processTexture(t.normalMap)};t.normalScale&&1!==t.normalScale.x&&(e.scale=t.normalScale.x),this.applyTextureTransform(e,t.normalMap),i.normalTexture=e}if(t.aoMap){const e={index:this.processTexture(t.aoMap),texCoord:1};1!==t.aoMapIntensity&&(e.strength=t.aoMapIntensity),this.applyTextureTransform(e,t.aoMap),i.occlusionTexture=e}t.transparent?i.alphaMode=\\\\\\\"BLEND\\\\\\\":t.alphaTest>0&&(i.alphaMode=\\\\\\\"MASK\\\\\\\",i.alphaCutoff=t.alphaTest),2===t.side&&(i.doubleSided=!0),\\\\\\\"\\\\\\\"!==t.name&&(i.name=t.name),this.serializeUserData(t,i),this._invokeAll((function(e){e.writeMaterial&&e.writeMaterial(t,i)}));const r=n.materials.push(i)-1;return e.materials.set(t,r),r}processMesh(t){const e=this.cache,n=this.json,i=[t.geometry.uuid];if(Array.isArray(t.material))for(let e=0,n=t.material.length;e<n;e++)i.push(t.material[e].uuid);else i.push(t.material.uuid);const s=i.join(\\\\\\\":\\\\\\\");if(e.meshes.has(s))return e.meshes.get(s);const r=t.geometry;let o;if(o=t.isLineSegments?LK:t.isLineLoop?OK:t.isLine?PK:t.isPoints?NK:t.material.wireframe?LK:RK,!0!==r.isBufferGeometry)throw new Error(\\\\\\\"THREE.GLTFExporter: Geometry is not of type THREE.BufferGeometry.\\\\\\\");const a={},l={},c=[],h=[],u={uv:\\\\\\\"TEXCOORD_0\\\\\\\",uv2:\\\\\\\"TEXCOORD_1\\\\\\\",color:\\\\\\\"COLOR_0\\\\\\\",skinWeight:\\\\\\\"WEIGHTS_0\\\\\\\",skinIndex:\\\\\\\"JOINTS_0\\\\\\\"},d=r.getAttribute(\\\\\\\"normal\\\\\\\");void 0===d||this.isNormalizedNormalAttribute(d)||(console.warn(\\\\\\\"THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one.\\\\\\\"),r.setAttribute(\\\\\\\"normal\\\\\\\",this.createNormalizedNormalAttribute(d)));let p=null;for(let t in r.attributes){if(\\\\\\\"morph\\\\\\\"===t.substr(0,5))continue;const n=r.attributes[t];t=u[t]||t.toUpperCase();if(/^(POSITION|NORMAL|TANGENT|TEXCOORD_\\\\d+|COLOR_\\\\d+|JOINTS_\\\\d+|WEIGHTS_\\\\d+)$/.test(t)||(t=\\\\\\\"_\\\\\\\"+t),e.attributes.has(this.getUID(n))){l[t]=e.attributes.get(this.getUID(n));continue}p=null;const i=n.array;\\\\\\\"JOINTS_0\\\\\\\"!==t||i instanceof Uint16Array||i instanceof Uint8Array||(console.warn('GLTFExporter: Attribute \\\\\\\"skinIndex\\\\\\\" converted to type UNSIGNED_SHORT.'),p=new Qw(new Uint16Array(i),n.itemSize,n.normalized));const s=this.processAccessor(p||n,r);null!==s&&(l[t]=s,e.attributes.set(this.getUID(n),s))}if(void 0!==d&&r.setAttribute(\\\\\\\"normal\\\\\\\",d),0===Object.keys(l).length)return null;if(void 0!==t.morphTargetInfluences&&t.morphTargetInfluences.length>0){const n=[],i=[],s={};if(void 0!==t.morphTargetDictionary)for(const e in t.morphTargetDictionary)s[t.morphTargetDictionary[e]]=e;for(let o=0;o<t.morphTargetInfluences.length;++o){const a={};let l=!1;for(const t in r.morphAttributes){if(\\\\\\\"position\\\\\\\"!==t&&\\\\\\\"normal\\\\\\\"!==t){l||(console.warn(\\\\\\\"GLTFExporter: Only POSITION and NORMAL morph are supported.\\\\\\\"),l=!0);continue}const n=r.morphAttributes[t][o],i=t.toUpperCase(),s=r.attributes[t];if(e.attributes.has(this.getUID(n))){a[i]=e.attributes.get(this.getUID(n));continue}const c=n.clone();if(!r.morphTargetsRelative)for(let t=0,e=n.count;t<e;t++)c.setXYZ(t,n.getX(t)-s.getX(t),n.getY(t)-s.getY(t),n.getZ(t)-s.getZ(t));a[i]=this.processAccessor(c,r),e.attributes.set(this.getUID(s),a[i])}h.push(a),n.push(t.morphTargetInfluences[o]),void 0!==t.morphTargetDictionary&&i.push(s[o])}a.weights=n,i.length>0&&(a.extras={},a.extras.targetNames=i)}const _=Array.isArray(t.material);if(_&&0===r.groups.length)return null;const m=_?t.material:[t.material],f=_?r.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let t=0,n=f.length;t<n;t++){const n={mode:o,attributes:l};if(this.serializeUserData(r,n),h.length>0&&(n.targets=h),null!==r.index){let i=this.getUID(r.index);void 0===f[t].start&&void 0===f[t].count||(i+=\\\\\\\":\\\\\\\"+f[t].start+\\\\\\\":\\\\\\\"+f[t].count),e.attributes.has(i)?n.indices=e.attributes.get(i):(n.indices=this.processAccessor(r.index,r,f[t].start,f[t].count),e.attributes.set(i,n.indices)),null===n.indices&&delete n.indices}const i=this.processMaterial(m[f[t].materialIndex]);null!==i&&(n.material=i),c.push(n)}a.primitives=c,n.meshes||(n.meshes=[]),this._invokeAll((function(e){e.writeMesh&&e.writeMesh(t,a)}));const g=n.meshes.push(a)-1;return e.meshes.set(s,g),g}processCamera(t){const e=this.json;e.cameras||(e.cameras=[]);const n=t.isOrthographicCamera,i={type:n?\\\\\\\"orthographic\\\\\\\":\\\\\\\"perspective\\\\\\\"};return n?i.orthographic={xmag:2*t.right,ymag:2*t.top,zfar:t.far<=0?.001:t.far,znear:t.near<0?0:t.near}:i.perspective={aspectRatio:t.aspect,yfov:pb.degToRad(t.fov),zfar:t.far<=0?.001:t.far,znear:t.near<0?0:t.near},\\\\\\\"\\\\\\\"!==t.name&&(i.name=t.type),e.cameras.push(i)-1}processAnimation(t,e){const n=this.json,i=this.nodeMap;n.animations||(n.animations=[]);const s=(t=CK.Utils.mergeMorphTargetTracks(t.clone(),e)).tracks,r=[],o=[];for(let t=0;t<s.length;++t){const n=s[t],a=ZN.parseTrackName(n.name);let l=ZN.findNode(e,a.nodeName);const c=JK[a.propertyName];if(\\\\\\\"bones\\\\\\\"===a.objectName&&(l=!0===l.isSkinnedMesh?l.skeleton.getBoneByName(a.objectIndex):void 0),!l||!c)return console.warn('THREE.GLTFExporter: Could not export animation track \\\\\\\"%s\\\\\\\".',n.name),null;const h=1;let u,d=n.values.length/n.times.length;c===JK.morphTargetInfluences&&(d/=l.morphTargetInfluences.length),!0===n.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline?(u=\\\\\\\"CUBICSPLINE\\\\\\\",d/=3):u=n.getInterpolation()===kx?\\\\\\\"STEP\\\\\\\":\\\\\\\"LINEAR\\\\\\\",o.push({input:this.processAccessor(new Qw(n.times,h)),output:this.processAccessor(new Qw(n.values,d)),interpolation:u}),r.push({sampler:o.length-1,target:{node:i.get(l),path:c}})}return n.animations.push({name:t.name||\\\\\\\"clip_\\\\\\\"+n.animations.length,samplers:o,channels:r}),n.animations.length-1}processSkin(t){const e=this.json,n=this.nodeMap,i=e.nodes[n.get(t)],s=t.skeleton;if(void 0===s)return null;const r=t.skeleton.bones[0];if(void 0===r)return null;const o=[],a=new Float32Array(16*s.bones.length),l=new sw;for(let e=0;e<s.bones.length;++e)o.push(n.get(s.bones[e])),l.copy(s.boneInverses[e]),l.multiply(t.bindMatrix).toArray(a,16*e);void 0===e.skins&&(e.skins=[]),e.skins.push({inverseBindMatrices:this.processAccessor(new Qw(a,16)),joints:o,skeleton:n.get(r)});return i.skin=e.skins.length-1}processNode(t){const e=this.json,n=this.options,i=this.nodeMap;e.nodes||(e.nodes=[]);const s={};if(n.trs){const e=t.quaternion.toArray(),n=t.position.toArray(),i=t.scale.toArray();ZK(e,[0,0,0,1])||(s.rotation=e),ZK(n,[0,0,0])||(s.translation=n),ZK(i,[1,1,1])||(s.scale=i)}else t.matrixAutoUpdate&&t.updateMatrix(),!1===ZK(t.matrix.elements,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])&&(s.matrix=t.matrix.elements);if(\\\\\\\"\\\\\\\"!==t.name&&(s.name=String(t.name)),this.serializeUserData(t,s),t.isMesh||t.isLine||t.isPoints){const e=this.processMesh(t);null!==e&&(s.mesh=e)}else t.isCamera&&(s.camera=this.processCamera(t));if(t.isSkinnedMesh&&this.skins.push(t),t.children.length>0){const e=[];for(let i=0,s=t.children.length;i<s;i++){const s=t.children[i];if(s.visible||!1===n.onlyVisible){const t=this.processNode(s);null!==t&&e.push(t)}}e.length>0&&(s.children=e)}this._invokeAll((function(e){e.writeNode&&e.writeNode(t,s)}));const r=e.nodes.push(s)-1;return i.set(t,r),r}processScene(t){const e=this.json,n=this.options;e.scenes||(e.scenes=[],e.scene=0);const i={};\\\\\\\"\\\\\\\"!==t.name&&(i.name=t.name),e.scenes.push(i);const s=[];for(let e=0,i=t.children.length;e<i;e++){const i=t.children[e];if(i.visible||!1===n.onlyVisible){const t=this.processNode(i);null!==t&&s.push(t)}}s.length>0&&(i.nodes=s),this.serializeUserData(t,i)}processObjects(t){const e=new zE;e.name=\\\\\\\"AuxScene\\\\\\\";for(let n=0;n<t.length;n++)e.children.push(t[n]);this.processScene(e)}processInput(t){const e=this.options;t=t instanceof Array?t:[t],this._invokeAll((function(e){e.beforeParse&&e.beforeParse(t)}));const n=[];for(let e=0;e<t.length;e++)t[e]instanceof zE?this.processScene(t[e]):n.push(t[e]);n.length>0&&this.processObjects(n);for(let t=0;t<this.skins.length;++t)this.processSkin(this.skins[t]);for(let n=0;n<e.animations.length;++n)this.processAnimation(e.animations[n],t[0]);this._invokeAll((function(e){e.afterParse&&e.afterParse(t)}))}_invokeAll(t){for(let e=0,n=this.plugins.length;e<n;e++)t(this.plugins[e])}}class nQ{constructor(t){this.writer=t,this.name=\\\\\\\"KHR_lights_punctual\\\\\\\"}writeNode(t,e){if(!t.isLight)return;if(!t.isDirectionalLight&&!t.isPointLight&&!t.isSpotLight)return void console.warn(\\\\\\\"THREE.GLTFExporter: Only directional, point, and spot lights are supported.\\\\\\\",t);const n=this.writer,i=n.json,s=n.extensionsUsed,r={};t.name&&(r.name=t.name),r.color=t.color.toArray(),r.intensity=t.intensity,t.isDirectionalLight?r.type=\\\\\\\"directional\\\\\\\":t.isPointLight?(r.type=\\\\\\\"point\\\\\\\",t.distance>0&&(r.range=t.distance)):t.isSpotLight&&(r.type=\\\\\\\"spot\\\\\\\",t.distance>0&&(r.range=t.distance),r.spot={},r.spot.innerConeAngle=(t.penumbra-1)*t.angle*-1,r.spot.outerConeAngle=t.angle),void 0!==t.decay&&2!==t.decay&&console.warn(\\\\\\\"THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2.\\\\\\\"),!t.target||t.target.parent===t&&0===t.target.position.x&&0===t.target.position.y&&-1===t.target.position.z||console.warn(\\\\\\\"THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1.\\\\\\\"),s[this.name]||(i.extensions=i.extensions||{},i.extensions[this.name]={lights:[]},s[this.name]=!0);const o=i.extensions[this.name].lights;o.push(r),e.extensions=e.extensions||{},e.extensions[this.name]={light:o.length-1}}}class iQ{constructor(t){this.writer=t,this.name=\\\\\\\"KHR_materials_unlit\\\\\\\"}writeMaterial(t,e){if(!t.isMeshBasicMaterial)return;const n=this.writer.extensionsUsed;e.extensions=e.extensions||{},e.extensions[this.name]={},n[this.name]=!0,e.pbrMetallicRoughness.metallicFactor=0,e.pbrMetallicRoughness.roughnessFactor=.9}}class sQ{constructor(t){this.writer=t,this.name=\\\\\\\"KHR_materials_pbrSpecularGlossiness\\\\\\\"}writeMaterial(t,e){if(!t.isGLTFSpecularGlossinessMaterial)return;const n=this.writer,i=n.extensionsUsed,s={};e.pbrMetallicRoughness.baseColorFactor&&(s.diffuseFactor=e.pbrMetallicRoughness.baseColorFactor);const r=[1,1,1];if(t.specular.toArray(r,0),s.specularFactor=r,s.glossinessFactor=t.glossiness,e.pbrMetallicRoughness.baseColorTexture&&(s.diffuseTexture=e.pbrMetallicRoughness.baseColorTexture),t.specularMap){const e={index:n.processTexture(t.specularMap)};n.applyTextureTransform(e,t.specularMap),s.specularGlossinessTexture=e}e.extensions=e.extensions||{},e.extensions[this.name]=s,i[this.name]=!0}}class rQ{constructor(t){this.writer=t,this.name=\\\\\\\"KHR_materials_transmission\\\\\\\"}writeMaterial(t,e){if(!t.isMeshPhysicalMaterial||0===t.transmission)return;const n=this.writer,i=n.extensionsUsed,s={};if(s.transmissionFactor=t.transmission,t.transmissionMap){const e={index:n.processTexture(t.transmissionMap)};n.applyTextureTransform(e,t.transmissionMap),s.transmissionTexture=e}e.extensions=e.extensions||{},e.extensions[this.name]=s,i[this.name]=!0}}class oQ{constructor(t){this.writer=t,this.name=\\\\\\\"KHR_materials_volume\\\\\\\"}writeMaterial(t,e){if(!t.isMeshPhysicalMaterial||0===t.thickness)return;const n=this.writer,i=n.extensionsUsed,s={};if(s.thicknessFactor=t.thickness,t.thicknessMap){const e={index:n.processTexture(t.thicknessMap)};n.applyTextureTransform(e,t.thicknessMap),s.thicknessTexture=e}s.attenuationDistance=t.attenuationDistance,s.attenuationColor=t.attenuationTint.toArray(),e.extensions=e.extensions||{},e.extensions[this.name]=s,i[this.name]=!0}}function aQ(t,e){const n=document.createElement(\\\\\\\"a\\\\\\\");n.style.display=\\\\\\\"none\\\\\\\",document.body.appendChild(n),n.href=URL.createObjectURL(t),n.download=e,n.click(),setTimeout((()=>{document.body.removeChild(n)}),10)}CK.Utils={insertKeyframe:function(t,e){const n=.001,i=t.getValueSize(),s=new t.TimeBufferType(t.times.length+1),r=new t.ValueBufferType(t.values.length+i),o=t.createInterpolant(new t.ValueBufferType(i));let a;if(0===t.times.length){s[0]=e;for(let t=0;t<i;t++)r[t]=0;a=0}else if(e<t.times[0]){if(Math.abs(t.times[0]-e)<n)return 0;s[0]=e,s.set(t.times,1),r.set(o.evaluate(e),0),r.set(t.values,i),a=0}else if(e>t.times[t.times.length-1]){if(Math.abs(t.times[t.times.length-1]-e)<n)return t.times.length-1;s[s.length-1]=e,s.set(t.times,0),r.set(t.values,0),r.set(o.evaluate(e),t.values.length),a=s.length-1}else for(let l=0;l<t.times.length;l++){if(Math.abs(t.times[l]-e)<n)return l;if(t.times[l]<e&&t.times[l+1]>e){s.set(t.times.slice(0,l+1),0),s[l+1]=e,s.set(t.times.slice(l+1),l+2),r.set(t.values.slice(0,(l+1)*i),0),r.set(o.evaluate(e),(l+1)*i),r.set(t.values.slice((l+1)*i),(l+2)*i),a=l+1;break}}return t.times=s,t.values=r,a},mergeMorphTargetTracks:function(t,e){const n=[],i={},s=t.tracks;for(let t=0;t<s.length;++t){let r=s[t];const o=ZN.parseTrackName(r.name),a=ZN.findNode(e,o.nodeName);if(\\\\\\\"morphTargetInfluences\\\\\\\"!==o.propertyName||void 0===o.propertyIndex){n.push(r);continue}if(r.createInterpolant!==r.InterpolantFactoryMethodDiscrete&&r.createInterpolant!==r.InterpolantFactoryMethodLinear){if(r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline)throw new Error(\\\\\\\"THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.\\\\\\\");console.warn(\\\\\\\"THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead.\\\\\\\"),r=r.clone(),r.setInterpolation(Ux)}const l=a.morphTargetInfluences.length,c=a.morphTargetDictionary[o.propertyIndex];if(void 0===c)throw new Error(\\\\\\\"THREE.GLTFExporter: Morph target name not found: \\\\\\\"+o.propertyIndex);let h;if(void 0===i[a.uuid]){h=r.clone();const t=new h.ValueBufferType(l*h.times.length);for(let e=0;e<h.times.length;e++)t[e*l+c]=h.values[e];h.name=(o.nodeName||\\\\\\\"\\\\\\\")+\\\\\\\".morphTargetInfluences\\\\\\\",h.values=t,i[a.uuid]=h,n.push(h);continue}const u=r.createInterpolant(new r.ValueBufferType(1));h=i[a.uuid];for(let t=0;t<h.times.length;t++)h.values[t*l+c]=u.evaluate(h.times[t]);for(let t=0;t<r.times.length;t++){const e=this.insertKeyframe(h,r.times[t]);h.values[e*l+c]=r.values[t]}}return t.tracks=n,t}};const lQ=new class extends ua{constructor(){super(...arguments),this.export=ha.BUTTON(null,{callback:t=>{cQ.PARAM_CALLBACK_export(t)}})}};class cQ extends uV{constructor(){super(...arguments),this.paramsConfig=lQ}static type(){return\\\\\\\"exporter\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}async cook(t){this.setCoreGroup(t[0])}static PARAM_CALLBACK_export(t){t._paramCallbackExport()}async _paramCallbackExport(){const t=(await this.compute()).coreContent();if(!t)return void console.error(\\\\\\\"input invalid\\\\\\\");const e=new WeakMap,n=t.objects();for(let t of n)e.set(t,t.parent);const i=new vs;for(let t of n)i.add(t);(new CK).parse(i,(t=>{if(t instanceof ArrayBuffer)i=\\\\\\\"scene.glb\\\\\\\",aQ(new Blob([t],{type:\\\\\\\"application/octet-stream\\\\\\\"}),i);else{!function(t,e){aQ(new Blob([t],{type:\\\\\\\"text/plain\\\\\\\"}),e)}(JSON.stringify(t,null,2),\\\\\\\"scene.gltf\\\\\\\")}var i;for(let t of n){const n=e.get(t);n&&n.add(t)}}),{embedImages:!0})}}const hQ=new class extends ua{constructor(){super(...arguments),this.makeFacesUnique=ha.BOOLEAN(0),this.addFaceCenterAttribute=ha.BOOLEAN(0,{visibleIf:{makeFacesUnique:1}}),this.addFaceId=ha.BOOLEAN(0,{visibleIf:{makeFacesUnique:1}}),this.transform=ha.BOOLEAN(0,{visibleIf:{makeFacesUnique:1}}),this.scale=ha.FLOAT(1,{visibleIf:{makeFacesUnique:1,transform:1}})}};class uQ extends uV{constructor(){super(...arguments),this.paramsConfig=hQ}static type(){return\\\\\\\"face\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}cook(t){const e=t[0];this.pv.makeFacesUnique&&(this._makeFacesUnique(e),this.pv.addFaceCenterAttribute&&this._addFaceCenterAttribute(e),this.pv.addFaceId&&this._addFaceId(e),this.pv.transform&&this._transform_faces(e)),this.setCoreGroup(e)}_makeFacesUnique(t){var e;for(let n of t.objects())if(n.isMesh){const t=n.geometry,i=f.chunk((null===(e=t.index)||void 0===e?void 0:e.array)||[],3),s=3*i.length;for(let e of Object.keys(t.attributes)){const n=t.attributes[e],r=n.itemSize,o=new Float32Array(s*r);let a=0;i.forEach((t=>{t.forEach((t=>{for(let e=0;e<r;e++){const i=n.array[t*r+e];o[a]=i,a+=1}}))})),t.setAttribute(e,new C.a(o,r))}const r=f.range(s);t.setIndex(r)}}_addFaceCenterAttribute(t){const e=\\\\\\\"face_center\\\\\\\",n=new p.a;let i,s,r,o;t.coreObjects().forEach((t=>{const a=t.object(),l=t.coreGeometry();if(a.isMesh&&l){i=l.faces(),l.hasAttrib(e)||l.addNumericAttrib(e,3,-1);for(let t=0;t<i.length;t++){s=i[t],s.center(n),r=s.points();for(let t=0;t<r.length;t++)o=r[t],o.setAttribValue(e,n)}}}))}_addFaceId(t){const e=\\\\\\\"face_id\\\\\\\";t.coreObjects().forEach((t=>{const n=t.object(),i=t.coreGeometry();if(n.isMesh&&i){const t=i.faces();i.hasAttrib(e)||i.addNumericAttrib(e,1,-1);for(let n=0;n<t.length;n++){const i=t[n].points();for(let t=0;t<i.length;t++){i[t].setAttribValue(e,n)}}}}))}_transform_faces(t){const e=\\\\\\\"position\\\\\\\",n=new p.a,i=new p.a,s=this.pv.scale;let r,o,a,l;t.coreObjects().forEach((t=>{const c=t.object(),h=t.coreGeometry();if(c.isMesh&&h){r=h.faces(),h.hasAttrib(e)||h.addNumericAttrib(e,3,-1);for(let t=0;t<r.length;t++){o=r[t],o.center(n),a=o.points();for(let t=0;t<a.length;t++){l=a[t];const r=l.position();i.x=r.x*s+n.x*(1-s),i.y=r.y*s+n.y*(1-s),i.z=r.z*s+n.z*(1-s),l.setAttribValue(e,i)}}}}))}}var dQ;!function(t){t.AUTO=\\\\\\\"auto\\\\\\\",t.DRC=\\\\\\\"drc\\\\\\\",t.FBX=\\\\\\\"fbx\\\\\\\",t.JSON=\\\\\\\"json\\\\\\\",t.GLTF=\\\\\\\"gltf\\\\\\\",t.GLTF_WITH_DRACO=\\\\\\\"gltf_with_draco\\\\\\\",t.OBJ=\\\\\\\"obj\\\\\\\",t.PDB=\\\\\\\"pdb\\\\\\\",t.PLY=\\\\\\\"ply\\\\\\\",t.STL=\\\\\\\"stl\\\\\\\"}(dQ||(dQ={}));const pQ=[dQ.AUTO,dQ.DRC,dQ.FBX,dQ.JSON,dQ.GLTF,dQ.GLTF_WITH_DRACO,dQ.OBJ,dQ.PDB,dQ.PLY,dQ.STL];var _Q;!function(t){t.DRC=\\\\\\\"drc\\\\\\\",t.FBX=\\\\\\\"fbx\\\\\\\",t.GLTF=\\\\\\\"gltf\\\\\\\",t.GLB=\\\\\\\"glb\\\\\\\",t.OBJ=\\\\\\\"obj\\\\\\\",t.PDB=\\\\\\\"pdb\\\\\\\",t.PLY=\\\\\\\"ply\\\\\\\",t.STL=\\\\\\\"stl\\\\\\\"}(_Q||(_Q={}));_Q.DRC,_Q.FBX,_Q.GLTF,_Q.GLB,_Q.OBJ,_Q.PDB,_Q.PLY,_Q.STL;class mQ extends $g{constructor(t,e,n){super(t.url,e,n),this._options=t,this._scene=e,this._node=n}load(t,e){this._load().then((e=>{t(e)})).catch((t=>{e(t)}))}_load(){return new Promise((async(t,e)=>{const n=await this._urlToLoad(),i=this.extension();if(i==dQ.JSON&&this._options.format==dQ.AUTO)mQ.increment_in_progress_loads_count(),await mQ.wait_for_max_concurrent_loads_queue_freed(),fetch(n).then((async e=>{const n=await e.json();new PJ(this.loadingManager).parse(n,(e=>{mQ.decrement_in_progress_loads_count(),t(this.on_load_success(e.children[0]))}))})).catch((t=>{mQ.decrement_in_progress_loads_count(),e(t)}));else{const s=await this._loaderForFormat();if(s)mQ.increment_in_progress_loads_count(),await mQ.wait_for_max_concurrent_loads_queue_freed(),s.load(n,(e=>{this.on_load_success(e).then((e=>{mQ.decrement_in_progress_loads_count(),t(e)}))}),void 0,(t=>{li.warn(\\\\\\\"error loading\\\\\\\",n,t),mQ.decrement_in_progress_loads_count(),e(t)}));else{e(`format not supported (${i})`)}}}))}async on_load_success(t){const e=this.extension();if(e==dQ.JSON)return[t];const n=t;if(n.isObject3D)switch(e){case _Q.PDB:return this.on_load_succes_pdb(t);case _Q.OBJ:default:return[n]}const i=t;if(i.isBufferGeometry)switch(e){case _Q.DRC:return this.on_load_succes_drc(i);default:return[new B.a(i)]}const s=t;if(null!=s.scene)switch(e){case _Q.GLTF:case _Q.GLB:return this.on_load_succes_gltf(s);default:return[n]}const r=t;if(r.geometryAtoms||r.geometryBonds)switch(e){case _Q.PDB:return this.on_load_succes_pdb(r);default:return[]}return[]}on_load_succes_drc(t){return[new B.a(t,mQ._default_mat_mesh)]}on_load_succes_gltf(t){const e=t.scene;return e.animations=t.animations,[e]}on_load_succes_pdb(t){return[new ys.a(t.geometryAtoms,mQ._default_mat_point),new Ms.a(t.geometryBonds,mQ._default_mat_line)]}static moduleNamesFromFormat(t,e){switch(t){case dQ.AUTO:return this.moduleNamesFromExt(e);case dQ.DRC:return[Hn.DRACOLoader];case dQ.FBX:return[Hn.FBXLoader];case dQ.JSON:return[];case dQ.GLTF:return[Hn.GLTFLoader];case dQ.GLTF_WITH_DRACO:return[Hn.GLTFLoader,Hn.DRACOLoader];case dQ.OBJ:return[Hn.OBJLoader];case dQ.PDB:return[Hn.PDBLoader];case dQ.PLY:return[Hn.PLYLoader];case dQ.STL:return[Hn.STLLoader]}os.unreachable(t)}static moduleNamesFromExt(t){switch(t){case _Q.DRC:return[Hn.DRACOLoader];case _Q.FBX:return[Hn.FBXLoader];case _Q.GLTF:return[Hn.GLTFLoader];case _Q.GLB:return[Hn.GLTFLoader,Hn.DRACOLoader];case _Q.OBJ:return[Hn.OBJLoader];case _Q.PDB:return[Hn.PDBLoader];case _Q.PLY:return[Hn.PLYLoader];case _Q.STL:return[Hn.STLLoader]}}async _loaderForFormat(){const t=this._options.format;switch(t){case dQ.AUTO:return this._loaderForExt();case dQ.DRC:return this.loader_for_drc(this._node);case dQ.FBX:return this.loader_for_fbx();case dQ.JSON:return;case dQ.GLTF:return this.loader_for_gltf();case dQ.GLTF_WITH_DRACO:return this.loader_for_glb(this._node);case dQ.OBJ:return this.loader_for_obj();case dQ.PDB:return this.loader_for_pdb();case dQ.PLY:return this.loader_for_ply();case dQ.STL:return this.loader_for_stl()}os.unreachable(t)}async _loaderForExt(){switch(this.extension().toLowerCase()){case _Q.DRC:return this.loader_for_drc(this._node);case _Q.FBX:return this.loader_for_fbx();case _Q.GLTF:return this.loader_for_gltf();case _Q.GLB:return this.loader_for_glb(this._node);case _Q.OBJ:return this.loader_for_obj();case _Q.PDB:return this.loader_for_pdb();case _Q.PLY:return this.loader_for_ply();case _Q.STL:return this.loader_for_stl()}}loader_for_fbx(){const t=li.modulesRegister.module(Hn.FBXLoader);if(t)return new t(this.loadingManager)}loader_for_gltf(){const t=li.modulesRegister.module(Hn.GLTFLoader);if(t)return new t(this.loadingManager)}static async loader_for_drc(t){const e=li.modulesRegister.module(Hn.DRACOLoader);if(e){const n=new e(this.loadingManager),i=li.libs.root(),s=li.libs.DRACOPath();if(i||s){const e=`${i||\\\\\\\"\\\\\\\"}${s||\\\\\\\"\\\\\\\"}/`;if(t){const n=[\\\\\\\"draco_decoder.js\\\\\\\",\\\\\\\"draco_decoder.wasm\\\\\\\",\\\\\\\"draco_wasm_wrapper.js\\\\\\\"];await this._loadMultipleBlobGlobal({files:n.map((t=>({storedUrl:`${s}/${t}`,fullUrl:`${e}${t}`}))),node:t,error:\\\\\\\"failed to load draco libraries. Make sure to install them to load .glb files\\\\\\\"})}n.setDecoderPath(e)}else n.setDecoderPath(void 0);return n.setDecoderConfig({type:\\\\\\\"js\\\\\\\"}),n}}loader_for_drc(t){return mQ.loader_for_drc(t)}static async loader_for_glb(t){const e=li.modulesRegister.module(Hn.GLTFLoader),n=li.modulesRegister.module(Hn.DRACOLoader);if(e&&n){this.gltf_loader=this.gltf_loader||new e(this.loadingManager),this.draco_loader=this.draco_loader||new n(this.loadingManager);const i=li.libs.root(),s=li.libs.DRACOGLTFPath();if(i||s){const e=`${i||\\\\\\\"\\\\\\\"}${s||\\\\\\\"\\\\\\\"}/`;if(t){const n=[\\\\\\\"draco_decoder.js\\\\\\\",\\\\\\\"draco_decoder.wasm\\\\\\\",\\\\\\\"draco_wasm_wrapper.js\\\\\\\"];await this._loadMultipleBlobGlobal({files:n.map((t=>({storedUrl:`${s}/${t}`,fullUrl:`${e}${t}`}))),node:t,error:\\\\\\\"failed to load draco libraries. Make sure to install them to load .glb files\\\\\\\"})}this.draco_loader.setDecoderPath(e)}else this.draco_loader.setDecoderPath(void 0);return this.gltf_loader.setDRACOLoader(this.draco_loader),this.gltf_loader}}loader_for_glb(t){return mQ.loader_for_glb(t)}loader_for_obj(){const t=li.modulesRegister.module(Hn.OBJLoader);if(t)return new t(this.loadingManager)}loader_for_pdb(){const t=li.modulesRegister.module(Hn.PDBLoader);if(t)return new t(this.loadingManager)}loader_for_ply(){const t=li.modulesRegister.module(Hn.PLYLoader);if(t)return new t(this.loadingManager)}loader_for_stl(){const t=li.modulesRegister.module(Hn.STLLoader);if(t)return new t(this.loadingManager)}static setMaxConcurrentLoadsCount(t){this._maxConcurrentLoadsCountMethod=t}static _init_max_concurrent_loads_count(){return this._maxConcurrentLoadsCountMethod?this._maxConcurrentLoadsCountMethod():ng.isChrome()?4:1}static _init_concurrent_loads_delay(){return ng.isChrome()?1:10}static increment_in_progress_loads_count(){this.in_progress_loads_count++}static decrement_in_progress_loads_count(){this.in_progress_loads_count--;const t=this._queue.pop();if(t){const e=this.CONCURRENT_LOADS_DELAY;setTimeout((()=>{t()}),e)}}static async wait_for_max_concurrent_loads_queue_freed(){return this.in_progress_loads_count<=this.MAX_CONCURRENT_LOADS_COUNT?void 0:new Promise((t=>{this._queue.push(t)}))}}mQ._default_mat_mesh=new Ts.a,mQ._default_mat_point=new bs.a,mQ._default_mat_line=new As.a,mQ.MAX_CONCURRENT_LOADS_COUNT=mQ._init_max_concurrent_loads_count(),mQ.CONCURRENT_LOADS_DELAY=mQ._init_concurrent_loads_delay(),mQ.in_progress_loads_count=0,mQ._queue=[];class fQ extends aV{static type(){return\\\\\\\"file\\\\\\\"}static loader(t,e,n){return new mQ({url:t.url,format:t.format},e,n)}cook(t,e){const n=fQ.loader(e,this.scene(),this._node);return new Promise((t=>{n.load((e=>{const n=this._onLoad(e);t(this.createCoreGroupFromObjects(n))}),(t=>{this._onError(t,e)}))}))}clearLoadedBlob(t){fQ.loader(t,this.scene(),this._node).deregisterUrl()}_onLoad(t){t=t.flat();for(let e of t)e.traverse((t=>{this._ensureGeometryHasIndex(t),t.matrixAutoUpdate=!1}));return t}_onError(t,e){var n;null===(n=this.states)||void 0===n||n.error.set(`could not load geometry from ${e.url} (${t})`)}_ensureGeometryHasIndex(t){const e=t.geometry;e&&this.createIndexIfNone(e)}}fQ.DEFAULT_PARAMS={url:`${qg}/models/wolf.obj`,format:dQ.AUTO};const gQ=fQ.DEFAULT_PARAMS;const vQ=new class extends ua{constructor(){super(...arguments),this.url=ha.STRING(gQ.url,{fileBrowse:{type:[Rr.GEOMETRY]}}),this.format=ha.STRING(gQ.format,{menuString:{entries:pQ.map((t=>({name:t,value:t})))}}),this.reload=ha.BUTTON(null,{callback:t=>{yQ.PARAM_CALLBACK_reload(t)}})}};class yQ extends uV{constructor(){super(...arguments),this.paramsConfig=vQ}static type(){return\\\\\\\"file\\\\\\\"}async requiredModules(){for(let t of[this.p.url,this.p.format])t.isDirty()&&await t.compute();const t=$g.extension(this.pv.url||\\\\\\\"\\\\\\\"),e=this.pv.format;return mQ.moduleNamesFromFormat(e,t)}initializeNode(){this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.url],(()=>{const t=this.p.url.rawInput();if(t){const e=t.split(\\\\\\\"/\\\\\\\");return e[e.length-1]}return\\\\\\\"\\\\\\\"}))}))}))}operation(){return this._operation=this._operation||new fQ(this.scene(),this.states,this)}async cook(t){const e=await this.operation().cook(t,this.pv);this.setCoreGroup(e)}static PARAM_CALLBACK_reload(t){t._paramCallbackReload()}_paramCallbackReload(){this.operation().clearLoadedBlob(this.pv),this.p.url.setDirty()}}const xQ=new class extends ua{constructor(){super(...arguments),this.url=ha.STRING(`${qg}/models/\\\\`@name\\\\`.obj`,{fileBrowse:{type:[Rr.GEOMETRY]},expression:{forEntities:!0}}),this.format=ha.STRING(dQ.AUTO,{menuString:{entries:pQ.map((t=>({name:t,value:t})))}}),this.reload=ha.BUTTON(null,{callback:t=>{bQ.PARAM_CALLBACK_reload(t)}})}};class bQ extends uV{constructor(){super(...arguments),this.paramsConfig=xQ,this._instancer=new LZ,this._instanceMatrix=new A.a}static type(){return\\\\\\\"fileMulti\\\\\\\"}async requiredModules(){const t=$g.extension(this.p.url.rawInput()||\\\\\\\"\\\\\\\"),e=this.pv.format;return mQ.moduleNamesFromFormat(e,t)}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.url],(()=>this.p.url.rawInput()))}))}))}async cook(t){const e=t[0],n=e.points(),i=[],s=new Map,r=new Map,o=new Map,a=this.p.url;if(a.hasExpression()&&a.expressionController){const t=new Set;await a.expressionController.computeExpressionForPoints(n,((e,n)=>{const i=e.index();s.has(i)?this.states.error.set(\\\\\\\"input points have duplicate indices. Make sure to merge inputs together.\\\\\\\"):(s.set(i,n),t.add(n),bQ._incrementUrlUsageCount(n,o))})),t.forEach((t=>{i.push(t)}))}else{const t=this.pv.url;i.push(t),bQ._incrementUrlUsageCount(t,o)}const l=[],c=i.map((t=>this._loadFromUrlPromises(t,r)));await Promise.all(c),this._instancer.setCoreGroup(e);for(let t of n){const e=t.index(),n=s.get(e)||this.pv.url;this._instancer.matrixFromPoint(t,this._instanceMatrix);const i=o.get(n)||1;let a=r.get(n);a&&(i>1&&(a=a.clone()),a.applyMatrix4(this._instanceMatrix),l.push(a))}this.setObjects(l)}static _incrementUrlUsageCount(t,e){const n=e.get(t);null!=n?e.set(t,n+1):e.set(t,1)}async _loadFromUrlPromises(t,e){const n=await this._loadObject(t),i=new Fn.a;i.matrixAutoUpdate=!1,i.name=t;for(let t of n)i.add(t);e.set(t,i)}_loadObject(t){const e=new mQ({url:t,format:this.pv.format},this.scene(),this);return new Promise((n=>{e.load((t=>{const e=this._onLoad(t);n(e)}),(e=>{this._onError(e,t)}))}))}_onLoad(t){t=t.flat();for(let e of t)e.traverse((t=>{this._ensureGeometryHasIndex(t),t.matrixAutoUpdate=!1}));return t}_onError(t,e){var n;null===(n=this.states)||void 0===n||n.error.set(`could not load geometry from ${e} (${t})`)}_ensureGeometryHasIndex(t){const e=t.geometry;e&&pr.createIndexIfNone(e)}static PARAM_CALLBACK_reload(t){t._paramCallbackReload()}_paramCallbackReload(){this.p.url.setDirty()}}const wQ=new class extends ua{constructor(){super(...arguments),this.dist=ha.FLOAT(.1,{range:[0,1],rangeLocked:[!0,!1]})}};class TQ extends uV{constructor(){super(...arguments),this.paramsConfig=wQ}static type(){return\\\\\\\"fuse\\\\\\\"}static displayedInputNames(){return[\\\\\\\"points to fuse together\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}cook(t){const e=t[0],n=[];let i;for(let t of e.coreObjects())i=this._fuse_core_object(t),i&&n.push(i);this.setObjects(n)}_fuse_core_object(t){const e=t.object();if(!e)return;const n=t.points(),i=this.pv.dist,s={};for(let t of n){const e=t.position(),n=new p.a(Math.round(e.x/i),Math.round(e.y/i),Math.round(e.z/i)).toArray().join(\\\\\\\"-\\\\\\\");s[n]=s[n]||[],s[n].push(t)}const r=[];if(Object.keys(s).forEach((t=>{r.push(s[t][0])})),e.geometry.dispose(),r.length>0){const t=fr.geometryFromPoints(r,Os(e.constructor));return t&&(e.geometry=t),e}}}class AQ{constructor(t,e,n){this._param_size=t,this._param_hexagon_radius=e,this._param_points_only=n}process(){const t=this._param_hexagon_radius,e=.5*t,n=t,i=Math.cos(Math.PI/6)*this._param_hexagon_radius,s=Math.floor(this._param_size.x/n),r=Math.floor(this._param_size.y/i);let o=[],a=[];for(let t=0;t<r;t++)for(let r=0;r<s;r++)o.push([-.5*this._param_size.x+r*n+(t%2==0?e:0),0,-.5*this._param_size.y+t*i]),this._param_points_only||t>=1&&(0==r||r==s-1?0==r?a.push([r+1+(t-1)*s,r+(t-1)*s,r+t*s]):a.push([r+t*s,r+(t-1)*s,r-1+t*s]):(a.push([r+t*s,r+(t-1)*s,r-1+t*s]),a.push([r+t*s,r+1+(t-1)*s,r+(t-1)*s])));const l=new S.a;return l.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(o.flat()),3)),this._param_points_only||(l.setIndex(a.flat()),l.computeVertexNormals()),l}}const MQ=new p.a(0,1,0);const EQ=new class extends ua{constructor(){super(...arguments),this.size=ha.VECTOR2([1,1]),this.hexagonRadius=ha.FLOAT(.1,{range:[.001,1],rangeLocked:[!1,!1]}),this.direction=ha.VECTOR3([0,1,0]),this.pointsOnly=ha.BOOLEAN(0)}};class SQ extends uV{constructor(){super(...arguments),this.paramsConfig=EQ,this._coreTransform=new bU}static type(){return\\\\\\\"hexagons\\\\\\\"}cook(){if(this.pv.hexagonRadius>0){const t=new AQ(this.pv.size,this.pv.hexagonRadius,this.pv.pointsOnly).process();this._coreTransform.rotateGeometry(t,MQ,this.pv.direction),this.pv.pointsOnly?this.setGeometry(t,Ns.POINTS):this.setGeometry(t)}else this.setObjects([])}}var CQ;!function(t){t.ADD_PARENT=\\\\\\\"add_parent\\\\\\\",t.REMOVE_PARENT=\\\\\\\"remove_parent\\\\\\\",t.ADD_CHILD=\\\\\\\"add_child\\\\\\\"}(CQ||(CQ={}));const NQ=[CQ.ADD_PARENT,CQ.REMOVE_PARENT,CQ.ADD_CHILD];class LQ extends aV{static type(){return\\\\\\\"hierarchy\\\\\\\"}cook(t,e){const n=t[0],i=NQ[e.mode];switch(i){case CQ.ADD_PARENT:{const t=this._add_parent_to_core_group(n,e);return this.createCoreGroupFromObjects(t)}case CQ.REMOVE_PARENT:{const t=this._remove_parent_from_core_group(n,e);return this.createCoreGroupFromObjects(t)}case CQ.ADD_CHILD:{const i=this._add_child_to_core_group(n,t[1],e);return this.createCoreGroupFromObjects(i)}}os.unreachable(i)}_add_parent_to_core_group(t,e){if(0==e.levels)return t.objects();return[this._add_parent_to_object(t.objects(),e)]}_add_parent_to_object(t,e){let n=new Fn.a;if(n.matrixAutoUpdate=!1,n.add(...t),e.levels>0)for(let t=0;t<e.levels-1;t++)n=this._add_new_parent(n,e);return n}_add_new_parent(t,e){const n=new Fn.a;return n.matrixAutoUpdate=!1,n.add(t),n}_remove_parent_from_core_group(t,e){if(0==e.levels)return t.objects();{const n=[];for(let i of t.objects()){const t=this._remove_parent_from_object(i,e);for(let e of t)n.push(e)}return n}}_remove_parent_from_object(t,e){let n=t.children;for(let t=0;t<e.levels-1;t++)n=this._get_children_from_objects(n,e);return n}_get_children_from_objects(t,e){let n;const i=[];for(;n=t.pop();)if(n.children)for(let t of n.children)i.push(t);return i}_add_child_to_core_group(t,e,n){var i,s;const r=t.objects();if(!e)return null===(i=this.states)||void 0===i||i.error.set(\\\\\\\"input 1 is invalid\\\\\\\"),[];const o=e.objects(),a=n.objectMask.trim(),l=\\\\\\\"\\\\\\\"!=a?this._findObjectsByMaskFromObjects(a,r):r;n.debugObjectMask&&console.log(l);for(let t=0;t<l.length;t++){const e=l[t],n=o[t]||o[0];if(!n)return null===(s=this.states)||void 0===s||s.error.set(\\\\\\\"no objects found in input 1\\\\\\\"),[];e.add(n)}return r}_findObjectsByMaskFromObjects(t,e){const n=[];for(let i of e)this.scene().objectsController.objectsByMaskInObject(t,i,n);return n}}LQ.DEFAULT_PARAMS={mode:0,levels:1,objectMask:\\\\\\\"\\\\\\\",debugObjectMask:!1},LQ.INPUT_CLONED_STATE=Qi.FROM_NODE;const OQ=[CQ.ADD_PARENT,CQ.REMOVE_PARENT],PQ=LQ.DEFAULT_PARAMS;const RQ=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(PQ.mode,{menu:{entries:NQ.map(((t,e)=>({name:t,value:e})))}}),this.levels=ha.INTEGER(PQ.levels,{range:[0,5],visibleIf:[{mode:NQ.indexOf(CQ.ADD_PARENT)},{mode:NQ.indexOf(CQ.REMOVE_PARENT)}]}),this.objectMask=ha.STRING(\\\\\\\"\\\\\\\",{visibleIf:{mode:NQ.indexOf(CQ.ADD_CHILD)}}),this.debugObjectMask=ha.BOOLEAN(0,{visibleIf:{mode:NQ.indexOf(CQ.ADD_CHILD)}})}};class IQ extends uV{constructor(){super(...arguments),this.paramsConfig=RQ}static type(){return\\\\\\\"hierarchy\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to add or remove parents to/from\\\\\\\",\\\\\\\"objects to use as parent or children (optional)\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState(LQ.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.mode,this.p.levels,this.p.objectMask],(()=>{const t=NQ[this.pv.mode];return OQ.includes(t)?`${t} ${this.pv.levels}`:`${t} (with mask: ${this.pv.objectMask})`}))}))}))}cook(t){this._operation=this._operation||new LQ(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const FQ=new class extends ua{constructor(){super(...arguments),this.texture=ha.OPERATOR_PATH(vi.UV,{nodeSelection:{context:ts.COP}}),this.mult=ha.FLOAT(1)}};class DQ extends uV{constructor(){super(...arguments),this.paramsConfig=FQ}static type(){return\\\\\\\"heightMap\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}async cook(t){const e=t[0],n=this.p.texture.found_node();if(n){if(n.context()==ts.COP){const t=n,i=(await t.compute()).texture();for(let t of e.coreObjects())this._set_position_from_data_texture(t,i)}else this.states.error.set(\\\\\\\"found node is not a texture\\\\\\\")}e.computeVertexNormals(),this.setCoreGroup(e)}_set_position_from_data_texture(t,e){var n;const i=this._data_from_texture(e);if(!i)return;const{data:s,resx:r,resy:o}=i,a=s.length/(r*o),l=null===(n=t.coreGeometry())||void 0===n?void 0:n.geometry();if(!l)return;const c=l.getAttribute(\\\\\\\"position\\\\\\\").array,h=l.getAttribute(\\\\\\\"uv\\\\\\\"),u=l.getAttribute(\\\\\\\"normal\\\\\\\");if(null==h)return void this.states.error.set(\\\\\\\"uvs are required\\\\\\\");if(null==u)return void this.states.error.set(\\\\\\\"normals are required\\\\\\\");const d=h.array,p=u.array,_=c.length/3;let m,f,g,v,y,x,b,w=0;for(let t=0;t<_;t++)m=2*t,f=d[m],g=d[m+1],v=Math.floor((r-1)*f),y=Math.floor((o-1)*(1-g)),x=y*r+v,b=s[a*x],w=3*t,c[w+0]+=p[w+0]*b*this.pv.mult,c[w+1]+=p[w+1]*b*this.pv.mult,c[w+2]+=p[w+2]*b*this.pv.mult}_data_from_texture(t){if(t.image)return t.image.data?this._data_from_data_texture(t):this._data_from_default_texture(t)}_data_from_default_texture(t){const e=t.image.width,n=t.image.height;return{data:Bf.data_from_image(t.image).data,resx:e,resy:n}}_data_from_data_texture(t){return{data:t.image.data,resx:t.image.width,resy:t.image.height}}}function BQ(t){return Math.atan2(-t.y,Math.sqrt(t.x*t.x+t.z*t.z))}class zQ extends S.a{constructor(t,e,n,i,s){super(),this.type=\\\\\\\"PolyhedronBufferGeometry\\\\\\\",this.parameters={vertices:t,indices:e,radius:n,detail:i},n=n||1,i=i||0;const r=[],o=[],a=new Map;function l(t,e,n,i){const s=i+1,r=[];for(let i=0;i<=s;i++){r[i]=[];const o=t.clone().lerp(n,i/s),a=e.clone().lerp(n,i/s),l=s-i;for(let t=0;t<=l;t++)r[i][t]=0===t&&i===s?o:o.clone().lerp(a,t/l)}for(let t=0;t<s;t++)for(let e=0;e<2*(s-t)-1;e++){const n=Math.floor(e/2);e%2==0?(c(r[t][n+1]),c(r[t+1][n]),c(r[t][n])):(c(r[t][n+1]),c(r[t+1][n+1]),c(r[t+1][n]))}}function c(t){if(s){let e=a.get(t.x);if(e){const n=e.get(t.y);if(n&&n.has(t.z))return}e||(e=new Map,a.set(t.x,e));let n=e.get(t.y);n||(n=new Set,e.set(t.y,n)),n.add(t.z)}r.push(t.x,t.y,t.z)}function h(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}!function(t){const n=new p.a,i=new p.a,s=new p.a;for(let r=0;r<e.length;r+=3)h(e[r+0],n),h(e[r+1],i),h(e[r+2],s),l(n,i,s,t)}(i),function(t){const e=new p.a;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z}(n),function(){const t=new p.a;for(let n=0;n<r.length;n+=3){t.x=r[n+0],t.y=r[n+1],t.z=r[n+2];const i=(e=t,Math.atan2(e.z,-e.x)/2/Math.PI+.5),s=BQ(t)/Math.PI+.5;o.push(i,1-s)}var e}(),this.setAttribute(\\\\\\\"position\\\\\\\",new C.c(r,3)),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.c(o,2)),s||(this.setAttribute(\\\\\\\"normal\\\\\\\",new C.c(r.slice(),3)),0===i?this.computeVertexNormals():this.normalizeNormals())}}class kQ extends zQ{constructor(t,e,n){const i=(1+Math.sqrt(5))/2;super([-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,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],t,e,n),this.type=\\\\\\\"IcosahedronBufferGeometry\\\\\\\",this.parameters={radius:t,detail:e}}}class UQ extends aV{static type(){return\\\\\\\"icosahedron\\\\\\\"}cook(t,e){const n=e.pointsOnly,i=new kQ(e.radius,e.detail,n);if(i.translate(e.center.x,e.center.y,e.center.z),n){const t=this.createObject(i,Ns.POINTS);return this.createCoreGroupFromObjects([t])}return i.computeVertexNormals(),this.createCoreGroupFromGeometry(i)}}UQ.DEFAULT_PARAMS={radius:1,detail:0,pointsOnly:!1,center:new p.a(0,0,0)};const GQ=UQ.DEFAULT_PARAMS;const VQ=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(GQ.radius),this.detail=ha.INTEGER(GQ.detail,{range:[0,10],rangeLocked:[!0,!1]}),this.pointsOnly=ha.BOOLEAN(GQ.pointsOnly),this.center=ha.VECTOR3(GQ.center)}};class HQ extends uV{constructor(){super(...arguments),this.paramsConfig=VQ}static type(){return\\\\\\\"icosahedron\\\\\\\"}cook(){this._operation=this._operation||new UQ(this._scene,this.states);const t=this._operation.cook([],this.pv);this.setCoreGroup(t)}}class jQ extends aV{static type(){return\\\\\\\"instance\\\\\\\"}async cook(t,e){const n=t[0];this._geometry=void 0;const i=n.objectsWithGeo()[0];if(i){const n=i.geometry;if(n){const i=t[1];this._create_instance(n,i,e)}}if(this._geometry){const t=(s=i)instanceof B.a?Ns.MESH:s instanceof Fn.a?Ns.GROUP:s instanceof Ms.a?Ns.LINE_SEGMENTS:s instanceof ys.a?Ns.POINTS:s instanceof Q.a?Ns.OBJECT3D:void li.warn(\\\\\\\"ObjectTypeByObject received an unknown object type\\\\\\\",s);if(t){const n=this.createObject(this._geometry,t);if(e.applyMaterial){const t=await this._get_material(e);t&&await this._applyMaterial(n,t)}return this.createCoreGroupFromObjects([n])}}var s;return this.createCoreGroupFromObjects([])}async _get_material(t){var e;if(t.applyMaterial){const n=t.material.nodeWithContext(ts.MAT,null===(e=this.states)||void 0===e?void 0:e.error);if(n){this._globals_handler=this._globals_handler||new Pf;const t=n.assemblerController;t&&t.set_assembler_globals_handler(this._globals_handler);return(await n.compute()).material()}}}async _applyMaterial(t,e){t.material=e,yr.applyCustomMaterials(t,e)}_create_instance(t,e,n){this._geometry=LZ.createInstanceBufferGeometry(t,e,n.attributesToCopy)}}jQ.DEFAULT_PARAMS={attributesToCopy:\\\\\\\"instance*\\\\\\\",applyMaterial:!0,material:new yi(\\\\\\\"\\\\\\\")},jQ.INPUT_CLONED_STATE=[Qi.ALWAYS,Qi.NEVER];const WQ=jQ.DEFAULT_PARAMS;const qQ=new class extends ua{constructor(){super(...arguments),this.attributesToCopy=ha.STRING(WQ.attributesToCopy),this.applyMaterial=ha.BOOLEAN(WQ.applyMaterial),this.material=ha.NODE_PATH(WQ.material.path(),{visibleIf:{applyMaterial:1},nodeSelection:{context:ts.MAT},dependentOnFoundNode:!1})}};class XQ extends uV{constructor(){super(...arguments),this.paramsConfig=qQ}static type(){return\\\\\\\"instance\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to be instanciated\\\\\\\",\\\\\\\"points to instance to\\\\\\\"]}initializeNode(){super.initializeNode(),this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState(jQ.INPUT_CLONED_STATE)}async cook(t){this._operation=this._operation||new jQ(this.scene(),this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var YQ;!function(t){t.GEO=\\\\\\\"geo\\\\\\\",t.POINTS=\\\\\\\"points\\\\\\\"}(YQ||(YQ={}));const $Q=[YQ.GEO,YQ.POINTS];class JQ extends aV{static type(){return\\\\\\\"instanceUpdate\\\\\\\"}async cook(t,e){return this._cookFromUpdateMode(t,e),t[0]}_cookFromUpdateMode(t,e){const n=$Q[e.mode];switch(n){case YQ.GEO:return this._cookForUpdateGeo(t,e);case YQ.POINTS:return this._cookForUpdatePoints(t,e)}os.unreachable(n)}_cookForUpdateGeo(t,e){const n=t[0],i=n.objects()[0].geometry,s=t[1].objectsWithGeo()[0],r=n.attribNamesMatchingMask(e.geoAttributes);for(let t of r){const e=i.getAttribute(t),n=s.geometry.getAttribute(t).array;e.array=n.slice(0,n.length-1),e.needsUpdate=!0}}_cookForUpdatePoints(t,e){const n=t[0],i=n.objects()[0].geometry,s=t[1],r=n.attribNamesMatchingMask(e.pointAttributes).map((t=>LZ.remapName(t)));let o=!1;for(let t of r)LZ.transformAttributeNames.includes(t)&&(o=!0);const a=s.points();if(o){LZ.updateTransformInstanceAttributes(a,s,i);for(let t of LZ.transformAttributeNames){const e=i.getAttribute(t);e&&(e.needsUpdate=!0)}}}}JQ.DEFAULT_PARAMS={mode:$Q.indexOf(YQ.GEO),geoAttributes:\\\\\\\"P N\\\\\\\",pointAttributes:\\\\\\\"P\\\\\\\"},JQ.INPUT_CLONED_STATE=[Qi.FROM_NODE,Qi.NEVER];const ZQ=JQ.DEFAULT_PARAMS;const KQ=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(ZQ.mode,{menu:{entries:$Q.map(((t,e)=>({value:e,name:t})))}}),this.geoAttributes=ha.STRING(ZQ.geoAttributes,{visibleIf:{mode:$Q.indexOf(YQ.GEO)}}),this.pointAttributes=ha.STRING(ZQ.pointAttributes,{visibleIf:{mode:$Q.indexOf(YQ.POINTS)}})}};class QQ extends uV{constructor(){super(...arguments),this.paramsConfig=KQ}static type(){return\\\\\\\"instanceUpdate\\\\\\\"}static displayedInputNames(){return[\\\\\\\"instance to update\\\\\\\",\\\\\\\"geometry to copy attributes from\\\\\\\"]}initializeNode(){super.initializeNode(),this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState(JQ.INPUT_CLONED_STATE)}setMode(t){this.p.mode.set($Q.indexOf(t))}async cook(t){this._operation=this._operation||new JQ(this.scene(),this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const t0=new class extends ua{constructor(){super(...arguments),this.useMax=ha.BOOLEAN(0),this.max=ha.INTEGER(1,{range:[0,100],rangeLocked:[!0,!1],visibleIf:{useMax:1}})}};class e0 extends uV{constructor(){super(...arguments),this.paramsConfig=t0}static type(){return\\\\\\\"instancesCount\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}async cook(t){const e=t[0],n=e.objectsWithGeo();for(let t of n){const e=t.geometry;e&&e instanceof lJ&&(this.pv.useMax?e.instanceCount=this.pv.max:e.instanceCount=1/0)}this.setCoreGroup(e)}}class n0 extends aV{static type(){return\\\\\\\"jitter\\\\\\\"}cook(t,e){const n=t[0],i=n.points();let s;for(let t=0;t<i.length;t++){s=i[t];const n=new p.a(2*(or.randFloat(75*t+764+e.seed)-.5),2*(or.randFloat(5678*t+3653+e.seed)-.5),2*(or.randFloat(657*t+48464+e.seed)-.5));n.normalize(),n.multiply(e.mult),n.multiplyScalar(e.amount*or.randFloat(78*t+54+e.seed));const r=s.position().clone().add(n);s.setPosition(r)}return n}}n0.DEFAULT_PARAMS={amount:1,mult:new p.a(1,1,1),seed:1},n0.INPUT_CLONED_STATE=Qi.FROM_NODE;const i0=n0.DEFAULT_PARAMS;const s0=new class extends ua{constructor(){super(...arguments),this.amount=ha.FLOAT(i0.amount),this.mult=ha.VECTOR3(i0.mult),this.seed=ha.INTEGER(i0.seed,{range:[0,100]})}};class r0 extends uV{constructor(){super(...arguments),this.paramsConfig=s0}static type(){return\\\\\\\"jitter\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to jitter points of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(n0.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new n0(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}new class extends ua{};const o0=new class extends ua{constructor(){super(...arguments),this.layer=ha.INTEGER(0,{range:[0,31],rangeLocked:[!0,!0]})}};class a0 extends uV{constructor(){super(...arguments),this.paramsConfig=o0}static type(){return\\\\\\\"layer\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to change layers of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.layer])}))}))}cook(t){const e=t[0];for(let t of e.objects())t.layers.set(this.pv.layer);this.setCoreGroup(e)}}const l0=new class extends ua{constructor(){super(...arguments),this.length=ha.FLOAT(1,{range:[0,10]}),this.pointsCount=ha.INTEGER(1,{range:[2,100],rangeLocked:[!0,!1]}),this.origin=ha.VECTOR3([0,0,0]),this.direction=ha.VECTOR3([0,1,0])}};class c0 extends uV{constructor(){super(...arguments),this.paramsConfig=l0}static type(){return\\\\\\\"line\\\\\\\"}initializeNode(){}cook(){const t=Math.max(2,this.pv.pointsCount),e=new Array(3*t),n=new Array(t),i=this.pv.direction.clone().normalize().multiplyScalar(this.pv.length);for(let s=0;s<t;s++){const r=s/(t-1),o=i.clone().multiplyScalar(r);o.add(this.pv.origin),o.toArray(e,3*s),s>0&&(n[2*(s-1)]=s-1,n[2*(s-1)+1]=s)}const s=new S.a;s.setAttribute(\\\\\\\"position\\\\\\\",new C.c(e,3)),s.setIndex(n),this.setGeometry(s,Ns.LINE_SEGMENTS)}}const h0=new class extends ua{constructor(){super(...arguments),this.distance0=ha.FLOAT(1),this.distance1=ha.FLOAT(2),this.autoUpdate=ha.BOOLEAN(1),this.update=ha.BUTTON(null,{callback:t=>{u0.PARAM_CALLBACK_update(t)}}),this.camera=ha.OPERATOR_PATH(\\\\\\\"/perspective_camera1\\\\\\\",{visibleIf:{autoUpdate:0},dependentOnFoundNode:!1})}};class u0 extends uV{constructor(){super(...arguments),this.paramsConfig=h0,this._lod=this._create_LOD()}static type(){return\\\\\\\"lod\\\\\\\"}static displayedInputNames(){return[\\\\\\\"high res\\\\\\\",\\\\\\\"mid res\\\\\\\",\\\\\\\"low res\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,3),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}_create_LOD(){const t=new Cs;return t.matrixAutoUpdate=!1,t}cook(t){this._clear_lod(),this._add_level(t[0],0),this._add_level(t[1],this.pv.distance0),this._add_level(t[2],this.pv.distance1),this._lod.autoUpdate=this.pv.autoUpdate,this.setObject(this._lod)}_add_level(t,e){if(t){const n=t.objects();let i;for(let t=0;t<n.length;t++)i=n[t],i.visible=!0,this._lod.addLevel(i,e),0==e&&0==t&&(this._lod.matrix.copy(i.matrix),bU.decomposeMatrix(this._lod)),i.matrix.identity(),bU.decomposeMatrix(i)}}_clear_lod(){let t;for(;t=this._lod.children[0];)this._lod.remove(t),t.matrix.multiply(this._lod.matrix),bU.decomposeMatrix(t);for(;this._lod.levels.pop(););}static PARAM_CALLBACK_update(t){t._update_lod()}async _update_lod(){if(this.p.autoUpdate)return;const t=this.p.camera;t.isDirty()&&await t.compute();let e=t.found_node_with_context_and_type(ts.OBJ,is.PERSPECTIVE)||t.found_node_with_context_and_type(ts.OBJ,is.ORTHOGRAPHIC);if(e){const t=e.object;this._lod.update(t)}else this.states.error.set(\\\\\\\"no camera node found\\\\\\\")}}class d0 extends aV{constructor(){super(...arguments),this._globals_handler=new Pf,this._old_mat_by_old_new_id=new Map,this._materials_by_uuid=new Map}static type(){return\\\\\\\"material\\\\\\\"}async cook(t,e){const n=t[0];return this._old_mat_by_old_new_id.clear(),await this._apply_materials(n,e),this._swap_textures(n,e),n}async _apply_materials(t,e){var n,i,s;if(!e.assignMat)return;const r=e.material.nodeWithContext(ts.MAT,null===(n=this.states)||void 0===n?void 0:n.error);if(r){const n=r.material,s=r.assemblerController;if(s&&s.set_assembler_globals_handler(this._globals_handler),await r.compute(),n){if(e.applyToChildren)for(let i of t.objects())i.traverse((t=>{this._apply_material(t,n,e)}));else for(let i of t.objectsFromGroup(e.group))this._apply_material(i,n,e);return t}null===(i=this.states)||void 0===i||i.error.set(`material invalid. (error: '${r.states.error.message()}')`)}else null===(s=this.states)||void 0===s||s.error.set(\\\\\\\"no material node found\\\\\\\")}_swap_textures(t,e){if(e.swapCurrentTex){this._materials_by_uuid.clear();for(let n of t.objectsFromGroup(e.group))if(e.applyToChildren)n.traverse((t=>{const e=n.material;this._materials_by_uuid.set(e.uuid,e)}));else{const t=n.material;this._materials_by_uuid.set(t.uuid,t)}this._materials_by_uuid.forEach(((t,n)=>{this._swap_texture(t,e)}))}}_apply_material(t,e,n){if(n.group&&!br.isInGroup(n.group,t))return;const i=n.cloneMat?yr.clone(e):e;if(e instanceof F&&i instanceof F)for(let t in e.uniforms)i.uniforms[t]=e.uniforms[t];const s=t;this._old_mat_by_old_new_id.set(i.uuid,s.material),s.material=i,yr.apply_render_hook(t,i),yr.applyCustomMaterials(t,i)}_swap_texture(t,e){if(\\\\\\\"\\\\\\\"==e.texSrc0||\\\\\\\"\\\\\\\"==e.texDest0)return;let n=this._old_mat_by_old_new_id.get(t.uuid);n=n||t;const i=n[e.texSrc0];if(i){t[e.texDest0]=i;const n=t.uniforms;if(n){n[e.texDest0]&&(n[e.texDest0]={value:i})}}}}d0.DEFAULT_PARAMS={group:\\\\\\\"\\\\\\\",assignMat:!0,material:new yi(\\\\\\\"\\\\\\\"),applyToChildren:!0,cloneMat:!1,shareUniforms:!0,swapCurrentTex:!1,texSrc0:\\\\\\\"emissiveMap\\\\\\\",texDest0:\\\\\\\"map\\\\\\\"},d0.INPUT_CLONED_STATE=Qi.FROM_NODE;const p0=d0.DEFAULT_PARAMS;const _0=new class extends ua{constructor(){super(...arguments),this.group=ha.STRING(p0.group),this.assignMat=ha.BOOLEAN(p0.assignMat),this.material=ha.NODE_PATH(p0.material.path(),{nodeSelection:{context:ts.MAT},dependentOnFoundNode:!1,visibleIf:{assignMat:1}}),this.applyToChildren=ha.BOOLEAN(p0.applyToChildren,{visibleIf:{assignMat:1}}),this.cloneMat=ha.BOOLEAN(p0.cloneMat,{visibleIf:{assignMat:1}}),this.shareUniforms=ha.BOOLEAN(p0.shareUniforms,{visibleIf:{assignMat:1,cloneMat:1}}),this.swapCurrentTex=ha.BOOLEAN(p0.swapCurrentTex),this.texSrc0=ha.STRING(p0.texSrc0,{visibleIf:{swapCurrentTex:1}}),this.texDest0=ha.STRING(p0.texDest0,{visibleIf:{swapCurrentTex:1}})}};class m0 extends uV{constructor(){super(...arguments),this.paramsConfig=_0}static type(){return\\\\\\\"material\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to assign material to\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(d0.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.material],(()=>this.p.material.rawInput()))}))}))}async cook(t){this._operation=this._operation||new d0(this._scene,this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class f0 extends aV{static type(){return\\\\\\\"merge\\\\\\\"}cook(t,e){let n=[];for(let i of t)if(i){const t=i.objects();if(e.compact)for(let e of t)e.traverse((t=>{n.push(t)}));else for(let t of i.objects())n.push(t)}e.compact&&(n=this._makeCompact(n));for(let t of n)t.traverse((t=>{t.matrixAutoUpdate=!1}));return this.createCoreGroupFromObjects(n)}_makeCompact(t){const e=new Map,n=new Map,i=[];for(let s of t)s.traverse((t=>{if(t instanceof Fn.a)return;const s=t;if(s.geometry){const t=Os(s.constructor);if(i.includes(t)||i.push(t),t){e.get(t)||e.set(t,s.material),h.pushOnArrayAtEntry(n,t,s)}}}));const s=[];return i.forEach((t=>{var i,r;const o=n.get(t);if(o){const n=[];for(let t of o){const e=t.geometry;e.applyMatrix4(t.matrix),n.push(e)}try{const r=fr.mergeGeometries(n);if(r){const n=e.get(t),i=this.createObject(r,t,n);s.push(i)}else null===(i=this.states)||void 0===i||i.error.set(\\\\\\\"merge failed, check that input geometries have the same attributes\\\\\\\")}catch(t){null===(r=this.states)||void 0===r||r.error.set(t.message)}}})),s}}f0.DEFAULT_PARAMS={compact:!1},f0.INPUT_CLONED_STATE=Qi.FROM_NODE;const g0=\\\\\\\"geometry to merge\\\\\\\",v0=f0.DEFAULT_PARAMS;const y0=new class extends ua{constructor(){super(...arguments),this.compact=ha.BOOLEAN(v0.compact),this.inputsCount=ha.INTEGER(4,{range:[1,32],rangeLocked:[!0,!1],callback:t=>{x0.PARAM_CALLBACK_setInputsCount(t)}})}};class x0 extends uV{constructor(){super(...arguments),this.paramsConfig=y0}static type(){return\\\\\\\"merge\\\\\\\"}static displayedInputNames(){return[g0,g0,g0,g0]}setCompactMode(t){this.p.compact.set(t)}initializeNode(){this.io.inputs.setCount(1,4),this.io.inputs.initInputsClonedState(f0.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.compact],(()=>this.pv.compact?\\\\\\\"compact\\\\\\\":\\\\\\\"separate objects\\\\\\\"))})),this.params.addOnSceneLoadHook(\\\\\\\"update inputs\\\\\\\",(()=>{this._callbackUpdateInputsCount()}))}))}cook(t){this._operation=this._operation||new f0(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}_callbackUpdateInputsCount(){this.io.inputs.setCount(1,this.pv.inputsCount),this.emit(Ei.INPUTS_UPDATED)}static PARAM_CALLBACK_setInputsCount(t){t._callbackUpdateInputsCount()}}const b0=new Float32Array(36),w0=new Float32Array(36),T0=new Float32Array(36);function A0(t,e,n){return t+(e-t)*n}class M0 extends S.a{constructor(t,e,n){super(),this.resolution=t,this.isMarchingCubes=!0,this.isolation=80,this.size=-1,this.size2=-1,this.size3=-1,this.halfsize=-1,this.delta=-1,this.yd=-1,this.zd=-1,this.count=-1,this.maxCount=-1,this.enableUvs=void 0!==e&&e,this.enableColors=void 0!==n&&n,this.size=this.resolution,this.size2=this.size*this.size,this.size3=this.size2*this.size,this.halfsize=this.size/2,this.delta=2/this.size,this.yd=this.size,this.zd=this.size2,this.field=new Float32Array(this.size3),this.normal_cache=new Float32Array(3*this.size3),this.palette=new Float32Array(3*this.size3),this.maxCount=this.size3,this.count=0,this.positionArray=new Float32Array(3*this.maxCount),this.setAttribute(\\\\\\\"position\\\\\\\",new C.a(this.positionArray,3)),this.normalArray=new Float32Array(3*this.maxCount),this.setAttribute(\\\\\\\"normal\\\\\\\",new C.a(this.normalArray,3)),this.enableUvs&&(this.uvArray=new Float32Array(2*this.maxCount),this.setAttribute(\\\\\\\"uv\\\\\\\",new C.a(this.uvArray,2))),this.enableColors&&(this.colorArray=new Float32Array(3*this.maxCount),this.setAttribute(\\\\\\\"color\\\\\\\",new C.a(this.colorArray,3)));const i=(t,e,n,i,c)=>{const h=i+1,u=i+this.yd,d=i+this.zd,p=h+this.yd,_=h+this.zd,m=i+this.yd+this.zd,f=h+this.yd+this.zd;let g=0;const v=this.field[i],y=this.field[h],x=this.field[u],b=this.field[p],w=this.field[d],T=this.field[_],A=this.field[m],M=this.field[f];v<c&&(g|=1),y<c&&(g|=2),x<c&&(g|=8),b<c&&(g|=4),w<c&&(g|=16),T<c&&(g|=32),A<c&&(g|=128),M<c&&(g|=64);const E=E0[g];if(0===E)return 0;const S=this.delta,C=t+S,N=e+S,L=n+S;1&E&&(a(i),a(h),s(3*i,0,c,t,e,n,v,y,i,h)),2&E&&(a(h),a(p),r(3*h,3,c,C,e,n,y,b,h,p)),4&E&&(a(u),a(p),s(3*u,6,c,t,N,n,x,b,u,p)),8&E&&(a(i),a(u),r(3*i,9,c,t,e,n,v,x,i,u)),16&E&&(a(d),a(_),s(3*d,12,c,t,e,L,w,T,d,_)),32&E&&(a(_),a(f),r(3*_,15,c,C,e,L,T,M,_,f)),64&E&&(a(m),a(f),s(3*m,18,c,t,N,L,A,M,m,f)),128&E&&(a(d),a(m),r(3*d,21,c,t,e,L,w,A,d,m)),256&E&&(a(i),a(d),o(3*i,24,c,t,e,n,v,w,i,d)),512&E&&(a(h),a(_),o(3*h,27,c,C,e,n,y,T,h,_)),1024&E&&(a(p),a(f),o(3*p,30,c,C,N,n,b,M,p,f)),2048&E&&(a(u),a(m),o(3*u,33,c,t,N,n,x,A,u,m)),g<<=4;let O,P,R,I=0,F=0;for(;-1!=S0[g+F];)O=g+F,P=O+1,R=O+2,l(b0,w0,T0,3*S0[O],3*S0[P],3*S0[R]),F+=3,I++;return I};this._createPolygons=()=>{const t=this.size-2;for(let e=1;e<t;e++){const n=this.size2*e,s=(e-this.halfsize)/this.halfsize;for(let e=1;e<t;e++){const r=n+this.size*e,o=(e-this.halfsize)/this.halfsize;for(let e=1;e<t;e++){const t=(e-this.halfsize)/this.halfsize;i(t,o,s,r+e,this.isolation)}}}};const s=(t,e,n,i,s,r,o,a,l,c)=>{const h=(n-o)/(a-o),u=this.normal_cache;b0[e+0]=i+h*this.delta,b0[e+1]=s,b0[e+2]=r,w0[e+0]=A0(u[t+0],u[t+3],h),w0[e+1]=A0(u[t+1],u[t+4],h),w0[e+2]=A0(u[t+2],u[t+5],h),T0[e+0]=A0(this.palette[3*l+0],this.palette[3*c+0],h),T0[e+1]=A0(this.palette[3*l+1],this.palette[3*c+1],h),T0[e+2]=A0(this.palette[3*l+2],this.palette[3*c+2],h)},r=(t,e,n,i,s,r,o,a,l,c)=>{const h=(n-o)/(a-o),u=this.normal_cache;b0[e+0]=i,b0[e+1]=s+h*this.delta,b0[e+2]=r;const d=t+3*this.yd;w0[e+0]=A0(u[t+0],u[d+0],h),w0[e+1]=A0(u[t+1],u[d+1],h),w0[e+2]=A0(u[t+2],u[d+2],h),T0[e+0]=A0(this.palette[3*l+0],this.palette[3*c+0],h),T0[e+1]=A0(this.palette[3*l+1],this.palette[3*c+1],h),T0[e+2]=A0(this.palette[3*l+2],this.palette[3*c+2],h)},o=(t,e,n,i,s,r,o,a,l,c)=>{const h=(n-o)/(a-o),u=this.normal_cache;b0[e+0]=i,b0[e+1]=s,b0[e+2]=r+h*this.delta;const d=t+3*this.zd;w0[e+0]=A0(u[t+0],u[d+0],h),w0[e+1]=A0(u[t+1],u[d+1],h),w0[e+2]=A0(u[t+2],u[d+2],h),T0[e+0]=A0(this.palette[3*l+0],this.palette[3*c+0],h),T0[e+1]=A0(this.palette[3*l+1],this.palette[3*c+1],h),T0[e+2]=A0(this.palette[3*l+2],this.palette[3*c+2],h)},a=t=>{const e=3*t;0===this.normal_cache[e]&&(this.normal_cache[e+0]=this.field[t-1]-this.field[t+1],this.normal_cache[e+1]=this.field[t-this.yd]-this.field[t+this.yd],this.normal_cache[e+2]=this.field[t-this.zd]-this.field[t+this.zd])},l=(t,e,n,i,s,r)=>{const o=3*this.count;if(this.positionArray&&this.normalArray){if(this.positionArray[o+0]=t[i],this.positionArray[o+1]=t[i+1],this.positionArray[o+2]=t[i+2],this.positionArray[o+3]=t[s],this.positionArray[o+4]=t[s+1],this.positionArray[o+5]=t[s+2],this.positionArray[o+6]=t[r],this.positionArray[o+7]=t[r+1],this.positionArray[o+8]=t[r+2],this.normalArray[o+0]=e[i+0],this.normalArray[o+1]=e[i+1],this.normalArray[o+2]=e[i+2],this.normalArray[o+3]=e[s+0],this.normalArray[o+4]=e[s+1],this.normalArray[o+5]=e[s+2],this.normalArray[o+6]=e[r+0],this.normalArray[o+7]=e[r+1],this.normalArray[o+8]=e[r+2],this.enableUvs&&this.uvArray){const e=2*this.count;this.uvArray[e+0]=t[i+0],this.uvArray[e+1]=t[i+2],this.uvArray[e+2]=t[s+0],this.uvArray[e+3]=t[s+2],this.uvArray[e+4]=t[r+0],this.uvArray[e+5]=t[r+2]}this.enableColors&&this.colorArray&&(this.colorArray[o+0]=n[i+0],this.colorArray[o+1]=n[i+1],this.colorArray[o+2]=n[i+2],this.colorArray[o+3]=n[s+0],this.colorArray[o+4]=n[s+1],this.colorArray[o+5]=n[s+2],this.colorArray[o+6]=n[r+0],this.colorArray[o+7]=n[r+1],this.colorArray[o+8]=n[r+2]),this.count+=3}}}createPolygons(){this._createPolygons()}addBall(t,e,n,i,s,r){const o=Math.sign(i);i=Math.abs(i);const a=!(null==r);let l=new D.a(t,e,n);if(a)try{r&&(l=r)}catch(i){l=new D.a(t,e,n)}const c=this.size*Math.sqrt(i/s),h=n*this.size,u=e*this.size,d=t*this.size;let p=Math.floor(h-c);p<1&&(p=1);let _=Math.floor(h+c);_>this.size-1&&(_=this.size-1);let m=Math.floor(u-c);m<1&&(m=1);let f=Math.floor(u+c);f>this.size-1&&(f=this.size-1);let g=Math.floor(d-c);g<1&&(g=1);let v,y,x,b,w,T,A,M,E,S,C,N=Math.floor(d+c);for(N>this.size-1&&(N=this.size-1),x=p;x<_;x++)for(w=this.size2*x,M=x/this.size-n,E=M*M,y=m;y<f;y++)for(b=w+this.size*y,A=y/this.size-e,S=A*A,v=g;v<N;v++)if(T=v/this.size-t,C=i/(1e-6+T*T+S+E)-s,C>0){this.field[b+v]+=C*o;const t=Math.sqrt((v-d)*(v-d)+(y-u)*(y-u)+(x-h)*(x-h))/c,e=1-t*t*t*(t*(6*t-15)+10);this.palette[3*(b+v)+0]+=l.r*e,this.palette[3*(b+v)+1]+=l.g*e,this.palette[3*(b+v)+2]+=l.b*e}}}const E0=new Int32Array([0,265,515,778,1030,1295,1541,1804,2060,2309,2575,2822,3082,3331,3593,3840,400,153,915,666,1430,1183,1941,1692,2460,2197,2975,2710,3482,3219,3993,3728,560,825,51,314,1590,1855,1077,1340,2620,2869,2111,2358,3642,3891,3129,3376,928,681,419,170,1958,1711,1445,1196,2988,2725,2479,2214,4010,3747,3497,3232,1120,1385,1635,1898,102,367,613,876,3180,3429,3695,3942,2154,2403,2665,2912,1520,1273,2035,1786,502,255,1013,764,3580,3317,4095,3830,2554,2291,3065,2800,1616,1881,1107,1370,598,863,85,348,3676,3925,3167,3414,2650,2899,2137,2384,1984,1737,1475,1226,966,719,453,204,4044,3781,3535,3270,3018,2755,2505,2240,2240,2505,2755,3018,3270,3535,3781,4044,204,453,719,966,1226,1475,1737,1984,2384,2137,2899,2650,3414,3167,3925,3676,348,85,863,598,1370,1107,1881,1616,2800,3065,2291,2554,3830,4095,3317,3580,764,1013,255,502,1786,2035,1273,1520,2912,2665,2403,2154,3942,3695,3429,3180,876,613,367,102,1898,1635,1385,1120,3232,3497,3747,4010,2214,2479,2725,2988,1196,1445,1711,1958,170,419,681,928,3376,3129,3891,3642,2358,2111,2869,2620,1340,1077,1855,1590,314,51,825,560,3728,3993,3219,3482,2710,2975,2197,2460,1692,1941,1183,1430,666,915,153,400,3840,3593,3331,3082,2822,2575,2309,2060,1804,1541,1295,1030,778,515,265,0]),S0=new Int32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,9,8,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,10,0,2,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,8,3,2,10,8,10,9,8,-1,-1,-1,-1,-1,-1,-1,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,8,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,11,2,1,9,11,9,8,11,-1,-1,-1,-1,-1,-1,-1,3,10,1,11,10,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,10,1,0,8,10,8,11,10,-1,-1,-1,-1,-1,-1,-1,3,9,0,3,11,9,11,10,9,-1,-1,-1,-1,-1,-1,-1,9,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,7,3,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,1,9,4,7,1,7,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,7,3,0,4,1,2,10,-1,-1,-1,-1,-1,-1,-1,9,2,10,9,0,2,8,4,7,-1,-1,-1,-1,-1,-1,-1,2,10,9,2,9,7,2,7,3,7,9,4,-1,-1,-1,-1,8,4,7,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,4,7,11,2,4,2,0,4,-1,-1,-1,-1,-1,-1,-1,9,0,1,8,4,7,2,3,11,-1,-1,-1,-1,-1,-1,-1,4,7,11,9,4,11,9,11,2,9,2,1,-1,-1,-1,-1,3,10,1,3,11,10,7,8,4,-1,-1,-1,-1,-1,-1,-1,1,11,10,1,4,11,1,0,4,7,11,4,-1,-1,-1,-1,4,7,8,9,0,11,9,11,10,11,0,3,-1,-1,-1,-1,4,7,11,4,11,9,9,11,10,-1,-1,-1,-1,-1,-1,-1,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,4,1,5,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,5,4,8,3,5,3,1,5,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,10,4,9,5,-1,-1,-1,-1,-1,-1,-1,5,2,10,5,4,2,4,0,2,-1,-1,-1,-1,-1,-1,-1,2,10,5,3,2,5,3,5,4,3,4,8,-1,-1,-1,-1,9,5,4,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,0,8,11,4,9,5,-1,-1,-1,-1,-1,-1,-1,0,5,4,0,1,5,2,3,11,-1,-1,-1,-1,-1,-1,-1,2,1,5,2,5,8,2,8,11,4,8,5,-1,-1,-1,-1,10,3,11,10,1,3,9,5,4,-1,-1,-1,-1,-1,-1,-1,4,9,5,0,8,1,8,10,1,8,11,10,-1,-1,-1,-1,5,4,0,5,0,11,5,11,10,11,0,3,-1,-1,-1,-1,5,4,8,5,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,9,7,8,5,7,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,3,0,9,5,3,5,7,3,-1,-1,-1,-1,-1,-1,-1,0,7,8,0,1,7,1,5,7,-1,-1,-1,-1,-1,-1,-1,1,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,7,8,9,5,7,10,1,2,-1,-1,-1,-1,-1,-1,-1,10,1,2,9,5,0,5,3,0,5,7,3,-1,-1,-1,-1,8,0,2,8,2,5,8,5,7,10,5,2,-1,-1,-1,-1,2,10,5,2,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,7,9,5,7,8,9,3,11,2,-1,-1,-1,-1,-1,-1,-1,9,5,7,9,7,2,9,2,0,2,7,11,-1,-1,-1,-1,2,3,11,0,1,8,1,7,8,1,5,7,-1,-1,-1,-1,11,2,1,11,1,7,7,1,5,-1,-1,-1,-1,-1,-1,-1,9,5,8,8,5,7,10,1,3,10,3,11,-1,-1,-1,-1,5,7,0,5,0,9,7,11,0,1,0,10,11,10,0,-1,11,10,0,11,0,3,10,5,0,8,0,7,5,7,0,-1,11,10,5,7,11,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,0,1,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,1,9,8,5,10,6,-1,-1,-1,-1,-1,-1,-1,1,6,5,2,6,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,6,5,1,2,6,3,0,8,-1,-1,-1,-1,-1,-1,-1,9,6,5,9,0,6,0,2,6,-1,-1,-1,-1,-1,-1,-1,5,9,8,5,8,2,5,2,6,3,2,8,-1,-1,-1,-1,2,3,11,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,0,8,11,2,0,10,6,5,-1,-1,-1,-1,-1,-1,-1,0,1,9,2,3,11,5,10,6,-1,-1,-1,-1,-1,-1,-1,5,10,6,1,9,2,9,11,2,9,8,11,-1,-1,-1,-1,6,3,11,6,5,3,5,1,3,-1,-1,-1,-1,-1,-1,-1,0,8,11,0,11,5,0,5,1,5,11,6,-1,-1,-1,-1,3,11,6,0,3,6,0,6,5,0,5,9,-1,-1,-1,-1,6,5,9,6,9,11,11,9,8,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,4,7,3,6,5,10,-1,-1,-1,-1,-1,-1,-1,1,9,0,5,10,6,8,4,7,-1,-1,-1,-1,-1,-1,-1,10,6,5,1,9,7,1,7,3,7,9,4,-1,-1,-1,-1,6,1,2,6,5,1,4,7,8,-1,-1,-1,-1,-1,-1,-1,1,2,5,5,2,6,3,0,4,3,4,7,-1,-1,-1,-1,8,4,7,9,0,5,0,6,5,0,2,6,-1,-1,-1,-1,7,3,9,7,9,4,3,2,9,5,9,6,2,6,9,-1,3,11,2,7,8,4,10,6,5,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,2,4,2,0,2,7,11,-1,-1,-1,-1,0,1,9,4,7,8,2,3,11,5,10,6,-1,-1,-1,-1,9,2,1,9,11,2,9,4,11,7,11,4,5,10,6,-1,8,4,7,3,11,5,3,5,1,5,11,6,-1,-1,-1,-1,5,1,11,5,11,6,1,0,11,7,11,4,0,4,11,-1,0,5,9,0,6,5,0,3,6,11,6,3,8,4,7,-1,6,5,9,6,9,11,4,7,9,7,11,9,-1,-1,-1,-1,10,4,9,6,4,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,10,6,4,9,10,0,8,3,-1,-1,-1,-1,-1,-1,-1,10,0,1,10,6,0,6,4,0,-1,-1,-1,-1,-1,-1,-1,8,3,1,8,1,6,8,6,4,6,1,10,-1,-1,-1,-1,1,4,9,1,2,4,2,6,4,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,9,2,4,9,2,6,4,-1,-1,-1,-1,0,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,3,2,8,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,10,4,9,10,6,4,11,2,3,-1,-1,-1,-1,-1,-1,-1,0,8,2,2,8,11,4,9,10,4,10,6,-1,-1,-1,-1,3,11,2,0,1,6,0,6,4,6,1,10,-1,-1,-1,-1,6,4,1,6,1,10,4,8,1,2,1,11,8,11,1,-1,9,6,4,9,3,6,9,1,3,11,6,3,-1,-1,-1,-1,8,11,1,8,1,0,11,6,1,9,1,4,6,4,1,-1,3,11,6,3,6,0,0,6,4,-1,-1,-1,-1,-1,-1,-1,6,4,8,11,6,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,10,6,7,8,10,8,9,10,-1,-1,-1,-1,-1,-1,-1,0,7,3,0,10,7,0,9,10,6,7,10,-1,-1,-1,-1,10,6,7,1,10,7,1,7,8,1,8,0,-1,-1,-1,-1,10,6,7,10,7,1,1,7,3,-1,-1,-1,-1,-1,-1,-1,1,2,6,1,6,8,1,8,9,8,6,7,-1,-1,-1,-1,2,6,9,2,9,1,6,7,9,0,9,3,7,3,9,-1,7,8,0,7,0,6,6,0,2,-1,-1,-1,-1,-1,-1,-1,7,3,2,6,7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,11,10,6,8,10,8,9,8,6,7,-1,-1,-1,-1,2,0,7,2,7,11,0,9,7,6,7,10,9,10,7,-1,1,8,0,1,7,8,1,10,7,6,7,10,2,3,11,-1,11,2,1,11,1,7,10,6,1,6,7,1,-1,-1,-1,-1,8,9,6,8,6,7,9,1,6,11,6,3,1,3,6,-1,0,9,1,11,6,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,0,7,0,6,3,11,0,11,6,0,-1,-1,-1,-1,7,11,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,1,9,8,3,1,11,7,6,-1,-1,-1,-1,-1,-1,-1,10,1,2,6,11,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,8,6,11,7,-1,-1,-1,-1,-1,-1,-1,2,9,0,2,10,9,6,11,7,-1,-1,-1,-1,-1,-1,-1,6,11,7,2,10,3,10,8,3,10,9,8,-1,-1,-1,-1,7,2,3,6,2,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,0,8,7,6,0,6,2,0,-1,-1,-1,-1,-1,-1,-1,2,7,6,2,3,7,0,1,9,-1,-1,-1,-1,-1,-1,-1,1,6,2,1,8,6,1,9,8,8,7,6,-1,-1,-1,-1,10,7,6,10,1,7,1,3,7,-1,-1,-1,-1,-1,-1,-1,10,7,6,1,7,10,1,8,7,1,0,8,-1,-1,-1,-1,0,3,7,0,7,10,0,10,9,6,10,7,-1,-1,-1,-1,7,6,10,7,10,8,8,10,9,-1,-1,-1,-1,-1,-1,-1,6,8,4,11,8,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,6,11,3,0,6,0,4,6,-1,-1,-1,-1,-1,-1,-1,8,6,11,8,4,6,9,0,1,-1,-1,-1,-1,-1,-1,-1,9,4,6,9,6,3,9,3,1,11,3,6,-1,-1,-1,-1,6,8,4,6,11,8,2,10,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,11,0,6,11,0,4,6,-1,-1,-1,-1,4,11,8,4,6,11,0,2,9,2,10,9,-1,-1,-1,-1,10,9,3,10,3,2,9,4,3,11,3,6,4,6,3,-1,8,2,3,8,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,0,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,4,2,4,6,4,3,8,-1,-1,-1,-1,1,9,4,1,4,2,2,4,6,-1,-1,-1,-1,-1,-1,-1,8,1,3,8,6,1,8,4,6,6,10,1,-1,-1,-1,-1,10,1,0,10,0,6,6,0,4,-1,-1,-1,-1,-1,-1,-1,4,6,3,4,3,8,6,10,3,0,3,9,10,9,3,-1,10,9,4,6,10,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,5,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,5,11,7,6,-1,-1,-1,-1,-1,-1,-1,5,0,1,5,4,0,7,6,11,-1,-1,-1,-1,-1,-1,-1,11,7,6,8,3,4,3,5,4,3,1,5,-1,-1,-1,-1,9,5,4,10,1,2,7,6,11,-1,-1,-1,-1,-1,-1,-1,6,11,7,1,2,10,0,8,3,4,9,5,-1,-1,-1,-1,7,6,11,5,4,10,4,2,10,4,0,2,-1,-1,-1,-1,3,4,8,3,5,4,3,2,5,10,5,2,11,7,6,-1,7,2,3,7,6,2,5,4,9,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,6,0,6,2,6,8,7,-1,-1,-1,-1,3,6,2,3,7,6,1,5,0,5,4,0,-1,-1,-1,-1,6,2,8,6,8,7,2,1,8,4,8,5,1,5,8,-1,9,5,4,10,1,6,1,7,6,1,3,7,-1,-1,-1,-1,1,6,10,1,7,6,1,0,7,8,7,0,9,5,4,-1,4,0,10,4,10,5,0,3,10,6,10,7,3,7,10,-1,7,6,10,7,10,8,5,4,10,4,8,10,-1,-1,-1,-1,6,9,5,6,11,9,11,8,9,-1,-1,-1,-1,-1,-1,-1,3,6,11,0,6,3,0,5,6,0,9,5,-1,-1,-1,-1,0,11,8,0,5,11,0,1,5,5,6,11,-1,-1,-1,-1,6,11,3,6,3,5,5,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,11,9,11,8,11,5,6,-1,-1,-1,-1,0,11,3,0,6,11,0,9,6,5,6,9,1,2,10,-1,11,8,5,11,5,6,8,0,5,10,5,2,0,2,5,-1,6,11,3,6,3,5,2,10,3,10,5,3,-1,-1,-1,-1,5,8,9,5,2,8,5,6,2,3,8,2,-1,-1,-1,-1,9,5,6,9,6,0,0,6,2,-1,-1,-1,-1,-1,-1,-1,1,5,8,1,8,0,5,6,8,3,8,2,6,2,8,-1,1,5,6,2,1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,6,1,6,10,3,8,6,5,6,9,8,9,6,-1,10,1,0,10,0,6,9,5,0,5,6,0,-1,-1,-1,-1,0,3,8,5,6,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,7,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,11,7,5,8,3,0,-1,-1,-1,-1,-1,-1,-1,5,11,7,5,10,11,1,9,0,-1,-1,-1,-1,-1,-1,-1,10,7,5,10,11,7,9,8,1,8,3,1,-1,-1,-1,-1,11,1,2,11,7,1,7,5,1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,7,1,7,5,7,2,11,-1,-1,-1,-1,9,7,5,9,2,7,9,0,2,2,11,7,-1,-1,-1,-1,7,5,2,7,2,11,5,9,2,3,2,8,9,8,2,-1,2,5,10,2,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,8,2,0,8,5,2,8,7,5,10,2,5,-1,-1,-1,-1,9,0,1,5,10,3,5,3,7,3,10,2,-1,-1,-1,-1,9,8,2,9,2,1,8,7,2,10,2,5,7,5,2,-1,1,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,7,0,7,1,1,7,5,-1,-1,-1,-1,-1,-1,-1,9,0,3,9,3,5,5,3,7,-1,-1,-1,-1,-1,-1,-1,9,8,7,5,9,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,8,4,5,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,5,0,4,5,11,0,5,10,11,11,3,0,-1,-1,-1,-1,0,1,9,8,4,10,8,10,11,10,4,5,-1,-1,-1,-1,10,11,4,10,4,5,11,3,4,9,4,1,3,1,4,-1,2,5,1,2,8,5,2,11,8,4,5,8,-1,-1,-1,-1,0,4,11,0,11,3,4,5,11,2,11,1,5,1,11,-1,0,2,5,0,5,9,2,11,5,4,5,8,11,8,5,-1,9,4,5,2,11,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,5,10,3,5,2,3,4,5,3,8,4,-1,-1,-1,-1,5,10,2,5,2,4,4,2,0,-1,-1,-1,-1,-1,-1,-1,3,10,2,3,5,10,3,8,5,4,5,8,0,1,9,-1,5,10,2,5,2,4,1,9,2,9,4,2,-1,-1,-1,-1,8,4,5,8,5,3,3,5,1,-1,-1,-1,-1,-1,-1,-1,0,4,5,1,0,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,4,5,8,5,3,9,0,5,0,3,5,-1,-1,-1,-1,9,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,11,7,4,9,11,9,10,11,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,7,9,11,7,9,10,11,-1,-1,-1,-1,1,10,11,1,11,4,1,4,0,7,4,11,-1,-1,-1,-1,3,1,4,3,4,8,1,10,4,7,4,11,10,11,4,-1,4,11,7,9,11,4,9,2,11,9,1,2,-1,-1,-1,-1,9,7,4,9,11,7,9,1,11,2,11,1,0,8,3,-1,11,7,4,11,4,2,2,4,0,-1,-1,-1,-1,-1,-1,-1,11,7,4,11,4,2,8,3,4,3,2,4,-1,-1,-1,-1,2,9,10,2,7,9,2,3,7,7,4,9,-1,-1,-1,-1,9,10,7,9,7,4,10,2,7,8,7,0,2,0,7,-1,3,7,10,3,10,2,7,4,10,1,10,0,4,0,10,-1,1,10,2,8,7,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,7,1,3,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,0,8,1,8,7,1,-1,-1,-1,-1,4,0,3,7,4,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,8,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,11,9,10,-1,-1,-1,-1,-1,-1,-1,0,1,10,0,10,8,8,10,11,-1,-1,-1,-1,-1,-1,-1,3,1,10,11,3,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,11,1,11,9,9,11,8,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,1,2,9,2,11,9,-1,-1,-1,-1,0,2,11,8,0,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,2,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,10,8,9,-1,-1,-1,-1,-1,-1,-1,9,10,2,0,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,0,1,8,1,10,8,-1,-1,-1,-1,1,10,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,8,9,1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,9,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,3,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]),C0=new p.a;class N0 extends aV{static type(){return\\\\\\\"metaball\\\\\\\"}cook(t,e){const n=t[0],i=new M0(e.resolution,e.enableUVs,e.enableColors);i.isolation=e.isolation;const s=n.points();for(let t of s){t.getPosition(C0),C0.multiplyScalar(.5).addScalar(.5);let n=e.metaStrength;if(e.useMetaStrengthAttrib){let e=t.attribValue(\\\\\\\"metaStrength\\\\\\\");m.isNumber(e)&&(n*=e)}let s=e.metaSubstract;if(e.useMetaSubstractAttrib){let e=t.attribValue(\\\\\\\"metaSubstract\\\\\\\");m.isNumber(e)&&(s*=e)}i.addBall(C0.x,C0.y,C0.z,n,s,void 0)}return i.createPolygons(),this.createCoreGroupFromGeometry(i)}}N0.DEFAULT_PARAMS={resolution:40,isolation:30,useMetaStrengthAttrib:!1,metaStrength:1,useMetaSubstractAttrib:!1,metaSubstract:1,enableUVs:!1,enableColors:!1},N0.INPUT_CLONED_STATE=Qi.NEVER;const L0=N0.DEFAULT_PARAMS;const O0=new class extends ua{constructor(){super(...arguments),this.resolution=ha.FLOAT(L0.resolution,{range:[0,100],rangeLocked:[!0,!1]}),this.isolation=ha.FLOAT(L0.isolation,{range:[0,100],rangeLocked:[!0,!1]}),this.useMetaStrengthAttrib=ha.BOOLEAN(L0.useMetaStrengthAttrib),this.metaStrength=ha.FLOAT(L0.metaStrength,{range:[0,10],rangeLocked:[!0,!1]}),this.useMetaSubstractAttrib=ha.BOOLEAN(L0.useMetaSubstractAttrib),this.metaSubstract=ha.FLOAT(L0.metaSubstract,{range:[0,10],rangeLocked:[!0,!1]}),this.enableUVs=ha.BOOLEAN(L0.enableUVs),this.enableColors=ha.BOOLEAN(L0.enableColors)}};class P0 extends uV{constructor(){super(...arguments),this.paramsConfig=O0}static type(){return\\\\\\\"metaball\\\\\\\"}static displayedInputNames(){return[\\\\\\\"points to create metaballs from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(N0.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new N0(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class R0{constructor(t=Math){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.grad4=[[0,1,1,1],[0,1,1,-1],[0,1,-1,1],[0,1,-1,-1],[0,-1,1,1],[0,-1,1,-1],[0,-1,-1,1],[0,-1,-1,-1],[1,0,1,1],[1,0,1,-1],[1,0,-1,1],[1,0,-1,-1],[-1,0,1,1],[-1,0,1,-1],[-1,0,-1,1],[-1,0,-1,-1],[1,1,0,1],[1,1,0,-1],[1,-1,0,1],[1,-1,0,-1],[-1,1,0,1],[-1,1,0,-1],[-1,-1,0,1],[-1,-1,0,-1],[1,1,1,0],[1,1,-1,0],[1,-1,1,0],[1,-1,-1,0],[-1,1,1,0],[-1,1,-1,0],[-1,-1,1,0],[-1,-1,-1,0]],this.p=[];for(let e=0;e<256;e++)this.p[e]=Math.floor(256*t.random());this.perm=[];for(let t=0;t<512;t++)this.perm[t]=this.p[255&t];this.simplex=[[0,1,2,3],[0,1,3,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(t,e,n){return t[0]*e+t[1]*n}dot3(t,e,n,i){return t[0]*e+t[1]*n+t[2]*i}dot4(t,e,n,i,s){return t[0]*e+t[1]*n+t[2]*i+t[3]*s}noise(t,e){let n,i,s;const r=(t+e)*(.5*(Math.sqrt(3)-1)),o=Math.floor(t+r),a=Math.floor(e+r),l=(3-Math.sqrt(3))/6,c=(o+a)*l,h=t-(o-c),u=e-(a-c);let d,p;h>u?(d=1,p=0):(d=0,p=1);const _=h-d+l,m=u-p+l,f=h-1+2*l,g=u-1+2*l,v=255&o,y=255&a,x=this.perm[v+this.perm[y]]%12,b=this.perm[v+d+this.perm[y+p]]%12,w=this.perm[v+1+this.perm[y+1]]%12;let T=.5-h*h-u*u;T<0?n=0:(T*=T,n=T*T*this.dot(this.grad3[x],h,u));let A=.5-_*_-m*m;A<0?i=0:(A*=A,i=A*A*this.dot(this.grad3[b],_,m));let M=.5-f*f-g*g;return M<0?s=0:(M*=M,s=M*M*this.dot(this.grad3[w],f,g)),70*(n+i+s)}noise3d(t,e,n){let i,s,r,o;const a=(t+e+n)*(1/3),l=Math.floor(t+a),c=Math.floor(e+a),h=Math.floor(n+a),u=1/6,d=(l+c+h)*u,p=t-(l-d),_=e-(c-d),m=n-(h-d);let f,g,v,y,x,b;p>=_?_>=m?(f=1,g=0,v=0,y=1,x=1,b=0):p>=m?(f=1,g=0,v=0,y=1,x=0,b=1):(f=0,g=0,v=1,y=1,x=0,b=1):_<m?(f=0,g=0,v=1,y=0,x=1,b=1):p<m?(f=0,g=1,v=0,y=0,x=1,b=1):(f=0,g=1,v=0,y=1,x=1,b=0);const w=p-f+u,T=_-g+u,A=m-v+u,M=p-y+2*u,E=_-x+2*u,S=m-b+2*u,C=p-1+.5,N=_-1+.5,L=m-1+.5,O=255&l,P=255&c,R=255&h,I=this.perm[O+this.perm[P+this.perm[R]]]%12,F=this.perm[O+f+this.perm[P+g+this.perm[R+v]]]%12,D=this.perm[O+y+this.perm[P+x+this.perm[R+b]]]%12,B=this.perm[O+1+this.perm[P+1+this.perm[R+1]]]%12;let z=.6-p*p-_*_-m*m;z<0?i=0:(z*=z,i=z*z*this.dot3(this.grad3[I],p,_,m));let k=.6-w*w-T*T-A*A;k<0?s=0:(k*=k,s=k*k*this.dot3(this.grad3[F],w,T,A));let U=.6-M*M-E*E-S*S;U<0?r=0:(U*=U,r=U*U*this.dot3(this.grad3[D],M,E,S));let G=.6-C*C-N*N-L*L;return G<0?o=0:(G*=G,o=G*G*this.dot3(this.grad3[B],C,N,L)),32*(i+s+r+o)}noise4d(t,e,n,i){const s=this.grad4,r=this.simplex,o=this.perm,a=(Math.sqrt(5)-1)/4,l=(5-Math.sqrt(5))/20;let c,h,u,d,p;const _=(t+e+n+i)*a,m=Math.floor(t+_),f=Math.floor(e+_),g=Math.floor(n+_),v=Math.floor(i+_),y=(m+f+g+v)*l,x=t-(m-y),b=e-(f-y),w=n-(g-y),T=i-(v-y),A=(x>b?32:0)+(x>w?16:0)+(b>w?8:0)+(x>T?4:0)+(b>T?2:0)+(w>T?1:0),M=r[A][0]>=3?1:0,E=r[A][1]>=3?1:0,S=r[A][2]>=3?1:0,C=r[A][3]>=3?1:0,N=r[A][0]>=2?1:0,L=r[A][1]>=2?1:0,O=r[A][2]>=2?1:0,P=r[A][3]>=2?1:0,R=r[A][0]>=1?1:0,I=r[A][1]>=1?1:0,F=r[A][2]>=1?1:0,D=r[A][3]>=1?1:0,B=x-M+l,z=b-E+l,k=w-S+l,U=T-C+l,G=x-N+2*l,V=b-L+2*l,H=w-O+2*l,j=T-P+2*l,W=x-R+3*l,q=b-I+3*l,X=w-F+3*l,Y=T-D+3*l,$=x-1+4*l,J=b-1+4*l,Z=w-1+4*l,K=T-1+4*l,Q=255&m,tt=255&f,et=255&g,nt=255&v,it=o[Q+o[tt+o[et+o[nt]]]]%32,st=o[Q+M+o[tt+E+o[et+S+o[nt+C]]]]%32,rt=o[Q+N+o[tt+L+o[et+O+o[nt+P]]]]%32,ot=o[Q+R+o[tt+I+o[et+F+o[nt+D]]]]%32,at=o[Q+1+o[tt+1+o[et+1+o[nt+1]]]]%32;let lt=.6-x*x-b*b-w*w-T*T;lt<0?c=0:(lt*=lt,c=lt*lt*this.dot4(s[it],x,b,w,T));let ct=.6-B*B-z*z-k*k-U*U;ct<0?h=0:(ct*=ct,h=ct*ct*this.dot4(s[st],B,z,k,U));let ht=.6-G*G-V*V-H*H-j*j;ht<0?u=0:(ht*=ht,u=ht*ht*this.dot4(s[rt],G,V,H,j));let ut=.6-W*W-q*q-X*X-Y*Y;ut<0?d=0:(ut*=ut,d=ut*ut*this.dot4(s[ot],W,q,X,Y));let dt=.6-$*$-J*J-Z*Z-K*K;return dt<0?p=0:(dt*=dt,p=dt*dt*this.dot4(s[at],$,J,Z,K)),27*(c+h+u+d+p)}}var I0;!function(t){t.ADD=\\\\\\\"add\\\\\\\",t.SET=\\\\\\\"set\\\\\\\",t.MULT=\\\\\\\"mult\\\\\\\",t.SUBSTRACT=\\\\\\\"substract\\\\\\\",t.DIVIDE=\\\\\\\"divide\\\\\\\"}(I0||(I0={}));const F0=[I0.ADD,I0.SET,I0.MULT,I0.SUBSTRACT,I0.DIVIDE];const D0=new class extends ua{constructor(){super(...arguments),this.amplitude=ha.FLOAT(1),this.tamplitudeAttrib=ha.BOOLEAN(0),this.amplitudeAttrib=ha.STRING(\\\\\\\"amp\\\\\\\",{visibleIf:{tamplitudeAttrib:!0}}),this.freq=ha.VECTOR3([1,1,1]),this.offset=ha.VECTOR3([0,0,0]),this.octaves=ha.INTEGER(3,{range:[1,8],rangeLocked:[!0,!1]}),this.ampAttenuation=ha.FLOAT(.5,{range:[0,1]}),this.freqIncrease=ha.FLOAT(2,{range:[0,10]}),this.seed=ha.INTEGER(0,{range:[0,100],separatorAfter:!0}),this.useNormals=ha.BOOLEAN(0),this.attribName=ha.STRING(\\\\\\\"position\\\\\\\"),this.useRestAttributes=ha.BOOLEAN(0),this.restP=ha.STRING(\\\\\\\"restP\\\\\\\",{visibleIf:{useRestAttributes:!0}}),this.restN=ha.STRING(\\\\\\\"restN\\\\\\\",{visibleIf:{useRestAttributes:!0}}),this.operation=ha.INTEGER(F0.indexOf(I0.ADD),{menu:{entries:F0.map((t=>({name:t,value:F0.indexOf(t)})))}}),this.computeNormals=ha.BOOLEAN(1)}},B0=new p.a,z0=new p.a;class k0 extends uV{constructor(){super(...arguments),this.paramsConfig=D0,this._simplexBySeed=new Map,this._restPos=new p.a,this._restValue2=new d.a,this._restValue4=new _.a,this._noiseValueV=new p.a,this._currentAttribValueF=0,this._currentAttribValueV2=new d.a,this._currentAttribValueV3=new p.a,this._currentAttribValueV4=new _.a}static type(){return\\\\\\\"noise\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to add noise to\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState([Qi.FROM_NODE])}setOperation(t){this.p.operation.set(F0.indexOf(t))}async cook(t){const e=t[0],n=e.points(),i=this.pv.attribName;if(!e.hasAttrib(i))return this.states.error.set(`attribute ${i} not found`),void this.cookController.endCook();if(e.attribType(i)!=zs.NUMERIC)return this.states.error.set(`attribute ${i} is not a numeric attribute`),void this.cookController.endCook();const s=e.attribSize(this.pv.attribName),r=n[0];if(!r)return void this.setCoreGroup(e);const o=r.attribValue(i);if(m.isString(o))return void this.states.error.set(\\\\\\\"cannot add noise to a string attribute\\\\\\\");const a={octaves:this.pv.octaves,ampAttenuation:this.pv.ampAttenuation,freqIncrease:this.pv.freqIncrease};try{switch(s){case 1:this._cookForFloat(n,a);break;case 2:this._cookForV2(n,a);break;case 3:this._cookForV3(n,a);break;case 4:this._cookForV4(n,a)}}catch(t){console.error(\\\\\\\"sop/noise error\\\\\\\",t),this.states.error.set(`cook failed for (${this.path()}). make sure the required attributes are present`)}if(!this.io.inputs.cloneRequired(0))for(let t of e.geometries())t.getAttribute(i).needsUpdate=!0;this.pv.computeNormals&&e.computeVertexNormals(),this.setCoreGroup(e)}_cookForFloat(t,e){const n=this._getSimplex(),i=this.pv.useRestAttributes,s=this.pv.useNormals,r=this.pv.tamplitudeAttrib,o=this.pv.amplitude,a=F0[this.pv.operation],l=this.pv.attribName;for(let c of t){i?(c.attribValueVector3(this.pv.restP,B0),s&&c.attribValueVector3(this.pv.restN,z0),this._currentAttribValueF=B0.x):(c.getPosition(B0),s&&c.attribValueVector3(Ws.NORMAL,z0),this._currentAttribValueF=c.attribValueNumber(l));const t=r?this._amplitudeFromAttrib(c,o):o,h=this._noiseValue(s,n,t,e,B0,z0).x,u=k0._newAttribValueFromFloat(a,this._currentAttribValueF,h);c.setAttribValueFromNumber(l,u)}}_cookForV2(t,e){const n=this._getSimplex(),i=this.pv.useRestAttributes,s=this.pv.useNormals,r=this.pv.tamplitudeAttrib,o=this.pv.amplitude,a=F0[this.pv.operation],l=this.pv.attribName;for(let c of t){i?(c.attribValueVector3(this.pv.restP,B0),s&&c.attribValueVector3(this.pv.restN,z0),this._currentAttribValueV2.set(B0.x,B0.y)):(c.getPosition(B0),s&&c.attribValueVector3(Ws.NORMAL,z0),c.attribValueVector2(l,this._currentAttribValueV2));const t=r?this._amplitudeFromAttrib(c,o):o,h=this._noiseValue(s,n,t,e,B0,z0);this._restValue2.set(h.x,h.y);const u=this._restValue2,d=k0._newAttribValueFromVector2(a,this._currentAttribValueV2,u);c.setAttribValueFromVector2(l,d)}}_cookForV3(t,e){const n=this._getSimplex(),i=this.pv.useRestAttributes,s=this.pv.useNormals,r=this.pv.tamplitudeAttrib,o=this.pv.amplitude,a=F0[this.pv.operation],l=this.pv.attribName;for(let c of t){i?(c.attribValueVector3(this.pv.restP,B0),s&&c.attribValueVector3(this.pv.restN,z0),this._currentAttribValueV3.copy(B0)):(c.getPosition(B0),s&&c.attribValueVector3(Ws.NORMAL,z0),c.attribValueVector3(l,this._currentAttribValueV3));const t=r?this._amplitudeFromAttrib(c,o):o,h=this._noiseValue(s,n,t,e,B0,z0),u=k0._newAttribValueFromVector3(a,this._currentAttribValueV3,h);c.setAttribValueFromVector3(l,u)}}_cookForV4(t,e){const n=this._getSimplex(),i=this.pv.useRestAttributes,s=this.pv.useNormals,r=this.pv.tamplitudeAttrib,o=this.pv.amplitude,a=F0[this.pv.operation],l=this.pv.attribName;for(let c of t){i?(c.attribValueVector3(this.pv.restP,B0),s&&c.attribValueVector3(this.pv.restN,z0),this._currentAttribValueV4.set(B0.x,B0.y,B0.z,0)):(c.getPosition(B0),s&&c.attribValueVector3(Ws.NORMAL,z0),c.attribValueVector4(l,this._currentAttribValueV4));const t=r?this._amplitudeFromAttrib(c,o):o,h=this._noiseValue(s,n,t,e,B0,z0);this._restValue4.set(h.x,h.y,h.z,0);const u=this._restValue4,d=k0._newAttribValueFromVector4(a,this._currentAttribValueV4,u);c.setAttribValueFromVector4(l,d)}}_noiseValue(t,e,n,i,s,r){if(this._restPos.copy(s).add(this.pv.offset).multiply(this.pv.freq),t&&r){const t=n*this._fbm(e,i,this._restPos.x,this._restPos.y,this._restPos.z);return this._noiseValueV.copy(r),this._noiseValueV.multiplyScalar(t)}return this._noiseValueV.set(n*this._fbm(e,i,this._restPos.x+545,this._restPos.y+125454,this._restPos.z+2142),n*this._fbm(e,i,this._restPos.x-425,this._restPos.y-25746,this._restPos.z+95242),n*this._fbm(e,i,this._restPos.x+765132,this._restPos.y+21,this._restPos.z-9245)),this._noiseValueV}static _newAttribValueFromFloat(t,e,n){switch(t){case I0.ADD:return e+n;case I0.SET:return n;case I0.MULT:return e*n;case I0.DIVIDE:return e/n;case I0.SUBSTRACT:return e-n}os.unreachable(t)}static _newAttribValueFromVector2(t,e,n){switch(t){case I0.ADD:return e.add(n);case I0.SET:return n;case I0.MULT:return e.multiply(n);case I0.DIVIDE:return e.divide(n);case I0.SUBSTRACT:return e.sub(n)}os.unreachable(t)}static _newAttribValueFromVector3(t,e,n){switch(t){case I0.ADD:return e.add(n);case I0.SET:return n;case I0.MULT:return e.multiply(n);case I0.DIVIDE:return e.divide(n);case I0.SUBSTRACT:return e.sub(n)}os.unreachable(t)}static _newAttribValueFromVector4(t,e,n){switch(t){case I0.ADD:return e.add(n);case I0.SET:return n;case I0.MULT:return e.multiplyScalar(n.x);case I0.DIVIDE:return e.divideScalar(n.x);case I0.SUBSTRACT:return e.sub(n)}os.unreachable(t)}_amplitudeFromAttrib(t,e){const n=t.attribValue(this.pv.amplitudeAttrib);return m.isNumber(n)?n*e:n instanceof d.a||n instanceof p.a||n instanceof _.a?n.x*e:1}_fbm(t,e,n,i,s){let r=0,o=1;for(let a=0;a<e.octaves;a++)r+=o*t.noise3d(n,i,s),n*=e.freqIncrease,i*=e.freqIncrease,s*=e.freqIncrease,o*=e.ampAttenuation;return r}_getSimplex(){const t=this._simplexBySeed.get(this.pv.seed);if(t)return t;{const t=this._createSimplex();return this._simplexBySeed.set(this.pv.seed,t),t}}_createSimplex(){const t=this.pv.seed,e=new R0({random:function(){return or.randFloat(t)}});return this._simplexBySeed.delete(t),e}}const U0=new class extends ua{constructor(){super(...arguments),this.edit=ha.BOOLEAN(0),this.updateX=ha.BOOLEAN(0,{visibleIf:{edit:1}}),this.x=ha.FLOAT(\\\\\\\"@N.x\\\\\\\",{visibleIf:{updateX:1,edit:1},expression:{forEntities:!0}}),this.updateY=ha.BOOLEAN(0,{visibleIf:{edit:1}}),this.y=ha.FLOAT(\\\\\\\"@N.y\\\\\\\",{visibleIf:{updateY:1,edit:1},expression:{forEntities:!0}}),this.updateZ=ha.BOOLEAN(0,{visibleIf:{edit:1}}),this.z=ha.FLOAT(\\\\\\\"@N.z\\\\\\\",{visibleIf:{updateZ:1,edit:1},expression:{forEntities:!0}}),this.recompute=ha.BOOLEAN(1,{visibleIf:{edit:0}}),this.invert=ha.BOOLEAN(0)}};class G0 extends uV{constructor(){super(...arguments),this.paramsConfig=U0}static type(){return\\\\\\\"normals\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to update normals of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}async cook(t){const e=t[0];this.pv.edit?await this._eval_expressions_for_core_group(e):this.pv.recompute&&e.computeVertexNormals(),this.pv.invert&&this._invert_normals(e),this.setCoreGroup(e)}async _eval_expressions_for_core_group(t){const e=t.coreObjects();for(let t=0;t<e.length;t++)await this._eval_expressions_for_core_object(e[t])}async _eval_expressions_for_core_object(t){const e=t.object().geometry,n=t.points();let i=e.getAttribute(Ws.NORMAL);if(!i){new fr(e).addNumericAttrib(Ws.NORMAL,3,0),i=e.getAttribute(Ws.NORMAL)}const s=i.array;if(this.pv.updateX)if(this.p.x.hasExpression()&&this.p.x.expressionController)await this.p.x.expressionController.computeExpressionForPoints(n,((t,e)=>{s[3*t.index()+0]=e}));else{let t;for(let e=0;e<n.length;e++)t=n[e],s[3*t.index()+0]=this.pv.x}if(this.pv.updateY)if(this.p.y.hasExpression()&&this.p.y.expressionController)await this.p.y.expressionController.computeExpressionForPoints(n,((t,e)=>{s[3*t.index()+1]=e}));else{let t;for(let e=0;e<n.length;e++)t=n[e],s[3*t.index()+1]=this.pv.y}if(this.pv.updateZ)if(this.p.z.hasExpression()&&this.p.z.expressionController)await this.p.z.expressionController.computeExpressionForPoints(n,((t,e)=>{s[3*t.index()+2]=e}));else{let t;for(let e=0;e<n.length;e++)t=n[e],s[3*t.index()+2]=this.pv.z}}_invert_normals(t){var e;for(let n of t.coreObjects()){const t=null===(e=n.coreGeometry())||void 0===e?void 0:e.geometry();if(t){const e=t.attributes[Ws.NORMAL];if(e){const t=e.array;for(let e=0;e<t.length;e++)t[e]*=-1}}}}}class V0 extends aV{static type(){return\\\\\\\"null\\\\\\\"}cook(t,e){const n=t[0];return n||this.createCoreGroupFromObjects([])}}V0.DEFAULT_PARAMS={},V0.INPUT_CLONED_STATE=Qi.FROM_NODE;const H0=new class extends ua{};class j0 extends uV{constructor(){super(...arguments),this.paramsConfig=H0}static type(){return\\\\\\\"null\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(V0.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new V0(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const W0=new class extends ua{constructor(){super(...arguments),this.geometry=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.SOP}})}};class q0 extends uV{constructor(){super(...arguments),this.paramsConfig=W0}static type(){return\\\\\\\"objectMerge\\\\\\\"}initializeNode(){this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.geometry],(()=>this.p.geometry.rawInput()))}))}))}async cook(t){const e=this.p.geometry.found_node();if(e)if(e.context()==ts.SOP){const t=await e.compute();this.import_input(e,t)}else this.states.error.set(\\\\\\\"found node is not a geometry\\\\\\\");else this.states.error.set(`node not found at path '${this.pv.geometry}'`)}import_input(t,e){let n;null!=(n=e.coreContentCloned())?this.setCoreGroup(n):this.states.error.set(\\\\\\\"invalid target\\\\\\\")}}class X0 extends aV{static type(){return\\\\\\\"objectProperties\\\\\\\"}cook(t,e){const n=t[0];for(let t of n.objects())e.applyToChildren?t.traverse((t=>{this._update_object(t,e)})):this._update_object(t,e);return n}_update_object(t,e){e.tname&&(t.name=e.name),e.trenderOrder&&(t.renderOrder=e.renderOrder),e.tfrustumCulled&&(t.frustumCulled=e.frustumCulled),e.tmatrixAutoUpdate&&(t.matrixAutoUpdate=e.matrixAutoUpdate),e.tvisible&&(t.visible=e.visible),e.tcastShadow&&(t.castShadow=e.castShadow),e.treceiveShadow&&(t.receiveShadow=e.receiveShadow)}}X0.DEFAULT_PARAMS={applyToChildren:!0,tname:!1,name:\\\\\\\"\\\\\\\",trenderOrder:!1,renderOrder:0,tfrustumCulled:!1,frustumCulled:!0,tmatrixAutoUpdate:!1,matrixAutoUpdate:!1,tvisible:!1,visible:!0,tcastShadow:!1,castShadow:!0,treceiveShadow:!1,receiveShadow:!0},X0.INPUT_CLONED_STATE=Qi.FROM_NODE;const Y0=X0.DEFAULT_PARAMS;const $0=new class extends ua{constructor(){super(...arguments),this.applyToChildren=ha.BOOLEAN(Y0.applyToChildren,{separatorAfter:!0}),this.tname=ha.BOOLEAN(Y0.tname),this.name=ha.STRING(Y0.name,{visibleIf:{tname:!0},separatorAfter:!0}),this.trenderOrder=ha.BOOLEAN(Y0.trenderOrder),this.renderOrder=ha.INTEGER(Y0.renderOrder,{visibleIf:{trenderOrder:!0},range:[0,10],rangeLocked:[!1,!1],separatorAfter:!0}),this.tfrustumCulled=ha.BOOLEAN(Y0.tfrustumCulled),this.frustumCulled=ha.BOOLEAN(Y0.frustumCulled,{visibleIf:{tfrustumCulled:!0},separatorAfter:!0}),this.tmatrixAutoUpdate=ha.BOOLEAN(Y0.tmatrixAutoUpdate),this.matrixAutoUpdate=ha.BOOLEAN(Y0.matrixAutoUpdate,{visibleIf:{tmatrixAutoUpdate:!0},separatorAfter:!0}),this.tvisible=ha.BOOLEAN(Y0.tvisible),this.visible=ha.BOOLEAN(Y0.visible,{visibleIf:{tvisible:!0},separatorAfter:!0}),this.tcastShadow=ha.BOOLEAN(Y0.tcastShadow),this.castShadow=ha.BOOLEAN(Y0.castShadow,{visibleIf:{tcastShadow:!0},separatorAfter:!0}),this.treceiveShadow=ha.BOOLEAN(Y0.treceiveShadow),this.receiveShadow=ha.BOOLEAN(Y0.receiveShadow,{visibleIf:{treceiveShadow:!0}})}};class J0 extends uV{constructor(){super(...arguments),this.paramsConfig=$0}static type(){return\\\\\\\"objectProperties\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to change properties of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(X0.INPUT_CLONED_STATE)}async cook(t){this._operation=this._operation||new X0(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const Z0=new class extends ua{};class K0 extends uV{constructor(){super(...arguments),this.paramsConfig=Z0,this._input_configs_by_operation_container=new WeakMap}static type(){return Bl}initializeNode(){this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}set_output_operation_container(t){this._output_operation_container=t}output_operation_container(){return this._output_operation_container}add_input_config(t,e){let n=this._input_configs_by_operation_container.get(t);n||(n=new Map,this._input_configs_by_operation_container.set(t,n)),n.set(e.operation_input_index,e.node_input_index)}add_operation_container_with_path_param_resolve_required(t){this._operation_containers_requiring_resolve||(this._operation_containers_requiring_resolve=[]),this._operation_containers_requiring_resolve.push(t)}resolve_operation_containers_path_params(){if(this._operation_containers_requiring_resolve)for(let t of this._operation_containers_requiring_resolve)t.resolve_path_params(this)}async cook(t){if(this._output_operation_container){this._output_operation_container.setDirty();const e=await this._output_operation_container.compute(t,this._input_configs_by_operation_container);e&&this.setCoreGroup(e)}}}class Q0 extends _f{constructor(t){super(),this._uv_name=t}set_texture_allocations_controller(t){this._texture_allocations_controller=t}handle_globals_node(t,e,n){if(!this._texture_allocations_controller)return;const i=t.io.outputs.namedOutputConnectionPointsByName(e),s=t.glVarName(e);if(this._texture_allocations_controller.variable(e)&&i){const r=i.type(),o=`${r} ${s} = ${this.read_attribute(t,r,e,n)}`;n.addBodyLines(t,[o])}else this.globals_geometry_handler=this.globals_geometry_handler||new Pf,this.globals_geometry_handler.handle_globals_node(t,e,n)}read_attribute(t,e,n,i){if(!this._texture_allocations_controller)return;const s=this._texture_allocations_controller.variable(n);if(!s)return Pf.read_attribute(t,e,n,i);{this.add_particles_sim_uv_attribute(t,i);const e=s.component(),n=s.allocation();if(n){const s=n.textureName(),r=new Nf(t,Uo.SAMPLER_2D,s);i.addDefinitions(t,[r]);return`texture2D( ${s}, ${this._uv_name} ).${e}`}}}add_particles_sim_uv_attribute(t,e){const n=new Sf(t,Uo.VEC2,Q0.UV_ATTRIB),i=new Lf(t,Uo.VEC2,Q0.UV_VARYING);e.addDefinitions(t,[n,i],Mf.VERTEX),e.addDefinitions(t,[i],Mf.FRAGMENT),e.addBodyLines(t,[`${Q0.UV_VARYING} = ${Q0.UV_ATTRIB}`],Mf.VERTEX)}}Q0.UV_ATTRIB=\\\\\\\"particles_sim_uv_attrib\\\\\\\",Q0.UV_VARYING=\\\\\\\"particles_sim_uv_varying\\\\\\\",Q0.PARTICLE_SIM_UV=\\\\\\\"particleUV\\\\\\\";class t1{constructor(t){this.node=t,this._particles_group_objects=[],this._all_shader_names=[],this._all_uniform_names=[],this.globals_handler=new Q0(Q0.UV_VARYING)}setShadersByName(t){this._shaders_by_name=t,this._all_shader_names=[],this._all_uniform_names=[],this._shaders_by_name.forEach(((t,e)=>{this._all_shader_names.push(e),this._all_uniform_names.push(`texture_${e}`)})),this.reset_render_material()}assign_render_material(){if(this._render_material){for(let t of this._particles_group_objects){const e=t;e.geometry&&(e.material=this._render_material,yr.applyCustomMaterials(e,this._render_material),e.matrixAutoUpdate=!1,e.updateMatrix())}this._render_material.needsUpdate=!0,this.update_render_material_uniforms()}}update_render_material_uniforms(){var t;if(!this._render_material)return;let e,n;for(let i=0;i<this._all_shader_names.length;i++){n=this._all_shader_names[i],e=this._all_uniform_names[i];const s=null===(t=this.node.gpuController.getCurrentRenderTarget(n))||void 0===t?void 0:t.texture;s&&(this._render_material.uniforms[e].value=s,yr.assign_custom_uniforms(this._render_material,e,s))}}reset_render_material(){this._render_material=void 0,this._particles_group_objects=[]}material(){return this._render_material}initialized(){return null!=this._render_material}init_core_group(t){for(let e of t.objectsWithGeo())this._particles_group_objects.push(e)}async init_render_material(){var t;const e=null===(t=this.node.assemblerController)||void 0===t?void 0:t.assembler;if(this._render_material)return;this.node.p.material.isDirty()&&await this.node.p.material.compute();const n=this.node.p.material.found_node();if(n){if(e){const t=e.textureAllocationsController().toJSON(this.node.scene()),i=n.assemblerController;i&&(this.globals_handler.set_texture_allocations_controller(e.textureAllocationsController()),i.set_assembler_globals_handler(this.globals_handler)),this._texture_allocations_json&&JSON.stringify(this._texture_allocations_json)==JSON.stringify(t)||(this._texture_allocations_json=b.cloneDeep(t),i&&i.set_compilation_required_and_dirty())}const t=await n.compute();this._render_material=t.material()}else this.node.states.error.set(\\\\\\\"render material not valid\\\\\\\");if(this._render_material){const t=this._render_material.uniforms;for(let e of this._all_uniform_names){const n={value:null};t[e]=n,this._render_material&&yr.init_custom_material_uniforms(this._render_material,e,n)}}this.assign_render_material()}}var e1,n1=function(t,e,n){this.variables=[],this.currentTextureIndex=0;var i=w.G,s=new vs;s.matrixAutoUpdate=!1;var r=new of.a;r.position.z=1,r.matrixAutoUpdate=!1,r.updateMatrix();var o={passThruTexture:{value:null}},a=h(\\\\\\\"uniform sampler2D passThruTexture;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec2 uv = gl_FragCoord.xy / resolution.xy;\\\\n\\\\n\\\\tgl_FragColor = texture2D( passThruTexture, uv );\\\\n\\\\n}\\\\n\\\\\\\",o),l=new B.a(new L(2,2),a);function c(n){n.defines.resolution=\\\\\\\"vec2( \\\\\\\"+t.toFixed(1)+\\\\\\\", \\\\\\\"+e.toFixed(1)+\\\\\\\" )\\\\\\\"}function h(t,e){var n=new F({uniforms:e=e||{},vertexShader:\\\\\\\"void main()\\\\t{\\\\n\\\\n\\\\tgl_Position = vec4( position, 1.0 );\\\\n\\\\n}\\\\n\\\\\\\",fragmentShader:t});return c(n),n}l.matrixAutoUpdate=!1,l.updateMatrix(),s.add(l),this.setDataType=function(t){return i=t,this},this.addVariable=function(t,e,n){var i={name:t,initialValueTexture:n,material:this.createShaderMaterial(e),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:w.ob,magFilter:w.ob};return this.variables.push(i),i},this.setVariableDependencies=function(t,e){t.dependencies=e},this.init=function(){if(!1===n.capabilities.isWebGL2&&!1===n.extensions.has(\\\\\\\"OES_texture_float\\\\\\\"))return\\\\\\\"No OES_texture_float support for float textures.\\\\\\\";if(0===n.capabilities.maxVertexTextures)return\\\\\\\"No support for vertex shader textures.\\\\\\\";for(var i=0;i<this.variables.length;i++){var s=this.variables[i];s.renderTargets[0]=this.createRenderTarget(t,e,s.wrapS,s.wrapT,s.minFilter,s.magFilter),s.renderTargets[1]=this.createRenderTarget(t,e,s.wrapS,s.wrapT,s.minFilter,s.magFilter),this.renderTexture(s.initialValueTexture,s.renderTargets[0]),this.renderTexture(s.initialValueTexture,s.renderTargets[1]);var r=s.material.uniforms;if(null!==s.dependencies)for(var o=0;o<s.dependencies.length;o++){var a=s.dependencies[o];if(a.name!==s.name){for(var l=!1,c=0;c<this.variables.length;c++)if(a.name===this.variables[c].name){l=!0;break}if(!l)return\\\\\\\"Variable dependency not found. Variable=\\\\\\\"+s.name+\\\\\\\", dependency=\\\\\\\"+a.name}r[a.name]={value:null}}}return this.currentTextureIndex=0,null},this.compute=function(){for(var t=this.currentTextureIndex,e=0===this.currentTextureIndex?1:0,n=0,i=this.variables.length;n<i;n++){var s=this.variables[n];if(null!==s.dependencies)for(var r=s.material.uniforms,o=0,a=s.dependencies.length;o<a;o++){var l=s.dependencies[o];r[l.name].value=l.renderTargets[t].texture}this.doRenderTarget(s.material,s.renderTargets[e])}this.currentTextureIndex=e},this.getCurrentRenderTarget=function(t){return t.renderTargets[this.currentTextureIndex]},this.getAlternateRenderTarget=function(t){return t.renderTargets[0===this.currentTextureIndex?1:0]},this.addResolutionDefine=c,this.createShaderMaterial=h,this.createRenderTarget=function(n,s,r,o,a,l){return n=n||t,s=s||e,r=r||w.n,o=o||w.n,a=a||w.ob,l=l||w.ob,new K(n,s,{wrapS:r,wrapT:o,minFilter:a,magFilter:l,format:w.Ib,type:i,depthBuffer:!1})},this.createTexture=function(){var n=new Float32Array(t*e*4);return new vo.a(n,t,e,w.Ib,w.G)},this.renderTexture=function(t,e){o.passThruTexture.value=t,this.doRenderTarget(a,e),o.passThruTexture.value=null},this.doRenderTarget=function(t,e){var i=n.getRenderTarget();l.material=t,n.setRenderTarget(e),n.render(s,r),l.material=a,n.setRenderTarget(i)}};!function(t){t.FLOAT=\\\\\\\"float\\\\\\\",t.HALF_FLOAT=\\\\\\\"half\\\\\\\"}(e1||(e1={}));const i1=[e1.FLOAT,e1.HALF_FLOAT],s1={[e1.FLOAT]:w.G,[e1.HALF_FLOAT]:w.M};class r1{constructor(t){this.node=t,this._simulationRestartRequired=!1,this._points=[],this._variablesByName=new Map,this._allVariables=[],this._createdTexturesByName=new Map,this._deltaTime=0,this._usedTexturesSize=new d.a}dispose(){this._graph_node&&this._graph_node.dispose()}setPersistedTextureAllocationController(t){this._persistedTextureAllocationsController=t}setShadersByName(t){this._shadersByName=t,this.resetGpuCompute()}allVariables(){return this._allVariables}async init(t){this.initParticleGroupPoints(t),await this.create_gpu_compute()}getCurrentRenderTarget(t){var e;const n=this._variablesByName.get(t);if(n)return null===(e=this._gpuCompute)||void 0===e?void 0:e.getCurrentRenderTarget(n)}initParticleGroupPoints(t){this.resetGpuCompute(),t&&(this._particlesCoreGroup=t,this._points=this._getPoints()||[])}computeSimilationIfRequired(){const t=this.node.scene().frame(),e=this.node.pv.startFrame;t>=e&&(null==this._lastSimulatedFrame&&(this._lastSimulatedFrame=e-1),null==this._lastSimulatedTime&&(this._lastSimulatedTime=this.node.scene().time()),t>this._lastSimulatedFrame&&this._computeSimulation(t-this._lastSimulatedFrame))}_computeSimulation(t=1){if(!this._gpuCompute||null==this._lastSimulatedTime)return;this._updateSimulationMaterialUniforms();for(let e=0;e<t;e++)this._gpuCompute.compute();this.node.renderController.update_render_material_uniforms(),this._lastSimulatedFrame=this.node.scene().frame();const e=this.node.scene().time();this._deltaTime=e-this._lastSimulatedTime,this._deltaTime=Math.min(this._deltaTime,.1),this._lastSimulatedTime=e}_dataType(){const t=i1[this.node.pv.dataType];return s1[t]}_textureNameForShaderName(t){return`texture_${t}`}async create_gpu_compute(){var t,e;if(this.node.pv.autoTexturesSize){const t=or.nearestPower2(Math.sqrt(this._points.length));this._usedTexturesSize.x=Math.min(t,this.node.pv.maxTexturesSize.x),this._usedTexturesSize.y=Math.min(t,this.node.pv.maxTexturesSize.y)}else{if(!Object(On.i)(this.node.pv.texturesSize.x)||!Object(On.i)(this.node.pv.texturesSize.y))return void this.node.states.error.set(\\\\\\\"texture size must be a power of 2\\\\\\\");const t=this.node.pv.texturesSize.x*this.node.pv.texturesSize.y;if(this._points.length>t)return void this.node.states.error.set(`max particles is set to (${this.node.pv.texturesSize.x}x${this.node.pv.texturesSize.y}=) ${t}`);this._usedTexturesSize.copy(this.node.pv.texturesSize)}this._forceTimeDependent(),this._initParticlesUVs(),this.node.renderController.reset_render_material();const n=await li.renderersController.waitForRenderer();if(n?this._renderer=n:this.node.states.error.set(\\\\\\\"no renderer found\\\\\\\"),!this._renderer)return;const i=new n1(this._usedTexturesSize.x,this._usedTexturesSize.y,this._renderer);if(i.setDataType(this._dataType()),this._gpuCompute=i,this._gpuCompute){this._lastSimulatedFrame=void 0,this._variablesByName.forEach(((t,e)=>{t.renderTargets[0].dispose(),t.renderTargets[1].dispose(),this._variablesByName.delete(e)})),this._allVariables=[],null===(t=this._shadersByName)||void 0===t||t.forEach(((t,e)=>{if(this._gpuCompute){const n=this._gpuCompute.addVariable(this._textureNameForShaderName(e),t,this._createdTexturesByName.get(e));this._variablesByName.set(e,n),this._allVariables.push(n)}})),null===(e=this._variablesByName)||void 0===e||e.forEach(((t,e)=>{this._gpuCompute&&this._gpuCompute.setVariableDependencies(t,this._allVariables)})),this._createTextureRenderTargets(),this._fillTextures(),this._createSimulationMaterialUniforms();var s=this._gpuCompute.init();null!==s&&(console.error(s),this.node.states.error.set(s))}else this.node.states.error.set(\\\\\\\"failed to create the GPUComputationRenderer\\\\\\\")}_forceTimeDependent(){this._graph_node||(this._graph_node=new Mi(this.node.scene(),\\\\\\\"gpu_compute\\\\\\\"),this._graph_node.addGraphInput(this.node.scene().timeController.graphNode),this._graph_node.addPostDirtyHook(\\\\\\\"on_time_change\\\\\\\",this._onGraphNodeDirty.bind(this)))}_onGraphNodeDirty(){this.node.isOnStartFrame()?this.node.setDirty():this.computeSimilationIfRequired()}materials(){const t=[];return this._variablesByName.forEach(((e,n)=>{t.push(e.material)})),t}_createSimulationMaterialUniforms(){const t=this.node.assemblerController,e=null==t?void 0:t.assembler;if(!e&&!this._persistedTextureAllocationsController)return;const n=[];this._variablesByName.forEach(((t,e)=>{n.push(t.material)}));const i=this._readonlyAllocations();for(let t of n)t.uniforms[TR.TIME]={value:this.node.scene().time()},t.uniforms[TR.DELTA_TIME]={value:this.node.scene().time()},i&&this._assignReadonlyTextures(t,i);if(e)for(let t of n)for(let n of e.param_configs())t.uniforms[n.uniform_name]=n.uniform;else{const t=this.node.persisted_config.loaded_data();if(t){const e=this.node.persisted_config.uniforms();if(e){const s=t.param_uniform_pairs;for(let t of s){const s=t[0],r=t[1],o=this.node.params.get(s),a=e[r];for(let t of n)t.uniforms[r]=a,i&&this._assignReadonlyTextures(t,i);o&&a&&o.options.setOption(\\\\\\\"callback\\\\\\\",(()=>{for(let t of n)tg.callback(o,t.uniforms[r])}))}}}}}_assignReadonlyTextures(t,e){for(let n of e){const e=n.shaderName(),i=this._createdTexturesByName.get(e);if(i){const n=this._textureNameForShaderName(e);t.uniforms[n]={value:i}}}}_updateSimulationMaterialUniforms(){for(let t of this._allVariables)t.material.uniforms[TR.TIME].value=this.node.scene().time(),t.material.uniforms[TR.DELTA_TIME].value=this._deltaTime}_initParticlesUVs(){var t=new Float32Array(2*this._points.length);let e=0;for(var n=0,i=0;i<this._usedTexturesSize.x;i++)for(var s=0;s<this._usedTexturesSize.y&&(t[e++]=s/(this._usedTexturesSize.x-1),t[e++]=i/(this._usedTexturesSize.y-1),!((n+=2)>=t.length));s++);const r=Q0.UV_ATTRIB;if(this._particlesCoreGroup)for(let e of this._particlesCoreGroup.coreGeometries()){const n=e.geometry(),i=e.markedAsInstance()?I$:C.a;n.setAttribute(r,new i(t,2))}}createdTexturesByName(){return this._createdTexturesByName}_fillTextures(){const t=this._textureAllocationsController();t&&this._createdTexturesByName.forEach(((e,n)=>{const i=t.allocationForShaderName(n);if(!i)return void console.warn(`no allocation found for shader ${n}`);const s=i.variables();if(!s)return void console.warn(\\\\\\\"allocation has no variables\\\\\\\");const r=e.image.data;for(let t of s){const e=t.position();let n=t.name();const i=this._points[0];if(i){if(i.hasAttrib(n)){const t=i.attribSize(n);let s=e;for(let e of this._points){if(1==t){const t=e.attribValue(n);r[s]=t}else e.attribValue(n).toArray(r,s);s+=4}}}}}))}resetGpuCompute(){this._gpuCompute=void 0,this._simulationRestartRequired=!0}setRestartNotRequired(){this._simulationRestartRequired=!1}resetGpuComputeAndSetDirty(){this.resetGpuCompute(),this.node.setDirty()}resetParticleGroups(){this._particlesCoreGroup=void 0}initialized(){return null!=this._particlesCoreGroup&&null!=this._gpuCompute}_createTextureRenderTargets(){this._createdTexturesByName.forEach(((t,e)=>{t.dispose()})),this._createdTexturesByName.clear(),this._variablesByName.forEach(((t,e)=>{this._gpuCompute&&this._createdTexturesByName.set(e,this._gpuCompute.createTexture())}));const t=this._readonlyAllocations();if(t&&this._gpuCompute)for(let e of t)this._createdTexturesByName.set(e.shaderName(),this._gpuCompute.createTexture())}_textureAllocationsController(){var t;return(null===(t=this.node.assemblerController)||void 0===t?void 0:t.assembler.textureAllocationsController())||this._persistedTextureAllocationsController}_readonlyAllocations(){var t;return null===(t=this._textureAllocationsController())||void 0===t?void 0:t.readonlyAllocations()}restartSimulationIfRequired(){this._simulationRestartRequired&&this._restartSimulation()}_restartSimulation(){this._lastSimulatedTime=void 0,this._createTextureRenderTargets();this._getPoints()&&(this._fillTextures(),this._variablesByName.forEach(((t,e)=>{const n=this._createdTexturesByName.get(e);this._gpuCompute&&n&&(this._gpuCompute.renderTexture(n,t.renderTargets[0]),this._gpuCompute.renderTexture(n,t.renderTargets[1]))})))}_getPoints(){if(!this._particlesCoreGroup)return;let t=this._particlesCoreGroup.coreGeometries();const e=t[0];if(e){const n=e.markedAsInstance(),i=[];for(let e of t)e.markedAsInstance()==n&&i.push(e);const s=[];for(let t of i)for(let e of t.points())s.push(e);return s}return[]}}class o1{constructor(t,e){if(this._name=t,this._size=e,this._position=-1,this._readonly=!1,!t)throw\\\\\\\"TextureVariable requires a name\\\\\\\"}merge(t){var e;t.readonly()||this.setReadonly(!1),null===(e=t.graphNodeIds())||void 0===e||e.forEach(((t,e)=>{this.addGraphNodeId(e)}))}setReadonly(t){this._readonly=t}readonly(){return this._readonly}setAllocation(t){this._allocation=t}allocation(){return this._allocation}graphNodeIds(){return this._graph_node_ids}addGraphNodeId(t){this._graph_node_ids=this._graph_node_ids||new Map,this._graph_node_ids.set(t,!0)}name(){return this._name}size(){return this._size}setPosition(t){this._position=t}position(){return this._position}component(){return\\\\\\\"xyzw\\\\\\\".split(\\\\\\\"\\\\\\\").splice(this._position,this._size).join(\\\\\\\"\\\\\\\")}static fromJSON(t){return new o1(t.name,t.size)}toJSON(t){const e=[];return this._graph_node_ids&&this._graph_node_ids.forEach(((n,i)=>{const s=t.graph.nodeFromId(i);if(s){const t=s.path();t&&e.push(t)}})),{name:this.name(),size:this.size(),nodes:e}}}class a1{constructor(){this._size=0}addVariable(t){this._variables=this._variables||[],this._variables.push(t),t.setPosition(this._size),t.setAllocation(this),this._size+=t.size()}hasSpaceForVariable(t){return this._size+t.size()<=4}shaderName(){var t;return((null===(t=this.variables())||void 0===t?void 0:t.map((t=>t.name())))||[\\\\\\\"no_variables_allocated\\\\\\\"]).join(\\\\\\\"_SEPARATOR_\\\\\\\")}textureName(){return`texture_${this.shaderName()}`}variables(){return this._variables}variablesForInputNode(t){var e;return null===(e=this._variables)||void 0===e?void 0:e.filter((e=>{var n;return(null===(n=e.graphNodeIds())||void 0===n?void 0:n.has(t.graphNodeId()))||!1}))}inputNamesForNode(t){const e=this.variablesForInputNode(t);if(e)return t.type()==ps.ATTRIBUTE?[wf.INPUT_NAME]:e.map((t=>t.name()))}variable(t){if(this._variables)for(let e of this._variables)if(e.name()==t)return e}static fromJSON(t){const e=new a1;for(let n of t){const t=o1.fromJSON(n);e.addVariable(t)}return e}toJSON(t){return this._variables?this._variables.map((e=>e.toJSON(t))):[]}}const l1=[\\\\\\\"position\\\\\\\",\\\\\\\"normal\\\\\\\",\\\\\\\"color\\\\\\\",\\\\\\\"uv\\\\\\\"];class c1{constructor(){this._writableAllocations=[],this._readonlyAllocations=[]}static _sortNodes(t){const e=t.filter((t=>t.type()==OF.type())),n=t.filter((t=>t.type()!=OF.type())),i=n.map((t=>t.name())).sort(),s=new Map;for(let t of n)s.set(t.name(),t);for(let t of i){const n=s.get(t);n&&e.push(n)}return e}allocateConnectionsFromRootNodes(t,e){const n=[];t=c1._sortNodes(t),e=c1._sortNodes(e);for(let e of t){const t=e.graphNodeId();switch(e.type()){case OF.type():for(let i of e.io.inputs.namedInputConnectionPoints()){if(e.io.inputs.named_input(i.name())){const e=new o1(i.name(),Wo[i.type()]);e.addGraphNodeId(t),n.push(e)}}break;case wf.type():{const i=e,s=i.connected_input_node(),r=i.connected_input_connection_point();if(s&&r){const e=new o1(i.attribute_name,Wo[r.type()]);e.addGraphNodeId(t),n.push(e)}break}}}for(let t of e){const e=t.graphNodeId();switch(t.type()){case II.type():{const i=t;for(let t of i.io.outputs.used_output_names()){if(l1.includes(t)){const s=i.io.outputs.namedOutputConnectionPointsByName(t);if(s){const i=s.type(),r=new o1(t,Wo[i]);r.addGraphNodeId(e),n.push(r)}}}break}case wf.type():{const i=t,s=i.output_connection_point();if(s){const t=new o1(i.attribute_name,Wo[s.type()]);i.isExporting()||t.setReadonly(!0),t.addGraphNodeId(e),n.push(t)}break}}}this._allocateVariables(n)}_allocateVariables(t){const e=f.sortBy(t,(t=>-t.size())),n=this._ensureVariablesAreUnique(e);for(let t of n)t.readonly()?this._allocateVariable(t,this._readonlyAllocations):this._allocateVariable(t,this._writableAllocations)}_ensureVariablesAreUnique(t){const e=new Map;for(let n of t)h.pushOnArrayAtEntry(e,n.name(),n);const n=[];return e.forEach(((t,e)=>{const i=t[0];n.push(i);for(let e=1;e<t.length;e++){const n=t[e];i.merge(n)}})),n}_allocateVariable(t,e){let n=this.hasVariable(t.name());if(n)throw\\\\\\\"no variable should be allocated since they have been made unique before\\\\\\\";if(!n)for(let i of e)!n&&i.hasSpaceForVariable(t)&&(i.addVariable(t),n=!0);if(!n){const n=new a1;e.push(n),n.addVariable(t)}}_addWritableAllocation(t){this._writableAllocations.push(t)}_addReadonlyAllocation(t){this._readonlyAllocations.push(t)}readonlyAllocations(){return this._readonlyAllocations}shaderNames(){const t=this._writableAllocations.map((t=>t.shaderName()));return f.uniq(t)}createShaderConfigs(){return[]}allocationForShaderName(t){const e=this._writableAllocations.filter((e=>e.shaderName()==t))[0];return e||this._readonlyAllocations.filter((e=>e.shaderName()==t))[0]}inputNamesForShaderName(t,e){const n=this.allocationForShaderName(e);if(n)return n.inputNamesForNode(t)}variable(t){for(let e of this._writableAllocations){const n=e.variable(t);if(n)return n}for(let e of this._readonlyAllocations){const n=e.variable(t);if(n)return n}}variables(){const t=this._writableAllocations.map((t=>t.variables()||[])).flat(),e=this._writableAllocations.map((t=>t.variables()||[])).flat();return t.concat(e)}hasVariable(t){return this.variables().map((t=>t.name())).includes(t)}static fromJSON(t){const e=new c1;for(let n of t.writable){const t=n[Object.keys(n)[0]],i=a1.fromJSON(t);e._addWritableAllocation(i)}for(let n of t.readonly){const t=n[Object.keys(n)[0]],i=a1.fromJSON(t);e._addReadonlyAllocation(i)}return e}toJSON(t){return{writable:this._writableAllocations.map((e=>({[e.shaderName()]:e.toJSON(t)}))),readonly:this._readonlyAllocations.map((e=>({[e.shaderName()]:e.toJSON(t)})))}}print(t){console.warn(JSON.stringify(this.toJSON(t),[\\\\\\\"\\\\\\\"],2))}}class h1 extends Kf{constructor(t){super(t),this.node=t}toJSON(){const t=this.node.assemblerController;if(!t)return;const e={};this.node.shaders_by_name().forEach(((t,n)=>{e[n]=t}));const n=t.assembler.textureAllocationsController().toJSON(this.node.scene()),i=[],s=new F,r=t.assembler.param_configs();for(let t of r)i.push([t.name(),t.uniform_name]),s.uniforms[t.uniform_name]=t.uniform;const o=this._materialToJson(s,{node:this.node,suffix:\\\\\\\"main\\\\\\\"});return{shaders_by_name:e,texture_allocations:n,param_uniform_pairs:i,uniforms_owner:o||{}}}load(t){li.playerMode()&&(this._loaded_data=t,this.node.init_with_persisted_config())}loaded_data(){return this._loaded_data}shaders_by_name(){if(this._loaded_data){const t=new Map,e=Object.keys(this._loaded_data.shaders_by_name);for(let n of e)t.set(n,this._loaded_data.shaders_by_name[n]);return t}}texture_allocations_controller(){if(this._loaded_data)return c1.fromJSON(this._loaded_data.texture_allocations)}uniforms(){if(this._loaded_data){const t=this._loadMaterial(this._loaded_data.uniforms_owner);return(null==t?void 0:t.uniforms)||{}}}}const u1=new class extends ua{constructor(){super(...arguments),this.startFrame=ha.FLOAT(Nl.START_FRAME,{range:[0,1e3],rangeLocked:[!0,!1]}),this.autoTexturesSize=ha.BOOLEAN(1),this.maxTexturesSize=ha.VECTOR2([1024,1024],{visibleIf:{autoTexturesSize:1}}),this.texturesSize=ha.VECTOR2([64,64],{visibleIf:{autoTexturesSize:0}}),this.dataType=ha.INTEGER(0,{menu:{entries:i1.map(((t,e)=>({value:e,name:t})))}}),this.reset=ha.BUTTON(null,{callback:(t,e)=>{d1.PARAM_CALLBACK_reset(t)}}),this.material=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.MAT},dependentOnFoundNode:!1})}};class d1 extends uV{constructor(){super(...arguments),this.paramsConfig=u1,this._assembler_controller=this._create_assembler_controller(),this.persisted_config=new h1(this),this.globals_handler=new Q0(Q0.PARTICLE_SIM_UV),this._shaders_by_name=new Map,this.gpuController=new r1(this),this.renderController=new t1(this),this._reset_material_if_dirty_bound=this._reset_material_if_dirty.bind(this),this._children_controller_context=ts.GL}static type(){return\\\\\\\"particlesSystemGpu\\\\\\\"}dispose(){super.dispose(),this.gpuController.dispose()}get assemblerController(){return this._assembler_controller}usedAssembler(){return jn.GL_PARTICLES}_create_assembler_controller(){return li.assemblersRegister.assembler(this,this.usedAssembler())}shaders_by_name(){return this._shaders_by_name}static require_webgl2(){return!0}static PARAM_CALLBACK_reset(t){t.PARAM_CALLBACK_reset()}PARAM_CALLBACK_reset(){this.gpuController.resetGpuComputeAndSetDirty()}static displayedInputNames(){return[\\\\\\\"points to emit particles from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER),this.addPostDirtyHook(\\\\\\\"_reset_material_if_dirty\\\\\\\",this._reset_material_if_dirty_bound)}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}childrenAllowed(){return this.assemblerController?super.childrenAllowed():(this.scene().markAsReadOnly(this),!1)}async _reset_material_if_dirty(){this.p.material.isDirty()&&(this.renderController.reset_render_material(),this.isOnStartFrame()||await this.renderController.init_render_material())}isOnStartFrame(){return this.scene().frame()==this.pv.startFrame}async cook(t){this.gpuController.setRestartNotRequired();const e=t[0];this.compileIfRequired();const n=this.isOnStartFrame();n&&this.gpuController.resetParticleGroups(),this.gpuController.initialized()||await this.gpuController.init(e),this.renderController.initialized()||(this.renderController.init_core_group(e),await this.renderController.init_render_material()),this.gpuController.restartSimulationIfRequired(),this.gpuController.computeSimilationIfRequired(),n?this.setCoreGroup(e):this.cookController.endCook()}async compileIfRequired(){var t;(null===(t=this.assemblerController)||void 0===t?void 0:t.compileRequired())&&await this.run_assembler()}async run_assembler(){const t=this.assemblerController;if(!t)return;const e=this._find_export_nodes();if(e.length>0){const n=e;t.set_assembler_globals_handler(this.globals_handler),t.assembler.set_root_nodes(n),t.assembler.compile(),t.post_compile()}const n=t.assembler.shaders_by_name();this._setShaderNames(n)}_setShaderNames(t){this._shaders_by_name=t,this.gpuController.setShadersByName(this._shaders_by_name),this.renderController.setShadersByName(this._shaders_by_name),this.gpuController.resetGpuCompute(),this.gpuController.resetParticleGroups()}init_with_persisted_config(){const t=this.persisted_config.shaders_by_name(),e=this.persisted_config.texture_allocations_controller();t&&e&&(this._setShaderNames(t),this.gpuController.setPersistedTextureAllocationController(e))}_find_export_nodes(){const t=Df.findAttributeExportNodes(this),e=Df.findOutputNodes(this);if(e.length>1)return this.states.error.set(\\\\\\\"only one output node is allowed\\\\\\\"),[];const n=e[0];return n&&t.push(n),t}}class p1 extends aV{static type(){return\\\\\\\"peak\\\\\\\"}cook(t,e){const n=t[0];let i,s;for(let t of n.objects())t.traverse((t=>{let n;if(null!=(n=t.geometry)){for(s of(i=new fr(n),i.points())){const t=s.normal(),n=s.position().clone().add(t.multiplyScalar(e.amount));s.setPosition(n)}i.geometry().getAttribute(\\\\\\\"position\\\\\\\").needsUpdate=!0}}));return t[0]}}p1.DEFAULT_PARAMS={amount:0};const _1=p1.DEFAULT_PARAMS;const m1=new class extends ua{constructor(){super(...arguments),this.amount=ha.FLOAT(_1.amount,{range:[-1,1]})}};class f1 extends uV{constructor(){super(...arguments),this.paramsConfig=m1}static type(){return\\\\\\\"peak\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}cook(t){this._operation=this._operation||new p1(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const g1=new p.a(0,0,1),v1=new p.a(0,0,1),y1=new p.a(0,1,0);class x1 extends aV{constructor(){super(...arguments),this._core_transform=new bU,this._size=new p.a,this._center=new p.a,this._segmentsCount=new d.a(1,1)}static type(){return\\\\\\\"plane\\\\\\\"}cook(t,e){const n=t[0];return n?this._cook_with_input(n,e):this._cook_without_input(e)}_cook_without_input(t){const e=this._create_plane(t.size,t);this._core_transform.rotateGeometry(e,g1,t.direction);const n=this._core_transform.translationMatrix(t.center);return e.applyMatrix4(n),this.createCoreGroupFromGeometry(e)}_cook_with_input(t,e){const n=t.boundingBox();n.getSize(this._size),n.getCenter(this._center);const i=new d.a(this._size.x,this._size.z),s=this._create_plane(i,e);this._core_transform.rotateGeometry(s,v1,y1);const r=this._core_transform.translationMatrix(this._center);return s.applyMatrix4(r),this.createCoreGroupFromGeometry(s)}_create_plane(t,e){return t=t.clone(),e.useSegmentsCount?(this._segmentsCount.x=Math.floor(e.segments.x),this._segmentsCount.y=Math.floor(e.segments.y)):e.stepSize>0&&(this._segmentsCount.x=Math.floor(t.x/e.stepSize),this._segmentsCount.y=Math.floor(t.y/e.stepSize),t.x=this._segmentsCount.x*e.stepSize,t.y=this._segmentsCount.y*e.stepSize),new L(t.x,t.y,this._segmentsCount.x,this._segmentsCount.y)}}x1.DEFAULT_PARAMS={size:new d.a(1,1),useSegmentsCount:!1,stepSize:1,segments:new d.a(1,1),direction:new p.a(0,1,0),center:new p.a(0,0,0)},x1.INPUT_CLONED_STATE=Qi.NEVER;const b1=x1.DEFAULT_PARAMS;const w1=new class extends ua{constructor(){super(...arguments),this.size=ha.VECTOR2(b1.size),this.useSegmentsCount=ha.BOOLEAN(b1.useSegmentsCount),this.stepSize=ha.FLOAT(b1.stepSize,{range:[.001,1],rangeLocked:[!1,!1],visibleIf:{useSegmentsCount:0}}),this.segments=ha.VECTOR2(b1.segments,{visibleIf:{useSegmentsCount:1}}),this.direction=ha.VECTOR3(b1.direction),this.center=ha.VECTOR3(b1.center)}};class T1 extends uV{constructor(){super(...arguments),this.paramsConfig=w1}static type(){return\\\\\\\"plane\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create plane from (optional)\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(x1.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new x1(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class A1 extends aV{static type(){return\\\\\\\"playerCapsule\\\\\\\"}cook(t,e){return this.createCoreGroupFromGeometry(Uy(e))}}A1.DEFAULT_PARAMS={radius:.5,height:1};const M1=A1.DEFAULT_PARAMS;const E1=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(M1.radius,{range:[0,1],rangeLocked:[!0,!1]}),this.height=ha.FLOAT(M1.height,{range:[0,1],rangeLocked:[!0,!1]})}};class S1 extends uV{constructor(){super(...arguments),this.paramsConfig=E1}static type(){return\\\\\\\"playerCapsule\\\\\\\"}initializeNode(){this.io.inputs.setCount(0)}cook(t){this._operation=this._operation||new A1(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const C1=\\\\\\\"position\\\\\\\";const N1=new class extends ua{constructor(){super(...arguments),this.updateX=ha.BOOLEAN(0),this.x=ha.FLOAT(\\\\\\\"@P.x\\\\\\\",{visibleIf:{updateX:1},expression:{forEntities:!0}}),this.updateY=ha.BOOLEAN(0),this.y=ha.FLOAT(\\\\\\\"@P.y\\\\\\\",{visibleIf:{updateY:1},expression:{forEntities:!0}}),this.updateZ=ha.BOOLEAN(0),this.z=ha.FLOAT(\\\\\\\"@P.z\\\\\\\",{visibleIf:{updateZ:1},expression:{forEntities:!0}}),this.updateNormals=ha.BOOLEAN(1)}};class L1 extends uV{constructor(){super(...arguments),this.paramsConfig=N1,this._x_arrays_by_geometry_uuid=new Map,this._y_arrays_by_geometry_uuid=new Map,this._z_arrays_by_geometry_uuid=new Map}static type(){return\\\\\\\"point\\\\\\\"}static displayedInputNames(){return[\\\\\\\"points to move\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}async cook(t){const e=t[0];await this._eval_expressions_for_core_group(e)}async _eval_expressions_for_core_group(t){const e=t.coreObjects();for(let t=0;t<e.length;t++)await this._eval_expressions_for_core_object(e[t]);this.pv.updateNormals&&t.computeVertexNormals();const n=t.geometries();for(let t of n)t.computeBoundingBox();if(!this.io.inputs.cloneRequired(0)){const e=t.geometries();for(let t of e){t.getAttribute(C1).needsUpdate=!0}}this.setCoreGroup(t)}async _eval_expressions_for_core_object(t){const e=t.object().geometry,n=t.points(),i=e.getAttribute(C1).array,s=await this._update_from_param(e,i,n,this.p.updateX,this.p.x,this.pv.x,this._x_arrays_by_geometry_uuid,0),r=await this._update_from_param(e,i,n,this.p.updateY,this.p.y,this.pv.y,this._y_arrays_by_geometry_uuid,1),o=await this._update_from_param(e,i,n,this.p.updateZ,this.p.z,this.pv.z,this._z_arrays_by_geometry_uuid,2);s&&this._commit_tmp_values(s,i,0),r&&this._commit_tmp_values(r,i,1),o&&this._commit_tmp_values(o,i,2)}async _update_from_param(t,e,n,i,s,r,o,a){const l=i,c=s;let h=this._init_array_if_required(t,o,n.length,a);if(l.value)if(c.hasExpression()&&c.expressionController)await c.expressionController.computeExpressionForPoints(n,((t,e)=>{h[t.index()]=e}));else{let t;for(let e=0;e<n.length;e++)t=n[e],h[t.index()]=r}return h}_init_array_if_required(t,e,n,i){const s=t.uuid,r=e.get(s);if(r){if(r.length<n){const r=this._array_for_component(t,n,i);return e.set(s,r),r}return r}{const r=this._array_for_component(t,n,i);return e.set(s,r),r}}_array_for_component(t,e,n){const i=new Array(e),s=t.getAttribute(C1).array;for(let t=0;t<i.length;t++)i[t]=s[3*t+n];return i}_commit_tmp_values(t,e,n){for(let i=0;i<t.length;i++)e[3*i+n]=t[i]}}class O1 extends aV{static type(){return\\\\\\\"pointLight\\\\\\\"}cook(t,e){const n=new QU.a;return n.matrixAutoUpdate=!1,n.castShadow=!0,n.shadow.bias=-.001,n.shadow.mapSize.x=1024,n.shadow.mapSize.y=1024,n.shadow.camera.near=.1,n.color=e.color,n.intensity=e.intensity,n.decay=e.decay,n.distance=e.distance,n.castShadow=e.castShadows,n.shadow.mapSize.copy(e.shadowRes),n.shadow.camera.near=e.shadowNear,n.shadow.camera.far=e.shadowFar,n.shadow.bias=e.shadowBias,this.createCoreGroupFromObjects([n])}}O1.DEFAULT_PARAMS={color:new D.a(1,1,1),intensity:1,decay:.1,distance:100,castShadows:!1,shadowRes:new d.a(1024,1024),shadowBias:.001,shadowNear:1,shadowFar:100},O1.INPUT_CLONED_STATE=Qi.NEVER;const P1=O1.DEFAULT_PARAMS;const R1=new class extends ua{constructor(){super(...arguments),this.light=ha.FOLDER(),this.color=ha.COLOR(P1.color.toArray(),{conversion:lo.SRGB_TO_LINEAR}),this.intensity=ha.FLOAT(P1.intensity),this.decay=ha.FLOAT(P1.decay),this.distance=ha.FLOAT(P1.distance),this.castShadows=ha.BOOLEAN(P1.castShadows),this.shadowRes=ha.VECTOR2(P1.shadowRes.toArray(),{visibleIf:{castShadows:1}}),this.shadowBias=ha.FLOAT(P1.shadowBias,{visibleIf:{castShadows:1}}),this.shadowNear=ha.FLOAT(P1.shadowNear,{visibleIf:{castShadows:1}}),this.shadowFar=ha.FLOAT(P1.shadowFar,{visibleIf:{castShadows:1}})}};class I1 extends uV{constructor(){super(...arguments),this.paramsConfig=R1}static type(){return\\\\\\\"pointLight\\\\\\\"}initializeNode(){this.io.inputs.setCount(0)}cook(t){this._operation=this._operation||new O1(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const F1=new p.a(0,1,0),D1=new p.a(-1,0,0);class B1 extends aV{constructor(){super(...arguments),this._centerMatrix=new A.a,this._longitudeMatrix=new A.a,this._latitudeMatrix=new A.a,this._depthMatrix=new A.a,this._fullMatrix=new A.a,this._decomposed={t:new p.a,q:new hh.a,s:new p.a}}static type(){return\\\\\\\"polarTransform\\\\\\\"}cook(t,e){const n=t[0].objects(),i=this.matrix(e);return this._apply_transform(n,e,i),t[0]}_apply_transform(t,e,n){const i=gU[e.applyOn];switch(i){case _U.GEOMETRIES:return this._apply_matrix_to_geometries(t,n);case _U.OBJECTS:return this._apply_matrix_to_objects(t,n)}os.unreachable(i)}_apply_matrix_to_geometries(t,e){for(let n of t){const t=n.geometry;t&&t.applyMatrix4(e)}}_apply_matrix_to_objects(t,e){for(let n of t)e.decompose(this._decomposed.t,this._decomposed.q,this._decomposed.s),n.position.copy(this._decomposed.t),n.quaternion.copy(this._decomposed.q),n.scale.copy(this._decomposed.s),n.updateMatrix()}matrix(t){return this._centerMatrix.identity(),this._longitudeMatrix.identity(),this._latitudeMatrix.identity(),this._depthMatrix.identity(),this._centerMatrix.makeTranslation(t.center.x,t.center.y,t.center.z),this._longitudeMatrix.makeRotationAxis(F1,Object(On.e)(t.longitude)),this._latitudeMatrix.makeRotationAxis(D1,Object(On.e)(t.latitude)),this._depthMatrix.makeTranslation(0,0,t.depth),this._fullMatrix.copy(this._centerMatrix).multiply(this._longitudeMatrix).multiply(this._latitudeMatrix).multiply(this._depthMatrix),this._fullMatrix}}B1.DEFAULT_PARAMS={applyOn:gU.indexOf(_U.GEOMETRIES),center:new p.a(0,0,0),longitude:0,latitude:0,depth:1},B1.INPUT_CLONED_STATE=Qi.FROM_NODE;const z1=B1.DEFAULT_PARAMS;const k1=new class extends ua{constructor(){super(...arguments),this.applyOn=ha.INTEGER(z1.applyOn,{menu:{entries:gU.map(((t,e)=>({name:t,value:e})))}}),this.center=ha.VECTOR3(z1.center.toArray()),this.longitude=ha.FLOAT(z1.longitude,{range:[0,360]}),this.latitude=ha.FLOAT(z1.latitude,{range:[-180,180]}),this.depth=ha.FLOAT(z1.depth,{range:[0,10]})}};class U1 extends uV{constructor(){super(...arguments),this.paramsConfig=k1}static type(){return\\\\\\\"polarTransform\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometries or objects to transform\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(B1.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new B1(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class G1{static accumulated_curve_point_indices(t){let e=[];const n=[];let i,s=null;for(let r=0;r<t.length;r++)if(r%2==1){i=t[r];const o=t[r-1];null==s||o===s?(0===e.length&&e.push(o),e.push(i),s=i):(n.push(e),e=[o,i],s=i)}return n.push(e),n}static create_line_segment_geometry(t,e,n,i){const s=[],r={};n.forEach((t=>{r[t]=[]})),e.forEach(((e,o)=>{const a=t[e];n.forEach((t=>{const e=a.attribValue(t);let n;n=i[t]>1?e.toArray():[e],n.forEach((e=>{r[t].push(e)}))})),o>0&&(s.push(o-1),s.push(o))}));const o=new S.a;return n.forEach((t=>{const e=i[t],n=r[t];o.setAttribute(t,new C.c(n,e))})),o.setIndex(s),o}static line_segment_to_geometries(t){var e;const n=[],i=new fr(t),s=i.attribNames(),r=i.points(),o=(null===(e=t.getIndex())||void 0===e?void 0:e.array)||[],a=this.accumulated_curve_point_indices(o);if(a.length>0){const e=i.attribSizes();a.forEach(((i,o)=>{t=this.create_line_segment_geometry(r,i,s,e),n.push(t)}))}return n}}class V1{constructor(t,e,n){this.geometry=t,this.geometry1=e,this.geometry0=n}process(){const t=new fr(this.geometry0),e=new fr(this.geometry1),n=t.segments(),i=e.segments();if(0===n.length||0===i.length)return;const s=n.length<i.length?[t,e]:[e,t],r=s[0],o=s[1],a=r.segments(),l=o.segments(),c=r.points(),h=o.points(),u=c.length,d=c.concat(h),p=[];a.forEach(((t,e)=>{const n=l[e];p.push(t[0]),p.push(t[1]),p.push(n[0]+u),p.push(t[1]),p.push(n[1]+u),p.push(n[0]+u)}));f.intersection(r.attribNames(),o.attribNames()).forEach((t=>{const e=r.attribSize(t);let n,i=d.map((e=>e.attribValue(t)));n=1==e?i:i.map((t=>t.toArray())).flat(),this.geometry.setAttribute(t,new C.c(n,e))})),this.geometry.setIndex(p),this.geometry.computeVertexNormals()}}const H1=new p.a(0,0,0),j1=new p.a(1,1,1);const W1=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(1),this.segmentsRadial=ha.INTEGER(8,{range:[3,20],rangeLocked:[!0,!1]}),this.closed=ha.BOOLEAN(0)}};class q1 extends uV{constructor(){super(...arguments),this.paramsConfig=W1,this._core_transform=new bU,this._geometries=[]}static type(){return\\\\\\\"polywire\\\\\\\"}static displayedInputNames(){return[\\\\\\\"lines to create tubes from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}cook(t){const e=t[0];this._geometries=[];for(let t of e.objects())t instanceof Ms.a&&this._create_tube(t);const n=fr.mergeGeometries(this._geometries);for(let t of this._geometries)t.dispose();if(n){const t=this.createObject(n,Ns.MESH);this.setObject(t)}else this.setObjects([])}_create_tube(t){var e;const n=t.geometry,i=new fr(n).points(),s=null===(e=n.getIndex())||void 0===e?void 0:e.array,r=G1.accumulated_curve_point_indices(s);for(let t of r){const e=t.map((t=>i[t]));this._create_tube_from_points(e)}}_create_tube_from_points(t){if(t.length<=1)return;const e=t.map((t=>t.attribValue(\\\\\\\"position\\\\\\\"))),n=JJ.create(this.pv.radius,this.pv.segmentsRadial),i=[];for(let t of e){const e=t,s=this._core_transform.matrix(e,H1,j1,1,xU),r=n.clone();r.applyMatrix4(s),i.push(r)}for(let t=0;t<i.length;t++)if(t>0){const e=i[t],n=i[t-1],s=this._skin(n,e);this._geometries.push(s)}}_skin(t,e){const n=new S.a;return new V1(n,t,e).process(),n}}const X1=\\\\\\\"dist\\\\\\\";class Y1 extends aV{constructor(){super(...arguments),this._matDoubleSideTmpSetter=new xK,this._raycaster=function(){const t=new eO;return t.firstHitOnly=!0,t}(),this._pointPos=new p.a,this._pointNormal=new p.a}static type(){return\\\\\\\"ray\\\\\\\"}cook(t,e){const n=t[0],i=t[1];return this._ray(n,i,e)}_ray(t,e,n){let i,s;this._matDoubleSideTmpSetter.setCoreGroupMaterialDoubleSided(e),n.addDistAttribute&&(t.hasAttrib(X1)||t.addNumericVertexAttrib(X1,1,-1));const r=t.points();for(let t of r)if(t.getPosition(this._pointPos),i=n.direction,n.useNormals&&(t.getNormal(this._pointNormal),i=this._pointNormal),this._raycaster.set(this._pointPos,i),s=this._raycaster.intersectObjects(e.objects(),!0)[0],s){if(n.transformPoints&&t.setPosition(s.point),n.addDistAttribute){const e=this._pointPos.distanceTo(s.point);console.log(e),t.setAttribValue(X1,e)}n.transferFaceNormals&&s.face&&t.setNormal(s.face.normal)}return this._matDoubleSideTmpSetter.restoreMaterialSideProperty(e),t}}Y1.DEFAULT_PARAMS={useNormals:!0,direction:new p.a(0,-1,0),transformPoints:!0,transferFaceNormals:!0,addDistAttribute:!1},Y1.INPUT_CLONED_STATE=[Qi.FROM_NODE,Qi.NEVER];const $1=Y1.DEFAULT_PARAMS;const J1=new class extends ua{constructor(){super(...arguments),this.useNormals=ha.BOOLEAN($1.useNormals),this.direction=ha.VECTOR3($1.direction.toArray(),{visibleIf:{useNormals:0}}),this.transformPoints=ha.BOOLEAN($1.transformPoints),this.transferFaceNormals=ha.BOOLEAN($1.transferFaceNormals),this.addDistAttribute=ha.BOOLEAN($1.addDistAttribute)}};class Z1 extends uV{constructor(){super(...arguments),this.paramsConfig=J1}static type(){return\\\\\\\"ray\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to move\\\\\\\",\\\\\\\"geometry to ray onto\\\\\\\"]}initializeNode(){this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState(Y1.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new Y1(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const K1={color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null},opacity:{value:.5}},Q1=\\\\\\\"uniform mat4 textureMatrix;\\\\nvarying vec4 vUv;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvUv = textureMatrix * vec4( position, 1.0 );\\\\n\\\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\\\n\\\\n}\\\\\\\",t2=\\\\\\\"uniform vec3 color;\\\\nuniform sampler2D tDiffuse;\\\\nvarying vec4 vUv;\\\\nuniform float opacity;\\\\n\\\\nfloat blendOverlay( float base, float blend ) {\\\\n\\\\n\\\\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\\\\n\\\\n}\\\\n\\\\nvec3 blendOverlay( vec3 base, vec3 blend ) {\\\\n\\\\n\\\\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\\\\n\\\\n}\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec4 base = texture2DProj( tDiffuse, vUv );\\\\n\\\\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), opacity );\\\\n\\\\n}\\\\\\\",e2={minFilter:w.V,magFilter:w.V,format:w.ic};class n2 extends B.a{constructor(t,e){super(),this.geometry=t,this._options=e,this.type=\\\\\\\"Reflector\\\\\\\",this.reflectorPlane=new Y.a,this.normal=new p.a,this.reflectorWorldPosition=new p.a,this.cameraWorldPosition=new p.a,this.rotationMatrix=new A.a,this.lookAtPosition=new p.a(0,0,-1),this.clipPlane=new _.a,this.view=new p.a,this.target=new p.a,this.q=new _.a,this.textureMatrix=new A.a,this.virtualCamera=new tt.a,this.onBeforeRender=this._onBeforeRender.bind(this),this._onWindowResizeBound=this._onWindowResize.bind(this);const{width:n,height:i}=this._getRendererSize(this._options.renderer);this.renderTarget=new K(n,i,e2),Object(On.i)(n)&&Object(On.i)(i)||(this.renderTarget.texture.generateMipmaps=!1),this._coreRenderBlur=new OG(new d.a(n,i)),this.material=new F({uniforms:I.clone(K1),fragmentShader:t2,vertexShader:Q1}),this.material.uniforms.tDiffuse.value=this.renderTarget.texture,this.material.uniforms.color.value=this._options.color,this.material.uniforms.textureMatrix.value=this.textureMatrix,this.material.uniforms.opacity.value=this._options.opacity,this.material.transparent=this._options.opacity<1,this._addWindowResizeEvent()}_addWindowResizeEvent(){window.addEventListener(\\\\\\\"resize\\\\\\\",this._onWindowResizeBound.bind(this),!1)}_removeWindowResizeEvent(){window.removeEventListener(\\\\\\\"resize\\\\\\\",this._onWindowResizeBound.bind(this),!1)}_onWindowResize(){this.traverseAncestors((t=>{t.parent||t.uuid!=this._options.scene.uuid&&this._removeWindowResizeEvent()}));const{width:t,height:e}=this._getRendererSize(this._options.renderer);this.renderTarget.setSize(t,e),this._coreRenderBlur.setSize(t,e)}_getRendererSize(t){const e=t.domElement;return{width:e.width*this._options.pixelRatio,height:e.height*this._options.pixelRatio}}_onBeforeRender(t,e,n,i,s,r){if(!this._options.active)return;const o=n;if(this.reflectorWorldPosition.setFromMatrixPosition(this.matrixWorld),this.cameraWorldPosition.setFromMatrixPosition(o.matrixWorld),this.rotationMatrix.extractRotation(this.matrixWorld),this.normal.set(0,0,1),this.normal.applyMatrix4(this.rotationMatrix),this.view.subVectors(this.reflectorWorldPosition,this.cameraWorldPosition),!(this.view.dot(this.normal)>0)){this.view.reflect(this.normal).negate(),this.view.add(this.reflectorWorldPosition),this.rotationMatrix.extractRotation(o.matrixWorld),this.lookAtPosition.set(0,0,-1),this.lookAtPosition.applyMatrix4(this.rotationMatrix),this.lookAtPosition.add(this.cameraWorldPosition),this.target.subVectors(this.reflectorWorldPosition,this.lookAtPosition),this.target.reflect(this.normal).negate(),this.target.add(this.reflectorWorldPosition),this.virtualCamera.position.copy(this.view),this.virtualCamera.up.set(0,1,0),this.virtualCamera.up.applyMatrix4(this.rotationMatrix),this.virtualCamera.up.reflect(this.normal),this.virtualCamera.lookAt(this.target),this.virtualCamera.far=o.far,this.virtualCamera.updateMatrixWorld(),this.virtualCamera.projectionMatrix.copy(o.projectionMatrix),this.textureMatrix.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),this.textureMatrix.multiply(this.virtualCamera.projectionMatrix),this.textureMatrix.multiply(this.virtualCamera.matrixWorldInverse),this.textureMatrix.multiply(this.matrixWorld),this.reflectorPlane.setFromNormalAndCoplanarPoint(this.normal,this.reflectorWorldPosition),this.reflectorPlane.applyMatrix4(this.virtualCamera.matrixWorldInverse),this.clipPlane.set(this.reflectorPlane.normal.x,this.reflectorPlane.normal.y,this.reflectorPlane.normal.z,this.reflectorPlane.constant);var a=this.virtualCamera.projectionMatrix;this.q.x=(Math.sign(this.clipPlane.x)+a.elements[8])/a.elements[0],this.q.y=(Math.sign(this.clipPlane.y)+a.elements[9])/a.elements[5],this.q.z=-1,this.q.w=(1+a.elements[10])/a.elements[14],this.clipPlane.multiplyScalar(2/this.clipPlane.dot(this.q)),a.elements[2]=this.clipPlane.x,a.elements[6]=this.clipPlane.y,a.elements[10]=this.clipPlane.z+1-this._options.clipBias,a.elements[14]=this.clipPlane.w,this.renderTarget.texture.encoding=t.outputEncoding,this.visible=!1;var l=t.getRenderTarget(),c=t.xr.enabled,h=t.shadowMap.autoUpdate;if(t.xr.enabled=!1,t.shadowMap.autoUpdate=!1,t.setRenderTarget(this.renderTarget),t.state.buffers.depth.setMask(!0),!1===t.autoClear&&t.clear(),t.render(e,this.virtualCamera),this._options.tblur){const e=this._options.blur*this._options.pixelRatio,n=e*this._options.verticalBlurMult;if(this._coreRenderBlur.applyBlur(this.renderTarget,t,e,n),this._options.tblur2){const e=this._options.blur2*this._options.pixelRatio,n=e*this._options.verticalBlur2Mult;this._coreRenderBlur.applyBlur(this.renderTarget,t,e,n)}}t.xr.enabled=c,t.shadowMap.autoUpdate=h,t.setRenderTarget(l);var u=o.viewport;void 0!==u&&t.state.viewport(u),this.visible=!0}}}class i2 extends aV{static type(){return\\\\\\\"reflector\\\\\\\"}async cook(t,e){const n=t[0],i=[],s=await li.renderersController.firstRenderer();if(!s)return this.createCoreGroupFromObjects(i);const r=n.objectsWithGeo();for(let t of r){const n=new n2(t.geometry,{clipBias:e.clipBias,renderer:s,scene:this.scene().threejsScene(),pixelRatio:e.pixelRatio,color:e.color,opacity:e.opacity,active:e.active,tblur:e.tblur,blur:e.blur,verticalBlurMult:e.verticalBlurMult,tblur2:e.tblur2,blur2:e.blur2,verticalBlur2Mult:e.verticalBlur2Mult});n.position.copy(t.position),n.rotation.copy(t.rotation),n.scale.copy(t.scale),n.updateMatrix(),i.push(n)}return this.createCoreGroupFromObjects(i)}}i2.DEFAULT_PARAMS={active:!0,clipBias:.003,color:new D.a(1,1,1),opacity:1,pixelRatio:1,tblur:!1,blur:1,verticalBlurMult:1,tblur2:!1,blur2:1,verticalBlur2Mult:1},i2.INPUT_CLONED_STATE=Qi.NEVER;const s2=i2.DEFAULT_PARAMS;const r2=new class extends ua{constructor(){super(...arguments),this.active=ha.BOOLEAN(s2.active),this.clipBias=ha.FLOAT(s2.clipBias),this.color=ha.COLOR(s2.color.toArray()),this.opacity=ha.FLOAT(s2.opacity),this.pixelRatio=ha.INTEGER(s2.pixelRatio,{range:[1,4],rangeLocked:[!0,!1]}),this.tblur=ha.BOOLEAN(s2.tblur),this.blur=ha.FLOAT(s2.blur,{visibleIf:{tblur:1}}),this.verticalBlurMult=ha.FLOAT(s2.verticalBlurMult,{visibleIf:{tblur:1}}),this.tblur2=ha.BOOLEAN(s2.tblur2,{visibleIf:{tblur:1}}),this.blur2=ha.FLOAT(s2.blur2,{visibleIf:{tblur:1,tblur2:1}}),this.verticalBlur2Mult=ha.FLOAT(s2.verticalBlur2Mult,{visibleIf:{tblur:1,tblur2:1}})}};class o2 extends uV{constructor(){super(...arguments),this.paramsConfig=r2}static type(){return\\\\\\\"reflector\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create a reflector from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(i2.INPUT_CLONED_STATE)}async cook(t){this._operation=this._operation||new i2(this._scene,this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var a2=n(85);var l2;!function(t){t.POINTS_COUNT=\\\\\\\"pointsCount\\\\\\\",t.SEGMENT_LENGTH=\\\\\\\"segmentLength\\\\\\\"}(l2||(l2={}));const c2=[l2.POINTS_COUNT,l2.SEGMENT_LENGTH];var h2;!function(t){t.CENTRIPETAL=\\\\\\\"centripetal\\\\\\\",t.CHORDAL=\\\\\\\"chordal\\\\\\\",t.CATMULLROM=\\\\\\\"catmullrom\\\\\\\"}(h2||(h2={}));const u2=[h2.CENTRIPETAL,h2.CHORDAL,h2.CATMULLROM];const d2=new class extends ua{constructor(){super(...arguments),this.method=ha.INTEGER(c2.indexOf(l2.POINTS_COUNT),{menu:{entries:c2.map(((t,e)=>({name:t,value:e})))}}),this.curveType=ha.INTEGER(u2.indexOf(h2.CATMULLROM),{range:[0,2],rangeLocked:[!0,!0],menu:{entries:u2.map(((t,e)=>({name:t,value:e})))}}),this.tension=ha.FLOAT(.01,{range:[0,1],rangeLocked:[!0,!0]}),this.pointsCount=ha.INTEGER(100,{visibleIf:{method:c2.indexOf(l2.POINTS_COUNT)},range:[1,1e3],rangeLocked:[!0,!1]}),this.segmentLength=ha.FLOAT(1,{visibleIf:{method:c2.indexOf(l2.SEGMENT_LENGTH)}})}};class p2 extends uV{constructor(){super(...arguments),this.paramsConfig=d2}static type(){return\\\\\\\"resample\\\\\\\"}initializeNode(){this.io.inputs.setCount(1)}cook(t){const e=t[0],n=[];if(this.pv.pointsCount>=2){const t=e.coreObjects();for(let e=0;e<t.length;e++){const i=t[e].object();if(i instanceof Ms.a){const t=this._resample(i);n.push(t)}}}this.setObjects(n)}_resample(t){var e;const n=t.geometry,i=new fr(n).points(),s=null===(e=n.getIndex())||void 0===e?void 0:e.array,r=G1.accumulated_curve_point_indices(s),o=[];for(let t=0;t<r.length;t++){const e=r[t].map((t=>i[t])),n=this._create_curve_from_points(e);n&&o.push(n)}const a=ur(o);return this.createObject(a,Ns.LINE_SEGMENTS)}_create_curve_from_points(t){if(t.length<=1)return;const e=t.map((t=>t.attribValue(\\\\\\\"position\\\\\\\"))),n=u2[this.pv.curveType],i=this.pv.tension,s=new a2.a(e,!1,n,i),r=this._get_points_from_curve(s);let o=[];const a=[];for(let t=0;t<r.length;t++){const e=r[t].toArray();o.push(e),t>0&&(a.push(t-1),a.push(t))}const l=new S.a;return l.setAttribute(\\\\\\\"position\\\\\\\",new C.c(o.flat(),3)),l.setIndex(a),l}_get_points_from_curve(t){const e=c2[this.pv.method];switch(e){case l2.POINTS_COUNT:return t.getSpacedPoints(Math.max(2,this.pv.pointsCount));case l2.SEGMENT_LENGTH:var n=t.getLength(),i=0!==this.pv.segmentLength?1+n/this.pv.segmentLength:2;return i=Math.max(2,i),t.getSpacedPoints(i)}os.unreachable(e)}}class _2 extends aV{static type(){return\\\\\\\"restAttributes\\\\\\\"}cook(t,e){const n=t[0].objectsWithGeo();return e.tposition&&this._create_rest_attribute(n,e.position,e.restP),e.tnormal&&this._create_rest_attribute(n,e.normal,e.restN),this.createCoreGroupFromObjects(n)}_create_rest_attribute(t,e,n){for(let i of t){const t=i.geometry;if(t){const i=t.getAttribute(e);i&&t.setAttribute(n,i.clone())}}}}_2.DEFAULT_PARAMS={tposition:!0,position:\\\\\\\"position\\\\\\\",restP:\\\\\\\"restP\\\\\\\",tnormal:!0,normal:\\\\\\\"normal\\\\\\\",restN:\\\\\\\"restN\\\\\\\"};const m2=_2.DEFAULT_PARAMS;const f2=new class extends ua{constructor(){super(...arguments),this.tposition=ha.BOOLEAN(m2.tposition),this.position=ha.STRING(m2.position,{visibleIf:{tposition:!0}}),this.restP=ha.STRING(m2.restP,{visibleIf:{tposition:!0}}),this.tnormal=ha.BOOLEAN(m2.tnormal),this.normal=ha.STRING(m2.normal,{visibleIf:{tnormal:!0}}),this.restN=ha.STRING(m2.restN,{visibleIf:{tnormal:!0}})}};class g2 extends uV{constructor(){super(...arguments),this.paramsConfig=f2}static type(){return\\\\\\\"restAttributes\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState([Qi.FROM_NODE])}cook(t){this._operation=this._operation||new _2(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class v2 extends aV{constructor(){super(...arguments),this._core_transform=new bU}static type(){return\\\\\\\"roundedBox\\\\\\\"}cook(t,e){const n=t[0],i=n?this._cook_with_input(n,e):this._cook_without_input(e);return this.createCoreGroupFromGeometry(i)}_cook_without_input(t){const e=t.size,n=new ky(e.x,e.y,e.z,t.divisions,t.bevel);return n.translate(t.center.x,t.center.y,t.center.z),n.computeVertexNormals(),n}_cook_with_input(t,e){const n=e.divisions,i=t.boundingBox(),s=i.max.clone().sub(i.min),r=i.max.clone().add(i.min).multiplyScalar(.5),o=new ky(s.x,s.y,s.z,n,e.bevel),a=this._core_transform.translationMatrix(r);return o.applyMatrix4(a),o}}v2.DEFAULT_PARAMS={size:new p.a(1,1,1),divisions:2,bevel:.1,center:new p.a(0,0,0)},v2.INPUT_CLONED_STATE=Qi.NEVER;const y2=v2.DEFAULT_PARAMS;const x2=new class extends ua{constructor(){super(...arguments),this.size=ha.VECTOR3(y2.size),this.divisions=ha.INTEGER(y2.divisions,{range:[1,10],rangeLocked:[!0,!1]}),this.bevel=ha.FLOAT(y2.bevel,{range:[0,1],rangeLocked:[!0,!1]}),this.center=ha.VECTOR3(y2.center)}};class b2 extends uV{constructor(){super(...arguments),this.paramsConfig=x2}static type(){return\\\\\\\"roundedBox\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to create bounding box from (optional)\\\\\\\"]}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(v2.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new v2(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class w2 extends aV{static type(){return\\\\\\\"scatter\\\\\\\"}async cook(t,e){const n=t[0];let i=n.faces();const s=[];let r=0;const o=new Map;for(let t of i){const e=t.area();o.set(t.index(),e)}const a=f.sortBy(i,(t=>o.get(t.index())||-1));let l=0;for(let t of a)r+=o.get(t.index()),s[l]=r,l++;const c=[];let h=[];e.transferAttributes&&(h=n.attribNamesMatchingMask(e.attributesToTransfer));const u=new Map,d=new Map;for(let t of h)u.set(t,[]),d.set(t,n.attribSize(t));const p=new CX,_=2454*e.seed%Number.MAX_SAFE_INTEGER;await p.startWithCount(e.pointsCount,(t=>{const e=or.randFloat(_+t)*r;for(let t=0;t<s.length;t++){if(e<=s[t]){const n=a[t],i=n.randomPosition(e);i.toArray(c,c.length);for(let t of h){const e=n.attribValueAtPosition(t,i);null!=e&&(m.isNumber(e)?u.get(t).push(e):m.isVector(e)&&e.toArray(u.get(t),u.get(t).length))}break}}}));const g=new S.a;g.setAttribute(\\\\\\\"position\\\\\\\",new C.a(new Float32Array(c),3));for(let t of h)g.setAttribute(t,new C.a(new Float32Array(u.get(t)),d.get(t)));if(e.addIdAttribute||e.addIdnAttribute){const t=e.pointsCount,n=f.range(t);e.addIdAttribute&&g.setAttribute(\\\\\\\"id\\\\\\\",new C.a(new Float32Array(n),1));const i=n.map((e=>e/(t-1)));e.addIdnAttribute&&g.setAttribute(\\\\\\\"idn\\\\\\\",new C.a(new Float32Array(i),1))}const v=this.createObject(g,Ns.POINTS);return this.createCoreGroupFromObjects([v])}}w2.DEFAULT_PARAMS={pointsCount:100,seed:0,transferAttributes:!0,attributesToTransfer:\\\\\\\"normal\\\\\\\",addIdAttribute:!0,addIdnAttribute:!0},w2.INPUT_CLONED_STATE=Qi.FROM_NODE;const T2=w2.DEFAULT_PARAMS;const A2=new class extends ua{constructor(){super(...arguments),this.pointsCount=ha.INTEGER(T2.pointsCount,{range:[0,100],rangeLocked:[!0,!1]}),this.seed=ha.INTEGER(T2.seed,{range:[0,100],rangeLocked:[!1,!1]}),this.transferAttributes=ha.BOOLEAN(T2.transferAttributes),this.attributesToTransfer=ha.STRING(T2.attributesToTransfer,{visibleIf:{transferAttributes:1}}),this.addIdAttribute=ha.BOOLEAN(T2.addIdAttribute),this.addIdnAttribute=ha.BOOLEAN(T2.addIdnAttribute)}};class M2 extends uV{constructor(){super(...arguments),this.paramsConfig=A2}static type(){return\\\\\\\"scatter\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to scatter points onto\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.NEVER)}async cook(t){this._operation=this._operation||new w2(this.scene(),this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var E2;!function(t){t.MATRIX=\\\\\\\"matrix\\\\\\\",t.AXIS=\\\\\\\"axis\\\\\\\"}(E2||(E2={}));const S2=[E2.MATRIX,E2.AXIS];var C2;!function(t){t.BBOX_CENTER=\\\\\\\"bbox center\\\\\\\",t.BBOX_CENTER_OFFSET=\\\\\\\"bbox center offset\\\\\\\",t.CUSTOM=\\\\\\\"custom\\\\\\\"}(C2||(C2={}));const N2=[C2.BBOX_CENTER,C2.BBOX_CENTER_OFFSET,C2.CUSTOM];class L2 extends aV{constructor(){super(...arguments),this._m4=new A.a,this._axisNormalized=new p.a,this._center=new p.a,this._pointPos=new p.a,this._axisPlane=new Y.a,this._pointOnPlane=new p.a,this._delta=new p.a,this._deltaNormalized=new p.a,this._offset=new p.a}static type(){return\\\\\\\"shear\\\\\\\"}cook(t,e){const n=t[0].objects();return this._applyShear(n,e),t[0]}_applyShear(t,e){const n=S2[e.mode];switch(n){case E2.MATRIX:return this._applyMatrixShear(t,e);case E2.AXIS:return this._applyAxisShear(t,e)}os.unreachable(n)}_applyMatrixShear(t,e){this._m4.makeShear(e.xy,e.xz,e.yx,e.yz,e.zx,e.zy);for(let e of t){const t=e.geometry;t&&t.applyMatrix4(this._m4)}}_applyAxisShear(t,e){this._axisNormalized.copy(e.axis),this._axisNormalized.normalize();for(let n of t){const t=n.geometry;if(t){this._getAxisModeCenter(t,e),this._axisPlane.setFromNormalAndCoplanarPoint(e.planeAxis,this._center);const n=new fr(t).points();for(let t of n){t.getPosition(this._pointPos),this._axisPlane.projectPoint(this._pointPos,this._pointOnPlane),this._delta.copy(this._pointOnPlane).sub(this._pointPos);const n=this._delta.length();this._deltaNormalized.copy(this._delta).normalize(),this._offset.copy(this._axisNormalized).multiplyScalar(e.axisAmount*n),this._delta.dot(e.planeAxis)>0&&this._offset.multiplyScalar(-1),this._pointPos.add(this._offset),t.setPosition(this._pointPos)}}}}_getAxisModeCenter(t,e){const n=N2[e.centerMode];switch(n){case C2.BBOX_CENTER:return this._getAxisModeCenterBbox(t,e);case C2.BBOX_CENTER_OFFSET:return this._getAxisModeCenterBboxOffset(t,e);case C2.CUSTOM:return this._getAxisModeCenterCustom(e)}os.unreachable(n)}_getAxisModeCenterBbox(t,e){t.computeBoundingBox();const n=t.boundingBox;n?n.getCenter(this._center):this._center.set(0,0,0)}_getAxisModeCenterBboxOffset(t,e){this._getAxisModeCenterBbox(t,e),this._center.add(e.centerOffset)}_getAxisModeCenterCustom(t){return this._center.copy(t.center)}}var O2;L2.DEFAULT_PARAMS={mode:S2.indexOf(E2.AXIS),xy:0,xz:0,yx:0,yz:0,zx:0,zy:0,centerMode:N2.indexOf(C2.BBOX_CENTER),centerOffset:new p.a(0,0,0),center:new p.a(0,0,0),planeAxis:new p.a(0,0,1),axis:new p.a(0,1,0),axisAmount:0},L2.INPUT_CLONED_STATE=Qi.FROM_NODE,function(t){t.SHEAR=\\\\\\\"shear\\\\\\\",t.TRANSFORM=\\\\\\\"transform\\\\\\\",t.UV_LAYOUT=\\\\\\\"uvLayout\\\\\\\",t.UV_TRANSFORM=\\\\\\\"uvTransform\\\\\\\",t.UV_UNWRAP=\\\\\\\"uvUnwrap\\\\\\\"}(O2||(O2={}));const P2=L2.DEFAULT_PARAMS;const R2=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(P2.mode,{menu:{entries:S2.map(((t,e)=>({name:t,value:e})))}}),this.xy=ha.FLOAT(P2.xy,{visibleIf:{mode:S2.indexOf(E2.MATRIX)}}),this.xz=ha.FLOAT(P2.xz,{visibleIf:{mode:S2.indexOf(E2.MATRIX)}}),this.yx=ha.FLOAT(P2.yx,{visibleIf:{mode:S2.indexOf(E2.MATRIX)}}),this.yz=ha.FLOAT(P2.yz,{visibleIf:{mode:S2.indexOf(E2.MATRIX)}}),this.zx=ha.FLOAT(P2.zx,{visibleIf:{mode:S2.indexOf(E2.MATRIX)}}),this.zy=ha.FLOAT(P2.zy,{visibleIf:{mode:S2.indexOf(E2.MATRIX)}}),this.centerMode=ha.INTEGER(P2.centerMode,{visibleIf:{mode:S2.indexOf(E2.AXIS)},menu:{entries:N2.map(((t,e)=>({name:t,value:e})))}}),this.centerOffset=ha.VECTOR3(P2.centerOffset.toArray(),{visibleIf:{mode:S2.indexOf(E2.AXIS),centerMode:N2.indexOf(C2.BBOX_CENTER_OFFSET)}}),this.center=ha.VECTOR3(P2.center.toArray(),{visibleIf:{mode:S2.indexOf(E2.AXIS),centerMode:N2.indexOf(C2.CUSTOM)}}),this.planeAxis=ha.VECTOR3(P2.planeAxis.toArray(),{visibleIf:{mode:S2.indexOf(E2.AXIS)}}),this.axis=ha.VECTOR3(P2.axis.toArray(),{visibleIf:{mode:S2.indexOf(E2.AXIS)}}),this.axisAmount=ha.FLOAT(P2.axisAmount,{range:[-1,1],visibleIf:{mode:S2.indexOf(E2.AXIS)}})}};class I2 extends uV{constructor(){super(...arguments),this.paramsConfig=R2}static type(){return O2.SHEAR}static displayedInputNames(){return[\\\\\\\"geometries or objects to transform\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(L2.INPUT_CLONED_STATE)}setMode(t){this.p.mode.set(S2.indexOf(t))}cook(t){this._operation=this._operation||new L2(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const F2=new class extends ua{};class D2 extends uV{constructor(){super(...arguments),this.paramsConfig=F2}static type(){return\\\\\\\"skin\\\\\\\"}static displayedInputNames(){return[\\\\\\\"lines to create polygons from\\\\\\\",\\\\\\\"if used, lines from both inputs will be used\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2)}cook(t){switch(f.compact(this.io.inputs.inputs()).length){case 1:return this.process_one_input(t);case 2:return this.process_two_inputs(t);default:return this.states.error.set(\\\\\\\"inputs count not valid\\\\\\\")}}process_one_input(t){const e=t[0],n=this._get_line_segments(e),i=[];if(n){const t=n[0];if(t){const e=G1.line_segment_to_geometries(t.geometry);e.forEach(((t,n)=>{if(n>0){const s=e[n-1],r=this._skin(s,t);i.push(r)}}))}}this.setGeometries(i)}process_two_inputs(t){const e=t[0],n=t[1],i=this._get_line_segments(e),s=this._get_line_segments(n),r=f.sortBy([i,s],(t=>-t.length)),o=r[0],a=r[1],l=[];o.forEach(((t,e)=>{const n=a[e];if(null!=t&&null!=n){const e=t.geometry,i=n.geometry,s=this._skin(e,i);l.push(s)}})),this.setGeometries(l)}_get_line_segments(t){return t.objects().filter((t=>t.isLineSegments))}_skin(t,e){const n=new S.a;return new V1(n,t,e).process(),n}}var B2;!function(t){t.X=\\\\\\\"x\\\\\\\",t.Y=\\\\\\\"y\\\\\\\",t.Z=\\\\\\\"z\\\\\\\"}(B2||(B2={}));const z2=[B2.X,B2.Y,B2.Z];class k2 extends aV{constructor(){super(...arguments),this._pointPos=new p.a,this._positions=[],this._indicesByPos=new Map,this._indexDest=new Map,this._debugActive=!1}static type(){return\\\\\\\"sort\\\\\\\"}cook(t,e){const n=t[0],i=n.objectsWithGeo();for(let t of i)this._sortObject(t,e);return n}_debug(t){this._debugActive}_sortObject(t,e){const n=new br(t,0).points(),i=t.geometry.getIndex();if(!i)return void console.warn(\\\\\\\"geometry cannot be sorted since it has no index\\\\\\\");const s=i.array;this._positions=new Array(n.length),this._indicesByPos.clear(),this._indexDest.clear();const r=z2[e.axis];let o=0,a=0;for(let t of n){switch(t.getPosition(this._pointPos),r){case B2.X:o=this._pointPos.x;break;case B2.Y:o=this._pointPos.y;break;case B2.Z:o=this._pointPos.z}this._positions[a]=o,h.pushOnArrayAtEntry(this._indicesByPos,o,t.index()),a++}let l=this._positions.sort(((t,e)=>t-e));e.invert&&l.reverse();const c=new Array(n.length);a=0;const u=f.uniq(l);for(let t of u){const e=this._indicesByPos.get(t);if(e)for(let t of e)c[a]=t,this._indexDest.set(t,a),a++}const d=new Array(s.length);for(let t=0;t<s.length;t++){const e=s[t],n=this._indexDest.get(e);d[t]=n}t.geometry.setIndex(d);const p=fr.attribNames(t.geometry);for(let e of p){\\\\\\\"id\\\\\\\"==e&&(this._debugActive=!0);const n=t.geometry.getAttribute(e);this._updateAttribute(n,c),this._debugActive=!1}}_updateAttribute(t,e){const n=t.clone(),i=t.array,s=n.array,r=n.itemSize;this._debug(e);for(let t of e){const e=this._indexDest.get(t);if(this._debug(`${t} -> ${e}`),null!=e)for(let n=0;n<r;n++)s[e*r+n]=i[t*r+n];else console.warn(\\\\\\\"no old index found\\\\\\\")}t.array=s,t.needsUpdate=!0}}k2.DEFAULT_PARAMS={axis:z2.indexOf(B2.X),invert:!1},k2.INPUT_CLONED_STATE=Qi.FROM_NODE;const U2=k2.DEFAULT_PARAMS;const G2=new class extends ua{constructor(){super(...arguments),this.axis=ha.INTEGER(U2.axis,{menu:{entries:z2.map(((t,e)=>({name:t,value:e})))}}),this.invert=ha.BOOLEAN(U2.invert)}};class V2 extends uV{constructor(){super(...arguments),this.paramsConfig=G2}static type(){return\\\\\\\"sort\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to sort\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState([Qi.FROM_NODE])}cook(t){this._operation=this._operation||new k2(this._scene,this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const H2=new class extends ua{constructor(){super(...arguments),this.startFrame=ha.INTEGER(Nl.START_FRAME)}};class j2 extends _V{constructor(){super(...arguments),this.paramsConfig=H2,this._last_simulated_frame=null,this.childrenDisplayController=new fV(this,{dependsOnDisplayNode:!1}),this.displayNodeController=new Fm(this,{onDisplayNodeRemove:()=>{},onDisplayNodeSet:()=>{},onDisplayNodeUpdate:()=>{}},{dependsOnDisplayNode:!1})}static type(){return\\\\\\\"solver\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,4),this.io.inputs.initInputsClonedState(Qi.NEVER),this.addGraphInput(this.scene().timeController.graphNode)}previousFrameCoreGroup(){return this._previousFrameCoreGroup}async cook(t){this.pv.startFrame==this.scene().frame()&&this._reset(),this.computeSolverIfRequired()}_reset(){this._previousFrameCoreGroup=void 0,this._last_simulated_frame=null}computeSolverIfRequired(){const t=this.scene().frame(),e=this.pv.startFrame;t>=e&&(null==this._last_simulated_frame&&(this._last_simulated_frame=e-1),t>this._last_simulated_frame&&this._computeSolverMultipleTimes(t-this._last_simulated_frame))}_computeSolverMultipleTimes(t=1){for(let e=0;e<t;e++)this.computeSolver();this._last_simulated_frame=this.scene().frame()}async computeSolver(){const t=this.childrenDisplayController.output_node();if(t){const e=(await t.compute()).coreContent();e?(this._previousFrameCoreGroup=e,this.setCoreGroup(e)):t.states.error.active()?this.states.error.set(t.states.error.message()):(this._previousFrameCoreGroup=void 0,this.setObjects([]))}else this.states.error.set(\\\\\\\"no output node found inside subnet\\\\\\\")}isOnFrameStart(){return this.scene().frame()==this.pv.startFrame}}const W2=new class extends ua{};class q2 extends uV{constructor(){super(...arguments),this.paramsConfig=W2}static type(){return\\\\\\\"solverPreviousFrame\\\\\\\"}initializeNode(){this.addGraphInput(this.scene().timeController.graphNode)}async cook(){const t=this.parent();(null==t?void 0:t.type())!=j2.type()&&(this.states.error.set(`the parent is not a '${j2.type()}'`),this.cookController.endCook());const e=t.previousFrameCoreGroup();e?this.setCoreGroup(e):this.setObjects([])}}var X2;!function(t){t.DEFAULT=\\\\\\\"default\\\\\\\",t.ISOCAHEDRON=\\\\\\\"isocahedron\\\\\\\"}(X2||(X2={}));const Y2={default:0,isocahedron:1},$2=[X2.DEFAULT,X2.ISOCAHEDRON];class J2 extends aV{static type(){return\\\\\\\"sphere\\\\\\\"}cook(t,e){const n=t[0];return n?this._cook_with_input(n,e):this._cook_without_input(e)}_cook_without_input(t){const e=this._create_required_geometry(t);return e.translate(t.center.x,t.center.y,t.center.z),this.createCoreGroupFromGeometry(e)}_cook_with_input(t,e){const n=t.boundingBox(),i=n.max.clone().sub(n.min),s=n.max.clone().add(n.min).multiplyScalar(.5),r=this._create_required_geometry(e);return r.translate(e.center.x,e.center.y,e.center.z),r.translate(s.x,s.y,s.z),r.scale(i.x,i.y,i.z),this.createCoreGroupFromGeometry(r)}_create_required_geometry(t){return t.type==Y2.default?this._create_default_sphere(t):this._create_default_isocahedron(t)}_create_default_sphere(t){return t.open?new tG(t.radius,t.resolution.x,t.resolution.y,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength):new tG(t.radius,t.resolution.x,t.resolution.y)}_create_default_isocahedron(t){return new bJ(t.radius,t.detail)}}J2.DEFAULT_PARAMS={type:Y2.default,radius:1,resolution:new d.a(30,30),open:!1,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI,detail:1,center:new p.a(0,0,0)},J2.INPUT_CLONED_STATE=Qi.FROM_NODE;const Z2=J2.DEFAULT_PARAMS;const K2=new class extends ua{constructor(){super(...arguments),this.type=ha.INTEGER(Z2.type,{menu:{entries:$2.map((t=>({name:t,value:Y2[t]})))}}),this.radius=ha.FLOAT(Z2.radius,{visibleIf:{type:Y2.default}}),this.resolution=ha.VECTOR2(Z2.resolution,{visibleIf:{type:Y2.default}}),this.open=ha.BOOLEAN(Z2.open,{visibleIf:{type:Y2.default}}),this.phiStart=ha.FLOAT(Z2.phiStart,{range:[0,2*Math.PI],visibleIf:{type:Y2.default,open:!0}}),this.phiLength=ha.FLOAT(\\\\\\\"$PI*2\\\\\\\",{range:[0,2*Math.PI],visibleIf:{type:Y2.default,open:!0}}),this.thetaStart=ha.FLOAT(Z2.thetaStart,{range:[0,Math.PI],visibleIf:{type:Y2.default,open:!0}}),this.thetaLength=ha.FLOAT(\\\\\\\"$PI\\\\\\\",{range:[0,Math.PI],visibleIf:{type:Y2.default,open:!0}}),this.detail=ha.INTEGER(Z2.detail,{range:[0,5],rangeLocked:[!0,!1],visibleIf:{type:Y2.isocahedron}}),this.center=ha.VECTOR3(Z2.center)}};class Q2 extends uV{constructor(){super(...arguments),this.paramsConfig=K2}static type(){return\\\\\\\"sphere\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,1),this.io.inputs.initInputsClonedState(J2.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new J2(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const t9=new class extends ua{constructor(){super(...arguments),this.attribType=ha.INTEGER(ks.indexOf(zs.NUMERIC),{menu:{entries:Us}}),this.attribName=ha.STRING(\\\\\\\"\\\\\\\")}};class e9 extends uV{constructor(){super(...arguments),this.paramsConfig=t9,this._new_objects=[]}static type(){return\\\\\\\"split\\\\\\\"}static displayedInputNames(){return[\\\\\\\"geometry to split in multiple objects\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1)}async cook(t){const e=t[0];this._new_objects=[],\\\\\\\"\\\\\\\"!=this.pv.attribName&&this._split_core_group(e),this.setObjects(this._new_objects)}async _split_core_group(t){const e=t.coreObjects();for(let t of e)this._split_core_object(t)}_split_core_object(t){let e=t.coreGeometry(),n=this.pv.attribName,i=new Map;if(e){const s=t.object(),r=e.pointsFromGeometry(),o=r[0];if(o){if(o.attribSize(n)!=Gs.FLOAT&&!o.isAttribIndexed(n))return void this.states.error.set(`attrib '${n}' must be a float or a string`);let t;if(o.isAttribIndexed(n))for(let e of r)t=e.indexedAttribValue(n),h.pushOnArrayAtEntry(i,t,e);else for(let e of r)t=e.attribValue(n),h.pushOnArrayAtEntry(i,t,e)}const a=Os(s.constructor);i.forEach(((t,e)=>{const i=fr.geometryFromPoints(t,a);if(i){const t=this.createObject(i,a);br.addAttribute(t,n,e),this._new_objects.push(t)}}))}}}const n9=new A.a,i9=new Q.a,s9=new p.a;class r9 extends J.a{constructor(){super(),this.uuid=On.h(),this.name=\\\\\\\"\\\\\\\",this.type=\\\\\\\"Geometry\\\\\\\",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){const e=(new G.a).getNormalMatrix(t);for(let e=0,n=this.vertices.length;e<n;e++){this.vertices[e].applyMatrix4(t)}for(let t=0,n=this.faces.length;t<n;t++){const n=this.faces[t];n.normal.applyMatrix3(e).normalize();for(let t=0,i=n.vertexNormals.length;t<i;t++)n.vertexNormals[t].applyMatrix3(e).normalize()}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return n9.makeRotationX(t),this.applyMatrix4(n9),this}rotateY(t){return n9.makeRotationY(t),this.applyMatrix4(n9),this}rotateZ(t){return n9.makeRotationZ(t),this.applyMatrix4(n9),this}translate(t,e,n){return n9.makeTranslation(t,e,n),this.applyMatrix4(n9),this}scale(t,e,n){return n9.makeScale(t,e,n),this.applyMatrix4(n9),this}lookAt(t){return i9.lookAt(t),i9.updateMatrix(),this.applyMatrix4(i9.matrix),this}fromBufferGeometry(t){const e=this,n=null!==t.index?t.index:void 0,i=t.attributes;if(void 0===i.position)return console.error(\\\\\\\"THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.\\\\\\\"),this;const s=i.position,r=i.normal,o=i.color,a=i.uv,l=i.uv2;void 0!==l&&(this.faceVertexUvs[1]=[]);for(let t=0;t<s.count;t++)e.vertices.push((new p.a).fromBufferAttribute(s,t)),void 0!==o&&e.colors.push((new D.a).fromBufferAttribute(o,t));function c(t,n,i,s){const c=void 0===o?[]:[e.colors[t].clone(),e.colors[n].clone(),e.colors[i].clone()],h=void 0===r?[]:[(new p.a).fromBufferAttribute(r,t),(new p.a).fromBufferAttribute(r,n),(new p.a).fromBufferAttribute(r,i)],u=new a9(t,n,i,h,c,s);e.faces.push(u),void 0!==a&&e.faceVertexUvs[0].push([(new d.a).fromBufferAttribute(a,t),(new d.a).fromBufferAttribute(a,n),(new d.a).fromBufferAttribute(a,i)]),void 0!==l&&e.faceVertexUvs[1].push([(new d.a).fromBufferAttribute(l,t),(new d.a).fromBufferAttribute(l,n),(new d.a).fromBufferAttribute(l,i)])}const h=t.groups;if(h.length>0)for(let t=0;t<h.length;t++){const e=h[t],i=e.start;for(let t=i,s=i+e.count;t<s;t+=3)void 0!==n?c(n.getX(t),n.getX(t+1),n.getX(t+2),e.materialIndex):c(t,t+1,t+2,e.materialIndex)}else if(void 0!==n)for(let t=0;t<n.count;t+=3)c(n.getX(t),n.getX(t+1),n.getX(t+2));else for(let t=0;t<s.count;t+=3)c(t,t+1,t+2);return this.computeFaceNormals(),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(s9).negate(),this.translate(s9.x,s9.y,s9.z),this}normalize(){this.computeBoundingSphere();const t=this.boundingSphere.center,e=this.boundingSphere.radius,n=0===e?1:1/e,i=new A.a;return i.set(n,0,0,-n*t.x,0,n,0,-n*t.y,0,0,n,-n*t.z,0,0,0,1),this.applyMatrix4(i),this}computeFaceNormals(){const t=new p.a,e=new p.a;for(let n=0,i=this.faces.length;n<i;n++){const i=this.faces[n],s=this.vertices[i.a],r=this.vertices[i.b],o=this.vertices[i.c];t.subVectors(o,r),e.subVectors(s,r),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){const e=new Array(this.vertices.length);for(let t=0,n=this.vertices.length;t<n;t++)e[t]=new p.a;if(t){const t=new p.a,n=new p.a;for(let i=0,s=this.faces.length;i<s;i++){const s=this.faces[i],r=this.vertices[s.a],o=this.vertices[s.b],a=this.vertices[s.c];t.subVectors(a,o),n.subVectors(r,o),t.cross(n),e[s.a].add(t),e[s.b].add(t),e[s.c].add(t)}}else{this.computeFaceNormals();for(let t=0,n=this.faces.length;t<n;t++){const n=this.faces[t];e[n.a].add(n.normal),e[n.b].add(n.normal),e[n.c].add(n.normal)}}for(let t=0,n=this.vertices.length;t<n;t++)e[t].normalize();for(let t=0,n=this.faces.length;t<n;t++){const n=this.faces[t],i=n.vertexNormals;3===i.length?(i[0].copy(e[n.a]),i[1].copy(e[n.b]),i[2].copy(e[n.c])):(i[0]=e[n.a].clone(),i[1]=e[n.b].clone(),i[2]=e[n.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){const e=this.faces[t],n=e.vertexNormals;3===n.length?(n[0].copy(e.normal),n[1].copy(e.normal),n[2].copy(e.normal)):(n[0]=e.normal.clone(),n[1]=e.normal.clone(),n[2]=e.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let t=0,e=this.faces.length;t<e;t++){const e=this.faces[t];e.__originalFaceNormal?e.__originalFaceNormal.copy(e.normal):e.__originalFaceNormal=e.normal.clone(),e.__originalVertexNormals||(e.__originalVertexNormals=[]);for(let t=0,n=e.vertexNormals.length;t<n;t++)e.__originalVertexNormals[t]?e.__originalVertexNormals[t].copy(e.vertexNormals[t]):e.__originalVertexNormals[t]=e.vertexNormals[t].clone()}const t=new r9;t.faces=this.faces;for(let e=0,n=this.morphTargets.length;e<n;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];const t=this.morphNormals[e].faceNormals,n=this.morphNormals[e].vertexNormals;for(let e=0,i=this.faces.length;e<i;e++){const e=new p.a,i={a:new p.a,b:new p.a,c:new p.a};t.push(e),n.push(i)}}const n=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let t=0,e=this.faces.length;t<e;t++){const e=this.faces[t],i=n.faceNormals[t],s=n.vertexNormals[t];i.copy(e.normal),s.a.copy(e.vertexNormals[0]),s.b.copy(e.vertexNormals[1]),s.c.copy(e.vertexNormals[2])}}for(let t=0,e=this.faces.length;t<e;t++){const e=this.faces[t];e.normal=e.__originalFaceNormal,e.vertexNormals=e.__originalVertexNormals}}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Ry.a),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new MX.a),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,n=0){if(!t||!t.isGeometry)return void console.error(\\\\\\\"THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.\\\\\\\",t);let i;const s=this.vertices.length,r=this.vertices,o=t.vertices,a=this.faces,l=t.faces,c=this.colors,h=t.colors;void 0!==e&&(i=(new G.a).getNormalMatrix(e));for(let t=0,n=o.length;t<n;t++){const n=o[t].clone();void 0!==e&&n.applyMatrix4(e),r.push(n)}for(let t=0,e=h.length;t<e;t++)c.push(h[t].clone());for(let t=0,e=l.length;t<e;t++){const e=l[t];let r,o;const c=e.vertexNormals,h=e.vertexColors,u=new a9(e.a+s,e.b+s,e.c+s);u.normal.copy(e.normal),void 0!==i&&u.normal.applyMatrix3(i).normalize();for(let t=0,e=c.length;t<e;t++)r=c[t].clone(),void 0!==i&&r.applyMatrix3(i).normalize(),u.vertexNormals.push(r);u.color.copy(e.color);for(let t=0,e=h.length;t<e;t++)o=h[t],u.vertexColors.push(o.clone());u.materialIndex=e.materialIndex+n,a.push(u)}for(let e=0,n=t.faceVertexUvs.length;e<n;e++){const n=t.faceVertexUvs[e];void 0===this.faceVertexUvs[e]&&(this.faceVertexUvs[e]=[]);for(let t=0,i=n.length;t<i;t++){const i=n[t],s=[];for(let t=0,e=i.length;t<e;t++)s.push(i[t].clone());this.faceVertexUvs[e].push(s)}}}mergeMesh(t){t&&t.isMesh?(t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)):console.error(\\\\\\\"THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.\\\\\\\",t)}mergeVertices(t=4){const e={},n=[],i=[],s=Math.pow(10,t);for(let t=0,r=this.vertices.length;t<r;t++){const r=this.vertices[t],o=Math.round(r.x*s)+\\\\\\\"_\\\\\\\"+Math.round(r.y*s)+\\\\\\\"_\\\\\\\"+Math.round(r.z*s);void 0===e[o]?(e[o]=t,n.push(this.vertices[t]),i[t]=n.length-1):i[t]=i[e[o]]}const r=[];for(let t=0,e=this.faces.length;t<e;t++){const e=this.faces[t];e.a=i[e.a],e.b=i[e.b],e.c=i[e.c];const n=[e.a,e.b,e.c];for(let e=0;e<3;e++)if(n[e]===n[(e+1)%3]){r.push(t);break}}for(let t=r.length-1;t>=0;t--){const e=r[t];this.faces.splice(e,1);for(let t=0,n=this.faceVertexUvs.length;t<n;t++)this.faceVertexUvs[t].splice(e,1)}const o=this.vertices.length-n.length;return this.vertices=n,o}setFromPoints(t){this.vertices=[];for(let e=0,n=t.length;e<n;e++){const n=t[e];this.vertices.push(new p.a(n.x,n.y,n.z||0))}return this}sortFacesByMaterialIndex(){const t=this.faces,e=t.length;for(let n=0;n<e;n++)t[n]._id=n;t.sort((function(t,e){return t.materialIndex-e.materialIndex}));const n=this.faceVertexUvs[0],i=this.faceVertexUvs[1];let s,r;n&&n.length===e&&(s=[]),i&&i.length===e&&(r=[]);for(let o=0;o<e;o++){const e=t[o]._id;s&&s.push(n[e]),r&&r.push(i[e])}s&&(this.faceVertexUvs[0]=s),r&&(this.faceVertexUvs[1]=r)}toJSON(){const t={metadata:{version:4.5,type:\\\\\\\"Geometry\\\\\\\",generator:\\\\\\\"Geometry.toJSON\\\\\\\"}};if(t.uuid=this.uuid,t.type=this.type,\\\\\\\"\\\\\\\"!==this.name&&(t.name=this.name),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}const e=[];for(let t=0;t<this.vertices.length;t++){const n=this.vertices[t];e.push(n.x,n.y,n.z)}const n=[],i=[],s={},r=[],o={},a=[],l={};for(let t=0;t<this.faces.length;t++){const e=this.faces[t],i=!0,s=!1,r=void 0!==this.faceVertexUvs[0][t],o=e.normal.length()>0,a=e.vertexNormals.length>0,l=1!==e.color.r||1!==e.color.g||1!==e.color.b,p=e.vertexColors.length>0;let _=0;if(_=c(_,0,0),_=c(_,1,i),_=c(_,2,s),_=c(_,3,r),_=c(_,4,o),_=c(_,5,a),_=c(_,6,l),_=c(_,7,p),n.push(_),n.push(e.a,e.b,e.c),n.push(e.materialIndex),r){const e=this.faceVertexUvs[0][t];n.push(d(e[0]),d(e[1]),d(e[2]))}if(o&&n.push(h(e.normal)),a){const t=e.vertexNormals;n.push(h(t[0]),h(t[1]),h(t[2]))}if(l&&n.push(u(e.color)),p){const t=e.vertexColors;n.push(u(t[0]),u(t[1]),u(t[2]))}}function c(t,e,n){return n?t|1<<e:t&~(1<<e)}function h(t){const e=t.x.toString()+t.y.toString()+t.z.toString();return void 0!==s[e]||(s[e]=i.length/3,i.push(t.x,t.y,t.z)),s[e]}function u(t){const e=t.r.toString()+t.g.toString()+t.b.toString();return void 0!==o[e]||(o[e]=r.length,r.push(t.getHex())),o[e]}function d(t){const e=t.x.toString()+t.y.toString();return void 0!==l[e]||(l[e]=a.length/2,a.push(t.x,t.y)),l[e]}return t.data={},t.data.vertices=e,t.data.normals=i,r.length>0&&(t.data.colors=r),a.length>0&&(t.data.uvs=[a]),t.data.faces=n,t}clone(){return(new r9).copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;const e=t.vertices;for(let t=0,n=e.length;t<n;t++)this.vertices.push(e[t].clone());const n=t.colors;for(let t=0,e=n.length;t<e;t++)this.colors.push(n[t].clone());const i=t.faces;for(let t=0,e=i.length;t<e;t++)this.faces.push(i[t].clone());for(let e=0,n=t.faceVertexUvs.length;e<n;e++){const n=t.faceVertexUvs[e];void 0===this.faceVertexUvs[e]&&(this.faceVertexUvs[e]=[]);for(let t=0,i=n.length;t<i;t++){const i=n[t],s=[];for(let t=0,e=i.length;t<e;t++){const e=i[t];s.push(e.clone())}this.faceVertexUvs[e].push(s)}}const s=t.morphTargets;for(let t=0,e=s.length;t<e;t++){const e={};if(e.name=s[t].name,void 0!==s[t].vertices){e.vertices=[];for(let n=0,i=s[t].vertices.length;n<i;n++)e.vertices.push(s[t].vertices[n].clone())}if(void 0!==s[t].normals){e.normals=[];for(let n=0,i=s[t].normals.length;n<i;n++)e.normals.push(s[t].normals[n].clone())}this.morphTargets.push(e)}const r=t.morphNormals;for(let t=0,e=r.length;t<e;t++){const e={};if(void 0!==r[t].vertexNormals){e.vertexNormals=[];for(let n=0,i=r[t].vertexNormals.length;n<i;n++){const i=r[t].vertexNormals[n],s={};s.a=i.a.clone(),s.b=i.b.clone(),s.c=i.c.clone(),e.vertexNormals.push(s)}}if(void 0!==r[t].faceNormals){e.faceNormals=[];for(let n=0,i=r[t].faceNormals.length;n<i;n++)e.faceNormals.push(r[t].faceNormals[n].clone())}this.morphNormals.push(e)}const o=t.skinWeights;for(let t=0,e=o.length;t<e;t++)this.skinWeights.push(o[t].clone());const a=t.skinIndices;for(let t=0,e=a.length;t<e;t++)this.skinIndices.push(a[t].clone());const l=t.lineDistances;for(let t=0,e=l.length;t<e;t++)this.lineDistances.push(l[t]);const c=t.boundingBox;null!==c&&(this.boundingBox=c.clone());const h=t.boundingSphere;return null!==h&&(this.boundingSphere=h.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){const t=(new o9).fromGeometry(this),e=new S.a,n=new Float32Array(3*t.vertices.length);if(e.setAttribute(\\\\\\\"position\\\\\\\",new C.a(n,3).copyVector3sArray(t.vertices)),t.normals.length>0){const n=new Float32Array(3*t.normals.length);e.setAttribute(\\\\\\\"normal\\\\\\\",new C.a(n,3).copyVector3sArray(t.normals))}if(t.colors.length>0){const n=new Float32Array(3*t.colors.length);e.setAttribute(\\\\\\\"color\\\\\\\",new C.a(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){const n=new Float32Array(2*t.uvs.length);e.setAttribute(\\\\\\\"uv\\\\\\\",new C.a(n,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){const n=new Float32Array(2*t.uvs2.length);e.setAttribute(\\\\\\\"uv2\\\\\\\",new C.a(n,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(const n in t.morphTargets){const i=[],s=t.morphTargets[n];for(let t=0,e=s.length;t<e;t++){const e=s[t],n=new C.c(3*e.data.length,3);n.name=e.name,i.push(n.copyVector3sArray(e.data))}e.morphAttributes[n]=i}if(t.skinIndices.length>0){const n=new C.c(4*t.skinIndices.length,4);e.setAttribute(\\\\\\\"skinIndex\\\\\\\",n.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){const n=new C.c(4*t.skinWeights.length,4);e.setAttribute(\\\\\\\"skinWeight\\\\\\\",n.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(e.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error(\\\\\\\"THREE.Geometry: .computeTangents() has been removed.\\\\\\\")}computeLineDistances(){console.error(\\\\\\\"THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.\\\\\\\")}applyMatrix(t){return console.warn(\\\\\\\"THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().\\\\\\\"),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:\\\\\\\"dispose\\\\\\\"})}static createBufferGeometryFromObject(t){let e=new S.a;const n=t.geometry;if(t.isPoints||t.isLine){const t=new C.c(3*n.vertices.length,3),i=new C.c(3*n.colors.length,3);if(e.setAttribute(\\\\\\\"position\\\\\\\",t.copyVector3sArray(n.vertices)),e.setAttribute(\\\\\\\"color\\\\\\\",i.copyColorsArray(n.colors)),n.lineDistances&&n.lineDistances.length===n.vertices.length){const t=new C.c(n.lineDistances.length,1);e.setAttribute(\\\\\\\"lineDistance\\\\\\\",t.copyArray(n.lineDistances))}null!==n.boundingSphere&&(e.boundingSphere=n.boundingSphere.clone()),null!==n.boundingBox&&(e.boundingBox=n.boundingBox.clone())}else t.isMesh&&(e=n.toBufferGeometry());return e}}r9.prototype.isGeometry=!0;class o9{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){const e=[];let n,i,s;const r=t.faces;for(i=0;i<r.length;i++){const t=r[i];t.materialIndex!==s&&(s=t.materialIndex,void 0!==n&&(n.count=3*i-n.start,e.push(n)),n={start:3*i,materialIndex:s})}void 0!==n&&(n.count=3*i-n.start,e.push(n)),this.groups=e}fromGeometry(t){const e=t.faces,n=t.vertices,i=t.faceVertexUvs,s=i[0]&&i[0].length>0,r=i[1]&&i[1].length>0,o=t.morphTargets,a=o.length;let l;if(a>0){l=[];for(let t=0;t<a;t++)l[t]={name:o[t].name,data:[]};this.morphTargets.position=l}const c=t.morphNormals,h=c.length;let u;if(h>0){u=[];for(let t=0;t<h;t++)u[t]={name:c[t].name,data:[]};this.morphTargets.normal=u}const p=t.skinIndices,_=t.skinWeights,m=p.length===n.length,f=_.length===n.length;n.length>0&&0===e.length&&console.error(\\\\\\\"THREE.DirectGeometry: Faceless geometries are not supported.\\\\\\\");for(let t=0;t<e.length;t++){const g=e[t];this.vertices.push(n[g.a],n[g.b],n[g.c]);const v=g.vertexNormals;if(3===v.length)this.normals.push(v[0],v[1],v[2]);else{const t=g.normal;this.normals.push(t,t,t)}const y=g.vertexColors;if(3===y.length)this.colors.push(y[0],y[1],y[2]);else{const t=g.color;this.colors.push(t,t,t)}if(!0===s){const e=i[0][t];void 0!==e?this.uvs.push(e[0],e[1],e[2]):(console.warn(\\\\\\\"THREE.DirectGeometry.fromGeometry(): Undefined vertexUv \\\\\\\",t),this.uvs.push(new d.a,new d.a,new d.a))}if(!0===r){const e=i[1][t];void 0!==e?this.uvs2.push(e[0],e[1],e[2]):(console.warn(\\\\\\\"THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 \\\\\\\",t),this.uvs2.push(new d.a,new d.a,new d.a))}for(let t=0;t<a;t++){const e=o[t].vertices;l[t].data.push(e[g.a],e[g.b],e[g.c])}for(let e=0;e<h;e++){const n=c[e].vertexNormals[t];u[e].data.push(n.a,n.b,n.c)}m&&this.skinIndices.push(p[g.a],p[g.b],p[g.c]),f&&this.skinWeights.push(_[g.a],_[g.b],_[g.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this}}class a9{constructor(t,e,n,i,s,r=0){this.a=t,this.b=e,this.c=n,this.normal=i&&i.isVector3?i:new p.a,this.vertexNormals=Array.isArray(i)?i:[],this.color=s&&s.isColor?s:new D.a,this.vertexColors=Array.isArray(s)?s:[],this.materialIndex=r}clone(){return(new this.constructor).copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,n=t.vertexNormals.length;e<n;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,n=t.vertexColors.length;e<n;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}}var l9=function(t){this.subdivisions=void 0===t?1:t};l9.prototype.modify=function(t){var e=t.isBufferGeometry;(t=e?(new r9).fromBufferGeometry(t):t.clone()).mergeVertices(6);for(var n=this.subdivisions;n-- >0;)this.smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),e?t.toBufferGeometry():t},function(){var t=[\\\\\\\"a\\\\\\\",\\\\\\\"b\\\\\\\",\\\\\\\"c\\\\\\\"];function e(t,e,n){return n[Math.min(t,e)+\\\\\\\"_\\\\\\\"+Math.max(t,e)]}function n(t,e,n,i,s,r){var o,a=Math.min(t,e),l=Math.max(t,e),c=a+\\\\\\\"_\\\\\\\"+l;c in i?o=i[c]:(o={a:n[a],b:n[l],newEdge:null,faces:[]},i[c]=o);o.faces.push(s),r[t].edges.push(o),r[e].edges.push(o)}function i(t,e,n,i,s){t.push(new a9(e,n,i,void 0,void 0,s))}function s(t,e){return Math.abs(e-t)/2+Math.min(t,e)}function r(t,e,n,i){t.push([e.clone(),n.clone(),i.clone()])}l9.prototype.smooth=function(o){var a,l,c,h,u,_,m,f,g,v,y,x,b,w=new p.a,T=[];a=o.vertices,l=o.faces;var A,M,E,S,C,N,L,O,P,R,I,F,D,B,z=void 0!==(c=o.faceVertexUvs)[0]&&c[0].length>0;if(z)for(var k=0;k<c.length;k++)T.push([]);for(m in function(t,e,i,s){var r,o,a;for(r=0,o=t.length;r<o;r++)i[r]={edges:[]};for(r=0,o=e.length;r<o;r++)n((a=e[r]).a,a.b,t,s,a,i),n(a.b,a.c,t,s,a,i),n(a.c,a.a,t,s,a,i)}(a,l,v=new Array(a.length),y={}),x=[],y){for(M=y[m],E=new p.a,C=3/8,N=1/8,2!=(L=M.faces.length)&&(C=.5,N=0),E.addVectors(M.a,M.b).multiplyScalar(C),w.set(0,0,0),k=0;k<L;k++){for(S=M.faces[k],g=0;g<3&&((A=a[S[t[g]]])===M.a||A===M.b);g++);w.add(A)}w.multiplyScalar(N),E.add(w),M.newEdge=x.length,x.push(E)}for(b=[],m=0,f=a.length;m<f;m++){for(D=a[m],3==(_=(F=v[m].edges).length)?O=3/16:_>3&&(O=3/(8*_)),P=1-_*O,R=O,_<=2&&2==_&&(P=3/4,R=1/8),B=D.clone().multiplyScalar(P),w.set(0,0,0),k=0;k<_;k++)A=(I=F[k]).a!==D?I.a:I.b,w.add(A);w.multiplyScalar(R),B.add(w),b.push(B)}h=b.concat(x);var U,G,V,H,j,W,q,X=b.length;u=[];var Y=new d.a,$=new d.a,J=new d.a;for(m=0,f=l.length;m<f;m++)if(i(u,U=e((S=l[m]).a,S.b,y).newEdge+X,G=e(S.b,S.c,y).newEdge+X,V=e(S.c,S.a,y).newEdge+X,S.materialIndex),i(u,S.a,U,V,S.materialIndex),i(u,S.b,G,U,S.materialIndex),i(u,S.c,V,G,S.materialIndex),z)for(k=0;k<c.length;k++)j=(H=c[k][m])[0],W=H[1],q=H[2],Y.set(s(j.x,W.x),s(j.y,W.y)),$.set(s(W.x,q.x),s(W.y,q.y)),J.set(s(j.x,q.x),s(j.y,q.y)),r(T[k],Y,$,J),r(T[k],j,Y,J),r(T[k],W,$,Y),r(T[k],q,J,$);o.vertices=h,o.faces=u,z&&(o.faceVertexUvs=T)}}();class c9 extends aV{static type(){return\\\\\\\"subdivide\\\\\\\"}cook(t,e){const n=t[0],i=new l9(e.subdivisions);for(let t of n.objects()){const e=t.geometry;if(e){const n=i.modify(e);t.geometry=n}}return n}}c9.DEFAULT_PARAMS={subdivisions:1};const h9=c9.DEFAULT_PARAMS;const u9=new class extends ua{constructor(){super(...arguments),this.subdivisions=ha.INTEGER(h9.subdivisions,{range:[0,5],rangeLocked:[!0,!1]})}};class d9 extends uV{constructor(){super(...arguments),this.paramsConfig=u9}static type(){return\\\\\\\"subdivide\\\\\\\"}initializeNode(){this.io.inputs.setCount(1)}cook(t){this._operation=this._operation||new c9(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const p9=new class extends ua{};class _9 extends _V{constructor(){super(...arguments),this.paramsConfig=p9}static type(){return\\\\\\\"subnet\\\\\\\"}initializeNode(){this.io.inputs.setCount(0,4),this.io.inputs.initInputsClonedState(Qi.NEVER)}}const m9=new class extends ua{constructor(){super(...arguments),this.input=ha.INTEGER(0,{range:[0,3],rangeLocked:[!0,!0],callback:t=>{f9.PARAM_CALLBACK_reset(t)}})}};class f9 extends uV{constructor(){super(...arguments),this.paramsConfig=m9}static type(){return ns.INPUT}initializeNode(){this.io.inputs.setCount(0),this.lifecycle.add_on_add_hook((()=>{this.set_parent_input_dependency()}))}async cook(){const t=this.pv.input,e=this.parent();if(e){if(e.io.inputs.has_input(t)){const n=await e.containerController.requestInputContainer(t);if(n){const t=n.coreContent();if(t)return void this.setCoreGroup(t)}}else this.states.error.set(`parent has no input ${t}`);this.cookController.endCook()}else this.states.error.set(\\\\\\\"subnet input has no parent\\\\\\\")}static PARAM_CALLBACK_reset(t){t.set_parent_input_dependency()}set_parent_input_dependency(){this._current_parent_input_graph_node&&this.removeGraphInput(this._current_parent_input_graph_node);const t=this.parent();t&&(this._current_parent_input_graph_node=t.io.inputs.inputGraphNode(this.pv.input),this.addGraphInput(this._current_parent_input_graph_node))}}var g9=n(82);class v9 extends $g{constructor(t,e,n){super(t,e,n)}load(t){return new Promise((async(e,n)=>{const i=new g9.a(this.loadingManager),s=await this._urlToLoad();i.load(s,(i=>{try{const n=this._onLoaded(i,t);e(n)}catch(t){n([])}}))}))}parse(t,e){const n=new g9.a(this.loadingManager).parse(t);return this._onLoaded(n,e)}_onLoaded(t,e){const n=t.paths,i=new Fn.a;for(let t=0;t<n.length;t++){const s=n[t],r=s.userData,o=r.style.fill;e.drawFillShapes&&void 0!==o&&\\\\\\\"none\\\\\\\"!==o&&this._drawShapes(i,s,e);const a=r.style.stroke;e.drawStrokes&&void 0!==a&&\\\\\\\"none\\\\\\\"!==a&&this._drawStrokes(i,s,e)}return i}_drawShapes(t,e,n){const i=e.userData,s=new lt.a({color:(new D.a).setStyle(i.style.fill),opacity:i.style.fillOpacity,transparent:i.style.fillOpacity<1,side:w.z,depthWrite:!1,wireframe:n.fillShapesWireframe}),r=e.toShapes(!0);for(let e=0;e<r.length;e++){const n=r[e],i=new AJ(n),o=new B.a(i,s);t.add(o)}}_drawStrokes(t,e,n){const i=e.userData;if(n.strokesWireframe){const n=new As.a({color:(new D.a).setStyle(i.style.stroke),opacity:i.style.strokeOpacity,transparent:i.style.strokeOpacity<1,side:w.z,depthWrite:!1});for(let s=0,r=e.subPaths.length;s<r;s++){const r=e.subPaths[s],o=g9.a.pointsToStroke(r.getPoints(),i.style);if(o){const e=new Ms.a(o,n);t.add(e)}}}else{const n=new lt.a({color:(new D.a).setStyle(i.style.stroke),opacity:i.style.strokeOpacity,transparent:i.style.strokeOpacity<1,side:w.z,depthWrite:!1});for(let s=0,r=e.subPaths.length;s<r;s++){const r=e.subPaths[s],o=g9.a.pointsToStroke(r.getPoints(),i.style);if(o){const e=new B.a(o,n);t.add(e)}}}}}const y9=`${qg}/models/svg/tiger.svg`;class x9 extends aV{static type(){return\\\\\\\"svg\\\\\\\"}cook(t,e){const n=new v9(e.url,this.scene(),this._node);return new Promise((async t=>{const i=await n.load(e);for(let t of i.children)this._ensure_geometry_has_index(t);t(this.createCoreGroupFromObjects(i.children))}))}_ensure_geometry_has_index(t){const e=t.geometry;e&&this.createIndexIfNone(e)}}x9.DEFAULT_PARAMS={url:y9,drawFillShapes:!0,fillShapesWireframe:!1,drawStrokes:!0,strokesWireframe:!1};const b9=x9.DEFAULT_PARAMS;const w9=new class extends ua{constructor(){super(...arguments),this.url=ha.STRING(b9.url,{fileBrowse:{type:[Rr.SVG]}}),this.reload=ha.BUTTON(null,{callback:(t,e)=>{T9.PARAM_CALLBACK_reload(t)}}),this.drawFillShapes=ha.BOOLEAN(b9.drawFillShapes),this.fillShapesWireframe=ha.BOOLEAN(b9.fillShapesWireframe),this.drawStrokes=ha.BOOLEAN(b9.drawStrokes),this.strokesWireframe=ha.BOOLEAN(b9.strokesWireframe)}};class T9 extends uV{constructor(){super(...arguments),this.paramsConfig=w9}static type(){return\\\\\\\"svg\\\\\\\"}async requiredModules(){return[Hn.SVGLoader]}initializeNode(){this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.url],(()=>{const t=this.pv.url;if(t){const e=t.split(\\\\\\\"/\\\\\\\");return e[e.length-1]}return\\\\\\\"\\\\\\\"}))}))}))}async cook(t){this._operation=this._operation||new x9(this.scene(),this.states,this);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}static PARAM_CALLBACK_reload(t){t.param_callback_reload()}param_callback_reload(){this.p.url.setDirty()}}const A9=\\\\\\\"geometry to switch to\\\\\\\";const M9=new class extends ua{constructor(){super(...arguments),this.input=ha.INTEGER(0,{range:[0,3],rangeLocked:[!0,!0]})}};class E9 extends uV{constructor(){super(...arguments),this.paramsConfig=M9}static type(){return\\\\\\\"switch\\\\\\\"}static displayedInputNames(){return[A9,A9,A9,A9]}initializeNode(){this.io.inputs.setCount(0,4),this.io.inputs.initInputsClonedState(Qi.NEVER),this.cookController.disallowInputsEvaluation()}async cook(){const t=this.pv.input;if(this.io.inputs.has_input(t)){const e=await this.containerController.requestInputContainer(t);if(e){const t=e.coreContent();if(t)return void this.setCoreGroup(t)}}else this.states.error.set(`no input ${t}`);this.cookController.endCook()}}class S9 extends zQ{constructor(t,e,n){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e,n),this.type=\\\\\\\"TetrahedronBufferGeometry\\\\\\\",this.parameters={radius:t,detail:e}}}const C9=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(1),this.detail=ha.INTEGER(0,{range:[0,10],rangeLocked:[!0,!1]}),this.pointsOnly=ha.BOOLEAN(0),this.center=ha.VECTOR3([0,0,0])}};class N9 extends uV{constructor(){super(...arguments),this.paramsConfig=C9}static type(){return\\\\\\\"tetrahedron\\\\\\\"}cook(){const t=this.pv.pointsOnly,e=new S9(this.pv.radius,this.pv.detail,t);if(e.translate(this.pv.center.x,this.pv.center.y,this.pv.center.z),t){const t=this.createObject(e,Ns.POINTS);this.setObject(t)}else e.computeVertexNormals(),this.setGeometry(e)}}class L9 extends yJ{constructor(t,e={}){const n=e.font;if(!n||!n.isFont)return new S.a;const i=n.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(i,e),this.type=\\\\\\\"TextGeometry\\\\\\\"}}var O9=n(48);class P9 extends Vf.a{constructor(t){super(t)}load(t,e,n,i){const s=this,r=new Gf.a(this.manager);r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(s.withCredentials),r.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn(\\\\\\\"THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.\\\\\\\"),n=JSON.parse(t.substring(65,t.length-2))}const i=s.parse(n);e&&e(i)}),n,i)}parse(t){return new R9(t)}}class R9{constructor(t){this.type=\\\\\\\"Font\\\\\\\",this.data=t}generateShapes(t,e=100){const n=[],i=function(t,e,n){const i=Array.from(t),s=e/n.resolution,r=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*s,o=[];let a=0,l=0;for(let t=0;t<i.length;t++){const e=i[t];if(\\\\\\\"\\\\n\\\\\\\"===e)a=0,l-=r;else{const t=I9(e,s,a,l,n);a+=t.offsetX,o.push(t.path)}}return o}(t,e,this.data);for(let t=0,e=i.length;t<e;t++)Array.prototype.push.apply(n,i[t].toShapes());return n}}function I9(t,e,n,i,s){const r=s.glyphs[t]||s.glyphs[\\\\\\\"?\\\\\\\"];if(!r)return void console.error('THREE.Font: character \\\\\\\"'+t+'\\\\\\\" does not exists in font family '+s.familyName+\\\\\\\".\\\\\\\");const o=new O9.a;let a,l,c,h,u,d,p,_;if(r.o){const t=r._cachedOutline||(r._cachedOutline=r.o.split(\\\\\\\" \\\\\\\"));for(let s=0,r=t.length;s<r;){switch(t[s++]){case\\\\\\\"m\\\\\\\":a=t[s++]*e+n,l=t[s++]*e+i,o.moveTo(a,l);break;case\\\\\\\"l\\\\\\\":a=t[s++]*e+n,l=t[s++]*e+i,o.lineTo(a,l);break;case\\\\\\\"q\\\\\\\":c=t[s++]*e+n,h=t[s++]*e+i,u=t[s++]*e+n,d=t[s++]*e+i,o.quadraticCurveTo(u,d,c,h);break;case\\\\\\\"b\\\\\\\":c=t[s++]*e+n,h=t[s++]*e+i,u=t[s++]*e+n,d=t[s++]*e+i,p=t[s++]*e+n,_=t[s++]*e+i,o.bezierCurveTo(u,d,p,_,c,h)}}}return{offsetX:r.ha*e,path:o}}R9.prototype.isFont=!0;class F9 extends $g{constructor(t,e,n){super(t,e,n),this._font_loader=new P9(this.loadingManager)}async load(){const t=this.extension(),e=await this._urlToLoad();switch(t){case\\\\\\\"ttf\\\\\\\":return this._loadTTF(e);case\\\\\\\"json\\\\\\\":return this._loadJSON(e);default:return null}}static requiredModules(t){switch(this.extension(t)){case\\\\\\\"ttf\\\\\\\":return[Hn.TTFLoader];case\\\\\\\"json\\\\\\\":return[Hn.SVGLoader]}}_loadTTF(t){return new Promise((async(e,n)=>{const i=await this._loadTTFLoader();i&&i.load(t,(t=>{const n=this._font_loader.parse(t);e(n)}),void 0,(()=>{n()}))}))}_loadJSON(t){return new Promise(((e,n)=>{this._font_loader.load(t,(t=>{e(t)}),void 0,(()=>{n()}))}))}async _loadTTFLoader(){const t=await li.modulesRegister.module(Hn.TTFLoader);if(t)return new t(this.loadingManager)}static async loadSVGLoader(){const t=await li.modulesRegister.module(Hn.SVGLoader);if(t)return t}}var D9;!function(t){t.MESH=\\\\\\\"mesh\\\\\\\",t.FLAT=\\\\\\\"flat\\\\\\\",t.LINE=\\\\\\\"line\\\\\\\",t.STROKE=\\\\\\\"stroke\\\\\\\"}(D9||(D9={}));const B9=[D9.MESH,D9.FLAT,D9.LINE,D9.STROKE],z9=\\\\\\\"failed to generate geometry. Try to remove some characters\\\\\\\";const k9=new class extends ua{constructor(){super(...arguments),this.font=ha.STRING(\\\\\\\"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/fonts/droid_sans_regular.typeface.json\\\\\\\",{fileBrowse:{type:[Rr.FONT]}}),this.text=ha.STRING(\\\\\\\"polygonjs\\\\\\\",{multiline:!0}),this.type=ha.INTEGER(0,{menu:{entries:B9.map(((t,e)=>({name:t,value:e})))}}),this.size=ha.FLOAT(1,{range:[0,1],rangeLocked:[!0,!1]}),this.extrude=ha.FLOAT(.1,{visibleIf:{type:B9.indexOf(D9.MESH)}}),this.segments=ha.INTEGER(1,{range:[1,20],rangeLocked:[!0,!1],visibleIf:{type:B9.indexOf(D9.MESH)}}),this.strokeWidth=ha.FLOAT(.02,{visibleIf:{type:B9.indexOf(D9.STROKE)}})}};class U9 extends uV{constructor(){super(...arguments),this.paramsConfig=k9,this._loaded_fonts={}}static type(){return\\\\\\\"text\\\\\\\"}initializeNode(){this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.text],(()=>this.p.text.rawInput()))}))}))}async cook(){try{this._loaded_fonts[this.pv.font]=this._loaded_fonts[this.pv.font]||await this._loadFont()}catch(t){return void this.states.error.set(`count not load font (${this.pv.font})`)}const t=this._loaded_fonts[this.pv.font];if(t)switch(B9[this.pv.type]){case D9.MESH:return this._create_geometry_from_type_mesh(t);case D9.FLAT:return this._create_geometry_from_type_flat(t);case D9.LINE:return this._create_geometry_from_type_line(t);case D9.STROKE:return this._create_geometry_from_type_stroke(t);default:console.warn(\\\\\\\"type is not valid\\\\\\\")}}_create_geometry_from_type_mesh(t){const e=this.displayed_text(),n={font:t,size:this.pv.size,height:this.pv.extrude,curveSegments:this.pv.segments};try{const t=new L9(e,n);if(!t.index){const e=t.getAttribute(\\\\\\\"position\\\\\\\").array;t.setIndex(f.range(e.length/3))}this.setGeometry(t)}catch(t){this.states.error.set(z9)}}_create_geometry_from_type_flat(t){const e=this._get_shapes(t);if(e){var n=new AJ(e);this.setGeometry(n)}}_create_geometry_from_type_line(t){const e=this.shapes_from_font(t);if(e){const t=[],n=[];let i=0;for(let s=0;s<e.length;s++){const r=e[s].getPoints();for(let e=0;e<r.length;e++){const s=r[e];t.push(s.x),t.push(s.y),t.push(0),n.push(i),e>0&&e<r.length-1&&n.push(i),i+=1}}const s=new S.a;s.setAttribute(\\\\\\\"position\\\\\\\",new C.c(t,3)),s.setIndex(n),this.setGeometry(s,Ns.LINE_SEGMENTS)}}async _create_geometry_from_type_stroke(t){const e=this.shapes_from_font(t);if(e){const t=await F9.loadSVGLoader();if(!t)return;var n=t.getStrokeStyle(this.pv.strokeWidth,\\\\\\\"white\\\\\\\",\\\\\\\"miter\\\\\\\",\\\\\\\"butt\\\\\\\",4);const i=[];for(let s=0;s<e.length;s++){const r=e[s].getPoints(),o=12,a=.001,l=t.pointsToStroke(r,n,o,a);i.push(l)}const s=ur(i);this.setGeometry(s)}}shapes_from_font(t){const e=this._get_shapes(t);if(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(i.holes&&i.holes.length>0)for(let e=0;e<i.holes.length;e++){const n=i.holes[e];t.push(n)}}return e.push.apply(e,t),e}}_get_shapes(t){const e=this.displayed_text();try{return t.generateShapes(e,this.pv.size)}catch(t){this.states.error.set(z9)}}displayed_text(){return this.pv.text||\\\\\\\"\\\\\\\"}_loadFont(){return new F9(this.pv.font,this.scene(),this).load()}async requiredModules(){return this.p.font.isDirty()&&await this.p.font.compute(),F9.requiredModules(this.pv.font)}}class G9 extends aV{static type(){return\\\\\\\"TextureCopy\\\\\\\"}async cook(t,e){const n=t[0],i=t[1];let s;for(let t of i.objects())t.traverse((t=>{const n=t.material;n&&(m.isArray(n)||s||(s=n[e.textureName]))}));if(s)for(let t of n.objects())t.traverse((t=>{const n=t.material;if(n&&!m.isArray(n)){n[e.textureName]=s;const t=n.uniforms;if(t){const n=t[e.textureName];n&&(n.value=s)}n.needsUpdate=!0}}));return n}}G9.DEFAULT_PARAMS={textureName:\\\\\\\"map\\\\\\\"},G9.INPUT_CLONED_STATE=[Qi.FROM_NODE,Qi.NEVER];const V9=G9.DEFAULT_PARAMS;const H9=new class extends ua{constructor(){super(...arguments),this.textureName=ha.STRING(V9.textureName)}};class j9 extends uV{constructor(){super(...arguments),this.paramsConfig=H9}static type(){return\\\\\\\"TextureCopy\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to copy textures to\\\\\\\",\\\\\\\"objects to copy textures from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(2),this.io.inputs.initInputsClonedState(G9.INPUT_CLONED_STATE)}async cook(t){this._operation=this._operation||new G9(this.scene(),this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class W9 extends aV{static type(){return\\\\\\\"textureProperties\\\\\\\"}async cook(t,e){const n=t[0],i=[];for(let t of n.objects())e.applyToChildren?t.traverse((t=>{i.push(t)})):i.push(t);const s=i.map((t=>this._update_object(t,e)));return await Promise.all(s),n}async _update_object(t,e){const n=t.material;n&&await this._update_material(n,e)}async _update_material(t,e){let n=t.map;n&&await this._update_texture(n,e)}async _update_texture(t,e){this._updateEncoding(t,e),this._updateMapping(t,e),this._updateWrap(t,e),await this._updateAnisotropy(t,e),this._updateFilter(t,e)}_updateEncoding(t,e){e.tencoding&&(t.encoding=e.encoding,t.needsUpdate=!0)}_updateMapping(t,e){e.tmapping&&(t.mapping=e.mapping)}_updateWrap(t,e){e.twrap&&(t.wrapS=e.wrapS,t.wrapT=e.wrapT)}async _updateAnisotropy(t,e){if(e.tanisotropy)if(e.useRendererMaxAnisotropy){const e=await li.renderersController.firstRenderer();e&&(t.anisotropy=e.capabilities.getMaxAnisotropy())}else t.anisotropy=e.anisotropy}_updateFilter(t,e){e.tminFilter&&(t.minFilter=e.minFilter),e.tmagFilter&&(t.magFilter=e.magFilter)}}W9.DEFAULT_PARAMS={applyToChildren:!1,tencoding:!1,encoding:w.U,tmapping:!1,mapping:w.Yc,twrap:!1,wrapS:w.wc,wrapT:w.wc,tanisotropy:!1,useRendererMaxAnisotropy:!1,anisotropy:2,tminFilter:!1,minFilter:Km,tmagFilter:!1,magFilter:Zm},W9.INPUT_CLONED_STATE=Qi.FROM_NODE;const q9=W9.DEFAULT_PARAMS;const X9=new class extends ua{constructor(){super(...arguments),this.applyToChildren=ha.BOOLEAN(q9.applyToChildren,{separatorAfter:!0}),this.tencoding=ha.BOOLEAN(q9.tencoding),this.encoding=ha.INTEGER(q9.encoding,{visibleIf:{tencoding:1},menu:{entries:og.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))}}),this.tmapping=ha.BOOLEAN(q9.tmapping),this.mapping=ha.INTEGER(q9.mapping,{visibleIf:{tmapping:1},menu:{entries:lg.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))}}),this.twrap=ha.BOOLEAN(q9.twrap),this.wrapS=ha.INTEGER(q9.wrapS,{visibleIf:{twrap:1},menu:{entries:ag.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))}}),this.wrapT=ha.INTEGER(q9.wrapT,{visibleIf:{twrap:1},menu:{entries:ag.map((t=>({name:Object.keys(t)[0],value:Object.values(t)[0]})))},separatorAfter:!0}),this.tanisotropy=ha.BOOLEAN(q9.tanisotropy),this.useRendererMaxAnisotropy=ha.BOOLEAN(q9.useRendererMaxAnisotropy,{visibleIf:{tanisotropy:1}}),this.anisotropy=ha.INTEGER(q9.anisotropy,{visibleIf:{tanisotropy:1,useRendererMaxAnisotropy:0},range:[0,32],rangeLocked:[!0,!1]}),this.tminFilter=ha.BOOLEAN(0),this.minFilter=ha.INTEGER(q9.minFilter,{visibleIf:{tminFilter:1},menu:{entries:tf}}),this.tmagFilter=ha.BOOLEAN(0),this.magFilter=ha.INTEGER(q9.magFilter,{visibleIf:{tmagFilter:1},menu:{entries:Qm}})}};class Y9 extends uV{constructor(){super(...arguments),this.paramsConfig=X9}static type(){return\\\\\\\"textureProperties\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects with textures to change properties of\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(W9.INPUT_CLONED_STATE)}async cook(t){this._operation=this._operation||new W9(this.scene(),this.states);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const $9=new p.a(0,0,1);class J9 extends aV{constructor(){super(...arguments),this._core_transform=new bU}static type(){return\\\\\\\"torus\\\\\\\"}cook(t,e){const n=e.radius,i=e.radiusTube,s=e.segmentsRadial,r=e.segmentsTube,o=new EJ(n,i,s,r);return o.translate(e.center.x,e.center.y,e.center.z),this._core_transform.rotateGeometry(o,$9,e.direction),this.createCoreGroupFromGeometry(o)}}J9.DEFAULT_PARAMS={radius:1,radiusTube:1,segmentsRadial:20,segmentsTube:12,direction:new p.a(0,1,0),center:new p.a(0,0,0)},J9.INPUT_CLONED_STATE=Qi.FROM_NODE;const Z9=J9.DEFAULT_PARAMS;const K9=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(Z9.radius,{range:[0,1]}),this.radiusTube=ha.FLOAT(Z9.radiusTube,{range:[0,1]}),this.segmentsRadial=ha.INTEGER(Z9.segmentsRadial,{range:[1,50],rangeLocked:[!0,!1]}),this.segmentsTube=ha.INTEGER(Z9.segmentsTube,{range:[1,50],rangeLocked:[!0,!1]}),this.direction=ha.VECTOR3(Z9.direction),this.center=ha.VECTOR3(Z9.center)}};class Q9 extends uV{constructor(){super(...arguments),this.paramsConfig=K9}static type(){return\\\\\\\"torus\\\\\\\"}cook(t){this._operation=this._operation||new J9(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class t3 extends aV{static type(){return\\\\\\\"torusKnot\\\\\\\"}cook(t,e){const n=e.radius,i=e.radiusTube,s=e.segmentsRadial,r=e.segmentsTube,o=e.p,a=e.q,l=new SJ(n,i,s,r,o,a);return l.translate(e.center.x,e.center.y,e.center.z),this.createCoreGroupFromGeometry(l)}}t3.DEFAULT_PARAMS={radius:1,radiusTube:1,segmentsRadial:64,segmentsTube:8,p:2,q:3,center:new p.a(0,0,0)},t3.INPUT_CLONED_STATE=Qi.FROM_NODE;const e3=t3.DEFAULT_PARAMS;const n3=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(e3.radius),this.radiusTube=ha.FLOAT(e3.radiusTube),this.segmentsRadial=ha.INTEGER(e3.segmentsRadial,{range:[1,128]}),this.segmentsTube=ha.INTEGER(e3.segmentsTube,{range:[1,32]}),this.p=ha.INTEGER(e3.p,{range:[1,10]}),this.q=ha.INTEGER(e3.q,{range:[1,10]}),this.center=ha.VECTOR3(e3.center)}};class i3 extends uV{constructor(){super(...arguments),this.paramsConfig=n3}static type(){return\\\\\\\"torusKnot\\\\\\\"}initializeNode(){}cook(t){this._operation=this._operation||new t3(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var s3;!function(t){t.SET_PARAMS=\\\\\\\"set params\\\\\\\",t.UPDATE_MATRIX=\\\\\\\"update matrix\\\\\\\"}(s3||(s3={}));const r3=[s3.SET_PARAMS,s3.UPDATE_MATRIX];class o3 extends aV{constructor(){super(...arguments),this._core_transform=new bU,this._point_pos=new p.a,this._object_scale=new p.a,this._r=new p.a,this._object_position=new p.a}static type(){return\\\\\\\"transform\\\\\\\"}cook(t,e){const n=t[0].objects();return this._apply_transform(n,e),t[0]}_apply_transform(t,e){const n=gU[e.applyOn];switch(n){case _U.GEOMETRIES:return this._update_geometries(t,e);case _U.OBJECTS:return this._update_objects(t,e)}os.unreachable(n)}_update_geometries(t,e){const n=this._matrix(e);if(\\\\\\\"\\\\\\\"===e.group.trim())for(let i of t){const t=i.geometry;t&&(t.translate(-e.pivot.x,-e.pivot.y,-e.pivot.z),t.applyMatrix4(n),t.translate(e.pivot.x,e.pivot.y,e.pivot.z))}else{const i=oV._fromObjects(t).pointsFromGroup(e.group);for(let t of i){const i=t.getPosition(this._point_pos).sub(e.pivot);i.applyMatrix4(n),t.setPosition(i.add(e.pivot))}}}_update_objects(t,e){const n=r3[e.objectMode];switch(n){case s3.SET_PARAMS:return this._update_objects_params(t,e);case s3.UPDATE_MATRIX:return this._update_objects_matrix(t,e)}os.unreachable(n)}_update_objects_params(t,e){for(let n of t){n.position.copy(e.t);const t=yU[e.rotationOrder];this._r.copy(e.r).multiplyScalar(On.a),n.rotation.set(this._r.x,this._r.y,this._r.z,t),this._object_scale.copy(e.s).multiplyScalar(e.scale),n.scale.copy(this._object_scale),n.updateMatrix()}}_update_objects_matrix(t,e){const n=this._matrix(e);for(let e of t)this._object_position.copy(e.position),e.position.multiplyScalar(0),e.updateMatrix(),e.applyMatrix4(n),e.position.add(this._object_position),e.updateMatrix()}_matrix(t){return this._core_transform.matrix(t.t,t.r,t.s,t.scale,yU[t.rotationOrder])}}o3.DEFAULT_PARAMS={applyOn:gU.indexOf(_U.GEOMETRIES),objectMode:r3.indexOf(s3.SET_PARAMS),group:\\\\\\\"\\\\\\\",rotationOrder:yU.indexOf(vU.XYZ),t:new p.a(0,0,0),r:new p.a(0,0,0),s:new p.a(1,1,1),scale:1,pivot:new p.a(0,0,0)},o3.INPUT_CLONED_STATE=Qi.FROM_NODE;const a3=o3.DEFAULT_PARAMS;const l3=new class extends ua{constructor(){super(...arguments),this.applyOn=ha.INTEGER(a3.applyOn,{menu:{entries:gU.map(((t,e)=>({name:t,value:e})))}}),this.objectMode=ha.INTEGER(a3.objectMode,{visibleIf:{applyOn:gU.indexOf(_U.OBJECTS)},menu:{entries:r3.map(((t,e)=>({name:t,value:e})))}}),this.group=ha.STRING(a3.group,{visibleIf:{applyOn:gU.indexOf(_U.GEOMETRIES)}}),this.rotationOrder=ha.INTEGER(a3.rotationOrder,{menu:{entries:yU.map(((t,e)=>({name:t,value:e})))}}),this.t=ha.VECTOR3(a3.t),this.r=ha.VECTOR3(a3.r),this.s=ha.VECTOR3(a3.s),this.scale=ha.FLOAT(a3.scale,{range:[0,10]}),this.pivot=ha.VECTOR3(a3.pivot,{visibleIf:{applyOn:gU.indexOf(_U.GEOMETRIES)}})}};class c3 extends uV{constructor(){super(...arguments),this.paramsConfig=l3}static type(){return O2.TRANSFORM}static displayedInputNames(){return[\\\\\\\"geometries or objects to transform\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(o3.INPUT_CLONED_STATE),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.applyOn],(()=>gU[this.pv.applyOn]))}))}))}setApplyOn(t){this.p.applyOn.set(gU.indexOf(t))}setObjectMode(t){this.p.objectMode.set(r3.indexOf(t))}cook(t){this._operation=this._operation||new o3(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}const h3=new class extends ua{constructor(){super(...arguments),this.useSecondInput=ha.BOOLEAN(1),this.reference=ha.OPERATOR_PATH(\\\\\\\"\\\\\\\",{nodeSelection:{context:ts.SOP},visibleIf:{useSecondInput:0}})}};class u3 extends uV{constructor(){super(...arguments),this.paramsConfig=h3}static type(){return\\\\\\\"transformCopy\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to transform\\\\\\\",\\\\\\\"objects to copy transform from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState([Qi.FROM_NODE,Qi.NEVER])}cook(t){this.pv.useSecondInput&&t[1]?this._copy_from_src_objects(t[0].objects(),t[1].objects()):this._copy_from_found_node(t[0].objects())}_copy_from_src_objects(t,e){let n,i;for(let s=0;s<t.length;s++)n=t[s],i=e[s],i.updateMatrix(),n.matrix.copy(i.matrix),n.matrix.decompose(n.position,n.quaternion,n.scale);this.setObjects(t)}async _copy_from_found_node(t){const e=this.p.reference.found_node_with_context(ts.SOP);if(e){const n=(await e.compute()).coreContent();if(n){const e=n.objects();return void this._copy_from_src_objects(t,e)}}this.setObjects(t)}}const d3=yU.indexOf(vU.XYZ),p3={menu:{entries:yU.map(((t,e)=>({name:t,value:e})))}};function _3(t){const e=[];for(let n=t+1;n<=6;n++)e.push({count:n});return{visibleIf:e}}const m3=new class extends ua{constructor(){super(...arguments),this.applyOn=ha.INTEGER(gU.indexOf(_U.GEOMETRIES),{menu:{entries:gU.map(((t,e)=>({name:t,value:e})))}}),this.count=ha.INTEGER(2,{range:[0,6],rangeLocked:[!0,!0]}),this.rotationOrder0=ha.INTEGER(d3,{separatorBefore:!0,...p3,..._3(0)}),this.r0=ha.VECTOR3([0,0,0],{..._3(0)}),this.rotationOrder1=ha.INTEGER(d3,{separatorBefore:!0,...p3,..._3(1)}),this.r1=ha.VECTOR3([0,0,0],{..._3(1)}),this.rotationOrder2=ha.INTEGER(d3,{separatorBefore:!0,...p3,..._3(2)}),this.r2=ha.VECTOR3([0,0,0],{..._3(2)}),this.rotationOrder3=ha.INTEGER(d3,{separatorBefore:!0,...p3,..._3(3)}),this.r3=ha.VECTOR3([0,0,0],{..._3(3)}),this.rotationOrder4=ha.INTEGER(d3,{separatorBefore:!0,...p3,..._3(4)}),this.r4=ha.VECTOR3([0,0,0],{..._3(4)}),this.rotationOrder5=ha.INTEGER(d3,{separatorBefore:!0,...p3,..._3(5)}),this.r5=ha.VECTOR3([0,0,0],{..._3(5)})}};class f3 extends uV{constructor(){super(...arguments),this.paramsConfig=m3,this._core_transform=new bU,this._t=new p.a(0,0,0),this._s=new p.a(1,1,1),this._scale=1}static type(){return\\\\\\\"transformMulti\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to transform\\\\\\\",\\\\\\\"objects to copy initial transform from\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState([Qi.FROM_NODE,Qi.NEVER]),this.scene().dispatchController.onAddListener((()=>{this.params.onParamsCreated(\\\\\\\"params_label\\\\\\\",(()=>{this.params.label.init([this.p.applyOn],(()=>gU[this.pv.applyOn]))}))})),this.params.onParamsCreated(\\\\\\\"cache param pairs\\\\\\\",(()=>{this._rot_and_index_pairs=[[this.p.r0,this.p.rotationOrder0],[this.p.r1,this.p.rotationOrder1],[this.p.r2,this.p.rotationOrder2],[this.p.r3,this.p.rotationOrder3],[this.p.r4,this.p.rotationOrder4],[this.p.r5,this.p.rotationOrder5]]}))}cook(t){const e=t[0].objectsWithGeo(),n=t[1]?t[1].objectsWithGeo()[0]:void 0;this._apply_transforms(e,n),this.setObjects(e)}_apply_transforms(t,e){const n=gU[this.pv.applyOn];switch(n){case _U.GEOMETRIES:return this._apply_matrix_to_geometries(t,e);case _U.OBJECTS:return this._apply_matrix_to_objects(t,e)}os.unreachable(n)}_apply_matrix_to_geometries(t,e){if(!this._rot_and_index_pairs)return;if(e){const n=e.geometry;if(n){const e=[Ws.POSITION,Ws.NORMAL,Ws.TANGENT];for(let i of e){const e=n.attributes[i];for(let n of t){const t=n.geometry.attributes[i];e&&t&&Xs.copy(e,t)}}}}let n;for(let e=0;e<this.pv.count;e++){n=this._rot_and_index_pairs[e];const i=this._matrix(n[0].value,n[1].value);for(let e of t)e.geometry.applyMatrix4(i)}}_apply_matrix_to_objects(t,e){if(!this._rot_and_index_pairs)return;if(e)for(let n of t)n.matrix.copy(e.matrix),n.matrix.decompose(n.position,n.quaternion,n.scale);let n;for(let e=0;e<this.pv.count;e++){n=this._rot_and_index_pairs[e];const i=this._matrix(n[0].value,n[1].value);for(let e of t)e.applyMatrix4(i)}}_matrix(t,e){return this._core_transform.matrix(this._t,t,this._s,this._scale,yU[e])}}var g3;!function(t){t.RESET_OBJECT=\\\\\\\"reset objects transform\\\\\\\",t.CENTER_GEO=\\\\\\\"center geometries\\\\\\\",t.PROMOTE_GEO_TO_OBJECT=\\\\\\\"center geometry and transform object\\\\\\\"}(g3||(g3={}));const v3=[g3.RESET_OBJECT,g3.CENTER_GEO,g3.PROMOTE_GEO_TO_OBJECT];const y3=new class extends ua{constructor(){super(...arguments),this.mode=ha.INTEGER(v3.indexOf(g3.RESET_OBJECT),{menu:{entries:v3.map(((t,e)=>({name:t,value:e})))}})}};class x3 extends uV{constructor(){super(...arguments),this.paramsConfig=y3,this._bbox_center=new p.a,this._translate_matrix=new A.a}static type(){return\\\\\\\"transformReset\\\\\\\"}static displayedInputNames(){return[\\\\\\\"objects to reset transform\\\\\\\",\\\\\\\"optional reference for center\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1,2),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}setMode(t){this.p.mode.set(v3.indexOf(t))}cook(t){const e=v3[this.pv.mode];this._select_mode(e,t)}_select_mode(t,e){switch(t){case g3.RESET_OBJECT:return this._reset_objects(e);case g3.CENTER_GEO:return this._center_geos(e,!1);case g3.PROMOTE_GEO_TO_OBJECT:return this._center_geos(e,!0)}os.unreachable(t)}_reset_objects(t){const e=t[0],n=e.objects();for(let t of n)t.matrix.identity(),bU.decomposeMatrix(t);this.setCoreGroup(e)}_center_geos(t,e){const n=t[0],i=n.objectsWithGeo();let s=i;const r=t[1];r&&(s=r.objectsWithGeo());for(let t=0;t<i.length;t++){const n=i[t],r=s[t]||s[s.length-1],o=n.geometry,a=r.geometry;if(o&&a){a.computeBoundingBox();const t=a.boundingBox;t&&(t.getCenter(this._bbox_center),r.updateMatrixWorld(),this._bbox_center.applyMatrix4(r.matrixWorld),e&&(this._translate_matrix.identity(),this._translate_matrix.makeTranslation(this._bbox_center.x,this._bbox_center.y,this._bbox_center.z),n.matrix.multiply(this._translate_matrix),bU.decomposeMatrix(n),n.updateWorldMatrix(!1,!1)),this._translate_matrix.identity(),this._translate_matrix.makeTranslation(-this._bbox_center.x,-this._bbox_center.y,-this._bbox_center.z),o.applyMatrix4(this._translate_matrix))}}this.setCoreGroup(n)}}const b3=new p.a(0,1,0);const w3=new class extends ua{constructor(){super(...arguments),this.radius=ha.FLOAT(1,{range:[0,1]}),this.height=ha.FLOAT(1,{range:[0,1]}),this.segmentsRadial=ha.INTEGER(12,{range:[3,20],rangeLocked:[!0,!1]}),this.segmentsHeight=ha.INTEGER(1,{range:[1,20],rangeLocked:[!0,!1]}),this.cap=ha.BOOLEAN(1),this.center=ha.VECTOR3([0,0,0]),this.direction=ha.VECTOR3([0,0,1])}};class T3 extends uV{constructor(){super(...arguments),this.paramsConfig=w3,this._core_transform=new bU}static type(){return\\\\\\\"tube\\\\\\\"}cook(){const t=new aG(this.pv.radius,this.pv.radius,this.pv.height,this.pv.segmentsRadial,this.pv.segmentsHeight,!this.pv.cap);this._core_transform.rotateGeometry(t,b3,this.pv.direction),t.translate(this.pv.center.x,this.pv.center.y,this.pv.center.z),this.setGeometry(t)}}function A3(t){return function(t){let e=0,n=0;for(const i of t)e+=i.w*i.h,n=Math.max(n,i.w);t.sort(((t,e)=>e.h-t.h));const i=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),n),h:1/0}];let s=0,r=0;for(const e of t)for(let t=i.length-1;t>=0;t--){const n=i[t];if(!(e.w>n.w||e.h>n.h)){if(e.x=n.x,e.y=n.y,r=Math.max(r,e.y+e.h),s=Math.max(s,e.x+e.w),e.w===n.w&&e.h===n.h){const e=i.pop();t<i.length&&(i[t]=e)}else e.h===n.h?(n.x+=e.w,n.w-=e.w):e.w===n.w?(n.y+=e.h,n.h-=e.h):(i.push({x:n.x+e.w,y:n.y,w:n.w-e.w,h:e.h}),n.y+=e.h,n.h-=e.h);break}}return{w:s,h:r,fill:e/(s*r)||0}}(t)}class M3 extends aV{static type(){return O2.UV_LAYOUT}cook(t,e){const n=t[0].objectsWithGeo(),i=[];for(let t of n){const e=t;e.isMesh&&i.push(e)}return this._layoutUVs(i,e),t[0]}_layoutUVs(t,e){var n;const i=[],s=new WeakMap,r=e.padding/e.res;let o=0;for(let a of t){a.geometry.hasAttribute(e.uv)||null===(n=this.states)||void 0===n||n.error.set(`attribute ${e.uv} not found`);const t={w:1+2*r,h:1+2*r};i.push(t),s.set(t,o),o++}const a=A3(i);for(let n of i){const i=n,o=s.get(n);if(null!=o){const n=t[o],s=n.geometry.getAttribute(e.uv).clone(),l=s.array;for(let t=0;t<s.array.length;t+=s.itemSize)l[t]=(s.array[t]+i.x+r)/a.w,l[t+1]=(s.array[t+1]+i.y+r)/a.h;n.geometry.setAttribute(e.uv2,s),n.geometry.getAttribute(e.uv2).needsUpdate=!0}}}}M3.DEFAULT_PARAMS={res:1024,padding:3,uv:\\\\\\\"uv\\\\\\\",uv2:\\\\\\\"uv2\\\\\\\"},M3.INPUT_CLONED_STATE=Qi.FROM_NODE;const E3=new class extends ua{constructor(){super(...arguments),this.res=ha.INTEGER(1024),this.padding=ha.INTEGER(3),this.uv=ha.STRING(\\\\\\\"uv\\\\\\\"),this.uv2=ha.STRING(\\\\\\\"uv2\\\\\\\")}};class S3 extends uV{constructor(){super(...arguments),this.paramsConfig=E3}static type(){return O2.UV_LAYOUT}static displayedInputNames(){return[\\\\\\\"geometries to unwrap UVs\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(M3.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new M3(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}var C3;!function(t){t.CHANGE=\\\\\\\"change\\\\\\\",t.MOVEEND=\\\\\\\"moveend\\\\\\\"}(C3||(C3={}));class N3{constructor(t){this._callback=t,this._updateAlways=!0,this._listenerAdded=!1,this._listener=this._executeCallback.bind(this)}removeTarget(){this.setTarget(void 0)}setTarget(t){t||this._removeCameraEvent();const e=this._target;this._target=t,null!=this._target&&this._executeCallback(),(null!=this._target?this._target.uuid:void 0)!==(null!=e?e.uuid:void 0)&&this._addCameraEvent()}setUpdateAlways(t){this._removeCameraEvent(),this._updateAlways=t,this._addCameraEvent()}_currentEventName(){return this._updateAlways?C3.CHANGE:C3.MOVEEND}_addCameraEvent(){this._listenerAdded||null!=this._target&&(this._target.addEventListener(this._currentEventName(),this._listener),this._listenerAdded=!0)}_removeCameraEvent(){!0===this._listenerAdded&&null!=this._target&&(this._target.removeEventListener(this._currentEventName(),this._listener),this._listenerAdded=!1)}_executeCallback(){null!=this._target&&this._callback(this._target)}}const L3=new class extends ua{constructor(){super(...arguments),this.camera=ha.OPERATOR_PATH(\\\\\\\"/perspective_camera1\\\\\\\",{nodeSelection:{context:ts.OBJ}})}};class O3 extends uV{constructor(){super(...arguments),this.paramsConfig=L3,this._cameraController=new N3(this._updateUVsFromCamera.bind(this))}static type(){return\\\\\\\"uvProject\\\\\\\"}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(Qi.FROM_NODE)}cook(t){this._processed_core_group=t[0];const e=this.p.camera.found_node();null!=e?(this._camera_object=e.object,this._cameraController.setTarget(this._camera_object)):(this._camera_object=void 0,this._cameraController.removeTarget()),this.setCoreGroup(this._processed_core_group)}_updateUVsFromCamera(t){const e=this.parent();if(this._processed_core_group&&e){const t=this._processed_core_group.points(),n=e.object.matrixWorld;for(let e of t){const t=e.position(),i=this._vectorInCameraSpace(t,n);if(i){const t={x:1-(.5*i[0]+.5),y:.5*i[1]+.5};e.setAttribValue(\\\\\\\"uv\\\\\\\",t)}}}}_vectorInCameraSpace(t,e){if(this._camera_object)return t.applyMatrix4(e),t.project(this._camera_object).toArray()}}class P3 extends aV{static type(){return O2.UV_TRANSFORM}cook(t,e){const n=t[0].objectsWithGeo();for(let t of n){const n=t.geometry.getAttribute(e.attribName),i=n.array,s=i.length/2;for(let t=0;t<s;t++)i[2*t+0]=e.t.x+e.pivot.x+e.s.x*(i[2*t+0]-e.pivot.x),i[2*t+1]=e.t.y+e.pivot.y+e.s.y*(i[2*t+1]-e.pivot.y);n.needsUpdate=!0}return t[0]}}P3.DEFAULT_PARAMS={attribName:\\\\\\\"uv\\\\\\\",t:new d.a(0,0),s:new d.a(1,1),pivot:new d.a(0,0)},P3.INPUT_CLONED_STATE=Qi.FROM_NODE;const R3=P3.DEFAULT_PARAMS;const I3=new class extends ua{constructor(){super(...arguments),this.attribName=ha.STRING(R3.attribName),this.t=ha.VECTOR2(R3.t.toArray()),this.s=ha.VECTOR2(R3.s.toArray()),this.pivot=ha.VECTOR2(R3.pivot.toArray())}};class F3 extends uV{constructor(){super(...arguments),this.paramsConfig=I3}static type(){return O2.UV_TRANSFORM}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(P3.INPUT_CLONED_STATE)}async cook(t){this._operation=this._operation||new P3(this.scene(),this.states,this);const e=await this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class D3 extends aV{static type(){return O2.UV_UNWRAP}cook(t,e){const n=t[0].objectsWithGeo();for(let t of n){const n=t;n.isMesh&&this._unwrapUVs(n,e)}return t[0]}_unwrapUVs(t,e){var n,i,s;const r=[],o=t.geometry,a=null===(n=o.getIndex())||void 0===n?void 0:n.array;if(!a)return;if(!(null===(i=o.attributes.position)||void 0===i?void 0:i.array))return;const l=null===(s=o.attributes[e.uv])||void 0===s?void 0:s.array;if(!l)return;const c=a.length/3;for(let t=0;t<c;t++)r.push({w:1,h:1});const h=A3(r),u=new Array(l.length);for(let t=0;t<c;t++){const e=r[t],n=e.x/h.w,i=e.y/h.h,s=e.w/h.w,o=e.h/h.h,l=2*a[3*t+0],c=2*a[3*t+1],d=2*a[3*t+2];u[l]=n,u[l+1]=i,u[c]=n+s,u[c+1]=i,u[d]=n,u[d+1]=i+o}o.setAttribute(e.uv,new C.c(u,2))}}D3.DEFAULT_PARAMS={uv:\\\\\\\"uv\\\\\\\"},D3.INPUT_CLONED_STATE=Qi.FROM_NODE;const B3=new class extends ua{constructor(){super(...arguments),this.uv=ha.STRING(\\\\\\\"uv\\\\\\\")}};class z3 extends uV{constructor(){super(...arguments),this.paramsConfig=B3}static type(){return O2.UV_UNWRAP}static displayedInputNames(){return[\\\\\\\"geometries to unwrap UVs\\\\\\\"]}initializeNode(){this.io.inputs.setCount(1),this.io.inputs.initInputsClonedState(D3.INPUT_CLONED_STATE)}cook(t){this._operation=this._operation||new D3(this.scene(),this.states);const e=this._operation.cook(t,this.pv);this.setCoreGroup(e)}}class k3 extends aa{static context(){return ts.SOP}cook(){this.cookController.endCook()}}class U3 extends k3{}class G3 extends U3{constructor(){super(...arguments),this._children_controller_context=ts.ANIM}static type(){return es.ANIM}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class V3 extends U3{constructor(){super(...arguments),this._children_controller_context=ts.COP}static type(){return es.COP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class H3 extends U3{constructor(){super(...arguments),this._children_controller_context=ts.EVENT}static type(){return es.EVENT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class j3 extends U3{constructor(){super(...arguments),this._children_controller_context=ts.MAT}static type(){return es.MAT}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class W3 extends k3{constructor(){super(...arguments),this.paramsConfig=new ef,this.effectsComposerController=new nf(this),this.displayNodeController=new Fm(this,this.effectsComposerController.displayNodeControllerCallbacks()),this._children_controller_context=ts.POST}static type(){return es.POST}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class q3 extends U3{constructor(){super(...arguments),this._children_controller_context=ts.ROP}static type(){return es.ROP}createNode(t,e){return super.createNode(t,e)}children(){return super.children()}nodesByType(t){return super.nodesByType(t)}}class X3{constructor(t){this.param=t,this._require_dependency=!1}require_dependency(){return this._require_dependency}node(){return this._node=this._node||this.param.node}static requiredArguments(){return console.warn(\\\\\\\"Expression.Method._Base.required_arguments virtual method call. Please override\\\\\\\"),[]}static optionalArguments(){return[]}static minAllowedArgumentsCount(){return this.requiredArguments().length}static maxAllowedArgumentsCount(){return this.minAllowedArgumentsCount()+this.optionalArguments().length}static allowedArgumentsCount(t){return t>=this.minAllowedArgumentsCount()&&t<=this.maxAllowedArgumentsCount()}processArguments(t){throw\\\\\\\"Expression.Method._Base.process_arguments virtual method call. Please override\\\\\\\"}async getReferencedNodeContainer(t){const e=this.getReferencedNode(t);if(e){let t;if(t=e.isDirty()?await e.compute():e.containerController.container(),t){if(t.coreContent())return t}throw`referenced node invalid: ${e.path()}`}throw`invalid input (${t})`}getReferencedParam(t,e){const n=this.node();return n?bi.findParam(n,t,e):null}findReferencedGraphNode(t,e){if(!m.isNumber(t)){const n=t;return this.getReferencedNode(n,e)}{const e=t,n=this.node();if(n){return n.io.inputs.inputGraphNode(e)}}return null}getReferencedNode(t,e){let n=null;const i=this.node();if(m.isString(t)){if(i){const s=t;n=bi.findNode(i,s,e)}}else if(i){const e=t;n=i.io.inputs.input(e)}return n||null}findDependency(t){return null}createDependencyFromIndexOrPath(t){const e=new po,n=this.findReferencedGraphNode(t,e);return n?this.createDependency(n,t,e):(li.warn(\\\\\\\"node not found for path\\\\\\\",t),null)}createDependency(t,e,n){return Ur.create(this.param,e,t,n)}}class Y3 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"arguments list\\\\\\\"],[\\\\\\\"number\\\\\\\",\\\\\\\"index\\\\\\\"]]}processArguments(t){return new Promise(((e,n)=>{if(2==t.length){const n=t[0],i=t[1];e(n.split(\\\\\\\" \\\\\\\")[i])}else e(0)}))}}class $3 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"arguments list\\\\\\\"]]}processArguments(t){return new Promise(((e,n)=>{if(1==t.length){e(t[0].split(\\\\\\\" \\\\\\\").length)}else e(0)}))}}const J3=[\\\\\\\"min\\\\\\\",\\\\\\\"max\\\\\\\",\\\\\\\"size\\\\\\\",\\\\\\\"center\\\\\\\"],Z3=[\\\\\\\"x\\\\\\\",\\\\\\\"y\\\\\\\",\\\\\\\"z\\\\\\\"];class K3 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"vector name, min, max, size or center\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"component_name, x,y or z\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}processArguments(t){let e=0;return new Promise((async(n,i)=>{if(t.length>=1){const s=t[0],r=t[1],o=t[2];let a=null;try{a=await this.getReferencedNodeContainer(s)}catch(t){i(t)}a&&(e=this._get_value_from_container(a,r,o),n(e))}else n(0)}))}_get_value_from_container(t,e,n){const i=t.boundingBox();if(!e)return i;if(J3.indexOf(e)>=0){let t=new p.a;switch(e){case\\\\\\\"size\\\\\\\":i.getSize(t);break;case\\\\\\\"center\\\\\\\":i.getCenter(t);break;default:t=i[e]}return n?Z3.indexOf(n)>=0?t[n]:-1:t}return-1}}class Q3 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"component_name, x,y or z\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}processArguments(t){return new Promise((async(e,n)=>{if(t.length>=1){const i=t[0],s=t[1];let r=null;try{r=await this.getReferencedNodeContainer(i)}catch(t){n(t)}if(r){const t=r.boundingBox(),n=t.min.clone().add(t.max).multiplyScalar(.5);if(s){const t=n[s];e(null!=t?t:0)}else e(n)}}else e(0)}))}}class t4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to param\\\\\\\"]]}findDependency(t){const e=new po,n=this.getReferencedParam(t,e);return n?this.createDependency(n,t,e):null}async processArguments(t){return new Promise((async(e,n)=>{let i=0;if(1==t.length){const s=t[0],r=this.getReferencedParam(s);if(r){r.isDirty()&&await r.compute();const t=r.value;null!=t&&(i=t,e(i))}else n(0)}}))}}class e4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to copy\\\\\\\"],[\\\\\\\"integer\\\\\\\",\\\\\\\"default value\\\\\\\"]]}static optionalArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"attribute name (optional)\\\\\\\"]]}findDependency(t){const e=this.findReferencedGraphNode(t);if(e&&\\\\\\\"copy\\\\\\\"==e.type()){const n=e.stamp_node;return this.createDependency(n,t)}return null}processArguments(t){return new Promise(((e,n)=>{if(2==t.length||3==t.length){const n=t[0],i=t[1],s=t[2],r=this.node(),o=r?bi.findNode(r,n):null;let a;o&&o.type()==DZ.type()&&(a=o.stamp_value(s)),null==a&&(a=i),e(a)}else e(0)}))}}class n4 extends X3{constructor(){super(...arguments),this._require_dependency=!0,this._resolution=new d.a}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"component_name: x or y\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}async processArguments(t){if(1==t.length||2==t.length){const e=t[0],n=t[1],i=await this.getReferencedNodeContainer(e);if(i){const t=i.resolution();if(!n)return this._resolution.set(t[0],t[1]),this._resolution;if([0,\\\\\\\"0\\\\\\\",\\\\\\\"x\\\\\\\"].includes(n))return t[0];if([1,\\\\\\\"1\\\\\\\",\\\\\\\"y\\\\\\\"].includes(n))return t[1]}}return-1}}class i4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[]}async processArguments(t){return new Promise((async(t,e)=>{t(ng.isMobile())}))}}class s4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[]}async processArguments(t){return new Promise((async(t,e)=>{t(ng.isTouchDevice())}))}}class r4 extends X3{static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"javascript expression\\\\\\\"]]}async processArguments(t){let e=0;if(1==t.length){const n=t[0];if(this._function=this._function||this._create_function(n),this._function)try{e=this._function(this.param.scene(),this.param.node,this.param)}catch(t){console.warn(\\\\\\\"expression error\\\\\\\"),console.warn(t)}}return e}_create_function(t){return new Function(\\\\\\\"scene\\\\\\\",\\\\\\\"node\\\\\\\",\\\\\\\"param\\\\\\\",`return ${t}`)}}class o4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"attribute name\\\\\\\"],[\\\\\\\"index\\\\\\\",\\\\\\\"object index\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}processArguments(t){return new Promise((async(e,n)=>{if(3==t.length){const i=t[0],s=t[1],r=t[2];let o=null;try{o=await this.getReferencedNodeContainer(i)}catch(t){n(t)}if(o){e(this._get_value_from_container(o,s,r))}}else console.warn(`${t.length} given when expected 3`),e(0)}))}_get_value_from_container(t,e,n){const i=t.coreContent();if(i){const t=i.coreObjects()[n];return t?t.attribValue(e):0}return null}}class a4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}processArguments(t){return new Promise((async(e,n)=>{if(1==t.length){const i=t[0];let s;try{s=await this.getReferencedNodeContainer(i)}catch(t){return void n(t)}if(s){e(s.objectsCount())}}else e(0)}))}}class l4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"]]}findDependency(t){const e=this.findReferencedGraphNode(t);if(e){const n=e;if(n.nameController){const e=n.nameController.graph_node;return this.createDependency(e,t)}}return null}processArguments(t){return new Promise(((e,n)=>{if(1==t.length){const n=t[0],i=this.getReferencedNode(n);if(i){const t=i.name();e(ss.tailDigits(t))}else e(0)}else e(0)}))}}class c4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"]]}findDependency(t){const e=this.findReferencedGraphNode(t);if(e){const n=e;if(n.nameController){const e=n.nameController.graph_node;return this.createDependency(e,t)}}return null}processArguments(t){return new Promise(((e,n)=>{if(1==t.length){const n=t[0],i=this.getReferencedNode(n);if(i){e(i.name())}else e(0)}else e(0)}))}}class h4 extends X3{static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"number\\\\\\\"]]}processArguments(t){return new Promise((e=>{const n=t[0]||2;e(`${t[1]||0}`.padStart(n,\\\\\\\"0\\\\\\\"))}))}}class u4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"attribute name\\\\\\\"],[\\\\\\\"index\\\\\\\",\\\\\\\"point index\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}processArguments(t){return new Promise((async(e,n)=>{if(3==t.length){const i=t[0],s=t[1],r=t[2];let o=null;try{o=await this.getReferencedNodeContainer(i)}catch(t){n(t)}if(o){e(this._get_value_from_container(o,s,r))}}else console.warn(`${t.length} given when expected 3`),e(0)}))}_get_value_from_container(t,e,n){const i=t.coreContent();if(i){const t=i.points()[n];return t?t.attribValue(e):0}return null}}class d4 extends X3{constructor(){super(...arguments),this._require_dependency=!0}static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"path to node\\\\\\\"]]}findDependency(t){return this.createDependencyFromIndexOrPath(t)}processArguments(t){return new Promise((async(e,n)=>{if(1==t.length){const i=t[0];let s;try{s=await this.getReferencedNodeContainer(i)}catch(t){return void n(t)}if(s){e(s.pointsCount())}}else e(0)}))}}class p4 extends X3{static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"string to count characters of\\\\\\\"]]}async processArguments(t){let e=0;if(1==t.length){e=t[0].length}return e}}class _4 extends X3{static requiredArguments(){return[]}async processArguments(t){let e=\\\\\\\"\\\\\\\";for(let n of t)null==n&&(n=\\\\\\\"\\\\\\\"),e+=`${n}`;return e}}class m4 extends X3{static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"string to get index from\\\\\\\"],[\\\\\\\"string\\\\\\\",\\\\\\\"char to find index of\\\\\\\"]]}async processArguments(t){let e=-1;if(2==t.length){const n=t[0],i=t[1];e=n.indexOf(i)}return e}}class f4 extends X3{static requiredArguments(){return[[\\\\\\\"string\\\\\\\",\\\\\\\"string to get range from\\\\\\\"],[\\\\\\\"integer\\\\\\\",\\\\\\\"range start\\\\\\\"],[\\\\\\\"integer\\\\\\\",\\\\\\\"range size\\\\\\\"]]}async processArguments(t){let e=\\\\\\\"\\\\\\\";const n=t[0],i=t[1]||0;let s=t[2]||1;return n&&(e=n.substr(i,s)),e}}class g4 extends X3{constructor(){super(...arguments),this._require_dependency=!0,this._windowSize=new d.a}static requiredArguments(){return[[]]}findDependency(t){return this.param.addGraphInput(this.param.scene().windowController.graphNode()),null}processArguments(t){return new Promise((t=>{this._windowSize.set(window.innerWidth,window.innerHeight),t(this._windowSize)}))}}class v4{constructor(t,e){this._controller=t,this._node=e,this._deleted_params_data=new Map,this._created_spare_param_names=[],this._raw_input_serialized_by_param_name=new Map,this._init_value_serialized_by_param_name=new Map}get assembler(){return this._controller.assembler}createSpareParameters(){var t;const e={},n=this.assembler.param_configs(),i=n.map((t=>t.name())),s=b.clone(i);if(0==this._validateNames(s))return;b.clone(this._created_spare_param_names).concat(s).forEach((t=>{const n=this._node.params.get(t);if(n){this._raw_input_serialized_by_param_name.set(n.name(),n.rawInputSerialized()),this._init_value_serialized_by_param_name.set(n.name(),n.defaultValueSerialized());const t=rV.dispatch_param(n);if(t.required()){const e=t.data();this._deleted_params_data.set(n.name(),e)}}e.namesToDelete=e.namesToDelete||[],e.namesToDelete.push(t)}));for(let t of n)if(s.indexOf(t.name())>=0){const n=b.clone(t.param_options),i={spare:!0,computeOnDirty:!0,cook:!1},s=b.merge(n,i);let r=this._init_value_serialized_by_param_name.get(t.name());null==r&&(r=t.default_value);let o=this._raw_input_serialized_by_param_name.get(t.name());null==o&&(o=t.default_value),e.toAdd=e.toAdd||[],e.toAdd.push({name:t.name(),type:t.type(),init_value:r,raw_input:o,options:s})}this._node.params.updateParams(e),this._created_spare_param_names=(null===(t=e.toAdd)||void 0===t?void 0:t.map((t=>t.name)))||[];for(let t of n){const e=this._node.params.get(t.name());e&&(t.execute_callback(this._node,e),e.type()==Cr.OPERATOR_PATH&&setTimeout((async()=>{e.isDirty()&&await e.compute(),e.options.executeCallback()}),200))}}_validateNames(t){const e=b.clone(this._node.params.non_spare_names),n=f.intersection(t,e);if(n.length>0){const t=`${this._node.path()} attempts to create spare params called '${n.join(\\\\\\\", \\\\\\\")}' with same name as params`;return this._node.states.error.set(t),!1}return!0}}class y4{constructor(t,e){this.node=t,this._globals_handler=new Pf,this._compile_required=!0,this._assembler=new e(this.node),this._spare_params_controller=new v4(this,this.node)}set_assembler_globals_handler(t){(this._globals_handler?this._globals_handler.id():null)!=(t?t.id():null)&&(this._globals_handler=t,this.set_compilation_required_and_dirty(),this._assembler.reset_configs())}get assembler(){return this._assembler}get globals_handler(){return this._globals_handler}add_output_inputs(t){this._assembler.add_output_inputs(t)}add_globals_outputs(t){this._assembler.add_globals_outputs(t)}allow_attribute_exports(){return this._assembler.allow_attribute_exports()}setCompilationRequired(t=!0){this._compile_required=t}set_compilation_required_and_dirty(t){this.setCompilationRequired(),this.node.setDirty(t)}compileRequired(){return this._compile_required}post_compile(){this.createSpareParameters(),this.setCompilationRequired(!1)}createSpareParameters(){this._spare_params_controller.createSpareParameters()}addFilterFragmentShaderCallback(t,e){this.assembler._addFilterFragmentShaderCallback(t,e),this.setCompilationRequired()}removeFilterFragmentShaderCallback(t){this.assembler._removeFilterFragmentShaderCallback(t),this.setCompilationRequired()}}var x4;!function(t){t.FUNCTION_DECLARATION=\\\\\\\"function_declaration\\\\\\\",t.DEFINE=\\\\\\\"define\\\\\\\",t.BODY=\\\\\\\"body\\\\\\\"}(x4||(x4={}));class b4{constructor(t,e,n){this._name=t,this._input_names=e,this._dependencies=n}name(){return this._name}input_names(){return this._input_names}dependencies(){return this._dependencies}}class w4{constructor(t,e={}){this._name=t,this._options=e}name(){return this._name}default_from_attribute(){return this._options.default_from_attribute||!1}default(){return this._options.default}if_condition(){return this._options.if}prefix(){return this._options.prefix||\\\\\\\"\\\\\\\"}suffix(){return this._options.suffix||\\\\\\\"\\\\\\\"}postLines(){return this._options.postLines}}class T4{constructor(t){this._shader_name=t,this._definitions_by_node_id=new Map,this._body_lines_by_node_id=new Map}get shader_name(){return this._shader_name}addDefinitions(t,e){for(let n of e)h.pushOnArrayAtEntry(this._definitions_by_node_id,t.graphNodeId(),n)}definitions(t){return this._definitions_by_node_id.get(t.graphNodeId())}addBodyLines(t,e){for(let n of e)h.pushOnArrayAtEntry(this._body_lines_by_node_id,t.graphNodeId(),n)}body_lines(t){return this._body_lines_by_node_id.get(t.graphNodeId())}}class A4{constructor(t,e,n){this._shader_names=t,this._current_shader_name=e,this._assembler=n,this._lines_controller_by_shader_name=new Map;for(let t of this._shader_names)this._lines_controller_by_shader_name.set(t,new T4(t))}assembler(){return this._assembler}shaderNames(){return this._shader_names}set_current_shader_name(t){this._current_shader_name=t}get current_shader_name(){return this._current_shader_name}addDefinitions(t,e,n){if(0==e.length)return;n=n||this._current_shader_name;const i=this._lines_controller_by_shader_name.get(n);i&&i.addDefinitions(t,e)}definitions(t,e){const n=this._lines_controller_by_shader_name.get(t);if(n)return n.definitions(e)}addBodyLines(t,e,n){if(0==e.length)return;n=n||this._current_shader_name;const i=this._lines_controller_by_shader_name.get(n);i&&i.addBodyLines(t,e)}body_lines(t,e){const n=this._lines_controller_by_shader_name.get(t);if(n)return n.body_lines(e)}}const M4={[x4.FUNCTION_DECLARATION]:\\\\\\\"\\\\\\\",[x4.DEFINE]:\\\\\\\";\\\\\\\",[x4.BODY]:\\\\\\\";\\\\\\\"},E4={[x4.FUNCTION_DECLARATION]:\\\\\\\"\\\\\\\",[x4.DEFINE]:\\\\\\\"\\\\\\\",[x4.BODY]:\\\\\\\"\\\\t\\\\\\\"};class S4{static node_comment(t,e){let n=`// ${t.path()}`,i=E4[e];if(e==x4.BODY){let e=this.node_distance_to_material(t);t.type()==ns.OUTPUT&&(e+=1),i=i.repeat(e)}return e==x4.BODY&&(n=`${i}${n}`),n}static line_wrap(t,e,n){let i=!0;0!=e.indexOf(\\\\\\\"#if\\\\\\\")&&0!=e.indexOf(\\\\\\\"#endif\\\\\\\")||(i=!1);let s=E4[n];if(n==x4.BODY&&(s=s.repeat(this.node_distance_to_material(t))),e=`${s}${e}`,i){const t=e[e.length-1],i=M4[n];t!=i&&\\\\\\\"{\\\\\\\"!=t&&\\\\\\\"}\\\\\\\"!=t&&(e+=i)}return e}static post_line_separator(t){return t==x4.BODY?\\\\\\\"\\\\t\\\\\\\":\\\\\\\"\\\\\\\"}static node_distance_to_material(t){const e=t.parent();if(!e)return 0;if(e.context()!=t.context())return 1;{let n=1;return t.type()!=ns.INPUT&&t.type()!=ns.OUTPUT||(n=0),n+this.node_distance_to_material(e)}}}class C4{constructor(t,e,n){this._node_traverser=t,this._root_nodes_for_shader_method=e,this._assembler=n,this._param_configs_controller=new PF,this._param_configs_set_allowed=!0,this._lines=new Map}shaderNames(){return this._node_traverser.shaderNames()}buildFromNodes(t,e){this._node_traverser.traverse(t);const n=new Map;for(let t of this.shaderNames()){const e=this._node_traverser.nodes_for_shader_name(t);n.set(t,e)}const i=this._node_traverser.sorted_nodes();for(let t of this.shaderNames()){const e=this._root_nodes_for_shader_method(t);for(let i of e)h.pushOnArrayAtEntry(n,t,i)}const s=new Map;for(let t of i)s.set(t.graphNodeId(),!0);for(let e of t)s.get(e.graphNodeId())||(i.push(e),s.set(e.graphNodeId(),!0));for(let t of i)t.reset_code();for(let t of e)t.reset_code();this._shaders_collection_controller=new A4(this.shaderNames(),this.shaderNames()[0],this._assembler),this.reset();for(let t of this.shaderNames()){let e=n.get(t)||[];if(e=f.uniq(e),this._shaders_collection_controller.set_current_shader_name(t),e)for(let t of e)t.setLines(this._shaders_collection_controller)}if(this._param_configs_set_allowed){for(let t of e)t.setParamConfigs();this.setParamConfigs(e)}this.set_code_lines(i)}shaders_collection_controller(){return this._shaders_collection_controller}disallow_new_param_configs(){this._param_configs_set_allowed=!1}allow_new_param_configs(){this._param_configs_set_allowed=!0}reset(){for(let t of this.shaderNames()){const e=new Map;this._lines.set(t,e)}}param_configs(){return this._param_configs_controller.list()||[]}lines(t,e){var n;return(null===(n=this._lines.get(t))||void 0===n?void 0:n.get(e))||[]}all_lines(){return this._lines}setParamConfigs(t){this._param_configs_controller.reset();for(let e of t){const t=e.param_configs();if(t)for(let e of t)this._param_configs_controller.push(e)}}set_code_lines(t){for(let e of this.shaderNames())this.add_code_lines(t,e)}add_code_lines(t,e){this.addDefinitions(t,e,Af.FUNCTION,x4.FUNCTION_DECLARATION),this.addDefinitions(t,e,Af.UNIFORM,x4.DEFINE),this.addDefinitions(t,e,Af.VARYING,x4.DEFINE),this.addDefinitions(t,e,Af.ATTRIBUTE,x4.DEFINE),this.add_code_line_for_nodes_and_line_type(t,e,x4.BODY)}addDefinitions(t,e,n,i){if(!this._shaders_collection_controller)return;const s=[];for(let i of t){let t=this._shaders_collection_controller.definitions(e,i);if(t){t=t.filter((t=>t.definition_type==n));for(let e of t)s.push(e)}}if(s.length>0){const t=new Tf(s),n=t.uniq();if(t.errored)throw`code builder error: ${t.error_message}`;const r=new Map,o=new Map;for(let t of n){const e=t.node.graphNodeId();o.has(e)||o.set(e,!0),h.pushOnArrayAtEntry(r,e,t)}const a=this._lines.get(e);o.forEach(((t,e)=>{const n=r.get(e);if(n){const t=n[0];if(t){const e=S4.node_comment(t.node,i);h.pushOnArrayAtEntry(a,i,e);for(let e of n){const n=S4.line_wrap(t.node,e.line,i);h.pushOnArrayAtEntry(a,i,n)}const s=S4.post_line_separator(i);h.pushOnArrayAtEntry(a,i,s)}}}))}}add_code_line_for_nodes_and_line_type(t,e,n){var i=(t=t.filter((t=>{if(this._shaders_collection_controller){const n=this._shaders_collection_controller.body_lines(e,t);return n&&n.length>0}}))).length;for(let s=0;s<i;s++){const i=s==t.length-1;this.add_code_line_for_node_and_line_type(t[s],e,n,i)}}add_code_line_for_node_and_line_type(t,e,n,i){if(!this._shaders_collection_controller)return;const s=this._shaders_collection_controller.body_lines(e,t);if(s&&s.length>0){const r=this._lines.get(e),o=S4.node_comment(t,n);if(h.pushOnArrayAtEntry(r,n,o),f.uniq(s).forEach((e=>{e=S4.line_wrap(t,e,n),h.pushOnArrayAtEntry(r,n,e)})),n!=x4.BODY||!i){const t=S4.post_line_separator(n);h.pushOnArrayAtEntry(r,n,t)}}}}class N4{constructor(t,e,n){this._parent_node=t,this._shader_names=e,this._input_names_for_shader_name_method=n,this._leaves_graph_id=new Map,this._graph_ids_by_shader_name=new Map,this._outputs_by_graph_id=new Map,this._depth_by_graph_id=new Map,this._graph_id_by_depth=new Map,this._graph=this._parent_node.scene().graph}reset(){this._leaves_graph_id.clear(),this._graph_ids_by_shader_name.clear(),this._outputs_by_graph_id.clear(),this._depth_by_graph_id.clear(),this._graph_id_by_depth.clear(),this._shader_names.forEach((t=>{this._graph_ids_by_shader_name.set(t,new Map)}))}shaderNames(){return this._shader_names}input_names_for_shader_name(t,e){return this._input_names_for_shader_name_method(t,e)}traverse(t){this.reset();for(let t of this.shaderNames())this._leaves_graph_id.set(t,new Map);for(let e of this.shaderNames()){this._shader_name=e;for(let e of t)this.find_leaves_from_root_node(e),this.set_nodes_depth()}this._depth_by_graph_id.forEach(((t,e)=>{null!=t&&h.pushOnArrayAtEntry(this._graph_id_by_depth,t,e)}))}leaves_from_nodes(t){var e;this._shader_name=Mf.LEAVES_FROM_NODES_SHADER,this._graph_ids_by_shader_name.set(this._shader_name,new Map),this._leaves_graph_id.set(this._shader_name,new Map);for(let e of t)this.find_leaves(e);const n=[];return null===(e=this._leaves_graph_id.get(this._shader_name))||void 0===e||e.forEach(((t,e)=>{n.push(e)})),this._graph.nodesFromIds(n)}nodes_for_shader_name(t){const e=[];this._graph_id_by_depth.forEach(((t,n)=>{e.push(n)})),e.sort(((t,e)=>t-e));const n=[],i=new Map;return e.forEach((e=>{const s=this._graph_id_by_depth.get(e);s&&s.forEach((e=>{var s;if(null===(s=this._graph_ids_by_shader_name.get(t))||void 0===s?void 0:s.get(e)){const s=this._graph.nodeFromId(e);this.add_nodes_with_children(s,i,n,t)}}))})),n}sorted_nodes(){const t=[];this._graph_id_by_depth.forEach(((e,n)=>{t.push(n)})),t.sort(((t,e)=>t-e));const e=[],n=new Map;return t.forEach((t=>{const i=this._graph_id_by_depth.get(t);if(i)for(let t of i){const i=this._graph.nodeFromId(t);i&&this.add_nodes_with_children(i,n,e)}})),e}add_nodes_with_children(t,e,n,i){if(e.get(t.graphNodeId())||(n.push(t),e.set(t.graphNodeId(),!0)),t.type()==ns.INPUT){const s=t.parent();if(s){const r=this.sorted_nodes_for_shader_name_for_parent(s,i);for(let s of r)s.graphNodeId()!=t.graphNodeId()&&this.add_nodes_with_children(s,e,n,i)}}}sorted_nodes_for_shader_name_for_parent(t,e){const n=[];this._graph_id_by_depth.forEach(((t,e)=>{n.push(e)})),n.sort(((t,e)=>t-e));const i=[];n.forEach((n=>{const s=this._graph_id_by_depth.get(n);s&&s.forEach((n=>{var s;if(!e||(null===(s=this._graph_ids_by_shader_name.get(e))||void 0===s?void 0:s.get(n))){const e=this._graph.nodeFromId(n);e.parent()==t&&i.push(e)}}))}));const s=i[0];return t.context()==s.context()&&i.push(t),i}find_leaves_from_root_node(t){var e;null===(e=this._graph_ids_by_shader_name.get(this._shader_name))||void 0===e||e.set(t.graphNodeId(),!0);const n=this.input_names_for_shader_name(t,this._shader_name);if(n)for(let e of n){const n=t.io.inputs.named_input(e);n&&(h.pushOnArrayAtEntry(this._outputs_by_graph_id,n.graphNodeId(),t.graphNodeId()),this.find_leaves(n))}this._outputs_by_graph_id.forEach(((t,e)=>{this._outputs_by_graph_id.set(e,f.uniq(t))}))}find_leaves(t){var e;null===(e=this._graph_ids_by_shader_name.get(this._shader_name))||void 0===e||e.set(t.graphNodeId(),!0);const n=this._find_inputs_or_children(t),i=f.compact(n),s=f.uniq(i.map((t=>t.graphNodeId()))).map((t=>this._graph.nodeFromId(t)));if(s.length>0)for(let e of s)h.pushOnArrayAtEntry(this._outputs_by_graph_id,e.graphNodeId(),t.graphNodeId()),this.find_leaves(e);else this._leaves_graph_id.get(this._shader_name).set(t.graphNodeId(),!0)}_find_inputs_or_children(t){var e,n;if(t.type()==ns.INPUT)return(null===(e=t.parent())||void 0===e?void 0:e.io.inputs.inputs())||[];if(t.childrenAllowed()){return[null===(n=t.childrenController)||void 0===n?void 0:n.output_node()]}return t.io.inputs.inputs()}set_nodes_depth(){this._leaves_graph_id.forEach(((t,e)=>{t.forEach(((t,e)=>{this.set_node_depth(e)}))}))}set_node_depth(t,e=0){const n=this._depth_by_graph_id.get(t);null!=n?this._depth_by_graph_id.set(t,Math.max(n,e)):this._depth_by_graph_id.set(t,e);const i=this._outputs_by_graph_id.get(t);i&&i.forEach((t=>{this.set_node_depth(t,e+1)}))}}const L4=new Map([[Mf.VERTEX,\\\\\\\"#include <common>\\\\\\\"],[Mf.FRAGMENT,\\\\\\\"#include <common>\\\\\\\"]]),O4=new Map([[Mf.VERTEX,\\\\\\\"#include <color_vertex>\\\\\\\"],[Mf.FRAGMENT,\\\\\\\"vec4 diffuseColor = vec4( diffuse, opacity );\\\\\\\"]]),P4=new Map([[Mf.VERTEX,[\\\\\\\"#include <begin_vertex>\\\\\\\",\\\\\\\"#include <beginnormal_vertex>\\\\\\\"]],[Mf.FRAGMENT,[]]]);class R4 extends class{}{constructor(t){super(),this._gl_parent_node=t,this._shaders_by_name=new Map,this._lines=new Map,this._root_nodes=[],this._leaf_nodes=[],this._uniforms_time_dependent=!1,this._uniforms_resolution_dependent=!1}setGlParentNode(t){this._overriden_gl_parent_node=t}currentGlParentNode(){return this._overriden_gl_parent_node||this._gl_parent_node}compile(){}_template_shader_for_shader_name(t){var e,n;switch(t){case Mf.VERTEX:return null===(e=this.templateShader())||void 0===e?void 0:e.vertexShader;case Mf.FRAGMENT:return null===(n=this.templateShader())||void 0===n?void 0:n.fragmentShader}}get globals_handler(){var t;return null===(t=this.currentGlParentNode().assemblerController)||void 0===t?void 0:t.globals_handler}compileAllowed(){var t;return null!=(null===(t=this.currentGlParentNode().assemblerController)||void 0===t?void 0:t.globals_handler)}shaders_by_name(){return this._shaders_by_name}_build_lines(){for(let t of this.shaderNames()){const e=this._template_shader_for_shader_name(t);e&&this._replace_template(e,t)}}set_root_nodes(t){this._root_nodes=t}templateShader(){}addUniforms(t){for(let e of this.param_configs())t[e.uniform_name]=e.uniform;this.uniformsTimeDependent()&&(t.time={value:this.currentGlParentNode().scene().time()}),this.uniforms_resolution_dependent()&&(t.resolution={value:new d.a(1e3,1e3)})}root_nodes_by_shader_name(t){const e=[];for(let t of this._root_nodes)switch(t.type()){case OF.type():case IF.type():e.push(t);break;case wf.type():case Ff.type():e.push(t)}return e}leaf_nodes_by_shader_name(t){const e=[];for(let t of this._leaf_nodes)switch(t.type()){case II.type():e.push(t);break;case wf.type():}return e}set_node_lines_globals(t,e){}set_node_lines_output(t,e){}set_node_lines_attribute(t,e){}codeBuilder(){return this._code_builder=this._code_builder||this._create_code_builder()}_resetCodeBuilder(){this._code_builder=void 0}_create_code_builder(){const t=new N4(this.currentGlParentNode(),this.shaderNames(),((t,e)=>this.input_names_for_shader_name(t,e)));return new C4(t,(t=>this.root_nodes_by_shader_name(t)),this)}build_code_from_nodes(t){const e=Df.findParamGeneratingNodes(this.currentGlParentNode());this.codeBuilder().buildFromNodes(t,e)}allow_new_param_configs(){this.codeBuilder().allow_new_param_configs()}disallow_new_param_configs(){this.codeBuilder().disallow_new_param_configs()}builder_param_configs(){return this.codeBuilder().param_configs()}builder_lines(t,e){return this.codeBuilder().lines(t,e)}all_builder_lines(){return this.codeBuilder().all_lines()}param_configs(){return(this._param_config_owner||this.codeBuilder()).param_configs()}set_param_configs_owner(t){this._param_config_owner=t,this._param_config_owner?this.codeBuilder().disallow_new_param_configs():this.codeBuilder().allow_new_param_configs()}static output_input_connection_points(){return[new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"normal\\\\\\\",Uo.VEC3),new qo(\\\\\\\"color\\\\\\\",Uo.VEC3),new qo(\\\\\\\"alpha\\\\\\\",Uo.FLOAT),new qo(\\\\\\\"uv\\\\\\\",Uo.VEC2)]}add_output_inputs(t){t.io.inputs.setNamedInputConnectionPoints(R4.output_input_connection_points())}static create_globals_node_output_connections(){return[new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"normal\\\\\\\",Uo.VEC3),new qo(\\\\\\\"color\\\\\\\",Uo.VEC3),new qo(\\\\\\\"uv\\\\\\\",Uo.VEC2),new qo(\\\\\\\"mvPosition\\\\\\\",Uo.VEC4),new qo(\\\\\\\"worldPosition\\\\\\\",Uo.VEC4),new qo(\\\\\\\"worldNormal\\\\\\\",Uo.VEC3),new qo(\\\\\\\"gl_Position\\\\\\\",Uo.VEC4),new qo(\\\\\\\"gl_FragCoord\\\\\\\",Uo.VEC4),new qo(\\\\\\\"cameraPosition\\\\\\\",Uo.VEC3),new qo(\\\\\\\"resolution\\\\\\\",Uo.VEC2),new qo(\\\\\\\"time\\\\\\\",Uo.FLOAT)]}create_globals_node_output_connections(){return R4.create_globals_node_output_connections()}add_globals_outputs(t){t.io.outputs.setNamedOutputConnectionPoints(this.create_globals_node_output_connections())}allow_attribute_exports(){return!1}reset_configs(){this._reset_shader_configs(),this._reset_variable_configs(),this._resetUniformsTimeDependency(),this._reset_uniforms_resolution_dependency()}shaderConfigs(){return this._shader_configs=this._shader_configs||this.create_shader_configs()}set_shader_configs(t){this._shader_configs=t}shaderNames(){var t;return(null===(t=this.shaderConfigs())||void 0===t?void 0:t.map((t=>t.name())))||[]}_reset_shader_configs(){this._shader_configs=void 0}create_shader_configs(){return[new b4(Mf.VERTEX,[\\\\\\\"position\\\\\\\",\\\\\\\"normal\\\\\\\",\\\\\\\"uv\\\\\\\",Ff.INPUT_NAME],[]),new b4(Mf.FRAGMENT,[\\\\\\\"color\\\\\\\",\\\\\\\"alpha\\\\\\\"],[Mf.VERTEX])]}shader_config(t){var e;return null===(e=this.shaderConfigs())||void 0===e?void 0:e.filter((e=>e.name()==t))[0]}variable_configs(){return this._variable_configs=this._variable_configs||this.create_variable_configs()}set_variable_configs(t){this._variable_configs=t}variable_config(t){return this.variable_configs().filter((e=>e.name()==t))[0]}static create_variable_configs(){return[new w4(\\\\\\\"position\\\\\\\",{default_from_attribute:!0,prefix:\\\\\\\"vec3 transformed = \\\\\\\"}),new w4(\\\\\\\"normal\\\\\\\",{default_from_attribute:!0,prefix:\\\\\\\"vec3 objectNormal = \\\\\\\",postLines:[\\\\\\\"#ifdef USE_TANGENT\\\\\\\",\\\\\\\"\\\\tvec3 objectTangent = vec3( tangent.xyz );\\\\\\\",\\\\\\\"#endif\\\\\\\"]}),new w4(\\\\\\\"color\\\\\\\",{prefix:\\\\\\\"diffuseColor.xyz = \\\\\\\"}),new w4(\\\\\\\"alpha\\\\\\\",{prefix:\\\\\\\"diffuseColor.a = \\\\\\\"}),new w4(\\\\\\\"uv\\\\\\\",{prefix:\\\\\\\"vUv = \\\\\\\",if:Pf.IF_RULE.uv})]}create_variable_configs(){return R4.create_variable_configs()}_reset_variable_configs(){this._variable_configs=void 0,this.variable_configs()}input_names_for_shader_name(t,e){var n;return(null===(n=this.shader_config(e))||void 0===n?void 0:n.input_names())||[]}_resetUniformsTimeDependency(){this._uniforms_time_dependent=!1}setUniformsTimeDependent(){this._uniforms_time_dependent=!0}uniformsTimeDependent(){return this._uniforms_time_dependent}_reset_uniforms_resolution_dependency(){this._uniforms_resolution_dependent=!1}set_uniforms_resolution_dependent(){this._uniforms_resolution_dependent=!0}uniforms_resolution_dependent(){return this._uniforms_resolution_dependent}insert_define_after(t){return L4.get(t)}insert_body_after(t){return O4.get(t)}lines_to_remove(t){return P4.get(t)}_replace_template(t,e){const n=this.builder_lines(e,x4.FUNCTION_DECLARATION),i=this.builder_lines(e,x4.DEFINE),s=this.builder_lines(e,x4.BODY);let r=t.split(\\\\\\\"\\\\n\\\\\\\");const o=[],a=this.insert_define_after(e),l=this.insert_body_after(e),c=this.lines_to_remove(e);let h=!1,u=!1;for(let t of r){1==h&&(n&&this._insert_lines(o,n),i&&this._insert_lines(o,i),h=!1),1==u&&(s&&this._insert_lines(o,s),u=!1);let e=!1;if(c)for(let n of c)t.indexOf(n)>=0&&(e=!0);e?(o.push(\\\\\\\"// removed:\\\\\\\"),o.push(`//${t}`)):o.push(t),a&&t.indexOf(a)>=0&&(h=!0),l&&t.indexOf(l)>=0&&(u=!0)}this._lines.set(e,o)}_insert_lines(t,e){if(e.length>0){for(let e=0;e<3;e++)t.push(\\\\\\\"\\\\\\\");for(let n of e)t.push(n);for(let e=0;e<3;e++)t.push(\\\\\\\"\\\\\\\")}}_addFilterFragmentShaderCallback(t,e){}_removeFilterFragmentShaderCallback(t){}getCustomMaterials(){return new Map}static expandShader(t){return function t(e){return e.replace(/^[ \\\\t]*#include +<([\\\\w\\\\d./]+)>/gm,(function(e,n){var i=U[n];if(void 0===i)throw new Error(\\\\\\\"Can not resolve #include <\\\\\\\"+n+\\\\\\\">\\\\\\\");return t(i)}))}(t)}}var I4,F4;!function(t){t.DISTANCE=\\\\\\\"customDistanceMaterial\\\\\\\",t.DEPTH=\\\\\\\"customDepthMaterial\\\\\\\",t.DEPTH_DOF=\\\\\\\"customDepthDOFMaterial\\\\\\\"}(I4||(I4={})),function(t){t.TIME=\\\\\\\"time\\\\\\\",t.RESOLUTION=\\\\\\\"resolution\\\\\\\",t.MV_POSITION=\\\\\\\"mvPosition\\\\\\\",t.GL_POSITION=\\\\\\\"gl_Position\\\\\\\",t.GL_FRAGCOORD=\\\\\\\"gl_FragCoord\\\\\\\",t.GL_POINTCOORD=\\\\\\\"gl_PointCoord\\\\\\\"}(F4||(F4={}));const D4=[F4.GL_FRAGCOORD,F4.GL_POINTCOORD];class B4 extends R4{constructor(){super(...arguments),this._assemblers_by_custom_name=new Map,this._filterFragmentShaderCallbacks=new Map}createMaterial(){return new F}custom_assembler_class_by_custom_name(){}_addCustomMaterials(t){const e=this.custom_assembler_class_by_custom_name();e&&e.forEach(((e,n)=>{this._add_custom_material(t,n,e)}))}_add_custom_material(t,e,n){let i=this._assemblers_by_custom_name.get(e);i||(i=new n(this.currentGlParentNode()),this._assemblers_by_custom_name.set(e,i)),t.customMaterials=t.customMaterials||{};const s=i.createMaterial();s.name=e,t.customMaterials[e]=s}compileCustomMaterials(t){const e=this.custom_assembler_class_by_custom_name();e&&e.forEach(((e,n)=>{if(this._code_builder){let i=this._assemblers_by_custom_name.get(n);i||(i=new e(this.currentGlParentNode()),this._assemblers_by_custom_name.set(n,i)),i.set_root_nodes(this._root_nodes),i.set_param_configs_owner(this._code_builder),i.set_shader_configs(this.shaderConfigs()),i.set_variable_configs(this.variable_configs());const s=t.customMaterials[n];s&&(i.setFilterFragmentShaderMethodOwner(this),i.compileMaterial(s),i.setFilterFragmentShaderMethodOwner(void 0))}}))}_resetFilterFragmentShaderCallbacks(){this._filterFragmentShaderCallbacks.clear()}_addFilterFragmentShaderCallback(t,e){this._filterFragmentShaderCallbacks.set(t,e)}_removeFilterFragmentShaderCallback(t){this._filterFragmentShaderCallbacks.delete(t)}setFilterFragmentShaderMethodOwner(t){this._filterFragmentShaderMethodOwner=t}filterFragmentShader(t){return this._filterFragmentShaderCallbacks.forEach(((e,n)=>{t=e(t)})),t}processFilterFragmentShader(t){return this._filterFragmentShaderMethodOwner?this._filterFragmentShaderMethodOwner.filterFragmentShader(t):this.filterFragmentShader(t)}compileMaterial(t){if(!this.compileAllowed())return;const e=Df.findOutputNodes(this.currentGlParentNode());e.length>1&&this.currentGlParentNode().states.error.set(\\\\\\\"only one output node allowed\\\\\\\");const n=Df.findVaryingNodes(this.currentGlParentNode()),i=e.concat(n);this.set_root_nodes(i),this._update_shaders();const s=this._shaders_by_name.get(Mf.VERTEX),r=this._shaders_by_name.get(Mf.FRAGMENT);s&&r&&(t.vertexShader=s,t.fragmentShader=this.processFilterFragmentShader(r),this.addUniforms(t.uniforms),t.needsUpdate=!0);const o=this.currentGlParentNode().scene();this.uniformsTimeDependent()?o.uniformsController.addTimeDependentUniformOwner(t.uuid,t.uniforms):o.uniformsController.removeTimeDependentUniformOwner(t.uuid),this.uniforms_resolution_dependent()?o.uniformsController.addResolutionDependentUniformOwner(t.uuid,t.uniforms):o.uniformsController.removeResolutionDependentUniformOwner(t.uuid),t.customMaterials&&this.compileCustomMaterials(t)}_update_shaders(){this._shaders_by_name=new Map,this._lines=new Map;for(let t of this.shaderNames()){const e=this._template_shader_for_shader_name(t);e&&this._lines.set(t,e.split(\\\\\\\"\\\\n\\\\\\\"))}this._root_nodes.length>0&&(this.build_code_from_nodes(this._root_nodes),this._build_lines());for(let t of this.shaderNames()){const e=this._lines.get(t);e&&this._shaders_by_name.set(t,e.join(\\\\\\\"\\\\n\\\\\\\"))}}shadow_assembler_class_by_custom_name(){return{}}add_output_body_line(t,e,n){var i;const s=t.io.inputs.named_input(n),r=t.variableForInput(n),o=this.variable_config(n);let a=null;if(s)a=mf.vector3(r);else if(o.default_from_attribute()){const s=t.io.inputs.namedInputConnectionPointsByName(n);if(s){const r=s.type(),o=null===(i=this.globals_handler)||void 0===i?void 0:i.read_attribute(t,r,n,e);o&&(a=o)}}else{const t=o.default();t&&(a=t)}if(a){const n=o.prefix(),i=o.suffix(),s=o.if_condition();s&&e.addBodyLines(t,[`#if ${s}`]),e.addBodyLines(t,[`${n}${a}${i}`]);const r=o.postLines();r&&e.addBodyLines(t,r),s&&e.addBodyLines(t,[\\\\\\\"#endif\\\\\\\"])}}set_node_lines_output(t,e){var n;const i=e.current_shader_name,s=null===(n=this.shader_config(i))||void 0===n?void 0:n.input_names();if(s)for(let n of s)t.io.inputs.has_named_input(n)&&this.add_output_body_line(t,e,n)}set_node_lines_attribute(t,e){var n;const i=t.gl_type(),s=null===(n=this.globals_handler)||void 0===n?void 0:n.read_attribute(t,i,t.attribute_name,e),r=t.glVarName(t.output_name);e.addBodyLines(t,[`${i} ${r} = ${s}`])}handle_globals_output_name(t){var e;switch(t.output_name){case F4.TIME:return void this.handleTime(t);case F4.RESOLUTION:return void this.handle_resolution(t);case F4.MV_POSITION:return void this.handle_mvPosition(t);case F4.GL_POSITION:return void this.handle_gl_Position(t);case F4.GL_FRAGCOORD:return void this.handle_gl_FragCoord(t);case F4.GL_POINTCOORD:return void this.handle_gl_PointCoord(t);default:null===(e=this.globals_handler)||void 0===e||e.handle_globals_node(t.globals_node,t.output_name,t.shaders_collection_controller)}}handleTime(t){const e=new Nf(t.globals_node,Uo.FLOAT,t.output_name);t.globals_shader_name&&h.pushOnArrayAtEntry(t.definitions_by_shader_name,t.globals_shader_name,e);const n=`float ${t.var_name} = ${t.output_name}`;for(let i of t.dependencies)h.pushOnArrayAtEntry(t.definitions_by_shader_name,i,e),h.pushOnArrayAtEntry(t.body_lines_by_shader_name,i,n);t.body_lines.push(n),this.setUniformsTimeDependent()}handle_resolution(t){t.body_lines.push(`vec2 ${t.var_name} = resolution`);const e=new Nf(t.globals_node,Uo.VEC2,t.output_name);t.globals_shader_name&&h.pushOnArrayAtEntry(t.definitions_by_shader_name,t.globals_shader_name,e);for(let n of t.dependencies)h.pushOnArrayAtEntry(t.definitions_by_shader_name,n,e);this.set_uniforms_resolution_dependent()}handle_mvPosition(t){if(t.shader_name==Mf.FRAGMENT){const e=t.globals_node,n=t.shaders_collection_controller,i=new Lf(e,Uo.VEC4,t.var_name),s=`${t.var_name} = modelViewMatrix * vec4(position, 1.0)`;n.addDefinitions(e,[i],Mf.VERTEX),n.addBodyLines(e,[s],Mf.VERTEX),n.addDefinitions(e,[i])}}handle_gl_Position(t){if(t.shader_name==Mf.FRAGMENT){const e=t.globals_node,n=t.shaders_collection_controller,i=new Lf(e,Uo.VEC4,t.var_name),s=`${t.var_name} = projectionMatrix * modelViewMatrix * vec4(position, 1.0)`;n.addDefinitions(e,[i],Mf.VERTEX),n.addBodyLines(e,[s],Mf.VERTEX),n.addDefinitions(e,[i])}}handle_gl_FragCoord(t){t.shader_name==Mf.FRAGMENT&&t.body_lines.push(`vec4 ${t.var_name} = gl_FragCoord`)}handle_gl_PointCoord(t){t.shader_name==Mf.FRAGMENT?t.body_lines.push(`vec2 ${t.var_name} = gl_PointCoord`):t.body_lines.push(`vec2 ${t.var_name} = vec2(0.0, 0.0)`)}set_node_lines_globals(t,e){const n=[],i=e.current_shader_name,s=this.shader_config(i);if(!s)return;const r=s.dependencies(),o=new Map,a=new Map,l=this.used_output_names_for_shader(t,i);for(let s of l){const l=t.glVarName(s),c=e.current_shader_name,h={globals_node:t,shaders_collection_controller:e,output_name:s,globals_shader_name:c,definitions_by_shader_name:o,body_lines:n,var_name:l,shader_name:i,dependencies:r,body_lines_by_shader_name:a};this.handle_globals_output_name(h)}o.forEach(((n,i)=>{e.addDefinitions(t,n,i)})),a.forEach(((n,i)=>{e.addBodyLines(t,n,i)})),e.addBodyLines(t,n)}used_output_names_for_shader(t,e){const n=t.io.outputs.used_output_names(),i=[];for(let t of n)e==Mf.VERTEX&&D4.includes(t)||i.push(t);return i}}const z4=new Map([[Mf.VERTEX,\\\\\\\"#include <begin_vertex>\\\\\\\"],[Mf.FRAGMENT,\\\\\\\"vec4 diffuseColor = vec4( 1.0 );\\\\\\\"]]);const k4=new Map([[Mf.VERTEX,\\\\\\\"#include <begin_vertex>\\\\\\\"],[Mf.FRAGMENT,\\\\\\\"vec4 diffuseColor = vec4( 1.0 );\\\\\\\"]]);var U4=\\\\\\\"uniform float mNear;\\\\nuniform float mFar;\\\\n\\\\nvarying float vViewZDepth;\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );\\\\n\\\\tgl_FragColor = vec4( vec3( color ), 1.0 );\\\\n\\\\n}\\\\n\\\\\\\";const G4=new Map([[Mf.VERTEX,\\\\\\\"// INSERT DEFINES\\\\\\\"]]),V4=new Map([[Mf.VERTEX,\\\\\\\"// INSERT BODY\\\\\\\"]]);const H4=new Map([]);H4.set(I4.DISTANCE,class extends B4{templateShader(){const t=H.distanceRGBA;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}insert_body_after(t){return z4.get(t)}createMaterial(){const t=this.templateShader();return new F({defines:{DEPTH_PACKING:[w.Hb,w.j][0]},uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})}}),H4.set(I4.DEPTH,class extends B4{templateShader(){const t=H.depth;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}insert_body_after(t){return k4.get(t)}createMaterial(){const t=this.templateShader();return new F({defines:{DEPTH_PACKING:[w.Hb,w.j][0]},uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})}}),H4.set(I4.DEPTH_DOF,class extends B4{templateShader(){return{vertexShader:\\\\\\\"#include <common>\\\\n\\\\nvarying float vViewZDepth;\\\\n\\\\n// INSERT DEFINES\\\\n\\\\n\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t// INSERT BODY\\\\n\\\\n\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\tvViewZDepth = - mvPosition.z;\\\\n}\\\\\\\",fragmentShader:U4,uniforms:{mNear:{value:0},mFar:{value:10}}}}insert_define_after(t){return G4.get(t)}insert_body_after(t){return V4.get(t)}createMaterial(){const t=this.templateShader();return new F({uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})}});class j4 extends B4{custom_assembler_class_by_custom_name(){return H4}}class W4 extends j4{templateShader(){const t=H.basic;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}createMaterial(){const t=this.templateShader(),e=new F({lights:!1,uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader});return this._addCustomMaterials(e),e}}class q4 extends j4{templateShader(){const t=H.lambert;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}createMaterial(){const t=this.templateShader(),e=new F({lights:!0,uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader});return this._addCustomMaterials(e),e}}class X4 extends j4{templateShader(){const t=H.phong;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}createMaterial(){const t=this.templateShader(),e=new F({lights:!0,uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader});return this._addCustomMaterials(e),e}}var Y4=\\\\\\\"SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 )\\\\\\\";class $4 extends j4{constructor(t){super(t),this._gl_parent_node=t,this._addFilterFragmentShaderCallback(\\\\\\\"MeshStandardBuilderMatNode\\\\\\\",$4.filterFragmentShader)}isPhysical(){return!1}templateShader(){const t=this.isPhysical()?H.physical:H.standard;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}static filterFragmentShader(t){return t=(t=(t=t.replace(\\\\\\\"#include <metalnessmap_fragment>\\\\\\\",\\\\\\\"float metalnessFactor = metalness * POLY_metalness;\\\\n\\\\n#ifdef USE_METALNESSMAP\\\\n\\\\n\\\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\\\n\\\\n\\\\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\\\n\\\\tmetalnessFactor *= texelMetalness.b;\\\\n\\\\n#endif\\\\n\\\\\\\")).replace(\\\\\\\"#include <roughnessmap_fragment>\\\\\\\",\\\\\\\"float roughnessFactor = roughness * POLY_roughness;\\\\n\\\\n#ifdef USE_ROUGHNESSMAP\\\\n\\\\n\\\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\\\n\\\\n\\\\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\\\n\\\\troughnessFactor *= texelRoughness.g;\\\\n\\\\n#endif\\\\n\\\\\\\")).replace(\\\\\\\"vec3 totalEmissiveRadiance = emissive;\\\\\\\",\\\\\\\"vec3 totalEmissiveRadiance = emissive * POLY_emissive;\\\\\\\"),$4.USE_SSS&&(t=(t=t.replace(/void main\\\\s?\\\\(\\\\) {/,\\\\\\\"struct SSSModel {\\\\n\\\\tbool isActive;\\\\n\\\\tvec3 color;\\\\n\\\\tfloat thickness;\\\\n\\\\tfloat power;\\\\n\\\\tfloat scale;\\\\n\\\\tfloat distortion;\\\\n\\\\tfloat ambient;\\\\n\\\\tfloat attenuation;\\\\n};\\\\n\\\\nvoid RE_Direct_Scattering(\\\\n\\\\tconst in IncidentLight directLight,\\\\n\\\\tconst in GeometricContext geometry,\\\\n\\\\tconst in SSSModel sssModel,\\\\n\\\\tinout ReflectedLight reflectedLight\\\\n\\\\t){\\\\n\\\\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\\\\n\\\\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\\\\n\\\\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\\\\n\\\\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\\\\n}\\\\n\\\\nvoid main() {\\\\\\\")).replace(\\\\\\\"#include <lights_fragment_begin>\\\\\\\",\\\\\\\"#include <lights_fragment_begin>\\\\nif(POLY_SSSModel.isActive){\\\\n\\\\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\\\\n}\\\\n\\\\n\\\\\\\")),t}createMaterial(){const t=this.templateShader(),e={lights:!0,extensions:{derivatives:!0},uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader},n=new F(e);return this.isPhysical()&&(n.defines.PHYSICAL=!0),this._addCustomMaterials(n),n}add_output_inputs(t){const e=R4.output_input_connection_points();e.push(new qo(\\\\\\\"metalness\\\\\\\",Uo.FLOAT,1)),e.push(new qo(\\\\\\\"roughness\\\\\\\",Uo.FLOAT,1)),e.push(new qo(\\\\\\\"emissive\\\\\\\",Uo.VEC3,[1,1,1])),$4.USE_SSS&&e.push(new qo(\\\\\\\"SSSModel\\\\\\\",Uo.SSS_MODEL,Y4)),this.isPhysical()&&(e.push(new qo(\\\\\\\"transmission\\\\\\\",Uo.FLOAT,1)),e.push(new qo(\\\\\\\"thickness\\\\\\\",Uo.FLOAT,1))),t.io.inputs.setNamedInputConnectionPoints(e)}create_shader_configs(){const t=[\\\\\\\"color\\\\\\\",\\\\\\\"alpha\\\\\\\",\\\\\\\"metalness\\\\\\\",\\\\\\\"roughness\\\\\\\",\\\\\\\"emissive\\\\\\\",\\\\\\\"SSSModel\\\\\\\"];return this.isPhysical()&&(t.push(\\\\\\\"transmission\\\\\\\"),t.push(\\\\\\\"thickness\\\\\\\")),[new b4(Mf.VERTEX,[\\\\\\\"position\\\\\\\",\\\\\\\"normal\\\\\\\",\\\\\\\"uv\\\\\\\"],[]),new b4(Mf.FRAGMENT,t,[Mf.VERTEX])]}create_variable_configs(){const t=R4.create_variable_configs();return t.push(new w4(\\\\\\\"metalness\\\\\\\",{default:\\\\\\\"1.0\\\\\\\",prefix:\\\\\\\"float POLY_metalness = \\\\\\\"})),t.push(new w4(\\\\\\\"roughness\\\\\\\",{default:\\\\\\\"1.0\\\\\\\",prefix:\\\\\\\"float POLY_roughness = \\\\\\\"})),t.push(new w4(\\\\\\\"emissive\\\\\\\",{default:\\\\\\\"vec3(1.0, 1.0, 1.0)\\\\\\\",prefix:\\\\\\\"vec3 POLY_emissive = \\\\\\\"})),$4.USE_SSS&&t.push(new w4(\\\\\\\"SSSModel\\\\\\\",{default:Y4,prefix:\\\\\\\"SSSModel POLY_SSSModel = \\\\\\\"})),this.isPhysical()&&(t.push(new w4(\\\\\\\"transmission\\\\\\\",{default:\\\\\\\"1.0\\\\\\\",prefix:\\\\\\\"float POLY_transmission = \\\\\\\"})),t.push(new w4(\\\\\\\"thickness\\\\\\\",{default:\\\\\\\"1.0\\\\\\\",prefix:\\\\\\\"float POLY_thickness = \\\\\\\"}))),t}}$4.USE_SSS=!0;class J4 extends $4{constructor(t){super(t),this._gl_parent_node=t,this._addFilterFragmentShaderCallback(\\\\\\\"MeshPhysicalBuilderMatNode\\\\\\\",J4.filterFragmentShader)}isPhysical(){return!0}static filterFragmentShader(t){return t=t.replace(\\\\\\\"#include <transmission_fragment>\\\\\\\",function(t){const e=t.split(\\\\\\\"\\\\n\\\\\\\");let n=0;for(let t of e)t.includes(\\\\\\\"float transmissionFactor = transmission;\\\\\\\")&&(t=\\\\\\\"float transmissionFactor = transmission * POLY_transmission;\\\\\\\",e[n]=t),t.includes(\\\\\\\"float thicknessFactor = thickness;\\\\\\\")&&(t=\\\\\\\"float thicknessFactor = thickness * POLY_thickness;\\\\\\\",e[n]=t),n++;return e.join(\\\\\\\"\\\\n\\\\\\\")}(k))}}const Z4=new Map([[Mf.VERTEX,\\\\\\\"// INSERT DEFINES\\\\\\\"]]),K4=new Map([[Mf.VERTEX,\\\\\\\"// INSERT BODY\\\\\\\"]]);const Q4=new Map([[Mf.VERTEX,\\\\\\\"// INSERT DEFINES\\\\\\\"]]),t5=new Map([[Mf.VERTEX,\\\\\\\"// INSERT BODY\\\\\\\"]]);const e5=new Map([[Mf.VERTEX,[\\\\\\\"#include <begin_vertex>\\\\\\\",\\\\\\\"gl_PointSize = size;\\\\\\\"]],[Mf.FRAGMENT,[]]]),n5=new Map;n5.set(I4.DISTANCE,class extends B4{templateShader(){const t=H.distanceRGBA,e=I.clone(t.uniforms);return e.size={value:1},e.scale={value:1},{vertexShader:\\\\\\\"uniform float size;\\\\nuniform float scale;\\\\n#define DISTANCE\\\\nvarying vec3 vWorldPosition;\\\\n#include <common>\\\\n#include <clipping_planes_pars_vertex>\\\\nvarying float vViewZDepth;\\\\n\\\\n// INSERT DEFINES\\\\n\\\\n\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t// INSERT BODY\\\\n\\\\n\\\\n\\\\t#include <project_vertex>\\\\n\\\\t#include <worldpos_vertex>\\\\n\\\\t#include <clipping_planes_vertex>\\\\n\\\\n\\\\t#ifdef USE_SIZEATTENUATION\\\\n\\\\t\\\\tbool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );\\\\n\\\\t\\\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\\\n\\\\t#endif\\\\n\\\\tvWorldPosition = worldPosition.xyz;\\\\n}\\\\n\\\\n// #define DISTANCE\\\\n// varying vec3 vWorldPosition;\\\\n// #include <common>\\\\n// #include <uv_pars_vertex>\\\\n// #include <displacementmap_pars_vertex>\\\\n// #include <morphtarget_pars_vertex>\\\\n// #include <skinning_pars_vertex>\\\\n// #include <clipping_planes_pars_vertex>\\\\n// void main() {\\\\n// \\\\t#include <uv_vertex>\\\\n// \\\\t#include <skinbase_vertex>\\\\n// \\\\t#ifdef USE_DISPLACEMENTMAP\\\\n// \\\\t\\\\t#include <beginnormal_vertex>\\\\n// \\\\t\\\\t#include <morphnormal_vertex>\\\\n// \\\\t\\\\t#include <skinnormal_vertex>\\\\n// \\\\t#endif\\\\n// \\\\t#include <begin_vertex>\\\\n// \\\\t#include <morphtarget_vertex>\\\\n// \\\\t#include <skinning_vertex>\\\\n// \\\\t#include <displacementmap_vertex>\\\\n// \\\\t#include <project_vertex>\\\\n// \\\\t#include <worldpos_vertex>\\\\n// \\\\t#include <clipping_planes_vertex>\\\\n// \\\\tvWorldPosition = worldPosition.xyz;\\\\n// }\\\\n\\\\n\\\\n\\\\\\\",fragmentShader:t.fragmentShader,uniforms:e}}insert_define_after(t){return Z4.get(t)}insert_body_after(t){return K4.get(t)}createMaterial(){const t=this.templateShader();return new F({defines:{USE_SIZEATTENUATION:1,DEPTH_PACKING:[w.Hb,w.j][0]},uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})}}),n5.set(I4.DEPTH_DOF,class extends B4{templateShader(){return{vertexShader:\\\\\\\"uniform float size;\\\\nuniform float scale;\\\\n#include <common>\\\\n\\\\nvarying float vViewZDepth;\\\\n\\\\n// INSERT DEFINES\\\\n\\\\n\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t// INSERT BODY\\\\n\\\\n\\\\n\\\\t#include <project_vertex>\\\\n\\\\n\\\\tvViewZDepth = - mvPosition.z;\\\\n\\\\t#ifdef USE_SIZEATTENUATION\\\\n\\\\t\\\\tbool isPerspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 );\\\\n\\\\t\\\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\\\n\\\\t#endif\\\\n\\\\n}\\\\n\\\\n\\\\\\\",fragmentShader:U4,uniforms:{size:{value:1},scale:{value:1},mNear:{value:0},mFar:{value:10}}}}insert_define_after(t){return Q4.get(t)}insert_body_after(t){return t5.get(t)}createMaterial(){const t=this.templateShader();return new F({depthTest:!0,defines:{USE_SIZEATTENUATION:1},uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})}});class i5 extends B4{custom_assembler_class_by_custom_name(){return n5}templateShader(){const t=H.points;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}createMaterial(){const t=this.templateShader(),e=new F({transparent:!0,fog:!0,defines:{USE_SIZEATTENUATION:1},uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader});return this._addCustomMaterials(e),e}add_output_inputs(t){const e=R4.output_input_connection_points();e.push(new qo(\\\\\\\"gl_PointSize\\\\\\\",Uo.FLOAT)),t.io.inputs.setNamedInputConnectionPoints(e)}create_globals_node_output_connections(){return R4.create_globals_node_output_connections().concat([new qo(F4.GL_POINTCOORD,Uo.VEC2)])}create_shader_configs(){return[new b4(Mf.VERTEX,[\\\\\\\"position\\\\\\\",\\\\\\\"normal\\\\\\\",\\\\\\\"uv\\\\\\\",\\\\\\\"gl_PointSize\\\\\\\"],[]),new b4(Mf.FRAGMENT,[\\\\\\\"color\\\\\\\",\\\\\\\"alpha\\\\\\\"],[Mf.VERTEX])]}create_variable_configs(){return R4.create_variable_configs().concat([new w4(\\\\\\\"gl_PointSize\\\\\\\",{default:\\\\\\\"1.0\\\\\\\",prefix:\\\\\\\"gl_PointSize = \\\\\\\",suffix:\\\\\\\" * size * 10.0\\\\\\\"})])}lines_to_remove(t){return e5.get(t)}}const s5=new Map([[Mf.VERTEX,\\\\\\\"// INSERT DEFINES\\\\\\\"]]),r5=new Map([[Mf.VERTEX,\\\\\\\"// INSERT BODY\\\\\\\"]]);const o5=new Map([]);o5.set(I4.DEPTH_DOF,class extends B4{templateShader(){return{vertexShader:\\\\\\\"uniform float scale;\\\\nattribute float lineDistance;\\\\nvarying float vLineDistance;\\\\n#include <common>\\\\n\\\\nvarying float vViewZDepth;\\\\n\\\\n// INSERT DEFINES\\\\n\\\\n\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\t// INSERT BODY\\\\n\\\\n\\\\n\\\\tvLineDistance = scale * lineDistance;\\\\n\\\\tgl_Position = projectionMatrix * mvPosition;\\\\n\\\\n\\\\tvViewZDepth = - mvPosition.z;\\\\n\\\\n\\\\n}\\\\n\\\\n\\\\n\\\\n\\\\\\\",fragmentShader:U4,uniforms:{scale:{value:1},mNear:{value:0},mFar:{value:10}}}}insert_define_after(t){return s5.get(t)}insert_body_after(t){return r5.get(t)}createMaterial(){const t=this.templateShader();return new F({depthTest:!0,linewidth:100,uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})}});const a5=new Map([[Mf.VERTEX,[\\\\\\\"#include <begin_vertex>\\\\\\\",\\\\\\\"#include <project_vertex>\\\\\\\"]],[Mf.FRAGMENT,[]]]);class l5 extends B4{templateShader(){const t=H.dashed;return{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}}createMaterial(){const t=this.templateShader(),e=new F({depthTest:!0,alphaTest:.5,linewidth:1,uniforms:I.clone(t.uniforms),vertexShader:t.vertexShader,fragmentShader:t.fragmentShader});return this._addCustomMaterials(e),e}custom_assembler_class_by_custom_name(){return o5}create_shader_configs(){return[new b4(Mf.VERTEX,[\\\\\\\"position\\\\\\\",\\\\\\\"uv\\\\\\\"],[]),new b4(Mf.FRAGMENT,[\\\\\\\"color\\\\\\\",\\\\\\\"alpha\\\\\\\"],[Mf.VERTEX])]}static output_input_connection_points(){return[new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"color\\\\\\\",Uo.VEC3),new qo(\\\\\\\"alpha\\\\\\\",Uo.FLOAT),new qo(\\\\\\\"uv\\\\\\\",Uo.VEC2)]}add_output_inputs(t){t.io.inputs.setNamedInputConnectionPoints(l5.output_input_connection_points())}static create_globals_node_output_connections(){return[new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"color\\\\\\\",Uo.VEC3),new qo(\\\\\\\"uv\\\\\\\",Uo.VEC2),new qo(\\\\\\\"gl_FragCoord\\\\\\\",Uo.VEC4),new qo(\\\\\\\"resolution\\\\\\\",Uo.VEC2),new qo(\\\\\\\"time\\\\\\\",Uo.FLOAT)]}create_globals_node_output_connections(){return l5.create_globals_node_output_connections()}create_variable_configs(){return[new w4(\\\\\\\"position\\\\\\\",{default:\\\\\\\"vec3( position )\\\\\\\",prefix:\\\\\\\"vec3 transformed = \\\\\\\",suffix:\\\\\\\";vec4 mvPosition = vec4( transformed, 1.0 ); gl_Position = projectionMatrix * modelViewMatrix * mvPosition;\\\\\\\"}),new w4(\\\\\\\"color\\\\\\\",{prefix:\\\\\\\"diffuseColor.xyz = \\\\\\\"}),new w4(\\\\\\\"alpha\\\\\\\",{prefix:\\\\\\\"diffuseColor.w = \\\\\\\"}),new w4(\\\\\\\"uv\\\\\\\",{prefix:\\\\\\\"vUv = \\\\\\\",if:Pf.IF_RULE.uv})]}lines_to_remove(t){return a5.get(t)}}class c5 extends R4{templateShader(){}_template_shader_for_shader_name(t){return\\\\\\\"#include <common>\\\\n\\\\n// INSERT DEFINE\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec2 particleUV = (gl_FragCoord.xy / resolution.xy);\\\\n\\\\n\\\\t// INSERT BODY\\\\n\\\\n}\\\\\\\"}compile(){this.setup_shader_names_and_variables(),this.update_shaders()}root_nodes_by_shader_name(t){var e,n;const i=[];for(let s of this._root_nodes)switch(s.type()){case OF.type():i.push(s);break;case wf.type():{const r=s.attribute_name,o=null===(e=this._texture_allocations_controller)||void 0===e?void 0:e.variable(r);if(o&&o.allocation()){(null===(n=o.allocation())||void 0===n?void 0:n.shaderName())==t&&i.push(s)}break}}return i}leaf_nodes_by_shader_name(t){var e,n;const i=[];for(let s of this._leaf_nodes)switch(s.type()){case II.type():i.push(s);break;case wf.type():{const r=s.attribute_name,o=null===(e=this._texture_allocations_controller)||void 0===e?void 0:e.variable(r);if(o&&o.allocation()){(null===(n=o.allocation())||void 0===n?void 0:n.shaderName())==t&&i.push(s)}break}}return i}setup_shader_names_and_variables(){var t;const e=new N4(this.currentGlParentNode(),this.shaderNames(),((t,e)=>this.input_names_for_shader_name(t,e)));this._leaf_nodes=e.leaves_from_nodes(this._root_nodes),this._texture_allocations_controller=new c1,this._texture_allocations_controller.allocateConnectionsFromRootNodes(this._root_nodes,this._leaf_nodes),this.globals_handler&&(null===(t=this.globals_handler)||void 0===t||t.set_texture_allocations_controller(this._texture_allocations_controller)),this._reset_shader_configs()}update_shaders(){this._shaders_by_name.clear(),this._lines.clear();for(let t of this.shaderNames()){const e=this._template_shader_for_shader_name(t);this._lines.set(t,e.split(\\\\\\\"\\\\n\\\\\\\"))}this._root_nodes.length>0&&(this._resetCodeBuilder(),this.build_code_from_nodes(this._root_nodes),this._build_lines());for(let t of this.shaderNames()){const e=this._lines.get(t);e&&this._shaders_by_name.set(t,e.join(\\\\\\\"\\\\n\\\\\\\"))}}add_output_inputs(t){t.io.inputs.setNamedInputConnectionPoints([new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"velocity\\\\\\\",Uo.VEC3)])}add_globals_outputs(t){t.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"velocity\\\\\\\",Uo.VEC3),new qo(\\\\\\\"time\\\\\\\",Uo.FLOAT)])}allow_attribute_exports(){return!0}textureAllocationsController(){return this._texture_allocations_controller=this._texture_allocations_controller||new c1}create_shader_configs(){var t;return(null===(t=this._texture_allocations_controller)||void 0===t?void 0:t.createShaderConfigs())||[]}create_variable_configs(){return[]}shaderNames(){return this.textureAllocationsController().shaderNames()||[]}input_names_for_shader_name(t,e){return this.textureAllocationsController().inputNamesForShaderName(t,e)||[]}insert_define_after(t){return\\\\\\\"// INSERT DEFINE\\\\\\\"}insert_body_after(t){return\\\\\\\"// INSERT BODY\\\\\\\"}lines_to_remove(t){return[\\\\\\\"// INSERT DEFINE\\\\\\\",\\\\\\\"// INSERT BODY\\\\\\\"]}add_export_body_line(t,e,n,i,s){var r;if(n){const n=t.variableForInput(e),o=mf.vector3(n);if(o){const e=this.textureAllocationsController().variable(i),n=s.current_shader_name;if(e&&(null===(r=e.allocation())||void 0===r?void 0:r.shaderName())==n){const i=`gl_FragColor.${e.component()} = ${o}`;s.addBodyLines(t,[i],n)}}}}set_node_lines_output(t,e){const n=e.current_shader_name,i=this.textureAllocationsController().inputNamesForShaderName(t,n);if(i)for(let n of i){const i=t.io.inputs.named_input(n);if(i){const s=n;this.add_export_body_line(t,n,i,s,e)}}}set_node_lines_attribute(t,e){var n,i;if(t.isImporting()){const s=t.gl_type(),r=t.attribute_name,o=null===(n=this.globals_handler)||void 0===n?void 0:n.read_attribute(t,s,r,e),a=t.glVarName(t.output_name),l=`${s} ${a} = ${o}`;e.addBodyLines(t,[l]);const c=this.textureAllocationsController().variable(r),h=e.current_shader_name;if(c&&(null===(i=c.allocation())||void 0===i?void 0:i.shaderName())==h){const n=this.textureAllocationsController().variable(r);if(n){const i=`gl_FragColor.${n.component()} = ${a}`;e.addBodyLines(t,[i])}}}if(t.isExporting()){const n=t.connected_input_node();if(n){const i=t.attribute_name;this.add_export_body_line(t,t.input_name,n,i,e)}}}set_node_lines_globals(t,e){for(let n of t.io.outputs.used_output_names())switch(n){case\\\\\\\"time\\\\\\\":this._handle_globals_time(t,n,e);break;default:this._handle_globals_default(t,n,e)}}_handle_globals_time(t,e,n){const i=new Nf(t,Uo.FLOAT,e);n.addDefinitions(t,[i]);const s=`float ${t.glVarName(e)} = ${e}`;n.addBodyLines(t,[s]),this.setUniformsTimeDependent()}_handle_globals_default(t,e,n){var i;const s=t.io.outputs.namedOutputConnectionPointsByName(e);if(s){const r=s.type(),o=null===(i=this.globals_handler)||void 0===i?void 0:i.read_attribute(t,r,e,n);if(o){const i=`${r} ${t.glVarName(e)} = ${o}`;n.addBodyLines(t,[i])}}}}class h5 extends R4{templateShader(){return{fragmentShader:\\\\\\\"#include <common>\\\\n\\\\nuniform vec2 resolution;\\\\n\\\\n// INSERT DEFINE\\\\n\\\\nvoid main() {\\\\n\\\\n\\\\tvec4 diffuseColor = vec4(0.0,0.0,0.0,1.0);\\\\n\\\\n\\\\n\\\\t// INSERT BODY\\\\n\\\\n\\\\tgl_FragColor = vec4( diffuseColor );\\\\n}\\\\\\\",vertexShader:void 0,uniforms:void 0}}fragment_shader(){return this._shaders_by_name.get(Mf.FRAGMENT)}uniforms(){return this._uniforms}update_fragment_shader(){this._lines=new Map,this._shaders_by_name=new Map;for(let t of this.shaderNames())if(t==Mf.FRAGMENT){const e=this.templateShader().fragmentShader;this._lines.set(t,e.split(\\\\\\\"\\\\n\\\\\\\"))}this._root_nodes.length>0&&(this.build_code_from_nodes(this._root_nodes),this._build_lines()),this._uniforms=this._uniforms||{},this.addUniforms(this._uniforms);for(let t of this.shaderNames()){const e=this._lines.get(t);e&&this._shaders_by_name.set(t,e.join(\\\\\\\"\\\\n\\\\\\\"))}rg.handleDependencies(this.currentGlParentNode(),this.uniformsTimeDependent(),this._uniforms)}add_output_inputs(t){t.io.inputs.setNamedInputConnectionPoints([new qo(\\\\\\\"color\\\\\\\",Uo.VEC3),new qo(\\\\\\\"alpha\\\\\\\",Uo.FLOAT)])}add_globals_outputs(t){t.io.outputs.setNamedOutputConnectionPoints([new qo(\\\\\\\"gl_FragCoord\\\\\\\",Uo.VEC2),new qo(\\\\\\\"time\\\\\\\",Uo.FLOAT)])}create_shader_configs(){return[new b4(Mf.FRAGMENT,[\\\\\\\"color\\\\\\\",\\\\\\\"alpha\\\\\\\"],[])]}create_variable_configs(){return[new w4(\\\\\\\"color\\\\\\\",{prefix:\\\\\\\"diffuseColor.xyz = \\\\\\\"}),new w4(\\\\\\\"alpha\\\\\\\",{prefix:\\\\\\\"diffuseColor.a = \\\\\\\",default:\\\\\\\"1.0\\\\\\\"})]}insert_define_after(t){return\\\\\\\"// INSERT DEFINE\\\\\\\"}insert_body_after(t){return\\\\\\\"// INSERT BODY\\\\\\\"}lines_to_remove(t){return[\\\\\\\"// INSERT DEFINE\\\\\\\",\\\\\\\"// INSERT BODY\\\\\\\"]}handle_gl_FragCoord(t,e,n){\\\\\\\"fragment\\\\\\\"==e&&t.push(`vec2 ${n} = vec2(gl_FragCoord.x / resolution.x, gl_FragCoord.y / resolution.y)`)}set_node_lines_output(t,e){const n=this.input_names_for_shader_name(t,e.current_shader_name);if(n)for(let i of n){if(t.io.inputs.named_input(i)){const n=t.variableForInput(i);let s;\\\\\\\"color\\\\\\\"==i&&(s=`diffuseColor.xyz = ${mf.any(n)}`),\\\\\\\"alpha\\\\\\\"==i&&(s=`diffuseColor.a = ${mf.any(n)}`),s&&e.addBodyLines(t,[s])}}}set_node_lines_globals(t,e){const n=e.current_shader_name;if(!this.shader_config(n))return;const i=[],s=[];for(let e of t.io.outputs.used_output_names()){const r=t.glVarName(e);switch(e){case\\\\\\\"time\\\\\\\":s.push(new Nf(t,Uo.FLOAT,e)),i.push(`float ${r} = ${e}`),this.setUniformsTimeDependent();break;case\\\\\\\"gl_FragCoord\\\\\\\":this.handle_gl_FragCoord(i,n,r)}}e.addDefinitions(t,s,n),e.addBodyLines(t,i)}}const u5=new Map([]);class d5 extends B4{custom_assembler_class_by_custom_name(){return u5}}const p5=new Map([[Mf.VERTEX,\\\\\\\"// start builder body code\\\\\\\"],[Mf.FRAGMENT,\\\\\\\"// start builder body code\\\\\\\"]]),_5=new Map([[Mf.FRAGMENT,[]]]);class m5 extends d5{templateShader(){return{vertexShader:Uk,fragmentShader:Gk,uniforms:I.clone(Vk)}}createMaterial(){const t=this.templateShader(),e=new F({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,side:w.H,transparent:!0,depthTest:!0,uniforms:I.clone(t.uniforms)});return yr.add_user_data_render_hook(e,jk.render_hook.bind(jk)),this._addCustomMaterials(e),e}add_output_inputs(t){t.io.inputs.setNamedInputConnectionPoints([new qo(\\\\\\\"density\\\\\\\",Uo.FLOAT,1)])}static create_globals_node_output_connections(){return[new qo(\\\\\\\"position\\\\\\\",Uo.VEC3),new qo(\\\\\\\"pos_normalized\\\\\\\",Uo.VEC3),new qo(\\\\\\\"time\\\\\\\",Uo.FLOAT)]}create_globals_node_output_connections(){return m5.create_globals_node_output_connections()}insert_body_after(t){return p5.get(t)}lines_to_remove(t){return _5.get(t)}create_shader_configs(){return[new b4(Mf.VERTEX,[],[]),new b4(Mf.FRAGMENT,[\\\\\\\"density\\\\\\\"],[Mf.VERTEX])]}static create_variable_configs(){return[new w4(\\\\\\\"position\\\\\\\",{}),new w4(\\\\\\\"density\\\\\\\",{prefix:\\\\\\\"density *= \\\\\\\"})]}create_variable_configs(){return m5.create_variable_configs()}set_node_lines_globals(t,e){const n=[],i=e.current_shader_name,s=this.shader_config(i);if(!s)return;const r=s.dependencies(),o=new Map,a=new Map;let l,c;for(let s of t.io.outputs.used_output_names()){const u=t.glVarName(s),d=e.current_shader_name;switch(s){case\\\\\\\"time\\\\\\\":l=new Nf(t,Uo.FLOAT,s),d&&h.pushOnArrayAtEntry(o,d,l),c=`float ${u} = ${s}`;for(let t of r)h.pushOnArrayAtEntry(o,t,l),h.pushOnArrayAtEntry(a,t,c);n.push(c),this.setUniformsTimeDependent();break;case\\\\\\\"position\\\\\\\":i==Mf.FRAGMENT&&n.push(`vec3 ${u} = position_for_step`);break;case\\\\\\\"pos_normalized\\\\\\\":i==Mf.FRAGMENT&&n.push(`vec3 ${u} = (position_for_step - u_BoundingBoxMax) / (u_BoundingBoxMax - u_BoundingBoxMin)`)}}o.forEach(((n,i)=>{e.addDefinitions(t,n,i)})),a.forEach(((n,i)=>{e.addBodyLines(t,n,i)})),e.addBodyLines(t,n)}}class f5{static async run(){this._started||(this._started=!0,class{static async run(t){(class{static run(t){t.registerNode(k_,ec),t.registerNode(G_,sc),t.registerNode(H_,ec),t.registerNode(W_,ec),t.registerNode(tm,ec),t.registerNode(nm,tc),t.registerNode(sm,ec),t.registerNode(om,sc),t.registerNode(lm,ic),t.registerNode(mm,ic),t.registerNode(gm,ec),t.registerNode(ym,tc),t.registerNode(Sm,ic),t.registerNode(Lm,nc),t.registerNode(Om,nc),t.registerNode(Pm,nc),t.registerNode(Rm,nc),t.registerNode(sf,nc),t.registerNode(rf,nc)}}).run(t),class{static run(t){t.registerNode(rg,rc),t.registerNode(Og,oc),t.registerNode(Rg,oc),t.registerNode(kg,oc),t.registerNode(Hg,oc),t.registerNode(sv,oc),t.registerNode(lv,oc),t.registerNode(pv,ac),t.registerNode(mv,ac),t.registerNode(vv,ac),t.registerNode(Tv,ac),t.registerNode(Mv,ac),t.registerNode(Cv,rc),t.registerNode(Ov,oc),t.registerNode(Iv,rc),t.registerNode(Bv,lc),t.registerNode(kv,lc),t.registerNode(zv,lc),t.registerNode(Uv,lc),t.registerNode(Gv,lc),t.registerNode(Vv,lc)}}.run(t),class{static run(t){t.registerNode(qv,dc),t.registerNode($v,uc),t.registerNode(Zv,uc),t.registerNode(ty,uc),t.registerNode(hy,cc),t.registerNode(Ty,cc),t.registerNode(wy,cc),t.registerNode(My,uc),t.registerNode(Tl,hc),t.registerNode(ox,cc),t.registerNode(hl,hc),t.registerNode(hx,uc),t.registerNode(dx,uc),t.registerNode(IL,cc),t.registerNode(Ja,hc),t.registerNode(zL,dc),t.registerNode(VL,uc),t.registerNode(ZL,hc),t.registerNode(el,hc),t.registerNode(xO,uc),t.registerNode(rl,dc),t.registerNode(AO,dc),t.registerNode(FO,dc),t.registerNode(BO,uc),t.registerNode(UO,uc),t.registerNode(Ml,hc),t.registerNode(VO,uc),t.registerNode(ml,hc),t.registerNode(WO,pc),t.registerNode(qO,pc),t.registerNode(XO,pc),t.registerNode(YO,pc),t.registerNode($O,pc),t.registerNode(JO,pc)}}.run(t),class{static run(t){t.registerNode(FP,xc),t.registerNode(LR,bc),t.registerNode(DP,Tc),t.registerNode(mR,xc),t.registerNode(FR,Tc),t.registerNode(bR,yc),t.registerNode(BP,Tc),t.registerNode(zP,Tc),t.registerNode(wf,gc,{except:[`${ts.COP}/builder`]}),t.registerNode(aP,mc),t.registerNode(kP,xc),t.registerNode(uR,xc),t.registerNode(kR,_c),t.registerNode(qR,yc),t.registerNode(XR,xc),t.registerNode(JR,gc),t.registerNode(UP,Tc),t.registerNode(QR,fc),t.registerNode(tI,xc),t.registerNode(GP,mc),t.registerNode(iI,fc),t.registerNode(nR,fc),t.registerNode(fR,xc),t.registerNode(iR,fc),t.registerNode(uI,xc),t.registerNode(VP,xc),t.registerNode(HP,xc),t.registerNode(dR,fc),t.registerNode(_I,xc),t.registerNode(fI,xc),t.registerNode(vI,xc),t.registerNode(xI,xc),t.registerNode(QO,mc),t.registerNode(cP,mc),t.registerNode(uP,mc),t.registerNode(pP,mc),t.registerNode(jP,xc),t.registerNode(TI,_c),t.registerNode(PI,yc),t.registerNode(WP,xc),t.registerNode(II,gc),t.registerNode(DI,_c),t.registerNode(zI,_c),t.registerNode(GI,yc),t.registerNode(HI,Ac),t.registerNode(rP,mc),t.registerNode(nP,mc),t.registerNode(qP,xc),t.registerNode(JI,fc),t.registerNode(ZI,fc),t.registerNode(QI,_c),t.registerNode(XP,xc),t.registerNode(YP,xc),t.registerNode(sR,xc),t.registerNode(eF,xc),t.registerNode(rR,xc),t.registerNode(oR,xc),t.registerNode(oF,xc),t.registerNode(iF,xc),t.registerNode(vR,xc),t.registerNode(cF,xc),t.registerNode(hF,xc),t.registerNode(NF,Ac),t.registerNode(CF,fc),t.registerNode($P,xc),t.registerNode(wR,yc),t.registerNode(OF,gc),t.registerNode(IF,gc),t.registerNode(aR,xc),t.registerNode(kF,wc),t.registerNode(HF,wc),t.registerNode(jF,wc),t.registerNode(WF,wc),t.registerNode(YF,gc),t.registerNode(ZF,gc),t.registerNode(JP,mc),t.registerNode(lR,fc),t.registerNode(FF,fc),t.registerNode(QF,_c),t.registerNode(lD,fc),t.registerNode(hD,xc),t.registerNode(ZP,xc),t.registerNode(KP,Tc),t.registerNode(pR,xc),t.registerNode(dD,fc),t.registerNode(QP,xc),t.registerNode(zF,vc),t.registerNode(cR,fc),t.registerNode(CI,yc),t.registerNode(_D,yc,RD),t.registerNode(MI,yc,RD),t.registerNode(gR,xc),t.registerNode(fD,yc),t.registerNode(tR,Tc),t.registerNode(vD,_c),t.registerNode(wD,gc),t.registerNode(MD,yc),t.registerNode(Ff,gc),t.registerNode(CD,gc),t.registerNode(xP,mc),t.registerNode(MP,mc),t.registerNode(bP,mc),t.registerNode(AP,mc),t.registerNode(EP,mc),t.registerNode(wP,mc),t.registerNode(TP,mc),t.registerNode(LD,fc),t.registerNode(PD,fc)}}.run(t),class{static run(t){t.registerNode(BD,Mc),t.registerNode(kD,Mc),t.registerNode(GD,Mc),t.registerNode(YD,Mc)}}.run(t),class{static run(t){t.registerNode(iB,Sc),t.registerNode(mB,Sc),t.registerNode(qB,Cc),t.registerNode(KB,Ec),t.registerNode(sz,Cc),t.registerNode(hz,Ec),t.registerNode(Mz,Cc),t.registerNode(Nz,Cc),t.registerNode(Fz,Cc),t.registerNode(kz,Ec),t.registerNode(Jz,Cc),t.registerNode(tk,Ec),t.registerNode(sk,Cc),t.registerNode(lk,Ec),t.registerNode(xk,Cc),t.registerNode(Ek,Cc),t.registerNode(Lk,Lc),t.registerNode(Rk,Ec),t.registerNode(Dk,Ec),t.registerNode(kk,Cc),t.registerNode(Xk,Oc),t.registerNode(Jk,Oc),t.registerNode(Qk,Nc),t.registerNode(tU,Nc),t.registerNode(eU,Nc),t.registerNode(nU,Nc),t.registerNode(iU,Nc),t.registerNode(sU,Nc)}}.run(t),class{static run(t){t.registerNode(dU,Dc),t.registerNode(IU,Dc),t.registerNode(WU,Dc),t.registerNode(KU,Dc),t.registerNode(sG,Dc),t.registerNode(dG,Dc),t.registerNode(wG,Rc),t.registerNode(SG,zc),t.registerNode(BG,Pc),t.registerNode(VG,Fc),t.registerNode(WG,zc),t.registerNode(JG,zc),t.registerNode(TV,Pc),t.registerNode(zV,Rc),t.registerNode(VV,zc),t.registerNode(WV,Pc),t.registerNode(nj,Ic),t.registerNode(oj,Ic),t.registerNode(cj,Ic),t.registerNode(pj,Bc),t.registerNode(_j,Bc),t.registerNode(mj,Bc),t.registerNode(fj,Bc),t.registerNode(gj,Bc),t.registerNode(vj,Bc)}}.run(t),class{static run(t){t.registerNode(Ej,eh),t.registerNode(Lj,eh),t.registerNode(Rj,th),t.registerNode(Dj,th),t.registerNode(kj,nh),t.registerNode(Gj,nh),t.registerNode(jj,nh),t.registerNode(qj,nh),t.registerNode(eW,eh),t.registerNode(Kj,eh),t.registerNode(rW,eh),t.registerNode(lW,nh),t.registerNode(uW,th),t.registerNode(pW,Qc),t.registerNode(mW,nh),t.registerNode(bW,nh),t.registerNode(TW,nh),t.registerNode(MW,nh),t.registerNode(CW,eh),t.registerNode(OW,eh),t.registerNode(RW,nh),t.registerNode(DW,eh),t.registerNode(kW,th),t.registerNode(GW,nh),t.registerNode(WW,Qc),t.registerNode($W,eh),t.registerNode(ZW,Qc),t.registerNode(tq,eh),t.registerNode(iq,ih),t.registerNode(sq,ih),t.registerNode(rq,ih),t.registerNode(oq,ih),t.registerNode(aq,ih),t.registerNode(lq,ih)}}.run(t),class{static run(t){t.registerNode(mq,kc),t.registerNode(SH,Gc),t.registerNode(fq,Uc),t.registerNode(uq,Uc),t.registerNode(gq,Uc),t.registerNode(vq,Uc),t.registerNode(yq,Uc),t.registerNode(xq,Uc)}}.run(t),class{static run(t){t.registerOperation(bq),t.registerOperation(Fq),t.registerOperation(Hq),t.registerOperation(Xq),t.registerOperation(Zq),t.registerOperation(uX),t.registerOperation(rX),t.registerOperation(fX),t.registerOperation($X),t.registerOperation(QX),t.registerOperation(E$),t.registerOperation(L$),t.registerOperation(HJ),t.registerOperation(XJ),t.registerOperation(KJ),t.registerOperation(uZ),t.registerOperation(UZ),t.registerOperation(rK),t.registerOperation(fQ),t.registerOperation(LQ),t.registerOperation(UQ),t.registerOperation(jQ),t.registerOperation(JQ),t.registerOperation(n0),t.registerOperation(f0),t.registerOperation(N0),t.registerOperation(d0),t.registerOperation(V0),t.registerOperation(X0),t.registerOperation(p1),t.registerOperation(x1),t.registerOperation(A1),t.registerOperation(O1),t.registerOperation(B1),t.registerOperation(Y1),t.registerOperation(i2),t.registerOperation(_2),t.registerOperation(v2),t.registerOperation(w2),t.registerOperation(L2),t.registerOperation(k2),t.registerOperation(J2),t.registerOperation(c9),t.registerOperation(x9),t.registerOperation(G9),t.registerOperation(W9),t.registerOperation(J9),t.registerOperation(t3),t.registerOperation(o3),t.registerOperation(M3),t.registerOperation(P3),t.registerOperation(D3),t.registerNode(Aq,qc),t.registerNode(Eq,Hc),t.registerNode(Iq,Hc),t.registerNode(zq,jc),t.registerNode(qq,jc),t.registerNode(Jq,jc),t.registerNode(eX,jc),t.registerNode(iX,jc),t.registerNode(lX,jc),t.registerNode(_X,jc),t.registerNode(xX,jc),t.registerNode(wX,jc),t.registerNode(AX,jc),t.registerNode(LX,jc),t.registerNode(PX,$c),t.registerNode(IX,$c),t.registerNode(KX,$c),t.registerNode(nY,Zc),t.registerNode(N$,Vc),t.registerNode(R$,Vc),t.registerNode(BJ,Yc),t.registerNode(VJ,Zc),t.registerNode(qJ,$c),t.registerNode($J,Zc),t.registerNode(eZ,Zc),t.registerNode(lZ,Zc),t.registerNode(_Z,$c),t.registerNode(xZ,$c),t.registerNode(TZ,Zc),t.registerNode(DZ,$c),t.registerNode(HZ,Zc),t.registerNode(YZ,qc),t.registerNode(nK,qc),t.registerNode(lK,Yc),t.registerNode(hK,Yc),t.registerNode(MK,$c),t.registerNode(SK,$c),t.registerNode(cQ,Vc),t.registerNode(uQ,$c),t.registerNode(yQ,qc),t.registerNode(bQ,qc),t.registerNode(TQ,$c),t.registerNode(SQ,Zc),t.registerNode(DQ,$c),t.registerNode(IQ,Yc),t.registerNode(HQ,Zc),t.registerNode(XQ,Kc),t.registerNode(QQ,$c),t.registerNode(e0,Kc),t.registerNode(r0,$c),t.registerNode(a0,$c),t.registerNode(c0,Zc),t.registerNode(u0,Vc),t.registerNode(m0,Kc),t.registerNode(x0,Yc),t.registerNode(P0,Zc),t.registerNode(k0,Yc),t.registerNode(G0,$c),t.registerNode(j0,Yc),t.registerNode(q0,qc),t.registerNode(J0,$c),t.registerNode(K0,Vc,{userAllowed:!1}),t.registerNode(d1,Wc),t.registerNode(f1,$c),t.registerNode(T1,Zc),t.registerNode(S1,$c),t.registerNode(U1,$c),t.registerNode(L1,$c),t.registerNode(I1,Xc),t.registerNode(yV,Vc),t.registerNode(q1,$c),t.registerNode(Z1,$c),t.registerNode(o2,Kc),t.registerNode(p2,$c),t.registerNode(g2,jc),t.registerNode(b2,qc),t.registerNode(M2,$c),t.registerNode(D2,$c),t.registerNode(I2,$c),t.registerNode(j2,Vc),t.registerNode(q2,Vc),t.registerNode(V2,$c),t.registerNode(Q2,Zc),t.registerNode(e9,$c),t.registerNode(d9,$c),t.registerNode(_9,Yc),t.registerNode(f9,Yc),t.registerNode(pV,Yc),t.registerNode(T9,qc),t.registerNode(E9,Yc),t.registerNode(N9,Zc),t.registerNode(U9,Zc),t.registerNode(j9,$c),t.registerNode(Y9,$c),t.registerNode(Q9,Zc),t.registerNode(i3,Zc),t.registerNode(c3,$c),t.registerNode(u3,$c),t.registerNode(f3,$c),t.registerNode(x3,$c),t.registerNode(T3,Zc),t.registerNode(S3,$c),t.registerNode(O3,$c),t.registerNode(F3,$c),t.registerNode(z3,$c),t.registerNode(G3,Jc),t.registerNode(V3,Jc),t.registerNode(H3,Jc),t.registerNode(j3,Jc),t.registerNode(W3,Jc),t.registerNode(q3,Jc)}}.run(t)}}.run(li),class{static run(t){t.registerCamera(nj),t.registerCamera(oj)}}.run(li),class{static run(t){t.expressionsRegister.register(Y3,\\\\\\\"arg\\\\\\\"),t.expressionsRegister.register($3,\\\\\\\"argc\\\\\\\"),t.expressionsRegister.register(K3,\\\\\\\"bbox\\\\\\\"),t.expressionsRegister.register(Q3,\\\\\\\"centroid\\\\\\\"),t.expressionsRegister.register(t4,\\\\\\\"ch\\\\\\\"),t.expressionsRegister.register(e4,\\\\\\\"copy\\\\\\\"),t.expressionsRegister.register(n4,\\\\\\\"copRes\\\\\\\"),t.expressionsRegister.register(i4,\\\\\\\"isDeviceMobile\\\\\\\"),t.expressionsRegister.register(s4,\\\\\\\"isDeviceTouch\\\\\\\"),t.expressionsRegister.register(r4,\\\\\\\"js\\\\\\\"),t.expressionsRegister.register(o4,\\\\\\\"object\\\\\\\"),t.expressionsRegister.register(a4,\\\\\\\"objectsCount\\\\\\\"),t.expressionsRegister.register(l4,\\\\\\\"opdigits\\\\\\\"),t.expressionsRegister.register(c4,\\\\\\\"opname\\\\\\\"),t.expressionsRegister.register(h4,\\\\\\\"padzero\\\\\\\"),t.expressionsRegister.register(u4,\\\\\\\"point\\\\\\\"),t.expressionsRegister.register(d4,\\\\\\\"pointsCount\\\\\\\"),t.expressionsRegister.register(p4,\\\\\\\"strCharsCount\\\\\\\"),t.expressionsRegister.register(_4,\\\\\\\"strConcat\\\\\\\"),t.expressionsRegister.register(m4,\\\\\\\"strIndex\\\\\\\"),t.expressionsRegister.register(f4,\\\\\\\"strSub\\\\\\\"),t.expressionsRegister.register(g4,\\\\\\\"windowSize\\\\\\\")}}.run(li),class{static run(t){t.assemblersRegister.register(jn.GL_MESH_BASIC,y4,W4),t.assemblersRegister.register(jn.GL_MESH_LAMBERT,y4,q4),t.assemblersRegister.register(jn.GL_MESH_PHONG,y4,X4),t.assemblersRegister.register(jn.GL_MESH_STANDARD,y4,$4),t.assemblersRegister.register(jn.GL_MESH_PHYSICAL,y4,J4),t.assemblersRegister.register(jn.GL_PARTICLES,y4,c5),t.assemblersRegister.register(jn.GL_POINTS,y4,i5),t.assemblersRegister.register(jn.GL_LINE,y4,l5),t.assemblersRegister.register(jn.GL_TEXTURE,y4,h5),t.assemblersRegister.register(jn.GL_VOLUME,y4,m5)}}.run(li))}}f5._started=!1,f5.run()}]);void 0===POLY&&console.error(\\\\\\\"esm-webpack-plugin: nothing exported!\\\\\\\");const _POLY$PolyScene=POLY.PolyScene,_POLY$Poly=POLY.Poly,_POLY$SceneJsonImporter=POLY.SceneJsonImporter,_POLY$SceneDataManifestImporter=POLY.SceneDataManifestImporter,_POLY$mountScene=POLY.mountScene;export{_POLY$PolyScene as PolyScene,_POLY$Poly as Poly,_POLY$SceneJsonImporter as SceneJsonImporter,_POLY$SceneDataManifestImporter as SceneDataManifestImporter,_POLY$mountScene as mountScene};\\n//# sourceMappingURL=all.js.map\"","status":200,"headers":{"content-type":"application/javascript","content-length":"2831720"}},"type":2,"external":true,"timestamp":1723918418446},{"data":{"url":"blob:https://ipfs.arkivo.art/5984af5c-75b1-484c-b698-d2fda55d9490","host":"","path":"https://ipfs.arkivo.art/5984af5c-75b1-484c-b698-d2fda55d9490","type":"http","query":"","method":"GET","headers":{"origin":"https://ipfs.arkivo.art","referer":"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36"},"fragment":"","postData":null,"protocol":"blob:"},"type":1,"external":false,"timestamp":1723918418467},{"data":{"url":"blob:https://ipfs.arkivo.art/e2fa449b-d296-4891-9b88-b824f7345ed3","host":"","path":"https://ipfs.arkivo.art/e2fa449b-d296-4891-9b88-b824f7345ed3","type":"http","query":"","method":"GET","headers":{"referer":"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36"},"fragment":"","postData":null,"protocol":"blob:"},"type":1,"external":false,"timestamp":1723918419590},{"data":{"url":"blob:https://ipfs.arkivo.art/08cd4331-0c59-4483-aefc-65d538ebb73a","host":"","path":"https://ipfs.arkivo.art/08cd4331-0c59-4483-aefc-65d538ebb73a","type":"http","query":"","method":"GET","headers":{"referer":"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36"},"fragment":"","postData":null,"protocol":"blob:"},"type":1,"external":false,"timestamp":1723918419590},{"data":{"url":"blob:https://ipfs.arkivo.art/a8a4a8d9-77bb-42cc-bb3c-2c45ad47eec5","host":"","path":"https://ipfs.arkivo.art/a8a4a8d9-77bb-42cc-bb3c-2c45ad47eec5","type":"http","query":"","method":"GET","headers":{"origin":"https://ipfs.arkivo.art","referer":"","user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36"},"fragment":"","postData":null,"protocol":"blob:"},"type":1,"external":false,"timestamp":1723918419591},{"data":{"url":"blob:https://ipfs.arkivo.art/5984af5c-75b1-484c-b698-d2fda55d9490","body":"\"var __create = Object.create;\\nvar __defProp = Object.defineProperty;\\nvar __getProtoOf = Object.getPrototypeOf;\\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\\nvar __getOwnPropNames = Object.getOwnPropertyNames;\\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\\nvar __markAsModule = (target) => __defProp(target, \\\\\\\"__esModule\\\\\\\", {value: true});\\nvar __commonJS = (callback, module) => () => {\\n  if (!module) {\\n    module = {exports: {}};\\n    callback(module.exports, module);\\n  }\\n  return module.exports;\\n};\\nvar __exportStar = (target, module, desc) => {\\n  __markAsModule(target);\\n  if (module && typeof module === \\\\\\\"object\\\\\\\" || typeof module === \\\\\\\"function\\\\\\\") {\\n    for (let key of __getOwnPropNames(module))\\n      if (!__hasOwnProp.call(target, key) && key !== \\\\\\\"default\\\\\\\")\\n        __defProp(target, key, {get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable});\\n  }\\n  return target;\\n};\\nvar __toModule = (module) => {\\n  if (module && module.__esModule)\\n    return module;\\n  return __exportStar(__defProp(module != null ? __create(__getProtoOf(module)) : {}, \\\\\\\"default\\\\\\\", {value: module, enumerable: true}), module);\\n};\\n\\n// ../../../node_modules/lodash/_listCacheClear.js\\nvar require_listCacheClear = __commonJS((exports, module) => {\\n  function listCacheClear() {\\n    this.__data__ = [];\\n    this.size = 0;\\n  }\\n  module.exports = listCacheClear;\\n});\\n\\n// ../../../node_modules/lodash/eq.js\\nvar require_eq = __commonJS((exports, module) => {\\n  function eq(value, other) {\\n    return value === other || value !== value && other !== other;\\n  }\\n  module.exports = eq;\\n});\\n\\n// ../../../node_modules/lodash/_assocIndexOf.js\\nvar require_assocIndexOf = __commonJS((exports, module) => {\\n  var eq = require_eq();\\n  function assocIndexOf(array, key) {\\n    var length = array.length;\\n    while (length--) {\\n      if (eq(array[length][0], key)) {\\n        return length;\\n      }\\n    }\\n    return -1;\\n  }\\n  module.exports = assocIndexOf;\\n});\\n\\n// ../../../node_modules/lodash/_listCacheDelete.js\\nvar require_listCacheDelete = __commonJS((exports, module) => {\\n  var assocIndexOf = require_assocIndexOf();\\n  var arrayProto = Array.prototype;\\n  var splice = arrayProto.splice;\\n  function listCacheDelete(key) {\\n    var data = this.__data__, index = assocIndexOf(data, key);\\n    if (index < 0) {\\n      return false;\\n    }\\n    var lastIndex = data.length - 1;\\n    if (index == lastIndex) {\\n      data.pop();\\n    } else {\\n      splice.call(data, index, 1);\\n    }\\n    --this.size;\\n    return true;\\n  }\\n  module.exports = listCacheDelete;\\n});\\n\\n// ../../../node_modules/lodash/_listCacheGet.js\\nvar require_listCacheGet = __commonJS((exports, module) => {\\n  var assocIndexOf = require_assocIndexOf();\\n  function listCacheGet(key) {\\n    var data = this.__data__, index = assocIndexOf(data, key);\\n    return index < 0 ? void 0 : data[index][1];\\n  }\\n  module.exports = listCacheGet;\\n});\\n\\n// ../../../node_modules/lodash/_listCacheHas.js\\nvar require_listCacheHas = __commonJS((exports, module) => {\\n  var assocIndexOf = require_assocIndexOf();\\n  function listCacheHas(key) {\\n    return assocIndexOf(this.__data__, key) > -1;\\n  }\\n  module.exports = listCacheHas;\\n});\\n\\n// ../../../node_modules/lodash/_listCacheSet.js\\nvar require_listCacheSet = __commonJS((exports, module) => {\\n  var assocIndexOf = require_assocIndexOf();\\n  function listCacheSet(key, value) {\\n    var data = this.__data__, index = assocIndexOf(data, key);\\n    if (index < 0) {\\n      ++this.size;\\n      data.push([key, value]);\\n    } else {\\n      data[index][1] = value;\\n    }\\n    return this;\\n  }\\n  module.exports = listCacheSet;\\n});\\n\\n// ../../../node_modules/lodash/_ListCache.js\\nvar require_ListCache = __commonJS((exports, module) => {\\n  var listCacheClear = require_listCacheClear();\\n  var listCacheDelete = require_listCacheDelete();\\n  var listCacheGet = require_listCacheGet();\\n  var listCacheHas = require_listCacheHas();\\n  var listCacheSet = require_listCacheSet();\\n  function ListCache(entries) {\\n    var index = -1, length = entries == null ? 0 : entries.length;\\n    this.clear();\\n    while (++index < length) {\\n      var entry = entries[index];\\n      this.set(entry[0], entry[1]);\\n    }\\n  }\\n  ListCache.prototype.clear = listCacheClear;\\n  ListCache.prototype[\\\\\\\"delete\\\\\\\"] = listCacheDelete;\\n  ListCache.prototype.get = listCacheGet;\\n  ListCache.prototype.has = listCacheHas;\\n  ListCache.prototype.set = listCacheSet;\\n  module.exports = ListCache;\\n});\\n\\n// ../../../node_modules/lodash/_stackClear.js\\nvar require_stackClear = __commonJS((exports, module) => {\\n  var ListCache = require_ListCache();\\n  function stackClear() {\\n    this.__data__ = new ListCache();\\n    this.size = 0;\\n  }\\n  module.exports = stackClear;\\n});\\n\\n// ../../../node_modules/lodash/_stackDelete.js\\nvar require_stackDelete = __commonJS((exports, module) => {\\n  function stackDelete(key) {\\n    var data = this.__data__, result = data[\\\\\\\"delete\\\\\\\"](key);\\n    this.size = data.size;\\n    return result;\\n  }\\n  module.exports = stackDelete;\\n});\\n\\n// ../../../node_modules/lodash/_stackGet.js\\nvar require_stackGet = __commonJS((exports, module) => {\\n  function stackGet(key) {\\n    return this.__data__.get(key);\\n  }\\n  module.exports = stackGet;\\n});\\n\\n// ../../../node_modules/lodash/_stackHas.js\\nvar require_stackHas = __commonJS((exports, module) => {\\n  function stackHas(key) {\\n    return this.__data__.has(key);\\n  }\\n  module.exports = stackHas;\\n});\\n\\n// ../../../node_modules/lodash/_freeGlobal.js\\nvar require_freeGlobal = __commonJS((exports, module) => {\\n  var freeGlobal = typeof global == \\\\\\\"object\\\\\\\" && global && global.Object === Object && global;\\n  module.exports = freeGlobal;\\n});\\n\\n// ../../../node_modules/lodash/_root.js\\nvar require_root = __commonJS((exports, module) => {\\n  var freeGlobal = require_freeGlobal();\\n  var freeSelf = typeof self == \\\\\\\"object\\\\\\\" && self && self.Object === Object && self;\\n  var root = freeGlobal || freeSelf || Function(\\\\\\\"return this\\\\\\\")();\\n  module.exports = root;\\n});\\n\\n// ../../../node_modules/lodash/_Symbol.js\\nvar require_Symbol = __commonJS((exports, module) => {\\n  var root = require_root();\\n  var Symbol2 = root.Symbol;\\n  module.exports = Symbol2;\\n});\\n\\n// ../../../node_modules/lodash/_getRawTag.js\\nvar require_getRawTag = __commonJS((exports, module) => {\\n  var Symbol2 = require_Symbol();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  var nativeObjectToString = objectProto.toString;\\n  var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;\\n  function getRawTag(value) {\\n    var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\\n    try {\\n      value[symToStringTag] = void 0;\\n      var unmasked = true;\\n    } catch (e) {\\n    }\\n    var result = nativeObjectToString.call(value);\\n    if (unmasked) {\\n      if (isOwn) {\\n        value[symToStringTag] = tag;\\n      } else {\\n        delete value[symToStringTag];\\n      }\\n    }\\n    return result;\\n  }\\n  module.exports = getRawTag;\\n});\\n\\n// ../../../node_modules/lodash/_objectToString.js\\nvar require_objectToString = __commonJS((exports, module) => {\\n  var objectProto = Object.prototype;\\n  var nativeObjectToString = objectProto.toString;\\n  function objectToString(value) {\\n    return nativeObjectToString.call(value);\\n  }\\n  module.exports = objectToString;\\n});\\n\\n// ../../../node_modules/lodash/_baseGetTag.js\\nvar require_baseGetTag = __commonJS((exports, module) => {\\n  var Symbol2 = require_Symbol();\\n  var getRawTag = require_getRawTag();\\n  var objectToString = require_objectToString();\\n  var nullTag = \\\\\\\"[object Null]\\\\\\\";\\n  var undefinedTag = \\\\\\\"[object Undefined]\\\\\\\";\\n  var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;\\n  function baseGetTag(value) {\\n    if (value == null) {\\n      return value === void 0 ? undefinedTag : nullTag;\\n    }\\n    return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\\n  }\\n  module.exports = baseGetTag;\\n});\\n\\n// ../../../node_modules/lodash/isObject.js\\nvar require_isObject = __commonJS((exports, module) => {\\n  function isObject(value) {\\n    var type = typeof value;\\n    return value != null && (type == \\\\\\\"object\\\\\\\" || type == \\\\\\\"function\\\\\\\");\\n  }\\n  module.exports = isObject;\\n});\\n\\n// ../../../node_modules/lodash/isFunction.js\\nvar require_isFunction = __commonJS((exports, module) => {\\n  var baseGetTag = require_baseGetTag();\\n  var isObject = require_isObject();\\n  var asyncTag = \\\\\\\"[object AsyncFunction]\\\\\\\";\\n  var funcTag = \\\\\\\"[object Function]\\\\\\\";\\n  var genTag = \\\\\\\"[object GeneratorFunction]\\\\\\\";\\n  var proxyTag = \\\\\\\"[object Proxy]\\\\\\\";\\n  function isFunction(value) {\\n    if (!isObject(value)) {\\n      return false;\\n    }\\n    var tag = baseGetTag(value);\\n    return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\\n  }\\n  module.exports = isFunction;\\n});\\n\\n// ../../../node_modules/lodash/_coreJsData.js\\nvar require_coreJsData = __commonJS((exports, module) => {\\n  var root = require_root();\\n  var coreJsData = root[\\\\\\\"__core-js_shared__\\\\\\\"];\\n  module.exports = coreJsData;\\n});\\n\\n// ../../../node_modules/lodash/_isMasked.js\\nvar require_isMasked = __commonJS((exports, module) => {\\n  var coreJsData = require_coreJsData();\\n  var maskSrcKey = function() {\\n    var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \\\\\\\"\\\\\\\");\\n    return uid ? \\\\\\\"Symbol(src)_1.\\\\\\\" + uid : \\\\\\\"\\\\\\\";\\n  }();\\n  function isMasked(func) {\\n    return !!maskSrcKey && maskSrcKey in func;\\n  }\\n  module.exports = isMasked;\\n});\\n\\n// ../../../node_modules/lodash/_toSource.js\\nvar require_toSource = __commonJS((exports, module) => {\\n  var funcProto = Function.prototype;\\n  var funcToString = funcProto.toString;\\n  function toSource(func) {\\n    if (func != null) {\\n      try {\\n        return funcToString.call(func);\\n      } catch (e) {\\n      }\\n      try {\\n        return func + \\\\\\\"\\\\\\\";\\n      } catch (e) {\\n      }\\n    }\\n    return \\\\\\\"\\\\\\\";\\n  }\\n  module.exports = toSource;\\n});\\n\\n// ../../../node_modules/lodash/_baseIsNative.js\\nvar require_baseIsNative = __commonJS((exports, module) => {\\n  var isFunction = require_isFunction();\\n  var isMasked = require_isMasked();\\n  var isObject = require_isObject();\\n  var toSource = require_toSource();\\n  var reRegExpChar = /[\\\\\\\\^$.*+?()[\\\\]{}|]/g;\\n  var reIsHostCtor = /^\\\\[object .+?Constructor\\\\]$/;\\n  var funcProto = Function.prototype;\\n  var objectProto = Object.prototype;\\n  var funcToString = funcProto.toString;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  var reIsNative = RegExp(\\\\\\\"^\\\\\\\" + funcToString.call(hasOwnProperty).replace(reRegExpChar, \\\\\\\"\\\\\\\\$&\\\\\\\").replace(/hasOwnProperty|(function).*?(?=\\\\\\\\\\\\()| for .+?(?=\\\\\\\\\\\\])/g, \\\\\\\"$1.*?\\\\\\\") + \\\\\\\"$\\\\\\\");\\n  function baseIsNative(value) {\\n    if (!isObject(value) || isMasked(value)) {\\n      return false;\\n    }\\n    var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\\n    return pattern.test(toSource(value));\\n  }\\n  module.exports = baseIsNative;\\n});\\n\\n// ../../../node_modules/lodash/_getValue.js\\nvar require_getValue = __commonJS((exports, module) => {\\n  function getValue(object, key) {\\n    return object == null ? void 0 : object[key];\\n  }\\n  module.exports = getValue;\\n});\\n\\n// ../../../node_modules/lodash/_getNative.js\\nvar require_getNative = __commonJS((exports, module) => {\\n  var baseIsNative = require_baseIsNative();\\n  var getValue = require_getValue();\\n  function getNative(object, key) {\\n    var value = getValue(object, key);\\n    return baseIsNative(value) ? value : void 0;\\n  }\\n  module.exports = getNative;\\n});\\n\\n// ../../../node_modules/lodash/_Map.js\\nvar require_Map = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var root = require_root();\\n  var Map2 = getNative(root, \\\\\\\"Map\\\\\\\");\\n  module.exports = Map2;\\n});\\n\\n// ../../../node_modules/lodash/_nativeCreate.js\\nvar require_nativeCreate = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var nativeCreate = getNative(Object, \\\\\\\"create\\\\\\\");\\n  module.exports = nativeCreate;\\n});\\n\\n// ../../../node_modules/lodash/_hashClear.js\\nvar require_hashClear = __commonJS((exports, module) => {\\n  var nativeCreate = require_nativeCreate();\\n  function hashClear() {\\n    this.__data__ = nativeCreate ? nativeCreate(null) : {};\\n    this.size = 0;\\n  }\\n  module.exports = hashClear;\\n});\\n\\n// ../../../node_modules/lodash/_hashDelete.js\\nvar require_hashDelete = __commonJS((exports, module) => {\\n  function hashDelete(key) {\\n    var result = this.has(key) && delete this.__data__[key];\\n    this.size -= result ? 1 : 0;\\n    return result;\\n  }\\n  module.exports = hashDelete;\\n});\\n\\n// ../../../node_modules/lodash/_hashGet.js\\nvar require_hashGet = __commonJS((exports, module) => {\\n  var nativeCreate = require_nativeCreate();\\n  var HASH_UNDEFINED = \\\\\\\"__lodash_hash_undefined__\\\\\\\";\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function hashGet(key) {\\n    var data = this.__data__;\\n    if (nativeCreate) {\\n      var result = data[key];\\n      return result === HASH_UNDEFINED ? void 0 : result;\\n    }\\n    return hasOwnProperty.call(data, key) ? data[key] : void 0;\\n  }\\n  module.exports = hashGet;\\n});\\n\\n// ../../../node_modules/lodash/_hashHas.js\\nvar require_hashHas = __commonJS((exports, module) => {\\n  var nativeCreate = require_nativeCreate();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function hashHas(key) {\\n    var data = this.__data__;\\n    return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);\\n  }\\n  module.exports = hashHas;\\n});\\n\\n// ../../../node_modules/lodash/_hashSet.js\\nvar require_hashSet = __commonJS((exports, module) => {\\n  var nativeCreate = require_nativeCreate();\\n  var HASH_UNDEFINED = \\\\\\\"__lodash_hash_undefined__\\\\\\\";\\n  function hashSet(key, value) {\\n    var data = this.__data__;\\n    this.size += this.has(key) ? 0 : 1;\\n    data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;\\n    return this;\\n  }\\n  module.exports = hashSet;\\n});\\n\\n// ../../../node_modules/lodash/_Hash.js\\nvar require_Hash = __commonJS((exports, module) => {\\n  var hashClear = require_hashClear();\\n  var hashDelete = require_hashDelete();\\n  var hashGet = require_hashGet();\\n  var hashHas = require_hashHas();\\n  var hashSet = require_hashSet();\\n  function Hash(entries) {\\n    var index = -1, length = entries == null ? 0 : entries.length;\\n    this.clear();\\n    while (++index < length) {\\n      var entry = entries[index];\\n      this.set(entry[0], entry[1]);\\n    }\\n  }\\n  Hash.prototype.clear = hashClear;\\n  Hash.prototype[\\\\\\\"delete\\\\\\\"] = hashDelete;\\n  Hash.prototype.get = hashGet;\\n  Hash.prototype.has = hashHas;\\n  Hash.prototype.set = hashSet;\\n  module.exports = Hash;\\n});\\n\\n// ../../../node_modules/lodash/_mapCacheClear.js\\nvar require_mapCacheClear = __commonJS((exports, module) => {\\n  var Hash = require_Hash();\\n  var ListCache = require_ListCache();\\n  var Map2 = require_Map();\\n  function mapCacheClear() {\\n    this.size = 0;\\n    this.__data__ = {\\n      hash: new Hash(),\\n      map: new (Map2 || ListCache)(),\\n      string: new Hash()\\n    };\\n  }\\n  module.exports = mapCacheClear;\\n});\\n\\n// ../../../node_modules/lodash/_isKeyable.js\\nvar require_isKeyable = __commonJS((exports, module) => {\\n  function isKeyable(value) {\\n    var type = typeof value;\\n    return type == \\\\\\\"string\\\\\\\" || type == \\\\\\\"number\\\\\\\" || type == \\\\\\\"symbol\\\\\\\" || type == \\\\\\\"boolean\\\\\\\" ? value !== \\\\\\\"__proto__\\\\\\\" : value === null;\\n  }\\n  module.exports = isKeyable;\\n});\\n\\n// ../../../node_modules/lodash/_getMapData.js\\nvar require_getMapData = __commonJS((exports, module) => {\\n  var isKeyable = require_isKeyable();\\n  function getMapData(map, key) {\\n    var data = map.__data__;\\n    return isKeyable(key) ? data[typeof key == \\\\\\\"string\\\\\\\" ? \\\\\\\"string\\\\\\\" : \\\\\\\"hash\\\\\\\"] : data.map;\\n  }\\n  module.exports = getMapData;\\n});\\n\\n// ../../../node_modules/lodash/_mapCacheDelete.js\\nvar require_mapCacheDelete = __commonJS((exports, module) => {\\n  var getMapData = require_getMapData();\\n  function mapCacheDelete(key) {\\n    var result = getMapData(this, key)[\\\\\\\"delete\\\\\\\"](key);\\n    this.size -= result ? 1 : 0;\\n    return result;\\n  }\\n  module.exports = mapCacheDelete;\\n});\\n\\n// ../../../node_modules/lodash/_mapCacheGet.js\\nvar require_mapCacheGet = __commonJS((exports, module) => {\\n  var getMapData = require_getMapData();\\n  function mapCacheGet(key) {\\n    return getMapData(this, key).get(key);\\n  }\\n  module.exports = mapCacheGet;\\n});\\n\\n// ../../../node_modules/lodash/_mapCacheHas.js\\nvar require_mapCacheHas = __commonJS((exports, module) => {\\n  var getMapData = require_getMapData();\\n  function mapCacheHas(key) {\\n    return getMapData(this, key).has(key);\\n  }\\n  module.exports = mapCacheHas;\\n});\\n\\n// ../../../node_modules/lodash/_mapCacheSet.js\\nvar require_mapCacheSet = __commonJS((exports, module) => {\\n  var getMapData = require_getMapData();\\n  function mapCacheSet(key, value) {\\n    var data = getMapData(this, key), size = data.size;\\n    data.set(key, value);\\n    this.size += data.size == size ? 0 : 1;\\n    return this;\\n  }\\n  module.exports = mapCacheSet;\\n});\\n\\n// ../../../node_modules/lodash/_MapCache.js\\nvar require_MapCache = __commonJS((exports, module) => {\\n  var mapCacheClear = require_mapCacheClear();\\n  var mapCacheDelete = require_mapCacheDelete();\\n  var mapCacheGet = require_mapCacheGet();\\n  var mapCacheHas = require_mapCacheHas();\\n  var mapCacheSet = require_mapCacheSet();\\n  function MapCache(entries) {\\n    var index = -1, length = entries == null ? 0 : entries.length;\\n    this.clear();\\n    while (++index < length) {\\n      var entry = entries[index];\\n      this.set(entry[0], entry[1]);\\n    }\\n  }\\n  MapCache.prototype.clear = mapCacheClear;\\n  MapCache.prototype[\\\\\\\"delete\\\\\\\"] = mapCacheDelete;\\n  MapCache.prototype.get = mapCacheGet;\\n  MapCache.prototype.has = mapCacheHas;\\n  MapCache.prototype.set = mapCacheSet;\\n  module.exports = MapCache;\\n});\\n\\n// ../../../node_modules/lodash/_stackSet.js\\nvar require_stackSet = __commonJS((exports, module) => {\\n  var ListCache = require_ListCache();\\n  var Map2 = require_Map();\\n  var MapCache = require_MapCache();\\n  var LARGE_ARRAY_SIZE = 200;\\n  function stackSet(key, value) {\\n    var data = this.__data__;\\n    if (data instanceof ListCache) {\\n      var pairs = data.__data__;\\n      if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {\\n        pairs.push([key, value]);\\n        this.size = ++data.size;\\n        return this;\\n      }\\n      data = this.__data__ = new MapCache(pairs);\\n    }\\n    data.set(key, value);\\n    this.size = data.size;\\n    return this;\\n  }\\n  module.exports = stackSet;\\n});\\n\\n// ../../../node_modules/lodash/_Stack.js\\nvar require_Stack = __commonJS((exports, module) => {\\n  var ListCache = require_ListCache();\\n  var stackClear = require_stackClear();\\n  var stackDelete = require_stackDelete();\\n  var stackGet = require_stackGet();\\n  var stackHas = require_stackHas();\\n  var stackSet = require_stackSet();\\n  function Stack(entries) {\\n    var data = this.__data__ = new ListCache(entries);\\n    this.size = data.size;\\n  }\\n  Stack.prototype.clear = stackClear;\\n  Stack.prototype[\\\\\\\"delete\\\\\\\"] = stackDelete;\\n  Stack.prototype.get = stackGet;\\n  Stack.prototype.has = stackHas;\\n  Stack.prototype.set = stackSet;\\n  module.exports = Stack;\\n});\\n\\n// ../../../node_modules/lodash/_arrayEach.js\\nvar require_arrayEach = __commonJS((exports, module) => {\\n  function arrayEach(array, iteratee) {\\n    var index = -1, length = array == null ? 0 : array.length;\\n    while (++index < length) {\\n      if (iteratee(array[index], index, array) === false) {\\n        break;\\n      }\\n    }\\n    return array;\\n  }\\n  module.exports = arrayEach;\\n});\\n\\n// ../../../node_modules/lodash/_defineProperty.js\\nvar require_defineProperty = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var defineProperty = function() {\\n    try {\\n      var func = getNative(Object, \\\\\\\"defineProperty\\\\\\\");\\n      func({}, \\\\\\\"\\\\\\\", {});\\n      return func;\\n    } catch (e) {\\n    }\\n  }();\\n  module.exports = defineProperty;\\n});\\n\\n// ../../../node_modules/lodash/_baseAssignValue.js\\nvar require_baseAssignValue = __commonJS((exports, module) => {\\n  var defineProperty = require_defineProperty();\\n  function baseAssignValue(object, key, value) {\\n    if (key == \\\\\\\"__proto__\\\\\\\" && defineProperty) {\\n      defineProperty(object, key, {\\n        configurable: true,\\n        enumerable: true,\\n        value,\\n        writable: true\\n      });\\n    } else {\\n      object[key] = value;\\n    }\\n  }\\n  module.exports = baseAssignValue;\\n});\\n\\n// ../../../node_modules/lodash/_assignValue.js\\nvar require_assignValue = __commonJS((exports, module) => {\\n  var baseAssignValue = require_baseAssignValue();\\n  var eq = require_eq();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function assignValue(object, key, value) {\\n    var objValue = object[key];\\n    if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {\\n      baseAssignValue(object, key, value);\\n    }\\n  }\\n  module.exports = assignValue;\\n});\\n\\n// ../../../node_modules/lodash/_copyObject.js\\nvar require_copyObject = __commonJS((exports, module) => {\\n  var assignValue = require_assignValue();\\n  var baseAssignValue = require_baseAssignValue();\\n  function copyObject(source, props, object, customizer) {\\n    var isNew = !object;\\n    object || (object = {});\\n    var index = -1, length = props.length;\\n    while (++index < length) {\\n      var key = props[index];\\n      var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;\\n      if (newValue === void 0) {\\n        newValue = source[key];\\n      }\\n      if (isNew) {\\n        baseAssignValue(object, key, newValue);\\n      } else {\\n        assignValue(object, key, newValue);\\n      }\\n    }\\n    return object;\\n  }\\n  module.exports = copyObject;\\n});\\n\\n// ../../../node_modules/lodash/_baseTimes.js\\nvar require_baseTimes = __commonJS((exports, module) => {\\n  function baseTimes(n, iteratee) {\\n    var index = -1, result = Array(n);\\n    while (++index < n) {\\n      result[index] = iteratee(index);\\n    }\\n    return result;\\n  }\\n  module.exports = baseTimes;\\n});\\n\\n// ../../../node_modules/lodash/isObjectLike.js\\nvar require_isObjectLike = __commonJS((exports, module) => {\\n  function isObjectLike(value) {\\n    return value != null && typeof value == \\\\\\\"object\\\\\\\";\\n  }\\n  module.exports = isObjectLike;\\n});\\n\\n// ../../../node_modules/lodash/_baseIsArguments.js\\nvar require_baseIsArguments = __commonJS((exports, module) => {\\n  var baseGetTag = require_baseGetTag();\\n  var isObjectLike = require_isObjectLike();\\n  var argsTag = \\\\\\\"[object Arguments]\\\\\\\";\\n  function baseIsArguments(value) {\\n    return isObjectLike(value) && baseGetTag(value) == argsTag;\\n  }\\n  module.exports = baseIsArguments;\\n});\\n\\n// ../../../node_modules/lodash/isArguments.js\\nvar require_isArguments = __commonJS((exports, module) => {\\n  var baseIsArguments = require_baseIsArguments();\\n  var isObjectLike = require_isObjectLike();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  var propertyIsEnumerable = objectProto.propertyIsEnumerable;\\n  var isArguments = baseIsArguments(function() {\\n    return arguments;\\n  }()) ? baseIsArguments : function(value) {\\n    return isObjectLike(value) && hasOwnProperty.call(value, \\\\\\\"callee\\\\\\\") && !propertyIsEnumerable.call(value, \\\\\\\"callee\\\\\\\");\\n  };\\n  module.exports = isArguments;\\n});\\n\\n// ../../../node_modules/lodash/isArray.js\\nvar require_isArray = __commonJS((exports, module) => {\\n  var isArray = Array.isArray;\\n  module.exports = isArray;\\n});\\n\\n// ../../../node_modules/lodash/stubFalse.js\\nvar require_stubFalse = __commonJS((exports, module) => {\\n  function stubFalse() {\\n    return false;\\n  }\\n  module.exports = stubFalse;\\n});\\n\\n// ../../../node_modules/lodash/isBuffer.js\\nvar require_isBuffer = __commonJS((exports, module) => {\\n  var root = require_root();\\n  var stubFalse = require_stubFalse();\\n  var freeExports = typeof exports == \\\\\\\"object\\\\\\\" && exports && !exports.nodeType && exports;\\n  var freeModule = freeExports && typeof module == \\\\\\\"object\\\\\\\" && module && !module.nodeType && module;\\n  var moduleExports = freeModule && freeModule.exports === freeExports;\\n  var Buffer2 = moduleExports ? root.Buffer : void 0;\\n  var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;\\n  var isBuffer = nativeIsBuffer || stubFalse;\\n  module.exports = isBuffer;\\n});\\n\\n// ../../../node_modules/lodash/_isIndex.js\\nvar require_isIndex = __commonJS((exports, module) => {\\n  var MAX_SAFE_INTEGER = 9007199254740991;\\n  var reIsUint = /^(?:0|[1-9]\\\\d*)$/;\\n  function isIndex(value, length) {\\n    var type = typeof value;\\n    length = length == null ? MAX_SAFE_INTEGER : length;\\n    return !!length && (type == \\\\\\\"number\\\\\\\" || type != \\\\\\\"symbol\\\\\\\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\\n  }\\n  module.exports = isIndex;\\n});\\n\\n// ../../../node_modules/lodash/isLength.js\\nvar require_isLength = __commonJS((exports, module) => {\\n  var MAX_SAFE_INTEGER = 9007199254740991;\\n  function isLength(value) {\\n    return typeof value == \\\\\\\"number\\\\\\\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\\n  }\\n  module.exports = isLength;\\n});\\n\\n// ../../../node_modules/lodash/_baseIsTypedArray.js\\nvar require_baseIsTypedArray = __commonJS((exports, module) => {\\n  var baseGetTag = require_baseGetTag();\\n  var isLength = require_isLength();\\n  var isObjectLike = require_isObjectLike();\\n  var argsTag = \\\\\\\"[object Arguments]\\\\\\\";\\n  var arrayTag = \\\\\\\"[object Array]\\\\\\\";\\n  var boolTag = \\\\\\\"[object Boolean]\\\\\\\";\\n  var dateTag = \\\\\\\"[object Date]\\\\\\\";\\n  var errorTag = \\\\\\\"[object Error]\\\\\\\";\\n  var funcTag = \\\\\\\"[object Function]\\\\\\\";\\n  var mapTag = \\\\\\\"[object Map]\\\\\\\";\\n  var numberTag = \\\\\\\"[object Number]\\\\\\\";\\n  var objectTag = \\\\\\\"[object Object]\\\\\\\";\\n  var regexpTag = \\\\\\\"[object RegExp]\\\\\\\";\\n  var setTag = \\\\\\\"[object Set]\\\\\\\";\\n  var stringTag = \\\\\\\"[object String]\\\\\\\";\\n  var weakMapTag = \\\\\\\"[object WeakMap]\\\\\\\";\\n  var arrayBufferTag = \\\\\\\"[object ArrayBuffer]\\\\\\\";\\n  var dataViewTag = \\\\\\\"[object DataView]\\\\\\\";\\n  var float32Tag = \\\\\\\"[object Float32Array]\\\\\\\";\\n  var float64Tag = \\\\\\\"[object Float64Array]\\\\\\\";\\n  var int8Tag = \\\\\\\"[object Int8Array]\\\\\\\";\\n  var int16Tag = \\\\\\\"[object Int16Array]\\\\\\\";\\n  var int32Tag = \\\\\\\"[object Int32Array]\\\\\\\";\\n  var uint8Tag = \\\\\\\"[object Uint8Array]\\\\\\\";\\n  var uint8ClampedTag = \\\\\\\"[object Uint8ClampedArray]\\\\\\\";\\n  var uint16Tag = \\\\\\\"[object Uint16Array]\\\\\\\";\\n  var uint32Tag = \\\\\\\"[object Uint32Array]\\\\\\\";\\n  var typedArrayTags = {};\\n  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\\n  typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\\n  function baseIsTypedArray(value) {\\n    return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\\n  }\\n  module.exports = baseIsTypedArray;\\n});\\n\\n// ../../../node_modules/lodash/_baseUnary.js\\nvar require_baseUnary = __commonJS((exports, module) => {\\n  function baseUnary(func) {\\n    return function(value) {\\n      return func(value);\\n    };\\n  }\\n  module.exports = baseUnary;\\n});\\n\\n// ../../../node_modules/lodash/_nodeUtil.js\\nvar require_nodeUtil = __commonJS((exports, module) => {\\n  var freeGlobal = require_freeGlobal();\\n  var freeExports = typeof exports == \\\\\\\"object\\\\\\\" && exports && !exports.nodeType && exports;\\n  var freeModule = freeExports && typeof module == \\\\\\\"object\\\\\\\" && module && !module.nodeType && module;\\n  var moduleExports = freeModule && freeModule.exports === freeExports;\\n  var freeProcess = moduleExports && freeGlobal.process;\\n  var nodeUtil = function() {\\n    try {\\n      var types = freeModule && freeModule.require && freeModule.require(\\\\\\\"util\\\\\\\").types;\\n      if (types) {\\n        return types;\\n      }\\n      return freeProcess && freeProcess.binding && freeProcess.binding(\\\\\\\"util\\\\\\\");\\n    } catch (e) {\\n    }\\n  }();\\n  module.exports = nodeUtil;\\n});\\n\\n// ../../../node_modules/lodash/isTypedArray.js\\nvar require_isTypedArray = __commonJS((exports, module) => {\\n  var baseIsTypedArray = require_baseIsTypedArray();\\n  var baseUnary = require_baseUnary();\\n  var nodeUtil = require_nodeUtil();\\n  var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\\n  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\\n  module.exports = isTypedArray;\\n});\\n\\n// ../../../node_modules/lodash/_arrayLikeKeys.js\\nvar require_arrayLikeKeys = __commonJS((exports, module) => {\\n  var baseTimes = require_baseTimes();\\n  var isArguments = require_isArguments();\\n  var isArray = require_isArray();\\n  var isBuffer = require_isBuffer();\\n  var isIndex = require_isIndex();\\n  var isTypedArray = require_isTypedArray();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function arrayLikeKeys(value, inherited) {\\n    var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;\\n    for (var key in value) {\\n      if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == \\\\\\\"length\\\\\\\" || isBuff && (key == \\\\\\\"offset\\\\\\\" || key == \\\\\\\"parent\\\\\\\") || isType && (key == \\\\\\\"buffer\\\\\\\" || key == \\\\\\\"byteLength\\\\\\\" || key == \\\\\\\"byteOffset\\\\\\\") || isIndex(key, length)))) {\\n        result.push(key);\\n      }\\n    }\\n    return result;\\n  }\\n  module.exports = arrayLikeKeys;\\n});\\n\\n// ../../../node_modules/lodash/_isPrototype.js\\nvar require_isPrototype = __commonJS((exports, module) => {\\n  var objectProto = Object.prototype;\\n  function isPrototype(value) {\\n    var Ctor = value && value.constructor, proto = typeof Ctor == \\\\\\\"function\\\\\\\" && Ctor.prototype || objectProto;\\n    return value === proto;\\n  }\\n  module.exports = isPrototype;\\n});\\n\\n// ../../../node_modules/lodash/_overArg.js\\nvar require_overArg = __commonJS((exports, module) => {\\n  function overArg(func, transform) {\\n    return function(arg) {\\n      return func(transform(arg));\\n    };\\n  }\\n  module.exports = overArg;\\n});\\n\\n// ../../../node_modules/lodash/_nativeKeys.js\\nvar require_nativeKeys = __commonJS((exports, module) => {\\n  var overArg = require_overArg();\\n  var nativeKeys = overArg(Object.keys, Object);\\n  module.exports = nativeKeys;\\n});\\n\\n// ../../../node_modules/lodash/_baseKeys.js\\nvar require_baseKeys = __commonJS((exports, module) => {\\n  var isPrototype = require_isPrototype();\\n  var nativeKeys = require_nativeKeys();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function baseKeys(object) {\\n    if (!isPrototype(object)) {\\n      return nativeKeys(object);\\n    }\\n    var result = [];\\n    for (var key in Object(object)) {\\n      if (hasOwnProperty.call(object, key) && key != \\\\\\\"constructor\\\\\\\") {\\n        result.push(key);\\n      }\\n    }\\n    return result;\\n  }\\n  module.exports = baseKeys;\\n});\\n\\n// ../../../node_modules/lodash/isArrayLike.js\\nvar require_isArrayLike = __commonJS((exports, module) => {\\n  var isFunction = require_isFunction();\\n  var isLength = require_isLength();\\n  function isArrayLike(value) {\\n    return value != null && isLength(value.length) && !isFunction(value);\\n  }\\n  module.exports = isArrayLike;\\n});\\n\\n// ../../../node_modules/lodash/keys.js\\nvar require_keys = __commonJS((exports, module) => {\\n  var arrayLikeKeys = require_arrayLikeKeys();\\n  var baseKeys = require_baseKeys();\\n  var isArrayLike = require_isArrayLike();\\n  function keys(object) {\\n    return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\\n  }\\n  module.exports = keys;\\n});\\n\\n// ../../../node_modules/lodash/_baseAssign.js\\nvar require_baseAssign = __commonJS((exports, module) => {\\n  var copyObject = require_copyObject();\\n  var keys = require_keys();\\n  function baseAssign(object, source) {\\n    return object && copyObject(source, keys(source), object);\\n  }\\n  module.exports = baseAssign;\\n});\\n\\n// ../../../node_modules/lodash/_nativeKeysIn.js\\nvar require_nativeKeysIn = __commonJS((exports, module) => {\\n  function nativeKeysIn(object) {\\n    var result = [];\\n    if (object != null) {\\n      for (var key in Object(object)) {\\n        result.push(key);\\n      }\\n    }\\n    return result;\\n  }\\n  module.exports = nativeKeysIn;\\n});\\n\\n// ../../../node_modules/lodash/_baseKeysIn.js\\nvar require_baseKeysIn = __commonJS((exports, module) => {\\n  var isObject = require_isObject();\\n  var isPrototype = require_isPrototype();\\n  var nativeKeysIn = require_nativeKeysIn();\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function baseKeysIn(object) {\\n    if (!isObject(object)) {\\n      return nativeKeysIn(object);\\n    }\\n    var isProto = isPrototype(object), result = [];\\n    for (var key in object) {\\n      if (!(key == \\\\\\\"constructor\\\\\\\" && (isProto || !hasOwnProperty.call(object, key)))) {\\n        result.push(key);\\n      }\\n    }\\n    return result;\\n  }\\n  module.exports = baseKeysIn;\\n});\\n\\n// ../../../node_modules/lodash/keysIn.js\\nvar require_keysIn = __commonJS((exports, module) => {\\n  var arrayLikeKeys = require_arrayLikeKeys();\\n  var baseKeysIn = require_baseKeysIn();\\n  var isArrayLike = require_isArrayLike();\\n  function keysIn(object) {\\n    return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\\n  }\\n  module.exports = keysIn;\\n});\\n\\n// ../../../node_modules/lodash/_baseAssignIn.js\\nvar require_baseAssignIn = __commonJS((exports, module) => {\\n  var copyObject = require_copyObject();\\n  var keysIn = require_keysIn();\\n  function baseAssignIn(object, source) {\\n    return object && copyObject(source, keysIn(source), object);\\n  }\\n  module.exports = baseAssignIn;\\n});\\n\\n// ../../../node_modules/lodash/_cloneBuffer.js\\nvar require_cloneBuffer = __commonJS((exports, module) => {\\n  var root = require_root();\\n  var freeExports = typeof exports == \\\\\\\"object\\\\\\\" && exports && !exports.nodeType && exports;\\n  var freeModule = freeExports && typeof module == \\\\\\\"object\\\\\\\" && module && !module.nodeType && module;\\n  var moduleExports = freeModule && freeModule.exports === freeExports;\\n  var Buffer2 = moduleExports ? root.Buffer : void 0;\\n  var allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0;\\n  function cloneBuffer(buffer, isDeep) {\\n    if (isDeep) {\\n      return buffer.slice();\\n    }\\n    var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\\n    buffer.copy(result);\\n    return result;\\n  }\\n  module.exports = cloneBuffer;\\n});\\n\\n// ../../../node_modules/lodash/_copyArray.js\\nvar require_copyArray = __commonJS((exports, module) => {\\n  function copyArray2(source, array) {\\n    var index = -1, length = source.length;\\n    array || (array = Array(length));\\n    while (++index < length) {\\n      array[index] = source[index];\\n    }\\n    return array;\\n  }\\n  module.exports = copyArray2;\\n});\\n\\n// ../../../node_modules/lodash/_arrayFilter.js\\nvar require_arrayFilter = __commonJS((exports, module) => {\\n  function arrayFilter(array, predicate) {\\n    var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\\n    while (++index < length) {\\n      var value = array[index];\\n      if (predicate(value, index, array)) {\\n        result[resIndex++] = value;\\n      }\\n    }\\n    return result;\\n  }\\n  module.exports = arrayFilter;\\n});\\n\\n// ../../../node_modules/lodash/stubArray.js\\nvar require_stubArray = __commonJS((exports, module) => {\\n  function stubArray() {\\n    return [];\\n  }\\n  module.exports = stubArray;\\n});\\n\\n// ../../../node_modules/lodash/_getSymbols.js\\nvar require_getSymbols = __commonJS((exports, module) => {\\n  var arrayFilter = require_arrayFilter();\\n  var stubArray = require_stubArray();\\n  var objectProto = Object.prototype;\\n  var propertyIsEnumerable = objectProto.propertyIsEnumerable;\\n  var nativeGetSymbols = Object.getOwnPropertySymbols;\\n  var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\\n    if (object == null) {\\n      return [];\\n    }\\n    object = Object(object);\\n    return arrayFilter(nativeGetSymbols(object), function(symbol) {\\n      return propertyIsEnumerable.call(object, symbol);\\n    });\\n  };\\n  module.exports = getSymbols;\\n});\\n\\n// ../../../node_modules/lodash/_copySymbols.js\\nvar require_copySymbols = __commonJS((exports, module) => {\\n  var copyObject = require_copyObject();\\n  var getSymbols = require_getSymbols();\\n  function copySymbols(source, object) {\\n    return copyObject(source, getSymbols(source), object);\\n  }\\n  module.exports = copySymbols;\\n});\\n\\n// ../../../node_modules/lodash/_arrayPush.js\\nvar require_arrayPush = __commonJS((exports, module) => {\\n  function arrayPush(array, values) {\\n    var index = -1, length = values.length, offset = array.length;\\n    while (++index < length) {\\n      array[offset + index] = values[index];\\n    }\\n    return array;\\n  }\\n  module.exports = arrayPush;\\n});\\n\\n// ../../../node_modules/lodash/_getPrototype.js\\nvar require_getPrototype = __commonJS((exports, module) => {\\n  var overArg = require_overArg();\\n  var getPrototype = overArg(Object.getPrototypeOf, Object);\\n  module.exports = getPrototype;\\n});\\n\\n// ../../../node_modules/lodash/_getSymbolsIn.js\\nvar require_getSymbolsIn = __commonJS((exports, module) => {\\n  var arrayPush = require_arrayPush();\\n  var getPrototype = require_getPrototype();\\n  var getSymbols = require_getSymbols();\\n  var stubArray = require_stubArray();\\n  var nativeGetSymbols = Object.getOwnPropertySymbols;\\n  var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\\n    var result = [];\\n    while (object) {\\n      arrayPush(result, getSymbols(object));\\n      object = getPrototype(object);\\n    }\\n    return result;\\n  };\\n  module.exports = getSymbolsIn;\\n});\\n\\n// ../../../node_modules/lodash/_copySymbolsIn.js\\nvar require_copySymbolsIn = __commonJS((exports, module) => {\\n  var copyObject = require_copyObject();\\n  var getSymbolsIn = require_getSymbolsIn();\\n  function copySymbolsIn(source, object) {\\n    return copyObject(source, getSymbolsIn(source), object);\\n  }\\n  module.exports = copySymbolsIn;\\n});\\n\\n// ../../../node_modules/lodash/_baseGetAllKeys.js\\nvar require_baseGetAllKeys = __commonJS((exports, module) => {\\n  var arrayPush = require_arrayPush();\\n  var isArray = require_isArray();\\n  function baseGetAllKeys(object, keysFunc, symbolsFunc) {\\n    var result = keysFunc(object);\\n    return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\\n  }\\n  module.exports = baseGetAllKeys;\\n});\\n\\n// ../../../node_modules/lodash/_getAllKeys.js\\nvar require_getAllKeys = __commonJS((exports, module) => {\\n  var baseGetAllKeys = require_baseGetAllKeys();\\n  var getSymbols = require_getSymbols();\\n  var keys = require_keys();\\n  function getAllKeys(object) {\\n    return baseGetAllKeys(object, keys, getSymbols);\\n  }\\n  module.exports = getAllKeys;\\n});\\n\\n// ../../../node_modules/lodash/_getAllKeysIn.js\\nvar require_getAllKeysIn = __commonJS((exports, module) => {\\n  var baseGetAllKeys = require_baseGetAllKeys();\\n  var getSymbolsIn = require_getSymbolsIn();\\n  var keysIn = require_keysIn();\\n  function getAllKeysIn(object) {\\n    return baseGetAllKeys(object, keysIn, getSymbolsIn);\\n  }\\n  module.exports = getAllKeysIn;\\n});\\n\\n// ../../../node_modules/lodash/_DataView.js\\nvar require_DataView = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var root = require_root();\\n  var DataView = getNative(root, \\\\\\\"DataView\\\\\\\");\\n  module.exports = DataView;\\n});\\n\\n// ../../../node_modules/lodash/_Promise.js\\nvar require_Promise = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var root = require_root();\\n  var Promise2 = getNative(root, \\\\\\\"Promise\\\\\\\");\\n  module.exports = Promise2;\\n});\\n\\n// ../../../node_modules/lodash/_Set.js\\nvar require_Set = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var root = require_root();\\n  var Set2 = getNative(root, \\\\\\\"Set\\\\\\\");\\n  module.exports = Set2;\\n});\\n\\n// ../../../node_modules/lodash/_WeakMap.js\\nvar require_WeakMap = __commonJS((exports, module) => {\\n  var getNative = require_getNative();\\n  var root = require_root();\\n  var WeakMap2 = getNative(root, \\\\\\\"WeakMap\\\\\\\");\\n  module.exports = WeakMap2;\\n});\\n\\n// ../../../node_modules/lodash/_getTag.js\\nvar require_getTag = __commonJS((exports, module) => {\\n  var DataView = require_DataView();\\n  var Map2 = require_Map();\\n  var Promise2 = require_Promise();\\n  var Set2 = require_Set();\\n  var WeakMap2 = require_WeakMap();\\n  var baseGetTag = require_baseGetTag();\\n  var toSource = require_toSource();\\n  var mapTag = \\\\\\\"[object Map]\\\\\\\";\\n  var objectTag = \\\\\\\"[object Object]\\\\\\\";\\n  var promiseTag = \\\\\\\"[object Promise]\\\\\\\";\\n  var setTag = \\\\\\\"[object Set]\\\\\\\";\\n  var weakMapTag = \\\\\\\"[object WeakMap]\\\\\\\";\\n  var dataViewTag = \\\\\\\"[object DataView]\\\\\\\";\\n  var dataViewCtorString = toSource(DataView);\\n  var mapCtorString = toSource(Map2);\\n  var promiseCtorString = toSource(Promise2);\\n  var setCtorString = toSource(Set2);\\n  var weakMapCtorString = toSource(WeakMap2);\\n  var getTag = baseGetTag;\\n  if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {\\n    getTag = function(value) {\\n      var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : \\\\\\\"\\\\\\\";\\n      if (ctorString) {\\n        switch (ctorString) {\\n          case dataViewCtorString:\\n            return dataViewTag;\\n          case mapCtorString:\\n            return mapTag;\\n          case promiseCtorString:\\n            return promiseTag;\\n          case setCtorString:\\n            return setTag;\\n          case weakMapCtorString:\\n            return weakMapTag;\\n        }\\n      }\\n      return result;\\n    };\\n  }\\n  module.exports = getTag;\\n});\\n\\n// ../../../node_modules/lodash/_initCloneArray.js\\nvar require_initCloneArray = __commonJS((exports, module) => {\\n  var objectProto = Object.prototype;\\n  var hasOwnProperty = objectProto.hasOwnProperty;\\n  function initCloneArray(array) {\\n    var length = array.length, result = new array.constructor(length);\\n    if (length && typeof array[0] == \\\\\\\"string\\\\\\\" && hasOwnProperty.call(array, \\\\\\\"index\\\\\\\")) {\\n      result.index = array.index;\\n      result.input = array.input;\\n    }\\n    return result;\\n  }\\n  module.exports = initCloneArray;\\n});\\n\\n// ../../../node_modules/lodash/_Uint8Array.js\\nvar require_Uint8Array = __commonJS((exports, module) => {\\n  var root = require_root();\\n  var Uint8Array2 = root.Uint8Array;\\n  module.exports = Uint8Array2;\\n});\\n\\n// ../../../node_modules/lodash/_cloneArrayBuffer.js\\nvar require_cloneArrayBuffer = __commonJS((exports, module) => {\\n  var Uint8Array2 = require_Uint8Array();\\n  function cloneArrayBuffer(arrayBuffer) {\\n    var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\\n    new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));\\n    return result;\\n  }\\n  module.exports = cloneArrayBuffer;\\n});\\n\\n// ../../../node_modules/lodash/_cloneDataView.js\\nvar require_cloneDataView = __commonJS((exports, module) => {\\n  var cloneArrayBuffer = require_cloneArrayBuffer();\\n  function cloneDataView(dataView, isDeep) {\\n    var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\\n    return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\\n  }\\n  module.exports = cloneDataView;\\n});\\n\\n// ../../../node_modules/lodash/_cloneRegExp.js\\nvar require_cloneRegExp = __commonJS((exports, module) => {\\n  var reFlags = /\\\\w*$/;\\n  function cloneRegExp(regexp) {\\n    var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\\n    result.lastIndex = regexp.lastIndex;\\n    return result;\\n  }\\n  module.exports = cloneRegExp;\\n});\\n\\n// ../../../node_modules/lodash/_cloneSymbol.js\\nvar require_cloneSymbol = __commonJS((exports, module) => {\\n  var Symbol2 = require_Symbol();\\n  var symbolProto = Symbol2 ? Symbol2.prototype : void 0;\\n  var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;\\n  function cloneSymbol(symbol) {\\n    return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\\n  }\\n  module.exports = cloneSymbol;\\n});\\n\\n// ../../../node_modules/lodash/_cloneTypedArray.js\\nvar require_cloneTypedArray = __commonJS((exports, module) => {\\n  var cloneArrayBuffer = require_cloneArrayBuffer();\\n  function cloneTypedArray(typedArray, isDeep) {\\n    var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\\n    return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\\n  }\\n  module.exports = cloneTypedArray;\\n});\\n\\n// ../../../node_modules/lodash/_initCloneByTag.js\\nvar require_initCloneByTag = __commonJS((exports, module) => {\\n  var cloneArrayBuffer = require_cloneArrayBuffer();\\n  var cloneDataView = require_cloneDataView();\\n  var cloneRegExp = require_cloneRegExp();\\n  var cloneSymbol = require_cloneSymbol();\\n  var cloneTypedArray = require_cloneTypedArray();\\n  var boolTag = \\\\\\\"[object Boolean]\\\\\\\";\\n  var dateTag = \\\\\\\"[object Date]\\\\\\\";\\n  var mapTag = \\\\\\\"[object Map]\\\\\\\";\\n  var numberTag = \\\\\\\"[object Number]\\\\\\\";\\n  var regexpTag = \\\\\\\"[object RegExp]\\\\\\\";\\n  var setTag = \\\\\\\"[object Set]\\\\\\\";\\n  var stringTag = \\\\\\\"[object String]\\\\\\\";\\n  var symbolTag = \\\\\\\"[object Symbol]\\\\\\\";\\n  var arrayBufferTag = \\\\\\\"[object ArrayBuffer]\\\\\\\";\\n  var dataViewTag = \\\\\\\"[object DataView]\\\\\\\";\\n  var float32Tag = \\\\\\\"[object Float32Array]\\\\\\\";\\n  var float64Tag = \\\\\\\"[object Float64Array]\\\\\\\";\\n  var int8Tag = \\\\\\\"[object Int8Array]\\\\\\\";\\n  var int16Tag = \\\\\\\"[object Int16Array]\\\\\\\";\\n  var int32Tag = \\\\\\\"[object Int32Array]\\\\\\\";\\n  var uint8Tag = \\\\\\\"[object Uint8Array]\\\\\\\";\\n  var uint8ClampedTag = \\\\\\\"[object Uint8ClampedArray]\\\\\\\";\\n  var uint16Tag = \\\\\\\"[object Uint16Array]\\\\\\\";\\n  var uint32Tag = \\\\\\\"[object Uint32Array]\\\\\\\";\\n  function initCloneByTag(object, tag, isDeep) {\\n    var Ctor = object.constructor;\\n    switch (tag) {\\n      case arrayBufferTag:\\n        return cloneArrayBuffer(object);\\n      case boolTag:\\n      case dateTag:\\n        return new Ctor(+object);\\n      case dataViewTag:\\n        return cloneDataView(object, isDeep);\\n      case float32Tag:\\n      case float64Tag:\\n      case int8Tag:\\n      case int16Tag:\\n      case int32Tag:\\n      case uint8Tag:\\n      case uint8ClampedTag:\\n      case uint16Tag:\\n      case uint32Tag:\\n        return cloneTypedArray(object, isDeep);\\n      case mapTag:\\n        return new Ctor();\\n      case numberTag:\\n      case stringTag:\\n        return new Ctor(object);\\n      case regexpTag:\\n        return cloneRegExp(object);\\n      case setTag:\\n        return new Ctor();\\n      case symbolTag:\\n        return cloneSymbol(object);\\n    }\\n  }\\n  module.exports = initCloneByTag;\\n});\\n\\n// ../../../node_modules/lodash/_baseCreate.js\\nvar require_baseCreate = __commonJS((exports, module) => {\\n  var isObject = require_isObject();\\n  var objectCreate = Object.create;\\n  var baseCreate = function() {\\n    function object() {\\n    }\\n    return function(proto) {\\n      if (!isObject(proto)) {\\n        return {};\\n      }\\n      if (objectCreate) {\\n        return objectCreate(proto);\\n      }\\n      object.prototype = proto;\\n      var result = new object();\\n      object.prototype = void 0;\\n      return result;\\n    };\\n  }();\\n  module.exports = baseCreate;\\n});\\n\\n// ../../../node_modules/lodash/_initCloneObject.js\\nvar require_initCloneObject = __commonJS((exports, module) => {\\n  var baseCreate = require_baseCreate();\\n  var getPrototype = require_getPrototype();\\n  var isPrototype = require_isPrototype();\\n  function initCloneObject(object) {\\n    return typeof object.constructor == \\\\\\\"function\\\\\\\" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\\n  }\\n  module.exports = initCloneObject;\\n});\\n\\n// ../../../node_modules/lodash/_baseIsMap.js\\nvar require_baseIsMap = __commonJS((exports, module) => {\\n  var getTag = require_getTag();\\n  var isObjectLike = require_isObjectLike();\\n  var mapTag = \\\\\\\"[object Map]\\\\\\\";\\n  function baseIsMap(value) {\\n    return isObjectLike(value) && getTag(value) == mapTag;\\n  }\\n  module.exports = baseIsMap;\\n});\\n\\n// ../../../node_modules/lodash/isMap.js\\nvar require_isMap = __commonJS((exports, module) => {\\n  var baseIsMap = require_baseIsMap();\\n  var baseUnary = require_baseUnary();\\n  var nodeUtil = require_nodeUtil();\\n  var nodeIsMap = nodeUtil && nodeUtil.isMap;\\n  var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\\n  module.exports = isMap;\\n});\\n\\n// ../../../node_modules/lodash/_baseIsSet.js\\nvar require_baseIsSet = __commonJS((exports, module) => {\\n  var getTag = require_getTag();\\n  var isObjectLike = require_isObjectLike();\\n  var setTag = \\\\\\\"[object Set]\\\\\\\";\\n  function baseIsSet(value) {\\n    return isObjectLike(value) && getTag(value) == setTag;\\n  }\\n  module.exports = baseIsSet;\\n});\\n\\n// ../../../node_modules/lodash/isSet.js\\nvar require_isSet = __commonJS((exports, module) => {\\n  var baseIsSet = require_baseIsSet();\\n  var baseUnary = require_baseUnary();\\n  var nodeUtil = require_nodeUtil();\\n  var nodeIsSet = nodeUtil && nodeUtil.isSet;\\n  var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\\n  module.exports = isSet;\\n});\\n\\n// ../../../node_modules/lodash/_baseClone.js\\nvar require_baseClone = __commonJS((exports, module) => {\\n  var Stack = require_Stack();\\n  var arrayEach = require_arrayEach();\\n  var assignValue = require_assignValue();\\n  var baseAssign = require_baseAssign();\\n  var baseAssignIn = require_baseAssignIn();\\n  var cloneBuffer = require_cloneBuffer();\\n  var copyArray2 = require_copyArray();\\n  var copySymbols = require_copySymbols();\\n  var copySymbolsIn = require_copySymbolsIn();\\n  var getAllKeys = require_getAllKeys();\\n  var getAllKeysIn = require_getAllKeysIn();\\n  var getTag = require_getTag();\\n  var initCloneArray = require_initCloneArray();\\n  var initCloneByTag = require_initCloneByTag();\\n  var initCloneObject = require_initCloneObject();\\n  var isArray = require_isArray();\\n  var isBuffer = require_isBuffer();\\n  var isMap = require_isMap();\\n  var isObject = require_isObject();\\n  var isSet = require_isSet();\\n  var keys = require_keys();\\n  var keysIn = require_keysIn();\\n  var CLONE_DEEP_FLAG = 1;\\n  var CLONE_FLAT_FLAG = 2;\\n  var CLONE_SYMBOLS_FLAG = 4;\\n  var argsTag = \\\\\\\"[object Arguments]\\\\\\\";\\n  var arrayTag = \\\\\\\"[object Array]\\\\\\\";\\n  var boolTag = \\\\\\\"[object Boolean]\\\\\\\";\\n  var dateTag = \\\\\\\"[object Date]\\\\\\\";\\n  var errorTag = \\\\\\\"[object Error]\\\\\\\";\\n  var funcTag = \\\\\\\"[object Function]\\\\\\\";\\n  var genTag = \\\\\\\"[object GeneratorFunction]\\\\\\\";\\n  var mapTag = \\\\\\\"[object Map]\\\\\\\";\\n  var numberTag = \\\\\\\"[object Number]\\\\\\\";\\n  var objectTag = \\\\\\\"[object Object]\\\\\\\";\\n  var regexpTag = \\\\\\\"[object RegExp]\\\\\\\";\\n  var setTag = \\\\\\\"[object Set]\\\\\\\";\\n  var stringTag = \\\\\\\"[object String]\\\\\\\";\\n  var symbolTag = \\\\\\\"[object Symbol]\\\\\\\";\\n  var weakMapTag = \\\\\\\"[object WeakMap]\\\\\\\";\\n  var arrayBufferTag = \\\\\\\"[object ArrayBuffer]\\\\\\\";\\n  var dataViewTag = \\\\\\\"[object DataView]\\\\\\\";\\n  var float32Tag = \\\\\\\"[object Float32Array]\\\\\\\";\\n  var float64Tag = \\\\\\\"[object Float64Array]\\\\\\\";\\n  var int8Tag = \\\\\\\"[object Int8Array]\\\\\\\";\\n  var int16Tag = \\\\\\\"[object Int16Array]\\\\\\\";\\n  var int32Tag = \\\\\\\"[object Int32Array]\\\\\\\";\\n  var uint8Tag = \\\\\\\"[object Uint8Array]\\\\\\\";\\n  var uint8ClampedTag = \\\\\\\"[object Uint8ClampedArray]\\\\\\\";\\n  var uint16Tag = \\\\\\\"[object Uint16Array]\\\\\\\";\\n  var uint32Tag = \\\\\\\"[object Uint32Array]\\\\\\\";\\n  var cloneableTags = {};\\n  cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\\n  cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\\n  function baseClone(value, bitmask, customizer, key, object, stack) {\\n    var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;\\n    if (customizer) {\\n      result = object ? customizer(value, key, object, stack) : customizer(value);\\n    }\\n    if (result !== void 0) {\\n      return result;\\n    }\\n    if (!isObject(value)) {\\n      return value;\\n    }\\n    var isArr = isArray(value);\\n    if (isArr) {\\n      result = initCloneArray(value);\\n      if (!isDeep) {\\n        return copyArray2(value, result);\\n      }\\n    } else {\\n      var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;\\n      if (isBuffer(value)) {\\n        return cloneBuffer(value, isDeep);\\n      }\\n      if (tag == objectTag || tag == argsTag || isFunc && !object) {\\n        result = isFlat || isFunc ? {} : initCloneObject(value);\\n        if (!isDeep) {\\n          return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\\n        }\\n      } else {\\n        if (!cloneableTags[tag]) {\\n          return object ? value : {};\\n        }\\n        result = initCloneByTag(value, tag, isDeep);\\n      }\\n    }\\n    stack || (stack = new Stack());\\n    var stacked = stack.get(value);\\n    if (stacked) {\\n      return stacked;\\n    }\\n    stack.set(value, result);\\n    if (isSet(value)) {\\n      value.forEach(function(subValue) {\\n        result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\\n      });\\n    } else if (isMap(value)) {\\n      value.forEach(function(subValue, key2) {\\n        result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\\n      });\\n    }\\n    var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\\n    var props = isArr ? void 0 : keysFunc(value);\\n    arrayEach(props || value, function(subValue, key2) {\\n      if (props) {\\n        key2 = subValue;\\n        subValue = value[key2];\\n      }\\n      assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\\n    });\\n    return result;\\n  }\\n  module.exports = baseClone;\\n});\\n\\n// ../../../node_modules/lodash/cloneDeep.js\\nvar require_cloneDeep = __commonJS((exports, module) => {\\n  var baseClone = require_baseClone();\\n  var CLONE_DEEP_FLAG = 1;\\n  var CLONE_SYMBOLS_FLAG = 4;\\n  function cloneDeep(value) {\\n    return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\\n  }\\n  module.exports = cloneDeep;\\n});\\n\\n// ../../../node_modules/lodash/clone.js\\nvar require_clone = __commonJS((exports, module) => {\\n  var baseClone = require_baseClone();\\n  var CLONE_SYMBOLS_FLAG = 4;\\n  function clone(value) {\\n    return baseClone(value, CLONE_SYMBOLS_FLAG);\\n  }\\n  module.exports = clone;\\n});\\n\\n// ../../../node_modules/jsep/build/jsep.js\\nvar require_jsep = __commonJS((exports, module) => {\\n  (function(root) {\\n    \\\\\\\"use strict\\\\\\\";\\n    var COMPOUND = \\\\\\\"Compound\\\\\\\", IDENTIFIER = \\\\\\\"Identifier\\\\\\\", MEMBER_EXP = \\\\\\\"MemberExpression\\\\\\\", LITERAL = \\\\\\\"Literal\\\\\\\", THIS_EXP = \\\\\\\"ThisExpression\\\\\\\", CALL_EXP = \\\\\\\"CallExpression\\\\\\\", UNARY_EXP = \\\\\\\"UnaryExpression\\\\\\\", BINARY_EXP = \\\\\\\"BinaryExpression\\\\\\\", LOGICAL_EXP = \\\\\\\"LogicalExpression\\\\\\\", CONDITIONAL_EXP = \\\\\\\"ConditionalExpression\\\\\\\", ARRAY_EXP = \\\\\\\"ArrayExpression\\\\\\\", PERIOD_CODE = 46, COMMA_CODE = 44, SQUOTE_CODE = 39, DQUOTE_CODE = 34, OPAREN_CODE = 40, CPAREN_CODE = 41, OBRACK_CODE = 91, CBRACK_CODE = 93, QUMARK_CODE = 63, SEMCOL_CODE = 59, COLON_CODE = 58, throwError = function(message, index) {\\n      var error = new Error(message + \\\\\\\" at character \\\\\\\" + index);\\n      error.index = index;\\n      error.description = message;\\n      throw error;\\n    }, t = true, unary_ops = {\\\\\\\"-\\\\\\\": t, \\\\\\\"!\\\\\\\": t, \\\\\\\"~\\\\\\\": t, \\\\\\\"+\\\\\\\": t}, binary_ops = {\\n      \\\\\\\"||\\\\\\\": 1,\\n      \\\\\\\"&&\\\\\\\": 2,\\n      \\\\\\\"|\\\\\\\": 3,\\n      \\\\\\\"^\\\\\\\": 4,\\n      \\\\\\\"&\\\\\\\": 5,\\n      \\\\\\\"==\\\\\\\": 6,\\n      \\\\\\\"!=\\\\\\\": 6,\\n      \\\\\\\"===\\\\\\\": 6,\\n      \\\\\\\"!==\\\\\\\": 6,\\n      \\\\\\\"<\\\\\\\": 7,\\n      \\\\\\\">\\\\\\\": 7,\\n      \\\\\\\"<=\\\\\\\": 7,\\n      \\\\\\\">=\\\\\\\": 7,\\n      \\\\\\\"<<\\\\\\\": 8,\\n      \\\\\\\">>\\\\\\\": 8,\\n      \\\\\\\">>>\\\\\\\": 8,\\n      \\\\\\\"+\\\\\\\": 9,\\n      \\\\\\\"-\\\\\\\": 9,\\n      \\\\\\\"*\\\\\\\": 10,\\n      \\\\\\\"/\\\\\\\": 10,\\n      \\\\\\\"%\\\\\\\": 10\\n    }, getMaxKeyLen = function(obj) {\\n      var max_len = 0, len;\\n      for (var key in obj) {\\n        if ((len = key.length) > max_len && obj.hasOwnProperty(key)) {\\n          max_len = len;\\n        }\\n      }\\n      return max_len;\\n    }, max_unop_len = getMaxKeyLen(unary_ops), max_binop_len = getMaxKeyLen(binary_ops), literals = {\\n      true: true,\\n      false: false,\\n      null: null\\n    }, this_str = \\\\\\\"this\\\\\\\", binaryPrecedence = function(op_val) {\\n      return binary_ops[op_val] || 0;\\n    }, createBinaryExpression = function(operator, left, right) {\\n      var type = operator === \\\\\\\"||\\\\\\\" || operator === \\\\\\\"&&\\\\\\\" ? LOGICAL_EXP : BINARY_EXP;\\n      return {\\n        type,\\n        operator,\\n        left,\\n        right\\n      };\\n    }, isDecimalDigit = function(ch) {\\n      return ch >= 48 && ch <= 57;\\n    }, isIdentifierStart = function(ch) {\\n      return ch === 36 || ch === 95 || ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 128 && !binary_ops[String.fromCharCode(ch)];\\n    }, isIdentifierPart = function(ch) {\\n      return ch === 36 || ch === 95 || ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch >= 128 && !binary_ops[String.fromCharCode(ch)];\\n    }, jsep2 = function(expr) {\\n      var index = 0, charAtFunc = expr.charAt, charCodeAtFunc = expr.charCodeAt, exprI = function(i) {\\n        return charAtFunc.call(expr, i);\\n      }, exprICode = function(i) {\\n        return charCodeAtFunc.call(expr, i);\\n      }, length = expr.length, gobbleSpaces = function() {\\n        var ch = exprICode(index);\\n        while (ch === 32 || ch === 9 || ch === 10 || ch === 13) {\\n          ch = exprICode(++index);\\n        }\\n      }, gobbleExpression = function() {\\n        var test = gobbleBinaryExpression(), consequent, alternate;\\n        gobbleSpaces();\\n        if (exprICode(index) === QUMARK_CODE) {\\n          index++;\\n          consequent = gobbleExpression();\\n          if (!consequent) {\\n            throwError(\\\\\\\"Expected expression\\\\\\\", index);\\n          }\\n          gobbleSpaces();\\n          if (exprICode(index) === COLON_CODE) {\\n            index++;\\n            alternate = gobbleExpression();\\n            if (!alternate) {\\n              throwError(\\\\\\\"Expected expression\\\\\\\", index);\\n            }\\n            return {\\n              type: CONDITIONAL_EXP,\\n              test,\\n              consequent,\\n              alternate\\n            };\\n          } else {\\n            throwError(\\\\\\\"Expected :\\\\\\\", index);\\n          }\\n        } else {\\n          return test;\\n        }\\n      }, gobbleBinaryOp = function() {\\n        gobbleSpaces();\\n        var biop, to_check = expr.substr(index, max_binop_len), tc_len = to_check.length;\\n        while (tc_len > 0) {\\n          if (binary_ops.hasOwnProperty(to_check) && (!isIdentifierStart(exprICode(index)) || index + to_check.length < expr.length && !isIdentifierPart(exprICode(index + to_check.length)))) {\\n            index += tc_len;\\n            return to_check;\\n          }\\n          to_check = to_check.substr(0, --tc_len);\\n        }\\n        return false;\\n      }, gobbleBinaryExpression = function() {\\n        var ch_i2, node2, biop, prec, stack, biop_info, left, right, i, cur_biop;\\n        left = gobbleToken();\\n        biop = gobbleBinaryOp();\\n        if (!biop) {\\n          return left;\\n        }\\n        biop_info = {value: biop, prec: binaryPrecedence(biop)};\\n        right = gobbleToken();\\n        if (!right) {\\n          throwError(\\\\\\\"Expected expression after \\\\\\\" + biop, index);\\n        }\\n        stack = [left, biop_info, right];\\n        while (biop = gobbleBinaryOp()) {\\n          prec = binaryPrecedence(biop);\\n          if (prec === 0) {\\n            break;\\n          }\\n          biop_info = {value: biop, prec};\\n          cur_biop = biop;\\n          while (stack.length > 2 && prec <= stack[stack.length - 2].prec) {\\n            right = stack.pop();\\n            biop = stack.pop().value;\\n            left = stack.pop();\\n            node2 = createBinaryExpression(biop, left, right);\\n            stack.push(node2);\\n          }\\n          node2 = gobbleToken();\\n          if (!node2) {\\n            throwError(\\\\\\\"Expected expression after \\\\\\\" + cur_biop, index);\\n          }\\n          stack.push(biop_info, node2);\\n        }\\n        i = stack.length - 1;\\n        node2 = stack[i];\\n        while (i > 1) {\\n          node2 = createBinaryExpression(stack[i - 1].value, stack[i - 2], node2);\\n          i -= 2;\\n        }\\n        return node2;\\n      }, gobbleToken = function() {\\n        var ch, to_check, tc_len;\\n        gobbleSpaces();\\n        ch = exprICode(index);\\n        if (isDecimalDigit(ch) || ch === PERIOD_CODE) {\\n          return gobbleNumericLiteral();\\n        } else if (ch === SQUOTE_CODE || ch === DQUOTE_CODE) {\\n          return gobbleStringLiteral();\\n        } else if (ch === OBRACK_CODE) {\\n          return gobbleArray();\\n        } else {\\n          to_check = expr.substr(index, max_unop_len);\\n          tc_len = to_check.length;\\n          while (tc_len > 0) {\\n            if (unary_ops.hasOwnProperty(to_check) && (!isIdentifierStart(exprICode(index)) || index + to_check.length < expr.length && !isIdentifierPart(exprICode(index + to_check.length)))) {\\n              index += tc_len;\\n              return {\\n                type: UNARY_EXP,\\n                operator: to_check,\\n                argument: gobbleToken(),\\n                prefix: true\\n              };\\n            }\\n            to_check = to_check.substr(0, --tc_len);\\n          }\\n          if (isIdentifierStart(ch) || ch === OPAREN_CODE) {\\n            return gobbleVariable();\\n          }\\n        }\\n        return false;\\n      }, gobbleNumericLiteral = function() {\\n        var number = \\\\\\\"\\\\\\\", ch, chCode;\\n        while (isDecimalDigit(exprICode(index))) {\\n          number += exprI(index++);\\n        }\\n        if (exprICode(index) === PERIOD_CODE) {\\n          number += exprI(index++);\\n          while (isDecimalDigit(exprICode(index))) {\\n            number += exprI(index++);\\n          }\\n        }\\n        ch = exprI(index);\\n        if (ch === \\\\\\\"e\\\\\\\" || ch === \\\\\\\"E\\\\\\\") {\\n          number += exprI(index++);\\n          ch = exprI(index);\\n          if (ch === \\\\\\\"+\\\\\\\" || ch === \\\\\\\"-\\\\\\\") {\\n            number += exprI(index++);\\n          }\\n          while (isDecimalDigit(exprICode(index))) {\\n            number += exprI(index++);\\n          }\\n          if (!isDecimalDigit(exprICode(index - 1))) {\\n            throwError(\\\\\\\"Expected exponent (\\\\\\\" + number + exprI(index) + \\\\\\\")\\\\\\\", index);\\n          }\\n        }\\n        chCode = exprICode(index);\\n        if (isIdentifierStart(chCode)) {\\n          throwError(\\\\\\\"Variable names cannot start with a number (\\\\\\\" + number + exprI(index) + \\\\\\\")\\\\\\\", index);\\n        } else if (chCode === PERIOD_CODE) {\\n          throwError(\\\\\\\"Unexpected period\\\\\\\", index);\\n        }\\n        return {\\n          type: LITERAL,\\n          value: parseFloat(number),\\n          raw: number\\n        };\\n      }, gobbleStringLiteral = function() {\\n        var str = \\\\\\\"\\\\\\\", quote = exprI(index++), closed = false, ch;\\n        while (index < length) {\\n          ch = exprI(index++);\\n          if (ch === quote) {\\n            closed = true;\\n            break;\\n          } else if (ch === \\\\\\\"\\\\\\\\\\\\\\\") {\\n            ch = exprI(index++);\\n            switch (ch) {\\n              case \\\\\\\"n\\\\\\\":\\n                str += \\\\\\\"\\\\n\\\\\\\";\\n                break;\\n              case \\\\\\\"r\\\\\\\":\\n                str += \\\\\\\"\\\\r\\\\\\\";\\n                break;\\n              case \\\\\\\"t\\\\\\\":\\n                str += \\\\\\\"\\t\\\\\\\";\\n                break;\\n              case \\\\\\\"b\\\\\\\":\\n                str += \\\\\\\"\\\\b\\\\\\\";\\n                break;\\n              case \\\\\\\"f\\\\\\\":\\n                str += \\\\\\\"\\\\f\\\\\\\";\\n                break;\\n              case \\\\\\\"v\\\\\\\":\\n                str += \\\\\\\"\\\\v\\\\\\\";\\n                break;\\n              default:\\n                str += ch;\\n            }\\n          } else {\\n            str += ch;\\n          }\\n        }\\n        if (!closed) {\\n          throwError('Unclosed quote after \\\\\\\"' + str + '\\\\\\\"', index);\\n        }\\n        return {\\n          type: LITERAL,\\n          value: str,\\n          raw: quote + str + quote\\n        };\\n      }, gobbleIdentifier = function() {\\n        var ch = exprICode(index), start = index, identifier;\\n        if (isIdentifierStart(ch)) {\\n          index++;\\n        } else {\\n          throwError(\\\\\\\"Unexpected \\\\\\\" + exprI(index), index);\\n        }\\n        while (index < length) {\\n          ch = exprICode(index);\\n          if (isIdentifierPart(ch)) {\\n            index++;\\n          } else {\\n            break;\\n          }\\n        }\\n        identifier = expr.slice(start, index);\\n        if (literals.hasOwnProperty(identifier)) {\\n          return {\\n            type: LITERAL,\\n            value: literals[identifier],\\n            raw: identifier\\n          };\\n        } else if (identifier === this_str) {\\n          return {type: THIS_EXP};\\n        } else {\\n          return {\\n            type: IDENTIFIER,\\n            name: identifier\\n          };\\n        }\\n      }, gobbleArguments = function(termination) {\\n        var ch_i2, args = [], node2, closed = false;\\n        var separator_count = 0;\\n        while (index < length) {\\n          gobbleSpaces();\\n          ch_i2 = exprICode(index);\\n          if (ch_i2 === termination) {\\n            closed = true;\\n            index++;\\n            if (termination === CPAREN_CODE && separator_count && separator_count >= args.length) {\\n              throwError(\\\\\\\"Unexpected token \\\\\\\" + String.fromCharCode(termination), index);\\n            }\\n            break;\\n          } else if (ch_i2 === COMMA_CODE) {\\n            index++;\\n            separator_count++;\\n            if (separator_count !== args.length) {\\n              if (termination === CPAREN_CODE) {\\n                throwError(\\\\\\\"Unexpected token ,\\\\\\\", index);\\n              } else if (termination === CBRACK_CODE) {\\n                for (var arg = args.length; arg < separator_count; arg++) {\\n                  args.push(null);\\n                }\\n              }\\n            }\\n          } else {\\n            node2 = gobbleExpression();\\n            if (!node2 || node2.type === COMPOUND) {\\n              throwError(\\\\\\\"Expected comma\\\\\\\", index);\\n            }\\n            args.push(node2);\\n          }\\n        }\\n        if (!closed) {\\n          throwError(\\\\\\\"Expected \\\\\\\" + String.fromCharCode(termination), index);\\n        }\\n        return args;\\n      }, gobbleVariable = function() {\\n        var ch_i2, node2;\\n        ch_i2 = exprICode(index);\\n        if (ch_i2 === OPAREN_CODE) {\\n          node2 = gobbleGroup();\\n        } else {\\n          node2 = gobbleIdentifier();\\n        }\\n        gobbleSpaces();\\n        ch_i2 = exprICode(index);\\n        while (ch_i2 === PERIOD_CODE || ch_i2 === OBRACK_CODE || ch_i2 === OPAREN_CODE) {\\n          index++;\\n          if (ch_i2 === PERIOD_CODE) {\\n            gobbleSpaces();\\n            node2 = {\\n              type: MEMBER_EXP,\\n              computed: false,\\n              object: node2,\\n              property: gobbleIdentifier()\\n            };\\n          } else if (ch_i2 === OBRACK_CODE) {\\n            node2 = {\\n              type: MEMBER_EXP,\\n              computed: true,\\n              object: node2,\\n              property: gobbleExpression()\\n            };\\n            gobbleSpaces();\\n            ch_i2 = exprICode(index);\\n            if (ch_i2 !== CBRACK_CODE) {\\n              throwError(\\\\\\\"Unclosed [\\\\\\\", index);\\n            }\\n            index++;\\n          } else if (ch_i2 === OPAREN_CODE) {\\n            node2 = {\\n              type: CALL_EXP,\\n              arguments: gobbleArguments(CPAREN_CODE),\\n              callee: node2\\n            };\\n          }\\n          gobbleSpaces();\\n          ch_i2 = exprICode(index);\\n        }\\n        return node2;\\n      }, gobbleGroup = function() {\\n        index++;\\n        var node2 = gobbleExpression();\\n        gobbleSpaces();\\n        if (exprICode(index) === CPAREN_CODE) {\\n          index++;\\n          return node2;\\n        } else {\\n          throwError(\\\\\\\"Unclosed (\\\\\\\", index);\\n        }\\n      }, gobbleArray = function() {\\n        index++;\\n        return {\\n          type: ARRAY_EXP,\\n          elements: gobbleArguments(CBRACK_CODE)\\n        };\\n      }, nodes = [], ch_i, node;\\n      while (index < length) {\\n        ch_i = exprICode(index);\\n        if (ch_i === SEMCOL_CODE || ch_i === COMMA_CODE) {\\n          index++;\\n        } else {\\n          if (node = gobbleExpression()) {\\n            nodes.push(node);\\n          } else if (index < length) {\\n            throwError('Unexpected \\\\\\\"' + exprI(index) + '\\\\\\\"', index);\\n          }\\n        }\\n      }\\n      if (nodes.length === 1) {\\n        return nodes[0];\\n      } else {\\n        return {\\n          type: COMPOUND,\\n          body: nodes\\n        };\\n      }\\n    };\\n    jsep2.version = \\\\\\\"0.3.5\\\\\\\";\\n    jsep2.toString = function() {\\n      return \\\\\\\"JavaScript Expression Parser (JSEP) v\\\\\\\" + jsep2.version;\\n    };\\n    jsep2.addUnaryOp = function(op_name) {\\n      max_unop_len = Math.max(op_name.length, max_unop_len);\\n      unary_ops[op_name] = t;\\n      return this;\\n    };\\n    jsep2.addBinaryOp = function(op_name, precedence2) {\\n      max_binop_len = Math.max(op_name.length, max_binop_len);\\n      binary_ops[op_name] = precedence2;\\n      return this;\\n    };\\n    jsep2.addLiteral = function(literal_name, literal_value) {\\n      literals[literal_name] = literal_value;\\n      return this;\\n    };\\n    jsep2.removeUnaryOp = function(op_name) {\\n      delete unary_ops[op_name];\\n      if (op_name.length === max_unop_len) {\\n        max_unop_len = getMaxKeyLen(unary_ops);\\n      }\\n      return this;\\n    };\\n    jsep2.removeAllUnaryOps = function() {\\n      unary_ops = {};\\n      max_unop_len = 0;\\n      return this;\\n    };\\n    jsep2.removeBinaryOp = function(op_name) {\\n      delete binary_ops[op_name];\\n      if (op_name.length === max_binop_len) {\\n        max_binop_len = getMaxKeyLen(binary_ops);\\n      }\\n      return this;\\n    };\\n    jsep2.removeAllBinaryOps = function() {\\n      binary_ops = {};\\n      max_binop_len = 0;\\n      return this;\\n    };\\n    jsep2.removeLiteral = function(literal_name) {\\n      delete literals[literal_name];\\n      return this;\\n    };\\n    jsep2.removeAllLiterals = function() {\\n      literals = {};\\n      return this;\\n    };\\n    if (typeof exports === \\\\\\\"undefined\\\\\\\") {\\n      var old_jsep = root.jsep;\\n      root.jsep = jsep2;\\n      jsep2.noConflict = function() {\\n        if (root.jsep === jsep2) {\\n          root.jsep = old_jsep;\\n        }\\n        return jsep2;\\n      };\\n    } else {\\n      if (typeof module !== \\\\\\\"undefined\\\\\\\" && module.exports) {\\n        exports = module.exports = jsep2;\\n      } else {\\n        exports.parse = jsep2;\\n      }\\n    }\\n  })(exports);\\n});\\n\\n// ../../../node_modules/three/src/math/MathUtils.js\\nvar DEG2RAD = Math.PI / 180;\\nvar RAD2DEG = 180 / Math.PI;\\nvar _lut = [];\\nfor (let i = 0; i < 256; i++) {\\n  _lut[i] = (i < 16 ? \\\\\\\"0\\\\\\\" : \\\\\\\"\\\\\\\") + i.toString(16);\\n}\\nvar hasRandomUUID = typeof crypto !== \\\\\\\"undefined\\\\\\\" && \\\\\\\"randomUUID\\\\\\\" in crypto;\\nfunction generateUUID() {\\n  if (hasRandomUUID) {\\n    return crypto.randomUUID().toUpperCase();\\n  }\\n  const d0 = Math.random() * 4294967295 | 0;\\n  const d1 = Math.random() * 4294967295 | 0;\\n  const d2 = Math.random() * 4294967295 | 0;\\n  const d3 = Math.random() * 4294967295 | 0;\\n  const uuid = _lut[d0 & 255] + _lut[d0 >> 8 & 255] + _lut[d0 >> 16 & 255] + _lut[d0 >> 24 & 255] + \\\\\\\"-\\\\\\\" + _lut[d1 & 255] + _lut[d1 >> 8 & 255] + \\\\\\\"-\\\\\\\" + _lut[d1 >> 16 & 15 | 64] + _lut[d1 >> 24 & 255] + \\\\\\\"-\\\\\\\" + _lut[d2 & 63 | 128] + _lut[d2 >> 8 & 255] + \\\\\\\"-\\\\\\\" + _lut[d2 >> 16 & 255] + _lut[d2 >> 24 & 255] + _lut[d3 & 255] + _lut[d3 >> 8 & 255] + _lut[d3 >> 16 & 255] + _lut[d3 >> 24 & 255];\\n  return uuid.toUpperCase();\\n}\\nfunction clamp(value, min, max) {\\n  return Math.max(min, Math.min(max, value));\\n}\\nfunction euclideanModulo(n, m) {\\n  return (n % m + m) % m;\\n}\\nfunction lerp(x, y, t) {\\n  return (1 - t) * x + t * y;\\n}\\nfunction degToRad(degrees) {\\n  return degrees * DEG2RAD;\\n}\\nfunction isPowerOfTwo(value) {\\n  return (value & value - 1) === 0 && value !== 0;\\n}\\nfunction floorPowerOfTwo(value) {\\n  return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\\n}\\n\\n// ../../../node_modules/three/src/math/Quaternion.js\\nvar Quaternion = class {\\n  constructor(x = 0, y = 0, z = 0, w = 1) {\\n    this._x = x;\\n    this._y = y;\\n    this._z = z;\\n    this._w = w;\\n  }\\n  static slerp(qa, qb, qm, t) {\\n    console.warn(\\\\\\\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\\\\\\\");\\n    return qm.slerpQuaternions(qa, qb, t);\\n  }\\n  static slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\\n    let x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3];\\n    const x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3];\\n    if (t === 0) {\\n      dst[dstOffset + 0] = x0;\\n      dst[dstOffset + 1] = y0;\\n      dst[dstOffset + 2] = z0;\\n      dst[dstOffset + 3] = w0;\\n      return;\\n    }\\n    if (t === 1) {\\n      dst[dstOffset + 0] = x1;\\n      dst[dstOffset + 1] = y1;\\n      dst[dstOffset + 2] = z1;\\n      dst[dstOffset + 3] = w1;\\n      return;\\n    }\\n    if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\\n      let s = 1 - t;\\n      const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos;\\n      if (sqrSin > Number.EPSILON) {\\n        const sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir);\\n        s = Math.sin(s * len) / sin;\\n        t = Math.sin(t * len) / sin;\\n      }\\n      const tDir = t * dir;\\n      x0 = x0 * s + x1 * tDir;\\n      y0 = y0 * s + y1 * tDir;\\n      z0 = z0 * s + z1 * tDir;\\n      w0 = w0 * s + w1 * tDir;\\n      if (s === 1 - t) {\\n        const f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\\n        x0 *= f;\\n        y0 *= f;\\n        z0 *= f;\\n        w0 *= f;\\n      }\\n    }\\n    dst[dstOffset] = x0;\\n    dst[dstOffset + 1] = y0;\\n    dst[dstOffset + 2] = z0;\\n    dst[dstOffset + 3] = w0;\\n  }\\n  static multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\\n    const x0 = src0[srcOffset0];\\n    const y0 = src0[srcOffset0 + 1];\\n    const z0 = src0[srcOffset0 + 2];\\n    const w0 = src0[srcOffset0 + 3];\\n    const x1 = src1[srcOffset1];\\n    const y1 = src1[srcOffset1 + 1];\\n    const z1 = src1[srcOffset1 + 2];\\n    const w1 = src1[srcOffset1 + 3];\\n    dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\\n    dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\\n    dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\\n    dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\\n    return dst;\\n  }\\n  get x() {\\n    return this._x;\\n  }\\n  set x(value) {\\n    this._x = value;\\n    this._onChangeCallback();\\n  }\\n  get y() {\\n    return this._y;\\n  }\\n  set y(value) {\\n    this._y = value;\\n    this._onChangeCallback();\\n  }\\n  get z() {\\n    return this._z;\\n  }\\n  set z(value) {\\n    this._z = value;\\n    this._onChangeCallback();\\n  }\\n  get w() {\\n    return this._w;\\n  }\\n  set w(value) {\\n    this._w = value;\\n    this._onChangeCallback();\\n  }\\n  set(x, y, z, w) {\\n    this._x = x;\\n    this._y = y;\\n    this._z = z;\\n    this._w = w;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  clone() {\\n    return new this.constructor(this._x, this._y, this._z, this._w);\\n  }\\n  copy(quaternion) {\\n    this._x = quaternion.x;\\n    this._y = quaternion.y;\\n    this._z = quaternion.z;\\n    this._w = quaternion.w;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  setFromEuler(euler, update) {\\n    if (!(euler && euler.isEuler)) {\\n      throw new Error(\\\\\\\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\");\\n    }\\n    const x = euler._x, y = euler._y, z = euler._z, order = euler._order;\\n    const cos = Math.cos;\\n    const sin = Math.sin;\\n    const c1 = cos(x / 2);\\n    const c2 = cos(y / 2);\\n    const c3 = cos(z / 2);\\n    const s1 = sin(x / 2);\\n    const s2 = sin(y / 2);\\n    const s3 = sin(z / 2);\\n    switch (order) {\\n      case \\\\\\\"XYZ\\\\\\\":\\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\\n        break;\\n      case \\\\\\\"YXZ\\\\\\\":\\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\\n        break;\\n      case \\\\\\\"ZXY\\\\\\\":\\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\\n        break;\\n      case \\\\\\\"ZYX\\\\\\\":\\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\\n        break;\\n      case \\\\\\\"YZX\\\\\\\":\\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\\n        break;\\n      case \\\\\\\"XZY\\\\\\\":\\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\\n        break;\\n      default:\\n        console.warn(\\\\\\\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \\\\\\\" + order);\\n    }\\n    if (update !== false)\\n      this._onChangeCallback();\\n    return this;\\n  }\\n  setFromAxisAngle(axis, angle) {\\n    const halfAngle = angle / 2, s = Math.sin(halfAngle);\\n    this._x = axis.x * s;\\n    this._y = axis.y * s;\\n    this._z = axis.z * s;\\n    this._w = Math.cos(halfAngle);\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  setFromRotationMatrix(m) {\\n    const te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10], trace = m11 + m22 + m33;\\n    if (trace > 0) {\\n      const s = 0.5 / Math.sqrt(trace + 1);\\n      this._w = 0.25 / s;\\n      this._x = (m32 - m23) * s;\\n      this._y = (m13 - m31) * s;\\n      this._z = (m21 - m12) * s;\\n    } else if (m11 > m22 && m11 > m33) {\\n      const s = 2 * Math.sqrt(1 + m11 - m22 - m33);\\n      this._w = (m32 - m23) / s;\\n      this._x = 0.25 * s;\\n      this._y = (m12 + m21) / s;\\n      this._z = (m13 + m31) / s;\\n    } else if (m22 > m33) {\\n      const s = 2 * Math.sqrt(1 + m22 - m11 - m33);\\n      this._w = (m13 - m31) / s;\\n      this._x = (m12 + m21) / s;\\n      this._y = 0.25 * s;\\n      this._z = (m23 + m32) / s;\\n    } else {\\n      const s = 2 * Math.sqrt(1 + m33 - m11 - m22);\\n      this._w = (m21 - m12) / s;\\n      this._x = (m13 + m31) / s;\\n      this._y = (m23 + m32) / s;\\n      this._z = 0.25 * s;\\n    }\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  setFromUnitVectors(vFrom, vTo) {\\n    let r = vFrom.dot(vTo) + 1;\\n    if (r < Number.EPSILON) {\\n      r = 0;\\n      if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\\n        this._x = -vFrom.y;\\n        this._y = vFrom.x;\\n        this._z = 0;\\n        this._w = r;\\n      } else {\\n        this._x = 0;\\n        this._y = -vFrom.z;\\n        this._z = vFrom.y;\\n        this._w = r;\\n      }\\n    } else {\\n      this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\\n      this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\\n      this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\\n      this._w = r;\\n    }\\n    return this.normalize();\\n  }\\n  angleTo(q) {\\n    return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1)));\\n  }\\n  rotateTowards(q, step) {\\n    const angle = this.angleTo(q);\\n    if (angle === 0)\\n      return this;\\n    const t = Math.min(1, step / angle);\\n    this.slerp(q, t);\\n    return this;\\n  }\\n  identity() {\\n    return this.set(0, 0, 0, 1);\\n  }\\n  invert() {\\n    return this.conjugate();\\n  }\\n  conjugate() {\\n    this._x *= -1;\\n    this._y *= -1;\\n    this._z *= -1;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  dot(v) {\\n    return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\\n  }\\n  lengthSq() {\\n    return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\\n  }\\n  length() {\\n    return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\\n  }\\n  normalize() {\\n    let l = this.length();\\n    if (l === 0) {\\n      this._x = 0;\\n      this._y = 0;\\n      this._z = 0;\\n      this._w = 1;\\n    } else {\\n      l = 1 / l;\\n      this._x = this._x * l;\\n      this._y = this._y * l;\\n      this._z = this._z * l;\\n      this._w = this._w * l;\\n    }\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  multiply(q, p) {\\n    if (p !== void 0) {\\n      console.warn(\\\\\\\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\\\\\\\");\\n      return this.multiplyQuaternions(q, p);\\n    }\\n    return this.multiplyQuaternions(this, q);\\n  }\\n  premultiply(q) {\\n    return this.multiplyQuaternions(q, this);\\n  }\\n  multiplyQuaternions(a, b) {\\n    const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\\n    const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\\n    this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\\n    this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\\n    this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\\n    this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  slerp(qb, t) {\\n    if (t === 0)\\n      return this;\\n    if (t === 1)\\n      return this.copy(qb);\\n    const x = this._x, y = this._y, z = this._z, w = this._w;\\n    let cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\\n    if (cosHalfTheta < 0) {\\n      this._w = -qb._w;\\n      this._x = -qb._x;\\n      this._y = -qb._y;\\n      this._z = -qb._z;\\n      cosHalfTheta = -cosHalfTheta;\\n    } else {\\n      this.copy(qb);\\n    }\\n    if (cosHalfTheta >= 1) {\\n      this._w = w;\\n      this._x = x;\\n      this._y = y;\\n      this._z = z;\\n      return this;\\n    }\\n    const sqrSinHalfTheta = 1 - cosHalfTheta * cosHalfTheta;\\n    if (sqrSinHalfTheta <= Number.EPSILON) {\\n      const s = 1 - t;\\n      this._w = s * w + t * this._w;\\n      this._x = s * x + t * this._x;\\n      this._y = s * y + t * this._y;\\n      this._z = s * z + t * this._z;\\n      this.normalize();\\n      this._onChangeCallback();\\n      return this;\\n    }\\n    const sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\\n    const halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\\n    const ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\\n    this._w = w * ratioA + this._w * ratioB;\\n    this._x = x * ratioA + this._x * ratioB;\\n    this._y = y * ratioA + this._y * ratioB;\\n    this._z = z * ratioA + this._z * ratioB;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  slerpQuaternions(qa, qb, t) {\\n    this.copy(qa).slerp(qb, t);\\n  }\\n  random() {\\n    const u1 = Math.random();\\n    const sqrt1u1 = Math.sqrt(1 - u1);\\n    const sqrtu1 = Math.sqrt(u1);\\n    const u2 = 2 * Math.PI * Math.random();\\n    const u3 = 2 * Math.PI * Math.random();\\n    return this.set(sqrt1u1 * Math.cos(u2), sqrtu1 * Math.sin(u3), sqrtu1 * Math.cos(u3), sqrt1u1 * Math.sin(u2));\\n  }\\n  equals(quaternion) {\\n    return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\\n  }\\n  fromArray(array, offset = 0) {\\n    this._x = array[offset];\\n    this._y = array[offset + 1];\\n    this._z = array[offset + 2];\\n    this._w = array[offset + 3];\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    array[offset] = this._x;\\n    array[offset + 1] = this._y;\\n    array[offset + 2] = this._z;\\n    array[offset + 3] = this._w;\\n    return array;\\n  }\\n  fromBufferAttribute(attribute, index) {\\n    this._x = attribute.getX(index);\\n    this._y = attribute.getY(index);\\n    this._z = attribute.getZ(index);\\n    this._w = attribute.getW(index);\\n    return this;\\n  }\\n  _onChange(callback) {\\n    this._onChangeCallback = callback;\\n    return this;\\n  }\\n  _onChangeCallback() {\\n  }\\n};\\nQuaternion.prototype.isQuaternion = true;\\n\\n// ../../../node_modules/three/src/math/Vector3.js\\nvar Vector3 = class {\\n  constructor(x = 0, y = 0, z = 0) {\\n    this.x = x;\\n    this.y = y;\\n    this.z = z;\\n  }\\n  set(x, y, z) {\\n    if (z === void 0)\\n      z = this.z;\\n    this.x = x;\\n    this.y = y;\\n    this.z = z;\\n    return this;\\n  }\\n  setScalar(scalar) {\\n    this.x = scalar;\\n    this.y = scalar;\\n    this.z = scalar;\\n    return this;\\n  }\\n  setX(x) {\\n    this.x = x;\\n    return this;\\n  }\\n  setY(y) {\\n    this.y = y;\\n    return this;\\n  }\\n  setZ(z) {\\n    this.z = z;\\n    return this;\\n  }\\n  setComponent(index, value) {\\n    switch (index) {\\n      case 0:\\n        this.x = value;\\n        break;\\n      case 1:\\n        this.y = value;\\n        break;\\n      case 2:\\n        this.z = value;\\n        break;\\n      default:\\n        throw new Error(\\\\\\\"index is out of range: \\\\\\\" + index);\\n    }\\n    return this;\\n  }\\n  getComponent(index) {\\n    switch (index) {\\n      case 0:\\n        return this.x;\\n      case 1:\\n        return this.y;\\n      case 2:\\n        return this.z;\\n      default:\\n        throw new Error(\\\\\\\"index is out of range: \\\\\\\" + index);\\n    }\\n  }\\n  clone() {\\n    return new this.constructor(this.x, this.y, this.z);\\n  }\\n  copy(v) {\\n    this.x = v.x;\\n    this.y = v.y;\\n    this.z = v.z;\\n    return this;\\n  }\\n  add(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\");\\n      return this.addVectors(v, w);\\n    }\\n    this.x += v.x;\\n    this.y += v.y;\\n    this.z += v.z;\\n    return this;\\n  }\\n  addScalar(s) {\\n    this.x += s;\\n    this.y += s;\\n    this.z += s;\\n    return this;\\n  }\\n  addVectors(a, b) {\\n    this.x = a.x + b.x;\\n    this.y = a.y + b.y;\\n    this.z = a.z + b.z;\\n    return this;\\n  }\\n  addScaledVector(v, s) {\\n    this.x += v.x * s;\\n    this.y += v.y * s;\\n    this.z += v.z * s;\\n    return this;\\n  }\\n  sub(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\");\\n      return this.subVectors(v, w);\\n    }\\n    this.x -= v.x;\\n    this.y -= v.y;\\n    this.z -= v.z;\\n    return this;\\n  }\\n  subScalar(s) {\\n    this.x -= s;\\n    this.y -= s;\\n    this.z -= s;\\n    return this;\\n  }\\n  subVectors(a, b) {\\n    this.x = a.x - b.x;\\n    this.y = a.y - b.y;\\n    this.z = a.z - b.z;\\n    return this;\\n  }\\n  multiply(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\\\\\\\");\\n      return this.multiplyVectors(v, w);\\n    }\\n    this.x *= v.x;\\n    this.y *= v.y;\\n    this.z *= v.z;\\n    return this;\\n  }\\n  multiplyScalar(scalar) {\\n    this.x *= scalar;\\n    this.y *= scalar;\\n    this.z *= scalar;\\n    return this;\\n  }\\n  multiplyVectors(a, b) {\\n    this.x = a.x * b.x;\\n    this.y = a.y * b.y;\\n    this.z = a.z * b.z;\\n    return this;\\n  }\\n  applyEuler(euler) {\\n    if (!(euler && euler.isEuler)) {\\n      console.error(\\\\\\\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\\\\\\\");\\n    }\\n    return this.applyQuaternion(_quaternion.setFromEuler(euler));\\n  }\\n  applyAxisAngle(axis, angle) {\\n    return this.applyQuaternion(_quaternion.setFromAxisAngle(axis, angle));\\n  }\\n  applyMatrix3(m) {\\n    const x = this.x, y = this.y, z = this.z;\\n    const e = m.elements;\\n    this.x = e[0] * x + e[3] * y + e[6] * z;\\n    this.y = e[1] * x + e[4] * y + e[7] * z;\\n    this.z = e[2] * x + e[5] * y + e[8] * z;\\n    return this;\\n  }\\n  applyNormalMatrix(m) {\\n    return this.applyMatrix3(m).normalize();\\n  }\\n  applyMatrix4(m) {\\n    const x = this.x, y = this.y, z = this.z;\\n    const e = m.elements;\\n    const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\\n    this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\\n    this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\\n    this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\\n    return this;\\n  }\\n  applyQuaternion(q) {\\n    const x = this.x, y = this.y, z = this.z;\\n    const qx = q.x, qy = q.y, qz = q.z, qw = q.w;\\n    const ix = qw * x + qy * z - qz * y;\\n    const iy = qw * y + qz * x - qx * z;\\n    const iz = qw * z + qx * y - qy * x;\\n    const iw = -qx * x - qy * y - qz * z;\\n    this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\\n    this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\\n    this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\\n    return this;\\n  }\\n  project(camera) {\\n    return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\\n  }\\n  unproject(camera) {\\n    return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\\n  }\\n  transformDirection(m) {\\n    const x = this.x, y = this.y, z = this.z;\\n    const e = m.elements;\\n    this.x = e[0] * x + e[4] * y + e[8] * z;\\n    this.y = e[1] * x + e[5] * y + e[9] * z;\\n    this.z = e[2] * x + e[6] * y + e[10] * z;\\n    return this.normalize();\\n  }\\n  divide(v) {\\n    this.x /= v.x;\\n    this.y /= v.y;\\n    this.z /= v.z;\\n    return this;\\n  }\\n  divideScalar(scalar) {\\n    return this.multiplyScalar(1 / scalar);\\n  }\\n  min(v) {\\n    this.x = Math.min(this.x, v.x);\\n    this.y = Math.min(this.y, v.y);\\n    this.z = Math.min(this.z, v.z);\\n    return this;\\n  }\\n  max(v) {\\n    this.x = Math.max(this.x, v.x);\\n    this.y = Math.max(this.y, v.y);\\n    this.z = Math.max(this.z, v.z);\\n    return this;\\n  }\\n  clamp(min, max) {\\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\\n    return this;\\n  }\\n  clampScalar(minVal, maxVal) {\\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\\n    return this;\\n  }\\n  clampLength(min, max) {\\n    const length = this.length();\\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\\n  }\\n  floor() {\\n    this.x = Math.floor(this.x);\\n    this.y = Math.floor(this.y);\\n    this.z = Math.floor(this.z);\\n    return this;\\n  }\\n  ceil() {\\n    this.x = Math.ceil(this.x);\\n    this.y = Math.ceil(this.y);\\n    this.z = Math.ceil(this.z);\\n    return this;\\n  }\\n  round() {\\n    this.x = Math.round(this.x);\\n    this.y = Math.round(this.y);\\n    this.z = Math.round(this.z);\\n    return this;\\n  }\\n  roundToZero() {\\n    this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\\n    this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\\n    this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\\n    return this;\\n  }\\n  negate() {\\n    this.x = -this.x;\\n    this.y = -this.y;\\n    this.z = -this.z;\\n    return this;\\n  }\\n  dot(v) {\\n    return this.x * v.x + this.y * v.y + this.z * v.z;\\n  }\\n  lengthSq() {\\n    return this.x * this.x + this.y * this.y + this.z * this.z;\\n  }\\n  length() {\\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\\n  }\\n  manhattanLength() {\\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\\n  }\\n  normalize() {\\n    return this.divideScalar(this.length() || 1);\\n  }\\n  setLength(length) {\\n    return this.normalize().multiplyScalar(length);\\n  }\\n  lerp(v, alpha) {\\n    this.x += (v.x - this.x) * alpha;\\n    this.y += (v.y - this.y) * alpha;\\n    this.z += (v.z - this.z) * alpha;\\n    return this;\\n  }\\n  lerpVectors(v1, v2, alpha) {\\n    this.x = v1.x + (v2.x - v1.x) * alpha;\\n    this.y = v1.y + (v2.y - v1.y) * alpha;\\n    this.z = v1.z + (v2.z - v1.z) * alpha;\\n    return this;\\n  }\\n  cross(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\\\\\\\");\\n      return this.crossVectors(v, w);\\n    }\\n    return this.crossVectors(this, v);\\n  }\\n  crossVectors(a, b) {\\n    const ax = a.x, ay = a.y, az = a.z;\\n    const bx = b.x, by = b.y, bz = b.z;\\n    this.x = ay * bz - az * by;\\n    this.y = az * bx - ax * bz;\\n    this.z = ax * by - ay * bx;\\n    return this;\\n  }\\n  projectOnVector(v) {\\n    const denominator = v.lengthSq();\\n    if (denominator === 0)\\n      return this.set(0, 0, 0);\\n    const scalar = v.dot(this) / denominator;\\n    return this.copy(v).multiplyScalar(scalar);\\n  }\\n  projectOnPlane(planeNormal) {\\n    _vector.copy(this).projectOnVector(planeNormal);\\n    return this.sub(_vector);\\n  }\\n  reflect(normal) {\\n    return this.sub(_vector.copy(normal).multiplyScalar(2 * this.dot(normal)));\\n  }\\n  angleTo(v) {\\n    const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\\n    if (denominator === 0)\\n      return Math.PI / 2;\\n    const theta = this.dot(v) / denominator;\\n    return Math.acos(clamp(theta, -1, 1));\\n  }\\n  distanceTo(v) {\\n    return Math.sqrt(this.distanceToSquared(v));\\n  }\\n  distanceToSquared(v) {\\n    const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\\n    return dx * dx + dy * dy + dz * dz;\\n  }\\n  manhattanDistanceTo(v) {\\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\\n  }\\n  setFromSpherical(s) {\\n    return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\\n  }\\n  setFromSphericalCoords(radius, phi, theta) {\\n    const sinPhiRadius = Math.sin(phi) * radius;\\n    this.x = sinPhiRadius * Math.sin(theta);\\n    this.y = Math.cos(phi) * radius;\\n    this.z = sinPhiRadius * Math.cos(theta);\\n    return this;\\n  }\\n  setFromCylindrical(c) {\\n    return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\\n  }\\n  setFromCylindricalCoords(radius, theta, y) {\\n    this.x = radius * Math.sin(theta);\\n    this.y = y;\\n    this.z = radius * Math.cos(theta);\\n    return this;\\n  }\\n  setFromMatrixPosition(m) {\\n    const e = m.elements;\\n    this.x = e[12];\\n    this.y = e[13];\\n    this.z = e[14];\\n    return this;\\n  }\\n  setFromMatrixScale(m) {\\n    const sx = this.setFromMatrixColumn(m, 0).length();\\n    const sy = this.setFromMatrixColumn(m, 1).length();\\n    const sz = this.setFromMatrixColumn(m, 2).length();\\n    this.x = sx;\\n    this.y = sy;\\n    this.z = sz;\\n    return this;\\n  }\\n  setFromMatrixColumn(m, index) {\\n    return this.fromArray(m.elements, index * 4);\\n  }\\n  setFromMatrix3Column(m, index) {\\n    return this.fromArray(m.elements, index * 3);\\n  }\\n  equals(v) {\\n    return v.x === this.x && v.y === this.y && v.z === this.z;\\n  }\\n  fromArray(array, offset = 0) {\\n    this.x = array[offset];\\n    this.y = array[offset + 1];\\n    this.z = array[offset + 2];\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    array[offset] = this.x;\\n    array[offset + 1] = this.y;\\n    array[offset + 2] = this.z;\\n    return array;\\n  }\\n  fromBufferAttribute(attribute, index, offset) {\\n    if (offset !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\\\\\\\");\\n    }\\n    this.x = attribute.getX(index);\\n    this.y = attribute.getY(index);\\n    this.z = attribute.getZ(index);\\n    return this;\\n  }\\n  random() {\\n    this.x = Math.random();\\n    this.y = Math.random();\\n    this.z = Math.random();\\n    return this;\\n  }\\n  randomDirection() {\\n    const u = (Math.random() - 0.5) * 2;\\n    const t = Math.random() * Math.PI * 2;\\n    const f = Math.sqrt(1 - u ** 2);\\n    this.x = f * Math.cos(t);\\n    this.y = f * Math.sin(t);\\n    this.z = u;\\n    return this;\\n  }\\n  *[Symbol.iterator]() {\\n    yield this.x;\\n    yield this.y;\\n    yield this.z;\\n  }\\n};\\nVector3.prototype.isVector3 = true;\\nvar _vector = /* @__PURE__ */ new Vector3();\\nvar _quaternion = /* @__PURE__ */ new Quaternion();\\n\\n// ../../../node_modules/three/src/math/Matrix4.js\\nvar Matrix4 = class {\\n  constructor() {\\n    this.elements = [\\n      1,\\n      0,\\n      0,\\n      0,\\n      0,\\n      1,\\n      0,\\n      0,\\n      0,\\n      0,\\n      1,\\n      0,\\n      0,\\n      0,\\n      0,\\n      1\\n    ];\\n    if (arguments.length > 0) {\\n      console.error(\\\\\\\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\\\\\\\");\\n    }\\n  }\\n  set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\\n    const te = this.elements;\\n    te[0] = n11;\\n    te[4] = n12;\\n    te[8] = n13;\\n    te[12] = n14;\\n    te[1] = n21;\\n    te[5] = n22;\\n    te[9] = n23;\\n    te[13] = n24;\\n    te[2] = n31;\\n    te[6] = n32;\\n    te[10] = n33;\\n    te[14] = n34;\\n    te[3] = n41;\\n    te[7] = n42;\\n    te[11] = n43;\\n    te[15] = n44;\\n    return this;\\n  }\\n  identity() {\\n    this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  clone() {\\n    return new Matrix4().fromArray(this.elements);\\n  }\\n  copy(m) {\\n    const te = this.elements;\\n    const me = m.elements;\\n    te[0] = me[0];\\n    te[1] = me[1];\\n    te[2] = me[2];\\n    te[3] = me[3];\\n    te[4] = me[4];\\n    te[5] = me[5];\\n    te[6] = me[6];\\n    te[7] = me[7];\\n    te[8] = me[8];\\n    te[9] = me[9];\\n    te[10] = me[10];\\n    te[11] = me[11];\\n    te[12] = me[12];\\n    te[13] = me[13];\\n    te[14] = me[14];\\n    te[15] = me[15];\\n    return this;\\n  }\\n  copyPosition(m) {\\n    const te = this.elements, me = m.elements;\\n    te[12] = me[12];\\n    te[13] = me[13];\\n    te[14] = me[14];\\n    return this;\\n  }\\n  setFromMatrix3(m) {\\n    const me = m.elements;\\n    this.set(me[0], me[3], me[6], 0, me[1], me[4], me[7], 0, me[2], me[5], me[8], 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  extractBasis(xAxis, yAxis, zAxis) {\\n    xAxis.setFromMatrixColumn(this, 0);\\n    yAxis.setFromMatrixColumn(this, 1);\\n    zAxis.setFromMatrixColumn(this, 2);\\n    return this;\\n  }\\n  makeBasis(xAxis, yAxis, zAxis) {\\n    this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  extractRotation(m) {\\n    const te = this.elements;\\n    const me = m.elements;\\n    const scaleX = 1 / _v1.setFromMatrixColumn(m, 0).length();\\n    const scaleY = 1 / _v1.setFromMatrixColumn(m, 1).length();\\n    const scaleZ = 1 / _v1.setFromMatrixColumn(m, 2).length();\\n    te[0] = me[0] * scaleX;\\n    te[1] = me[1] * scaleX;\\n    te[2] = me[2] * scaleX;\\n    te[3] = 0;\\n    te[4] = me[4] * scaleY;\\n    te[5] = me[5] * scaleY;\\n    te[6] = me[6] * scaleY;\\n    te[7] = 0;\\n    te[8] = me[8] * scaleZ;\\n    te[9] = me[9] * scaleZ;\\n    te[10] = me[10] * scaleZ;\\n    te[11] = 0;\\n    te[12] = 0;\\n    te[13] = 0;\\n    te[14] = 0;\\n    te[15] = 1;\\n    return this;\\n  }\\n  makeRotationFromEuler(euler) {\\n    if (!(euler && euler.isEuler)) {\\n      console.error(\\\\\\\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\\\\\\\");\\n    }\\n    const te = this.elements;\\n    const x = euler.x, y = euler.y, z = euler.z;\\n    const a = Math.cos(x), b = Math.sin(x);\\n    const c = Math.cos(y), d = Math.sin(y);\\n    const e = Math.cos(z), f = Math.sin(z);\\n    if (euler.order === \\\\\\\"XYZ\\\\\\\") {\\n      const ae = a * e, af = a * f, be = b * e, bf = b * f;\\n      te[0] = c * e;\\n      te[4] = -c * f;\\n      te[8] = d;\\n      te[1] = af + be * d;\\n      te[5] = ae - bf * d;\\n      te[9] = -b * c;\\n      te[2] = bf - ae * d;\\n      te[6] = be + af * d;\\n      te[10] = a * c;\\n    } else if (euler.order === \\\\\\\"YXZ\\\\\\\") {\\n      const ce = c * e, cf = c * f, de = d * e, df = d * f;\\n      te[0] = ce + df * b;\\n      te[4] = de * b - cf;\\n      te[8] = a * d;\\n      te[1] = a * f;\\n      te[5] = a * e;\\n      te[9] = -b;\\n      te[2] = cf * b - de;\\n      te[6] = df + ce * b;\\n      te[10] = a * c;\\n    } else if (euler.order === \\\\\\\"ZXY\\\\\\\") {\\n      const ce = c * e, cf = c * f, de = d * e, df = d * f;\\n      te[0] = ce - df * b;\\n      te[4] = -a * f;\\n      te[8] = de + cf * b;\\n      te[1] = cf + de * b;\\n      te[5] = a * e;\\n      te[9] = df - ce * b;\\n      te[2] = -a * d;\\n      te[6] = b;\\n      te[10] = a * c;\\n    } else if (euler.order === \\\\\\\"ZYX\\\\\\\") {\\n      const ae = a * e, af = a * f, be = b * e, bf = b * f;\\n      te[0] = c * e;\\n      te[4] = be * d - af;\\n      te[8] = ae * d + bf;\\n      te[1] = c * f;\\n      te[5] = bf * d + ae;\\n      te[9] = af * d - be;\\n      te[2] = -d;\\n      te[6] = b * c;\\n      te[10] = a * c;\\n    } else if (euler.order === \\\\\\\"YZX\\\\\\\") {\\n      const ac = a * c, ad = a * d, bc = b * c, bd = b * d;\\n      te[0] = c * e;\\n      te[4] = bd - ac * f;\\n      te[8] = bc * f + ad;\\n      te[1] = f;\\n      te[5] = a * e;\\n      te[9] = -b * e;\\n      te[2] = -d * e;\\n      te[6] = ad * f + bc;\\n      te[10] = ac - bd * f;\\n    } else if (euler.order === \\\\\\\"XZY\\\\\\\") {\\n      const ac = a * c, ad = a * d, bc = b * c, bd = b * d;\\n      te[0] = c * e;\\n      te[4] = -f;\\n      te[8] = d * e;\\n      te[1] = ac * f + bd;\\n      te[5] = a * e;\\n      te[9] = ad * f - bc;\\n      te[2] = bc * f - ad;\\n      te[6] = b * e;\\n      te[10] = bd * f + ac;\\n    }\\n    te[3] = 0;\\n    te[7] = 0;\\n    te[11] = 0;\\n    te[12] = 0;\\n    te[13] = 0;\\n    te[14] = 0;\\n    te[15] = 1;\\n    return this;\\n  }\\n  makeRotationFromQuaternion(q) {\\n    return this.compose(_zero, q, _one);\\n  }\\n  lookAt(eye, target, up) {\\n    const te = this.elements;\\n    _z.subVectors(eye, target);\\n    if (_z.lengthSq() === 0) {\\n      _z.z = 1;\\n    }\\n    _z.normalize();\\n    _x.crossVectors(up, _z);\\n    if (_x.lengthSq() === 0) {\\n      if (Math.abs(up.z) === 1) {\\n        _z.x += 1e-4;\\n      } else {\\n        _z.z += 1e-4;\\n      }\\n      _z.normalize();\\n      _x.crossVectors(up, _z);\\n    }\\n    _x.normalize();\\n    _y.crossVectors(_z, _x);\\n    te[0] = _x.x;\\n    te[4] = _y.x;\\n    te[8] = _z.x;\\n    te[1] = _x.y;\\n    te[5] = _y.y;\\n    te[9] = _z.y;\\n    te[2] = _x.z;\\n    te[6] = _y.z;\\n    te[10] = _z.z;\\n    return this;\\n  }\\n  multiply(m, n) {\\n    if (n !== void 0) {\\n      console.warn(\\\\\\\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\\\\\\\");\\n      return this.multiplyMatrices(m, n);\\n    }\\n    return this.multiplyMatrices(this, m);\\n  }\\n  premultiply(m) {\\n    return this.multiplyMatrices(m, this);\\n  }\\n  multiplyMatrices(a, b) {\\n    const ae = a.elements;\\n    const be = b.elements;\\n    const te = this.elements;\\n    const a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12];\\n    const a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13];\\n    const a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14];\\n    const a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15];\\n    const b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12];\\n    const b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13];\\n    const b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14];\\n    const b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15];\\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\\n    te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\\n    te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\\n    te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\\n    te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\\n    te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\\n    te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\\n    te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\\n    te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\\n    te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\\n    te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\\n    te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\\n    te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\\n    te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\\n    return this;\\n  }\\n  multiplyScalar(s) {\\n    const te = this.elements;\\n    te[0] *= s;\\n    te[4] *= s;\\n    te[8] *= s;\\n    te[12] *= s;\\n    te[1] *= s;\\n    te[5] *= s;\\n    te[9] *= s;\\n    te[13] *= s;\\n    te[2] *= s;\\n    te[6] *= s;\\n    te[10] *= s;\\n    te[14] *= s;\\n    te[3] *= s;\\n    te[7] *= s;\\n    te[11] *= s;\\n    te[15] *= s;\\n    return this;\\n  }\\n  determinant() {\\n    const te = this.elements;\\n    const n11 = te[0], n12 = te[4], n13 = te[8], n14 = te[12];\\n    const n21 = te[1], n22 = te[5], n23 = te[9], n24 = te[13];\\n    const n31 = te[2], n32 = te[6], n33 = te[10], n34 = te[14];\\n    const n41 = te[3], n42 = te[7], n43 = te[11], n44 = te[15];\\n    return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\\n  }\\n  transpose() {\\n    const te = this.elements;\\n    let tmp;\\n    tmp = te[1];\\n    te[1] = te[4];\\n    te[4] = tmp;\\n    tmp = te[2];\\n    te[2] = te[8];\\n    te[8] = tmp;\\n    tmp = te[6];\\n    te[6] = te[9];\\n    te[9] = tmp;\\n    tmp = te[3];\\n    te[3] = te[12];\\n    te[12] = tmp;\\n    tmp = te[7];\\n    te[7] = te[13];\\n    te[13] = tmp;\\n    tmp = te[11];\\n    te[11] = te[14];\\n    te[14] = tmp;\\n    return this;\\n  }\\n  setPosition(x, y, z) {\\n    const te = this.elements;\\n    if (x.isVector3) {\\n      te[12] = x.x;\\n      te[13] = x.y;\\n      te[14] = x.z;\\n    } else {\\n      te[12] = x;\\n      te[13] = y;\\n      te[14] = z;\\n    }\\n    return this;\\n  }\\n  invert() {\\n    const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n41 = te[3], n12 = te[4], n22 = te[5], n32 = te[6], n42 = te[7], n13 = te[8], n23 = te[9], n33 = te[10], n43 = te[11], n14 = te[12], n24 = te[13], n34 = te[14], n44 = te[15], t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\\n    const det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\\n    if (det === 0)\\n      return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\\n    const detInv = 1 / det;\\n    te[0] = t11 * detInv;\\n    te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\\n    te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\\n    te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\\n    te[4] = t12 * detInv;\\n    te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\\n    te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\\n    te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\\n    te[8] = t13 * detInv;\\n    te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\\n    te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\\n    te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\\n    te[12] = t14 * detInv;\\n    te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\\n    te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\\n    te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\\n    return this;\\n  }\\n  scale(v) {\\n    const te = this.elements;\\n    const x = v.x, y = v.y, z = v.z;\\n    te[0] *= x;\\n    te[4] *= y;\\n    te[8] *= z;\\n    te[1] *= x;\\n    te[5] *= y;\\n    te[9] *= z;\\n    te[2] *= x;\\n    te[6] *= y;\\n    te[10] *= z;\\n    te[3] *= x;\\n    te[7] *= y;\\n    te[11] *= z;\\n    return this;\\n  }\\n  getMaxScaleOnAxis() {\\n    const te = this.elements;\\n    const scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\\n    const scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\\n    const scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\\n    return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\\n  }\\n  makeTranslation(x, y, z) {\\n    this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);\\n    return this;\\n  }\\n  makeRotationX(theta) {\\n    const c = Math.cos(theta), s = Math.sin(theta);\\n    this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  makeRotationY(theta) {\\n    const c = Math.cos(theta), s = Math.sin(theta);\\n    this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  makeRotationZ(theta) {\\n    const c = Math.cos(theta), s = Math.sin(theta);\\n    this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  makeRotationAxis(axis, angle) {\\n    const c = Math.cos(angle);\\n    const s = Math.sin(angle);\\n    const t = 1 - c;\\n    const x = axis.x, y = axis.y, z = axis.z;\\n    const tx = t * x, ty = t * y;\\n    this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  makeScale(x, y, z) {\\n    this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  makeShear(xy, xz, yx, yz, zx, zy) {\\n    this.set(1, yx, zx, 0, xy, 1, zy, 0, xz, yz, 1, 0, 0, 0, 0, 1);\\n    return this;\\n  }\\n  compose(position, quaternion, scale) {\\n    const te = this.elements;\\n    const x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\\n    const x2 = x + x, y2 = y + y, z2 = z + z;\\n    const xx = x * x2, xy = x * y2, xz = x * z2;\\n    const yy = y * y2, yz = y * z2, zz = z * z2;\\n    const wx = w * x2, wy = w * y2, wz = w * z2;\\n    const sx = scale.x, sy = scale.y, sz = scale.z;\\n    te[0] = (1 - (yy + zz)) * sx;\\n    te[1] = (xy + wz) * sx;\\n    te[2] = (xz - wy) * sx;\\n    te[3] = 0;\\n    te[4] = (xy - wz) * sy;\\n    te[5] = (1 - (xx + zz)) * sy;\\n    te[6] = (yz + wx) * sy;\\n    te[7] = 0;\\n    te[8] = (xz + wy) * sz;\\n    te[9] = (yz - wx) * sz;\\n    te[10] = (1 - (xx + yy)) * sz;\\n    te[11] = 0;\\n    te[12] = position.x;\\n    te[13] = position.y;\\n    te[14] = position.z;\\n    te[15] = 1;\\n    return this;\\n  }\\n  decompose(position, quaternion, scale) {\\n    const te = this.elements;\\n    let sx = _v1.set(te[0], te[1], te[2]).length();\\n    const sy = _v1.set(te[4], te[5], te[6]).length();\\n    const sz = _v1.set(te[8], te[9], te[10]).length();\\n    const det = this.determinant();\\n    if (det < 0)\\n      sx = -sx;\\n    position.x = te[12];\\n    position.y = te[13];\\n    position.z = te[14];\\n    _m1.copy(this);\\n    const invSX = 1 / sx;\\n    const invSY = 1 / sy;\\n    const invSZ = 1 / sz;\\n    _m1.elements[0] *= invSX;\\n    _m1.elements[1] *= invSX;\\n    _m1.elements[2] *= invSX;\\n    _m1.elements[4] *= invSY;\\n    _m1.elements[5] *= invSY;\\n    _m1.elements[6] *= invSY;\\n    _m1.elements[8] *= invSZ;\\n    _m1.elements[9] *= invSZ;\\n    _m1.elements[10] *= invSZ;\\n    quaternion.setFromRotationMatrix(_m1);\\n    scale.x = sx;\\n    scale.y = sy;\\n    scale.z = sz;\\n    return this;\\n  }\\n  makePerspective(left, right, top, bottom, near, far) {\\n    if (far === void 0) {\\n      console.warn(\\\\\\\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\\\\\\\");\\n    }\\n    const te = this.elements;\\n    const x = 2 * near / (right - left);\\n    const y = 2 * near / (top - bottom);\\n    const a = (right + left) / (right - left);\\n    const b = (top + bottom) / (top - bottom);\\n    const c = -(far + near) / (far - near);\\n    const d = -2 * far * near / (far - near);\\n    te[0] = x;\\n    te[4] = 0;\\n    te[8] = a;\\n    te[12] = 0;\\n    te[1] = 0;\\n    te[5] = y;\\n    te[9] = b;\\n    te[13] = 0;\\n    te[2] = 0;\\n    te[6] = 0;\\n    te[10] = c;\\n    te[14] = d;\\n    te[3] = 0;\\n    te[7] = 0;\\n    te[11] = -1;\\n    te[15] = 0;\\n    return this;\\n  }\\n  makeOrthographic(left, right, top, bottom, near, far) {\\n    const te = this.elements;\\n    const w = 1 / (right - left);\\n    const h = 1 / (top - bottom);\\n    const p = 1 / (far - near);\\n    const x = (right + left) * w;\\n    const y = (top + bottom) * h;\\n    const z = (far + near) * p;\\n    te[0] = 2 * w;\\n    te[4] = 0;\\n    te[8] = 0;\\n    te[12] = -x;\\n    te[1] = 0;\\n    te[5] = 2 * h;\\n    te[9] = 0;\\n    te[13] = -y;\\n    te[2] = 0;\\n    te[6] = 0;\\n    te[10] = -2 * p;\\n    te[14] = -z;\\n    te[3] = 0;\\n    te[7] = 0;\\n    te[11] = 0;\\n    te[15] = 1;\\n    return this;\\n  }\\n  equals(matrix) {\\n    const te = this.elements;\\n    const me = matrix.elements;\\n    for (let i = 0; i < 16; i++) {\\n      if (te[i] !== me[i])\\n        return false;\\n    }\\n    return true;\\n  }\\n  fromArray(array, offset = 0) {\\n    for (let i = 0; i < 16; i++) {\\n      this.elements[i] = array[i + offset];\\n    }\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    const te = this.elements;\\n    array[offset] = te[0];\\n    array[offset + 1] = te[1];\\n    array[offset + 2] = te[2];\\n    array[offset + 3] = te[3];\\n    array[offset + 4] = te[4];\\n    array[offset + 5] = te[5];\\n    array[offset + 6] = te[6];\\n    array[offset + 7] = te[7];\\n    array[offset + 8] = te[8];\\n    array[offset + 9] = te[9];\\n    array[offset + 10] = te[10];\\n    array[offset + 11] = te[11];\\n    array[offset + 12] = te[12];\\n    array[offset + 13] = te[13];\\n    array[offset + 14] = te[14];\\n    array[offset + 15] = te[15];\\n    return array;\\n  }\\n};\\nMatrix4.prototype.isMatrix4 = true;\\nvar _v1 = /* @__PURE__ */ new Vector3();\\nvar _m1 = /* @__PURE__ */ new Matrix4();\\nvar _zero = /* @__PURE__ */ new Vector3(0, 0, 0);\\nvar _one = /* @__PURE__ */ new Vector3(1, 1, 1);\\nvar _x = /* @__PURE__ */ new Vector3();\\nvar _y = /* @__PURE__ */ new Vector3();\\nvar _z = /* @__PURE__ */ new Vector3();\\n\\n// ../../../node_modules/three/src/core/EventDispatcher.js\\nvar EventDispatcher = class {\\n  addEventListener(type, listener) {\\n    if (this._listeners === void 0)\\n      this._listeners = {};\\n    const listeners = this._listeners;\\n    if (listeners[type] === void 0) {\\n      listeners[type] = [];\\n    }\\n    if (listeners[type].indexOf(listener) === -1) {\\n      listeners[type].push(listener);\\n    }\\n  }\\n  hasEventListener(type, listener) {\\n    if (this._listeners === void 0)\\n      return false;\\n    const listeners = this._listeners;\\n    return listeners[type] !== void 0 && listeners[type].indexOf(listener) !== -1;\\n  }\\n  removeEventListener(type, listener) {\\n    if (this._listeners === void 0)\\n      return;\\n    const listeners = this._listeners;\\n    const listenerArray = listeners[type];\\n    if (listenerArray !== void 0) {\\n      const index = listenerArray.indexOf(listener);\\n      if (index !== -1) {\\n        listenerArray.splice(index, 1);\\n      }\\n    }\\n  }\\n  dispatchEvent(event) {\\n    if (this._listeners === void 0)\\n      return;\\n    const listeners = this._listeners;\\n    const listenerArray = listeners[event.type];\\n    if (listenerArray !== void 0) {\\n      event.target = this;\\n      const array = listenerArray.slice(0);\\n      for (let i = 0, l = array.length; i < l; i++) {\\n        array[i].call(this, event);\\n      }\\n      event.target = null;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/three/src/math/Euler.js\\nvar _matrix = /* @__PURE__ */ new Matrix4();\\nvar _quaternion2 = /* @__PURE__ */ new Quaternion();\\nvar Euler = class {\\n  constructor(x = 0, y = 0, z = 0, order = Euler.DefaultOrder) {\\n    this._x = x;\\n    this._y = y;\\n    this._z = z;\\n    this._order = order;\\n  }\\n  get x() {\\n    return this._x;\\n  }\\n  set x(value) {\\n    this._x = value;\\n    this._onChangeCallback();\\n  }\\n  get y() {\\n    return this._y;\\n  }\\n  set y(value) {\\n    this._y = value;\\n    this._onChangeCallback();\\n  }\\n  get z() {\\n    return this._z;\\n  }\\n  set z(value) {\\n    this._z = value;\\n    this._onChangeCallback();\\n  }\\n  get order() {\\n    return this._order;\\n  }\\n  set order(value) {\\n    this._order = value;\\n    this._onChangeCallback();\\n  }\\n  set(x, y, z, order = this._order) {\\n    this._x = x;\\n    this._y = y;\\n    this._z = z;\\n    this._order = order;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  clone() {\\n    return new this.constructor(this._x, this._y, this._z, this._order);\\n  }\\n  copy(euler) {\\n    this._x = euler._x;\\n    this._y = euler._y;\\n    this._z = euler._z;\\n    this._order = euler._order;\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  setFromRotationMatrix(m, order = this._order, update = true) {\\n    const te = m.elements;\\n    const m11 = te[0], m12 = te[4], m13 = te[8];\\n    const m21 = te[1], m22 = te[5], m23 = te[9];\\n    const m31 = te[2], m32 = te[6], m33 = te[10];\\n    switch (order) {\\n      case \\\\\\\"XYZ\\\\\\\":\\n        this._y = Math.asin(clamp(m13, -1, 1));\\n        if (Math.abs(m13) < 0.9999999) {\\n          this._x = Math.atan2(-m23, m33);\\n          this._z = Math.atan2(-m12, m11);\\n        } else {\\n          this._x = Math.atan2(m32, m22);\\n          this._z = 0;\\n        }\\n        break;\\n      case \\\\\\\"YXZ\\\\\\\":\\n        this._x = Math.asin(-clamp(m23, -1, 1));\\n        if (Math.abs(m23) < 0.9999999) {\\n          this._y = Math.atan2(m13, m33);\\n          this._z = Math.atan2(m21, m22);\\n        } else {\\n          this._y = Math.atan2(-m31, m11);\\n          this._z = 0;\\n        }\\n        break;\\n      case \\\\\\\"ZXY\\\\\\\":\\n        this._x = Math.asin(clamp(m32, -1, 1));\\n        if (Math.abs(m32) < 0.9999999) {\\n          this._y = Math.atan2(-m31, m33);\\n          this._z = Math.atan2(-m12, m22);\\n        } else {\\n          this._y = 0;\\n          this._z = Math.atan2(m21, m11);\\n        }\\n        break;\\n      case \\\\\\\"ZYX\\\\\\\":\\n        this._y = Math.asin(-clamp(m31, -1, 1));\\n        if (Math.abs(m31) < 0.9999999) {\\n          this._x = Math.atan2(m32, m33);\\n          this._z = Math.atan2(m21, m11);\\n        } else {\\n          this._x = 0;\\n          this._z = Math.atan2(-m12, m22);\\n        }\\n        break;\\n      case \\\\\\\"YZX\\\\\\\":\\n        this._z = Math.asin(clamp(m21, -1, 1));\\n        if (Math.abs(m21) < 0.9999999) {\\n          this._x = Math.atan2(-m23, m22);\\n          this._y = Math.atan2(-m31, m11);\\n        } else {\\n          this._x = 0;\\n          this._y = Math.atan2(m13, m33);\\n        }\\n        break;\\n      case \\\\\\\"XZY\\\\\\\":\\n        this._z = Math.asin(-clamp(m12, -1, 1));\\n        if (Math.abs(m12) < 0.9999999) {\\n          this._x = Math.atan2(m32, m22);\\n          this._y = Math.atan2(m13, m11);\\n        } else {\\n          this._x = Math.atan2(-m23, m33);\\n          this._y = 0;\\n        }\\n        break;\\n      default:\\n        console.warn(\\\\\\\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \\\\\\\" + order);\\n    }\\n    this._order = order;\\n    if (update === true)\\n      this._onChangeCallback();\\n    return this;\\n  }\\n  setFromQuaternion(q, order, update) {\\n    _matrix.makeRotationFromQuaternion(q);\\n    return this.setFromRotationMatrix(_matrix, order, update);\\n  }\\n  setFromVector3(v, order = this._order) {\\n    return this.set(v.x, v.y, v.z, order);\\n  }\\n  reorder(newOrder) {\\n    _quaternion2.setFromEuler(this);\\n    return this.setFromQuaternion(_quaternion2, newOrder);\\n  }\\n  equals(euler) {\\n    return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\\n  }\\n  fromArray(array) {\\n    this._x = array[0];\\n    this._y = array[1];\\n    this._z = array[2];\\n    if (array[3] !== void 0)\\n      this._order = array[3];\\n    this._onChangeCallback();\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    array[offset] = this._x;\\n    array[offset + 1] = this._y;\\n    array[offset + 2] = this._z;\\n    array[offset + 3] = this._order;\\n    return array;\\n  }\\n  toVector3(optionalResult) {\\n    if (optionalResult) {\\n      return optionalResult.set(this._x, this._y, this._z);\\n    } else {\\n      return new Vector3(this._x, this._y, this._z);\\n    }\\n  }\\n  _onChange(callback) {\\n    this._onChangeCallback = callback;\\n    return this;\\n  }\\n  _onChangeCallback() {\\n  }\\n};\\nEuler.prototype.isEuler = true;\\nEuler.DefaultOrder = \\\\\\\"XYZ\\\\\\\";\\nEuler.RotationOrders = [\\\\\\\"XYZ\\\\\\\", \\\\\\\"YZX\\\\\\\", \\\\\\\"ZXY\\\\\\\", \\\\\\\"XZY\\\\\\\", \\\\\\\"YXZ\\\\\\\", \\\\\\\"ZYX\\\\\\\"];\\n\\n// ../../../node_modules/three/src/core/Layers.js\\nvar Layers = class {\\n  constructor() {\\n    this.mask = 1 | 0;\\n  }\\n  set(channel) {\\n    this.mask = 1 << channel | 0;\\n  }\\n  enable(channel) {\\n    this.mask |= 1 << channel | 0;\\n  }\\n  enableAll() {\\n    this.mask = 4294967295 | 0;\\n  }\\n  toggle(channel) {\\n    this.mask ^= 1 << channel | 0;\\n  }\\n  disable(channel) {\\n    this.mask &= ~(1 << channel | 0);\\n  }\\n  disableAll() {\\n    this.mask = 0;\\n  }\\n  test(layers) {\\n    return (this.mask & layers.mask) !== 0;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/math/Matrix3.js\\nvar Matrix3 = class {\\n  constructor() {\\n    this.elements = [\\n      1,\\n      0,\\n      0,\\n      0,\\n      1,\\n      0,\\n      0,\\n      0,\\n      1\\n    ];\\n    if (arguments.length > 0) {\\n      console.error(\\\\\\\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\\\\\\\");\\n    }\\n  }\\n  set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\\n    const te = this.elements;\\n    te[0] = n11;\\n    te[1] = n21;\\n    te[2] = n31;\\n    te[3] = n12;\\n    te[4] = n22;\\n    te[5] = n32;\\n    te[6] = n13;\\n    te[7] = n23;\\n    te[8] = n33;\\n    return this;\\n  }\\n  identity() {\\n    this.set(1, 0, 0, 0, 1, 0, 0, 0, 1);\\n    return this;\\n  }\\n  copy(m) {\\n    const te = this.elements;\\n    const me = m.elements;\\n    te[0] = me[0];\\n    te[1] = me[1];\\n    te[2] = me[2];\\n    te[3] = me[3];\\n    te[4] = me[4];\\n    te[5] = me[5];\\n    te[6] = me[6];\\n    te[7] = me[7];\\n    te[8] = me[8];\\n    return this;\\n  }\\n  extractBasis(xAxis, yAxis, zAxis) {\\n    xAxis.setFromMatrix3Column(this, 0);\\n    yAxis.setFromMatrix3Column(this, 1);\\n    zAxis.setFromMatrix3Column(this, 2);\\n    return this;\\n  }\\n  setFromMatrix4(m) {\\n    const me = m.elements;\\n    this.set(me[0], me[4], me[8], me[1], me[5], me[9], me[2], me[6], me[10]);\\n    return this;\\n  }\\n  multiply(m) {\\n    return this.multiplyMatrices(this, m);\\n  }\\n  premultiply(m) {\\n    return this.multiplyMatrices(m, this);\\n  }\\n  multiplyMatrices(a, b) {\\n    const ae = a.elements;\\n    const be = b.elements;\\n    const te = this.elements;\\n    const a11 = ae[0], a12 = ae[3], a13 = ae[6];\\n    const a21 = ae[1], a22 = ae[4], a23 = ae[7];\\n    const a31 = ae[2], a32 = ae[5], a33 = ae[8];\\n    const b11 = be[0], b12 = be[3], b13 = be[6];\\n    const b21 = be[1], b22 = be[4], b23 = be[7];\\n    const b31 = be[2], b32 = be[5], b33 = be[8];\\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31;\\n    te[3] = a11 * b12 + a12 * b22 + a13 * b32;\\n    te[6] = a11 * b13 + a12 * b23 + a13 * b33;\\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31;\\n    te[4] = a21 * b12 + a22 * b22 + a23 * b32;\\n    te[7] = a21 * b13 + a22 * b23 + a23 * b33;\\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31;\\n    te[5] = a31 * b12 + a32 * b22 + a33 * b32;\\n    te[8] = a31 * b13 + a32 * b23 + a33 * b33;\\n    return this;\\n  }\\n  multiplyScalar(s) {\\n    const te = this.elements;\\n    te[0] *= s;\\n    te[3] *= s;\\n    te[6] *= s;\\n    te[1] *= s;\\n    te[4] *= s;\\n    te[7] *= s;\\n    te[2] *= s;\\n    te[5] *= s;\\n    te[8] *= s;\\n    return this;\\n  }\\n  determinant() {\\n    const te = this.elements;\\n    const a = te[0], b = te[1], c = te[2], d = te[3], e = te[4], f = te[5], g = te[6], h = te[7], i = te[8];\\n    return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\\n  }\\n  invert() {\\n    const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n12 = te[3], n22 = te[4], n32 = te[5], n13 = te[6], n23 = te[7], n33 = te[8], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13;\\n    if (det === 0)\\n      return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\\n    const detInv = 1 / det;\\n    te[0] = t11 * detInv;\\n    te[1] = (n31 * n23 - n33 * n21) * detInv;\\n    te[2] = (n32 * n21 - n31 * n22) * detInv;\\n    te[3] = t12 * detInv;\\n    te[4] = (n33 * n11 - n31 * n13) * detInv;\\n    te[5] = (n31 * n12 - n32 * n11) * detInv;\\n    te[6] = t13 * detInv;\\n    te[7] = (n21 * n13 - n23 * n11) * detInv;\\n    te[8] = (n22 * n11 - n21 * n12) * detInv;\\n    return this;\\n  }\\n  transpose() {\\n    let tmp;\\n    const m = this.elements;\\n    tmp = m[1];\\n    m[1] = m[3];\\n    m[3] = tmp;\\n    tmp = m[2];\\n    m[2] = m[6];\\n    m[6] = tmp;\\n    tmp = m[5];\\n    m[5] = m[7];\\n    m[7] = tmp;\\n    return this;\\n  }\\n  getNormalMatrix(matrix4) {\\n    return this.setFromMatrix4(matrix4).invert().transpose();\\n  }\\n  transposeIntoArray(r) {\\n    const m = this.elements;\\n    r[0] = m[0];\\n    r[1] = m[3];\\n    r[2] = m[6];\\n    r[3] = m[1];\\n    r[4] = m[4];\\n    r[5] = m[7];\\n    r[6] = m[2];\\n    r[7] = m[5];\\n    r[8] = m[8];\\n    return this;\\n  }\\n  setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\\n    const c = Math.cos(rotation);\\n    const s = Math.sin(rotation);\\n    this.set(sx * c, sx * s, -sx * (c * cx + s * cy) + cx + tx, -sy * s, sy * c, -sy * (-s * cx + c * cy) + cy + ty, 0, 0, 1);\\n    return this;\\n  }\\n  scale(sx, sy) {\\n    const te = this.elements;\\n    te[0] *= sx;\\n    te[3] *= sx;\\n    te[6] *= sx;\\n    te[1] *= sy;\\n    te[4] *= sy;\\n    te[7] *= sy;\\n    return this;\\n  }\\n  rotate(theta) {\\n    const c = Math.cos(theta);\\n    const s = Math.sin(theta);\\n    const te = this.elements;\\n    const a11 = te[0], a12 = te[3], a13 = te[6];\\n    const a21 = te[1], a22 = te[4], a23 = te[7];\\n    te[0] = c * a11 + s * a21;\\n    te[3] = c * a12 + s * a22;\\n    te[6] = c * a13 + s * a23;\\n    te[1] = -s * a11 + c * a21;\\n    te[4] = -s * a12 + c * a22;\\n    te[7] = -s * a13 + c * a23;\\n    return this;\\n  }\\n  translate(tx, ty) {\\n    const te = this.elements;\\n    te[0] += tx * te[2];\\n    te[3] += tx * te[5];\\n    te[6] += tx * te[8];\\n    te[1] += ty * te[2];\\n    te[4] += ty * te[5];\\n    te[7] += ty * te[8];\\n    return this;\\n  }\\n  equals(matrix) {\\n    const te = this.elements;\\n    const me = matrix.elements;\\n    for (let i = 0; i < 9; i++) {\\n      if (te[i] !== me[i])\\n        return false;\\n    }\\n    return true;\\n  }\\n  fromArray(array, offset = 0) {\\n    for (let i = 0; i < 9; i++) {\\n      this.elements[i] = array[i + offset];\\n    }\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    const te = this.elements;\\n    array[offset] = te[0];\\n    array[offset + 1] = te[1];\\n    array[offset + 2] = te[2];\\n    array[offset + 3] = te[3];\\n    array[offset + 4] = te[4];\\n    array[offset + 5] = te[5];\\n    array[offset + 6] = te[6];\\n    array[offset + 7] = te[7];\\n    array[offset + 8] = te[8];\\n    return array;\\n  }\\n  clone() {\\n    return new this.constructor().fromArray(this.elements);\\n  }\\n};\\nMatrix3.prototype.isMatrix3 = true;\\n\\n// ../../../node_modules/three/src/core/Object3D.js\\nvar _object3DId = 0;\\nvar _v12 = /* @__PURE__ */ new Vector3();\\nvar _q1 = /* @__PURE__ */ new Quaternion();\\nvar _m12 = /* @__PURE__ */ new Matrix4();\\nvar _target = /* @__PURE__ */ new Vector3();\\nvar _position = /* @__PURE__ */ new Vector3();\\nvar _scale = /* @__PURE__ */ new Vector3();\\nvar _quaternion3 = /* @__PURE__ */ new Quaternion();\\nvar _xAxis = /* @__PURE__ */ new Vector3(1, 0, 0);\\nvar _yAxis = /* @__PURE__ */ new Vector3(0, 1, 0);\\nvar _zAxis = /* @__PURE__ */ new Vector3(0, 0, 1);\\nvar _addedEvent = {type: \\\\\\\"added\\\\\\\"};\\nvar _removedEvent = {type: \\\\\\\"removed\\\\\\\"};\\nvar Object3D = class extends EventDispatcher {\\n  constructor() {\\n    super();\\n    Object.defineProperty(this, \\\\\\\"id\\\\\\\", {value: _object3DId++});\\n    this.uuid = generateUUID();\\n    this.name = \\\\\\\"\\\\\\\";\\n    this.type = \\\\\\\"Object3D\\\\\\\";\\n    this.parent = null;\\n    this.children = [];\\n    this.up = Object3D.DefaultUp.clone();\\n    const position = new Vector3();\\n    const rotation = new Euler();\\n    const quaternion = new Quaternion();\\n    const scale = new Vector3(1, 1, 1);\\n    function onRotationChange() {\\n      quaternion.setFromEuler(rotation, false);\\n    }\\n    function onQuaternionChange() {\\n      rotation.setFromQuaternion(quaternion, void 0, false);\\n    }\\n    rotation._onChange(onRotationChange);\\n    quaternion._onChange(onQuaternionChange);\\n    Object.defineProperties(this, {\\n      position: {\\n        configurable: true,\\n        enumerable: true,\\n        value: position\\n      },\\n      rotation: {\\n        configurable: true,\\n        enumerable: true,\\n        value: rotation\\n      },\\n      quaternion: {\\n        configurable: true,\\n        enumerable: true,\\n        value: quaternion\\n      },\\n      scale: {\\n        configurable: true,\\n        enumerable: true,\\n        value: scale\\n      },\\n      modelViewMatrix: {\\n        value: new Matrix4()\\n      },\\n      normalMatrix: {\\n        value: new Matrix3()\\n      }\\n    });\\n    this.matrix = new Matrix4();\\n    this.matrixWorld = new Matrix4();\\n    this.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\\n    this.matrixWorldNeedsUpdate = false;\\n    this.layers = new Layers();\\n    this.visible = true;\\n    this.castShadow = false;\\n    this.receiveShadow = false;\\n    this.frustumCulled = true;\\n    this.renderOrder = 0;\\n    this.animations = [];\\n    this.userData = {};\\n  }\\n  onBeforeRender() {\\n  }\\n  onAfterRender() {\\n  }\\n  applyMatrix4(matrix) {\\n    if (this.matrixAutoUpdate)\\n      this.updateMatrix();\\n    this.matrix.premultiply(matrix);\\n    this.matrix.decompose(this.position, this.quaternion, this.scale);\\n  }\\n  applyQuaternion(q) {\\n    this.quaternion.premultiply(q);\\n    return this;\\n  }\\n  setRotationFromAxisAngle(axis, angle) {\\n    this.quaternion.setFromAxisAngle(axis, angle);\\n  }\\n  setRotationFromEuler(euler) {\\n    this.quaternion.setFromEuler(euler, true);\\n  }\\n  setRotationFromMatrix(m) {\\n    this.quaternion.setFromRotationMatrix(m);\\n  }\\n  setRotationFromQuaternion(q) {\\n    this.quaternion.copy(q);\\n  }\\n  rotateOnAxis(axis, angle) {\\n    _q1.setFromAxisAngle(axis, angle);\\n    this.quaternion.multiply(_q1);\\n    return this;\\n  }\\n  rotateOnWorldAxis(axis, angle) {\\n    _q1.setFromAxisAngle(axis, angle);\\n    this.quaternion.premultiply(_q1);\\n    return this;\\n  }\\n  rotateX(angle) {\\n    return this.rotateOnAxis(_xAxis, angle);\\n  }\\n  rotateY(angle) {\\n    return this.rotateOnAxis(_yAxis, angle);\\n  }\\n  rotateZ(angle) {\\n    return this.rotateOnAxis(_zAxis, angle);\\n  }\\n  translateOnAxis(axis, distance) {\\n    _v12.copy(axis).applyQuaternion(this.quaternion);\\n    this.position.add(_v12.multiplyScalar(distance));\\n    return this;\\n  }\\n  translateX(distance) {\\n    return this.translateOnAxis(_xAxis, distance);\\n  }\\n  translateY(distance) {\\n    return this.translateOnAxis(_yAxis, distance);\\n  }\\n  translateZ(distance) {\\n    return this.translateOnAxis(_zAxis, distance);\\n  }\\n  localToWorld(vector) {\\n    return vector.applyMatrix4(this.matrixWorld);\\n  }\\n  worldToLocal(vector) {\\n    return vector.applyMatrix4(_m12.copy(this.matrixWorld).invert());\\n  }\\n  lookAt(x, y, z) {\\n    if (x.isVector3) {\\n      _target.copy(x);\\n    } else {\\n      _target.set(x, y, z);\\n    }\\n    const parent = this.parent;\\n    this.updateWorldMatrix(true, false);\\n    _position.setFromMatrixPosition(this.matrixWorld);\\n    if (this.isCamera || this.isLight) {\\n      _m12.lookAt(_position, _target, this.up);\\n    } else {\\n      _m12.lookAt(_target, _position, this.up);\\n    }\\n    this.quaternion.setFromRotationMatrix(_m12);\\n    if (parent) {\\n      _m12.extractRotation(parent.matrixWorld);\\n      _q1.setFromRotationMatrix(_m12);\\n      this.quaternion.premultiply(_q1.invert());\\n    }\\n  }\\n  add(object) {\\n    if (arguments.length > 1) {\\n      for (let i = 0; i < arguments.length; i++) {\\n        this.add(arguments[i]);\\n      }\\n      return this;\\n    }\\n    if (object === this) {\\n      console.error(\\\\\\\"THREE.Object3D.add: object can't be added as a child of itself.\\\\\\\", object);\\n      return this;\\n    }\\n    if (object && object.isObject3D) {\\n      if (object.parent !== null) {\\n        object.parent.remove(object);\\n      }\\n      object.parent = this;\\n      this.children.push(object);\\n      object.dispatchEvent(_addedEvent);\\n    } else {\\n      console.error(\\\\\\\"THREE.Object3D.add: object not an instance of THREE.Object3D.\\\\\\\", object);\\n    }\\n    return this;\\n  }\\n  remove(object) {\\n    if (arguments.length > 1) {\\n      for (let i = 0; i < arguments.length; i++) {\\n        this.remove(arguments[i]);\\n      }\\n      return this;\\n    }\\n    const index = this.children.indexOf(object);\\n    if (index !== -1) {\\n      object.parent = null;\\n      this.children.splice(index, 1);\\n      object.dispatchEvent(_removedEvent);\\n    }\\n    return this;\\n  }\\n  removeFromParent() {\\n    const parent = this.parent;\\n    if (parent !== null) {\\n      parent.remove(this);\\n    }\\n    return this;\\n  }\\n  clear() {\\n    for (let i = 0; i < this.children.length; i++) {\\n      const object = this.children[i];\\n      object.parent = null;\\n      object.dispatchEvent(_removedEvent);\\n    }\\n    this.children.length = 0;\\n    return this;\\n  }\\n  attach(object) {\\n    this.updateWorldMatrix(true, false);\\n    _m12.copy(this.matrixWorld).invert();\\n    if (object.parent !== null) {\\n      object.parent.updateWorldMatrix(true, false);\\n      _m12.multiply(object.parent.matrixWorld);\\n    }\\n    object.applyMatrix4(_m12);\\n    this.add(object);\\n    object.updateWorldMatrix(false, true);\\n    return this;\\n  }\\n  getObjectById(id) {\\n    return this.getObjectByProperty(\\\\\\\"id\\\\\\\", id);\\n  }\\n  getObjectByName(name) {\\n    return this.getObjectByProperty(\\\\\\\"name\\\\\\\", name);\\n  }\\n  getObjectByProperty(name, value) {\\n    if (this[name] === value)\\n      return this;\\n    for (let i = 0, l = this.children.length; i < l; i++) {\\n      const child = this.children[i];\\n      const object = child.getObjectByProperty(name, value);\\n      if (object !== void 0) {\\n        return object;\\n      }\\n    }\\n    return void 0;\\n  }\\n  getWorldPosition(target) {\\n    this.updateWorldMatrix(true, false);\\n    return target.setFromMatrixPosition(this.matrixWorld);\\n  }\\n  getWorldQuaternion(target) {\\n    this.updateWorldMatrix(true, false);\\n    this.matrixWorld.decompose(_position, target, _scale);\\n    return target;\\n  }\\n  getWorldScale(target) {\\n    this.updateWorldMatrix(true, false);\\n    this.matrixWorld.decompose(_position, _quaternion3, target);\\n    return target;\\n  }\\n  getWorldDirection(target) {\\n    this.updateWorldMatrix(true, false);\\n    const e = this.matrixWorld.elements;\\n    return target.set(e[8], e[9], e[10]).normalize();\\n  }\\n  raycast() {\\n  }\\n  traverse(callback) {\\n    callback(this);\\n    const children = this.children;\\n    for (let i = 0, l = children.length; i < l; i++) {\\n      children[i].traverse(callback);\\n    }\\n  }\\n  traverseVisible(callback) {\\n    if (this.visible === false)\\n      return;\\n    callback(this);\\n    const children = this.children;\\n    for (let i = 0, l = children.length; i < l; i++) {\\n      children[i].traverseVisible(callback);\\n    }\\n  }\\n  traverseAncestors(callback) {\\n    const parent = this.parent;\\n    if (parent !== null) {\\n      callback(parent);\\n      parent.traverseAncestors(callback);\\n    }\\n  }\\n  updateMatrix() {\\n    this.matrix.compose(this.position, this.quaternion, this.scale);\\n    this.matrixWorldNeedsUpdate = true;\\n  }\\n  updateMatrixWorld(force) {\\n    if (this.matrixAutoUpdate)\\n      this.updateMatrix();\\n    if (this.matrixWorldNeedsUpdate || force) {\\n      if (this.parent === null) {\\n        this.matrixWorld.copy(this.matrix);\\n      } else {\\n        this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\\n      }\\n      this.matrixWorldNeedsUpdate = false;\\n      force = true;\\n    }\\n    const children = this.children;\\n    for (let i = 0, l = children.length; i < l; i++) {\\n      children[i].updateMatrixWorld(force);\\n    }\\n  }\\n  updateWorldMatrix(updateParents, updateChildren) {\\n    const parent = this.parent;\\n    if (updateParents === true && parent !== null) {\\n      parent.updateWorldMatrix(true, false);\\n    }\\n    if (this.matrixAutoUpdate)\\n      this.updateMatrix();\\n    if (this.parent === null) {\\n      this.matrixWorld.copy(this.matrix);\\n    } else {\\n      this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\\n    }\\n    if (updateChildren === true) {\\n      const children = this.children;\\n      for (let i = 0, l = children.length; i < l; i++) {\\n        children[i].updateWorldMatrix(false, true);\\n      }\\n    }\\n  }\\n  toJSON(meta) {\\n    const isRootObject = meta === void 0 || typeof meta === \\\\\\\"string\\\\\\\";\\n    const output = {};\\n    if (isRootObject) {\\n      meta = {\\n        geometries: {},\\n        materials: {},\\n        textures: {},\\n        images: {},\\n        shapes: {},\\n        skeletons: {},\\n        animations: {}\\n      };\\n      output.metadata = {\\n        version: 4.5,\\n        type: \\\\\\\"Object\\\\\\\",\\n        generator: \\\\\\\"Object3D.toJSON\\\\\\\"\\n      };\\n    }\\n    const object = {};\\n    object.uuid = this.uuid;\\n    object.type = this.type;\\n    if (this.name !== \\\\\\\"\\\\\\\")\\n      object.name = this.name;\\n    if (this.castShadow === true)\\n      object.castShadow = true;\\n    if (this.receiveShadow === true)\\n      object.receiveShadow = true;\\n    if (this.visible === false)\\n      object.visible = false;\\n    if (this.frustumCulled === false)\\n      object.frustumCulled = false;\\n    if (this.renderOrder !== 0)\\n      object.renderOrder = this.renderOrder;\\n    if (JSON.stringify(this.userData) !== \\\\\\\"{}\\\\\\\")\\n      object.userData = this.userData;\\n    object.layers = this.layers.mask;\\n    object.matrix = this.matrix.toArray();\\n    if (this.matrixAutoUpdate === false)\\n      object.matrixAutoUpdate = false;\\n    if (this.isInstancedMesh) {\\n      object.type = \\\\\\\"InstancedMesh\\\\\\\";\\n      object.count = this.count;\\n      object.instanceMatrix = this.instanceMatrix.toJSON();\\n      if (this.instanceColor !== null)\\n        object.instanceColor = this.instanceColor.toJSON();\\n    }\\n    function serialize(library, element) {\\n      if (library[element.uuid] === void 0) {\\n        library[element.uuid] = element.toJSON(meta);\\n      }\\n      return element.uuid;\\n    }\\n    if (this.isScene) {\\n      if (this.background) {\\n        if (this.background.isColor) {\\n          object.background = this.background.toJSON();\\n        } else if (this.background.isTexture) {\\n          object.background = this.background.toJSON(meta).uuid;\\n        }\\n      }\\n      if (this.environment && this.environment.isTexture) {\\n        object.environment = this.environment.toJSON(meta).uuid;\\n      }\\n    } else if (this.isMesh || this.isLine || this.isPoints) {\\n      object.geometry = serialize(meta.geometries, this.geometry);\\n      const parameters = this.geometry.parameters;\\n      if (parameters !== void 0 && parameters.shapes !== void 0) {\\n        const shapes = parameters.shapes;\\n        if (Array.isArray(shapes)) {\\n          for (let i = 0, l = shapes.length; i < l; i++) {\\n            const shape = shapes[i];\\n            serialize(meta.shapes, shape);\\n          }\\n        } else {\\n          serialize(meta.shapes, shapes);\\n        }\\n      }\\n    }\\n    if (this.isSkinnedMesh) {\\n      object.bindMode = this.bindMode;\\n      object.bindMatrix = this.bindMatrix.toArray();\\n      if (this.skeleton !== void 0) {\\n        serialize(meta.skeletons, this.skeleton);\\n        object.skeleton = this.skeleton.uuid;\\n      }\\n    }\\n    if (this.material !== void 0) {\\n      if (Array.isArray(this.material)) {\\n        const uuids = [];\\n        for (let i = 0, l = this.material.length; i < l; i++) {\\n          uuids.push(serialize(meta.materials, this.material[i]));\\n        }\\n        object.material = uuids;\\n      } else {\\n        object.material = serialize(meta.materials, this.material);\\n      }\\n    }\\n    if (this.children.length > 0) {\\n      object.children = [];\\n      for (let i = 0; i < this.children.length; i++) {\\n        object.children.push(this.children[i].toJSON(meta).object);\\n      }\\n    }\\n    if (this.animations.length > 0) {\\n      object.animations = [];\\n      for (let i = 0; i < this.animations.length; i++) {\\n        const animation = this.animations[i];\\n        object.animations.push(serialize(meta.animations, animation));\\n      }\\n    }\\n    if (isRootObject) {\\n      const geometries = extractFromCache(meta.geometries);\\n      const materials2 = extractFromCache(meta.materials);\\n      const textures = extractFromCache(meta.textures);\\n      const images = extractFromCache(meta.images);\\n      const shapes = extractFromCache(meta.shapes);\\n      const skeletons = extractFromCache(meta.skeletons);\\n      const animations = extractFromCache(meta.animations);\\n      if (geometries.length > 0)\\n        output.geometries = geometries;\\n      if (materials2.length > 0)\\n        output.materials = materials2;\\n      if (textures.length > 0)\\n        output.textures = textures;\\n      if (images.length > 0)\\n        output.images = images;\\n      if (shapes.length > 0)\\n        output.shapes = shapes;\\n      if (skeletons.length > 0)\\n        output.skeletons = skeletons;\\n      if (animations.length > 0)\\n        output.animations = animations;\\n    }\\n    output.object = object;\\n    return output;\\n    function extractFromCache(cache) {\\n      const values = [];\\n      for (const key in cache) {\\n        const data = cache[key];\\n        delete data.metadata;\\n        values.push(data);\\n      }\\n      return values;\\n    }\\n  }\\n  clone(recursive) {\\n    return new this.constructor().copy(this, recursive);\\n  }\\n  copy(source, recursive = true) {\\n    this.name = source.name;\\n    this.up.copy(source.up);\\n    this.position.copy(source.position);\\n    this.rotation.order = source.rotation.order;\\n    this.quaternion.copy(source.quaternion);\\n    this.scale.copy(source.scale);\\n    this.matrix.copy(source.matrix);\\n    this.matrixWorld.copy(source.matrixWorld);\\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\\n    this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\\n    this.layers.mask = source.layers.mask;\\n    this.visible = source.visible;\\n    this.castShadow = source.castShadow;\\n    this.receiveShadow = source.receiveShadow;\\n    this.frustumCulled = source.frustumCulled;\\n    this.renderOrder = source.renderOrder;\\n    this.userData = JSON.parse(JSON.stringify(source.userData));\\n    if (recursive === true) {\\n      for (let i = 0; i < source.children.length; i++) {\\n        const child = source.children[i];\\n        this.add(child.clone());\\n      }\\n    }\\n    return this;\\n  }\\n};\\nObject3D.DefaultUp = new Vector3(0, 1, 0);\\nObject3D.DefaultMatrixAutoUpdate = true;\\nObject3D.prototype.isObject3D = true;\\n\\n// ../../../node_modules/three/src/constants.js\\nvar CullFaceNone = 0;\\nvar CullFaceBack = 1;\\nvar CullFaceFront = 2;\\nvar PCFShadowMap = 1;\\nvar PCFSoftShadowMap = 2;\\nvar VSMShadowMap = 3;\\nvar FrontSide = 0;\\nvar BackSide = 1;\\nvar DoubleSide = 2;\\nvar FlatShading = 1;\\nvar NoBlending = 0;\\nvar NormalBlending = 1;\\nvar AdditiveBlending = 2;\\nvar SubtractiveBlending = 3;\\nvar MultiplyBlending = 4;\\nvar CustomBlending = 5;\\nvar AddEquation = 100;\\nvar SubtractEquation = 101;\\nvar ReverseSubtractEquation = 102;\\nvar MinEquation = 103;\\nvar MaxEquation = 104;\\nvar ZeroFactor = 200;\\nvar OneFactor = 201;\\nvar SrcColorFactor = 202;\\nvar OneMinusSrcColorFactor = 203;\\nvar SrcAlphaFactor = 204;\\nvar OneMinusSrcAlphaFactor = 205;\\nvar DstAlphaFactor = 206;\\nvar OneMinusDstAlphaFactor = 207;\\nvar DstColorFactor = 208;\\nvar OneMinusDstColorFactor = 209;\\nvar SrcAlphaSaturateFactor = 210;\\nvar NeverDepth = 0;\\nvar AlwaysDepth = 1;\\nvar LessDepth = 2;\\nvar LessEqualDepth = 3;\\nvar EqualDepth = 4;\\nvar GreaterEqualDepth = 5;\\nvar GreaterDepth = 6;\\nvar NotEqualDepth = 7;\\nvar MultiplyOperation = 0;\\nvar MixOperation = 1;\\nvar AddOperation = 2;\\nvar NoToneMapping = 0;\\nvar LinearToneMapping = 1;\\nvar ReinhardToneMapping = 2;\\nvar CineonToneMapping = 3;\\nvar ACESFilmicToneMapping = 4;\\nvar CustomToneMapping = 5;\\nvar UVMapping = 300;\\nvar CubeReflectionMapping = 301;\\nvar CubeRefractionMapping = 302;\\nvar EquirectangularReflectionMapping = 303;\\nvar EquirectangularRefractionMapping = 304;\\nvar CubeUVReflectionMapping = 306;\\nvar CubeUVRefractionMapping = 307;\\nvar RepeatWrapping = 1e3;\\nvar ClampToEdgeWrapping = 1001;\\nvar MirroredRepeatWrapping = 1002;\\nvar NearestFilter = 1003;\\nvar NearestMipmapNearestFilter = 1004;\\nvar NearestMipmapLinearFilter = 1005;\\nvar LinearFilter = 1006;\\nvar LinearMipmapNearestFilter = 1007;\\nvar LinearMipmapLinearFilter = 1008;\\nvar UnsignedByteType = 1009;\\nvar ByteType = 1010;\\nvar ShortType = 1011;\\nvar UnsignedShortType = 1012;\\nvar IntType = 1013;\\nvar UnsignedIntType = 1014;\\nvar FloatType = 1015;\\nvar HalfFloatType = 1016;\\nvar UnsignedShort4444Type = 1017;\\nvar UnsignedShort5551Type = 1018;\\nvar UnsignedShort565Type = 1019;\\nvar UnsignedInt248Type = 1020;\\nvar AlphaFormat = 1021;\\nvar RGBFormat = 1022;\\nvar RGBAFormat = 1023;\\nvar LuminanceFormat = 1024;\\nvar LuminanceAlphaFormat = 1025;\\nvar RGBEFormat = RGBAFormat;\\nvar DepthFormat = 1026;\\nvar DepthStencilFormat = 1027;\\nvar RedFormat = 1028;\\nvar RedIntegerFormat = 1029;\\nvar RGFormat = 1030;\\nvar RGIntegerFormat = 1031;\\nvar RGBIntegerFormat = 1032;\\nvar RGBAIntegerFormat = 1033;\\nvar RGB_S3TC_DXT1_Format = 33776;\\nvar RGBA_S3TC_DXT1_Format = 33777;\\nvar RGBA_S3TC_DXT3_Format = 33778;\\nvar RGBA_S3TC_DXT5_Format = 33779;\\nvar RGB_PVRTC_4BPPV1_Format = 35840;\\nvar RGB_PVRTC_2BPPV1_Format = 35841;\\nvar RGBA_PVRTC_4BPPV1_Format = 35842;\\nvar RGBA_PVRTC_2BPPV1_Format = 35843;\\nvar RGB_ETC1_Format = 36196;\\nvar RGB_ETC2_Format = 37492;\\nvar RGBA_ETC2_EAC_Format = 37496;\\nvar RGBA_ASTC_4x4_Format = 37808;\\nvar RGBA_ASTC_5x4_Format = 37809;\\nvar RGBA_ASTC_5x5_Format = 37810;\\nvar RGBA_ASTC_6x5_Format = 37811;\\nvar RGBA_ASTC_6x6_Format = 37812;\\nvar RGBA_ASTC_8x5_Format = 37813;\\nvar RGBA_ASTC_8x6_Format = 37814;\\nvar RGBA_ASTC_8x8_Format = 37815;\\nvar RGBA_ASTC_10x5_Format = 37816;\\nvar RGBA_ASTC_10x6_Format = 37817;\\nvar RGBA_ASTC_10x8_Format = 37818;\\nvar RGBA_ASTC_10x10_Format = 37819;\\nvar RGBA_ASTC_12x10_Format = 37820;\\nvar RGBA_ASTC_12x12_Format = 37821;\\nvar RGBA_BPTC_Format = 36492;\\nvar SRGB8_ALPHA8_ASTC_4x4_Format = 37840;\\nvar SRGB8_ALPHA8_ASTC_5x4_Format = 37841;\\nvar SRGB8_ALPHA8_ASTC_5x5_Format = 37842;\\nvar SRGB8_ALPHA8_ASTC_6x5_Format = 37843;\\nvar SRGB8_ALPHA8_ASTC_6x6_Format = 37844;\\nvar SRGB8_ALPHA8_ASTC_8x5_Format = 37845;\\nvar SRGB8_ALPHA8_ASTC_8x6_Format = 37846;\\nvar SRGB8_ALPHA8_ASTC_8x8_Format = 37847;\\nvar SRGB8_ALPHA8_ASTC_10x5_Format = 37848;\\nvar SRGB8_ALPHA8_ASTC_10x6_Format = 37849;\\nvar SRGB8_ALPHA8_ASTC_10x8_Format = 37850;\\nvar SRGB8_ALPHA8_ASTC_10x10_Format = 37851;\\nvar SRGB8_ALPHA8_ASTC_12x10_Format = 37852;\\nvar SRGB8_ALPHA8_ASTC_12x12_Format = 37853;\\nvar ZeroCurvatureEnding = 2400;\\nvar ZeroSlopeEnding = 2401;\\nvar WrapAroundEnding = 2402;\\nvar LinearEncoding = 3e3;\\nvar sRGBEncoding = 3001;\\nvar GammaEncoding = 3007;\\nvar RGBEEncoding = 3002;\\nvar LogLuvEncoding = 3003;\\nvar RGBM7Encoding = 3004;\\nvar RGBM16Encoding = 3005;\\nvar RGBDEncoding = 3006;\\nvar BasicDepthPacking = 3200;\\nvar RGBADepthPacking = 3201;\\nvar TangentSpaceNormalMap = 0;\\nvar ObjectSpaceNormalMap = 1;\\nvar KeepStencilOp = 7680;\\nvar AlwaysStencilFunc = 519;\\nvar StaticDrawUsage = 35044;\\nvar GLSL3 = \\\\\\\"300 es\\\\\\\";\\n\\n// ../../../node_modules/three/src/math/Box3.js\\nvar Box3 = class {\\n  constructor(min = new Vector3(Infinity, Infinity, Infinity), max = new Vector3(-Infinity, -Infinity, -Infinity)) {\\n    this.min = min;\\n    this.max = max;\\n  }\\n  set(min, max) {\\n    this.min.copy(min);\\n    this.max.copy(max);\\n    return this;\\n  }\\n  setFromArray(array) {\\n    let minX = Infinity;\\n    let minY = Infinity;\\n    let minZ = Infinity;\\n    let maxX = -Infinity;\\n    let maxY = -Infinity;\\n    let maxZ = -Infinity;\\n    for (let i = 0, l = array.length; i < l; i += 3) {\\n      const x = array[i];\\n      const y = array[i + 1];\\n      const z = array[i + 2];\\n      if (x < minX)\\n        minX = x;\\n      if (y < minY)\\n        minY = y;\\n      if (z < minZ)\\n        minZ = z;\\n      if (x > maxX)\\n        maxX = x;\\n      if (y > maxY)\\n        maxY = y;\\n      if (z > maxZ)\\n        maxZ = z;\\n    }\\n    this.min.set(minX, minY, minZ);\\n    this.max.set(maxX, maxY, maxZ);\\n    return this;\\n  }\\n  setFromBufferAttribute(attribute) {\\n    let minX = Infinity;\\n    let minY = Infinity;\\n    let minZ = Infinity;\\n    let maxX = -Infinity;\\n    let maxY = -Infinity;\\n    let maxZ = -Infinity;\\n    for (let i = 0, l = attribute.count; i < l; i++) {\\n      const x = attribute.getX(i);\\n      const y = attribute.getY(i);\\n      const z = attribute.getZ(i);\\n      if (x < minX)\\n        minX = x;\\n      if (y < minY)\\n        minY = y;\\n      if (z < minZ)\\n        minZ = z;\\n      if (x > maxX)\\n        maxX = x;\\n      if (y > maxY)\\n        maxY = y;\\n      if (z > maxZ)\\n        maxZ = z;\\n    }\\n    this.min.set(minX, minY, minZ);\\n    this.max.set(maxX, maxY, maxZ);\\n    return this;\\n  }\\n  setFromPoints(points2) {\\n    this.makeEmpty();\\n    for (let i = 0, il = points2.length; i < il; i++) {\\n      this.expandByPoint(points2[i]);\\n    }\\n    return this;\\n  }\\n  setFromCenterAndSize(center, size) {\\n    const halfSize = _vector2.copy(size).multiplyScalar(0.5);\\n    this.min.copy(center).sub(halfSize);\\n    this.max.copy(center).add(halfSize);\\n    return this;\\n  }\\n  setFromObject(object) {\\n    this.makeEmpty();\\n    return this.expandByObject(object);\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n  copy(box) {\\n    this.min.copy(box.min);\\n    this.max.copy(box.max);\\n    return this;\\n  }\\n  makeEmpty() {\\n    this.min.x = this.min.y = this.min.z = Infinity;\\n    this.max.x = this.max.y = this.max.z = -Infinity;\\n    return this;\\n  }\\n  isEmpty() {\\n    return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\\n  }\\n  getCenter(target) {\\n    return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\\n  }\\n  getSize(target) {\\n    return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\\n  }\\n  expandByPoint(point) {\\n    this.min.min(point);\\n    this.max.max(point);\\n    return this;\\n  }\\n  expandByVector(vector) {\\n    this.min.sub(vector);\\n    this.max.add(vector);\\n    return this;\\n  }\\n  expandByScalar(scalar) {\\n    this.min.addScalar(-scalar);\\n    this.max.addScalar(scalar);\\n    return this;\\n  }\\n  expandByObject(object) {\\n    object.updateWorldMatrix(false, false);\\n    const geometry = object.geometry;\\n    if (geometry !== void 0) {\\n      if (geometry.boundingBox === null) {\\n        geometry.computeBoundingBox();\\n      }\\n      _box.copy(geometry.boundingBox);\\n      _box.applyMatrix4(object.matrixWorld);\\n      this.union(_box);\\n    }\\n    const children = object.children;\\n    for (let i = 0, l = children.length; i < l; i++) {\\n      this.expandByObject(children[i]);\\n    }\\n    return this;\\n  }\\n  containsPoint(point) {\\n    return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true;\\n  }\\n  containsBox(box) {\\n    return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\\n  }\\n  getParameter(point, target) {\\n    return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z));\\n  }\\n  intersectsBox(box) {\\n    return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true;\\n  }\\n  intersectsSphere(sphere) {\\n    this.clampPoint(sphere.center, _vector2);\\n    return _vector2.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\\n  }\\n  intersectsPlane(plane) {\\n    let min, max;\\n    if (plane.normal.x > 0) {\\n      min = plane.normal.x * this.min.x;\\n      max = plane.normal.x * this.max.x;\\n    } else {\\n      min = plane.normal.x * this.max.x;\\n      max = plane.normal.x * this.min.x;\\n    }\\n    if (plane.normal.y > 0) {\\n      min += plane.normal.y * this.min.y;\\n      max += plane.normal.y * this.max.y;\\n    } else {\\n      min += plane.normal.y * this.max.y;\\n      max += plane.normal.y * this.min.y;\\n    }\\n    if (plane.normal.z > 0) {\\n      min += plane.normal.z * this.min.z;\\n      max += plane.normal.z * this.max.z;\\n    } else {\\n      min += plane.normal.z * this.max.z;\\n      max += plane.normal.z * this.min.z;\\n    }\\n    return min <= -plane.constant && max >= -plane.constant;\\n  }\\n  intersectsTriangle(triangle) {\\n    if (this.isEmpty()) {\\n      return false;\\n    }\\n    this.getCenter(_center);\\n    _extents.subVectors(this.max, _center);\\n    _v0.subVectors(triangle.a, _center);\\n    _v13.subVectors(triangle.b, _center);\\n    _v2.subVectors(triangle.c, _center);\\n    _f0.subVectors(_v13, _v0);\\n    _f1.subVectors(_v2, _v13);\\n    _f2.subVectors(_v0, _v2);\\n    let axes = [\\n      0,\\n      -_f0.z,\\n      _f0.y,\\n      0,\\n      -_f1.z,\\n      _f1.y,\\n      0,\\n      -_f2.z,\\n      _f2.y,\\n      _f0.z,\\n      0,\\n      -_f0.x,\\n      _f1.z,\\n      0,\\n      -_f1.x,\\n      _f2.z,\\n      0,\\n      -_f2.x,\\n      -_f0.y,\\n      _f0.x,\\n      0,\\n      -_f1.y,\\n      _f1.x,\\n      0,\\n      -_f2.y,\\n      _f2.x,\\n      0\\n    ];\\n    if (!satForAxes(axes, _v0, _v13, _v2, _extents)) {\\n      return false;\\n    }\\n    axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\\n    if (!satForAxes(axes, _v0, _v13, _v2, _extents)) {\\n      return false;\\n    }\\n    _triangleNormal.crossVectors(_f0, _f1);\\n    axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\\n    return satForAxes(axes, _v0, _v13, _v2, _extents);\\n  }\\n  clampPoint(point, target) {\\n    return target.copy(point).clamp(this.min, this.max);\\n  }\\n  distanceToPoint(point) {\\n    const clampedPoint = _vector2.copy(point).clamp(this.min, this.max);\\n    return clampedPoint.sub(point).length();\\n  }\\n  getBoundingSphere(target) {\\n    this.getCenter(target.center);\\n    target.radius = this.getSize(_vector2).length() * 0.5;\\n    return target;\\n  }\\n  intersect(box) {\\n    this.min.max(box.min);\\n    this.max.min(box.max);\\n    if (this.isEmpty())\\n      this.makeEmpty();\\n    return this;\\n  }\\n  union(box) {\\n    this.min.min(box.min);\\n    this.max.max(box.max);\\n    return this;\\n  }\\n  applyMatrix4(matrix) {\\n    if (this.isEmpty())\\n      return this;\\n    _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix);\\n    _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix);\\n    _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix);\\n    _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix);\\n    _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix);\\n    _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix);\\n    _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix);\\n    _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix);\\n    this.setFromPoints(_points);\\n    return this;\\n  }\\n  translate(offset) {\\n    this.min.add(offset);\\n    this.max.add(offset);\\n    return this;\\n  }\\n  equals(box) {\\n    return box.min.equals(this.min) && box.max.equals(this.max);\\n  }\\n};\\nBox3.prototype.isBox3 = true;\\nvar _points = [\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3(),\\n  /* @__PURE__ */ new Vector3()\\n];\\nvar _vector2 = /* @__PURE__ */ new Vector3();\\nvar _box = /* @__PURE__ */ new Box3();\\nvar _v0 = /* @__PURE__ */ new Vector3();\\nvar _v13 = /* @__PURE__ */ new Vector3();\\nvar _v2 = /* @__PURE__ */ new Vector3();\\nvar _f0 = /* @__PURE__ */ new Vector3();\\nvar _f1 = /* @__PURE__ */ new Vector3();\\nvar _f2 = /* @__PURE__ */ new Vector3();\\nvar _center = /* @__PURE__ */ new Vector3();\\nvar _extents = /* @__PURE__ */ new Vector3();\\nvar _triangleNormal = /* @__PURE__ */ new Vector3();\\nvar _testAxis = /* @__PURE__ */ new Vector3();\\nfunction satForAxes(axes, v0, v1, v2, extents) {\\n  for (let i = 0, j = axes.length - 3; i <= j; i += 3) {\\n    _testAxis.fromArray(axes, i);\\n    const r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z);\\n    const p0 = v0.dot(_testAxis);\\n    const p1 = v1.dot(_testAxis);\\n    const p2 = v2.dot(_testAxis);\\n    if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\\n      return false;\\n    }\\n  }\\n  return true;\\n}\\n\\n// ../../../node_modules/three/src/math/Sphere.js\\nvar _box2 = /* @__PURE__ */ new Box3();\\nvar _v14 = /* @__PURE__ */ new Vector3();\\nvar _toFarthestPoint = /* @__PURE__ */ new Vector3();\\nvar _toPoint = /* @__PURE__ */ new Vector3();\\nvar Sphere = class {\\n  constructor(center = new Vector3(), radius = -1) {\\n    this.center = center;\\n    this.radius = radius;\\n  }\\n  set(center, radius) {\\n    this.center.copy(center);\\n    this.radius = radius;\\n    return this;\\n  }\\n  setFromPoints(points2, optionalCenter) {\\n    const center = this.center;\\n    if (optionalCenter !== void 0) {\\n      center.copy(optionalCenter);\\n    } else {\\n      _box2.setFromPoints(points2).getCenter(center);\\n    }\\n    let maxRadiusSq = 0;\\n    for (let i = 0, il = points2.length; i < il; i++) {\\n      maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points2[i]));\\n    }\\n    this.radius = Math.sqrt(maxRadiusSq);\\n    return this;\\n  }\\n  copy(sphere) {\\n    this.center.copy(sphere.center);\\n    this.radius = sphere.radius;\\n    return this;\\n  }\\n  isEmpty() {\\n    return this.radius < 0;\\n  }\\n  makeEmpty() {\\n    this.center.set(0, 0, 0);\\n    this.radius = -1;\\n    return this;\\n  }\\n  containsPoint(point) {\\n    return point.distanceToSquared(this.center) <= this.radius * this.radius;\\n  }\\n  distanceToPoint(point) {\\n    return point.distanceTo(this.center) - this.radius;\\n  }\\n  intersectsSphere(sphere) {\\n    const radiusSum = this.radius + sphere.radius;\\n    return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\\n  }\\n  intersectsBox(box) {\\n    return box.intersectsSphere(this);\\n  }\\n  intersectsPlane(plane) {\\n    return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\\n  }\\n  clampPoint(point, target) {\\n    const deltaLengthSq = this.center.distanceToSquared(point);\\n    target.copy(point);\\n    if (deltaLengthSq > this.radius * this.radius) {\\n      target.sub(this.center).normalize();\\n      target.multiplyScalar(this.radius).add(this.center);\\n    }\\n    return target;\\n  }\\n  getBoundingBox(target) {\\n    if (this.isEmpty()) {\\n      target.makeEmpty();\\n      return target;\\n    }\\n    target.set(this.center, this.center);\\n    target.expandByScalar(this.radius);\\n    return target;\\n  }\\n  applyMatrix4(matrix) {\\n    this.center.applyMatrix4(matrix);\\n    this.radius = this.radius * matrix.getMaxScaleOnAxis();\\n    return this;\\n  }\\n  translate(offset) {\\n    this.center.add(offset);\\n    return this;\\n  }\\n  expandByPoint(point) {\\n    _toPoint.subVectors(point, this.center);\\n    const lengthSq = _toPoint.lengthSq();\\n    if (lengthSq > this.radius * this.radius) {\\n      const length = Math.sqrt(lengthSq);\\n      const missingRadiusHalf = (length - this.radius) * 0.5;\\n      this.center.add(_toPoint.multiplyScalar(missingRadiusHalf / length));\\n      this.radius += missingRadiusHalf;\\n    }\\n    return this;\\n  }\\n  union(sphere) {\\n    _toFarthestPoint.subVectors(sphere.center, this.center).normalize().multiplyScalar(sphere.radius);\\n    this.expandByPoint(_v14.copy(sphere.center).add(_toFarthestPoint));\\n    this.expandByPoint(_v14.copy(sphere.center).sub(_toFarthestPoint));\\n    return this;\\n  }\\n  equals(sphere) {\\n    return sphere.center.equals(this.center) && sphere.radius === this.radius;\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/math/Plane.js\\nvar _vector1 = /* @__PURE__ */ new Vector3();\\nvar _vector22 = /* @__PURE__ */ new Vector3();\\nvar _normalMatrix = /* @__PURE__ */ new Matrix3();\\nvar Plane = class {\\n  constructor(normal = new Vector3(1, 0, 0), constant = 0) {\\n    this.normal = normal;\\n    this.constant = constant;\\n  }\\n  set(normal, constant) {\\n    this.normal.copy(normal);\\n    this.constant = constant;\\n    return this;\\n  }\\n  setComponents(x, y, z, w) {\\n    this.normal.set(x, y, z);\\n    this.constant = w;\\n    return this;\\n  }\\n  setFromNormalAndCoplanarPoint(normal, point) {\\n    this.normal.copy(normal);\\n    this.constant = -point.dot(this.normal);\\n    return this;\\n  }\\n  setFromCoplanarPoints(a, b, c) {\\n    const normal = _vector1.subVectors(c, b).cross(_vector22.subVectors(a, b)).normalize();\\n    this.setFromNormalAndCoplanarPoint(normal, a);\\n    return this;\\n  }\\n  copy(plane) {\\n    this.normal.copy(plane.normal);\\n    this.constant = plane.constant;\\n    return this;\\n  }\\n  normalize() {\\n    const inverseNormalLength = 1 / this.normal.length();\\n    this.normal.multiplyScalar(inverseNormalLength);\\n    this.constant *= inverseNormalLength;\\n    return this;\\n  }\\n  negate() {\\n    this.constant *= -1;\\n    this.normal.negate();\\n    return this;\\n  }\\n  distanceToPoint(point) {\\n    return this.normal.dot(point) + this.constant;\\n  }\\n  distanceToSphere(sphere) {\\n    return this.distanceToPoint(sphere.center) - sphere.radius;\\n  }\\n  projectPoint(point, target) {\\n    return target.copy(this.normal).multiplyScalar(-this.distanceToPoint(point)).add(point);\\n  }\\n  intersectLine(line, target) {\\n    const direction = line.delta(_vector1);\\n    const denominator = this.normal.dot(direction);\\n    if (denominator === 0) {\\n      if (this.distanceToPoint(line.start) === 0) {\\n        return target.copy(line.start);\\n      }\\n      return null;\\n    }\\n    const t = -(line.start.dot(this.normal) + this.constant) / denominator;\\n    if (t < 0 || t > 1) {\\n      return null;\\n    }\\n    return target.copy(direction).multiplyScalar(t).add(line.start);\\n  }\\n  intersectsLine(line) {\\n    const startSign = this.distanceToPoint(line.start);\\n    const endSign = this.distanceToPoint(line.end);\\n    return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\\n  }\\n  intersectsBox(box) {\\n    return box.intersectsPlane(this);\\n  }\\n  intersectsSphere(sphere) {\\n    return sphere.intersectsPlane(this);\\n  }\\n  coplanarPoint(target) {\\n    return target.copy(this.normal).multiplyScalar(-this.constant);\\n  }\\n  applyMatrix4(matrix, optionalNormalMatrix) {\\n    const normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\\n    const referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\\n    const normal = this.normal.applyMatrix3(normalMatrix).normalize();\\n    this.constant = -referencePoint.dot(normal);\\n    return this;\\n  }\\n  translate(offset) {\\n    this.constant -= offset.dot(this.normal);\\n    return this;\\n  }\\n  equals(plane) {\\n    return plane.normal.equals(this.normal) && plane.constant === this.constant;\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n};\\nPlane.prototype.isPlane = true;\\n\\n// ../../../node_modules/three/src/math/Frustum.js\\nvar _sphere = /* @__PURE__ */ new Sphere();\\nvar _vector3 = /* @__PURE__ */ new Vector3();\\nvar Frustum = class {\\n  constructor(p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane()) {\\n    this.planes = [p0, p1, p2, p3, p4, p5];\\n  }\\n  set(p0, p1, p2, p3, p4, p5) {\\n    const planes = this.planes;\\n    planes[0].copy(p0);\\n    planes[1].copy(p1);\\n    planes[2].copy(p2);\\n    planes[3].copy(p3);\\n    planes[4].copy(p4);\\n    planes[5].copy(p5);\\n    return this;\\n  }\\n  copy(frustum) {\\n    const planes = this.planes;\\n    for (let i = 0; i < 6; i++) {\\n      planes[i].copy(frustum.planes[i]);\\n    }\\n    return this;\\n  }\\n  setFromProjectionMatrix(m) {\\n    const planes = this.planes;\\n    const me = m.elements;\\n    const me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];\\n    const me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];\\n    const me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11];\\n    const me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15];\\n    planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\\n    planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\\n    planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\\n    planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\\n    planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\\n    planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\\n    return this;\\n  }\\n  intersectsObject(object) {\\n    const geometry = object.geometry;\\n    if (geometry.boundingSphere === null)\\n      geometry.computeBoundingSphere();\\n    _sphere.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\\n    return this.intersectsSphere(_sphere);\\n  }\\n  intersectsSprite(sprite2) {\\n    _sphere.center.set(0, 0, 0);\\n    _sphere.radius = 0.7071067811865476;\\n    _sphere.applyMatrix4(sprite2.matrixWorld);\\n    return this.intersectsSphere(_sphere);\\n  }\\n  intersectsSphere(sphere) {\\n    const planes = this.planes;\\n    const center = sphere.center;\\n    const negRadius = -sphere.radius;\\n    for (let i = 0; i < 6; i++) {\\n      const distance = planes[i].distanceToPoint(center);\\n      if (distance < negRadius) {\\n        return false;\\n      }\\n    }\\n    return true;\\n  }\\n  intersectsBox(box) {\\n    const planes = this.planes;\\n    for (let i = 0; i < 6; i++) {\\n      const plane = planes[i];\\n      _vector3.x = plane.normal.x > 0 ? box.max.x : box.min.x;\\n      _vector3.y = plane.normal.y > 0 ? box.max.y : box.min.y;\\n      _vector3.z = plane.normal.z > 0 ? box.max.z : box.min.z;\\n      if (plane.distanceToPoint(_vector3) < 0) {\\n        return false;\\n      }\\n    }\\n    return true;\\n  }\\n  containsPoint(point) {\\n    const planes = this.planes;\\n    for (let i = 0; i < 6; i++) {\\n      if (planes[i].distanceToPoint(point) < 0) {\\n        return false;\\n      }\\n    }\\n    return true;\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/math/Vector4.js\\nvar Vector4 = class {\\n  constructor(x = 0, y = 0, z = 0, w = 1) {\\n    this.x = x;\\n    this.y = y;\\n    this.z = z;\\n    this.w = w;\\n  }\\n  get width() {\\n    return this.z;\\n  }\\n  set width(value) {\\n    this.z = value;\\n  }\\n  get height() {\\n    return this.w;\\n  }\\n  set height(value) {\\n    this.w = value;\\n  }\\n  set(x, y, z, w) {\\n    this.x = x;\\n    this.y = y;\\n    this.z = z;\\n    this.w = w;\\n    return this;\\n  }\\n  setScalar(scalar) {\\n    this.x = scalar;\\n    this.y = scalar;\\n    this.z = scalar;\\n    this.w = scalar;\\n    return this;\\n  }\\n  setX(x) {\\n    this.x = x;\\n    return this;\\n  }\\n  setY(y) {\\n    this.y = y;\\n    return this;\\n  }\\n  setZ(z) {\\n    this.z = z;\\n    return this;\\n  }\\n  setW(w) {\\n    this.w = w;\\n    return this;\\n  }\\n  setComponent(index, value) {\\n    switch (index) {\\n      case 0:\\n        this.x = value;\\n        break;\\n      case 1:\\n        this.y = value;\\n        break;\\n      case 2:\\n        this.z = value;\\n        break;\\n      case 3:\\n        this.w = value;\\n        break;\\n      default:\\n        throw new Error(\\\\\\\"index is out of range: \\\\\\\" + index);\\n    }\\n    return this;\\n  }\\n  getComponent(index) {\\n    switch (index) {\\n      case 0:\\n        return this.x;\\n      case 1:\\n        return this.y;\\n      case 2:\\n        return this.z;\\n      case 3:\\n        return this.w;\\n      default:\\n        throw new Error(\\\\\\\"index is out of range: \\\\\\\" + index);\\n    }\\n  }\\n  clone() {\\n    return new this.constructor(this.x, this.y, this.z, this.w);\\n  }\\n  copy(v) {\\n    this.x = v.x;\\n    this.y = v.y;\\n    this.z = v.z;\\n    this.w = v.w !== void 0 ? v.w : 1;\\n    return this;\\n  }\\n  add(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\");\\n      return this.addVectors(v, w);\\n    }\\n    this.x += v.x;\\n    this.y += v.y;\\n    this.z += v.z;\\n    this.w += v.w;\\n    return this;\\n  }\\n  addScalar(s) {\\n    this.x += s;\\n    this.y += s;\\n    this.z += s;\\n    this.w += s;\\n    return this;\\n  }\\n  addVectors(a, b) {\\n    this.x = a.x + b.x;\\n    this.y = a.y + b.y;\\n    this.z = a.z + b.z;\\n    this.w = a.w + b.w;\\n    return this;\\n  }\\n  addScaledVector(v, s) {\\n    this.x += v.x * s;\\n    this.y += v.y * s;\\n    this.z += v.z * s;\\n    this.w += v.w * s;\\n    return this;\\n  }\\n  sub(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\");\\n      return this.subVectors(v, w);\\n    }\\n    this.x -= v.x;\\n    this.y -= v.y;\\n    this.z -= v.z;\\n    this.w -= v.w;\\n    return this;\\n  }\\n  subScalar(s) {\\n    this.x -= s;\\n    this.y -= s;\\n    this.z -= s;\\n    this.w -= s;\\n    return this;\\n  }\\n  subVectors(a, b) {\\n    this.x = a.x - b.x;\\n    this.y = a.y - b.y;\\n    this.z = a.z - b.z;\\n    this.w = a.w - b.w;\\n    return this;\\n  }\\n  multiply(v) {\\n    this.x *= v.x;\\n    this.y *= v.y;\\n    this.z *= v.z;\\n    this.w *= v.w;\\n    return this;\\n  }\\n  multiplyScalar(scalar) {\\n    this.x *= scalar;\\n    this.y *= scalar;\\n    this.z *= scalar;\\n    this.w *= scalar;\\n    return this;\\n  }\\n  applyMatrix4(m) {\\n    const x = this.x, y = this.y, z = this.z, w = this.w;\\n    const e = m.elements;\\n    this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\\n    this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\\n    this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\\n    this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\\n    return this;\\n  }\\n  divideScalar(scalar) {\\n    return this.multiplyScalar(1 / scalar);\\n  }\\n  setAxisAngleFromQuaternion(q) {\\n    this.w = 2 * Math.acos(q.w);\\n    const s = Math.sqrt(1 - q.w * q.w);\\n    if (s < 1e-4) {\\n      this.x = 1;\\n      this.y = 0;\\n      this.z = 0;\\n    } else {\\n      this.x = q.x / s;\\n      this.y = q.y / s;\\n      this.z = q.z / s;\\n    }\\n    return this;\\n  }\\n  setAxisAngleFromRotationMatrix(m) {\\n    let angle, x, y, z;\\n    const epsilon = 0.01, epsilon2 = 0.1, te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10];\\n    if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\\n      if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\\n        this.set(1, 0, 0, 0);\\n        return this;\\n      }\\n      angle = Math.PI;\\n      const xx = (m11 + 1) / 2;\\n      const yy = (m22 + 1) / 2;\\n      const zz = (m33 + 1) / 2;\\n      const xy = (m12 + m21) / 4;\\n      const xz = (m13 + m31) / 4;\\n      const yz = (m23 + m32) / 4;\\n      if (xx > yy && xx > zz) {\\n        if (xx < epsilon) {\\n          x = 0;\\n          y = 0.707106781;\\n          z = 0.707106781;\\n        } else {\\n          x = Math.sqrt(xx);\\n          y = xy / x;\\n          z = xz / x;\\n        }\\n      } else if (yy > zz) {\\n        if (yy < epsilon) {\\n          x = 0.707106781;\\n          y = 0;\\n          z = 0.707106781;\\n        } else {\\n          y = Math.sqrt(yy);\\n          x = xy / y;\\n          z = yz / y;\\n        }\\n      } else {\\n        if (zz < epsilon) {\\n          x = 0.707106781;\\n          y = 0.707106781;\\n          z = 0;\\n        } else {\\n          z = Math.sqrt(zz);\\n          x = xz / z;\\n          y = yz / z;\\n        }\\n      }\\n      this.set(x, y, z, angle);\\n      return this;\\n    }\\n    let s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12));\\n    if (Math.abs(s) < 1e-3)\\n      s = 1;\\n    this.x = (m32 - m23) / s;\\n    this.y = (m13 - m31) / s;\\n    this.z = (m21 - m12) / s;\\n    this.w = Math.acos((m11 + m22 + m33 - 1) / 2);\\n    return this;\\n  }\\n  min(v) {\\n    this.x = Math.min(this.x, v.x);\\n    this.y = Math.min(this.y, v.y);\\n    this.z = Math.min(this.z, v.z);\\n    this.w = Math.min(this.w, v.w);\\n    return this;\\n  }\\n  max(v) {\\n    this.x = Math.max(this.x, v.x);\\n    this.y = Math.max(this.y, v.y);\\n    this.z = Math.max(this.z, v.z);\\n    this.w = Math.max(this.w, v.w);\\n    return this;\\n  }\\n  clamp(min, max) {\\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\\n    this.w = Math.max(min.w, Math.min(max.w, this.w));\\n    return this;\\n  }\\n  clampScalar(minVal, maxVal) {\\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\\n    this.w = Math.max(minVal, Math.min(maxVal, this.w));\\n    return this;\\n  }\\n  clampLength(min, max) {\\n    const length = this.length();\\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\\n  }\\n  floor() {\\n    this.x = Math.floor(this.x);\\n    this.y = Math.floor(this.y);\\n    this.z = Math.floor(this.z);\\n    this.w = Math.floor(this.w);\\n    return this;\\n  }\\n  ceil() {\\n    this.x = Math.ceil(this.x);\\n    this.y = Math.ceil(this.y);\\n    this.z = Math.ceil(this.z);\\n    this.w = Math.ceil(this.w);\\n    return this;\\n  }\\n  round() {\\n    this.x = Math.round(this.x);\\n    this.y = Math.round(this.y);\\n    this.z = Math.round(this.z);\\n    this.w = Math.round(this.w);\\n    return this;\\n  }\\n  roundToZero() {\\n    this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\\n    this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\\n    this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z);\\n    this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w);\\n    return this;\\n  }\\n  negate() {\\n    this.x = -this.x;\\n    this.y = -this.y;\\n    this.z = -this.z;\\n    this.w = -this.w;\\n    return this;\\n  }\\n  dot(v) {\\n    return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\\n  }\\n  lengthSq() {\\n    return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\\n  }\\n  length() {\\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\\n  }\\n  manhattanLength() {\\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\\n  }\\n  normalize() {\\n    return this.divideScalar(this.length() || 1);\\n  }\\n  setLength(length) {\\n    return this.normalize().multiplyScalar(length);\\n  }\\n  lerp(v, alpha) {\\n    this.x += (v.x - this.x) * alpha;\\n    this.y += (v.y - this.y) * alpha;\\n    this.z += (v.z - this.z) * alpha;\\n    this.w += (v.w - this.w) * alpha;\\n    return this;\\n  }\\n  lerpVectors(v1, v2, alpha) {\\n    this.x = v1.x + (v2.x - v1.x) * alpha;\\n    this.y = v1.y + (v2.y - v1.y) * alpha;\\n    this.z = v1.z + (v2.z - v1.z) * alpha;\\n    this.w = v1.w + (v2.w - v1.w) * alpha;\\n    return this;\\n  }\\n  equals(v) {\\n    return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\\n  }\\n  fromArray(array, offset = 0) {\\n    this.x = array[offset];\\n    this.y = array[offset + 1];\\n    this.z = array[offset + 2];\\n    this.w = array[offset + 3];\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    array[offset] = this.x;\\n    array[offset + 1] = this.y;\\n    array[offset + 2] = this.z;\\n    array[offset + 3] = this.w;\\n    return array;\\n  }\\n  fromBufferAttribute(attribute, index, offset) {\\n    if (offset !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\\\\\\\");\\n    }\\n    this.x = attribute.getX(index);\\n    this.y = attribute.getY(index);\\n    this.z = attribute.getZ(index);\\n    this.w = attribute.getW(index);\\n    return this;\\n  }\\n  random() {\\n    this.x = Math.random();\\n    this.y = Math.random();\\n    this.z = Math.random();\\n    this.w = Math.random();\\n    return this;\\n  }\\n  *[Symbol.iterator]() {\\n    yield this.x;\\n    yield this.y;\\n    yield this.z;\\n    yield this.w;\\n  }\\n};\\nVector4.prototype.isVector4 = true;\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLAnimation.js\\nfunction WebGLAnimation() {\\n  let context = null;\\n  let isAnimating = false;\\n  let animationLoop = null;\\n  let requestId = null;\\n  function onAnimationFrame(time, frame) {\\n    animationLoop(time, frame);\\n    requestId = context.requestAnimationFrame(onAnimationFrame);\\n  }\\n  return {\\n    start: function() {\\n      if (isAnimating === true)\\n        return;\\n      if (animationLoop === null)\\n        return;\\n      requestId = context.requestAnimationFrame(onAnimationFrame);\\n      isAnimating = true;\\n    },\\n    stop: function() {\\n      context.cancelAnimationFrame(requestId);\\n      isAnimating = false;\\n    },\\n    setAnimationLoop: function(callback) {\\n      animationLoop = callback;\\n    },\\n    setContext: function(value) {\\n      context = value;\\n    }\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLAttributes.js\\nfunction WebGLAttributes(gl, capabilities) {\\n  const isWebGL2 = capabilities.isWebGL2;\\n  const buffers = new WeakMap();\\n  function createBuffer(attribute, bufferType) {\\n    const array = attribute.array;\\n    const usage = attribute.usage;\\n    const buffer = gl.createBuffer();\\n    gl.bindBuffer(bufferType, buffer);\\n    gl.bufferData(bufferType, array, usage);\\n    attribute.onUploadCallback();\\n    let type = gl.FLOAT;\\n    if (array instanceof Float32Array) {\\n      type = gl.FLOAT;\\n    } else if (array instanceof Float64Array) {\\n      console.warn(\\\\\\\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\\\\\\\");\\n    } else if (array instanceof Uint16Array) {\\n      if (attribute.isFloat16BufferAttribute) {\\n        if (isWebGL2) {\\n          type = gl.HALF_FLOAT;\\n        } else {\\n          console.warn(\\\\\\\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\\\\\\\");\\n        }\\n      } else {\\n        type = gl.UNSIGNED_SHORT;\\n      }\\n    } else if (array instanceof Int16Array) {\\n      type = gl.SHORT;\\n    } else if (array instanceof Uint32Array) {\\n      type = gl.UNSIGNED_INT;\\n    } else if (array instanceof Int32Array) {\\n      type = gl.INT;\\n    } else if (array instanceof Int8Array) {\\n      type = gl.BYTE;\\n    } else if (array instanceof Uint8Array) {\\n      type = gl.UNSIGNED_BYTE;\\n    } else if (array instanceof Uint8ClampedArray) {\\n      type = gl.UNSIGNED_BYTE;\\n    }\\n    return {\\n      buffer,\\n      type,\\n      bytesPerElement: array.BYTES_PER_ELEMENT,\\n      version: attribute.version\\n    };\\n  }\\n  function updateBuffer(buffer, attribute, bufferType) {\\n    const array = attribute.array;\\n    const updateRange = attribute.updateRange;\\n    gl.bindBuffer(bufferType, buffer);\\n    if (updateRange.count === -1) {\\n      gl.bufferSubData(bufferType, 0, array);\\n    } else {\\n      if (isWebGL2) {\\n        gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array, updateRange.offset, updateRange.count);\\n      } else {\\n        gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array.subarray(updateRange.offset, updateRange.offset + updateRange.count));\\n      }\\n      updateRange.count = -1;\\n    }\\n  }\\n  function get(attribute) {\\n    if (attribute.isInterleavedBufferAttribute)\\n      attribute = attribute.data;\\n    return buffers.get(attribute);\\n  }\\n  function remove(attribute) {\\n    if (attribute.isInterleavedBufferAttribute)\\n      attribute = attribute.data;\\n    const data = buffers.get(attribute);\\n    if (data) {\\n      gl.deleteBuffer(data.buffer);\\n      buffers.delete(attribute);\\n    }\\n  }\\n  function update(attribute, bufferType) {\\n    if (attribute.isGLBufferAttribute) {\\n      const cached = buffers.get(attribute);\\n      if (!cached || cached.version < attribute.version) {\\n        buffers.set(attribute, {\\n          buffer: attribute.buffer,\\n          type: attribute.type,\\n          bytesPerElement: attribute.elementSize,\\n          version: attribute.version\\n        });\\n      }\\n      return;\\n    }\\n    if (attribute.isInterleavedBufferAttribute)\\n      attribute = attribute.data;\\n    const data = buffers.get(attribute);\\n    if (data === void 0) {\\n      buffers.set(attribute, createBuffer(attribute, bufferType));\\n    } else if (data.version < attribute.version) {\\n      updateBuffer(data.buffer, attribute, bufferType);\\n      data.version = attribute.version;\\n    }\\n  }\\n  return {\\n    get,\\n    remove,\\n    update\\n  };\\n}\\n\\n// ../../../node_modules/three/src/math/Vector2.js\\nvar Vector2 = class {\\n  constructor(x = 0, y = 0) {\\n    this.x = x;\\n    this.y = y;\\n  }\\n  get width() {\\n    return this.x;\\n  }\\n  set width(value) {\\n    this.x = value;\\n  }\\n  get height() {\\n    return this.y;\\n  }\\n  set height(value) {\\n    this.y = value;\\n  }\\n  set(x, y) {\\n    this.x = x;\\n    this.y = y;\\n    return this;\\n  }\\n  setScalar(scalar) {\\n    this.x = scalar;\\n    this.y = scalar;\\n    return this;\\n  }\\n  setX(x) {\\n    this.x = x;\\n    return this;\\n  }\\n  setY(y) {\\n    this.y = y;\\n    return this;\\n  }\\n  setComponent(index, value) {\\n    switch (index) {\\n      case 0:\\n        this.x = value;\\n        break;\\n      case 1:\\n        this.y = value;\\n        break;\\n      default:\\n        throw new Error(\\\\\\\"index is out of range: \\\\\\\" + index);\\n    }\\n    return this;\\n  }\\n  getComponent(index) {\\n    switch (index) {\\n      case 0:\\n        return this.x;\\n      case 1:\\n        return this.y;\\n      default:\\n        throw new Error(\\\\\\\"index is out of range: \\\\\\\" + index);\\n    }\\n  }\\n  clone() {\\n    return new this.constructor(this.x, this.y);\\n  }\\n  copy(v) {\\n    this.x = v.x;\\n    this.y = v.y;\\n    return this;\\n  }\\n  add(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\\\\\\\");\\n      return this.addVectors(v, w);\\n    }\\n    this.x += v.x;\\n    this.y += v.y;\\n    return this;\\n  }\\n  addScalar(s) {\\n    this.x += s;\\n    this.y += s;\\n    return this;\\n  }\\n  addVectors(a, b) {\\n    this.x = a.x + b.x;\\n    this.y = a.y + b.y;\\n    return this;\\n  }\\n  addScaledVector(v, s) {\\n    this.x += v.x * s;\\n    this.y += v.y * s;\\n    return this;\\n  }\\n  sub(v, w) {\\n    if (w !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\\\\\\\");\\n      return this.subVectors(v, w);\\n    }\\n    this.x -= v.x;\\n    this.y -= v.y;\\n    return this;\\n  }\\n  subScalar(s) {\\n    this.x -= s;\\n    this.y -= s;\\n    return this;\\n  }\\n  subVectors(a, b) {\\n    this.x = a.x - b.x;\\n    this.y = a.y - b.y;\\n    return this;\\n  }\\n  multiply(v) {\\n    this.x *= v.x;\\n    this.y *= v.y;\\n    return this;\\n  }\\n  multiplyScalar(scalar) {\\n    this.x *= scalar;\\n    this.y *= scalar;\\n    return this;\\n  }\\n  divide(v) {\\n    this.x /= v.x;\\n    this.y /= v.y;\\n    return this;\\n  }\\n  divideScalar(scalar) {\\n    return this.multiplyScalar(1 / scalar);\\n  }\\n  applyMatrix3(m) {\\n    const x = this.x, y = this.y;\\n    const e = m.elements;\\n    this.x = e[0] * x + e[3] * y + e[6];\\n    this.y = e[1] * x + e[4] * y + e[7];\\n    return this;\\n  }\\n  min(v) {\\n    this.x = Math.min(this.x, v.x);\\n    this.y = Math.min(this.y, v.y);\\n    return this;\\n  }\\n  max(v) {\\n    this.x = Math.max(this.x, v.x);\\n    this.y = Math.max(this.y, v.y);\\n    return this;\\n  }\\n  clamp(min, max) {\\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\\n    return this;\\n  }\\n  clampScalar(minVal, maxVal) {\\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\\n    return this;\\n  }\\n  clampLength(min, max) {\\n    const length = this.length();\\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\\n  }\\n  floor() {\\n    this.x = Math.floor(this.x);\\n    this.y = Math.floor(this.y);\\n    return this;\\n  }\\n  ceil() {\\n    this.x = Math.ceil(this.x);\\n    this.y = Math.ceil(this.y);\\n    return this;\\n  }\\n  round() {\\n    this.x = Math.round(this.x);\\n    this.y = Math.round(this.y);\\n    return this;\\n  }\\n  roundToZero() {\\n    this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x);\\n    this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y);\\n    return this;\\n  }\\n  negate() {\\n    this.x = -this.x;\\n    this.y = -this.y;\\n    return this;\\n  }\\n  dot(v) {\\n    return this.x * v.x + this.y * v.y;\\n  }\\n  cross(v) {\\n    return this.x * v.y - this.y * v.x;\\n  }\\n  lengthSq() {\\n    return this.x * this.x + this.y * this.y;\\n  }\\n  length() {\\n    return Math.sqrt(this.x * this.x + this.y * this.y);\\n  }\\n  manhattanLength() {\\n    return Math.abs(this.x) + Math.abs(this.y);\\n  }\\n  normalize() {\\n    return this.divideScalar(this.length() || 1);\\n  }\\n  angle() {\\n    const angle = Math.atan2(-this.y, -this.x) + Math.PI;\\n    return angle;\\n  }\\n  distanceTo(v) {\\n    return Math.sqrt(this.distanceToSquared(v));\\n  }\\n  distanceToSquared(v) {\\n    const dx = this.x - v.x, dy = this.y - v.y;\\n    return dx * dx + dy * dy;\\n  }\\n  manhattanDistanceTo(v) {\\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\\n  }\\n  setLength(length) {\\n    return this.normalize().multiplyScalar(length);\\n  }\\n  lerp(v, alpha) {\\n    this.x += (v.x - this.x) * alpha;\\n    this.y += (v.y - this.y) * alpha;\\n    return this;\\n  }\\n  lerpVectors(v1, v2, alpha) {\\n    this.x = v1.x + (v2.x - v1.x) * alpha;\\n    this.y = v1.y + (v2.y - v1.y) * alpha;\\n    return this;\\n  }\\n  equals(v) {\\n    return v.x === this.x && v.y === this.y;\\n  }\\n  fromArray(array, offset = 0) {\\n    this.x = array[offset];\\n    this.y = array[offset + 1];\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    array[offset] = this.x;\\n    array[offset + 1] = this.y;\\n    return array;\\n  }\\n  fromBufferAttribute(attribute, index, offset) {\\n    if (offset !== void 0) {\\n      console.warn(\\\\\\\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\\\\\\\");\\n    }\\n    this.x = attribute.getX(index);\\n    this.y = attribute.getY(index);\\n    return this;\\n  }\\n  rotateAround(center, angle) {\\n    const c = Math.cos(angle), s = Math.sin(angle);\\n    const x = this.x - center.x;\\n    const y = this.y - center.y;\\n    this.x = x * c - y * s + center.x;\\n    this.y = x * s + y * c + center.y;\\n    return this;\\n  }\\n  random() {\\n    this.x = Math.random();\\n    this.y = Math.random();\\n    return this;\\n  }\\n  *[Symbol.iterator]() {\\n    yield this.x;\\n    yield this.y;\\n  }\\n};\\nVector2.prototype.isVector2 = true;\\n\\n// ../../../node_modules/three/src/math/Color.js\\nvar _colorKeywords = {\\n  aliceblue: 15792383,\\n  antiquewhite: 16444375,\\n  aqua: 65535,\\n  aquamarine: 8388564,\\n  azure: 15794175,\\n  beige: 16119260,\\n  bisque: 16770244,\\n  black: 0,\\n  blanchedalmond: 16772045,\\n  blue: 255,\\n  blueviolet: 9055202,\\n  brown: 10824234,\\n  burlywood: 14596231,\\n  cadetblue: 6266528,\\n  chartreuse: 8388352,\\n  chocolate: 13789470,\\n  coral: 16744272,\\n  cornflowerblue: 6591981,\\n  cornsilk: 16775388,\\n  crimson: 14423100,\\n  cyan: 65535,\\n  darkblue: 139,\\n  darkcyan: 35723,\\n  darkgoldenrod: 12092939,\\n  darkgray: 11119017,\\n  darkgreen: 25600,\\n  darkgrey: 11119017,\\n  darkkhaki: 12433259,\\n  darkmagenta: 9109643,\\n  darkolivegreen: 5597999,\\n  darkorange: 16747520,\\n  darkorchid: 10040012,\\n  darkred: 9109504,\\n  darksalmon: 15308410,\\n  darkseagreen: 9419919,\\n  darkslateblue: 4734347,\\n  darkslategray: 3100495,\\n  darkslategrey: 3100495,\\n  darkturquoise: 52945,\\n  darkviolet: 9699539,\\n  deeppink: 16716947,\\n  deepskyblue: 49151,\\n  dimgray: 6908265,\\n  dimgrey: 6908265,\\n  dodgerblue: 2003199,\\n  firebrick: 11674146,\\n  floralwhite: 16775920,\\n  forestgreen: 2263842,\\n  fuchsia: 16711935,\\n  gainsboro: 14474460,\\n  ghostwhite: 16316671,\\n  gold: 16766720,\\n  goldenrod: 14329120,\\n  gray: 8421504,\\n  green: 32768,\\n  greenyellow: 11403055,\\n  grey: 8421504,\\n  honeydew: 15794160,\\n  hotpink: 16738740,\\n  indianred: 13458524,\\n  indigo: 4915330,\\n  ivory: 16777200,\\n  khaki: 15787660,\\n  lavender: 15132410,\\n  lavenderblush: 16773365,\\n  lawngreen: 8190976,\\n  lemonchiffon: 16775885,\\n  lightblue: 11393254,\\n  lightcoral: 15761536,\\n  lightcyan: 14745599,\\n  lightgoldenrodyellow: 16448210,\\n  lightgray: 13882323,\\n  lightgreen: 9498256,\\n  lightgrey: 13882323,\\n  lightpink: 16758465,\\n  lightsalmon: 16752762,\\n  lightseagreen: 2142890,\\n  lightskyblue: 8900346,\\n  lightslategray: 7833753,\\n  lightslategrey: 7833753,\\n  lightsteelblue: 11584734,\\n  lightyellow: 16777184,\\n  lime: 65280,\\n  limegreen: 3329330,\\n  linen: 16445670,\\n  magenta: 16711935,\\n  maroon: 8388608,\\n  mediumaquamarine: 6737322,\\n  mediumblue: 205,\\n  mediumorchid: 12211667,\\n  mediumpurple: 9662683,\\n  mediumseagreen: 3978097,\\n  mediumslateblue: 8087790,\\n  mediumspringgreen: 64154,\\n  mediumturquoise: 4772300,\\n  mediumvioletred: 13047173,\\n  midnightblue: 1644912,\\n  mintcream: 16121850,\\n  mistyrose: 16770273,\\n  moccasin: 16770229,\\n  navajowhite: 16768685,\\n  navy: 128,\\n  oldlace: 16643558,\\n  olive: 8421376,\\n  olivedrab: 7048739,\\n  orange: 16753920,\\n  orangered: 16729344,\\n  orchid: 14315734,\\n  palegoldenrod: 15657130,\\n  palegreen: 10025880,\\n  paleturquoise: 11529966,\\n  palevioletred: 14381203,\\n  papayawhip: 16773077,\\n  peachpuff: 16767673,\\n  peru: 13468991,\\n  pink: 16761035,\\n  plum: 14524637,\\n  powderblue: 11591910,\\n  purple: 8388736,\\n  rebeccapurple: 6697881,\\n  red: 16711680,\\n  rosybrown: 12357519,\\n  royalblue: 4286945,\\n  saddlebrown: 9127187,\\n  salmon: 16416882,\\n  sandybrown: 16032864,\\n  seagreen: 3050327,\\n  seashell: 16774638,\\n  sienna: 10506797,\\n  silver: 12632256,\\n  skyblue: 8900331,\\n  slateblue: 6970061,\\n  slategray: 7372944,\\n  slategrey: 7372944,\\n  snow: 16775930,\\n  springgreen: 65407,\\n  steelblue: 4620980,\\n  tan: 13808780,\\n  teal: 32896,\\n  thistle: 14204888,\\n  tomato: 16737095,\\n  turquoise: 4251856,\\n  violet: 15631086,\\n  wheat: 16113331,\\n  white: 16777215,\\n  whitesmoke: 16119285,\\n  yellow: 16776960,\\n  yellowgreen: 10145074\\n};\\nvar _hslA = {h: 0, s: 0, l: 0};\\nvar _hslB = {h: 0, s: 0, l: 0};\\nfunction hue2rgb(p, q, t) {\\n  if (t < 0)\\n    t += 1;\\n  if (t > 1)\\n    t -= 1;\\n  if (t < 1 / 6)\\n    return p + (q - p) * 6 * t;\\n  if (t < 1 / 2)\\n    return q;\\n  if (t < 2 / 3)\\n    return p + (q - p) * 6 * (2 / 3 - t);\\n  return p;\\n}\\nfunction SRGBToLinear(c) {\\n  return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\\n}\\nfunction LinearToSRGB(c) {\\n  return c < 31308e-7 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\\n}\\nvar Color = class {\\n  constructor(r, g, b) {\\n    if (g === void 0 && b === void 0) {\\n      return this.set(r);\\n    }\\n    return this.setRGB(r, g, b);\\n  }\\n  set(value) {\\n    if (value && value.isColor) {\\n      this.copy(value);\\n    } else if (typeof value === \\\\\\\"number\\\\\\\") {\\n      this.setHex(value);\\n    } else if (typeof value === \\\\\\\"string\\\\\\\") {\\n      this.setStyle(value);\\n    }\\n    return this;\\n  }\\n  setScalar(scalar) {\\n    this.r = scalar;\\n    this.g = scalar;\\n    this.b = scalar;\\n    return this;\\n  }\\n  setHex(hex) {\\n    hex = Math.floor(hex);\\n    this.r = (hex >> 16 & 255) / 255;\\n    this.g = (hex >> 8 & 255) / 255;\\n    this.b = (hex & 255) / 255;\\n    return this;\\n  }\\n  setRGB(r, g, b) {\\n    this.r = r;\\n    this.g = g;\\n    this.b = b;\\n    return this;\\n  }\\n  setHSL(h, s, l) {\\n    h = euclideanModulo(h, 1);\\n    s = clamp(s, 0, 1);\\n    l = clamp(l, 0, 1);\\n    if (s === 0) {\\n      this.r = this.g = this.b = l;\\n    } else {\\n      const p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\\n      const q = 2 * l - p;\\n      this.r = hue2rgb(q, p, h + 1 / 3);\\n      this.g = hue2rgb(q, p, h);\\n      this.b = hue2rgb(q, p, h - 1 / 3);\\n    }\\n    return this;\\n  }\\n  setStyle(style) {\\n    function handleAlpha(string) {\\n      if (string === void 0)\\n        return;\\n      if (parseFloat(string) < 1) {\\n        console.warn(\\\\\\\"THREE.Color: Alpha component of \\\\\\\" + style + \\\\\\\" will be ignored.\\\\\\\");\\n      }\\n    }\\n    let m;\\n    if (m = /^((?:rgb|hsl)a?)\\\\(([^\\\\)]*)\\\\)/.exec(style)) {\\n      let color;\\n      const name = m[1];\\n      const components = m[2];\\n      switch (name) {\\n        case \\\\\\\"rgb\\\\\\\":\\n        case \\\\\\\"rgba\\\\\\\":\\n          if (color = /^\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(components)) {\\n            this.r = Math.min(255, parseInt(color[1], 10)) / 255;\\n            this.g = Math.min(255, parseInt(color[2], 10)) / 255;\\n            this.b = Math.min(255, parseInt(color[3], 10)) / 255;\\n            handleAlpha(color[4]);\\n            return this;\\n          }\\n          if (color = /^\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(components)) {\\n            this.r = Math.min(100, parseInt(color[1], 10)) / 100;\\n            this.g = Math.min(100, parseInt(color[2], 10)) / 100;\\n            this.b = Math.min(100, parseInt(color[3], 10)) / 100;\\n            handleAlpha(color[4]);\\n            return this;\\n          }\\n          break;\\n        case \\\\\\\"hsl\\\\\\\":\\n        case \\\\\\\"hsla\\\\\\\":\\n          if (color = /^\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*,\\\\s*(\\\\d+)\\\\%\\\\s*(?:,\\\\s*(\\\\d*\\\\.?\\\\d+)\\\\s*)?$/.exec(components)) {\\n            const h = parseFloat(color[1]) / 360;\\n            const s = parseInt(color[2], 10) / 100;\\n            const l = parseInt(color[3], 10) / 100;\\n            handleAlpha(color[4]);\\n            return this.setHSL(h, s, l);\\n          }\\n          break;\\n      }\\n    } else if (m = /^\\\\#([A-Fa-f\\\\d]+)$/.exec(style)) {\\n      const hex = m[1];\\n      const size = hex.length;\\n      if (size === 3) {\\n        this.r = parseInt(hex.charAt(0) + hex.charAt(0), 16) / 255;\\n        this.g = parseInt(hex.charAt(1) + hex.charAt(1), 16) / 255;\\n        this.b = parseInt(hex.charAt(2) + hex.charAt(2), 16) / 255;\\n        return this;\\n      } else if (size === 6) {\\n        this.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255;\\n        this.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255;\\n        this.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255;\\n        return this;\\n      }\\n    }\\n    if (style && style.length > 0) {\\n      return this.setColorName(style);\\n    }\\n    return this;\\n  }\\n  setColorName(style) {\\n    const hex = _colorKeywords[style.toLowerCase()];\\n    if (hex !== void 0) {\\n      this.setHex(hex);\\n    } else {\\n      console.warn(\\\\\\\"THREE.Color: Unknown color \\\\\\\" + style);\\n    }\\n    return this;\\n  }\\n  clone() {\\n    return new this.constructor(this.r, this.g, this.b);\\n  }\\n  copy(color) {\\n    this.r = color.r;\\n    this.g = color.g;\\n    this.b = color.b;\\n    return this;\\n  }\\n  copyGammaToLinear(color, gammaFactor = 2) {\\n    this.r = Math.pow(color.r, gammaFactor);\\n    this.g = Math.pow(color.g, gammaFactor);\\n    this.b = Math.pow(color.b, gammaFactor);\\n    return this;\\n  }\\n  copyLinearToGamma(color, gammaFactor = 2) {\\n    const safeInverse = gammaFactor > 0 ? 1 / gammaFactor : 1;\\n    this.r = Math.pow(color.r, safeInverse);\\n    this.g = Math.pow(color.g, safeInverse);\\n    this.b = Math.pow(color.b, safeInverse);\\n    return this;\\n  }\\n  convertGammaToLinear(gammaFactor) {\\n    this.copyGammaToLinear(this, gammaFactor);\\n    return this;\\n  }\\n  convertLinearToGamma(gammaFactor) {\\n    this.copyLinearToGamma(this, gammaFactor);\\n    return this;\\n  }\\n  copySRGBToLinear(color) {\\n    this.r = SRGBToLinear(color.r);\\n    this.g = SRGBToLinear(color.g);\\n    this.b = SRGBToLinear(color.b);\\n    return this;\\n  }\\n  copyLinearToSRGB(color) {\\n    this.r = LinearToSRGB(color.r);\\n    this.g = LinearToSRGB(color.g);\\n    this.b = LinearToSRGB(color.b);\\n    return this;\\n  }\\n  convertSRGBToLinear() {\\n    this.copySRGBToLinear(this);\\n    return this;\\n  }\\n  convertLinearToSRGB() {\\n    this.copyLinearToSRGB(this);\\n    return this;\\n  }\\n  getHex() {\\n    return this.r * 255 << 16 ^ this.g * 255 << 8 ^ this.b * 255 << 0;\\n  }\\n  getHexString() {\\n    return (\\\\\\\"000000\\\\\\\" + this.getHex().toString(16)).slice(-6);\\n  }\\n  getHSL(target) {\\n    const r = this.r, g = this.g, b = this.b;\\n    const max = Math.max(r, g, b);\\n    const min = Math.min(r, g, b);\\n    let hue, saturation;\\n    const lightness = (min + max) / 2;\\n    if (min === max) {\\n      hue = 0;\\n      saturation = 0;\\n    } else {\\n      const delta = max - min;\\n      saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\\n      switch (max) {\\n        case r:\\n          hue = (g - b) / delta + (g < b ? 6 : 0);\\n          break;\\n        case g:\\n          hue = (b - r) / delta + 2;\\n          break;\\n        case b:\\n          hue = (r - g) / delta + 4;\\n          break;\\n      }\\n      hue /= 6;\\n    }\\n    target.h = hue;\\n    target.s = saturation;\\n    target.l = lightness;\\n    return target;\\n  }\\n  getStyle() {\\n    return \\\\\\\"rgb(\\\\\\\" + (this.r * 255 | 0) + \\\\\\\",\\\\\\\" + (this.g * 255 | 0) + \\\\\\\",\\\\\\\" + (this.b * 255 | 0) + \\\\\\\")\\\\\\\";\\n  }\\n  offsetHSL(h, s, l) {\\n    this.getHSL(_hslA);\\n    _hslA.h += h;\\n    _hslA.s += s;\\n    _hslA.l += l;\\n    this.setHSL(_hslA.h, _hslA.s, _hslA.l);\\n    return this;\\n  }\\n  add(color) {\\n    this.r += color.r;\\n    this.g += color.g;\\n    this.b += color.b;\\n    return this;\\n  }\\n  addColors(color1, color2) {\\n    this.r = color1.r + color2.r;\\n    this.g = color1.g + color2.g;\\n    this.b = color1.b + color2.b;\\n    return this;\\n  }\\n  addScalar(s) {\\n    this.r += s;\\n    this.g += s;\\n    this.b += s;\\n    return this;\\n  }\\n  sub(color) {\\n    this.r = Math.max(0, this.r - color.r);\\n    this.g = Math.max(0, this.g - color.g);\\n    this.b = Math.max(0, this.b - color.b);\\n    return this;\\n  }\\n  multiply(color) {\\n    this.r *= color.r;\\n    this.g *= color.g;\\n    this.b *= color.b;\\n    return this;\\n  }\\n  multiplyScalar(s) {\\n    this.r *= s;\\n    this.g *= s;\\n    this.b *= s;\\n    return this;\\n  }\\n  lerp(color, alpha) {\\n    this.r += (color.r - this.r) * alpha;\\n    this.g += (color.g - this.g) * alpha;\\n    this.b += (color.b - this.b) * alpha;\\n    return this;\\n  }\\n  lerpColors(color1, color2, alpha) {\\n    this.r = color1.r + (color2.r - color1.r) * alpha;\\n    this.g = color1.g + (color2.g - color1.g) * alpha;\\n    this.b = color1.b + (color2.b - color1.b) * alpha;\\n    return this;\\n  }\\n  lerpHSL(color, alpha) {\\n    this.getHSL(_hslA);\\n    color.getHSL(_hslB);\\n    const h = lerp(_hslA.h, _hslB.h, alpha);\\n    const s = lerp(_hslA.s, _hslB.s, alpha);\\n    const l = lerp(_hslA.l, _hslB.l, alpha);\\n    this.setHSL(h, s, l);\\n    return this;\\n  }\\n  equals(c) {\\n    return c.r === this.r && c.g === this.g && c.b === this.b;\\n  }\\n  fromArray(array, offset = 0) {\\n    this.r = array[offset];\\n    this.g = array[offset + 1];\\n    this.b = array[offset + 2];\\n    return this;\\n  }\\n  toArray(array = [], offset = 0) {\\n    array[offset] = this.r;\\n    array[offset + 1] = this.g;\\n    array[offset + 2] = this.b;\\n    return array;\\n  }\\n  fromBufferAttribute(attribute, index) {\\n    this.r = attribute.getX(index);\\n    this.g = attribute.getY(index);\\n    this.b = attribute.getZ(index);\\n    if (attribute.normalized === true) {\\n      this.r /= 255;\\n      this.g /= 255;\\n      this.b /= 255;\\n    }\\n    return this;\\n  }\\n  toJSON() {\\n    return this.getHex();\\n  }\\n};\\nColor.NAMES = _colorKeywords;\\nColor.prototype.isColor = true;\\nColor.prototype.r = 1;\\nColor.prototype.g = 1;\\nColor.prototype.b = 1;\\n\\n// ../../../node_modules/three/src/core/BufferAttribute.js\\nvar _vector4 = /* @__PURE__ */ new Vector3();\\nvar _vector23 = /* @__PURE__ */ new Vector2();\\nvar BufferAttribute = class {\\n  constructor(array, itemSize, normalized) {\\n    if (Array.isArray(array)) {\\n      throw new TypeError(\\\\\\\"THREE.BufferAttribute: array should be a Typed Array.\\\\\\\");\\n    }\\n    this.name = \\\\\\\"\\\\\\\";\\n    this.array = array;\\n    this.itemSize = itemSize;\\n    this.count = array !== void 0 ? array.length / itemSize : 0;\\n    this.normalized = normalized === true;\\n    this.usage = StaticDrawUsage;\\n    this.updateRange = {offset: 0, count: -1};\\n    this.version = 0;\\n  }\\n  onUploadCallback() {\\n  }\\n  set needsUpdate(value) {\\n    if (value === true)\\n      this.version++;\\n  }\\n  setUsage(value) {\\n    this.usage = value;\\n    return this;\\n  }\\n  copy(source) {\\n    this.name = source.name;\\n    this.array = new source.array.constructor(source.array);\\n    this.itemSize = source.itemSize;\\n    this.count = source.count;\\n    this.normalized = source.normalized;\\n    this.usage = source.usage;\\n    return this;\\n  }\\n  copyAt(index1, attribute, index2) {\\n    index1 *= this.itemSize;\\n    index2 *= attribute.itemSize;\\n    for (let i = 0, l = this.itemSize; i < l; i++) {\\n      this.array[index1 + i] = attribute.array[index2 + i];\\n    }\\n    return this;\\n  }\\n  copyArray(array) {\\n    this.array.set(array);\\n    return this;\\n  }\\n  copyColorsArray(colors) {\\n    const array = this.array;\\n    let offset = 0;\\n    for (let i = 0, l = colors.length; i < l; i++) {\\n      let color = colors[i];\\n      if (color === void 0) {\\n        console.warn(\\\\\\\"THREE.BufferAttribute.copyColorsArray(): color is undefined\\\\\\\", i);\\n        color = new Color();\\n      }\\n      array[offset++] = color.r;\\n      array[offset++] = color.g;\\n      array[offset++] = color.b;\\n    }\\n    return this;\\n  }\\n  copyVector2sArray(vectors) {\\n    const array = this.array;\\n    let offset = 0;\\n    for (let i = 0, l = vectors.length; i < l; i++) {\\n      let vector = vectors[i];\\n      if (vector === void 0) {\\n        console.warn(\\\\\\\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\\\\\\\", i);\\n        vector = new Vector2();\\n      }\\n      array[offset++] = vector.x;\\n      array[offset++] = vector.y;\\n    }\\n    return this;\\n  }\\n  copyVector3sArray(vectors) {\\n    const array = this.array;\\n    let offset = 0;\\n    for (let i = 0, l = vectors.length; i < l; i++) {\\n      let vector = vectors[i];\\n      if (vector === void 0) {\\n        console.warn(\\\\\\\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\\\\\\\", i);\\n        vector = new Vector3();\\n      }\\n      array[offset++] = vector.x;\\n      array[offset++] = vector.y;\\n      array[offset++] = vector.z;\\n    }\\n    return this;\\n  }\\n  copyVector4sArray(vectors) {\\n    const array = this.array;\\n    let offset = 0;\\n    for (let i = 0, l = vectors.length; i < l; i++) {\\n      let vector = vectors[i];\\n      if (vector === void 0) {\\n        console.warn(\\\\\\\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\\\\\\\", i);\\n        vector = new Vector4();\\n      }\\n      array[offset++] = vector.x;\\n      array[offset++] = vector.y;\\n      array[offset++] = vector.z;\\n      array[offset++] = vector.w;\\n    }\\n    return this;\\n  }\\n  applyMatrix3(m) {\\n    if (this.itemSize === 2) {\\n      for (let i = 0, l = this.count; i < l; i++) {\\n        _vector23.fromBufferAttribute(this, i);\\n        _vector23.applyMatrix3(m);\\n        this.setXY(i, _vector23.x, _vector23.y);\\n      }\\n    } else if (this.itemSize === 3) {\\n      for (let i = 0, l = this.count; i < l; i++) {\\n        _vector4.fromBufferAttribute(this, i);\\n        _vector4.applyMatrix3(m);\\n        this.setXYZ(i, _vector4.x, _vector4.y, _vector4.z);\\n      }\\n    }\\n    return this;\\n  }\\n  applyMatrix4(m) {\\n    for (let i = 0, l = this.count; i < l; i++) {\\n      _vector4.x = this.getX(i);\\n      _vector4.y = this.getY(i);\\n      _vector4.z = this.getZ(i);\\n      _vector4.applyMatrix4(m);\\n      this.setXYZ(i, _vector4.x, _vector4.y, _vector4.z);\\n    }\\n    return this;\\n  }\\n  applyNormalMatrix(m) {\\n    for (let i = 0, l = this.count; i < l; i++) {\\n      _vector4.x = this.getX(i);\\n      _vector4.y = this.getY(i);\\n      _vector4.z = this.getZ(i);\\n      _vector4.applyNormalMatrix(m);\\n      this.setXYZ(i, _vector4.x, _vector4.y, _vector4.z);\\n    }\\n    return this;\\n  }\\n  transformDirection(m) {\\n    for (let i = 0, l = this.count; i < l; i++) {\\n      _vector4.x = this.getX(i);\\n      _vector4.y = this.getY(i);\\n      _vector4.z = this.getZ(i);\\n      _vector4.transformDirection(m);\\n      this.setXYZ(i, _vector4.x, _vector4.y, _vector4.z);\\n    }\\n    return this;\\n  }\\n  set(value, offset = 0) {\\n    this.array.set(value, offset);\\n    return this;\\n  }\\n  getX(index) {\\n    return this.array[index * this.itemSize];\\n  }\\n  setX(index, x) {\\n    this.array[index * this.itemSize] = x;\\n    return this;\\n  }\\n  getY(index) {\\n    return this.array[index * this.itemSize + 1];\\n  }\\n  setY(index, y) {\\n    this.array[index * this.itemSize + 1] = y;\\n    return this;\\n  }\\n  getZ(index) {\\n    return this.array[index * this.itemSize + 2];\\n  }\\n  setZ(index, z) {\\n    this.array[index * this.itemSize + 2] = z;\\n    return this;\\n  }\\n  getW(index) {\\n    return this.array[index * this.itemSize + 3];\\n  }\\n  setW(index, w) {\\n    this.array[index * this.itemSize + 3] = w;\\n    return this;\\n  }\\n  setXY(index, x, y) {\\n    index *= this.itemSize;\\n    this.array[index + 0] = x;\\n    this.array[index + 1] = y;\\n    return this;\\n  }\\n  setXYZ(index, x, y, z) {\\n    index *= this.itemSize;\\n    this.array[index + 0] = x;\\n    this.array[index + 1] = y;\\n    this.array[index + 2] = z;\\n    return this;\\n  }\\n  setXYZW(index, x, y, z, w) {\\n    index *= this.itemSize;\\n    this.array[index + 0] = x;\\n    this.array[index + 1] = y;\\n    this.array[index + 2] = z;\\n    this.array[index + 3] = w;\\n    return this;\\n  }\\n  onUpload(callback) {\\n    this.onUploadCallback = callback;\\n    return this;\\n  }\\n  clone() {\\n    return new this.constructor(this.array, this.itemSize).copy(this);\\n  }\\n  toJSON() {\\n    const data = {\\n      itemSize: this.itemSize,\\n      type: this.array.constructor.name,\\n      array: Array.prototype.slice.call(this.array),\\n      normalized: this.normalized\\n    };\\n    if (this.name !== \\\\\\\"\\\\\\\")\\n      data.name = this.name;\\n    if (this.usage !== StaticDrawUsage)\\n      data.usage = this.usage;\\n    if (this.updateRange.offset !== 0 || this.updateRange.count !== -1)\\n      data.updateRange = this.updateRange;\\n    return data;\\n  }\\n};\\nBufferAttribute.prototype.isBufferAttribute = true;\\nvar Uint16BufferAttribute = class extends BufferAttribute {\\n  constructor(array, itemSize, normalized) {\\n    super(new Uint16Array(array), itemSize, normalized);\\n  }\\n};\\nvar Int32BufferAttribute = class extends BufferAttribute {\\n  constructor(array, itemSize, normalized) {\\n    super(new Int32Array(array), itemSize, normalized);\\n  }\\n};\\nvar Uint32BufferAttribute = class extends BufferAttribute {\\n  constructor(array, itemSize, normalized) {\\n    super(new Uint32Array(array), itemSize, normalized);\\n  }\\n};\\nvar Float16BufferAttribute = class extends BufferAttribute {\\n  constructor(array, itemSize, normalized) {\\n    super(new Uint16Array(array), itemSize, normalized);\\n  }\\n};\\nFloat16BufferAttribute.prototype.isFloat16BufferAttribute = true;\\nvar Float32BufferAttribute = class extends BufferAttribute {\\n  constructor(array, itemSize, normalized) {\\n    super(new Float32Array(array), itemSize, normalized);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/utils.js\\nfunction arrayMax(array) {\\n  if (array.length === 0)\\n    return -Infinity;\\n  let max = array[0];\\n  for (let i = 1, l = array.length; i < l; ++i) {\\n    if (array[i] > max)\\n      max = array[i];\\n  }\\n  return max;\\n}\\nvar TYPED_ARRAYS = {\\n  Int8Array,\\n  Uint8Array,\\n  Uint8ClampedArray,\\n  Int16Array,\\n  Uint16Array,\\n  Int32Array,\\n  Uint32Array,\\n  Float32Array,\\n  Float64Array\\n};\\nfunction createElementNS(name) {\\n  return document.createElementNS(\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\", name);\\n}\\n\\n// ../../../node_modules/three/src/core/BufferGeometry.js\\nvar _id = 0;\\nvar _m13 = /* @__PURE__ */ new Matrix4();\\nvar _obj = /* @__PURE__ */ new Object3D();\\nvar _offset = /* @__PURE__ */ new Vector3();\\nvar _box3 = /* @__PURE__ */ new Box3();\\nvar _boxMorphTargets = /* @__PURE__ */ new Box3();\\nvar _vector5 = /* @__PURE__ */ new Vector3();\\nvar BufferGeometry = class extends EventDispatcher {\\n  constructor() {\\n    super();\\n    Object.defineProperty(this, \\\\\\\"id\\\\\\\", {value: _id++});\\n    this.uuid = generateUUID();\\n    this.name = \\\\\\\"\\\\\\\";\\n    this.type = \\\\\\\"BufferGeometry\\\\\\\";\\n    this.index = null;\\n    this.attributes = {};\\n    this.morphAttributes = {};\\n    this.morphTargetsRelative = false;\\n    this.groups = [];\\n    this.boundingBox = null;\\n    this.boundingSphere = null;\\n    this.drawRange = {start: 0, count: Infinity};\\n    this.userData = {};\\n  }\\n  getIndex() {\\n    return this.index;\\n  }\\n  setIndex(index) {\\n    if (Array.isArray(index)) {\\n      this.index = new (arrayMax(index) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1);\\n    } else {\\n      this.index = index;\\n    }\\n    return this;\\n  }\\n  getAttribute(name) {\\n    return this.attributes[name];\\n  }\\n  setAttribute(name, attribute) {\\n    this.attributes[name] = attribute;\\n    return this;\\n  }\\n  deleteAttribute(name) {\\n    delete this.attributes[name];\\n    return this;\\n  }\\n  hasAttribute(name) {\\n    return this.attributes[name] !== void 0;\\n  }\\n  addGroup(start, count, materialIndex = 0) {\\n    this.groups.push({\\n      start,\\n      count,\\n      materialIndex\\n    });\\n  }\\n  clearGroups() {\\n    this.groups = [];\\n  }\\n  setDrawRange(start, count) {\\n    this.drawRange.start = start;\\n    this.drawRange.count = count;\\n  }\\n  applyMatrix4(matrix) {\\n    const position = this.attributes.position;\\n    if (position !== void 0) {\\n      position.applyMatrix4(matrix);\\n      position.needsUpdate = true;\\n    }\\n    const normal = this.attributes.normal;\\n    if (normal !== void 0) {\\n      const normalMatrix = new Matrix3().getNormalMatrix(matrix);\\n      normal.applyNormalMatrix(normalMatrix);\\n      normal.needsUpdate = true;\\n    }\\n    const tangent = this.attributes.tangent;\\n    if (tangent !== void 0) {\\n      tangent.transformDirection(matrix);\\n      tangent.needsUpdate = true;\\n    }\\n    if (this.boundingBox !== null) {\\n      this.computeBoundingBox();\\n    }\\n    if (this.boundingSphere !== null) {\\n      this.computeBoundingSphere();\\n    }\\n    return this;\\n  }\\n  applyQuaternion(q) {\\n    _m13.makeRotationFromQuaternion(q);\\n    this.applyMatrix4(_m13);\\n    return this;\\n  }\\n  rotateX(angle) {\\n    _m13.makeRotationX(angle);\\n    this.applyMatrix4(_m13);\\n    return this;\\n  }\\n  rotateY(angle) {\\n    _m13.makeRotationY(angle);\\n    this.applyMatrix4(_m13);\\n    return this;\\n  }\\n  rotateZ(angle) {\\n    _m13.makeRotationZ(angle);\\n    this.applyMatrix4(_m13);\\n    return this;\\n  }\\n  translate(x, y, z) {\\n    _m13.makeTranslation(x, y, z);\\n    this.applyMatrix4(_m13);\\n    return this;\\n  }\\n  scale(x, y, z) {\\n    _m13.makeScale(x, y, z);\\n    this.applyMatrix4(_m13);\\n    return this;\\n  }\\n  lookAt(vector) {\\n    _obj.lookAt(vector);\\n    _obj.updateMatrix();\\n    this.applyMatrix4(_obj.matrix);\\n    return this;\\n  }\\n  center() {\\n    this.computeBoundingBox();\\n    this.boundingBox.getCenter(_offset).negate();\\n    this.translate(_offset.x, _offset.y, _offset.z);\\n    return this;\\n  }\\n  setFromPoints(points2) {\\n    const position = [];\\n    for (let i = 0, l = points2.length; i < l; i++) {\\n      const point = points2[i];\\n      position.push(point.x, point.y, point.z || 0);\\n    }\\n    this.setAttribute(\\\\\\\"position\\\\\\\", new Float32BufferAttribute(position, 3));\\n    return this;\\n  }\\n  computeBoundingBox() {\\n    if (this.boundingBox === null) {\\n      this.boundingBox = new Box3();\\n    }\\n    const position = this.attributes.position;\\n    const morphAttributesPosition = this.morphAttributes.position;\\n    if (position && position.isGLBufferAttribute) {\\n      console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".', this);\\n      this.boundingBox.set(new Vector3(-Infinity, -Infinity, -Infinity), new Vector3(Infinity, Infinity, Infinity));\\n      return;\\n    }\\n    if (position !== void 0) {\\n      this.boundingBox.setFromBufferAttribute(position);\\n      if (morphAttributesPosition) {\\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\\n          const morphAttribute = morphAttributesPosition[i];\\n          _box3.setFromBufferAttribute(morphAttribute);\\n          if (this.morphTargetsRelative) {\\n            _vector5.addVectors(this.boundingBox.min, _box3.min);\\n            this.boundingBox.expandByPoint(_vector5);\\n            _vector5.addVectors(this.boundingBox.max, _box3.max);\\n            this.boundingBox.expandByPoint(_vector5);\\n          } else {\\n            this.boundingBox.expandByPoint(_box3.min);\\n            this.boundingBox.expandByPoint(_box3.max);\\n          }\\n        }\\n      }\\n    } else {\\n      this.boundingBox.makeEmpty();\\n    }\\n    if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\\n      console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.', this);\\n    }\\n  }\\n  computeBoundingSphere() {\\n    if (this.boundingSphere === null) {\\n      this.boundingSphere = new Sphere();\\n    }\\n    const position = this.attributes.position;\\n    const morphAttributesPosition = this.morphAttributes.position;\\n    if (position && position.isGLBufferAttribute) {\\n      console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \\\\\\\"mesh.frustumCulled\\\\\\\" to \\\\\\\"false\\\\\\\".', this);\\n      this.boundingSphere.set(new Vector3(), Infinity);\\n      return;\\n    }\\n    if (position) {\\n      const center = this.boundingSphere.center;\\n      _box3.setFromBufferAttribute(position);\\n      if (morphAttributesPosition) {\\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\\n          const morphAttribute = morphAttributesPosition[i];\\n          _boxMorphTargets.setFromBufferAttribute(morphAttribute);\\n          if (this.morphTargetsRelative) {\\n            _vector5.addVectors(_box3.min, _boxMorphTargets.min);\\n            _box3.expandByPoint(_vector5);\\n            _vector5.addVectors(_box3.max, _boxMorphTargets.max);\\n            _box3.expandByPoint(_vector5);\\n          } else {\\n            _box3.expandByPoint(_boxMorphTargets.min);\\n            _box3.expandByPoint(_boxMorphTargets.max);\\n          }\\n        }\\n      }\\n      _box3.getCenter(center);\\n      let maxRadiusSq = 0;\\n      for (let i = 0, il = position.count; i < il; i++) {\\n        _vector5.fromBufferAttribute(position, i);\\n        maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector5));\\n      }\\n      if (morphAttributesPosition) {\\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\\n          const morphAttribute = morphAttributesPosition[i];\\n          const morphTargetsRelative = this.morphTargetsRelative;\\n          for (let j = 0, jl = morphAttribute.count; j < jl; j++) {\\n            _vector5.fromBufferAttribute(morphAttribute, j);\\n            if (morphTargetsRelative) {\\n              _offset.fromBufferAttribute(position, j);\\n              _vector5.add(_offset);\\n            }\\n            maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector5));\\n          }\\n        }\\n      }\\n      this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\\n      if (isNaN(this.boundingSphere.radius)) {\\n        console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \\\\\\\"position\\\\\\\" attribute is likely to have NaN values.', this);\\n      }\\n    }\\n  }\\n  computeTangents() {\\n    const index = this.index;\\n    const attributes = this.attributes;\\n    if (index === null || attributes.position === void 0 || attributes.normal === void 0 || attributes.uv === void 0) {\\n      console.error(\\\\\\\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\\\\\\\");\\n      return;\\n    }\\n    const indices = index.array;\\n    const positions = attributes.position.array;\\n    const normals = attributes.normal.array;\\n    const uvs = attributes.uv.array;\\n    const nVertices = positions.length / 3;\\n    if (attributes.tangent === void 0) {\\n      this.setAttribute(\\\\\\\"tangent\\\\\\\", new BufferAttribute(new Float32Array(4 * nVertices), 4));\\n    }\\n    const tangents = attributes.tangent.array;\\n    const tan1 = [], tan2 = [];\\n    for (let i = 0; i < nVertices; i++) {\\n      tan1[i] = new Vector3();\\n      tan2[i] = new Vector3();\\n    }\\n    const vA = new Vector3(), vB = new Vector3(), vC = new Vector3(), uvA = new Vector2(), uvB = new Vector2(), uvC = new Vector2(), sdir = new Vector3(), tdir = new Vector3();\\n    function handleTriangle(a, b, c) {\\n      vA.fromArray(positions, a * 3);\\n      vB.fromArray(positions, b * 3);\\n      vC.fromArray(positions, c * 3);\\n      uvA.fromArray(uvs, a * 2);\\n      uvB.fromArray(uvs, b * 2);\\n      uvC.fromArray(uvs, c * 2);\\n      vB.sub(vA);\\n      vC.sub(vA);\\n      uvB.sub(uvA);\\n      uvC.sub(uvA);\\n      const r = 1 / (uvB.x * uvC.y - uvC.x * uvB.y);\\n      if (!isFinite(r))\\n        return;\\n      sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC, -uvB.y).multiplyScalar(r);\\n      tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB, -uvC.x).multiplyScalar(r);\\n      tan1[a].add(sdir);\\n      tan1[b].add(sdir);\\n      tan1[c].add(sdir);\\n      tan2[a].add(tdir);\\n      tan2[b].add(tdir);\\n      tan2[c].add(tdir);\\n    }\\n    let groups = this.groups;\\n    if (groups.length === 0) {\\n      groups = [{\\n        start: 0,\\n        count: indices.length\\n      }];\\n    }\\n    for (let i = 0, il = groups.length; i < il; ++i) {\\n      const group = groups[i];\\n      const start = group.start;\\n      const count = group.count;\\n      for (let j = start, jl = start + count; j < jl; j += 3) {\\n        handleTriangle(indices[j + 0], indices[j + 1], indices[j + 2]);\\n      }\\n    }\\n    const tmp = new Vector3(), tmp2 = new Vector3();\\n    const n = new Vector3(), n2 = new Vector3();\\n    function handleVertex(v) {\\n      n.fromArray(normals, v * 3);\\n      n2.copy(n);\\n      const t = tan1[v];\\n      tmp.copy(t);\\n      tmp.sub(n.multiplyScalar(n.dot(t))).normalize();\\n      tmp2.crossVectors(n2, t);\\n      const test = tmp2.dot(tan2[v]);\\n      const w = test < 0 ? -1 : 1;\\n      tangents[v * 4] = tmp.x;\\n      tangents[v * 4 + 1] = tmp.y;\\n      tangents[v * 4 + 2] = tmp.z;\\n      tangents[v * 4 + 3] = w;\\n    }\\n    for (let i = 0, il = groups.length; i < il; ++i) {\\n      const group = groups[i];\\n      const start = group.start;\\n      const count = group.count;\\n      for (let j = start, jl = start + count; j < jl; j += 3) {\\n        handleVertex(indices[j + 0]);\\n        handleVertex(indices[j + 1]);\\n        handleVertex(indices[j + 2]);\\n      }\\n    }\\n  }\\n  computeVertexNormals() {\\n    const index = this.index;\\n    const positionAttribute = this.getAttribute(\\\\\\\"position\\\\\\\");\\n    if (positionAttribute !== void 0) {\\n      let normalAttribute = this.getAttribute(\\\\\\\"normal\\\\\\\");\\n      if (normalAttribute === void 0) {\\n        normalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3);\\n        this.setAttribute(\\\\\\\"normal\\\\\\\", normalAttribute);\\n      } else {\\n        for (let i = 0, il = normalAttribute.count; i < il; i++) {\\n          normalAttribute.setXYZ(i, 0, 0, 0);\\n        }\\n      }\\n      const pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\\n      const nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\\n      const cb = new Vector3(), ab = new Vector3();\\n      if (index) {\\n        for (let i = 0, il = index.count; i < il; i += 3) {\\n          const vA = index.getX(i + 0);\\n          const vB = index.getX(i + 1);\\n          const vC = index.getX(i + 2);\\n          pA.fromBufferAttribute(positionAttribute, vA);\\n          pB.fromBufferAttribute(positionAttribute, vB);\\n          pC.fromBufferAttribute(positionAttribute, vC);\\n          cb.subVectors(pC, pB);\\n          ab.subVectors(pA, pB);\\n          cb.cross(ab);\\n          nA.fromBufferAttribute(normalAttribute, vA);\\n          nB.fromBufferAttribute(normalAttribute, vB);\\n          nC.fromBufferAttribute(normalAttribute, vC);\\n          nA.add(cb);\\n          nB.add(cb);\\n          nC.add(cb);\\n          normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z);\\n          normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z);\\n          normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z);\\n        }\\n      } else {\\n        for (let i = 0, il = positionAttribute.count; i < il; i += 3) {\\n          pA.fromBufferAttribute(positionAttribute, i + 0);\\n          pB.fromBufferAttribute(positionAttribute, i + 1);\\n          pC.fromBufferAttribute(positionAttribute, i + 2);\\n          cb.subVectors(pC, pB);\\n          ab.subVectors(pA, pB);\\n          cb.cross(ab);\\n          normalAttribute.setXYZ(i + 0, cb.x, cb.y, cb.z);\\n          normalAttribute.setXYZ(i + 1, cb.x, cb.y, cb.z);\\n          normalAttribute.setXYZ(i + 2, cb.x, cb.y, cb.z);\\n        }\\n      }\\n      this.normalizeNormals();\\n      normalAttribute.needsUpdate = true;\\n    }\\n  }\\n  merge(geometry, offset) {\\n    if (!(geometry && geometry.isBufferGeometry)) {\\n      console.error(\\\\\\\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\\\\\\\", geometry);\\n      return;\\n    }\\n    if (offset === void 0) {\\n      offset = 0;\\n      console.warn(\\\\\\\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\\\\\\\");\\n    }\\n    const attributes = this.attributes;\\n    for (const key in attributes) {\\n      if (geometry.attributes[key] === void 0)\\n        continue;\\n      const attribute1 = attributes[key];\\n      const attributeArray1 = attribute1.array;\\n      const attribute2 = geometry.attributes[key];\\n      const attributeArray2 = attribute2.array;\\n      const attributeOffset = attribute2.itemSize * offset;\\n      const length = Math.min(attributeArray2.length, attributeArray1.length - attributeOffset);\\n      for (let i = 0, j = attributeOffset; i < length; i++, j++) {\\n        attributeArray1[j] = attributeArray2[i];\\n      }\\n    }\\n    return this;\\n  }\\n  normalizeNormals() {\\n    const normals = this.attributes.normal;\\n    for (let i = 0, il = normals.count; i < il; i++) {\\n      _vector5.fromBufferAttribute(normals, i);\\n      _vector5.normalize();\\n      normals.setXYZ(i, _vector5.x, _vector5.y, _vector5.z);\\n    }\\n  }\\n  toNonIndexed() {\\n    function convertBufferAttribute(attribute, indices2) {\\n      const array = attribute.array;\\n      const itemSize = attribute.itemSize;\\n      const normalized = attribute.normalized;\\n      const array2 = new array.constructor(indices2.length * itemSize);\\n      let index = 0, index2 = 0;\\n      for (let i = 0, l = indices2.length; i < l; i++) {\\n        if (attribute.isInterleavedBufferAttribute) {\\n          index = indices2[i] * attribute.data.stride + attribute.offset;\\n        } else {\\n          index = indices2[i] * itemSize;\\n        }\\n        for (let j = 0; j < itemSize; j++) {\\n          array2[index2++] = array[index++];\\n        }\\n      }\\n      return new BufferAttribute(array2, itemSize, normalized);\\n    }\\n    if (this.index === null) {\\n      console.warn(\\\\\\\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\\\\\\\");\\n      return this;\\n    }\\n    const geometry2 = new BufferGeometry();\\n    const indices = this.index.array;\\n    const attributes = this.attributes;\\n    for (const name in attributes) {\\n      const attribute = attributes[name];\\n      const newAttribute = convertBufferAttribute(attribute, indices);\\n      geometry2.setAttribute(name, newAttribute);\\n    }\\n    const morphAttributes = this.morphAttributes;\\n    for (const name in morphAttributes) {\\n      const morphArray = [];\\n      const morphAttribute = morphAttributes[name];\\n      for (let i = 0, il = morphAttribute.length; i < il; i++) {\\n        const attribute = morphAttribute[i];\\n        const newAttribute = convertBufferAttribute(attribute, indices);\\n        morphArray.push(newAttribute);\\n      }\\n      geometry2.morphAttributes[name] = morphArray;\\n    }\\n    geometry2.morphTargetsRelative = this.morphTargetsRelative;\\n    const groups = this.groups;\\n    for (let i = 0, l = groups.length; i < l; i++) {\\n      const group = groups[i];\\n      geometry2.addGroup(group.start, group.count, group.materialIndex);\\n    }\\n    return geometry2;\\n  }\\n  toJSON() {\\n    const data = {\\n      metadata: {\\n        version: 4.5,\\n        type: \\\\\\\"BufferGeometry\\\\\\\",\\n        generator: \\\\\\\"BufferGeometry.toJSON\\\\\\\"\\n      }\\n    };\\n    data.uuid = this.uuid;\\n    data.type = this.type;\\n    if (this.name !== \\\\\\\"\\\\\\\")\\n      data.name = this.name;\\n    if (Object.keys(this.userData).length > 0)\\n      data.userData = this.userData;\\n    if (this.parameters !== void 0) {\\n      const parameters = this.parameters;\\n      for (const key in parameters) {\\n        if (parameters[key] !== void 0)\\n          data[key] = parameters[key];\\n      }\\n      return data;\\n    }\\n    data.data = {attributes: {}};\\n    const index = this.index;\\n    if (index !== null) {\\n      data.data.index = {\\n        type: index.array.constructor.name,\\n        array: Array.prototype.slice.call(index.array)\\n      };\\n    }\\n    const attributes = this.attributes;\\n    for (const key in attributes) {\\n      const attribute = attributes[key];\\n      data.data.attributes[key] = attribute.toJSON(data.data);\\n    }\\n    const morphAttributes = {};\\n    let hasMorphAttributes = false;\\n    for (const key in this.morphAttributes) {\\n      const attributeArray = this.morphAttributes[key];\\n      const array = [];\\n      for (let i = 0, il = attributeArray.length; i < il; i++) {\\n        const attribute = attributeArray[i];\\n        array.push(attribute.toJSON(data.data));\\n      }\\n      if (array.length > 0) {\\n        morphAttributes[key] = array;\\n        hasMorphAttributes = true;\\n      }\\n    }\\n    if (hasMorphAttributes) {\\n      data.data.morphAttributes = morphAttributes;\\n      data.data.morphTargetsRelative = this.morphTargetsRelative;\\n    }\\n    const groups = this.groups;\\n    if (groups.length > 0) {\\n      data.data.groups = JSON.parse(JSON.stringify(groups));\\n    }\\n    const boundingSphere = this.boundingSphere;\\n    if (boundingSphere !== null) {\\n      data.data.boundingSphere = {\\n        center: boundingSphere.center.toArray(),\\n        radius: boundingSphere.radius\\n      };\\n    }\\n    return data;\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n  copy(source) {\\n    this.index = null;\\n    this.attributes = {};\\n    this.morphAttributes = {};\\n    this.groups = [];\\n    this.boundingBox = null;\\n    this.boundingSphere = null;\\n    const data = {};\\n    this.name = source.name;\\n    const index = source.index;\\n    if (index !== null) {\\n      this.setIndex(index.clone(data));\\n    }\\n    const attributes = source.attributes;\\n    for (const name in attributes) {\\n      const attribute = attributes[name];\\n      this.setAttribute(name, attribute.clone(data));\\n    }\\n    const morphAttributes = source.morphAttributes;\\n    for (const name in morphAttributes) {\\n      const array = [];\\n      const morphAttribute = morphAttributes[name];\\n      for (let i = 0, l = morphAttribute.length; i < l; i++) {\\n        array.push(morphAttribute[i].clone(data));\\n      }\\n      this.morphAttributes[name] = array;\\n    }\\n    this.morphTargetsRelative = source.morphTargetsRelative;\\n    const groups = source.groups;\\n    for (let i = 0, l = groups.length; i < l; i++) {\\n      const group = groups[i];\\n      this.addGroup(group.start, group.count, group.materialIndex);\\n    }\\n    const boundingBox = source.boundingBox;\\n    if (boundingBox !== null) {\\n      this.boundingBox = boundingBox.clone();\\n    }\\n    const boundingSphere = source.boundingSphere;\\n    if (boundingSphere !== null) {\\n      this.boundingSphere = boundingSphere.clone();\\n    }\\n    this.drawRange.start = source.drawRange.start;\\n    this.drawRange.count = source.drawRange.count;\\n    this.userData = source.userData;\\n    if (source.parameters !== void 0)\\n      this.parameters = Object.assign({}, source.parameters);\\n    return this;\\n  }\\n  dispose() {\\n    this.dispatchEvent({type: \\\\\\\"dispose\\\\\\\"});\\n  }\\n};\\nBufferGeometry.prototype.isBufferGeometry = true;\\n\\n// ../../../node_modules/three/src/geometries/BoxGeometry.js\\nvar BoxGeometry = class extends BufferGeometry {\\n  constructor(width = 1, height = 1, depth2 = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1) {\\n    super();\\n    this.type = \\\\\\\"BoxGeometry\\\\\\\";\\n    this.parameters = {\\n      width,\\n      height,\\n      depth: depth2,\\n      widthSegments,\\n      heightSegments,\\n      depthSegments\\n    };\\n    const scope = this;\\n    widthSegments = Math.floor(widthSegments);\\n    heightSegments = Math.floor(heightSegments);\\n    depthSegments = Math.floor(depthSegments);\\n    const indices = [];\\n    const vertices = [];\\n    const normals = [];\\n    const uvs = [];\\n    let numberOfVertices = 0;\\n    let groupStart = 0;\\n    buildPlane(\\\\\\\"z\\\\\\\", \\\\\\\"y\\\\\\\", \\\\\\\"x\\\\\\\", -1, -1, depth2, height, width, depthSegments, heightSegments, 0);\\n    buildPlane(\\\\\\\"z\\\\\\\", \\\\\\\"y\\\\\\\", \\\\\\\"x\\\\\\\", 1, -1, depth2, height, -width, depthSegments, heightSegments, 1);\\n    buildPlane(\\\\\\\"x\\\\\\\", \\\\\\\"z\\\\\\\", \\\\\\\"y\\\\\\\", 1, 1, width, depth2, height, widthSegments, depthSegments, 2);\\n    buildPlane(\\\\\\\"x\\\\\\\", \\\\\\\"z\\\\\\\", \\\\\\\"y\\\\\\\", 1, -1, width, depth2, -height, widthSegments, depthSegments, 3);\\n    buildPlane(\\\\\\\"x\\\\\\\", \\\\\\\"y\\\\\\\", \\\\\\\"z\\\\\\\", 1, -1, width, height, depth2, widthSegments, heightSegments, 4);\\n    buildPlane(\\\\\\\"x\\\\\\\", \\\\\\\"y\\\\\\\", \\\\\\\"z\\\\\\\", -1, -1, width, height, -depth2, widthSegments, heightSegments, 5);\\n    this.setIndex(indices);\\n    this.setAttribute(\\\\\\\"position\\\\\\\", new Float32BufferAttribute(vertices, 3));\\n    this.setAttribute(\\\\\\\"normal\\\\\\\", new Float32BufferAttribute(normals, 3));\\n    this.setAttribute(\\\\\\\"uv\\\\\\\", new Float32BufferAttribute(uvs, 2));\\n    function buildPlane(u, v, w, udir, vdir, width2, height2, depth3, gridX, gridY, materialIndex) {\\n      const segmentWidth = width2 / gridX;\\n      const segmentHeight = height2 / gridY;\\n      const widthHalf = width2 / 2;\\n      const heightHalf = height2 / 2;\\n      const depthHalf = depth3 / 2;\\n      const gridX1 = gridX + 1;\\n      const gridY1 = gridY + 1;\\n      let vertexCounter = 0;\\n      let groupCount = 0;\\n      const vector = new Vector3();\\n      for (let iy = 0; iy < gridY1; iy++) {\\n        const y = iy * segmentHeight - heightHalf;\\n        for (let ix = 0; ix < gridX1; ix++) {\\n          const x = ix * segmentWidth - widthHalf;\\n          vector[u] = x * udir;\\n          vector[v] = y * vdir;\\n          vector[w] = depthHalf;\\n          vertices.push(vector.x, vector.y, vector.z);\\n          vector[u] = 0;\\n          vector[v] = 0;\\n          vector[w] = depth3 > 0 ? 1 : -1;\\n          normals.push(vector.x, vector.y, vector.z);\\n          uvs.push(ix / gridX);\\n          uvs.push(1 - iy / gridY);\\n          vertexCounter += 1;\\n        }\\n      }\\n      for (let iy = 0; iy < gridY; iy++) {\\n        for (let ix = 0; ix < gridX; ix++) {\\n          const a = numberOfVertices + ix + gridX1 * iy;\\n          const b = numberOfVertices + ix + gridX1 * (iy + 1);\\n          const c = numberOfVertices + (ix + 1) + gridX1 * (iy + 1);\\n          const d = numberOfVertices + (ix + 1) + gridX1 * iy;\\n          indices.push(a, b, d);\\n          indices.push(b, c, d);\\n          groupCount += 6;\\n        }\\n      }\\n      scope.addGroup(groupStart, groupCount, materialIndex);\\n      groupStart += groupCount;\\n      numberOfVertices += vertexCounter;\\n    }\\n  }\\n  static fromJSON(data) {\\n    return new BoxGeometry(data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/geometries/PlaneGeometry.js\\nvar PlaneGeometry = class extends BufferGeometry {\\n  constructor(width = 1, height = 1, widthSegments = 1, heightSegments = 1) {\\n    super();\\n    this.type = \\\\\\\"PlaneGeometry\\\\\\\";\\n    this.parameters = {\\n      width,\\n      height,\\n      widthSegments,\\n      heightSegments\\n    };\\n    const width_half = width / 2;\\n    const height_half = height / 2;\\n    const gridX = Math.floor(widthSegments);\\n    const gridY = Math.floor(heightSegments);\\n    const gridX1 = gridX + 1;\\n    const gridY1 = gridY + 1;\\n    const segment_width = width / gridX;\\n    const segment_height = height / gridY;\\n    const indices = [];\\n    const vertices = [];\\n    const normals = [];\\n    const uvs = [];\\n    for (let iy = 0; iy < gridY1; iy++) {\\n      const y = iy * segment_height - height_half;\\n      for (let ix = 0; ix < gridX1; ix++) {\\n        const x = ix * segment_width - width_half;\\n        vertices.push(x, -y, 0);\\n        normals.push(0, 0, 1);\\n        uvs.push(ix / gridX);\\n        uvs.push(1 - iy / gridY);\\n      }\\n    }\\n    for (let iy = 0; iy < gridY; iy++) {\\n      for (let ix = 0; ix < gridX; ix++) {\\n        const a = ix + gridX1 * iy;\\n        const b = ix + gridX1 * (iy + 1);\\n        const c = ix + 1 + gridX1 * (iy + 1);\\n        const d = ix + 1 + gridX1 * iy;\\n        indices.push(a, b, d);\\n        indices.push(b, c, d);\\n      }\\n    }\\n    this.setIndex(indices);\\n    this.setAttribute(\\\\\\\"position\\\\\\\", new Float32BufferAttribute(vertices, 3));\\n    this.setAttribute(\\\\\\\"normal\\\\\\\", new Float32BufferAttribute(normals, 3));\\n    this.setAttribute(\\\\\\\"uv\\\\\\\", new Float32BufferAttribute(uvs, 2));\\n  }\\n  static fromJSON(data) {\\n    return new PlaneGeometry(data.width, data.height, data.widthSegments, data.heightSegments);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/materials/Material.js\\nvar materialId = 0;\\nvar Material = class extends EventDispatcher {\\n  constructor() {\\n    super();\\n    Object.defineProperty(this, \\\\\\\"id\\\\\\\", {value: materialId++});\\n    this.uuid = generateUUID();\\n    this.name = \\\\\\\"\\\\\\\";\\n    this.type = \\\\\\\"Material\\\\\\\";\\n    this.fog = true;\\n    this.blending = NormalBlending;\\n    this.side = FrontSide;\\n    this.vertexColors = false;\\n    this.opacity = 1;\\n    this.format = RGBAFormat;\\n    this.transparent = false;\\n    this.blendSrc = SrcAlphaFactor;\\n    this.blendDst = OneMinusSrcAlphaFactor;\\n    this.blendEquation = AddEquation;\\n    this.blendSrcAlpha = null;\\n    this.blendDstAlpha = null;\\n    this.blendEquationAlpha = null;\\n    this.depthFunc = LessEqualDepth;\\n    this.depthTest = true;\\n    this.depthWrite = true;\\n    this.stencilWriteMask = 255;\\n    this.stencilFunc = AlwaysStencilFunc;\\n    this.stencilRef = 0;\\n    this.stencilFuncMask = 255;\\n    this.stencilFail = KeepStencilOp;\\n    this.stencilZFail = KeepStencilOp;\\n    this.stencilZPass = KeepStencilOp;\\n    this.stencilWrite = false;\\n    this.clippingPlanes = null;\\n    this.clipIntersection = false;\\n    this.clipShadows = false;\\n    this.shadowSide = null;\\n    this.colorWrite = true;\\n    this.precision = null;\\n    this.polygonOffset = false;\\n    this.polygonOffsetFactor = 0;\\n    this.polygonOffsetUnits = 0;\\n    this.dithering = false;\\n    this.alphaToCoverage = false;\\n    this.premultipliedAlpha = false;\\n    this.visible = true;\\n    this.toneMapped = true;\\n    this.userData = {};\\n    this.version = 0;\\n    this._alphaTest = 0;\\n  }\\n  get alphaTest() {\\n    return this._alphaTest;\\n  }\\n  set alphaTest(value) {\\n    if (this._alphaTest > 0 !== value > 0) {\\n      this.version++;\\n    }\\n    this._alphaTest = value;\\n  }\\n  onBuild() {\\n  }\\n  onBeforeRender() {\\n  }\\n  onBeforeCompile() {\\n  }\\n  customProgramCacheKey() {\\n    return this.onBeforeCompile.toString();\\n  }\\n  setValues(values) {\\n    if (values === void 0)\\n      return;\\n    for (const key in values) {\\n      const newValue = values[key];\\n      if (newValue === void 0) {\\n        console.warn(\\\\\\\"THREE.Material: '\\\\\\\" + key + \\\\\\\"' parameter is undefined.\\\\\\\");\\n        continue;\\n      }\\n      if (key === \\\\\\\"shading\\\\\\\") {\\n        console.warn(\\\\\\\"THREE.\\\\\\\" + this.type + \\\\\\\": .shading has been removed. Use the boolean .flatShading instead.\\\\\\\");\\n        this.flatShading = newValue === FlatShading ? true : false;\\n        continue;\\n      }\\n      const currentValue = this[key];\\n      if (currentValue === void 0) {\\n        console.warn(\\\\\\\"THREE.\\\\\\\" + this.type + \\\\\\\": '\\\\\\\" + key + \\\\\\\"' is not a property of this material.\\\\\\\");\\n        continue;\\n      }\\n      if (currentValue && currentValue.isColor) {\\n        currentValue.set(newValue);\\n      } else if (currentValue && currentValue.isVector3 && (newValue && newValue.isVector3)) {\\n        currentValue.copy(newValue);\\n      } else {\\n        this[key] = newValue;\\n      }\\n    }\\n  }\\n  toJSON(meta) {\\n    const isRoot = meta === void 0 || typeof meta === \\\\\\\"string\\\\\\\";\\n    if (isRoot) {\\n      meta = {\\n        textures: {},\\n        images: {}\\n      };\\n    }\\n    const data = {\\n      metadata: {\\n        version: 4.5,\\n        type: \\\\\\\"Material\\\\\\\",\\n        generator: \\\\\\\"Material.toJSON\\\\\\\"\\n      }\\n    };\\n    data.uuid = this.uuid;\\n    data.type = this.type;\\n    if (this.name !== \\\\\\\"\\\\\\\")\\n      data.name = this.name;\\n    if (this.color && this.color.isColor)\\n      data.color = this.color.getHex();\\n    if (this.roughness !== void 0)\\n      data.roughness = this.roughness;\\n    if (this.metalness !== void 0)\\n      data.metalness = this.metalness;\\n    if (this.sheen !== void 0)\\n      data.sheen = this.sheen;\\n    if (this.sheenTint && this.sheenTint.isColor)\\n      data.sheenTint = this.sheenTint.getHex();\\n    if (this.sheenRoughness !== void 0)\\n      data.sheenRoughness = this.sheenRoughness;\\n    if (this.emissive && this.emissive.isColor)\\n      data.emissive = this.emissive.getHex();\\n    if (this.emissiveIntensity && this.emissiveIntensity !== 1)\\n      data.emissiveIntensity = this.emissiveIntensity;\\n    if (this.specular && this.specular.isColor)\\n      data.specular = this.specular.getHex();\\n    if (this.specularIntensity !== void 0)\\n      data.specularIntensity = this.specularIntensity;\\n    if (this.specularTint && this.specularTint.isColor)\\n      data.specularTint = this.specularTint.getHex();\\n    if (this.shininess !== void 0)\\n      data.shininess = this.shininess;\\n    if (this.clearcoat !== void 0)\\n      data.clearcoat = this.clearcoat;\\n    if (this.clearcoatRoughness !== void 0)\\n      data.clearcoatRoughness = this.clearcoatRoughness;\\n    if (this.clearcoatMap && this.clearcoatMap.isTexture) {\\n      data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid;\\n    }\\n    if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) {\\n      data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid;\\n    }\\n    if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\\n      data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\\n      data.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\\n    }\\n    if (this.map && this.map.isTexture)\\n      data.map = this.map.toJSON(meta).uuid;\\n    if (this.matcap && this.matcap.isTexture)\\n      data.matcap = this.matcap.toJSON(meta).uuid;\\n    if (this.alphaMap && this.alphaMap.isTexture)\\n      data.alphaMap = this.alphaMap.toJSON(meta).uuid;\\n    if (this.lightMap && this.lightMap.isTexture) {\\n      data.lightMap = this.lightMap.toJSON(meta).uuid;\\n      data.lightMapIntensity = this.lightMapIntensity;\\n    }\\n    if (this.aoMap && this.aoMap.isTexture) {\\n      data.aoMap = this.aoMap.toJSON(meta).uuid;\\n      data.aoMapIntensity = this.aoMapIntensity;\\n    }\\n    if (this.bumpMap && this.bumpMap.isTexture) {\\n      data.bumpMap = this.bumpMap.toJSON(meta).uuid;\\n      data.bumpScale = this.bumpScale;\\n    }\\n    if (this.normalMap && this.normalMap.isTexture) {\\n      data.normalMap = this.normalMap.toJSON(meta).uuid;\\n      data.normalMapType = this.normalMapType;\\n      data.normalScale = this.normalScale.toArray();\\n    }\\n    if (this.displacementMap && this.displacementMap.isTexture) {\\n      data.displacementMap = this.displacementMap.toJSON(meta).uuid;\\n      data.displacementScale = this.displacementScale;\\n      data.displacementBias = this.displacementBias;\\n    }\\n    if (this.roughnessMap && this.roughnessMap.isTexture)\\n      data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\\n    if (this.metalnessMap && this.metalnessMap.isTexture)\\n      data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\\n    if (this.emissiveMap && this.emissiveMap.isTexture)\\n      data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\\n    if (this.specularMap && this.specularMap.isTexture)\\n      data.specularMap = this.specularMap.toJSON(meta).uuid;\\n    if (this.specularIntensityMap && this.specularIntensityMap.isTexture)\\n      data.specularIntensityMap = this.specularIntensityMap.toJSON(meta).uuid;\\n    if (this.specularTintMap && this.specularTintMap.isTexture)\\n      data.specularTintMap = this.specularTintMap.toJSON(meta).uuid;\\n    if (this.envMap && this.envMap.isTexture) {\\n      data.envMap = this.envMap.toJSON(meta).uuid;\\n      if (this.combine !== void 0)\\n        data.combine = this.combine;\\n    }\\n    if (this.envMapIntensity !== void 0)\\n      data.envMapIntensity = this.envMapIntensity;\\n    if (this.reflectivity !== void 0)\\n      data.reflectivity = this.reflectivity;\\n    if (this.refractionRatio !== void 0)\\n      data.refractionRatio = this.refractionRatio;\\n    if (this.gradientMap && this.gradientMap.isTexture) {\\n      data.gradientMap = this.gradientMap.toJSON(meta).uuid;\\n    }\\n    if (this.transmission !== void 0)\\n      data.transmission = this.transmission;\\n    if (this.transmissionMap && this.transmissionMap.isTexture)\\n      data.transmissionMap = this.transmissionMap.toJSON(meta).uuid;\\n    if (this.thickness !== void 0)\\n      data.thickness = this.thickness;\\n    if (this.thicknessMap && this.thicknessMap.isTexture)\\n      data.thicknessMap = this.thicknessMap.toJSON(meta).uuid;\\n    if (this.attenuationDistance !== void 0)\\n      data.attenuationDistance = this.attenuationDistance;\\n    if (this.attenuationTint !== void 0)\\n      data.attenuationTint = this.attenuationTint.getHex();\\n    if (this.size !== void 0)\\n      data.size = this.size;\\n    if (this.shadowSide !== null)\\n      data.shadowSide = this.shadowSide;\\n    if (this.sizeAttenuation !== void 0)\\n      data.sizeAttenuation = this.sizeAttenuation;\\n    if (this.blending !== NormalBlending)\\n      data.blending = this.blending;\\n    if (this.side !== FrontSide)\\n      data.side = this.side;\\n    if (this.vertexColors)\\n      data.vertexColors = true;\\n    if (this.opacity < 1)\\n      data.opacity = this.opacity;\\n    if (this.format !== RGBAFormat)\\n      data.format = this.format;\\n    if (this.transparent === true)\\n      data.transparent = this.transparent;\\n    data.depthFunc = this.depthFunc;\\n    data.depthTest = this.depthTest;\\n    data.depthWrite = this.depthWrite;\\n    data.colorWrite = this.colorWrite;\\n    data.stencilWrite = this.stencilWrite;\\n    data.stencilWriteMask = this.stencilWriteMask;\\n    data.stencilFunc = this.stencilFunc;\\n    data.stencilRef = this.stencilRef;\\n    data.stencilFuncMask = this.stencilFuncMask;\\n    data.stencilFail = this.stencilFail;\\n    data.stencilZFail = this.stencilZFail;\\n    data.stencilZPass = this.stencilZPass;\\n    if (this.rotation && this.rotation !== 0)\\n      data.rotation = this.rotation;\\n    if (this.polygonOffset === true)\\n      data.polygonOffset = true;\\n    if (this.polygonOffsetFactor !== 0)\\n      data.polygonOffsetFactor = this.polygonOffsetFactor;\\n    if (this.polygonOffsetUnits !== 0)\\n      data.polygonOffsetUnits = this.polygonOffsetUnits;\\n    if (this.linewidth && this.linewidth !== 1)\\n      data.linewidth = this.linewidth;\\n    if (this.dashSize !== void 0)\\n      data.dashSize = this.dashSize;\\n    if (this.gapSize !== void 0)\\n      data.gapSize = this.gapSize;\\n    if (this.scale !== void 0)\\n      data.scale = this.scale;\\n    if (this.dithering === true)\\n      data.dithering = true;\\n    if (this.alphaTest > 0)\\n      data.alphaTest = this.alphaTest;\\n    if (this.alphaToCoverage === true)\\n      data.alphaToCoverage = this.alphaToCoverage;\\n    if (this.premultipliedAlpha === true)\\n      data.premultipliedAlpha = this.premultipliedAlpha;\\n    if (this.wireframe === true)\\n      data.wireframe = this.wireframe;\\n    if (this.wireframeLinewidth > 1)\\n      data.wireframeLinewidth = this.wireframeLinewidth;\\n    if (this.wireframeLinecap !== \\\\\\\"round\\\\\\\")\\n      data.wireframeLinecap = this.wireframeLinecap;\\n    if (this.wireframeLinejoin !== \\\\\\\"round\\\\\\\")\\n      data.wireframeLinejoin = this.wireframeLinejoin;\\n    if (this.flatShading === true)\\n      data.flatShading = this.flatShading;\\n    if (this.visible === false)\\n      data.visible = false;\\n    if (this.toneMapped === false)\\n      data.toneMapped = false;\\n    if (JSON.stringify(this.userData) !== \\\\\\\"{}\\\\\\\")\\n      data.userData = this.userData;\\n    function extractFromCache(cache) {\\n      const values = [];\\n      for (const key in cache) {\\n        const data2 = cache[key];\\n        delete data2.metadata;\\n        values.push(data2);\\n      }\\n      return values;\\n    }\\n    if (isRoot) {\\n      const textures = extractFromCache(meta.textures);\\n      const images = extractFromCache(meta.images);\\n      if (textures.length > 0)\\n        data.textures = textures;\\n      if (images.length > 0)\\n        data.images = images;\\n    }\\n    return data;\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n  copy(source) {\\n    this.name = source.name;\\n    this.fog = source.fog;\\n    this.blending = source.blending;\\n    this.side = source.side;\\n    this.vertexColors = source.vertexColors;\\n    this.opacity = source.opacity;\\n    this.format = source.format;\\n    this.transparent = source.transparent;\\n    this.blendSrc = source.blendSrc;\\n    this.blendDst = source.blendDst;\\n    this.blendEquation = source.blendEquation;\\n    this.blendSrcAlpha = source.blendSrcAlpha;\\n    this.blendDstAlpha = source.blendDstAlpha;\\n    this.blendEquationAlpha = source.blendEquationAlpha;\\n    this.depthFunc = source.depthFunc;\\n    this.depthTest = source.depthTest;\\n    this.depthWrite = source.depthWrite;\\n    this.stencilWriteMask = source.stencilWriteMask;\\n    this.stencilFunc = source.stencilFunc;\\n    this.stencilRef = source.stencilRef;\\n    this.stencilFuncMask = source.stencilFuncMask;\\n    this.stencilFail = source.stencilFail;\\n    this.stencilZFail = source.stencilZFail;\\n    this.stencilZPass = source.stencilZPass;\\n    this.stencilWrite = source.stencilWrite;\\n    const srcPlanes = source.clippingPlanes;\\n    let dstPlanes = null;\\n    if (srcPlanes !== null) {\\n      const n = srcPlanes.length;\\n      dstPlanes = new Array(n);\\n      for (let i = 0; i !== n; ++i) {\\n        dstPlanes[i] = srcPlanes[i].clone();\\n      }\\n    }\\n    this.clippingPlanes = dstPlanes;\\n    this.clipIntersection = source.clipIntersection;\\n    this.clipShadows = source.clipShadows;\\n    this.shadowSide = source.shadowSide;\\n    this.colorWrite = source.colorWrite;\\n    this.precision = source.precision;\\n    this.polygonOffset = source.polygonOffset;\\n    this.polygonOffsetFactor = source.polygonOffsetFactor;\\n    this.polygonOffsetUnits = source.polygonOffsetUnits;\\n    this.dithering = source.dithering;\\n    this.alphaTest = source.alphaTest;\\n    this.alphaToCoverage = source.alphaToCoverage;\\n    this.premultipliedAlpha = source.premultipliedAlpha;\\n    this.visible = source.visible;\\n    this.toneMapped = source.toneMapped;\\n    this.userData = JSON.parse(JSON.stringify(source.userData));\\n    return this;\\n  }\\n  dispose() {\\n    this.dispatchEvent({type: \\\\\\\"dispose\\\\\\\"});\\n  }\\n  set needsUpdate(value) {\\n    if (value === true)\\n      this.version++;\\n  }\\n};\\nMaterial.prototype.isMaterial = true;\\n\\n// ../../../node_modules/three/src/renderers/shaders/UniformsUtils.js\\nfunction cloneUniforms(src) {\\n  const dst = {};\\n  for (const u in src) {\\n    dst[u] = {};\\n    for (const p in src[u]) {\\n      const property = src[u][p];\\n      if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) {\\n        dst[u][p] = property.clone();\\n      } else if (Array.isArray(property)) {\\n        dst[u][p] = property.slice();\\n      } else {\\n        dst[u][p] = property;\\n      }\\n    }\\n  }\\n  return dst;\\n}\\nfunction mergeUniforms(uniforms) {\\n  const merged = {};\\n  for (let u = 0; u < uniforms.length; u++) {\\n    const tmp = cloneUniforms(uniforms[u]);\\n    for (const p in tmp) {\\n      merged[p] = tmp[p];\\n    }\\n  }\\n  return merged;\\n}\\nvar UniformsUtils = {clone: cloneUniforms, merge: mergeUniforms};\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/default_vertex.glsl.js\\nvar default_vertex_glsl_default = `\\nvoid main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js\\nvar default_fragment_glsl_default = `\\nvoid main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\\n`;\\n\\n// ../../../node_modules/three/src/materials/ShaderMaterial.js\\nvar ShaderMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"ShaderMaterial\\\\\\\";\\n    this.defines = {};\\n    this.uniforms = {};\\n    this.vertexShader = default_vertex_glsl_default;\\n    this.fragmentShader = default_fragment_glsl_default;\\n    this.linewidth = 1;\\n    this.wireframe = false;\\n    this.wireframeLinewidth = 1;\\n    this.fog = false;\\n    this.lights = false;\\n    this.clipping = false;\\n    this.extensions = {\\n      derivatives: false,\\n      fragDepth: false,\\n      drawBuffers: false,\\n      shaderTextureLOD: false\\n    };\\n    this.defaultAttributeValues = {\\n      color: [1, 1, 1],\\n      uv: [0, 0],\\n      uv2: [0, 0]\\n    };\\n    this.index0AttributeName = void 0;\\n    this.uniformsNeedUpdate = false;\\n    this.glslVersion = null;\\n    if (parameters !== void 0) {\\n      if (parameters.attributes !== void 0) {\\n        console.error(\\\\\\\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\\\\\\\");\\n      }\\n      this.setValues(parameters);\\n    }\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.fragmentShader = source.fragmentShader;\\n    this.vertexShader = source.vertexShader;\\n    this.uniforms = cloneUniforms(source.uniforms);\\n    this.defines = Object.assign({}, source.defines);\\n    this.wireframe = source.wireframe;\\n    this.wireframeLinewidth = source.wireframeLinewidth;\\n    this.lights = source.lights;\\n    this.clipping = source.clipping;\\n    this.extensions = Object.assign({}, source.extensions);\\n    this.glslVersion = source.glslVersion;\\n    return this;\\n  }\\n  toJSON(meta) {\\n    const data = super.toJSON(meta);\\n    data.glslVersion = this.glslVersion;\\n    data.uniforms = {};\\n    for (const name in this.uniforms) {\\n      const uniform = this.uniforms[name];\\n      const value = uniform.value;\\n      if (value && value.isTexture) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"t\\\\\\\",\\n          value: value.toJSON(meta).uuid\\n        };\\n      } else if (value && value.isColor) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"c\\\\\\\",\\n          value: value.getHex()\\n        };\\n      } else if (value && value.isVector2) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"v2\\\\\\\",\\n          value: value.toArray()\\n        };\\n      } else if (value && value.isVector3) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"v3\\\\\\\",\\n          value: value.toArray()\\n        };\\n      } else if (value && value.isVector4) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"v4\\\\\\\",\\n          value: value.toArray()\\n        };\\n      } else if (value && value.isMatrix3) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"m3\\\\\\\",\\n          value: value.toArray()\\n        };\\n      } else if (value && value.isMatrix4) {\\n        data.uniforms[name] = {\\n          type: \\\\\\\"m4\\\\\\\",\\n          value: value.toArray()\\n        };\\n      } else {\\n        data.uniforms[name] = {\\n          value\\n        };\\n      }\\n    }\\n    if (Object.keys(this.defines).length > 0)\\n      data.defines = this.defines;\\n    data.vertexShader = this.vertexShader;\\n    data.fragmentShader = this.fragmentShader;\\n    const extensions = {};\\n    for (const key in this.extensions) {\\n      if (this.extensions[key] === true)\\n        extensions[key] = true;\\n    }\\n    if (Object.keys(extensions).length > 0)\\n      data.extensions = extensions;\\n    return data;\\n  }\\n};\\nShaderMaterial.prototype.isShaderMaterial = true;\\n\\n// ../../../node_modules/three/src/math/Ray.js\\nvar _vector6 = /* @__PURE__ */ new Vector3();\\nvar _segCenter = /* @__PURE__ */ new Vector3();\\nvar _segDir = /* @__PURE__ */ new Vector3();\\nvar _diff = /* @__PURE__ */ new Vector3();\\nvar _edge1 = /* @__PURE__ */ new Vector3();\\nvar _edge2 = /* @__PURE__ */ new Vector3();\\nvar _normal = /* @__PURE__ */ new Vector3();\\nvar Ray = class {\\n  constructor(origin = new Vector3(), direction = new Vector3(0, 0, -1)) {\\n    this.origin = origin;\\n    this.direction = direction;\\n  }\\n  set(origin, direction) {\\n    this.origin.copy(origin);\\n    this.direction.copy(direction);\\n    return this;\\n  }\\n  copy(ray) {\\n    this.origin.copy(ray.origin);\\n    this.direction.copy(ray.direction);\\n    return this;\\n  }\\n  at(t, target) {\\n    return target.copy(this.direction).multiplyScalar(t).add(this.origin);\\n  }\\n  lookAt(v) {\\n    this.direction.copy(v).sub(this.origin).normalize();\\n    return this;\\n  }\\n  recast(t) {\\n    this.origin.copy(this.at(t, _vector6));\\n    return this;\\n  }\\n  closestPointToPoint(point, target) {\\n    target.subVectors(point, this.origin);\\n    const directionDistance = target.dot(this.direction);\\n    if (directionDistance < 0) {\\n      return target.copy(this.origin);\\n    }\\n    return target.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\\n  }\\n  distanceToPoint(point) {\\n    return Math.sqrt(this.distanceSqToPoint(point));\\n  }\\n  distanceSqToPoint(point) {\\n    const directionDistance = _vector6.subVectors(point, this.origin).dot(this.direction);\\n    if (directionDistance < 0) {\\n      return this.origin.distanceToSquared(point);\\n    }\\n    _vector6.copy(this.direction).multiplyScalar(directionDistance).add(this.origin);\\n    return _vector6.distanceToSquared(point);\\n  }\\n  distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\\n    _segCenter.copy(v0).add(v1).multiplyScalar(0.5);\\n    _segDir.copy(v1).sub(v0).normalize();\\n    _diff.copy(this.origin).sub(_segCenter);\\n    const segExtent = v0.distanceTo(v1) * 0.5;\\n    const a01 = -this.direction.dot(_segDir);\\n    const b0 = _diff.dot(this.direction);\\n    const b1 = -_diff.dot(_segDir);\\n    const c = _diff.lengthSq();\\n    const det = Math.abs(1 - a01 * a01);\\n    let s0, s1, sqrDist, extDet;\\n    if (det > 0) {\\n      s0 = a01 * b1 - b0;\\n      s1 = a01 * b0 - b1;\\n      extDet = segExtent * det;\\n      if (s0 >= 0) {\\n        if (s1 >= -extDet) {\\n          if (s1 <= extDet) {\\n            const invDet = 1 / det;\\n            s0 *= invDet;\\n            s1 *= invDet;\\n            sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\\n          } else {\\n            s1 = segExtent;\\n            s0 = Math.max(0, -(a01 * s1 + b0));\\n            sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\\n          }\\n        } else {\\n          s1 = -segExtent;\\n          s0 = Math.max(0, -(a01 * s1 + b0));\\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\\n        }\\n      } else {\\n        if (s1 <= -extDet) {\\n          s0 = Math.max(0, -(-a01 * segExtent + b0));\\n          s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\\n        } else if (s1 <= extDet) {\\n          s0 = 0;\\n          s1 = Math.min(Math.max(-segExtent, -b1), segExtent);\\n          sqrDist = s1 * (s1 + 2 * b1) + c;\\n        } else {\\n          s0 = Math.max(0, -(a01 * segExtent + b0));\\n          s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\\n        }\\n      }\\n    } else {\\n      s1 = a01 > 0 ? -segExtent : segExtent;\\n      s0 = Math.max(0, -(a01 * s1 + b0));\\n      sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\\n    }\\n    if (optionalPointOnRay) {\\n      optionalPointOnRay.copy(this.direction).multiplyScalar(s0).add(this.origin);\\n    }\\n    if (optionalPointOnSegment) {\\n      optionalPointOnSegment.copy(_segDir).multiplyScalar(s1).add(_segCenter);\\n    }\\n    return sqrDist;\\n  }\\n  intersectSphere(sphere, target) {\\n    _vector6.subVectors(sphere.center, this.origin);\\n    const tca = _vector6.dot(this.direction);\\n    const d2 = _vector6.dot(_vector6) - tca * tca;\\n    const radius2 = sphere.radius * sphere.radius;\\n    if (d2 > radius2)\\n      return null;\\n    const thc = Math.sqrt(radius2 - d2);\\n    const t0 = tca - thc;\\n    const t1 = tca + thc;\\n    if (t0 < 0 && t1 < 0)\\n      return null;\\n    if (t0 < 0)\\n      return this.at(t1, target);\\n    return this.at(t0, target);\\n  }\\n  intersectsSphere(sphere) {\\n    return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\\n  }\\n  distanceToPlane(plane) {\\n    const denominator = plane.normal.dot(this.direction);\\n    if (denominator === 0) {\\n      if (plane.distanceToPoint(this.origin) === 0) {\\n        return 0;\\n      }\\n      return null;\\n    }\\n    const t = -(this.origin.dot(plane.normal) + plane.constant) / denominator;\\n    return t >= 0 ? t : null;\\n  }\\n  intersectPlane(plane, target) {\\n    const t = this.distanceToPlane(plane);\\n    if (t === null) {\\n      return null;\\n    }\\n    return this.at(t, target);\\n  }\\n  intersectsPlane(plane) {\\n    const distToPoint = plane.distanceToPoint(this.origin);\\n    if (distToPoint === 0) {\\n      return true;\\n    }\\n    const denominator = plane.normal.dot(this.direction);\\n    if (denominator * distToPoint < 0) {\\n      return true;\\n    }\\n    return false;\\n  }\\n  intersectBox(box, target) {\\n    let tmin, tmax, tymin, tymax, tzmin, tzmax;\\n    const invdirx = 1 / this.direction.x, invdiry = 1 / this.direction.y, invdirz = 1 / this.direction.z;\\n    const origin = this.origin;\\n    if (invdirx >= 0) {\\n      tmin = (box.min.x - origin.x) * invdirx;\\n      tmax = (box.max.x - origin.x) * invdirx;\\n    } else {\\n      tmin = (box.max.x - origin.x) * invdirx;\\n      tmax = (box.min.x - origin.x) * invdirx;\\n    }\\n    if (invdiry >= 0) {\\n      tymin = (box.min.y - origin.y) * invdiry;\\n      tymax = (box.max.y - origin.y) * invdiry;\\n    } else {\\n      tymin = (box.max.y - origin.y) * invdiry;\\n      tymax = (box.min.y - origin.y) * invdiry;\\n    }\\n    if (tmin > tymax || tymin > tmax)\\n      return null;\\n    if (tymin > tmin || tmin !== tmin)\\n      tmin = tymin;\\n    if (tymax < tmax || tmax !== tmax)\\n      tmax = tymax;\\n    if (invdirz >= 0) {\\n      tzmin = (box.min.z - origin.z) * invdirz;\\n      tzmax = (box.max.z - origin.z) * invdirz;\\n    } else {\\n      tzmin = (box.max.z - origin.z) * invdirz;\\n      tzmax = (box.min.z - origin.z) * invdirz;\\n    }\\n    if (tmin > tzmax || tzmin > tmax)\\n      return null;\\n    if (tzmin > tmin || tmin !== tmin)\\n      tmin = tzmin;\\n    if (tzmax < tmax || tmax !== tmax)\\n      tmax = tzmax;\\n    if (tmax < 0)\\n      return null;\\n    return this.at(tmin >= 0 ? tmin : tmax, target);\\n  }\\n  intersectsBox(box) {\\n    return this.intersectBox(box, _vector6) !== null;\\n  }\\n  intersectTriangle(a, b, c, backfaceCulling, target) {\\n    _edge1.subVectors(b, a);\\n    _edge2.subVectors(c, a);\\n    _normal.crossVectors(_edge1, _edge2);\\n    let DdN = this.direction.dot(_normal);\\n    let sign;\\n    if (DdN > 0) {\\n      if (backfaceCulling)\\n        return null;\\n      sign = 1;\\n    } else if (DdN < 0) {\\n      sign = -1;\\n      DdN = -DdN;\\n    } else {\\n      return null;\\n    }\\n    _diff.subVectors(this.origin, a);\\n    const DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2));\\n    if (DdQxE2 < 0) {\\n      return null;\\n    }\\n    const DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff));\\n    if (DdE1xQ < 0) {\\n      return null;\\n    }\\n    if (DdQxE2 + DdE1xQ > DdN) {\\n      return null;\\n    }\\n    const QdN = -sign * _diff.dot(_normal);\\n    if (QdN < 0) {\\n      return null;\\n    }\\n    return this.at(QdN / DdN, target);\\n  }\\n  applyMatrix4(matrix4) {\\n    this.origin.applyMatrix4(matrix4);\\n    this.direction.transformDirection(matrix4);\\n    return this;\\n  }\\n  equals(ray) {\\n    return ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/math/Triangle.js\\nvar _v02 = /* @__PURE__ */ new Vector3();\\nvar _v15 = /* @__PURE__ */ new Vector3();\\nvar _v22 = /* @__PURE__ */ new Vector3();\\nvar _v3 = /* @__PURE__ */ new Vector3();\\nvar _vab = /* @__PURE__ */ new Vector3();\\nvar _vac = /* @__PURE__ */ new Vector3();\\nvar _vbc = /* @__PURE__ */ new Vector3();\\nvar _vap = /* @__PURE__ */ new Vector3();\\nvar _vbp = /* @__PURE__ */ new Vector3();\\nvar _vcp = /* @__PURE__ */ new Vector3();\\nvar Triangle = class {\\n  constructor(a = new Vector3(), b = new Vector3(), c = new Vector3()) {\\n    this.a = a;\\n    this.b = b;\\n    this.c = c;\\n  }\\n  static getNormal(a, b, c, target) {\\n    target.subVectors(c, b);\\n    _v02.subVectors(a, b);\\n    target.cross(_v02);\\n    const targetLengthSq = target.lengthSq();\\n    if (targetLengthSq > 0) {\\n      return target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\\n    }\\n    return target.set(0, 0, 0);\\n  }\\n  static getBarycoord(point, a, b, c, target) {\\n    _v02.subVectors(c, a);\\n    _v15.subVectors(b, a);\\n    _v22.subVectors(point, a);\\n    const dot00 = _v02.dot(_v02);\\n    const dot01 = _v02.dot(_v15);\\n    const dot02 = _v02.dot(_v22);\\n    const dot11 = _v15.dot(_v15);\\n    const dot12 = _v15.dot(_v22);\\n    const denom = dot00 * dot11 - dot01 * dot01;\\n    if (denom === 0) {\\n      return target.set(-2, -1, -1);\\n    }\\n    const invDenom = 1 / denom;\\n    const u = (dot11 * dot02 - dot01 * dot12) * invDenom;\\n    const v = (dot00 * dot12 - dot01 * dot02) * invDenom;\\n    return target.set(1 - u - v, v, u);\\n  }\\n  static containsPoint(point, a, b, c) {\\n    this.getBarycoord(point, a, b, c, _v3);\\n    return _v3.x >= 0 && _v3.y >= 0 && _v3.x + _v3.y <= 1;\\n  }\\n  static getUV(point, p1, p2, p3, uv1, uv2, uv3, target) {\\n    this.getBarycoord(point, p1, p2, p3, _v3);\\n    target.set(0, 0);\\n    target.addScaledVector(uv1, _v3.x);\\n    target.addScaledVector(uv2, _v3.y);\\n    target.addScaledVector(uv3, _v3.z);\\n    return target;\\n  }\\n  static isFrontFacing(a, b, c, direction) {\\n    _v02.subVectors(c, b);\\n    _v15.subVectors(a, b);\\n    return _v02.cross(_v15).dot(direction) < 0 ? true : false;\\n  }\\n  set(a, b, c) {\\n    this.a.copy(a);\\n    this.b.copy(b);\\n    this.c.copy(c);\\n    return this;\\n  }\\n  setFromPointsAndIndices(points2, i0, i1, i2) {\\n    this.a.copy(points2[i0]);\\n    this.b.copy(points2[i1]);\\n    this.c.copy(points2[i2]);\\n    return this;\\n  }\\n  setFromAttributeAndIndices(attribute, i0, i1, i2) {\\n    this.a.fromBufferAttribute(attribute, i0);\\n    this.b.fromBufferAttribute(attribute, i1);\\n    this.c.fromBufferAttribute(attribute, i2);\\n    return this;\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n  copy(triangle) {\\n    this.a.copy(triangle.a);\\n    this.b.copy(triangle.b);\\n    this.c.copy(triangle.c);\\n    return this;\\n  }\\n  getArea() {\\n    _v02.subVectors(this.c, this.b);\\n    _v15.subVectors(this.a, this.b);\\n    return _v02.cross(_v15).length() * 0.5;\\n  }\\n  getMidpoint(target) {\\n    return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\\n  }\\n  getNormal(target) {\\n    return Triangle.getNormal(this.a, this.b, this.c, target);\\n  }\\n  getPlane(target) {\\n    return target.setFromCoplanarPoints(this.a, this.b, this.c);\\n  }\\n  getBarycoord(point, target) {\\n    return Triangle.getBarycoord(point, this.a, this.b, this.c, target);\\n  }\\n  getUV(point, uv1, uv2, uv3, target) {\\n    return Triangle.getUV(point, this.a, this.b, this.c, uv1, uv2, uv3, target);\\n  }\\n  containsPoint(point) {\\n    return Triangle.containsPoint(point, this.a, this.b, this.c);\\n  }\\n  isFrontFacing(direction) {\\n    return Triangle.isFrontFacing(this.a, this.b, this.c, direction);\\n  }\\n  intersectsBox(box) {\\n    return box.intersectsTriangle(this);\\n  }\\n  closestPointToPoint(p, target) {\\n    const a = this.a, b = this.b, c = this.c;\\n    let v, w;\\n    _vab.subVectors(b, a);\\n    _vac.subVectors(c, a);\\n    _vap.subVectors(p, a);\\n    const d1 = _vab.dot(_vap);\\n    const d2 = _vac.dot(_vap);\\n    if (d1 <= 0 && d2 <= 0) {\\n      return target.copy(a);\\n    }\\n    _vbp.subVectors(p, b);\\n    const d3 = _vab.dot(_vbp);\\n    const d4 = _vac.dot(_vbp);\\n    if (d3 >= 0 && d4 <= d3) {\\n      return target.copy(b);\\n    }\\n    const vc = d1 * d4 - d3 * d2;\\n    if (vc <= 0 && d1 >= 0 && d3 <= 0) {\\n      v = d1 / (d1 - d3);\\n      return target.copy(a).addScaledVector(_vab, v);\\n    }\\n    _vcp.subVectors(p, c);\\n    const d5 = _vab.dot(_vcp);\\n    const d6 = _vac.dot(_vcp);\\n    if (d6 >= 0 && d5 <= d6) {\\n      return target.copy(c);\\n    }\\n    const vb = d5 * d2 - d1 * d6;\\n    if (vb <= 0 && d2 >= 0 && d6 <= 0) {\\n      w = d2 / (d2 - d6);\\n      return target.copy(a).addScaledVector(_vac, w);\\n    }\\n    const va = d3 * d6 - d5 * d4;\\n    if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\\n      _vbc.subVectors(c, b);\\n      w = (d4 - d3) / (d4 - d3 + (d5 - d6));\\n      return target.copy(b).addScaledVector(_vbc, w);\\n    }\\n    const denom = 1 / (va + vb + vc);\\n    v = vb * denom;\\n    w = vc * denom;\\n    return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\\n  }\\n  equals(triangle) {\\n    return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/materials/MeshBasicMaterial.js\\nvar MeshBasicMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"MeshBasicMaterial\\\\\\\";\\n    this.color = new Color(16777215);\\n    this.map = null;\\n    this.lightMap = null;\\n    this.lightMapIntensity = 1;\\n    this.aoMap = null;\\n    this.aoMapIntensity = 1;\\n    this.specularMap = null;\\n    this.alphaMap = null;\\n    this.envMap = null;\\n    this.combine = MultiplyOperation;\\n    this.reflectivity = 1;\\n    this.refractionRatio = 0.98;\\n    this.wireframe = false;\\n    this.wireframeLinewidth = 1;\\n    this.wireframeLinecap = \\\\\\\"round\\\\\\\";\\n    this.wireframeLinejoin = \\\\\\\"round\\\\\\\";\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.color.copy(source.color);\\n    this.map = source.map;\\n    this.lightMap = source.lightMap;\\n    this.lightMapIntensity = source.lightMapIntensity;\\n    this.aoMap = source.aoMap;\\n    this.aoMapIntensity = source.aoMapIntensity;\\n    this.specularMap = source.specularMap;\\n    this.alphaMap = source.alphaMap;\\n    this.envMap = source.envMap;\\n    this.combine = source.combine;\\n    this.reflectivity = source.reflectivity;\\n    this.refractionRatio = source.refractionRatio;\\n    this.wireframe = source.wireframe;\\n    this.wireframeLinewidth = source.wireframeLinewidth;\\n    this.wireframeLinecap = source.wireframeLinecap;\\n    this.wireframeLinejoin = source.wireframeLinejoin;\\n    return this;\\n  }\\n};\\nMeshBasicMaterial.prototype.isMeshBasicMaterial = true;\\n\\n// ../../../node_modules/three/src/objects/Mesh.js\\nvar _inverseMatrix = /* @__PURE__ */ new Matrix4();\\nvar _ray = /* @__PURE__ */ new Ray();\\nvar _sphere2 = /* @__PURE__ */ new Sphere();\\nvar _vA = /* @__PURE__ */ new Vector3();\\nvar _vB = /* @__PURE__ */ new Vector3();\\nvar _vC = /* @__PURE__ */ new Vector3();\\nvar _tempA = /* @__PURE__ */ new Vector3();\\nvar _tempB = /* @__PURE__ */ new Vector3();\\nvar _tempC = /* @__PURE__ */ new Vector3();\\nvar _morphA = /* @__PURE__ */ new Vector3();\\nvar _morphB = /* @__PURE__ */ new Vector3();\\nvar _morphC = /* @__PURE__ */ new Vector3();\\nvar _uvA = /* @__PURE__ */ new Vector2();\\nvar _uvB = /* @__PURE__ */ new Vector2();\\nvar _uvC = /* @__PURE__ */ new Vector2();\\nvar _intersectionPoint = /* @__PURE__ */ new Vector3();\\nvar _intersectionPointWorld = /* @__PURE__ */ new Vector3();\\nvar Mesh = class extends Object3D {\\n  constructor(geometry = new BufferGeometry(), material = new MeshBasicMaterial()) {\\n    super();\\n    this.type = \\\\\\\"Mesh\\\\\\\";\\n    this.geometry = geometry;\\n    this.material = material;\\n    this.updateMorphTargets();\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    if (source.morphTargetInfluences !== void 0) {\\n      this.morphTargetInfluences = source.morphTargetInfluences.slice();\\n    }\\n    if (source.morphTargetDictionary !== void 0) {\\n      this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\\n    }\\n    this.material = source.material;\\n    this.geometry = source.geometry;\\n    return this;\\n  }\\n  updateMorphTargets() {\\n    const geometry = this.geometry;\\n    if (geometry.isBufferGeometry) {\\n      const morphAttributes = geometry.morphAttributes;\\n      const keys = Object.keys(morphAttributes);\\n      if (keys.length > 0) {\\n        const morphAttribute = morphAttributes[keys[0]];\\n        if (morphAttribute !== void 0) {\\n          this.morphTargetInfluences = [];\\n          this.morphTargetDictionary = {};\\n          for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\\n            const name = morphAttribute[m].name || String(m);\\n            this.morphTargetInfluences.push(0);\\n            this.morphTargetDictionary[name] = m;\\n          }\\n        }\\n      }\\n    } else {\\n      const morphTargets = geometry.morphTargets;\\n      if (morphTargets !== void 0 && morphTargets.length > 0) {\\n        console.error(\\\\\\\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n      }\\n    }\\n  }\\n  raycast(raycaster, intersects) {\\n    const geometry = this.geometry;\\n    const material = this.material;\\n    const matrixWorld = this.matrixWorld;\\n    if (material === void 0)\\n      return;\\n    if (geometry.boundingSphere === null)\\n      geometry.computeBoundingSphere();\\n    _sphere2.copy(geometry.boundingSphere);\\n    _sphere2.applyMatrix4(matrixWorld);\\n    if (raycaster.ray.intersectsSphere(_sphere2) === false)\\n      return;\\n    _inverseMatrix.copy(matrixWorld).invert();\\n    _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\\n    if (geometry.boundingBox !== null) {\\n      if (_ray.intersectsBox(geometry.boundingBox) === false)\\n        return;\\n    }\\n    let intersection;\\n    if (geometry.isBufferGeometry) {\\n      const index = geometry.index;\\n      const position = geometry.attributes.position;\\n      const morphPosition = geometry.morphAttributes.position;\\n      const morphTargetsRelative = geometry.morphTargetsRelative;\\n      const uv = geometry.attributes.uv;\\n      const uv2 = geometry.attributes.uv2;\\n      const groups = geometry.groups;\\n      const drawRange = geometry.drawRange;\\n      if (index !== null) {\\n        if (Array.isArray(material)) {\\n          for (let i = 0, il = groups.length; i < il; i++) {\\n            const group = groups[i];\\n            const groupMaterial = material[group.materialIndex];\\n            const start = Math.max(group.start, drawRange.start);\\n            const end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\\n            for (let j = start, jl = end; j < jl; j += 3) {\\n              const a = index.getX(j);\\n              const b = index.getX(j + 1);\\n              const c = index.getX(j + 2);\\n              intersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c);\\n              if (intersection) {\\n                intersection.faceIndex = Math.floor(j / 3);\\n                intersection.face.materialIndex = group.materialIndex;\\n                intersects.push(intersection);\\n              }\\n            }\\n          }\\n        } else {\\n          const start = Math.max(0, drawRange.start);\\n          const end = Math.min(index.count, drawRange.start + drawRange.count);\\n          for (let i = start, il = end; i < il; i += 3) {\\n            const a = index.getX(i);\\n            const b = index.getX(i + 1);\\n            const c = index.getX(i + 2);\\n            intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c);\\n            if (intersection) {\\n              intersection.faceIndex = Math.floor(i / 3);\\n              intersects.push(intersection);\\n            }\\n          }\\n        }\\n      } else if (position !== void 0) {\\n        if (Array.isArray(material)) {\\n          for (let i = 0, il = groups.length; i < il; i++) {\\n            const group = groups[i];\\n            const groupMaterial = material[group.materialIndex];\\n            const start = Math.max(group.start, drawRange.start);\\n            const end = Math.min(position.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\\n            for (let j = start, jl = end; j < jl; j += 3) {\\n              const a = j;\\n              const b = j + 1;\\n              const c = j + 2;\\n              intersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c);\\n              if (intersection) {\\n                intersection.faceIndex = Math.floor(j / 3);\\n                intersection.face.materialIndex = group.materialIndex;\\n                intersects.push(intersection);\\n              }\\n            }\\n          }\\n        } else {\\n          const start = Math.max(0, drawRange.start);\\n          const end = Math.min(position.count, drawRange.start + drawRange.count);\\n          for (let i = start, il = end; i < il; i += 3) {\\n            const a = i;\\n            const b = i + 1;\\n            const c = i + 2;\\n            intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c);\\n            if (intersection) {\\n              intersection.faceIndex = Math.floor(i / 3);\\n              intersects.push(intersection);\\n            }\\n          }\\n        }\\n      }\\n    } else if (geometry.isGeometry) {\\n      console.error(\\\\\\\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n    }\\n  }\\n};\\nMesh.prototype.isMesh = true;\\nfunction checkIntersection(object, material, raycaster, ray, pA, pB, pC, point) {\\n  let intersect;\\n  if (material.side === BackSide) {\\n    intersect = ray.intersectTriangle(pC, pB, pA, true, point);\\n  } else {\\n    intersect = ray.intersectTriangle(pA, pB, pC, material.side !== DoubleSide, point);\\n  }\\n  if (intersect === null)\\n    return null;\\n  _intersectionPointWorld.copy(point);\\n  _intersectionPointWorld.applyMatrix4(object.matrixWorld);\\n  const distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\\n  if (distance < raycaster.near || distance > raycaster.far)\\n    return null;\\n  return {\\n    distance,\\n    point: _intersectionPointWorld.clone(),\\n    object\\n  };\\n}\\nfunction checkBufferGeometryIntersection(object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c) {\\n  _vA.fromBufferAttribute(position, a);\\n  _vB.fromBufferAttribute(position, b);\\n  _vC.fromBufferAttribute(position, c);\\n  const morphInfluences = object.morphTargetInfluences;\\n  if (morphPosition && morphInfluences) {\\n    _morphA.set(0, 0, 0);\\n    _morphB.set(0, 0, 0);\\n    _morphC.set(0, 0, 0);\\n    for (let i = 0, il = morphPosition.length; i < il; i++) {\\n      const influence = morphInfluences[i];\\n      const morphAttribute = morphPosition[i];\\n      if (influence === 0)\\n        continue;\\n      _tempA.fromBufferAttribute(morphAttribute, a);\\n      _tempB.fromBufferAttribute(morphAttribute, b);\\n      _tempC.fromBufferAttribute(morphAttribute, c);\\n      if (morphTargetsRelative) {\\n        _morphA.addScaledVector(_tempA, influence);\\n        _morphB.addScaledVector(_tempB, influence);\\n        _morphC.addScaledVector(_tempC, influence);\\n      } else {\\n        _morphA.addScaledVector(_tempA.sub(_vA), influence);\\n        _morphB.addScaledVector(_tempB.sub(_vB), influence);\\n        _morphC.addScaledVector(_tempC.sub(_vC), influence);\\n      }\\n    }\\n    _vA.add(_morphA);\\n    _vB.add(_morphB);\\n    _vC.add(_morphC);\\n  }\\n  if (object.isSkinnedMesh) {\\n    object.boneTransform(a, _vA);\\n    object.boneTransform(b, _vB);\\n    object.boneTransform(c, _vC);\\n  }\\n  const intersection = checkIntersection(object, material, raycaster, ray, _vA, _vB, _vC, _intersectionPoint);\\n  if (intersection) {\\n    if (uv) {\\n      _uvA.fromBufferAttribute(uv, a);\\n      _uvB.fromBufferAttribute(uv, b);\\n      _uvC.fromBufferAttribute(uv, c);\\n      intersection.uv = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2());\\n    }\\n    if (uv2) {\\n      _uvA.fromBufferAttribute(uv2, a);\\n      _uvB.fromBufferAttribute(uv2, b);\\n      _uvC.fromBufferAttribute(uv2, c);\\n      intersection.uv2 = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2());\\n    }\\n    const face = {\\n      a,\\n      b,\\n      c,\\n      normal: new Vector3(),\\n      materialIndex: 0\\n    };\\n    Triangle.getNormal(_vA, _vB, _vC, face.normal);\\n    intersection.face = face;\\n  }\\n  return intersection;\\n}\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js\\nvar alphamap_fragment_glsl_default = `\\n#ifdef USE_ALPHAMAP\\n\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl.js\\nvar alphamap_pars_fragment_glsl_default = `\\n#ifdef USE_ALPHAMAP\\n\\n\\tuniform sampler2D alphaMap;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl.js\\nvar alphatest_fragment_glsl_default = `\\n#ifdef USE_ALPHATEST\\n\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/alphatest_pars_fragment.glsl.js\\nvar alphatest_pars_fragment_glsl_default = `\\n#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js\\nvar aomap_fragment_glsl_default = `\\n#ifdef USE_AOMAP\\n\\n\\t// reads channel R, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/aomap_pars_fragment.glsl.js\\nvar aomap_pars_fragment_glsl_default = `\\n#ifdef USE_AOMAP\\n\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js\\nvar begin_vertex_glsl_default = `\\nvec3 transformed = vec3( position );\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/beginnormal_vertex.glsl.js\\nvar beginnormal_vertex_glsl_default = `\\nvec3 objectNormal = vec3( normal );\\n\\n#ifdef USE_TANGENT\\n\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js\\nvar bsdfs_glsl_default = `\\n\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n\\n} // validated\\n\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\n\\t// Original approximation by Christophe Schlick '94\\n\\t// float fresnel = pow( 1.0 - dotVH, 5.0 );\\n\\n\\t// Optimized variant (presented by Epic at SIGGRAPH '13)\\n\\t// https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n\\n} // validated\\n\\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\n\\tfloat a2 = pow2( alpha );\\n\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n\\n}\\n\\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\\n// alpha is \\\\\\\"roughness squared\\\\\\\" in Disney\\\\u2019s reparameterization\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\n\\tfloat a2 = pow2( alpha );\\n\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; // avoid alpha = 0 with dotNH = 1\\n\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n\\n}\\n\\n// GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\\n\\n\\tfloat alpha = pow2( roughness ); // UE4's roughness\\n\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\n\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\n\\treturn F * ( V * D );\\n\\n}\\n\\n// Rect Area Light\\n\\n// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines\\n// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt\\n// code: https://github.com/selfshadow/ltc_code/\\n\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\n\\t// texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) )\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\n\\treturn uv;\\n\\n}\\n\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\n\\t// Real-Time Area Lighting: a Journey from Research to Production (p.102)\\n\\t// An approximation of the form factor of a horizon-clipped rectangle.\\n\\n\\tfloat l = length( f );\\n\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n\\n}\\n\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\n\\tfloat x = dot( v1, v2 );\\n\\n\\tfloat y = abs( x );\\n\\n\\t// rational polynomial approximation to theta / sin( theta ) / 2PI\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n\\n}\\n\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\n\\t// bail if point is on back side of plane of light\\n\\t// assumes ccw winding order of light vertices\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\n\\t// construct orthonormal basis around N\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system\\n\\n\\t// compute transform\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\n\\t// transform rect\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\n\\t// project rect onto sphere\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\n\\t// calculate vector form factor\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\n\\t// adjust for horizon clipping\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\n/*\\n\\t// alternate method of adjusting for horizon clipping (see referece)\\n\\t// refactoring required\\n\\tfloat len = length( vectorFormFactor );\\n\\tfloat z = vectorFormFactor.z / len;\\n\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\n\\t// tabulated horizon-clipped sphere, apparently...\\n\\tvec2 uv = vec2( z * 0.5 + 0.5, len );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\n\\tfloat scale = texture2D( ltc_2, uv ).w;\\n\\n\\tfloat result = len * scale;\\n*/\\n\\n\\treturn vec3( result );\\n\\n}\\n\\n// End Rect Area Light\\n\\n\\nfloat G_BlinnPhong_Implicit( /* const in float dotNL, const in float dotNV */ ) {\\n\\n\\t// geometry term is (n dot l)(n dot v) / 4(n dot l)(n dot v)\\n\\treturn 0.25;\\n\\n}\\n\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n\\n}\\n\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\n\\tfloat G = G_BlinnPhong_Implicit( /* dotNL, dotNV */ );\\n\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\n\\treturn F * ( G * D );\\n\\n} // validated\\n\\n#if defined( USE_SHEEN )\\n\\n// https://github.com/google/filament/blob/master/shaders/src/brdf.fs\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\n\\tfloat alpha = pow2( roughness );\\n\\n\\t// Estevez and Kulla 2017, \\\\\\\"Production Friendly Microfacet Sheen BRDF\\\\\\\"\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 ); // 2^(-14/2), so sin2h^2 > 0 in fp16\\n\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n\\n}\\n\\n// https://github.com/google/filament/blob/master/shaders/src/brdf.fs\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\n\\t// Neubelt and Pettineo 2013, \\\\\\\"Crafting a Next-gen Material Pipeline for The Order: 1886\\\\\\\"\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n\\n}\\n\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenTint, const in float sheenRoughness ) {\\n\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\n\\treturn sheenTint * ( D * V );\\n\\n}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js\\nvar bumpmap_pars_fragment_glsl_default = `\\n#ifdef USE_BUMPMAP\\n\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\n\\t// Bump Mapping Unparametrized Surfaces on the GPU by Morten S. Mikkelsen\\n\\t// http://api.unrealengine.com/attachments/Engine/Rendering/LightingAndShadows/BumpMappingWithoutTangentSpace/mm_sfgrad_bump.pdf\\n\\n\\t// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\\n\\n\\tvec2 dHdxy_fwd() {\\n\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\n\\t\\treturn vec2( dBx, dBy );\\n\\n\\t}\\n\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\n\\t\\t// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988\\n\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\t\\t// normalized\\n\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_fragment.glsl.js\\nvar clipping_planes_fragment_glsl_default = `\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvec4 plane;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\n\\t\\tbool clipped = true;\\n\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\n\\t\\tif ( clipped ) discard;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_pars_fragment.glsl.js\\nvar clipping_planes_pars_fragment_glsl_default = `\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvarying vec3 vClipPosition;\\n\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_pars_vertex.glsl.js\\nvar clipping_planes_pars_vertex_glsl_default = `\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvarying vec3 vClipPosition;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clipping_planes_vertex.glsl.js\\nvar clipping_planes_vertex_glsl_default = `\\n#if NUM_CLIPPING_PLANES > 0\\n\\n\\tvClipPosition = - mvPosition.xyz;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js\\nvar color_fragment_glsl_default = `\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tdiffuseColor *= vColor;\\n\\n#elif defined( USE_COLOR )\\n\\n\\tdiffuseColor.rgb *= vColor;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js\\nvar color_pars_fragment_glsl_default = `\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tvarying vec4 vColor;\\n\\n#elif defined( USE_COLOR )\\n\\n\\tvarying vec3 vColor;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js\\nvar color_pars_vertex_glsl_default = `\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tvarying vec4 vColor;\\n\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\n\\tvarying vec3 vColor;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js\\nvar color_vertex_glsl_default = `\\n#if defined( USE_COLOR_ALPHA )\\n\\n\\tvColor = vec4( 1.0 );\\n\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\n\\tvColor = vec3( 1.0 );\\n\\n#endif\\n\\n#ifdef USE_COLOR\\n\\n\\tvColor *= color;\\n\\n#endif\\n\\n#ifdef USE_INSTANCING_COLOR\\n\\n\\tvColor.xyz *= instanceColor.xyz;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/common.glsl.js\\nvar common_glsl_default = `\\n#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n\\n#ifndef saturate\\n// <tonemapping_pars_fragment> may have defined saturate() already\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\n\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\n\\n// expects values in the range of [0,1]x[0,1], returns values in the [0,1] range.\\n// do not collapse into a single function per: http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/\\nhighp float rand( const in vec2 uv ) {\\n\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\n\\treturn fract( sin( sn ) * c );\\n\\n}\\n\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\n\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\n\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\n\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n}\\n\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t// dir can be either a direction vector or a normal vector\\n\\t// upper-left 3x3 of matrix is assumed to be orthogonal\\n\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n\\n}\\n\\nmat3 transposeMat3( const in mat3 m ) {\\n\\n\\tmat3 tmp;\\n\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\n\\treturn tmp;\\n\\n}\\n\\n// https://en.wikipedia.org/wiki/Relative_luminance\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\n\\treturn dot( weights, color.rgb );\\n\\n}\\n\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n\\n}\\n\\nvec2 equirectUv( in vec3 dir ) {\\n\\n\\t// dir is assumed to be unit length\\n\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\n\\treturn vec2( u, v );\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js\\nvar cube_uv_reflection_fragment_glsl_default = `\\n#ifdef ENVMAP_TYPE_CUBE_UV\\n\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\n\\t// These shader functions convert between the UV coordinates of a single face of\\n\\t// a cubemap, the 0-5 integer index of a cube face, and the direction vector for\\n\\t// sampling a textureCube (not generally normalized ).\\n\\n\\tfloat getFace( vec3 direction ) {\\n\\n\\t\\tvec3 absDirection = abs( direction );\\n\\n\\t\\tfloat face = - 1.0;\\n\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\n\\t\\t\\telse\\n\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\n\\t\\t\\telse\\n\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\n\\t\\t}\\n\\n\\t\\treturn face;\\n\\n\\t}\\n\\n\\t// RH coordinate system; PMREM face-indexing convention\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\n\\t\\tvec2 uv;\\n\\n\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x ); // pos x\\n\\n\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y ); // pos y\\n\\n\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z ); // pos z\\n\\n\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x ); // neg x\\n\\n\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y ); // neg y\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z ); // neg z\\n\\n\\t\\t}\\n\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\n\\t}\\n\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\n\\t\\tfloat face = getFace( direction );\\n\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\n\\t\\tvec2 f = fract( uv );\\n\\n\\t\\tuv += 0.5 - f;\\n\\n\\t\\tif ( face > 2.0 ) {\\n\\n\\t\\t\\tuv.y += faceSize;\\n\\n\\t\\t\\tface -= 3.0;\\n\\n\\t\\t}\\n\\n\\t\\tuv.x += face * faceSize;\\n\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\n\\t\\t}\\n\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\n\\t\\tuv *= texelSize;\\n\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\n\\t\\tuv.x += texelSize;\\n\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\n\\t\\tuv.y += texelSize;\\n\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\n\\t\\tuv.x -= texelSize;\\n\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\n\\t\\treturn mix( tm, bm, f.y );\\n\\n\\t}\\n\\n\\t// These defines must match with PMREMGenerator\\n\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\n\\tfloat roughnessToMip( float roughness ) {\\n\\n\\t\\tfloat mip = 0.0;\\n\\n\\t\\tif ( roughness >= r1 ) {\\n\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness ); // 1.16 = 1.79^0.25\\n\\t\\t}\\n\\n\\t\\treturn mip;\\n\\n\\t}\\n\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\n\\t\\tfloat mipF = fract( mip );\\n\\n\\t\\tfloat mipInt = floor( mip );\\n\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\n\\t\\tif ( mipF == 0.0 ) {\\n\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\n\\t\\t}\\n\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js\\nvar defaultnormal_vertex_glsl_default = `\\nvec3 transformedNormal = objectNormal;\\n\\n#ifdef USE_INSTANCING\\n\\n\\t// this is in lieu of a per-instance normal-matrix\\n\\t// shear transforms in the instance matrix are not supported\\n\\n\\tmat3 m = mat3( instanceMatrix );\\n\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\n\\ttransformedNormal = m * transformedNormal;\\n\\n#endif\\n\\ntransformedNormal = normalMatrix * transformedNormal;\\n\\n#ifdef FLIP_SIDED\\n\\n\\ttransformedNormal = - transformedNormal;\\n\\n#endif\\n\\n#ifdef USE_TANGENT\\n\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\n\\t#ifdef FLIP_SIDED\\n\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/displacementmap_pars_vertex.glsl.js\\nvar displacementmap_pars_vertex_glsl_default = `\\n#ifdef USE_DISPLACEMENTMAP\\n\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js\\nvar displacementmap_vertex_glsl_default = `\\n#ifdef USE_DISPLACEMENTMAP\\n\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js\\nvar emissivemap_fragment_glsl_default = `\\n#ifdef USE_EMISSIVEMAP\\n\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl.js\\nvar emissivemap_pars_fragment_glsl_default = `\\n#ifdef USE_EMISSIVEMAP\\n\\n\\tuniform sampler2D emissiveMap;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/encodings_fragment.glsl.js\\nvar encodings_fragment_glsl_default = `\\ngl_FragColor = linearToOutputTexel( gl_FragColor );\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js\\nvar encodings_pars_fragment_glsl_default = `\\n// For a discussion of what this is, please read this: http://lousodrome.net/blog/light/2013/05/26/gamma-correct-and-hdr-rendering-in-a-32-bits-buffer/\\n\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\n\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\n\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\n\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\n\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\n\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\n\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n\\t// return vec4( value.brg, ( 3.0 + 128.0 ) / 256.0 );\\n}\\n\\n// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\n\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\n\\n// reference: http://iwasbeingirony.blogspot.ca/2010/06/difference-between-rgbm-and-rgbd.html\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\n\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\t// NOTE: The implementation with min causes the shader to not compile on\\n\\t// a common Alcatel A502DL in Chrome 78/Android 8.1. Some research suggests \\n\\t// that the chipset is Mediatek MT6739 w/ IMG PowerVR GE8100 GPU.\\n\\t// D = min( floor( D ) / 255.0, 1.0 );\\n\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\n\\n// LogLuv reference: http://graphicrants.blogspot.ca/2009/04/rgbm-color-encoding.html\\n\\n// M matrix, for encoding\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\n\\n// Inverse M matrix, for decoding\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js\\nvar envmap_fragment_glsl_default = `\\n#ifdef USE_ENVMAP\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\n\\t\\tvec3 cameraToFrag;\\n\\n\\t\\tif ( isOrthographic ) {\\n\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\n\\t\\t}\\n\\n\\t\\t// Transforming Normal Vectors with the Inverse Transformation\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\n\\t\\t#else\\n\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\n\\t\\t#endif\\n\\n\\t#else\\n\\n\\t\\tvec3 reflectVec = vReflect;\\n\\n\\t#endif\\n\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\n\\t#else\\n\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\n\\t#endif\\n\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js\\nvar envmap_common_pars_fragment_glsl_default = `\\n#ifdef USE_ENVMAP\\n\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js\\nvar envmap_pars_fragment_glsl_default = `\\n#ifdef USE_ENVMAP\\n\\n\\tuniform float reflectivity;\\n\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\n\\t\\t#define ENV_WORLDPOS\\n\\n\\t#endif\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js\\nvar envmap_pars_vertex_glsl_default = `\\n#ifdef USE_ENVMAP\\n\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\n\\t\\t#define ENV_WORLDPOS\\n\\n\\t#endif\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\n\\t#else\\n\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js\\nvar envmap_vertex_glsl_default = `\\n#ifdef USE_ENVMAP\\n\\n\\t#ifdef ENV_WORLDPOS\\n\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\n\\t#else\\n\\n\\t\\tvec3 cameraToVertex;\\n\\n\\t\\tif ( isOrthographic ) {\\n\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\n\\t\\t}\\n\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\n\\t\\t#else\\n\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/fog_vertex.glsl.js\\nvar fog_vertex_glsl_default = `\\n#ifdef USE_FOG\\n\\n\\tvFogDepth = - mvPosition.z;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/fog_pars_vertex.glsl.js\\nvar fog_pars_vertex_glsl_default = `\\n#ifdef USE_FOG\\n\\n\\tvarying float vFogDepth;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/fog_fragment.glsl.js\\nvar fog_fragment_glsl_default = `\\n#ifdef USE_FOG\\n\\n\\t#ifdef FOG_EXP2\\n\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\n\\t#else\\n\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\n\\t#endif\\n\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl.js\\nvar fog_pars_fragment_glsl_default = `\\n#ifdef USE_FOG\\n\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\n\\t#ifdef FOG_EXP2\\n\\n\\t\\tuniform float fogDensity;\\n\\n\\t#else\\n\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js\\nvar gradientmap_pars_fragment_glsl_default = `\\n\\n#ifdef USE_GRADIENTMAP\\n\\n\\tuniform sampler2D gradientMap;\\n\\n#endif\\n\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\n\\t// dotNL will be from -1.0 to 1.0\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\n\\t#ifdef USE_GRADIENTMAP\\n\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\n\\t#else\\n\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\n\\t#endif\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js\\nvar lightmap_fragment_glsl_default = `\\n#ifdef USE_LIGHTMAP\\n\\n\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\n\\t\\tlightMapIrradiance *= PI;\\n\\n\\t#endif\\n\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl.js\\nvar lightmap_pars_fragment_glsl_default = `\\n#ifdef USE_LIGHTMAP\\n\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js\\nvar lights_lambert_vertex_glsl_default = `\\nvec3 diffuse = vec3( 1.0 );\\n\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\n\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\n\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\n\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\n\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\\n\\n#ifdef DOUBLE_SIDED\\n\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\\n\\n#endif\\n\\n#if NUM_POINT_LIGHTS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\n\\t\\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\\n\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if NUM_SPOT_LIGHTS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\n\\t\\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\\n\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if NUM_DIR_LIGHTS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\n\\t\\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\\n\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if NUM_HEMI_LIGHTS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js\\nvar lights_pars_begin_glsl_default = `\\nuniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\n\\n// get the irradiance (radiance convolved with cosine lobe) at the point 'normal' on the unit sphere\\n// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\n\\t// normal is assumed to have unit length\\n\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\n\\t// band 0\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\n\\t// band 1\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\n\\t// band 2\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\n\\treturn result;\\n\\n}\\n\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\n\\treturn irradiance;\\n\\n}\\n\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\n\\tvec3 irradiance = ambientLightColor;\\n\\n\\treturn irradiance;\\n\\n}\\n\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\n\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\n\\t\\t// based upon Frostbite 3 Moving to Physically-based Rendering\\n\\t\\t// page 32, equation 26: E[window1]\\n\\t\\t// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\n\\t\\t}\\n\\n\\t\\treturn distanceFalloff;\\n\\n\\t#else\\n\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\n\\t\\t}\\n\\n\\t\\treturn 1.0;\\n\\n\\t#endif\\n\\n}\\n\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n\\n}\\n\\n#if NUM_DIR_LIGHTS > 0\\n\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\n\\t}\\n\\n#endif\\n\\n\\n#if NUM_POINT_LIGHTS > 0\\n\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\n\\t// light is an out parameter as having it as a return value caused compiler errors on some devices\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\n\\t\\tlight.direction = normalize( lVector );\\n\\n\\t\\tfloat lightDistance = length( lVector );\\n\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\n\\t}\\n\\n#endif\\n\\n\\n#if NUM_SPOT_LIGHTS > 0\\n\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\n\\t// light is an out parameter as having it as a return value caused compiler errors on some devices\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\n\\t\\tlight.direction = normalize( lVector );\\n\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\n\\t\\t} else {\\n\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\n\\t\\t}\\n\\n\\t}\\n\\n#endif\\n\\n\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\n\\t// Pre-computed values of LinearTransformedCosine approximation of BRDF\\n\\t// BRDF approximation Texture is 64x64\\n\\tuniform sampler2D ltc_1; // RGBA Float\\n\\tuniform sampler2D ltc_2; // RGBA Float\\n\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n\\n#endif\\n\\n\\n#if NUM_HEMI_LIGHTS > 0\\n\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\n\\t\\treturn irradiance;\\n\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js\\nvar envmap_physical_pars_fragment_glsl_default = `\\n#if defined( USE_ENVMAP )\\n\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\n\\t\\tuniform float refractionRatio;\\n\\n\\t#endif\\n\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn vec3( 0.0 );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\t\\tvec3 reflectVec;\\n\\n\\t\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\n\\t\\t\\t\\treflectVec = reflect( - viewDir, normal );\\n\\n\\t\\t\\t\\t// Mixing the reflection with the normal is more accurate and keeps rough objects from gathering light from behind their tangent plane.\\n\\t\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\n\\t\\t\\t#else\\n\\n\\t\\t\\t\\treflectVec = refract( - viewDir, normal, refractionRatio );\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn vec3( 0.0 );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_toon_fragment.glsl.js\\nvar lights_toon_fragment_glsl_default = `\\nToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js\\nvar lights_toon_pars_fragment_glsl_default = `\\nvarying vec3 vViewPosition;\\n\\nstruct ToonMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\n};\\n\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n\\n#define Material_LightProbeLOD( material )\\t(0)\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl.js\\nvar lights_phong_fragment_glsl_default = `\\nBlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js\\nvar lights_phong_pars_fragment_glsl_default = `\\nvarying vec3 vViewPosition;\\n\\nstruct BlinnPhongMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n\\n};\\n\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n\\n}\\n\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n\\n#define Material_LightProbeLOD( material )\\t(0)\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js\\nvar lights_physical_fragment_glsl_default = `\\nPhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\n\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\n\\nmaterial.roughness = max( roughnessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.\\nmaterial.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n\\n#ifdef IOR\\n\\n\\t#ifdef SPECULAR\\n\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularTintFactor = specularTint;\\n\\n\\t\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\n\\n\\t\\t#endif\\n\\n\\t\\t#ifdef USE_SPECULARTINTMAP\\n\\n\\t\\t\\tspecularTintFactor *= specularTintMapTexelToLinear( texture2D( specularTintMap, vUv ) ).rgb;\\n\\n\\t\\t#endif\\n\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\n\\t#else\\n\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularTintFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\n\\t#endif\\n\\n\\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularTintFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n\\n#else\\n\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n\\n#endif\\n\\n#ifdef USE_CLEARCOAT\\n\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\n\\t#ifdef USE_CLEARCOATMAP\\n\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\n\\t#endif\\n\\n\\tmaterial.clearcoat = saturate( material.clearcoat ); // Burley clearcoat model\\n\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n\\n#endif\\n\\n#ifdef USE_SHEEN\\n\\n\\tmaterial.sheenTint = sheenTint;\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js\\nvar lights_physical_pars_fragment_glsl_default = `\\nstruct PhysicalMaterial {\\n\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenTint;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\n};\\n\\n// temporary\\nvec3 clearcoatSpecular = vec3( 0.0 );\\n\\n// Analytical approximation of the DFG LUT, one half of the\\n// split-sum approximation used in indirect specular lighting.\\n// via 'environmentBRDF' from \\\\\\\"Physically Based Shading on Mobile\\\\\\\"\\n// https://www.unrealengine.com/blog/physically-based-shading-on-mobile\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\n\\tvec4 r = roughness * c0 + c1;\\n\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\n\\treturn fab;\\n\\n}\\n\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n\\n}\\n\\n// Fdez-Ag\\\\xFCera's \\\\\\\"Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting\\\\\\\"\\n// Approximates multiscattering in order to preserve energy.\\n// http://www.jcgt.org/published/0008/01/03/\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\n\\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\\n\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; // 1/21\\n\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n\\n}\\n\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight; // counterclockwise; light shines in local neg z direction\\n\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(    0, 1,    0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\n\\t\\t// LTC Fresnel Approximation by Stephen Hill\\n\\t\\t// http://blog.selfshadow.com/publications/s2016-advances/s2016_ltc_fresnel.pdf\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\n\\t}\\n\\n#endif\\n\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\n\\t\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\n\\t#endif\\n\\n\\t#ifdef USE_SHEEN\\n\\n\\t\\treflectedLight.directSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenTint, material.sheenRoughness );\\n\\n\\t#endif\\n\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\n\\n\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n}\\n\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\n\\t#endif\\n\\n\\t// Both indirect specular and indirect diffuse light accumulate here\\n\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\n\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n\\n}\\n\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\n\\n// ref: https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js\\nvar lights_fragment_begin_glsl_default = `\\n/**\\n * This is a template that can be used to light a material, it uses pluggable\\n * RenderEquations (RE)for specific lighting scenarios.\\n *\\n * Instructions for use:\\n * - Ensure that both RE_Direct, RE_IndirectDiffuse and RE_IndirectSpecular are defined\\n * - If you have defined an RE_IndirectSpecular, you need to also provide a Material_LightProbeLOD. <---- ???\\n * - Create a material parameter that is to be passed as the third parameter to your lighting functions.\\n *\\n * TODO:\\n * - Add area light support.\\n * - Add sphere light support.\\n * - Add diffuse light probe (irradiance cubemap) support.\\n */\\n\\nGeometricContext geometry;\\n\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n\\n#ifdef USE_CLEARCOAT\\n\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n\\n#endif\\n\\nIncidentLight directLight;\\n\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\n\\t\\tpointLight = pointLights[ i ];\\n\\n\\t\\tgetPointLightInfo( pointLight, geometry, directLight );\\n\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\n\\t\\tspotLight = spotLights[ i ];\\n\\n\\t\\tgetSpotLightInfo( spotLight, geometry, directLight );\\n\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\n\\t\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\n\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\n\\tRectAreaLight rectAreaLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n#endif\\n\\n#if defined( RE_IndirectDiffuse )\\n\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\n\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n#endif\\n\\n#if defined( RE_IndirectSpecular )\\n\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js\\nvar lights_fragment_maps_glsl_default = `\\n#if defined( RE_IndirectDiffuse )\\n\\n\\t#ifdef USE_LIGHTMAP\\n\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\n\\t\\t#endif\\n\\n\\t\\tirradiance += lightMapIrradiance;\\n\\n\\t#endif\\n\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\n\\t\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\n\\n\\t#endif\\n\\n#endif\\n\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\n\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js\\nvar lights_fragment_end_glsl_default = `\\n#if defined( RE_IndirectDiffuse )\\n\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n\\n#endif\\n\\n#if defined( RE_IndirectSpecular )\\n\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js\\nvar logdepthbuf_fragment_glsl_default = `\\n#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\n\\t// Doing a strict comparison with == 1.0 can cause noise artifacts\\n\\t// on some platforms. See issue #17623.\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js\\nvar logdepthbuf_pars_fragment_glsl_default = `\\n#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js\\nvar logdepthbuf_pars_vertex_glsl_default = `\\n#ifdef USE_LOGDEPTHBUF\\n\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\n\\t#else\\n\\n\\t\\tuniform float logDepthBufFC;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js\\nvar logdepthbuf_vertex_glsl_default = `\\n#ifdef USE_LOGDEPTHBUF\\n\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\n\\t#else\\n\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\n\\t\\t}\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js\\nvar map_fragment_glsl_default = `\\n#ifdef USE_MAP\\n\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl.js\\nvar map_pars_fragment_glsl_default = `\\n#ifdef USE_MAP\\n\\n\\tuniform sampler2D map;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js\\nvar map_particle_fragment_glsl_default = `\\n#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\n#endif\\n\\n#ifdef USE_MAP\\n\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n\\n#endif\\n\\n#ifdef USE_ALPHAMAP\\n\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js\\nvar map_particle_pars_fragment_glsl_default = `\\n#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\n\\tuniform mat3 uvTransform;\\n\\n#endif\\n\\n#ifdef USE_MAP\\n\\n\\tuniform sampler2D map;\\n\\n#endif\\n\\n#ifdef USE_ALPHAMAP\\n\\n\\tuniform sampler2D alphaMap;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js\\nvar metalnessmap_fragment_glsl_default = `\\nfloat metalnessFactor = metalness;\\n\\n#ifdef USE_METALNESSMAP\\n\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\n\\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n\\tmetalnessFactor *= texelMetalness.b;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/metalnessmap_pars_fragment.glsl.js\\nvar metalnessmap_pars_fragment_glsl_default = `\\n#ifdef USE_METALNESSMAP\\n\\n\\tuniform sampler2D metalnessMap;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js\\nvar morphnormal_vertex_glsl_default = `\\n#ifdef USE_MORPHNORMALS\\n\\n\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\n\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in normal = sum((target - base) * influence)\\n\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\n\\t\\t\\tif ( morphTargetInfluences[ i ] > 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ];\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js\\nvar morphtarget_pars_vertex_glsl_default = `\\n#ifdef USE_MORPHTARGETS\\n\\n\\tuniform float morphTargetBaseInfluence;\\n\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform vec2 morphTargetsTextureSize;\\n\\n\\t\\tvec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) {\\n\\n\\t\\t\\tfloat texelIndex = float( vertexIndex * stride + offset );\\n\\t\\t\\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\\n\\t\\t\\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\\n\\n\\t\\t\\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\\n\\t\\t\\treturn texture( morphTargetsTexture, morphUV ).xyz;\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\n\\t\\t#else\\n\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js\\nvar morphtarget_vertex_glsl_default = `\\n#ifdef USE_MORPHTARGETS\\n\\n\\t// morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:\\n\\t// When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in position = sum((target - base) * influence)\\n\\t// When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\n\\t\\t\\t#ifndef USE_MORPHNORMALS\\n\\n\\t\\t\\t\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ];\\n\\n\\t\\t\\t#else\\n\\n\\t\\t\\t\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ];\\n\\n\\t\\t\\t#endif\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js\\nvar normal_fragment_begin_glsl_default = `\\nfloat faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n\\n#ifdef FLAT_SHADED\\n\\n\\t// Workaround for Adreno GPUs not able to do dFdx( vViewPosition )\\n\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n\\n#else\\n\\n\\tvec3 normal = normalize( vNormal );\\n\\n\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\tnormal = normal * faceDirection;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\n\\t\\t#endif\\n\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\n\\t\\t#endif\\n\\n\\t#endif\\n\\n#endif\\n\\n// non perturbed normal for clearcoat among others\\n\\nvec3 geometryNormal = normal;\\n\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js\\nvar normal_fragment_maps_glsl_default = `\\n\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals\\n\\n\\t#ifdef FLIP_SIDED\\n\\n\\t\\tnormal = - normal;\\n\\n\\t#endif\\n\\n\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\tnormal = normal * faceDirection;\\n\\n\\t#endif\\n\\n\\tnormal = normalize( normalMatrix * normal );\\n\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\n\\t#else\\n\\n\\t\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\n\\n\\t#endif\\n\\n#elif defined( USE_BUMPMAP )\\n\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js\\nvar normal_pars_fragment_glsl_default = `\\n#ifndef FLAT_SHADED\\n\\n\\tvarying vec3 vNormal;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js\\nvar normal_pars_vertex_glsl_default = `\\n#ifndef FLAT_SHADED\\n\\n\\tvarying vec3 vNormal;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js\\nvar normal_vertex_glsl_default = `\\n#ifndef FLAT_SHADED // normal is computed with derivatives when FLAT_SHADED\\n\\n\\tvNormal = normalize( transformedNormal );\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js\\nvar normalmap_pars_fragment_glsl_default = `\\n#ifdef USE_NORMALMAP\\n\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\n#endif\\n\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\n\\tuniform mat3 normalMatrix;\\n\\n#endif\\n\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\n\\t// Normal Mapping Without Precomputed Tangents\\n\\t// http://www.thetenthplanet.de/archives/1180\\n\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\n\\t\\t// Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988\\n\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\n\\t\\tvec3 N = surf_norm; // normalized\\n\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js\\nvar clearcoat_normal_fragment_begin_glsl_default = `\\n#ifdef USE_CLEARCOAT\\n\\n\\tvec3 clearcoatNormal = geometryNormal;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js\\nvar clearcoat_normal_fragment_maps_glsl_default = `\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\n\\t#else\\n\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js\\nvar clearcoat_pars_fragment_glsl_default = `\\n\\n#ifdef USE_CLEARCOATMAP\\n\\n\\tuniform sampler2D clearcoatMap;\\n\\n#endif\\n\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n\\n#endif\\n\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js\\nvar output_fragment_glsl_default = `\\n#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n\\n// https://github.com/mrdoob/three.js/pull/22425\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= transmissionAlpha + 0.1;\\n#endif\\n\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/packing.glsl.js\\nvar packing_glsl_default = `\\nvec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\n\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\n\\nconst float PackUpscale = 256. / 255.; // fraction -> 0..1 (including 1)\\nconst float UnpackDownscale = 255. / 256.; // 0..1 -> fraction (excluding 1)\\n\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\n\\nconst float ShiftRight8 = 1. / 256.;\\n\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8; // tidy overflow\\n\\treturn r * PackUpscale;\\n}\\n\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\n\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\n\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\n\\n// NOTE: viewZ/eyeZ is < 0 when in front of the camera per OpenGL conventions\\n\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\n\\n// NOTE: https://twitter.com/gonnavis/status/1377183786949959682\\n\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js\\nvar premultiplied_alpha_fragment_glsl_default = `\\n#ifdef PREMULTIPLIED_ALPHA\\n\\n\\t// Get get normal blending with premultipled, use with CustomBlending, OneFactor, OneMinusSrcAlphaFactor, AddEquation.\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/project_vertex.glsl.js\\nvar project_vertex_glsl_default = `\\nvec4 mvPosition = vec4( transformed, 1.0 );\\n\\n#ifdef USE_INSTANCING\\n\\n\\tmvPosition = instanceMatrix * mvPosition;\\n\\n#endif\\n\\nmvPosition = modelViewMatrix * mvPosition;\\n\\ngl_Position = projectionMatrix * mvPosition;\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/dithering_fragment.glsl.js\\nvar dithering_fragment_glsl_default = `\\n#ifdef DITHERING\\n\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js\\nvar dithering_pars_fragment_glsl_default = `\\n#ifdef DITHERING\\n\\n\\t// based on https://www.shadertoy.com/view/MslGR8\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\t//Calculate grid position\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\n\\t\\t//Shift the individual colors differently, thus making it even harder to see the dithering pattern\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\n\\t\\t//modify shift acording to grid position.\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\n\\t\\t//shift the color by dither_shift\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js\\nvar roughnessmap_fragment_glsl_default = `\\nfloat roughnessFactor = roughness;\\n\\n#ifdef USE_ROUGHNESSMAP\\n\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\n\\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\\n\\troughnessFactor *= texelRoughness.g;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/roughnessmap_pars_fragment.glsl.js\\nvar roughnessmap_pars_fragment_glsl_default = `\\n#ifdef USE_ROUGHNESSMAP\\n\\n\\tuniform sampler2D roughnessMap;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js\\nvar shadowmap_pars_fragment_glsl_default = `\\n#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): create uniforms for area light shadows\\n\\n\\t#endif\\n\\t*/\\n\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\n\\t}\\n\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\n\\t}\\n\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\n\\t\\tfloat occlusion = 1.0;\\n\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\n\\t\\tfloat hard_shadow = step( compare , distribution.x ); // Hard Shadow\\n\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance ); // Chebeyshevs inequality\\n\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); // 0.3 reduces light bleed\\n\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\n\\t}\\n\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\n\\t\\tfloat shadow = 1.0;\\n\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\n\\t\\t// if ( something && something ) breaks ATI OpenGL shader compiler\\n\\t\\t// if ( all( something, something ) ) using this instead\\n\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\n\\t\\tif ( frustumTest ) {\\n\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\n\\t\\t#else // no percentage-closer filtering:\\n\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\n\\t\\t#endif\\n\\n\\t\\t}\\n\\n\\t\\treturn shadow;\\n\\n\\t}\\n\\n\\t// cubeToUV() maps a 3D direction vector suitable for cube texture mapping to a 2D\\n\\t// vector suitable for 2D texture mapping. This code uses the following layout for the\\n\\t// 2D texture:\\n\\t//\\n\\t// xzXZ\\n\\t//  y Y\\n\\t//\\n\\t// Y - Positive y direction\\n\\t// y - Negative y direction\\n\\t// X - Positive x direction\\n\\t// x - Negative x direction\\n\\t// Z - Positive z direction\\n\\t// z - Negative z direction\\n\\t//\\n\\t// Source and test bed:\\n\\t// https://gist.github.com/tschw/da10c43c467ce8afd0c4\\n\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\n\\t\\t// Number of texels to avoid at the edge of each square\\n\\n\\t\\tvec3 absV = abs( v );\\n\\n\\t\\t// Intersect unit cube\\n\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\n\\t\\t// Apply scale to avoid seams\\n\\n\\t\\t// two texels less per square (one texel will do for NEAREST)\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\n\\t\\t// Unwrap\\n\\n\\t\\t// space: -1 ... 1 range for each square\\n\\t\\t//\\n\\t\\t// #X##\\t\\tdim    := ( 4 , 2 )\\n\\t\\t//  # #\\t\\tcenter := ( 1 , 1 )\\n\\n\\t\\tvec2 planar = v.xy;\\n\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\n\\t\\t}\\n\\n\\t\\t// Transform to UV space\\n\\n\\t\\t// scale := 0.5 / dim\\n\\t\\t// translate := ( center + 0.5 ) / dim\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\n\\t}\\n\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\n\\t\\t// for point lights, the uniform @vShadowCoord is re-purposed to hold\\n\\t\\t// the vector from the light to the world-space position of the fragment.\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\n\\t\\t// dp = normalized distance from light to fragment position\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); // need to clamp?\\n\\t\\tdp += shadowBias;\\n\\n\\t\\t// bd3D = base direction 3D\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\n\\t\\t#else // no percentage-closer filtering\\n\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js\\nvar shadowmap_pars_vertex_glsl_default = `\\n#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): uniforms for area light shadows\\n\\n\\t#endif\\n\\t*/\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js\\nvar shadowmap_vertex_glsl_default = `\\n#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t\\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\n\\t#endif\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): update vAreaShadowCoord with area light info\\n\\n\\t#endif\\n\\t*/\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js\\nvar shadowmask_pars_fragment_glsl_default = `\\nfloat getShadowMask() {\\n\\n\\tfloat shadow = 1.0;\\n\\n\\t#ifdef USE_SHADOWMAP\\n\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\n\\tDirectionalLightShadow directionalLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\n\\tSpotLightShadow spotLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\n\\tPointLightShadow pointLight;\\n\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\n\\t#endif\\n\\n\\t/*\\n\\t#if NUM_RECT_AREA_LIGHTS > 0\\n\\n\\t\\t// TODO (abelnation): update shadow for Area light\\n\\n\\t#endif\\n\\t*/\\n\\n\\t#endif\\n\\n\\treturn shadow;\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl.js\\nvar skinbase_vertex_glsl_default = `\\n#ifdef USE_SKINNING\\n\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js\\nvar skinning_pars_vertex_glsl_default = `\\n#ifdef USE_SKINNING\\n\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\n\\t#ifdef BONE_TEXTURE\\n\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\n\\t\\t\\treturn bone;\\n\\n\\t\\t}\\n\\n\\t#else\\n\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\n\\t\\t}\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/skinning_vertex.glsl.js\\nvar skinning_vertex_glsl_default = `\\n#ifdef USE_SKINNING\\n\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl.js\\nvar skinnormal_vertex_glsl_default = `\\n#ifdef USE_SKINNING\\n\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\n\\t#ifdef USE_TANGENT\\n\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\n\\t#endif\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js\\nvar specularmap_fragment_glsl_default = `\\nfloat specularStrength;\\n\\n#ifdef USE_SPECULARMAP\\n\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n\\n#else\\n\\n\\tspecularStrength = 1.0;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl.js\\nvar specularmap_pars_fragment_glsl_default = `\\n#ifdef USE_SPECULARMAP\\n\\n\\tuniform sampler2D specularMap;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/tonemapping_fragment.glsl.js\\nvar tonemapping_fragment_glsl_default = `\\n#if defined( TONE_MAPPING )\\n\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js\\nvar tonemapping_pars_fragment_glsl_default = `\\n#ifndef saturate\\n// <common> may have defined saturate() already\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n\\nuniform float toneMappingExposure;\\n\\n// exposure only\\nvec3 LinearToneMapping( vec3 color ) {\\n\\n\\treturn toneMappingExposure * color;\\n\\n}\\n\\n// source: https://www.cs.utah.edu/~reinhard/cdrom/\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n\\n}\\n\\n// source: http://filmicworlds.com/blog/filmic-tonemapping-operators/\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\n\\t// optimized filmic operator by Jim Hejl and Richard Burgess-Dawson\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n\\n}\\n\\n// source: https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n\\n}\\n\\n// this implementation of ACES is modified to accommodate a brighter viewing environment.\\n// the scale factor of 1/0.6 is subjective. see discussion in #19621.\\n\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\n\\t// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ), // transposed from source\\n\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\n\\t// ODT_SAT => XYZ => D60_2_D65 => sRGB\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(  1.60475, -0.10208, -0.00327 ), // transposed from source\\n\\t\\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,  1.07602 )\\n\\t);\\n\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\n\\tcolor = ACESInputMat * color;\\n\\n\\t// Apply RRT and ODT\\n\\tcolor = RRTAndODTFit( color );\\n\\n\\tcolor = ACESOutputMat * color;\\n\\n\\t// Clamp to [0, 1]\\n\\treturn saturate( color );\\n\\n}\\n\\nvec3 CustomToneMapping( vec3 color ) { return color; }\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js\\nvar transmission_fragment_glsl_default = `\\n#ifdef USE_TRANSMISSION\\n\\n\\tfloat transmissionAlpha = 1.0;\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_THICKNESSMAP\\n\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\n\\t#endif\\n\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\n\\tvec4 transmission = getIBLVolumeRefraction(\\n\\t\\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationTint, attenuationDistance );\\n\\n\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\\n\\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js\\nvar transmission_pars_fragment_glsl_default = `\\n#ifdef USE_TRANSMISSION\\n\\n\\t// Transmission code is based on glTF-Sampler-Viewer\\n\\t// https://github.com/KhronosGroup/glTF-Sample-Viewer\\n\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationTint;\\n\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\n\\t\\tuniform sampler2D transmissionMap;\\n\\n\\t#endif\\n\\n\\t#ifdef USE_THICKNESSMAP\\n\\n\\t\\tuniform sampler2D thicknessMap;\\n\\n\\t#endif\\n\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\n\\tvarying vec3 vWorldPosition;\\n\\n\\tvec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {\\n\\n\\t\\t// Direction of refracted light.\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\n\\t\\t// Compute rotation-independant scaling of the model matrix.\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\n\\t\\t// The thickness is specified in local space.\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\n\\t}\\n\\n\\tfloat applyIorToRoughness( float roughness, float ior ) {\\n\\n\\t\\t// Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\\n\\t\\t// an IOR of 1.5 results in the default amount of microfacet refraction.\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\n\\t}\\n\\n\\tvec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior ) {\\n\\n\\t\\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\n\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\n\\t\\t\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\n\\t\\t#else\\n\\n\\t\\t\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\tvec3 applyVolumeAttenuation( vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance ) {\\n\\n\\t\\tif ( attenuationDistance == 0.0 ) {\\n\\n\\t\\t\\t// Attenuation distance is +\\\\u221E (which we indicate by zero), i.e. the transmitted color is not attenuated at all.\\n\\t\\t\\treturn radiance;\\n\\n\\t\\t} else {\\n\\n\\t\\t\\t// Compute light attenuation using Beer's law.\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\\n\\t\\t\\treturn transmittance * radiance;\\n\\n\\t\\t}\\n\\n\\t}\\n\\n\\tvec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 diffuseColor, vec3 specularColor, float specularF90,\\n\\t\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\n\\t\\tvec3 attenuationColor, float attenuationDistance ) {\\n\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\n\\t\\t// Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\n\\t\\t// Sample framebuffer to get pixel the refracted ray hits.\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\n\\t\\t// Get the specular component.\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\n\\n\\t}\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js\\nvar uv_pars_fragment_glsl_default = `\\n#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\n\\tvarying vec2 vUv;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js\\nvar uv_pars_vertex_glsl_default = `\\n#ifdef USE_UV\\n\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\n\\t\\tvec2 vUv;\\n\\n\\t#else\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t#endif\\n\\n\\tuniform mat3 uvTransform;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js\\nvar uv_vertex_glsl_default = `\\n#ifdef USE_UV\\n\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js\\nvar uv2_pars_fragment_glsl_default = `\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\n\\tvarying vec2 vUv2;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js\\nvar uv2_pars_vertex_glsl_default = `\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\n\\tuniform mat3 uv2Transform;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js\\nvar uv2_vertex_glsl_default = `\\n#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js\\nvar worldpos_vertex_glsl_default = `\\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\n\\t#ifdef USE_INSTANCING\\n\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\n\\t#endif\\n\\n\\tworldPosition = modelMatrix * worldPosition;\\n\\n#endif\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/background.glsl.js\\nvar vertex = `\\nvarying vec2 vUv;\\nuniform mat3 uvTransform;\\n\\nvoid main() {\\n\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n\\n}\\n`;\\nvar fragment = `\\nuniform sampler2D t2D;\\n\\nvarying vec2 vUv;\\n\\nvoid main() {\\n\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/cube.glsl.js\\nvar vertex2 = `\\nvarying vec3 vWorldDirection;\\n\\n#include <common>\\n\\nvoid main() {\\n\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\n\\tgl_Position.z = gl_Position.w; // set z to camera.far\\n\\n}\\n`;\\nvar fragment2 = `\\n#include <envmap_common_pars_fragment>\\nuniform float opacity;\\n\\nvarying vec3 vWorldDirection;\\n\\n#include <cube_uv_reflection_fragment>\\n\\nvoid main() {\\n\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/depth.glsl.js\\nvar vertex3 = `\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\\nvarying vec2 vHighPrecisionZW;\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\n\\t#include <skinbase_vertex>\\n\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\n\\t#endif\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\tvHighPrecisionZW = gl_Position.zw;\\n\\n}\\n`;\\nvar fragment3 = `\\n#if DEPTH_PACKING == 3200\\n\\n\\tuniform float opacity;\\n\\n#endif\\n\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvarying vec2 vHighPrecisionZW;\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\n\\t#if DEPTH_PACKING == 3200\\n\\n\\t\\tdiffuseColor.a = opacity;\\n\\n\\t#endif\\n\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\n\\t#include <logdepthbuf_fragment>\\n\\n\\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\n\\t#if DEPTH_PACKING == 3200\\n\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\n\\t#elif DEPTH_PACKING == 3201\\n\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\n\\t#endif\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js\\nvar vertex4 = `\\n#define DISTANCE\\n\\nvarying vec3 vWorldPosition;\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\n\\t#include <skinbase_vertex>\\n\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\n\\t#endif\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\tvWorldPosition = worldPosition.xyz;\\n\\n}\\n`;\\nvar fragment4 = `\\n#define DISTANCE\\n\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main () {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist ); // clamp to [ 0, 1 ]\\n\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/equirect.glsl.js\\nvar vertex5 = `\\nvarying vec3 vWorldDirection;\\n\\n#include <common>\\n\\nvoid main() {\\n\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\n}\\n`;\\nvar fragment5 = `\\nuniform sampler2D tEquirect;\\n\\nvarying vec3 vWorldDirection;\\n\\n#include <common>\\n\\nvoid main() {\\n\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/linedashed.glsl.js\\nvar vertex6 = `\\nuniform float scale;\\nattribute float lineDistance;\\n\\nvarying float vLineDistance;\\n\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\tvLineDistance = scale * lineDistance;\\n\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment6 = `\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\nuniform float dashSize;\\nuniform float totalSize;\\n\\nvarying float vLineDistance;\\n\\n#include <common>\\n#include <color_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\n\\t\\tdiscard;\\n\\n\\t}\\n\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\n\\toutgoingLight = diffuseColor.rgb; // simple shader\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshbasic.glsl.js\\nvar vertex7 = `\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinbase_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t\\t#include <defaultnormal_vertex>\\n\\n\\t#endif\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment7 = `\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\n#ifndef FLAT_SHADED\\n\\n\\tvarying vec3 vNormal;\\n\\n#endif\\n\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\n\\t// accumulation (baked indirect lighting only)\\n\\t#ifdef USE_LIGHTMAP\\n\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\n\\t#else\\n\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\n\\t#endif\\n\\n\\t// modulation\\n\\t#include <aomap_fragment>\\n\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\n\\t#include <envmap_fragment>\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshlambert.glsl.js\\nvar vertex8 = `\\n#define LAMBERT\\n\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\\n`;\\nvar fragment8 = `\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n\\n\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\n\\t// accumulation\\n\\n\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\n\\t#else\\n\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\n\\t#endif\\n\\n\\t#include <lightmap_fragment>\\n\\n\\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\\n\\n\\t#ifdef DOUBLE_SIDED\\n\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\n\\t#else\\n\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\n\\t#endif\\n\\n\\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\n\\t// modulation\\n\\n\\t#include <aomap_fragment>\\n\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\n\\t#include <envmap_fragment>\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js\\nvar vertex9 = `\\n#define MATCAP\\n\\nvarying vec3 vViewPosition;\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n}\\n`;\\nvar fragment9 = `\\n#define MATCAP\\n\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\n\\nvarying vec3 vViewPosition;\\n\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; // 0.495 to remove artifacts caused by undersized matcap disks\\n\\n\\t#ifdef USE_MATCAP\\n\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\n\\t#else\\n\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\n\\t#endif\\n\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshnormal.glsl.js\\nvar vertex10 = `\\n#define NORMAL\\n\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvarying vec3 vViewPosition;\\n\\n#endif\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n#endif\\n\\n}\\n`;\\nvar fragment10 = `\\n#define NORMAL\\n\\nuniform float opacity;\\n\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n\\tvarying vec3 vViewPosition;\\n\\n#endif\\n\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshphong.glsl.js\\nvar vertex11 = `\\n#define PHONG\\n\\nvarying vec3 vViewPosition;\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment11 = `\\n#define PHONG\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\n\\t// accumulation\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\n\\t// modulation\\n\\t#include <aomap_fragment>\\n\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\n\\t#include <envmap_fragment>\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshphysical.glsl.js\\nvar vertex12 = `\\n#define STANDARD\\n\\nvarying vec3 vViewPosition;\\n\\n#ifdef USE_TRANSMISSION\\n\\n\\tvarying vec3 vWorldPosition;\\n\\n#endif\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n\\n#ifdef USE_TRANSMISSION\\n\\n\\tvWorldPosition = worldPosition.xyz;\\n\\n#endif\\n}\\n`;\\nvar fragment12 = `\\n#define STANDARD\\n\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define SPECULAR\\n#endif\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n\\n#ifdef SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularTint;\\n\\n\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n\\n\\t#ifdef USE_SPECULARTINTMAP\\n\\t\\tuniform sampler2D specularTintMap;\\n\\t#endif\\n#endif\\n\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenTint;\\n\\tuniform float sheenRoughness;\\n#endif\\n\\nvarying vec3 vViewPosition;\\n\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_physical_pars_fragment>\\n#include <transmission_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\n\\t// accumulation\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\n\\t// modulation\\n\\t#include <aomap_fragment>\\n\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\n\\t#include <transmission_fragment>\\n\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\n\\t#ifdef USE_CLEARCOAT\\n\\n\\t\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - clearcoat * Fcc ) + clearcoatSpecular * clearcoat;\\n\\n\\t#endif\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/meshtoon.glsl.js\\nvar vertex13 = `\\n#define TOON\\n\\nvarying vec3 vViewPosition;\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\n\\tvViewPosition = - mvPosition.xyz;\\n\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment13 = `\\n#define TOON\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\n\\t// accumulation\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\n\\t// modulation\\n\\t#include <aomap_fragment>\\n\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/points.glsl.js\\nvar vertex14 = `\\nuniform float size;\\nuniform float scale;\\n\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\n\\tgl_PointSize = size;\\n\\n\\t#ifdef USE_SIZEATTENUATION\\n\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\n\\t#endif\\n\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment14 = `\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\n\\toutgoingLight = diffuseColor.rgb;\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/shadow.glsl.js\\nvar vertex15 = `\\n#include <common>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment15 = `\\nuniform vec3 color;\\nuniform float opacity;\\n\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n\\nvoid main() {\\n\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/sprite.glsl.js\\nvar vertex16 = `\\nuniform float rotation;\\nuniform vec2 center;\\n\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n\\nvoid main() {\\n\\n\\t#include <uv_vertex>\\n\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\n\\t#ifndef USE_SIZEATTENUATION\\n\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\n\\t#endif\\n\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\n\\tmvPosition.xy += rotatedPosition;\\n\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\n}\\n`;\\nvar fragment16 = `\\nuniform vec3 diffuse;\\nuniform float opacity;\\n\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n\\nvoid main() {\\n\\n\\t#include <clipping_planes_fragment>\\n\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\n\\toutgoingLight = diffuseColor.rgb;\\n\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderChunk.js\\nvar ShaderChunk = {\\n  alphamap_fragment: alphamap_fragment_glsl_default,\\n  alphamap_pars_fragment: alphamap_pars_fragment_glsl_default,\\n  alphatest_fragment: alphatest_fragment_glsl_default,\\n  alphatest_pars_fragment: alphatest_pars_fragment_glsl_default,\\n  aomap_fragment: aomap_fragment_glsl_default,\\n  aomap_pars_fragment: aomap_pars_fragment_glsl_default,\\n  begin_vertex: begin_vertex_glsl_default,\\n  beginnormal_vertex: beginnormal_vertex_glsl_default,\\n  bsdfs: bsdfs_glsl_default,\\n  bumpmap_pars_fragment: bumpmap_pars_fragment_glsl_default,\\n  clipping_planes_fragment: clipping_planes_fragment_glsl_default,\\n  clipping_planes_pars_fragment: clipping_planes_pars_fragment_glsl_default,\\n  clipping_planes_pars_vertex: clipping_planes_pars_vertex_glsl_default,\\n  clipping_planes_vertex: clipping_planes_vertex_glsl_default,\\n  color_fragment: color_fragment_glsl_default,\\n  color_pars_fragment: color_pars_fragment_glsl_default,\\n  color_pars_vertex: color_pars_vertex_glsl_default,\\n  color_vertex: color_vertex_glsl_default,\\n  common: common_glsl_default,\\n  cube_uv_reflection_fragment: cube_uv_reflection_fragment_glsl_default,\\n  defaultnormal_vertex: defaultnormal_vertex_glsl_default,\\n  displacementmap_pars_vertex: displacementmap_pars_vertex_glsl_default,\\n  displacementmap_vertex: displacementmap_vertex_glsl_default,\\n  emissivemap_fragment: emissivemap_fragment_glsl_default,\\n  emissivemap_pars_fragment: emissivemap_pars_fragment_glsl_default,\\n  encodings_fragment: encodings_fragment_glsl_default,\\n  encodings_pars_fragment: encodings_pars_fragment_glsl_default,\\n  envmap_fragment: envmap_fragment_glsl_default,\\n  envmap_common_pars_fragment: envmap_common_pars_fragment_glsl_default,\\n  envmap_pars_fragment: envmap_pars_fragment_glsl_default,\\n  envmap_pars_vertex: envmap_pars_vertex_glsl_default,\\n  envmap_physical_pars_fragment: envmap_physical_pars_fragment_glsl_default,\\n  envmap_vertex: envmap_vertex_glsl_default,\\n  fog_vertex: fog_vertex_glsl_default,\\n  fog_pars_vertex: fog_pars_vertex_glsl_default,\\n  fog_fragment: fog_fragment_glsl_default,\\n  fog_pars_fragment: fog_pars_fragment_glsl_default,\\n  gradientmap_pars_fragment: gradientmap_pars_fragment_glsl_default,\\n  lightmap_fragment: lightmap_fragment_glsl_default,\\n  lightmap_pars_fragment: lightmap_pars_fragment_glsl_default,\\n  lights_lambert_vertex: lights_lambert_vertex_glsl_default,\\n  lights_pars_begin: lights_pars_begin_glsl_default,\\n  lights_toon_fragment: lights_toon_fragment_glsl_default,\\n  lights_toon_pars_fragment: lights_toon_pars_fragment_glsl_default,\\n  lights_phong_fragment: lights_phong_fragment_glsl_default,\\n  lights_phong_pars_fragment: lights_phong_pars_fragment_glsl_default,\\n  lights_physical_fragment: lights_physical_fragment_glsl_default,\\n  lights_physical_pars_fragment: lights_physical_pars_fragment_glsl_default,\\n  lights_fragment_begin: lights_fragment_begin_glsl_default,\\n  lights_fragment_maps: lights_fragment_maps_glsl_default,\\n  lights_fragment_end: lights_fragment_end_glsl_default,\\n  logdepthbuf_fragment: logdepthbuf_fragment_glsl_default,\\n  logdepthbuf_pars_fragment: logdepthbuf_pars_fragment_glsl_default,\\n  logdepthbuf_pars_vertex: logdepthbuf_pars_vertex_glsl_default,\\n  logdepthbuf_vertex: logdepthbuf_vertex_glsl_default,\\n  map_fragment: map_fragment_glsl_default,\\n  map_pars_fragment: map_pars_fragment_glsl_default,\\n  map_particle_fragment: map_particle_fragment_glsl_default,\\n  map_particle_pars_fragment: map_particle_pars_fragment_glsl_default,\\n  metalnessmap_fragment: metalnessmap_fragment_glsl_default,\\n  metalnessmap_pars_fragment: metalnessmap_pars_fragment_glsl_default,\\n  morphnormal_vertex: morphnormal_vertex_glsl_default,\\n  morphtarget_pars_vertex: morphtarget_pars_vertex_glsl_default,\\n  morphtarget_vertex: morphtarget_vertex_glsl_default,\\n  normal_fragment_begin: normal_fragment_begin_glsl_default,\\n  normal_fragment_maps: normal_fragment_maps_glsl_default,\\n  normal_pars_fragment: normal_pars_fragment_glsl_default,\\n  normal_pars_vertex: normal_pars_vertex_glsl_default,\\n  normal_vertex: normal_vertex_glsl_default,\\n  normalmap_pars_fragment: normalmap_pars_fragment_glsl_default,\\n  clearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin_glsl_default,\\n  clearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps_glsl_default,\\n  clearcoat_pars_fragment: clearcoat_pars_fragment_glsl_default,\\n  output_fragment: output_fragment_glsl_default,\\n  packing: packing_glsl_default,\\n  premultiplied_alpha_fragment: premultiplied_alpha_fragment_glsl_default,\\n  project_vertex: project_vertex_glsl_default,\\n  dithering_fragment: dithering_fragment_glsl_default,\\n  dithering_pars_fragment: dithering_pars_fragment_glsl_default,\\n  roughnessmap_fragment: roughnessmap_fragment_glsl_default,\\n  roughnessmap_pars_fragment: roughnessmap_pars_fragment_glsl_default,\\n  shadowmap_pars_fragment: shadowmap_pars_fragment_glsl_default,\\n  shadowmap_pars_vertex: shadowmap_pars_vertex_glsl_default,\\n  shadowmap_vertex: shadowmap_vertex_glsl_default,\\n  shadowmask_pars_fragment: shadowmask_pars_fragment_glsl_default,\\n  skinbase_vertex: skinbase_vertex_glsl_default,\\n  skinning_pars_vertex: skinning_pars_vertex_glsl_default,\\n  skinning_vertex: skinning_vertex_glsl_default,\\n  skinnormal_vertex: skinnormal_vertex_glsl_default,\\n  specularmap_fragment: specularmap_fragment_glsl_default,\\n  specularmap_pars_fragment: specularmap_pars_fragment_glsl_default,\\n  tonemapping_fragment: tonemapping_fragment_glsl_default,\\n  tonemapping_pars_fragment: tonemapping_pars_fragment_glsl_default,\\n  transmission_fragment: transmission_fragment_glsl_default,\\n  transmission_pars_fragment: transmission_pars_fragment_glsl_default,\\n  uv_pars_fragment: uv_pars_fragment_glsl_default,\\n  uv_pars_vertex: uv_pars_vertex_glsl_default,\\n  uv_vertex: uv_vertex_glsl_default,\\n  uv2_pars_fragment: uv2_pars_fragment_glsl_default,\\n  uv2_pars_vertex: uv2_pars_vertex_glsl_default,\\n  uv2_vertex: uv2_vertex_glsl_default,\\n  worldpos_vertex: worldpos_vertex_glsl_default,\\n  background_vert: vertex,\\n  background_frag: fragment,\\n  cube_vert: vertex2,\\n  cube_frag: fragment2,\\n  depth_vert: vertex3,\\n  depth_frag: fragment3,\\n  distanceRGBA_vert: vertex4,\\n  distanceRGBA_frag: fragment4,\\n  equirect_vert: vertex5,\\n  equirect_frag: fragment5,\\n  linedashed_vert: vertex6,\\n  linedashed_frag: fragment6,\\n  meshbasic_vert: vertex7,\\n  meshbasic_frag: fragment7,\\n  meshlambert_vert: vertex8,\\n  meshlambert_frag: fragment8,\\n  meshmatcap_vert: vertex9,\\n  meshmatcap_frag: fragment9,\\n  meshnormal_vert: vertex10,\\n  meshnormal_frag: fragment10,\\n  meshphong_vert: vertex11,\\n  meshphong_frag: fragment11,\\n  meshphysical_vert: vertex12,\\n  meshphysical_frag: fragment12,\\n  meshtoon_vert: vertex13,\\n  meshtoon_frag: fragment13,\\n  points_vert: vertex14,\\n  points_frag: fragment14,\\n  shadow_vert: vertex15,\\n  shadow_frag: fragment15,\\n  sprite_vert: vertex16,\\n  sprite_frag: fragment16\\n};\\n\\n// ../../../node_modules/three/src/renderers/shaders/UniformsLib.js\\nvar UniformsLib = {\\n  common: {\\n    diffuse: {value: new Color(16777215)},\\n    opacity: {value: 1},\\n    map: {value: null},\\n    uvTransform: {value: new Matrix3()},\\n    uv2Transform: {value: new Matrix3()},\\n    alphaMap: {value: null},\\n    alphaTest: {value: 0}\\n  },\\n  specularmap: {\\n    specularMap: {value: null}\\n  },\\n  envmap: {\\n    envMap: {value: null},\\n    flipEnvMap: {value: -1},\\n    reflectivity: {value: 1},\\n    ior: {value: 1.5},\\n    refractionRatio: {value: 0.98},\\n    maxMipLevel: {value: 0}\\n  },\\n  aomap: {\\n    aoMap: {value: null},\\n    aoMapIntensity: {value: 1}\\n  },\\n  lightmap: {\\n    lightMap: {value: null},\\n    lightMapIntensity: {value: 1}\\n  },\\n  emissivemap: {\\n    emissiveMap: {value: null}\\n  },\\n  bumpmap: {\\n    bumpMap: {value: null},\\n    bumpScale: {value: 1}\\n  },\\n  normalmap: {\\n    normalMap: {value: null},\\n    normalScale: {value: new Vector2(1, 1)}\\n  },\\n  displacementmap: {\\n    displacementMap: {value: null},\\n    displacementScale: {value: 1},\\n    displacementBias: {value: 0}\\n  },\\n  roughnessmap: {\\n    roughnessMap: {value: null}\\n  },\\n  metalnessmap: {\\n    metalnessMap: {value: null}\\n  },\\n  gradientmap: {\\n    gradientMap: {value: null}\\n  },\\n  fog: {\\n    fogDensity: {value: 25e-5},\\n    fogNear: {value: 1},\\n    fogFar: {value: 2e3},\\n    fogColor: {value: new Color(16777215)}\\n  },\\n  lights: {\\n    ambientLightColor: {value: []},\\n    lightProbe: {value: []},\\n    directionalLights: {value: [], properties: {\\n      direction: {},\\n      color: {}\\n    }},\\n    directionalLightShadows: {value: [], properties: {\\n      shadowBias: {},\\n      shadowNormalBias: {},\\n      shadowRadius: {},\\n      shadowMapSize: {}\\n    }},\\n    directionalShadowMap: {value: []},\\n    directionalShadowMatrix: {value: []},\\n    spotLights: {value: [], properties: {\\n      color: {},\\n      position: {},\\n      direction: {},\\n      distance: {},\\n      coneCos: {},\\n      penumbraCos: {},\\n      decay: {}\\n    }},\\n    spotLightShadows: {value: [], properties: {\\n      shadowBias: {},\\n      shadowNormalBias: {},\\n      shadowRadius: {},\\n      shadowMapSize: {}\\n    }},\\n    spotShadowMap: {value: []},\\n    spotShadowMatrix: {value: []},\\n    pointLights: {value: [], properties: {\\n      color: {},\\n      position: {},\\n      decay: {},\\n      distance: {}\\n    }},\\n    pointLightShadows: {value: [], properties: {\\n      shadowBias: {},\\n      shadowNormalBias: {},\\n      shadowRadius: {},\\n      shadowMapSize: {},\\n      shadowCameraNear: {},\\n      shadowCameraFar: {}\\n    }},\\n    pointShadowMap: {value: []},\\n    pointShadowMatrix: {value: []},\\n    hemisphereLights: {value: [], properties: {\\n      direction: {},\\n      skyColor: {},\\n      groundColor: {}\\n    }},\\n    rectAreaLights: {value: [], properties: {\\n      color: {},\\n      position: {},\\n      width: {},\\n      height: {}\\n    }},\\n    ltc_1: {value: null},\\n    ltc_2: {value: null}\\n  },\\n  points: {\\n    diffuse: {value: new Color(16777215)},\\n    opacity: {value: 1},\\n    size: {value: 1},\\n    scale: {value: 1},\\n    map: {value: null},\\n    alphaMap: {value: null},\\n    alphaTest: {value: 0},\\n    uvTransform: {value: new Matrix3()}\\n  },\\n  sprite: {\\n    diffuse: {value: new Color(16777215)},\\n    opacity: {value: 1},\\n    center: {value: new Vector2(0.5, 0.5)},\\n    rotation: {value: 0},\\n    map: {value: null},\\n    alphaMap: {value: null},\\n    alphaTest: {value: 0},\\n    uvTransform: {value: new Matrix3()}\\n  }\\n};\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib.js\\nvar ShaderLib = {\\n  basic: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.specularmap,\\n      UniformsLib.envmap,\\n      UniformsLib.aomap,\\n      UniformsLib.lightmap,\\n      UniformsLib.fog\\n    ]),\\n    vertexShader: ShaderChunk.meshbasic_vert,\\n    fragmentShader: ShaderChunk.meshbasic_frag\\n  },\\n  lambert: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.specularmap,\\n      UniformsLib.envmap,\\n      UniformsLib.aomap,\\n      UniformsLib.lightmap,\\n      UniformsLib.emissivemap,\\n      UniformsLib.fog,\\n      UniformsLib.lights,\\n      {\\n        emissive: {value: new Color(0)}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.meshlambert_vert,\\n    fragmentShader: ShaderChunk.meshlambert_frag\\n  },\\n  phong: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.specularmap,\\n      UniformsLib.envmap,\\n      UniformsLib.aomap,\\n      UniformsLib.lightmap,\\n      UniformsLib.emissivemap,\\n      UniformsLib.bumpmap,\\n      UniformsLib.normalmap,\\n      UniformsLib.displacementmap,\\n      UniformsLib.fog,\\n      UniformsLib.lights,\\n      {\\n        emissive: {value: new Color(0)},\\n        specular: {value: new Color(1118481)},\\n        shininess: {value: 30}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.meshphong_vert,\\n    fragmentShader: ShaderChunk.meshphong_frag\\n  },\\n  standard: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.envmap,\\n      UniformsLib.aomap,\\n      UniformsLib.lightmap,\\n      UniformsLib.emissivemap,\\n      UniformsLib.bumpmap,\\n      UniformsLib.normalmap,\\n      UniformsLib.displacementmap,\\n      UniformsLib.roughnessmap,\\n      UniformsLib.metalnessmap,\\n      UniformsLib.fog,\\n      UniformsLib.lights,\\n      {\\n        emissive: {value: new Color(0)},\\n        roughness: {value: 1},\\n        metalness: {value: 0},\\n        envMapIntensity: {value: 1}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.meshphysical_vert,\\n    fragmentShader: ShaderChunk.meshphysical_frag\\n  },\\n  toon: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.aomap,\\n      UniformsLib.lightmap,\\n      UniformsLib.emissivemap,\\n      UniformsLib.bumpmap,\\n      UniformsLib.normalmap,\\n      UniformsLib.displacementmap,\\n      UniformsLib.gradientmap,\\n      UniformsLib.fog,\\n      UniformsLib.lights,\\n      {\\n        emissive: {value: new Color(0)}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.meshtoon_vert,\\n    fragmentShader: ShaderChunk.meshtoon_frag\\n  },\\n  matcap: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.bumpmap,\\n      UniformsLib.normalmap,\\n      UniformsLib.displacementmap,\\n      UniformsLib.fog,\\n      {\\n        matcap: {value: null}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.meshmatcap_vert,\\n    fragmentShader: ShaderChunk.meshmatcap_frag\\n  },\\n  points: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.points,\\n      UniformsLib.fog\\n    ]),\\n    vertexShader: ShaderChunk.points_vert,\\n    fragmentShader: ShaderChunk.points_frag\\n  },\\n  dashed: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.fog,\\n      {\\n        scale: {value: 1},\\n        dashSize: {value: 1},\\n        totalSize: {value: 2}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.linedashed_vert,\\n    fragmentShader: ShaderChunk.linedashed_frag\\n  },\\n  depth: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.displacementmap\\n    ]),\\n    vertexShader: ShaderChunk.depth_vert,\\n    fragmentShader: ShaderChunk.depth_frag\\n  },\\n  normal: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.bumpmap,\\n      UniformsLib.normalmap,\\n      UniformsLib.displacementmap,\\n      {\\n        opacity: {value: 1}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.meshnormal_vert,\\n    fragmentShader: ShaderChunk.meshnormal_frag\\n  },\\n  sprite: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.sprite,\\n      UniformsLib.fog\\n    ]),\\n    vertexShader: ShaderChunk.sprite_vert,\\n    fragmentShader: ShaderChunk.sprite_frag\\n  },\\n  background: {\\n    uniforms: {\\n      uvTransform: {value: new Matrix3()},\\n      t2D: {value: null}\\n    },\\n    vertexShader: ShaderChunk.background_vert,\\n    fragmentShader: ShaderChunk.background_frag\\n  },\\n  cube: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.envmap,\\n      {\\n        opacity: {value: 1}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.cube_vert,\\n    fragmentShader: ShaderChunk.cube_frag\\n  },\\n  equirect: {\\n    uniforms: {\\n      tEquirect: {value: null}\\n    },\\n    vertexShader: ShaderChunk.equirect_vert,\\n    fragmentShader: ShaderChunk.equirect_frag\\n  },\\n  distanceRGBA: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.common,\\n      UniformsLib.displacementmap,\\n      {\\n        referencePosition: {value: new Vector3()},\\n        nearDistance: {value: 1},\\n        farDistance: {value: 1e3}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.distanceRGBA_vert,\\n    fragmentShader: ShaderChunk.distanceRGBA_frag\\n  },\\n  shadow: {\\n    uniforms: mergeUniforms([\\n      UniformsLib.lights,\\n      UniformsLib.fog,\\n      {\\n        color: {value: new Color(0)},\\n        opacity: {value: 1}\\n      }\\n    ]),\\n    vertexShader: ShaderChunk.shadow_vert,\\n    fragmentShader: ShaderChunk.shadow_frag\\n  }\\n};\\nShaderLib.physical = {\\n  uniforms: mergeUniforms([\\n    ShaderLib.standard.uniforms,\\n    {\\n      clearcoat: {value: 0},\\n      clearcoatMap: {value: null},\\n      clearcoatRoughness: {value: 0},\\n      clearcoatRoughnessMap: {value: null},\\n      clearcoatNormalScale: {value: new Vector2(1, 1)},\\n      clearcoatNormalMap: {value: null},\\n      sheen: {value: 0},\\n      sheenTint: {value: new Color(0)},\\n      sheenRoughness: {value: 0},\\n      transmission: {value: 0},\\n      transmissionMap: {value: null},\\n      transmissionSamplerSize: {value: new Vector2()},\\n      transmissionSamplerMap: {value: null},\\n      thickness: {value: 0},\\n      thicknessMap: {value: null},\\n      attenuationDistance: {value: 0},\\n      attenuationTint: {value: new Color(0)},\\n      specularIntensity: {value: 0},\\n      specularIntensityMap: {value: null},\\n      specularTint: {value: new Color(1, 1, 1)},\\n      specularTintMap: {value: null}\\n    }\\n  ]),\\n  vertexShader: ShaderChunk.meshphysical_vert,\\n  fragmentShader: ShaderChunk.meshphysical_frag\\n};\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLBackground.js\\nfunction WebGLBackground(renderer, cubemaps, state, objects, premultipliedAlpha) {\\n  const clearColor = new Color(0);\\n  let clearAlpha = 0;\\n  let planeMesh;\\n  let boxMesh;\\n  let currentBackground = null;\\n  let currentBackgroundVersion = 0;\\n  let currentTonemapping = null;\\n  function render(renderList, scene) {\\n    let forceClear = false;\\n    let background2 = scene.isScene === true ? scene.background : null;\\n    if (background2 && background2.isTexture) {\\n      background2 = cubemaps.get(background2);\\n    }\\n    const xr = renderer.xr;\\n    const session = xr.getSession && xr.getSession();\\n    if (session && session.environmentBlendMode === \\\\\\\"additive\\\\\\\") {\\n      background2 = null;\\n    }\\n    if (background2 === null) {\\n      setClear(clearColor, clearAlpha);\\n    } else if (background2 && background2.isColor) {\\n      setClear(background2, 1);\\n      forceClear = true;\\n    }\\n    if (renderer.autoClear || forceClear) {\\n      renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\\n    }\\n    if (background2 && (background2.isCubeTexture || background2.mapping === CubeUVReflectionMapping)) {\\n      if (boxMesh === void 0) {\\n        boxMesh = new Mesh(new BoxGeometry(1, 1, 1), new ShaderMaterial({\\n          name: \\\\\\\"BackgroundCubeMaterial\\\\\\\",\\n          uniforms: cloneUniforms(ShaderLib.cube.uniforms),\\n          vertexShader: ShaderLib.cube.vertexShader,\\n          fragmentShader: ShaderLib.cube.fragmentShader,\\n          side: BackSide,\\n          depthTest: false,\\n          depthWrite: false,\\n          fog: false\\n        }));\\n        boxMesh.geometry.deleteAttribute(\\\\\\\"normal\\\\\\\");\\n        boxMesh.geometry.deleteAttribute(\\\\\\\"uv\\\\\\\");\\n        boxMesh.onBeforeRender = function(renderer2, scene2, camera) {\\n          this.matrixWorld.copyPosition(camera.matrixWorld);\\n        };\\n        Object.defineProperty(boxMesh.material, \\\\\\\"envMap\\\\\\\", {\\n          get: function() {\\n            return this.uniforms.envMap.value;\\n          }\\n        });\\n        objects.update(boxMesh);\\n      }\\n      boxMesh.material.uniforms.envMap.value = background2;\\n      boxMesh.material.uniforms.flipEnvMap.value = background2.isCubeTexture && background2.isRenderTargetTexture === false ? -1 : 1;\\n      if (currentBackground !== background2 || currentBackgroundVersion !== background2.version || currentTonemapping !== renderer.toneMapping) {\\n        boxMesh.material.needsUpdate = true;\\n        currentBackground = background2;\\n        currentBackgroundVersion = background2.version;\\n        currentTonemapping = renderer.toneMapping;\\n      }\\n      renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null);\\n    } else if (background2 && background2.isTexture) {\\n      if (planeMesh === void 0) {\\n        planeMesh = new Mesh(new PlaneGeometry(2, 2), new ShaderMaterial({\\n          name: \\\\\\\"BackgroundMaterial\\\\\\\",\\n          uniforms: cloneUniforms(ShaderLib.background.uniforms),\\n          vertexShader: ShaderLib.background.vertexShader,\\n          fragmentShader: ShaderLib.background.fragmentShader,\\n          side: FrontSide,\\n          depthTest: false,\\n          depthWrite: false,\\n          fog: false\\n        }));\\n        planeMesh.geometry.deleteAttribute(\\\\\\\"normal\\\\\\\");\\n        Object.defineProperty(planeMesh.material, \\\\\\\"map\\\\\\\", {\\n          get: function() {\\n            return this.uniforms.t2D.value;\\n          }\\n        });\\n        objects.update(planeMesh);\\n      }\\n      planeMesh.material.uniforms.t2D.value = background2;\\n      if (background2.matrixAutoUpdate === true) {\\n        background2.updateMatrix();\\n      }\\n      planeMesh.material.uniforms.uvTransform.value.copy(background2.matrix);\\n      if (currentBackground !== background2 || currentBackgroundVersion !== background2.version || currentTonemapping !== renderer.toneMapping) {\\n        planeMesh.material.needsUpdate = true;\\n        currentBackground = background2;\\n        currentBackgroundVersion = background2.version;\\n        currentTonemapping = renderer.toneMapping;\\n      }\\n      renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null);\\n    }\\n  }\\n  function setClear(color, alpha) {\\n    state.buffers.color.setClear(color.r, color.g, color.b, alpha, premultipliedAlpha);\\n  }\\n  return {\\n    getClearColor: function() {\\n      return clearColor;\\n    },\\n    setClearColor: function(color, alpha = 1) {\\n      clearColor.set(color);\\n      clearAlpha = alpha;\\n      setClear(clearColor, clearAlpha);\\n    },\\n    getClearAlpha: function() {\\n      return clearAlpha;\\n    },\\n    setClearAlpha: function(alpha) {\\n      clearAlpha = alpha;\\n      setClear(clearColor, clearAlpha);\\n    },\\n    render\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLBindingStates.js\\nfunction WebGLBindingStates(gl, extensions, attributes, capabilities) {\\n  const maxVertexAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\\n  const extension = capabilities.isWebGL2 ? null : extensions.get(\\\\\\\"OES_vertex_array_object\\\\\\\");\\n  const vaoAvailable = capabilities.isWebGL2 || extension !== null;\\n  const bindingStates = {};\\n  const defaultState = createBindingState(null);\\n  let currentState = defaultState;\\n  function setup(object, material, program, geometry, index) {\\n    let updateBuffers = false;\\n    if (vaoAvailable) {\\n      const state = getBindingState(geometry, program, material);\\n      if (currentState !== state) {\\n        currentState = state;\\n        bindVertexArrayObject(currentState.object);\\n      }\\n      updateBuffers = needsUpdate(geometry, index);\\n      if (updateBuffers)\\n        saveCache(geometry, index);\\n    } else {\\n      const wireframe = material.wireframe === true;\\n      if (currentState.geometry !== geometry.id || currentState.program !== program.id || currentState.wireframe !== wireframe) {\\n        currentState.geometry = geometry.id;\\n        currentState.program = program.id;\\n        currentState.wireframe = wireframe;\\n        updateBuffers = true;\\n      }\\n    }\\n    if (object.isInstancedMesh === true) {\\n      updateBuffers = true;\\n    }\\n    if (index !== null) {\\n      attributes.update(index, gl.ELEMENT_ARRAY_BUFFER);\\n    }\\n    if (updateBuffers) {\\n      setupVertexAttributes(object, material, program, geometry);\\n      if (index !== null) {\\n        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, attributes.get(index).buffer);\\n      }\\n    }\\n  }\\n  function createVertexArrayObject() {\\n    if (capabilities.isWebGL2)\\n      return gl.createVertexArray();\\n    return extension.createVertexArrayOES();\\n  }\\n  function bindVertexArrayObject(vao) {\\n    if (capabilities.isWebGL2)\\n      return gl.bindVertexArray(vao);\\n    return extension.bindVertexArrayOES(vao);\\n  }\\n  function deleteVertexArrayObject(vao) {\\n    if (capabilities.isWebGL2)\\n      return gl.deleteVertexArray(vao);\\n    return extension.deleteVertexArrayOES(vao);\\n  }\\n  function getBindingState(geometry, program, material) {\\n    const wireframe = material.wireframe === true;\\n    let programMap = bindingStates[geometry.id];\\n    if (programMap === void 0) {\\n      programMap = {};\\n      bindingStates[geometry.id] = programMap;\\n    }\\n    let stateMap = programMap[program.id];\\n    if (stateMap === void 0) {\\n      stateMap = {};\\n      programMap[program.id] = stateMap;\\n    }\\n    let state = stateMap[wireframe];\\n    if (state === void 0) {\\n      state = createBindingState(createVertexArrayObject());\\n      stateMap[wireframe] = state;\\n    }\\n    return state;\\n  }\\n  function createBindingState(vao) {\\n    const newAttributes = [];\\n    const enabledAttributes = [];\\n    const attributeDivisors = [];\\n    for (let i = 0; i < maxVertexAttributes; i++) {\\n      newAttributes[i] = 0;\\n      enabledAttributes[i] = 0;\\n      attributeDivisors[i] = 0;\\n    }\\n    return {\\n      geometry: null,\\n      program: null,\\n      wireframe: false,\\n      newAttributes,\\n      enabledAttributes,\\n      attributeDivisors,\\n      object: vao,\\n      attributes: {},\\n      index: null\\n    };\\n  }\\n  function needsUpdate(geometry, index) {\\n    const cachedAttributes = currentState.attributes;\\n    const geometryAttributes = geometry.attributes;\\n    let attributesNum = 0;\\n    for (const key in geometryAttributes) {\\n      const cachedAttribute = cachedAttributes[key];\\n      const geometryAttribute = geometryAttributes[key];\\n      if (cachedAttribute === void 0)\\n        return true;\\n      if (cachedAttribute.attribute !== geometryAttribute)\\n        return true;\\n      if (cachedAttribute.data !== geometryAttribute.data)\\n        return true;\\n      attributesNum++;\\n    }\\n    if (currentState.attributesNum !== attributesNum)\\n      return true;\\n    if (currentState.index !== index)\\n      return true;\\n    return false;\\n  }\\n  function saveCache(geometry, index) {\\n    const cache = {};\\n    const attributes2 = geometry.attributes;\\n    let attributesNum = 0;\\n    for (const key in attributes2) {\\n      const attribute = attributes2[key];\\n      const data = {};\\n      data.attribute = attribute;\\n      if (attribute.data) {\\n        data.data = attribute.data;\\n      }\\n      cache[key] = data;\\n      attributesNum++;\\n    }\\n    currentState.attributes = cache;\\n    currentState.attributesNum = attributesNum;\\n    currentState.index = index;\\n  }\\n  function initAttributes() {\\n    const newAttributes = currentState.newAttributes;\\n    for (let i = 0, il = newAttributes.length; i < il; i++) {\\n      newAttributes[i] = 0;\\n    }\\n  }\\n  function enableAttribute(attribute) {\\n    enableAttributeAndDivisor(attribute, 0);\\n  }\\n  function enableAttributeAndDivisor(attribute, meshPerAttribute) {\\n    const newAttributes = currentState.newAttributes;\\n    const enabledAttributes = currentState.enabledAttributes;\\n    const attributeDivisors = currentState.attributeDivisors;\\n    newAttributes[attribute] = 1;\\n    if (enabledAttributes[attribute] === 0) {\\n      gl.enableVertexAttribArray(attribute);\\n      enabledAttributes[attribute] = 1;\\n    }\\n    if (attributeDivisors[attribute] !== meshPerAttribute) {\\n      const extension2 = capabilities.isWebGL2 ? gl : extensions.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\");\\n      extension2[capabilities.isWebGL2 ? \\\\\\\"vertexAttribDivisor\\\\\\\" : \\\\\\\"vertexAttribDivisorANGLE\\\\\\\"](attribute, meshPerAttribute);\\n      attributeDivisors[attribute] = meshPerAttribute;\\n    }\\n  }\\n  function disableUnusedAttributes() {\\n    const newAttributes = currentState.newAttributes;\\n    const enabledAttributes = currentState.enabledAttributes;\\n    for (let i = 0, il = enabledAttributes.length; i < il; i++) {\\n      if (enabledAttributes[i] !== newAttributes[i]) {\\n        gl.disableVertexAttribArray(i);\\n        enabledAttributes[i] = 0;\\n      }\\n    }\\n  }\\n  function vertexAttribPointer(index, size, type, normalized, stride, offset) {\\n    if (capabilities.isWebGL2 === true && (type === gl.INT || type === gl.UNSIGNED_INT)) {\\n      gl.vertexAttribIPointer(index, size, type, stride, offset);\\n    } else {\\n      gl.vertexAttribPointer(index, size, type, normalized, stride, offset);\\n    }\\n  }\\n  function setupVertexAttributes(object, material, program, geometry) {\\n    if (capabilities.isWebGL2 === false && (object.isInstancedMesh || geometry.isInstancedBufferGeometry)) {\\n      if (extensions.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\") === null)\\n        return;\\n    }\\n    initAttributes();\\n    const geometryAttributes = geometry.attributes;\\n    const programAttributes = program.getAttributes();\\n    const materialDefaultAttributeValues = material.defaultAttributeValues;\\n    for (const name in programAttributes) {\\n      const programAttribute = programAttributes[name];\\n      if (programAttribute.location >= 0) {\\n        let geometryAttribute = geometryAttributes[name];\\n        if (geometryAttribute === void 0) {\\n          if (name === \\\\\\\"instanceMatrix\\\\\\\" && object.instanceMatrix)\\n            geometryAttribute = object.instanceMatrix;\\n          if (name === \\\\\\\"instanceColor\\\\\\\" && object.instanceColor)\\n            geometryAttribute = object.instanceColor;\\n        }\\n        if (geometryAttribute !== void 0) {\\n          const normalized = geometryAttribute.normalized;\\n          const size = geometryAttribute.itemSize;\\n          const attribute = attributes.get(geometryAttribute);\\n          if (attribute === void 0)\\n            continue;\\n          const buffer = attribute.buffer;\\n          const type = attribute.type;\\n          const bytesPerElement = attribute.bytesPerElement;\\n          if (geometryAttribute.isInterleavedBufferAttribute) {\\n            const data = geometryAttribute.data;\\n            const stride = data.stride;\\n            const offset = geometryAttribute.offset;\\n            if (data && data.isInstancedInterleavedBuffer) {\\n              for (let i = 0; i < programAttribute.locationSize; i++) {\\n                enableAttributeAndDivisor(programAttribute.location + i, data.meshPerAttribute);\\n              }\\n              if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) {\\n                geometry._maxInstanceCount = data.meshPerAttribute * data.count;\\n              }\\n            } else {\\n              for (let i = 0; i < programAttribute.locationSize; i++) {\\n                enableAttribute(programAttribute.location + i);\\n              }\\n            }\\n            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\\n            for (let i = 0; i < programAttribute.locationSize; i++) {\\n              vertexAttribPointer(programAttribute.location + i, size / programAttribute.locationSize, type, normalized, stride * bytesPerElement, (offset + size / programAttribute.locationSize * i) * bytesPerElement);\\n            }\\n          } else {\\n            if (geometryAttribute.isInstancedBufferAttribute) {\\n              for (let i = 0; i < programAttribute.locationSize; i++) {\\n                enableAttributeAndDivisor(programAttribute.location + i, geometryAttribute.meshPerAttribute);\\n              }\\n              if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) {\\n                geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\\n              }\\n            } else {\\n              for (let i = 0; i < programAttribute.locationSize; i++) {\\n                enableAttribute(programAttribute.location + i);\\n              }\\n            }\\n            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\\n            for (let i = 0; i < programAttribute.locationSize; i++) {\\n              vertexAttribPointer(programAttribute.location + i, size / programAttribute.locationSize, type, normalized, size * bytesPerElement, size / programAttribute.locationSize * i * bytesPerElement);\\n            }\\n          }\\n        } else if (materialDefaultAttributeValues !== void 0) {\\n          const value = materialDefaultAttributeValues[name];\\n          if (value !== void 0) {\\n            switch (value.length) {\\n              case 2:\\n                gl.vertexAttrib2fv(programAttribute.location, value);\\n                break;\\n              case 3:\\n                gl.vertexAttrib3fv(programAttribute.location, value);\\n                break;\\n              case 4:\\n                gl.vertexAttrib4fv(programAttribute.location, value);\\n                break;\\n              default:\\n                gl.vertexAttrib1fv(programAttribute.location, value);\\n            }\\n          }\\n        }\\n      }\\n    }\\n    disableUnusedAttributes();\\n  }\\n  function dispose() {\\n    reset();\\n    for (const geometryId in bindingStates) {\\n      const programMap = bindingStates[geometryId];\\n      for (const programId in programMap) {\\n        const stateMap = programMap[programId];\\n        for (const wireframe in stateMap) {\\n          deleteVertexArrayObject(stateMap[wireframe].object);\\n          delete stateMap[wireframe];\\n        }\\n        delete programMap[programId];\\n      }\\n      delete bindingStates[geometryId];\\n    }\\n  }\\n  function releaseStatesOfGeometry(geometry) {\\n    if (bindingStates[geometry.id] === void 0)\\n      return;\\n    const programMap = bindingStates[geometry.id];\\n    for (const programId in programMap) {\\n      const stateMap = programMap[programId];\\n      for (const wireframe in stateMap) {\\n        deleteVertexArrayObject(stateMap[wireframe].object);\\n        delete stateMap[wireframe];\\n      }\\n      delete programMap[programId];\\n    }\\n    delete bindingStates[geometry.id];\\n  }\\n  function releaseStatesOfProgram(program) {\\n    for (const geometryId in bindingStates) {\\n      const programMap = bindingStates[geometryId];\\n      if (programMap[program.id] === void 0)\\n        continue;\\n      const stateMap = programMap[program.id];\\n      for (const wireframe in stateMap) {\\n        deleteVertexArrayObject(stateMap[wireframe].object);\\n        delete stateMap[wireframe];\\n      }\\n      delete programMap[program.id];\\n    }\\n  }\\n  function reset() {\\n    resetDefaultState();\\n    if (currentState === defaultState)\\n      return;\\n    currentState = defaultState;\\n    bindVertexArrayObject(currentState.object);\\n  }\\n  function resetDefaultState() {\\n    defaultState.geometry = null;\\n    defaultState.program = null;\\n    defaultState.wireframe = false;\\n  }\\n  return {\\n    setup,\\n    reset,\\n    resetDefaultState,\\n    dispose,\\n    releaseStatesOfGeometry,\\n    releaseStatesOfProgram,\\n    initAttributes,\\n    enableAttribute,\\n    disableUnusedAttributes\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLBufferRenderer.js\\nfunction WebGLBufferRenderer(gl, extensions, info, capabilities) {\\n  const isWebGL2 = capabilities.isWebGL2;\\n  let mode;\\n  function setMode(value) {\\n    mode = value;\\n  }\\n  function render(start, count) {\\n    gl.drawArrays(mode, start, count);\\n    info.update(count, mode, 1);\\n  }\\n  function renderInstances(start, count, primcount) {\\n    if (primcount === 0)\\n      return;\\n    let extension, methodName;\\n    if (isWebGL2) {\\n      extension = gl;\\n      methodName = \\\\\\\"drawArraysInstanced\\\\\\\";\\n    } else {\\n      extension = extensions.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\");\\n      methodName = \\\\\\\"drawArraysInstancedANGLE\\\\\\\";\\n      if (extension === null) {\\n        console.error(\\\\\\\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\\\\\\\");\\n        return;\\n      }\\n    }\\n    extension[methodName](mode, start, count, primcount);\\n    info.update(count, mode, primcount);\\n  }\\n  this.setMode = setMode;\\n  this.render = render;\\n  this.renderInstances = renderInstances;\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLCapabilities.js\\nfunction WebGLCapabilities(gl, extensions, parameters) {\\n  let maxAnisotropy;\\n  function getMaxAnisotropy() {\\n    if (maxAnisotropy !== void 0)\\n      return maxAnisotropy;\\n    if (extensions.has(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\") === true) {\\n      const extension = extensions.get(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\");\\n      maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\\n    } else {\\n      maxAnisotropy = 0;\\n    }\\n    return maxAnisotropy;\\n  }\\n  function getMaxPrecision(precision2) {\\n    if (precision2 === \\\\\\\"highp\\\\\\\") {\\n      if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision > 0) {\\n        return \\\\\\\"highp\\\\\\\";\\n      }\\n      precision2 = \\\\\\\"mediump\\\\\\\";\\n    }\\n    if (precision2 === \\\\\\\"mediump\\\\\\\") {\\n      if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision > 0) {\\n        return \\\\\\\"mediump\\\\\\\";\\n      }\\n    }\\n    return \\\\\\\"lowp\\\\\\\";\\n  }\\n  const isWebGL2 = typeof WebGL2RenderingContext !== \\\\\\\"undefined\\\\\\\" && gl instanceof WebGL2RenderingContext || typeof WebGL2ComputeRenderingContext !== \\\\\\\"undefined\\\\\\\" && gl instanceof WebGL2ComputeRenderingContext;\\n  let precision = parameters.precision !== void 0 ? parameters.precision : \\\\\\\"highp\\\\\\\";\\n  const maxPrecision = getMaxPrecision(precision);\\n  if (maxPrecision !== precision) {\\n    console.warn(\\\\\\\"THREE.WebGLRenderer:\\\\\\\", precision, \\\\\\\"not supported, using\\\\\\\", maxPrecision, \\\\\\\"instead.\\\\\\\");\\n    precision = maxPrecision;\\n  }\\n  const drawBuffers = isWebGL2 || extensions.has(\\\\\\\"WEBGL_draw_buffers\\\\\\\");\\n  const logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\\n  const maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\\n  const maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\\n  const maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\\n  const maxCubemapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\\n  const maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\\n  const maxVertexUniforms = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\\n  const maxVaryings = gl.getParameter(gl.MAX_VARYING_VECTORS);\\n  const maxFragmentUniforms = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\\n  const vertexTextures = maxVertexTextures > 0;\\n  const floatFragmentTextures = isWebGL2 || extensions.has(\\\\\\\"OES_texture_float\\\\\\\");\\n  const floatVertexTextures = vertexTextures && floatFragmentTextures;\\n  const maxSamples = isWebGL2 ? gl.getParameter(gl.MAX_SAMPLES) : 0;\\n  return {\\n    isWebGL2,\\n    drawBuffers,\\n    getMaxAnisotropy,\\n    getMaxPrecision,\\n    precision,\\n    logarithmicDepthBuffer,\\n    maxTextures,\\n    maxVertexTextures,\\n    maxTextureSize,\\n    maxCubemapSize,\\n    maxAttributes,\\n    maxVertexUniforms,\\n    maxVaryings,\\n    maxFragmentUniforms,\\n    vertexTextures,\\n    floatFragmentTextures,\\n    floatVertexTextures,\\n    maxSamples\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLClipping.js\\nfunction WebGLClipping(properties) {\\n  const scope = this;\\n  let globalState = null, numGlobalPlanes = 0, localClippingEnabled = false, renderingShadows = false;\\n  const plane = new Plane(), viewNormalMatrix = new Matrix3(), uniform = {value: null, needsUpdate: false};\\n  this.uniform = uniform;\\n  this.numPlanes = 0;\\n  this.numIntersection = 0;\\n  this.init = function(planes, enableLocalClipping, camera) {\\n    const enabled = planes.length !== 0 || enableLocalClipping || numGlobalPlanes !== 0 || localClippingEnabled;\\n    localClippingEnabled = enableLocalClipping;\\n    globalState = projectPlanes(planes, camera, 0);\\n    numGlobalPlanes = planes.length;\\n    return enabled;\\n  };\\n  this.beginShadows = function() {\\n    renderingShadows = true;\\n    projectPlanes(null);\\n  };\\n  this.endShadows = function() {\\n    renderingShadows = false;\\n    resetGlobalState();\\n  };\\n  this.setState = function(material, camera, useCache) {\\n    const planes = material.clippingPlanes, clipIntersection = material.clipIntersection, clipShadows = material.clipShadows;\\n    const materialProperties = properties.get(material);\\n    if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\\n      if (renderingShadows) {\\n        projectPlanes(null);\\n      } else {\\n        resetGlobalState();\\n      }\\n    } else {\\n      const nGlobal = renderingShadows ? 0 : numGlobalPlanes, lGlobal = nGlobal * 4;\\n      let dstArray = materialProperties.clippingState || null;\\n      uniform.value = dstArray;\\n      dstArray = projectPlanes(planes, camera, lGlobal, useCache);\\n      for (let i = 0; i !== lGlobal; ++i) {\\n        dstArray[i] = globalState[i];\\n      }\\n      materialProperties.clippingState = dstArray;\\n      this.numIntersection = clipIntersection ? this.numPlanes : 0;\\n      this.numPlanes += nGlobal;\\n    }\\n  };\\n  function resetGlobalState() {\\n    if (uniform.value !== globalState) {\\n      uniform.value = globalState;\\n      uniform.needsUpdate = numGlobalPlanes > 0;\\n    }\\n    scope.numPlanes = numGlobalPlanes;\\n    scope.numIntersection = 0;\\n  }\\n  function projectPlanes(planes, camera, dstOffset, skipTransform) {\\n    const nPlanes = planes !== null ? planes.length : 0;\\n    let dstArray = null;\\n    if (nPlanes !== 0) {\\n      dstArray = uniform.value;\\n      if (skipTransform !== true || dstArray === null) {\\n        const flatSize = dstOffset + nPlanes * 4, viewMatrix = camera.matrixWorldInverse;\\n        viewNormalMatrix.getNormalMatrix(viewMatrix);\\n        if (dstArray === null || dstArray.length < flatSize) {\\n          dstArray = new Float32Array(flatSize);\\n        }\\n        for (let i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\\n          plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\\n          plane.normal.toArray(dstArray, i4);\\n          dstArray[i4 + 3] = plane.constant;\\n        }\\n      }\\n      uniform.value = dstArray;\\n      uniform.needsUpdate = true;\\n    }\\n    scope.numPlanes = nPlanes;\\n    scope.numIntersection = 0;\\n    return dstArray;\\n  }\\n}\\n\\n// ../../../node_modules/three/src/extras/ImageUtils.js\\nvar _canvas;\\nvar ImageUtils = class {\\n  static getDataURL(image) {\\n    if (/^data:/i.test(image.src)) {\\n      return image.src;\\n    }\\n    if (typeof HTMLCanvasElement == \\\\\\\"undefined\\\\\\\") {\\n      return image.src;\\n    }\\n    let canvas;\\n    if (image instanceof HTMLCanvasElement) {\\n      canvas = image;\\n    } else {\\n      if (_canvas === void 0)\\n        _canvas = createElementNS(\\\\\\\"canvas\\\\\\\");\\n      _canvas.width = image.width;\\n      _canvas.height = image.height;\\n      const context = _canvas.getContext(\\\\\\\"2d\\\\\\\");\\n      if (image instanceof ImageData) {\\n        context.putImageData(image, 0, 0);\\n      } else {\\n        context.drawImage(image, 0, 0, image.width, image.height);\\n      }\\n      canvas = _canvas;\\n    }\\n    if (canvas.width > 2048 || canvas.height > 2048) {\\n      console.warn(\\\\\\\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\\\\\\\", image);\\n      return canvas.toDataURL(\\\\\\\"image/jpeg\\\\\\\", 0.6);\\n    } else {\\n      return canvas.toDataURL(\\\\\\\"image/png\\\\\\\");\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/three/src/textures/Texture.js\\nvar textureId = 0;\\nvar Texture = class extends EventDispatcher {\\n  constructor(image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = 1, encoding = LinearEncoding) {\\n    super();\\n    Object.defineProperty(this, \\\\\\\"id\\\\\\\", {value: textureId++});\\n    this.uuid = generateUUID();\\n    this.name = \\\\\\\"\\\\\\\";\\n    this.image = image;\\n    this.mipmaps = [];\\n    this.mapping = mapping;\\n    this.wrapS = wrapS;\\n    this.wrapT = wrapT;\\n    this.magFilter = magFilter;\\n    this.minFilter = minFilter;\\n    this.anisotropy = anisotropy;\\n    this.format = format;\\n    this.internalFormat = null;\\n    this.type = type;\\n    this.offset = new Vector2(0, 0);\\n    this.repeat = new Vector2(1, 1);\\n    this.center = new Vector2(0, 0);\\n    this.rotation = 0;\\n    this.matrixAutoUpdate = true;\\n    this.matrix = new Matrix3();\\n    this.generateMipmaps = true;\\n    this.premultiplyAlpha = false;\\n    this.flipY = true;\\n    this.unpackAlignment = 4;\\n    this.encoding = encoding;\\n    this.version = 0;\\n    this.onUpdate = null;\\n    this.isRenderTargetTexture = false;\\n  }\\n  updateMatrix() {\\n    this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n  copy(source) {\\n    this.name = source.name;\\n    this.image = source.image;\\n    this.mipmaps = source.mipmaps.slice(0);\\n    this.mapping = source.mapping;\\n    this.wrapS = source.wrapS;\\n    this.wrapT = source.wrapT;\\n    this.magFilter = source.magFilter;\\n    this.minFilter = source.minFilter;\\n    this.anisotropy = source.anisotropy;\\n    this.format = source.format;\\n    this.internalFormat = source.internalFormat;\\n    this.type = source.type;\\n    this.offset.copy(source.offset);\\n    this.repeat.copy(source.repeat);\\n    this.center.copy(source.center);\\n    this.rotation = source.rotation;\\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\\n    this.matrix.copy(source.matrix);\\n    this.generateMipmaps = source.generateMipmaps;\\n    this.premultiplyAlpha = source.premultiplyAlpha;\\n    this.flipY = source.flipY;\\n    this.unpackAlignment = source.unpackAlignment;\\n    this.encoding = source.encoding;\\n    return this;\\n  }\\n  toJSON(meta) {\\n    const isRootObject = meta === void 0 || typeof meta === \\\\\\\"string\\\\\\\";\\n    if (!isRootObject && meta.textures[this.uuid] !== void 0) {\\n      return meta.textures[this.uuid];\\n    }\\n    const output = {\\n      metadata: {\\n        version: 4.5,\\n        type: \\\\\\\"Texture\\\\\\\",\\n        generator: \\\\\\\"Texture.toJSON\\\\\\\"\\n      },\\n      uuid: this.uuid,\\n      name: this.name,\\n      mapping: this.mapping,\\n      repeat: [this.repeat.x, this.repeat.y],\\n      offset: [this.offset.x, this.offset.y],\\n      center: [this.center.x, this.center.y],\\n      rotation: this.rotation,\\n      wrap: [this.wrapS, this.wrapT],\\n      format: this.format,\\n      type: this.type,\\n      encoding: this.encoding,\\n      minFilter: this.minFilter,\\n      magFilter: this.magFilter,\\n      anisotropy: this.anisotropy,\\n      flipY: this.flipY,\\n      premultiplyAlpha: this.premultiplyAlpha,\\n      unpackAlignment: this.unpackAlignment\\n    };\\n    if (this.image !== void 0) {\\n      const image = this.image;\\n      if (image.uuid === void 0) {\\n        image.uuid = generateUUID();\\n      }\\n      if (!isRootObject && meta.images[image.uuid] === void 0) {\\n        let url;\\n        if (Array.isArray(image)) {\\n          url = [];\\n          for (let i = 0, l = image.length; i < l; i++) {\\n            if (image[i].isDataTexture) {\\n              url.push(serializeImage(image[i].image));\\n            } else {\\n              url.push(serializeImage(image[i]));\\n            }\\n          }\\n        } else {\\n          url = serializeImage(image);\\n        }\\n        meta.images[image.uuid] = {\\n          uuid: image.uuid,\\n          url\\n        };\\n      }\\n      output.image = image.uuid;\\n    }\\n    if (!isRootObject) {\\n      meta.textures[this.uuid] = output;\\n    }\\n    return output;\\n  }\\n  dispose() {\\n    this.dispatchEvent({type: \\\\\\\"dispose\\\\\\\"});\\n  }\\n  transformUv(uv) {\\n    if (this.mapping !== UVMapping)\\n      return uv;\\n    uv.applyMatrix3(this.matrix);\\n    if (uv.x < 0 || uv.x > 1) {\\n      switch (this.wrapS) {\\n        case RepeatWrapping:\\n          uv.x = uv.x - Math.floor(uv.x);\\n          break;\\n        case ClampToEdgeWrapping:\\n          uv.x = uv.x < 0 ? 0 : 1;\\n          break;\\n        case MirroredRepeatWrapping:\\n          if (Math.abs(Math.floor(uv.x) % 2) === 1) {\\n            uv.x = Math.ceil(uv.x) - uv.x;\\n          } else {\\n            uv.x = uv.x - Math.floor(uv.x);\\n          }\\n          break;\\n      }\\n    }\\n    if (uv.y < 0 || uv.y > 1) {\\n      switch (this.wrapT) {\\n        case RepeatWrapping:\\n          uv.y = uv.y - Math.floor(uv.y);\\n          break;\\n        case ClampToEdgeWrapping:\\n          uv.y = uv.y < 0 ? 0 : 1;\\n          break;\\n        case MirroredRepeatWrapping:\\n          if (Math.abs(Math.floor(uv.y) % 2) === 1) {\\n            uv.y = Math.ceil(uv.y) - uv.y;\\n          } else {\\n            uv.y = uv.y - Math.floor(uv.y);\\n          }\\n          break;\\n      }\\n    }\\n    if (this.flipY) {\\n      uv.y = 1 - uv.y;\\n    }\\n    return uv;\\n  }\\n  set needsUpdate(value) {\\n    if (value === true)\\n      this.version++;\\n  }\\n};\\nTexture.DEFAULT_IMAGE = void 0;\\nTexture.DEFAULT_MAPPING = UVMapping;\\nTexture.prototype.isTexture = true;\\nfunction serializeImage(image) {\\n  if (typeof HTMLImageElement !== \\\\\\\"undefined\\\\\\\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \\\\\\\"undefined\\\\\\\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \\\\\\\"undefined\\\\\\\" && image instanceof ImageBitmap) {\\n    return ImageUtils.getDataURL(image);\\n  } else {\\n    if (image.data) {\\n      return {\\n        data: Array.prototype.slice.call(image.data),\\n        width: image.width,\\n        height: image.height,\\n        type: image.data.constructor.name\\n      };\\n    } else {\\n      console.warn(\\\\\\\"THREE.Texture: Unable to serialize Texture.\\\\\\\");\\n      return {};\\n    }\\n  }\\n}\\n\\n// ../../../node_modules/three/src/renderers/WebGLRenderTarget.js\\nvar WebGLRenderTarget = class extends EventDispatcher {\\n  constructor(width, height, options = {}) {\\n    super();\\n    this.width = width;\\n    this.height = height;\\n    this.depth = 1;\\n    this.scissor = new Vector4(0, 0, width, height);\\n    this.scissorTest = false;\\n    this.viewport = new Vector4(0, 0, width, height);\\n    this.texture = new Texture(void 0, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\\n    this.texture.isRenderTargetTexture = true;\\n    this.texture.image = {width, height, depth: 1};\\n    this.texture.generateMipmaps = options.generateMipmaps !== void 0 ? options.generateMipmaps : false;\\n    this.texture.internalFormat = options.internalFormat !== void 0 ? options.internalFormat : null;\\n    this.texture.minFilter = options.minFilter !== void 0 ? options.minFilter : LinearFilter;\\n    this.depthBuffer = options.depthBuffer !== void 0 ? options.depthBuffer : true;\\n    this.stencilBuffer = options.stencilBuffer !== void 0 ? options.stencilBuffer : false;\\n    this.depthTexture = options.depthTexture !== void 0 ? options.depthTexture : null;\\n  }\\n  setTexture(texture) {\\n    texture.image = {\\n      width: this.width,\\n      height: this.height,\\n      depth: this.depth\\n    };\\n    this.texture = texture;\\n  }\\n  setSize(width, height, depth2 = 1) {\\n    if (this.width !== width || this.height !== height || this.depth !== depth2) {\\n      this.width = width;\\n      this.height = height;\\n      this.depth = depth2;\\n      this.texture.image.width = width;\\n      this.texture.image.height = height;\\n      this.texture.image.depth = depth2;\\n      this.dispose();\\n    }\\n    this.viewport.set(0, 0, width, height);\\n    this.scissor.set(0, 0, width, height);\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n  copy(source) {\\n    this.width = source.width;\\n    this.height = source.height;\\n    this.depth = source.depth;\\n    this.viewport.copy(source.viewport);\\n    this.texture = source.texture.clone();\\n    this.texture.image = {...this.texture.image};\\n    this.depthBuffer = source.depthBuffer;\\n    this.stencilBuffer = source.stencilBuffer;\\n    this.depthTexture = source.depthTexture;\\n    return this;\\n  }\\n  dispose() {\\n    this.dispatchEvent({type: \\\\\\\"dispose\\\\\\\"});\\n  }\\n};\\nWebGLRenderTarget.prototype.isWebGLRenderTarget = true;\\n\\n// ../../../node_modules/three/src/cameras/Camera.js\\nvar Camera = class extends Object3D {\\n  constructor() {\\n    super();\\n    this.type = \\\\\\\"Camera\\\\\\\";\\n    this.matrixWorldInverse = new Matrix4();\\n    this.projectionMatrix = new Matrix4();\\n    this.projectionMatrixInverse = new Matrix4();\\n  }\\n  copy(source, recursive) {\\n    super.copy(source, recursive);\\n    this.matrixWorldInverse.copy(source.matrixWorldInverse);\\n    this.projectionMatrix.copy(source.projectionMatrix);\\n    this.projectionMatrixInverse.copy(source.projectionMatrixInverse);\\n    return this;\\n  }\\n  getWorldDirection(target) {\\n    this.updateWorldMatrix(true, false);\\n    const e = this.matrixWorld.elements;\\n    return target.set(-e[8], -e[9], -e[10]).normalize();\\n  }\\n  updateMatrixWorld(force) {\\n    super.updateMatrixWorld(force);\\n    this.matrixWorldInverse.copy(this.matrixWorld).invert();\\n  }\\n  updateWorldMatrix(updateParents, updateChildren) {\\n    super.updateWorldMatrix(updateParents, updateChildren);\\n    this.matrixWorldInverse.copy(this.matrixWorld).invert();\\n  }\\n  clone() {\\n    return new this.constructor().copy(this);\\n  }\\n};\\nCamera.prototype.isCamera = true;\\n\\n// ../../../node_modules/three/src/cameras/PerspectiveCamera.js\\nvar PerspectiveCamera = class extends Camera {\\n  constructor(fov2 = 50, aspect2 = 1, near = 0.1, far = 2e3) {\\n    super();\\n    this.type = \\\\\\\"PerspectiveCamera\\\\\\\";\\n    this.fov = fov2;\\n    this.zoom = 1;\\n    this.near = near;\\n    this.far = far;\\n    this.focus = 10;\\n    this.aspect = aspect2;\\n    this.view = null;\\n    this.filmGauge = 35;\\n    this.filmOffset = 0;\\n    this.updateProjectionMatrix();\\n  }\\n  copy(source, recursive) {\\n    super.copy(source, recursive);\\n    this.fov = source.fov;\\n    this.zoom = source.zoom;\\n    this.near = source.near;\\n    this.far = source.far;\\n    this.focus = source.focus;\\n    this.aspect = source.aspect;\\n    this.view = source.view === null ? null : Object.assign({}, source.view);\\n    this.filmGauge = source.filmGauge;\\n    this.filmOffset = source.filmOffset;\\n    return this;\\n  }\\n  setFocalLength(focalLength) {\\n    const vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\\n    this.fov = RAD2DEG * 2 * Math.atan(vExtentSlope);\\n    this.updateProjectionMatrix();\\n  }\\n  getFocalLength() {\\n    const vExtentSlope = Math.tan(DEG2RAD * 0.5 * this.fov);\\n    return 0.5 * this.getFilmHeight() / vExtentSlope;\\n  }\\n  getEffectiveFOV() {\\n    return RAD2DEG * 2 * Math.atan(Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom);\\n  }\\n  getFilmWidth() {\\n    return this.filmGauge * Math.min(this.aspect, 1);\\n  }\\n  getFilmHeight() {\\n    return this.filmGauge / Math.max(this.aspect, 1);\\n  }\\n  setViewOffset(fullWidth, fullHeight, x, y, width, height) {\\n    this.aspect = fullWidth / fullHeight;\\n    if (this.view === null) {\\n      this.view = {\\n        enabled: true,\\n        fullWidth: 1,\\n        fullHeight: 1,\\n        offsetX: 0,\\n        offsetY: 0,\\n        width: 1,\\n        height: 1\\n      };\\n    }\\n    this.view.enabled = true;\\n    this.view.fullWidth = fullWidth;\\n    this.view.fullHeight = fullHeight;\\n    this.view.offsetX = x;\\n    this.view.offsetY = y;\\n    this.view.width = width;\\n    this.view.height = height;\\n    this.updateProjectionMatrix();\\n  }\\n  clearViewOffset() {\\n    if (this.view !== null) {\\n      this.view.enabled = false;\\n    }\\n    this.updateProjectionMatrix();\\n  }\\n  updateProjectionMatrix() {\\n    const near = this.near;\\n    let top = near * Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom;\\n    let height = 2 * top;\\n    let width = this.aspect * height;\\n    let left = -0.5 * width;\\n    const view = this.view;\\n    if (this.view !== null && this.view.enabled) {\\n      const fullWidth = view.fullWidth, fullHeight = view.fullHeight;\\n      left += view.offsetX * width / fullWidth;\\n      top -= view.offsetY * height / fullHeight;\\n      width *= view.width / fullWidth;\\n      height *= view.height / fullHeight;\\n    }\\n    const skew = this.filmOffset;\\n    if (skew !== 0)\\n      left += near * skew / this.getFilmWidth();\\n    this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far);\\n    this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\\n  }\\n  toJSON(meta) {\\n    const data = super.toJSON(meta);\\n    data.object.fov = this.fov;\\n    data.object.zoom = this.zoom;\\n    data.object.near = this.near;\\n    data.object.far = this.far;\\n    data.object.focus = this.focus;\\n    data.object.aspect = this.aspect;\\n    if (this.view !== null)\\n      data.object.view = Object.assign({}, this.view);\\n    data.object.filmGauge = this.filmGauge;\\n    data.object.filmOffset = this.filmOffset;\\n    return data;\\n  }\\n};\\nPerspectiveCamera.prototype.isPerspectiveCamera = true;\\n\\n// ../../../node_modules/three/src/cameras/CubeCamera.js\\nvar fov = 90;\\nvar aspect = 1;\\nvar CubeCamera = class extends Object3D {\\n  constructor(near, far, renderTarget) {\\n    super();\\n    this.type = \\\\\\\"CubeCamera\\\\\\\";\\n    if (renderTarget.isWebGLCubeRenderTarget !== true) {\\n      console.error(\\\\\\\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\\\\\\\");\\n      return;\\n    }\\n    this.renderTarget = renderTarget;\\n    const cameraPX = new PerspectiveCamera(fov, aspect, near, far);\\n    cameraPX.layers = this.layers;\\n    cameraPX.up.set(0, -1, 0);\\n    cameraPX.lookAt(new Vector3(1, 0, 0));\\n    this.add(cameraPX);\\n    const cameraNX = new PerspectiveCamera(fov, aspect, near, far);\\n    cameraNX.layers = this.layers;\\n    cameraNX.up.set(0, -1, 0);\\n    cameraNX.lookAt(new Vector3(-1, 0, 0));\\n    this.add(cameraNX);\\n    const cameraPY = new PerspectiveCamera(fov, aspect, near, far);\\n    cameraPY.layers = this.layers;\\n    cameraPY.up.set(0, 0, 1);\\n    cameraPY.lookAt(new Vector3(0, 1, 0));\\n    this.add(cameraPY);\\n    const cameraNY = new PerspectiveCamera(fov, aspect, near, far);\\n    cameraNY.layers = this.layers;\\n    cameraNY.up.set(0, 0, -1);\\n    cameraNY.lookAt(new Vector3(0, -1, 0));\\n    this.add(cameraNY);\\n    const cameraPZ = new PerspectiveCamera(fov, aspect, near, far);\\n    cameraPZ.layers = this.layers;\\n    cameraPZ.up.set(0, -1, 0);\\n    cameraPZ.lookAt(new Vector3(0, 0, 1));\\n    this.add(cameraPZ);\\n    const cameraNZ = new PerspectiveCamera(fov, aspect, near, far);\\n    cameraNZ.layers = this.layers;\\n    cameraNZ.up.set(0, -1, 0);\\n    cameraNZ.lookAt(new Vector3(0, 0, -1));\\n    this.add(cameraNZ);\\n  }\\n  update(renderer, scene) {\\n    if (this.parent === null)\\n      this.updateMatrixWorld();\\n    const renderTarget = this.renderTarget;\\n    const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = this.children;\\n    const currentXrEnabled = renderer.xr.enabled;\\n    const currentRenderTarget = renderer.getRenderTarget();\\n    renderer.xr.enabled = false;\\n    const generateMipmaps = renderTarget.texture.generateMipmaps;\\n    renderTarget.texture.generateMipmaps = false;\\n    renderer.setRenderTarget(renderTarget, 0);\\n    renderer.render(scene, cameraPX);\\n    renderer.setRenderTarget(renderTarget, 1);\\n    renderer.render(scene, cameraNX);\\n    renderer.setRenderTarget(renderTarget, 2);\\n    renderer.render(scene, cameraPY);\\n    renderer.setRenderTarget(renderTarget, 3);\\n    renderer.render(scene, cameraNY);\\n    renderer.setRenderTarget(renderTarget, 4);\\n    renderer.render(scene, cameraPZ);\\n    renderTarget.texture.generateMipmaps = generateMipmaps;\\n    renderer.setRenderTarget(renderTarget, 5);\\n    renderer.render(scene, cameraNZ);\\n    renderer.setRenderTarget(currentRenderTarget);\\n    renderer.xr.enabled = currentXrEnabled;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/textures/CubeTexture.js\\nvar CubeTexture = class extends Texture {\\n  constructor(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) {\\n    images = images !== void 0 ? images : [];\\n    mapping = mapping !== void 0 ? mapping : CubeReflectionMapping;\\n    super(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\\n    this.flipY = false;\\n  }\\n  get images() {\\n    return this.image;\\n  }\\n  set images(value) {\\n    this.image = value;\\n  }\\n};\\nCubeTexture.prototype.isCubeTexture = true;\\n\\n// ../../../node_modules/three/src/renderers/WebGLCubeRenderTarget.js\\nvar WebGLCubeRenderTarget = class extends WebGLRenderTarget {\\n  constructor(size, options, dummy) {\\n    if (Number.isInteger(options)) {\\n      console.warn(\\\\\\\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\\\\\\\");\\n      options = dummy;\\n    }\\n    super(size, size, options);\\n    options = options || {};\\n    this.texture = new CubeTexture(void 0, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding);\\n    this.texture.isRenderTargetTexture = true;\\n    this.texture.generateMipmaps = options.generateMipmaps !== void 0 ? options.generateMipmaps : false;\\n    this.texture.minFilter = options.minFilter !== void 0 ? options.minFilter : LinearFilter;\\n    this.texture._needsFlipEnvMap = false;\\n  }\\n  fromEquirectangularTexture(renderer, texture) {\\n    this.texture.type = texture.type;\\n    this.texture.format = RGBAFormat;\\n    this.texture.encoding = texture.encoding;\\n    this.texture.generateMipmaps = texture.generateMipmaps;\\n    this.texture.minFilter = texture.minFilter;\\n    this.texture.magFilter = texture.magFilter;\\n    const shader = {\\n      uniforms: {\\n        tEquirect: {value: null}\\n      },\\n      vertexShader: `\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t`,\\n      fragmentShader: `\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t`\\n    };\\n    const geometry = new BoxGeometry(5, 5, 5);\\n    const material = new ShaderMaterial({\\n      name: \\\\\\\"CubemapFromEquirect\\\\\\\",\\n      uniforms: cloneUniforms(shader.uniforms),\\n      vertexShader: shader.vertexShader,\\n      fragmentShader: shader.fragmentShader,\\n      side: BackSide,\\n      blending: NoBlending\\n    });\\n    material.uniforms.tEquirect.value = texture;\\n    const mesh = new Mesh(geometry, material);\\n    const currentMinFilter = texture.minFilter;\\n    if (texture.minFilter === LinearMipmapLinearFilter)\\n      texture.minFilter = LinearFilter;\\n    const camera = new CubeCamera(1, 10, this);\\n    camera.update(renderer, mesh);\\n    texture.minFilter = currentMinFilter;\\n    mesh.geometry.dispose();\\n    mesh.material.dispose();\\n    return this;\\n  }\\n  clear(renderer, color, depth2, stencil) {\\n    const currentRenderTarget = renderer.getRenderTarget();\\n    for (let i = 0; i < 6; i++) {\\n      renderer.setRenderTarget(this, i);\\n      renderer.clear(color, depth2, stencil);\\n    }\\n    renderer.setRenderTarget(currentRenderTarget);\\n  }\\n};\\nWebGLCubeRenderTarget.prototype.isWebGLCubeRenderTarget = true;\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLCubeMaps.js\\nfunction WebGLCubeMaps(renderer) {\\n  let cubemaps = new WeakMap();\\n  function mapTextureMapping(texture, mapping) {\\n    if (mapping === EquirectangularReflectionMapping) {\\n      texture.mapping = CubeReflectionMapping;\\n    } else if (mapping === EquirectangularRefractionMapping) {\\n      texture.mapping = CubeRefractionMapping;\\n    }\\n    return texture;\\n  }\\n  function get(texture) {\\n    if (texture && texture.isTexture && texture.isRenderTargetTexture === false) {\\n      const mapping = texture.mapping;\\n      if (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) {\\n        if (cubemaps.has(texture)) {\\n          const cubemap = cubemaps.get(texture).texture;\\n          return mapTextureMapping(cubemap, texture.mapping);\\n        } else {\\n          const image = texture.image;\\n          if (image && image.height > 0) {\\n            const currentRenderTarget = renderer.getRenderTarget();\\n            const renderTarget = new WebGLCubeRenderTarget(image.height / 2);\\n            renderTarget.fromEquirectangularTexture(renderer, texture);\\n            cubemaps.set(texture, renderTarget);\\n            renderer.setRenderTarget(currentRenderTarget);\\n            texture.addEventListener(\\\\\\\"dispose\\\\\\\", onTextureDispose);\\n            return mapTextureMapping(renderTarget.texture, texture.mapping);\\n          } else {\\n            return null;\\n          }\\n        }\\n      }\\n    }\\n    return texture;\\n  }\\n  function onTextureDispose(event) {\\n    const texture = event.target;\\n    texture.removeEventListener(\\\\\\\"dispose\\\\\\\", onTextureDispose);\\n    const cubemap = cubemaps.get(texture);\\n    if (cubemap !== void 0) {\\n      cubemaps.delete(texture);\\n      cubemap.dispose();\\n    }\\n  }\\n  function dispose() {\\n    cubemaps = new WeakMap();\\n  }\\n  return {\\n    get,\\n    dispose\\n  };\\n}\\n\\n// ../../../node_modules/three/src/cameras/OrthographicCamera.js\\nvar OrthographicCamera = class extends Camera {\\n  constructor(left = -1, right = 1, top = 1, bottom = -1, near = 0.1, far = 2e3) {\\n    super();\\n    this.type = \\\\\\\"OrthographicCamera\\\\\\\";\\n    this.zoom = 1;\\n    this.view = null;\\n    this.left = left;\\n    this.right = right;\\n    this.top = top;\\n    this.bottom = bottom;\\n    this.near = near;\\n    this.far = far;\\n    this.updateProjectionMatrix();\\n  }\\n  copy(source, recursive) {\\n    super.copy(source, recursive);\\n    this.left = source.left;\\n    this.right = source.right;\\n    this.top = source.top;\\n    this.bottom = source.bottom;\\n    this.near = source.near;\\n    this.far = source.far;\\n    this.zoom = source.zoom;\\n    this.view = source.view === null ? null : Object.assign({}, source.view);\\n    return this;\\n  }\\n  setViewOffset(fullWidth, fullHeight, x, y, width, height) {\\n    if (this.view === null) {\\n      this.view = {\\n        enabled: true,\\n        fullWidth: 1,\\n        fullHeight: 1,\\n        offsetX: 0,\\n        offsetY: 0,\\n        width: 1,\\n        height: 1\\n      };\\n    }\\n    this.view.enabled = true;\\n    this.view.fullWidth = fullWidth;\\n    this.view.fullHeight = fullHeight;\\n    this.view.offsetX = x;\\n    this.view.offsetY = y;\\n    this.view.width = width;\\n    this.view.height = height;\\n    this.updateProjectionMatrix();\\n  }\\n  clearViewOffset() {\\n    if (this.view !== null) {\\n      this.view.enabled = false;\\n    }\\n    this.updateProjectionMatrix();\\n  }\\n  updateProjectionMatrix() {\\n    const dx = (this.right - this.left) / (2 * this.zoom);\\n    const dy = (this.top - this.bottom) / (2 * this.zoom);\\n    const cx = (this.right + this.left) / 2;\\n    const cy = (this.top + this.bottom) / 2;\\n    let left = cx - dx;\\n    let right = cx + dx;\\n    let top = cy + dy;\\n    let bottom = cy - dy;\\n    if (this.view !== null && this.view.enabled) {\\n      const scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom;\\n      const scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\\n      left += scaleW * this.view.offsetX;\\n      right = left + scaleW * this.view.width;\\n      top -= scaleH * this.view.offsetY;\\n      bottom = top - scaleH * this.view.height;\\n    }\\n    this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far);\\n    this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\\n  }\\n  toJSON(meta) {\\n    const data = super.toJSON(meta);\\n    data.object.zoom = this.zoom;\\n    data.object.left = this.left;\\n    data.object.right = this.right;\\n    data.object.top = this.top;\\n    data.object.bottom = this.bottom;\\n    data.object.near = this.near;\\n    data.object.far = this.far;\\n    if (this.view !== null)\\n      data.object.view = Object.assign({}, this.view);\\n    return data;\\n  }\\n};\\nOrthographicCamera.prototype.isOrthographicCamera = true;\\n\\n// ../../../node_modules/three/src/materials/RawShaderMaterial.js\\nvar RawShaderMaterial = class extends ShaderMaterial {\\n  constructor(parameters) {\\n    super(parameters);\\n    this.type = \\\\\\\"RawShaderMaterial\\\\\\\";\\n  }\\n};\\nRawShaderMaterial.prototype.isRawShaderMaterial = true;\\n\\n// ../../../node_modules/three/src/extras/PMREMGenerator.js\\nvar LOD_MIN = 4;\\nvar LOD_MAX = 8;\\nvar SIZE_MAX = Math.pow(2, LOD_MAX);\\nvar EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582];\\nvar TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\\nvar MAX_SAMPLES = 20;\\nvar ENCODINGS = {\\n  [LinearEncoding]: 0,\\n  [sRGBEncoding]: 1,\\n  [RGBEEncoding]: 2,\\n  [RGBM7Encoding]: 3,\\n  [RGBM16Encoding]: 4,\\n  [RGBDEncoding]: 5,\\n  [GammaEncoding]: 6\\n};\\nvar _flatCamera = /* @__PURE__ */ new OrthographicCamera();\\nvar {_lodPlanes, _sizeLods, _sigmas} = /* @__PURE__ */ _createPlanes();\\nvar _clearColor = /* @__PURE__ */ new Color();\\nvar _oldTarget = null;\\nvar PHI = (1 + Math.sqrt(5)) / 2;\\nvar INV_PHI = 1 / PHI;\\nvar _axisDirections = [\\n  /* @__PURE__ */ new Vector3(1, 1, 1),\\n  /* @__PURE__ */ new Vector3(-1, 1, 1),\\n  /* @__PURE__ */ new Vector3(1, 1, -1),\\n  /* @__PURE__ */ new Vector3(-1, 1, -1),\\n  /* @__PURE__ */ new Vector3(0, PHI, INV_PHI),\\n  /* @__PURE__ */ new Vector3(0, PHI, -INV_PHI),\\n  /* @__PURE__ */ new Vector3(INV_PHI, 0, PHI),\\n  /* @__PURE__ */ new Vector3(-INV_PHI, 0, PHI),\\n  /* @__PURE__ */ new Vector3(PHI, INV_PHI, 0),\\n  /* @__PURE__ */ new Vector3(-PHI, INV_PHI, 0)\\n];\\nvar PMREMGenerator = class {\\n  constructor(renderer) {\\n    this._renderer = renderer;\\n    this._pingPongRenderTarget = null;\\n    this._blurMaterial = _getBlurShader(MAX_SAMPLES);\\n    this._equirectShader = null;\\n    this._cubemapShader = null;\\n    this._compileMaterial(this._blurMaterial);\\n  }\\n  fromScene(scene, sigma = 0, near = 0.1, far = 100) {\\n    _oldTarget = this._renderer.getRenderTarget();\\n    const cubeUVRenderTarget = this._allocateTargets();\\n    this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget);\\n    if (sigma > 0) {\\n      this._blur(cubeUVRenderTarget, 0, 0, sigma);\\n    }\\n    this._applyPMREM(cubeUVRenderTarget);\\n    this._cleanup(cubeUVRenderTarget);\\n    return cubeUVRenderTarget;\\n  }\\n  fromEquirectangular(equirectangular) {\\n    return this._fromTexture(equirectangular);\\n  }\\n  fromCubemap(cubemap) {\\n    return this._fromTexture(cubemap);\\n  }\\n  compileCubemapShader() {\\n    if (this._cubemapShader === null) {\\n      this._cubemapShader = _getCubemapShader();\\n      this._compileMaterial(this._cubemapShader);\\n    }\\n  }\\n  compileEquirectangularShader() {\\n    if (this._equirectShader === null) {\\n      this._equirectShader = _getEquirectShader();\\n      this._compileMaterial(this._equirectShader);\\n    }\\n  }\\n  dispose() {\\n    this._blurMaterial.dispose();\\n    if (this._cubemapShader !== null)\\n      this._cubemapShader.dispose();\\n    if (this._equirectShader !== null)\\n      this._equirectShader.dispose();\\n    for (let i = 0; i < _lodPlanes.length; i++) {\\n      _lodPlanes[i].dispose();\\n    }\\n  }\\n  _cleanup(outputTarget) {\\n    this._pingPongRenderTarget.dispose();\\n    this._renderer.setRenderTarget(_oldTarget);\\n    outputTarget.scissorTest = false;\\n    _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height);\\n  }\\n  _fromTexture(texture) {\\n    _oldTarget = this._renderer.getRenderTarget();\\n    const cubeUVRenderTarget = this._allocateTargets(texture);\\n    this._textureToCubeUV(texture, cubeUVRenderTarget);\\n    this._applyPMREM(cubeUVRenderTarget);\\n    this._cleanup(cubeUVRenderTarget);\\n    return cubeUVRenderTarget;\\n  }\\n  _allocateTargets(texture) {\\n    const params = {\\n      magFilter: NearestFilter,\\n      minFilter: NearestFilter,\\n      generateMipmaps: false,\\n      type: UnsignedByteType,\\n      format: RGBEFormat,\\n      encoding: _isLDR(texture) ? texture.encoding : RGBEEncoding,\\n      depthBuffer: false\\n    };\\n    const cubeUVRenderTarget = _createRenderTarget(params);\\n    cubeUVRenderTarget.depthBuffer = texture ? false : true;\\n    this._pingPongRenderTarget = _createRenderTarget(params);\\n    return cubeUVRenderTarget;\\n  }\\n  _compileMaterial(material) {\\n    const tmpMesh = new Mesh(_lodPlanes[0], material);\\n    this._renderer.compile(tmpMesh, _flatCamera);\\n  }\\n  _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) {\\n    const fov2 = 90;\\n    const aspect2 = 1;\\n    const cubeCamera = new PerspectiveCamera(fov2, aspect2, near, far);\\n    const upSign = [1, -1, 1, 1, 1, 1];\\n    const forwardSign = [1, 1, 1, -1, -1, -1];\\n    const renderer = this._renderer;\\n    const originalAutoClear = renderer.autoClear;\\n    const outputEncoding = renderer.outputEncoding;\\n    const toneMapping = renderer.toneMapping;\\n    renderer.getClearColor(_clearColor);\\n    renderer.toneMapping = NoToneMapping;\\n    renderer.outputEncoding = LinearEncoding;\\n    renderer.autoClear = false;\\n    const backgroundMaterial = new MeshBasicMaterial({\\n      name: \\\\\\\"PMREM.Background\\\\\\\",\\n      side: BackSide,\\n      depthWrite: false,\\n      depthTest: false\\n    });\\n    const backgroundBox = new Mesh(new BoxGeometry(), backgroundMaterial);\\n    let useSolidColor = false;\\n    const background2 = scene.background;\\n    if (background2) {\\n      if (background2.isColor) {\\n        backgroundMaterial.color.copy(background2);\\n        scene.background = null;\\n        useSolidColor = true;\\n      }\\n    } else {\\n      backgroundMaterial.color.copy(_clearColor);\\n      useSolidColor = true;\\n    }\\n    for (let i = 0; i < 6; i++) {\\n      const col = i % 3;\\n      if (col == 0) {\\n        cubeCamera.up.set(0, upSign[i], 0);\\n        cubeCamera.lookAt(forwardSign[i], 0, 0);\\n      } else if (col == 1) {\\n        cubeCamera.up.set(0, 0, upSign[i]);\\n        cubeCamera.lookAt(0, forwardSign[i], 0);\\n      } else {\\n        cubeCamera.up.set(0, upSign[i], 0);\\n        cubeCamera.lookAt(0, 0, forwardSign[i]);\\n      }\\n      _setViewport(cubeUVRenderTarget, col * SIZE_MAX, i > 2 ? SIZE_MAX : 0, SIZE_MAX, SIZE_MAX);\\n      renderer.setRenderTarget(cubeUVRenderTarget);\\n      if (useSolidColor) {\\n        renderer.render(backgroundBox, cubeCamera);\\n      }\\n      renderer.render(scene, cubeCamera);\\n    }\\n    backgroundBox.geometry.dispose();\\n    backgroundBox.material.dispose();\\n    renderer.toneMapping = toneMapping;\\n    renderer.outputEncoding = outputEncoding;\\n    renderer.autoClear = originalAutoClear;\\n    scene.background = background2;\\n  }\\n  _setEncoding(uniform, texture) {\\n    if (this._renderer.capabilities.isWebGL2 === true && texture.format === RGBAFormat && texture.type === UnsignedByteType && texture.encoding === sRGBEncoding) {\\n      uniform.value = ENCODINGS[LinearEncoding];\\n    } else {\\n      uniform.value = ENCODINGS[texture.encoding];\\n    }\\n  }\\n  _textureToCubeUV(texture, cubeUVRenderTarget) {\\n    const renderer = this._renderer;\\n    if (texture.isCubeTexture) {\\n      if (this._cubemapShader == null) {\\n        this._cubemapShader = _getCubemapShader();\\n      }\\n    } else {\\n      if (this._equirectShader == null) {\\n        this._equirectShader = _getEquirectShader();\\n      }\\n    }\\n    const material = texture.isCubeTexture ? this._cubemapShader : this._equirectShader;\\n    const mesh = new Mesh(_lodPlanes[0], material);\\n    const uniforms = material.uniforms;\\n    uniforms[\\\\\\\"envMap\\\\\\\"].value = texture;\\n    if (!texture.isCubeTexture) {\\n      uniforms[\\\\\\\"texelSize\\\\\\\"].value.set(1 / texture.image.width, 1 / texture.image.height);\\n    }\\n    this._setEncoding(uniforms[\\\\\\\"inputEncoding\\\\\\\"], texture);\\n    this._setEncoding(uniforms[\\\\\\\"outputEncoding\\\\\\\"], cubeUVRenderTarget.texture);\\n    _setViewport(cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX);\\n    renderer.setRenderTarget(cubeUVRenderTarget);\\n    renderer.render(mesh, _flatCamera);\\n  }\\n  _applyPMREM(cubeUVRenderTarget) {\\n    const renderer = this._renderer;\\n    const autoClear = renderer.autoClear;\\n    renderer.autoClear = false;\\n    for (let i = 1; i < TOTAL_LODS; i++) {\\n      const sigma = Math.sqrt(_sigmas[i] * _sigmas[i] - _sigmas[i - 1] * _sigmas[i - 1]);\\n      const poleAxis = _axisDirections[(i - 1) % _axisDirections.length];\\n      this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis);\\n    }\\n    renderer.autoClear = autoClear;\\n  }\\n  _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) {\\n    const pingPongRenderTarget = this._pingPongRenderTarget;\\n    this._halfBlur(cubeUVRenderTarget, pingPongRenderTarget, lodIn, lodOut, sigma, \\\\\\\"latitudinal\\\\\\\", poleAxis);\\n    this._halfBlur(pingPongRenderTarget, cubeUVRenderTarget, lodOut, lodOut, sigma, \\\\\\\"longitudinal\\\\\\\", poleAxis);\\n  }\\n  _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) {\\n    const renderer = this._renderer;\\n    const blurMaterial = this._blurMaterial;\\n    if (direction !== \\\\\\\"latitudinal\\\\\\\" && direction !== \\\\\\\"longitudinal\\\\\\\") {\\n      console.error(\\\\\\\"blur direction must be either latitudinal or longitudinal!\\\\\\\");\\n    }\\n    const STANDARD_DEVIATIONS = 3;\\n    const blurMesh = new Mesh(_lodPlanes[lodOut], blurMaterial);\\n    const blurUniforms = blurMaterial.uniforms;\\n    const pixels = _sizeLods[lodIn] - 1;\\n    const radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1);\\n    const sigmaPixels = sigmaRadians / radiansPerPixel;\\n    const samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES;\\n    if (samples > MAX_SAMPLES) {\\n      console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`);\\n    }\\n    const weights = [];\\n    let sum = 0;\\n    for (let i = 0; i < MAX_SAMPLES; ++i) {\\n      const x2 = i / sigmaPixels;\\n      const weight = Math.exp(-x2 * x2 / 2);\\n      weights.push(weight);\\n      if (i == 0) {\\n        sum += weight;\\n      } else if (i < samples) {\\n        sum += 2 * weight;\\n      }\\n    }\\n    for (let i = 0; i < weights.length; i++) {\\n      weights[i] = weights[i] / sum;\\n    }\\n    blurUniforms[\\\\\\\"envMap\\\\\\\"].value = targetIn.texture;\\n    blurUniforms[\\\\\\\"samples\\\\\\\"].value = samples;\\n    blurUniforms[\\\\\\\"weights\\\\\\\"].value = weights;\\n    blurUniforms[\\\\\\\"latitudinal\\\\\\\"].value = direction === \\\\\\\"latitudinal\\\\\\\";\\n    if (poleAxis) {\\n      blurUniforms[\\\\\\\"poleAxis\\\\\\\"].value = poleAxis;\\n    }\\n    blurUniforms[\\\\\\\"dTheta\\\\\\\"].value = radiansPerPixel;\\n    blurUniforms[\\\\\\\"mipInt\\\\\\\"].value = LOD_MAX - lodIn;\\n    this._setEncoding(blurUniforms[\\\\\\\"inputEncoding\\\\\\\"], targetIn.texture);\\n    this._setEncoding(blurUniforms[\\\\\\\"outputEncoding\\\\\\\"], targetIn.texture);\\n    const outputSize = _sizeLods[lodOut];\\n    const x = 3 * Math.max(0, SIZE_MAX - 2 * outputSize);\\n    const y = (lodOut === 0 ? 0 : 2 * SIZE_MAX) + 2 * outputSize * (lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0);\\n    _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize);\\n    renderer.setRenderTarget(targetOut);\\n    renderer.render(blurMesh, _flatCamera);\\n  }\\n};\\nfunction _isLDR(texture) {\\n  if (texture === void 0 || texture.type !== UnsignedByteType)\\n    return false;\\n  return texture.encoding === LinearEncoding || texture.encoding === sRGBEncoding || texture.encoding === GammaEncoding;\\n}\\nfunction _createPlanes() {\\n  const _lodPlanes2 = [];\\n  const _sizeLods2 = [];\\n  const _sigmas2 = [];\\n  let lod = LOD_MAX;\\n  for (let i = 0; i < TOTAL_LODS; i++) {\\n    const sizeLod = Math.pow(2, lod);\\n    _sizeLods2.push(sizeLod);\\n    let sigma = 1 / sizeLod;\\n    if (i > LOD_MAX - LOD_MIN) {\\n      sigma = EXTRA_LOD_SIGMA[i - LOD_MAX + LOD_MIN - 1];\\n    } else if (i == 0) {\\n      sigma = 0;\\n    }\\n    _sigmas2.push(sigma);\\n    const texelSize = 1 / (sizeLod - 1);\\n    const min = -texelSize / 2;\\n    const max = 1 + texelSize / 2;\\n    const uv1 = [min, min, max, min, max, max, min, min, max, max, min, max];\\n    const cubeFaces = 6;\\n    const vertices = 6;\\n    const positionSize = 3;\\n    const uvSize = 2;\\n    const faceIndexSize = 1;\\n    const position = new Float32Array(positionSize * vertices * cubeFaces);\\n    const uv = new Float32Array(uvSize * vertices * cubeFaces);\\n    const faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces);\\n    for (let face = 0; face < cubeFaces; face++) {\\n      const x = face % 3 * 2 / 3 - 1;\\n      const y = face > 2 ? 0 : -1;\\n      const coordinates = [\\n        x,\\n        y,\\n        0,\\n        x + 2 / 3,\\n        y,\\n        0,\\n        x + 2 / 3,\\n        y + 1,\\n        0,\\n        x,\\n        y,\\n        0,\\n        x + 2 / 3,\\n        y + 1,\\n        0,\\n        x,\\n        y + 1,\\n        0\\n      ];\\n      position.set(coordinates, positionSize * vertices * face);\\n      uv.set(uv1, uvSize * vertices * face);\\n      const fill = [face, face, face, face, face, face];\\n      faceIndex.set(fill, faceIndexSize * vertices * face);\\n    }\\n    const planes = new BufferGeometry();\\n    planes.setAttribute(\\\\\\\"position\\\\\\\", new BufferAttribute(position, positionSize));\\n    planes.setAttribute(\\\\\\\"uv\\\\\\\", new BufferAttribute(uv, uvSize));\\n    planes.setAttribute(\\\\\\\"faceIndex\\\\\\\", new BufferAttribute(faceIndex, faceIndexSize));\\n    _lodPlanes2.push(planes);\\n    if (lod > LOD_MIN) {\\n      lod--;\\n    }\\n  }\\n  return {_lodPlanes: _lodPlanes2, _sizeLods: _sizeLods2, _sigmas: _sigmas2};\\n}\\nfunction _createRenderTarget(params) {\\n  const cubeUVRenderTarget = new WebGLRenderTarget(3 * SIZE_MAX, 3 * SIZE_MAX, params);\\n  cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\\n  cubeUVRenderTarget.texture.name = \\\\\\\"PMREM.cubeUv\\\\\\\";\\n  cubeUVRenderTarget.scissorTest = true;\\n  return cubeUVRenderTarget;\\n}\\nfunction _setViewport(target, x, y, width, height) {\\n  target.viewport.set(x, y, width, height);\\n  target.scissor.set(x, y, width, height);\\n}\\nfunction _getBlurShader(maxSamples) {\\n  const weights = new Float32Array(maxSamples);\\n  const poleAxis = new Vector3(0, 1, 0);\\n  const shaderMaterial = new RawShaderMaterial({\\n    name: \\\\\\\"SphericalGaussianBlur\\\\\\\",\\n    defines: {n: maxSamples},\\n    uniforms: {\\n      envMap: {value: null},\\n      samples: {value: 1},\\n      weights: {value: weights},\\n      latitudinal: {value: false},\\n      dTheta: {value: 0},\\n      mipInt: {value: 0},\\n      poleAxis: {value: poleAxis},\\n      inputEncoding: {value: ENCODINGS[LinearEncoding]},\\n      outputEncoding: {value: ENCODINGS[LinearEncoding]}\\n    },\\n    vertexShader: _getCommonVertexShader(),\\n    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${_getEncodings()}\\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`,\\n    blending: NoBlending,\\n    depthTest: false,\\n    depthWrite: false\\n  });\\n  return shaderMaterial;\\n}\\nfunction _getEquirectShader() {\\n  const texelSize = new Vector2(1, 1);\\n  const shaderMaterial = new RawShaderMaterial({\\n    name: \\\\\\\"EquirectangularToCubeUV\\\\\\\",\\n    uniforms: {\\n      envMap: {value: null},\\n      texelSize: {value: texelSize},\\n      inputEncoding: {value: ENCODINGS[LinearEncoding]},\\n      outputEncoding: {value: ENCODINGS[LinearEncoding]}\\n    },\\n    vertexShader: _getCommonVertexShader(),\\n    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${_getEncodings()}\\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`,\\n    blending: NoBlending,\\n    depthTest: false,\\n    depthWrite: false\\n  });\\n  return shaderMaterial;\\n}\\nfunction _getCubemapShader() {\\n  const shaderMaterial = new RawShaderMaterial({\\n    name: \\\\\\\"CubemapToCubeUV\\\\\\\",\\n    uniforms: {\\n      envMap: {value: null},\\n      inputEncoding: {value: ENCODINGS[LinearEncoding]},\\n      outputEncoding: {value: ENCODINGS[LinearEncoding]}\\n    },\\n    vertexShader: _getCommonVertexShader(),\\n    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${_getEncodings()}\\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`,\\n    blending: NoBlending,\\n    depthTest: false,\\n    depthWrite: false\\n  });\\n  return shaderMaterial;\\n}\\nfunction _getCommonVertexShader() {\\n  return `\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute vec3 position;\\n\\t\\tattribute vec2 uv;\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t`;\\n}\\nfunction _getEncodings() {\\n  return `\\n\\n\\t\\tuniform int inputEncoding;\\n\\t\\tuniform int outputEncoding;\\n\\n\\t\\t#include <encodings_pars_fragment>\\n\\n\\t\\tvec4 inputTexelToLinear( vec4 value ) {\\n\\n\\t\\t\\tif ( inputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( inputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn sRGBToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn RGBEToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 7.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 16.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn RGBDToLinear( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn GammaToLinear( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 linearToOutputTexel( vec4 value ) {\\n\\n\\t\\t\\tif ( outputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( outputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn LinearTosRGB( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBE( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 7.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 16.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBD( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn LinearToGamma( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 envMapTexelToLinear( vec4 color ) {\\n\\n\\t\\t\\treturn inputTexelToLinear( color );\\n\\n\\t\\t}\\n\\t`;\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLCubeUVMaps.js\\nfunction WebGLCubeUVMaps(renderer) {\\n  let cubeUVmaps = new WeakMap();\\n  let pmremGenerator = null;\\n  function get(texture) {\\n    if (texture && texture.isTexture && texture.isRenderTargetTexture === false) {\\n      const mapping = texture.mapping;\\n      const isEquirectMap = mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping;\\n      const isCubeMap = mapping === CubeReflectionMapping || mapping === CubeRefractionMapping;\\n      if (isEquirectMap || isCubeMap) {\\n        if (cubeUVmaps.has(texture)) {\\n          return cubeUVmaps.get(texture).texture;\\n        } else {\\n          const image = texture.image;\\n          if (isEquirectMap && image && image.height > 0 || isCubeMap && image && isCubeTextureComplete(image)) {\\n            const currentRenderTarget = renderer.getRenderTarget();\\n            if (pmremGenerator === null)\\n              pmremGenerator = new PMREMGenerator(renderer);\\n            const renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture) : pmremGenerator.fromCubemap(texture);\\n            cubeUVmaps.set(texture, renderTarget);\\n            renderer.setRenderTarget(currentRenderTarget);\\n            texture.addEventListener(\\\\\\\"dispose\\\\\\\", onTextureDispose);\\n            return renderTarget.texture;\\n          } else {\\n            return null;\\n          }\\n        }\\n      }\\n    }\\n    return texture;\\n  }\\n  function isCubeTextureComplete(image) {\\n    let count = 0;\\n    const length = 6;\\n    for (let i = 0; i < length; i++) {\\n      if (image[i] !== void 0)\\n        count++;\\n    }\\n    return count === length;\\n  }\\n  function onTextureDispose(event) {\\n    const texture = event.target;\\n    texture.removeEventListener(\\\\\\\"dispose\\\\\\\", onTextureDispose);\\n    const cubemapUV = cubeUVmaps.get(texture);\\n    if (cubemapUV !== void 0) {\\n      cubeUVmaps.delete(texture);\\n      cubemapUV.dispose();\\n    }\\n  }\\n  function dispose() {\\n    cubeUVmaps = new WeakMap();\\n    if (pmremGenerator !== null) {\\n      pmremGenerator.dispose();\\n      pmremGenerator = null;\\n    }\\n  }\\n  return {\\n    get,\\n    dispose\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLExtensions.js\\nfunction WebGLExtensions(gl) {\\n  const extensions = {};\\n  function getExtension(name) {\\n    if (extensions[name] !== void 0) {\\n      return extensions[name];\\n    }\\n    let extension;\\n    switch (name) {\\n      case \\\\\\\"WEBGL_depth_texture\\\\\\\":\\n        extension = gl.getExtension(\\\\\\\"WEBGL_depth_texture\\\\\\\") || gl.getExtension(\\\\\\\"MOZ_WEBGL_depth_texture\\\\\\\") || gl.getExtension(\\\\\\\"WEBKIT_WEBGL_depth_texture\\\\\\\");\\n        break;\\n      case \\\\\\\"EXT_texture_filter_anisotropic\\\\\\\":\\n        extension = gl.getExtension(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\") || gl.getExtension(\\\\\\\"MOZ_EXT_texture_filter_anisotropic\\\\\\\") || gl.getExtension(\\\\\\\"WEBKIT_EXT_texture_filter_anisotropic\\\\\\\");\\n        break;\\n      case \\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\":\\n        extension = gl.getExtension(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\") || gl.getExtension(\\\\\\\"MOZ_WEBGL_compressed_texture_s3tc\\\\\\\") || gl.getExtension(\\\\\\\"WEBKIT_WEBGL_compressed_texture_s3tc\\\\\\\");\\n        break;\\n      case \\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\":\\n        extension = gl.getExtension(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\") || gl.getExtension(\\\\\\\"WEBKIT_WEBGL_compressed_texture_pvrtc\\\\\\\");\\n        break;\\n      default:\\n        extension = gl.getExtension(name);\\n    }\\n    extensions[name] = extension;\\n    return extension;\\n  }\\n  return {\\n    has: function(name) {\\n      return getExtension(name) !== null;\\n    },\\n    init: function(capabilities) {\\n      if (capabilities.isWebGL2) {\\n        getExtension(\\\\\\\"EXT_color_buffer_float\\\\\\\");\\n      } else {\\n        getExtension(\\\\\\\"WEBGL_depth_texture\\\\\\\");\\n        getExtension(\\\\\\\"OES_texture_float\\\\\\\");\\n        getExtension(\\\\\\\"OES_texture_half_float\\\\\\\");\\n        getExtension(\\\\\\\"OES_texture_half_float_linear\\\\\\\");\\n        getExtension(\\\\\\\"OES_standard_derivatives\\\\\\\");\\n        getExtension(\\\\\\\"OES_element_index_uint\\\\\\\");\\n        getExtension(\\\\\\\"OES_vertex_array_object\\\\\\\");\\n        getExtension(\\\\\\\"ANGLE_instanced_arrays\\\\\\\");\\n      }\\n      getExtension(\\\\\\\"OES_texture_float_linear\\\\\\\");\\n      getExtension(\\\\\\\"EXT_color_buffer_half_float\\\\\\\");\\n    },\\n    get: function(name) {\\n      const extension = getExtension(name);\\n      if (extension === null) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: \\\\\\\" + name + \\\\\\\" extension not supported.\\\\\\\");\\n      }\\n      return extension;\\n    }\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLGeometries.js\\nfunction WebGLGeometries(gl, attributes, info, bindingStates) {\\n  const geometries = {};\\n  const wireframeAttributes = new WeakMap();\\n  function onGeometryDispose(event) {\\n    const geometry = event.target;\\n    if (geometry.index !== null) {\\n      attributes.remove(geometry.index);\\n    }\\n    for (const name in geometry.attributes) {\\n      attributes.remove(geometry.attributes[name]);\\n    }\\n    geometry.removeEventListener(\\\\\\\"dispose\\\\\\\", onGeometryDispose);\\n    delete geometries[geometry.id];\\n    const attribute = wireframeAttributes.get(geometry);\\n    if (attribute) {\\n      attributes.remove(attribute);\\n      wireframeAttributes.delete(geometry);\\n    }\\n    bindingStates.releaseStatesOfGeometry(geometry);\\n    if (geometry.isInstancedBufferGeometry === true) {\\n      delete geometry._maxInstanceCount;\\n    }\\n    info.memory.geometries--;\\n  }\\n  function get(object, geometry) {\\n    if (geometries[geometry.id] === true)\\n      return geometry;\\n    geometry.addEventListener(\\\\\\\"dispose\\\\\\\", onGeometryDispose);\\n    geometries[geometry.id] = true;\\n    info.memory.geometries++;\\n    return geometry;\\n  }\\n  function update(geometry) {\\n    const geometryAttributes = geometry.attributes;\\n    for (const name in geometryAttributes) {\\n      attributes.update(geometryAttributes[name], gl.ARRAY_BUFFER);\\n    }\\n    const morphAttributes = geometry.morphAttributes;\\n    for (const name in morphAttributes) {\\n      const array = morphAttributes[name];\\n      for (let i = 0, l = array.length; i < l; i++) {\\n        attributes.update(array[i], gl.ARRAY_BUFFER);\\n      }\\n    }\\n  }\\n  function updateWireframeAttribute(geometry) {\\n    const indices = [];\\n    const geometryIndex = geometry.index;\\n    const geometryPosition = geometry.attributes.position;\\n    let version = 0;\\n    if (geometryIndex !== null) {\\n      const array = geometryIndex.array;\\n      version = geometryIndex.version;\\n      for (let i = 0, l = array.length; i < l; i += 3) {\\n        const a = array[i + 0];\\n        const b = array[i + 1];\\n        const c = array[i + 2];\\n        indices.push(a, b, b, c, c, a);\\n      }\\n    } else {\\n      const array = geometryPosition.array;\\n      version = geometryPosition.version;\\n      for (let i = 0, l = array.length / 3 - 1; i < l; i += 3) {\\n        const a = i + 0;\\n        const b = i + 1;\\n        const c = i + 2;\\n        indices.push(a, b, b, c, c, a);\\n      }\\n    }\\n    const attribute = new (arrayMax(indices) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1);\\n    attribute.version = version;\\n    const previousAttribute = wireframeAttributes.get(geometry);\\n    if (previousAttribute)\\n      attributes.remove(previousAttribute);\\n    wireframeAttributes.set(geometry, attribute);\\n  }\\n  function getWireframeAttribute(geometry) {\\n    const currentAttribute = wireframeAttributes.get(geometry);\\n    if (currentAttribute) {\\n      const geometryIndex = geometry.index;\\n      if (geometryIndex !== null) {\\n        if (currentAttribute.version < geometryIndex.version) {\\n          updateWireframeAttribute(geometry);\\n        }\\n      }\\n    } else {\\n      updateWireframeAttribute(geometry);\\n    }\\n    return wireframeAttributes.get(geometry);\\n  }\\n  return {\\n    get,\\n    update,\\n    getWireframeAttribute\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLIndexedBufferRenderer.js\\nfunction WebGLIndexedBufferRenderer(gl, extensions, info, capabilities) {\\n  const isWebGL2 = capabilities.isWebGL2;\\n  let mode;\\n  function setMode(value) {\\n    mode = value;\\n  }\\n  let type, bytesPerElement;\\n  function setIndex(value) {\\n    type = value.type;\\n    bytesPerElement = value.bytesPerElement;\\n  }\\n  function render(start, count) {\\n    gl.drawElements(mode, count, type, start * bytesPerElement);\\n    info.update(count, mode, 1);\\n  }\\n  function renderInstances(start, count, primcount) {\\n    if (primcount === 0)\\n      return;\\n    let extension, methodName;\\n    if (isWebGL2) {\\n      extension = gl;\\n      methodName = \\\\\\\"drawElementsInstanced\\\\\\\";\\n    } else {\\n      extension = extensions.get(\\\\\\\"ANGLE_instanced_arrays\\\\\\\");\\n      methodName = \\\\\\\"drawElementsInstancedANGLE\\\\\\\";\\n      if (extension === null) {\\n        console.error(\\\\\\\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\\\\\\\");\\n        return;\\n      }\\n    }\\n    extension[methodName](mode, count, type, start * bytesPerElement, primcount);\\n    info.update(count, mode, primcount);\\n  }\\n  this.setMode = setMode;\\n  this.setIndex = setIndex;\\n  this.render = render;\\n  this.renderInstances = renderInstances;\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLInfo.js\\nfunction WebGLInfo(gl) {\\n  const memory = {\\n    geometries: 0,\\n    textures: 0\\n  };\\n  const render = {\\n    frame: 0,\\n    calls: 0,\\n    triangles: 0,\\n    points: 0,\\n    lines: 0\\n  };\\n  function update(count, mode, instanceCount) {\\n    render.calls++;\\n    switch (mode) {\\n      case gl.TRIANGLES:\\n        render.triangles += instanceCount * (count / 3);\\n        break;\\n      case gl.LINES:\\n        render.lines += instanceCount * (count / 2);\\n        break;\\n      case gl.LINE_STRIP:\\n        render.lines += instanceCount * (count - 1);\\n        break;\\n      case gl.LINE_LOOP:\\n        render.lines += instanceCount * count;\\n        break;\\n      case gl.POINTS:\\n        render.points += instanceCount * count;\\n        break;\\n      default:\\n        console.error(\\\\\\\"THREE.WebGLInfo: Unknown draw mode:\\\\\\\", mode);\\n        break;\\n    }\\n  }\\n  function reset() {\\n    render.frame++;\\n    render.calls = 0;\\n    render.triangles = 0;\\n    render.points = 0;\\n    render.lines = 0;\\n  }\\n  return {\\n    memory,\\n    render,\\n    programs: null,\\n    autoReset: true,\\n    reset,\\n    update\\n  };\\n}\\n\\n// ../../../node_modules/three/src/textures/DataTexture2DArray.js\\nvar DataTexture2DArray = class extends Texture {\\n  constructor(data = null, width = 1, height = 1, depth2 = 1) {\\n    super(null);\\n    this.image = {data, width, height, depth: depth2};\\n    this.magFilter = NearestFilter;\\n    this.minFilter = NearestFilter;\\n    this.wrapR = ClampToEdgeWrapping;\\n    this.generateMipmaps = false;\\n    this.flipY = false;\\n    this.unpackAlignment = 1;\\n    this.needsUpdate = true;\\n  }\\n};\\nDataTexture2DArray.prototype.isDataTexture2DArray = true;\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLMorphtargets.js\\nfunction numericalSort(a, b) {\\n  return a[0] - b[0];\\n}\\nfunction absNumericalSort(a, b) {\\n  return Math.abs(b[1]) - Math.abs(a[1]);\\n}\\nfunction denormalize(morph, attribute) {\\n  let denominator = 1;\\n  const array = attribute.isInterleavedBufferAttribute ? attribute.data.array : attribute.array;\\n  if (array instanceof Int8Array)\\n    denominator = 127;\\n  else if (array instanceof Int16Array)\\n    denominator = 32767;\\n  else if (array instanceof Int32Array)\\n    denominator = 2147483647;\\n  else\\n    console.error(\\\\\\\"THREE.WebGLMorphtargets: Unsupported morph attribute data type: \\\\\\\", array);\\n  morph.divideScalar(denominator);\\n}\\nfunction WebGLMorphtargets(gl, capabilities, textures) {\\n  const influencesList = {};\\n  const morphInfluences = new Float32Array(8);\\n  const morphTextures = new WeakMap();\\n  const morph = new Vector3();\\n  const workInfluences = [];\\n  for (let i = 0; i < 8; i++) {\\n    workInfluences[i] = [i, 0];\\n  }\\n  function update(object, geometry, material, program) {\\n    const objectInfluences = object.morphTargetInfluences;\\n    if (capabilities.isWebGL2 === true) {\\n      const numberOfMorphTargets = geometry.morphAttributes.position.length;\\n      let entry = morphTextures.get(geometry);\\n      if (entry === void 0 || entry.count !== numberOfMorphTargets) {\\n        if (entry !== void 0)\\n          entry.texture.dispose();\\n        const hasMorphNormals = geometry.morphAttributes.normal !== void 0;\\n        const morphTargets = geometry.morphAttributes.position;\\n        const morphNormals = geometry.morphAttributes.normal || [];\\n        const numberOfVertices = geometry.attributes.position.count;\\n        const numberOfVertexData = hasMorphNormals === true ? 2 : 1;\\n        let width = numberOfVertices * numberOfVertexData;\\n        let height = 1;\\n        if (width > capabilities.maxTextureSize) {\\n          height = Math.ceil(width / capabilities.maxTextureSize);\\n          width = capabilities.maxTextureSize;\\n        }\\n        const buffer = new Float32Array(width * height * 4 * numberOfMorphTargets);\\n        const texture = new DataTexture2DArray(buffer, width, height, numberOfMorphTargets);\\n        texture.format = RGBAFormat;\\n        texture.type = FloatType;\\n        const vertexDataStride = numberOfVertexData * 4;\\n        for (let i = 0; i < numberOfMorphTargets; i++) {\\n          const morphTarget = morphTargets[i];\\n          const morphNormal = morphNormals[i];\\n          const offset = width * height * 4 * i;\\n          for (let j = 0; j < morphTarget.count; j++) {\\n            morph.fromBufferAttribute(morphTarget, j);\\n            if (morphTarget.normalized === true)\\n              denormalize(morph, morphTarget);\\n            const stride = j * vertexDataStride;\\n            buffer[offset + stride + 0] = morph.x;\\n            buffer[offset + stride + 1] = morph.y;\\n            buffer[offset + stride + 2] = morph.z;\\n            buffer[offset + stride + 3] = 0;\\n            if (hasMorphNormals === true) {\\n              morph.fromBufferAttribute(morphNormal, j);\\n              if (morphNormal.normalized === true)\\n                denormalize(morph, morphNormal);\\n              buffer[offset + stride + 4] = morph.x;\\n              buffer[offset + stride + 5] = morph.y;\\n              buffer[offset + stride + 6] = morph.z;\\n              buffer[offset + stride + 7] = 0;\\n            }\\n          }\\n        }\\n        entry = {\\n          count: numberOfMorphTargets,\\n          texture,\\n          size: new Vector2(width, height)\\n        };\\n        morphTextures.set(geometry, entry);\\n      }\\n      let morphInfluencesSum = 0;\\n      for (let i = 0; i < objectInfluences.length; i++) {\\n        morphInfluencesSum += objectInfluences[i];\\n      }\\n      const morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\\n      program.getUniforms().setValue(gl, \\\\\\\"morphTargetBaseInfluence\\\\\\\", morphBaseInfluence);\\n      program.getUniforms().setValue(gl, \\\\\\\"morphTargetInfluences\\\\\\\", objectInfluences);\\n      program.getUniforms().setValue(gl, \\\\\\\"morphTargetsTexture\\\\\\\", entry.texture, textures);\\n      program.getUniforms().setValue(gl, \\\\\\\"morphTargetsTextureSize\\\\\\\", entry.size);\\n    } else {\\n      const length = objectInfluences === void 0 ? 0 : objectInfluences.length;\\n      let influences = influencesList[geometry.id];\\n      if (influences === void 0 || influences.length !== length) {\\n        influences = [];\\n        for (let i = 0; i < length; i++) {\\n          influences[i] = [i, 0];\\n        }\\n        influencesList[geometry.id] = influences;\\n      }\\n      for (let i = 0; i < length; i++) {\\n        const influence = influences[i];\\n        influence[0] = i;\\n        influence[1] = objectInfluences[i];\\n      }\\n      influences.sort(absNumericalSort);\\n      for (let i = 0; i < 8; i++) {\\n        if (i < length && influences[i][1]) {\\n          workInfluences[i][0] = influences[i][0];\\n          workInfluences[i][1] = influences[i][1];\\n        } else {\\n          workInfluences[i][0] = Number.MAX_SAFE_INTEGER;\\n          workInfluences[i][1] = 0;\\n        }\\n      }\\n      workInfluences.sort(numericalSort);\\n      const morphTargets = geometry.morphAttributes.position;\\n      const morphNormals = geometry.morphAttributes.normal;\\n      let morphInfluencesSum = 0;\\n      for (let i = 0; i < 8; i++) {\\n        const influence = workInfluences[i];\\n        const index = influence[0];\\n        const value = influence[1];\\n        if (index !== Number.MAX_SAFE_INTEGER && value) {\\n          if (morphTargets && geometry.getAttribute(\\\\\\\"morphTarget\\\\\\\" + i) !== morphTargets[index]) {\\n            geometry.setAttribute(\\\\\\\"morphTarget\\\\\\\" + i, morphTargets[index]);\\n          }\\n          if (morphNormals && geometry.getAttribute(\\\\\\\"morphNormal\\\\\\\" + i) !== morphNormals[index]) {\\n            geometry.setAttribute(\\\\\\\"morphNormal\\\\\\\" + i, morphNormals[index]);\\n          }\\n          morphInfluences[i] = value;\\n          morphInfluencesSum += value;\\n        } else {\\n          if (morphTargets && geometry.hasAttribute(\\\\\\\"morphTarget\\\\\\\" + i) === true) {\\n            geometry.deleteAttribute(\\\\\\\"morphTarget\\\\\\\" + i);\\n          }\\n          if (morphNormals && geometry.hasAttribute(\\\\\\\"morphNormal\\\\\\\" + i) === true) {\\n            geometry.deleteAttribute(\\\\\\\"morphNormal\\\\\\\" + i);\\n          }\\n          morphInfluences[i] = 0;\\n        }\\n      }\\n      const morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\\n      program.getUniforms().setValue(gl, \\\\\\\"morphTargetBaseInfluence\\\\\\\", morphBaseInfluence);\\n      program.getUniforms().setValue(gl, \\\\\\\"morphTargetInfluences\\\\\\\", morphInfluences);\\n    }\\n  }\\n  return {\\n    update\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/WebGLMultisampleRenderTarget.js\\nvar WebGLMultisampleRenderTarget = class extends WebGLRenderTarget {\\n  constructor(width, height, options) {\\n    super(width, height, options);\\n    this.samples = 4;\\n  }\\n  copy(source) {\\n    super.copy.call(this, source);\\n    this.samples = source.samples;\\n    return this;\\n  }\\n};\\nWebGLMultisampleRenderTarget.prototype.isWebGLMultisampleRenderTarget = true;\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLObjects.js\\nfunction WebGLObjects(gl, geometries, attributes, info) {\\n  let updateMap = new WeakMap();\\n  function update(object) {\\n    const frame = info.render.frame;\\n    const geometry = object.geometry;\\n    const buffergeometry = geometries.get(object, geometry);\\n    if (updateMap.get(buffergeometry) !== frame) {\\n      geometries.update(buffergeometry);\\n      updateMap.set(buffergeometry, frame);\\n    }\\n    if (object.isInstancedMesh) {\\n      if (object.hasEventListener(\\\\\\\"dispose\\\\\\\", onInstancedMeshDispose) === false) {\\n        object.addEventListener(\\\\\\\"dispose\\\\\\\", onInstancedMeshDispose);\\n      }\\n      attributes.update(object.instanceMatrix, gl.ARRAY_BUFFER);\\n      if (object.instanceColor !== null) {\\n        attributes.update(object.instanceColor, gl.ARRAY_BUFFER);\\n      }\\n    }\\n    return buffergeometry;\\n  }\\n  function dispose() {\\n    updateMap = new WeakMap();\\n  }\\n  function onInstancedMeshDispose(event) {\\n    const instancedMesh = event.target;\\n    instancedMesh.removeEventListener(\\\\\\\"dispose\\\\\\\", onInstancedMeshDispose);\\n    attributes.remove(instancedMesh.instanceMatrix);\\n    if (instancedMesh.instanceColor !== null)\\n      attributes.remove(instancedMesh.instanceColor);\\n  }\\n  return {\\n    update,\\n    dispose\\n  };\\n}\\n\\n// ../../../node_modules/three/src/textures/DataTexture3D.js\\nvar DataTexture3D = class extends Texture {\\n  constructor(data = null, width = 1, height = 1, depth2 = 1) {\\n    super(null);\\n    this.image = {data, width, height, depth: depth2};\\n    this.magFilter = NearestFilter;\\n    this.minFilter = NearestFilter;\\n    this.wrapR = ClampToEdgeWrapping;\\n    this.generateMipmaps = false;\\n    this.flipY = false;\\n    this.unpackAlignment = 1;\\n    this.needsUpdate = true;\\n  }\\n};\\nDataTexture3D.prototype.isDataTexture3D = true;\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLUniforms.js\\nvar emptyTexture = new Texture();\\nvar emptyTexture2dArray = new DataTexture2DArray();\\nvar emptyTexture3d = new DataTexture3D();\\nvar emptyCubeTexture = new CubeTexture();\\nvar arrayCacheF32 = [];\\nvar arrayCacheI32 = [];\\nvar mat4array = new Float32Array(16);\\nvar mat3array = new Float32Array(9);\\nvar mat2array = new Float32Array(4);\\nfunction flatten(array, nBlocks, blockSize) {\\n  const firstElem = array[0];\\n  if (firstElem <= 0 || firstElem > 0)\\n    return array;\\n  const n = nBlocks * blockSize;\\n  let r = arrayCacheF32[n];\\n  if (r === void 0) {\\n    r = new Float32Array(n);\\n    arrayCacheF32[n] = r;\\n  }\\n  if (nBlocks !== 0) {\\n    firstElem.toArray(r, 0);\\n    for (let i = 1, offset = 0; i !== nBlocks; ++i) {\\n      offset += blockSize;\\n      array[i].toArray(r, offset);\\n    }\\n  }\\n  return r;\\n}\\nfunction arraysEqual(a, b) {\\n  if (a.length !== b.length)\\n    return false;\\n  for (let i = 0, l = a.length; i < l; i++) {\\n    if (a[i] !== b[i])\\n      return false;\\n  }\\n  return true;\\n}\\nfunction copyArray(a, b) {\\n  for (let i = 0, l = b.length; i < l; i++) {\\n    a[i] = b[i];\\n  }\\n}\\nfunction allocTexUnits(textures, n) {\\n  let r = arrayCacheI32[n];\\n  if (r === void 0) {\\n    r = new Int32Array(n);\\n    arrayCacheI32[n] = r;\\n  }\\n  for (let i = 0; i !== n; ++i) {\\n    r[i] = textures.allocateTextureUnit();\\n  }\\n  return r;\\n}\\nfunction setValueV1f(gl, v) {\\n  const cache = this.cache;\\n  if (cache[0] === v)\\n    return;\\n  gl.uniform1f(this.addr, v);\\n  cache[0] = v;\\n}\\nfunction setValueV2f(gl, v) {\\n  const cache = this.cache;\\n  if (v.x !== void 0) {\\n    if (cache[0] !== v.x || cache[1] !== v.y) {\\n      gl.uniform2f(this.addr, v.x, v.y);\\n      cache[0] = v.x;\\n      cache[1] = v.y;\\n    }\\n  } else {\\n    if (arraysEqual(cache, v))\\n      return;\\n    gl.uniform2fv(this.addr, v);\\n    copyArray(cache, v);\\n  }\\n}\\nfunction setValueV3f(gl, v) {\\n  const cache = this.cache;\\n  if (v.x !== void 0) {\\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\\n      gl.uniform3f(this.addr, v.x, v.y, v.z);\\n      cache[0] = v.x;\\n      cache[1] = v.y;\\n      cache[2] = v.z;\\n    }\\n  } else if (v.r !== void 0) {\\n    if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\\n      gl.uniform3f(this.addr, v.r, v.g, v.b);\\n      cache[0] = v.r;\\n      cache[1] = v.g;\\n      cache[2] = v.b;\\n    }\\n  } else {\\n    if (arraysEqual(cache, v))\\n      return;\\n    gl.uniform3fv(this.addr, v);\\n    copyArray(cache, v);\\n  }\\n}\\nfunction setValueV4f(gl, v) {\\n  const cache = this.cache;\\n  if (v.x !== void 0) {\\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\\n      gl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\\n      cache[0] = v.x;\\n      cache[1] = v.y;\\n      cache[2] = v.z;\\n      cache[3] = v.w;\\n    }\\n  } else {\\n    if (arraysEqual(cache, v))\\n      return;\\n    gl.uniform4fv(this.addr, v);\\n    copyArray(cache, v);\\n  }\\n}\\nfunction setValueM2(gl, v) {\\n  const cache = this.cache;\\n  const elements = v.elements;\\n  if (elements === void 0) {\\n    if (arraysEqual(cache, v))\\n      return;\\n    gl.uniformMatrix2fv(this.addr, false, v);\\n    copyArray(cache, v);\\n  } else {\\n    if (arraysEqual(cache, elements))\\n      return;\\n    mat2array.set(elements);\\n    gl.uniformMatrix2fv(this.addr, false, mat2array);\\n    copyArray(cache, elements);\\n  }\\n}\\nfunction setValueM3(gl, v) {\\n  const cache = this.cache;\\n  const elements = v.elements;\\n  if (elements === void 0) {\\n    if (arraysEqual(cache, v))\\n      return;\\n    gl.uniformMatrix3fv(this.addr, false, v);\\n    copyArray(cache, v);\\n  } else {\\n    if (arraysEqual(cache, elements))\\n      return;\\n    mat3array.set(elements);\\n    gl.uniformMatrix3fv(this.addr, false, mat3array);\\n    copyArray(cache, elements);\\n  }\\n}\\nfunction setValueM4(gl, v) {\\n  const cache = this.cache;\\n  const elements = v.elements;\\n  if (elements === void 0) {\\n    if (arraysEqual(cache, v))\\n      return;\\n    gl.uniformMatrix4fv(this.addr, false, v);\\n    copyArray(cache, v);\\n  } else {\\n    if (arraysEqual(cache, elements))\\n      return;\\n    mat4array.set(elements);\\n    gl.uniformMatrix4fv(this.addr, false, mat4array);\\n    copyArray(cache, elements);\\n  }\\n}\\nfunction setValueV1i(gl, v) {\\n  const cache = this.cache;\\n  if (cache[0] === v)\\n    return;\\n  gl.uniform1i(this.addr, v);\\n  cache[0] = v;\\n}\\nfunction setValueV2i(gl, v) {\\n  const cache = this.cache;\\n  if (arraysEqual(cache, v))\\n    return;\\n  gl.uniform2iv(this.addr, v);\\n  copyArray(cache, v);\\n}\\nfunction setValueV3i(gl, v) {\\n  const cache = this.cache;\\n  if (arraysEqual(cache, v))\\n    return;\\n  gl.uniform3iv(this.addr, v);\\n  copyArray(cache, v);\\n}\\nfunction setValueV4i(gl, v) {\\n  const cache = this.cache;\\n  if (arraysEqual(cache, v))\\n    return;\\n  gl.uniform4iv(this.addr, v);\\n  copyArray(cache, v);\\n}\\nfunction setValueV1ui(gl, v) {\\n  const cache = this.cache;\\n  if (cache[0] === v)\\n    return;\\n  gl.uniform1ui(this.addr, v);\\n  cache[0] = v;\\n}\\nfunction setValueV2ui(gl, v) {\\n  const cache = this.cache;\\n  if (arraysEqual(cache, v))\\n    return;\\n  gl.uniform2uiv(this.addr, v);\\n  copyArray(cache, v);\\n}\\nfunction setValueV3ui(gl, v) {\\n  const cache = this.cache;\\n  if (arraysEqual(cache, v))\\n    return;\\n  gl.uniform3uiv(this.addr, v);\\n  copyArray(cache, v);\\n}\\nfunction setValueV4ui(gl, v) {\\n  const cache = this.cache;\\n  if (arraysEqual(cache, v))\\n    return;\\n  gl.uniform4uiv(this.addr, v);\\n  copyArray(cache, v);\\n}\\nfunction setValueT1(gl, v, textures) {\\n  const cache = this.cache;\\n  const unit = textures.allocateTextureUnit();\\n  if (cache[0] !== unit) {\\n    gl.uniform1i(this.addr, unit);\\n    cache[0] = unit;\\n  }\\n  textures.safeSetTexture2D(v || emptyTexture, unit);\\n}\\nfunction setValueT3D1(gl, v, textures) {\\n  const cache = this.cache;\\n  const unit = textures.allocateTextureUnit();\\n  if (cache[0] !== unit) {\\n    gl.uniform1i(this.addr, unit);\\n    cache[0] = unit;\\n  }\\n  textures.setTexture3D(v || emptyTexture3d, unit);\\n}\\nfunction setValueT6(gl, v, textures) {\\n  const cache = this.cache;\\n  const unit = textures.allocateTextureUnit();\\n  if (cache[0] !== unit) {\\n    gl.uniform1i(this.addr, unit);\\n    cache[0] = unit;\\n  }\\n  textures.safeSetTextureCube(v || emptyCubeTexture, unit);\\n}\\nfunction setValueT2DArray1(gl, v, textures) {\\n  const cache = this.cache;\\n  const unit = textures.allocateTextureUnit();\\n  if (cache[0] !== unit) {\\n    gl.uniform1i(this.addr, unit);\\n    cache[0] = unit;\\n  }\\n  textures.setTexture2DArray(v || emptyTexture2dArray, unit);\\n}\\nfunction getSingularSetter(type) {\\n  switch (type) {\\n    case 5126:\\n      return setValueV1f;\\n    case 35664:\\n      return setValueV2f;\\n    case 35665:\\n      return setValueV3f;\\n    case 35666:\\n      return setValueV4f;\\n    case 35674:\\n      return setValueM2;\\n    case 35675:\\n      return setValueM3;\\n    case 35676:\\n      return setValueM4;\\n    case 5124:\\n    case 35670:\\n      return setValueV1i;\\n    case 35667:\\n    case 35671:\\n      return setValueV2i;\\n    case 35668:\\n    case 35672:\\n      return setValueV3i;\\n    case 35669:\\n    case 35673:\\n      return setValueV4i;\\n    case 5125:\\n      return setValueV1ui;\\n    case 36294:\\n      return setValueV2ui;\\n    case 36295:\\n      return setValueV3ui;\\n    case 36296:\\n      return setValueV4ui;\\n    case 35678:\\n    case 36198:\\n    case 36298:\\n    case 36306:\\n    case 35682:\\n      return setValueT1;\\n    case 35679:\\n    case 36299:\\n    case 36307:\\n      return setValueT3D1;\\n    case 35680:\\n    case 36300:\\n    case 36308:\\n    case 36293:\\n      return setValueT6;\\n    case 36289:\\n    case 36303:\\n    case 36311:\\n    case 36292:\\n      return setValueT2DArray1;\\n  }\\n}\\nfunction setValueV1fArray(gl, v) {\\n  gl.uniform1fv(this.addr, v);\\n}\\nfunction setValueV2fArray(gl, v) {\\n  const data = flatten(v, this.size, 2);\\n  gl.uniform2fv(this.addr, data);\\n}\\nfunction setValueV3fArray(gl, v) {\\n  const data = flatten(v, this.size, 3);\\n  gl.uniform3fv(this.addr, data);\\n}\\nfunction setValueV4fArray(gl, v) {\\n  const data = flatten(v, this.size, 4);\\n  gl.uniform4fv(this.addr, data);\\n}\\nfunction setValueM2Array(gl, v) {\\n  const data = flatten(v, this.size, 4);\\n  gl.uniformMatrix2fv(this.addr, false, data);\\n}\\nfunction setValueM3Array(gl, v) {\\n  const data = flatten(v, this.size, 9);\\n  gl.uniformMatrix3fv(this.addr, false, data);\\n}\\nfunction setValueM4Array(gl, v) {\\n  const data = flatten(v, this.size, 16);\\n  gl.uniformMatrix4fv(this.addr, false, data);\\n}\\nfunction setValueV1iArray(gl, v) {\\n  gl.uniform1iv(this.addr, v);\\n}\\nfunction setValueV2iArray(gl, v) {\\n  gl.uniform2iv(this.addr, v);\\n}\\nfunction setValueV3iArray(gl, v) {\\n  gl.uniform3iv(this.addr, v);\\n}\\nfunction setValueV4iArray(gl, v) {\\n  gl.uniform4iv(this.addr, v);\\n}\\nfunction setValueV1uiArray(gl, v) {\\n  gl.uniform1uiv(this.addr, v);\\n}\\nfunction setValueV2uiArray(gl, v) {\\n  gl.uniform2uiv(this.addr, v);\\n}\\nfunction setValueV3uiArray(gl, v) {\\n  gl.uniform3uiv(this.addr, v);\\n}\\nfunction setValueV4uiArray(gl, v) {\\n  gl.uniform4uiv(this.addr, v);\\n}\\nfunction setValueT1Array(gl, v, textures) {\\n  const n = v.length;\\n  const units = allocTexUnits(textures, n);\\n  gl.uniform1iv(this.addr, units);\\n  for (let i = 0; i !== n; ++i) {\\n    textures.safeSetTexture2D(v[i] || emptyTexture, units[i]);\\n  }\\n}\\nfunction setValueT6Array(gl, v, textures) {\\n  const n = v.length;\\n  const units = allocTexUnits(textures, n);\\n  gl.uniform1iv(this.addr, units);\\n  for (let i = 0; i !== n; ++i) {\\n    textures.safeSetTextureCube(v[i] || emptyCubeTexture, units[i]);\\n  }\\n}\\nfunction getPureArraySetter(type) {\\n  switch (type) {\\n    case 5126:\\n      return setValueV1fArray;\\n    case 35664:\\n      return setValueV2fArray;\\n    case 35665:\\n      return setValueV3fArray;\\n    case 35666:\\n      return setValueV4fArray;\\n    case 35674:\\n      return setValueM2Array;\\n    case 35675:\\n      return setValueM3Array;\\n    case 35676:\\n      return setValueM4Array;\\n    case 5124:\\n    case 35670:\\n      return setValueV1iArray;\\n    case 35667:\\n    case 35671:\\n      return setValueV2iArray;\\n    case 35668:\\n    case 35672:\\n      return setValueV3iArray;\\n    case 35669:\\n    case 35673:\\n      return setValueV4iArray;\\n    case 5125:\\n      return setValueV1uiArray;\\n    case 36294:\\n      return setValueV2uiArray;\\n    case 36295:\\n      return setValueV3uiArray;\\n    case 36296:\\n      return setValueV4uiArray;\\n    case 35678:\\n    case 36198:\\n    case 36298:\\n    case 36306:\\n    case 35682:\\n      return setValueT1Array;\\n    case 35680:\\n    case 36300:\\n    case 36308:\\n    case 36293:\\n      return setValueT6Array;\\n  }\\n}\\nfunction SingleUniform(id, activeInfo, addr) {\\n  this.id = id;\\n  this.addr = addr;\\n  this.cache = [];\\n  this.setValue = getSingularSetter(activeInfo.type);\\n}\\nfunction PureArrayUniform(id, activeInfo, addr) {\\n  this.id = id;\\n  this.addr = addr;\\n  this.cache = [];\\n  this.size = activeInfo.size;\\n  this.setValue = getPureArraySetter(activeInfo.type);\\n}\\nPureArrayUniform.prototype.updateCache = function(data) {\\n  const cache = this.cache;\\n  if (data instanceof Float32Array && cache.length !== data.length) {\\n    this.cache = new Float32Array(data.length);\\n  }\\n  copyArray(cache, data);\\n};\\nfunction StructuredUniform(id) {\\n  this.id = id;\\n  this.seq = [];\\n  this.map = {};\\n}\\nStructuredUniform.prototype.setValue = function(gl, value, textures) {\\n  const seq = this.seq;\\n  for (let i = 0, n = seq.length; i !== n; ++i) {\\n    const u = seq[i];\\n    u.setValue(gl, value[u.id], textures);\\n  }\\n};\\nvar RePathPart = /(\\\\w+)(\\\\])?(\\\\[|\\\\.)?/g;\\nfunction addUniform(container, uniformObject) {\\n  container.seq.push(uniformObject);\\n  container.map[uniformObject.id] = uniformObject;\\n}\\nfunction parseUniform(activeInfo, addr, container) {\\n  const path = activeInfo.name, pathLength = path.length;\\n  RePathPart.lastIndex = 0;\\n  while (true) {\\n    const match = RePathPart.exec(path), matchEnd = RePathPart.lastIndex;\\n    let id = match[1];\\n    const idIsIndex = match[2] === \\\\\\\"]\\\\\\\", subscript = match[3];\\n    if (idIsIndex)\\n      id = id | 0;\\n    if (subscript === void 0 || subscript === \\\\\\\"[\\\\\\\" && matchEnd + 2 === pathLength) {\\n      addUniform(container, subscript === void 0 ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr));\\n      break;\\n    } else {\\n      const map = container.map;\\n      let next = map[id];\\n      if (next === void 0) {\\n        next = new StructuredUniform(id);\\n        addUniform(container, next);\\n      }\\n      container = next;\\n    }\\n  }\\n}\\nfunction WebGLUniforms(gl, program) {\\n  this.seq = [];\\n  this.map = {};\\n  const n = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\\n  for (let i = 0; i < n; ++i) {\\n    const info = gl.getActiveUniform(program, i), addr = gl.getUniformLocation(program, info.name);\\n    parseUniform(info, addr, this);\\n  }\\n}\\nWebGLUniforms.prototype.setValue = function(gl, name, value, textures) {\\n  const u = this.map[name];\\n  if (u !== void 0)\\n    u.setValue(gl, value, textures);\\n};\\nWebGLUniforms.prototype.setOptional = function(gl, object, name) {\\n  const v = object[name];\\n  if (v !== void 0)\\n    this.setValue(gl, name, v);\\n};\\nWebGLUniforms.upload = function(gl, seq, values, textures) {\\n  for (let i = 0, n = seq.length; i !== n; ++i) {\\n    const u = seq[i], v = values[u.id];\\n    if (v.needsUpdate !== false) {\\n      u.setValue(gl, v.value, textures);\\n    }\\n  }\\n};\\nWebGLUniforms.seqWithValue = function(seq, values) {\\n  const r = [];\\n  for (let i = 0, n = seq.length; i !== n; ++i) {\\n    const u = seq[i];\\n    if (u.id in values)\\n      r.push(u);\\n  }\\n  return r;\\n};\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLShader.js\\nfunction WebGLShader(gl, type, string) {\\n  const shader = gl.createShader(type);\\n  gl.shaderSource(shader, string);\\n  gl.compileShader(shader);\\n  return shader;\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLProgram.js\\nvar programIdCount = 0;\\nfunction addLineNumbers(string) {\\n  const lines = string.split(\\\\\\\"\\\\n\\\\\\\");\\n  for (let i = 0; i < lines.length; i++) {\\n    lines[i] = i + 1 + \\\\\\\": \\\\\\\" + lines[i];\\n  }\\n  return lines.join(\\\\\\\"\\\\n\\\\\\\");\\n}\\nfunction getEncodingComponents(encoding) {\\n  switch (encoding) {\\n    case LinearEncoding:\\n      return [\\\\\\\"Linear\\\\\\\", \\\\\\\"( value )\\\\\\\"];\\n    case sRGBEncoding:\\n      return [\\\\\\\"sRGB\\\\\\\", \\\\\\\"( value )\\\\\\\"];\\n    case RGBEEncoding:\\n      return [\\\\\\\"RGBE\\\\\\\", \\\\\\\"( value )\\\\\\\"];\\n    case RGBM7Encoding:\\n      return [\\\\\\\"RGBM\\\\\\\", \\\\\\\"( value, 7.0 )\\\\\\\"];\\n    case RGBM16Encoding:\\n      return [\\\\\\\"RGBM\\\\\\\", \\\\\\\"( value, 16.0 )\\\\\\\"];\\n    case RGBDEncoding:\\n      return [\\\\\\\"RGBD\\\\\\\", \\\\\\\"( value, 256.0 )\\\\\\\"];\\n    case GammaEncoding:\\n      return [\\\\\\\"Gamma\\\\\\\", \\\\\\\"( value, float( GAMMA_FACTOR ) )\\\\\\\"];\\n    case LogLuvEncoding:\\n      return [\\\\\\\"LogLuv\\\\\\\", \\\\\\\"( value )\\\\\\\"];\\n    default:\\n      console.warn(\\\\\\\"THREE.WebGLProgram: Unsupported encoding:\\\\\\\", encoding);\\n      return [\\\\\\\"Linear\\\\\\\", \\\\\\\"( value )\\\\\\\"];\\n  }\\n}\\nfunction getShaderErrors(gl, shader, type) {\\n  const status = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\\n  const errors = gl.getShaderInfoLog(shader).trim();\\n  if (status && errors === \\\\\\\"\\\\\\\")\\n    return \\\\\\\"\\\\\\\";\\n  return type.toUpperCase() + \\\\\\\"\\\\n\\\\n\\\\\\\" + errors + \\\\\\\"\\\\n\\\\n\\\\\\\" + addLineNumbers(gl.getShaderSource(shader));\\n}\\nfunction getTexelDecodingFunction(functionName, encoding) {\\n  const components = getEncodingComponents(encoding);\\n  return \\\\\\\"vec4 \\\\\\\" + functionName + \\\\\\\"( vec4 value ) { return \\\\\\\" + components[0] + \\\\\\\"ToLinear\\\\\\\" + components[1] + \\\\\\\"; }\\\\\\\";\\n}\\nfunction getTexelEncodingFunction(functionName, encoding) {\\n  const components = getEncodingComponents(encoding);\\n  return \\\\\\\"vec4 \\\\\\\" + functionName + \\\\\\\"( vec4 value ) { return LinearTo\\\\\\\" + components[0] + components[1] + \\\\\\\"; }\\\\\\\";\\n}\\nfunction getToneMappingFunction(functionName, toneMapping) {\\n  let toneMappingName;\\n  switch (toneMapping) {\\n    case LinearToneMapping:\\n      toneMappingName = \\\\\\\"Linear\\\\\\\";\\n      break;\\n    case ReinhardToneMapping:\\n      toneMappingName = \\\\\\\"Reinhard\\\\\\\";\\n      break;\\n    case CineonToneMapping:\\n      toneMappingName = \\\\\\\"OptimizedCineon\\\\\\\";\\n      break;\\n    case ACESFilmicToneMapping:\\n      toneMappingName = \\\\\\\"ACESFilmic\\\\\\\";\\n      break;\\n    case CustomToneMapping:\\n      toneMappingName = \\\\\\\"Custom\\\\\\\";\\n      break;\\n    default:\\n      console.warn(\\\\\\\"THREE.WebGLProgram: Unsupported toneMapping:\\\\\\\", toneMapping);\\n      toneMappingName = \\\\\\\"Linear\\\\\\\";\\n  }\\n  return \\\\\\\"vec3 \\\\\\\" + functionName + \\\\\\\"( vec3 color ) { return \\\\\\\" + toneMappingName + \\\\\\\"ToneMapping( color ); }\\\\\\\";\\n}\\nfunction generateExtensions(parameters) {\\n  const chunks = [\\n    parameters.extensionDerivatives || parameters.envMapCubeUV || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === \\\\\\\"physical\\\\\\\" ? \\\\\\\"#extension GL_OES_standard_derivatives : enable\\\\\\\" : \\\\\\\"\\\\\\\",\\n    (parameters.extensionFragDepth || parameters.logarithmicDepthBuffer) && parameters.rendererExtensionFragDepth ? \\\\\\\"#extension GL_EXT_frag_depth : enable\\\\\\\" : \\\\\\\"\\\\\\\",\\n    parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ? \\\\\\\"#extension GL_EXT_draw_buffers : require\\\\\\\" : \\\\\\\"\\\\\\\",\\n    (parameters.extensionShaderTextureLOD || parameters.envMap || parameters.transmission) && parameters.rendererExtensionShaderTextureLod ? \\\\\\\"#extension GL_EXT_shader_texture_lod : enable\\\\\\\" : \\\\\\\"\\\\\\\"\\n  ];\\n  return chunks.filter(filterEmptyLine).join(\\\\\\\"\\\\n\\\\\\\");\\n}\\nfunction generateDefines(defines) {\\n  const chunks = [];\\n  for (const name in defines) {\\n    const value = defines[name];\\n    if (value === false)\\n      continue;\\n    chunks.push(\\\\\\\"#define \\\\\\\" + name + \\\\\\\" \\\\\\\" + value);\\n  }\\n  return chunks.join(\\\\\\\"\\\\n\\\\\\\");\\n}\\nfunction fetchAttributeLocations(gl, program) {\\n  const attributes = {};\\n  const n = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\\n  for (let i = 0; i < n; i++) {\\n    const info = gl.getActiveAttrib(program, i);\\n    const name = info.name;\\n    let locationSize = 1;\\n    if (info.type === gl.FLOAT_MAT2)\\n      locationSize = 2;\\n    if (info.type === gl.FLOAT_MAT3)\\n      locationSize = 3;\\n    if (info.type === gl.FLOAT_MAT4)\\n      locationSize = 4;\\n    attributes[name] = {\\n      type: info.type,\\n      location: gl.getAttribLocation(program, name),\\n      locationSize\\n    };\\n  }\\n  return attributes;\\n}\\nfunction filterEmptyLine(string) {\\n  return string !== \\\\\\\"\\\\\\\";\\n}\\nfunction replaceLightNums(string, parameters) {\\n  return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\\n}\\nfunction replaceClippingPlaneNums(string, parameters) {\\n  return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\\n}\\nvar includePattern = /^[ \\\\t]*#include +<([\\\\w\\\\d./]+)>/gm;\\nfunction resolveIncludes(string) {\\n  return string.replace(includePattern, includeReplacer);\\n}\\nfunction includeReplacer(match, include) {\\n  const string = ShaderChunk[include];\\n  if (string === void 0) {\\n    throw new Error(\\\\\\\"Can not resolve #include <\\\\\\\" + include + \\\\\\\">\\\\\\\");\\n  }\\n  return resolveIncludes(string);\\n}\\nvar deprecatedUnrollLoopPattern = /#pragma unroll_loop[\\\\s]+?for \\\\( int i \\\\= (\\\\d+)\\\\; i < (\\\\d+)\\\\; i \\\\+\\\\+ \\\\) \\\\{([\\\\s\\\\S]+?)(?=\\\\})\\\\}/g;\\nvar unrollLoopPattern = /#pragma unroll_loop_start\\\\s+for\\\\s*\\\\(\\\\s*int\\\\s+i\\\\s*=\\\\s*(\\\\d+)\\\\s*;\\\\s*i\\\\s*<\\\\s*(\\\\d+)\\\\s*;\\\\s*i\\\\s*\\\\+\\\\+\\\\s*\\\\)\\\\s*{([\\\\s\\\\S]+?)}\\\\s+#pragma unroll_loop_end/g;\\nfunction unrollLoops(string) {\\n  return string.replace(unrollLoopPattern, loopReplacer).replace(deprecatedUnrollLoopPattern, deprecatedLoopReplacer);\\n}\\nfunction deprecatedLoopReplacer(match, start, end, snippet) {\\n  console.warn(\\\\\\\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\\\\\\\");\\n  return loopReplacer(match, start, end, snippet);\\n}\\nfunction loopReplacer(match, start, end, snippet) {\\n  let string = \\\\\\\"\\\\\\\";\\n  for (let i = parseInt(start); i < parseInt(end); i++) {\\n    string += snippet.replace(/\\\\[\\\\s*i\\\\s*\\\\]/g, \\\\\\\"[ \\\\\\\" + i + \\\\\\\" ]\\\\\\\").replace(/UNROLLED_LOOP_INDEX/g, i);\\n  }\\n  return string;\\n}\\nfunction generatePrecision(parameters) {\\n  let precisionstring = \\\\\\\"precision \\\\\\\" + parameters.precision + \\\\\\\" float;\\\\nprecision \\\\\\\" + parameters.precision + \\\\\\\" int;\\\\\\\";\\n  if (parameters.precision === \\\\\\\"highp\\\\\\\") {\\n    precisionstring += \\\\\\\"\\\\n#define HIGH_PRECISION\\\\\\\";\\n  } else if (parameters.precision === \\\\\\\"mediump\\\\\\\") {\\n    precisionstring += \\\\\\\"\\\\n#define MEDIUM_PRECISION\\\\\\\";\\n  } else if (parameters.precision === \\\\\\\"lowp\\\\\\\") {\\n    precisionstring += \\\\\\\"\\\\n#define LOW_PRECISION\\\\\\\";\\n  }\\n  return precisionstring;\\n}\\nfunction generateShadowMapTypeDefine(parameters) {\\n  let shadowMapTypeDefine = \\\\\\\"SHADOWMAP_TYPE_BASIC\\\\\\\";\\n  if (parameters.shadowMapType === PCFShadowMap) {\\n    shadowMapTypeDefine = \\\\\\\"SHADOWMAP_TYPE_PCF\\\\\\\";\\n  } else if (parameters.shadowMapType === PCFSoftShadowMap) {\\n    shadowMapTypeDefine = \\\\\\\"SHADOWMAP_TYPE_PCF_SOFT\\\\\\\";\\n  } else if (parameters.shadowMapType === VSMShadowMap) {\\n    shadowMapTypeDefine = \\\\\\\"SHADOWMAP_TYPE_VSM\\\\\\\";\\n  }\\n  return shadowMapTypeDefine;\\n}\\nfunction generateEnvMapTypeDefine(parameters) {\\n  let envMapTypeDefine = \\\\\\\"ENVMAP_TYPE_CUBE\\\\\\\";\\n  if (parameters.envMap) {\\n    switch (parameters.envMapMode) {\\n      case CubeReflectionMapping:\\n      case CubeRefractionMapping:\\n        envMapTypeDefine = \\\\\\\"ENVMAP_TYPE_CUBE\\\\\\\";\\n        break;\\n      case CubeUVReflectionMapping:\\n      case CubeUVRefractionMapping:\\n        envMapTypeDefine = \\\\\\\"ENVMAP_TYPE_CUBE_UV\\\\\\\";\\n        break;\\n    }\\n  }\\n  return envMapTypeDefine;\\n}\\nfunction generateEnvMapModeDefine(parameters) {\\n  let envMapModeDefine = \\\\\\\"ENVMAP_MODE_REFLECTION\\\\\\\";\\n  if (parameters.envMap) {\\n    switch (parameters.envMapMode) {\\n      case CubeRefractionMapping:\\n      case CubeUVRefractionMapping:\\n        envMapModeDefine = \\\\\\\"ENVMAP_MODE_REFRACTION\\\\\\\";\\n        break;\\n    }\\n  }\\n  return envMapModeDefine;\\n}\\nfunction generateEnvMapBlendingDefine(parameters) {\\n  let envMapBlendingDefine = \\\\\\\"ENVMAP_BLENDING_NONE\\\\\\\";\\n  if (parameters.envMap) {\\n    switch (parameters.combine) {\\n      case MultiplyOperation:\\n        envMapBlendingDefine = \\\\\\\"ENVMAP_BLENDING_MULTIPLY\\\\\\\";\\n        break;\\n      case MixOperation:\\n        envMapBlendingDefine = \\\\\\\"ENVMAP_BLENDING_MIX\\\\\\\";\\n        break;\\n      case AddOperation:\\n        envMapBlendingDefine = \\\\\\\"ENVMAP_BLENDING_ADD\\\\\\\";\\n        break;\\n    }\\n  }\\n  return envMapBlendingDefine;\\n}\\nfunction WebGLProgram(renderer, cacheKey, parameters, bindingStates) {\\n  const gl = renderer.getContext();\\n  const defines = parameters.defines;\\n  let vertexShader = parameters.vertexShader;\\n  let fragmentShader = parameters.fragmentShader;\\n  const shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\\n  const envMapTypeDefine = generateEnvMapTypeDefine(parameters);\\n  const envMapModeDefine = generateEnvMapModeDefine(parameters);\\n  const envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\\n  const gammaFactorDefine = renderer.gammaFactor > 0 ? renderer.gammaFactor : 1;\\n  const customExtensions = parameters.isWebGL2 ? \\\\\\\"\\\\\\\" : generateExtensions(parameters);\\n  const customDefines = generateDefines(defines);\\n  const program = gl.createProgram();\\n  let prefixVertex, prefixFragment;\\n  let versionString = parameters.glslVersion ? \\\\\\\"#version \\\\\\\" + parameters.glslVersion + \\\\\\\"\\\\n\\\\\\\" : \\\\\\\"\\\\\\\";\\n  if (parameters.isRawShaderMaterial) {\\n    prefixVertex = [\\n      customDefines\\n    ].filter(filterEmptyLine).join(\\\\\\\"\\\\n\\\\\\\");\\n    if (prefixVertex.length > 0) {\\n      prefixVertex += \\\\\\\"\\\\n\\\\\\\";\\n    }\\n    prefixFragment = [\\n      customExtensions,\\n      customDefines\\n    ].filter(filterEmptyLine).join(\\\\\\\"\\\\n\\\\\\\");\\n    if (prefixFragment.length > 0) {\\n      prefixFragment += \\\\\\\"\\\\n\\\\\\\";\\n    }\\n  } else {\\n    prefixVertex = [\\n      generatePrecision(parameters),\\n      \\\\\\\"#define SHADER_NAME \\\\\\\" + parameters.shaderName,\\n      customDefines,\\n      parameters.instancing ? \\\\\\\"#define USE_INSTANCING\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.instancingColor ? \\\\\\\"#define USE_INSTANCING_COLOR\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.supportsVertexTextures ? \\\\\\\"#define VERTEX_TEXTURES\\\\\\\" : \\\\\\\"\\\\\\\",\\n      \\\\\\\"#define GAMMA_FACTOR \\\\\\\" + gammaFactorDefine,\\n      \\\\\\\"#define MAX_BONES \\\\\\\" + parameters.maxBones,\\n      parameters.useFog && parameters.fog ? \\\\\\\"#define USE_FOG\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.useFog && parameters.fogExp2 ? \\\\\\\"#define FOG_EXP2\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.map ? \\\\\\\"#define USE_MAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? \\\\\\\"#define USE_ENVMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? \\\\\\\"#define \\\\\\\" + envMapModeDefine : \\\\\\\"\\\\\\\",\\n      parameters.lightMap ? \\\\\\\"#define USE_LIGHTMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.aoMap ? \\\\\\\"#define USE_AOMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.emissiveMap ? \\\\\\\"#define USE_EMISSIVEMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.bumpMap ? \\\\\\\"#define USE_BUMPMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.normalMap ? \\\\\\\"#define USE_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.normalMap && parameters.objectSpaceNormalMap ? \\\\\\\"#define OBJECTSPACE_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.normalMap && parameters.tangentSpaceNormalMap ? \\\\\\\"#define TANGENTSPACE_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoatMap ? \\\\\\\"#define USE_CLEARCOATMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoatRoughnessMap ? \\\\\\\"#define USE_CLEARCOAT_ROUGHNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoatNormalMap ? \\\\\\\"#define USE_CLEARCOAT_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.displacementMap && parameters.supportsVertexTextures ? \\\\\\\"#define USE_DISPLACEMENTMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.specularMap ? \\\\\\\"#define USE_SPECULARMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.specularIntensityMap ? \\\\\\\"#define USE_SPECULARINTENSITYMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.specularTintMap ? \\\\\\\"#define USE_SPECULARTINTMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.roughnessMap ? \\\\\\\"#define USE_ROUGHNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.metalnessMap ? \\\\\\\"#define USE_METALNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.alphaMap ? \\\\\\\"#define USE_ALPHAMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.transmission ? \\\\\\\"#define USE_TRANSMISSION\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.transmissionMap ? \\\\\\\"#define USE_TRANSMISSIONMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.thicknessMap ? \\\\\\\"#define USE_THICKNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexTangents ? \\\\\\\"#define USE_TANGENT\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexColors ? \\\\\\\"#define USE_COLOR\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexAlphas ? \\\\\\\"#define USE_COLOR_ALPHA\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexUvs ? \\\\\\\"#define USE_UV\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.uvsVertexOnly ? \\\\\\\"#define UVS_VERTEX_ONLY\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.flatShading ? \\\\\\\"#define FLAT_SHADED\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.skinning ? \\\\\\\"#define USE_SKINNING\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.useVertexTexture ? \\\\\\\"#define BONE_TEXTURE\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.morphTargets ? \\\\\\\"#define USE_MORPHTARGETS\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.morphNormals && parameters.flatShading === false ? \\\\\\\"#define USE_MORPHNORMALS\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.morphTargets && parameters.isWebGL2 ? \\\\\\\"#define MORPHTARGETS_TEXTURE\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.morphTargets && parameters.isWebGL2 ? \\\\\\\"#define MORPHTARGETS_COUNT \\\\\\\" + parameters.morphTargetsCount : \\\\\\\"\\\\\\\",\\n      parameters.doubleSided ? \\\\\\\"#define DOUBLE_SIDED\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.flipSided ? \\\\\\\"#define FLIP_SIDED\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.shadowMapEnabled ? \\\\\\\"#define USE_SHADOWMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.shadowMapEnabled ? \\\\\\\"#define \\\\\\\" + shadowMapTypeDefine : \\\\\\\"\\\\\\\",\\n      parameters.sizeAttenuation ? \\\\\\\"#define USE_SIZEATTENUATION\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.logarithmicDepthBuffer ? \\\\\\\"#define USE_LOGDEPTHBUF\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? \\\\\\\"#define USE_LOGDEPTHBUF_EXT\\\\\\\" : \\\\\\\"\\\\\\\",\\n      \\\\\\\"uniform mat4 modelMatrix;\\\\\\\",\\n      \\\\\\\"uniform mat4 modelViewMatrix;\\\\\\\",\\n      \\\\\\\"uniform mat4 projectionMatrix;\\\\\\\",\\n      \\\\\\\"uniform mat4 viewMatrix;\\\\\\\",\\n      \\\\\\\"uniform mat3 normalMatrix;\\\\\\\",\\n      \\\\\\\"uniform vec3 cameraPosition;\\\\\\\",\\n      \\\\\\\"uniform bool isOrthographic;\\\\\\\",\\n      \\\\\\\"#ifdef USE_INSTANCING\\\\\\\",\\n      \\\\\\\"\\tattribute mat4 instanceMatrix;\\\\\\\",\\n      \\\\\\\"#endif\\\\\\\",\\n      \\\\\\\"#ifdef USE_INSTANCING_COLOR\\\\\\\",\\n      \\\\\\\"\\tattribute vec3 instanceColor;\\\\\\\",\\n      \\\\\\\"#endif\\\\\\\",\\n      \\\\\\\"attribute vec3 position;\\\\\\\",\\n      \\\\\\\"attribute vec3 normal;\\\\\\\",\\n      \\\\\\\"attribute vec2 uv;\\\\\\\",\\n      \\\\\\\"#ifdef USE_TANGENT\\\\\\\",\\n      \\\\\\\"\\tattribute vec4 tangent;\\\\\\\",\\n      \\\\\\\"#endif\\\\\\\",\\n      \\\\\\\"#if defined( USE_COLOR_ALPHA )\\\\\\\",\\n      \\\\\\\"\\tattribute vec4 color;\\\\\\\",\\n      \\\\\\\"#elif defined( USE_COLOR )\\\\\\\",\\n      \\\\\\\"\\tattribute vec3 color;\\\\\\\",\\n      \\\\\\\"#endif\\\\\\\",\\n      \\\\\\\"#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )\\\\\\\",\\n      \\\\\\\"\\tattribute vec3 morphTarget0;\\\\\\\",\\n      \\\\\\\"\\tattribute vec3 morphTarget1;\\\\\\\",\\n      \\\\\\\"\\tattribute vec3 morphTarget2;\\\\\\\",\\n      \\\\\\\"\\tattribute vec3 morphTarget3;\\\\\\\",\\n      \\\\\\\"\\t#ifdef USE_MORPHNORMALS\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphNormal0;\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphNormal1;\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphNormal2;\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphNormal3;\\\\\\\",\\n      \\\\\\\"\\t#else\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphTarget4;\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphTarget5;\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphTarget6;\\\\\\\",\\n      \\\\\\\"\\t\\tattribute vec3 morphTarget7;\\\\\\\",\\n      \\\\\\\"\\t#endif\\\\\\\",\\n      \\\\\\\"#endif\\\\\\\",\\n      \\\\\\\"#ifdef USE_SKINNING\\\\\\\",\\n      \\\\\\\"\\tattribute vec4 skinIndex;\\\\\\\",\\n      \\\\\\\"\\tattribute vec4 skinWeight;\\\\\\\",\\n      \\\\\\\"#endif\\\\\\\",\\n      \\\\\\\"\\\\n\\\\\\\"\\n    ].filter(filterEmptyLine).join(\\\\\\\"\\\\n\\\\\\\");\\n    prefixFragment = [\\n      customExtensions,\\n      generatePrecision(parameters),\\n      \\\\\\\"#define SHADER_NAME \\\\\\\" + parameters.shaderName,\\n      customDefines,\\n      \\\\\\\"#define GAMMA_FACTOR \\\\\\\" + gammaFactorDefine,\\n      parameters.useFog && parameters.fog ? \\\\\\\"#define USE_FOG\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.useFog && parameters.fogExp2 ? \\\\\\\"#define FOG_EXP2\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.map ? \\\\\\\"#define USE_MAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.matcap ? \\\\\\\"#define USE_MATCAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? \\\\\\\"#define USE_ENVMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? \\\\\\\"#define \\\\\\\" + envMapTypeDefine : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? \\\\\\\"#define \\\\\\\" + envMapModeDefine : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? \\\\\\\"#define \\\\\\\" + envMapBlendingDefine : \\\\\\\"\\\\\\\",\\n      parameters.lightMap ? \\\\\\\"#define USE_LIGHTMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.aoMap ? \\\\\\\"#define USE_AOMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.emissiveMap ? \\\\\\\"#define USE_EMISSIVEMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.bumpMap ? \\\\\\\"#define USE_BUMPMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.normalMap ? \\\\\\\"#define USE_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.normalMap && parameters.objectSpaceNormalMap ? \\\\\\\"#define OBJECTSPACE_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.normalMap && parameters.tangentSpaceNormalMap ? \\\\\\\"#define TANGENTSPACE_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoat ? \\\\\\\"#define USE_CLEARCOAT\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoatMap ? \\\\\\\"#define USE_CLEARCOATMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoatRoughnessMap ? \\\\\\\"#define USE_CLEARCOAT_ROUGHNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.clearcoatNormalMap ? \\\\\\\"#define USE_CLEARCOAT_NORMALMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.specularMap ? \\\\\\\"#define USE_SPECULARMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.specularIntensityMap ? \\\\\\\"#define USE_SPECULARINTENSITYMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.specularTintMap ? \\\\\\\"#define USE_SPECULARTINTMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.roughnessMap ? \\\\\\\"#define USE_ROUGHNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.metalnessMap ? \\\\\\\"#define USE_METALNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.alphaMap ? \\\\\\\"#define USE_ALPHAMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.alphaTest ? \\\\\\\"#define USE_ALPHATEST\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.sheen ? \\\\\\\"#define USE_SHEEN\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.transmission ? \\\\\\\"#define USE_TRANSMISSION\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.transmissionMap ? \\\\\\\"#define USE_TRANSMISSIONMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.thicknessMap ? \\\\\\\"#define USE_THICKNESSMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexTangents ? \\\\\\\"#define USE_TANGENT\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexColors || parameters.instancingColor ? \\\\\\\"#define USE_COLOR\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexAlphas ? \\\\\\\"#define USE_COLOR_ALPHA\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.vertexUvs ? \\\\\\\"#define USE_UV\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.uvsVertexOnly ? \\\\\\\"#define UVS_VERTEX_ONLY\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.gradientMap ? \\\\\\\"#define USE_GRADIENTMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.flatShading ? \\\\\\\"#define FLAT_SHADED\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.doubleSided ? \\\\\\\"#define DOUBLE_SIDED\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.flipSided ? \\\\\\\"#define FLIP_SIDED\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.shadowMapEnabled ? \\\\\\\"#define USE_SHADOWMAP\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.shadowMapEnabled ? \\\\\\\"#define \\\\\\\" + shadowMapTypeDefine : \\\\\\\"\\\\\\\",\\n      parameters.premultipliedAlpha ? \\\\\\\"#define PREMULTIPLIED_ALPHA\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.physicallyCorrectLights ? \\\\\\\"#define PHYSICALLY_CORRECT_LIGHTS\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.logarithmicDepthBuffer ? \\\\\\\"#define USE_LOGDEPTHBUF\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? \\\\\\\"#define USE_LOGDEPTHBUF_EXT\\\\\\\" : \\\\\\\"\\\\\\\",\\n      (parameters.extensionShaderTextureLOD || parameters.envMap) && parameters.rendererExtensionShaderTextureLod ? \\\\\\\"#define TEXTURE_LOD_EXT\\\\\\\" : \\\\\\\"\\\\\\\",\\n      \\\\\\\"uniform mat4 viewMatrix;\\\\\\\",\\n      \\\\\\\"uniform vec3 cameraPosition;\\\\\\\",\\n      \\\\\\\"uniform bool isOrthographic;\\\\\\\",\\n      parameters.toneMapping !== NoToneMapping ? \\\\\\\"#define TONE_MAPPING\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.toneMapping !== NoToneMapping ? ShaderChunk[\\\\\\\"tonemapping_pars_fragment\\\\\\\"] : \\\\\\\"\\\\\\\",\\n      parameters.toneMapping !== NoToneMapping ? getToneMappingFunction(\\\\\\\"toneMapping\\\\\\\", parameters.toneMapping) : \\\\\\\"\\\\\\\",\\n      parameters.dithering ? \\\\\\\"#define DITHERING\\\\\\\" : \\\\\\\"\\\\\\\",\\n      parameters.format === RGBFormat ? \\\\\\\"#define OPAQUE\\\\\\\" : \\\\\\\"\\\\\\\",\\n      ShaderChunk[\\\\\\\"encodings_pars_fragment\\\\\\\"],\\n      parameters.map ? getTexelDecodingFunction(\\\\\\\"mapTexelToLinear\\\\\\\", parameters.mapEncoding) : \\\\\\\"\\\\\\\",\\n      parameters.matcap ? getTexelDecodingFunction(\\\\\\\"matcapTexelToLinear\\\\\\\", parameters.matcapEncoding) : \\\\\\\"\\\\\\\",\\n      parameters.envMap ? getTexelDecodingFunction(\\\\\\\"envMapTexelToLinear\\\\\\\", parameters.envMapEncoding) : \\\\\\\"\\\\\\\",\\n      parameters.emissiveMap ? getTexelDecodingFunction(\\\\\\\"emissiveMapTexelToLinear\\\\\\\", parameters.emissiveMapEncoding) : \\\\\\\"\\\\\\\",\\n      parameters.specularTintMap ? getTexelDecodingFunction(\\\\\\\"specularTintMapTexelToLinear\\\\\\\", parameters.specularTintMapEncoding) : \\\\\\\"\\\\\\\",\\n      parameters.lightMap ? getTexelDecodingFunction(\\\\\\\"lightMapTexelToLinear\\\\\\\", parameters.lightMapEncoding) : \\\\\\\"\\\\\\\",\\n      getTexelEncodingFunction(\\\\\\\"linearToOutputTexel\\\\\\\", parameters.outputEncoding),\\n      parameters.depthPacking ? \\\\\\\"#define DEPTH_PACKING \\\\\\\" + parameters.depthPacking : \\\\\\\"\\\\\\\",\\n      \\\\\\\"\\\\n\\\\\\\"\\n    ].filter(filterEmptyLine).join(\\\\\\\"\\\\n\\\\\\\");\\n  }\\n  vertexShader = resolveIncludes(vertexShader);\\n  vertexShader = replaceLightNums(vertexShader, parameters);\\n  vertexShader = replaceClippingPlaneNums(vertexShader, parameters);\\n  fragmentShader = resolveIncludes(fragmentShader);\\n  fragmentShader = replaceLightNums(fragmentShader, parameters);\\n  fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\\n  vertexShader = unrollLoops(vertexShader);\\n  fragmentShader = unrollLoops(fragmentShader);\\n  if (parameters.isWebGL2 && parameters.isRawShaderMaterial !== true) {\\n    versionString = \\\\\\\"#version 300 es\\\\n\\\\\\\";\\n    prefixVertex = [\\n      \\\\\\\"precision mediump sampler2DArray;\\\\\\\",\\n      \\\\\\\"#define attribute in\\\\\\\",\\n      \\\\\\\"#define varying out\\\\\\\",\\n      \\\\\\\"#define texture2D texture\\\\\\\"\\n    ].join(\\\\\\\"\\\\n\\\\\\\") + \\\\\\\"\\\\n\\\\\\\" + prefixVertex;\\n    prefixFragment = [\\n      \\\\\\\"#define varying in\\\\\\\",\\n      parameters.glslVersion === GLSL3 ? \\\\\\\"\\\\\\\" : \\\\\\\"out highp vec4 pc_fragColor;\\\\\\\",\\n      parameters.glslVersion === GLSL3 ? \\\\\\\"\\\\\\\" : \\\\\\\"#define gl_FragColor pc_fragColor\\\\\\\",\\n      \\\\\\\"#define gl_FragDepthEXT gl_FragDepth\\\\\\\",\\n      \\\\\\\"#define texture2D texture\\\\\\\",\\n      \\\\\\\"#define textureCube texture\\\\\\\",\\n      \\\\\\\"#define texture2DProj textureProj\\\\\\\",\\n      \\\\\\\"#define texture2DLodEXT textureLod\\\\\\\",\\n      \\\\\\\"#define texture2DProjLodEXT textureProjLod\\\\\\\",\\n      \\\\\\\"#define textureCubeLodEXT textureLod\\\\\\\",\\n      \\\\\\\"#define texture2DGradEXT textureGrad\\\\\\\",\\n      \\\\\\\"#define texture2DProjGradEXT textureProjGrad\\\\\\\",\\n      \\\\\\\"#define textureCubeGradEXT textureGrad\\\\\\\"\\n    ].join(\\\\\\\"\\\\n\\\\\\\") + \\\\\\\"\\\\n\\\\\\\" + prefixFragment;\\n  }\\n  const vertexGlsl = versionString + prefixVertex + vertexShader;\\n  const fragmentGlsl = versionString + prefixFragment + fragmentShader;\\n  const glVertexShader = WebGLShader(gl, gl.VERTEX_SHADER, vertexGlsl);\\n  const glFragmentShader = WebGLShader(gl, gl.FRAGMENT_SHADER, fragmentGlsl);\\n  gl.attachShader(program, glVertexShader);\\n  gl.attachShader(program, glFragmentShader);\\n  if (parameters.index0AttributeName !== void 0) {\\n    gl.bindAttribLocation(program, 0, parameters.index0AttributeName);\\n  } else if (parameters.morphTargets === true) {\\n    gl.bindAttribLocation(program, 0, \\\\\\\"position\\\\\\\");\\n  }\\n  gl.linkProgram(program);\\n  if (renderer.debug.checkShaderErrors) {\\n    const programLog = gl.getProgramInfoLog(program).trim();\\n    const vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\\n    const fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\\n    let runnable = true;\\n    let haveDiagnostics = true;\\n    if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) {\\n      runnable = false;\\n      const vertexErrors = getShaderErrors(gl, glVertexShader, \\\\\\\"vertex\\\\\\\");\\n      const fragmentErrors = getShaderErrors(gl, glFragmentShader, \\\\\\\"fragment\\\\\\\");\\n      console.error(\\\\\\\"THREE.WebGLProgram: Shader Error \\\\\\\" + gl.getError() + \\\\\\\" - VALIDATE_STATUS \\\\\\\" + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + \\\\\\\"\\\\n\\\\nProgram Info Log: \\\\\\\" + programLog + \\\\\\\"\\\\n\\\\\\\" + vertexErrors + \\\\\\\"\\\\n\\\\\\\" + fragmentErrors);\\n    } else if (programLog !== \\\\\\\"\\\\\\\") {\\n      console.warn(\\\\\\\"THREE.WebGLProgram: Program Info Log:\\\\\\\", programLog);\\n    } else if (vertexLog === \\\\\\\"\\\\\\\" || fragmentLog === \\\\\\\"\\\\\\\") {\\n      haveDiagnostics = false;\\n    }\\n    if (haveDiagnostics) {\\n      this.diagnostics = {\\n        runnable,\\n        programLog,\\n        vertexShader: {\\n          log: vertexLog,\\n          prefix: prefixVertex\\n        },\\n        fragmentShader: {\\n          log: fragmentLog,\\n          prefix: prefixFragment\\n        }\\n      };\\n    }\\n  }\\n  gl.deleteShader(glVertexShader);\\n  gl.deleteShader(glFragmentShader);\\n  let cachedUniforms;\\n  this.getUniforms = function() {\\n    if (cachedUniforms === void 0) {\\n      cachedUniforms = new WebGLUniforms(gl, program);\\n    }\\n    return cachedUniforms;\\n  };\\n  let cachedAttributes;\\n  this.getAttributes = function() {\\n    if (cachedAttributes === void 0) {\\n      cachedAttributes = fetchAttributeLocations(gl, program);\\n    }\\n    return cachedAttributes;\\n  };\\n  this.destroy = function() {\\n    bindingStates.releaseStatesOfProgram(this);\\n    gl.deleteProgram(program);\\n    this.program = void 0;\\n  };\\n  this.name = parameters.shaderName;\\n  this.id = programIdCount++;\\n  this.cacheKey = cacheKey;\\n  this.usedTimes = 1;\\n  this.program = program;\\n  this.vertexShader = glVertexShader;\\n  this.fragmentShader = glFragmentShader;\\n  return this;\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLPrograms.js\\nfunction WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping) {\\n  const programs = [];\\n  const isWebGL2 = capabilities.isWebGL2;\\n  const logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\\n  const floatVertexTextures = capabilities.floatVertexTextures;\\n  const maxVertexUniforms = capabilities.maxVertexUniforms;\\n  const vertexTextures = capabilities.vertexTextures;\\n  let precision = capabilities.precision;\\n  const shaderIDs = {\\n    MeshDepthMaterial: \\\\\\\"depth\\\\\\\",\\n    MeshDistanceMaterial: \\\\\\\"distanceRGBA\\\\\\\",\\n    MeshNormalMaterial: \\\\\\\"normal\\\\\\\",\\n    MeshBasicMaterial: \\\\\\\"basic\\\\\\\",\\n    MeshLambertMaterial: \\\\\\\"lambert\\\\\\\",\\n    MeshPhongMaterial: \\\\\\\"phong\\\\\\\",\\n    MeshToonMaterial: \\\\\\\"toon\\\\\\\",\\n    MeshStandardMaterial: \\\\\\\"physical\\\\\\\",\\n    MeshPhysicalMaterial: \\\\\\\"physical\\\\\\\",\\n    MeshMatcapMaterial: \\\\\\\"matcap\\\\\\\",\\n    LineBasicMaterial: \\\\\\\"basic\\\\\\\",\\n    LineDashedMaterial: \\\\\\\"dashed\\\\\\\",\\n    PointsMaterial: \\\\\\\"points\\\\\\\",\\n    ShadowMaterial: \\\\\\\"shadow\\\\\\\",\\n    SpriteMaterial: \\\\\\\"sprite\\\\\\\"\\n  };\\n  const parameterNames = [\\n    \\\\\\\"precision\\\\\\\",\\n    \\\\\\\"isWebGL2\\\\\\\",\\n    \\\\\\\"supportsVertexTextures\\\\\\\",\\n    \\\\\\\"outputEncoding\\\\\\\",\\n    \\\\\\\"instancing\\\\\\\",\\n    \\\\\\\"instancingColor\\\\\\\",\\n    \\\\\\\"map\\\\\\\",\\n    \\\\\\\"mapEncoding\\\\\\\",\\n    \\\\\\\"matcap\\\\\\\",\\n    \\\\\\\"matcapEncoding\\\\\\\",\\n    \\\\\\\"envMap\\\\\\\",\\n    \\\\\\\"envMapMode\\\\\\\",\\n    \\\\\\\"envMapEncoding\\\\\\\",\\n    \\\\\\\"envMapCubeUV\\\\\\\",\\n    \\\\\\\"lightMap\\\\\\\",\\n    \\\\\\\"lightMapEncoding\\\\\\\",\\n    \\\\\\\"aoMap\\\\\\\",\\n    \\\\\\\"emissiveMap\\\\\\\",\\n    \\\\\\\"emissiveMapEncoding\\\\\\\",\\n    \\\\\\\"bumpMap\\\\\\\",\\n    \\\\\\\"normalMap\\\\\\\",\\n    \\\\\\\"objectSpaceNormalMap\\\\\\\",\\n    \\\\\\\"tangentSpaceNormalMap\\\\\\\",\\n    \\\\\\\"clearcoat\\\\\\\",\\n    \\\\\\\"clearcoatMap\\\\\\\",\\n    \\\\\\\"clearcoatRoughnessMap\\\\\\\",\\n    \\\\\\\"clearcoatNormalMap\\\\\\\",\\n    \\\\\\\"displacementMap\\\\\\\",\\n    \\\\\\\"specularMap\\\\\\\",\\n    \\\\\\\"specularIntensityMap\\\\\\\",\\n    \\\\\\\"specularTintMap\\\\\\\",\\n    \\\\\\\"specularTintMapEncoding\\\\\\\",\\n    \\\\\\\"roughnessMap\\\\\\\",\\n    \\\\\\\"metalnessMap\\\\\\\",\\n    \\\\\\\"gradientMap\\\\\\\",\\n    \\\\\\\"alphaMap\\\\\\\",\\n    \\\\\\\"alphaTest\\\\\\\",\\n    \\\\\\\"combine\\\\\\\",\\n    \\\\\\\"vertexColors\\\\\\\",\\n    \\\\\\\"vertexAlphas\\\\\\\",\\n    \\\\\\\"vertexTangents\\\\\\\",\\n    \\\\\\\"vertexUvs\\\\\\\",\\n    \\\\\\\"uvsVertexOnly\\\\\\\",\\n    \\\\\\\"fog\\\\\\\",\\n    \\\\\\\"useFog\\\\\\\",\\n    \\\\\\\"fogExp2\\\\\\\",\\n    \\\\\\\"flatShading\\\\\\\",\\n    \\\\\\\"sizeAttenuation\\\\\\\",\\n    \\\\\\\"logarithmicDepthBuffer\\\\\\\",\\n    \\\\\\\"skinning\\\\\\\",\\n    \\\\\\\"maxBones\\\\\\\",\\n    \\\\\\\"useVertexTexture\\\\\\\",\\n    \\\\\\\"morphTargets\\\\\\\",\\n    \\\\\\\"morphNormals\\\\\\\",\\n    \\\\\\\"morphTargetsCount\\\\\\\",\\n    \\\\\\\"premultipliedAlpha\\\\\\\",\\n    \\\\\\\"numDirLights\\\\\\\",\\n    \\\\\\\"numPointLights\\\\\\\",\\n    \\\\\\\"numSpotLights\\\\\\\",\\n    \\\\\\\"numHemiLights\\\\\\\",\\n    \\\\\\\"numRectAreaLights\\\\\\\",\\n    \\\\\\\"numDirLightShadows\\\\\\\",\\n    \\\\\\\"numPointLightShadows\\\\\\\",\\n    \\\\\\\"numSpotLightShadows\\\\\\\",\\n    \\\\\\\"shadowMapEnabled\\\\\\\",\\n    \\\\\\\"shadowMapType\\\\\\\",\\n    \\\\\\\"toneMapping\\\\\\\",\\n    \\\\\\\"physicallyCorrectLights\\\\\\\",\\n    \\\\\\\"doubleSided\\\\\\\",\\n    \\\\\\\"flipSided\\\\\\\",\\n    \\\\\\\"numClippingPlanes\\\\\\\",\\n    \\\\\\\"numClipIntersection\\\\\\\",\\n    \\\\\\\"depthPacking\\\\\\\",\\n    \\\\\\\"dithering\\\\\\\",\\n    \\\\\\\"format\\\\\\\",\\n    \\\\\\\"sheen\\\\\\\",\\n    \\\\\\\"transmission\\\\\\\",\\n    \\\\\\\"transmissionMap\\\\\\\",\\n    \\\\\\\"thicknessMap\\\\\\\"\\n  ];\\n  function getMaxBones(object) {\\n    const skeleton = object.skeleton;\\n    const bones = skeleton.bones;\\n    if (floatVertexTextures) {\\n      return 1024;\\n    } else {\\n      const nVertexUniforms = maxVertexUniforms;\\n      const nVertexMatrices = Math.floor((nVertexUniforms - 20) / 4);\\n      const maxBones = Math.min(nVertexMatrices, bones.length);\\n      if (maxBones < bones.length) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: Skeleton has \\\\\\\" + bones.length + \\\\\\\" bones. This GPU supports \\\\\\\" + maxBones + \\\\\\\".\\\\\\\");\\n        return 0;\\n      }\\n      return maxBones;\\n    }\\n  }\\n  function getTextureEncodingFromMap(map) {\\n    let encoding;\\n    if (map && map.isTexture) {\\n      encoding = map.encoding;\\n    } else if (map && map.isWebGLRenderTarget) {\\n      console.warn(\\\\\\\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\\\\\\\");\\n      encoding = map.texture.encoding;\\n    } else {\\n      encoding = LinearEncoding;\\n    }\\n    if (isWebGL2 && map && map.isTexture && map.format === RGBAFormat && map.type === UnsignedByteType && map.encoding === sRGBEncoding) {\\n      encoding = LinearEncoding;\\n    }\\n    return encoding;\\n  }\\n  function getParameters(material, lights, shadows, scene, object) {\\n    const fog = scene.fog;\\n    const environment = material.isMeshStandardMaterial ? scene.environment : null;\\n    const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\\n    const shaderID = shaderIDs[material.type];\\n    const maxBones = object.isSkinnedMesh ? getMaxBones(object) : 0;\\n    if (material.precision !== null) {\\n      precision = capabilities.getMaxPrecision(material.precision);\\n      if (precision !== material.precision) {\\n        console.warn(\\\\\\\"THREE.WebGLProgram.getParameters:\\\\\\\", material.precision, \\\\\\\"not supported, using\\\\\\\", precision, \\\\\\\"instead.\\\\\\\");\\n      }\\n    }\\n    let vertexShader, fragmentShader;\\n    if (shaderID) {\\n      const shader = ShaderLib[shaderID];\\n      vertexShader = shader.vertexShader;\\n      fragmentShader = shader.fragmentShader;\\n    } else {\\n      vertexShader = material.vertexShader;\\n      fragmentShader = material.fragmentShader;\\n    }\\n    const currentRenderTarget = renderer.getRenderTarget();\\n    const useAlphaTest = material.alphaTest > 0;\\n    const useClearcoat = material.clearcoat > 0;\\n    const parameters = {\\n      isWebGL2,\\n      shaderID,\\n      shaderName: material.type,\\n      vertexShader,\\n      fragmentShader,\\n      defines: material.defines,\\n      isRawShaderMaterial: material.isRawShaderMaterial === true,\\n      glslVersion: material.glslVersion,\\n      precision,\\n      instancing: object.isInstancedMesh === true,\\n      instancingColor: object.isInstancedMesh === true && object.instanceColor !== null,\\n      supportsVertexTextures: vertexTextures,\\n      outputEncoding: currentRenderTarget !== null ? getTextureEncodingFromMap(currentRenderTarget.texture) : renderer.outputEncoding,\\n      map: !!material.map,\\n      mapEncoding: getTextureEncodingFromMap(material.map),\\n      matcap: !!material.matcap,\\n      matcapEncoding: getTextureEncodingFromMap(material.matcap),\\n      envMap: !!envMap,\\n      envMapMode: envMap && envMap.mapping,\\n      envMapEncoding: getTextureEncodingFromMap(envMap),\\n      envMapCubeUV: !!envMap && (envMap.mapping === CubeUVReflectionMapping || envMap.mapping === CubeUVRefractionMapping),\\n      lightMap: !!material.lightMap,\\n      lightMapEncoding: getTextureEncodingFromMap(material.lightMap),\\n      aoMap: !!material.aoMap,\\n      emissiveMap: !!material.emissiveMap,\\n      emissiveMapEncoding: getTextureEncodingFromMap(material.emissiveMap),\\n      bumpMap: !!material.bumpMap,\\n      normalMap: !!material.normalMap,\\n      objectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap,\\n      tangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap,\\n      clearcoat: useClearcoat,\\n      clearcoatMap: useClearcoat && !!material.clearcoatMap,\\n      clearcoatRoughnessMap: useClearcoat && !!material.clearcoatRoughnessMap,\\n      clearcoatNormalMap: useClearcoat && !!material.clearcoatNormalMap,\\n      displacementMap: !!material.displacementMap,\\n      roughnessMap: !!material.roughnessMap,\\n      metalnessMap: !!material.metalnessMap,\\n      specularMap: !!material.specularMap,\\n      specularIntensityMap: !!material.specularIntensityMap,\\n      specularTintMap: !!material.specularTintMap,\\n      specularTintMapEncoding: getTextureEncodingFromMap(material.specularTintMap),\\n      alphaMap: !!material.alphaMap,\\n      alphaTest: useAlphaTest,\\n      gradientMap: !!material.gradientMap,\\n      sheen: material.sheen > 0,\\n      transmission: material.transmission > 0,\\n      transmissionMap: !!material.transmissionMap,\\n      thicknessMap: !!material.thicknessMap,\\n      combine: material.combine,\\n      vertexTangents: !!material.normalMap && !!object.geometry && !!object.geometry.attributes.tangent,\\n      vertexColors: material.vertexColors,\\n      vertexAlphas: material.vertexColors === true && !!object.geometry && !!object.geometry.attributes.color && object.geometry.attributes.color.itemSize === 4,\\n      vertexUvs: !!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatMap || !!material.clearcoatRoughnessMap || !!material.clearcoatNormalMap || !!material.displacementMap || !!material.transmissionMap || !!material.thicknessMap || !!material.specularIntensityMap || !!material.specularTintMap,\\n      uvsVertexOnly: !(!!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatNormalMap || material.transmission > 0 || !!material.transmissionMap || !!material.thicknessMap || !!material.specularIntensityMap || !!material.specularTintMap) && !!material.displacementMap,\\n      fog: !!fog,\\n      useFog: material.fog,\\n      fogExp2: fog && fog.isFogExp2,\\n      flatShading: !!material.flatShading,\\n      sizeAttenuation: material.sizeAttenuation,\\n      logarithmicDepthBuffer,\\n      skinning: object.isSkinnedMesh === true && maxBones > 0,\\n      maxBones,\\n      useVertexTexture: floatVertexTextures,\\n      morphTargets: !!object.geometry && !!object.geometry.morphAttributes.position,\\n      morphNormals: !!object.geometry && !!object.geometry.morphAttributes.normal,\\n      morphTargetsCount: !!object.geometry && !!object.geometry.morphAttributes.position ? object.geometry.morphAttributes.position.length : 0,\\n      numDirLights: lights.directional.length,\\n      numPointLights: lights.point.length,\\n      numSpotLights: lights.spot.length,\\n      numRectAreaLights: lights.rectArea.length,\\n      numHemiLights: lights.hemi.length,\\n      numDirLightShadows: lights.directionalShadowMap.length,\\n      numPointLightShadows: lights.pointShadowMap.length,\\n      numSpotLightShadows: lights.spotShadowMap.length,\\n      numClippingPlanes: clipping.numPlanes,\\n      numClipIntersection: clipping.numIntersection,\\n      format: material.format,\\n      dithering: material.dithering,\\n      shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\\n      shadowMapType: renderer.shadowMap.type,\\n      toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,\\n      physicallyCorrectLights: renderer.physicallyCorrectLights,\\n      premultipliedAlpha: material.premultipliedAlpha,\\n      doubleSided: material.side === DoubleSide,\\n      flipSided: material.side === BackSide,\\n      depthPacking: material.depthPacking !== void 0 ? material.depthPacking : false,\\n      index0AttributeName: material.index0AttributeName,\\n      extensionDerivatives: material.extensions && material.extensions.derivatives,\\n      extensionFragDepth: material.extensions && material.extensions.fragDepth,\\n      extensionDrawBuffers: material.extensions && material.extensions.drawBuffers,\\n      extensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,\\n      rendererExtensionFragDepth: isWebGL2 || extensions.has(\\\\\\\"EXT_frag_depth\\\\\\\"),\\n      rendererExtensionDrawBuffers: isWebGL2 || extensions.has(\\\\\\\"WEBGL_draw_buffers\\\\\\\"),\\n      rendererExtensionShaderTextureLod: isWebGL2 || extensions.has(\\\\\\\"EXT_shader_texture_lod\\\\\\\"),\\n      customProgramCacheKey: material.customProgramCacheKey()\\n    };\\n    return parameters;\\n  }\\n  function getProgramCacheKey(parameters) {\\n    const array = [];\\n    if (parameters.shaderID) {\\n      array.push(parameters.shaderID);\\n    } else {\\n      array.push(parameters.fragmentShader);\\n      array.push(parameters.vertexShader);\\n    }\\n    if (parameters.defines !== void 0) {\\n      for (const name in parameters.defines) {\\n        array.push(name);\\n        array.push(parameters.defines[name]);\\n      }\\n    }\\n    if (parameters.isRawShaderMaterial === false) {\\n      for (let i = 0; i < parameterNames.length; i++) {\\n        array.push(parameters[parameterNames[i]]);\\n      }\\n      array.push(renderer.outputEncoding);\\n      array.push(renderer.gammaFactor);\\n    }\\n    array.push(parameters.customProgramCacheKey);\\n    return array.join();\\n  }\\n  function getUniforms(material) {\\n    const shaderID = shaderIDs[material.type];\\n    let uniforms;\\n    if (shaderID) {\\n      const shader = ShaderLib[shaderID];\\n      uniforms = UniformsUtils.clone(shader.uniforms);\\n    } else {\\n      uniforms = material.uniforms;\\n    }\\n    return uniforms;\\n  }\\n  function acquireProgram(parameters, cacheKey) {\\n    let program;\\n    for (let p = 0, pl = programs.length; p < pl; p++) {\\n      const preexistingProgram = programs[p];\\n      if (preexistingProgram.cacheKey === cacheKey) {\\n        program = preexistingProgram;\\n        ++program.usedTimes;\\n        break;\\n      }\\n    }\\n    if (program === void 0) {\\n      program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);\\n      programs.push(program);\\n    }\\n    return program;\\n  }\\n  function releaseProgram(program) {\\n    if (--program.usedTimes === 0) {\\n      const i = programs.indexOf(program);\\n      programs[i] = programs[programs.length - 1];\\n      programs.pop();\\n      program.destroy();\\n    }\\n  }\\n  return {\\n    getParameters,\\n    getProgramCacheKey,\\n    getUniforms,\\n    acquireProgram,\\n    releaseProgram,\\n    programs\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLProperties.js\\nfunction WebGLProperties() {\\n  let properties = new WeakMap();\\n  function get(object) {\\n    let map = properties.get(object);\\n    if (map === void 0) {\\n      map = {};\\n      properties.set(object, map);\\n    }\\n    return map;\\n  }\\n  function remove(object) {\\n    properties.delete(object);\\n  }\\n  function update(object, key, value) {\\n    properties.get(object)[key] = value;\\n  }\\n  function dispose() {\\n    properties = new WeakMap();\\n  }\\n  return {\\n    get,\\n    remove,\\n    update,\\n    dispose\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLRenderLists.js\\nfunction painterSortStable(a, b) {\\n  if (a.groupOrder !== b.groupOrder) {\\n    return a.groupOrder - b.groupOrder;\\n  } else if (a.renderOrder !== b.renderOrder) {\\n    return a.renderOrder - b.renderOrder;\\n  } else if (a.program !== b.program) {\\n    return a.program.id - b.program.id;\\n  } else if (a.material.id !== b.material.id) {\\n    return a.material.id - b.material.id;\\n  } else if (a.z !== b.z) {\\n    return a.z - b.z;\\n  } else {\\n    return a.id - b.id;\\n  }\\n}\\nfunction reversePainterSortStable(a, b) {\\n  if (a.groupOrder !== b.groupOrder) {\\n    return a.groupOrder - b.groupOrder;\\n  } else if (a.renderOrder !== b.renderOrder) {\\n    return a.renderOrder - b.renderOrder;\\n  } else if (a.z !== b.z) {\\n    return b.z - a.z;\\n  } else {\\n    return a.id - b.id;\\n  }\\n}\\nfunction WebGLRenderList(properties) {\\n  const renderItems = [];\\n  let renderItemsIndex = 0;\\n  const opaque = [];\\n  const transmissive = [];\\n  const transparent = [];\\n  const defaultProgram = {id: -1};\\n  function init() {\\n    renderItemsIndex = 0;\\n    opaque.length = 0;\\n    transmissive.length = 0;\\n    transparent.length = 0;\\n  }\\n  function getNextRenderItem(object, geometry, material, groupOrder, z, group) {\\n    let renderItem = renderItems[renderItemsIndex];\\n    const materialProperties = properties.get(material);\\n    if (renderItem === void 0) {\\n      renderItem = {\\n        id: object.id,\\n        object,\\n        geometry,\\n        material,\\n        program: materialProperties.program || defaultProgram,\\n        groupOrder,\\n        renderOrder: object.renderOrder,\\n        z,\\n        group\\n      };\\n      renderItems[renderItemsIndex] = renderItem;\\n    } else {\\n      renderItem.id = object.id;\\n      renderItem.object = object;\\n      renderItem.geometry = geometry;\\n      renderItem.material = material;\\n      renderItem.program = materialProperties.program || defaultProgram;\\n      renderItem.groupOrder = groupOrder;\\n      renderItem.renderOrder = object.renderOrder;\\n      renderItem.z = z;\\n      renderItem.group = group;\\n    }\\n    renderItemsIndex++;\\n    return renderItem;\\n  }\\n  function push(object, geometry, material, groupOrder, z, group) {\\n    const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\\n    if (material.transmission > 0) {\\n      transmissive.push(renderItem);\\n    } else if (material.transparent === true) {\\n      transparent.push(renderItem);\\n    } else {\\n      opaque.push(renderItem);\\n    }\\n  }\\n  function unshift(object, geometry, material, groupOrder, z, group) {\\n    const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\\n    if (material.transmission > 0) {\\n      transmissive.unshift(renderItem);\\n    } else if (material.transparent === true) {\\n      transparent.unshift(renderItem);\\n    } else {\\n      opaque.unshift(renderItem);\\n    }\\n  }\\n  function sort(customOpaqueSort, customTransparentSort) {\\n    if (opaque.length > 1)\\n      opaque.sort(customOpaqueSort || painterSortStable);\\n    if (transmissive.length > 1)\\n      transmissive.sort(customTransparentSort || reversePainterSortStable);\\n    if (transparent.length > 1)\\n      transparent.sort(customTransparentSort || reversePainterSortStable);\\n  }\\n  function finish() {\\n    for (let i = renderItemsIndex, il = renderItems.length; i < il; i++) {\\n      const renderItem = renderItems[i];\\n      if (renderItem.id === null)\\n        break;\\n      renderItem.id = null;\\n      renderItem.object = null;\\n      renderItem.geometry = null;\\n      renderItem.material = null;\\n      renderItem.program = null;\\n      renderItem.group = null;\\n    }\\n  }\\n  return {\\n    opaque,\\n    transmissive,\\n    transparent,\\n    init,\\n    push,\\n    unshift,\\n    finish,\\n    sort\\n  };\\n}\\nfunction WebGLRenderLists(properties) {\\n  let lists = new WeakMap();\\n  function get(scene, renderCallDepth) {\\n    let list;\\n    if (lists.has(scene) === false) {\\n      list = new WebGLRenderList(properties);\\n      lists.set(scene, [list]);\\n    } else {\\n      if (renderCallDepth >= lists.get(scene).length) {\\n        list = new WebGLRenderList(properties);\\n        lists.get(scene).push(list);\\n      } else {\\n        list = lists.get(scene)[renderCallDepth];\\n      }\\n    }\\n    return list;\\n  }\\n  function dispose() {\\n    lists = new WeakMap();\\n  }\\n  return {\\n    get,\\n    dispose\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLLights.js\\nfunction UniformsCache() {\\n  const lights = {};\\n  return {\\n    get: function(light) {\\n      if (lights[light.id] !== void 0) {\\n        return lights[light.id];\\n      }\\n      let uniforms;\\n      switch (light.type) {\\n        case \\\\\\\"DirectionalLight\\\\\\\":\\n          uniforms = {\\n            direction: new Vector3(),\\n            color: new Color()\\n          };\\n          break;\\n        case \\\\\\\"SpotLight\\\\\\\":\\n          uniforms = {\\n            position: new Vector3(),\\n            direction: new Vector3(),\\n            color: new Color(),\\n            distance: 0,\\n            coneCos: 0,\\n            penumbraCos: 0,\\n            decay: 0\\n          };\\n          break;\\n        case \\\\\\\"PointLight\\\\\\\":\\n          uniforms = {\\n            position: new Vector3(),\\n            color: new Color(),\\n            distance: 0,\\n            decay: 0\\n          };\\n          break;\\n        case \\\\\\\"HemisphereLight\\\\\\\":\\n          uniforms = {\\n            direction: new Vector3(),\\n            skyColor: new Color(),\\n            groundColor: new Color()\\n          };\\n          break;\\n        case \\\\\\\"RectAreaLight\\\\\\\":\\n          uniforms = {\\n            color: new Color(),\\n            position: new Vector3(),\\n            halfWidth: new Vector3(),\\n            halfHeight: new Vector3()\\n          };\\n          break;\\n      }\\n      lights[light.id] = uniforms;\\n      return uniforms;\\n    }\\n  };\\n}\\nfunction ShadowUniformsCache() {\\n  const lights = {};\\n  return {\\n    get: function(light) {\\n      if (lights[light.id] !== void 0) {\\n        return lights[light.id];\\n      }\\n      let uniforms;\\n      switch (light.type) {\\n        case \\\\\\\"DirectionalLight\\\\\\\":\\n          uniforms = {\\n            shadowBias: 0,\\n            shadowNormalBias: 0,\\n            shadowRadius: 1,\\n            shadowMapSize: new Vector2()\\n          };\\n          break;\\n        case \\\\\\\"SpotLight\\\\\\\":\\n          uniforms = {\\n            shadowBias: 0,\\n            shadowNormalBias: 0,\\n            shadowRadius: 1,\\n            shadowMapSize: new Vector2()\\n          };\\n          break;\\n        case \\\\\\\"PointLight\\\\\\\":\\n          uniforms = {\\n            shadowBias: 0,\\n            shadowNormalBias: 0,\\n            shadowRadius: 1,\\n            shadowMapSize: new Vector2(),\\n            shadowCameraNear: 1,\\n            shadowCameraFar: 1e3\\n          };\\n          break;\\n      }\\n      lights[light.id] = uniforms;\\n      return uniforms;\\n    }\\n  };\\n}\\nvar nextVersion = 0;\\nfunction shadowCastingLightsFirst(lightA, lightB) {\\n  return (lightB.castShadow ? 1 : 0) - (lightA.castShadow ? 1 : 0);\\n}\\nfunction WebGLLights(extensions, capabilities) {\\n  const cache = new UniformsCache();\\n  const shadowCache = ShadowUniformsCache();\\n  const state = {\\n    version: 0,\\n    hash: {\\n      directionalLength: -1,\\n      pointLength: -1,\\n      spotLength: -1,\\n      rectAreaLength: -1,\\n      hemiLength: -1,\\n      numDirectionalShadows: -1,\\n      numPointShadows: -1,\\n      numSpotShadows: -1\\n    },\\n    ambient: [0, 0, 0],\\n    probe: [],\\n    directional: [],\\n    directionalShadow: [],\\n    directionalShadowMap: [],\\n    directionalShadowMatrix: [],\\n    spot: [],\\n    spotShadow: [],\\n    spotShadowMap: [],\\n    spotShadowMatrix: [],\\n    rectArea: [],\\n    rectAreaLTC1: null,\\n    rectAreaLTC2: null,\\n    point: [],\\n    pointShadow: [],\\n    pointShadowMap: [],\\n    pointShadowMatrix: [],\\n    hemi: []\\n  };\\n  for (let i = 0; i < 9; i++)\\n    state.probe.push(new Vector3());\\n  const vector3 = new Vector3();\\n  const matrix4 = new Matrix4();\\n  const matrix42 = new Matrix4();\\n  function setup(lights, physicallyCorrectLights) {\\n    let r = 0, g = 0, b = 0;\\n    for (let i = 0; i < 9; i++)\\n      state.probe[i].set(0, 0, 0);\\n    let directionalLength = 0;\\n    let pointLength = 0;\\n    let spotLength = 0;\\n    let rectAreaLength = 0;\\n    let hemiLength = 0;\\n    let numDirectionalShadows = 0;\\n    let numPointShadows = 0;\\n    let numSpotShadows = 0;\\n    lights.sort(shadowCastingLightsFirst);\\n    const scaleFactor = physicallyCorrectLights !== true ? Math.PI : 1;\\n    for (let i = 0, l = lights.length; i < l; i++) {\\n      const light = lights[i];\\n      const color = light.color;\\n      const intensity = light.intensity;\\n      const distance = light.distance;\\n      const shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\\n      if (light.isAmbientLight) {\\n        r += color.r * intensity * scaleFactor;\\n        g += color.g * intensity * scaleFactor;\\n        b += color.b * intensity * scaleFactor;\\n      } else if (light.isLightProbe) {\\n        for (let j = 0; j < 9; j++) {\\n          state.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\\n        }\\n      } else if (light.isDirectionalLight) {\\n        const uniforms = cache.get(light);\\n        uniforms.color.copy(light.color).multiplyScalar(light.intensity * scaleFactor);\\n        if (light.castShadow) {\\n          const shadow2 = light.shadow;\\n          const shadowUniforms = shadowCache.get(light);\\n          shadowUniforms.shadowBias = shadow2.bias;\\n          shadowUniforms.shadowNormalBias = shadow2.normalBias;\\n          shadowUniforms.shadowRadius = shadow2.radius;\\n          shadowUniforms.shadowMapSize = shadow2.mapSize;\\n          state.directionalShadow[directionalLength] = shadowUniforms;\\n          state.directionalShadowMap[directionalLength] = shadowMap;\\n          state.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\\n          numDirectionalShadows++;\\n        }\\n        state.directional[directionalLength] = uniforms;\\n        directionalLength++;\\n      } else if (light.isSpotLight) {\\n        const uniforms = cache.get(light);\\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\\n        uniforms.color.copy(color).multiplyScalar(intensity * scaleFactor);\\n        uniforms.distance = distance;\\n        uniforms.coneCos = Math.cos(light.angle);\\n        uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\\n        uniforms.decay = light.decay;\\n        if (light.castShadow) {\\n          const shadow2 = light.shadow;\\n          const shadowUniforms = shadowCache.get(light);\\n          shadowUniforms.shadowBias = shadow2.bias;\\n          shadowUniforms.shadowNormalBias = shadow2.normalBias;\\n          shadowUniforms.shadowRadius = shadow2.radius;\\n          shadowUniforms.shadowMapSize = shadow2.mapSize;\\n          state.spotShadow[spotLength] = shadowUniforms;\\n          state.spotShadowMap[spotLength] = shadowMap;\\n          state.spotShadowMatrix[spotLength] = light.shadow.matrix;\\n          numSpotShadows++;\\n        }\\n        state.spot[spotLength] = uniforms;\\n        spotLength++;\\n      } else if (light.isRectAreaLight) {\\n        const uniforms = cache.get(light);\\n        uniforms.color.copy(color).multiplyScalar(intensity);\\n        uniforms.halfWidth.set(light.width * 0.5, 0, 0);\\n        uniforms.halfHeight.set(0, light.height * 0.5, 0);\\n        state.rectArea[rectAreaLength] = uniforms;\\n        rectAreaLength++;\\n      } else if (light.isPointLight) {\\n        const uniforms = cache.get(light);\\n        uniforms.color.copy(light.color).multiplyScalar(light.intensity * scaleFactor);\\n        uniforms.distance = light.distance;\\n        uniforms.decay = light.decay;\\n        if (light.castShadow) {\\n          const shadow2 = light.shadow;\\n          const shadowUniforms = shadowCache.get(light);\\n          shadowUniforms.shadowBias = shadow2.bias;\\n          shadowUniforms.shadowNormalBias = shadow2.normalBias;\\n          shadowUniforms.shadowRadius = shadow2.radius;\\n          shadowUniforms.shadowMapSize = shadow2.mapSize;\\n          shadowUniforms.shadowCameraNear = shadow2.camera.near;\\n          shadowUniforms.shadowCameraFar = shadow2.camera.far;\\n          state.pointShadow[pointLength] = shadowUniforms;\\n          state.pointShadowMap[pointLength] = shadowMap;\\n          state.pointShadowMatrix[pointLength] = light.shadow.matrix;\\n          numPointShadows++;\\n        }\\n        state.point[pointLength] = uniforms;\\n        pointLength++;\\n      } else if (light.isHemisphereLight) {\\n        const uniforms = cache.get(light);\\n        uniforms.skyColor.copy(light.color).multiplyScalar(intensity * scaleFactor);\\n        uniforms.groundColor.copy(light.groundColor).multiplyScalar(intensity * scaleFactor);\\n        state.hemi[hemiLength] = uniforms;\\n        hemiLength++;\\n      }\\n    }\\n    if (rectAreaLength > 0) {\\n      if (capabilities.isWebGL2) {\\n        state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\\n        state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\\n      } else {\\n        if (extensions.has(\\\\\\\"OES_texture_float_linear\\\\\\\") === true) {\\n          state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\\n          state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\\n        } else if (extensions.has(\\\\\\\"OES_texture_half_float_linear\\\\\\\") === true) {\\n          state.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\\n          state.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\\n        } else {\\n          console.error(\\\\\\\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\\\\\\\");\\n        }\\n      }\\n    }\\n    state.ambient[0] = r;\\n    state.ambient[1] = g;\\n    state.ambient[2] = b;\\n    const hash = state.hash;\\n    if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows) {\\n      state.directional.length = directionalLength;\\n      state.spot.length = spotLength;\\n      state.rectArea.length = rectAreaLength;\\n      state.point.length = pointLength;\\n      state.hemi.length = hemiLength;\\n      state.directionalShadow.length = numDirectionalShadows;\\n      state.directionalShadowMap.length = numDirectionalShadows;\\n      state.pointShadow.length = numPointShadows;\\n      state.pointShadowMap.length = numPointShadows;\\n      state.spotShadow.length = numSpotShadows;\\n      state.spotShadowMap.length = numSpotShadows;\\n      state.directionalShadowMatrix.length = numDirectionalShadows;\\n      state.pointShadowMatrix.length = numPointShadows;\\n      state.spotShadowMatrix.length = numSpotShadows;\\n      hash.directionalLength = directionalLength;\\n      hash.pointLength = pointLength;\\n      hash.spotLength = spotLength;\\n      hash.rectAreaLength = rectAreaLength;\\n      hash.hemiLength = hemiLength;\\n      hash.numDirectionalShadows = numDirectionalShadows;\\n      hash.numPointShadows = numPointShadows;\\n      hash.numSpotShadows = numSpotShadows;\\n      state.version = nextVersion++;\\n    }\\n  }\\n  function setupView(lights, camera) {\\n    let directionalLength = 0;\\n    let pointLength = 0;\\n    let spotLength = 0;\\n    let rectAreaLength = 0;\\n    let hemiLength = 0;\\n    const viewMatrix = camera.matrixWorldInverse;\\n    for (let i = 0, l = lights.length; i < l; i++) {\\n      const light = lights[i];\\n      if (light.isDirectionalLight) {\\n        const uniforms = state.directional[directionalLength];\\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\\n        vector3.setFromMatrixPosition(light.target.matrixWorld);\\n        uniforms.direction.sub(vector3);\\n        uniforms.direction.transformDirection(viewMatrix);\\n        directionalLength++;\\n      } else if (light.isSpotLight) {\\n        const uniforms = state.spot[spotLength];\\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\\n        uniforms.position.applyMatrix4(viewMatrix);\\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\\n        vector3.setFromMatrixPosition(light.target.matrixWorld);\\n        uniforms.direction.sub(vector3);\\n        uniforms.direction.transformDirection(viewMatrix);\\n        spotLength++;\\n      } else if (light.isRectAreaLight) {\\n        const uniforms = state.rectArea[rectAreaLength];\\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\\n        uniforms.position.applyMatrix4(viewMatrix);\\n        matrix42.identity();\\n        matrix4.copy(light.matrixWorld);\\n        matrix4.premultiply(viewMatrix);\\n        matrix42.extractRotation(matrix4);\\n        uniforms.halfWidth.set(light.width * 0.5, 0, 0);\\n        uniforms.halfHeight.set(0, light.height * 0.5, 0);\\n        uniforms.halfWidth.applyMatrix4(matrix42);\\n        uniforms.halfHeight.applyMatrix4(matrix42);\\n        rectAreaLength++;\\n      } else if (light.isPointLight) {\\n        const uniforms = state.point[pointLength];\\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\\n        uniforms.position.applyMatrix4(viewMatrix);\\n        pointLength++;\\n      } else if (light.isHemisphereLight) {\\n        const uniforms = state.hemi[hemiLength];\\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\\n        uniforms.direction.transformDirection(viewMatrix);\\n        uniforms.direction.normalize();\\n        hemiLength++;\\n      }\\n    }\\n  }\\n  return {\\n    setup,\\n    setupView,\\n    state\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLRenderStates.js\\nfunction WebGLRenderState(extensions, capabilities) {\\n  const lights = new WebGLLights(extensions, capabilities);\\n  const lightsArray = [];\\n  const shadowsArray = [];\\n  function init() {\\n    lightsArray.length = 0;\\n    shadowsArray.length = 0;\\n  }\\n  function pushLight(light) {\\n    lightsArray.push(light);\\n  }\\n  function pushShadow(shadowLight) {\\n    shadowsArray.push(shadowLight);\\n  }\\n  function setupLights(physicallyCorrectLights) {\\n    lights.setup(lightsArray, physicallyCorrectLights);\\n  }\\n  function setupLightsView(camera) {\\n    lights.setupView(lightsArray, camera);\\n  }\\n  const state = {\\n    lightsArray,\\n    shadowsArray,\\n    lights\\n  };\\n  return {\\n    init,\\n    state,\\n    setupLights,\\n    setupLightsView,\\n    pushLight,\\n    pushShadow\\n  };\\n}\\nfunction WebGLRenderStates(extensions, capabilities) {\\n  let renderStates = new WeakMap();\\n  function get(scene, renderCallDepth = 0) {\\n    let renderState;\\n    if (renderStates.has(scene) === false) {\\n      renderState = new WebGLRenderState(extensions, capabilities);\\n      renderStates.set(scene, [renderState]);\\n    } else {\\n      if (renderCallDepth >= renderStates.get(scene).length) {\\n        renderState = new WebGLRenderState(extensions, capabilities);\\n        renderStates.get(scene).push(renderState);\\n      } else {\\n        renderState = renderStates.get(scene)[renderCallDepth];\\n      }\\n    }\\n    return renderState;\\n  }\\n  function dispose() {\\n    renderStates = new WeakMap();\\n  }\\n  return {\\n    get,\\n    dispose\\n  };\\n}\\n\\n// ../../../node_modules/three/src/materials/MeshDepthMaterial.js\\nvar MeshDepthMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"MeshDepthMaterial\\\\\\\";\\n    this.depthPacking = BasicDepthPacking;\\n    this.map = null;\\n    this.alphaMap = null;\\n    this.displacementMap = null;\\n    this.displacementScale = 1;\\n    this.displacementBias = 0;\\n    this.wireframe = false;\\n    this.wireframeLinewidth = 1;\\n    this.fog = false;\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.depthPacking = source.depthPacking;\\n    this.map = source.map;\\n    this.alphaMap = source.alphaMap;\\n    this.displacementMap = source.displacementMap;\\n    this.displacementScale = source.displacementScale;\\n    this.displacementBias = source.displacementBias;\\n    this.wireframe = source.wireframe;\\n    this.wireframeLinewidth = source.wireframeLinewidth;\\n    return this;\\n  }\\n};\\nMeshDepthMaterial.prototype.isMeshDepthMaterial = true;\\n\\n// ../../../node_modules/three/src/materials/MeshDistanceMaterial.js\\nvar MeshDistanceMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"MeshDistanceMaterial\\\\\\\";\\n    this.referencePosition = new Vector3();\\n    this.nearDistance = 1;\\n    this.farDistance = 1e3;\\n    this.map = null;\\n    this.alphaMap = null;\\n    this.displacementMap = null;\\n    this.displacementScale = 1;\\n    this.displacementBias = 0;\\n    this.fog = false;\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.referencePosition.copy(source.referencePosition);\\n    this.nearDistance = source.nearDistance;\\n    this.farDistance = source.farDistance;\\n    this.map = source.map;\\n    this.alphaMap = source.alphaMap;\\n    this.displacementMap = source.displacementMap;\\n    this.displacementScale = source.displacementScale;\\n    this.displacementBias = source.displacementBias;\\n    return this;\\n  }\\n};\\nMeshDistanceMaterial.prototype.isMeshDistanceMaterial = true;\\n\\n// ../../../node_modules/three/src/renderers/shaders/ShaderLib/vsm.glsl.js\\nvar vertex17 = `\\nvoid main() {\\n\\n\\tgl_Position = vec4( position, 1.0 );\\n\\n}\\n`;\\nvar fragment17 = `\\nuniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\nuniform float samples;\\n\\n#include <packing>\\n\\nvoid main() {\\n\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\n\\t// This seems totally useless but it's a crazy work around for a Adreno compiler bug\\n\\t// float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\n\\t\\t#else\\n\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\n\\t\\t#endif\\n\\n\\t}\\n\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n\\n}\\n`;\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLShadowMap.js\\nfunction WebGLShadowMap(_renderer, _objects, _capabilities) {\\n  let _frustum = new Frustum();\\n  const _shadowMapSize = new Vector2(), _viewportSize = new Vector2(), _viewport = new Vector4(), _depthMaterial = new MeshDepthMaterial({depthPacking: RGBADepthPacking}), _distanceMaterial = new MeshDistanceMaterial(), _materialCache = {}, _maxTextureSize = _capabilities.maxTextureSize;\\n  const shadowSide = {0: BackSide, 1: FrontSide, 2: DoubleSide};\\n  const shadowMaterialVertical = new ShaderMaterial({\\n    uniforms: {\\n      shadow_pass: {value: null},\\n      resolution: {value: new Vector2()},\\n      radius: {value: 4},\\n      samples: {value: 8}\\n    },\\n    vertexShader: vertex17,\\n    fragmentShader: fragment17\\n  });\\n  const shadowMaterialHorizontal = shadowMaterialVertical.clone();\\n  shadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\\n  const fullScreenTri = new BufferGeometry();\\n  fullScreenTri.setAttribute(\\\\\\\"position\\\\\\\", new BufferAttribute(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3));\\n  const fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical);\\n  const scope = this;\\n  this.enabled = false;\\n  this.autoUpdate = true;\\n  this.needsUpdate = false;\\n  this.type = PCFShadowMap;\\n  this.render = function(lights, scene, camera) {\\n    if (scope.enabled === false)\\n      return;\\n    if (scope.autoUpdate === false && scope.needsUpdate === false)\\n      return;\\n    if (lights.length === 0)\\n      return;\\n    const currentRenderTarget = _renderer.getRenderTarget();\\n    const activeCubeFace = _renderer.getActiveCubeFace();\\n    const activeMipmapLevel = _renderer.getActiveMipmapLevel();\\n    const _state = _renderer.state;\\n    _state.setBlending(NoBlending);\\n    _state.buffers.color.setClear(1, 1, 1, 1);\\n    _state.buffers.depth.setTest(true);\\n    _state.setScissorTest(false);\\n    for (let i = 0, il = lights.length; i < il; i++) {\\n      const light = lights[i];\\n      const shadow2 = light.shadow;\\n      if (shadow2 === void 0) {\\n        console.warn(\\\\\\\"THREE.WebGLShadowMap:\\\\\\\", light, \\\\\\\"has no shadow.\\\\\\\");\\n        continue;\\n      }\\n      if (shadow2.autoUpdate === false && shadow2.needsUpdate === false)\\n        continue;\\n      _shadowMapSize.copy(shadow2.mapSize);\\n      const shadowFrameExtents = shadow2.getFrameExtents();\\n      _shadowMapSize.multiply(shadowFrameExtents);\\n      _viewportSize.copy(shadow2.mapSize);\\n      if (_shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize) {\\n        if (_shadowMapSize.x > _maxTextureSize) {\\n          _viewportSize.x = Math.floor(_maxTextureSize / shadowFrameExtents.x);\\n          _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\\n          shadow2.mapSize.x = _viewportSize.x;\\n        }\\n        if (_shadowMapSize.y > _maxTextureSize) {\\n          _viewportSize.y = Math.floor(_maxTextureSize / shadowFrameExtents.y);\\n          _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\\n          shadow2.mapSize.y = _viewportSize.y;\\n        }\\n      }\\n      if (shadow2.map === null && !shadow2.isPointLightShadow && this.type === VSMShadowMap) {\\n        const pars = {minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat};\\n        shadow2.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\\n        shadow2.map.texture.name = light.name + \\\\\\\".shadowMap\\\\\\\";\\n        shadow2.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\\n        shadow2.camera.updateProjectionMatrix();\\n      }\\n      if (shadow2.map === null) {\\n        const pars = {minFilter: NearestFilter, magFilter: NearestFilter, format: RGBAFormat};\\n        shadow2.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\\n        shadow2.map.texture.name = light.name + \\\\\\\".shadowMap\\\\\\\";\\n        shadow2.camera.updateProjectionMatrix();\\n      }\\n      _renderer.setRenderTarget(shadow2.map);\\n      _renderer.clear();\\n      const viewportCount = shadow2.getViewportCount();\\n      for (let vp = 0; vp < viewportCount; vp++) {\\n        const viewport = shadow2.getViewport(vp);\\n        _viewport.set(_viewportSize.x * viewport.x, _viewportSize.y * viewport.y, _viewportSize.x * viewport.z, _viewportSize.y * viewport.w);\\n        _state.viewport(_viewport);\\n        shadow2.updateMatrices(light, vp);\\n        _frustum = shadow2.getFrustum();\\n        renderObject(scene, camera, shadow2.camera, light, this.type);\\n      }\\n      if (!shadow2.isPointLightShadow && this.type === VSMShadowMap) {\\n        VSMPass(shadow2, camera);\\n      }\\n      shadow2.needsUpdate = false;\\n    }\\n    scope.needsUpdate = false;\\n    _renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\\n  };\\n  function VSMPass(shadow2, camera) {\\n    const geometry = _objects.update(fullScreenMesh);\\n    shadowMaterialVertical.uniforms.shadow_pass.value = shadow2.map.texture;\\n    shadowMaterialVertical.uniforms.resolution.value = shadow2.mapSize;\\n    shadowMaterialVertical.uniforms.radius.value = shadow2.radius;\\n    shadowMaterialVertical.uniforms.samples.value = shadow2.blurSamples;\\n    _renderer.setRenderTarget(shadow2.mapPass);\\n    _renderer.clear();\\n    _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null);\\n    shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow2.mapPass.texture;\\n    shadowMaterialHorizontal.uniforms.resolution.value = shadow2.mapSize;\\n    shadowMaterialHorizontal.uniforms.radius.value = shadow2.radius;\\n    shadowMaterialHorizontal.uniforms.samples.value = shadow2.blurSamples;\\n    _renderer.setRenderTarget(shadow2.map);\\n    _renderer.clear();\\n    _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null);\\n  }\\n  function getDepthMaterial(object, geometry, material, light, shadowCameraNear, shadowCameraFar, type) {\\n    let result = null;\\n    const customMaterial = light.isPointLight === true ? object.customDistanceMaterial : object.customDepthMaterial;\\n    if (customMaterial !== void 0) {\\n      result = customMaterial;\\n    } else {\\n      result = light.isPointLight === true ? _distanceMaterial : _depthMaterial;\\n    }\\n    if (_renderer.localClippingEnabled && material.clipShadows === true && material.clippingPlanes.length !== 0 || material.displacementMap && material.displacementScale !== 0 || material.alphaMap && material.alphaTest > 0) {\\n      const keyA = result.uuid, keyB = material.uuid;\\n      let materialsForVariant = _materialCache[keyA];\\n      if (materialsForVariant === void 0) {\\n        materialsForVariant = {};\\n        _materialCache[keyA] = materialsForVariant;\\n      }\\n      let cachedMaterial = materialsForVariant[keyB];\\n      if (cachedMaterial === void 0) {\\n        cachedMaterial = result.clone();\\n        materialsForVariant[keyB] = cachedMaterial;\\n      }\\n      result = cachedMaterial;\\n    }\\n    result.visible = material.visible;\\n    result.wireframe = material.wireframe;\\n    if (type === VSMShadowMap) {\\n      result.side = material.shadowSide !== null ? material.shadowSide : material.side;\\n    } else {\\n      result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\\n    }\\n    result.alphaMap = material.alphaMap;\\n    result.alphaTest = material.alphaTest;\\n    result.clipShadows = material.clipShadows;\\n    result.clippingPlanes = material.clippingPlanes;\\n    result.clipIntersection = material.clipIntersection;\\n    result.displacementMap = material.displacementMap;\\n    result.displacementScale = material.displacementScale;\\n    result.displacementBias = material.displacementBias;\\n    result.wireframeLinewidth = material.wireframeLinewidth;\\n    result.linewidth = material.linewidth;\\n    if (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\\n      result.referencePosition.setFromMatrixPosition(light.matrixWorld);\\n      result.nearDistance = shadowCameraNear;\\n      result.farDistance = shadowCameraFar;\\n    }\\n    return result;\\n  }\\n  function renderObject(object, camera, shadowCamera, light, type) {\\n    if (object.visible === false)\\n      return;\\n    const visible = object.layers.test(camera.layers);\\n    if (visible && (object.isMesh || object.isLine || object.isPoints)) {\\n      if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum.intersectsObject(object))) {\\n        object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\\n        const geometry = _objects.update(object);\\n        const material = object.material;\\n        if (Array.isArray(material)) {\\n          const groups = geometry.groups;\\n          for (let k = 0, kl = groups.length; k < kl; k++) {\\n            const group = groups[k];\\n            const groupMaterial = material[group.materialIndex];\\n            if (groupMaterial && groupMaterial.visible) {\\n              const depthMaterial = getDepthMaterial(object, geometry, groupMaterial, light, shadowCamera.near, shadowCamera.far, type);\\n              _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\\n            }\\n          }\\n        } else if (material.visible) {\\n          const depthMaterial = getDepthMaterial(object, geometry, material, light, shadowCamera.near, shadowCamera.far, type);\\n          _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, null);\\n        }\\n      }\\n    }\\n    const children = object.children;\\n    for (let i = 0, l = children.length; i < l; i++) {\\n      renderObject(children[i], camera, shadowCamera, light, type);\\n    }\\n  }\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLState.js\\nfunction WebGLState(gl, extensions, capabilities) {\\n  const isWebGL2 = capabilities.isWebGL2;\\n  function ColorBuffer() {\\n    let locked = false;\\n    const color = new Vector4();\\n    let currentColorMask = null;\\n    const currentColorClear = new Vector4(0, 0, 0, 0);\\n    return {\\n      setMask: function(colorMask) {\\n        if (currentColorMask !== colorMask && !locked) {\\n          gl.colorMask(colorMask, colorMask, colorMask, colorMask);\\n          currentColorMask = colorMask;\\n        }\\n      },\\n      setLocked: function(lock) {\\n        locked = lock;\\n      },\\n      setClear: function(r, g, b, a, premultipliedAlpha) {\\n        if (premultipliedAlpha === true) {\\n          r *= a;\\n          g *= a;\\n          b *= a;\\n        }\\n        color.set(r, g, b, a);\\n        if (currentColorClear.equals(color) === false) {\\n          gl.clearColor(r, g, b, a);\\n          currentColorClear.copy(color);\\n        }\\n      },\\n      reset: function() {\\n        locked = false;\\n        currentColorMask = null;\\n        currentColorClear.set(-1, 0, 0, 0);\\n      }\\n    };\\n  }\\n  function DepthBuffer() {\\n    let locked = false;\\n    let currentDepthMask = null;\\n    let currentDepthFunc = null;\\n    let currentDepthClear = null;\\n    return {\\n      setTest: function(depthTest) {\\n        if (depthTest) {\\n          enable(gl.DEPTH_TEST);\\n        } else {\\n          disable(gl.DEPTH_TEST);\\n        }\\n      },\\n      setMask: function(depthMask) {\\n        if (currentDepthMask !== depthMask && !locked) {\\n          gl.depthMask(depthMask);\\n          currentDepthMask = depthMask;\\n        }\\n      },\\n      setFunc: function(depthFunc) {\\n        if (currentDepthFunc !== depthFunc) {\\n          if (depthFunc) {\\n            switch (depthFunc) {\\n              case NeverDepth:\\n                gl.depthFunc(gl.NEVER);\\n                break;\\n              case AlwaysDepth:\\n                gl.depthFunc(gl.ALWAYS);\\n                break;\\n              case LessDepth:\\n                gl.depthFunc(gl.LESS);\\n                break;\\n              case LessEqualDepth:\\n                gl.depthFunc(gl.LEQUAL);\\n                break;\\n              case EqualDepth:\\n                gl.depthFunc(gl.EQUAL);\\n                break;\\n              case GreaterEqualDepth:\\n                gl.depthFunc(gl.GEQUAL);\\n                break;\\n              case GreaterDepth:\\n                gl.depthFunc(gl.GREATER);\\n                break;\\n              case NotEqualDepth:\\n                gl.depthFunc(gl.NOTEQUAL);\\n                break;\\n              default:\\n                gl.depthFunc(gl.LEQUAL);\\n            }\\n          } else {\\n            gl.depthFunc(gl.LEQUAL);\\n          }\\n          currentDepthFunc = depthFunc;\\n        }\\n      },\\n      setLocked: function(lock) {\\n        locked = lock;\\n      },\\n      setClear: function(depth2) {\\n        if (currentDepthClear !== depth2) {\\n          gl.clearDepth(depth2);\\n          currentDepthClear = depth2;\\n        }\\n      },\\n      reset: function() {\\n        locked = false;\\n        currentDepthMask = null;\\n        currentDepthFunc = null;\\n        currentDepthClear = null;\\n      }\\n    };\\n  }\\n  function StencilBuffer() {\\n    let locked = false;\\n    let currentStencilMask = null;\\n    let currentStencilFunc = null;\\n    let currentStencilRef = null;\\n    let currentStencilFuncMask = null;\\n    let currentStencilFail = null;\\n    let currentStencilZFail = null;\\n    let currentStencilZPass = null;\\n    let currentStencilClear = null;\\n    return {\\n      setTest: function(stencilTest) {\\n        if (!locked) {\\n          if (stencilTest) {\\n            enable(gl.STENCIL_TEST);\\n          } else {\\n            disable(gl.STENCIL_TEST);\\n          }\\n        }\\n      },\\n      setMask: function(stencilMask) {\\n        if (currentStencilMask !== stencilMask && !locked) {\\n          gl.stencilMask(stencilMask);\\n          currentStencilMask = stencilMask;\\n        }\\n      },\\n      setFunc: function(stencilFunc, stencilRef, stencilMask) {\\n        if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\\n          gl.stencilFunc(stencilFunc, stencilRef, stencilMask);\\n          currentStencilFunc = stencilFunc;\\n          currentStencilRef = stencilRef;\\n          currentStencilFuncMask = stencilMask;\\n        }\\n      },\\n      setOp: function(stencilFail, stencilZFail, stencilZPass) {\\n        if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\\n          gl.stencilOp(stencilFail, stencilZFail, stencilZPass);\\n          currentStencilFail = stencilFail;\\n          currentStencilZFail = stencilZFail;\\n          currentStencilZPass = stencilZPass;\\n        }\\n      },\\n      setLocked: function(lock) {\\n        locked = lock;\\n      },\\n      setClear: function(stencil) {\\n        if (currentStencilClear !== stencil) {\\n          gl.clearStencil(stencil);\\n          currentStencilClear = stencil;\\n        }\\n      },\\n      reset: function() {\\n        locked = false;\\n        currentStencilMask = null;\\n        currentStencilFunc = null;\\n        currentStencilRef = null;\\n        currentStencilFuncMask = null;\\n        currentStencilFail = null;\\n        currentStencilZFail = null;\\n        currentStencilZPass = null;\\n        currentStencilClear = null;\\n      }\\n    };\\n  }\\n  const colorBuffer = new ColorBuffer();\\n  const depthBuffer = new DepthBuffer();\\n  const stencilBuffer = new StencilBuffer();\\n  let enabledCapabilities = {};\\n  let xrFramebuffer = null;\\n  let currentBoundFramebuffers = {};\\n  let currentProgram = null;\\n  let currentBlendingEnabled = false;\\n  let currentBlending = null;\\n  let currentBlendEquation = null;\\n  let currentBlendSrc = null;\\n  let currentBlendDst = null;\\n  let currentBlendEquationAlpha = null;\\n  let currentBlendSrcAlpha = null;\\n  let currentBlendDstAlpha = null;\\n  let currentPremultipledAlpha = false;\\n  let currentFlipSided = null;\\n  let currentCullFace = null;\\n  let currentLineWidth = null;\\n  let currentPolygonOffsetFactor = null;\\n  let currentPolygonOffsetUnits = null;\\n  const maxTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\\n  let lineWidthAvailable = false;\\n  let version = 0;\\n  const glVersion = gl.getParameter(gl.VERSION);\\n  if (glVersion.indexOf(\\\\\\\"WebGL\\\\\\\") !== -1) {\\n    version = parseFloat(/^WebGL (\\\\d)/.exec(glVersion)[1]);\\n    lineWidthAvailable = version >= 1;\\n  } else if (glVersion.indexOf(\\\\\\\"OpenGL ES\\\\\\\") !== -1) {\\n    version = parseFloat(/^OpenGL ES (\\\\d)/.exec(glVersion)[1]);\\n    lineWidthAvailable = version >= 2;\\n  }\\n  let currentTextureSlot = null;\\n  let currentBoundTextures = {};\\n  const scissorParam = gl.getParameter(gl.SCISSOR_BOX);\\n  const viewportParam = gl.getParameter(gl.VIEWPORT);\\n  const currentScissor = new Vector4().fromArray(scissorParam);\\n  const currentViewport = new Vector4().fromArray(viewportParam);\\n  function createTexture(type, target, count) {\\n    const data = new Uint8Array(4);\\n    const texture = gl.createTexture();\\n    gl.bindTexture(type, texture);\\n    gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\\n    gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\\n    for (let i = 0; i < count; i++) {\\n      gl.texImage2D(target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\\n    }\\n    return texture;\\n  }\\n  const emptyTextures = {};\\n  emptyTextures[gl.TEXTURE_2D] = createTexture(gl.TEXTURE_2D, gl.TEXTURE_2D, 1);\\n  emptyTextures[gl.TEXTURE_CUBE_MAP] = createTexture(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6);\\n  colorBuffer.setClear(0, 0, 0, 1);\\n  depthBuffer.setClear(1);\\n  stencilBuffer.setClear(0);\\n  enable(gl.DEPTH_TEST);\\n  depthBuffer.setFunc(LessEqualDepth);\\n  setFlipSided(false);\\n  setCullFace(CullFaceBack);\\n  enable(gl.CULL_FACE);\\n  setBlending(NoBlending);\\n  function enable(id) {\\n    if (enabledCapabilities[id] !== true) {\\n      gl.enable(id);\\n      enabledCapabilities[id] = true;\\n    }\\n  }\\n  function disable(id) {\\n    if (enabledCapabilities[id] !== false) {\\n      gl.disable(id);\\n      enabledCapabilities[id] = false;\\n    }\\n  }\\n  function bindXRFramebuffer(framebuffer) {\\n    if (framebuffer !== xrFramebuffer) {\\n      gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\\n      xrFramebuffer = framebuffer;\\n    }\\n  }\\n  function bindFramebuffer(target, framebuffer) {\\n    if (framebuffer === null && xrFramebuffer !== null)\\n      framebuffer = xrFramebuffer;\\n    if (currentBoundFramebuffers[target] !== framebuffer) {\\n      gl.bindFramebuffer(target, framebuffer);\\n      currentBoundFramebuffers[target] = framebuffer;\\n      if (isWebGL2) {\\n        if (target === gl.DRAW_FRAMEBUFFER) {\\n          currentBoundFramebuffers[gl.FRAMEBUFFER] = framebuffer;\\n        }\\n        if (target === gl.FRAMEBUFFER) {\\n          currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER] = framebuffer;\\n        }\\n      }\\n      return true;\\n    }\\n    return false;\\n  }\\n  function useProgram(program) {\\n    if (currentProgram !== program) {\\n      gl.useProgram(program);\\n      currentProgram = program;\\n      return true;\\n    }\\n    return false;\\n  }\\n  const equationToGL = {\\n    [AddEquation]: gl.FUNC_ADD,\\n    [SubtractEquation]: gl.FUNC_SUBTRACT,\\n    [ReverseSubtractEquation]: gl.FUNC_REVERSE_SUBTRACT\\n  };\\n  if (isWebGL2) {\\n    equationToGL[MinEquation] = gl.MIN;\\n    equationToGL[MaxEquation] = gl.MAX;\\n  } else {\\n    const extension = extensions.get(\\\\\\\"EXT_blend_minmax\\\\\\\");\\n    if (extension !== null) {\\n      equationToGL[MinEquation] = extension.MIN_EXT;\\n      equationToGL[MaxEquation] = extension.MAX_EXT;\\n    }\\n  }\\n  const factorToGL = {\\n    [ZeroFactor]: gl.ZERO,\\n    [OneFactor]: gl.ONE,\\n    [SrcColorFactor]: gl.SRC_COLOR,\\n    [SrcAlphaFactor]: gl.SRC_ALPHA,\\n    [SrcAlphaSaturateFactor]: gl.SRC_ALPHA_SATURATE,\\n    [DstColorFactor]: gl.DST_COLOR,\\n    [DstAlphaFactor]: gl.DST_ALPHA,\\n    [OneMinusSrcColorFactor]: gl.ONE_MINUS_SRC_COLOR,\\n    [OneMinusSrcAlphaFactor]: gl.ONE_MINUS_SRC_ALPHA,\\n    [OneMinusDstColorFactor]: gl.ONE_MINUS_DST_COLOR,\\n    [OneMinusDstAlphaFactor]: gl.ONE_MINUS_DST_ALPHA\\n  };\\n  function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha) {\\n    if (blending === NoBlending) {\\n      if (currentBlendingEnabled === true) {\\n        disable(gl.BLEND);\\n        currentBlendingEnabled = false;\\n      }\\n      return;\\n    }\\n    if (currentBlendingEnabled === false) {\\n      enable(gl.BLEND);\\n      currentBlendingEnabled = true;\\n    }\\n    if (blending !== CustomBlending) {\\n      if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\\n        if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) {\\n          gl.blendEquation(gl.FUNC_ADD);\\n          currentBlendEquation = AddEquation;\\n          currentBlendEquationAlpha = AddEquation;\\n        }\\n        if (premultipliedAlpha) {\\n          switch (blending) {\\n            case NormalBlending:\\n              gl.blendFuncSeparate(gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\\n              break;\\n            case AdditiveBlending:\\n              gl.blendFunc(gl.ONE, gl.ONE);\\n              break;\\n            case SubtractiveBlending:\\n              gl.blendFuncSeparate(gl.ZERO, gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ONE_MINUS_SRC_ALPHA);\\n              break;\\n            case MultiplyBlending:\\n              gl.blendFuncSeparate(gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA);\\n              break;\\n            default:\\n              console.error(\\\\\\\"THREE.WebGLState: Invalid blending: \\\\\\\", blending);\\n              break;\\n          }\\n        } else {\\n          switch (blending) {\\n            case NormalBlending:\\n              gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\\n              break;\\n            case AdditiveBlending:\\n              gl.blendFunc(gl.SRC_ALPHA, gl.ONE);\\n              break;\\n            case SubtractiveBlending:\\n              gl.blendFunc(gl.ZERO, gl.ONE_MINUS_SRC_COLOR);\\n              break;\\n            case MultiplyBlending:\\n              gl.blendFunc(gl.ZERO, gl.SRC_COLOR);\\n              break;\\n            default:\\n              console.error(\\\\\\\"THREE.WebGLState: Invalid blending: \\\\\\\", blending);\\n              break;\\n          }\\n        }\\n        currentBlendSrc = null;\\n        currentBlendDst = null;\\n        currentBlendSrcAlpha = null;\\n        currentBlendDstAlpha = null;\\n        currentBlending = blending;\\n        currentPremultipledAlpha = premultipliedAlpha;\\n      }\\n      return;\\n    }\\n    blendEquationAlpha = blendEquationAlpha || blendEquation;\\n    blendSrcAlpha = blendSrcAlpha || blendSrc;\\n    blendDstAlpha = blendDstAlpha || blendDst;\\n    if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\\n      gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\\n      currentBlendEquation = blendEquation;\\n      currentBlendEquationAlpha = blendEquationAlpha;\\n    }\\n    if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\\n      gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\\n      currentBlendSrc = blendSrc;\\n      currentBlendDst = blendDst;\\n      currentBlendSrcAlpha = blendSrcAlpha;\\n      currentBlendDstAlpha = blendDstAlpha;\\n    }\\n    currentBlending = blending;\\n    currentPremultipledAlpha = null;\\n  }\\n  function setMaterial(material, frontFaceCW) {\\n    material.side === DoubleSide ? disable(gl.CULL_FACE) : enable(gl.CULL_FACE);\\n    let flipSided = material.side === BackSide;\\n    if (frontFaceCW)\\n      flipSided = !flipSided;\\n    setFlipSided(flipSided);\\n    material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha);\\n    depthBuffer.setFunc(material.depthFunc);\\n    depthBuffer.setTest(material.depthTest);\\n    depthBuffer.setMask(material.depthWrite);\\n    colorBuffer.setMask(material.colorWrite);\\n    const stencilWrite = material.stencilWrite;\\n    stencilBuffer.setTest(stencilWrite);\\n    if (stencilWrite) {\\n      stencilBuffer.setMask(material.stencilWriteMask);\\n      stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\\n      stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\\n    }\\n    setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\\n    material.alphaToCoverage === true ? enable(gl.SAMPLE_ALPHA_TO_COVERAGE) : disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\\n  }\\n  function setFlipSided(flipSided) {\\n    if (currentFlipSided !== flipSided) {\\n      if (flipSided) {\\n        gl.frontFace(gl.CW);\\n      } else {\\n        gl.frontFace(gl.CCW);\\n      }\\n      currentFlipSided = flipSided;\\n    }\\n  }\\n  function setCullFace(cullFace) {\\n    if (cullFace !== CullFaceNone) {\\n      enable(gl.CULL_FACE);\\n      if (cullFace !== currentCullFace) {\\n        if (cullFace === CullFaceBack) {\\n          gl.cullFace(gl.BACK);\\n        } else if (cullFace === CullFaceFront) {\\n          gl.cullFace(gl.FRONT);\\n        } else {\\n          gl.cullFace(gl.FRONT_AND_BACK);\\n        }\\n      }\\n    } else {\\n      disable(gl.CULL_FACE);\\n    }\\n    currentCullFace = cullFace;\\n  }\\n  function setLineWidth(width) {\\n    if (width !== currentLineWidth) {\\n      if (lineWidthAvailable)\\n        gl.lineWidth(width);\\n      currentLineWidth = width;\\n    }\\n  }\\n  function setPolygonOffset(polygonOffset, factor, units) {\\n    if (polygonOffset) {\\n      enable(gl.POLYGON_OFFSET_FILL);\\n      if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\\n        gl.polygonOffset(factor, units);\\n        currentPolygonOffsetFactor = factor;\\n        currentPolygonOffsetUnits = units;\\n      }\\n    } else {\\n      disable(gl.POLYGON_OFFSET_FILL);\\n    }\\n  }\\n  function setScissorTest(scissorTest) {\\n    if (scissorTest) {\\n      enable(gl.SCISSOR_TEST);\\n    } else {\\n      disable(gl.SCISSOR_TEST);\\n    }\\n  }\\n  function activeTexture(webglSlot) {\\n    if (webglSlot === void 0)\\n      webglSlot = gl.TEXTURE0 + maxTextures - 1;\\n    if (currentTextureSlot !== webglSlot) {\\n      gl.activeTexture(webglSlot);\\n      currentTextureSlot = webglSlot;\\n    }\\n  }\\n  function bindTexture(webglType, webglTexture) {\\n    if (currentTextureSlot === null) {\\n      activeTexture();\\n    }\\n    let boundTexture = currentBoundTextures[currentTextureSlot];\\n    if (boundTexture === void 0) {\\n      boundTexture = {type: void 0, texture: void 0};\\n      currentBoundTextures[currentTextureSlot] = boundTexture;\\n    }\\n    if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\\n      gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\\n      boundTexture.type = webglType;\\n      boundTexture.texture = webglTexture;\\n    }\\n  }\\n  function unbindTexture() {\\n    const boundTexture = currentBoundTextures[currentTextureSlot];\\n    if (boundTexture !== void 0 && boundTexture.type !== void 0) {\\n      gl.bindTexture(boundTexture.type, null);\\n      boundTexture.type = void 0;\\n      boundTexture.texture = void 0;\\n    }\\n  }\\n  function compressedTexImage2D() {\\n    try {\\n      gl.compressedTexImage2D.apply(gl, arguments);\\n    } catch (error) {\\n      console.error(\\\\\\\"THREE.WebGLState:\\\\\\\", error);\\n    }\\n  }\\n  function texImage2D() {\\n    try {\\n      gl.texImage2D.apply(gl, arguments);\\n    } catch (error) {\\n      console.error(\\\\\\\"THREE.WebGLState:\\\\\\\", error);\\n    }\\n  }\\n  function texImage3D() {\\n    try {\\n      gl.texImage3D.apply(gl, arguments);\\n    } catch (error) {\\n      console.error(\\\\\\\"THREE.WebGLState:\\\\\\\", error);\\n    }\\n  }\\n  function scissor(scissor2) {\\n    if (currentScissor.equals(scissor2) === false) {\\n      gl.scissor(scissor2.x, scissor2.y, scissor2.z, scissor2.w);\\n      currentScissor.copy(scissor2);\\n    }\\n  }\\n  function viewport(viewport2) {\\n    if (currentViewport.equals(viewport2) === false) {\\n      gl.viewport(viewport2.x, viewport2.y, viewport2.z, viewport2.w);\\n      currentViewport.copy(viewport2);\\n    }\\n  }\\n  function reset() {\\n    gl.disable(gl.BLEND);\\n    gl.disable(gl.CULL_FACE);\\n    gl.disable(gl.DEPTH_TEST);\\n    gl.disable(gl.POLYGON_OFFSET_FILL);\\n    gl.disable(gl.SCISSOR_TEST);\\n    gl.disable(gl.STENCIL_TEST);\\n    gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\\n    gl.blendEquation(gl.FUNC_ADD);\\n    gl.blendFunc(gl.ONE, gl.ZERO);\\n    gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ONE, gl.ZERO);\\n    gl.colorMask(true, true, true, true);\\n    gl.clearColor(0, 0, 0, 0);\\n    gl.depthMask(true);\\n    gl.depthFunc(gl.LESS);\\n    gl.clearDepth(1);\\n    gl.stencilMask(4294967295);\\n    gl.stencilFunc(gl.ALWAYS, 0, 4294967295);\\n    gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\\n    gl.clearStencil(0);\\n    gl.cullFace(gl.BACK);\\n    gl.frontFace(gl.CCW);\\n    gl.polygonOffset(0, 0);\\n    gl.activeTexture(gl.TEXTURE0);\\n    gl.bindFramebuffer(gl.FRAMEBUFFER, null);\\n    if (isWebGL2 === true) {\\n      gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\\n      gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\\n    }\\n    gl.useProgram(null);\\n    gl.lineWidth(1);\\n    gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);\\n    gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);\\n    enabledCapabilities = {};\\n    currentTextureSlot = null;\\n    currentBoundTextures = {};\\n    xrFramebuffer = null;\\n    currentBoundFramebuffers = {};\\n    currentProgram = null;\\n    currentBlendingEnabled = false;\\n    currentBlending = null;\\n    currentBlendEquation = null;\\n    currentBlendSrc = null;\\n    currentBlendDst = null;\\n    currentBlendEquationAlpha = null;\\n    currentBlendSrcAlpha = null;\\n    currentBlendDstAlpha = null;\\n    currentPremultipledAlpha = false;\\n    currentFlipSided = null;\\n    currentCullFace = null;\\n    currentLineWidth = null;\\n    currentPolygonOffsetFactor = null;\\n    currentPolygonOffsetUnits = null;\\n    currentScissor.set(0, 0, gl.canvas.width, gl.canvas.height);\\n    currentViewport.set(0, 0, gl.canvas.width, gl.canvas.height);\\n    colorBuffer.reset();\\n    depthBuffer.reset();\\n    stencilBuffer.reset();\\n  }\\n  return {\\n    buffers: {\\n      color: colorBuffer,\\n      depth: depthBuffer,\\n      stencil: stencilBuffer\\n    },\\n    enable,\\n    disable,\\n    bindFramebuffer,\\n    bindXRFramebuffer,\\n    useProgram,\\n    setBlending,\\n    setMaterial,\\n    setFlipSided,\\n    setCullFace,\\n    setLineWidth,\\n    setPolygonOffset,\\n    setScissorTest,\\n    activeTexture,\\n    bindTexture,\\n    unbindTexture,\\n    compressedTexImage2D,\\n    texImage2D,\\n    texImage3D,\\n    scissor,\\n    viewport,\\n    reset\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLTextures.js\\nfunction WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\\n  const isWebGL2 = capabilities.isWebGL2;\\n  const maxTextures = capabilities.maxTextures;\\n  const maxCubemapSize = capabilities.maxCubemapSize;\\n  const maxTextureSize = capabilities.maxTextureSize;\\n  const maxSamples = capabilities.maxSamples;\\n  const _videoTextures = new WeakMap();\\n  let _canvas2;\\n  let useOffscreenCanvas = false;\\n  try {\\n    useOffscreenCanvas = typeof OffscreenCanvas !== \\\\\\\"undefined\\\\\\\" && new OffscreenCanvas(1, 1).getContext(\\\\\\\"2d\\\\\\\") !== null;\\n  } catch (err) {\\n  }\\n  function createCanvas(width, height) {\\n    return useOffscreenCanvas ? new OffscreenCanvas(width, height) : createElementNS(\\\\\\\"canvas\\\\\\\");\\n  }\\n  function resizeImage(image, needsPowerOfTwo, needsNewCanvas, maxSize) {\\n    let scale = 1;\\n    if (image.width > maxSize || image.height > maxSize) {\\n      scale = maxSize / Math.max(image.width, image.height);\\n    }\\n    if (scale < 1 || needsPowerOfTwo === true) {\\n      if (typeof HTMLImageElement !== \\\\\\\"undefined\\\\\\\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \\\\\\\"undefined\\\\\\\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \\\\\\\"undefined\\\\\\\" && image instanceof ImageBitmap) {\\n        const floor = needsPowerOfTwo ? floorPowerOfTwo : Math.floor;\\n        const width = floor(scale * image.width);\\n        const height = floor(scale * image.height);\\n        if (_canvas2 === void 0)\\n          _canvas2 = createCanvas(width, height);\\n        const canvas = needsNewCanvas ? createCanvas(width, height) : _canvas2;\\n        canvas.width = width;\\n        canvas.height = height;\\n        const context = canvas.getContext(\\\\\\\"2d\\\\\\\");\\n        context.drawImage(image, 0, 0, width, height);\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: Texture has been resized from (\\\\\\\" + image.width + \\\\\\\"x\\\\\\\" + image.height + \\\\\\\") to (\\\\\\\" + width + \\\\\\\"x\\\\\\\" + height + \\\\\\\").\\\\\\\");\\n        return canvas;\\n      } else {\\n        if (\\\\\\\"data\\\\\\\" in image) {\\n          console.warn(\\\\\\\"THREE.WebGLRenderer: Image in DataTexture is too big (\\\\\\\" + image.width + \\\\\\\"x\\\\\\\" + image.height + \\\\\\\").\\\\\\\");\\n        }\\n        return image;\\n      }\\n    }\\n    return image;\\n  }\\n  function isPowerOfTwo2(image) {\\n    return isPowerOfTwo(image.width) && isPowerOfTwo(image.height);\\n  }\\n  function textureNeedsPowerOfTwo(texture) {\\n    if (isWebGL2)\\n      return false;\\n    return texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping || texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\\n  }\\n  function textureNeedsGenerateMipmaps(texture, supportsMips) {\\n    return texture.generateMipmaps && supportsMips && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\\n  }\\n  function generateMipmap(target, texture, width, height, depth2 = 1) {\\n    _gl.generateMipmap(target);\\n    const textureProperties = properties.get(texture);\\n    textureProperties.__maxMipLevel = Math.log2(Math.max(width, height, depth2));\\n  }\\n  function getInternalFormat(internalFormatName, glFormat, glType, encoding) {\\n    if (isWebGL2 === false)\\n      return glFormat;\\n    if (internalFormatName !== null) {\\n      if (_gl[internalFormatName] !== void 0)\\n        return _gl[internalFormatName];\\n      console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\\\\\\\" + internalFormatName + \\\\\\\"'\\\\\\\");\\n    }\\n    let internalFormat = glFormat;\\n    if (glFormat === _gl.RED) {\\n      if (glType === _gl.FLOAT)\\n        internalFormat = _gl.R32F;\\n      if (glType === _gl.HALF_FLOAT)\\n        internalFormat = _gl.R16F;\\n      if (glType === _gl.UNSIGNED_BYTE)\\n        internalFormat = _gl.R8;\\n    }\\n    if (glFormat === _gl.RGB) {\\n      if (glType === _gl.FLOAT)\\n        internalFormat = _gl.RGB32F;\\n      if (glType === _gl.HALF_FLOAT)\\n        internalFormat = _gl.RGB16F;\\n      if (glType === _gl.UNSIGNED_BYTE)\\n        internalFormat = _gl.RGB8;\\n    }\\n    if (glFormat === _gl.RGBA) {\\n      if (glType === _gl.FLOAT)\\n        internalFormat = _gl.RGBA32F;\\n      if (glType === _gl.HALF_FLOAT)\\n        internalFormat = _gl.RGBA16F;\\n      if (glType === _gl.UNSIGNED_BYTE)\\n        internalFormat = encoding === sRGBEncoding ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\\n    }\\n    if (internalFormat === _gl.R16F || internalFormat === _gl.R32F || internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F) {\\n      extensions.get(\\\\\\\"EXT_color_buffer_float\\\\\\\");\\n    }\\n    return internalFormat;\\n  }\\n  function filterFallback(f) {\\n    if (f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter) {\\n      return _gl.NEAREST;\\n    }\\n    return _gl.LINEAR;\\n  }\\n  function onTextureDispose(event) {\\n    const texture = event.target;\\n    texture.removeEventListener(\\\\\\\"dispose\\\\\\\", onTextureDispose);\\n    deallocateTexture(texture);\\n    if (texture.isVideoTexture) {\\n      _videoTextures.delete(texture);\\n    }\\n    info.memory.textures--;\\n  }\\n  function onRenderTargetDispose(event) {\\n    const renderTarget = event.target;\\n    renderTarget.removeEventListener(\\\\\\\"dispose\\\\\\\", onRenderTargetDispose);\\n    deallocateRenderTarget(renderTarget);\\n  }\\n  function deallocateTexture(texture) {\\n    const textureProperties = properties.get(texture);\\n    if (textureProperties.__webglInit === void 0)\\n      return;\\n    _gl.deleteTexture(textureProperties.__webglTexture);\\n    properties.remove(texture);\\n  }\\n  function deallocateRenderTarget(renderTarget) {\\n    const texture = renderTarget.texture;\\n    const renderTargetProperties = properties.get(renderTarget);\\n    const textureProperties = properties.get(texture);\\n    if (!renderTarget)\\n      return;\\n    if (textureProperties.__webglTexture !== void 0) {\\n      _gl.deleteTexture(textureProperties.__webglTexture);\\n      info.memory.textures--;\\n    }\\n    if (renderTarget.depthTexture) {\\n      renderTarget.depthTexture.dispose();\\n    }\\n    if (renderTarget.isWebGLCubeRenderTarget) {\\n      for (let i = 0; i < 6; i++) {\\n        _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\\n        if (renderTargetProperties.__webglDepthbuffer)\\n          _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\\n      }\\n    } else {\\n      _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\\n      if (renderTargetProperties.__webglDepthbuffer)\\n        _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\\n      if (renderTargetProperties.__webglMultisampledFramebuffer)\\n        _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);\\n      if (renderTargetProperties.__webglColorRenderbuffer)\\n        _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer);\\n      if (renderTargetProperties.__webglDepthRenderbuffer)\\n        _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer);\\n    }\\n    if (renderTarget.isWebGLMultipleRenderTargets) {\\n      for (let i = 0, il = texture.length; i < il; i++) {\\n        const attachmentProperties = properties.get(texture[i]);\\n        if (attachmentProperties.__webglTexture) {\\n          _gl.deleteTexture(attachmentProperties.__webglTexture);\\n          info.memory.textures--;\\n        }\\n        properties.remove(texture[i]);\\n      }\\n    }\\n    properties.remove(texture);\\n    properties.remove(renderTarget);\\n  }\\n  let textureUnits = 0;\\n  function resetTextureUnits() {\\n    textureUnits = 0;\\n  }\\n  function allocateTextureUnit() {\\n    const textureUnit = textureUnits;\\n    if (textureUnit >= maxTextures) {\\n      console.warn(\\\\\\\"THREE.WebGLTextures: Trying to use \\\\\\\" + textureUnit + \\\\\\\" texture units while this GPU supports only \\\\\\\" + maxTextures);\\n    }\\n    textureUnits += 1;\\n    return textureUnit;\\n  }\\n  function setTexture2D(texture, slot) {\\n    const textureProperties = properties.get(texture);\\n    if (texture.isVideoTexture)\\n      updateVideoTexture(texture);\\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\\n      const image = texture.image;\\n      if (image === void 0) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: Texture marked for update but image is undefined\\\\\\\");\\n      } else if (image.complete === false) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\\\\\\\");\\n      } else {\\n        uploadTexture(textureProperties, texture, slot);\\n        return;\\n      }\\n    }\\n    state.activeTexture(_gl.TEXTURE0 + slot);\\n    state.bindTexture(_gl.TEXTURE_2D, textureProperties.__webglTexture);\\n  }\\n  function setTexture2DArray(texture, slot) {\\n    const textureProperties = properties.get(texture);\\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\\n      uploadTexture(textureProperties, texture, slot);\\n      return;\\n    }\\n    state.activeTexture(_gl.TEXTURE0 + slot);\\n    state.bindTexture(_gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture);\\n  }\\n  function setTexture3D(texture, slot) {\\n    const textureProperties = properties.get(texture);\\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\\n      uploadTexture(textureProperties, texture, slot);\\n      return;\\n    }\\n    state.activeTexture(_gl.TEXTURE0 + slot);\\n    state.bindTexture(_gl.TEXTURE_3D, textureProperties.__webglTexture);\\n  }\\n  function setTextureCube(texture, slot) {\\n    const textureProperties = properties.get(texture);\\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\\n      uploadCubeTexture(textureProperties, texture, slot);\\n      return;\\n    }\\n    state.activeTexture(_gl.TEXTURE0 + slot);\\n    state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\\n  }\\n  const wrappingToGL = {\\n    [RepeatWrapping]: _gl.REPEAT,\\n    [ClampToEdgeWrapping]: _gl.CLAMP_TO_EDGE,\\n    [MirroredRepeatWrapping]: _gl.MIRRORED_REPEAT\\n  };\\n  const filterToGL = {\\n    [NearestFilter]: _gl.NEAREST,\\n    [NearestMipmapNearestFilter]: _gl.NEAREST_MIPMAP_NEAREST,\\n    [NearestMipmapLinearFilter]: _gl.NEAREST_MIPMAP_LINEAR,\\n    [LinearFilter]: _gl.LINEAR,\\n    [LinearMipmapNearestFilter]: _gl.LINEAR_MIPMAP_NEAREST,\\n    [LinearMipmapLinearFilter]: _gl.LINEAR_MIPMAP_LINEAR\\n  };\\n  function setTextureParameters(textureType, texture, supportsMips) {\\n    if (supportsMips) {\\n      _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[texture.wrapS]);\\n      _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[texture.wrapT]);\\n      if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\\n        _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[texture.wrapR]);\\n      }\\n      _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[texture.magFilter]);\\n      _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[texture.minFilter]);\\n    } else {\\n      _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE);\\n      _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE);\\n      if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\\n        _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, _gl.CLAMP_TO_EDGE);\\n      }\\n      if (texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\\\\\\\");\\n      }\\n      _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterFallback(texture.magFilter));\\n      _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterFallback(texture.minFilter));\\n      if (texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\\\\\\\");\\n      }\\n    }\\n    if (extensions.has(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\") === true) {\\n      const extension = extensions.get(\\\\\\\"EXT_texture_filter_anisotropic\\\\\\\");\\n      if (texture.type === FloatType && extensions.has(\\\\\\\"OES_texture_float_linear\\\\\\\") === false)\\n        return;\\n      if (isWebGL2 === false && (texture.type === HalfFloatType && extensions.has(\\\\\\\"OES_texture_half_float_linear\\\\\\\") === false))\\n        return;\\n      if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\\n        _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\\n        properties.get(texture).__currentAnisotropy = texture.anisotropy;\\n      }\\n    }\\n  }\\n  function initTexture(textureProperties, texture) {\\n    if (textureProperties.__webglInit === void 0) {\\n      textureProperties.__webglInit = true;\\n      texture.addEventListener(\\\\\\\"dispose\\\\\\\", onTextureDispose);\\n      textureProperties.__webglTexture = _gl.createTexture();\\n      info.memory.textures++;\\n    }\\n  }\\n  function uploadTexture(textureProperties, texture, slot) {\\n    let textureType = _gl.TEXTURE_2D;\\n    if (texture.isDataTexture2DArray)\\n      textureType = _gl.TEXTURE_2D_ARRAY;\\n    if (texture.isDataTexture3D)\\n      textureType = _gl.TEXTURE_3D;\\n    initTexture(textureProperties, texture);\\n    state.activeTexture(_gl.TEXTURE0 + slot);\\n    state.bindTexture(textureType, textureProperties.__webglTexture);\\n    _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\\n    _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\\n    _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\\n    _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE);\\n    const needsPowerOfTwo = textureNeedsPowerOfTwo(texture) && isPowerOfTwo2(texture.image) === false;\\n    const image = resizeImage(texture.image, needsPowerOfTwo, false, maxTextureSize);\\n    const supportsMips = isPowerOfTwo2(image) || isWebGL2, glFormat = utils.convert(texture.format);\\n    let glType = utils.convert(texture.type), glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\\n    setTextureParameters(textureType, texture, supportsMips);\\n    let mipmap;\\n    const mipmaps = texture.mipmaps;\\n    if (texture.isDepthTexture) {\\n      glInternalFormat = _gl.DEPTH_COMPONENT;\\n      if (isWebGL2) {\\n        if (texture.type === FloatType) {\\n          glInternalFormat = _gl.DEPTH_COMPONENT32F;\\n        } else if (texture.type === UnsignedIntType) {\\n          glInternalFormat = _gl.DEPTH_COMPONENT24;\\n        } else if (texture.type === UnsignedInt248Type) {\\n          glInternalFormat = _gl.DEPTH24_STENCIL8;\\n        } else {\\n          glInternalFormat = _gl.DEPTH_COMPONENT16;\\n        }\\n      } else {\\n        if (texture.type === FloatType) {\\n          console.error(\\\\\\\"WebGLRenderer: Floating point depth texture requires WebGL2.\\\\\\\");\\n        }\\n      }\\n      if (texture.format === DepthFormat && glInternalFormat === _gl.DEPTH_COMPONENT) {\\n        if (texture.type !== UnsignedShortType && texture.type !== UnsignedIntType) {\\n          console.warn(\\\\\\\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\\\\\\\");\\n          texture.type = UnsignedShortType;\\n          glType = utils.convert(texture.type);\\n        }\\n      }\\n      if (texture.format === DepthStencilFormat && glInternalFormat === _gl.DEPTH_COMPONENT) {\\n        glInternalFormat = _gl.DEPTH_STENCIL;\\n        if (texture.type !== UnsignedInt248Type) {\\n          console.warn(\\\\\\\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\\\\\\\");\\n          texture.type = UnsignedInt248Type;\\n          glType = utils.convert(texture.type);\\n        }\\n      }\\n      state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\\n    } else if (texture.isDataTexture) {\\n      if (mipmaps.length > 0 && supportsMips) {\\n        for (let i = 0, il = mipmaps.length; i < il; i++) {\\n          mipmap = mipmaps[i];\\n          state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\\n        }\\n        texture.generateMipmaps = false;\\n        textureProperties.__maxMipLevel = mipmaps.length - 1;\\n      } else {\\n        state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\\n        textureProperties.__maxMipLevel = 0;\\n      }\\n    } else if (texture.isCompressedTexture) {\\n      for (let i = 0, il = mipmaps.length; i < il; i++) {\\n        mipmap = mipmaps[i];\\n        if (texture.format !== RGBAFormat && texture.format !== RGBFormat) {\\n          if (glFormat !== null) {\\n            state.compressedTexImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\\n          } else {\\n            console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\\\\\\\");\\n          }\\n        } else {\\n          state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\\n        }\\n      }\\n      textureProperties.__maxMipLevel = mipmaps.length - 1;\\n    } else if (texture.isDataTexture2DArray) {\\n      state.texImage3D(_gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\\n      textureProperties.__maxMipLevel = 0;\\n    } else if (texture.isDataTexture3D) {\\n      state.texImage3D(_gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\\n      textureProperties.__maxMipLevel = 0;\\n    } else {\\n      if (mipmaps.length > 0 && supportsMips) {\\n        for (let i = 0, il = mipmaps.length; i < il; i++) {\\n          mipmap = mipmaps[i];\\n          state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap);\\n        }\\n        texture.generateMipmaps = false;\\n        textureProperties.__maxMipLevel = mipmaps.length - 1;\\n      } else {\\n        state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image);\\n        textureProperties.__maxMipLevel = 0;\\n      }\\n    }\\n    if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\\n      generateMipmap(textureType, texture, image.width, image.height);\\n    }\\n    textureProperties.__version = texture.version;\\n    if (texture.onUpdate)\\n      texture.onUpdate(texture);\\n  }\\n  function uploadCubeTexture(textureProperties, texture, slot) {\\n    if (texture.image.length !== 6)\\n      return;\\n    initTexture(textureProperties, texture);\\n    state.activeTexture(_gl.TEXTURE0 + slot);\\n    state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\\n    _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\\n    _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\\n    _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\\n    _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, _gl.NONE);\\n    const isCompressed = texture && (texture.isCompressedTexture || texture.image[0].isCompressedTexture);\\n    const isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\\n    const cubeImage = [];\\n    for (let i = 0; i < 6; i++) {\\n      if (!isCompressed && !isDataTexture) {\\n        cubeImage[i] = resizeImage(texture.image[i], false, true, maxCubemapSize);\\n      } else {\\n        cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\\n      }\\n    }\\n    const image = cubeImage[0], supportsMips = isPowerOfTwo2(image) || isWebGL2, glFormat = utils.convert(texture.format), glType = utils.convert(texture.type), glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\\n    setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture, supportsMips);\\n    let mipmaps;\\n    if (isCompressed) {\\n      for (let i = 0; i < 6; i++) {\\n        mipmaps = cubeImage[i].mipmaps;\\n        for (let j = 0; j < mipmaps.length; j++) {\\n          const mipmap = mipmaps[j];\\n          if (texture.format !== RGBAFormat && texture.format !== RGBFormat) {\\n            if (glFormat !== null) {\\n              state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\\n            } else {\\n              console.warn(\\\\\\\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\\\\\\\");\\n            }\\n          } else {\\n            state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\\n          }\\n        }\\n      }\\n      textureProperties.__maxMipLevel = mipmaps.length - 1;\\n    } else {\\n      mipmaps = texture.mipmaps;\\n      for (let i = 0; i < 6; i++) {\\n        if (isDataTexture) {\\n          state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[i].width, cubeImage[i].height, 0, glFormat, glType, cubeImage[i].data);\\n          for (let j = 0; j < mipmaps.length; j++) {\\n            const mipmap = mipmaps[j];\\n            const mipmapImage = mipmap.image[i].image;\\n            state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\\n          }\\n        } else {\\n          state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[i]);\\n          for (let j = 0; j < mipmaps.length; j++) {\\n            const mipmap = mipmaps[j];\\n            state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[i]);\\n          }\\n        }\\n      }\\n      textureProperties.__maxMipLevel = mipmaps.length;\\n    }\\n    if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\\n      generateMipmap(_gl.TEXTURE_CUBE_MAP, texture, image.width, image.height);\\n    }\\n    textureProperties.__version = texture.version;\\n    if (texture.onUpdate)\\n      texture.onUpdate(texture);\\n  }\\n  function setupFrameBufferTexture(framebuffer, renderTarget, texture, attachment, textureTarget) {\\n    const glFormat = utils.convert(texture.format);\\n    const glType = utils.convert(texture.type);\\n    const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\\n    if (textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY) {\\n      state.texImage3D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, renderTarget.depth, 0, glFormat, glType, null);\\n    } else {\\n      state.texImage2D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null);\\n    }\\n    state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\\n    _gl.framebufferTexture2D(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0);\\n    state.bindFramebuffer(_gl.FRAMEBUFFER, null);\\n  }\\n  function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\\n    _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\\n    if (renderTarget.depthBuffer && !renderTarget.stencilBuffer) {\\n      let glInternalFormat = _gl.DEPTH_COMPONENT16;\\n      if (isMultisample) {\\n        const depthTexture = renderTarget.depthTexture;\\n        if (depthTexture && depthTexture.isDepthTexture) {\\n          if (depthTexture.type === FloatType) {\\n            glInternalFormat = _gl.DEPTH_COMPONENT32F;\\n          } else if (depthTexture.type === UnsignedIntType) {\\n            glInternalFormat = _gl.DEPTH_COMPONENT24;\\n          }\\n        }\\n        const samples = getRenderTargetSamples(renderTarget);\\n        _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\\n      } else {\\n        _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\\n      }\\n      _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer);\\n    } else if (renderTarget.depthBuffer && renderTarget.stencilBuffer) {\\n      if (isMultisample) {\\n        const samples = getRenderTargetSamples(renderTarget);\\n        _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, _gl.DEPTH24_STENCIL8, renderTarget.width, renderTarget.height);\\n      } else {\\n        _gl.renderbufferStorage(_gl.RENDERBUFFER, _gl.DEPTH_STENCIL, renderTarget.width, renderTarget.height);\\n      }\\n      _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer);\\n    } else {\\n      const texture = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture[0] : renderTarget.texture;\\n      const glFormat = utils.convert(texture.format);\\n      const glType = utils.convert(texture.type);\\n      const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\\n      if (isMultisample) {\\n        const samples = getRenderTargetSamples(renderTarget);\\n        _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\\n      } else {\\n        _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\\n      }\\n    }\\n    _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\\n  }\\n  function setupDepthTexture(framebuffer, renderTarget) {\\n    const isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget;\\n    if (isCube)\\n      throw new Error(\\\\\\\"Depth Texture with cube render targets is not supported\\\\\\\");\\n    state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\\n    if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\\n      throw new Error(\\\\\\\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\\\\\\\");\\n    }\\n    if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\\n      renderTarget.depthTexture.image.width = renderTarget.width;\\n      renderTarget.depthTexture.image.height = renderTarget.height;\\n      renderTarget.depthTexture.needsUpdate = true;\\n    }\\n    setTexture2D(renderTarget.depthTexture, 0);\\n    const webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\\n    if (renderTarget.depthTexture.format === DepthFormat) {\\n      _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\\n    } else if (renderTarget.depthTexture.format === DepthStencilFormat) {\\n      _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\\n    } else {\\n      throw new Error(\\\\\\\"Unknown depthTexture format\\\\\\\");\\n    }\\n  }\\n  function setupDepthRenderbuffer(renderTarget) {\\n    const renderTargetProperties = properties.get(renderTarget);\\n    const isCube = renderTarget.isWebGLCubeRenderTarget === true;\\n    if (renderTarget.depthTexture) {\\n      if (isCube)\\n        throw new Error(\\\\\\\"target.depthTexture not supported in Cube render targets\\\\\\\");\\n      setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\\n    } else {\\n      if (isCube) {\\n        renderTargetProperties.__webglDepthbuffer = [];\\n        for (let i = 0; i < 6; i++) {\\n          state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[i]);\\n          renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\\n          setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false);\\n        }\\n      } else {\\n        state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\\n        renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\\n        setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false);\\n      }\\n    }\\n    state.bindFramebuffer(_gl.FRAMEBUFFER, null);\\n  }\\n  function setupRenderTarget(renderTarget) {\\n    const texture = renderTarget.texture;\\n    const renderTargetProperties = properties.get(renderTarget);\\n    const textureProperties = properties.get(texture);\\n    renderTarget.addEventListener(\\\\\\\"dispose\\\\\\\", onRenderTargetDispose);\\n    if (renderTarget.isWebGLMultipleRenderTargets !== true) {\\n      textureProperties.__webglTexture = _gl.createTexture();\\n      textureProperties.__version = texture.version;\\n      info.memory.textures++;\\n    }\\n    const isCube = renderTarget.isWebGLCubeRenderTarget === true;\\n    const isMultipleRenderTargets = renderTarget.isWebGLMultipleRenderTargets === true;\\n    const isMultisample = renderTarget.isWebGLMultisampleRenderTarget === true;\\n    const isRenderTarget3D = texture.isDataTexture3D || texture.isDataTexture2DArray;\\n    const supportsMips = isPowerOfTwo2(renderTarget) || isWebGL2;\\n    if (isWebGL2 && texture.format === RGBFormat && (texture.type === FloatType || texture.type === HalfFloatType)) {\\n      texture.format = RGBAFormat;\\n      console.warn(\\\\\\\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\\\\\\\");\\n    }\\n    if (isCube) {\\n      renderTargetProperties.__webglFramebuffer = [];\\n      for (let i = 0; i < 6; i++) {\\n        renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\\n      }\\n    } else {\\n      renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\\n      if (isMultipleRenderTargets) {\\n        if (capabilities.drawBuffers) {\\n          const textures = renderTarget.texture;\\n          for (let i = 0, il = textures.length; i < il; i++) {\\n            const attachmentProperties = properties.get(textures[i]);\\n            if (attachmentProperties.__webglTexture === void 0) {\\n              attachmentProperties.__webglTexture = _gl.createTexture();\\n              info.memory.textures++;\\n            }\\n          }\\n        } else {\\n          console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\\\\\\\");\\n        }\\n      } else if (isMultisample) {\\n        if (isWebGL2) {\\n          renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\\n          renderTargetProperties.__webglColorRenderbuffer = _gl.createRenderbuffer();\\n          _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer);\\n          const glFormat = utils.convert(texture.format);\\n          const glType = utils.convert(texture.type);\\n          const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.encoding);\\n          const samples = getRenderTargetSamples(renderTarget);\\n          _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\\n          state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\\n          _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer);\\n          _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\\n          if (renderTarget.depthBuffer) {\\n            renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\\n            setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\\n          }\\n          state.bindFramebuffer(_gl.FRAMEBUFFER, null);\\n        } else {\\n          console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\\\\\\\");\\n        }\\n      }\\n    }\\n    if (isCube) {\\n      state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\\n      setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture, supportsMips);\\n      for (let i = 0; i < 6; i++) {\\n        setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i);\\n      }\\n      if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\\n        generateMipmap(_gl.TEXTURE_CUBE_MAP, texture, renderTarget.width, renderTarget.height);\\n      }\\n      state.unbindTexture();\\n    } else if (isMultipleRenderTargets) {\\n      const textures = renderTarget.texture;\\n      for (let i = 0, il = textures.length; i < il; i++) {\\n        const attachment = textures[i];\\n        const attachmentProperties = properties.get(attachment);\\n        state.bindTexture(_gl.TEXTURE_2D, attachmentProperties.__webglTexture);\\n        setTextureParameters(_gl.TEXTURE_2D, attachment, supportsMips);\\n        setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D);\\n        if (textureNeedsGenerateMipmaps(attachment, supportsMips)) {\\n          generateMipmap(_gl.TEXTURE_2D, attachment, renderTarget.width, renderTarget.height);\\n        }\\n      }\\n      state.unbindTexture();\\n    } else {\\n      let glTextureType = _gl.TEXTURE_2D;\\n      if (isRenderTarget3D) {\\n        if (isWebGL2) {\\n          const isTexture3D = texture.isDataTexture3D;\\n          glTextureType = isTexture3D ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\\n        } else {\\n          console.warn(\\\\\\\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\\\\\\\");\\n        }\\n      }\\n      state.bindTexture(glTextureType, textureProperties.__webglTexture);\\n      setTextureParameters(glTextureType, texture, supportsMips);\\n      setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType);\\n      if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\\n        generateMipmap(glTextureType, texture, renderTarget.width, renderTarget.height, renderTarget.depth);\\n      }\\n      state.unbindTexture();\\n    }\\n    if (renderTarget.depthBuffer) {\\n      setupDepthRenderbuffer(renderTarget);\\n    }\\n  }\\n  function updateRenderTargetMipmap(renderTarget) {\\n    const supportsMips = isPowerOfTwo2(renderTarget) || isWebGL2;\\n    const textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [renderTarget.texture];\\n    for (let i = 0, il = textures.length; i < il; i++) {\\n      const texture = textures[i];\\n      if (textureNeedsGenerateMipmaps(texture, supportsMips)) {\\n        const target = renderTarget.isWebGLCubeRenderTarget ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D;\\n        const webglTexture = properties.get(texture).__webglTexture;\\n        state.bindTexture(target, webglTexture);\\n        generateMipmap(target, texture, renderTarget.width, renderTarget.height);\\n        state.unbindTexture();\\n      }\\n    }\\n  }\\n  function updateMultisampleRenderTarget(renderTarget) {\\n    if (renderTarget.isWebGLMultisampleRenderTarget) {\\n      if (isWebGL2) {\\n        const width = renderTarget.width;\\n        const height = renderTarget.height;\\n        let mask = _gl.COLOR_BUFFER_BIT;\\n        if (renderTarget.depthBuffer)\\n          mask |= _gl.DEPTH_BUFFER_BIT;\\n        if (renderTarget.stencilBuffer)\\n          mask |= _gl.STENCIL_BUFFER_BIT;\\n        const renderTargetProperties = properties.get(renderTarget);\\n        state.bindFramebuffer(_gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\\n        _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST);\\n        state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null);\\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\\n      } else {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\\\\\\\");\\n      }\\n    }\\n  }\\n  function getRenderTargetSamples(renderTarget) {\\n    return isWebGL2 && renderTarget.isWebGLMultisampleRenderTarget ? Math.min(maxSamples, renderTarget.samples) : 0;\\n  }\\n  function updateVideoTexture(texture) {\\n    const frame = info.render.frame;\\n    if (_videoTextures.get(texture) !== frame) {\\n      _videoTextures.set(texture, frame);\\n      texture.update();\\n    }\\n  }\\n  let warnedTexture2D = false;\\n  let warnedTextureCube = false;\\n  function safeSetTexture2D(texture, slot) {\\n    if (texture && texture.isWebGLRenderTarget) {\\n      if (warnedTexture2D === false) {\\n        console.warn(\\\\\\\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\\\\\\\");\\n        warnedTexture2D = true;\\n      }\\n      texture = texture.texture;\\n    }\\n    setTexture2D(texture, slot);\\n  }\\n  function safeSetTextureCube(texture, slot) {\\n    if (texture && texture.isWebGLCubeRenderTarget) {\\n      if (warnedTextureCube === false) {\\n        console.warn(\\\\\\\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\\\\\\\");\\n        warnedTextureCube = true;\\n      }\\n      texture = texture.texture;\\n    }\\n    setTextureCube(texture, slot);\\n  }\\n  this.allocateTextureUnit = allocateTextureUnit;\\n  this.resetTextureUnits = resetTextureUnits;\\n  this.setTexture2D = setTexture2D;\\n  this.setTexture2DArray = setTexture2DArray;\\n  this.setTexture3D = setTexture3D;\\n  this.setTextureCube = setTextureCube;\\n  this.setupRenderTarget = setupRenderTarget;\\n  this.updateRenderTargetMipmap = updateRenderTargetMipmap;\\n  this.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\\n  this.safeSetTexture2D = safeSetTexture2D;\\n  this.safeSetTextureCube = safeSetTextureCube;\\n}\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLUtils.js\\nfunction WebGLUtils(gl, extensions, capabilities) {\\n  const isWebGL2 = capabilities.isWebGL2;\\n  function convert(p) {\\n    let extension;\\n    if (p === UnsignedByteType)\\n      return gl.UNSIGNED_BYTE;\\n    if (p === UnsignedShort4444Type)\\n      return gl.UNSIGNED_SHORT_4_4_4_4;\\n    if (p === UnsignedShort5551Type)\\n      return gl.UNSIGNED_SHORT_5_5_5_1;\\n    if (p === UnsignedShort565Type)\\n      return gl.UNSIGNED_SHORT_5_6_5;\\n    if (p === ByteType)\\n      return gl.BYTE;\\n    if (p === ShortType)\\n      return gl.SHORT;\\n    if (p === UnsignedShortType)\\n      return gl.UNSIGNED_SHORT;\\n    if (p === IntType)\\n      return gl.INT;\\n    if (p === UnsignedIntType)\\n      return gl.UNSIGNED_INT;\\n    if (p === FloatType)\\n      return gl.FLOAT;\\n    if (p === HalfFloatType) {\\n      if (isWebGL2)\\n        return gl.HALF_FLOAT;\\n      extension = extensions.get(\\\\\\\"OES_texture_half_float\\\\\\\");\\n      if (extension !== null) {\\n        return extension.HALF_FLOAT_OES;\\n      } else {\\n        return null;\\n      }\\n    }\\n    if (p === AlphaFormat)\\n      return gl.ALPHA;\\n    if (p === RGBFormat)\\n      return gl.RGB;\\n    if (p === RGBAFormat)\\n      return gl.RGBA;\\n    if (p === LuminanceFormat)\\n      return gl.LUMINANCE;\\n    if (p === LuminanceAlphaFormat)\\n      return gl.LUMINANCE_ALPHA;\\n    if (p === DepthFormat)\\n      return gl.DEPTH_COMPONENT;\\n    if (p === DepthStencilFormat)\\n      return gl.DEPTH_STENCIL;\\n    if (p === RedFormat)\\n      return gl.RED;\\n    if (p === RedIntegerFormat)\\n      return gl.RED_INTEGER;\\n    if (p === RGFormat)\\n      return gl.RG;\\n    if (p === RGIntegerFormat)\\n      return gl.RG_INTEGER;\\n    if (p === RGBIntegerFormat)\\n      return gl.RGB_INTEGER;\\n    if (p === RGBAIntegerFormat)\\n      return gl.RGBA_INTEGER;\\n    if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {\\n      extension = extensions.get(\\\\\\\"WEBGL_compressed_texture_s3tc\\\\\\\");\\n      if (extension !== null) {\\n        if (p === RGB_S3TC_DXT1_Format)\\n          return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\\n        if (p === RGBA_S3TC_DXT1_Format)\\n          return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\\n        if (p === RGBA_S3TC_DXT3_Format)\\n          return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\\n        if (p === RGBA_S3TC_DXT5_Format)\\n          return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\\n      } else {\\n        return null;\\n      }\\n    }\\n    if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {\\n      extension = extensions.get(\\\\\\\"WEBGL_compressed_texture_pvrtc\\\\\\\");\\n      if (extension !== null) {\\n        if (p === RGB_PVRTC_4BPPV1_Format)\\n          return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\\n        if (p === RGB_PVRTC_2BPPV1_Format)\\n          return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\\n        if (p === RGBA_PVRTC_4BPPV1_Format)\\n          return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\\n        if (p === RGBA_PVRTC_2BPPV1_Format)\\n          return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\\n      } else {\\n        return null;\\n      }\\n    }\\n    if (p === RGB_ETC1_Format) {\\n      extension = extensions.get(\\\\\\\"WEBGL_compressed_texture_etc1\\\\\\\");\\n      if (extension !== null) {\\n        return extension.COMPRESSED_RGB_ETC1_WEBGL;\\n      } else {\\n        return null;\\n      }\\n    }\\n    if (p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) {\\n      extension = extensions.get(\\\\\\\"WEBGL_compressed_texture_etc\\\\\\\");\\n      if (extension !== null) {\\n        if (p === RGB_ETC2_Format)\\n          return extension.COMPRESSED_RGB8_ETC2;\\n        if (p === RGBA_ETC2_EAC_Format)\\n          return extension.COMPRESSED_RGBA8_ETC2_EAC;\\n      }\\n    }\\n    if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format || p === SRGB8_ALPHA8_ASTC_4x4_Format || p === SRGB8_ALPHA8_ASTC_5x4_Format || p === SRGB8_ALPHA8_ASTC_5x5_Format || p === SRGB8_ALPHA8_ASTC_6x5_Format || p === SRGB8_ALPHA8_ASTC_6x6_Format || p === SRGB8_ALPHA8_ASTC_8x5_Format || p === SRGB8_ALPHA8_ASTC_8x6_Format || p === SRGB8_ALPHA8_ASTC_8x8_Format || p === SRGB8_ALPHA8_ASTC_10x5_Format || p === SRGB8_ALPHA8_ASTC_10x6_Format || p === SRGB8_ALPHA8_ASTC_10x8_Format || p === SRGB8_ALPHA8_ASTC_10x10_Format || p === SRGB8_ALPHA8_ASTC_12x10_Format || p === SRGB8_ALPHA8_ASTC_12x12_Format) {\\n      extension = extensions.get(\\\\\\\"WEBGL_compressed_texture_astc\\\\\\\");\\n      if (extension !== null) {\\n        return p;\\n      } else {\\n        return null;\\n      }\\n    }\\n    if (p === RGBA_BPTC_Format) {\\n      extension = extensions.get(\\\\\\\"EXT_texture_compression_bptc\\\\\\\");\\n      if (extension !== null) {\\n        return p;\\n      } else {\\n        return null;\\n      }\\n    }\\n    if (p === UnsignedInt248Type) {\\n      if (isWebGL2)\\n        return gl.UNSIGNED_INT_24_8;\\n      extension = extensions.get(\\\\\\\"WEBGL_depth_texture\\\\\\\");\\n      if (extension !== null) {\\n        return extension.UNSIGNED_INT_24_8_WEBGL;\\n      } else {\\n        return null;\\n      }\\n    }\\n  }\\n  return {convert};\\n}\\n\\n// ../../../node_modules/three/src/cameras/ArrayCamera.js\\nvar ArrayCamera = class extends PerspectiveCamera {\\n  constructor(array = []) {\\n    super();\\n    this.cameras = array;\\n  }\\n};\\nArrayCamera.prototype.isArrayCamera = true;\\n\\n// ../../../node_modules/three/src/objects/Group.js\\nvar Group = class extends Object3D {\\n  constructor() {\\n    super();\\n    this.type = \\\\\\\"Group\\\\\\\";\\n  }\\n};\\nGroup.prototype.isGroup = true;\\n\\n// ../../../node_modules/three/src/renderers/webxr/WebXRController.js\\nvar _moveEvent = {type: \\\\\\\"move\\\\\\\"};\\nvar WebXRController = class {\\n  constructor() {\\n    this._targetRay = null;\\n    this._grip = null;\\n    this._hand = null;\\n  }\\n  getHandSpace() {\\n    if (this._hand === null) {\\n      this._hand = new Group();\\n      this._hand.matrixAutoUpdate = false;\\n      this._hand.visible = false;\\n      this._hand.joints = {};\\n      this._hand.inputState = {pinching: false};\\n    }\\n    return this._hand;\\n  }\\n  getTargetRaySpace() {\\n    if (this._targetRay === null) {\\n      this._targetRay = new Group();\\n      this._targetRay.matrixAutoUpdate = false;\\n      this._targetRay.visible = false;\\n      this._targetRay.hasLinearVelocity = false;\\n      this._targetRay.linearVelocity = new Vector3();\\n      this._targetRay.hasAngularVelocity = false;\\n      this._targetRay.angularVelocity = new Vector3();\\n    }\\n    return this._targetRay;\\n  }\\n  getGripSpace() {\\n    if (this._grip === null) {\\n      this._grip = new Group();\\n      this._grip.matrixAutoUpdate = false;\\n      this._grip.visible = false;\\n      this._grip.hasLinearVelocity = false;\\n      this._grip.linearVelocity = new Vector3();\\n      this._grip.hasAngularVelocity = false;\\n      this._grip.angularVelocity = new Vector3();\\n    }\\n    return this._grip;\\n  }\\n  dispatchEvent(event) {\\n    if (this._targetRay !== null) {\\n      this._targetRay.dispatchEvent(event);\\n    }\\n    if (this._grip !== null) {\\n      this._grip.dispatchEvent(event);\\n    }\\n    if (this._hand !== null) {\\n      this._hand.dispatchEvent(event);\\n    }\\n    return this;\\n  }\\n  disconnect(inputSource) {\\n    this.dispatchEvent({type: \\\\\\\"disconnected\\\\\\\", data: inputSource});\\n    if (this._targetRay !== null) {\\n      this._targetRay.visible = false;\\n    }\\n    if (this._grip !== null) {\\n      this._grip.visible = false;\\n    }\\n    if (this._hand !== null) {\\n      this._hand.visible = false;\\n    }\\n    return this;\\n  }\\n  update(inputSource, frame, referenceSpace) {\\n    let inputPose = null;\\n    let gripPose = null;\\n    let handPose = null;\\n    const targetRay = this._targetRay;\\n    const grip = this._grip;\\n    const hand = this._hand;\\n    if (inputSource && frame.session.visibilityState !== \\\\\\\"visible-blurred\\\\\\\") {\\n      if (targetRay !== null) {\\n        inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\\n        if (inputPose !== null) {\\n          targetRay.matrix.fromArray(inputPose.transform.matrix);\\n          targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale);\\n          if (inputPose.linearVelocity) {\\n            targetRay.hasLinearVelocity = true;\\n            targetRay.linearVelocity.copy(inputPose.linearVelocity);\\n          } else {\\n            targetRay.hasLinearVelocity = false;\\n          }\\n          if (inputPose.angularVelocity) {\\n            targetRay.hasAngularVelocity = true;\\n            targetRay.angularVelocity.copy(inputPose.angularVelocity);\\n          } else {\\n            targetRay.hasAngularVelocity = false;\\n          }\\n          this.dispatchEvent(_moveEvent);\\n        }\\n      }\\n      if (hand && inputSource.hand) {\\n        handPose = true;\\n        for (const inputjoint of inputSource.hand.values()) {\\n          const jointPose = frame.getJointPose(inputjoint, referenceSpace);\\n          if (hand.joints[inputjoint.jointName] === void 0) {\\n            const joint2 = new Group();\\n            joint2.matrixAutoUpdate = false;\\n            joint2.visible = false;\\n            hand.joints[inputjoint.jointName] = joint2;\\n            hand.add(joint2);\\n          }\\n          const joint = hand.joints[inputjoint.jointName];\\n          if (jointPose !== null) {\\n            joint.matrix.fromArray(jointPose.transform.matrix);\\n            joint.matrix.decompose(joint.position, joint.rotation, joint.scale);\\n            joint.jointRadius = jointPose.radius;\\n          }\\n          joint.visible = jointPose !== null;\\n        }\\n        const indexTip = hand.joints[\\\\\\\"index-finger-tip\\\\\\\"];\\n        const thumbTip = hand.joints[\\\\\\\"thumb-tip\\\\\\\"];\\n        const distance = indexTip.position.distanceTo(thumbTip.position);\\n        const distanceToPinch = 0.02;\\n        const threshold = 5e-3;\\n        if (hand.inputState.pinching && distance > distanceToPinch + threshold) {\\n          hand.inputState.pinching = false;\\n          this.dispatchEvent({\\n            type: \\\\\\\"pinchend\\\\\\\",\\n            handedness: inputSource.handedness,\\n            target: this\\n          });\\n        } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) {\\n          hand.inputState.pinching = true;\\n          this.dispatchEvent({\\n            type: \\\\\\\"pinchstart\\\\\\\",\\n            handedness: inputSource.handedness,\\n            target: this\\n          });\\n        }\\n      } else {\\n        if (grip !== null && inputSource.gripSpace) {\\n          gripPose = frame.getPose(inputSource.gripSpace, referenceSpace);\\n          if (gripPose !== null) {\\n            grip.matrix.fromArray(gripPose.transform.matrix);\\n            grip.matrix.decompose(grip.position, grip.rotation, grip.scale);\\n            if (gripPose.linearVelocity) {\\n              grip.hasLinearVelocity = true;\\n              grip.linearVelocity.copy(gripPose.linearVelocity);\\n            } else {\\n              grip.hasLinearVelocity = false;\\n            }\\n            if (gripPose.angularVelocity) {\\n              grip.hasAngularVelocity = true;\\n              grip.angularVelocity.copy(gripPose.angularVelocity);\\n            } else {\\n              grip.hasAngularVelocity = false;\\n            }\\n          }\\n        }\\n      }\\n    }\\n    if (targetRay !== null) {\\n      targetRay.visible = inputPose !== null;\\n    }\\n    if (grip !== null) {\\n      grip.visible = gripPose !== null;\\n    }\\n    if (hand !== null) {\\n      hand.visible = handPose !== null;\\n    }\\n    return this;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/renderers/webxr/WebXRManager.js\\nvar WebXRManager = class extends EventDispatcher {\\n  constructor(renderer, gl) {\\n    super();\\n    const scope = this;\\n    const state = renderer.state;\\n    let session = null;\\n    let framebufferScaleFactor = 1;\\n    let referenceSpace = null;\\n    let referenceSpaceType = \\\\\\\"local-floor\\\\\\\";\\n    let pose = null;\\n    let glBinding = null;\\n    let glFramebuffer = null;\\n    let glProjLayer = null;\\n    let glBaseLayer = null;\\n    let isMultisample = false;\\n    let glMultisampledFramebuffer = null;\\n    let glColorRenderbuffer = null;\\n    let glDepthRenderbuffer = null;\\n    let xrFrame = null;\\n    let depthStyle = null;\\n    let clearStyle = null;\\n    const controllers = [];\\n    const inputSourcesMap = new Map();\\n    const cameraL = new PerspectiveCamera();\\n    cameraL.layers.enable(1);\\n    cameraL.viewport = new Vector4();\\n    const cameraR = new PerspectiveCamera();\\n    cameraR.layers.enable(2);\\n    cameraR.viewport = new Vector4();\\n    const cameras = [cameraL, cameraR];\\n    const cameraVR = new ArrayCamera();\\n    cameraVR.layers.enable(1);\\n    cameraVR.layers.enable(2);\\n    let _currentDepthNear = null;\\n    let _currentDepthFar = null;\\n    this.cameraAutoUpdate = true;\\n    this.enabled = false;\\n    this.isPresenting = false;\\n    this.getController = function(index) {\\n      let controller = controllers[index];\\n      if (controller === void 0) {\\n        controller = new WebXRController();\\n        controllers[index] = controller;\\n      }\\n      return controller.getTargetRaySpace();\\n    };\\n    this.getControllerGrip = function(index) {\\n      let controller = controllers[index];\\n      if (controller === void 0) {\\n        controller = new WebXRController();\\n        controllers[index] = controller;\\n      }\\n      return controller.getGripSpace();\\n    };\\n    this.getHand = function(index) {\\n      let controller = controllers[index];\\n      if (controller === void 0) {\\n        controller = new WebXRController();\\n        controllers[index] = controller;\\n      }\\n      return controller.getHandSpace();\\n    };\\n    function onSessionEvent(event) {\\n      const controller = inputSourcesMap.get(event.inputSource);\\n      if (controller) {\\n        controller.dispatchEvent({type: event.type, data: event.inputSource});\\n      }\\n    }\\n    function onSessionEnd() {\\n      inputSourcesMap.forEach(function(controller, inputSource) {\\n        controller.disconnect(inputSource);\\n      });\\n      inputSourcesMap.clear();\\n      _currentDepthNear = null;\\n      _currentDepthFar = null;\\n      state.bindXRFramebuffer(null);\\n      renderer.setRenderTarget(renderer.getRenderTarget());\\n      if (glFramebuffer)\\n        gl.deleteFramebuffer(glFramebuffer);\\n      if (glMultisampledFramebuffer)\\n        gl.deleteFramebuffer(glMultisampledFramebuffer);\\n      if (glColorRenderbuffer)\\n        gl.deleteRenderbuffer(glColorRenderbuffer);\\n      if (glDepthRenderbuffer)\\n        gl.deleteRenderbuffer(glDepthRenderbuffer);\\n      glFramebuffer = null;\\n      glMultisampledFramebuffer = null;\\n      glColorRenderbuffer = null;\\n      glDepthRenderbuffer = null;\\n      glBaseLayer = null;\\n      glProjLayer = null;\\n      glBinding = null;\\n      session = null;\\n      animation.stop();\\n      scope.isPresenting = false;\\n      scope.dispatchEvent({type: \\\\\\\"sessionend\\\\\\\"});\\n    }\\n    this.setFramebufferScaleFactor = function(value) {\\n      framebufferScaleFactor = value;\\n      if (scope.isPresenting === true) {\\n        console.warn(\\\\\\\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\\\\\\\");\\n      }\\n    };\\n    this.setReferenceSpaceType = function(value) {\\n      referenceSpaceType = value;\\n      if (scope.isPresenting === true) {\\n        console.warn(\\\\\\\"THREE.WebXRManager: Cannot change reference space type while presenting.\\\\\\\");\\n      }\\n    };\\n    this.getReferenceSpace = function() {\\n      return referenceSpace;\\n    };\\n    this.getBaseLayer = function() {\\n      return glProjLayer !== null ? glProjLayer : glBaseLayer;\\n    };\\n    this.getBinding = function() {\\n      return glBinding;\\n    };\\n    this.getFrame = function() {\\n      return xrFrame;\\n    };\\n    this.getSession = function() {\\n      return session;\\n    };\\n    this.setSession = async function(value) {\\n      session = value;\\n      if (session !== null) {\\n        session.addEventListener(\\\\\\\"select\\\\\\\", onSessionEvent);\\n        session.addEventListener(\\\\\\\"selectstart\\\\\\\", onSessionEvent);\\n        session.addEventListener(\\\\\\\"selectend\\\\\\\", onSessionEvent);\\n        session.addEventListener(\\\\\\\"squeeze\\\\\\\", onSessionEvent);\\n        session.addEventListener(\\\\\\\"squeezestart\\\\\\\", onSessionEvent);\\n        session.addEventListener(\\\\\\\"squeezeend\\\\\\\", onSessionEvent);\\n        session.addEventListener(\\\\\\\"end\\\\\\\", onSessionEnd);\\n        session.addEventListener(\\\\\\\"inputsourceschange\\\\\\\", onInputSourcesChange);\\n        const attributes = gl.getContextAttributes();\\n        if (attributes.xrCompatible !== true) {\\n          await gl.makeXRCompatible();\\n        }\\n        if (session.renderState.layers === void 0) {\\n          const layerInit = {\\n            antialias: attributes.antialias,\\n            alpha: attributes.alpha,\\n            depth: attributes.depth,\\n            stencil: attributes.stencil,\\n            framebufferScaleFactor\\n          };\\n          glBaseLayer = new XRWebGLLayer(session, gl, layerInit);\\n          session.updateRenderState({baseLayer: glBaseLayer});\\n        } else if (gl instanceof WebGLRenderingContext) {\\n          const layerInit = {\\n            antialias: true,\\n            alpha: attributes.alpha,\\n            depth: attributes.depth,\\n            stencil: attributes.stencil,\\n            framebufferScaleFactor\\n          };\\n          glBaseLayer = new XRWebGLLayer(session, gl, layerInit);\\n          session.updateRenderState({layers: [glBaseLayer]});\\n        } else {\\n          isMultisample = attributes.antialias;\\n          let depthFormat = null;\\n          if (attributes.depth) {\\n            clearStyle = gl.DEPTH_BUFFER_BIT;\\n            if (attributes.stencil)\\n              clearStyle |= gl.STENCIL_BUFFER_BIT;\\n            depthStyle = attributes.stencil ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT;\\n            depthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\\n          }\\n          const projectionlayerInit = {\\n            colorFormat: attributes.alpha ? gl.RGBA8 : gl.RGB8,\\n            depthFormat,\\n            scaleFactor: framebufferScaleFactor\\n          };\\n          glBinding = new XRWebGLBinding(session, gl);\\n          glProjLayer = glBinding.createProjectionLayer(projectionlayerInit);\\n          glFramebuffer = gl.createFramebuffer();\\n          session.updateRenderState({layers: [glProjLayer]});\\n          if (isMultisample) {\\n            glMultisampledFramebuffer = gl.createFramebuffer();\\n            glColorRenderbuffer = gl.createRenderbuffer();\\n            gl.bindRenderbuffer(gl.RENDERBUFFER, glColorRenderbuffer);\\n            gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 4, gl.RGBA8, glProjLayer.textureWidth, glProjLayer.textureHeight);\\n            state.bindFramebuffer(gl.FRAMEBUFFER, glMultisampledFramebuffer);\\n            gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, glColorRenderbuffer);\\n            gl.bindRenderbuffer(gl.RENDERBUFFER, null);\\n            if (depthFormat !== null) {\\n              glDepthRenderbuffer = gl.createRenderbuffer();\\n              gl.bindRenderbuffer(gl.RENDERBUFFER, glDepthRenderbuffer);\\n              gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 4, depthFormat, glProjLayer.textureWidth, glProjLayer.textureHeight);\\n              gl.framebufferRenderbuffer(gl.FRAMEBUFFER, depthStyle, gl.RENDERBUFFER, glDepthRenderbuffer);\\n              gl.bindRenderbuffer(gl.RENDERBUFFER, null);\\n            }\\n            state.bindFramebuffer(gl.FRAMEBUFFER, null);\\n          }\\n        }\\n        referenceSpace = await session.requestReferenceSpace(referenceSpaceType);\\n        animation.setContext(session);\\n        animation.start();\\n        scope.isPresenting = true;\\n        scope.dispatchEvent({type: \\\\\\\"sessionstart\\\\\\\"});\\n      }\\n    };\\n    function onInputSourcesChange(event) {\\n      const inputSources = session.inputSources;\\n      for (let i = 0; i < controllers.length; i++) {\\n        inputSourcesMap.set(inputSources[i], controllers[i]);\\n      }\\n      for (let i = 0; i < event.removed.length; i++) {\\n        const inputSource = event.removed[i];\\n        const controller = inputSourcesMap.get(inputSource);\\n        if (controller) {\\n          controller.dispatchEvent({type: \\\\\\\"disconnected\\\\\\\", data: inputSource});\\n          inputSourcesMap.delete(inputSource);\\n        }\\n      }\\n      for (let i = 0; i < event.added.length; i++) {\\n        const inputSource = event.added[i];\\n        const controller = inputSourcesMap.get(inputSource);\\n        if (controller) {\\n          controller.dispatchEvent({type: \\\\\\\"connected\\\\\\\", data: inputSource});\\n        }\\n      }\\n    }\\n    const cameraLPos = new Vector3();\\n    const cameraRPos = new Vector3();\\n    function setProjectionFromUnion(camera, cameraL2, cameraR2) {\\n      cameraLPos.setFromMatrixPosition(cameraL2.matrixWorld);\\n      cameraRPos.setFromMatrixPosition(cameraR2.matrixWorld);\\n      const ipd = cameraLPos.distanceTo(cameraRPos);\\n      const projL = cameraL2.projectionMatrix.elements;\\n      const projR = cameraR2.projectionMatrix.elements;\\n      const near = projL[14] / (projL[10] - 1);\\n      const far = projL[14] / (projL[10] + 1);\\n      const topFov = (projL[9] + 1) / projL[5];\\n      const bottomFov = (projL[9] - 1) / projL[5];\\n      const leftFov = (projL[8] - 1) / projL[0];\\n      const rightFov = (projR[8] + 1) / projR[0];\\n      const left = near * leftFov;\\n      const right = near * rightFov;\\n      const zOffset = ipd / (-leftFov + rightFov);\\n      const xOffset = zOffset * -leftFov;\\n      cameraL2.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\\n      camera.translateX(xOffset);\\n      camera.translateZ(zOffset);\\n      camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\\n      camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\\n      const near2 = near + zOffset;\\n      const far2 = far + zOffset;\\n      const left2 = left - xOffset;\\n      const right2 = right + (ipd - xOffset);\\n      const top2 = topFov * far / far2 * near2;\\n      const bottom2 = bottomFov * far / far2 * near2;\\n      camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\\n    }\\n    function updateCamera(camera, parent) {\\n      if (parent === null) {\\n        camera.matrixWorld.copy(camera.matrix);\\n      } else {\\n        camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\\n      }\\n      camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\\n    }\\n    this.updateCamera = function(camera) {\\n      if (session === null)\\n        return;\\n      cameraVR.near = cameraR.near = cameraL.near = camera.near;\\n      cameraVR.far = cameraR.far = cameraL.far = camera.far;\\n      if (_currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far) {\\n        session.updateRenderState({\\n          depthNear: cameraVR.near,\\n          depthFar: cameraVR.far\\n        });\\n        _currentDepthNear = cameraVR.near;\\n        _currentDepthFar = cameraVR.far;\\n      }\\n      const parent = camera.parent;\\n      const cameras2 = cameraVR.cameras;\\n      updateCamera(cameraVR, parent);\\n      for (let i = 0; i < cameras2.length; i++) {\\n        updateCamera(cameras2[i], parent);\\n      }\\n      cameraVR.matrixWorld.decompose(cameraVR.position, cameraVR.quaternion, cameraVR.scale);\\n      camera.position.copy(cameraVR.position);\\n      camera.quaternion.copy(cameraVR.quaternion);\\n      camera.scale.copy(cameraVR.scale);\\n      camera.matrix.copy(cameraVR.matrix);\\n      camera.matrixWorld.copy(cameraVR.matrixWorld);\\n      const children = camera.children;\\n      for (let i = 0, l = children.length; i < l; i++) {\\n        children[i].updateMatrixWorld(true);\\n      }\\n      if (cameras2.length === 2) {\\n        setProjectionFromUnion(cameraVR, cameraL, cameraR);\\n      } else {\\n        cameraVR.projectionMatrix.copy(cameraL.projectionMatrix);\\n      }\\n    };\\n    this.getCamera = function() {\\n      return cameraVR;\\n    };\\n    this.getFoveation = function() {\\n      if (glProjLayer !== null) {\\n        return glProjLayer.fixedFoveation;\\n      }\\n      if (glBaseLayer !== null) {\\n        return glBaseLayer.fixedFoveation;\\n      }\\n      return void 0;\\n    };\\n    this.setFoveation = function(foveation) {\\n      if (glProjLayer !== null) {\\n        glProjLayer.fixedFoveation = foveation;\\n      }\\n      if (glBaseLayer !== null && glBaseLayer.fixedFoveation !== void 0) {\\n        glBaseLayer.fixedFoveation = foveation;\\n      }\\n    };\\n    let onAnimationFrameCallback = null;\\n    function onAnimationFrame(time, frame) {\\n      pose = frame.getViewerPose(referenceSpace);\\n      xrFrame = frame;\\n      if (pose !== null) {\\n        const views = pose.views;\\n        if (glBaseLayer !== null) {\\n          state.bindXRFramebuffer(glBaseLayer.framebuffer);\\n        }\\n        let cameraVRNeedsUpdate = false;\\n        if (views.length !== cameraVR.cameras.length) {\\n          cameraVR.cameras.length = 0;\\n          cameraVRNeedsUpdate = true;\\n        }\\n        for (let i = 0; i < views.length; i++) {\\n          const view = views[i];\\n          let viewport = null;\\n          if (glBaseLayer !== null) {\\n            viewport = glBaseLayer.getViewport(view);\\n          } else {\\n            const glSubImage = glBinding.getViewSubImage(glProjLayer, view);\\n            state.bindXRFramebuffer(glFramebuffer);\\n            if (glSubImage.depthStencilTexture !== void 0) {\\n              gl.framebufferTexture2D(gl.FRAMEBUFFER, depthStyle, gl.TEXTURE_2D, glSubImage.depthStencilTexture, 0);\\n            }\\n            gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, glSubImage.colorTexture, 0);\\n            viewport = glSubImage.viewport;\\n          }\\n          const camera = cameras[i];\\n          camera.matrix.fromArray(view.transform.matrix);\\n          camera.projectionMatrix.fromArray(view.projectionMatrix);\\n          camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\\n          if (i === 0) {\\n            cameraVR.matrix.copy(camera.matrix);\\n          }\\n          if (cameraVRNeedsUpdate === true) {\\n            cameraVR.cameras.push(camera);\\n          }\\n        }\\n        if (isMultisample) {\\n          state.bindXRFramebuffer(glMultisampledFramebuffer);\\n          if (clearStyle !== null)\\n            gl.clear(clearStyle);\\n        }\\n      }\\n      const inputSources = session.inputSources;\\n      for (let i = 0; i < controllers.length; i++) {\\n        const controller = controllers[i];\\n        const inputSource = inputSources[i];\\n        controller.update(inputSource, frame, referenceSpace);\\n      }\\n      if (onAnimationFrameCallback)\\n        onAnimationFrameCallback(time, frame);\\n      if (isMultisample) {\\n        const width = glProjLayer.textureWidth;\\n        const height = glProjLayer.textureHeight;\\n        state.bindFramebuffer(gl.READ_FRAMEBUFFER, glMultisampledFramebuffer);\\n        state.bindFramebuffer(gl.DRAW_FRAMEBUFFER, glFramebuffer);\\n        gl.invalidateFramebuffer(gl.READ_FRAMEBUFFER, [depthStyle]);\\n        gl.invalidateFramebuffer(gl.DRAW_FRAMEBUFFER, [depthStyle]);\\n        gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\\n        gl.invalidateFramebuffer(gl.READ_FRAMEBUFFER, [gl.COLOR_ATTACHMENT0]);\\n        state.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\\n        state.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\\n        state.bindFramebuffer(gl.FRAMEBUFFER, glMultisampledFramebuffer);\\n      }\\n      xrFrame = null;\\n    }\\n    const animation = new WebGLAnimation();\\n    animation.setAnimationLoop(onAnimationFrame);\\n    this.setAnimationLoop = function(callback) {\\n      onAnimationFrameCallback = callback;\\n    };\\n    this.dispose = function() {\\n    };\\n  }\\n};\\n\\n// ../../../node_modules/three/src/renderers/webgl/WebGLMaterials.js\\nfunction WebGLMaterials(properties) {\\n  function refreshFogUniforms(uniforms, fog) {\\n    uniforms.fogColor.value.copy(fog.color);\\n    if (fog.isFog) {\\n      uniforms.fogNear.value = fog.near;\\n      uniforms.fogFar.value = fog.far;\\n    } else if (fog.isFogExp2) {\\n      uniforms.fogDensity.value = fog.density;\\n    }\\n  }\\n  function refreshMaterialUniforms(uniforms, material, pixelRatio, height, transmissionRenderTarget) {\\n    if (material.isMeshBasicMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n    } else if (material.isMeshLambertMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsLambert(uniforms, material);\\n    } else if (material.isMeshToonMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsToon(uniforms, material);\\n    } else if (material.isMeshPhongMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsPhong(uniforms, material);\\n    } else if (material.isMeshStandardMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      if (material.isMeshPhysicalMaterial) {\\n        refreshUniformsPhysical(uniforms, material, transmissionRenderTarget);\\n      } else {\\n        refreshUniformsStandard(uniforms, material);\\n      }\\n    } else if (material.isMeshMatcapMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsMatcap(uniforms, material);\\n    } else if (material.isMeshDepthMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsDepth(uniforms, material);\\n    } else if (material.isMeshDistanceMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsDistance(uniforms, material);\\n    } else if (material.isMeshNormalMaterial) {\\n      refreshUniformsCommon(uniforms, material);\\n      refreshUniformsNormal(uniforms, material);\\n    } else if (material.isLineBasicMaterial) {\\n      refreshUniformsLine(uniforms, material);\\n      if (material.isLineDashedMaterial) {\\n        refreshUniformsDash(uniforms, material);\\n      }\\n    } else if (material.isPointsMaterial) {\\n      refreshUniformsPoints(uniforms, material, pixelRatio, height);\\n    } else if (material.isSpriteMaterial) {\\n      refreshUniformsSprites(uniforms, material);\\n    } else if (material.isShadowMaterial) {\\n      uniforms.color.value.copy(material.color);\\n      uniforms.opacity.value = material.opacity;\\n    } else if (material.isShaderMaterial) {\\n      material.uniformsNeedUpdate = false;\\n    }\\n  }\\n  function refreshUniformsCommon(uniforms, material) {\\n    uniforms.opacity.value = material.opacity;\\n    if (material.color) {\\n      uniforms.diffuse.value.copy(material.color);\\n    }\\n    if (material.emissive) {\\n      uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\\n    }\\n    if (material.map) {\\n      uniforms.map.value = material.map;\\n    }\\n    if (material.alphaMap) {\\n      uniforms.alphaMap.value = material.alphaMap;\\n    }\\n    if (material.specularMap) {\\n      uniforms.specularMap.value = material.specularMap;\\n    }\\n    if (material.alphaTest > 0) {\\n      uniforms.alphaTest.value = material.alphaTest;\\n    }\\n    const envMap = properties.get(material).envMap;\\n    if (envMap) {\\n      uniforms.envMap.value = envMap;\\n      uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\\n      uniforms.reflectivity.value = material.reflectivity;\\n      uniforms.ior.value = material.ior;\\n      uniforms.refractionRatio.value = material.refractionRatio;\\n      const maxMipLevel = properties.get(envMap).__maxMipLevel;\\n      if (maxMipLevel !== void 0) {\\n        uniforms.maxMipLevel.value = maxMipLevel;\\n      }\\n    }\\n    if (material.lightMap) {\\n      uniforms.lightMap.value = material.lightMap;\\n      uniforms.lightMapIntensity.value = material.lightMapIntensity;\\n    }\\n    if (material.aoMap) {\\n      uniforms.aoMap.value = material.aoMap;\\n      uniforms.aoMapIntensity.value = material.aoMapIntensity;\\n    }\\n    let uvScaleMap;\\n    if (material.map) {\\n      uvScaleMap = material.map;\\n    } else if (material.specularMap) {\\n      uvScaleMap = material.specularMap;\\n    } else if (material.displacementMap) {\\n      uvScaleMap = material.displacementMap;\\n    } else if (material.normalMap) {\\n      uvScaleMap = material.normalMap;\\n    } else if (material.bumpMap) {\\n      uvScaleMap = material.bumpMap;\\n    } else if (material.roughnessMap) {\\n      uvScaleMap = material.roughnessMap;\\n    } else if (material.metalnessMap) {\\n      uvScaleMap = material.metalnessMap;\\n    } else if (material.alphaMap) {\\n      uvScaleMap = material.alphaMap;\\n    } else if (material.emissiveMap) {\\n      uvScaleMap = material.emissiveMap;\\n    } else if (material.clearcoatMap) {\\n      uvScaleMap = material.clearcoatMap;\\n    } else if (material.clearcoatNormalMap) {\\n      uvScaleMap = material.clearcoatNormalMap;\\n    } else if (material.clearcoatRoughnessMap) {\\n      uvScaleMap = material.clearcoatRoughnessMap;\\n    } else if (material.specularIntensityMap) {\\n      uvScaleMap = material.specularIntensityMap;\\n    } else if (material.specularTintMap) {\\n      uvScaleMap = material.specularTintMap;\\n    } else if (material.transmissionMap) {\\n      uvScaleMap = material.transmissionMap;\\n    } else if (material.thicknessMap) {\\n      uvScaleMap = material.thicknessMap;\\n    }\\n    if (uvScaleMap !== void 0) {\\n      if (uvScaleMap.isWebGLRenderTarget) {\\n        uvScaleMap = uvScaleMap.texture;\\n      }\\n      if (uvScaleMap.matrixAutoUpdate === true) {\\n        uvScaleMap.updateMatrix();\\n      }\\n      uniforms.uvTransform.value.copy(uvScaleMap.matrix);\\n    }\\n    let uv2ScaleMap;\\n    if (material.aoMap) {\\n      uv2ScaleMap = material.aoMap;\\n    } else if (material.lightMap) {\\n      uv2ScaleMap = material.lightMap;\\n    }\\n    if (uv2ScaleMap !== void 0) {\\n      if (uv2ScaleMap.isWebGLRenderTarget) {\\n        uv2ScaleMap = uv2ScaleMap.texture;\\n      }\\n      if (uv2ScaleMap.matrixAutoUpdate === true) {\\n        uv2ScaleMap.updateMatrix();\\n      }\\n      uniforms.uv2Transform.value.copy(uv2ScaleMap.matrix);\\n    }\\n  }\\n  function refreshUniformsLine(uniforms, material) {\\n    uniforms.diffuse.value.copy(material.color);\\n    uniforms.opacity.value = material.opacity;\\n  }\\n  function refreshUniformsDash(uniforms, material) {\\n    uniforms.dashSize.value = material.dashSize;\\n    uniforms.totalSize.value = material.dashSize + material.gapSize;\\n    uniforms.scale.value = material.scale;\\n  }\\n  function refreshUniformsPoints(uniforms, material, pixelRatio, height) {\\n    uniforms.diffuse.value.copy(material.color);\\n    uniforms.opacity.value = material.opacity;\\n    uniforms.size.value = material.size * pixelRatio;\\n    uniforms.scale.value = height * 0.5;\\n    if (material.map) {\\n      uniforms.map.value = material.map;\\n    }\\n    if (material.alphaMap) {\\n      uniforms.alphaMap.value = material.alphaMap;\\n    }\\n    if (material.alphaTest > 0) {\\n      uniforms.alphaTest.value = material.alphaTest;\\n    }\\n    let uvScaleMap;\\n    if (material.map) {\\n      uvScaleMap = material.map;\\n    } else if (material.alphaMap) {\\n      uvScaleMap = material.alphaMap;\\n    }\\n    if (uvScaleMap !== void 0) {\\n      if (uvScaleMap.matrixAutoUpdate === true) {\\n        uvScaleMap.updateMatrix();\\n      }\\n      uniforms.uvTransform.value.copy(uvScaleMap.matrix);\\n    }\\n  }\\n  function refreshUniformsSprites(uniforms, material) {\\n    uniforms.diffuse.value.copy(material.color);\\n    uniforms.opacity.value = material.opacity;\\n    uniforms.rotation.value = material.rotation;\\n    if (material.map) {\\n      uniforms.map.value = material.map;\\n    }\\n    if (material.alphaMap) {\\n      uniforms.alphaMap.value = material.alphaMap;\\n    }\\n    if (material.alphaTest > 0) {\\n      uniforms.alphaTest.value = material.alphaTest;\\n    }\\n    let uvScaleMap;\\n    if (material.map) {\\n      uvScaleMap = material.map;\\n    } else if (material.alphaMap) {\\n      uvScaleMap = material.alphaMap;\\n    }\\n    if (uvScaleMap !== void 0) {\\n      if (uvScaleMap.matrixAutoUpdate === true) {\\n        uvScaleMap.updateMatrix();\\n      }\\n      uniforms.uvTransform.value.copy(uvScaleMap.matrix);\\n    }\\n  }\\n  function refreshUniformsLambert(uniforms, material) {\\n    if (material.emissiveMap) {\\n      uniforms.emissiveMap.value = material.emissiveMap;\\n    }\\n  }\\n  function refreshUniformsPhong(uniforms, material) {\\n    uniforms.specular.value.copy(material.specular);\\n    uniforms.shininess.value = Math.max(material.shininess, 1e-4);\\n    if (material.emissiveMap) {\\n      uniforms.emissiveMap.value = material.emissiveMap;\\n    }\\n    if (material.bumpMap) {\\n      uniforms.bumpMap.value = material.bumpMap;\\n      uniforms.bumpScale.value = material.bumpScale;\\n      if (material.side === BackSide)\\n        uniforms.bumpScale.value *= -1;\\n    }\\n    if (material.normalMap) {\\n      uniforms.normalMap.value = material.normalMap;\\n      uniforms.normalScale.value.copy(material.normalScale);\\n      if (material.side === BackSide)\\n        uniforms.normalScale.value.negate();\\n    }\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n  }\\n  function refreshUniformsToon(uniforms, material) {\\n    if (material.gradientMap) {\\n      uniforms.gradientMap.value = material.gradientMap;\\n    }\\n    if (material.emissiveMap) {\\n      uniforms.emissiveMap.value = material.emissiveMap;\\n    }\\n    if (material.bumpMap) {\\n      uniforms.bumpMap.value = material.bumpMap;\\n      uniforms.bumpScale.value = material.bumpScale;\\n      if (material.side === BackSide)\\n        uniforms.bumpScale.value *= -1;\\n    }\\n    if (material.normalMap) {\\n      uniforms.normalMap.value = material.normalMap;\\n      uniforms.normalScale.value.copy(material.normalScale);\\n      if (material.side === BackSide)\\n        uniforms.normalScale.value.negate();\\n    }\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n  }\\n  function refreshUniformsStandard(uniforms, material) {\\n    uniforms.roughness.value = material.roughness;\\n    uniforms.metalness.value = material.metalness;\\n    if (material.roughnessMap) {\\n      uniforms.roughnessMap.value = material.roughnessMap;\\n    }\\n    if (material.metalnessMap) {\\n      uniforms.metalnessMap.value = material.metalnessMap;\\n    }\\n    if (material.emissiveMap) {\\n      uniforms.emissiveMap.value = material.emissiveMap;\\n    }\\n    if (material.bumpMap) {\\n      uniforms.bumpMap.value = material.bumpMap;\\n      uniforms.bumpScale.value = material.bumpScale;\\n      if (material.side === BackSide)\\n        uniforms.bumpScale.value *= -1;\\n    }\\n    if (material.normalMap) {\\n      uniforms.normalMap.value = material.normalMap;\\n      uniforms.normalScale.value.copy(material.normalScale);\\n      if (material.side === BackSide)\\n        uniforms.normalScale.value.negate();\\n    }\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n    const envMap = properties.get(material).envMap;\\n    if (envMap) {\\n      uniforms.envMapIntensity.value = material.envMapIntensity;\\n    }\\n  }\\n  function refreshUniformsPhysical(uniforms, material, transmissionRenderTarget) {\\n    refreshUniformsStandard(uniforms, material);\\n    uniforms.ior.value = material.ior;\\n    if (material.sheen > 0) {\\n      uniforms.sheenTint.value.copy(material.sheenTint).multiplyScalar(material.sheen);\\n      uniforms.sheenRoughness.value = material.sheenRoughness;\\n    }\\n    if (material.clearcoat > 0) {\\n      uniforms.clearcoat.value = material.clearcoat;\\n      uniforms.clearcoatRoughness.value = material.clearcoatRoughness;\\n      if (material.clearcoatMap) {\\n        uniforms.clearcoatMap.value = material.clearcoatMap;\\n      }\\n      if (material.clearcoatRoughnessMap) {\\n        uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\\n      }\\n      if (material.clearcoatNormalMap) {\\n        uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\\n        uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\\n        if (material.side === BackSide) {\\n          uniforms.clearcoatNormalScale.value.negate();\\n        }\\n      }\\n    }\\n    if (material.transmission > 0) {\\n      uniforms.transmission.value = material.transmission;\\n      uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\\n      uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width, transmissionRenderTarget.height);\\n      if (material.transmissionMap) {\\n        uniforms.transmissionMap.value = material.transmissionMap;\\n      }\\n      uniforms.thickness.value = material.thickness;\\n      if (material.thicknessMap) {\\n        uniforms.thicknessMap.value = material.thicknessMap;\\n      }\\n      uniforms.attenuationDistance.value = material.attenuationDistance;\\n      uniforms.attenuationTint.value.copy(material.attenuationTint);\\n    }\\n    uniforms.specularIntensity.value = material.specularIntensity;\\n    uniforms.specularTint.value.copy(material.specularTint);\\n    if (material.specularIntensityMap) {\\n      uniforms.specularIntensityMap.value = material.specularIntensityMap;\\n    }\\n    if (material.specularTintMap) {\\n      uniforms.specularTintMap.value = material.specularTintMap;\\n    }\\n  }\\n  function refreshUniformsMatcap(uniforms, material) {\\n    if (material.matcap) {\\n      uniforms.matcap.value = material.matcap;\\n    }\\n    if (material.bumpMap) {\\n      uniforms.bumpMap.value = material.bumpMap;\\n      uniforms.bumpScale.value = material.bumpScale;\\n      if (material.side === BackSide)\\n        uniforms.bumpScale.value *= -1;\\n    }\\n    if (material.normalMap) {\\n      uniforms.normalMap.value = material.normalMap;\\n      uniforms.normalScale.value.copy(material.normalScale);\\n      if (material.side === BackSide)\\n        uniforms.normalScale.value.negate();\\n    }\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n  }\\n  function refreshUniformsDepth(uniforms, material) {\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n  }\\n  function refreshUniformsDistance(uniforms, material) {\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n    uniforms.referencePosition.value.copy(material.referencePosition);\\n    uniforms.nearDistance.value = material.nearDistance;\\n    uniforms.farDistance.value = material.farDistance;\\n  }\\n  function refreshUniformsNormal(uniforms, material) {\\n    if (material.bumpMap) {\\n      uniforms.bumpMap.value = material.bumpMap;\\n      uniforms.bumpScale.value = material.bumpScale;\\n      if (material.side === BackSide)\\n        uniforms.bumpScale.value *= -1;\\n    }\\n    if (material.normalMap) {\\n      uniforms.normalMap.value = material.normalMap;\\n      uniforms.normalScale.value.copy(material.normalScale);\\n      if (material.side === BackSide)\\n        uniforms.normalScale.value.negate();\\n    }\\n    if (material.displacementMap) {\\n      uniforms.displacementMap.value = material.displacementMap;\\n      uniforms.displacementScale.value = material.displacementScale;\\n      uniforms.displacementBias.value = material.displacementBias;\\n    }\\n  }\\n  return {\\n    refreshFogUniforms,\\n    refreshMaterialUniforms\\n  };\\n}\\n\\n// ../../../node_modules/three/src/renderers/WebGLRenderer.js\\nfunction createCanvasElement() {\\n  const canvas = createElementNS(\\\\\\\"canvas\\\\\\\");\\n  canvas.style.display = \\\\\\\"block\\\\\\\";\\n  return canvas;\\n}\\nfunction WebGLRenderer(parameters = {}) {\\n  const _canvas2 = parameters.canvas !== void 0 ? parameters.canvas : createCanvasElement(), _context2 = parameters.context !== void 0 ? parameters.context : null, _alpha = parameters.alpha !== void 0 ? parameters.alpha : false, _depth = parameters.depth !== void 0 ? parameters.depth : true, _stencil = parameters.stencil !== void 0 ? parameters.stencil : true, _antialias = parameters.antialias !== void 0 ? parameters.antialias : false, _premultipliedAlpha = parameters.premultipliedAlpha !== void 0 ? parameters.premultipliedAlpha : true, _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== void 0 ? parameters.preserveDrawingBuffer : false, _powerPreference = parameters.powerPreference !== void 0 ? parameters.powerPreference : \\\\\\\"default\\\\\\\", _failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== void 0 ? parameters.failIfMajorPerformanceCaveat : false;\\n  let currentRenderList = null;\\n  let currentRenderState = null;\\n  const renderListStack = [];\\n  const renderStateStack = [];\\n  this.domElement = _canvas2;\\n  this.debug = {\\n    checkShaderErrors: true\\n  };\\n  this.autoClear = true;\\n  this.autoClearColor = true;\\n  this.autoClearDepth = true;\\n  this.autoClearStencil = true;\\n  this.sortObjects = true;\\n  this.clippingPlanes = [];\\n  this.localClippingEnabled = false;\\n  this.gammaFactor = 2;\\n  this.outputEncoding = LinearEncoding;\\n  this.physicallyCorrectLights = false;\\n  this.toneMapping = NoToneMapping;\\n  this.toneMappingExposure = 1;\\n  const _this = this;\\n  let _isContextLost = false;\\n  let _currentActiveCubeFace = 0;\\n  let _currentActiveMipmapLevel = 0;\\n  let _currentRenderTarget = null;\\n  let _currentMaterialId = -1;\\n  let _currentCamera = null;\\n  const _currentViewport = new Vector4();\\n  const _currentScissor = new Vector4();\\n  let _currentScissorTest = null;\\n  let _width = _canvas2.width;\\n  let _height = _canvas2.height;\\n  let _pixelRatio = 1;\\n  let _opaqueSort = null;\\n  let _transparentSort = null;\\n  const _viewport = new Vector4(0, 0, _width, _height);\\n  const _scissor = new Vector4(0, 0, _width, _height);\\n  let _scissorTest = false;\\n  const _currentDrawBuffers = [];\\n  const _frustum = new Frustum();\\n  let _clippingEnabled = false;\\n  let _localClippingEnabled = false;\\n  let _transmissionRenderTarget = null;\\n  const _projScreenMatrix = new Matrix4();\\n  const _vector32 = new Vector3();\\n  const _emptyScene = {background: null, fog: null, environment: null, overrideMaterial: null, isScene: true};\\n  function getTargetPixelRatio() {\\n    return _currentRenderTarget === null ? _pixelRatio : 1;\\n  }\\n  let _gl = _context2;\\n  function getContext(contextNames, contextAttributes) {\\n    for (let i = 0; i < contextNames.length; i++) {\\n      const contextName = contextNames[i];\\n      const context = _canvas2.getContext(contextName, contextAttributes);\\n      if (context !== null)\\n        return context;\\n    }\\n    return null;\\n  }\\n  try {\\n    const contextAttributes = {\\n      alpha: _alpha,\\n      depth: _depth,\\n      stencil: _stencil,\\n      antialias: _antialias,\\n      premultipliedAlpha: _premultipliedAlpha,\\n      preserveDrawingBuffer: _preserveDrawingBuffer,\\n      powerPreference: _powerPreference,\\n      failIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat\\n    };\\n    _canvas2.addEventListener(\\\\\\\"webglcontextlost\\\\\\\", onContextLost, false);\\n    _canvas2.addEventListener(\\\\\\\"webglcontextrestored\\\\\\\", onContextRestore, false);\\n    if (_gl === null) {\\n      const contextNames = [\\\\\\\"webgl2\\\\\\\", \\\\\\\"webgl\\\\\\\", \\\\\\\"experimental-webgl\\\\\\\"];\\n      if (_this.isWebGL1Renderer === true) {\\n        contextNames.shift();\\n      }\\n      _gl = getContext(contextNames, contextAttributes);\\n      if (_gl === null) {\\n        if (getContext(contextNames)) {\\n          throw new Error(\\\\\\\"Error creating WebGL context with your selected attributes.\\\\\\\");\\n        } else {\\n          throw new Error(\\\\\\\"Error creating WebGL context.\\\\\\\");\\n        }\\n      }\\n    }\\n    if (_gl.getShaderPrecisionFormat === void 0) {\\n      _gl.getShaderPrecisionFormat = function() {\\n        return {rangeMin: 1, rangeMax: 1, precision: 1};\\n      };\\n    }\\n  } catch (error) {\\n    console.error(\\\\\\\"THREE.WebGLRenderer: \\\\\\\" + error.message);\\n    throw error;\\n  }\\n  let extensions, capabilities, state, info;\\n  let properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\\n  let programCache, materials2, renderLists, renderStates, clipping, shadowMap;\\n  let background2, morphtargets, bufferRenderer, indexedBufferRenderer;\\n  let utils, bindingStates;\\n  function initGLContext() {\\n    extensions = new WebGLExtensions(_gl);\\n    capabilities = new WebGLCapabilities(_gl, extensions, parameters);\\n    extensions.init(capabilities);\\n    utils = new WebGLUtils(_gl, extensions, capabilities);\\n    state = new WebGLState(_gl, extensions, capabilities);\\n    _currentDrawBuffers[0] = _gl.BACK;\\n    info = new WebGLInfo(_gl);\\n    properties = new WebGLProperties();\\n    textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\\n    cubemaps = new WebGLCubeMaps(_this);\\n    cubeuvmaps = new WebGLCubeUVMaps(_this);\\n    attributes = new WebGLAttributes(_gl, capabilities);\\n    bindingStates = new WebGLBindingStates(_gl, extensions, attributes, capabilities);\\n    geometries = new WebGLGeometries(_gl, attributes, info, bindingStates);\\n    objects = new WebGLObjects(_gl, geometries, attributes, info);\\n    morphtargets = new WebGLMorphtargets(_gl, capabilities, textures);\\n    clipping = new WebGLClipping(properties);\\n    programCache = new WebGLPrograms(_this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping);\\n    materials2 = new WebGLMaterials(properties);\\n    renderLists = new WebGLRenderLists(properties);\\n    renderStates = new WebGLRenderStates(extensions, capabilities);\\n    background2 = new WebGLBackground(_this, cubemaps, state, objects, _premultipliedAlpha);\\n    shadowMap = new WebGLShadowMap(_this, objects, capabilities);\\n    bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info, capabilities);\\n    indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info, capabilities);\\n    info.programs = programCache.programs;\\n    _this.capabilities = capabilities;\\n    _this.extensions = extensions;\\n    _this.properties = properties;\\n    _this.renderLists = renderLists;\\n    _this.shadowMap = shadowMap;\\n    _this.state = state;\\n    _this.info = info;\\n  }\\n  initGLContext();\\n  const xr = new WebXRManager(_this, _gl);\\n  this.xr = xr;\\n  this.getContext = function() {\\n    return _gl;\\n  };\\n  this.getContextAttributes = function() {\\n    return _gl.getContextAttributes();\\n  };\\n  this.forceContextLoss = function() {\\n    const extension = extensions.get(\\\\\\\"WEBGL_lose_context\\\\\\\");\\n    if (extension)\\n      extension.loseContext();\\n  };\\n  this.forceContextRestore = function() {\\n    const extension = extensions.get(\\\\\\\"WEBGL_lose_context\\\\\\\");\\n    if (extension)\\n      extension.restoreContext();\\n  };\\n  this.getPixelRatio = function() {\\n    return _pixelRatio;\\n  };\\n  this.setPixelRatio = function(value) {\\n    if (value === void 0)\\n      return;\\n    _pixelRatio = value;\\n    this.setSize(_width, _height, false);\\n  };\\n  this.getSize = function(target) {\\n    return target.set(_width, _height);\\n  };\\n  this.setSize = function(width, height, updateStyle) {\\n    if (xr.isPresenting) {\\n      console.warn(\\\\\\\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\\\\\\\");\\n      return;\\n    }\\n    _width = width;\\n    _height = height;\\n    _canvas2.width = Math.floor(width * _pixelRatio);\\n    _canvas2.height = Math.floor(height * _pixelRatio);\\n    if (updateStyle !== false) {\\n      _canvas2.style.width = width + \\\\\\\"px\\\\\\\";\\n      _canvas2.style.height = height + \\\\\\\"px\\\\\\\";\\n    }\\n    this.setViewport(0, 0, width, height);\\n  };\\n  this.getDrawingBufferSize = function(target) {\\n    return target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\\n  };\\n  this.setDrawingBufferSize = function(width, height, pixelRatio) {\\n    _width = width;\\n    _height = height;\\n    _pixelRatio = pixelRatio;\\n    _canvas2.width = Math.floor(width * pixelRatio);\\n    _canvas2.height = Math.floor(height * pixelRatio);\\n    this.setViewport(0, 0, width, height);\\n  };\\n  this.getCurrentViewport = function(target) {\\n    return target.copy(_currentViewport);\\n  };\\n  this.getViewport = function(target) {\\n    return target.copy(_viewport);\\n  };\\n  this.setViewport = function(x, y, width, height) {\\n    if (x.isVector4) {\\n      _viewport.set(x.x, x.y, x.z, x.w);\\n    } else {\\n      _viewport.set(x, y, width, height);\\n    }\\n    state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor());\\n  };\\n  this.getScissor = function(target) {\\n    return target.copy(_scissor);\\n  };\\n  this.setScissor = function(x, y, width, height) {\\n    if (x.isVector4) {\\n      _scissor.set(x.x, x.y, x.z, x.w);\\n    } else {\\n      _scissor.set(x, y, width, height);\\n    }\\n    state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor());\\n  };\\n  this.getScissorTest = function() {\\n    return _scissorTest;\\n  };\\n  this.setScissorTest = function(boolean) {\\n    state.setScissorTest(_scissorTest = boolean);\\n  };\\n  this.setOpaqueSort = function(method) {\\n    _opaqueSort = method;\\n  };\\n  this.setTransparentSort = function(method) {\\n    _transparentSort = method;\\n  };\\n  this.getClearColor = function(target) {\\n    return target.copy(background2.getClearColor());\\n  };\\n  this.setClearColor = function() {\\n    background2.setClearColor.apply(background2, arguments);\\n  };\\n  this.getClearAlpha = function() {\\n    return background2.getClearAlpha();\\n  };\\n  this.setClearAlpha = function() {\\n    background2.setClearAlpha.apply(background2, arguments);\\n  };\\n  this.clear = function(color, depth2, stencil) {\\n    let bits = 0;\\n    if (color === void 0 || color)\\n      bits |= _gl.COLOR_BUFFER_BIT;\\n    if (depth2 === void 0 || depth2)\\n      bits |= _gl.DEPTH_BUFFER_BIT;\\n    if (stencil === void 0 || stencil)\\n      bits |= _gl.STENCIL_BUFFER_BIT;\\n    _gl.clear(bits);\\n  };\\n  this.clearColor = function() {\\n    this.clear(true, false, false);\\n  };\\n  this.clearDepth = function() {\\n    this.clear(false, true, false);\\n  };\\n  this.clearStencil = function() {\\n    this.clear(false, false, true);\\n  };\\n  this.dispose = function() {\\n    _canvas2.removeEventListener(\\\\\\\"webglcontextlost\\\\\\\", onContextLost, false);\\n    _canvas2.removeEventListener(\\\\\\\"webglcontextrestored\\\\\\\", onContextRestore, false);\\n    renderLists.dispose();\\n    renderStates.dispose();\\n    properties.dispose();\\n    cubemaps.dispose();\\n    cubeuvmaps.dispose();\\n    objects.dispose();\\n    bindingStates.dispose();\\n    xr.dispose();\\n    xr.removeEventListener(\\\\\\\"sessionstart\\\\\\\", onXRSessionStart);\\n    xr.removeEventListener(\\\\\\\"sessionend\\\\\\\", onXRSessionEnd);\\n    if (_transmissionRenderTarget) {\\n      _transmissionRenderTarget.dispose();\\n      _transmissionRenderTarget = null;\\n    }\\n    animation.stop();\\n  };\\n  function onContextLost(event) {\\n    event.preventDefault();\\n    console.log(\\\\\\\"THREE.WebGLRenderer: Context Lost.\\\\\\\");\\n    _isContextLost = true;\\n  }\\n  function onContextRestore() {\\n    console.log(\\\\\\\"THREE.WebGLRenderer: Context Restored.\\\\\\\");\\n    _isContextLost = false;\\n    const infoAutoReset = info.autoReset;\\n    const shadowMapEnabled = shadowMap.enabled;\\n    const shadowMapAutoUpdate = shadowMap.autoUpdate;\\n    const shadowMapNeedsUpdate = shadowMap.needsUpdate;\\n    const shadowMapType = shadowMap.type;\\n    initGLContext();\\n    info.autoReset = infoAutoReset;\\n    shadowMap.enabled = shadowMapEnabled;\\n    shadowMap.autoUpdate = shadowMapAutoUpdate;\\n    shadowMap.needsUpdate = shadowMapNeedsUpdate;\\n    shadowMap.type = shadowMapType;\\n  }\\n  function onMaterialDispose(event) {\\n    const material = event.target;\\n    material.removeEventListener(\\\\\\\"dispose\\\\\\\", onMaterialDispose);\\n    deallocateMaterial(material);\\n  }\\n  function deallocateMaterial(material) {\\n    releaseMaterialProgramReferences(material);\\n    properties.remove(material);\\n  }\\n  function releaseMaterialProgramReferences(material) {\\n    const programs = properties.get(material).programs;\\n    if (programs !== void 0) {\\n      programs.forEach(function(program) {\\n        programCache.releaseProgram(program);\\n      });\\n    }\\n  }\\n  function renderObjectImmediate(object, program) {\\n    object.render(function(object2) {\\n      _this.renderBufferImmediate(object2, program);\\n    });\\n  }\\n  this.renderBufferImmediate = function(object, program) {\\n    bindingStates.initAttributes();\\n    const buffers = properties.get(object);\\n    if (object.hasPositions && !buffers.position)\\n      buffers.position = _gl.createBuffer();\\n    if (object.hasNormals && !buffers.normal)\\n      buffers.normal = _gl.createBuffer();\\n    if (object.hasUvs && !buffers.uv)\\n      buffers.uv = _gl.createBuffer();\\n    if (object.hasColors && !buffers.color)\\n      buffers.color = _gl.createBuffer();\\n    const programAttributes = program.getAttributes();\\n    if (object.hasPositions) {\\n      _gl.bindBuffer(_gl.ARRAY_BUFFER, buffers.position);\\n      _gl.bufferData(_gl.ARRAY_BUFFER, object.positionArray, _gl.DYNAMIC_DRAW);\\n      bindingStates.enableAttribute(programAttributes.position.location);\\n      _gl.vertexAttribPointer(programAttributes.position.location, 3, _gl.FLOAT, false, 0, 0);\\n    }\\n    if (object.hasNormals) {\\n      _gl.bindBuffer(_gl.ARRAY_BUFFER, buffers.normal);\\n      _gl.bufferData(_gl.ARRAY_BUFFER, object.normalArray, _gl.DYNAMIC_DRAW);\\n      bindingStates.enableAttribute(programAttributes.normal.location);\\n      _gl.vertexAttribPointer(programAttributes.normal.location, 3, _gl.FLOAT, false, 0, 0);\\n    }\\n    if (object.hasUvs) {\\n      _gl.bindBuffer(_gl.ARRAY_BUFFER, buffers.uv);\\n      _gl.bufferData(_gl.ARRAY_BUFFER, object.uvArray, _gl.DYNAMIC_DRAW);\\n      bindingStates.enableAttribute(programAttributes.uv.location);\\n      _gl.vertexAttribPointer(programAttributes.uv.location, 2, _gl.FLOAT, false, 0, 0);\\n    }\\n    if (object.hasColors) {\\n      _gl.bindBuffer(_gl.ARRAY_BUFFER, buffers.color);\\n      _gl.bufferData(_gl.ARRAY_BUFFER, object.colorArray, _gl.DYNAMIC_DRAW);\\n      bindingStates.enableAttribute(programAttributes.color.location);\\n      _gl.vertexAttribPointer(programAttributes.color.location, 3, _gl.FLOAT, false, 0, 0);\\n    }\\n    bindingStates.disableUnusedAttributes();\\n    _gl.drawArrays(_gl.TRIANGLES, 0, object.count);\\n    object.count = 0;\\n  };\\n  this.renderBufferDirect = function(camera, scene, geometry, material, object, group) {\\n    if (scene === null)\\n      scene = _emptyScene;\\n    const frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\\n    const program = setProgram(camera, scene, geometry, material, object);\\n    state.setMaterial(material, frontFaceCW);\\n    let index = geometry.index;\\n    const position = geometry.attributes.position;\\n    if (index === null) {\\n      if (position === void 0 || position.count === 0)\\n        return;\\n    } else if (index.count === 0) {\\n      return;\\n    }\\n    let rangeFactor = 1;\\n    if (material.wireframe === true) {\\n      index = geometries.getWireframeAttribute(geometry);\\n      rangeFactor = 2;\\n    }\\n    bindingStates.setup(object, material, program, geometry, index);\\n    let attribute;\\n    let renderer = bufferRenderer;\\n    if (index !== null) {\\n      attribute = attributes.get(index);\\n      renderer = indexedBufferRenderer;\\n      renderer.setIndex(attribute);\\n    }\\n    const dataCount = index !== null ? index.count : position.count;\\n    const rangeStart = geometry.drawRange.start * rangeFactor;\\n    const rangeCount = geometry.drawRange.count * rangeFactor;\\n    const groupStart = group !== null ? group.start * rangeFactor : 0;\\n    const groupCount = group !== null ? group.count * rangeFactor : Infinity;\\n    const drawStart = Math.max(rangeStart, groupStart);\\n    const drawEnd = Math.min(dataCount, rangeStart + rangeCount, groupStart + groupCount) - 1;\\n    const drawCount = Math.max(0, drawEnd - drawStart + 1);\\n    if (drawCount === 0)\\n      return;\\n    if (object.isMesh) {\\n      if (material.wireframe === true) {\\n        state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\\n        renderer.setMode(_gl.LINES);\\n      } else {\\n        renderer.setMode(_gl.TRIANGLES);\\n      }\\n    } else if (object.isLine) {\\n      let lineWidth = material.linewidth;\\n      if (lineWidth === void 0)\\n        lineWidth = 1;\\n      state.setLineWidth(lineWidth * getTargetPixelRatio());\\n      if (object.isLineSegments) {\\n        renderer.setMode(_gl.LINES);\\n      } else if (object.isLineLoop) {\\n        renderer.setMode(_gl.LINE_LOOP);\\n      } else {\\n        renderer.setMode(_gl.LINE_STRIP);\\n      }\\n    } else if (object.isPoints) {\\n      renderer.setMode(_gl.POINTS);\\n    } else if (object.isSprite) {\\n      renderer.setMode(_gl.TRIANGLES);\\n    }\\n    if (object.isInstancedMesh) {\\n      renderer.renderInstances(drawStart, drawCount, object.count);\\n    } else if (geometry.isInstancedBufferGeometry) {\\n      const instanceCount = Math.min(geometry.instanceCount, geometry._maxInstanceCount);\\n      renderer.renderInstances(drawStart, drawCount, instanceCount);\\n    } else {\\n      renderer.render(drawStart, drawCount);\\n    }\\n  };\\n  this.compile = function(scene, camera) {\\n    currentRenderState = renderStates.get(scene);\\n    currentRenderState.init();\\n    renderStateStack.push(currentRenderState);\\n    scene.traverseVisible(function(object) {\\n      if (object.isLight && object.layers.test(camera.layers)) {\\n        currentRenderState.pushLight(object);\\n        if (object.castShadow) {\\n          currentRenderState.pushShadow(object);\\n        }\\n      }\\n    });\\n    currentRenderState.setupLights(_this.physicallyCorrectLights);\\n    scene.traverse(function(object) {\\n      const material = object.material;\\n      if (material) {\\n        if (Array.isArray(material)) {\\n          for (let i = 0; i < material.length; i++) {\\n            const material2 = material[i];\\n            getProgram(material2, scene, object);\\n          }\\n        } else {\\n          getProgram(material, scene, object);\\n        }\\n      }\\n    });\\n    renderStateStack.pop();\\n    currentRenderState = null;\\n  };\\n  let onAnimationFrameCallback = null;\\n  function onAnimationFrame(time) {\\n    if (onAnimationFrameCallback)\\n      onAnimationFrameCallback(time);\\n  }\\n  function onXRSessionStart() {\\n    animation.stop();\\n  }\\n  function onXRSessionEnd() {\\n    animation.start();\\n  }\\n  const animation = new WebGLAnimation();\\n  animation.setAnimationLoop(onAnimationFrame);\\n  if (typeof window !== \\\\\\\"undefined\\\\\\\")\\n    animation.setContext(window);\\n  this.setAnimationLoop = function(callback) {\\n    onAnimationFrameCallback = callback;\\n    xr.setAnimationLoop(callback);\\n    callback === null ? animation.stop() : animation.start();\\n  };\\n  xr.addEventListener(\\\\\\\"sessionstart\\\\\\\", onXRSessionStart);\\n  xr.addEventListener(\\\\\\\"sessionend\\\\\\\", onXRSessionEnd);\\n  this.render = function(scene, camera) {\\n    if (camera !== void 0 && camera.isCamera !== true) {\\n      console.error(\\\\\\\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\\\\\\\");\\n      return;\\n    }\\n    if (_isContextLost === true)\\n      return;\\n    if (scene.autoUpdate === true)\\n      scene.updateMatrixWorld();\\n    if (camera.parent === null)\\n      camera.updateMatrixWorld();\\n    if (xr.enabled === true && xr.isPresenting === true) {\\n      if (xr.cameraAutoUpdate === true)\\n        xr.updateCamera(camera);\\n      camera = xr.getCamera();\\n    }\\n    if (scene.isScene === true)\\n      scene.onBeforeRender(_this, scene, camera, _currentRenderTarget);\\n    currentRenderState = renderStates.get(scene, renderStateStack.length);\\n    currentRenderState.init();\\n    renderStateStack.push(currentRenderState);\\n    _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\\n    _frustum.setFromProjectionMatrix(_projScreenMatrix);\\n    _localClippingEnabled = this.localClippingEnabled;\\n    _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled, camera);\\n    currentRenderList = renderLists.get(scene, renderListStack.length);\\n    currentRenderList.init();\\n    renderListStack.push(currentRenderList);\\n    projectObject(scene, camera, 0, _this.sortObjects);\\n    currentRenderList.finish();\\n    if (_this.sortObjects === true) {\\n      currentRenderList.sort(_opaqueSort, _transparentSort);\\n    }\\n    if (_clippingEnabled === true)\\n      clipping.beginShadows();\\n    const shadowsArray = currentRenderState.state.shadowsArray;\\n    shadowMap.render(shadowsArray, scene, camera);\\n    if (_clippingEnabled === true)\\n      clipping.endShadows();\\n    if (this.info.autoReset === true)\\n      this.info.reset();\\n    background2.render(currentRenderList, scene);\\n    currentRenderState.setupLights(_this.physicallyCorrectLights);\\n    if (camera.isArrayCamera) {\\n      const cameras = camera.cameras;\\n      for (let i = 0, l = cameras.length; i < l; i++) {\\n        const camera2 = cameras[i];\\n        renderScene(currentRenderList, scene, camera2, camera2.viewport);\\n      }\\n    } else {\\n      renderScene(currentRenderList, scene, camera);\\n    }\\n    if (_currentRenderTarget !== null) {\\n      textures.updateMultisampleRenderTarget(_currentRenderTarget);\\n      textures.updateRenderTargetMipmap(_currentRenderTarget);\\n    }\\n    if (scene.isScene === true)\\n      scene.onAfterRender(_this, scene, camera);\\n    state.buffers.depth.setTest(true);\\n    state.buffers.depth.setMask(true);\\n    state.buffers.color.setMask(true);\\n    state.setPolygonOffset(false);\\n    bindingStates.resetDefaultState();\\n    _currentMaterialId = -1;\\n    _currentCamera = null;\\n    renderStateStack.pop();\\n    if (renderStateStack.length > 0) {\\n      currentRenderState = renderStateStack[renderStateStack.length - 1];\\n    } else {\\n      currentRenderState = null;\\n    }\\n    renderListStack.pop();\\n    if (renderListStack.length > 0) {\\n      currentRenderList = renderListStack[renderListStack.length - 1];\\n    } else {\\n      currentRenderList = null;\\n    }\\n  };\\n  function projectObject(object, camera, groupOrder, sortObjects) {\\n    if (object.visible === false)\\n      return;\\n    const visible = object.layers.test(camera.layers);\\n    if (visible) {\\n      if (object.isGroup) {\\n        groupOrder = object.renderOrder;\\n      } else if (object.isLOD) {\\n        if (object.autoUpdate === true)\\n          object.update(camera);\\n      } else if (object.isLight) {\\n        currentRenderState.pushLight(object);\\n        if (object.castShadow) {\\n          currentRenderState.pushShadow(object);\\n        }\\n      } else if (object.isSprite) {\\n        if (!object.frustumCulled || _frustum.intersectsSprite(object)) {\\n          if (sortObjects) {\\n            _vector32.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\\n          }\\n          const geometry = objects.update(object);\\n          const material = object.material;\\n          if (material.visible) {\\n            currentRenderList.push(object, geometry, material, groupOrder, _vector32.z, null);\\n          }\\n        }\\n      } else if (object.isImmediateRenderObject) {\\n        if (sortObjects) {\\n          _vector32.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\\n        }\\n        currentRenderList.push(object, null, object.material, groupOrder, _vector32.z, null);\\n      } else if (object.isMesh || object.isLine || object.isPoints) {\\n        if (object.isSkinnedMesh) {\\n          if (object.skeleton.frame !== info.render.frame) {\\n            object.skeleton.update();\\n            object.skeleton.frame = info.render.frame;\\n          }\\n        }\\n        if (!object.frustumCulled || _frustum.intersectsObject(object)) {\\n          if (sortObjects) {\\n            _vector32.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix);\\n          }\\n          const geometry = objects.update(object);\\n          const material = object.material;\\n          if (Array.isArray(material)) {\\n            const groups = geometry.groups;\\n            for (let i = 0, l = groups.length; i < l; i++) {\\n              const group = groups[i];\\n              const groupMaterial = material[group.materialIndex];\\n              if (groupMaterial && groupMaterial.visible) {\\n                currentRenderList.push(object, geometry, groupMaterial, groupOrder, _vector32.z, group);\\n              }\\n            }\\n          } else if (material.visible) {\\n            currentRenderList.push(object, geometry, material, groupOrder, _vector32.z, null);\\n          }\\n        }\\n      }\\n    }\\n    const children = object.children;\\n    for (let i = 0, l = children.length; i < l; i++) {\\n      projectObject(children[i], camera, groupOrder, sortObjects);\\n    }\\n  }\\n  function renderScene(currentRenderList2, scene, camera, viewport) {\\n    const opaqueObjects = currentRenderList2.opaque;\\n    const transmissiveObjects = currentRenderList2.transmissive;\\n    const transparentObjects = currentRenderList2.transparent;\\n    currentRenderState.setupLightsView(camera);\\n    if (transmissiveObjects.length > 0)\\n      renderTransmissionPass(opaqueObjects, scene, camera);\\n    if (viewport)\\n      state.viewport(_currentViewport.copy(viewport));\\n    if (opaqueObjects.length > 0)\\n      renderObjects(opaqueObjects, scene, camera);\\n    if (transmissiveObjects.length > 0)\\n      renderObjects(transmissiveObjects, scene, camera);\\n    if (transparentObjects.length > 0)\\n      renderObjects(transparentObjects, scene, camera);\\n  }\\n  function renderTransmissionPass(opaqueObjects, scene, camera) {\\n    if (_transmissionRenderTarget === null) {\\n      const needsAntialias = _antialias === true && capabilities.isWebGL2 === true;\\n      const renderTargetType = needsAntialias ? WebGLMultisampleRenderTarget : WebGLRenderTarget;\\n      _transmissionRenderTarget = new renderTargetType(1024, 1024, {\\n        generateMipmaps: true,\\n        type: utils.convert(HalfFloatType) !== null ? HalfFloatType : UnsignedByteType,\\n        minFilter: LinearMipmapLinearFilter,\\n        magFilter: NearestFilter,\\n        wrapS: ClampToEdgeWrapping,\\n        wrapT: ClampToEdgeWrapping\\n      });\\n    }\\n    const currentRenderTarget = _this.getRenderTarget();\\n    _this.setRenderTarget(_transmissionRenderTarget);\\n    _this.clear();\\n    const currentToneMapping = _this.toneMapping;\\n    _this.toneMapping = NoToneMapping;\\n    renderObjects(opaqueObjects, scene, camera);\\n    _this.toneMapping = currentToneMapping;\\n    textures.updateMultisampleRenderTarget(_transmissionRenderTarget);\\n    textures.updateRenderTargetMipmap(_transmissionRenderTarget);\\n    _this.setRenderTarget(currentRenderTarget);\\n  }\\n  function renderObjects(renderList, scene, camera) {\\n    const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\\n    for (let i = 0, l = renderList.length; i < l; i++) {\\n      const renderItem = renderList[i];\\n      const object = renderItem.object;\\n      const geometry = renderItem.geometry;\\n      const material = overrideMaterial === null ? renderItem.material : overrideMaterial;\\n      const group = renderItem.group;\\n      if (object.layers.test(camera.layers)) {\\n        renderObject(object, scene, camera, geometry, material, group);\\n      }\\n    }\\n  }\\n  function renderObject(object, scene, camera, geometry, material, group) {\\n    object.onBeforeRender(_this, scene, camera, geometry, material, group);\\n    object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\\n    object.normalMatrix.getNormalMatrix(object.modelViewMatrix);\\n    material.onBeforeRender(_this, scene, camera, geometry, object, group);\\n    if (object.isImmediateRenderObject) {\\n      const program = setProgram(camera, scene, geometry, material, object);\\n      state.setMaterial(material);\\n      bindingStates.reset();\\n      renderObjectImmediate(object, program);\\n    } else {\\n      if (material.transparent === true && material.side === DoubleSide) {\\n        material.side = BackSide;\\n        material.needsUpdate = true;\\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\\n        material.side = FrontSide;\\n        material.needsUpdate = true;\\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\\n        material.side = DoubleSide;\\n      } else {\\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\\n      }\\n    }\\n    object.onAfterRender(_this, scene, camera, geometry, material, group);\\n  }\\n  function getProgram(material, scene, object) {\\n    if (scene.isScene !== true)\\n      scene = _emptyScene;\\n    const materialProperties = properties.get(material);\\n    const lights = currentRenderState.state.lights;\\n    const shadowsArray = currentRenderState.state.shadowsArray;\\n    const lightsStateVersion = lights.state.version;\\n    const parameters2 = programCache.getParameters(material, lights.state, shadowsArray, scene, object);\\n    const programCacheKey = programCache.getProgramCacheKey(parameters2);\\n    let programs = materialProperties.programs;\\n    materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\\n    materialProperties.fog = scene.fog;\\n    materialProperties.envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || materialProperties.environment);\\n    if (programs === void 0) {\\n      material.addEventListener(\\\\\\\"dispose\\\\\\\", onMaterialDispose);\\n      programs = new Map();\\n      materialProperties.programs = programs;\\n    }\\n    let program = programs.get(programCacheKey);\\n    if (program !== void 0) {\\n      if (materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion) {\\n        updateCommonMaterialProperties(material, parameters2);\\n        return program;\\n      }\\n    } else {\\n      parameters2.uniforms = programCache.getUniforms(material);\\n      material.onBuild(parameters2, _this);\\n      material.onBeforeCompile(parameters2, _this);\\n      program = programCache.acquireProgram(parameters2, programCacheKey);\\n      programs.set(programCacheKey, program);\\n      materialProperties.uniforms = parameters2.uniforms;\\n    }\\n    const uniforms = materialProperties.uniforms;\\n    if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\\n      uniforms.clippingPlanes = clipping.uniform;\\n    }\\n    updateCommonMaterialProperties(material, parameters2);\\n    materialProperties.needsLights = materialNeedsLights(material);\\n    materialProperties.lightsStateVersion = lightsStateVersion;\\n    if (materialProperties.needsLights) {\\n      uniforms.ambientLightColor.value = lights.state.ambient;\\n      uniforms.lightProbe.value = lights.state.probe;\\n      uniforms.directionalLights.value = lights.state.directional;\\n      uniforms.directionalLightShadows.value = lights.state.directionalShadow;\\n      uniforms.spotLights.value = lights.state.spot;\\n      uniforms.spotLightShadows.value = lights.state.spotShadow;\\n      uniforms.rectAreaLights.value = lights.state.rectArea;\\n      uniforms.ltc_1.value = lights.state.rectAreaLTC1;\\n      uniforms.ltc_2.value = lights.state.rectAreaLTC2;\\n      uniforms.pointLights.value = lights.state.point;\\n      uniforms.pointLightShadows.value = lights.state.pointShadow;\\n      uniforms.hemisphereLights.value = lights.state.hemi;\\n      uniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\\n      uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\\n      uniforms.spotShadowMap.value = lights.state.spotShadowMap;\\n      uniforms.spotShadowMatrix.value = lights.state.spotShadowMatrix;\\n      uniforms.pointShadowMap.value = lights.state.pointShadowMap;\\n      uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\\n    }\\n    const progUniforms = program.getUniforms();\\n    const uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, uniforms);\\n    materialProperties.currentProgram = program;\\n    materialProperties.uniformsList = uniformsList;\\n    return program;\\n  }\\n  function updateCommonMaterialProperties(material, parameters2) {\\n    const materialProperties = properties.get(material);\\n    materialProperties.outputEncoding = parameters2.outputEncoding;\\n    materialProperties.instancing = parameters2.instancing;\\n    materialProperties.skinning = parameters2.skinning;\\n    materialProperties.morphTargets = parameters2.morphTargets;\\n    materialProperties.morphNormals = parameters2.morphNormals;\\n    materialProperties.morphTargetsCount = parameters2.morphTargetsCount;\\n    materialProperties.numClippingPlanes = parameters2.numClippingPlanes;\\n    materialProperties.numIntersection = parameters2.numClipIntersection;\\n    materialProperties.vertexAlphas = parameters2.vertexAlphas;\\n    materialProperties.vertexTangents = parameters2.vertexTangents;\\n  }\\n  function setProgram(camera, scene, geometry, material, object) {\\n    if (scene.isScene !== true)\\n      scene = _emptyScene;\\n    textures.resetTextureUnits();\\n    const fog = scene.fog;\\n    const environment = material.isMeshStandardMaterial ? scene.environment : null;\\n    const encoding = _currentRenderTarget === null ? _this.outputEncoding : _currentRenderTarget.texture.encoding;\\n    const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\\n    const vertexAlphas = material.vertexColors === true && !!geometry && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4;\\n    const vertexTangents = !!material.normalMap && !!geometry && !!geometry.attributes.tangent;\\n    const morphTargets = !!geometry && !!geometry.morphAttributes.position;\\n    const morphNormals = !!geometry && !!geometry.morphAttributes.normal;\\n    const morphTargetsCount = !!geometry && !!geometry.morphAttributes.position ? geometry.morphAttributes.position.length : 0;\\n    const materialProperties = properties.get(material);\\n    const lights = currentRenderState.state.lights;\\n    if (_clippingEnabled === true) {\\n      if (_localClippingEnabled === true || camera !== _currentCamera) {\\n        const useCache = camera === _currentCamera && material.id === _currentMaterialId;\\n        clipping.setState(material, camera, useCache);\\n      }\\n    }\\n    let needsProgramChange = false;\\n    if (material.version === materialProperties.__version) {\\n      if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.outputEncoding !== encoding) {\\n        needsProgramChange = true;\\n      } else if (object.isInstancedMesh && materialProperties.instancing === false) {\\n        needsProgramChange = true;\\n      } else if (!object.isInstancedMesh && materialProperties.instancing === true) {\\n        needsProgramChange = true;\\n      } else if (object.isSkinnedMesh && materialProperties.skinning === false) {\\n        needsProgramChange = true;\\n      } else if (!object.isSkinnedMesh && materialProperties.skinning === true) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.envMap !== envMap) {\\n        needsProgramChange = true;\\n      } else if (material.fog && materialProperties.fog !== fog) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.numClippingPlanes !== void 0 && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.vertexAlphas !== vertexAlphas) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.vertexTangents !== vertexTangents) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.morphTargets !== morphTargets) {\\n        needsProgramChange = true;\\n      } else if (materialProperties.morphNormals !== morphNormals) {\\n        needsProgramChange = true;\\n      } else if (capabilities.isWebGL2 === true && materialProperties.morphTargetsCount !== morphTargetsCount) {\\n        needsProgramChange = true;\\n      }\\n    } else {\\n      needsProgramChange = true;\\n      materialProperties.__version = material.version;\\n    }\\n    let program = materialProperties.currentProgram;\\n    if (needsProgramChange === true) {\\n      program = getProgram(material, scene, object);\\n    }\\n    let refreshProgram = false;\\n    let refreshMaterial = false;\\n    let refreshLights = false;\\n    const p_uniforms = program.getUniforms(), m_uniforms = materialProperties.uniforms;\\n    if (state.useProgram(program.program)) {\\n      refreshProgram = true;\\n      refreshMaterial = true;\\n      refreshLights = true;\\n    }\\n    if (material.id !== _currentMaterialId) {\\n      _currentMaterialId = material.id;\\n      refreshMaterial = true;\\n    }\\n    if (refreshProgram || _currentCamera !== camera) {\\n      p_uniforms.setValue(_gl, \\\\\\\"projectionMatrix\\\\\\\", camera.projectionMatrix);\\n      if (capabilities.logarithmicDepthBuffer) {\\n        p_uniforms.setValue(_gl, \\\\\\\"logDepthBufFC\\\\\\\", 2 / (Math.log(camera.far + 1) / Math.LN2));\\n      }\\n      if (_currentCamera !== camera) {\\n        _currentCamera = camera;\\n        refreshMaterial = true;\\n        refreshLights = true;\\n      }\\n      if (material.isShaderMaterial || material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshStandardMaterial || material.envMap) {\\n        const uCamPos = p_uniforms.map.cameraPosition;\\n        if (uCamPos !== void 0) {\\n          uCamPos.setValue(_gl, _vector32.setFromMatrixPosition(camera.matrixWorld));\\n        }\\n      }\\n      if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\\n        p_uniforms.setValue(_gl, \\\\\\\"isOrthographic\\\\\\\", camera.isOrthographicCamera === true);\\n      }\\n      if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial || material.isShadowMaterial || object.isSkinnedMesh) {\\n        p_uniforms.setValue(_gl, \\\\\\\"viewMatrix\\\\\\\", camera.matrixWorldInverse);\\n      }\\n    }\\n    if (object.isSkinnedMesh) {\\n      p_uniforms.setOptional(_gl, object, \\\\\\\"bindMatrix\\\\\\\");\\n      p_uniforms.setOptional(_gl, object, \\\\\\\"bindMatrixInverse\\\\\\\");\\n      const skeleton = object.skeleton;\\n      if (skeleton) {\\n        if (capabilities.floatVertexTextures) {\\n          if (skeleton.boneTexture === null)\\n            skeleton.computeBoneTexture();\\n          p_uniforms.setValue(_gl, \\\\\\\"boneTexture\\\\\\\", skeleton.boneTexture, textures);\\n          p_uniforms.setValue(_gl, \\\\\\\"boneTextureSize\\\\\\\", skeleton.boneTextureSize);\\n        } else {\\n          p_uniforms.setOptional(_gl, skeleton, \\\\\\\"boneMatrices\\\\\\\");\\n        }\\n      }\\n    }\\n    if (!!geometry && (geometry.morphAttributes.position !== void 0 || geometry.morphAttributes.normal !== void 0)) {\\n      morphtargets.update(object, geometry, material, program);\\n    }\\n    if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\\n      materialProperties.receiveShadow = object.receiveShadow;\\n      p_uniforms.setValue(_gl, \\\\\\\"receiveShadow\\\\\\\", object.receiveShadow);\\n    }\\n    if (refreshMaterial) {\\n      p_uniforms.setValue(_gl, \\\\\\\"toneMappingExposure\\\\\\\", _this.toneMappingExposure);\\n      if (materialProperties.needsLights) {\\n        markUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\\n      }\\n      if (fog && material.fog) {\\n        materials2.refreshFogUniforms(m_uniforms, fog);\\n      }\\n      materials2.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height, _transmissionRenderTarget);\\n      WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\\n    }\\n    if (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\\n      WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures);\\n      material.uniformsNeedUpdate = false;\\n    }\\n    if (material.isSpriteMaterial) {\\n      p_uniforms.setValue(_gl, \\\\\\\"center\\\\\\\", object.center);\\n    }\\n    p_uniforms.setValue(_gl, \\\\\\\"modelViewMatrix\\\\\\\", object.modelViewMatrix);\\n    p_uniforms.setValue(_gl, \\\\\\\"normalMatrix\\\\\\\", object.normalMatrix);\\n    p_uniforms.setValue(_gl, \\\\\\\"modelMatrix\\\\\\\", object.matrixWorld);\\n    return program;\\n  }\\n  function markUniformsLightsNeedsUpdate(uniforms, value) {\\n    uniforms.ambientLightColor.needsUpdate = value;\\n    uniforms.lightProbe.needsUpdate = value;\\n    uniforms.directionalLights.needsUpdate = value;\\n    uniforms.directionalLightShadows.needsUpdate = value;\\n    uniforms.pointLights.needsUpdate = value;\\n    uniforms.pointLightShadows.needsUpdate = value;\\n    uniforms.spotLights.needsUpdate = value;\\n    uniforms.spotLightShadows.needsUpdate = value;\\n    uniforms.rectAreaLights.needsUpdate = value;\\n    uniforms.hemisphereLights.needsUpdate = value;\\n  }\\n  function materialNeedsLights(material) {\\n    return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\\n  }\\n  this.getActiveCubeFace = function() {\\n    return _currentActiveCubeFace;\\n  };\\n  this.getActiveMipmapLevel = function() {\\n    return _currentActiveMipmapLevel;\\n  };\\n  this.getRenderTarget = function() {\\n    return _currentRenderTarget;\\n  };\\n  this.setRenderTarget = function(renderTarget, activeCubeFace = 0, activeMipmapLevel = 0) {\\n    _currentRenderTarget = renderTarget;\\n    _currentActiveCubeFace = activeCubeFace;\\n    _currentActiveMipmapLevel = activeMipmapLevel;\\n    if (renderTarget && properties.get(renderTarget).__webglFramebuffer === void 0) {\\n      textures.setupRenderTarget(renderTarget);\\n    }\\n    let framebuffer = null;\\n    let isCube = false;\\n    let isRenderTarget3D = false;\\n    if (renderTarget) {\\n      const texture = renderTarget.texture;\\n      if (texture.isDataTexture3D || texture.isDataTexture2DArray) {\\n        isRenderTarget3D = true;\\n      }\\n      const __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\\n      if (renderTarget.isWebGLCubeRenderTarget) {\\n        framebuffer = __webglFramebuffer[activeCubeFace];\\n        isCube = true;\\n      } else if (renderTarget.isWebGLMultisampleRenderTarget) {\\n        framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\\n      } else {\\n        framebuffer = __webglFramebuffer;\\n      }\\n      _currentViewport.copy(renderTarget.viewport);\\n      _currentScissor.copy(renderTarget.scissor);\\n      _currentScissorTest = renderTarget.scissorTest;\\n    } else {\\n      _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\\n      _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\\n      _currentScissorTest = _scissorTest;\\n    }\\n    const framebufferBound = state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\\n    if (framebufferBound && capabilities.drawBuffers) {\\n      let needsUpdate = false;\\n      if (renderTarget) {\\n        if (renderTarget.isWebGLMultipleRenderTargets) {\\n          const textures2 = renderTarget.texture;\\n          if (_currentDrawBuffers.length !== textures2.length || _currentDrawBuffers[0] !== _gl.COLOR_ATTACHMENT0) {\\n            for (let i = 0, il = textures2.length; i < il; i++) {\\n              _currentDrawBuffers[i] = _gl.COLOR_ATTACHMENT0 + i;\\n            }\\n            _currentDrawBuffers.length = textures2.length;\\n            needsUpdate = true;\\n          }\\n        } else {\\n          if (_currentDrawBuffers.length !== 1 || _currentDrawBuffers[0] !== _gl.COLOR_ATTACHMENT0) {\\n            _currentDrawBuffers[0] = _gl.COLOR_ATTACHMENT0;\\n            _currentDrawBuffers.length = 1;\\n            needsUpdate = true;\\n          }\\n        }\\n      } else {\\n        if (_currentDrawBuffers.length !== 1 || _currentDrawBuffers[0] !== _gl.BACK) {\\n          _currentDrawBuffers[0] = _gl.BACK;\\n          _currentDrawBuffers.length = 1;\\n          needsUpdate = true;\\n        }\\n      }\\n      if (needsUpdate) {\\n        if (capabilities.isWebGL2) {\\n          _gl.drawBuffers(_currentDrawBuffers);\\n        } else {\\n          extensions.get(\\\\\\\"WEBGL_draw_buffers\\\\\\\").drawBuffersWEBGL(_currentDrawBuffers);\\n        }\\n      }\\n    }\\n    state.viewport(_currentViewport);\\n    state.scissor(_currentScissor);\\n    state.setScissorTest(_currentScissorTest);\\n    if (isCube) {\\n      const textureProperties = properties.get(renderTarget.texture);\\n      _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel);\\n    } else if (isRenderTarget3D) {\\n      const textureProperties = properties.get(renderTarget.texture);\\n      const layer = activeCubeFace || 0;\\n      _gl.framebufferTextureLayer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer);\\n    }\\n    _currentMaterialId = -1;\\n  };\\n  this.readRenderTargetPixels = function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\\n    if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\\n      console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\\\\\\\");\\n      return;\\n    }\\n    let framebuffer = properties.get(renderTarget).__webglFramebuffer;\\n    if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) {\\n      framebuffer = framebuffer[activeCubeFaceIndex];\\n    }\\n    if (framebuffer) {\\n      state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\\n      try {\\n        const texture = renderTarget.texture;\\n        const textureFormat = texture.format;\\n        const textureType = texture.type;\\n        if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== _gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_FORMAT)) {\\n          console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\\\\\\\");\\n          return;\\n        }\\n        const halfFloatSupportedByExt = textureType === HalfFloatType && (extensions.has(\\\\\\\"EXT_color_buffer_half_float\\\\\\\") || capabilities.isWebGL2 && extensions.has(\\\\\\\"EXT_color_buffer_float\\\\\\\"));\\n        if (textureType !== UnsignedByteType && utils.convert(textureType) !== _gl.getParameter(_gl.IMPLEMENTATION_COLOR_READ_TYPE) && !(textureType === FloatType && (capabilities.isWebGL2 || extensions.has(\\\\\\\"OES_texture_float\\\\\\\") || extensions.has(\\\\\\\"WEBGL_color_buffer_float\\\\\\\"))) && !halfFloatSupportedByExt) {\\n          console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\\\\\\\");\\n          return;\\n        }\\n        if (_gl.checkFramebufferStatus(_gl.FRAMEBUFFER) === _gl.FRAMEBUFFER_COMPLETE) {\\n          if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) {\\n            _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\\n          }\\n        } else {\\n          console.error(\\\\\\\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\\\\\\\");\\n        }\\n      } finally {\\n        const framebuffer2 = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\\n        state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer2);\\n      }\\n    }\\n  };\\n  this.copyFramebufferToTexture = function(position, texture, level = 0) {\\n    const levelScale = Math.pow(2, -level);\\n    const width = Math.floor(texture.image.width * levelScale);\\n    const height = Math.floor(texture.image.height * levelScale);\\n    let glFormat = utils.convert(texture.format);\\n    if (capabilities.isWebGL2) {\\n      if (glFormat === _gl.RGB)\\n        glFormat = _gl.RGB8;\\n      if (glFormat === _gl.RGBA)\\n        glFormat = _gl.RGBA8;\\n    }\\n    textures.setTexture2D(texture, 0);\\n    _gl.copyTexImage2D(_gl.TEXTURE_2D, level, glFormat, position.x, position.y, width, height, 0);\\n    state.unbindTexture();\\n  };\\n  this.copyTextureToTexture = function(position, srcTexture, dstTexture, level = 0) {\\n    const width = srcTexture.image.width;\\n    const height = srcTexture.image.height;\\n    const glFormat = utils.convert(dstTexture.format);\\n    const glType = utils.convert(dstTexture.type);\\n    textures.setTexture2D(dstTexture, 0);\\n    _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\\n    _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\\n    _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\\n    if (srcTexture.isDataTexture) {\\n      _gl.texSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data);\\n    } else {\\n      if (srcTexture.isCompressedTexture) {\\n        _gl.compressedTexSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, srcTexture.mipmaps[0].width, srcTexture.mipmaps[0].height, glFormat, srcTexture.mipmaps[0].data);\\n      } else {\\n        _gl.texSubImage2D(_gl.TEXTURE_2D, level, position.x, position.y, glFormat, glType, srcTexture.image);\\n      }\\n    }\\n    if (level === 0 && dstTexture.generateMipmaps)\\n      _gl.generateMipmap(_gl.TEXTURE_2D);\\n    state.unbindTexture();\\n  };\\n  this.copyTextureToTexture3D = function(sourceBox, position, srcTexture, dstTexture, level = 0) {\\n    if (_this.isWebGL1Renderer) {\\n      console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\\\\\\\");\\n      return;\\n    }\\n    const width = sourceBox.max.x - sourceBox.min.x + 1;\\n    const height = sourceBox.max.y - sourceBox.min.y + 1;\\n    const depth2 = sourceBox.max.z - sourceBox.min.z + 1;\\n    const glFormat = utils.convert(dstTexture.format);\\n    const glType = utils.convert(dstTexture.type);\\n    let glTarget;\\n    if (dstTexture.isDataTexture3D) {\\n      textures.setTexture3D(dstTexture, 0);\\n      glTarget = _gl.TEXTURE_3D;\\n    } else if (dstTexture.isDataTexture2DArray) {\\n      textures.setTexture2DArray(dstTexture, 0);\\n      glTarget = _gl.TEXTURE_2D_ARRAY;\\n    } else {\\n      console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\\\\\\\");\\n      return;\\n    }\\n    _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\\n    _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\\n    _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\\n    const unpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\\n    const unpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\\n    const unpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\\n    const unpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\\n    const unpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\\n    const image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[0] : srcTexture.image;\\n    _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\\n    _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\\n    _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, sourceBox.min.x);\\n    _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, sourceBox.min.y);\\n    _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, sourceBox.min.z);\\n    if (srcTexture.isDataTexture || srcTexture.isDataTexture3D) {\\n      _gl.texSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth2, glFormat, glType, image.data);\\n    } else {\\n      if (srcTexture.isCompressedTexture) {\\n        console.warn(\\\\\\\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\\\\\\\");\\n        _gl.compressedTexSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth2, glFormat, image.data);\\n      } else {\\n        _gl.texSubImage3D(glTarget, level, position.x, position.y, position.z, width, height, depth2, glFormat, glType, image);\\n      }\\n    }\\n    _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, unpackRowLen);\\n    _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, unpackImageHeight);\\n    _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, unpackSkipPixels);\\n    _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, unpackSkipRows);\\n    _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, unpackSkipImages);\\n    if (level === 0 && dstTexture.generateMipmaps)\\n      _gl.generateMipmap(glTarget);\\n    state.unbindTexture();\\n  };\\n  this.initTexture = function(texture) {\\n    textures.setTexture2D(texture, 0);\\n    state.unbindTexture();\\n  };\\n  this.resetState = function() {\\n    _currentActiveCubeFace = 0;\\n    _currentActiveMipmapLevel = 0;\\n    _currentRenderTarget = null;\\n    state.reset();\\n    bindingStates.reset();\\n  };\\n  if (typeof __THREE_DEVTOOLS__ !== \\\\\\\"undefined\\\\\\\") {\\n    __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"observe\\\\\\\", {detail: this}));\\n  }\\n}\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/RenderersController.ts\\nvar CONTEXT_OPTIONS = {};\\nvar WebGLContext;\\n(function(WebGLContext2) {\\n  WebGLContext2[\\\\\\\"WEBGL\\\\\\\"] = \\\\\\\"webgl\\\\\\\";\\n  WebGLContext2[\\\\\\\"WEBGL2\\\\\\\"] = \\\\\\\"webgl2\\\\\\\";\\n  WebGLContext2[\\\\\\\"EXPERIMENTAL_WEBGL\\\\\\\"] = \\\\\\\"experimental-webgl\\\\\\\";\\n  WebGLContext2[\\\\\\\"EXPERIMENTAL_WEBGL2\\\\\\\"] = \\\\\\\"experimental-webgl2\\\\\\\";\\n})(WebGLContext || (WebGLContext = {}));\\nvar RenderersController = class {\\n  constructor() {\\n    this._next_renderer_id = 0;\\n    this._renderers = {};\\n    this._printDebug = false;\\n    this._require_webgl2 = false;\\n    this._resolves = [];\\n  }\\n  setPrintDebug(state = true) {\\n    this._printDebug = state;\\n  }\\n  printDebug() {\\n    return this._printDebug;\\n  }\\n  printDebugMessage(message) {\\n    if (!this._printDebug) {\\n      return;\\n    }\\n    console.warn(\\\\\\\"[Poly debug]\\\\\\\", message);\\n  }\\n  setRequireWebGL2() {\\n    if (!this._require_webgl2) {\\n      this._require_webgl2 = true;\\n    }\\n  }\\n  webgl2Available() {\\n    if (this._webgl2_available === void 0) {\\n      this._webgl2_available = this._set_webgl2_available();\\n    }\\n    return this._webgl2_available;\\n  }\\n  _set_webgl2_available() {\\n    const canvas = document.createElement(\\\\\\\"canvas\\\\\\\");\\n    return (window.WebGL2RenderingContext && canvas.getContext(WebGLContext.WEBGL2)) != null;\\n  }\\n  createWebGLRenderer(params) {\\n    const renderer = new WebGLRenderer(params);\\n    this.printDebugMessage([`create renderer:`, params]);\\n    return renderer;\\n  }\\n  createRenderingContext(canvas) {\\n    let gl = null;\\n    if (this._require_webgl2) {\\n      gl = this._getRenderingContextWebgl(canvas, true);\\n      if (!gl) {\\n        console.warn(\\\\\\\"failed to create webgl2 context\\\\\\\");\\n      }\\n    }\\n    if (!gl) {\\n      gl = this._getRenderingContextWebgl(canvas, false);\\n    }\\n    return gl;\\n  }\\n  _getRenderingContextWebgl(canvas, webgl2) {\\n    let context_name;\\n    if (this.webgl2Available()) {\\n      context_name = WebGLContext.WEBGL2;\\n    } else {\\n      context_name = webgl2 ? WebGLContext.WEBGL2 : WebGLContext.WEBGL;\\n    }\\n    let gl = canvas.getContext(context_name, CONTEXT_OPTIONS);\\n    if (gl) {\\n      this.printDebugMessage(`create gl context: ${context_name}.`);\\n    } else {\\n      context_name = webgl2 ? WebGLContext.EXPERIMENTAL_WEBGL2 : WebGLContext.EXPERIMENTAL_WEBGL;\\n      this.printDebugMessage(`create gl context: ${context_name}.`);\\n      gl = canvas.getContext(context_name, CONTEXT_OPTIONS);\\n    }\\n    return gl;\\n  }\\n  registerRenderer(renderer) {\\n    if (renderer._polygon_id) {\\n      throw new Error(\\\\\\\"render already registered\\\\\\\");\\n    }\\n    renderer._polygon_id = this._next_renderer_id += 1;\\n    this._renderers[renderer._polygon_id] = renderer;\\n    if (Object.keys(this._renderers).length == 1) {\\n      this.flush_callbacks_with_renderer(renderer);\\n    }\\n  }\\n  deregisterRenderer(renderer) {\\n    delete this._renderers[renderer._polygon_id];\\n    renderer.dispose();\\n  }\\n  firstRenderer() {\\n    const first_id = Object.keys(this._renderers)[0];\\n    if (first_id) {\\n      return this._renderers[first_id];\\n    }\\n    return null;\\n  }\\n  renderers() {\\n    return Object.values(this._renderers);\\n  }\\n  flush_callbacks_with_renderer(renderer) {\\n    let callback;\\n    while (callback = this._resolves.pop()) {\\n      callback(renderer);\\n    }\\n  }\\n  async waitForRenderer() {\\n    const renderer = this.firstRenderer();\\n    if (renderer) {\\n      return renderer;\\n    } else {\\n      return new Promise((resolve, reject) => {\\n        this._resolves.push(resolve);\\n      });\\n    }\\n  }\\n  renderTarget(width, height, parameters) {\\n    if (this.webgl2Available()) {\\n      return new WebGLMultisampleRenderTarget(width, height, parameters);\\n    } else {\\n      return new WebGLRenderTarget(width, height, parameters);\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/PolyLibsController.ts\\nvar PolyLibsController = class {\\n  constructor() {\\n    this._root = \\\\\\\"/three/js/libs\\\\\\\";\\n    this._BASISPath = \\\\\\\"/basis\\\\\\\";\\n    this._DRACOPath = \\\\\\\"/draco\\\\\\\";\\n    this._DRACOGLTFPath = \\\\\\\"/draco/gltf\\\\\\\";\\n  }\\n  root() {\\n    return this._root;\\n  }\\n  setRoot(url) {\\n    this._root = url;\\n  }\\n  BASISPath() {\\n    return this._BASISPath;\\n  }\\n  DRACOPath() {\\n    return this._DRACOPath;\\n  }\\n  DRACOGLTFPath() {\\n    return this._DRACOGLTFPath;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/nodes/NodesRegister.ts\\nvar NodesRegister = class {\\n  constructor(poly) {\\n    this.poly = poly;\\n    this._node_register = new Map();\\n    this._node_register_categories = new Map();\\n    this._node_register_options = new Map();\\n  }\\n  static type(node) {\\n    return this.filterType(node.type());\\n  }\\n  static filterType(nodeType) {\\n    return nodeType.toLowerCase();\\n  }\\n  register(node, tab_menu_category, options) {\\n    const context = node.context();\\n    const nodeType = NodesRegister.type(node);\\n    let current_nodes_for_context = this._node_register.get(context);\\n    if (!current_nodes_for_context) {\\n      current_nodes_for_context = new Map();\\n      this._node_register.set(context, current_nodes_for_context);\\n    }\\n    const already_registered_node = current_nodes_for_context.get(nodeType);\\n    if (already_registered_node) {\\n      console.error(`node ${context}/${nodeType} already registered`);\\n      return;\\n    }\\n    current_nodes_for_context.set(nodeType, node);\\n    if (tab_menu_category) {\\n      let current_categories = this._node_register_categories.get(context);\\n      if (!current_categories) {\\n        current_categories = new Map();\\n        this._node_register_categories.set(context, current_categories);\\n      }\\n      current_categories.set(nodeType, tab_menu_category);\\n    }\\n    if (options) {\\n      let current_options = this._node_register_options.get(context);\\n      if (!current_options) {\\n        current_options = new Map();\\n        this._node_register_options.set(context, current_options);\\n      }\\n      current_options.set(nodeType, options);\\n    }\\n    this.poly.pluginsRegister.registerNode(node);\\n  }\\n  deregister(context, nodeType) {\\n    nodeType = NodesRegister.filterType(nodeType);\\n    this._node_register.get(context)?.delete(nodeType);\\n    this._node_register_categories.get(context)?.delete(nodeType);\\n    this._node_register_options.get(context)?.delete(nodeType);\\n  }\\n  isRegistered(context, nodeType) {\\n    const nodes_for_context = this._node_register.get(context);\\n    if (!nodes_for_context) {\\n      return false;\\n    }\\n    nodeType = NodesRegister.filterType(nodeType);\\n    return nodes_for_context.get(nodeType) != null;\\n  }\\n  nodeOptions(context, nodeType) {\\n    nodeType = NodesRegister.filterType(nodeType);\\n    return this._node_register_options.get(context)?.get(nodeType);\\n  }\\n  registeredNodesForContextAndParentType(context, parent_node_type) {\\n    const map = this._node_register.get(context);\\n    if (map) {\\n      const nodes_for_context = [];\\n      this._node_register.get(context)?.forEach((node, type) => {\\n        nodes_for_context.push(node);\\n      });\\n      return nodes_for_context.filter((node) => {\\n        const nodeType = NodesRegister.type(node);\\n        const options = this._node_register_options.get(context)?.get(nodeType);\\n        if (!options) {\\n          return true;\\n        } else {\\n          const option_only = options[\\\\\\\"only\\\\\\\"];\\n          const option_except = options[\\\\\\\"except\\\\\\\"];\\n          const context_and_type = `${context}/${parent_node_type}`;\\n          if (option_only) {\\n            return option_only.includes(context_and_type);\\n          }\\n          if (option_except) {\\n            return !option_except.includes(context_and_type);\\n          }\\n          return true;\\n        }\\n      });\\n    } else {\\n      return [];\\n    }\\n  }\\n  registeredNodes(context, parentNodeType) {\\n    const nodesByType = {};\\n    const nodes = this.registeredNodesForContextAndParentType(context, parentNodeType);\\n    for (let node of nodes) {\\n      const nodeType = NodesRegister.type(node);\\n      nodesByType[nodeType] = node;\\n    }\\n    return nodesByType;\\n  }\\n  registeredCategory(context, nodeType) {\\n    nodeType = NodesRegister.filterType(nodeType);\\n    return this._node_register_categories.get(context)?.get(nodeType);\\n  }\\n  map() {\\n    return this._node_register;\\n  }\\n};\\nvar OperationsRegister = class {\\n  constructor(poly) {\\n    this.poly = poly;\\n    this._operation_register = new Map();\\n  }\\n  static type(node) {\\n    return this.filterType(node.type());\\n  }\\n  static filterType(nodeType) {\\n    return nodeType.toLowerCase();\\n  }\\n  register(operation) {\\n    const context = operation.context();\\n    let current_operations_for_context = this._operation_register.get(context);\\n    if (!current_operations_for_context) {\\n      current_operations_for_context = new Map();\\n      this._operation_register.set(context, current_operations_for_context);\\n    }\\n    const operationType = OperationsRegister.type(operation);\\n    const already_registered_operation = current_operations_for_context.get(operationType);\\n    if (already_registered_operation) {\\n      const message = `operation ${context}/${operationType} already registered`;\\n      console.error(message);\\n      return;\\n    }\\n    current_operations_for_context.set(operationType, operation);\\n    this.poly.pluginsRegister.registerOperation(operation);\\n  }\\n  registeredOperationsForContextAndParentType(context, parentNodeType) {\\n    const map = this._operation_register.get(context);\\n    if (map) {\\n      const nodes_for_context = [];\\n      this._operation_register.get(context)?.forEach((operation, type) => {\\n        nodes_for_context.push(operation);\\n      });\\n      return nodes_for_context;\\n    } else {\\n      return [];\\n    }\\n  }\\n  registeredOperation(context, operationType) {\\n    const current_operations_for_context = this._operation_register.get(context);\\n    if (current_operations_for_context) {\\n      operationType = OperationsRegister.filterType(operationType);\\n      return current_operations_for_context.get(operationType);\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/expressions/_BaseRegister.ts\\nvar BaseExpressionRegister = class {\\n  constructor() {\\n    this._methods_names = [];\\n    this._methods_by_name = new Map();\\n  }\\n  register(expression, name) {\\n    this._methods_names.push(name);\\n    this._methods_by_name.set(name, expression);\\n  }\\n  getMethod(name) {\\n    return this._methods_by_name.get(name);\\n  }\\n  availableMethods() {\\n    return this._methods_names;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/expressions/ExpressionRegister.ts\\nvar ExpressionRegister = class extends BaseExpressionRegister {\\n  getMethod(name) {\\n    return super.getMethod(name);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/modules/_BaseRegister.ts\\nvar BaseModulesRegister = class {\\n  constructor() {\\n    this._module_by_name = new Map();\\n  }\\n  register(name, module) {\\n    this._module_by_name.set(name, module);\\n  }\\n  moduleNames() {\\n    const list = [];\\n    this._module_by_name.forEach((module, moduleName) => {\\n      list.push(moduleName);\\n    });\\n    return list;\\n  }\\n  module(moduleName) {\\n    return this._module_by_name.get(moduleName);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/modules/DynamicModulesRegister.ts\\nvar DynamicModulesRegister = class extends BaseModulesRegister {\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/assemblers/_BaseRegister.ts\\nvar AssemblerName;\\n(function(AssemblerName3) {\\n  AssemblerName3[\\\\\\\"GL_MESH_BASIC\\\\\\\"] = \\\\\\\"GL_MESH_BASIC\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_MESH_LAMBERT\\\\\\\"] = \\\\\\\"GL_MESH_LAMBERT\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_MESH_STANDARD\\\\\\\"] = \\\\\\\"GL_MESH_STANDARD\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_MESH_PHONG\\\\\\\"] = \\\\\\\"GL_MESH_PHONG\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_MESH_PHYSICAL\\\\\\\"] = \\\\\\\"GL_MESH_PHYSICAL\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_PARTICLES\\\\\\\"] = \\\\\\\"GL_PARTICLES\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_POINTS\\\\\\\"] = \\\\\\\"GL_POINTS\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_LINE\\\\\\\"] = \\\\\\\"GL_LINE\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_TEXTURE\\\\\\\"] = \\\\\\\"GL_TEXTURE\\\\\\\";\\n  AssemblerName3[\\\\\\\"GL_VOLUME\\\\\\\"] = \\\\\\\"GL_VOLUME\\\\\\\";\\n})(AssemblerName || (AssemblerName = {}));\\nvar BaseAssemblersRegister = class {\\n  constructor() {\\n    this._controller_assembler_by_name = new Map();\\n  }\\n  register(name, controller, assembler) {\\n    this._controller_assembler_by_name.set(name, {\\n      controller,\\n      assembler\\n    });\\n  }\\n  unregister(name) {\\n    this._controller_assembler_by_name.delete(name);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/assemblers/AssemblersRegistry.ts\\nvar AssemblersRegister = class extends BaseAssemblersRegister {\\n  assembler(node, name) {\\n    const pair = this._controller_assembler_by_name.get(name);\\n    if (pair) {\\n      const controller = pair.controller;\\n      const assembler = pair.assembler;\\n      return new controller(node, assembler);\\n    }\\n    return pair;\\n  }\\n  unregister(name) {\\n    const pair = this._controller_assembler_by_name.get(name);\\n    super.unregister(name);\\n    return pair;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/plugins/PluginsRegister.ts\\nvar PluginsRegister = class {\\n  constructor(poly) {\\n    this.poly = poly;\\n    this._plugins_by_name = new Map();\\n    this._plugin_name_by_node_context_by_type = new Map();\\n    this._plugin_name_by_operation_context_by_type = new Map();\\n  }\\n  register(plugin) {\\n    this._current_plugin = plugin;\\n    this._plugins_by_name.set(plugin.name(), plugin);\\n    plugin.init(this.poly);\\n    this._current_plugin = void 0;\\n  }\\n  pluginByName(pluginName) {\\n    return this._plugins_by_name.get(pluginName);\\n  }\\n  registerNode(node) {\\n    if (!this._current_plugin) {\\n      return;\\n    }\\n    const context = node.context();\\n    const type = node.type();\\n    let map_for_context = this._plugin_name_by_node_context_by_type.get(context);\\n    if (!map_for_context) {\\n      map_for_context = new Map();\\n      this._plugin_name_by_node_context_by_type.set(context, map_for_context);\\n    }\\n    map_for_context.set(type, this._current_plugin.name());\\n  }\\n  registerOperation(operation) {\\n    if (!this._current_plugin) {\\n      return;\\n    }\\n    const context = operation.context();\\n    const type = operation.type();\\n    let map_for_context = this._plugin_name_by_operation_context_by_type.get(context);\\n    if (!map_for_context) {\\n      map_for_context = new Map();\\n      this._plugin_name_by_operation_context_by_type.set(context, map_for_context);\\n    }\\n    map_for_context.set(type, this._current_plugin.name());\\n  }\\n  toJson() {\\n    const data = {\\n      plugins: {},\\n      nodes: {},\\n      operations: {}\\n    };\\n    this._plugins_by_name.forEach((plugin, name) => {\\n      data.plugins[name] = plugin.toJSON();\\n    });\\n    this._plugin_name_by_node_context_by_type.forEach((map_for_context, context) => {\\n      data.nodes[context] = {};\\n      map_for_context.forEach((plugin_name, type) => {\\n        data.nodes[context][type] = plugin_name;\\n      });\\n    });\\n    this._plugin_name_by_operation_context_by_type.forEach((map_for_context, context) => {\\n      data.operations[context] = {};\\n      map_for_context.forEach((plugin_name, type) => {\\n        data.operations[context][type] = plugin_name;\\n      });\\n    });\\n    return data;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/cameras/CamerasRegister.ts\\nvar CamerasRegister = class {\\n  constructor(poly) {\\n    this._camera_types = [];\\n  }\\n  register(node) {\\n    const node_type = node.type();\\n    if (!this._camera_types.includes(node_type)) {\\n      this._camera_types.push(node_type);\\n    }\\n  }\\n  registeredTypes() {\\n    return this._camera_types;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/BlobUtils.ts\\nfunction createObjectURL(fileOrBlob) {\\n  const urlCreator = window.URL || window.webkitURL;\\n  return urlCreator.createObjectURL(fileOrBlob);\\n}\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/BlobsController.ts\\nvar BlobsController = class {\\n  constructor() {\\n    this._blobUrlsByStoredUrl = new Map();\\n    this._blobsByStoredUrl = new Map();\\n    this._blobDataByNodeId = new Map();\\n    this._globalBlobsByStoredUrl = new Map();\\n  }\\n  registerBlobUrl(data) {\\n    if (!Poly.playerMode()) {\\n      return;\\n    }\\n    this._blobUrlsByStoredUrl.set(data.storedUrl, data.blobUrl);\\n  }\\n  deregisterUrl(url) {\\n    this._blobUrlsByStoredUrl.delete(url);\\n  }\\n  blobUrl(storedUrl) {\\n    return this._blobUrlsByStoredUrl.get(storedUrl);\\n  }\\n  clear() {\\n    this._blobUrlsByStoredUrl.clear();\\n    this._blobsByStoredUrl.clear();\\n    this._blobDataByNodeId.clear();\\n  }\\n  _clearBlobForNode(node) {\\n    const blobData = this._blobDataByNodeId.get(node.graphNodeId());\\n    if (blobData) {\\n      this._blobsByStoredUrl.delete(blobData.storedUrl);\\n      this._blobUrlsByStoredUrl.delete(blobData.storedUrl);\\n    }\\n    this._blobDataByNodeId.delete(node.graphNodeId());\\n  }\\n  _assignBlobToNode(node, blobData) {\\n    this._clearBlobForNode(node);\\n    this._blobDataByNodeId.set(node.graphNodeId(), {\\n      storedUrl: blobData.storedUrl,\\n      fullUrl: blobData.fullUrl\\n    });\\n  }\\n  async fetchBlobGlobal(options) {\\n    if (Poly.playerMode()) {\\n      return {};\\n    }\\n    try {\\n      const existingBlob = this._blobUrlsByStoredUrl.get(options.storedUrl);\\n      if (existingBlob) {\\n        return {};\\n      }\\n      const remapedUrl = Poly.assetUrls.remapedUrl(options.fullUrl);\\n      const response = await fetch(remapedUrl || options.fullUrl);\\n      if (response.ok) {\\n        const blob = await response.blob();\\n        this._blobsByStoredUrl.set(options.storedUrl, blob);\\n        this._blobUrlsByStoredUrl.set(options.storedUrl, this.createBlobUrl(blob));\\n        this._globalBlobsByStoredUrl.set(options.storedUrl, blob);\\n        return {\\n          blobData: {\\n            storedUrl: options.storedUrl,\\n            fullUrl: options.fullUrl\\n          }\\n        };\\n      } else {\\n        return {error: `failed to fetch ${options.fullUrl}`};\\n      }\\n    } catch (err) {\\n      return {error: `failed to fetch ${options.fullUrl}`};\\n    }\\n  }\\n  async fetchBlobForNode(options) {\\n    if (Poly.playerMode()) {\\n      return {};\\n    }\\n    try {\\n      const existingBlob = this._blobUrlsByStoredUrl.get(options.storedUrl);\\n      if (existingBlob) {\\n        return {};\\n      }\\n      const remapedUrl = Poly.assetUrls.remapedUrl(options.fullUrl);\\n      const response = await fetch(remapedUrl || options.fullUrl);\\n      if (response.ok) {\\n        const blob = await response.blob();\\n        this._blobsByStoredUrl.set(options.storedUrl, blob);\\n        this._blobUrlsByStoredUrl.set(options.storedUrl, this.createBlobUrl(blob));\\n        this._scene = options.node.scene();\\n        this._assignBlobToNode(options.node, {\\n          storedUrl: options.storedUrl,\\n          fullUrl: options.fullUrl\\n        });\\n        return {\\n          blobData: {\\n            storedUrl: options.storedUrl,\\n            fullUrl: options.fullUrl\\n          }\\n        };\\n      } else {\\n        return {error: `failed to fetch ${options.fullUrl}`};\\n      }\\n    } catch (err) {\\n      return {error: `failed to fetch ${options.fullUrl}`};\\n    }\\n  }\\n  forEachBlob(callback) {\\n    this._blobDataByNodeId.forEach((blobData, nodeGraphNodeId) => {\\n      if (this._scene) {\\n        const node = this._scene.graph.nodeFromId(nodeGraphNodeId);\\n        if (node) {\\n          const {storedUrl} = blobData;\\n          const blob = this._blobsByStoredUrl.get(storedUrl);\\n          if (blob) {\\n            callback(blob, storedUrl);\\n          }\\n        }\\n      }\\n    });\\n    let storedUrls = [];\\n    const blobsByStoreUrl = new Map();\\n    this._globalBlobsByStoredUrl.forEach((blob, storedUrl) => {\\n      storedUrls.push(storedUrl);\\n      blobsByStoreUrl.set(storedUrl, blob);\\n    });\\n    storedUrls = storedUrls.sort();\\n    storedUrls.forEach((storedUrl) => {\\n      const blob = this._globalBlobsByStoredUrl.get(storedUrl);\\n      if (blob) {\\n        callback(blob, storedUrl);\\n      }\\n    });\\n  }\\n  createBlobUrl(blob) {\\n    return createObjectURL(blob);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/AssetUrlsController.ts\\nvar AssetUrlsController = class {\\n  setMap(map) {\\n    this._map = map;\\n  }\\n  remapedUrl(url) {\\n    if (!this._map) {\\n      return;\\n    }\\n    const elements = url.split(\\\\\\\"?\\\\\\\");\\n    const preQuery = elements[0];\\n    const query = elements[1];\\n    const remapedUrl = this._map[preQuery];\\n    if (remapedUrl) {\\n      if (query) {\\n        return `${remapedUrl}?${query}`;\\n      } else {\\n        return remapedUrl;\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/DomEffects.ts\\nvar DomEffects = class {\\n  static fadeOut(element) {\\n    return new Promise((resolve) => {\\n      const fadeEffect = setInterval(() => {\\n        if (!element.style.opacity) {\\n          element.style.opacity = \\\\\\\"1\\\\\\\";\\n        }\\n        const opacity = parseFloat(element.style.opacity);\\n        if (opacity > 0) {\\n          element.style.opacity = `${opacity - 0.05}`;\\n        } else {\\n          resolve();\\n          clearInterval(fadeEffect);\\n        }\\n      }, 20);\\n    });\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/io/self_contained/Common.ts\\nvar SelfContainedFileName;\\n(function(SelfContainedFileName2) {\\n  SelfContainedFileName2[\\\\\\\"CODE\\\\\\\"] = \\\\\\\"code.json\\\\\\\";\\n  SelfContainedFileName2[\\\\\\\"EDITOR\\\\\\\"] = \\\\\\\"editor.json\\\\\\\";\\n  SelfContainedFileName2[\\\\\\\"ASSETS\\\\\\\"] = \\\\\\\"assets.json\\\\\\\";\\n  SelfContainedFileName2[\\\\\\\"POLYGONJS\\\\\\\"] = \\\\\\\"js/all.js\\\\\\\";\\n  SelfContainedFileName2[\\\\\\\"POLY_CONFIG\\\\\\\"] = \\\\\\\"js/polyConfig.js\\\\\\\";\\n  SelfContainedFileName2[\\\\\\\"JS_FILES\\\\\\\"] = \\\\\\\"js_files.json\\\\\\\";\\n  SelfContainedFileName2[\\\\\\\"POSTER\\\\\\\"] = \\\\\\\"poster.png\\\\\\\";\\n})(SelfContainedFileName || (SelfContainedFileName = {}));\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/SelfContainedSceneLoader.ts\\nvar SelfContainedScenesLoader = class {\\n  markAsLoaded(callback, sceneJsonImporterContructor) {\\n    this._sceneJsonImporterContructor = sceneJsonImporterContructor;\\n    callback();\\n  }\\n  load(map) {\\n    if (!this._sceneJsonImporterContructor) {\\n      return;\\n    }\\n    const elements = [];\\n    map.forEach((data, element) => {\\n      elements.push(element);\\n    });\\n    for (let element of elements) {\\n      const data = map.get(element);\\n      if (data) {\\n        this._loadElement(element, data, this._sceneJsonImporterContructor);\\n        map.delete(element);\\n      }\\n    }\\n  }\\n  async _loadElement(element, viewerData, sceneJsonImporterContructor) {\\n    const {sceneData, assetsManifest, unzippedData} = viewerData;\\n    const storedUrls = Object.keys(assetsManifest);\\n    for (let storedUrl of storedUrls) {\\n      const assetUrl = assetsManifest[storedUrl];\\n      const assetUintArray = unzippedData[`assets/${assetUrl}`];\\n      if (!assetUintArray) {\\n        console.error(storedUrl, assetUintArray);\\n        return;\\n      }\\n      const assetBlob = new Blob([assetUintArray]);\\n      const blobUrl = Poly.blobs.createBlobUrl(assetBlob);\\n      const blobUrlData = {\\n        storedUrl,\\n        blobUrl\\n      };\\n      Poly.blobs.registerBlobUrl(blobUrlData);\\n    }\\n    Poly.setPlayerMode(true);\\n    Poly.libs.setRoot(null);\\n    const polyConfigId = `${Math.random()}`.replace(\\\\\\\".\\\\\\\", \\\\\\\"_\\\\\\\");\\n    const ids = {\\n      Poly: `___POLY_polyConfig_configurePolygonjs_${polyConfigId}`,\\n      scriptElementId: `___POLY_polyConfig_scriptElement_${polyConfigId}`,\\n      loadSceneArgs: `___POLY_polyConfig_loadSceneArgs_${polyConfigId}`\\n    };\\n    window[ids.Poly] = Poly;\\n    const method = this._loadScene.bind(this);\\n    const loadSceneArgs = {\\n      method,\\n      element,\\n      sceneData,\\n      sceneJsonImporterContructor\\n    };\\n    window[ids.loadSceneArgs] = loadSceneArgs;\\n    const polyConfigLoaded = this._loadPolyConfig(ids, unzippedData);\\n    if (polyConfigLoaded) {\\n      return;\\n    }\\n    this._loadScene(element, sceneData, sceneJsonImporterContructor);\\n  }\\n  _loadPolyConfig(ids, unzippedData) {\\n    const polyConfigArray = unzippedData[SelfContainedFileName.POLY_CONFIG];\\n    if (!polyConfigArray) {\\n      return false;\\n    }\\n    const polyConfigUrl = this._createJsBlob(polyConfigArray, \\\\\\\"polyConfig\\\\\\\");\\n    let script = document.getElementById(ids.scriptElementId);\\n    const lines = [];\\n    lines.push(`import {configurePolygonjs, configureScene} from '${polyConfigUrl}';`);\\n    lines.push(`configurePolygonjs(window.${ids.Poly});`);\\n    lines.push(`window.${ids.loadSceneArgs}.method(window.${ids.loadSceneArgs}.element, window.${ids.loadSceneArgs}.sceneData, window.${ids.loadSceneArgs}.sceneJsonImporterContructor, configureScene);`);\\n    lines.push(`delete window.${ids.loadSceneArgs};`);\\n    if (!script) {\\n      script = document.createElement(\\\\\\\"script\\\\\\\");\\n      script.setAttribute(\\\\\\\"type\\\\\\\", \\\\\\\"module\\\\\\\");\\n      script.text = lines.join(\\\\\\\"\\\\n\\\\\\\");\\n      document.body.append(script);\\n    }\\n    return true;\\n  }\\n  async _loadScene(element, sceneData, sceneJsonImporterContructor, configureScene2) {\\n    this._fadeOutPoster(element);\\n    const importer = new sceneJsonImporterContructor(sceneData);\\n    const scene = await importer.scene();\\n    if (configureScene2) {\\n      configureScene2(scene);\\n    }\\n    const cameraNode = scene.mainCameraNode();\\n    if (!cameraNode) {\\n      console.warn(\\\\\\\"no master camera found\\\\\\\");\\n      return;\\n    }\\n    const viewer = cameraNode.createViewer(element);\\n    scene.play();\\n    element.scene = scene;\\n    element.viewer = viewer;\\n  }\\n  _fadeOutPoster(element) {\\n    const posterElement = element.firstElementChild;\\n    if (posterElement) {\\n      posterElement.style.pointerEvents = \\\\\\\"none\\\\\\\";\\n      DomEffects.fadeOut(posterElement).then(() => {\\n        posterElement.parentElement?.removeChild(posterElement);\\n      });\\n    }\\n  }\\n  _createJsBlob(array, filename) {\\n    const blob = new Blob([array]);\\n    const file = new File([blob], `${filename}.js`, {type: \\\\\\\"application/javascript\\\\\\\"});\\n    return createObjectURL(file);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/PerformanceController.ts\\nvar PolyPerformanceformanceController = class {\\n  setPerformanceManager(p) {\\n    this._performanceManager = p;\\n  }\\n  performanceManager() {\\n    return this._performanceManager || window.performance;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/Poly.ts\\nvar PolyEngine = class {\\n  constructor() {\\n    this.renderersController = new RenderersController();\\n    this.nodesRegister = new NodesRegister(this);\\n    this.operationsRegister = new OperationsRegister(this);\\n    this.expressionsRegister = new ExpressionRegister();\\n    this.modulesRegister = new DynamicModulesRegister();\\n    this.assemblersRegister = new AssemblersRegister();\\n    this.pluginsRegister = new PluginsRegister(this);\\n    this.camerasRegister = new CamerasRegister(this);\\n    this.blobs = new BlobsController();\\n    this.assetUrls = new AssetUrlsController();\\n    this.selfContainedScenesLoader = new SelfContainedScenesLoader();\\n    this.performance = new PolyPerformanceformanceController();\\n    this.scenesByUuid = {};\\n    this._player_mode = true;\\n    this._logger = null;\\n  }\\n  static _instance_() {\\n    if (window.__POLYGONJS_POLY_INSTANCE__) {\\n      return window.__POLYGONJS_POLY_INSTANCE__;\\n    } else {\\n      const instance = new PolyEngine();\\n      window.__POLYGONJS_POLY_INSTANCE__ = instance;\\n      return window.__POLYGONJS_POLY_INSTANCE__;\\n    }\\n  }\\n  setPlayerMode(mode) {\\n    this._player_mode = mode;\\n  }\\n  playerMode() {\\n    return this._player_mode;\\n  }\\n  registerNode(node, tab_menu_category, options) {\\n    this.nodesRegister.register(node, tab_menu_category, options);\\n  }\\n  registerOperation(operation) {\\n    this.operationsRegister.register(operation);\\n  }\\n  registerCamera(node) {\\n    this.camerasRegister.register(node);\\n  }\\n  registerPlugin(plugin) {\\n    this.pluginsRegister.register(plugin);\\n  }\\n  registeredNodes(parent_context, type) {\\n    return this.nodesRegister.registeredNodes(parent_context, type);\\n  }\\n  registeredOperation(parent_context, operation_type) {\\n    return this.operationsRegister.registeredOperation(parent_context, operation_type);\\n  }\\n  registeredCameraTypes() {\\n    return this.camerasRegister.registeredTypes();\\n  }\\n  inWorkerThread() {\\n    return false;\\n  }\\n  desktopController() {\\n  }\\n  get libs() {\\n    return this._libs_controller = this._libs_controller || new PolyLibsController();\\n  }\\n  setEnv(env) {\\n    this._env = env;\\n  }\\n  env() {\\n    return this._env;\\n  }\\n  setLogger(logger) {\\n    this._logger = logger;\\n  }\\n  log(message, ...optionalParams) {\\n    this._logger?.log(...[message, ...optionalParams]);\\n  }\\n  warn(message, ...optionalParams) {\\n    this._logger?.warn(...[message, ...optionalParams]);\\n  }\\n  error(message, ...optionalParams) {\\n    this._logger?.error(...[message, ...optionalParams]);\\n  }\\n};\\nvar Poly = PolyEngine._instance_();\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/graph/DirtyController.ts\\nvar DirtyController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._dirty_count = 0;\\n    this._dirty = true;\\n  }\\n  dispose() {\\n    this._cached_successors = void 0;\\n    this._post_dirty_hooks = void 0;\\n    this._post_dirty_hook_names = void 0;\\n  }\\n  isDirty() {\\n    return this._dirty === true;\\n  }\\n  dirtyTimestamp() {\\n    return this._dirty_timestamp;\\n  }\\n  dirtyCount() {\\n    return this._dirty_count;\\n  }\\n  addPostDirtyHook(name, method) {\\n    this._post_dirty_hook_names = this._post_dirty_hook_names || [];\\n    this._post_dirty_hooks = this._post_dirty_hooks || [];\\n    if (!this._post_dirty_hook_names.includes(name)) {\\n      this._post_dirty_hook_names.push(name);\\n      this._post_dirty_hooks.push(method);\\n    } else {\\n      console.warn(`hook with name ${name} already exists`, this.node);\\n    }\\n  }\\n  removePostDirtyHook(name) {\\n    if (this._post_dirty_hook_names && this._post_dirty_hooks) {\\n      const index = this._post_dirty_hook_names.indexOf(name);\\n      if (index >= 0) {\\n        this._post_dirty_hook_names.splice(index, 1);\\n        this._post_dirty_hooks.splice(index, 1);\\n      }\\n    }\\n  }\\n  hasHook(name) {\\n    if (this._post_dirty_hook_names) {\\n      return this._post_dirty_hook_names.includes(name);\\n    }\\n    return false;\\n  }\\n  removeDirtyState() {\\n    this._dirty = false;\\n  }\\n  setForbiddenTriggerNodes(nodes) {\\n    this._forbidden_trigger_nodes = nodes.map((n) => n.graphNodeId());\\n  }\\n  setDirty(original_trigger_graph_node, propagate) {\\n    if (propagate == null) {\\n      propagate = true;\\n    }\\n    if (original_trigger_graph_node && this._forbidden_trigger_nodes && this._forbidden_trigger_nodes.includes(original_trigger_graph_node.graphNodeId())) {\\n      return;\\n    }\\n    if (original_trigger_graph_node == null) {\\n      original_trigger_graph_node = this.node;\\n    }\\n    this._dirty = true;\\n    const performance2 = Poly.performance.performanceManager();\\n    this._dirty_timestamp = performance2.now();\\n    this._dirty_count += 1;\\n    this.runPostDirtyHooks(original_trigger_graph_node);\\n    if (propagate === true) {\\n      this.setSuccessorsDirty(original_trigger_graph_node);\\n    }\\n  }\\n  runPostDirtyHooks(original_trigger_graph_node) {\\n    if (this._post_dirty_hooks) {\\n      const cooker = this.node.scene().cooker;\\n      if (cooker.blocked) {\\n        cooker.enqueue(this.node, original_trigger_graph_node);\\n      } else {\\n        for (let hook of this._post_dirty_hooks) {\\n          hook(original_trigger_graph_node);\\n        }\\n      }\\n    }\\n  }\\n  setSuccessorsDirty(original_trigger_graph_node) {\\n    const propagate = false;\\n    this._cached_successors = this._cached_successors || this.node.graphAllSuccessors();\\n    for (let successor of this._cached_successors) {\\n      successor.dirtyController.setDirty(original_trigger_graph_node, propagate);\\n    }\\n  }\\n  clearSuccessorsCache() {\\n    this._cached_successors = void 0;\\n  }\\n  clearSuccessorsCacheWithPredecessors() {\\n    this.clearSuccessorsCache();\\n    for (let predecessor of this.node.graphAllPredecessors()) {\\n      predecessor.dirtyController.clearSuccessorsCache();\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/graph/CoreGraphNode.ts\\nvar CoreGraphNode = class {\\n  constructor(_scene, _name) {\\n    this._scene = _scene;\\n    this._name = _name;\\n    this._dirty_controller = new DirtyController(this);\\n    this._graph_node_id = _scene.graph.nextId();\\n    _scene.graph.addNode(this);\\n    this._graph = _scene.graph;\\n  }\\n  dispose() {\\n    this._dirty_controller.dispose();\\n    this.graphRemove();\\n  }\\n  name() {\\n    return this._name;\\n  }\\n  setName(name) {\\n    this._name = name;\\n  }\\n  scene() {\\n    return this._scene;\\n  }\\n  graphNodeId() {\\n    return this._graph_node_id;\\n  }\\n  get dirtyController() {\\n    return this._dirty_controller;\\n  }\\n  setDirty(trigger) {\\n    trigger = trigger || this;\\n    this._dirty_controller.setDirty(trigger);\\n  }\\n  setSuccessorsDirty(trigger) {\\n    this._dirty_controller.setSuccessorsDirty(trigger);\\n  }\\n  removeDirtyState() {\\n    this._dirty_controller.removeDirtyState();\\n  }\\n  isDirty() {\\n    return this._dirty_controller.isDirty();\\n  }\\n  addPostDirtyHook(name, callback) {\\n    this._dirty_controller.addPostDirtyHook(name, callback);\\n  }\\n  graphRemove() {\\n    this._graph.removeNode(this);\\n  }\\n  addGraphInput(src, check_if_graph_has_cycle = true) {\\n    return this._graph.connect(src, this, check_if_graph_has_cycle);\\n  }\\n  removeGraphInput(src) {\\n    this._graph.disconnect(src, this);\\n  }\\n  graphDisconnectPredecessors() {\\n    this._graph.disconnectPredecessors(this);\\n  }\\n  graphDisconnectSuccessors() {\\n    this._graph.disconnectSuccessors(this);\\n  }\\n  graphPredecessorIds() {\\n    return this._graph.predecessorIds(this._graph_node_id) || [];\\n  }\\n  graphPredecessors() {\\n    return this._graph.predecessors(this);\\n  }\\n  graphSuccessors() {\\n    return this._graph.successors(this);\\n  }\\n  graphAllPredecessors() {\\n    return this._graph.allPredecessors(this);\\n  }\\n  graphAllSuccessors() {\\n    return this._graph.allSuccessors(this);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/NodeEvent.ts\\nvar NodeEvent;\\n(function(NodeEvent2) {\\n  NodeEvent2[\\\\\\\"CREATED\\\\\\\"] = \\\\\\\"node_created\\\\\\\";\\n  NodeEvent2[\\\\\\\"DELETED\\\\\\\"] = \\\\\\\"node_deleted\\\\\\\";\\n  NodeEvent2[\\\\\\\"NAME_UPDATED\\\\\\\"] = \\\\\\\"node_name_update\\\\\\\";\\n  NodeEvent2[\\\\\\\"OVERRIDE_CLONABLE_STATE_UPDATE\\\\\\\"] = \\\\\\\"node_override_clonable_state_update\\\\\\\";\\n  NodeEvent2[\\\\\\\"NAMED_OUTPUTS_UPDATED\\\\\\\"] = \\\\\\\"node_named_outputs_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"NAMED_INPUTS_UPDATED\\\\\\\"] = \\\\\\\"node_named_inputs_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"INPUTS_UPDATED\\\\\\\"] = \\\\\\\"node_inputs_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"PARAMS_UPDATED\\\\\\\"] = \\\\\\\"node_params_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"UI_DATA_POSITION_UPDATED\\\\\\\"] = \\\\\\\"node_ui_data_position_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"UI_DATA_COMMENT_UPDATED\\\\\\\"] = \\\\\\\"node_ui_data_comment_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"ERROR_UPDATED\\\\\\\"] = \\\\\\\"node_error_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"FLAG_BYPASS_UPDATED\\\\\\\"] = \\\\\\\"bypass_flag_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"FLAG_DISPLAY_UPDATED\\\\\\\"] = \\\\\\\"display_flag_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"FLAG_OPTIMIZE_UPDATED\\\\\\\"] = \\\\\\\"optimize_flag_updated\\\\\\\";\\n  NodeEvent2[\\\\\\\"SELECTION_UPDATED\\\\\\\"] = \\\\\\\"selection_updated\\\\\\\";\\n})(NodeEvent || (NodeEvent = {}));\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/Type.ts\\nvar CoreType = class {\\n  static isNumber(value) {\\n    return typeof value == \\\\\\\"number\\\\\\\";\\n  }\\n  static isVector(value) {\\n    return value instanceof Vector2 || value instanceof Vector3 || value instanceof Vector4;\\n  }\\n  static isString(value) {\\n    return typeof value == \\\\\\\"string\\\\\\\";\\n  }\\n  static isBoolean(value) {\\n    return value === true || value === false;\\n  }\\n  static isNaN(value) {\\n    return isNaN(value);\\n  }\\n  static isArray(value) {\\n    return Array.isArray(value);\\n  }\\n  static isObject(value) {\\n    var type = typeof value;\\n    return value != null && (type == \\\\\\\"object\\\\\\\" || type == \\\\\\\"function\\\\\\\");\\n  }\\n};\\nfunction isBooleanTrue(value) {\\n  return value;\\n}\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/UIData.ts\\nvar UIData = class {\\n  constructor(node, x = 0, y = 0) {\\n    this.node = node;\\n    this._position = new Vector2();\\n    this._width = 50;\\n    this._color = new Color(0.75, 0.75, 0.75);\\n    this._layout_vertical = true;\\n    this._json = {\\n      x: 0,\\n      y: 0\\n    };\\n    this._position.x = x;\\n    this._position.y = y;\\n  }\\n  setComment(comment) {\\n    this._comment = comment;\\n    this.node.emit(NodeEvent.UI_DATA_COMMENT_UPDATED);\\n  }\\n  comment() {\\n    return this._comment;\\n  }\\n  setColor(color) {\\n    this._color = color;\\n  }\\n  color() {\\n    return this._color;\\n  }\\n  setLayoutHorizontal() {\\n    this._layout_vertical = false;\\n  }\\n  isLayoutVertical() {\\n    return this._layout_vertical;\\n  }\\n  copy(ui_data) {\\n    this._position.copy(ui_data.position());\\n    this._color.copy(ui_data.color());\\n  }\\n  position() {\\n    return this._position;\\n  }\\n  setPosition(new_position, y = 0) {\\n    if (CoreType.isNumber(new_position)) {\\n      const x = new_position;\\n      this._position.set(x, y);\\n    } else {\\n      this._position.copy(new_position);\\n    }\\n    this.node.emit(NodeEvent.UI_DATA_POSITION_UPDATED);\\n  }\\n  translate(offset, snap = false) {\\n    this._position.add(offset);\\n    if (snap) {\\n      this._position.x = Math.round(this._position.x);\\n      this._position.y = Math.round(this._position.y);\\n    }\\n    this.node.emit(NodeEvent.UI_DATA_POSITION_UPDATED);\\n  }\\n  toJSON() {\\n    this._json.x = this._position.x;\\n    this._json.y = this._position.y;\\n    this._json.comment = this._comment;\\n    return this._json;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/flags/Base.ts\\nvar BaseFlag = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._state = true;\\n    this._hooks = null;\\n  }\\n  onUpdate(hook) {\\n    this._hooks = this._hooks || [];\\n    this._hooks.push(hook);\\n  }\\n  _on_update() {\\n  }\\n  set(new_state) {\\n    if (this._state != new_state) {\\n      this._state = new_state;\\n      this._on_update();\\n      this.runHooks();\\n    }\\n  }\\n  active() {\\n    return this._state;\\n  }\\n  toggle() {\\n    this.set(!this._state);\\n  }\\n  runHooks() {\\n    if (this._hooks) {\\n      for (let hook of this._hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/flags/Bypass.ts\\nvar BypassFlag = class extends BaseFlag {\\n  constructor() {\\n    super(...arguments);\\n    this._state = false;\\n  }\\n  _on_update() {\\n    this.node.emit(NodeEvent.FLAG_BYPASS_UPDATED);\\n    this.node.setDirty();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/flags/Display.ts\\nvar DisplayFlag = class extends BaseFlag {\\n  _on_update() {\\n    this.node.emit(NodeEvent.FLAG_DISPLAY_UPDATED);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/flags/Optimize.ts\\nvar OptimizeFlag = class extends BaseFlag {\\n  constructor() {\\n    super(...arguments);\\n    this._state = false;\\n  }\\n  _on_update() {\\n    this.node.emit(NodeEvent.FLAG_OPTIMIZE_UPDATED);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/FlagsController.ts\\nvar FlagsController = class {\\n  constructor(node) {\\n    this.node = node;\\n  }\\n  hasDisplay() {\\n    return false;\\n  }\\n  hasBypass() {\\n    return false;\\n  }\\n  hasOptimize() {\\n    return false;\\n  }\\n};\\nfunction Display(Base) {\\n  return class Mixin extends Base {\\n    constructor() {\\n      super(...arguments);\\n      this.display = new DisplayFlag(this.node);\\n    }\\n    hasDisplay() {\\n      return true;\\n    }\\n  };\\n}\\nfunction Bypass(Base) {\\n  return class Mixin extends Base {\\n    constructor() {\\n      super(...arguments);\\n      this.bypass = new BypassFlag(this.node);\\n    }\\n    hasBypass() {\\n      return true;\\n    }\\n  };\\n}\\nfunction Optimize(Base) {\\n  return class Mixin extends Base {\\n    constructor() {\\n      super(...arguments);\\n      this.optimize = new OptimizeFlag(this.node);\\n    }\\n    hasOptimize() {\\n      return true;\\n    }\\n  };\\n}\\nvar FlagsControllerD = class extends Display(FlagsController) {\\n};\\nvar FlagsControllerB = class extends Bypass(FlagsController) {\\n};\\nvar FlagsControllerDB = class extends Bypass(Display(FlagsController)) {\\n};\\nvar FlagsControllerBO = class extends Optimize(Bypass(FlagsController)) {\\n};\\nvar FlagsControllerDBO = class extends Optimize(Bypass(Display(FlagsController))) {\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/states/Base.ts\\nvar BaseState = class {\\n  constructor(node) {\\n    this.node = node;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/states/TimeDependent.ts\\nvar TimeDependentState = class extends BaseState {\\n  active() {\\n    return this.paramsTimeDependent() || this.inputsTimeDependent();\\n  }\\n  paramsTimeDependent() {\\n    const param_names = this.node.params.names;\\n    for (let param_name of param_names) {\\n      const param = this.node.params.get(param_name);\\n      if (param && param.states.timeDependent.active()) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  }\\n  inputsTimeDependent() {\\n    const inputs = this.node.io.inputs.inputs();\\n    for (let input of inputs) {\\n      if (input && input.states.timeDependent.active()) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  }\\n  forceTimeDependent() {\\n    const predecessor_ids = this.node.graphPredecessors().map((n) => n.graphNodeId());\\n    const frame_node = this.node.scene().timeController.graphNode;\\n    if (!predecessor_ids.includes(frame_node.graphNodeId())) {\\n      this.node.addGraphInput(frame_node, false);\\n    }\\n  }\\n  unforceTimeDependent() {\\n    const frame_node = this.node.scene().timeController.graphNode;\\n    this.node.removeGraphInput(frame_node);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/states/Error.ts\\nvar NodeErrorState = class extends BaseState {\\n  set(message) {\\n    if (this._message != message) {\\n      if (message) {\\n        Poly.error(`[${this.node.path()}] error: '${message}'`);\\n      }\\n      this._message = message;\\n      this.onUpdate();\\n    }\\n  }\\n  message() {\\n    return this._message;\\n  }\\n  clear() {\\n    this.set(void 0);\\n  }\\n  active() {\\n    return this._message != null;\\n  }\\n  onUpdate() {\\n    if (this._message != null) {\\n      this.node._setContainer(null, `from error '${this._message}'`);\\n    }\\n    this.node.emit(NodeEvent.ERROR_UPDATED);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/StatesController.ts\\nvar StatesController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this.timeDependent = new TimeDependentState(this.node);\\n    this.error = new NodeErrorState(this.node);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/NameController.ts\\nvar NameController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._graph_node = new CoreGraphNode(node.scene(), \\\\\\\"node_name_controller\\\\\\\");\\n  }\\n  dispose() {\\n    this._graph_node.dispose();\\n    this._on_set_name_hooks = void 0;\\n    this._on_set_fullPath_hooks = void 0;\\n  }\\n  get graph_node() {\\n    return this._graph_node;\\n  }\\n  static base_name(node) {\\n    let base = node.type();\\n    const last_char = base[base.length - 1];\\n    if (!CoreType.isNaN(parseInt(last_char))) {\\n      base += \\\\\\\"_\\\\\\\";\\n    }\\n    return `${base}1`;\\n  }\\n  requestNameToParent(new_name) {\\n    const parent = this.node.parent();\\n    if (parent && parent.childrenAllowed() && parent.childrenController) {\\n      parent.childrenController.setChildName(this.node, new_name);\\n    } else {\\n      console.warn(\\\\\\\"requestNameToParent failed, no parent found\\\\\\\");\\n    }\\n  }\\n  setName(new_name) {\\n    if (new_name != this.node.name()) {\\n      this.requestNameToParent(new_name);\\n    }\\n  }\\n  updateNameFromParent(new_name) {\\n    this.node._set_core_name(new_name);\\n    this._postSetName();\\n    this.runPostSetFullPathHooks();\\n    if (this.node.childrenAllowed()) {\\n      const children = this.node.childrenController?.children();\\n      if (children) {\\n        for (let child_node of children) {\\n          child_node.nameController.runPostSetFullPathHooks();\\n        }\\n      }\\n    }\\n    if (this.node.lifecycle.creationCompleted()) {\\n      this.node.scene().missingExpressionReferencesController.checkForMissingReferences(this.node);\\n      this.node.scene().expressionsController.regenerateReferringExpressions(this.node);\\n    }\\n    this.node.scene().referencesController.notifyNameUpdated(this.node);\\n    this.node.emit(NodeEvent.NAME_UPDATED);\\n  }\\n  add_post_set_name_hook(hook) {\\n    this._on_set_name_hooks = this._on_set_name_hooks || [];\\n    this._on_set_name_hooks.push(hook);\\n  }\\n  add_post_set_fullPath_hook(hook) {\\n    this._on_set_fullPath_hooks = this._on_set_fullPath_hooks || [];\\n    this._on_set_fullPath_hooks.push(hook);\\n  }\\n  _postSetName() {\\n    if (this._on_set_name_hooks) {\\n      for (let hook of this._on_set_name_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n  runPostSetFullPathHooks() {\\n    if (this._on_set_fullPath_hooks) {\\n      for (let hook of this._on_set_fullPath_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/Walker.ts\\nvar TypedNodePathParamValue = class {\\n  constructor(_path = \\\\\\\"\\\\\\\") {\\n    this._path = _path;\\n    this._node = null;\\n  }\\n  set_path(path) {\\n    this._path = path;\\n  }\\n  set_node(node) {\\n    this._node = node;\\n  }\\n  path() {\\n    return this._path;\\n  }\\n  node() {\\n    return this._node;\\n  }\\n  resolve(node_start) {\\n    this._node = CoreWalker.findNode(node_start, this._path);\\n  }\\n  clone() {\\n    const cloned = new TypedNodePathParamValue(this._path);\\n    cloned.set_node(this._node);\\n    return cloned;\\n  }\\n  nodeWithContext(context, error_state) {\\n    const found_node = this.node();\\n    if (!found_node) {\\n      error_state?.set(`no node found at ${this.path()}`);\\n      return;\\n    }\\n    const node_context = found_node.context();\\n    if (node_context == context) {\\n      return found_node;\\n    } else {\\n      error_state?.set(`expected ${context} node, but got a ${node_context}`);\\n      return;\\n    }\\n  }\\n};\\nvar TypedParamPathParamValue = class {\\n  constructor(_path = \\\\\\\"\\\\\\\") {\\n    this._path = _path;\\n    this._param = null;\\n  }\\n  set_path(path) {\\n    this._path = path;\\n  }\\n  set_param(param) {\\n    this._param = param;\\n  }\\n  path() {\\n    return this._path;\\n  }\\n  param() {\\n    return this._param;\\n  }\\n  resolve(node_start) {\\n    this._param = CoreWalker.findParam(node_start, this._path);\\n  }\\n  clone() {\\n    const cloned = new TypedParamPathParamValue(this._path);\\n    cloned.set_param(this._param);\\n    return cloned;\\n  }\\n  paramWithType(paramType, error_state) {\\n    const foundParam = this.param();\\n    if (!foundParam) {\\n      error_state?.set(`no param found at ${this.path()}`);\\n      return;\\n    }\\n    if (foundParam.type() == paramType) {\\n      return foundParam;\\n    } else {\\n      error_state?.set(`expected ${paramType} node, but got a ${foundParam.type()}`);\\n      return;\\n    }\\n  }\\n};\\nvar CoreWalker2 = class {\\n  static split_parent_child(path) {\\n    const elements = path.split(CoreWalker2.SEPARATOR).filter((e) => e.length > 0);\\n    const child_path = elements.pop();\\n    const parent_path = elements.join(CoreWalker2.SEPARATOR);\\n    return {parent: parent_path, child: child_path};\\n  }\\n  static findNode(node_src, path, decomposed_path) {\\n    if (!node_src) {\\n      return null;\\n    }\\n    const elements = path.split(CoreWalker2.SEPARATOR).filter((e) => e.length > 0);\\n    const first_element = elements[0];\\n    let next_node = null;\\n    if (path[0] === CoreWalker2.SEPARATOR) {\\n      const path_from_root = path.substr(1);\\n      next_node = this.findNode(node_src.root(), path_from_root, decomposed_path);\\n    } else {\\n      switch (first_element) {\\n        case CoreWalker2.PARENT:\\n          decomposed_path?.add_path_element(first_element);\\n          next_node = node_src.parent();\\n          break;\\n        case CoreWalker2.CURRENT:\\n          decomposed_path?.add_path_element(first_element);\\n          next_node = node_src;\\n          break;\\n        default:\\n          next_node = node_src.node(first_element);\\n          if (next_node) {\\n            decomposed_path?.add_node(first_element, next_node);\\n          }\\n      }\\n      if (next_node != null && elements.length > 1) {\\n        const remainder = elements.slice(1).join(CoreWalker2.SEPARATOR);\\n        next_node = this.findNode(next_node, remainder, decomposed_path);\\n      }\\n      return next_node;\\n    }\\n    return next_node;\\n  }\\n  static findParam(node_src, path, decomposed_path) {\\n    if (!node_src) {\\n      return null;\\n    }\\n    const elements = path.split(CoreWalker2.SEPARATOR);\\n    if (elements.length === 1) {\\n      return node_src.params.get(elements[0]);\\n    } else {\\n      const node_path = elements.slice(0, +(elements.length - 2) + 1 || void 0).join(CoreWalker2.SEPARATOR);\\n      const node = this.findNode(node_src, node_path, decomposed_path);\\n      if (node != null) {\\n        const param_name = elements[elements.length - 1];\\n        const param = node.params.get(param_name);\\n        if (decomposed_path && param) {\\n          decomposed_path.add_node(param_name, param);\\n        }\\n        return param;\\n      } else {\\n        return null;\\n      }\\n    }\\n  }\\n  static relativePath(src_graph_node, dest_graph_node) {\\n    const parent = this.closestCommonParent(src_graph_node, dest_graph_node);\\n    if (!parent) {\\n      return dest_graph_node.path();\\n    } else {\\n      const distance = this.distanceToParent(src_graph_node, parent);\\n      let up = \\\\\\\"\\\\\\\";\\n      if (distance > 0) {\\n        let i = 0;\\n        const ups = [];\\n        while (i++ < distance) {\\n          ups.push(CoreWalker2.PARENT);\\n        }\\n        up = ups.join(CoreWalker2.SEPARATOR) + CoreWalker2.SEPARATOR;\\n      }\\n      const parent_path_elements = parent.path().split(CoreWalker2.SEPARATOR).filter((e) => e.length > 0);\\n      const dest_path_elements = dest_graph_node.path().split(CoreWalker2.SEPARATOR).filter((e) => e.length > 0);\\n      const remaining_elements = [];\\n      let cmptr = 0;\\n      for (let dest_path_element of dest_path_elements) {\\n        if (!parent_path_elements[cmptr]) {\\n          remaining_elements.push(dest_path_element);\\n        }\\n        cmptr++;\\n      }\\n      const down = remaining_elements.join(CoreWalker2.SEPARATOR);\\n      return `${up}${down}`;\\n    }\\n  }\\n  static closestCommonParent(graph_node1, graph_node2) {\\n    const parents1 = this.parents(graph_node1).reverse().concat([graph_node1]);\\n    const parents2 = this.parents(graph_node2).reverse().concat([graph_node2]);\\n    const min_depth = Math.min(parents1.length, parents2.length);\\n    let found_parent = null;\\n    for (let i = 0; i < min_depth; i++) {\\n      if (parents1[i].graphNodeId() == parents2[i].graphNodeId()) {\\n        found_parent = parents1[i];\\n      }\\n    }\\n    return found_parent;\\n  }\\n  static parents(graph_node) {\\n    const parents = [];\\n    let parent = graph_node.parent();\\n    while (parent) {\\n      parents.push(parent);\\n      parent = parent.parent();\\n    }\\n    return parents;\\n  }\\n  static distanceToParent(graph_node, dest) {\\n    let distance = 0;\\n    let current = graph_node;\\n    const dest_id = dest.graphNodeId();\\n    while (current && current.graphNodeId() != dest_id) {\\n      distance += 1;\\n      current = current.parent();\\n    }\\n    if (current && current.graphNodeId() == dest_id) {\\n      return distance;\\n    } else {\\n      return -1;\\n    }\\n  }\\n  static makeAbsolutePath(nodeSrc, path) {\\n    if (path[0] == CoreWalker2.SEPARATOR) {\\n      return path;\\n    }\\n    const pathElements = path.split(CoreWalker2.SEPARATOR);\\n    const firstElement = pathElements.shift();\\n    if (firstElement) {\\n      switch (firstElement) {\\n        case \\\\\\\"..\\\\\\\": {\\n          const parent = nodeSrc.parent();\\n          if (parent) {\\n            if (parent == nodeSrc.scene().root()) {\\n              return CoreWalker2.SEPARATOR + pathElements.join(CoreWalker2.SEPARATOR);\\n            } else {\\n              return this.makeAbsolutePath(parent, pathElements.join(CoreWalker2.SEPARATOR));\\n            }\\n          } else {\\n            return null;\\n          }\\n        }\\n        case \\\\\\\".\\\\\\\": {\\n          return this.makeAbsolutePath(nodeSrc, pathElements.join(CoreWalker2.SEPARATOR));\\n        }\\n        default: {\\n          return [nodeSrc.path(), path].join(CoreWalker2.SEPARATOR);\\n        }\\n      }\\n    } else {\\n      return nodeSrc.path();\\n    }\\n  }\\n};\\nvar CoreWalker = CoreWalker2;\\nCoreWalker.SEPARATOR = \\\\\\\"/\\\\\\\";\\nCoreWalker.DOT = \\\\\\\".\\\\\\\";\\nCoreWalker.CURRENT = CoreWalker2.DOT;\\nCoreWalker.PARENT = \\\\\\\"..\\\\\\\";\\nCoreWalker.CURRENT_WITH_SLASH = `${CoreWalker2.CURRENT}/`;\\nCoreWalker.PARENT_WITH_SLASH = `${CoreWalker2.PARENT}/`;\\nCoreWalker.NON_LETTER_PREFIXES = [CoreWalker2.SEPARATOR, CoreWalker2.DOT];\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/hierarchy/ParentController.ts\\nvar HierarchyParentController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._parent = null;\\n  }\\n  parent() {\\n    return this._parent;\\n  }\\n  setParent(parent) {\\n    if (parent != this.node.parentController.parent()) {\\n      this._parent = parent;\\n      if (this._parent) {\\n        this.node.nameController.requestNameToParent(NameController.base_name(this.node));\\n      }\\n    }\\n  }\\n  firstAncestorWithContext(context) {\\n    if (this._parent) {\\n      if (this._parent.context() == context) {\\n        return this._parent;\\n      } else {\\n        return this._parent.parentController.firstAncestorWithContext(context);\\n      }\\n    }\\n    return null;\\n  }\\n  path(relative_to_parent) {\\n    const separator = CoreWalker.SEPARATOR;\\n    if (this._parent != null) {\\n      if (this._parent == relative_to_parent) {\\n        return this.node.name();\\n      } else {\\n        const parent_fullPath = this._parent.path(relative_to_parent);\\n        if (parent_fullPath === separator) {\\n          return parent_fullPath + this.node.name();\\n        } else {\\n          return parent_fullPath + separator + this.node.name();\\n        }\\n      }\\n    } else {\\n      return separator;\\n    }\\n  }\\n  onSetParent() {\\n    if (this._on_set_parent_hooks) {\\n      for (let hook of this._on_set_parent_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n  findNode(path) {\\n    if (path == null) {\\n      return null;\\n    }\\n    if (path == CoreWalker.CURRENT || path == CoreWalker.CURRENT_WITH_SLASH) {\\n      return this.node;\\n    }\\n    if (path == CoreWalker.PARENT || path == CoreWalker.PARENT_WITH_SLASH) {\\n      return this.node.parent();\\n    }\\n    const separator = CoreWalker.SEPARATOR;\\n    if (path === separator) {\\n      return this.node.scene().root();\\n    }\\n    if (path[0] === separator) {\\n      path = path.substring(1, path.length);\\n      return this.node.scene().root().node(path);\\n    }\\n    if (path.split) {\\n      const elements = path.split(separator);\\n      if (elements.length === 1) {\\n        const name = elements[0];\\n        if (this.node.childrenController) {\\n          return this.node.childrenController.childByName(name);\\n        } else {\\n          return null;\\n        }\\n      } else {\\n        return CoreWalker.findNode(this.node, path);\\n      }\\n    } else {\\n      console.error(\\\\\\\"unexpected path given:\\\\\\\", path);\\n      return null;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/MapUtils.ts\\nvar MapUtils = class {\\n  static arrayFromValues(map) {\\n    const array = [];\\n    map.forEach((v) => {\\n      array.push(v);\\n    });\\n    return array;\\n  }\\n  static pushOnArrayAtEntry(map, key, newElement) {\\n    let has_entry = map.has(key);\\n    if (has_entry) {\\n      map.get(key).push(newElement);\\n    } else {\\n      map.set(key, [newElement]);\\n    }\\n  }\\n  static addToSetAtEntry(map, key, newElement) {\\n    let has_entry = map.has(key);\\n    if (has_entry) {\\n      map.get(key).add(newElement);\\n    } else {\\n      const set = new Set();\\n      set.add(newElement);\\n      map.set(key, set);\\n    }\\n  }\\n  static popFromArrayAtEntry(map, key, elementToRemove) {\\n    let has_entry = map.has(key);\\n    if (has_entry) {\\n      const array = map.get(key);\\n      const index = array.indexOf(elementToRemove);\\n      if (index >= 0) {\\n        array.splice(index, 1);\\n      }\\n    }\\n  }\\n  static removeFromSetAtEntry(map, key, elementToRemove) {\\n    let has_entry = map.has(key);\\n    if (has_entry) {\\n      const set = map.get(key);\\n      set.delete(elementToRemove);\\n      if (set.size == 0) {\\n        map.delete(key);\\n      }\\n    }\\n  }\\n  static unshiftOnArrayAtEntry(map, key, newElement) {\\n    let has_entry = map.has(key);\\n    if (has_entry) {\\n      map.get(key).unshift(newElement);\\n    } else {\\n      map.set(key, [newElement]);\\n    }\\n  }\\n  static concatOnArrayAtEntry(map, key, newElements) {\\n    let has_entry = map.has(key);\\n    if (has_entry) {\\n      let array = map.get(key);\\n      for (let element of newElements) {\\n        array.push(element);\\n      }\\n    } else {\\n      map.set(key, newElements);\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/SetUtils.ts\\nvar SetUtils = class {\\n  static toArray(set) {\\n    const array = [];\\n    set.forEach((elem) => {\\n      array.push(elem);\\n    });\\n    return array;\\n  }\\n  static union(set0, set1) {\\n    const newSet = new Set();\\n    set0.forEach((val) => newSet.add(val));\\n    set1.forEach((val) => newSet.add(val));\\n    return newSet;\\n  }\\n  static intersection(set0, set1) {\\n    const newSet = new Set();\\n    set0.forEach((val) => {\\n      if (set1.has(val)) {\\n        newSet.add(val);\\n      }\\n    });\\n    set1.forEach((val) => {\\n      if (set0.has(val)) {\\n        newSet.add(val);\\n      }\\n    });\\n    return newSet;\\n  }\\n  static difference(set0, set1) {\\n    const newSet = new Set();\\n    set0.forEach((val) => {\\n      if (!set1.has(val)) {\\n        newSet.add(val);\\n      }\\n    });\\n    set1.forEach((val) => {\\n      if (!set0.has(val)) {\\n        newSet.add(val);\\n      }\\n    });\\n    return newSet;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/ArrayUtils.ts\\nvar ArrayUtils = class {\\n  static shallowClone(array) {\\n    return [...array];\\n  }\\n  static min(array) {\\n    let min = array[0];\\n    for (let element of array) {\\n      if (element < min) {\\n        min = element;\\n      }\\n    }\\n    return min;\\n  }\\n  static max(array) {\\n    let min = array[0];\\n    for (let element of array) {\\n      if (element > min) {\\n        min = element;\\n      }\\n    }\\n    return min;\\n  }\\n  static sum(array) {\\n    let sum = 0;\\n    for (let element of array) {\\n      sum += element;\\n    }\\n    return sum;\\n  }\\n  static compact(array) {\\n    const newArray = [];\\n    for (let elem of array) {\\n      if (elem != null) {\\n        newArray.push(elem);\\n      }\\n    }\\n    return newArray;\\n  }\\n  static uniq(array) {\\n    const tmpSet = new Set();\\n    for (let elem of array) {\\n      tmpSet.add(elem);\\n    }\\n    const newArray = new Array(tmpSet.size);\\n    let i = 0;\\n    tmpSet.forEach((elem) => {\\n      newArray[i] = elem;\\n      i++;\\n    });\\n    return newArray;\\n  }\\n  static chunk(array, chunkSize) {\\n    const newArray = [];\\n    let newSubArray = [];\\n    newArray.push(newSubArray);\\n    for (let i = 0; i < array.length; i++) {\\n      if (newSubArray.length == chunkSize) {\\n        newSubArray = [];\\n        newArray.push(newSubArray);\\n      }\\n      newSubArray.push(array[i]);\\n    }\\n    return newArray;\\n  }\\n  static union(array0, array1) {\\n    const newArray = [];\\n    const unionSet = SetUtils.union(this.toSet(array0), this.toSet(array1));\\n    unionSet.forEach((val) => newArray.push(val));\\n    return newArray;\\n  }\\n  static intersection(array0, array1) {\\n    const newArray = [];\\n    const intersectionSet = SetUtils.intersection(this.toSet(array0), this.toSet(array1));\\n    intersectionSet.forEach((val) => newArray.push(val));\\n    return newArray;\\n  }\\n  static difference(array0, array1) {\\n    const newArray = [];\\n    const differenceSet = SetUtils.difference(this.toSet(array0), this.toSet(array1));\\n    differenceSet.forEach((val) => newArray.push(val));\\n    return newArray;\\n  }\\n  static toSet(array) {\\n    const set = new Set();\\n    for (let elem of array) {\\n      set.add(elem);\\n    }\\n    return set;\\n  }\\n  static isEqual(array0, array1) {\\n    if (array0.length != array1.length) {\\n      return false;\\n    }\\n    const count = array0.length;\\n    for (let i = 0; i < count; i++) {\\n      if (array0[i] != array1[i]) {\\n        return false;\\n      }\\n    }\\n    return true;\\n  }\\n  static sortBy(array, callback) {\\n    if (array.length == 0) {\\n      return [];\\n    }\\n    const elementsByValue = new Map();\\n    const valuesSet = new Set();\\n    for (let elem of array) {\\n      const value = callback(elem);\\n      valuesSet.add(value);\\n      MapUtils.pushOnArrayAtEntry(elementsByValue, value, elem);\\n    }\\n    const values = new Array(valuesSet.size);\\n    let i = 0;\\n    valuesSet.forEach((value) => {\\n      values[i] = value;\\n      i++;\\n    });\\n    if (CoreType.isString(values[0])) {\\n      values.sort();\\n    } else {\\n      values.sort((a, b) => a - b);\\n    }\\n    const sorted_elements = new Array(array.length);\\n    i = 0;\\n    for (let value of values) {\\n      const elements_for_value = elementsByValue.get(value);\\n      if (elements_for_value) {\\n        for (let element of elements_for_value) {\\n          sorted_elements[i] = element;\\n          i++;\\n        }\\n      }\\n    }\\n    return sorted_elements;\\n  }\\n  static range(start, end, step = 1) {\\n    if (end == null) {\\n      end = start;\\n      start = 0;\\n    }\\n    const length = Math.floor((end - start) / step);\\n    const array = new Array(length);\\n    for (let i = 0; i < array.length; i++) {\\n      array[i] = start + i * step;\\n    }\\n    return array;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/String.ts\\nvar ATTRIB_NAMES_SEPARATOR = /[, ]/;\\nvar TAIL_DIGIT_MATCH_REGEXP = /\\\\d+$/;\\nvar LEADING_ZEROS_MATCH_REGEXP = /^0+/;\\nvar INDICES_LIST_SEPARATOR = /,| /;\\nvar ZERO = \\\\\\\"0\\\\\\\";\\nvar SPACE = \\\\\\\" \\\\\\\";\\nvar NUM_REGEXP = /^-?\\\\d+\\\\.?\\\\d*$/;\\nvar BooleanString;\\n(function(BooleanString2) {\\n  BooleanString2[\\\\\\\"TRUE\\\\\\\"] = \\\\\\\"true\\\\\\\";\\n  BooleanString2[\\\\\\\"FALSE\\\\\\\"] = \\\\\\\"false\\\\\\\";\\n})(BooleanString || (BooleanString = {}));\\nvar CoreString = class {\\n  static isBoolean(word) {\\n    return word == BooleanString.TRUE || word == BooleanString.FALSE;\\n  }\\n  static toBoolean(word) {\\n    return word == BooleanString.TRUE;\\n  }\\n  static isNumber(word) {\\n    return NUM_REGEXP.test(word);\\n  }\\n  static tailDigits(word) {\\n    const match = word.match(TAIL_DIGIT_MATCH_REGEXP);\\n    if (match) {\\n      return parseInt(match[0]);\\n    } else {\\n      return 0;\\n    }\\n  }\\n  static increment(word) {\\n    const match = word.match(TAIL_DIGIT_MATCH_REGEXP);\\n    if (match) {\\n      let numbers_as_str = match[0];\\n      let zeros_prefix = \\\\\\\"\\\\\\\";\\n      const leading_zeros_match = numbers_as_str.match(LEADING_ZEROS_MATCH_REGEXP);\\n      if (leading_zeros_match) {\\n        zeros_prefix = leading_zeros_match[0];\\n      }\\n      const digits = parseInt(numbers_as_str);\\n      if (digits == 0) {\\n        if (zeros_prefix.length > 0) {\\n          if (zeros_prefix[zeros_prefix.length - 1] == ZERO) {\\n            zeros_prefix = zeros_prefix.slice(0, -1);\\n          }\\n        }\\n      }\\n      const prefix = word.substring(0, word.length - match[0].length);\\n      return `${prefix}${zeros_prefix}${digits + 1}`;\\n    } else {\\n      return `${word}1`;\\n    }\\n  }\\n  static pluralize(word) {\\n    const last_char = word[word.length - 1];\\n    if (last_char !== \\\\\\\"s\\\\\\\") {\\n      return `${word}s`;\\n    } else {\\n      return word;\\n    }\\n  }\\n  static camelCase(str) {\\n    const elements = str.replace(/_/g, \\\\\\\" \\\\\\\").split(\\\\\\\" \\\\\\\");\\n    let newWord = \\\\\\\"\\\\\\\";\\n    for (let i = 0; i < elements.length; i++) {\\n      let element = elements[i].toLowerCase();\\n      if (i > 0) {\\n        element = this.upperFirst(element);\\n      }\\n      newWord += element;\\n    }\\n    return newWord;\\n  }\\n  static upperFirst(word) {\\n    const newString = word[0].toUpperCase() + word.substr(1);\\n    return newString;\\n  }\\n  static titleize(word) {\\n    const elements = word.split(/\\\\s|_/g);\\n    const newElements = elements.map((elem) => this.upperFirst(elem));\\n    return newElements.join(\\\\\\\" \\\\\\\");\\n  }\\n  static precision(val, decimals = 2) {\\n    decimals = Math.max(decimals, 0);\\n    const elements = `${val}`.split(\\\\\\\".\\\\\\\");\\n    if (decimals <= 0) {\\n      return elements[0];\\n    }\\n    let frac = elements[1];\\n    if (frac !== void 0) {\\n      if (frac.length > decimals) {\\n        frac = frac.substring(0, decimals);\\n      }\\n      frac = frac.padEnd(decimals, \\\\\\\"0\\\\\\\");\\n      return `${elements[0]}.${frac}`;\\n    } else {\\n      const string_to_pad = `${val}.`;\\n      const pad = string_to_pad.length + decimals;\\n      return string_to_pad.padEnd(pad, \\\\\\\"0\\\\\\\");\\n    }\\n  }\\n  static ensureFloat(num) {\\n    const num_as_string = `${num}`;\\n    const dot_pos = num_as_string.indexOf(\\\\\\\".\\\\\\\");\\n    if (dot_pos >= 0) {\\n      return num_as_string;\\n    } else {\\n      return `${num_as_string}.0`;\\n    }\\n  }\\n  static ensureInteger(num) {\\n    const num_as_string = `${num}`;\\n    const dot_pos = num_as_string.indexOf(\\\\\\\".\\\\\\\");\\n    if (dot_pos >= 0) {\\n      return num_as_string.split(\\\\\\\".\\\\\\\")[0];\\n    } else {\\n      return num_as_string;\\n    }\\n  }\\n  static matchMask(word, mask) {\\n    if (mask === \\\\\\\"*\\\\\\\") {\\n      return true;\\n    }\\n    if (word == mask) {\\n      return true;\\n    }\\n    const elements = mask.split(SPACE);\\n    if (elements.length > 1) {\\n      for (let element of elements) {\\n        const match = this.matchMask(word, element);\\n        if (match) {\\n          return true;\\n        }\\n      }\\n      return false;\\n    }\\n    mask = mask.split(\\\\\\\"*\\\\\\\").join(\\\\\\\".*\\\\\\\");\\n    mask = `^${mask}$`;\\n    const regex = new RegExp(mask);\\n    return regex.test(word);\\n  }\\n  static matchesOneMask(word, masks) {\\n    let matches_one_mask = false;\\n    for (let mask of masks) {\\n      if (CoreString.matchMask(word, mask)) {\\n        matches_one_mask = true;\\n      }\\n    }\\n    return matches_one_mask;\\n  }\\n  static attribNames(word) {\\n    const elements = word.split(ATTRIB_NAMES_SEPARATOR);\\n    const names_set = new Set();\\n    for (let element of elements) {\\n      element = element.trim();\\n      if (element.length > 0) {\\n        names_set.add(element);\\n      }\\n    }\\n    const names = new Array(names_set.size);\\n    let i = 0;\\n    names_set.forEach((name) => {\\n      names[i] = name;\\n      i++;\\n    });\\n    return names;\\n  }\\n  static indices(indices_string) {\\n    const elements = indices_string.split(INDICES_LIST_SEPARATOR);\\n    if (elements.length > 1) {\\n      const indices = elements.flatMap((element) => this.indices(element));\\n      return ArrayUtils.uniq(indices).sort((a, b) => a - b);\\n    } else {\\n      const element = elements[0];\\n      if (element) {\\n        const range_separator = \\\\\\\"-\\\\\\\";\\n        if (element.indexOf(range_separator) > 0) {\\n          const range_elements = element.split(range_separator);\\n          return ArrayUtils.range(parseInt(range_elements[0]), parseInt(range_elements[1]) + 1);\\n        } else {\\n          const parsed = parseInt(element);\\n          if (CoreType.isNumber(parsed)) {\\n            return [parsed];\\n          } else {\\n            return [];\\n          }\\n        }\\n      } else {\\n        return [];\\n      }\\n    }\\n  }\\n  static escapeLineBreaks(word) {\\n    return word.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/gm, \\\\\\\"\\\\\\\\n\\\\\\\");\\n  }\\n  static sanitizeName(name) {\\n    name = name.replace(/[^A-Za-z0-9]/g, \\\\\\\"_\\\\\\\");\\n    name = name.replace(/^[0-9]/, \\\\\\\"_\\\\\\\");\\n    return name;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/NodeSelection.ts\\nvar CoreNodeSelection = class {\\n  constructor(_node) {\\n    this._node = _node;\\n    this._node_ids = [];\\n    this._json = [];\\n  }\\n  node() {\\n    return this._node;\\n  }\\n  nodes() {\\n    return this._node.scene().graph.nodesFromIds(this._node_ids);\\n  }\\n  contains(node) {\\n    return this._node_ids.includes(node.graphNodeId());\\n  }\\n  equals(nodes) {\\n    const node_ids = nodes.map((node) => node.graphNodeId()).sort();\\n    return ArrayUtils.isEqual(node_ids, this._node_ids);\\n  }\\n  clear() {\\n    this._node_ids = [];\\n    this.send_update_event();\\n  }\\n  set(nodes) {\\n    this._node_ids = [];\\n    this.add(nodes);\\n  }\\n  add(nodes_to_add) {\\n    const node_ids_to_add = nodes_to_add.map((node) => node.graphNodeId());\\n    this._node_ids = ArrayUtils.union(this._node_ids, node_ids_to_add);\\n    this.send_update_event();\\n  }\\n  remove(nodes_to_remove) {\\n    const node_ids_to_remove = nodes_to_remove.map((node) => node.graphNodeId());\\n    this._node_ids = ArrayUtils.difference(this._node_ids, node_ids_to_remove);\\n    this.send_update_event();\\n  }\\n  send_update_event() {\\n    this._node.emit(NodeEvent.SELECTION_UPDATED);\\n  }\\n  toJSON() {\\n    this._json = this._json || [];\\n    this._json = this._node_ids.map((id) => id);\\n    return this._json;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/InputCloneMode.ts\\nvar InputCloneMode;\\n(function(InputCloneMode2) {\\n  InputCloneMode2[\\\\\\\"ALWAYS\\\\\\\"] = \\\\\\\"always\\\\\\\";\\n  InputCloneMode2[\\\\\\\"NEVER\\\\\\\"] = \\\\\\\"never\\\\\\\";\\n  InputCloneMode2[\\\\\\\"FROM_NODE\\\\\\\"] = \\\\\\\"from_node\\\\\\\";\\n})(InputCloneMode || (InputCloneMode = {}));\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/Assert.ts\\nvar TypeAssert = class {\\n  static unreachable(x) {\\n    throw new Error(\\\\\\\"Didn't expect to get here\\\\\\\");\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/operations/container/utils/inputs/ClonedStatesController.ts\\nvar ClonedStatesController = class {\\n  constructor(inputs_controller) {\\n    this.inputs_controller = inputs_controller;\\n    this._clone_required_states = [];\\n    this._overridden = false;\\n  }\\n  init_inputs_cloned_state(states) {\\n    if (CoreType.isArray(states)) {\\n      this._cloned_states = states;\\n    } else {\\n      this._cloned_state = states;\\n    }\\n    this._update_clone_required_state();\\n  }\\n  override_cloned_state_allowed() {\\n    if (this._cloned_states) {\\n      for (let state of this._cloned_states) {\\n        if (state == InputCloneMode.FROM_NODE) {\\n          return true;\\n        }\\n      }\\n    }\\n    if (this._cloned_state) {\\n      return this._cloned_state == InputCloneMode.FROM_NODE;\\n    }\\n    return false;\\n  }\\n  clone_required_state(index) {\\n    return this._clone_required_states[index];\\n  }\\n  clone_required_states() {\\n    return this._clone_required_states;\\n  }\\n  _get_clone_required_state(index) {\\n    const states = this._cloned_states;\\n    if (states) {\\n      const state = states[index];\\n      if (state != null) {\\n        return this.clone_required_from_state(state);\\n      }\\n    }\\n    if (this._cloned_state) {\\n      return this.clone_required_from_state(this._cloned_state);\\n    }\\n    return true;\\n  }\\n  clone_required_from_state(state) {\\n    switch (state) {\\n      case InputCloneMode.ALWAYS:\\n        return true;\\n      case InputCloneMode.NEVER:\\n        return false;\\n      case InputCloneMode.FROM_NODE:\\n        return !this._overridden;\\n    }\\n    return TypeAssert.unreachable(state);\\n  }\\n  override_cloned_state(state) {\\n    this._overridden = state;\\n    this._update_clone_required_state();\\n  }\\n  overriden() {\\n    return this._overridden;\\n  }\\n  _update_clone_required_state() {\\n    if (this._cloned_states) {\\n      const states = [];\\n      for (let i = 0; i < this._cloned_states.length; i++) {\\n        states[i] = this._get_clone_required_state(i);\\n      }\\n      this._clone_required_states = states;\\n      return;\\n    }\\n    if (this._cloned_state) {\\n      const max_inputs = this.inputs_controller.inputs_count();\\n      const states = [];\\n      for (let i = 0; i < max_inputs; i++) {\\n        states[i] = this._get_clone_required_state(i);\\n      }\\n      this._clone_required_states = states;\\n      return;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/operations/container/utils/InputsController.ts\\nvar InputsController = class {\\n  constructor(operation_container) {\\n    this.operation_container = operation_container;\\n  }\\n  inputs_count() {\\n    return this.operation_container.inputs_count();\\n  }\\n  init_inputs_cloned_state(states) {\\n    if (!this._cloned_states_controller) {\\n      this._cloned_states_controller = new ClonedStatesController(this);\\n      this._cloned_states_controller.init_inputs_cloned_state(states);\\n    }\\n  }\\n  clone_required(index) {\\n    const state = this._cloned_states_controller?.clone_required_state(index);\\n    if (state != null) {\\n      return state;\\n    }\\n    return true;\\n  }\\n  override_cloned_state(state) {\\n    this._cloned_states_controller?.override_cloned_state(state);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/operations/container/_Base.ts\\nvar BaseOperationContainer = class {\\n  constructor(operation, name, init_params) {\\n    this.operation = operation;\\n    this.name = name;\\n    this.params = {};\\n    this._apply_default_params();\\n    this._apply_init_params(init_params);\\n    this._init_cloned_states();\\n  }\\n  path_param_resolve_required() {\\n    return this._path_params != null;\\n  }\\n  resolve_path_params(node_start) {\\n    if (!this._path_params) {\\n      return;\\n    }\\n    for (let path_param of this._path_params) {\\n      path_param.resolve(node_start);\\n    }\\n  }\\n  _apply_default_params() {\\n    const default_params = this.operation.constructor.DEFAULT_PARAMS;\\n    const param_names = Object.keys(default_params);\\n    for (let param_name of param_names) {\\n      const param_data = default_params[param_name];\\n      const clone_param_data = this._convert_param_data(param_name, param_data);\\n      if (clone_param_data != void 0) {\\n        this.params[param_name] = clone_param_data;\\n      }\\n    }\\n  }\\n  _apply_init_params(init_params) {\\n    const param_names = Object.keys(init_params);\\n    for (let param_name of param_names) {\\n      const param_data = init_params[param_name];\\n      if (param_data.simple_data != null) {\\n        const simple_data = param_data.simple_data;\\n        const clone_param_data = this._convert_export_param_data(param_name, simple_data);\\n        if (clone_param_data != void 0) {\\n          this.params[param_name] = clone_param_data;\\n        }\\n      }\\n    }\\n  }\\n  _convert_param_data(param_name, param_data) {\\n    if (CoreType.isNumber(param_data) || CoreType.isBoolean(param_data) || CoreType.isString(param_data)) {\\n      return param_data;\\n    }\\n    if (param_data instanceof TypedNodePathParamValue) {\\n      const cloned = param_data.clone();\\n      if (!this._path_params) {\\n        this._path_params = [];\\n      }\\n      this._path_params.push(cloned);\\n      return cloned;\\n    }\\n    if (param_data instanceof Color || param_data instanceof Vector2 || param_data instanceof Vector3 || param_data instanceof Vector4) {\\n      return param_data.clone();\\n    }\\n  }\\n  _convert_export_param_data(param_name, param_data) {\\n    const default_param = this.params[param_name];\\n    if (CoreType.isBoolean(param_data)) {\\n      return param_data;\\n    }\\n    if (CoreType.isNumber(param_data)) {\\n      if (CoreType.isBoolean(default_param)) {\\n        return param_data >= 1 ? true : false;\\n      } else {\\n        return param_data;\\n      }\\n    }\\n    if (CoreType.isString(param_data)) {\\n      if (default_param) {\\n        if (default_param instanceof TypedNodePathParamValue) {\\n          return default_param.set_path(param_data);\\n        }\\n        if (default_param instanceof TypedParamPathParamValue) {\\n          return default_param.set_path(param_data);\\n        }\\n      }\\n      return param_data;\\n    }\\n    if (CoreType.isArray(param_data)) {\\n      this.params[param_name].fromArray(param_data);\\n    }\\n  }\\n  setInput(index, input) {\\n    this._inputs = this._inputs || [];\\n    this._inputs[index] = input;\\n  }\\n  inputs_count() {\\n    if (this._inputs) {\\n      return this._inputs.length;\\n    } else {\\n      return 0;\\n    }\\n  }\\n  inputsController() {\\n    return this._inputs_controller = this._inputs_controller || new InputsController(this);\\n  }\\n  _init_cloned_states() {\\n    const default_cloned_states = this.operation.constructor.INPUT_CLONED_STATE;\\n    this.inputsController().init_inputs_cloned_state(default_cloned_states);\\n  }\\n  input_clone_required(index) {\\n    if (!this._inputs_controller) {\\n      return true;\\n    }\\n    return this._inputs_controller.clone_required(index);\\n  }\\n  override_input_clone_state(state) {\\n    this.inputsController().override_cloned_state(state);\\n  }\\n  cook(input_contents) {\\n    return this.operation.cook(input_contents, this.params);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/operations/container/sop.ts\\nvar SopOperationContainer = class extends BaseOperationContainer {\\n  constructor(operation, name, init_params) {\\n    super(operation, name, init_params);\\n    this.operation = operation;\\n    this.name = name;\\n    this.init_params = init_params;\\n    this._inputs = [];\\n    this._current_input_index = 0;\\n    this._dirty = true;\\n  }\\n  add_input(input) {\\n    super.setInput(this._current_input_index, input);\\n    this.increment_input_index();\\n  }\\n  increment_input_index() {\\n    this._current_input_index++;\\n  }\\n  current_input_index() {\\n    return this._current_input_index;\\n  }\\n  setDirty() {\\n    if (this._dirty) {\\n      return;\\n    }\\n    this._compute_result = void 0;\\n    for (let i = 0; i < this._inputs.length; i++) {\\n      const input_operation = this._inputs[i];\\n      input_operation.setDirty();\\n    }\\n  }\\n  async compute(input_contents, operation_inputs_map) {\\n    if (this._compute_result) {\\n      return this._compute_result;\\n    }\\n    const operation_input_contents = [];\\n    const node_inputs_map = operation_inputs_map.get(this);\\n    if (node_inputs_map) {\\n      node_inputs_map.forEach((node_input_index, operation_input_index) => {\\n        operation_input_contents[operation_input_index] = input_contents[node_input_index];\\n      });\\n    }\\n    for (let i = 0; i < this._inputs.length; i++) {\\n      const input_operation = this._inputs[i];\\n      let result2 = await input_operation.compute(input_contents, operation_inputs_map);\\n      if (result2) {\\n        if (this.input_clone_required(i)) {\\n          result2 = result2.clone();\\n        }\\n        operation_input_contents[i] = result2;\\n      }\\n    }\\n    const result = this.operation.cook(operation_input_contents, this.params);\\n    if (result) {\\n      if (result instanceof Promise) {\\n        this._compute_result = await result;\\n      } else {\\n        this._compute_result = result;\\n      }\\n    } else {\\n      this._compute_result = void 0;\\n    }\\n    this._dirty = false;\\n    return this._compute_result;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/hierarchy/ChildrenController.ts\\nvar HierarchyChildrenController = class {\\n  constructor(node, _context2) {\\n    this.node = node;\\n    this._context = _context2;\\n    this._childrenByName = new Map();\\n    this._childrenByType = new Map();\\n    this._childrenAndGrandchildrenByContext = new Map();\\n  }\\n  get selection() {\\n    return this._selection = this._selection || new CoreNodeSelection(this.node);\\n  }\\n  dispose() {\\n    const children = this.children();\\n    for (let child of children) {\\n      this.node.removeNode(child);\\n    }\\n    this._selection = void 0;\\n  }\\n  get context() {\\n    return this._context;\\n  }\\n  set_output_node_find_method(method) {\\n    this._output_node_find_method = method;\\n  }\\n  output_node() {\\n    if (this._output_node_find_method) {\\n      return this._output_node_find_method();\\n    }\\n  }\\n  setChildName(node, new_name) {\\n    let current_child_with_name;\\n    new_name = CoreString.sanitizeName(new_name);\\n    if ((current_child_with_name = this._childrenByName.get(new_name)) != null) {\\n      if (node.name() === new_name && current_child_with_name.graphNodeId() === node.graphNodeId()) {\\n        return;\\n      }\\n      new_name = CoreString.increment(new_name);\\n      return this.setChildName(node, new_name);\\n    } else {\\n      const current_name = node.name();\\n      const current_child = this._childrenByName.get(current_name);\\n      if (current_child) {\\n        this._childrenByName.delete(current_name);\\n      }\\n      this._childrenByName.set(new_name, node);\\n      node.nameController.updateNameFromParent(new_name);\\n      this._addToNodesByType(node);\\n      this.node.scene().nodesController.addToInstanciatedNode(node);\\n    }\\n  }\\n  node_context_signature() {\\n    return `${this.node.context()}/${this.node.type()}`;\\n  }\\n  available_children_classes() {\\n    return Poly.registeredNodes(this._context, this.node.type());\\n  }\\n  isValidChildType(node_type) {\\n    const node_class = this.available_children_classes()[node_type];\\n    return node_class != null;\\n  }\\n  createNode(node_class_or_string, params_init_value_overrides, node_type = \\\\\\\"\\\\\\\") {\\n    if (typeof node_class_or_string == \\\\\\\"string\\\\\\\") {\\n      const node_class = this._find_node_class(node_class_or_string);\\n      return this._create_and_init_node(node_class, params_init_value_overrides, node_type);\\n    } else {\\n      return this._create_and_init_node(node_class_or_string, params_init_value_overrides, node_type);\\n    }\\n  }\\n  _create_and_init_node(node_class, params_init_value_overrides, node_type = \\\\\\\"\\\\\\\") {\\n    const child_node = new node_class(this.node.scene(), `child_node_${node_type}`, params_init_value_overrides);\\n    child_node.initialize_base_and_node();\\n    this._addNode(child_node);\\n    child_node.lifecycle.setCreationCompleted();\\n    return child_node;\\n  }\\n  _find_node_class(node_type) {\\n    const node_class = this.available_children_classes()[node_type.toLowerCase()];\\n    if (node_class == null) {\\n      const message = `child node type '${node_type}' not found for node '${this.node.path()}'. Available types are: ${Object.keys(this.available_children_classes()).join(\\\\\\\", \\\\\\\")}, ${this._context}, ${this.node.type()}`;\\n      console.error(message);\\n      throw message;\\n    }\\n    return node_class;\\n  }\\n  create_operation_container(operation_type, operation_container_name, params_init_value_overrides) {\\n    const operation_class = Poly.registeredOperation(this._context, operation_type);\\n    if (operation_class == null) {\\n      const message = `no operation found with context ${this._context}/${operation_type}`;\\n      console.error(message);\\n      throw message;\\n    } else {\\n      const operation = new operation_class(this.node.scene());\\n      const operation_container = new SopOperationContainer(operation, operation_container_name, params_init_value_overrides || {});\\n      return operation_container;\\n    }\\n  }\\n  _addNode(child_node) {\\n    child_node.setParent(this.node);\\n    child_node.params.init();\\n    child_node.parentController.onSetParent();\\n    child_node.nameController.runPostSetFullPathHooks();\\n    if (child_node.childrenAllowed() && child_node.childrenController) {\\n      for (let child of child_node.childrenController.children()) {\\n        child.nameController.runPostSetFullPathHooks();\\n      }\\n    }\\n    this.node.emit(NodeEvent.CREATED, {child_node_json: child_node.toJSON()});\\n    if (this.node.scene().lifecycleController.onCreateHookAllowed()) {\\n      child_node.lifecycle.run_on_create_hooks();\\n    }\\n    child_node.lifecycle.run_on_add_hooks();\\n    this.setChildName(child_node, NameController.base_name(child_node));\\n    this.node.lifecycle.run_on_child_add_hooks(child_node);\\n    if (child_node.require_webgl2()) {\\n      this.node.scene().webgl_controller.set_require_webgl2();\\n    }\\n    this.node.scene().missingExpressionReferencesController.checkForMissingReferences(child_node);\\n    return child_node;\\n  }\\n  removeNode(child_node) {\\n    if (child_node.parent() != this.node) {\\n      return console.warn(`node ${child_node.name()} not under parent ${this.node.path()}`);\\n    } else {\\n      if (this.selection.contains(child_node)) {\\n        this.selection.remove([child_node]);\\n      }\\n      const first_connection = child_node.io.connections.firstInputConnection();\\n      const input_connections = child_node.io.connections.inputConnections();\\n      const output_connections = child_node.io.connections.outputConnections();\\n      if (input_connections) {\\n        for (let input_connection of input_connections) {\\n          if (input_connection) {\\n            input_connection.disconnect({setInput: true});\\n          }\\n        }\\n      }\\n      if (output_connections) {\\n        for (let output_connection of output_connections) {\\n          if (output_connection) {\\n            output_connection.disconnect({setInput: true});\\n            if (first_connection) {\\n              const old_src = first_connection.node_src;\\n              const old_output_index = output_connection.output_index;\\n              const old_dest = output_connection.node_dest;\\n              const old_input_index = output_connection.input_index;\\n              old_dest.io.inputs.setInput(old_input_index, old_src, old_output_index);\\n            }\\n          }\\n        }\\n      }\\n      child_node.setParent(null);\\n      this._childrenByName.delete(child_node.name());\\n      this._removeFromNodesByType(child_node);\\n      this.node.scene().nodesController.removeFromInstanciatedNode(child_node);\\n      child_node.setSuccessorsDirty(this.node);\\n      child_node.graphDisconnectSuccessors();\\n      this.node.lifecycle.run_on_child_remove_hooks(child_node);\\n      child_node.lifecycle.run_on_delete_hooks();\\n      child_node.dispose();\\n      child_node.emit(NodeEvent.DELETED, {parent_id: this.node.graphNodeId()});\\n    }\\n  }\\n  _addToNodesByType(node) {\\n    const nodeId = node.graphNodeId();\\n    const type = node.type();\\n    MapUtils.addToSetAtEntry(this._childrenByType, type, nodeId);\\n    this._addToChildrenAndGrandchildrenByContext(node);\\n  }\\n  _removeFromNodesByType(node) {\\n    const nodeId = node.graphNodeId();\\n    const type = node.type();\\n    MapUtils.removeFromSetAtEntry(this._childrenByType, type, nodeId);\\n    this._removeFromChildrenAndGrandchildrenByContext(node);\\n  }\\n  _addToChildrenAndGrandchildrenByContext(node) {\\n    const nodeId = node.graphNodeId();\\n    const nodeContext = node.context();\\n    MapUtils.addToSetAtEntry(this._childrenAndGrandchildrenByContext, nodeContext, nodeId);\\n    const parent = this.node.parent();\\n    if (parent && parent.childrenAllowed()) {\\n      parent.childrenController?._addToChildrenAndGrandchildrenByContext(node);\\n    }\\n  }\\n  _removeFromChildrenAndGrandchildrenByContext(node) {\\n    const nodeId = node.graphNodeId();\\n    const type = node.context();\\n    MapUtils.removeFromSetAtEntry(this._childrenAndGrandchildrenByContext, type, nodeId);\\n    const parent = this.node.parent();\\n    if (parent && parent.childrenAllowed()) {\\n      parent.childrenController?._removeFromChildrenAndGrandchildrenByContext(node);\\n    }\\n  }\\n  nodesByType(type) {\\n    const nodeIds = this._childrenByType.get(type);\\n    if (!nodeIds) {\\n      return [];\\n    }\\n    const graph = this.node.scene().graph;\\n    const nodes = [];\\n    for (let node_id of nodeIds) {\\n      const node = graph.nodeFromId(node_id);\\n      if (node) {\\n        nodes.push(node);\\n      }\\n    }\\n    return nodes;\\n  }\\n  childByName(name) {\\n    return this._childrenByName.get(name) || null;\\n  }\\n  hasChildrenAndGrandchildrenWithContext(context) {\\n    return this._childrenAndGrandchildrenByContext.get(context) != null;\\n  }\\n  children() {\\n    const nodes = [];\\n    this._childrenByName.forEach((node) => {\\n      nodes.push(node);\\n    });\\n    return nodes;\\n  }\\n  childrenNames() {\\n    const names = [];\\n    this._childrenByName.forEach((node, nodeName) => {\\n      names.push(nodeName);\\n    });\\n    return names;\\n  }\\n  traverseChildren(callback) {\\n    this._childrenByName.forEach((childNode) => {\\n      callback(childNode);\\n      childNode.childrenController?.traverseChildren(callback);\\n    });\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/LifeCycleController.ts\\nvar LifeCycleController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._creation_completed = false;\\n  }\\n  dispose() {\\n    this._on_child_add_hooks = void 0;\\n    this._on_child_remove_hooks = void 0;\\n    this._on_create_hooks = void 0;\\n    this._on_add_hooks = void 0;\\n    this._on_delete_hooks = void 0;\\n  }\\n  setCreationCompleted() {\\n    if (!this._creation_completed) {\\n      this._creation_completed = true;\\n    }\\n  }\\n  creationCompleted() {\\n    return this.node.scene().loadingController.loaded() && this._creation_completed;\\n  }\\n  add_on_child_add_hook(callback) {\\n    this._on_child_add_hooks = this._on_child_add_hooks || [];\\n    this._on_child_add_hooks.push(callback);\\n  }\\n  run_on_child_add_hooks(node) {\\n    this.execute_hooks_with_child_node(this._on_child_add_hooks, node);\\n  }\\n  add_on_child_remove_hook(callback) {\\n    this._on_child_remove_hooks = this._on_child_remove_hooks || [];\\n    this._on_child_remove_hooks.push(callback);\\n  }\\n  run_on_child_remove_hooks(node) {\\n    this.execute_hooks_with_child_node(this._on_child_remove_hooks, node);\\n  }\\n  add_on_create_hook(callback) {\\n    this._on_create_hooks = this._on_create_hooks || [];\\n    this._on_create_hooks.push(callback);\\n  }\\n  run_on_create_hooks() {\\n    this.execute_hooks(this._on_create_hooks);\\n  }\\n  add_on_add_hook(callback) {\\n    this._on_add_hooks = this._on_add_hooks || [];\\n    this._on_add_hooks.push(callback);\\n  }\\n  run_on_add_hooks() {\\n    this.execute_hooks(this._on_add_hooks);\\n  }\\n  add_delete_hook(callback) {\\n    this._on_delete_hooks = this._on_delete_hooks || [];\\n    this._on_delete_hooks.push(callback);\\n  }\\n  run_on_delete_hooks() {\\n    this.execute_hooks(this._on_delete_hooks);\\n  }\\n  execute_hooks(hooks) {\\n    if (hooks) {\\n      let hook;\\n      for (hook of hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n  execute_hooks_with_child_node(hooks, child_node) {\\n    if (hooks) {\\n      let hook;\\n      for (hook of hooks) {\\n        hook(child_node);\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/NodeContext.ts\\nvar NodeContext;\\n(function(NodeContext3) {\\n  NodeContext3[\\\\\\\"ANIM\\\\\\\"] = \\\\\\\"anim\\\\\\\";\\n  NodeContext3[\\\\\\\"COP\\\\\\\"] = \\\\\\\"cop\\\\\\\";\\n  NodeContext3[\\\\\\\"EVENT\\\\\\\"] = \\\\\\\"event\\\\\\\";\\n  NodeContext3[\\\\\\\"GL\\\\\\\"] = \\\\\\\"gl\\\\\\\";\\n  NodeContext3[\\\\\\\"JS\\\\\\\"] = \\\\\\\"js\\\\\\\";\\n  NodeContext3[\\\\\\\"MANAGER\\\\\\\"] = \\\\\\\"manager\\\\\\\";\\n  NodeContext3[\\\\\\\"MAT\\\\\\\"] = \\\\\\\"mat\\\\\\\";\\n  NodeContext3[\\\\\\\"OBJ\\\\\\\"] = \\\\\\\"obj\\\\\\\";\\n  NodeContext3[\\\\\\\"POST\\\\\\\"] = \\\\\\\"post\\\\\\\";\\n  NodeContext3[\\\\\\\"ROP\\\\\\\"] = \\\\\\\"rop\\\\\\\";\\n  NodeContext3[\\\\\\\"SOP\\\\\\\"] = \\\\\\\"sop\\\\\\\";\\n})(NodeContext || (NodeContext = {}));\\nvar NetworkNodeType;\\n(function(NetworkNodeType2) {\\n  NetworkNodeType2[\\\\\\\"ANIM\\\\\\\"] = \\\\\\\"animationsNetwork\\\\\\\";\\n  NetworkNodeType2[\\\\\\\"COP\\\\\\\"] = \\\\\\\"copNetwork\\\\\\\";\\n  NetworkNodeType2[\\\\\\\"EVENT\\\\\\\"] = \\\\\\\"eventsNetwork\\\\\\\";\\n  NetworkNodeType2[\\\\\\\"MAT\\\\\\\"] = \\\\\\\"materialsNetwork\\\\\\\";\\n  NetworkNodeType2[\\\\\\\"POST\\\\\\\"] = \\\\\\\"postProcessNetwork\\\\\\\";\\n  NetworkNodeType2[\\\\\\\"ROP\\\\\\\"] = \\\\\\\"renderersNetwork\\\\\\\";\\n})(NetworkNodeType || (NetworkNodeType = {}));\\nvar NetworkChildNodeType;\\n(function(NetworkChildNodeType2) {\\n  NetworkChildNodeType2[\\\\\\\"INPUT\\\\\\\"] = \\\\\\\"subnetInput\\\\\\\";\\n  NetworkChildNodeType2[\\\\\\\"OUTPUT\\\\\\\"] = \\\\\\\"subnetOutput\\\\\\\";\\n})(NetworkChildNodeType || (NetworkChildNodeType = {}));\\nvar CameraNodeType;\\n(function(CameraNodeType2) {\\n  CameraNodeType2[\\\\\\\"PERSPECTIVE\\\\\\\"] = \\\\\\\"perspectiveCamera\\\\\\\";\\n  CameraNodeType2[\\\\\\\"ORTHOGRAPHIC\\\\\\\"] = \\\\\\\"orthographicCamera\\\\\\\";\\n})(CameraNodeType || (CameraNodeType = {}));\\nvar CAMERA_TYPES = [CameraNodeType.ORTHOGRAPHIC, CameraNodeType.PERSPECTIVE];\\nvar GlNodeType;\\n(function(GlNodeType2) {\\n  GlNodeType2[\\\\\\\"ATTRIBUTE\\\\\\\"] = \\\\\\\"attribute\\\\\\\";\\n})(GlNodeType || (GlNodeType = {}));\\nvar CameraControlsNodeType;\\n(function(CameraControlsNodeType2) {\\n  CameraControlsNodeType2[\\\\\\\"DEVICE_ORIENTATION\\\\\\\"] = \\\\\\\"cameraDeviceOrientationControls\\\\\\\";\\n  CameraControlsNodeType2[\\\\\\\"MAP\\\\\\\"] = \\\\\\\"cameraMapControls\\\\\\\";\\n  CameraControlsNodeType2[\\\\\\\"ORBIT\\\\\\\"] = \\\\\\\"cameraOrbitControls\\\\\\\";\\n  CameraControlsNodeType2[\\\\\\\"FIRST_PERSON\\\\\\\"] = \\\\\\\"firstPersonControls\\\\\\\";\\n  CameraControlsNodeType2[\\\\\\\"PLAYER\\\\\\\"] = \\\\\\\"playerControls\\\\\\\";\\n  CameraControlsNodeType2[\\\\\\\"MOBILE_JOYSTICK\\\\\\\"] = \\\\\\\"mobileJoystickControls\\\\\\\";\\n})(CameraControlsNodeType || (CameraControlsNodeType = {}));\\nvar CAMERA_CONTROLS_NODE_TYPES = [\\n  CameraControlsNodeType.DEVICE_ORIENTATION,\\n  CameraControlsNodeType.MAP,\\n  CameraControlsNodeType.ORBIT,\\n  CameraControlsNodeType.FIRST_PERSON,\\n  CameraControlsNodeType.MOBILE_JOYSTICK\\n];\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/_Base.ts\\nvar TypedContainer = class {\\n  constructor(_node) {\\n    this._node = _node;\\n  }\\n  set_node(node) {\\n    this._node = node;\\n  }\\n  node() {\\n    return this._node;\\n  }\\n  set_content(content) {\\n    this._content = content;\\n    this._post_set_content();\\n  }\\n  has_content() {\\n    return this._content != null;\\n  }\\n  content() {\\n    return this._content;\\n  }\\n  _post_set_content() {\\n  }\\n  coreContent() {\\n    return this._content;\\n  }\\n  coreContentCloned() {\\n    return this._content;\\n  }\\n  infos() {\\n    return [];\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Animation.ts\\nvar AnimationContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  setTimelineBuilder(timeline_builder) {\\n    return this.set_content(timeline_builder);\\n  }\\n  timeline_builder() {\\n    return this.content();\\n  }\\n  coreContentCloned() {\\n    if (this._content) {\\n      return this._content.clone();\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Event.ts\\nvar EventContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n};\\n\\n// ../../../node_modules/three/src/objects/SkinnedMesh.js\\nvar _basePosition = /* @__PURE__ */ new Vector3();\\nvar _skinIndex = /* @__PURE__ */ new Vector4();\\nvar _skinWeight = /* @__PURE__ */ new Vector4();\\nvar _vector7 = /* @__PURE__ */ new Vector3();\\nvar _matrix2 = /* @__PURE__ */ new Matrix4();\\nvar SkinnedMesh = class extends Mesh {\\n  constructor(geometry, material) {\\n    super(geometry, material);\\n    this.type = \\\\\\\"SkinnedMesh\\\\\\\";\\n    this.bindMode = \\\\\\\"attached\\\\\\\";\\n    this.bindMatrix = new Matrix4();\\n    this.bindMatrixInverse = new Matrix4();\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.bindMode = source.bindMode;\\n    this.bindMatrix.copy(source.bindMatrix);\\n    this.bindMatrixInverse.copy(source.bindMatrixInverse);\\n    this.skeleton = source.skeleton;\\n    return this;\\n  }\\n  bind(skeleton, bindMatrix) {\\n    this.skeleton = skeleton;\\n    if (bindMatrix === void 0) {\\n      this.updateMatrixWorld(true);\\n      this.skeleton.calculateInverses();\\n      bindMatrix = this.matrixWorld;\\n    }\\n    this.bindMatrix.copy(bindMatrix);\\n    this.bindMatrixInverse.copy(bindMatrix).invert();\\n  }\\n  pose() {\\n    this.skeleton.pose();\\n  }\\n  normalizeSkinWeights() {\\n    const vector = new Vector4();\\n    const skinWeight = this.geometry.attributes.skinWeight;\\n    for (let i = 0, l = skinWeight.count; i < l; i++) {\\n      vector.x = skinWeight.getX(i);\\n      vector.y = skinWeight.getY(i);\\n      vector.z = skinWeight.getZ(i);\\n      vector.w = skinWeight.getW(i);\\n      const scale = 1 / vector.manhattanLength();\\n      if (scale !== Infinity) {\\n        vector.multiplyScalar(scale);\\n      } else {\\n        vector.set(1, 0, 0, 0);\\n      }\\n      skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\\n    }\\n  }\\n  updateMatrixWorld(force) {\\n    super.updateMatrixWorld(force);\\n    if (this.bindMode === \\\\\\\"attached\\\\\\\") {\\n      this.bindMatrixInverse.copy(this.matrixWorld).invert();\\n    } else if (this.bindMode === \\\\\\\"detached\\\\\\\") {\\n      this.bindMatrixInverse.copy(this.bindMatrix).invert();\\n    } else {\\n      console.warn(\\\\\\\"THREE.SkinnedMesh: Unrecognized bindMode: \\\\\\\" + this.bindMode);\\n    }\\n  }\\n  boneTransform(index, target) {\\n    const skeleton = this.skeleton;\\n    const geometry = this.geometry;\\n    _skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index);\\n    _skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index);\\n    _basePosition.copy(target).applyMatrix4(this.bindMatrix);\\n    target.set(0, 0, 0);\\n    for (let i = 0; i < 4; i++) {\\n      const weight = _skinWeight.getComponent(i);\\n      if (weight !== 0) {\\n        const boneIndex = _skinIndex.getComponent(i);\\n        _matrix2.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]);\\n        target.addScaledVector(_vector7.copy(_basePosition).applyMatrix4(_matrix2), weight);\\n      }\\n    }\\n    return target.applyMatrix4(this.bindMatrixInverse);\\n  }\\n};\\nSkinnedMesh.prototype.isSkinnedMesh = true;\\n\\n// ../../../node_modules/three/src/scenes/Scene.js\\nvar Scene = class extends Object3D {\\n  constructor() {\\n    super();\\n    this.type = \\\\\\\"Scene\\\\\\\";\\n    this.background = null;\\n    this.environment = null;\\n    this.fog = null;\\n    this.overrideMaterial = null;\\n    this.autoUpdate = true;\\n    if (typeof __THREE_DEVTOOLS__ !== \\\\\\\"undefined\\\\\\\") {\\n      __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\\\\\\\"observe\\\\\\\", {detail: this}));\\n    }\\n  }\\n  copy(source, recursive) {\\n    super.copy(source, recursive);\\n    if (source.background !== null)\\n      this.background = source.background.clone();\\n    if (source.environment !== null)\\n      this.environment = source.environment.clone();\\n    if (source.fog !== null)\\n      this.fog = source.fog.clone();\\n    if (source.overrideMaterial !== null)\\n      this.overrideMaterial = source.overrideMaterial.clone();\\n    this.autoUpdate = source.autoUpdate;\\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\\n    return this;\\n  }\\n  toJSON(meta) {\\n    const data = super.toJSON(meta);\\n    if (this.fog !== null)\\n      data.object.fog = this.fog.toJSON();\\n    return data;\\n  }\\n};\\nScene.prototype.isScene = true;\\n\\n// ../../../node_modules/three/src/materials/PointsMaterial.js\\nvar PointsMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"PointsMaterial\\\\\\\";\\n    this.color = new Color(16777215);\\n    this.map = null;\\n    this.alphaMap = null;\\n    this.size = 1;\\n    this.sizeAttenuation = true;\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.color.copy(source.color);\\n    this.map = source.map;\\n    this.alphaMap = source.alphaMap;\\n    this.size = source.size;\\n    this.sizeAttenuation = source.sizeAttenuation;\\n    return this;\\n  }\\n};\\nPointsMaterial.prototype.isPointsMaterial = true;\\n\\n// ../../../node_modules/three/src/objects/Points.js\\nvar _inverseMatrix2 = /* @__PURE__ */ new Matrix4();\\nvar _ray2 = /* @__PURE__ */ new Ray();\\nvar _sphere3 = /* @__PURE__ */ new Sphere();\\nvar _position2 = /* @__PURE__ */ new Vector3();\\nvar Points = class extends Object3D {\\n  constructor(geometry = new BufferGeometry(), material = new PointsMaterial()) {\\n    super();\\n    this.type = \\\\\\\"Points\\\\\\\";\\n    this.geometry = geometry;\\n    this.material = material;\\n    this.updateMorphTargets();\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.material = source.material;\\n    this.geometry = source.geometry;\\n    return this;\\n  }\\n  raycast(raycaster, intersects) {\\n    const geometry = this.geometry;\\n    const matrixWorld = this.matrixWorld;\\n    const threshold = raycaster.params.Points.threshold;\\n    const drawRange = geometry.drawRange;\\n    if (geometry.boundingSphere === null)\\n      geometry.computeBoundingSphere();\\n    _sphere3.copy(geometry.boundingSphere);\\n    _sphere3.applyMatrix4(matrixWorld);\\n    _sphere3.radius += threshold;\\n    if (raycaster.ray.intersectsSphere(_sphere3) === false)\\n      return;\\n    _inverseMatrix2.copy(matrixWorld).invert();\\n    _ray2.copy(raycaster.ray).applyMatrix4(_inverseMatrix2);\\n    const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\\n    const localThresholdSq = localThreshold * localThreshold;\\n    if (geometry.isBufferGeometry) {\\n      const index = geometry.index;\\n      const attributes = geometry.attributes;\\n      const positionAttribute = attributes.position;\\n      if (index !== null) {\\n        const start = Math.max(0, drawRange.start);\\n        const end = Math.min(index.count, drawRange.start + drawRange.count);\\n        for (let i = start, il = end; i < il; i++) {\\n          const a = index.getX(i);\\n          _position2.fromBufferAttribute(positionAttribute, a);\\n          testPoint(_position2, a, localThresholdSq, matrixWorld, raycaster, intersects, this);\\n        }\\n      } else {\\n        const start = Math.max(0, drawRange.start);\\n        const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\\n        for (let i = start, l = end; i < l; i++) {\\n          _position2.fromBufferAttribute(positionAttribute, i);\\n          testPoint(_position2, i, localThresholdSq, matrixWorld, raycaster, intersects, this);\\n        }\\n      }\\n    } else {\\n      console.error(\\\\\\\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n    }\\n  }\\n  updateMorphTargets() {\\n    const geometry = this.geometry;\\n    if (geometry.isBufferGeometry) {\\n      const morphAttributes = geometry.morphAttributes;\\n      const keys = Object.keys(morphAttributes);\\n      if (keys.length > 0) {\\n        const morphAttribute = morphAttributes[keys[0]];\\n        if (morphAttribute !== void 0) {\\n          this.morphTargetInfluences = [];\\n          this.morphTargetDictionary = {};\\n          for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\\n            const name = morphAttribute[m].name || String(m);\\n            this.morphTargetInfluences.push(0);\\n            this.morphTargetDictionary[name] = m;\\n          }\\n        }\\n      }\\n    } else {\\n      const morphTargets = geometry.morphTargets;\\n      if (morphTargets !== void 0 && morphTargets.length > 0) {\\n        console.error(\\\\\\\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n      }\\n    }\\n  }\\n};\\nPoints.prototype.isPoints = true;\\nfunction testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects, object) {\\n  const rayPointDistanceSq = _ray2.distanceSqToPoint(point);\\n  if (rayPointDistanceSq < localThresholdSq) {\\n    const intersectPoint = new Vector3();\\n    _ray2.closestPointToPoint(point, intersectPoint);\\n    intersectPoint.applyMatrix4(matrixWorld);\\n    const distance = raycaster.ray.origin.distanceTo(intersectPoint);\\n    if (distance < raycaster.near || distance > raycaster.far)\\n      return;\\n    intersects.push({\\n      distance,\\n      distanceToRay: Math.sqrt(rayPointDistanceSq),\\n      point: intersectPoint,\\n      index,\\n      face: null,\\n      object\\n    });\\n  }\\n}\\n\\n// ../../../node_modules/three/src/objects/Bone.js\\nvar Bone = class extends Object3D {\\n  constructor() {\\n    super();\\n    this.type = \\\\\\\"Bone\\\\\\\";\\n  }\\n};\\nBone.prototype.isBone = true;\\n\\n// ../../../node_modules/three/src/materials/MeshStandardMaterial.js\\nvar MeshStandardMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.defines = {STANDARD: \\\\\\\"\\\\\\\"};\\n    this.type = \\\\\\\"MeshStandardMaterial\\\\\\\";\\n    this.color = new Color(16777215);\\n    this.roughness = 1;\\n    this.metalness = 0;\\n    this.map = null;\\n    this.lightMap = null;\\n    this.lightMapIntensity = 1;\\n    this.aoMap = null;\\n    this.aoMapIntensity = 1;\\n    this.emissive = new Color(0);\\n    this.emissiveIntensity = 1;\\n    this.emissiveMap = null;\\n    this.bumpMap = null;\\n    this.bumpScale = 1;\\n    this.normalMap = null;\\n    this.normalMapType = TangentSpaceNormalMap;\\n    this.normalScale = new Vector2(1, 1);\\n    this.displacementMap = null;\\n    this.displacementScale = 1;\\n    this.displacementBias = 0;\\n    this.roughnessMap = null;\\n    this.metalnessMap = null;\\n    this.alphaMap = null;\\n    this.envMap = null;\\n    this.envMapIntensity = 1;\\n    this.refractionRatio = 0.98;\\n    this.wireframe = false;\\n    this.wireframeLinewidth = 1;\\n    this.wireframeLinecap = \\\\\\\"round\\\\\\\";\\n    this.wireframeLinejoin = \\\\\\\"round\\\\\\\";\\n    this.flatShading = false;\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.defines = {STANDARD: \\\\\\\"\\\\\\\"};\\n    this.color.copy(source.color);\\n    this.roughness = source.roughness;\\n    this.metalness = source.metalness;\\n    this.map = source.map;\\n    this.lightMap = source.lightMap;\\n    this.lightMapIntensity = source.lightMapIntensity;\\n    this.aoMap = source.aoMap;\\n    this.aoMapIntensity = source.aoMapIntensity;\\n    this.emissive.copy(source.emissive);\\n    this.emissiveMap = source.emissiveMap;\\n    this.emissiveIntensity = source.emissiveIntensity;\\n    this.bumpMap = source.bumpMap;\\n    this.bumpScale = source.bumpScale;\\n    this.normalMap = source.normalMap;\\n    this.normalMapType = source.normalMapType;\\n    this.normalScale.copy(source.normalScale);\\n    this.displacementMap = source.displacementMap;\\n    this.displacementScale = source.displacementScale;\\n    this.displacementBias = source.displacementBias;\\n    this.roughnessMap = source.roughnessMap;\\n    this.metalnessMap = source.metalnessMap;\\n    this.alphaMap = source.alphaMap;\\n    this.envMap = source.envMap;\\n    this.envMapIntensity = source.envMapIntensity;\\n    this.refractionRatio = source.refractionRatio;\\n    this.wireframe = source.wireframe;\\n    this.wireframeLinewidth = source.wireframeLinewidth;\\n    this.wireframeLinecap = source.wireframeLinecap;\\n    this.wireframeLinejoin = source.wireframeLinejoin;\\n    this.flatShading = source.flatShading;\\n    return this;\\n  }\\n};\\nMeshStandardMaterial.prototype.isMeshStandardMaterial = true;\\n\\n// ../../../node_modules/three/src/materials/MeshLambertMaterial.js\\nvar MeshLambertMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"MeshLambertMaterial\\\\\\\";\\n    this.color = new Color(16777215);\\n    this.map = null;\\n    this.lightMap = null;\\n    this.lightMapIntensity = 1;\\n    this.aoMap = null;\\n    this.aoMapIntensity = 1;\\n    this.emissive = new Color(0);\\n    this.emissiveIntensity = 1;\\n    this.emissiveMap = null;\\n    this.specularMap = null;\\n    this.alphaMap = null;\\n    this.envMap = null;\\n    this.combine = MultiplyOperation;\\n    this.reflectivity = 1;\\n    this.refractionRatio = 0.98;\\n    this.wireframe = false;\\n    this.wireframeLinewidth = 1;\\n    this.wireframeLinecap = \\\\\\\"round\\\\\\\";\\n    this.wireframeLinejoin = \\\\\\\"round\\\\\\\";\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.color.copy(source.color);\\n    this.map = source.map;\\n    this.lightMap = source.lightMap;\\n    this.lightMapIntensity = source.lightMapIntensity;\\n    this.aoMap = source.aoMap;\\n    this.aoMapIntensity = source.aoMapIntensity;\\n    this.emissive.copy(source.emissive);\\n    this.emissiveMap = source.emissiveMap;\\n    this.emissiveIntensity = source.emissiveIntensity;\\n    this.specularMap = source.specularMap;\\n    this.alphaMap = source.alphaMap;\\n    this.envMap = source.envMap;\\n    this.combine = source.combine;\\n    this.reflectivity = source.reflectivity;\\n    this.refractionRatio = source.refractionRatio;\\n    this.wireframe = source.wireframe;\\n    this.wireframeLinewidth = source.wireframeLinewidth;\\n    this.wireframeLinecap = source.wireframeLinecap;\\n    this.wireframeLinejoin = source.wireframeLinejoin;\\n    return this;\\n  }\\n};\\nMeshLambertMaterial.prototype.isMeshLambertMaterial = true;\\n\\n// ../../../node_modules/three/src/materials/LineBasicMaterial.js\\nvar LineBasicMaterial = class extends Material {\\n  constructor(parameters) {\\n    super();\\n    this.type = \\\\\\\"LineBasicMaterial\\\\\\\";\\n    this.color = new Color(16777215);\\n    this.linewidth = 1;\\n    this.linecap = \\\\\\\"round\\\\\\\";\\n    this.linejoin = \\\\\\\"round\\\\\\\";\\n    this.setValues(parameters);\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.color.copy(source.color);\\n    this.linewidth = source.linewidth;\\n    this.linecap = source.linecap;\\n    this.linejoin = source.linejoin;\\n    return this;\\n  }\\n};\\nLineBasicMaterial.prototype.isLineBasicMaterial = true;\\n\\n// ../../../node_modules/three/src/objects/Line.js\\nvar _start = /* @__PURE__ */ new Vector3();\\nvar _end = /* @__PURE__ */ new Vector3();\\nvar _inverseMatrix3 = /* @__PURE__ */ new Matrix4();\\nvar _ray3 = /* @__PURE__ */ new Ray();\\nvar _sphere4 = /* @__PURE__ */ new Sphere();\\nvar Line = class extends Object3D {\\n  constructor(geometry = new BufferGeometry(), material = new LineBasicMaterial()) {\\n    super();\\n    this.type = \\\\\\\"Line\\\\\\\";\\n    this.geometry = geometry;\\n    this.material = material;\\n    this.updateMorphTargets();\\n  }\\n  copy(source) {\\n    super.copy(source);\\n    this.material = source.material;\\n    this.geometry = source.geometry;\\n    return this;\\n  }\\n  computeLineDistances() {\\n    const geometry = this.geometry;\\n    if (geometry.isBufferGeometry) {\\n      if (geometry.index === null) {\\n        const positionAttribute = geometry.attributes.position;\\n        const lineDistances = [0];\\n        for (let i = 1, l = positionAttribute.count; i < l; i++) {\\n          _start.fromBufferAttribute(positionAttribute, i - 1);\\n          _end.fromBufferAttribute(positionAttribute, i);\\n          lineDistances[i] = lineDistances[i - 1];\\n          lineDistances[i] += _start.distanceTo(_end);\\n        }\\n        geometry.setAttribute(\\\\\\\"lineDistance\\\\\\\", new Float32BufferAttribute(lineDistances, 1));\\n      } else {\\n        console.warn(\\\\\\\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");\\n      }\\n    } else if (geometry.isGeometry) {\\n      console.error(\\\\\\\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n    }\\n    return this;\\n  }\\n  raycast(raycaster, intersects) {\\n    const geometry = this.geometry;\\n    const matrixWorld = this.matrixWorld;\\n    const threshold = raycaster.params.Line.threshold;\\n    const drawRange = geometry.drawRange;\\n    if (geometry.boundingSphere === null)\\n      geometry.computeBoundingSphere();\\n    _sphere4.copy(geometry.boundingSphere);\\n    _sphere4.applyMatrix4(matrixWorld);\\n    _sphere4.radius += threshold;\\n    if (raycaster.ray.intersectsSphere(_sphere4) === false)\\n      return;\\n    _inverseMatrix3.copy(matrixWorld).invert();\\n    _ray3.copy(raycaster.ray).applyMatrix4(_inverseMatrix3);\\n    const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\\n    const localThresholdSq = localThreshold * localThreshold;\\n    const vStart = new Vector3();\\n    const vEnd = new Vector3();\\n    const interSegment = new Vector3();\\n    const interRay = new Vector3();\\n    const step = this.isLineSegments ? 2 : 1;\\n    if (geometry.isBufferGeometry) {\\n      const index = geometry.index;\\n      const attributes = geometry.attributes;\\n      const positionAttribute = attributes.position;\\n      if (index !== null) {\\n        const start = Math.max(0, drawRange.start);\\n        const end = Math.min(index.count, drawRange.start + drawRange.count);\\n        for (let i = start, l = end - 1; i < l; i += step) {\\n          const a = index.getX(i);\\n          const b = index.getX(i + 1);\\n          vStart.fromBufferAttribute(positionAttribute, a);\\n          vEnd.fromBufferAttribute(positionAttribute, b);\\n          const distSq = _ray3.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\\n          if (distSq > localThresholdSq)\\n            continue;\\n          interRay.applyMatrix4(this.matrixWorld);\\n          const distance = raycaster.ray.origin.distanceTo(interRay);\\n          if (distance < raycaster.near || distance > raycaster.far)\\n            continue;\\n          intersects.push({\\n            distance,\\n            point: interSegment.clone().applyMatrix4(this.matrixWorld),\\n            index: i,\\n            face: null,\\n            faceIndex: null,\\n            object: this\\n          });\\n        }\\n      } else {\\n        const start = Math.max(0, drawRange.start);\\n        const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\\n        for (let i = start, l = end - 1; i < l; i += step) {\\n          vStart.fromBufferAttribute(positionAttribute, i);\\n          vEnd.fromBufferAttribute(positionAttribute, i + 1);\\n          const distSq = _ray3.distanceSqToSegment(vStart, vEnd, interRay, interSegment);\\n          if (distSq > localThresholdSq)\\n            continue;\\n          interRay.applyMatrix4(this.matrixWorld);\\n          const distance = raycaster.ray.origin.distanceTo(interRay);\\n          if (distance < raycaster.near || distance > raycaster.far)\\n            continue;\\n          intersects.push({\\n            distance,\\n            point: interSegment.clone().applyMatrix4(this.matrixWorld),\\n            index: i,\\n            face: null,\\n            faceIndex: null,\\n            object: this\\n          });\\n        }\\n      }\\n    } else if (geometry.isGeometry) {\\n      console.error(\\\\\\\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n    }\\n  }\\n  updateMorphTargets() {\\n    const geometry = this.geometry;\\n    if (geometry.isBufferGeometry) {\\n      const morphAttributes = geometry.morphAttributes;\\n      const keys = Object.keys(morphAttributes);\\n      if (keys.length > 0) {\\n        const morphAttribute = morphAttributes[keys[0]];\\n        if (morphAttribute !== void 0) {\\n          this.morphTargetInfluences = [];\\n          this.morphTargetDictionary = {};\\n          for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\\n            const name = morphAttribute[m].name || String(m);\\n            this.morphTargetInfluences.push(0);\\n            this.morphTargetDictionary[name] = m;\\n          }\\n        }\\n      }\\n    } else {\\n      const morphTargets = geometry.morphTargets;\\n      if (morphTargets !== void 0 && morphTargets.length > 0) {\\n        console.error(\\\\\\\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n      }\\n    }\\n  }\\n};\\nLine.prototype.isLine = true;\\n\\n// ../../../node_modules/three/src/objects/LineSegments.js\\nvar _start2 = /* @__PURE__ */ new Vector3();\\nvar _end2 = /* @__PURE__ */ new Vector3();\\nvar LineSegments = class extends Line {\\n  constructor(geometry, material) {\\n    super(geometry, material);\\n    this.type = \\\\\\\"LineSegments\\\\\\\";\\n  }\\n  computeLineDistances() {\\n    const geometry = this.geometry;\\n    if (geometry.isBufferGeometry) {\\n      if (geometry.index === null) {\\n        const positionAttribute = geometry.attributes.position;\\n        const lineDistances = [];\\n        for (let i = 0, l = positionAttribute.count; i < l; i += 2) {\\n          _start2.fromBufferAttribute(positionAttribute, i);\\n          _end2.fromBufferAttribute(positionAttribute, i + 1);\\n          lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\\n          lineDistances[i + 1] = lineDistances[i] + _start2.distanceTo(_end2);\\n        }\\n        geometry.setAttribute(\\\\\\\"lineDistance\\\\\\\", new Float32BufferAttribute(lineDistances, 1));\\n      } else {\\n        console.warn(\\\\\\\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\\\\\\\");\\n      }\\n    } else if (geometry.isGeometry) {\\n      console.error(\\\\\\\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\\\\\\\");\\n    }\\n    return this;\\n  }\\n};\\nLineSegments.prototype.isLineSegments = true;\\n\\n// ../../../node_modules/three/src/objects/LOD.js\\nvar _v16 = /* @__PURE__ */ new Vector3();\\nvar _v23 = /* @__PURE__ */ new Vector3();\\nvar LOD = class extends Object3D {\\n  constructor() {\\n    super();\\n    this._currentLevel = 0;\\n    this.type = \\\\\\\"LOD\\\\\\\";\\n    Object.defineProperties(this, {\\n      levels: {\\n        enumerable: true,\\n        value: []\\n      },\\n      isLOD: {\\n        value: true\\n      }\\n    });\\n    this.autoUpdate = true;\\n  }\\n  copy(source) {\\n    super.copy(source, false);\\n    const levels = source.levels;\\n    for (let i = 0, l = levels.length; i < l; i++) {\\n      const level = levels[i];\\n      this.addLevel(level.object.clone(), level.distance);\\n    }\\n    this.autoUpdate = source.autoUpdate;\\n    return this;\\n  }\\n  addLevel(object, distance = 0) {\\n    distance = Math.abs(distance);\\n    const levels = this.levels;\\n    let l;\\n    for (l = 0; l < levels.length; l++) {\\n      if (distance < levels[l].distance) {\\n        break;\\n      }\\n    }\\n    levels.splice(l, 0, {distance, object});\\n    this.add(object);\\n    return this;\\n  }\\n  getCurrentLevel() {\\n    return this._currentLevel;\\n  }\\n  getObjectForDistance(distance) {\\n    const levels = this.levels;\\n    if (levels.length > 0) {\\n      let i, l;\\n      for (i = 1, l = levels.length; i < l; i++) {\\n        if (distance < levels[i].distance) {\\n          break;\\n        }\\n      }\\n      return levels[i - 1].object;\\n    }\\n    return null;\\n  }\\n  raycast(raycaster, intersects) {\\n    const levels = this.levels;\\n    if (levels.length > 0) {\\n      _v16.setFromMatrixPosition(this.matrixWorld);\\n      const distance = raycaster.ray.origin.distanceTo(_v16);\\n      this.getObjectForDistance(distance).raycast(raycaster, intersects);\\n    }\\n  }\\n  update(camera) {\\n    const levels = this.levels;\\n    if (levels.length > 1) {\\n      _v16.setFromMatrixPosition(camera.matrixWorld);\\n      _v23.setFromMatrixPosition(this.matrixWorld);\\n      const distance = _v16.distanceTo(_v23) / camera.zoom;\\n      levels[0].object.visible = true;\\n      let i, l;\\n      for (i = 1, l = levels.length; i < l; i++) {\\n        if (distance >= levels[i].distance) {\\n          levels[i - 1].object.visible = false;\\n          levels[i].object.visible = true;\\n        } else {\\n          break;\\n        }\\n      }\\n      this._currentLevel = i - 1;\\n      for (; i < l; i++) {\\n        levels[i].object.visible = false;\\n      }\\n    }\\n  }\\n  toJSON(meta) {\\n    const data = super.toJSON(meta);\\n    if (this.autoUpdate === false)\\n      data.object.autoUpdate = false;\\n    data.object.levels = [];\\n    const levels = this.levels;\\n    for (let i = 0, l = levels.length; i < l; i++) {\\n      const level = levels[i];\\n      data.object.levels.push({\\n        object: level.object.uuid,\\n        distance: level.distance\\n      });\\n    }\\n    return data;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Constant.ts\\nvar ObjectType;\\n(function(ObjectType2) {\\n  ObjectType2[\\\\\\\"OBJECT3D\\\\\\\"] = \\\\\\\"Object3D\\\\\\\";\\n  ObjectType2[\\\\\\\"GROUP\\\\\\\"] = \\\\\\\"Group\\\\\\\";\\n  ObjectType2[\\\\\\\"MESH\\\\\\\"] = \\\\\\\"Mesh\\\\\\\";\\n  ObjectType2[\\\\\\\"POINTS\\\\\\\"] = \\\\\\\"Points\\\\\\\";\\n  ObjectType2[\\\\\\\"LINE_SEGMENTS\\\\\\\"] = \\\\\\\"LineSegments\\\\\\\";\\n  ObjectType2[\\\\\\\"LOD\\\\\\\"] = \\\\\\\"LOD\\\\\\\";\\n})(ObjectType || (ObjectType = {}));\\nvar OBJECT_CONSTRUCTOR_BY_OBJECT_TYPE = {\\n  [ObjectType.MESH]: Mesh,\\n  [ObjectType.GROUP]: Group,\\n  [ObjectType.POINTS]: Points,\\n  [ObjectType.LINE_SEGMENTS]: LineSegments,\\n  [ObjectType.OBJECT3D]: Object3D,\\n  [ObjectType.LOD]: LOD\\n};\\nfunction objectTypeFromConstructor(constructor) {\\n  switch (constructor) {\\n    case Object3D:\\n      return ObjectType.OBJECT3D;\\n    case Group:\\n      return ObjectType.GROUP;\\n    case Mesh:\\n      return ObjectType.MESH;\\n    case Points:\\n      return ObjectType.POINTS;\\n    case LineSegments:\\n      return ObjectType.LINE_SEGMENTS;\\n    case LOD:\\n      return ObjectType.LOD;\\n    default:\\n      Poly.warn(\\\\\\\"object type not supported\\\\\\\", constructor);\\n      return ObjectType.MESH;\\n  }\\n}\\nvar ObjectTypes = [ObjectType.MESH, ObjectType.POINTS, ObjectType.LINE_SEGMENTS];\\nvar ObjectTypeMenuEntries = [\\n  {name: \\\\\\\"Mesh\\\\\\\", value: ObjectTypes.indexOf(ObjectType.MESH)},\\n  {name: \\\\\\\"Points\\\\\\\", value: ObjectTypes.indexOf(ObjectType.POINTS)},\\n  {name: \\\\\\\"LineSegments\\\\\\\", value: ObjectTypes.indexOf(ObjectType.LINE_SEGMENTS)}\\n];\\nvar materials = {\\n  MeshStandard: new MeshStandardMaterial({\\n    color: 16777215,\\n    side: FrontSide,\\n    metalness: 0.5,\\n    roughness: 0.9\\n  }),\\n  [ObjectType.MESH]: new MeshLambertMaterial({\\n    color: new Color(1, 1, 1),\\n    side: FrontSide,\\n    vertexColors: false,\\n    transparent: true,\\n    depthTest: true\\n  }),\\n  [ObjectType.POINTS]: new PointsMaterial({\\n    color: 16777215,\\n    size: 0.1,\\n    depthTest: true\\n  }),\\n  [ObjectType.LINE_SEGMENTS]: new LineBasicMaterial({\\n    color: 16777215,\\n    linewidth: 1\\n  })\\n};\\nvar AttribClass;\\n(function(AttribClass3) {\\n  AttribClass3[AttribClass3[\\\\\\\"VERTEX\\\\\\\"] = 0] = \\\\\\\"VERTEX\\\\\\\";\\n  AttribClass3[AttribClass3[\\\\\\\"OBJECT\\\\\\\"] = 1] = \\\\\\\"OBJECT\\\\\\\";\\n})(AttribClass || (AttribClass = {}));\\nvar AttribType;\\n(function(AttribType2) {\\n  AttribType2[AttribType2[\\\\\\\"NUMERIC\\\\\\\"] = 0] = \\\\\\\"NUMERIC\\\\\\\";\\n  AttribType2[AttribType2[\\\\\\\"STRING\\\\\\\"] = 1] = \\\\\\\"STRING\\\\\\\";\\n})(AttribType || (AttribType = {}));\\nvar AttribSize;\\n(function(AttribSize5) {\\n  AttribSize5[AttribSize5[\\\\\\\"FLOAT\\\\\\\"] = 1] = \\\\\\\"FLOAT\\\\\\\";\\n  AttribSize5[AttribSize5[\\\\\\\"VECTOR2\\\\\\\"] = 2] = \\\\\\\"VECTOR2\\\\\\\";\\n  AttribSize5[AttribSize5[\\\\\\\"VECTOR3\\\\\\\"] = 3] = \\\\\\\"VECTOR3\\\\\\\";\\n  AttribSize5[AttribSize5[\\\\\\\"VECTOR4\\\\\\\"] = 4] = \\\\\\\"VECTOR4\\\\\\\";\\n})(AttribSize || (AttribSize = {}));\\nvar CoreConstant = {\\n  ATTRIB_CLASS: {\\n    VERTEX: 0,\\n    OBJECT: 1\\n  },\\n  OBJECT_TYPES: ObjectTypes,\\n  CONSTRUCTOR_NAMES_BY_CONSTRUCTOR_NAME: {\\n    [Scene.name]: \\\\\\\"Scene\\\\\\\",\\n    [Group.name]: \\\\\\\"Group\\\\\\\",\\n    [Object3D.name]: \\\\\\\"Object3D\\\\\\\",\\n    [Mesh.name]: \\\\\\\"Mesh\\\\\\\",\\n    [Points.name]: \\\\\\\"Points\\\\\\\",\\n    [LineSegments.name]: \\\\\\\"LineSegments\\\\\\\",\\n    [Bone.name]: \\\\\\\"Bone\\\\\\\",\\n    [SkinnedMesh.name]: \\\\\\\"SkinnedMesh\\\\\\\"\\n  },\\n  CONSTRUCTORS_BY_NAME: {\\n    [ObjectType.MESH]: Mesh,\\n    [ObjectType.POINTS]: Points,\\n    [ObjectType.LINE_SEGMENTS]: LineSegments\\n  },\\n  MATERIALS: materials\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Attribute.ts\\nvar Attribute;\\n(function(Attribute2) {\\n  Attribute2[\\\\\\\"COLOR\\\\\\\"] = \\\\\\\"color\\\\\\\";\\n  Attribute2[\\\\\\\"NORMAL\\\\\\\"] = \\\\\\\"normal\\\\\\\";\\n  Attribute2[\\\\\\\"POSITION\\\\\\\"] = \\\\\\\"position\\\\\\\";\\n  Attribute2[\\\\\\\"PSCALE\\\\\\\"] = \\\\\\\"pscale\\\\\\\";\\n  Attribute2[\\\\\\\"UP\\\\\\\"] = \\\\\\\"up\\\\\\\";\\n  Attribute2[\\\\\\\"UV\\\\\\\"] = \\\\\\\"uv\\\\\\\";\\n  Attribute2[\\\\\\\"SCALE\\\\\\\"] = \\\\\\\"scale\\\\\\\";\\n  Attribute2[\\\\\\\"TANGENT\\\\\\\"] = \\\\\\\"tangent\\\\\\\";\\n})(Attribute || (Attribute = {}));\\nvar ATTRIB_NAME_MAP = {\\n  P: Attribute.POSITION,\\n  N: Attribute.NORMAL,\\n  Cd: Attribute.COLOR\\n};\\nvar CoreAttribute = class {\\n  static remapName(name) {\\n    return ATTRIB_NAME_MAP[name] || name;\\n  }\\n  static arrayToIndexedArrays(array) {\\n    const index_by_value = {};\\n    let current_index = 0;\\n    const indices = [];\\n    const values = [];\\n    let i = 0;\\n    while (i < array.length) {\\n      const value = array[i];\\n      const index = index_by_value[value];\\n      if (index != null) {\\n        indices.push(index);\\n      } else {\\n        values.push(value);\\n        indices.push(current_index);\\n        index_by_value[value] = current_index;\\n        current_index += 1;\\n      }\\n      i++;\\n    }\\n    return {\\n      indices,\\n      values\\n    };\\n  }\\n  static default_value(size) {\\n    switch (size) {\\n      case 1:\\n        return 0;\\n      case 2:\\n        return new Vector2(0, 0);\\n      case 3:\\n        return new Vector3(0, 0, 0);\\n      default:\\n        throw `size ${size} not yet implemented`;\\n    }\\n  }\\n  static copy(src, dest, mark_as_needs_update = true) {\\n    const src_array = src?.array;\\n    const dest_array = dest?.array;\\n    if (src_array && dest_array) {\\n      const min_length = Math.min(src_array.length, dest_array.length);\\n      for (let i = 0; i < min_length; i++) {\\n        dest_array[i] = src_array[i];\\n      }\\n      if (mark_as_needs_update) {\\n        dest.needsUpdate = true;\\n      }\\n    }\\n  }\\n  static attribSizeFromValue(val) {\\n    if (CoreType.isString(val) || CoreType.isNumber(val)) {\\n      return AttribSize.FLOAT;\\n    }\\n    if (CoreType.isArray(val)) {\\n      return val.length;\\n    }\\n    switch (val.constructor) {\\n      case Vector2:\\n        return AttribSize.VECTOR2;\\n      case Vector3:\\n        return AttribSize.VECTOR3;\\n      case Vector4:\\n        return AttribSize.VECTOR4;\\n    }\\n    return 0;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Entity.ts\\nvar CoreEntity = class {\\n  constructor(_index) {\\n    this._index = _index;\\n  }\\n  index() {\\n    return this._index;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Point.ts\\nvar ATTRIB_NAMES = {\\n  POSITION: \\\\\\\"position\\\\\\\",\\n  NORMAL: \\\\\\\"normal\\\\\\\"\\n};\\nvar ComponentName;\\n(function(ComponentName2) {\\n  ComponentName2[\\\\\\\"x\\\\\\\"] = \\\\\\\"x\\\\\\\";\\n  ComponentName2[\\\\\\\"y\\\\\\\"] = \\\\\\\"y\\\\\\\";\\n  ComponentName2[\\\\\\\"z\\\\\\\"] = \\\\\\\"z\\\\\\\";\\n  ComponentName2[\\\\\\\"w\\\\\\\"] = \\\\\\\"w\\\\\\\";\\n  ComponentName2[\\\\\\\"r\\\\\\\"] = \\\\\\\"r\\\\\\\";\\n  ComponentName2[\\\\\\\"g\\\\\\\"] = \\\\\\\"g\\\\\\\";\\n  ComponentName2[\\\\\\\"b\\\\\\\"] = \\\\\\\"b\\\\\\\";\\n})(ComponentName || (ComponentName = {}));\\nvar COMPONENT_INDICES = {\\n  x: 0,\\n  y: 1,\\n  z: 2,\\n  w: 3,\\n  r: 0,\\n  g: 1,\\n  b: 2\\n};\\nvar PTNUM = \\\\\\\"ptnum\\\\\\\";\\nvar DOT = \\\\\\\".\\\\\\\";\\nvar CorePoint = class extends CoreEntity {\\n  constructor(_coreGeometry, _index) {\\n    super(_index);\\n    this._coreGeometry = _coreGeometry;\\n    this._geometry = this._coreGeometry.geometry();\\n  }\\n  applyMatrix4(matrix) {\\n    this.position().applyMatrix4(matrix);\\n  }\\n  coreGeometry() {\\n    return this._coreGeometry;\\n  }\\n  geometry() {\\n    return this._geometry = this._geometry || this._coreGeometry.geometry();\\n  }\\n  attribSize(name) {\\n    name = CoreAttribute.remapName(name);\\n    return this._geometry.getAttribute(name).itemSize;\\n  }\\n  hasAttrib(name) {\\n    const remapped_name = CoreAttribute.remapName(name);\\n    return this._coreGeometry.hasAttrib(remapped_name);\\n  }\\n  attribValue(name, target) {\\n    if (name === PTNUM) {\\n      return this.index();\\n    } else {\\n      let component_name = null;\\n      let component_index = null;\\n      if (name[name.length - 2] === DOT) {\\n        component_name = name[name.length - 1];\\n        component_index = COMPONENT_INDICES[component_name];\\n        name = name.substring(0, name.length - 2);\\n      }\\n      const remaped_name = CoreAttribute.remapName(name);\\n      const attrib = this._geometry.getAttribute(remaped_name);\\n      if (attrib) {\\n        const {array} = attrib;\\n        if (this._coreGeometry.isAttribIndexed(remaped_name)) {\\n          return this.indexedAttribValue(remaped_name);\\n        } else {\\n          const size = attrib.itemSize;\\n          const start_index = this._index * size;\\n          if (component_index == null) {\\n            switch (size) {\\n              case 1:\\n                return array[start_index];\\n                break;\\n              case 2:\\n                target = target || new Vector2();\\n                target.fromArray(array, start_index);\\n                return target;\\n                break;\\n              case 3:\\n                target = target || new Vector3();\\n                target.fromArray(array, start_index);\\n                return target;\\n                break;\\n              case 4:\\n                target = target || new Vector4();\\n                target.fromArray(array, start_index);\\n                return target;\\n                break;\\n              default:\\n                throw `size not valid (${size})`;\\n            }\\n          } else {\\n            switch (size) {\\n              case 1:\\n                return array[start_index];\\n                break;\\n              default:\\n                return array[start_index + component_index];\\n            }\\n          }\\n        }\\n      } else {\\n        const message = `attrib ${name} not found. availables are: ${Object.keys(this._geometry.attributes || {}).join(\\\\\\\",\\\\\\\")}`;\\n        console.warn(message);\\n        throw message;\\n      }\\n    }\\n  }\\n  attribValueNumber(name) {\\n    const remapedName = CoreAttribute.remapName(name);\\n    const attrib = this._geometry.getAttribute(remapedName);\\n    return attrib.array[this._index];\\n  }\\n  attribValueVector2(name, target) {\\n    const remapedName = CoreAttribute.remapName(name);\\n    const attrib = this._geometry.getAttribute(remapedName);\\n    target.fromArray(attrib.array, this._index * 2);\\n    return target;\\n  }\\n  attribValueVector3(name, target) {\\n    const remapedName = CoreAttribute.remapName(name);\\n    const attrib = this._geometry.getAttribute(remapedName);\\n    target.fromArray(attrib.array, this._index * 3);\\n    return target;\\n  }\\n  attribValueVector4(name, target) {\\n    const remapedName = CoreAttribute.remapName(name);\\n    const attrib = this._geometry.getAttribute(remapedName);\\n    target.fromArray(attrib.array, this._index * 4);\\n    return target;\\n  }\\n  indexedAttribValue(name) {\\n    const value_index = this.attribValueIndex(name);\\n    return this._coreGeometry.userDataAttrib(name)[value_index];\\n  }\\n  stringAttribValue(name) {\\n    return this.indexedAttribValue(name);\\n  }\\n  attribValueIndex(name) {\\n    if (this._coreGeometry.isAttribIndexed(name)) {\\n      return this._geometry.getAttribute(name).array[this._index];\\n    } else {\\n      return -1;\\n    }\\n  }\\n  isAttribIndexed(name) {\\n    return this._coreGeometry.isAttribIndexed(name);\\n  }\\n  position() {\\n    return this._position || (this._position = this.getPosition(new Vector3()));\\n  }\\n  getPosition(target) {\\n    const {array} = this._geometry.getAttribute(ATTRIB_NAMES.POSITION);\\n    return target.fromArray(array, this._index * 3);\\n  }\\n  setPosition(new_position) {\\n    this.setAttribValueVector3(ATTRIB_NAMES.POSITION, new_position);\\n  }\\n  normal() {\\n    return this._normal = this._normal || this.getNormal(new Vector3());\\n  }\\n  getNormal(target) {\\n    const {array} = this._geometry.getAttribute(ATTRIB_NAMES.NORMAL);\\n    return target.fromArray(array, this._index * 3);\\n  }\\n  setNormal(new_normal) {\\n    return this.setAttribValueVector3(ATTRIB_NAMES.NORMAL, new_normal);\\n  }\\n  setAttribValue(attribName, value) {\\n    const attrib = this._geometry.getAttribute(attribName);\\n    const array = attrib.array;\\n    const attribSize = attrib.itemSize;\\n    if (CoreType.isArray(value)) {\\n      for (let i = 0; i < attribSize; i++) {\\n        array[this._index * attribSize + i] = value[i];\\n      }\\n      return;\\n    }\\n    switch (attribSize) {\\n      case 1:\\n        array[this._index] = value;\\n        break;\\n      case 2:\\n        const v2 = value;\\n        const i2 = this._index * 2;\\n        array[i2 + 0] = v2.x;\\n        array[i2 + 1] = v2.y;\\n        break;\\n      case 3:\\n        const isColor = value.r != null;\\n        const i3 = this._index * 3;\\n        if (isColor) {\\n          const col = value;\\n          array[i3 + 0] = col.r;\\n          array[i3 + 1] = col.g;\\n          array[i3 + 2] = col.b;\\n        } else {\\n          const v3 = value;\\n          array[i3 + 0] = v3.x;\\n          array[i3 + 1] = v3.y;\\n          array[i3 + 2] = v3.z;\\n        }\\n        break;\\n      case 4:\\n        const v4 = value;\\n        const i4 = this._index * 4;\\n        array[i4 + 0] = v4.x;\\n        array[i4 + 1] = v4.y;\\n        array[i4 + 2] = v4.z;\\n        array[i4 + 3] = v4.w;\\n        break;\\n      default:\\n        console.warn(`Point.set_attrib_value does not yet allow attrib size ${attribSize}`);\\n        throw `attrib size ${attribSize} not implemented`;\\n    }\\n  }\\n  setAttribValueFromNumber(attribName, value) {\\n    const attrib = this._geometry.getAttribute(attribName);\\n    const array = attrib.array;\\n    array[this._index] = value;\\n  }\\n  setAttribValueFromVector2(attribName, value) {\\n    const attrib = this._geometry.getAttribute(attribName);\\n    value.toArray(attrib.array, this._index * 2);\\n  }\\n  setAttribValueFromVector3(attribName, value) {\\n    const attrib = this._geometry.getAttribute(attribName);\\n    value.toArray(attrib.array, this._index * 3);\\n  }\\n  setAttribValueFromVector4(attribName, value) {\\n    const attrib = this._geometry.getAttribute(attribName);\\n    value.toArray(attrib.array, this._index * 4);\\n  }\\n  setAttribValueVector3(name, value) {\\n    if (value == null) {\\n      return;\\n    }\\n    if (name == null) {\\n      throw \\\\\\\"Point.set_attrib_value requires a name\\\\\\\";\\n    }\\n    const attrib = this._geometry.getAttribute(name);\\n    const array = attrib.array;\\n    const i = this._index * 3;\\n    array[i] = value.x;\\n    array[i + 1] = value.y;\\n    array[i + 2] = value.z;\\n  }\\n  setAttribIndex(name, new_value_index) {\\n    const array = this._geometry.getAttribute(name).array;\\n    return array[this._index] = new_value_index;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/math/Easing.ts\\nvar ease_i = function(power) {\\n  return function(t) {\\n    return Math.pow(t, power);\\n  };\\n};\\nvar ease_o = function(power) {\\n  return function(t) {\\n    return 1 - Math.abs(Math.pow(t - 1, power));\\n  };\\n};\\nvar ease_io = function(power) {\\n  return function(t) {\\n    return t < 0.5 ? ease_i(power)(t * 2) / 2 : ease_o(power)(t * 2 - 1) / 2 + 0.5;\\n  };\\n};\\nvar Easing = {\\n  linear: ease_io(1),\\n  ease_i: function(t, power) {\\n    return ease_i(power)(t);\\n  },\\n  ease_o: function(t, power) {\\n    return ease_o(power)(t);\\n  },\\n  ease_io: function(t, power) {\\n    return ease_io(power)(t);\\n  },\\n  ease_i2: ease_i(2),\\n  ease_o2: ease_o(2),\\n  ease_io2: ease_io(2),\\n  ease_i3: ease_io(3),\\n  ease_o3: ease_io(3),\\n  ease_io3: ease_io(3),\\n  ease_i4: ease_io(4),\\n  ease_o4: ease_io(4),\\n  ease_io4: ease_io(4),\\n  ease_i_sin: function(t) {\\n    return 1 + Math.sin(Math.PI / 2 * t - Math.PI / 2);\\n  },\\n  ease_o_sin: function(t) {\\n    return Math.sin(Math.PI / 2 * t);\\n  },\\n  ease_io_sin: function(t) {\\n    return (1 + Math.sin(Math.PI * t - Math.PI / 2)) / 2;\\n  },\\n  ease_i_elastic: function(t) {\\n    return (0.04 - 0.04 / t) * Math.sin(25 * t) + 1;\\n  },\\n  ease_o_elastic: function(t) {\\n    return 0.04 * t / --t * Math.sin(25 * t);\\n  },\\n  ease_io_elastic: function(t) {\\n    return (t -= 0.5) < 0 ? (0.02 + 0.01 / t) * Math.sin(50 * t) : (0.02 - 0.01 / t) * Math.sin(50 * t) + 1;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/math/_Module.ts\\nvar RAD_DEG_RATIO = Math.PI / 180;\\nvar RAND_A = 12.9898;\\nvar RAND_B = 78.233;\\nvar RAND_C = 43758.5453;\\nvar CoreMath = class {\\n  static clamp(val, min, max) {\\n    if (val < min) {\\n      return min;\\n    } else if (val > max) {\\n      return max;\\n    } else {\\n      return val;\\n    }\\n  }\\n  static fit01(val, dest_min, dest_max) {\\n    return this.fit(val, 0, 1, dest_min, dest_max);\\n  }\\n  static fit(val, src_min, src_max, dest_min, dest_max) {\\n    const src_range = src_max - src_min;\\n    const dest_range = dest_max - dest_min;\\n    const r = (val - src_min) / src_range;\\n    return r * dest_range + dest_min;\\n  }\\n  static blend(num0, num1, blend) {\\n    return (1 - blend) * num0 + blend * num1;\\n  }\\n  static degrees_to_radians(degrees) {\\n    return degrees * RAD_DEG_RATIO;\\n  }\\n  static radians_to_degrees(radians) {\\n    return radians / RAD_DEG_RATIO;\\n  }\\n  static deg2rad(deg) {\\n    return this.degrees_to_radians(deg);\\n  }\\n  static rad2deg(rad) {\\n    return this.radians_to_degrees(rad);\\n  }\\n  static rand(number) {\\n    if (CoreType.isNumber(number)) {\\n      return this.randFloat(number);\\n    } else {\\n      return this.randVec2(number);\\n    }\\n  }\\n  static round(number, step_size) {\\n    const steps_count = number / step_size;\\n    const rounded_steps_count = number < 0 ? Math.ceil(steps_count) : Math.floor(steps_count);\\n    return rounded_steps_count * step_size;\\n  }\\n  static highest_even(number) {\\n    return 2 * Math.ceil(number * 0.5);\\n  }\\n  static randFloat(x, y = 136574) {\\n    this._vec.x = x;\\n    this._vec.y = y;\\n    return this.randVec2(this._vec);\\n  }\\n  static randVec2(uv) {\\n    const dt = uv.x * RAND_A + uv.y * RAND_B;\\n    const sn = dt % Math.PI;\\n    return this.fract(Math.sin(sn) * RAND_C);\\n  }\\n  static geodesic_distance(lnglat1, lnglat2) {\\n    var R = 6371e3;\\n    var d1 = this.deg2rad(lnglat1.lat);\\n    var d2 = this.deg2rad(lnglat2.lat);\\n    var ad1 = this.deg2rad(lnglat2.lat - lnglat1.lat);\\n    var ad2 = this.deg2rad(lnglat2.lng - lnglat1.lng);\\n    var a = Math.sin(ad1 / 2) * Math.sin(ad1 / 2) + Math.cos(d1) * Math.cos(d2) * Math.sin(ad2 / 2) * Math.sin(ad2 / 2);\\n    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\\n    var d = R * c;\\n    return d;\\n  }\\n  static expand_triangle(triangle, margin) {\\n    triangle.getMidpoint(this._triangle_mid);\\n    this._triangle_mid_to_corner.copy(triangle.a).sub(this._triangle_mid);\\n    this._triangle_mid_to_corner.normalize().multiplyScalar(margin);\\n    triangle.a.add(this._triangle_mid_to_corner);\\n    this._triangle_mid_to_corner.copy(triangle.b).sub(this._triangle_mid);\\n    this._triangle_mid_to_corner.normalize().multiplyScalar(margin);\\n    triangle.b.add(this._triangle_mid_to_corner);\\n    this._triangle_mid_to_corner.copy(triangle.c).sub(this._triangle_mid);\\n    this._triangle_mid_to_corner.normalize().multiplyScalar(margin);\\n    triangle.c.add(this._triangle_mid_to_corner);\\n  }\\n  static nearestPower2(num) {\\n    return Math.pow(2, Math.ceil(Math.log(num) / Math.log(2)));\\n  }\\n};\\nCoreMath.Easing = Easing;\\nCoreMath.fract = (number) => number - Math.floor(number);\\nCoreMath._vec = {x: 0, y: 136574};\\nCoreMath._triangle_mid = new Vector3();\\nCoreMath._triangle_mid_to_corner = new Vector3();\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Face.ts\\nvar CoreFace = class {\\n  constructor(_coreGeometry, _index) {\\n    this._coreGeometry = _coreGeometry;\\n    this._index = _index;\\n    this._geometry = this._coreGeometry.geometry();\\n  }\\n  index() {\\n    return this._index;\\n  }\\n  points() {\\n    return this._points = this._points || this._get_points();\\n  }\\n  applyMatrix4(matrix) {\\n    for (let point of this.points()) {\\n      point.applyMatrix4(matrix);\\n    }\\n  }\\n  _get_points() {\\n    const indexArray = this._geometry.index?.array || [];\\n    const start = this._index * 3;\\n    return [\\n      new CorePoint(this._coreGeometry, indexArray[start + 0]),\\n      new CorePoint(this._coreGeometry, indexArray[start + 1]),\\n      new CorePoint(this._coreGeometry, indexArray[start + 2])\\n    ];\\n  }\\n  positions() {\\n    return this._positions = this._positions || this._getPositions();\\n  }\\n  _getPositions() {\\n    const points2 = this.points();\\n    return [points2[0].position(), points2[1].position(), points2[2].position()];\\n  }\\n  triangle() {\\n    return this._triangle = this._triangle || this._get_triangle();\\n  }\\n  _get_triangle() {\\n    const positions = this.positions();\\n    return new Triangle(positions[0], positions[1], positions[2]);\\n  }\\n  deltas() {\\n    return this._deltas = this._deltas || this._getDeltas();\\n  }\\n  _getDeltas() {\\n    const positions = this.positions();\\n    return [positions[1].clone().sub(positions[0]), positions[2].clone().sub(positions[0])];\\n  }\\n  area() {\\n    return this.triangle().getArea();\\n  }\\n  center(target) {\\n    const positions = this.positions();\\n    target.x = (positions[0].x + positions[1].x + positions[2].x) / 3;\\n    target.y = (positions[0].y + positions[1].y + positions[2].y) / 3;\\n    target.z = (positions[0].z + positions[1].z + positions[2].z) / 3;\\n    return target;\\n  }\\n  randomPosition(seed) {\\n    let weights = [CoreMath.randFloat(seed), CoreMath.randFloat(seed * 6541)];\\n    if (weights[0] + weights[1] > 1) {\\n      weights[0] = 1 - weights[0];\\n      weights[1] = 1 - weights[1];\\n    }\\n    return this.positions()[0].clone().add(this.deltas()[0].clone().multiplyScalar(weights[0])).add(this.deltas()[1].clone().multiplyScalar(weights[1]));\\n  }\\n  attribValueAtPosition(attrib_name, position) {\\n    const barycentricCoordinates = new Vector3();\\n    this.triangle().getBarycoord(position, barycentricCoordinates);\\n    const weights = barycentricCoordinates.toArray();\\n    const attrib = this._geometry.attributes[attrib_name];\\n    const attribSize = attrib.itemSize;\\n    const pointValues = this.points().map((point) => point.attribValue(attrib_name));\\n    let newAttribValue;\\n    let sum;\\n    let index = 0;\\n    switch (attribSize) {\\n      case 1: {\\n        sum = 0;\\n        for (let pointValue of pointValues) {\\n          sum += pointValue * weights[index];\\n          index++;\\n        }\\n        newAttribValue = sum;\\n        break;\\n      }\\n      default: {\\n        for (let pointValue of pointValues) {\\n          const weightedValue = pointValue.multiplyScalar(weights[index]);\\n          if (sum) {\\n            sum.add(weightedValue);\\n          } else {\\n            sum = weightedValue;\\n          }\\n          index++;\\n        }\\n        newAttribValue = sum;\\n      }\\n    }\\n    return newAttribValue;\\n  }\\n  static interpolatedValue(geometry, face, intersectPoint, attrib) {\\n    const pointIndices = [face.a, face.b, face.c];\\n    const positionAttrib = geometry.getAttribute(\\\\\\\"position\\\\\\\");\\n    const positionAttribArray = positionAttrib.array;\\n    const pointPositions = pointIndices.map((point_index) => new Vector3(positionAttribArray[point_index * 3 + 0], positionAttribArray[point_index * 3 + 1], positionAttribArray[point_index * 3 + 2]));\\n    const attribSize = attrib.itemSize;\\n    const attribArray = attrib.array;\\n    let attribValues = [];\\n    switch (attribSize) {\\n      case 1:\\n        attribValues = pointIndices.map((point_index) => attribArray[point_index]);\\n        break;\\n      case 2:\\n        attribValues = pointIndices.map((point_index) => new Vector2(attribArray[point_index * 2 + 0], attribArray[point_index * 2 + 1]));\\n        break;\\n      case 3:\\n        attribValues = pointIndices.map((point_index) => new Vector3(attribArray[point_index * 3 + 0], attribArray[point_index * 3 + 1], attribArray[point_index * 3 + 2]));\\n        break;\\n    }\\n    const distToPoints = pointIndices.map((point_index, i) => intersectPoint.distanceTo(pointPositions[i]));\\n    const distanceTotal = ArrayUtils.sum([\\n      distToPoints[0] * distToPoints[1],\\n      distToPoints[0] * distToPoints[2],\\n      distToPoints[1] * distToPoints[2]\\n    ]);\\n    const weights = [\\n      distToPoints[1] * distToPoints[2] / distanceTotal,\\n      distToPoints[0] * distToPoints[2] / distanceTotal,\\n      distToPoints[0] * distToPoints[1] / distanceTotal\\n    ];\\n    let newAttribValue;\\n    switch (attribSize) {\\n      case 1:\\n        newAttribValue = ArrayUtils.sum(pointIndices.map((point_indx, i) => weights[i] * attribValues[i]));\\n        break;\\n      default:\\n        var values = pointIndices.map((point_index, i) => attribValues[i].multiplyScalar(weights[i]));\\n        newAttribValue = null;\\n        for (let value of values) {\\n          if (newAttribValue) {\\n            newAttribValue.add(value);\\n          } else {\\n            newAttribValue = value;\\n          }\\n        }\\n    }\\n    return newAttribValue;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/builders/_Base.ts\\nvar CoreGeometryBuilderBase = class {\\n  from_points(points2) {\\n    points2 = this._filter_points(points2);\\n    const geometry = new BufferGeometry();\\n    const core_geometry = new CoreGeometry(geometry);\\n    const first_point = points2[0];\\n    if (first_point != null) {\\n      const old_geometry = first_point.geometry();\\n      const old_core_geometry = first_point.coreGeometry();\\n      const new_index_by_old_index = {};\\n      for (let i = 0; i < points2.length; i++) {\\n        new_index_by_old_index[points2[i].index()] = i;\\n      }\\n      const indices = this._indices_from_points(new_index_by_old_index, old_geometry);\\n      if (indices) {\\n        geometry.setIndex(indices);\\n      }\\n      const {attributes} = old_geometry;\\n      for (let attribute_name of Object.keys(attributes)) {\\n        const attrib_values = old_core_geometry.userDataAttribs()[attribute_name];\\n        const is_attrib_indexed = attrib_values != null;\\n        if (is_attrib_indexed) {\\n          const new_values = ArrayUtils.uniq(points2.map((point) => point.indexedAttribValue(attribute_name)));\\n          const new_index_by_value = {};\\n          new_values.forEach((new_value, i) => new_index_by_value[new_value] = i);\\n          core_geometry.userDataAttribs()[attribute_name] = new_values;\\n          const new_attrib_indices = [];\\n          for (let point of points2) {\\n            const new_index = new_index_by_value[point.indexedAttribValue(attribute_name)];\\n            new_attrib_indices.push(new_index);\\n          }\\n          geometry.setAttribute(attribute_name, new Float32BufferAttribute(new_attrib_indices, 1));\\n        } else {\\n          const attrib_size = attributes[attribute_name].itemSize;\\n          const values = new Array(points2.length * attrib_size);\\n          switch (attrib_size) {\\n            case 1:\\n              for (let i = 0; i < points2.length; i++) {\\n                values[i] = points2[i].attribValue(attribute_name);\\n              }\\n              break;\\n            default:\\n              let value;\\n              for (let i = 0; i < points2.length; i++) {\\n                value = points2[i].attribValue(attribute_name);\\n                value.toArray(values, i * attrib_size);\\n              }\\n              break;\\n          }\\n          geometry.setAttribute(attribute_name, new Float32BufferAttribute(values, attrib_size));\\n        }\\n      }\\n    }\\n    return geometry;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/builders/Points.ts\\nvar CoreGeometryBuilderPoints = class extends CoreGeometryBuilderBase {\\n  _filter_points(points2) {\\n    return points2;\\n  }\\n  _indices_from_points(new_index_by_old_index, old_geometry) {\\n    const index_attrib = old_geometry.index;\\n    if (index_attrib != null) {\\n      const old_indices = index_attrib.array;\\n      const new_indices = [];\\n      let old_index;\\n      let new_index;\\n      for (let i = 0; i < old_indices.length; i++) {\\n        old_index = old_indices[i];\\n        new_index = new_index_by_old_index[old_index];\\n        if (new_index != null) {\\n          new_indices.push(new_index);\\n        }\\n      }\\n      return new_indices;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/modules/three/examples/jsm/utils/BufferGeometryUtils.js\\nfunction mergeBufferGeometries(geometries, useGroups = false) {\\n  const isIndexed = geometries[0].index !== null;\\n  const attributesUsed = new Set(Object.keys(geometries[0].attributes));\\n  const morphAttributesUsed = new Set(Object.keys(geometries[0].morphAttributes));\\n  const attributes = {};\\n  const morphAttributes = {};\\n  const morphTargetsRelative = geometries[0].morphTargetsRelative;\\n  const mergedGeometry = new BufferGeometry();\\n  let offset = 0;\\n  for (let i = 0; i < geometries.length; ++i) {\\n    const geometry = geometries[i];\\n    let attributesCount = 0;\\n    if (isIndexed !== (geometry.index !== null)) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\" + i + \\\\\\\". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.\\\\\\\");\\n      return null;\\n    }\\n    for (const name in geometry.attributes) {\\n      if (!attributesUsed.has(name)) {\\n        console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\" + i + '. All geometries must have compatible attributes; make sure \\\\\\\"' + name + '\\\\\\\" attribute exists among all geometries, or in none of them.');\\n        return null;\\n      }\\n      if (attributes[name] === void 0)\\n        attributes[name] = [];\\n      attributes[name].push(geometry.attributes[name]);\\n      attributesCount++;\\n    }\\n    if (attributesCount !== attributesUsed.size) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\" + i + \\\\\\\". Make sure all geometries have the same number of attributes.\\\\\\\");\\n      return null;\\n    }\\n    if (morphTargetsRelative !== geometry.morphTargetsRelative) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\" + i + \\\\\\\". .morphTargetsRelative must be consistent throughout all geometries.\\\\\\\");\\n      return null;\\n    }\\n    for (const name in geometry.morphAttributes) {\\n      if (!morphAttributesUsed.has(name)) {\\n        console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\" + i + \\\\\\\".  .morphAttributes must be consistent throughout all geometries.\\\\\\\");\\n        return null;\\n      }\\n      if (morphAttributes[name] === void 0)\\n        morphAttributes[name] = [];\\n      morphAttributes[name].push(geometry.morphAttributes[name]);\\n    }\\n    mergedGeometry.userData.mergedUserData = mergedGeometry.userData.mergedUserData || [];\\n    mergedGeometry.userData.mergedUserData.push(geometry.userData);\\n    if (useGroups) {\\n      let count;\\n      if (isIndexed) {\\n        count = geometry.index.count;\\n      } else if (geometry.attributes.position !== void 0) {\\n        count = geometry.attributes.position.count;\\n      } else {\\n        console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index \\\\\\\" + i + \\\\\\\". The geometry must have either an index or a position attribute\\\\\\\");\\n        return null;\\n      }\\n      mergedGeometry.addGroup(offset, count, i);\\n      offset += count;\\n    }\\n  }\\n  if (isIndexed) {\\n    let indexOffset = 0;\\n    const mergedIndex = [];\\n    for (let i = 0; i < geometries.length; ++i) {\\n      const index = geometries[i].index;\\n      for (let j = 0; j < index.count; ++j) {\\n        mergedIndex.push(index.getX(j) + indexOffset);\\n      }\\n      indexOffset += geometries[i].attributes.position.count;\\n    }\\n    mergedGeometry.setIndex(mergedIndex);\\n  }\\n  for (const name in attributes) {\\n    const mergedAttribute = mergeBufferAttributes(attributes[name]);\\n    if (!mergedAttribute) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the \\\\\\\" + name + \\\\\\\" attribute.\\\\\\\");\\n      return null;\\n    }\\n    mergedGeometry.setAttribute(name, mergedAttribute);\\n  }\\n  for (const name in morphAttributes) {\\n    const numMorphTargets = morphAttributes[name][0].length;\\n    if (numMorphTargets === 0)\\n      break;\\n    mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {};\\n    mergedGeometry.morphAttributes[name] = [];\\n    for (let i = 0; i < numMorphTargets; ++i) {\\n      const morphAttributesToMerge = [];\\n      for (let j = 0; j < morphAttributes[name].length; ++j) {\\n        morphAttributesToMerge.push(morphAttributes[name][j][i]);\\n      }\\n      const mergedMorphAttribute = mergeBufferAttributes(morphAttributesToMerge);\\n      if (!mergedMorphAttribute) {\\n        console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the \\\\\\\" + name + \\\\\\\" morphAttribute.\\\\\\\");\\n        return null;\\n      }\\n      mergedGeometry.morphAttributes[name].push(mergedMorphAttribute);\\n    }\\n  }\\n  return mergedGeometry;\\n}\\nfunction mergeBufferAttributes(attributes) {\\n  let TypedArray;\\n  let itemSize;\\n  let normalized;\\n  let arrayLength = 0;\\n  for (let i = 0; i < attributes.length; ++i) {\\n    const attribute = attributes[i];\\n    if (attribute.isInterleavedBufferAttribute) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.\\\\\\\");\\n      return null;\\n    }\\n    if (TypedArray === void 0)\\n      TypedArray = attribute.array.constructor;\\n    if (TypedArray !== attribute.array.constructor) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.\\\\\\\");\\n      return null;\\n    }\\n    if (itemSize === void 0)\\n      itemSize = attribute.itemSize;\\n    if (itemSize !== attribute.itemSize) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.\\\\\\\");\\n      return null;\\n    }\\n    if (normalized === void 0)\\n      normalized = attribute.normalized;\\n    if (normalized !== attribute.normalized) {\\n      console.error(\\\\\\\"THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.\\\\\\\");\\n      return null;\\n    }\\n    arrayLength += attribute.array.length;\\n  }\\n  const array = new TypedArray(arrayLength);\\n  let offset = 0;\\n  for (let i = 0; i < attributes.length; ++i) {\\n    array.set(attributes[i].array, offset);\\n    offset += attributes[i].array.length;\\n  }\\n  return new BufferAttribute(array, itemSize, normalized);\\n}\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/util/IndexBuilder.ts\\nvar POSITION = \\\\\\\"position\\\\\\\";\\nvar CoreGeometryIndexBuilder = class {\\n  static createIndexIfNone(geometry) {\\n    if (!geometry.index) {\\n      const position = geometry.getAttribute(POSITION);\\n      if (position) {\\n        const position_array = position.array;\\n        geometry.setIndex(ArrayUtils.range(position_array.length / 3));\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/builders/Merge.ts\\nvar CoreGeometryBuilderMerge = class {\\n  static merge(geometries) {\\n    if (geometries.length === 0) {\\n      return;\\n    }\\n    for (let geometry of geometries) {\\n      CoreGeometryIndexBuilder.createIndexIfNone(geometry);\\n    }\\n    const core_geometries = geometries.map((geometry) => new CoreGeometry(geometry));\\n    const indexed_attribute_names = core_geometries[0].indexedAttributeNames();\\n    const new_values_by_attribute_name = {};\\n    for (let indexed_attribute_name of indexed_attribute_names) {\\n      const index_by_values = {};\\n      const all_geometries_points = [];\\n      for (let core_geometry of core_geometries) {\\n        const geometry_points = core_geometry.points();\\n        for (let point of geometry_points) {\\n          all_geometries_points.push(point);\\n          const value = point.indexedAttribValue(indexed_attribute_name);\\n          index_by_values[value] != null ? index_by_values[value] : index_by_values[value] = Object.keys(index_by_values).length;\\n        }\\n      }\\n      const values = Object.keys(index_by_values);\\n      for (let point of all_geometries_points) {\\n        const value = point.indexedAttribValue(indexed_attribute_name);\\n        const new_index = index_by_values[value];\\n        point.setAttribIndex(indexed_attribute_name, new_index);\\n      }\\n      new_values_by_attribute_name[indexed_attribute_name] = values;\\n    }\\n    const merged_geometry = mergeBufferGeometries(geometries);\\n    const merged_core_geometry = new CoreGeometry(merged_geometry);\\n    Object.keys(new_values_by_attribute_name).forEach((indexed_attribute_name) => {\\n      const values = new_values_by_attribute_name[indexed_attribute_name];\\n      merged_core_geometry.setIndexedAttributeValues(indexed_attribute_name, values);\\n    });\\n    if (merged_geometry) {\\n      delete merged_geometry.userData.mergedUserData;\\n    }\\n    return merged_geometry;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/builders/Mesh.ts\\nvar CoreGeometryBuilderMesh = class extends CoreGeometryBuilderBase {\\n  _filter_points(points2) {\\n    const first_point = points2[0];\\n    if (first_point) {\\n      const geometry = first_point.geometry();\\n      const indices = geometry.getIndex()?.array;\\n      if (indices) {\\n        const points_by_index = {};\\n        for (let point of points2) {\\n          points_by_index[point.index()] = point;\\n        }\\n        const filtered_points = [];\\n        const index_length = indices.length;\\n        let pt0;\\n        let pt1;\\n        let pt2;\\n        for (let i = 0; i < index_length; i += 3) {\\n          pt0 = points_by_index[indices[i + 0]];\\n          pt1 = points_by_index[indices[i + 1]];\\n          pt2 = points_by_index[indices[i + 2]];\\n          if (pt0 && pt1 && pt2) {\\n            filtered_points.push(pt0);\\n            filtered_points.push(pt1);\\n            filtered_points.push(pt2);\\n          }\\n        }\\n        return filtered_points;\\n      }\\n    }\\n    return [];\\n  }\\n  _indices_from_points(new_index_by_old_index, old_geometry) {\\n    const index_attrib = old_geometry.index;\\n    if (index_attrib != null) {\\n      const old_indices = index_attrib.array;\\n      const new_indices = [];\\n      let old_index0;\\n      let old_index1;\\n      let old_index2;\\n      let new_index0;\\n      let new_index1;\\n      let new_index2;\\n      for (let i = 0; i < old_indices.length; i += 3) {\\n        old_index0 = old_indices[i + 0];\\n        old_index1 = old_indices[i + 1];\\n        old_index2 = old_indices[i + 2];\\n        new_index0 = new_index_by_old_index[old_index0];\\n        new_index1 = new_index_by_old_index[old_index1];\\n        new_index2 = new_index_by_old_index[old_index2];\\n        if (new_index0 != null && new_index1 != null && new_index2 != null) {\\n          new_indices.push(new_index0);\\n          new_indices.push(new_index1);\\n          new_indices.push(new_index2);\\n        }\\n      }\\n      return new_indices;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/builders/LineSegments.ts\\nvar CoreGeometryBuilderLineSegments = class extends CoreGeometryBuilderBase {\\n  _filter_points(points2) {\\n    const first_point = points2[0];\\n    if (first_point) {\\n      const geometry = first_point.geometry();\\n      const indices = geometry.getIndex()?.array;\\n      if (indices) {\\n        const points_by_index = {};\\n        for (let point of points2) {\\n          points_by_index[point.index()] = point;\\n        }\\n        const filtered_points = [];\\n        const index_length = indices.length;\\n        let pt0;\\n        let pt1;\\n        for (let i = 0; i < index_length; i += 2) {\\n          pt0 = points_by_index[indices[i + 0]];\\n          pt1 = points_by_index[indices[i + 1]];\\n          if (pt0 && pt1) {\\n            filtered_points.push(pt0);\\n            filtered_points.push(pt1);\\n          }\\n        }\\n        return filtered_points;\\n      }\\n    }\\n    return [];\\n  }\\n  _indices_from_points(new_index_by_old_index, old_geometry) {\\n    const index_attrib = old_geometry.index;\\n    if (index_attrib != null) {\\n      const old_indices = index_attrib.array;\\n      const new_indices = [];\\n      let old_index0;\\n      let old_index1;\\n      let new_index0;\\n      let new_index1;\\n      for (let i = 0; i < old_indices.length; i += 2) {\\n        old_index0 = old_indices[i];\\n        old_index1 = old_indices[i + 1];\\n        new_index0 = new_index_by_old_index[old_index0];\\n        new_index1 = new_index_by_old_index[old_index1];\\n        if (new_index0 != null && new_index1 != null) {\\n          new_indices.push(new_index0);\\n          new_indices.push(new_index1);\\n        }\\n      }\\n      return new_indices;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/ObjectUtils.ts\\nvar import_cloneDeep = __toModule(require_cloneDeep());\\nvar import_clone = __toModule(require_clone());\\nvar ObjectUtils = class {\\n  static isEqual(object0, object1) {\\n    if (CoreType.isObject(object0) && CoreType.isObject(object1)) {\\n      const keys0 = Object.keys(object0);\\n      const keys1 = Object.keys(object1);\\n      if (!ArrayUtils.isEqual(keys0, keys1)) {\\n        return false;\\n      }\\n      return JSON.stringify(object0) == JSON.stringify(object1);\\n    }\\n    return false;\\n  }\\n  static merge(object0, object1) {\\n    return Object.assign(object0, object1);\\n  }\\n  static clone(value) {\\n    return import_clone.default(value);\\n  }\\n  static cloneDeep(value) {\\n    return import_cloneDeep.default(value);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Geometry.ts\\nvar IS_INSTANCE_KEY = \\\\\\\"isInstance\\\\\\\";\\nvar INDEX_ATTRIB_VALUES = \\\\\\\"indexed_attrib_values\\\\\\\";\\nvar CoreGeometry2 = class {\\n  constructor(_geometry) {\\n    this._geometry = _geometry;\\n  }\\n  geometry() {\\n    return this._geometry;\\n  }\\n  uuid() {\\n    return this._geometry.uuid;\\n  }\\n  boundingBox() {\\n    return this._bounding_box = this._bounding_box || this._create_bounding_box();\\n  }\\n  _create_bounding_box() {\\n    this._geometry.computeBoundingBox();\\n    if (this._geometry.boundingBox) {\\n      return this._geometry.boundingBox;\\n    }\\n  }\\n  markAsInstance() {\\n    this._geometry.userData[IS_INSTANCE_KEY] = true;\\n  }\\n  static markedAsInstance(geometry) {\\n    return geometry.userData[IS_INSTANCE_KEY] === true;\\n  }\\n  markedAsInstance() {\\n    return CoreGeometry2.markedAsInstance(this._geometry);\\n  }\\n  positionAttribName() {\\n    let name = \\\\\\\"position\\\\\\\";\\n    if (this.markedAsInstance()) {\\n      name = \\\\\\\"instancePosition\\\\\\\";\\n    }\\n    return name;\\n  }\\n  computeVertexNormals() {\\n    this._geometry.computeVertexNormals();\\n  }\\n  userDataAttribs() {\\n    return this._geometry.userData[INDEX_ATTRIB_VALUES] = this._geometry.userData[INDEX_ATTRIB_VALUES] || {};\\n  }\\n  indexedAttributeNames() {\\n    return Object.keys(this.userDataAttribs() || {});\\n  }\\n  userDataAttrib(name) {\\n    name = CoreAttribute.remapName(name);\\n    return this.userDataAttribs()[name];\\n  }\\n  isAttribIndexed(name) {\\n    name = CoreAttribute.remapName(name);\\n    return this.userDataAttrib(name) != null;\\n  }\\n  hasAttrib(name) {\\n    if (name === \\\\\\\"ptnum\\\\\\\") {\\n      return true;\\n    }\\n    name = CoreAttribute.remapName(name);\\n    return this._geometry.attributes[name] != null;\\n  }\\n  attribType(name) {\\n    if (this.isAttribIndexed(name)) {\\n      return AttribType.STRING;\\n    } else {\\n      return AttribType.NUMERIC;\\n    }\\n  }\\n  static attribNames(geometry) {\\n    return Object.keys(geometry.attributes);\\n  }\\n  attribNames() {\\n    return CoreGeometry2.attribNames(this._geometry);\\n  }\\n  static attribNamesMatchingMask(geometry, masks_string) {\\n    const masks = CoreString.attribNames(masks_string);\\n    const matching_attrib_names = [];\\n    for (let attrib_name of this.attribNames(geometry)) {\\n      for (let mask of masks) {\\n        if (CoreString.matchMask(attrib_name, mask)) {\\n          matching_attrib_names.push(attrib_name);\\n        }\\n      }\\n    }\\n    return ArrayUtils.uniq(matching_attrib_names);\\n  }\\n  attribSizes() {\\n    const h = {};\\n    for (let attrib_name of this.attribNames()) {\\n      h[attrib_name] = this._geometry.attributes[attrib_name].itemSize;\\n    }\\n    return h;\\n  }\\n  attribSize(name) {\\n    let attrib;\\n    name = CoreAttribute.remapName(name);\\n    if ((attrib = this._geometry.attributes[name]) != null) {\\n      return attrib.itemSize;\\n    } else {\\n      if (name === \\\\\\\"ptnum\\\\\\\") {\\n        return 1;\\n      } else {\\n        return 0;\\n      }\\n    }\\n  }\\n  setIndexedAttributeValues(name, values) {\\n    this.userDataAttribs()[name] = values;\\n  }\\n  setIndexedAttribute(name, values, indices) {\\n    this.setIndexedAttributeValues(name, values);\\n    this._geometry.setAttribute(name, new Int32BufferAttribute(indices, 1));\\n  }\\n  addNumericAttrib(name, size = 1, default_value = 0) {\\n    const values = [];\\n    let attribute_added = false;\\n    if (CoreType.isNumber(default_value)) {\\n      for (let i = 0; i < this.pointsCount(); i++) {\\n        for (let j = 0; j < size; j++) {\\n          values.push(default_value);\\n        }\\n      }\\n      attribute_added = true;\\n    } else {\\n      if (size > 1) {\\n        if (CoreType.isArray(default_value)) {\\n          for (let i = 0; i < this.pointsCount(); i++) {\\n            for (let j = 0; j < size; j++) {\\n              values.push(default_value[j]);\\n            }\\n          }\\n          attribute_added = true;\\n        } else {\\n          const vec2 = default_value;\\n          if (size == 2 && vec2.x != null && vec2.y != null) {\\n            for (let i = 0; i < this.pointsCount(); i++) {\\n              values.push(vec2.x);\\n              values.push(vec2.y);\\n            }\\n            attribute_added = true;\\n          }\\n          const vec3 = default_value;\\n          if (size == 3 && vec3.x != null && vec3.y != null && vec3.z != null) {\\n            for (let i = 0; i < this.pointsCount(); i++) {\\n              values.push(vec3.x);\\n              values.push(vec3.y);\\n              values.push(vec3.z);\\n            }\\n            attribute_added = true;\\n          }\\n          const col = default_value;\\n          if (size == 3 && col.r != null && col.g != null && col.b != null) {\\n            for (let i = 0; i < this.pointsCount(); i++) {\\n              values.push(col.r);\\n              values.push(col.g);\\n              values.push(col.b);\\n            }\\n            attribute_added = true;\\n          }\\n          const vec4 = default_value;\\n          if (size == 4 && vec4.x != null && vec4.y != null && vec4.z != null && vec4.w != null) {\\n            for (let i = 0; i < this.pointsCount(); i++) {\\n              values.push(vec4.x);\\n              values.push(vec4.y);\\n              values.push(vec4.z);\\n              values.push(vec4.w);\\n            }\\n            attribute_added = true;\\n          }\\n        }\\n      }\\n    }\\n    if (attribute_added) {\\n      this._geometry.setAttribute(name.trim(), new Float32BufferAttribute(values, size));\\n    } else {\\n      console.warn(default_value);\\n      throw `CoreGeometry.add_numeric_attrib error: no other default value allowed for now in add_numeric_attrib (default given: ${default_value})`;\\n    }\\n  }\\n  initPositionAttribute(points_count, default_value) {\\n    const values = [];\\n    if (default_value == null) {\\n      default_value = new Vector3();\\n    }\\n    for (let i = 0; i < points_count; i++) {\\n      values.push(default_value.x);\\n      values.push(default_value.y);\\n      values.push(default_value.z);\\n    }\\n    return this._geometry.setAttribute(\\\\\\\"position\\\\\\\", new Float32BufferAttribute(values, 3));\\n  }\\n  addAttribute(name, attrib_data) {\\n    switch (attrib_data.type()) {\\n      case AttribType.STRING:\\n        return console.log(\\\\\\\"TODO: to implement\\\\\\\");\\n      case AttribType.NUMERIC:\\n        return this.addNumericAttrib(name, attrib_data.size());\\n    }\\n  }\\n  renameAttrib(old_name, new_name) {\\n    if (this.isAttribIndexed(old_name)) {\\n      this.userDataAttribs()[new_name] = ObjectUtils.clone(this.userDataAttribs()[old_name]);\\n      delete this.userDataAttribs()[old_name];\\n    }\\n    const old_attrib = this._geometry.getAttribute(old_name);\\n    this._geometry.setAttribute(new_name.trim(), new Float32BufferAttribute(old_attrib.array, old_attrib.itemSize));\\n    return this._geometry.deleteAttribute(old_name);\\n  }\\n  deleteAttribute(name) {\\n    if (this.isAttribIndexed(name)) {\\n      delete this.userDataAttribs()[name];\\n    }\\n    return this._geometry.deleteAttribute(name);\\n  }\\n  clone() {\\n    return CoreGeometry2.clone(this._geometry);\\n  }\\n  static clone(src_geometry) {\\n    let src_userData;\\n    const new_geometry = src_geometry.clone();\\n    if ((src_userData = src_geometry.userData) != null) {\\n      new_geometry.userData = ObjectUtils.cloneDeep(src_userData);\\n    }\\n    return new_geometry;\\n  }\\n  pointsCount() {\\n    return CoreGeometry2.pointsCount(this._geometry);\\n  }\\n  static pointsCount(geometry) {\\n    let position;\\n    let count = 0;\\n    const core_geometry = new this(geometry);\\n    let position_attrib_name = \\\\\\\"position\\\\\\\";\\n    if (core_geometry.markedAsInstance()) {\\n      position_attrib_name = \\\\\\\"instancePosition\\\\\\\";\\n    }\\n    if ((position = geometry.getAttribute(position_attrib_name)) != null) {\\n      let array;\\n      if ((array = position.array) != null) {\\n        count = array.length / 3;\\n      }\\n    }\\n    return count;\\n  }\\n  points() {\\n    return this.pointsFromGeometry();\\n  }\\n  pointsFromGeometry() {\\n    const points2 = [];\\n    const positionAttrib = this._geometry.getAttribute(this.positionAttribName());\\n    if (positionAttrib != null) {\\n      const count = positionAttrib.array.length / 3;\\n      for (let i = 0; i < count; i++) {\\n        const point = new CorePoint(this, i);\\n        points2.push(point);\\n      }\\n    }\\n    return points2;\\n  }\\n  static geometryFromPoints(points2, object_type) {\\n    switch (object_type) {\\n      case ObjectType.MESH:\\n        return this._mesh_builder.from_points(points2);\\n      case ObjectType.POINTS:\\n        return this._points_builder.from_points(points2);\\n      case ObjectType.LINE_SEGMENTS:\\n        return this._lines_segment_builder.from_points(points2);\\n      case ObjectType.OBJECT3D:\\n        return null;\\n      case ObjectType.GROUP:\\n        return null;\\n      case ObjectType.LOD:\\n        return null;\\n    }\\n    TypeAssert.unreachable(object_type);\\n  }\\n  static mergeGeometries(geometries) {\\n    return CoreGeometryBuilderMerge.merge(geometries);\\n  }\\n  static merge_geometries(geometries) {\\n    return CoreGeometryBuilderMerge.merge(geometries);\\n  }\\n  segments() {\\n    const index = this.geometry().index?.array || [];\\n    return ArrayUtils.chunk(index, 2);\\n  }\\n  faces() {\\n    return this.facesFromGeometry();\\n  }\\n  facesFromGeometry() {\\n    const index_array = this.geometry().index?.array || [];\\n    const faces_count = index_array.length / 3;\\n    return ArrayUtils.range(faces_count).map((i) => new CoreFace(this, i));\\n  }\\n};\\nvar CoreGeometry = CoreGeometry2;\\nCoreGeometry._mesh_builder = new CoreGeometryBuilderMesh();\\nCoreGeometry._points_builder = new CoreGeometryBuilderPoints();\\nCoreGeometry._lines_segment_builder = new CoreGeometryBuilderLineSegments();\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Material.ts\\nvar CustomMaterialName;\\n(function(CustomMaterialName2) {\\n  CustomMaterialName2[\\\\\\\"customDistanceMaterial\\\\\\\"] = \\\\\\\"customDistanceMaterial\\\\\\\";\\n  CustomMaterialName2[\\\\\\\"customDepthMaterial\\\\\\\"] = \\\\\\\"customDepthMaterial\\\\\\\";\\n  CustomMaterialName2[\\\\\\\"customDepthDOFMaterial\\\\\\\"] = \\\\\\\"customDepthDOFMaterial\\\\\\\";\\n})(CustomMaterialName || (CustomMaterialName = {}));\\nvar RENDER_HOOK_USER_DATA_KEY = \\\\\\\"POLY_render_hook\\\\\\\";\\nvar EMPTY_RENDER_HOOK = (renderer, scene, camera, geometry, material, group) => {\\n};\\nvar CoreMaterial = class {\\n  static node(scene, material) {\\n    return scene.node(material.name);\\n  }\\n  static clone(src_material) {\\n    const cloned_material = src_material.clone();\\n    const src_uniforms = src_material.uniforms;\\n    if (src_uniforms) {\\n      cloned_material.uniforms = UniformsUtils.clone(src_uniforms);\\n    }\\n    return cloned_material;\\n  }\\n  static add_user_data_render_hook(material, render_hook) {\\n    material.userData[RENDER_HOOK_USER_DATA_KEY] = render_hook;\\n  }\\n  static apply_render_hook(object, material) {\\n    if (material.userData) {\\n      const render_hook = material.userData[RENDER_HOOK_USER_DATA_KEY];\\n      if (render_hook) {\\n        object.onBeforeRender = (renderer, scene, camera, geometry, material2, group) => {\\n          render_hook(renderer, scene, camera, geometry, material2, group, object);\\n        };\\n        return;\\n      }\\n    }\\n    object.onBeforeRender = EMPTY_RENDER_HOOK;\\n  }\\n  static applyCustomMaterials(object, material) {\\n    const material_with_custom = material;\\n    if (material_with_custom.customMaterials) {\\n      for (let name of Object.keys(material_with_custom.customMaterials)) {\\n        const mat_name = name;\\n        const custom_material = material_with_custom.customMaterials[mat_name];\\n        if (custom_material) {\\n          object[mat_name] = custom_material;\\n          custom_material.needsUpdate = true;\\n        }\\n      }\\n    }\\n  }\\n  static assign_custom_uniforms(mat, uniform_name, uniform_value) {\\n    const material = mat;\\n    if (material.customMaterials) {\\n      for (let name of Object.keys(material.customMaterials)) {\\n        const mat_name = name;\\n        const custom_material = material.customMaterials[mat_name];\\n        if (custom_material) {\\n          custom_material.uniforms[uniform_name].value = uniform_value;\\n        }\\n      }\\n    }\\n  }\\n  static init_custom_material_uniforms(mat, uniform_name, uniform_value) {\\n    const material = mat;\\n    if (material.customMaterials) {\\n      for (let name of Object.keys(material.customMaterials)) {\\n        const mat_name = name;\\n        const custom_material = material.customMaterials[mat_name];\\n        if (custom_material) {\\n          custom_material.uniforms[uniform_name] = custom_material.uniforms[uniform_name] || uniform_value;\\n        }\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Object.ts\\nvar PTNUM2 = \\\\\\\"ptnum\\\\\\\";\\nvar NAME_ATTR = \\\\\\\"name\\\\\\\";\\nvar ATTRIBUTES = \\\\\\\"attributes\\\\\\\";\\nvar CoreObject = class extends CoreEntity {\\n  constructor(_object, index) {\\n    super(index);\\n    this._object = _object;\\n    if (this._object.userData[ATTRIBUTES] == null) {\\n      this._object.userData[ATTRIBUTES] = {};\\n    }\\n  }\\n  object() {\\n    return this._object;\\n  }\\n  geometry() {\\n    return this._object.geometry;\\n  }\\n  coreGeometry() {\\n    const geo = this.geometry();\\n    if (geo) {\\n      return new CoreGeometry(geo);\\n    } else {\\n      return null;\\n    }\\n  }\\n  points() {\\n    return this.coreGeometry()?.points() || [];\\n  }\\n  pointsFromGroup(group) {\\n    if (group) {\\n      const indices = CoreString.indices(group);\\n      if (indices) {\\n        const points2 = this.points();\\n        return indices.map((i) => points2[i]);\\n      } else {\\n        return [];\\n      }\\n    } else {\\n      return this.points();\\n    }\\n  }\\n  static isInGroup(groupString, object) {\\n    const group = groupString.trim();\\n    if (group.length == 0) {\\n      return true;\\n    }\\n    const elements = group.split(\\\\\\\"=\\\\\\\");\\n    const attribNameWithPrefix = elements[0];\\n    if (attribNameWithPrefix[0] == \\\\\\\"@\\\\\\\") {\\n      const attribName = attribNameWithPrefix.substr(1);\\n      const expectedAttribValue = elements[1];\\n      const currentAttribValue = this.attribValue(object, attribName);\\n      return expectedAttribValue == currentAttribValue;\\n    }\\n    return false;\\n  }\\n  computeVertexNormals() {\\n    this.coreGeometry()?.computeVertexNormals();\\n  }\\n  static _convert_array_to_vector(value) {\\n    switch (value.length) {\\n      case 1:\\n        return value[0];\\n      case 2:\\n        return new Vector2(value[0], value[1]);\\n      case 3:\\n        return new Vector3(value[0], value[1], value[2]);\\n      case 4:\\n        return new Vector4(value[0], value[1], value[2], value[3]);\\n    }\\n  }\\n  static addAttribute(object, attrib_name, value) {\\n    if (CoreType.isArray(value)) {\\n      const converted_value = this._convert_array_to_vector(value);\\n      if (!converted_value) {\\n        const message = `attribute_value invalid`;\\n        console.error(message, value);\\n        throw new Error(message);\\n      }\\n    }\\n    const data = value;\\n    const user_data = object.userData;\\n    user_data[ATTRIBUTES] = user_data[ATTRIBUTES] || {};\\n    user_data[ATTRIBUTES][attrib_name] = data;\\n  }\\n  addAttribute(name, value) {\\n    CoreObject.addAttribute(this._object, name, value);\\n  }\\n  addNumericAttrib(name, value) {\\n    this.addAttribute(name, value);\\n  }\\n  setAttribValue(name, value) {\\n    this.addAttribute(name, value);\\n  }\\n  addNumericVertexAttrib(name, size, default_value) {\\n    if (default_value == null) {\\n      default_value = CoreAttribute.default_value(size);\\n    }\\n    this.coreGeometry()?.addNumericAttrib(name, size, default_value);\\n  }\\n  attributeNames() {\\n    return Object.keys(this._object.userData[ATTRIBUTES]);\\n  }\\n  attribNames() {\\n    return this.attributeNames();\\n  }\\n  hasAttrib(name) {\\n    return this.attributeNames().includes(name);\\n  }\\n  renameAttrib(old_name, new_name) {\\n    const current_value = this.attribValue(old_name);\\n    if (current_value != null) {\\n      this.addAttribute(new_name, current_value);\\n      this.deleteAttribute(old_name);\\n    } else {\\n      console.warn(`attribute ${old_name} not found`);\\n    }\\n  }\\n  deleteAttribute(name) {\\n    delete this._object.userData[ATTRIBUTES][name];\\n  }\\n  static attribValue(object, name, index = 0, target) {\\n    if (name === PTNUM2) {\\n      return index;\\n    }\\n    if (object.userData && object.userData[ATTRIBUTES]) {\\n      const val = object.userData[ATTRIBUTES][name];\\n      if (val == null) {\\n        if (name == NAME_ATTR) {\\n          return object.name;\\n        }\\n      } else {\\n        if (CoreType.isArray(val) && target) {\\n          target.fromArray(val);\\n          return target;\\n        }\\n      }\\n      return val;\\n    }\\n    if (name == NAME_ATTR) {\\n      return object.name;\\n    }\\n  }\\n  static stringAttribValue(object, name, index = 0) {\\n    const str = this.attribValue(object, name, index);\\n    if (str != null) {\\n      if (CoreType.isString(str)) {\\n        return str;\\n      } else {\\n        return `${str}`;\\n      }\\n    }\\n  }\\n  attribValue(name, target) {\\n    return CoreObject.attribValue(this._object, name, this._index, target);\\n  }\\n  stringAttribValue(name) {\\n    return CoreObject.stringAttribValue(this._object, name, this._index);\\n  }\\n  name() {\\n    return this.attribValue(NAME_ATTR);\\n  }\\n  humanType() {\\n    return CoreConstant.CONSTRUCTOR_NAMES_BY_CONSTRUCTOR_NAME[this._object.constructor.name];\\n  }\\n  attribTypes() {\\n    const h = {};\\n    for (let attrib_name of this.attribNames()) {\\n      const type = this.attribType(attrib_name);\\n      if (type != null) {\\n        h[attrib_name] = type;\\n      }\\n    }\\n    return h;\\n  }\\n  attribType(name) {\\n    const val = this.attribValue(name);\\n    if (CoreType.isString(val)) {\\n      return AttribType.STRING;\\n    } else {\\n      return AttribType.NUMERIC;\\n    }\\n  }\\n  attribSizes() {\\n    const h = {};\\n    for (let attrib_name of this.attribNames()) {\\n      const size = this.attribSize(attrib_name);\\n      if (size != null) {\\n        h[attrib_name] = size;\\n      }\\n    }\\n    return h;\\n  }\\n  attribSize(name) {\\n    const val = this.attribValue(name);\\n    if (val == null) {\\n      return null;\\n    }\\n    return CoreAttribute.attribSizeFromValue(val);\\n  }\\n  clone() {\\n    return CoreObject.clone(this._object);\\n  }\\n  static clone(src_object) {\\n    const new_object = src_object.clone();\\n    var sourceLookup = new Map();\\n    var cloneLookup = new Map();\\n    CoreObject.parallelTraverse(src_object, new_object, function(sourceNode, clonedNode) {\\n      sourceLookup.set(clonedNode, sourceNode);\\n      cloneLookup.set(sourceNode, clonedNode);\\n    });\\n    new_object.traverse(function(node) {\\n      const src_node = sourceLookup.get(node);\\n      const mesh_node = node;\\n      if (mesh_node.geometry) {\\n        const src_node_geometry = src_node.geometry;\\n        mesh_node.geometry = CoreGeometry.clone(src_node_geometry);\\n        const mesh_node_geometry = mesh_node.geometry;\\n        if (mesh_node_geometry.userData) {\\n          mesh_node_geometry.userData = ObjectUtils.cloneDeep(src_node_geometry.userData);\\n        }\\n      }\\n      if (mesh_node.material) {\\n        mesh_node.material = src_node.material;\\n        CoreMaterial.applyCustomMaterials(node, mesh_node.material);\\n        const material_with_color = mesh_node.material;\\n        if (material_with_color.color == null) {\\n          material_with_color.color = new Color(1, 1, 1);\\n        }\\n      }\\n      if (src_object.userData) {\\n        node.userData = ObjectUtils.cloneDeep(src_node.userData);\\n      }\\n      const src_node_with_animations = src_node;\\n      if (src_node_with_animations.animations) {\\n        node.animations = src_node_with_animations.animations.map((animation) => animation.clone());\\n      }\\n      const skinned_node = node;\\n      if (skinned_node.isSkinnedMesh) {\\n        var clonedMesh = skinned_node;\\n        var sourceMesh = src_node;\\n        var sourceBones = sourceMesh.skeleton.bones;\\n        clonedMesh.skeleton = sourceMesh.skeleton.clone();\\n        clonedMesh.bindMatrix.copy(sourceMesh.bindMatrix);\\n        const new_bones = sourceBones.map(function(bone) {\\n          return cloneLookup.get(bone);\\n        });\\n        clonedMesh.skeleton.bones = new_bones;\\n        clonedMesh.bind(clonedMesh.skeleton, clonedMesh.bindMatrix);\\n      }\\n    });\\n    return new_object;\\n  }\\n  static parallelTraverse(a, b, callback) {\\n    callback(a, b);\\n    for (var i = 0; i < a.children.length; i++) {\\n      this.parallelTraverse(a.children[i], b.children[i], callback);\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Geometry.ts\\nvar GeometryContainer = class extends TypedContainer {\\n  coreContentCloned() {\\n    if (this._content) {\\n      return this._content.clone();\\n    }\\n  }\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  firstObject() {\\n    if (this._content) {\\n      return this._content.objects()[0];\\n    }\\n  }\\n  firstCoreObject() {\\n    const object = this.firstObject();\\n    if (object) {\\n      return new CoreObject(object, 0);\\n    }\\n  }\\n  firstGeometry() {\\n    const object = this.firstObject();\\n    if (object) {\\n      return object.geometry;\\n    } else {\\n      return null;\\n    }\\n  }\\n  objectsCount() {\\n    if (this._content) {\\n      return this._content.objects().length;\\n    } else {\\n      return 0;\\n    }\\n  }\\n  objectsVisibleCount() {\\n    let count = 0;\\n    if (this._content) {\\n      const objects = this._content.objects();\\n      for (let object of objects) {\\n        if (object.visible) {\\n          count++;\\n        }\\n      }\\n    }\\n    return count;\\n  }\\n  objectsCountByType() {\\n    const count_by_type = {};\\n    const core_group = this._content;\\n    if (this._content && core_group) {\\n      for (let core_object of core_group.coreObjects()) {\\n        const human_type = core_object.humanType();\\n        if (count_by_type[human_type] == null) {\\n          count_by_type[human_type] = 0;\\n        }\\n        count_by_type[human_type] += 1;\\n      }\\n    }\\n    return count_by_type;\\n  }\\n  objectsNamesByType() {\\n    const names_by_type = {};\\n    const core_group = this._content;\\n    if (this._content && core_group) {\\n      for (let core_object of core_group.coreObjects()) {\\n        const human_type = core_object.humanType();\\n        names_by_type[human_type] = names_by_type[human_type] || [];\\n        names_by_type[human_type].push(core_object.name());\\n      }\\n    }\\n    return names_by_type;\\n  }\\n  pointAttributeNames() {\\n    let names = [];\\n    const geometry = this.firstGeometry();\\n    if (geometry) {\\n      names = Object.keys(geometry.attributes);\\n    }\\n    return names;\\n  }\\n  pointAttributeSizesByName() {\\n    let sizes_by_name = {};\\n    const geometry = this.firstGeometry();\\n    if (geometry) {\\n      Object.keys(geometry.attributes).forEach((attrib_name) => {\\n        const attrib = geometry.attributes[attrib_name];\\n        sizes_by_name[attrib_name] = attrib.itemSize;\\n      });\\n    }\\n    return sizes_by_name;\\n  }\\n  objectAttributeSizesByName() {\\n    let sizes_by_name = {};\\n    const core_object = this.firstCoreObject();\\n    if (core_object) {\\n      const attribNames = core_object.attribNames();\\n      for (let name of attribNames) {\\n        const size = core_object.attribSize(name);\\n        if (size != null) {\\n          sizes_by_name[name] = size;\\n        }\\n      }\\n    }\\n    return sizes_by_name;\\n  }\\n  pointAttributeTypesByName() {\\n    let types_by_name = {};\\n    const geometry = this.firstGeometry();\\n    if (geometry) {\\n      const core_geo = new CoreGeometry(geometry);\\n      Object.keys(geometry.attributes).forEach((attrib_name) => {\\n        types_by_name[attrib_name] = core_geo.attribType(attrib_name);\\n      });\\n    }\\n    return types_by_name;\\n  }\\n  objectAttributeTypesByName() {\\n    let types_by_name = {};\\n    const core_object = this.firstCoreObject();\\n    if (core_object) {\\n      for (let name of core_object.attribNames()) {\\n        types_by_name[name] = core_object.attribType(name);\\n      }\\n    }\\n    return types_by_name;\\n  }\\n  objectAttributeNames() {\\n    let names = [];\\n    const object = this.firstObject();\\n    if (object) {\\n      names = Object.keys(object.userData[\\\\\\\"attributes\\\\\\\"] || {});\\n    }\\n    return names;\\n  }\\n  pointsCount() {\\n    if (this._content) {\\n      return this._content.pointsCount();\\n    } else {\\n      return 0;\\n    }\\n  }\\n  totalPointsCount() {\\n    if (this._content) {\\n      return this._content.totalPointsCount();\\n    } else {\\n      return 0;\\n    }\\n  }\\n  objectsData() {\\n    if (this._content) {\\n      return this._content.objectsData();\\n    } else {\\n      return [];\\n    }\\n  }\\n  boundingBox(forceUpdate = false) {\\n    return this._content.boundingBox(forceUpdate);\\n  }\\n  center() {\\n    return this._content.center();\\n  }\\n  size() {\\n    return this._content.size();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Gl.ts\\nvar GlContainer = class extends TypedContainer {\\n  object() {\\n    return this._content;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Js.ts\\nvar JsContainer = class extends TypedContainer {\\n  object() {\\n    return this._content;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Manager.ts\\nvar ManagerContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Material.ts\\nvar MaterialContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  set_material(material) {\\n    if (this._content != null) {\\n      this._content.dispose();\\n    }\\n    this.set_content(material);\\n  }\\n  has_material() {\\n    return this.has_content();\\n  }\\n  material() {\\n    return this.content();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Object.ts\\nvar ObjectContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  set_object(object) {\\n    return this.set_content(object);\\n  }\\n  has_object() {\\n    return this.has_content();\\n  }\\n  object() {\\n    return this.content();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Texture.ts\\nvar TextureContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  texture() {\\n    return this._content;\\n  }\\n  coreContent() {\\n    return this._content;\\n  }\\n  coreContentCloned() {\\n    const texture = this._content?.clone();\\n    if (texture) {\\n      texture.needsUpdate = true;\\n    }\\n    return texture;\\n  }\\n  object() {\\n    return this.texture();\\n  }\\n  infos() {\\n    if (this._content != null) {\\n      return [this._content];\\n    }\\n  }\\n  resolution() {\\n    if (this._content) {\\n      const image = this._content.image;\\n      if (image) {\\n        if (image instanceof HTMLImageElement || image instanceof Image || image instanceof ImageData || image instanceof HTMLCanvasElement) {\\n          return [image.width, image.height];\\n        }\\n        if (image.data && image.width != null && image.height != null) {\\n          return [image.width, image.height];\\n        }\\n        const video = image;\\n        return [video.videoWidth, video.videoHeight];\\n      }\\n    }\\n    return [-1, -1];\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/PostProcess.ts\\nvar PostProcessContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  render_pass() {\\n    return this._content;\\n  }\\n  object(options = {}) {\\n    return this.render_pass();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/Rop.ts\\nvar RopContainer = class extends TypedContainer {\\n  set_content(content) {\\n    super.set_content(content);\\n  }\\n  renderer() {\\n    return this._content;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/containers/utils/ContainerMap.ts\\nvar ContainerClassMap = {\\n  [NodeContext.ANIM]: AnimationContainer,\\n  [NodeContext.COP]: TextureContainer,\\n  [NodeContext.EVENT]: EventContainer,\\n  [NodeContext.GL]: GlContainer,\\n  [NodeContext.JS]: JsContainer,\\n  [NodeContext.MANAGER]: ManagerContainer,\\n  [NodeContext.MAT]: MaterialContainer,\\n  [NodeContext.OBJ]: ObjectContainer,\\n  [NodeContext.POST]: PostProcessContainer,\\n  [NodeContext.ROP]: RopContainer,\\n  [NodeContext.SOP]: GeometryContainer\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/ContainerController.ts\\nvar TypedContainerController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._callbacks = [];\\n    this._callbacks_tmp = [];\\n    const container_class = ContainerClassMap[node.context()];\\n    this._container = new container_class(this.node);\\n  }\\n  container() {\\n    return this._container;\\n  }\\n  async compute() {\\n    if (this.node.flags?.bypass?.active()) {\\n      const container = await this.requestInputContainer(0) || this._container;\\n      this.node.cookController.endCook();\\n      return container;\\n    }\\n    if (this.node.isDirty()) {\\n      return new Promise((resolve, reject) => {\\n        this._callbacks.push(resolve);\\n        this.node.cookController.cookMain();\\n      });\\n    }\\n    return this._container;\\n  }\\n  async requestInputContainer(input_index) {\\n    const inputNode = this.node.io.inputs.input(input_index);\\n    if (inputNode) {\\n      return await inputNode.compute();\\n    } else {\\n      this.node.states.error.set(`input ${input_index} required`);\\n      this.notifyRequesters();\\n      return null;\\n    }\\n  }\\n  notifyRequesters(container) {\\n    this._callbacks_tmp = this._callbacks.slice();\\n    this._callbacks.splice(0, this._callbacks.length);\\n    if (!container) {\\n      container = this.node.containerController.container();\\n    }\\n    let callback;\\n    while (callback = this._callbacks_tmp.pop()) {\\n      callback(container);\\n    }\\n    this.node.scene().cookController.removeNode(this.node);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/cook/PerformanceController.ts\\nvar performance = Poly.performance.performanceManager();\\nvar NodeCookPerformanceformanceController = class {\\n  constructor(cookController) {\\n    this.cookController = cookController;\\n    this._inputs_start = 0;\\n    this._params_start = 0;\\n    this._cook_start = 0;\\n    this._cooksCount = 0;\\n    this._data = {\\n      inputsTime: 0,\\n      paramsTime: 0,\\n      cookTime: 0\\n    };\\n  }\\n  cooksCount() {\\n    return this._cooksCount;\\n  }\\n  data2() {\\n    return this._data;\\n  }\\n  active() {\\n    return this.cookController.performanceRecordStarted();\\n  }\\n  recordInputsStart() {\\n    if (this.active()) {\\n      this._inputs_start = performance.now();\\n    }\\n  }\\n  recordInputsEnd() {\\n    if (this.active()) {\\n      this._data.inputsTime = performance.now() - this._inputs_start;\\n    }\\n  }\\n  recordParamsStart() {\\n    if (this.active()) {\\n      this._params_start = performance.now();\\n    }\\n  }\\n  recordParamsEnd() {\\n    if (this.active()) {\\n      this._data.paramsTime = performance.now() - this._params_start;\\n    }\\n  }\\n  recordCookStart() {\\n    if (this.active()) {\\n      this._cook_start = performance.now();\\n    }\\n  }\\n  recordCookEnd() {\\n    if (this.active()) {\\n      this._data.cookTime = performance.now() - this._cook_start;\\n      this._cooksCount += 1;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/CookController.ts\\nvar NodeCookController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._cooking = false;\\n    this._performanceController = new NodeCookPerformanceformanceController(this);\\n    this._inputs_evaluation_required = true;\\n    this._core_performance = this.node.scene().performance;\\n  }\\n  performanceRecordStarted() {\\n    return this._core_performance.started();\\n  }\\n  disallowInputsEvaluation() {\\n    this._inputs_evaluation_required = false;\\n  }\\n  isCooking() {\\n    return this._cooking === true;\\n  }\\n  _start_cook_if_no_errors(input_contents) {\\n    if (this.node.states.error.active()) {\\n      this.endCook();\\n    } else {\\n      try {\\n        this._performanceController.recordCookStart();\\n        this.node.cook(input_contents);\\n      } catch (e) {\\n        this.node.states.error.set(`node internal error: '${e}'.`);\\n        Poly.warn(e);\\n        this.endCook();\\n      }\\n    }\\n  }\\n  async cookMain() {\\n    if (this.isCooking()) {\\n      return;\\n    }\\n    this._initCookingState();\\n    this.node.states.error.clear();\\n    this.node.scene().cookController.addNode(this.node);\\n    let input_contents;\\n    if (this._inputs_evaluation_required) {\\n      input_contents = await this._evaluateInputs();\\n    } else {\\n      input_contents = [];\\n    }\\n    if (this.node.params.paramsEvalRequired()) {\\n      await this._evaluateParams();\\n    }\\n    this._start_cook_if_no_errors(input_contents);\\n  }\\n  async cookMainWithoutInputs() {\\n    this.node.scene().cookController.addNode(this.node);\\n    if (this.isCooking()) {\\n      Poly.warn(\\\\\\\"cook_main_without_inputs already cooking\\\\\\\", this.node.path());\\n      return;\\n    }\\n    this._initCookingState();\\n    this.node.states.error.clear();\\n    if (this.node.params.paramsEvalRequired()) {\\n      await this._evaluateParams();\\n    }\\n    this._start_cook_if_no_errors([]);\\n  }\\n  endCook(message) {\\n    this._finalizeCookPerformance();\\n    const dirty_timestamp = this.node.dirtyController.dirtyTimestamp();\\n    if (dirty_timestamp == null || dirty_timestamp === this._cooking_dirty_timestamp) {\\n      this.node.removeDirtyState();\\n      this._terminateCookProcess();\\n    } else {\\n      Poly.log(\\\\\\\"COOK AGAIN\\\\\\\", dirty_timestamp, this._cooking_dirty_timestamp, this.node.path());\\n      this._cooking = false;\\n      this.cookMain();\\n    }\\n  }\\n  _initCookingState() {\\n    this._cooking = true;\\n    this._cooking_dirty_timestamp = this.node.dirtyController.dirtyTimestamp();\\n  }\\n  _terminateCookProcess() {\\n    if (this.isCooking()) {\\n      this._cooking = false;\\n      this.node.containerController.notifyRequesters();\\n      this._run_on_cook_complete_hooks();\\n    }\\n  }\\n  async _evaluateInputs() {\\n    this._performanceController.recordInputsStart();\\n    let input_containers = [];\\n    const io_inputs = this.node.io.inputs;\\n    if (this._inputs_evaluation_required) {\\n      if (io_inputs.is_any_input_dirty()) {\\n        input_containers = await io_inputs.eval_required_inputs();\\n      } else {\\n        input_containers = await io_inputs.containers_without_evaluation();\\n      }\\n    }\\n    const inputs = io_inputs.inputs();\\n    const input_contents = [];\\n    let input_container;\\n    for (let i = 0; i < inputs.length; i++) {\\n      input_container = input_containers[i];\\n      if (input_container) {\\n        if (io_inputs.cloneRequired(i)) {\\n          input_contents[i] = input_container.coreContentCloned();\\n        } else {\\n          input_contents[i] = input_container.coreContent();\\n        }\\n      }\\n    }\\n    this._performanceController.recordInputsEnd();\\n    return input_contents;\\n  }\\n  async _evaluateParams() {\\n    this._performanceController.recordParamsStart();\\n    await this.node.params.evalAll();\\n    this._performanceController.recordParamsEnd();\\n  }\\n  cooksCount() {\\n    return this._performanceController.cooksCount();\\n  }\\n  cookTime() {\\n    return this._performanceController.data2().cookTime;\\n  }\\n  _finalizeCookPerformance() {\\n    if (!this._core_performance.started()) {\\n      return;\\n    }\\n    this._performanceController.recordCookEnd();\\n    this._core_performance.record_node_cook_data(this.node, this._performanceController.data2());\\n  }\\n  registerOnCookEnd(callbackName, callback) {\\n    this._on_cook_complete_hook_names = this._on_cook_complete_hook_names || [];\\n    this._on_cook_complete_hooks = this._on_cook_complete_hooks || [];\\n    this._on_cook_complete_hook_names.push(callbackName);\\n    this._on_cook_complete_hooks.push(callback);\\n  }\\n  deregisterOnCookEnd(callbackName) {\\n    if (!this._on_cook_complete_hook_names || !this._on_cook_complete_hooks) {\\n      return;\\n    }\\n    const index = this._on_cook_complete_hook_names?.indexOf(callbackName);\\n    this._on_cook_complete_hook_names.splice(index, 1);\\n    this._on_cook_complete_hooks.splice(index, 1);\\n  }\\n  _run_on_cook_complete_hooks() {\\n    if (this._on_cook_complete_hooks) {\\n      for (let hook of this._on_cook_complete_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n  onCookEndCallbackNames() {\\n    return this._on_cook_complete_hook_names;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/Serializer.ts\\nvar NodeSerializer = class {\\n  constructor(node) {\\n    this.node = node;\\n  }\\n  toJSON(include_param_components = false) {\\n    const data = {\\n      name: this.node.name(),\\n      type: this.node.type(),\\n      graph_node_id: this.node.graphNodeId(),\\n      is_dirty: this.node.isDirty(),\\n      ui_data_json: this.node.uiData.toJSON(),\\n      error_message: this.node.states.error.message(),\\n      children: this.childrenIds(),\\n      maxInputsCount: this.maxInputsCount(),\\n      inputs: this.inputIds(),\\n      input_connection_output_indices: this.inputConnectionOutputIndices(),\\n      named_input_connection_points: this.namedInputConnectionPoints(),\\n      named_output_connection_points: this.namedOutputConnectionPoints(),\\n      param_ids: this.to_json_params(include_param_components),\\n      override_cloned_state_allowed: this.node.io.inputs.overrideClonedStateAllowed(),\\n      inputs_clone_required_states: this.node.io.inputs.cloneRequiredStates(),\\n      flags: {\\n        display: this.node.flags?.display?.active(),\\n        bypass: this.node.flags?.bypass?.active(),\\n        optimize: this.node.flags?.optimize?.active()\\n      },\\n      selection: void 0\\n    };\\n    if (this.node.childrenAllowed() && this.node.childrenController) {\\n      data[\\\\\\\"selection\\\\\\\"] = this.node.childrenController.selection.toJSON();\\n    }\\n    return data;\\n  }\\n  childrenIds() {\\n    return this.node.children().map((node) => node.graphNodeId());\\n  }\\n  maxInputsCount() {\\n    return this.node.io.inputs.maxInputsCount();\\n  }\\n  inputIds() {\\n    return this.node.io.inputs.inputs().map((node) => node != null ? node.graphNodeId() : void 0);\\n  }\\n  inputConnectionOutputIndices() {\\n    return this.node.io.connections.inputConnections()?.map((connection) => connection != null ? connection.output_index : void 0);\\n  }\\n  namedInputConnectionPoints() {\\n    return this.node.io.inputs.namedInputConnectionPoints().map((i) => i.toJSON());\\n  }\\n  namedOutputConnectionPoints() {\\n    return this.node.io.outputs.namedOutputConnectionPoints().map((o) => o.toJSON());\\n  }\\n  to_json_params_from_names(param_names, include_components = false) {\\n    return param_names.map((param_name) => {\\n      return this.node.params.get(param_name).graphNodeId();\\n    });\\n  }\\n  to_json_params(include_components = false) {\\n    return this.to_json_params_from_names(this.node.params.names, include_components);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/ParamType.ts\\nvar ParamType;\\n(function(ParamType2) {\\n  ParamType2[\\\\\\\"BOOLEAN\\\\\\\"] = \\\\\\\"boolean\\\\\\\";\\n  ParamType2[\\\\\\\"BUTTON\\\\\\\"] = \\\\\\\"button\\\\\\\";\\n  ParamType2[\\\\\\\"COLOR\\\\\\\"] = \\\\\\\"color\\\\\\\";\\n  ParamType2[\\\\\\\"FLOAT\\\\\\\"] = \\\\\\\"float\\\\\\\";\\n  ParamType2[\\\\\\\"FOLDER\\\\\\\"] = \\\\\\\"folder\\\\\\\";\\n  ParamType2[\\\\\\\"INTEGER\\\\\\\"] = \\\\\\\"integer\\\\\\\";\\n  ParamType2[\\\\\\\"OPERATOR_PATH\\\\\\\"] = \\\\\\\"operator_path\\\\\\\";\\n  ParamType2[\\\\\\\"PARAM_PATH\\\\\\\"] = \\\\\\\"param_path\\\\\\\";\\n  ParamType2[\\\\\\\"NODE_PATH\\\\\\\"] = \\\\\\\"node_path\\\\\\\";\\n  ParamType2[\\\\\\\"RAMP\\\\\\\"] = \\\\\\\"ramp\\\\\\\";\\n  ParamType2[\\\\\\\"STRING\\\\\\\"] = \\\\\\\"string\\\\\\\";\\n  ParamType2[\\\\\\\"VECTOR2\\\\\\\"] = \\\\\\\"vector2\\\\\\\";\\n  ParamType2[\\\\\\\"VECTOR3\\\\\\\"] = \\\\\\\"vector3\\\\\\\";\\n  ParamType2[\\\\\\\"VECTOR4\\\\\\\"] = \\\\\\\"vector4\\\\\\\";\\n})(ParamType || (ParamType = {}));\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/ParamEvent.ts\\nvar ParamEvent;\\n(function(ParamEvent2) {\\n  ParamEvent2[\\\\\\\"VISIBLE_UPDATED\\\\\\\"] = \\\\\\\"param_visible_updated\\\\\\\";\\n  ParamEvent2[\\\\\\\"RAW_INPUT_UPDATED\\\\\\\"] = \\\\\\\"raw_input_updated\\\\\\\";\\n  ParamEvent2[\\\\\\\"VALUE_UPDATED\\\\\\\"] = \\\\\\\"param_value_updated\\\\\\\";\\n  ParamEvent2[\\\\\\\"EXPRESSION_UPDATED\\\\\\\"] = \\\\\\\"param_expression_update\\\\\\\";\\n  ParamEvent2[\\\\\\\"ERROR_UPDATED\\\\\\\"] = \\\\\\\"param_error_updated\\\\\\\";\\n  ParamEvent2[\\\\\\\"DELETED\\\\\\\"] = \\\\\\\"param_deleted\\\\\\\";\\n})(ParamEvent || (ParamEvent = {}));\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/OptionsController.ts\\nvar CALLBACK_OPTION = \\\\\\\"callback\\\\\\\";\\nvar CALLBACK_STRING_OPTION = \\\\\\\"callbackString\\\\\\\";\\nvar COMPUTE_ON_DIRTY = \\\\\\\"computeOnDirty\\\\\\\";\\nvar COOK_OPTION = \\\\\\\"cook\\\\\\\";\\nvar FILE_BROWSE_OPTION = \\\\\\\"fileBrowse\\\\\\\";\\nvar FILE_TYPE_OPTION = \\\\\\\"type\\\\\\\";\\nvar EXPRESSION = \\\\\\\"expression\\\\\\\";\\nvar FOR_ENTITIES = \\\\\\\"forEntities\\\\\\\";\\nvar LABEL = \\\\\\\"label\\\\\\\";\\nvar LEVEL = \\\\\\\"level\\\\\\\";\\nvar MENU = \\\\\\\"menu\\\\\\\";\\nvar MENU_STRING = \\\\\\\"menuString\\\\\\\";\\nvar ENTRIES = \\\\\\\"entries\\\\\\\";\\nvar MULTILINE_OPTION = \\\\\\\"multiline\\\\\\\";\\nvar LANGUAGE_OPTION = \\\\\\\"language\\\\\\\";\\nvar NODE_SELECTION = \\\\\\\"nodeSelection\\\\\\\";\\nvar NODE_SELECTION_CONTEXT = \\\\\\\"context\\\\\\\";\\nvar NODE_SELECTION_TYPES = \\\\\\\"types\\\\\\\";\\nvar PARAM_SELECTION = \\\\\\\"paramSelection\\\\\\\";\\nvar DEPENDENT_ON_FOUND_NODE = \\\\\\\"dependentOnFoundNode\\\\\\\";\\nvar RANGE_OPTION = \\\\\\\"range\\\\\\\";\\nvar RANGE_LOCKED_OPTION = \\\\\\\"rangeLocked\\\\\\\";\\nvar STEP_OPTION = \\\\\\\"step\\\\\\\";\\nvar SPARE_OPTION = \\\\\\\"spare\\\\\\\";\\nvar TEXTURE_OPTION = \\\\\\\"texture\\\\\\\";\\nvar ENV_OPTION = \\\\\\\"env\\\\\\\";\\nvar HIDDEN_OPTION = \\\\\\\"hidden\\\\\\\";\\nvar FIELD_OPTION = \\\\\\\"field\\\\\\\";\\nvar VISIBLE_IF_OPTION = \\\\\\\"visibleIf\\\\\\\";\\nvar COLOR_CONVERSION = \\\\\\\"conversion\\\\\\\";\\nvar SEPARATOR_BEFORE_OPTION = \\\\\\\"separatorBefore\\\\\\\";\\nvar SEPARATOR_AFTER_OPTION = \\\\\\\"separatorAfter\\\\\\\";\\nvar StringParamLanguage;\\n(function(StringParamLanguage2) {\\n  StringParamLanguage2[\\\\\\\"TYPESCRIPT\\\\\\\"] = \\\\\\\"typescript\\\\\\\";\\n})(StringParamLanguage || (StringParamLanguage = {}));\\nvar FileType;\\n(function(FileType2) {\\n  FileType2[\\\\\\\"AUDIO\\\\\\\"] = \\\\\\\"audio\\\\\\\";\\n  FileType2[\\\\\\\"TEXTURE_IMAGE\\\\\\\"] = \\\\\\\"texture_image\\\\\\\";\\n  FileType2[\\\\\\\"TEXTURE_VIDEO\\\\\\\"] = \\\\\\\"texture_video\\\\\\\";\\n  FileType2[\\\\\\\"GEOMETRY\\\\\\\"] = \\\\\\\"geometry\\\\\\\";\\n  FileType2[\\\\\\\"FONT\\\\\\\"] = \\\\\\\"font\\\\\\\";\\n  FileType2[\\\\\\\"SVG\\\\\\\"] = \\\\\\\"svg\\\\\\\";\\n  FileType2[\\\\\\\"JSON\\\\\\\"] = \\\\\\\"json\\\\\\\";\\n})(FileType || (FileType = {}));\\nvar OptionsController = class {\\n  constructor(_param) {\\n    this._param = _param;\\n    this._programatic_visible_state = true;\\n    this._callbackAllowed = false;\\n    this._updateVisibilityAndRemoveDirtyBound = this.updateVisibilityAndRemoveDirty.bind(this);\\n    this._ui_data_dependency_set = false;\\n  }\\n  dispose() {\\n    try {\\n      this._options[CALLBACK_OPTION] = void 0;\\n      this._options[CALLBACK_STRING_OPTION] = void 0;\\n    } catch (err) {\\n    }\\n    this._visibility_graph_node?.dispose();\\n  }\\n  set(options) {\\n    this._default_options = options;\\n    this._options = ObjectUtils.cloneDeep(this._default_options);\\n    this.post_set_options();\\n  }\\n  copy(options_controller) {\\n    this._default_options = ObjectUtils.cloneDeep(options_controller.default());\\n    this._options = ObjectUtils.cloneDeep(options_controller.current());\\n    this.post_set_options();\\n  }\\n  setOption(name, value) {\\n    this._options[name] = value;\\n    if (this._param.components) {\\n      for (let component of this._param.components) {\\n        component.options.setOption(name, value);\\n      }\\n    }\\n  }\\n  post_set_options() {\\n    this._handleComputeOnDirty();\\n  }\\n  param() {\\n    return this._param;\\n  }\\n  node() {\\n    return this._param.node;\\n  }\\n  default() {\\n    return this._default_options;\\n  }\\n  current() {\\n    return this._options;\\n  }\\n  hasOptionsOverridden() {\\n    return !ObjectUtils.isEqual(this._options, this._default_options);\\n  }\\n  overriddenOptions() {\\n    const overriden = {};\\n    const option_names = Object.keys(this._options);\\n    for (let option_name of option_names) {\\n      if (!ObjectUtils.isEqual(this._options[option_name], this._default_options[option_name])) {\\n        const cloned_option = ObjectUtils.cloneDeep(this._options[option_name]);\\n        Object.assign(overriden, {[option_name]: cloned_option});\\n      }\\n    }\\n    return overriden;\\n  }\\n  overriddenOptionNames() {\\n    return Object.keys(this.overriddenOptions());\\n  }\\n  computeOnDirty() {\\n    return this._options[COMPUTE_ON_DIRTY] || false;\\n  }\\n  _handleComputeOnDirty() {\\n    if (this.computeOnDirty()) {\\n      if (!this._computeOnDirty_callback_added) {\\n        this.param().addPostDirtyHook(\\\\\\\"computeOnDirty\\\\\\\", this._computeParam.bind(this));\\n        this._computeOnDirty_callback_added = true;\\n      }\\n    }\\n  }\\n  async _computeParam() {\\n    await this.param().compute();\\n  }\\n  hasCallback() {\\n    return this._options[CALLBACK_OPTION] != null || this._options[CALLBACK_STRING_OPTION] != null;\\n  }\\n  allowCallback() {\\n    this._callbackAllowed = true;\\n  }\\n  executeCallback() {\\n    if (!this._callbackAllowed) {\\n      return;\\n    }\\n    if (!this.node()) {\\n      return;\\n    }\\n    const callback = this.getCallback();\\n    if (!callback) {\\n      return;\\n    }\\n    if (!this.node().scene().loadingController.loaded()) {\\n      return;\\n    }\\n    const parent_param = this.param().parent_param;\\n    if (parent_param) {\\n      parent_param.options.executeCallback();\\n    } else {\\n      callback(this.node(), this.param());\\n    }\\n  }\\n  getCallback() {\\n    if (this.hasCallback()) {\\n      return this._options[CALLBACK_OPTION] = this._options[CALLBACK_OPTION] || this.createCallbackFromString();\\n    }\\n  }\\n  createCallbackFromString() {\\n    const callbackString = this._options[CALLBACK_STRING_OPTION];\\n    if (callbackString) {\\n      const callback_function = new Function(\\\\\\\"node\\\\\\\", \\\\\\\"scene\\\\\\\", \\\\\\\"window\\\\\\\", \\\\\\\"location\\\\\\\", callbackString);\\n      return () => {\\n        callback_function(this.node(), this.node().scene(), null, null);\\n      };\\n    }\\n  }\\n  colorConversion() {\\n    return this._options[COLOR_CONVERSION];\\n  }\\n  makesNodeDirtyWhenDirty() {\\n    let cook_options;\\n    if (this.param().parent_param != null) {\\n      return false;\\n    }\\n    let value = true;\\n    if ((cook_options = this._options[COOK_OPTION]) != null) {\\n      value = cook_options;\\n    }\\n    return value;\\n  }\\n  fileBrowseOption() {\\n    return this._options[FILE_BROWSE_OPTION];\\n  }\\n  fileBrowseAllowed() {\\n    return this.fileBrowseOption() != null;\\n  }\\n  fileBrowseType() {\\n    const option = this.fileBrowseOption();\\n    if (option) {\\n      return option[FILE_TYPE_OPTION];\\n    } else {\\n      return null;\\n    }\\n  }\\n  separatorBefore() {\\n    return this._options[SEPARATOR_BEFORE_OPTION];\\n  }\\n  separatorAfter() {\\n    return this._options[SEPARATOR_AFTER_OPTION];\\n  }\\n  isExpressionForEntities() {\\n    const expr_option = this._options[EXPRESSION];\\n    if (expr_option) {\\n      return expr_option[FOR_ENTITIES] || false;\\n    }\\n    return false;\\n  }\\n  level() {\\n    return this._options[LEVEL] || 0;\\n  }\\n  hasMenu() {\\n    return this.menuOptions() != null || this.menuStringOptions() != null;\\n  }\\n  menuOptions() {\\n    return this._options[MENU];\\n  }\\n  menuStringOptions() {\\n    return this._options[MENU_STRING];\\n  }\\n  menuEntries() {\\n    const options = this.menuOptions() || this.menuStringOptions();\\n    if (options) {\\n      return options[ENTRIES];\\n    } else {\\n      return [];\\n    }\\n  }\\n  isMultiline() {\\n    return this._options[MULTILINE_OPTION] === true;\\n  }\\n  language() {\\n    return this._options[LANGUAGE_OPTION];\\n  }\\n  isCode() {\\n    return this.language() != null;\\n  }\\n  nodeSelectionOptions() {\\n    return this._options[NODE_SELECTION];\\n  }\\n  nodeSelectionContext() {\\n    const options = this.nodeSelectionOptions();\\n    if (options) {\\n      return options[NODE_SELECTION_CONTEXT];\\n    }\\n  }\\n  nodeSelectionTypes() {\\n    const options = this.nodeSelectionOptions();\\n    if (options) {\\n      return options[NODE_SELECTION_TYPES];\\n    }\\n  }\\n  dependentOnFoundNode() {\\n    if (DEPENDENT_ON_FOUND_NODE in this._options) {\\n      return this._options[DEPENDENT_ON_FOUND_NODE];\\n    } else {\\n      return true;\\n    }\\n  }\\n  isSelectingParam() {\\n    return this.paramSelectionOptions() != null;\\n  }\\n  paramSelectionOptions() {\\n    return this._options[PARAM_SELECTION];\\n  }\\n  paramSelectionType() {\\n    const options = this.paramSelectionOptions();\\n    if (options) {\\n      const type_or_boolean = options;\\n      if (!CoreType.isBoolean(type_or_boolean)) {\\n        return type_or_boolean;\\n      }\\n    }\\n  }\\n  range() {\\n    return this._options[RANGE_OPTION] || [0, 1];\\n  }\\n  step() {\\n    return this._options[STEP_OPTION];\\n  }\\n  rangeLocked() {\\n    return this._options[RANGE_LOCKED_OPTION] || [false, false];\\n  }\\n  ensureInRange(value) {\\n    const range = this.range();\\n    if (value >= range[0] && value <= range[1]) {\\n      return value;\\n    } else {\\n      if (value < range[0]) {\\n        return this.rangeLocked()[0] === true ? range[0] : value;\\n      } else {\\n        return this.rangeLocked()[1] === true ? range[1] : value;\\n      }\\n    }\\n  }\\n  isSpare() {\\n    return this._options[SPARE_OPTION] || false;\\n  }\\n  textureOptions() {\\n    return this._options[TEXTURE_OPTION];\\n  }\\n  textureAsEnv() {\\n    const texture_options = this.textureOptions();\\n    if (texture_options != null) {\\n      return texture_options[ENV_OPTION] === true;\\n    }\\n    return false;\\n  }\\n  isHidden() {\\n    return this._options[HIDDEN_OPTION] === true || this._programatic_visible_state === false;\\n  }\\n  isVisible() {\\n    return !this.isHidden();\\n  }\\n  setVisibleState(state) {\\n    this._options[HIDDEN_OPTION] = !state;\\n    this.param().emit(ParamEvent.VISIBLE_UPDATED);\\n  }\\n  label() {\\n    return this._options[LABEL];\\n  }\\n  isLabelHidden() {\\n    const type = this.param().type();\\n    return type === ParamType.BUTTON || type === ParamType.BOOLEAN && this.isFieldHidden();\\n  }\\n  isFieldHidden() {\\n    return this._options[FIELD_OPTION] === false;\\n  }\\n  uiDataDependsOnOtherParams() {\\n    return VISIBLE_IF_OPTION in this._options;\\n  }\\n  visibilityPredecessors() {\\n    const visibility_options = this._options[VISIBLE_IF_OPTION];\\n    if (!visibility_options) {\\n      return [];\\n    }\\n    let predecessor_names = [];\\n    if (CoreType.isArray(visibility_options)) {\\n      predecessor_names = ArrayUtils.uniq(visibility_options.map((options) => Object.keys(options)).flat());\\n    } else {\\n      predecessor_names = Object.keys(visibility_options);\\n    }\\n    const node = this.param().node;\\n    return ArrayUtils.compact(predecessor_names.map((name) => {\\n      const param = node.params.get(name);\\n      if (param) {\\n        return param;\\n      } else {\\n        console.error(`param ${name} not found as visibility condition for ${this.param().name()} in node ${this.param().node.type()}`);\\n      }\\n    }));\\n  }\\n  setUiDataDependency() {\\n    if (this._ui_data_dependency_set) {\\n      return;\\n    }\\n    this._ui_data_dependency_set = true;\\n    const predecessors = this.visibilityPredecessors();\\n    if (predecessors.length > 0) {\\n      this._visibility_graph_node = new CoreGraphNode(this.param().scene(), \\\\\\\"param_visibility\\\\\\\");\\n      for (let predecessor of predecessors) {\\n        this._visibility_graph_node.addGraphInput(predecessor);\\n      }\\n      this._visibility_graph_node.addPostDirtyHook(\\\\\\\"_update_visibility_and_remove_dirty\\\\\\\", this._updateVisibilityAndRemoveDirtyBound);\\n    }\\n  }\\n  updateVisibilityAndRemoveDirty() {\\n    this.updateVisibility();\\n    this.param().removeDirtyState();\\n  }\\n  async updateVisibility() {\\n    const options = this._options[VISIBLE_IF_OPTION];\\n    if (options) {\\n      const params = this.visibilityPredecessors();\\n      const promises = params.map((p) => {\\n        if (p.isDirty()) {\\n          return p.compute();\\n        }\\n      });\\n      this._programatic_visible_state = false;\\n      await Promise.all(promises);\\n      if (CoreType.isArray(options)) {\\n        for (let options_set of options) {\\n          const satisfied_values = params.filter((param) => param.value == options_set[param.name()]);\\n          if (satisfied_values.length == params.length) {\\n            this._programatic_visible_state = true;\\n          }\\n        }\\n      } else {\\n        const satisfied_values = params.filter((param) => param.value == options[param.name()]);\\n        this._programatic_visible_state = satisfied_values.length == params.length;\\n      }\\n      this.param().emit(ParamEvent.VISIBLE_UPDATED);\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/EmitController.ts\\nvar EmitController = class {\\n  constructor(param) {\\n    this.param = param;\\n    this._blocked_emit = false;\\n    this._blocked_parent_emit = false;\\n    this._count_by_event_name = {};\\n  }\\n  emitAllowed() {\\n    if (this._blocked_emit === true) {\\n      return false;\\n    }\\n    if (this.param.scene().loadingController.isLoading()) {\\n      return false;\\n    }\\n    return this.param.scene().dispatchController.emitAllowed();\\n  }\\n  blockEmit() {\\n    this._blocked_emit = true;\\n    if (this.param.isMultiple() && this.param.components) {\\n      for (let component of this.param.components) {\\n        component.emitController.blockEmit();\\n      }\\n    }\\n    return true;\\n  }\\n  unblockEmit() {\\n    this._blocked_emit = false;\\n    if (this.param.isMultiple() && this.param.components) {\\n      for (let component of this.param.components) {\\n        component.emitController.unblockEmit();\\n      }\\n    }\\n    return true;\\n  }\\n  blockParentEmit() {\\n    this._blocked_parent_emit = true;\\n    return true;\\n  }\\n  unblockParentEmit() {\\n    this._blocked_parent_emit = false;\\n    return true;\\n  }\\n  incrementCount(event_name) {\\n    this._count_by_event_name[event_name] = this._count_by_event_name[event_name] || 0;\\n    this._count_by_event_name[event_name] += 1;\\n  }\\n  eventsCount(event_name) {\\n    return this._count_by_event_name[event_name] || 0;\\n  }\\n  emit(event) {\\n    if (this.emitAllowed()) {\\n      this.param.emit(event);\\n      if (this.param.parent_param != null && this._blocked_parent_emit !== true) {\\n        this.param.parent_param.emit(event);\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/Serializer.ts\\nvar ParamSerializer = class {\\n  constructor(param) {\\n    this.param = param;\\n  }\\n  toJSON() {\\n    const data = {\\n      name: this.param.name(),\\n      type: this.param.type(),\\n      raw_input: this.rawInput(),\\n      value: this.value(),\\n      value_pre_conversion: this.value_pre_conversion(),\\n      expression: this.expression(),\\n      graph_node_id: this.param.graphNodeId(),\\n      error_message: this.error_message(),\\n      is_visible: this.is_visible(),\\n      components: void 0\\n    };\\n    if (this.param.isMultiple() && this.param.components) {\\n      data[\\\\\\\"components\\\\\\\"] = this.param.components.map((component) => component.graphNodeId());\\n    }\\n    return data;\\n  }\\n  rawInput() {\\n    return this.param.rawInputSerialized();\\n  }\\n  value() {\\n    return this.param.valueSerialized();\\n  }\\n  value_pre_conversion() {\\n    return this.param.valuePreConversionSerialized();\\n  }\\n  expression() {\\n    return this.param.hasExpression() ? this.param.expressionController?.expression() : void 0;\\n  }\\n  error_message() {\\n    return this.param.states.error.message();\\n  }\\n  is_visible() {\\n    return this.param.options.isVisible();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/states/TimeDependent.ts\\nvar TimeDependentState2 = class {\\n  constructor(param) {\\n    this.param = param;\\n  }\\n  active() {\\n    const frame_graph_node_id = this.param.scene().timeController.graphNode.graphNodeId();\\n    return this.param.graphPredecessorIds().includes(frame_graph_node_id);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/states/Error.ts\\nvar ParamErrorState = class {\\n  constructor(param) {\\n    this.param = param;\\n  }\\n  set(message) {\\n    if (this._message != message) {\\n      this._message = message;\\n      if (this._message) {\\n        Poly.warn(this.param.path(), this._message);\\n      }\\n      this.param.emitController.emit(ParamEvent.ERROR_UPDATED);\\n    }\\n  }\\n  message() {\\n    return this._message;\\n  }\\n  clear() {\\n    this.set(void 0);\\n  }\\n  active() {\\n    return this._message != null;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/StatesController.ts\\nvar StatesController2 = class {\\n  constructor(param) {\\n    this.param = param;\\n    this.timeDependent = new TimeDependentState2(this.param);\\n    this.error = new ParamErrorState(this.param);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/MethodDependency.ts\\nvar MethodDependency = class extends CoreGraphNode {\\n  constructor(param, path_argument, decomposed_path) {\\n    super(param.scene(), \\\\\\\"MethodDependency\\\\\\\");\\n    this.param = param;\\n    this.path_argument = path_argument;\\n    this.decomposed_path = decomposed_path;\\n    this._update_from_name_change_bound = this._update_from_name_change.bind(this);\\n    param.expressionController?.registerMethodDependency(this);\\n    this.addPostDirtyHook(\\\\\\\"_update_from_name_change\\\\\\\", this._update_from_name_change_bound);\\n  }\\n  _update_from_name_change(trigger) {\\n    if (trigger && this.decomposed_path) {\\n      const node = trigger;\\n      this.decomposed_path.update_from_name_change(node);\\n      const new_path = this.decomposed_path.to_path();\\n      const literal = this.jsep_node;\\n      if (literal) {\\n        literal.value = `${literal.value}`.replace(`${this.path_argument}`, new_path);\\n        literal.raw = literal.raw.replace(`${this.path_argument}`, new_path);\\n      }\\n      if (this.param.expressionController) {\\n        this.param.expressionController.updateFromMethodDependencyNameChange();\\n      }\\n    }\\n  }\\n  reset() {\\n    this.graphDisconnectPredecessors();\\n  }\\n  listen_for_name_changes() {\\n    if (this.jsep_node && this.decomposed_path) {\\n      for (let node_in_path of this.decomposed_path.named_nodes()) {\\n        if (node_in_path) {\\n          const node = node_in_path;\\n          if (node.nameController) {\\n            this.addGraphInput(node.nameController.graph_node);\\n          }\\n        }\\n      }\\n    }\\n  }\\n  set_jsep_node(jsep_node) {\\n    this.jsep_node = jsep_node;\\n  }\\n  set_resolved_graph_node(node) {\\n    this.resolved_graph_node = node;\\n  }\\n  set_unresolved_path(path) {\\n    this.unresolved_path = path;\\n  }\\n  static create(param, index_or_path, node, decomposed_path) {\\n    const is_index = CoreType.isNumber(index_or_path);\\n    const instance = new MethodDependency(param, index_or_path, decomposed_path);\\n    if (node) {\\n      instance.set_resolved_graph_node(node);\\n    } else {\\n      if (!is_index) {\\n        const path = index_or_path;\\n        instance.set_unresolved_path(path);\\n      }\\n    }\\n    return instance;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/_Base.ts\\nvar TYPED_PARAM_DEFAULT_COMPONENT_NAMES = [];\\nvar TypedParam = class extends CoreGraphNode {\\n  constructor(scene, node) {\\n    super(scene, \\\\\\\"BaseParam\\\\\\\");\\n    this._options = new OptionsController(this);\\n    this._emit_controller = new EmitController(this);\\n    this._is_computing = false;\\n    this._node = node;\\n    this.initialize_param();\\n  }\\n  get options() {\\n    return this._options = this._options || new OptionsController(this);\\n  }\\n  get emitController() {\\n    return this._emit_controller = this._emit_controller || new EmitController(this);\\n  }\\n  get expressionController() {\\n    return this._expression_controller;\\n  }\\n  get serializer() {\\n    return this._serializer = this._serializer || new ParamSerializer(this);\\n  }\\n  get states() {\\n    return this._states = this._states || new StatesController2(this);\\n  }\\n  dispose() {\\n    const predecessors = this.graphPredecessors();\\n    for (let predecessor of predecessors) {\\n      if (predecessor instanceof MethodDependency) {\\n        predecessor.dispose();\\n      }\\n    }\\n    this.scene().missingExpressionReferencesController.deregisterParam(this);\\n    this._expression_controller?.dispose();\\n    super.dispose();\\n    this._options?.dispose();\\n  }\\n  initialize_param() {\\n  }\\n  static type() {\\n    return ParamType.FLOAT;\\n  }\\n  type() {\\n    return this.constructor.type();\\n  }\\n  isNumeric() {\\n    return false;\\n  }\\n  setName(name) {\\n    super.setName(name);\\n  }\\n  get value() {\\n    return this._value;\\n  }\\n  copy_value(param) {\\n    if (param.type() == this.type()) {\\n      this._copy_value(param);\\n    } else {\\n      console.warn(`cannot copy value from ${param.type()} to ${this.type()}`);\\n    }\\n  }\\n  _copy_value(param) {\\n    throw \\\\\\\"abstract method param._copy_value\\\\\\\";\\n  }\\n  valuePreConversionSerialized() {\\n    return void 0;\\n  }\\n  convert(raw_val) {\\n    return null;\\n  }\\n  static are_raw_input_equal(val1, val2) {\\n    return false;\\n  }\\n  is_raw_input_equal(other_raw_input) {\\n    return this.constructor.are_raw_input_equal(this._raw_input, other_raw_input);\\n  }\\n  static are_values_equal(val1, val2) {\\n    return false;\\n  }\\n  is_value_equal(other_val) {\\n    return this.constructor.are_values_equal(this.value, other_val);\\n  }\\n  _clone_raw_input(raw_input) {\\n    return raw_input;\\n  }\\n  set(raw_input) {\\n    this._raw_input = this._clone_raw_input(this._prefilter_invalid_raw_input(raw_input));\\n    this.emitController.emit(ParamEvent.RAW_INPUT_UPDATED);\\n    this.processRawInput();\\n  }\\n  _prefilter_invalid_raw_input(raw_input) {\\n    return raw_input;\\n  }\\n  defaultValue() {\\n    return this._default_value;\\n  }\\n  isDefault() {\\n    return this._raw_input == this._default_value;\\n  }\\n  rawInput() {\\n    return this._raw_input;\\n  }\\n  processRawInput() {\\n  }\\n  async compute() {\\n    if (this.scene().loadingController.isLoading()) {\\n      console.warn(`param attempt to compute ${this.path()}`);\\n    }\\n    if (this.isDirty()) {\\n      if (!this._is_computing) {\\n        this._is_computing = true;\\n        await this.processComputation();\\n        this._is_computing = false;\\n        if (this._compute_resolves) {\\n          let callback;\\n          while (callback = this._compute_resolves.pop()) {\\n            callback();\\n          }\\n        }\\n      } else {\\n        return new Promise((resolve, reject) => {\\n          this._compute_resolves = this._compute_resolves || [];\\n          this._compute_resolves.push(resolve);\\n        });\\n      }\\n    }\\n  }\\n  async processComputation() {\\n  }\\n  setInitValue(init_value) {\\n    this._default_value = this._clone_raw_input(this._prefilter_invalid_raw_input(init_value));\\n  }\\n  _setupNodeDependencies(node) {\\n    if (!node) {\\n      if (this._node) {\\n        this._node.params.params_node?.removeGraphInput(this);\\n      }\\n    } else {\\n      this.options.allowCallback();\\n      if (!this.parent_param) {\\n        if (this.options.makesNodeDirtyWhenDirty()) {\\n          node.params.params_node?.addGraphInput(this, false);\\n        } else {\\n          this.dirtyController.addPostDirtyHook(\\\\\\\"run callback\\\\\\\", async () => {\\n            await this.compute();\\n            this.options.executeCallback();\\n          });\\n        }\\n      }\\n    }\\n    if (this.components) {\\n      for (let c of this.components) {\\n        c._setupNodeDependencies(node);\\n      }\\n    }\\n  }\\n  get node() {\\n    return this._node;\\n  }\\n  parent() {\\n    return this.node;\\n  }\\n  set_parent_param(param) {\\n    param.addGraphInput(this, false);\\n    this._parent_param = param;\\n  }\\n  get parent_param() {\\n    return this._parent_param;\\n  }\\n  has_parent_param() {\\n    return this._parent_param != null;\\n  }\\n  path() {\\n    return this.node?.path() + \\\\\\\"/\\\\\\\" + this.name();\\n  }\\n  pathRelativeTo(node) {\\n    const nodeRelativePath = CoreWalker.relativePath(node, this.node);\\n    if (nodeRelativePath.length > 0) {\\n      return `${nodeRelativePath}${CoreWalker.SEPARATOR}${this.name()}`;\\n    } else {\\n      return this.name();\\n    }\\n  }\\n  emit(event_name) {\\n    if (this.emitController.emitAllowed()) {\\n      this.emitController.incrementCount(event_name);\\n      this.scene().dispatchController.dispatch(this, event_name);\\n    }\\n  }\\n  get components() {\\n    return this._components;\\n  }\\n  componentNames() {\\n    return TYPED_PARAM_DEFAULT_COMPONENT_NAMES;\\n  }\\n  isMultiple() {\\n    return this.componentNames().length > 0;\\n  }\\n  initComponents() {\\n  }\\n  hasExpression() {\\n    return this.expressionController != null && this.expressionController.active();\\n  }\\n  toJSON() {\\n    return this.serializer.toJSON();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/traversers/ParsedTree.ts\\nvar import_jsep = __toModule(require_jsep());\\nimport_jsep.default.addUnaryOp(\\\\\\\"@\\\\\\\");\\nvar precedence = 10;\\nimport_jsep.default.addBinaryOp(\\\\\\\"**\\\\\\\", precedence);\\nvar JSEP_IDENTIFIER = \\\\\\\"Identifier\\\\\\\";\\nvar JSEP_LITERAL = \\\\\\\"Literal\\\\\\\";\\nvar JSEP_CALL_EXPRESSION = \\\\\\\"CallExpression\\\\\\\";\\nvar STRING_EXPRESSION_SEPARATOR = \\\\\\\"`\\\\\\\";\\nvar ParsedTree = class {\\n  constructor() {\\n  }\\n  parse_expression(string) {\\n    try {\\n      this.reset();\\n      this.node = import_jsep.default(string);\\n    } catch (e) {\\n      const message = `could not parse the expression '${string}' (error: ${e})`;\\n      this.error_message = message;\\n    }\\n  }\\n  parse_expression_for_string_param(string) {\\n    try {\\n      this.reset();\\n      const elements = ParsedTree.string_value_elements(string);\\n      const nodes = [];\\n      for (let i = 0; i < elements.length; i++) {\\n        const element = elements[i];\\n        let node;\\n        if (i % 2 == 1) {\\n          node = import_jsep.default(element);\\n        } else {\\n          const sanitizedElement = element.replace(/\\\\'/g, \\\\\\\"\\\\\\\\'\\\\\\\");\\n          node = {\\n            type: JSEP_LITERAL,\\n            value: `'${sanitizedElement}'`,\\n            raw: `'${sanitizedElement}'`\\n          };\\n        }\\n        nodes.push(node);\\n      }\\n      this.node = {\\n        type: JSEP_CALL_EXPRESSION,\\n        arguments: nodes,\\n        callee: {\\n          type: JSEP_IDENTIFIER,\\n          name: \\\\\\\"strConcat\\\\\\\"\\n        }\\n      };\\n    } catch (e) {\\n      const message = `could not parse the expression '${string}' (error: ${e})`;\\n      this.error_message = message;\\n    }\\n  }\\n  static string_value_elements(v) {\\n    if (v != null) {\\n      if (CoreType.isString(v)) {\\n        return v.split(STRING_EXPRESSION_SEPARATOR);\\n      } else {\\n        return [];\\n      }\\n    } else {\\n      return [];\\n    }\\n  }\\n  reset() {\\n    this.node = void 0;\\n    this.error_message = void 0;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/LiteralConstructsController.ts\\nvar LiteralConstructsController = class {\\n  static if(args) {\\n    const condition = args[0];\\n    const val_true = args[1];\\n    const val_false = args[2];\\n    return `(${condition}) ? (${val_true}) : (${val_false})`;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/traversers/_Base.ts\\nvar VARIABLE_PREFIX = \\\\\\\"$\\\\\\\";\\nvar BaseTraverser = class {\\n  constructor(param) {\\n    this.param = param;\\n    this._set_error_from_error_bound = this._set_error_from_error.bind(this);\\n  }\\n  clear_error() {\\n    this._error_message = void 0;\\n  }\\n  set_error(message) {\\n    this._error_message = this._error_message || message;\\n  }\\n  _set_error_from_error(error) {\\n    if (CoreType.isString(error)) {\\n      this._error_message = error;\\n    } else {\\n      this._error_message = error.message;\\n    }\\n  }\\n  is_errored() {\\n    return this._error_message != null;\\n  }\\n  error_message() {\\n    return this._error_message;\\n  }\\n  reset() {\\n    this._error_message = void 0;\\n  }\\n  traverse_node(node) {\\n    const method_name = `traverse_${node.type}`;\\n    const method = this[method_name];\\n    if (method) {\\n      return this[method_name](node);\\n    } else {\\n      this.set_error(`expression unknown node type: ${node.type}`);\\n    }\\n  }\\n  traverse_BinaryExpression(node) {\\n    return `${this.traverse_node(node.left)} ${node.operator} ${this.traverse_node(node.right)}`;\\n  }\\n  traverse_LogicalExpression(node) {\\n    return `${this.traverse_node(node.left)} ${node.operator} ${this.traverse_node(node.right)}`;\\n  }\\n  traverse_MemberExpression(node) {\\n    return `${this.traverse_node(node.object)}.${this.traverse_node(node.property)}`;\\n  }\\n  traverse_ConditionalExpression(node) {\\n    return `(${this.traverse_node(node.test)}) ? (${this.traverse_node(node.consequent)}) : (${this.traverse_node(node.alternate)})`;\\n  }\\n  traverse_Compound(node) {\\n    const args = node.body;\\n    let traversed_args = [];\\n    for (let i = 0; i < args.length; i++) {\\n      const arg_node = args[i];\\n      if (arg_node.type == \\\\\\\"Identifier\\\\\\\") {\\n        if (arg_node.name[0] == VARIABLE_PREFIX) {\\n          traversed_args.push(\\\\\\\"`${\\\\\\\" + this.traverse_node(arg_node) + \\\\\\\"}`\\\\\\\");\\n        } else {\\n          traversed_args.push(`'${arg_node.name}'`);\\n        }\\n      } else {\\n        traversed_args.push(\\\\\\\"`${\\\\\\\" + this.traverse_node(arg_node) + \\\\\\\"}`\\\\\\\");\\n      }\\n    }\\n    return traversed_args.join(\\\\\\\" + \\\\\\\");\\n  }\\n  traverse_Literal(node) {\\n    return `${node.raw}`;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/AttributeRequirementsController.ts\\nvar VAR_CORE_GEOMETRY = `coreGeometry`;\\nvar AttributeRequirementsController = class {\\n  constructor() {\\n  }\\n  reset() {\\n    if (this._attributeNames) {\\n      this._attributeNames.clear();\\n    }\\n  }\\n  assignAttributesLines() {\\n    if (this._attributeNames) {\\n      const lines = [];\\n      for (let attribName of this._attributeNames) {\\n        lines.push(AttributeRequirementsController.assignAttributeLine(attribName));\\n      }\\n      return lines.join(\\\\\\\";\\\\n\\\\\\\");\\n    } else {\\n      return \\\\\\\"\\\\\\\";\\n    }\\n  }\\n  assignArraysLines() {\\n    if (this._attributeNames) {\\n      const lines = [];\\n      if (this._attributeNames.size > 0) {\\n        const coreGeoLine = `const ${VAR_CORE_GEOMETRY} = entities[0].coreGeometry();`;\\n        lines.push(coreGeoLine);\\n      }\\n      for (let attribName of this._attributeNames) {\\n        lines.push(AttributeRequirementsController.assignItemSizeLine(attribName));\\n        lines.push(AttributeRequirementsController.assignArrayLine(attribName));\\n      }\\n      return lines.join(\\\\\\\";\\\\n\\\\\\\");\\n    } else {\\n      return \\\\\\\"\\\\\\\";\\n    }\\n  }\\n  attributePresenceCheckLine() {\\n    if (this._attributeNames) {\\n      const varNames = [];\\n      for (let attribName of this._attributeNames) {\\n        const varName = AttributeRequirementsController._varAttribute(attribName);\\n        varNames.push(varName);\\n      }\\n      if (varNames.length > 0) {\\n        return varNames.join(\\\\\\\" && \\\\\\\");\\n      }\\n    }\\n    return \\\\\\\"true\\\\\\\";\\n  }\\n  add(attribName) {\\n    this._attributeNames = this._attributeNames || new Set();\\n    this._attributeNames.add(attribName);\\n  }\\n  static assignAttributeLine(attribName) {\\n    const varAttribute = this._varAttribute(attribName);\\n    return `const ${varAttribute} = entities[0].geometry().attributes['${attribName}']`;\\n  }\\n  static assignItemSizeLine(attribName) {\\n    const varAttribute = this._varAttribute(attribName);\\n    const varAttributeSize = this._varAttribSize(attribName);\\n    return `const ${varAttributeSize} = ${varAttribute}.itemSize`;\\n  }\\n  static assignArrayLine(attribName) {\\n    const varAttribute = this._varAttribute(attribName);\\n    const varArray = this._varArray(attribName);\\n    const isIndexedCondition = `${VAR_CORE_GEOMETRY}.isAttribIndexed('${attribName}')`;\\n    const indexedArray = `entities.map(e=>e.indexedAttribValue('${attribName}'))`;\\n    const nonIndexedArray = `${varAttribute}.array`;\\n    return `const ${varArray} = ${isIndexedCondition} ? ${indexedArray} : ${nonIndexedArray}`;\\n  }\\n  static _varAttribute(attribName) {\\n    return `attrib_${attribName}`;\\n  }\\n  static _varAttribSize(attribName) {\\n    return `attrib_size_${attribName}`;\\n  }\\n  static _varArray(attribName) {\\n    return `array_${attribName}`;\\n  }\\n  varAttributeSize(attribName) {\\n    return AttributeRequirementsController._varAttribSize(attribName);\\n  }\\n  varArray(attribName) {\\n    return AttributeRequirementsController._varArray(attribName);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/traversers/FunctionGenerator.ts\\nvar NATIVE_MATH_METHODS = [\\n  \\\\\\\"abs\\\\\\\",\\n  \\\\\\\"acos\\\\\\\",\\n  \\\\\\\"acosh\\\\\\\",\\n  \\\\\\\"asin\\\\\\\",\\n  \\\\\\\"asinh\\\\\\\",\\n  \\\\\\\"atan\\\\\\\",\\n  \\\\\\\"atan2\\\\\\\",\\n  \\\\\\\"atanh\\\\\\\",\\n  \\\\\\\"ceil\\\\\\\",\\n  \\\\\\\"cos\\\\\\\",\\n  \\\\\\\"cosh\\\\\\\",\\n  \\\\\\\"exp\\\\\\\",\\n  \\\\\\\"expm1\\\\\\\",\\n  \\\\\\\"floor\\\\\\\",\\n  \\\\\\\"log\\\\\\\",\\n  \\\\\\\"log1p\\\\\\\",\\n  \\\\\\\"log2\\\\\\\",\\n  \\\\\\\"log10\\\\\\\",\\n  \\\\\\\"max\\\\\\\",\\n  \\\\\\\"min\\\\\\\",\\n  \\\\\\\"pow\\\\\\\",\\n  \\\\\\\"round\\\\\\\",\\n  \\\\\\\"sign\\\\\\\",\\n  \\\\\\\"sin\\\\\\\",\\n  \\\\\\\"sinh\\\\\\\",\\n  \\\\\\\"sqrt\\\\\\\",\\n  \\\\\\\"tan\\\\\\\",\\n  \\\\\\\"tanh\\\\\\\"\\n];\\nvar NATIVE_ES6_MATH_METHODS = [\\\\\\\"cbrt\\\\\\\", \\\\\\\"hypot\\\\\\\", \\\\\\\"log10\\\\\\\", \\\\\\\"trunc\\\\\\\"];\\nvar NATIVE_MATH_METHODS_RENAMED = {\\n  math_random: \\\\\\\"random\\\\\\\"\\n};\\nvar CORE_MATH_METHODS = [\\\\\\\"fit\\\\\\\", \\\\\\\"fit01\\\\\\\", \\\\\\\"fract\\\\\\\", \\\\\\\"deg2rad\\\\\\\", \\\\\\\"rad2deg\\\\\\\", \\\\\\\"rand\\\\\\\", \\\\\\\"clamp\\\\\\\"];\\nvar EASING_METHODS = Object.keys(Easing);\\nvar CORE_STRING_METHODS = [\\\\\\\"precision\\\\\\\"];\\nvar NATIVE_MATH_CONSTANTS = [\\\\\\\"E\\\\\\\", \\\\\\\"LN2\\\\\\\", \\\\\\\"LN10\\\\\\\", \\\\\\\"LOG10E\\\\\\\", \\\\\\\"LOG2E\\\\\\\", \\\\\\\"PI\\\\\\\", \\\\\\\"SQRT1_2\\\\\\\", \\\\\\\"SQRT2\\\\\\\"];\\nvar DIRECT_EXPRESSION_FUNCTIONS = {};\\nNATIVE_MATH_METHODS.forEach((name) => {\\n  DIRECT_EXPRESSION_FUNCTIONS[name] = `Math.${name}`;\\n});\\nNATIVE_ES6_MATH_METHODS.forEach((name) => {\\n  DIRECT_EXPRESSION_FUNCTIONS[name] = `Math.${name}`;\\n});\\nObject.keys(NATIVE_MATH_METHODS_RENAMED).forEach((name) => {\\n  const remaped = NATIVE_MATH_METHODS_RENAMED[name];\\n  DIRECT_EXPRESSION_FUNCTIONS[name] = `Math.${remaped}`;\\n});\\nCORE_MATH_METHODS.forEach((name) => {\\n  DIRECT_EXPRESSION_FUNCTIONS[name] = `Core.Math.${name}`;\\n});\\nEASING_METHODS.forEach((name) => {\\n  DIRECT_EXPRESSION_FUNCTIONS[name] = `Core.Math.Easing.${name}`;\\n});\\nCORE_STRING_METHODS.forEach((name) => {\\n  DIRECT_EXPRESSION_FUNCTIONS[name] = `Core.String.${name}`;\\n});\\nvar LITERAL_CONSTRUCT = {\\n  if: LiteralConstructsController.if\\n};\\nvar GLOBAL_CONSTANTS = {};\\nNATIVE_MATH_CONSTANTS.forEach((name) => {\\n  GLOBAL_CONSTANTS[name] = `Math.${name}`;\\n});\\nvar QUOTE = \\\\\\\"'\\\\\\\";\\nvar ARGUMENTS_SEPARATOR = \\\\\\\", \\\\\\\";\\nvar ATTRIBUTE_PREFIX = \\\\\\\"@\\\\\\\";\\nvar PROPERTY_OFFSETS = {\\n  x: 0,\\n  y: 1,\\n  z: 2,\\n  w: 3,\\n  r: 0,\\n  g: 1,\\n  b: 2\\n};\\nvar FunctionGenerator = class extends BaseTraverser {\\n  constructor(param) {\\n    super(param);\\n    this.param = param;\\n    this._attribute_requirements_controller = new AttributeRequirementsController();\\n    this.methods = [];\\n    this.method_index = -1;\\n    this.method_dependencies = [];\\n    this.immutable_dependencies = [];\\n  }\\n  parse_tree(parsed_tree) {\\n    this.reset();\\n    if (parsed_tree.error_message == null) {\\n      try {\\n        this._attribute_requirements_controller = new AttributeRequirementsController();\\n        if (parsed_tree.node) {\\n          const function_main_string = this.traverse_node(parsed_tree.node);\\n          if (function_main_string && !this.is_errored()) {\\n            this.function_main_string = function_main_string;\\n          }\\n        } else {\\n          console.warn(\\\\\\\"no parsed_tree.node\\\\\\\");\\n        }\\n      } catch (e) {\\n        console.warn(`error in expression for param ${this.param.path()}`);\\n        console.warn(e);\\n      }\\n      if (this.function_main_string) {\\n        try {\\n          const body = this._functionBody();\\n          this.function = new Function(\\\\\\\"Core\\\\\\\", \\\\\\\"param\\\\\\\", \\\\\\\"methods\\\\\\\", \\\\\\\"_set_error_from_error\\\\\\\", `\\n\\t\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\t\\t${body}\\n\\t\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\t\\t_set_error_from_error(e)\\n\\t\\t\\t\\t\\t\\treturn null;\\n\\t\\t\\t\\t\\t}`);\\n        } catch (e) {\\n          console.warn(e);\\n          this.set_error(\\\\\\\"cannot generate function\\\\\\\");\\n        }\\n      } else {\\n        this.set_error(\\\\\\\"cannot generate function body\\\\\\\");\\n      }\\n    } else {\\n      this.set_error(\\\\\\\"cannot parse expression\\\\\\\");\\n    }\\n  }\\n  reset() {\\n    super.reset();\\n    this.function_main_string = void 0;\\n    this.methods = [];\\n    this.method_index = -1;\\n    this.function = void 0;\\n    this.method_dependencies = [];\\n    this.immutable_dependencies = [];\\n  }\\n  _functionBody() {\\n    if (this.param.options.isExpressionForEntities()) {\\n      return `\\n\\t\\t\\tconst entities = param.expressionController.entities();\\n\\t\\t\\tif(entities){\\n\\t\\t\\t\\treturn new Promise( async (resolve, reject)=>{\\n\\t\\t\\t\\t\\tlet entity;\\n\\t\\t\\t\\t\\tconst entity_callback = param.expressionController.entity_callback();\\n\\t\\t\\t\\t\\t// assign_attributes_lines\\n\\t\\t\\t\\t\\t${this._attribute_requirements_controller.assignAttributesLines()}\\n\\t\\t\\t\\t\\t// check if attributes are present\\n\\t\\t\\t\\t\\tif( ${this._attribute_requirements_controller.attributePresenceCheckLine()} ){\\n\\t\\t\\t\\t\\t\\t// assign_arrays_lines\\n\\t\\t\\t\\t\\t\\t${this._attribute_requirements_controller.assignArraysLines()}\\n\\t\\t\\t\\t\\t\\tfor(let index=0; index < entities.length; index++){\\n\\t\\t\\t\\t\\t\\t\\tentity = entities[index];\\n\\t\\t\\t\\t\\t\\t\\tresult = ${this.function_main_string};\\n\\t\\t\\t\\t\\t\\t\\tentity_callback(entity, result);\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\tresolve()\\n\\t\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t\\tconst error = new Error('attribute not found')\\n\\t\\t\\t\\t\\t\\t_set_error_from_error(error)\\n\\t\\t\\t\\t\\t\\treject(error)\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t\\treturn []`;\\n    } else {\\n      return `\\n\\t\\t\\treturn new Promise( async (resolve, reject)=>{\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\tconst value = ${this.function_main_string}\\n\\t\\t\\t\\t\\tresolve(value)\\n\\t\\t\\t\\t} catch(e) {\\n\\t\\t\\t\\t\\t_set_error_from_error(e)\\n\\t\\t\\t\\t\\treject()\\n\\t\\t\\t\\t}\\n\\t\\t\\t})\\n\\t\\t\\t`;\\n    }\\n  }\\n  evalAllowed() {\\n    return this.function != null;\\n  }\\n  evalFunction() {\\n    if (this.function) {\\n      this.clear_error();\\n      const Core = {\\n        Math: CoreMath,\\n        String: CoreString\\n      };\\n      const result = this.function(Core, this.param, this.methods, this._set_error_from_error_bound);\\n      return result;\\n    }\\n  }\\n  traverse_CallExpression(node) {\\n    const method_arguments = node.arguments.map((arg) => {\\n      return this.traverse_node(arg);\\n    });\\n    const callee = node.callee;\\n    const method_name = callee.name;\\n    if (method_name) {\\n      const literal_contruct = LITERAL_CONSTRUCT[method_name];\\n      if (literal_contruct) {\\n        return literal_contruct(method_arguments);\\n      }\\n      const arguments_joined = `${method_arguments.join(ARGUMENTS_SEPARATOR)}`;\\n      const direct_function_name = DIRECT_EXPRESSION_FUNCTIONS[method_name];\\n      if (direct_function_name) {\\n        return `${direct_function_name}(${arguments_joined})`;\\n      }\\n      const expressionRegister = Poly.expressionsRegister;\\n      const indirect_method = expressionRegister.getMethod(method_name);\\n      if (indirect_method) {\\n        const path_node = node.arguments[0];\\n        const function_string = `return ${method_arguments[0]}`;\\n        let path_argument_function;\\n        let path_argument = [];\\n        try {\\n          path_argument_function = new Function(function_string);\\n          path_argument = path_argument_function();\\n        } catch {\\n        }\\n        this._create_method_and_dependencies(method_name, path_argument, path_node);\\n        return `(await methods[${this.method_index}].processArguments([${arguments_joined}]))`;\\n      } else {\\n        const available_methods = expressionRegister.availableMethods().join(\\\\\\\", \\\\\\\");\\n        const message = `method not found (${method_name}), available methods are: ${available_methods}`;\\n        Poly.warn(message);\\n      }\\n    }\\n    this.set_error(`unknown method: ${method_name}`);\\n  }\\n  traverse_BinaryExpression(node) {\\n    return `(${this.traverse_node(node.left)} ${node.operator} ${this.traverse_node(node.right)})`;\\n  }\\n  traverse_LogicalExpression(node) {\\n    return `(${this.traverse_node(node.left)} ${node.operator} ${this.traverse_node(node.right)})`;\\n  }\\n  traverse_MemberExpression(node) {\\n    return `${this.traverse_node(node.object)}.${this.traverse_node(node.property)}`;\\n  }\\n  traverse_UnaryExpression(node) {\\n    if (node.operator === ATTRIBUTE_PREFIX) {\\n      let argument = node.argument;\\n      let attribute_name;\\n      let property;\\n      switch (argument.type) {\\n        case \\\\\\\"Identifier\\\\\\\": {\\n          const argument_identifier = argument;\\n          attribute_name = argument_identifier.name;\\n          break;\\n        }\\n        case \\\\\\\"MemberExpression\\\\\\\": {\\n          const argument_member_expression = argument;\\n          const attrib_node = argument_member_expression.object;\\n          const property_node = argument_member_expression.property;\\n          attribute_name = attrib_node.name;\\n          property = property_node.name;\\n          break;\\n        }\\n      }\\n      if (attribute_name) {\\n        attribute_name = CoreAttribute.remapName(attribute_name);\\n        if (attribute_name == \\\\\\\"ptnum\\\\\\\") {\\n          return \\\\\\\"((entity != null) ? entity.index() : 0)\\\\\\\";\\n        } else {\\n          const var_attribute_size = this._attribute_requirements_controller.varAttributeSize(attribute_name);\\n          const var_array = this._attribute_requirements_controller.varArray(attribute_name);\\n          this._attribute_requirements_controller.add(attribute_name);\\n          if (property) {\\n            const property_offset = PROPERTY_OFFSETS[property];\\n            return `${var_array}[entity.index()*${var_attribute_size}+${property_offset}]`;\\n          } else {\\n            return `${var_array}[entity.index()*${var_attribute_size}]`;\\n          }\\n        }\\n      } else {\\n        console.warn(\\\\\\\"attribute not found\\\\\\\");\\n        return \\\\\\\"\\\\\\\";\\n      }\\n    } else {\\n      return `${node.operator}${this.traverse_node(node.argument)}`;\\n    }\\n  }\\n  traverse_Literal(node) {\\n    return `${node.raw}`;\\n  }\\n  traverse_Identifier(node) {\\n    const identifier_first_char = node.name[0];\\n    if (identifier_first_char == VARIABLE_PREFIX) {\\n      const identifier_name_without_dollar_sign = node.name.substr(1);\\n      const direct_constant_name = GLOBAL_CONSTANTS[identifier_name_without_dollar_sign];\\n      if (direct_constant_name) {\\n        return direct_constant_name;\\n      }\\n      const method_name = `traverse_Identifier_${identifier_name_without_dollar_sign}`;\\n      const method = this[method_name];\\n      if (method) {\\n        return this[method_name]();\\n      } else {\\n        this.set_error(`identifier unknown: ${node.name}`);\\n      }\\n    } else {\\n      return node.name;\\n    }\\n  }\\n  traverse_Identifier_F() {\\n    this.immutable_dependencies.push(this.param.scene().timeController.graphNode);\\n    return `param.scene().timeController.frame()`;\\n  }\\n  traverse_Identifier_T() {\\n    this.immutable_dependencies.push(this.param.scene().timeController.graphNode);\\n    return `param.scene().timeController.time()`;\\n  }\\n  traverse_Identifier_OS() {\\n    return `${QUOTE}${this.param.node.name()}${QUOTE}`;\\n  }\\n  traverse_Identifier_CH() {\\n    return `${QUOTE}${this.param.name()}${QUOTE}`;\\n  }\\n  traverse_Identifier_CEX() {\\n    return this._method_centroid(\\\\\\\"x\\\\\\\");\\n  }\\n  traverse_Identifier_CEY() {\\n    return this._method_centroid(\\\\\\\"y\\\\\\\");\\n  }\\n  traverse_Identifier_CEZ() {\\n    return this._method_centroid(\\\\\\\"z\\\\\\\");\\n  }\\n  _method_centroid(component) {\\n    const method_arguments = [0, `${QUOTE}${component}${QUOTE}`];\\n    const arguments_joined = method_arguments.join(ARGUMENTS_SEPARATOR);\\n    this._create_method_and_dependencies(\\\\\\\"centroid\\\\\\\", 0);\\n    return `(await methods[${this.method_index}].processArguments([${arguments_joined}]))`;\\n  }\\n  _create_method_and_dependencies(method_name, path_argument, path_node) {\\n    const expressionRegister = Poly.expressionsRegister;\\n    const method_constructor = expressionRegister.getMethod(method_name);\\n    if (!method_constructor) {\\n      const available_methods = expressionRegister.availableMethods();\\n      const message = `method not found (${method_name}), available methods are: ${available_methods.join(\\\\\\\", \\\\\\\")}`;\\n      this.set_error(message);\\n      Poly.warn(message);\\n      return;\\n    }\\n    const method = new method_constructor(this.param);\\n    this.method_index += 1;\\n    this.methods[this.method_index] = method;\\n    if (method.require_dependency()) {\\n      const method_dependency = method.findDependency(path_argument);\\n      if (method_dependency) {\\n        if (path_node) {\\n          method_dependency.set_jsep_node(path_node);\\n        }\\n        this.method_dependencies.push(method_dependency);\\n      } else {\\n        if (path_node && CoreType.isString(path_argument)) {\\n          this.param.scene().missingExpressionReferencesController.register(this.param, path_argument);\\n        }\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/traversers/ExpressionStringGenerator.ts\\nvar ARGUMENTS_SEPARATOR2 = \\\\\\\", \\\\\\\";\\nvar ExpressionStringGenerator = class extends BaseTraverser {\\n  constructor(param) {\\n    super(param);\\n    this.param = param;\\n  }\\n  parse_tree(parsed_tree) {\\n    if (parsed_tree.error_message == null && parsed_tree.node) {\\n      try {\\n        return this.traverse_node(parsed_tree.node);\\n      } catch (e) {\\n        this.set_error(\\\\\\\"could not traverse tree\\\\\\\");\\n      }\\n    } else {\\n      this.set_error(\\\\\\\"cannot parse tree\\\\\\\");\\n    }\\n  }\\n  traverse_CallExpression(node) {\\n    const method_arguments = node.arguments.map((arg) => {\\n      return this.traverse_node(arg);\\n    });\\n    const arguments_joined = `${method_arguments.join(ARGUMENTS_SEPARATOR2)}`;\\n    const method_name = node.callee.name;\\n    return `${method_name}(${arguments_joined})`;\\n  }\\n  traverse_UnaryExpression(node) {\\n    return `${node.operator}${this.traverse_node(node.argument)}`;\\n  }\\n  traverse_Identifier(node) {\\n    return `${node.name}`;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/DependenciesController.ts\\nvar DependenciesController = class {\\n  constructor(param) {\\n    this.param = param;\\n    this.cyclic_graph_detected = false;\\n    this.method_dependencies = [];\\n  }\\n  set_error(message) {\\n    this.error_message = this.error_message || message;\\n  }\\n  reset() {\\n    this.param.graphDisconnectPredecessors();\\n    this.method_dependencies.forEach((method_dependency) => {\\n      method_dependency.reset();\\n    });\\n    this.method_dependencies = [];\\n  }\\n  update(function_generator) {\\n    this.cyclic_graph_detected = false;\\n    this.connect_immutable_dependencies(function_generator);\\n    this.method_dependencies = function_generator.method_dependencies;\\n    this.handle_method_dependencies();\\n    this.listen_for_name_changes();\\n  }\\n  connect_immutable_dependencies(function_generator) {\\n    function_generator.immutable_dependencies.forEach((dependency) => {\\n      if (this.cyclic_graph_detected == false) {\\n        if (this.param.addGraphInput(dependency) == false) {\\n          this.cyclic_graph_detected = true;\\n          this.set_error(\\\\\\\"cannot create expression, infinite graph detected\\\\\\\");\\n          this.reset();\\n          return;\\n        }\\n      }\\n    });\\n  }\\n  handle_method_dependencies() {\\n    this.method_dependencies.forEach((method_dependency) => {\\n      if (this.cyclic_graph_detected == false) {\\n        this.handle_method_dependency(method_dependency);\\n      }\\n    });\\n  }\\n  handle_method_dependency(method_dependency) {\\n    const node_simple = method_dependency.resolved_graph_node;\\n    if (node_simple) {\\n      if (!this.param.addGraphInput(node_simple)) {\\n        this.cyclic_graph_detected = true;\\n        this.set_error(\\\\\\\"cannot create expression, infinite graph detected\\\\\\\");\\n        this.reset();\\n        return;\\n      }\\n    }\\n  }\\n  listen_for_name_changes() {\\n    this.method_dependencies.forEach((method_dependency) => {\\n      method_dependency.listen_for_name_changes();\\n    });\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/expressions/ExpressionManager.ts\\nvar ExpressionManager = class {\\n  constructor(param) {\\n    this.param = param;\\n    this.parse_completed = false;\\n    this.parse_started = false;\\n    this.parsed_tree = new ParsedTree();\\n    this._functionGenerator = new FunctionGenerator(this.param);\\n    this.dependencies_controller = new DependenciesController(this.param);\\n  }\\n  parseExpression(expression) {\\n    if (this.parse_started) {\\n      throw new Error(`parse in progress for param ${this.param.path()}`);\\n    }\\n    this.parse_started = true;\\n    this.parse_completed = false;\\n    this.parsed_tree = this.parsed_tree || new ParsedTree();\\n    this.reset();\\n    if (this.param.type() == ParamType.STRING) {\\n      this.parsed_tree.parse_expression_for_string_param(expression);\\n    } else {\\n      this.parsed_tree.parse_expression(expression);\\n    }\\n    this._functionGenerator.parse_tree(this.parsed_tree);\\n    if (this._functionGenerator.error_message() == null) {\\n      this.dependencies_controller.update(this._functionGenerator);\\n      if (this.dependencies_controller.error_message) {\\n        this.param.states.error.set(this.dependencies_controller.error_message);\\n      } else {\\n        this.parse_completed = true;\\n        this.parse_started = false;\\n      }\\n    }\\n  }\\n  async computeFunction() {\\n    if (this._computeAllowed()) {\\n      try {\\n        const new_value = await this._functionGenerator.evalFunction();\\n        return new_value;\\n      } catch (e) {\\n        return;\\n      }\\n    } else {\\n      return new Promise((resolve, reject) => {\\n        resolve(null);\\n      });\\n    }\\n  }\\n  reset() {\\n    this.parse_completed = false;\\n    this.parse_started = false;\\n    this.dependencies_controller.reset();\\n    this._functionGenerator.reset();\\n  }\\n  is_errored() {\\n    return this._functionGenerator.is_errored();\\n  }\\n  error_message() {\\n    return this._functionGenerator.error_message();\\n  }\\n  _computeAllowed() {\\n    return this._functionGenerator.evalAllowed();\\n  }\\n  updateFromMethodDependencyNameChange() {\\n    this.expression_string_generator = this.expression_string_generator || new ExpressionStringGenerator(this.param);\\n    const new_expression_string = this.expression_string_generator.parse_tree(this.parsed_tree);\\n    if (new_expression_string) {\\n      this.param.set(new_expression_string);\\n    } else {\\n      console.warn(\\\\\\\"failed to regenerate expression\\\\\\\");\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/utils/ExpressionController.ts\\nvar ExpressionController = class {\\n  constructor(param) {\\n    this.param = param;\\n  }\\n  dispose() {\\n    this.param.scene().expressionsController.deregisterParam(this.param);\\n    this._resetMethodDependencies();\\n  }\\n  _resetMethodDependencies() {\\n    this._method_dependencies_by_graph_node_id?.forEach((method_dependency) => {\\n      method_dependency.dispose();\\n    });\\n    this._method_dependencies_by_graph_node_id?.clear();\\n  }\\n  registerMethodDependency(method_dependency) {\\n    this._method_dependencies_by_graph_node_id = this._method_dependencies_by_graph_node_id || new Map();\\n    this._method_dependencies_by_graph_node_id.set(method_dependency.graphNodeId(), method_dependency);\\n  }\\n  active() {\\n    return this._expression != null;\\n  }\\n  expression() {\\n    return this._expression;\\n  }\\n  is_errored() {\\n    if (this._manager) {\\n      return this._manager.is_errored();\\n    }\\n    return false;\\n  }\\n  error_message() {\\n    if (this._manager) {\\n      return this._manager.error_message();\\n    }\\n    return null;\\n  }\\n  requires_entities() {\\n    return this.param.options.isExpressionForEntities();\\n  }\\n  set_expression(expression, set_dirty = true) {\\n    this.param.scene().missingExpressionReferencesController.deregisterParam(this.param);\\n    this.param.scene().expressionsController.deregisterParam(this.param);\\n    if (this._expression != expression) {\\n      this._resetMethodDependencies();\\n      this._expression = expression;\\n      if (this._expression) {\\n        this._manager = this._manager || new ExpressionManager(this.param);\\n        this._manager.parseExpression(this._expression);\\n      } else {\\n        this._manager?.reset();\\n      }\\n      if (set_dirty) {\\n        this.param.setDirty();\\n      }\\n    }\\n  }\\n  updateFromMethodDependencyNameChange() {\\n    if (this._manager && this.active()) {\\n      this._manager.updateFromMethodDependencyNameChange();\\n    }\\n  }\\n  async computeExpression() {\\n    if (this._manager && this.active()) {\\n      const result = await this._manager.computeFunction();\\n      return result;\\n    }\\n  }\\n  async computeExpressionForEntities(entities, callback) {\\n    this.set_entities(entities, callback);\\n    await this.computeExpression();\\n    if (this._manager?.error_message()) {\\n      this.param.node.states.error.set(`expression evalution error: ${this._manager?.error_message()}`);\\n    }\\n    this.reset_entities();\\n  }\\n  computeExpressionForPoints(entities, callback) {\\n    return this.computeExpressionForEntities(entities, callback);\\n  }\\n  computeExpressionForObjects(entities, callback) {\\n    return this.computeExpressionForEntities(entities, callback);\\n  }\\n  entities() {\\n    return this._entities;\\n  }\\n  entity_callback() {\\n    return this._entity_callback;\\n  }\\n  set_entities(entities, callback) {\\n    this._entities = entities;\\n    this._entity_callback = callback;\\n  }\\n  reset_entities() {\\n    this._entities = void 0;\\n    this._entity_callback = void 0;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/_Numeric.ts\\nvar TypedNumericParam = class extends TypedParam {\\n  isNumeric() {\\n    return true;\\n  }\\n  isDefault() {\\n    return this._raw_input == this._default_value;\\n  }\\n  _prefilter_invalid_raw_input(raw_input) {\\n    if (CoreType.isArray(raw_input)) {\\n      return raw_input[0];\\n    } else {\\n      return raw_input;\\n    }\\n  }\\n  processRawInput() {\\n    this.states.error.clear();\\n    const converted = this.convert(this._raw_input);\\n    if (converted != null) {\\n      if (this._expression_controller) {\\n        this._expression_controller.set_expression(void 0, false);\\n        this.emitController.emit(ParamEvent.EXPRESSION_UPDATED);\\n      }\\n      if (converted != this._value) {\\n        this._update_value(converted);\\n        this.setSuccessorsDirty(this);\\n      }\\n    } else {\\n      if (CoreType.isString(this._raw_input)) {\\n        this._expression_controller = this._expression_controller || new ExpressionController(this);\\n        if (this._raw_input != this._expression_controller.expression()) {\\n          this._expression_controller.set_expression(this._raw_input);\\n          this.emitController.emit(ParamEvent.EXPRESSION_UPDATED);\\n        }\\n      } else {\\n        this.states.error.set(`param input is invalid (${this.path()})`);\\n      }\\n    }\\n  }\\n  async processComputation() {\\n    if (this.expressionController?.active() && !this.expressionController.requires_entities()) {\\n      const expression_result = await this.expressionController.computeExpression();\\n      if (this.expressionController.is_errored()) {\\n        this.states.error.set(`expression error: \\\\\\\"${this.expressionController.expression()}\\\\\\\" (${this.expressionController.error_message()})`);\\n      } else {\\n        const converted = this.convert(expression_result);\\n        if (converted != null) {\\n          if (this.states.error.active()) {\\n            this.states.error.clear();\\n          }\\n          this._update_value(converted);\\n        } else {\\n          this.states.error.set(`expression returns an invalid type (${expression_result}) (${this.expressionController.expression()})`);\\n        }\\n      }\\n    }\\n  }\\n  _update_value(new_value) {\\n    this._value = new_value;\\n    if (this.parent_param) {\\n      this.parent_param.set_value_from_components();\\n    }\\n    this.options.executeCallback();\\n    this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n    this.removeDirtyState();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Boolean.ts\\nvar BooleanParam = class extends TypedNumericParam {\\n  static type() {\\n    return ParamType.BOOLEAN;\\n  }\\n  defaultValueSerialized() {\\n    if (CoreType.isString(this._default_value)) {\\n      return this._default_value;\\n    } else {\\n      return this.convert(this._default_value) || false;\\n    }\\n  }\\n  rawInputSerialized() {\\n    return this._raw_input;\\n  }\\n  valueSerialized() {\\n    return this.value;\\n  }\\n  _copy_value(param) {\\n    this.set(param.value);\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  convert(raw_val) {\\n    if (CoreType.isBoolean(raw_val)) {\\n      return raw_val;\\n    } else {\\n      if (CoreType.isNumber(raw_val)) {\\n        return raw_val >= 1;\\n      } else {\\n        if (CoreType.isString(raw_val)) {\\n          if (CoreString.isBoolean(raw_val)) {\\n            return CoreString.toBoolean(raw_val);\\n          } else {\\n            if (CoreString.isNumber(raw_val)) {\\n              const parsed = parseFloat(raw_val);\\n              return parsed >= 1;\\n            }\\n          }\\n        }\\n      }\\n    }\\n    return null;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Button.ts\\nvar ButtonParam = class extends TypedParam {\\n  static type() {\\n    return ParamType.BUTTON;\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return this._raw_input;\\n  }\\n  valueSerialized() {\\n    return this.value;\\n  }\\n  _copy_value(param) {\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return true;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return true;\\n  }\\n  async pressButton() {\\n    if (this.node.isDirty() || this.node.cookController.isCooking()) {\\n      await this.node.compute();\\n    }\\n    this.options.executeCallback();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Float.ts\\nvar FloatParam = class extends TypedNumericParam {\\n  static type() {\\n    return ParamType.FLOAT;\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return this._raw_input;\\n  }\\n  valueSerialized() {\\n    return this.value;\\n  }\\n  _copy_value(param) {\\n    this.set(param.valueSerialized());\\n  }\\n  _prefilter_invalid_raw_input(raw_input) {\\n    if (CoreType.isArray(raw_input)) {\\n      return raw_input[0];\\n    }\\n    if (CoreType.isString(raw_input) && CoreString.isNumber(raw_input)) {\\n      return parseFloat(raw_input);\\n    }\\n    return raw_input;\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  static convert(raw_val) {\\n    if (CoreType.isNumber(raw_val)) {\\n      return raw_val;\\n    } else {\\n      if (CoreType.isBoolean(raw_val)) {\\n        return raw_val ? 1 : 0;\\n      } else {\\n        if (CoreString.isNumber(raw_val)) {\\n          const parsed = parseFloat(raw_val);\\n          if (CoreType.isNumber(parsed)) {\\n            return parsed;\\n          }\\n        }\\n      }\\n      return null;\\n    }\\n  }\\n  convert(raw_val) {\\n    const result = FloatParam.convert(raw_val);\\n    if (result) {\\n      return this.options.ensureInRange(result);\\n    } else {\\n      return result;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/_Multiple.ts\\nvar TypedMultipleParam = class extends TypedParam {\\n  constructor() {\\n    super(...arguments);\\n    this._components_contructor = FloatParam;\\n  }\\n  get components() {\\n    return this._components;\\n  }\\n  isNumeric() {\\n    return true;\\n  }\\n  isDefault() {\\n    for (let c of this.components) {\\n      if (!c.isDefault()) {\\n        return false;\\n      }\\n    }\\n    return true;\\n  }\\n  rawInput() {\\n    return this._components.map((c) => c.rawInput());\\n  }\\n  rawInputSerialized() {\\n    return this._components.map((c) => c.rawInputSerialized());\\n  }\\n  _copy_value(param) {\\n    for (let i = 0; i < this.components.length; i++) {\\n      const component = this.components[i];\\n      const src_component = param.components[i];\\n      component.copy_value(src_component);\\n    }\\n  }\\n  initComponents() {\\n    if (this._components != null) {\\n      return;\\n    }\\n    let index = 0;\\n    this._components = new Array(this.componentNames().length);\\n    for (let component_name of this.componentNames()) {\\n      const component = new this._components_contructor(this.scene(), this._node);\\n      let default_val;\\n      if (CoreType.isArray(this._default_value)) {\\n        default_val = this._default_value[index];\\n      } else {\\n        default_val = this._default_value[component_name];\\n      }\\n      component.options.copy(this.options);\\n      component.setInitValue(default_val);\\n      component.setName(`${this.name()}${component_name}`);\\n      component.set_parent_param(this);\\n      this._components[index] = component;\\n      index++;\\n    }\\n  }\\n  async processComputation() {\\n    await this.compute_components();\\n    this.set_value_from_components();\\n  }\\n  set_value_from_components() {\\n  }\\n  hasExpression() {\\n    for (let c of this.components) {\\n      if (c.expressionController?.active()) {\\n        return true;\\n      }\\n    }\\n    return false;\\n  }\\n  async compute_components() {\\n    const components = this.components;\\n    const promises = [];\\n    for (let c of components) {\\n      if (c.isDirty()) {\\n        promises.push(c.compute());\\n      }\\n    }\\n    await Promise.all(promises);\\n    this.removeDirtyState();\\n  }\\n  _prefilter_invalid_raw_input(raw_input) {\\n    if (!CoreType.isArray(raw_input)) {\\n      const number_or_string = raw_input;\\n      const raw_input_wrapped_in_array = this.componentNames().map(() => number_or_string);\\n      return raw_input_wrapped_in_array;\\n    } else {\\n      return raw_input;\\n    }\\n  }\\n  processRawInput() {\\n    const cooker = this.scene().cooker;\\n    cooker.block();\\n    const components = this.components;\\n    for (let c of components) {\\n      c.emitController.blockParentEmit();\\n    }\\n    const value = this._raw_input;\\n    let prev_value = 0;\\n    if (CoreType.isArray(value)) {\\n      for (let i = 0; i < components.length; i++) {\\n        let component_value = value[i];\\n        if (component_value == null) {\\n          component_value = prev_value;\\n        }\\n        components[i].set(component_value);\\n        prev_value = component_value;\\n      }\\n    } else {\\n      for (let i = 0; i < components.length; i++) {\\n        const component_name = this.componentNames()[i];\\n        let component_value = value[component_name];\\n        if (component_value == null) {\\n          component_value = prev_value;\\n        }\\n        components[i].set(component_value);\\n        prev_value = component_value;\\n      }\\n    }\\n    cooker.unblock();\\n    for (let i = 0; i < components.length; i++) {\\n      components[i].emitController.unblockParentEmit();\\n    }\\n    this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/Color.ts\\nvar ColorConversion;\\n(function(ColorConversion2) {\\n  ColorConversion2[\\\\\\\"NONE\\\\\\\"] = \\\\\\\"no conversion\\\\\\\";\\n  ColorConversion2[\\\\\\\"GAMMA_TO_LINEAR\\\\\\\"] = \\\\\\\"gamma -> linear\\\\\\\";\\n  ColorConversion2[\\\\\\\"LINEAR_TO_GAMMA\\\\\\\"] = \\\\\\\"linear -> gamma\\\\\\\";\\n  ColorConversion2[\\\\\\\"SRGB_TO_LINEAR\\\\\\\"] = \\\\\\\"sRGB -> linear\\\\\\\";\\n  ColorConversion2[\\\\\\\"LINEAR_TO_SRGB\\\\\\\"] = \\\\\\\"linear -> sRGB\\\\\\\";\\n})(ColorConversion || (ColorConversion = {}));\\nvar COLOR_CONVERSIONS = [\\n  ColorConversion.NONE,\\n  ColorConversion.GAMMA_TO_LINEAR,\\n  ColorConversion.LINEAR_TO_GAMMA,\\n  ColorConversion.SRGB_TO_LINEAR,\\n  ColorConversion.LINEAR_TO_SRGB\\n];\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Color.ts\\nvar COMPONENT_NAMES_COLOR = [\\\\\\\"r\\\\\\\", \\\\\\\"g\\\\\\\", \\\\\\\"b\\\\\\\"];\\nvar ColorParam = class extends TypedMultipleParam {\\n  constructor() {\\n    super(...arguments);\\n    this._value = new Color();\\n    this._value_pre_conversion = new Color();\\n    this._value_serialized_dirty = false;\\n    this._value_serialized = [0, 0, 0];\\n    this._value_pre_conversion_serialized = [0, 0, 0];\\n    this._copied_value = [0, 0, 0];\\n  }\\n  static type() {\\n    return ParamType.COLOR;\\n  }\\n  componentNames() {\\n    return COMPONENT_NAMES_COLOR;\\n  }\\n  defaultValueSerialized() {\\n    if (CoreType.isArray(this._default_value)) {\\n      return this._default_value;\\n    } else {\\n      return this._default_value.toArray();\\n    }\\n  }\\n  valueSerialized() {\\n    this._update_value_serialized_if_required();\\n    return this._value_serialized;\\n  }\\n  valuePreConversionSerialized() {\\n    this._update_value_serialized_if_required();\\n    return this._value_pre_conversion_serialized;\\n  }\\n  _copy_value(param) {\\n    param.value.toArray(this._copied_value);\\n    this.set(this._copied_value);\\n  }\\n  _clone_raw_input(raw_input) {\\n    if (raw_input instanceof Color) {\\n      return raw_input.clone();\\n    } else {\\n      const new_array = [raw_input[0], raw_input[1], raw_input[2]];\\n      if (new_array[0] == null) {\\n        new_array[0] = new_array[0] || 0;\\n      }\\n      if (new_array[1] == null) {\\n        new_array[1] = new_array[1] || new_array[0];\\n      }\\n      if (new_array[2] == null) {\\n        new_array[2] = new_array[2] || new_array[1];\\n      }\\n      return new_array;\\n    }\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    if (raw_input1 instanceof Color) {\\n      if (raw_input2 instanceof Color) {\\n        return raw_input1.equals(raw_input2);\\n      } else {\\n        return raw_input1.r == raw_input2[0] && raw_input1.g == raw_input2[1] && raw_input1.b == raw_input2[2];\\n      }\\n    } else {\\n      if (raw_input2 instanceof Color) {\\n        return raw_input1[0] == raw_input2.r && raw_input1[1] == raw_input2.g && raw_input1[2] == raw_input2.b;\\n      } else {\\n        return raw_input1[0] == raw_input2[0] && raw_input1[1] == raw_input2[1] && raw_input1[2] == raw_input2[2];\\n      }\\n    }\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1.equals(val2);\\n  }\\n  initComponents() {\\n    super.initComponents();\\n    this.r = this.components[0];\\n    this.g = this.components[1];\\n    this.b = this.components[2];\\n    this._value_serialized_dirty = true;\\n  }\\n  _update_value_serialized_if_required() {\\n    if (!this._value_serialized_dirty) {\\n      return;\\n    }\\n    this._value_serialized[0] = this._value.r;\\n    this._value_serialized[1] = this._value.g;\\n    this._value_serialized[2] = this._value.b;\\n    this._value_pre_conversion_serialized[0] = this._value_pre_conversion.r;\\n    this._value_pre_conversion_serialized[1] = this._value_pre_conversion.g;\\n    this._value_pre_conversion_serialized[2] = this._value_pre_conversion.b;\\n  }\\n  valuePreConversion() {\\n    return this._value_pre_conversion;\\n  }\\n  set_value_from_components() {\\n    this._value_pre_conversion.r = this.r.value;\\n    this._value_pre_conversion.g = this.g.value;\\n    this._value_pre_conversion.b = this.b.value;\\n    this._value.copy(this._value_pre_conversion);\\n    const conversion = this.options.colorConversion();\\n    if (conversion != null && conversion != ColorConversion.NONE) {\\n      switch (conversion) {\\n        case ColorConversion.GAMMA_TO_LINEAR: {\\n          this._value.convertGammaToLinear();\\n          return;\\n        }\\n        case ColorConversion.LINEAR_TO_GAMMA: {\\n          this._value.convertLinearToGamma();\\n          return;\\n        }\\n        case ColorConversion.SRGB_TO_LINEAR: {\\n          this._value.convertSRGBToLinear();\\n          return;\\n        }\\n        case ColorConversion.LINEAR_TO_SRGB: {\\n          this._value.convertLinearToSRGB();\\n          return;\\n        }\\n      }\\n      TypeAssert.unreachable(conversion);\\n    }\\n    this._value_serialized_dirty = true;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Folder.ts\\nvar FolderParam = class extends TypedParam {\\n  static type() {\\n    return ParamType.FOLDER;\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return this._raw_input;\\n  }\\n  valueSerialized() {\\n    return this.value;\\n  }\\n  _copy_value(param) {\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return true;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return true;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Integer.ts\\nvar IntegerParam = class extends TypedNumericParam {\\n  static type() {\\n    return ParamType.INTEGER;\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return this._raw_input;\\n  }\\n  valueSerialized() {\\n    return this.value;\\n  }\\n  _copy_value(param) {\\n    this.set(param.valueSerialized());\\n  }\\n  _prefilter_invalid_raw_input(raw_input) {\\n    if (CoreType.isArray(raw_input)) {\\n      return raw_input[0];\\n    }\\n    if (CoreType.isString(raw_input) && CoreString.isNumber(raw_input)) {\\n      return parseInt(raw_input);\\n    }\\n    return raw_input;\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  static convert(raw_val) {\\n    if (CoreType.isNumber(raw_val)) {\\n      return Math.round(raw_val);\\n    } else {\\n      if (CoreType.isBoolean(raw_val)) {\\n        return raw_val ? 1 : 0;\\n      } else {\\n        if (CoreString.isNumber(raw_val)) {\\n          const parsed = parseInt(raw_val);\\n          if (CoreType.isNumber(parsed)) {\\n            return parsed;\\n          }\\n        }\\n      }\\n      return null;\\n    }\\n  }\\n  convert(raw_val) {\\n    const result = IntegerParam.convert(raw_val);\\n    if (result) {\\n      return this.options.ensureInRange(result);\\n    } else {\\n      return result;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/DecomposedPath.ts\\nvar DecomposedPath = class {\\n  constructor() {\\n    this._index = -1;\\n    this._path_elements = [];\\n    this._named_nodes = [];\\n    this._graph_node_ids = [];\\n    this._node_element_by_graph_node_id = new Map();\\n  }\\n  reset() {\\n    this._index = -1;\\n    this._path_elements = [];\\n    this._named_nodes = [];\\n    this._graph_node_ids = [];\\n    this._node_element_by_graph_node_id.clear();\\n  }\\n  add_node(name, node) {\\n    this._index += 1;\\n    if (name == node.name()) {\\n      this._named_nodes[this._index] = node;\\n    }\\n    this._graph_node_ids[this._index] = node.graphNodeId();\\n    this._node_element_by_graph_node_id.set(node.graphNodeId(), name);\\n  }\\n  add_path_element(path_element) {\\n    this._index += 1;\\n    this._path_elements[this._index] = path_element;\\n  }\\n  named_graph_nodes() {\\n    return this._named_nodes;\\n  }\\n  named_nodes() {\\n    const nodes = [];\\n    for (let graph_node of this._named_nodes) {\\n      if (graph_node) {\\n        const node = graph_node;\\n        if (node.nameController) {\\n          nodes.push(node);\\n        }\\n      }\\n    }\\n    return nodes;\\n  }\\n  update_from_name_change(node) {\\n    const named_graph_node_ids = this._named_nodes.map((n) => n?.graphNodeId());\\n    if (named_graph_node_ids.includes(node.graphNodeId())) {\\n      this._node_element_by_graph_node_id.set(node.graphNodeId(), node.name());\\n    }\\n  }\\n  to_path() {\\n    const elements = new Array(this._index);\\n    for (let i = 0; i <= this._index; i++) {\\n      const node = this._named_nodes[i];\\n      if (node) {\\n        const node_name = this._node_element_by_graph_node_id.get(node.graphNodeId());\\n        if (node_name) {\\n          elements[i] = node_name;\\n        }\\n      } else {\\n        const path_element = this._path_elements[i];\\n        if (path_element) {\\n          elements[i] = path_element;\\n        }\\n      }\\n    }\\n    let joined_path = elements.join(CoreWalker.SEPARATOR);\\n    const first_char = joined_path[0];\\n    if (first_char) {\\n      if (!CoreWalker.NON_LETTER_PREFIXES.includes(first_char)) {\\n        joined_path = `${CoreWalker.SEPARATOR}${joined_path}`;\\n      }\\n    }\\n    return joined_path;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/_BasePath.ts\\nvar TypedPathParam = class extends TypedParam {\\n  constructor() {\\n    super(...arguments);\\n    this.decomposed_path = new DecomposedPath();\\n  }\\n  _handleReferences(node, path) {\\n    this.scene().referencesController.setNamedNodesFromParam(this);\\n    if (node) {\\n      this.scene().referencesController.setReferenceFromParam(this, node);\\n    } else {\\n      this.scene().missingExpressionReferencesController.register(this, path);\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/OperatorPath.ts\\nvar OperatorPathMode;\\n(function(OperatorPathMode2) {\\n  OperatorPathMode2[\\\\\\\"NODE\\\\\\\"] = \\\\\\\"NODE\\\\\\\";\\n  OperatorPathMode2[\\\\\\\"PARAM\\\\\\\"] = \\\\\\\"PARAM\\\\\\\";\\n})(OperatorPathMode || (OperatorPathMode = {}));\\nvar OperatorPathParam = class extends TypedPathParam {\\n  constructor() {\\n    super(...arguments);\\n    this._found_node = null;\\n    this._found_node_with_expected_type = null;\\n    this._found_param = null;\\n    this._found_param_with_expected_type = null;\\n  }\\n  static type() {\\n    return ParamType.OPERATOR_PATH;\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return `${this._raw_input}`;\\n  }\\n  valueSerialized() {\\n    return `${this.value}`;\\n  }\\n  _copy_value(param) {\\n    this.set(param.valueSerialized());\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  isDefault() {\\n    return this._value == this._default_value;\\n  }\\n  setNode(node) {\\n    this.set(node.path());\\n  }\\n  processRawInput() {\\n    if (this._value != this._raw_input) {\\n      this._value = this._raw_input;\\n      this.setDirty();\\n      this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n    }\\n  }\\n  async processComputation() {\\n    this.find_target();\\n  }\\n  find_target() {\\n    if (!this.node) {\\n      return;\\n    }\\n    const path = this._value;\\n    let node = null;\\n    let param = null;\\n    const path_non_empty = path != null && path !== \\\\\\\"\\\\\\\";\\n    const mode = this.options.paramSelectionOptions() ? OperatorPathMode.PARAM : OperatorPathMode.NODE;\\n    this.scene().referencesController.resetReferenceFromParam(this);\\n    this.decomposed_path.reset();\\n    if (path_non_empty) {\\n      if (mode == OperatorPathMode.PARAM) {\\n        param = CoreWalker.findParam(this.node, path, this.decomposed_path);\\n      } else {\\n        node = CoreWalker.findNode(this.node, path, this.decomposed_path);\\n      }\\n    }\\n    const current_found_entity = mode == OperatorPathMode.PARAM ? this._found_param : this._found_node;\\n    const newly_found_entity = mode == OperatorPathMode.PARAM ? param : node;\\n    this._handleReferences(node, path);\\n    if (current_found_entity?.graphNodeId() !== newly_found_entity?.graphNodeId()) {\\n      const dependent_on_found_node = this.options.dependentOnFoundNode();\\n      if (this._found_node) {\\n        if (dependent_on_found_node) {\\n          this.removeGraphInput(this._found_node);\\n        } else {\\n        }\\n      }\\n      if (mode == OperatorPathMode.PARAM) {\\n        this._found_param = param;\\n        this._found_node = null;\\n      } else {\\n        this._found_node = node;\\n        this._found_param = null;\\n      }\\n      if (node) {\\n        this._assign_found_node(node);\\n      }\\n      if (param) {\\n        this._assign_found_param(param);\\n      }\\n      this.options.executeCallback();\\n    }\\n    this.removeDirtyState();\\n  }\\n  _assign_found_node(node) {\\n    const dependent_on_found_node = this.options.dependentOnFoundNode();\\n    if (this._is_node_expected_context(node)) {\\n      if (this._is_node_expected_type(node)) {\\n        this._found_node_with_expected_type = node;\\n        if (dependent_on_found_node) {\\n          this.addGraphInput(node);\\n        }\\n      } else {\\n        this.states.error.set(`node type is ${node.type()} but the params expects one of ${(this._expected_node_types() || []).join(\\\\\\\", \\\\\\\")}`);\\n      }\\n    } else {\\n      this.states.error.set(`node context is ${node.context()} but the params expects a ${this._expected_context()}`);\\n    }\\n  }\\n  _assign_found_param(param) {\\n    if (this._is_param_expected_type(param)) {\\n      this._found_param_with_expected_type = param;\\n    } else {\\n      this.states.error.set(`param type is ${param.type()} but the params expects a ${this._expected_param_type()}`);\\n    }\\n  }\\n  found_node() {\\n    return this._found_node;\\n  }\\n  found_param() {\\n    return this._found_param;\\n  }\\n  found_node_with_context(context) {\\n    return this._found_node_with_expected_type;\\n  }\\n  found_node_with_context_and_type(context, type_or_types) {\\n    const node = this.found_node_with_context(context);\\n    if (node) {\\n      if (CoreType.isArray(type_or_types)) {\\n        for (let type of type_or_types) {\\n          if (node.type() == type) {\\n            return node;\\n          }\\n        }\\n        this.states.error.set(`expected node type to be ${type_or_types.join(\\\\\\\", \\\\\\\")}, but was instead ${node.type()}`);\\n      } else {\\n        const type = type_or_types;\\n        if (node.type() == type) {\\n          return node;\\n        } else {\\n          this.states.error.set(`expected node type to be ${type}, but was instead ${node.type()}`);\\n        }\\n      }\\n    }\\n  }\\n  found_param_with_type(type) {\\n    if (this._found_param_with_expected_type) {\\n      return this._found_param_with_expected_type;\\n    }\\n  }\\n  found_node_with_expected_type() {\\n    return this._found_node_with_expected_type;\\n  }\\n  _expected_context() {\\n    return this.options.nodeSelectionContext();\\n  }\\n  _is_node_expected_context(node) {\\n    const expected_context = this._expected_context();\\n    if (expected_context == null) {\\n      return true;\\n    }\\n    const node_context = node.parent()?.childrenController?.context;\\n    return expected_context == node_context;\\n  }\\n  _expected_node_types() {\\n    return this.options.nodeSelectionTypes();\\n  }\\n  _expected_param_type() {\\n    return this.options.paramSelectionType();\\n  }\\n  _is_node_expected_type(node) {\\n    const expected_types = this._expected_node_types();\\n    if (expected_types == null) {\\n      return true;\\n    }\\n    return expected_types?.includes(node.type());\\n  }\\n  _is_param_expected_type(param) {\\n    const expected_types = this._expected_node_types();\\n    if (expected_types == null) {\\n      return true;\\n    }\\n    return expected_types.includes(param.type());\\n  }\\n  notifyPathRebuildRequired(node) {\\n    this.decomposed_path.update_from_name_change(node);\\n    const new_path = this.decomposed_path.to_path();\\n    this.set(new_path);\\n  }\\n  notifyTargetParamOwnerParamsUpdated(node) {\\n    this.setDirty();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/ParamPath.ts\\nvar ParamPathParam = class extends TypedPathParam {\\n  static type() {\\n    return ParamType.PARAM_PATH;\\n  }\\n  initialize_param() {\\n    this._value = new TypedParamPathParamValue();\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return `${this._raw_input}`;\\n  }\\n  valueSerialized() {\\n    return `${this.value}`;\\n  }\\n  _copy_value(param) {\\n    this.set(param.valueSerialized());\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  isDefault() {\\n    return this._raw_input == this._default_value;\\n  }\\n  setParam(param) {\\n    this.set(param.path());\\n  }\\n  processRawInput() {\\n    if (this._value.path() != this._raw_input) {\\n      this._value.set_path(this._raw_input);\\n      this.find_target();\\n      this.setDirty();\\n      this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n    }\\n  }\\n  async processComputation() {\\n    this.find_target();\\n  }\\n  find_target() {\\n    if (!this.node) {\\n      return;\\n    }\\n    const path = this._raw_input;\\n    let param = null;\\n    const path_non_empty = path != null && path !== \\\\\\\"\\\\\\\";\\n    this.scene().referencesController.resetReferenceFromParam(this);\\n    this.decomposed_path.reset();\\n    if (path_non_empty) {\\n      param = CoreWalker.findParam(this.node, path, this.decomposed_path);\\n    }\\n    const current_found_entity = this._value.param();\\n    const newly_found_entity = param;\\n    this._handleReferences(param, path);\\n    if (current_found_entity?.graphNodeId() !== newly_found_entity?.graphNodeId()) {\\n      const dependent_on_found_node = this.options.dependentOnFoundNode();\\n      const previously_found_node = this._value.param();\\n      if (previously_found_node) {\\n        if (dependent_on_found_node) {\\n          this.removeGraphInput(previously_found_node);\\n        } else {\\n        }\\n      }\\n      if (param) {\\n        this._assign_found_node(param);\\n      } else {\\n        this._value.set_param(null);\\n      }\\n      this.options.executeCallback();\\n    }\\n    this.removeDirtyState();\\n  }\\n  _assign_found_node(param) {\\n    const dependent_on_found_node = this.options.dependentOnFoundNode();\\n    this._value.set_param(param);\\n    if (dependent_on_found_node) {\\n      this.addGraphInput(param);\\n    }\\n  }\\n  notifyPathRebuildRequired(param) {\\n    this.decomposed_path.update_from_name_change(param);\\n    const new_path = this.decomposed_path.to_path();\\n    this.set(new_path);\\n  }\\n  notifyTargetParamOwnerParamsUpdated(node) {\\n    this.setDirty();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/NodePath.ts\\nvar NodePathParam = class extends TypedPathParam {\\n  static type() {\\n    return ParamType.NODE_PATH;\\n  }\\n  initialize_param() {\\n    this._value = new TypedNodePathParamValue();\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  rawInputSerialized() {\\n    return `${this._raw_input}`;\\n  }\\n  valueSerialized() {\\n    return `${this.value}`;\\n  }\\n  _copy_value(param) {\\n    this.set(param.valueSerialized());\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  isDefault() {\\n    return this._raw_input == this._default_value;\\n  }\\n  setNode(node) {\\n    this.set(node.path());\\n  }\\n  processRawInput() {\\n    if (this._value.path() != this._raw_input) {\\n      this._value.set_path(this._raw_input);\\n      this._findTarget();\\n      this.setDirty();\\n      this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n    }\\n  }\\n  async processComputation() {\\n    this._findTarget();\\n  }\\n  _findTarget() {\\n    if (!this.node) {\\n      return;\\n    }\\n    const path = this._raw_input;\\n    let node = null;\\n    const path_non_empty = path != null && path !== \\\\\\\"\\\\\\\";\\n    this.scene().referencesController.resetReferenceFromParam(this);\\n    this.decomposed_path.reset();\\n    if (path_non_empty) {\\n      node = CoreWalker.findNode(this.node, path, this.decomposed_path);\\n    }\\n    const current_found_entity = this._value.node();\\n    const newly_found_entity = node;\\n    this._handleReferences(node, path);\\n    if (current_found_entity?.graphNodeId() !== newly_found_entity?.graphNodeId()) {\\n      const dependent_on_found_node = this.options.dependentOnFoundNode();\\n      const previously_found_node = this._value.node();\\n      if (previously_found_node) {\\n        if (dependent_on_found_node) {\\n          this.removeGraphInput(previously_found_node);\\n        } else {\\n        }\\n      }\\n      if (node) {\\n        this._assign_found_node(node);\\n      } else {\\n        this._value.set_node(null);\\n      }\\n      this.options.executeCallback();\\n    }\\n    if (path_non_empty && !node && this.scene().loadingController.loaded()) {\\n      if (path_non_empty) {\\n        this.states.error.set(`no node found at path '${path}'`);\\n      }\\n    }\\n    this.removeDirtyState();\\n  }\\n  _assign_found_node(node) {\\n    const dependent_on_found_node = this.options.dependentOnFoundNode();\\n    if (this._isNodeExpectedContext(node)) {\\n      if (this._is_node_expected_type(node)) {\\n        this.states.error.clear();\\n        this._value.set_node(node);\\n        if (dependent_on_found_node) {\\n          this.addGraphInput(node);\\n        }\\n      } else {\\n        this.states.error.set(`node type is ${node.type()} but the params expects one of ${(this._expected_node_types() || []).join(\\\\\\\", \\\\\\\")}`);\\n      }\\n    } else {\\n      this.states.error.set(`node context is ${node.context()} but the params expects a ${this._expectedContext()}`);\\n    }\\n  }\\n  _expectedContext() {\\n    return this.options.nodeSelectionContext();\\n  }\\n  _isNodeExpectedContext(node) {\\n    const expected_context = this._expectedContext();\\n    if (expected_context == null) {\\n      return true;\\n    }\\n    const node_context = node.parent()?.childrenController?.context;\\n    return expected_context == node_context;\\n  }\\n  _expected_node_types() {\\n    return this.options.nodeSelectionTypes();\\n  }\\n  _is_node_expected_type(node) {\\n    const expected_types = this._expected_node_types();\\n    if (expected_types == null) {\\n      return true;\\n    }\\n    return expected_types?.includes(node.type());\\n  }\\n  notifyPathRebuildRequired(node) {\\n    this.decomposed_path.update_from_name_change(node);\\n    const newPath = this.decomposed_path.to_path();\\n    this.set(newPath);\\n  }\\n  notifyTargetParamOwnerParamsUpdated(node) {\\n    this.setDirty();\\n  }\\n};\\n\\n// ../../../node_modules/three/src/textures/DataTexture.js\\nvar DataTexture = class extends Texture {\\n  constructor(data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, encoding) {\\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding);\\n    this.image = {data, width, height};\\n    this.magFilter = magFilter;\\n    this.minFilter = minFilter;\\n    this.generateMipmaps = false;\\n    this.flipY = false;\\n    this.unpackAlignment = 1;\\n    this.needsUpdate = true;\\n  }\\n};\\nDataTexture.prototype.isDataTexture = true;\\n\\n// ../../../node_modules/three/src/math/Interpolant.js\\nvar Interpolant = class {\\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\\n    this.parameterPositions = parameterPositions;\\n    this._cachedIndex = 0;\\n    this.resultBuffer = resultBuffer !== void 0 ? resultBuffer : new sampleValues.constructor(sampleSize);\\n    this.sampleValues = sampleValues;\\n    this.valueSize = sampleSize;\\n    this.settings = null;\\n    this.DefaultSettings_ = {};\\n  }\\n  evaluate(t) {\\n    const pp = this.parameterPositions;\\n    let i1 = this._cachedIndex, t1 = pp[i1], t0 = pp[i1 - 1];\\n    validate_interval: {\\n      seek: {\\n        let right;\\n        linear_scan: {\\n          forward_scan:\\n            if (!(t < t1)) {\\n              for (let giveUpAt = i1 + 2; ; ) {\\n                if (t1 === void 0) {\\n                  if (t < t0)\\n                    break forward_scan;\\n                  i1 = pp.length;\\n                  this._cachedIndex = i1;\\n                  return this.afterEnd_(i1 - 1, t, t0);\\n                }\\n                if (i1 === giveUpAt)\\n                  break;\\n                t0 = t1;\\n                t1 = pp[++i1];\\n                if (t < t1) {\\n                  break seek;\\n                }\\n              }\\n              right = pp.length;\\n              break linear_scan;\\n            }\\n          if (!(t >= t0)) {\\n            const t1global = pp[1];\\n            if (t < t1global) {\\n              i1 = 2;\\n              t0 = t1global;\\n            }\\n            for (let giveUpAt = i1 - 2; ; ) {\\n              if (t0 === void 0) {\\n                this._cachedIndex = 0;\\n                return this.beforeStart_(0, t, t1);\\n              }\\n              if (i1 === giveUpAt)\\n                break;\\n              t1 = t0;\\n              t0 = pp[--i1 - 1];\\n              if (t >= t0) {\\n                break seek;\\n              }\\n            }\\n            right = i1;\\n            i1 = 0;\\n            break linear_scan;\\n          }\\n          break validate_interval;\\n        }\\n        while (i1 < right) {\\n          const mid = i1 + right >>> 1;\\n          if (t < pp[mid]) {\\n            right = mid;\\n          } else {\\n            i1 = mid + 1;\\n          }\\n        }\\n        t1 = pp[i1];\\n        t0 = pp[i1 - 1];\\n        if (t0 === void 0) {\\n          this._cachedIndex = 0;\\n          return this.beforeStart_(0, t, t1);\\n        }\\n        if (t1 === void 0) {\\n          i1 = pp.length;\\n          this._cachedIndex = i1;\\n          return this.afterEnd_(i1 - 1, t0, t);\\n        }\\n      }\\n      this._cachedIndex = i1;\\n      this.intervalChanged_(i1, t0, t1);\\n    }\\n    return this.interpolate_(i1, t0, t, t1);\\n  }\\n  getSettings_() {\\n    return this.settings || this.DefaultSettings_;\\n  }\\n  copySampleValue_(index) {\\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset = index * stride;\\n    for (let i = 0; i !== stride; ++i) {\\n      result[i] = values[offset + i];\\n    }\\n    return result;\\n  }\\n  interpolate_() {\\n    throw new Error(\\\\\\\"call to abstract method\\\\\\\");\\n  }\\n  intervalChanged_() {\\n  }\\n};\\nInterpolant.prototype.beforeStart_ = Interpolant.prototype.copySampleValue_;\\nInterpolant.prototype.afterEnd_ = Interpolant.prototype.copySampleValue_;\\n\\n// ../../../node_modules/three/src/math/interpolants/CubicInterpolant.js\\nvar CubicInterpolant = class extends Interpolant {\\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\\n    this._weightPrev = -0;\\n    this._offsetPrev = -0;\\n    this._weightNext = -0;\\n    this._offsetNext = -0;\\n    this.DefaultSettings_ = {\\n      endingStart: ZeroCurvatureEnding,\\n      endingEnd: ZeroCurvatureEnding\\n    };\\n  }\\n  intervalChanged_(i1, t0, t1) {\\n    const pp = this.parameterPositions;\\n    let iPrev = i1 - 2, iNext = i1 + 1, tPrev = pp[iPrev], tNext = pp[iNext];\\n    if (tPrev === void 0) {\\n      switch (this.getSettings_().endingStart) {\\n        case ZeroSlopeEnding:\\n          iPrev = i1;\\n          tPrev = 2 * t0 - t1;\\n          break;\\n        case WrapAroundEnding:\\n          iPrev = pp.length - 2;\\n          tPrev = t0 + pp[iPrev] - pp[iPrev + 1];\\n          break;\\n        default:\\n          iPrev = i1;\\n          tPrev = t1;\\n      }\\n    }\\n    if (tNext === void 0) {\\n      switch (this.getSettings_().endingEnd) {\\n        case ZeroSlopeEnding:\\n          iNext = i1;\\n          tNext = 2 * t1 - t0;\\n          break;\\n        case WrapAroundEnding:\\n          iNext = 1;\\n          tNext = t1 + pp[1] - pp[0];\\n          break;\\n        default:\\n          iNext = i1 - 1;\\n          tNext = t0;\\n      }\\n    }\\n    const halfDt = (t1 - t0) * 0.5, stride = this.valueSize;\\n    this._weightPrev = halfDt / (t0 - tPrev);\\n    this._weightNext = halfDt / (tNext - t1);\\n    this._offsetPrev = iPrev * stride;\\n    this._offsetNext = iNext * stride;\\n  }\\n  interpolate_(i1, t0, t, t1) {\\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, o1 = i1 * stride, o0 = o1 - stride, oP = this._offsetPrev, oN = this._offsetNext, wP = this._weightPrev, wN = this._weightNext, p = (t - t0) / (t1 - t0), pp = p * p, ppp = pp * p;\\n    const sP = -wP * ppp + 2 * wP * pp - wP * p;\\n    const s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\\n    const s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\\n    const sN = wN * ppp - wN * pp;\\n    for (let i = 0; i !== stride; ++i) {\\n      result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\\n    }\\n    return result;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/ramp/RampValue.ts\\nvar RampPoint = class {\\n  constructor(_position3 = 0, _value = 0) {\\n    this._position = _position3;\\n    this._value = _value;\\n  }\\n  toJSON() {\\n    return {\\n      position: this._position,\\n      value: this._value\\n    };\\n  }\\n  position() {\\n    return this._position;\\n  }\\n  value() {\\n    return this._value;\\n  }\\n  copy(point) {\\n    this._position = point.position();\\n    this._value = point.value();\\n  }\\n  clone() {\\n    const point = new RampPoint();\\n    point.copy(this);\\n    return point;\\n  }\\n  isEqual(other_point) {\\n    return this._position == other_point.position() && this._value == other_point.value();\\n  }\\n  isEqualJSON(json) {\\n    return this._position == json.position && this._value == json.value;\\n  }\\n  fromJSON(json) {\\n    this._position = json.position;\\n    this._value = json.value;\\n  }\\n  static areEqualJSON(json1, json2) {\\n    return json1.position == json2.position && json1.value == json2.value;\\n  }\\n  static fromJSON(json) {\\n    return new RampPoint(json.position, json.value);\\n  }\\n};\\nvar RampInterpolation;\\n(function(RampInterpolation2) {\\n  RampInterpolation2[\\\\\\\"LINEAR\\\\\\\"] = \\\\\\\"linear\\\\\\\";\\n})(RampInterpolation || (RampInterpolation = {}));\\nvar RampValue = class {\\n  constructor(_interpolation = RampInterpolation.LINEAR, _points2 = []) {\\n    this._interpolation = _interpolation;\\n    this._points = _points2;\\n    this._uuid = generateUUID();\\n  }\\n  uuid() {\\n    return this._uuid;\\n  }\\n  interpolation() {\\n    return this._interpolation;\\n  }\\n  points() {\\n    return this._points;\\n  }\\n  static fromJSON(json) {\\n    const points2 = [];\\n    for (let jsonPoint of json.points) {\\n      points2.push(RampPoint.fromJSON(jsonPoint));\\n    }\\n    return new RampValue(json.interpolation, points2);\\n  }\\n  toJSON() {\\n    return {\\n      interpolation: this._interpolation,\\n      points: this._points.map((p) => p.toJSON())\\n    };\\n  }\\n  clone() {\\n    const ramp = new RampValue();\\n    ramp.copy(this);\\n    return ramp;\\n  }\\n  copy(ramp) {\\n    this._interpolation = ramp.interpolation();\\n    let index = 0;\\n    for (let point of ramp.points()) {\\n      const current_point = this._points[index];\\n      if (current_point) {\\n        current_point.copy(point);\\n      } else {\\n        this._points.push(point.clone());\\n      }\\n      index += 1;\\n    }\\n  }\\n  is_equal(other_ramp_value) {\\n    if (this._interpolation != other_ramp_value.interpolation()) {\\n      return false;\\n    }\\n    const other_points = other_ramp_value.points();\\n    if (this._points.length != other_points.length) {\\n      return false;\\n    }\\n    let index = 0;\\n    for (let point of this._points) {\\n      const other_point = other_points[index];\\n      if (!point.isEqual(other_point)) {\\n        return false;\\n      }\\n      index += 1;\\n    }\\n    return true;\\n  }\\n  is_equal_json(json) {\\n    if (this._interpolation != json.interpolation) {\\n      return false;\\n    }\\n    if (this._points.length != json.points.length) {\\n      return false;\\n    }\\n    let index = 0;\\n    for (let point of this._points) {\\n      const other_point = json.points[index];\\n      if (!point.isEqualJSON(other_point)) {\\n        return false;\\n      }\\n      index += 1;\\n    }\\n    return true;\\n  }\\n  static are_json_equal(json1, json2) {\\n    if (json1.interpolation != json2.interpolation) {\\n      return false;\\n    }\\n    if (json1.points.length != json2.points.length) {\\n      return false;\\n    }\\n    let index = 0;\\n    for (let point1 of json1.points) {\\n      const point2 = json2.points[index];\\n      if (!RampPoint.areEqualJSON(point1, point2)) {\\n        return false;\\n      }\\n      index += 1;\\n    }\\n    return true;\\n  }\\n  from_json(json) {\\n    this._interpolation = json.interpolation;\\n    let index = 0;\\n    for (let json_point of json.points) {\\n      const current_point = this._points[index];\\n      if (current_point) {\\n        current_point.fromJSON(json_point);\\n      } else {\\n        this._points.push(RampPoint.fromJSON(json_point));\\n      }\\n      index += 1;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Ramp.ts\\nvar TEXTURE_WIDTH = 1024;\\nvar TEXTURE_HEIGHT = 1;\\nvar TEXTURE_SIZE = TEXTURE_WIDTH * TEXTURE_HEIGHT;\\nvar TEXTURE_BYTES_MULT = 255;\\nvar RampParam2 = class extends TypedParam {\\n  constructor() {\\n    super(...arguments);\\n    this._texture_data = new Uint8Array(3 * TEXTURE_SIZE);\\n    this._ramp_texture = new DataTexture(this._texture_data, TEXTURE_WIDTH, TEXTURE_HEIGHT, RGBFormat);\\n  }\\n  static type() {\\n    return ParamType.RAMP;\\n  }\\n  defaultValueSerialized() {\\n    if (this._default_value instanceof RampValue) {\\n      return this._default_value.toJSON();\\n    } else {\\n      return this._default_value;\\n    }\\n  }\\n  _clone_raw_input(raw_input) {\\n    if (raw_input instanceof RampValue) {\\n      return raw_input.clone();\\n    } else {\\n      return RampValue.fromJSON(raw_input).toJSON();\\n    }\\n  }\\n  rawInputSerialized() {\\n    if (this._raw_input instanceof RampValue) {\\n      return this._raw_input.toJSON();\\n    } else {\\n      return RampValue.fromJSON(this._raw_input).toJSON();\\n    }\\n  }\\n  valueSerialized() {\\n    return this.value.toJSON();\\n  }\\n  _copy_value(param) {\\n    this.set(param.valueSerialized());\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    if (raw_input1 instanceof RampValue) {\\n      if (raw_input2 instanceof RampValue) {\\n        return raw_input1.is_equal(raw_input2);\\n      } else {\\n        return raw_input1.is_equal_json(raw_input2);\\n      }\\n    } else {\\n      if (raw_input2 instanceof RampValue) {\\n        return raw_input2.is_equal_json(raw_input1);\\n      } else {\\n        return RampValue.are_json_equal(raw_input1, raw_input2);\\n      }\\n    }\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1.is_equal(val2);\\n  }\\n  isDefault() {\\n    if (this._default_value instanceof RampValue) {\\n      return this.value.is_equal(this._default_value);\\n    } else {\\n      return this.value.is_equal_json(this._default_value);\\n    }\\n  }\\n  processRawInput() {\\n    if (this._raw_input instanceof RampValue) {\\n      if (!this._value) {\\n        this._value = this._raw_input;\\n      } else {\\n        this._value.copy(this._raw_input);\\n      }\\n    } else {\\n      if (!this._value) {\\n        this._value = RampValue.fromJSON(this._raw_input);\\n      } else {\\n        this._value.from_json(this._raw_input);\\n      }\\n    }\\n    this._resetRampInterpolant();\\n    this._updateRampTexture();\\n    this.options.executeCallback();\\n    this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n    this.setSuccessorsDirty(this);\\n  }\\n  hasExpression() {\\n    return false;\\n  }\\n  _resetRampInterpolant() {\\n    this._ramp_interpolant = void 0;\\n  }\\n  rampTexture() {\\n    return this._ramp_texture;\\n  }\\n  _updateRampTexture() {\\n    this._updateRampTextureData();\\n    this.rampTexture().needsUpdate = true;\\n  }\\n  _updateRampTextureData() {\\n    let stride = 0;\\n    let position = 0;\\n    let value = 0;\\n    for (var i = 0; i < TEXTURE_SIZE; i++) {\\n      stride = i * 3;\\n      position = i / TEXTURE_WIDTH;\\n      value = this.valueAtPosition(position);\\n      if (value <= 0) {\\n        this._texture_data[stride + 0] = (clamp(value, -1, 0) + 1) * TEXTURE_BYTES_MULT;\\n        this._texture_data[stride + 1] = 0;\\n        this._texture_data[stride + 2] = 0;\\n      } else {\\n        if (value <= 1) {\\n          this._texture_data[stride + 0] = TEXTURE_BYTES_MULT;\\n          this._texture_data[stride + 1] = clamp(value, 0, 1) * TEXTURE_BYTES_MULT;\\n          this._texture_data[stride + 2] = 0;\\n        } else {\\n          this._texture_data[stride + 0] = TEXTURE_BYTES_MULT;\\n          this._texture_data[stride + 1] = TEXTURE_BYTES_MULT;\\n          this._texture_data[stride + 2] = (clamp(value, 1, 2) - 1) * TEXTURE_BYTES_MULT;\\n        }\\n      }\\n    }\\n  }\\n  static createInterpolant(positions, values) {\\n    const valuesCount = 1;\\n    const interpolatedValues = new Float32Array(valuesCount);\\n    return new CubicInterpolant(positions, values, valuesCount, interpolatedValues);\\n  }\\n  interpolant() {\\n    return this._ramp_interpolant = this._ramp_interpolant || this._createInterpolant();\\n  }\\n  _createInterpolant() {\\n    const points2 = this.value.points();\\n    const sortedPoints = ArrayUtils.sortBy(points2, (point) => point.position());\\n    const positions = new Float32Array(sortedPoints.length);\\n    const values = new Float32Array(sortedPoints.length);\\n    let i = 0;\\n    for (let sortedPoint of sortedPoints) {\\n      positions[i] = sortedPoint.position();\\n      values[i] = sortedPoint.value();\\n      i++;\\n    }\\n    return RampParam2.createInterpolant(positions, values);\\n  }\\n  valueAtPosition(position) {\\n    return this.interpolant().evaluate(position)[0];\\n  }\\n};\\nvar RampParam = RampParam2;\\nRampParam.DEFAULT_VALUE = new RampValue(RampInterpolation.LINEAR, [new RampPoint(0, 0), new RampPoint(1, 1)]);\\nRampParam.DEFAULT_VALUE_JSON = RampParam2.DEFAULT_VALUE.toJSON();\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/String.ts\\nvar StringParam = class extends TypedParam {\\n  static type() {\\n    return ParamType.STRING;\\n  }\\n  defaultValueSerialized() {\\n    return this._default_value;\\n  }\\n  _clone_raw_input(raw_input) {\\n    return `${raw_input}`;\\n  }\\n  rawInputSerialized() {\\n    return `${this._raw_input}`;\\n  }\\n  valueSerialized() {\\n    return `${this.value}`;\\n  }\\n  _copy_value(param) {\\n    this.set(param.value);\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    return raw_input1 == raw_input2;\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1 == val2;\\n  }\\n  isDefault() {\\n    return this._raw_input == this._default_value;\\n  }\\n  convert(raw_val) {\\n    if (CoreType.isString(raw_val)) {\\n      return raw_val;\\n    }\\n    return `${raw_val}`;\\n  }\\n  rawInput() {\\n    return this._raw_input;\\n  }\\n  processRawInput() {\\n    this.states.error.clear();\\n    if (this._value_elements(this._raw_input).length >= 3) {\\n      this._expression_controller = this._expression_controller || new ExpressionController(this);\\n      if (this._raw_input != this._expression_controller.expression()) {\\n        this._expression_controller.set_expression(this._raw_input);\\n        this.setDirty();\\n        this.emitController.emit(ParamEvent.EXPRESSION_UPDATED);\\n      }\\n    } else {\\n      if (this._raw_input != this._value) {\\n        this._value = this._raw_input;\\n        this.removeDirtyState();\\n        this.setSuccessorsDirty(this);\\n        this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n        this.options.executeCallback();\\n        if (this._expression_controller) {\\n          this._expression_controller.set_expression(void 0, false);\\n          this.emitController.emit(ParamEvent.EXPRESSION_UPDATED);\\n        }\\n      }\\n    }\\n  }\\n  async processComputation() {\\n    if (this.expressionController?.active() && !this.expressionController.requires_entities()) {\\n      const expression_result = await this.expressionController.computeExpression();\\n      if (this.expressionController.is_errored()) {\\n        this.states.error.set(`expression error: ${this.expressionController.error_message()}`);\\n      } else {\\n        const converted = this.convert(expression_result);\\n        if (converted != null) {\\n          this._value = converted;\\n          this.emitController.emit(ParamEvent.VALUE_UPDATED);\\n          this.options.executeCallback();\\n        } else {\\n          this.states.error.set(`expression returns an invalid type (${expression_result})`);\\n        }\\n        this.removeDirtyState();\\n      }\\n    }\\n  }\\n  _value_elements(v) {\\n    return ParsedTree.string_value_elements(v);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Vector2.ts\\nvar COMPONENT_NAMES_VECTOR2 = [\\\\\\\"x\\\\\\\", \\\\\\\"y\\\\\\\"];\\nvar Vector2Param = class extends TypedMultipleParam {\\n  constructor() {\\n    super(...arguments);\\n    this._value = new Vector2();\\n    this._copied_value = [0, 0];\\n  }\\n  static type() {\\n    return ParamType.VECTOR2;\\n  }\\n  componentNames() {\\n    return COMPONENT_NAMES_VECTOR2;\\n  }\\n  defaultValueSerialized() {\\n    if (CoreType.isArray(this._default_value)) {\\n      return this._default_value;\\n    } else {\\n      return this._default_value.toArray();\\n    }\\n  }\\n  valueSerialized() {\\n    return this.value.toArray();\\n  }\\n  _copy_value(param) {\\n    param.value.toArray(this._copied_value);\\n    this.set(this._copied_value);\\n  }\\n  _clone_raw_input(raw_input) {\\n    if (raw_input instanceof Vector2) {\\n      return raw_input.clone();\\n    } else {\\n      const new_array = [raw_input[0], raw_input[1]];\\n      if (new_array[0] == null) {\\n        new_array[0] = new_array[0] || 0;\\n      }\\n      if (new_array[1] == null) {\\n        new_array[1] = new_array[1] || new_array[0];\\n      }\\n      return new_array;\\n    }\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    if (raw_input1 instanceof Vector2) {\\n      if (raw_input2 instanceof Vector2) {\\n        return raw_input1.equals(raw_input2);\\n      } else {\\n        return raw_input1.x == raw_input2[0] && raw_input1.y == raw_input2[1];\\n      }\\n    } else {\\n      if (raw_input2 instanceof Vector2) {\\n        return raw_input1[0] == raw_input2.x && raw_input1[1] == raw_input2.y;\\n      } else {\\n        return raw_input1[0] == raw_input2[0] && raw_input1[1] == raw_input2[1];\\n      }\\n    }\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1.equals(val2);\\n  }\\n  initComponents() {\\n    super.initComponents();\\n    this.x = this.components[0];\\n    this.y = this.components[1];\\n  }\\n  set_value_from_components() {\\n    this._value.x = this.x.value;\\n    this._value.y = this.y.value;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Vector3.ts\\nvar COMPONENT_NAMES_VECTOR3 = [\\\\\\\"x\\\\\\\", \\\\\\\"y\\\\\\\", \\\\\\\"z\\\\\\\"];\\nvar Vector3Param = class extends TypedMultipleParam {\\n  constructor() {\\n    super(...arguments);\\n    this._value = new Vector3();\\n    this._copied_value = [0, 0, 0];\\n  }\\n  static type() {\\n    return ParamType.VECTOR3;\\n  }\\n  componentNames() {\\n    return COMPONENT_NAMES_VECTOR3;\\n  }\\n  defaultValueSerialized() {\\n    if (CoreType.isArray(this._default_value)) {\\n      return this._default_value;\\n    } else {\\n      return this._default_value.toArray();\\n    }\\n  }\\n  valueSerialized() {\\n    return this.value.toArray();\\n  }\\n  _copy_value(param) {\\n    param.value.toArray(this._copied_value);\\n    this.set(this._copied_value);\\n  }\\n  _clone_raw_input(raw_input) {\\n    if (raw_input instanceof Vector3) {\\n      return raw_input.clone();\\n    } else {\\n      const new_array = [raw_input[0], raw_input[1], raw_input[2]];\\n      if (new_array[0] == null) {\\n        new_array[0] = new_array[0] || 0;\\n      }\\n      if (new_array[1] == null) {\\n        new_array[1] = new_array[1] || new_array[0];\\n      }\\n      if (new_array[2] == null) {\\n        new_array[2] = new_array[2] || new_array[1];\\n      }\\n      return new_array;\\n    }\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    if (raw_input1 instanceof Vector3) {\\n      if (raw_input2 instanceof Vector3) {\\n        return raw_input1.equals(raw_input2);\\n      } else {\\n        return raw_input1.x == raw_input2[0] && raw_input1.y == raw_input2[1] && raw_input1.z == raw_input2[2];\\n      }\\n    } else {\\n      if (raw_input2 instanceof Vector3) {\\n        return raw_input1[0] == raw_input2.x && raw_input1[1] == raw_input2.y && raw_input1[2] == raw_input2.z;\\n      } else {\\n        return raw_input1[0] == raw_input2[0] && raw_input1[1] == raw_input2[1] && raw_input1[2] == raw_input2[2];\\n      }\\n    }\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1.equals(val2);\\n  }\\n  initComponents() {\\n    super.initComponents();\\n    this.x = this.components[0];\\n    this.y = this.components[1];\\n    this.z = this.components[2];\\n  }\\n  set_value_from_components() {\\n    this._value.x = this.x.value;\\n    this._value.y = this.y.value;\\n    this._value.z = this.z.value;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/Vector4.ts\\nvar COMPONENT_NAMES_VECTOR4 = [\\\\\\\"x\\\\\\\", \\\\\\\"y\\\\\\\", \\\\\\\"z\\\\\\\", \\\\\\\"w\\\\\\\"];\\nvar Vector4Param = class extends TypedMultipleParam {\\n  constructor() {\\n    super(...arguments);\\n    this._value = new Vector4();\\n    this._copied_value = [0, 0, 0, 0];\\n  }\\n  static type() {\\n    return ParamType.VECTOR4;\\n  }\\n  componentNames() {\\n    return COMPONENT_NAMES_VECTOR4;\\n  }\\n  defaultValueSerialized() {\\n    if (CoreType.isArray(this._default_value)) {\\n      return this._default_value;\\n    } else {\\n      return this._default_value.toArray();\\n    }\\n  }\\n  valueSerialized() {\\n    return this.value.toArray();\\n  }\\n  _copy_value(param) {\\n    param.value.toArray(this._copied_value);\\n    this.set(this._copied_value);\\n  }\\n  _clone_raw_input(raw_input) {\\n    if (raw_input instanceof Vector4) {\\n      return raw_input.clone();\\n    } else {\\n      const new_array = [raw_input[0], raw_input[1], raw_input[2], raw_input[3]];\\n      if (new_array[0] == null) {\\n        new_array[0] = new_array[0] || 0;\\n      }\\n      if (new_array[1] == null) {\\n        new_array[1] = new_array[1] || new_array[0];\\n      }\\n      if (new_array[2] == null) {\\n        new_array[2] = new_array[2] || new_array[1];\\n      }\\n      if (new_array[3] == null) {\\n        new_array[3] = new_array[3] || new_array[2];\\n      }\\n      return new_array;\\n    }\\n  }\\n  static are_raw_input_equal(raw_input1, raw_input2) {\\n    if (raw_input1 instanceof Vector4) {\\n      if (raw_input2 instanceof Vector4) {\\n        return raw_input1.equals(raw_input2);\\n      } else {\\n        return raw_input1.x == raw_input2[0] && raw_input1.y == raw_input2[1] && raw_input1.z == raw_input2[2] && raw_input1.w == raw_input2[3];\\n      }\\n    } else {\\n      if (raw_input2 instanceof Vector4) {\\n        return raw_input1[0] == raw_input2.x && raw_input1[1] == raw_input2.y && raw_input1[2] == raw_input2.z && raw_input1[3] == raw_input2.w;\\n      } else {\\n        return raw_input1[0] == raw_input2[0] && raw_input1[1] == raw_input2[1] && raw_input1[2] == raw_input2[2] && raw_input1[3] == raw_input2[3];\\n      }\\n    }\\n  }\\n  static are_values_equal(val1, val2) {\\n    return val1.equals(val2);\\n  }\\n  initComponents() {\\n    super.initComponents();\\n    this.x = this.components[0];\\n    this.y = this.components[1];\\n    this.z = this.components[2];\\n    this.w = this.components[3];\\n  }\\n  set_value_from_components() {\\n    this._value.x = this.x.value;\\n    this._value.y = this.y.value;\\n    this._value.z = this.z.value;\\n    this._value.w = this.w.value;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/params/types/ParamConstructorByType.ts\\nvar ParamConstructorByType = {\\n  [ParamType.BOOLEAN]: BooleanParam,\\n  [ParamType.BUTTON]: ButtonParam,\\n  [ParamType.COLOR]: ColorParam,\\n  [ParamType.FLOAT]: FloatParam,\\n  [ParamType.FOLDER]: FolderParam,\\n  [ParamType.INTEGER]: IntegerParam,\\n  [ParamType.OPERATOR_PATH]: OperatorPathParam,\\n  [ParamType.PARAM_PATH]: ParamPathParam,\\n  [ParamType.NODE_PATH]: NodePathParam,\\n  [ParamType.RAMP]: RampParam,\\n  [ParamType.STRING]: StringParam,\\n  [ParamType.VECTOR2]: Vector2Param,\\n  [ParamType.VECTOR3]: Vector3Param,\\n  [ParamType.VECTOR4]: Vector4Param\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/params/ParamsLabelController.ts\\nvar ParamsLabelController = class {\\n  dispose() {\\n    this._callback = void 0;\\n  }\\n  params() {\\n    return this._params;\\n  }\\n  callback() {\\n    return this._callback;\\n  }\\n  init(params, callback) {\\n    this._params = params;\\n    if (callback) {\\n      this._callback = callback;\\n    } else {\\n      const param = this._params[0];\\n      switch (param.type()) {\\n        case ParamType.STRING:\\n          return this._handle_string_param(param);\\n        case ParamType.OPERATOR_PATH:\\n          return this._handle_operator_path_param(param);\\n        case ParamType.NODE_PATH:\\n          return this._handle_node_path_param(param);\\n        case ParamType.PARAM_PATH:\\n          return this._handle_param_path_param(param);\\n        case ParamType.FLOAT:\\n          return this._handle_number_param(param);\\n        case ParamType.INTEGER:\\n          return this._handle_number_param(param);\\n      }\\n    }\\n  }\\n  _handle_string_param(param) {\\n    this._callback = () => {\\n      return param.value;\\n    };\\n  }\\n  _handle_operator_path_param(param) {\\n    this._callback = () => {\\n      return param.value;\\n    };\\n  }\\n  _handle_node_path_param(param) {\\n    this._callback = () => {\\n      return param.value.path();\\n    };\\n  }\\n  _handle_param_path_param(param) {\\n    this._callback = () => {\\n      return param.value.path();\\n    };\\n  }\\n  _handle_number_param(param) {\\n    this._callback = () => {\\n      return `${param.value}`;\\n    };\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/params/ParamsController.ts\\nvar NODE_SIMPLE_NAME = \\\\\\\"params\\\\\\\";\\nvar ParamsController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._param_create_mode = false;\\n    this._params_created = false;\\n    this._params_by_name = {};\\n    this._params_list = [];\\n    this._param_names = [];\\n    this._non_spare_params = [];\\n    this._spare_params = [];\\n    this._non_spare_param_names = [];\\n    this._spare_param_names = [];\\n    this._params_added_since_last_params_eval = false;\\n  }\\n  get label() {\\n    return this._label_controller = this._label_controller || new ParamsLabelController();\\n  }\\n  hasLabelController() {\\n    return this._label_controller != null;\\n  }\\n  dispose() {\\n    if (this._params_node) {\\n      this._params_node.dispose();\\n    }\\n    for (let param of this.all) {\\n      param.dispose();\\n    }\\n    this._post_create_params_hook_names = void 0;\\n    this._post_create_params_hooks = void 0;\\n    this._on_scene_load_hooks = void 0;\\n    this._on_scene_load_hook_names = void 0;\\n    this._label_controller?.dispose();\\n  }\\n  initDependencyNode() {\\n    if (!this._params_node) {\\n      this._params_node = new CoreGraphNode(this.node.scene(), NODE_SIMPLE_NAME);\\n      this.node.addGraphInput(this._params_node, false);\\n    }\\n  }\\n  init() {\\n    this.initDependencyNode();\\n    this._param_create_mode = true;\\n    this._initFromParamsConfig();\\n    this.node.createParams();\\n    this._postCreateParams();\\n  }\\n  _postCreateParams() {\\n    this._updateCaches();\\n    this._initParamAccessors();\\n    this._param_create_mode = false;\\n    this._params_created = true;\\n    this._runPostCreateParamsHooks();\\n  }\\n  postCreateSpareParams() {\\n    this._updateCaches();\\n    this._initParamAccessors();\\n    this.node.scene().referencesController.notifyParamsUpdated(this.node);\\n    this.node.emit(NodeEvent.PARAMS_UPDATED);\\n  }\\n  updateParams(options) {\\n    let has_created_a_param = false;\\n    let has_deleted_a_param = false;\\n    if (options.namesToDelete) {\\n      for (let param_name of options.namesToDelete) {\\n        if (this.has(param_name)) {\\n          this._deleteParam(param_name);\\n          has_deleted_a_param = true;\\n        }\\n      }\\n    }\\n    if (options.toAdd) {\\n      for (let param_data of options.toAdd) {\\n        const param = this.addParam(param_data.type, param_data.name, param_data.init_value, param_data.options);\\n        if (param) {\\n          if (param_data.raw_input != null) {\\n            param.set(param_data.raw_input);\\n          }\\n          has_created_a_param = true;\\n        }\\n      }\\n    }\\n    if (has_deleted_a_param || has_created_a_param) {\\n      this.postCreateSpareParams();\\n    }\\n  }\\n  _initFromParamsConfig() {\\n    const paramsConfig = this.node.paramsConfig;\\n    let init_values_used = false;\\n    if (paramsConfig) {\\n      for (let name of Object.keys(paramsConfig)) {\\n        const config = paramsConfig[name];\\n        let init_value;\\n        if (this.node.params_init_value_overrides) {\\n          init_value = this.node.params_init_value_overrides[name];\\n          init_values_used = true;\\n        }\\n        this.addParam(config.type, name, config.init_value, config.options, init_value);\\n      }\\n    }\\n    if (init_values_used) {\\n      this.node.setDirty();\\n    }\\n    this.node.params_init_value_overrides = void 0;\\n  }\\n  _initParamAccessors() {\\n    let current_names_in_accessor = Object.getOwnPropertyNames(this.node.pv);\\n    this._removeUnneededAccessors(current_names_in_accessor);\\n    current_names_in_accessor = Object.getOwnPropertyNames(this.node.pv);\\n    for (let param of this.all) {\\n      const is_spare = param.options.isSpare();\\n      const param_not_yet_in_accessors = !current_names_in_accessor.includes(param.name());\\n      if (param_not_yet_in_accessors || is_spare) {\\n        Object.defineProperty(this.node.pv, param.name(), {\\n          get: () => {\\n            return param.value;\\n          },\\n          configurable: is_spare\\n        });\\n        Object.defineProperty(this.node.p, param.name(), {\\n          get: () => {\\n            return param;\\n          },\\n          configurable: is_spare\\n        });\\n      }\\n    }\\n  }\\n  _removeUnneededAccessors(current_names_in_accessor) {\\n    const current_param_names = this._param_names;\\n    const names_to_remove = [];\\n    for (let current_name_in_accessor of current_names_in_accessor) {\\n      if (!current_param_names.includes(current_name_in_accessor)) {\\n        names_to_remove.push(current_name_in_accessor);\\n      }\\n    }\\n    for (let name_to_remove of names_to_remove) {\\n      Object.defineProperty(this.node.pv, name_to_remove, {\\n        get: () => {\\n          return void 0;\\n        },\\n        configurable: true\\n      });\\n      Object.defineProperty(this.node.p, name_to_remove, {\\n        get: () => {\\n          return void 0;\\n        },\\n        configurable: true\\n      });\\n    }\\n  }\\n  get params_node() {\\n    return this._params_node;\\n  }\\n  get all() {\\n    return this._params_list;\\n  }\\n  get non_spare() {\\n    return this._non_spare_params;\\n  }\\n  get spare() {\\n    return this._spare_params;\\n  }\\n  get names() {\\n    return this._param_names;\\n  }\\n  get non_spare_names() {\\n    return this._non_spare_param_names;\\n  }\\n  get spare_names() {\\n    return this._spare_param_names;\\n  }\\n  set_with_type(param_name, value, type) {\\n    const param = this.param_with_type(param_name, type);\\n    if (param) {\\n      param.set(value);\\n    } else {\\n      Poly.warn(`param ${param_name} not found with type ${type}`);\\n    }\\n  }\\n  set_float(param_name, value) {\\n    this.set_with_type(param_name, value, ParamType.FLOAT);\\n  }\\n  set_vector3(param_name, value) {\\n    this.set_with_type(param_name, value, ParamType.VECTOR3);\\n  }\\n  has_param(param_name) {\\n    return this._params_by_name[param_name] != null;\\n  }\\n  has(param_name) {\\n    return this.has_param(param_name);\\n  }\\n  get(param_name) {\\n    return this.param(param_name);\\n  }\\n  param_with_type(param_name, type) {\\n    const param = this.param(param_name);\\n    if (param && param.type() == type) {\\n      return param;\\n    }\\n  }\\n  get_float(param_name) {\\n    return this.param_with_type(param_name, ParamType.FLOAT);\\n  }\\n  get_operator_path(param_name) {\\n    return this.param_with_type(param_name, ParamType.OPERATOR_PATH);\\n  }\\n  value(param_name) {\\n    return this.param(param_name)?.value;\\n  }\\n  value_with_type(param_name, type) {\\n    return this.param_with_type(param_name, type)?.value;\\n  }\\n  boolean(param_name) {\\n    return this.value_with_type(param_name, ParamType.BOOLEAN);\\n  }\\n  float(param_name) {\\n    return this.value_with_type(param_name, ParamType.FLOAT);\\n  }\\n  integer(param_name) {\\n    return this.value_with_type(param_name, ParamType.INTEGER);\\n  }\\n  string(param_name) {\\n    return this.value_with_type(param_name, ParamType.STRING);\\n  }\\n  vector2(param_name) {\\n    return this.value_with_type(param_name, ParamType.VECTOR2);\\n  }\\n  vector3(param_name) {\\n    return this.value_with_type(param_name, ParamType.VECTOR3);\\n  }\\n  color(param_name) {\\n    return this.value_with_type(param_name, ParamType.COLOR);\\n  }\\n  param(param_name) {\\n    const p = this._params_by_name[param_name];\\n    if (p != null) {\\n      return p;\\n    } else {\\n      Poly.warn(`tried to access param '${param_name}' in node ${this.node.path()}, but existing params are: ${this.names} on node ${this.node.path()}`);\\n      return null;\\n    }\\n  }\\n  _deleteParam(param_name) {\\n    const param = this._params_by_name[param_name];\\n    if (param) {\\n      if (this._params_node) {\\n        this._params_node.removeGraphInput(this._params_by_name[param_name]);\\n      }\\n      param._setupNodeDependencies(null);\\n      delete this._params_by_name[param_name];\\n      if (param.isMultiple() && param.components) {\\n        for (let component of param.components) {\\n          const child_name = component.name();\\n          delete this._params_by_name[child_name];\\n        }\\n      }\\n    } else {\\n      throw new Error(`param '${param_name}' does not exist on node ${this.node.path()}`);\\n    }\\n  }\\n  addParam(type, param_name, default_value, options = {}, init_data) {\\n    const is_spare = options[\\\\\\\"spare\\\\\\\"] || false;\\n    if (this._param_create_mode === false && !is_spare) {\\n      Poly.warn(`node ${this.node.path()} (${this.node.type()}) param '${param_name}' cannot be created outside of create_params`);\\n    }\\n    if (this.node.scene() == null) {\\n      Poly.warn(`node ${this.node.path()} (${this.node.type()}) has no scene assigned`);\\n    }\\n    const constructor = ParamConstructorByType[type];\\n    if (constructor != null) {\\n      const existing_param = this._params_by_name[param_name];\\n      if (existing_param) {\\n        if (is_spare) {\\n          if (existing_param.type() != type) {\\n            this._deleteParam(existing_param.name());\\n          }\\n        } else {\\n          Poly.warn(`a param named ${param_name} already exists`, this.node);\\n        }\\n      }\\n      const param = new constructor(this.node.scene(), this.node);\\n      param.options.set(options);\\n      param.setName(param_name);\\n      param.setInitValue(default_value);\\n      param.initComponents();\\n      if (init_data == null) {\\n        param.set(default_value);\\n      } else {\\n        if (param.options.isExpressionForEntities()) {\\n          param.set(default_value);\\n        }\\n        if (init_data.raw_input != null) {\\n          param.set(init_data.raw_input);\\n        } else {\\n          if (init_data.simple_data != null) {\\n            param.set(init_data.simple_data);\\n          } else {\\n            if (init_data.complex_data != null) {\\n              const raw_input = init_data.complex_data.raw_input;\\n              if (raw_input) {\\n                param.set(raw_input);\\n              } else {\\n                param.set(default_value);\\n              }\\n              const overriden_options = init_data.complex_data.overriden_options;\\n              if (overriden_options != null) {\\n                const keys = Object.keys(overriden_options);\\n                for (let key of keys) {\\n                  param.options.setOption(key, overriden_options[key]);\\n                }\\n              }\\n            }\\n          }\\n        }\\n      }\\n      param._setupNodeDependencies(this.node);\\n      this._params_by_name[param.name()] = param;\\n      if (param.isMultiple() && param.components) {\\n        for (let component of param.components) {\\n          this._params_by_name[component.name()] = component;\\n        }\\n      }\\n      this._params_added_since_last_params_eval = true;\\n      return param;\\n    }\\n  }\\n  _updateCaches() {\\n    this._params_list = Object.values(this._params_by_name);\\n    this._param_names = Object.keys(this._params_by_name);\\n    this._non_spare_params = Object.values(this._params_by_name).filter((p) => !p.options.isSpare());\\n    this._spare_params = Object.values(this._params_by_name).filter((p) => p.options.isSpare());\\n    this._non_spare_param_names = Object.values(this._params_by_name).filter((p) => !p.options.isSpare()).map((p) => p.name());\\n    this._spare_param_names = Object.values(this._params_by_name).filter((p) => p.options.isSpare()).map((p) => p.name());\\n  }\\n  async _evalParam(param) {\\n    if (param.isDirty()) {\\n      await param.compute();\\n      if (param.states.error.active()) {\\n        this.node.states.error.set(`param '${param.name()}' error: ${param.states.error.message()}`);\\n      }\\n    } else {\\n    }\\n  }\\n  async evalParams(params) {\\n    const promises = [];\\n    for (let param of params) {\\n      if (param.isDirty()) {\\n        promises.push(this._evalParam(param));\\n      }\\n    }\\n    await Promise.all(promises);\\n    if (this.node.states.error.active()) {\\n      this.node._setContainer(null);\\n    }\\n  }\\n  paramsEvalRequired() {\\n    return this._params_node != null && (this._params_node.isDirty() || this._params_added_since_last_params_eval);\\n  }\\n  async evalAll() {\\n    if (this.paramsEvalRequired()) {\\n      await this.evalParams(this._params_list);\\n      this._params_node?.removeDirtyState();\\n      this._params_added_since_last_params_eval = false;\\n    }\\n  }\\n  onParamsCreated(hook_name, hook) {\\n    if (this._params_created) {\\n      hook();\\n    } else {\\n      if (this._post_create_params_hook_names && this._post_create_params_hook_names.includes(hook_name)) {\\n        Poly.error(`hook name ${hook_name} already exists`);\\n        return;\\n      }\\n      this._post_create_params_hook_names = this._post_create_params_hook_names || [];\\n      this._post_create_params_hook_names.push(hook_name);\\n      this._post_create_params_hooks = this._post_create_params_hooks || [];\\n      this._post_create_params_hooks.push(hook);\\n    }\\n  }\\n  addOnSceneLoadHook(param_name, method) {\\n    this._on_scene_load_hook_names = this._on_scene_load_hook_names || [];\\n    this._on_scene_load_hooks = this._on_scene_load_hooks || [];\\n    if (!this._on_scene_load_hook_names.includes(param_name)) {\\n      this._on_scene_load_hook_names.push(param_name);\\n      this._on_scene_load_hooks.push(method);\\n    } else {\\n      Poly.warn(`hook with name ${param_name} already exists`, this.node);\\n    }\\n  }\\n  _runPostCreateParamsHooks() {\\n    if (this._post_create_params_hooks) {\\n      for (let hook of this._post_create_params_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n  runOnSceneLoadHooks() {\\n    if (this._on_scene_load_hooks) {\\n      for (let hook of this._on_scene_load_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/params/ParamsValueAccessor.ts\\nvar ParamsValueAccessor = class {\\n  constructor() {\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/NodeConnection.ts\\nvar TypedNodeConnection2 = class {\\n  constructor(_node_src, _node_dest, _output_index = 0, _input_index = 0) {\\n    this._node_src = _node_src;\\n    this._node_dest = _node_dest;\\n    this._output_index = _output_index;\\n    this._input_index = _input_index;\\n    if (this._output_index == null) {\\n      throw \\\\\\\"bad output index\\\\\\\";\\n    }\\n    if (this._input_index == null) {\\n      throw \\\\\\\"bad input index\\\\\\\";\\n    }\\n    this._id = TypedNodeConnection2._next_id++;\\n    if (this._node_src.io.connections && this._node_dest.io.connections) {\\n      this._node_src.io.connections.addOutputConnection(this);\\n      this._node_dest.io.connections.addInputConnection(this);\\n    }\\n  }\\n  get id() {\\n    return this._id;\\n  }\\n  get node_src() {\\n    return this._node_src;\\n  }\\n  get node_dest() {\\n    return this._node_dest;\\n  }\\n  get output_index() {\\n    return this._output_index;\\n  }\\n  get input_index() {\\n    return this._input_index;\\n  }\\n  src_connection_point() {\\n    const node_src = this._node_src;\\n    const output_index = this._output_index;\\n    return node_src.io.outputs.namedOutputConnectionPoints()[output_index];\\n  }\\n  dest_connection_point() {\\n    const node_dest = this._node_dest;\\n    const input_index = this._input_index;\\n    return node_dest.io.inputs.namedInputConnectionPoints()[input_index];\\n  }\\n  disconnect(options = {}) {\\n    if (this._node_src.io.connections && this._node_dest.io.connections) {\\n      this._node_src.io.connections.removeOutputConnection(this);\\n      this._node_dest.io.connections.removeInputConnection(this);\\n    }\\n    if (options.setInput === true) {\\n      this._node_dest.io.inputs.setInput(this._input_index, null);\\n    }\\n  }\\n};\\nvar TypedNodeConnection = TypedNodeConnection2;\\nTypedNodeConnection._next_id = 0;\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/utils/ClonedStatesController.ts\\nvar ClonedStatesController2 = class {\\n  constructor(inputs_controller) {\\n    this.inputs_controller = inputs_controller;\\n    this._clone_required_states = [];\\n    this._overridden = false;\\n    this.node = inputs_controller.node;\\n  }\\n  initInputsClonedState(states) {\\n    if (CoreType.isArray(states)) {\\n      this._cloned_states = states;\\n    } else {\\n      this._cloned_state = states;\\n    }\\n    this._update_clone_required_state();\\n  }\\n  overrideClonedStateAllowed() {\\n    if (this._cloned_states) {\\n      for (let state of this._cloned_states) {\\n        if (state == InputCloneMode.FROM_NODE) {\\n          return true;\\n        }\\n      }\\n    }\\n    if (this._cloned_state) {\\n      return this._cloned_state == InputCloneMode.FROM_NODE;\\n    }\\n    return false;\\n  }\\n  cloneRequiredState(index) {\\n    return this._clone_required_states[index];\\n  }\\n  cloneRequiredStates() {\\n    return this._clone_required_states;\\n  }\\n  _get_clone_required_state(index) {\\n    const states = this._cloned_states;\\n    if (states) {\\n      const state = states[index];\\n      if (state != null) {\\n        return this.clone_required_from_state(state);\\n      }\\n    }\\n    if (this._cloned_state) {\\n      return this.clone_required_from_state(this._cloned_state);\\n    }\\n    return true;\\n  }\\n  clone_required_from_state(state) {\\n    switch (state) {\\n      case InputCloneMode.ALWAYS:\\n        return true;\\n      case InputCloneMode.NEVER:\\n        return false;\\n      case InputCloneMode.FROM_NODE:\\n        return !this._overridden;\\n    }\\n    return TypeAssert.unreachable(state);\\n  }\\n  overrideClonedState(state) {\\n    this._overridden = state;\\n    this._update_clone_required_state();\\n    this.node.emit(NodeEvent.OVERRIDE_CLONABLE_STATE_UPDATE);\\n    this.node.setDirty();\\n  }\\n  overriden() {\\n    return this._overridden;\\n  }\\n  _update_clone_required_state() {\\n    if (this._cloned_states) {\\n      const states = [];\\n      for (let i = 0; i < this._cloned_states.length; i++) {\\n        states[i] = this._get_clone_required_state(i);\\n      }\\n      this._clone_required_states = states;\\n      return;\\n    }\\n    if (this._cloned_state) {\\n      const max_inputs = this.inputs_controller.maxInputsCount();\\n      const states = [];\\n      for (let i = 0; i < max_inputs; i++) {\\n        states[i] = this._get_clone_required_state(i);\\n      }\\n      this._clone_required_states = states;\\n      return;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/InputsController.ts\\nvar MAX_INPUTS_COUNT_UNSET = 0;\\nvar InputsController2 = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._graph_node_inputs = [];\\n    this._inputs = [];\\n    this._has_named_inputs = false;\\n    this._minInputsCount = 0;\\n    this._maxInputsCount = MAX_INPUTS_COUNT_UNSET;\\n    this._maxInputsCountOnInput = MAX_INPUTS_COUNT_UNSET;\\n    this._depends_on_inputs = true;\\n  }\\n  dispose() {\\n    if (this._graph_node) {\\n      this._graph_node.dispose();\\n    }\\n    for (let graph_node of this._graph_node_inputs) {\\n      if (graph_node) {\\n        graph_node.dispose();\\n      }\\n    }\\n    this._on_update_hooks = void 0;\\n    this._on_update_hook_names = void 0;\\n  }\\n  set_depends_on_inputs(depends_on_inputs) {\\n    this._depends_on_inputs = depends_on_inputs;\\n  }\\n  setMinCount(minInputsCount) {\\n    this._minInputsCount = minInputsCount;\\n  }\\n  minCount() {\\n    return this._minInputsCount;\\n  }\\n  setMaxCount(maxInputsCount) {\\n    if (this._maxInputsCount == MAX_INPUTS_COUNT_UNSET) {\\n      this._maxInputsCountOnInput = maxInputsCount;\\n    }\\n    this._maxInputsCount = maxInputsCount;\\n    this._initGraphNodeInputs();\\n  }\\n  namedInputConnectionPointsByName(name) {\\n    if (this._named_input_connection_points) {\\n      for (let connection_point of this._named_input_connection_points) {\\n        if (connection_point && connection_point.name() == name) {\\n          return connection_point;\\n        }\\n      }\\n    }\\n  }\\n  setNamedInputConnectionPoints(connection_points) {\\n    this._has_named_inputs = true;\\n    const connections = this.node.io.connections.inputConnections();\\n    if (connections) {\\n      for (let connection of connections) {\\n        if (connection) {\\n          if (connection.input_index >= connection_points.length) {\\n            connection.disconnect({setInput: true});\\n          }\\n        }\\n      }\\n    }\\n    this._named_input_connection_points = connection_points;\\n    this.setMinCount(0);\\n    this.setMaxCount(connection_points.length);\\n    this._initGraphNodeInputs();\\n    this.node.emit(NodeEvent.NAMED_INPUTS_UPDATED);\\n  }\\n  hasNamedInputs() {\\n    return this._has_named_inputs;\\n  }\\n  namedInputConnectionPoints() {\\n    return this._named_input_connection_points || [];\\n  }\\n  _initGraphNodeInputs() {\\n    for (let i = 0; i < this._maxInputsCount; i++) {\\n      this._graph_node_inputs[i] = this._graph_node_inputs[i] || this._createGraphNodeInput(i);\\n    }\\n  }\\n  _createGraphNodeInput(index) {\\n    const graph_input_node = new CoreGraphNode(this.node.scene(), `input_${index}`);\\n    if (!this._graph_node) {\\n      this._graph_node = new CoreGraphNode(this.node.scene(), \\\\\\\"inputs\\\\\\\");\\n      this.node.addGraphInput(this._graph_node, false);\\n    }\\n    this._graph_node.addGraphInput(graph_input_node, false);\\n    return graph_input_node;\\n  }\\n  maxInputsCount() {\\n    return this._maxInputsCount || 0;\\n  }\\n  maxInputsCountOverriden() {\\n    return this._maxInputsCount != this._maxInputsCountOnInput;\\n  }\\n  inputGraphNode(input_index) {\\n    return this._graph_node_inputs[input_index];\\n  }\\n  setCount(min, max) {\\n    if (max == null) {\\n      max = min;\\n    }\\n    this.setMinCount(min);\\n    this.setMaxCount(max);\\n    this._initConnectionControllerInputs();\\n  }\\n  _initConnectionControllerInputs() {\\n    this.node.io.connections.initInputs();\\n  }\\n  is_any_input_dirty() {\\n    return this._graph_node?.isDirty() || false;\\n  }\\n  async containers_without_evaluation() {\\n    const containers = [];\\n    for (let i = 0; i < this._inputs.length; i++) {\\n      const input_node = this._inputs[i];\\n      let container = void 0;\\n      if (input_node) {\\n        container = await input_node.compute();\\n      }\\n      containers.push(container);\\n    }\\n    return containers;\\n  }\\n  existing_input_indices() {\\n    const existing_input_indices = [];\\n    if (this._maxInputsCount > 0) {\\n      for (let i = 0; i < this._inputs.length; i++) {\\n        if (this._inputs[i]) {\\n          existing_input_indices.push(i);\\n        }\\n      }\\n    }\\n    return existing_input_indices;\\n  }\\n  async eval_required_inputs() {\\n    let containers = [];\\n    if (this._maxInputsCount > 0) {\\n      const existing_input_indices = this.existing_input_indices();\\n      if (existing_input_indices.length < this._minInputsCount) {\\n        this.node.states.error.set(\\\\\\\"inputs are missing\\\\\\\");\\n      } else {\\n        if (existing_input_indices.length > 0) {\\n          const promises = [];\\n          let input;\\n          for (let i = 0; i < this._inputs.length; i++) {\\n            input = this._inputs[i];\\n            if (input) {\\n              promises.push(this.eval_required_input(i));\\n            }\\n          }\\n          containers = await Promise.all(promises);\\n          this._graph_node?.removeDirtyState();\\n        }\\n      }\\n    }\\n    return containers;\\n  }\\n  async eval_required_input(input_index) {\\n    let container = void 0;\\n    const input_node = this.input(input_index);\\n    if (input_node) {\\n      container = await input_node.compute();\\n      this._graph_node_inputs[input_index].removeDirtyState();\\n    }\\n    if (container && container.coreContent()) {\\n    } else {\\n      const input_node2 = this.input(input_index);\\n      if (input_node2) {\\n        const input_error_message = input_node2.states.error.message();\\n        if (input_error_message) {\\n          this.node.states.error.set(`input ${input_index} is invalid (error: ${input_error_message})`);\\n        }\\n      }\\n    }\\n    return container;\\n  }\\n  get_named_input_index(name) {\\n    if (this._named_input_connection_points) {\\n      for (let i = 0; i < this._named_input_connection_points.length; i++) {\\n        if (this._named_input_connection_points[i]?.name() == name) {\\n          return i;\\n        }\\n      }\\n    }\\n    return -1;\\n  }\\n  get_input_index(input_index_or_name) {\\n    if (CoreType.isString(input_index_or_name)) {\\n      if (this.hasNamedInputs()) {\\n        return this.get_named_input_index(input_index_or_name);\\n      } else {\\n        throw new Error(`node ${this.node.path()} has no named inputs`);\\n      }\\n    } else {\\n      return input_index_or_name;\\n    }\\n  }\\n  setInput(input_index_or_name, node, output_index_or_name = 0) {\\n    const input_index = this.get_input_index(input_index_or_name) || 0;\\n    if (input_index < 0) {\\n      const message = `invalid input (${input_index_or_name}) for node ${this.node.path()}`;\\n      console.warn(message);\\n      throw new Error(message);\\n    }\\n    let output_index = 0;\\n    if (node) {\\n      if (node.io.outputs.hasNamedOutputs()) {\\n        output_index = node.io.outputs.getOutputIndex(output_index_or_name);\\n        if (output_index == null || output_index < 0) {\\n          const connection_points = node.io.outputs.namedOutputConnectionPoints();\\n          const names = connection_points.map((cp) => cp.name());\\n          console.warn(`node ${node.path()} does not have an output named ${output_index_or_name}. inputs are: ${names.join(\\\\\\\", \\\\\\\")}`);\\n          return;\\n        }\\n      }\\n    }\\n    const graph_input_node = this._graph_node_inputs[input_index];\\n    if (graph_input_node == null) {\\n      const message = `graph_input_node not found at index ${input_index}`;\\n      console.warn(message);\\n      throw new Error(message);\\n    }\\n    if (node && this.node.parent() != node.parent()) {\\n      return;\\n    }\\n    const old_input_node = this._inputs[input_index];\\n    let old_output_index = null;\\n    let old_connection = void 0;\\n    if (this.node.io.connections) {\\n      old_connection = this.node.io.connections.inputConnection(input_index);\\n    }\\n    if (old_connection) {\\n      old_output_index = old_connection.output_index;\\n    }\\n    if (node !== old_input_node || output_index != old_output_index) {\\n      if (old_input_node != null) {\\n        if (this._depends_on_inputs) {\\n          graph_input_node.removeGraphInput(old_input_node);\\n        }\\n      }\\n      if (node != null) {\\n        if (graph_input_node.addGraphInput(node)) {\\n          if (!this._depends_on_inputs) {\\n            graph_input_node.removeGraphInput(node);\\n          }\\n          if (old_connection) {\\n            old_connection.disconnect({setInput: false});\\n          }\\n          this._inputs[input_index] = node;\\n          new TypedNodeConnection(node, this.node, output_index, input_index);\\n        } else {\\n          console.warn(`cannot connect ${node.path()} to ${this.node.path()}`);\\n        }\\n      } else {\\n        this._inputs[input_index] = null;\\n        if (old_connection) {\\n          old_connection.disconnect({setInput: false});\\n        }\\n      }\\n      this._run_on_set_input_hooks();\\n      graph_input_node.setSuccessorsDirty();\\n      this.node.emit(NodeEvent.INPUTS_UPDATED);\\n    }\\n  }\\n  remove_input(node) {\\n    const inputs = this.inputs();\\n    let input;\\n    for (let i = 0; i < inputs.length; i++) {\\n      input = inputs[i];\\n      if (input != null && node != null) {\\n        if (input.graphNodeId() === node.graphNodeId()) {\\n          this.setInput(i, null);\\n        }\\n      }\\n    }\\n  }\\n  input(input_index) {\\n    return this._inputs[input_index];\\n  }\\n  named_input(input_name) {\\n    if (this.hasNamedInputs()) {\\n      const input_index = this.get_input_index(input_name);\\n      return this._inputs[input_index];\\n    } else {\\n      return null;\\n    }\\n  }\\n  named_input_connection_point(input_name) {\\n    if (this.hasNamedInputs() && this._named_input_connection_points) {\\n      const input_index = this.get_input_index(input_name);\\n      return this._named_input_connection_points[input_index];\\n    }\\n  }\\n  has_named_input(name) {\\n    return this.get_named_input_index(name) >= 0;\\n  }\\n  has_input(input_index) {\\n    return this._inputs[input_index] != null;\\n  }\\n  inputs() {\\n    return this._inputs;\\n  }\\n  initInputsClonedState(states) {\\n    if (!this._cloned_states_controller) {\\n      this._cloned_states_controller = new ClonedStatesController2(this);\\n      this._cloned_states_controller.initInputsClonedState(states);\\n    }\\n  }\\n  overrideClonedStateAllowed() {\\n    return this._cloned_states_controller?.overrideClonedStateAllowed() || false;\\n  }\\n  overrideClonedState(state) {\\n    this._cloned_states_controller?.overrideClonedState(state);\\n  }\\n  clonedStateOverriden() {\\n    return this._cloned_states_controller?.overriden() || false;\\n  }\\n  cloneRequired(index) {\\n    const state = this._cloned_states_controller?.cloneRequiredState(index);\\n    if (state != null) {\\n      return state;\\n    }\\n    return true;\\n  }\\n  cloneRequiredStates() {\\n    const states = this._cloned_states_controller?.cloneRequiredStates();\\n    if (states != null) {\\n      return states;\\n    }\\n    return true;\\n  }\\n  add_on_set_input_hook(name, hook) {\\n    this._on_update_hooks = this._on_update_hooks || [];\\n    this._on_update_hook_names = this._on_update_hook_names || [];\\n    if (!this._on_update_hook_names.includes(name)) {\\n      this._on_update_hooks.push(hook);\\n      this._on_update_hook_names.push(name);\\n    } else {\\n      console.warn(`hook with name ${name} already exists`, this.node);\\n    }\\n  }\\n  _run_on_set_input_hooks() {\\n    if (this._on_update_hooks) {\\n      for (let hook of this._on_update_hooks) {\\n        hook();\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/OutputsController.ts\\nvar OutputsController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._has_outputs = false;\\n    this._has_named_outputs = false;\\n  }\\n  setHasOneOutput() {\\n    this._has_outputs = true;\\n  }\\n  setHasNoOutput() {\\n    this._has_outputs = false;\\n  }\\n  hasOutputs() {\\n    return this._has_outputs;\\n  }\\n  hasNamedOutputs() {\\n    return this._has_named_outputs;\\n  }\\n  hasNamedOutput(name) {\\n    return this.getNamedOutputIndex(name) >= 0;\\n  }\\n  namedOutputConnectionPoints() {\\n    return this._named_output_connection_points || [];\\n  }\\n  namedOutputConnection(index) {\\n    if (this._named_output_connection_points) {\\n      return this._named_output_connection_points[index];\\n    }\\n  }\\n  getNamedOutputIndex(name) {\\n    if (this._named_output_connection_points) {\\n      for (let i = 0; i < this._named_output_connection_points.length; i++) {\\n        if (this._named_output_connection_points[i]?.name() == name) {\\n          return i;\\n        }\\n      }\\n    }\\n    return -1;\\n  }\\n  getOutputIndex(output_index_or_name) {\\n    if (output_index_or_name != null) {\\n      if (CoreType.isString(output_index_or_name)) {\\n        if (this.hasNamedOutputs()) {\\n          return this.getNamedOutputIndex(output_index_or_name);\\n        } else {\\n          console.warn(`node ${this.node.path()} has no named outputs`);\\n          return -1;\\n        }\\n      } else {\\n        return output_index_or_name;\\n      }\\n    }\\n    return -1;\\n  }\\n  namedOutputConnectionPointsByName(name) {\\n    if (this._named_output_connection_points) {\\n      for (let connection_point of this._named_output_connection_points) {\\n        if (connection_point?.name() == name) {\\n          return connection_point;\\n        }\\n      }\\n    }\\n  }\\n  setNamedOutputConnectionPoints(connection_points, set_dirty = true) {\\n    this._has_named_outputs = true;\\n    const connections = this.node.io.connections.outputConnections();\\n    if (connections) {\\n      for (let connection of connections) {\\n        if (connection) {\\n          if (connection.output_index >= connection_points.length) {\\n            connection.disconnect({setInput: true});\\n          }\\n        }\\n      }\\n    }\\n    this._named_output_connection_points = connection_points;\\n    if (set_dirty && this.node.scene()) {\\n      this.node.setDirty(this.node);\\n    }\\n    this.node.emit(NodeEvent.NAMED_OUTPUTS_UPDATED);\\n  }\\n  used_output_names() {\\n    const connections_controller = this.node.io.connections;\\n    if (connections_controller) {\\n      const output_connections = connections_controller.outputConnections();\\n      let output_indices = output_connections.map((connection) => connection ? connection.output_index : null);\\n      output_indices = ArrayUtils.uniq(output_indices);\\n      const used_output_indices = [];\\n      output_indices.forEach((index) => {\\n        if (CoreType.isNumber(index)) {\\n          used_output_indices.push(index);\\n        }\\n      });\\n      const used_output_names = [];\\n      for (let index of used_output_indices) {\\n        const name = this.namedOutputConnectionPoints()[index]?.name();\\n        if (name) {\\n          used_output_names.push(name);\\n        }\\n      }\\n      return used_output_names;\\n    } else {\\n      return [];\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/ConnectionsController.ts\\nvar ConnectionsController = class {\\n  constructor(_node) {\\n    this._node = _node;\\n    this._output_connections = new Map();\\n  }\\n  initInputs() {\\n    const count = this._node.io.inputs.maxInputsCount();\\n    this._input_connections = this._input_connections || new Array(count);\\n    while (this._input_connections.length < count) {\\n      this._input_connections.push(void 0);\\n    }\\n  }\\n  addInputConnection(connection) {\\n    if (this._input_connections) {\\n      this._input_connections[connection.input_index] = connection;\\n    } else {\\n      console.warn(`input connections array not initialized`);\\n    }\\n  }\\n  removeInputConnection(connection) {\\n    if (this._input_connections) {\\n      if (connection.input_index < this._input_connections.length) {\\n        this._input_connections[connection.input_index] = void 0;\\n        let all_connections_after_are_undefined = true;\\n        for (let i = connection.input_index; i < this._input_connections.length; i++) {\\n          if (this._input_connections[i]) {\\n            all_connections_after_are_undefined = false;\\n          }\\n        }\\n        if (all_connections_after_are_undefined) {\\n          this._input_connections = this._input_connections.slice(0, connection.input_index);\\n        }\\n      } else {\\n        console.warn(`attempt to remove an input connection at index ${connection.input_index}`);\\n      }\\n    } else {\\n      console.warn(`input connections array not initialized`);\\n    }\\n  }\\n  inputConnection(index) {\\n    if (this._input_connections) {\\n      return this._input_connections[index];\\n    }\\n  }\\n  firstInputConnection() {\\n    if (this._input_connections) {\\n      return ArrayUtils.compact(this._input_connections)[0];\\n    } else {\\n      return null;\\n    }\\n  }\\n  inputConnections() {\\n    return this._input_connections;\\n  }\\n  existingInputConnections() {\\n    const current_connections = this._input_connections;\\n    if (current_connections) {\\n      while (current_connections.length > 1 && current_connections[current_connections.length - 1] === void 0) {\\n        current_connections.pop();\\n      }\\n    }\\n    return current_connections;\\n  }\\n  addOutputConnection(connection) {\\n    const output_index = connection.output_index;\\n    const id = connection.id;\\n    let connections_by_id = this._output_connections.get(output_index);\\n    if (!connections_by_id) {\\n      connections_by_id = new Map();\\n      this._output_connections.set(output_index, connections_by_id);\\n    }\\n    connections_by_id.set(id, connection);\\n  }\\n  removeOutputConnection(connection) {\\n    const output_index = connection.output_index;\\n    const id = connection.id;\\n    let connections_by_id = this._output_connections.get(output_index);\\n    if (connections_by_id) {\\n      connections_by_id.delete(id);\\n    }\\n  }\\n  outputConnections() {\\n    let list = [];\\n    this._output_connections.forEach((connections_by_id, output_index) => {\\n      connections_by_id.forEach((connection, id) => {\\n        if (connection) {\\n          list.push(connection);\\n        }\\n      });\\n    });\\n    return list;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/SavedConnectionPointsDataController.ts\\nvar SavedConnectionPointsDataController = class {\\n  constructor(_node) {\\n    this._node = _node;\\n  }\\n  set_in(data) {\\n    this._in = data;\\n  }\\n  set_out(data) {\\n    this._out = data;\\n  }\\n  clear() {\\n    this._in = void 0;\\n    this._out = void 0;\\n  }\\n  in() {\\n    return this._in;\\n  }\\n  out() {\\n    return this._out;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/connections/_Base.ts\\nvar BaseConnectionPoint = class {\\n  constructor(_name, _type, _init_value) {\\n    this._name = _name;\\n    this._type = _type;\\n    this._init_value = _init_value;\\n  }\\n  get init_value() {\\n    return this._init_value;\\n  }\\n  name() {\\n    return this._name;\\n  }\\n  type() {\\n    return this._type;\\n  }\\n  are_types_matched(src_type, dest_type) {\\n    return true;\\n  }\\n  toJSON() {\\n    return this._json = this._json || this._create_json();\\n  }\\n  _create_json() {\\n    return {\\n      name: this._name,\\n      type: this._type\\n    };\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/connections/Gl.ts\\nvar GlConnectionPointType;\\n(function(GlConnectionPointType2) {\\n  GlConnectionPointType2[\\\\\\\"BOOL\\\\\\\"] = \\\\\\\"bool\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"INT\\\\\\\"] = \\\\\\\"int\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"FLOAT\\\\\\\"] = \\\\\\\"float\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"VEC2\\\\\\\"] = \\\\\\\"vec2\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"VEC3\\\\\\\"] = \\\\\\\"vec3\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"VEC4\\\\\\\"] = \\\\\\\"vec4\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"SAMPLER_2D\\\\\\\"] = \\\\\\\"sampler2D\\\\\\\";\\n  GlConnectionPointType2[\\\\\\\"SSS_MODEL\\\\\\\"] = \\\\\\\"SSSModel\\\\\\\";\\n})(GlConnectionPointType || (GlConnectionPointType = {}));\\nvar GL_CONNECTION_POINT_TYPES = [\\n  GlConnectionPointType.BOOL,\\n  GlConnectionPointType.INT,\\n  GlConnectionPointType.FLOAT,\\n  GlConnectionPointType.VEC2,\\n  GlConnectionPointType.VEC3,\\n  GlConnectionPointType.VEC4\\n];\\nvar GlConnectionPointTypeToParamTypeMap = {\\n  [GlConnectionPointType.BOOL]: ParamType.BOOLEAN,\\n  [GlConnectionPointType.INT]: ParamType.INTEGER,\\n  [GlConnectionPointType.FLOAT]: ParamType.FLOAT,\\n  [GlConnectionPointType.VEC2]: ParamType.VECTOR2,\\n  [GlConnectionPointType.VEC3]: ParamType.VECTOR3,\\n  [GlConnectionPointType.VEC4]: ParamType.VECTOR4,\\n  [GlConnectionPointType.SAMPLER_2D]: ParamType.RAMP,\\n  [GlConnectionPointType.SSS_MODEL]: ParamType.STRING\\n};\\nvar GLParamTypeToConnectionPointTypeMap = {\\n  [ParamType.BOOLEAN]: GlConnectionPointType.BOOL,\\n  [ParamType.COLOR]: GlConnectionPointType.VEC3,\\n  [ParamType.INTEGER]: GlConnectionPointType.INT,\\n  [ParamType.FLOAT]: GlConnectionPointType.FLOAT,\\n  [ParamType.FOLDER]: void 0,\\n  [ParamType.VECTOR2]: GlConnectionPointType.VEC2,\\n  [ParamType.VECTOR3]: GlConnectionPointType.VEC3,\\n  [ParamType.VECTOR4]: GlConnectionPointType.VEC4,\\n  [ParamType.BUTTON]: void 0,\\n  [ParamType.OPERATOR_PATH]: void 0,\\n  [ParamType.PARAM_PATH]: void 0,\\n  [ParamType.NODE_PATH]: void 0,\\n  [ParamType.RAMP]: void 0,\\n  [ParamType.STRING]: void 0\\n};\\nvar GlConnectionPointInitValueMap = {\\n  [GlConnectionPointType.BOOL]: false,\\n  [GlConnectionPointType.INT]: 0,\\n  [GlConnectionPointType.FLOAT]: 0,\\n  [GlConnectionPointType.VEC2]: [0, 0],\\n  [GlConnectionPointType.VEC3]: [0, 0, 0],\\n  [GlConnectionPointType.VEC4]: [0, 0, 0, 0],\\n  [GlConnectionPointType.SAMPLER_2D]: RampParam.DEFAULT_VALUE_JSON,\\n  [GlConnectionPointType.SSS_MODEL]: \\\\\\\"SSSModel()\\\\\\\"\\n};\\nvar GlConnectionPointComponentsCountMap = {\\n  [GlConnectionPointType.BOOL]: 1,\\n  [GlConnectionPointType.INT]: 1,\\n  [GlConnectionPointType.FLOAT]: 1,\\n  [GlConnectionPointType.VEC2]: 2,\\n  [GlConnectionPointType.VEC3]: 3,\\n  [GlConnectionPointType.VEC4]: 4,\\n  [GlConnectionPointType.SAMPLER_2D]: 1,\\n  [GlConnectionPointType.SSS_MODEL]: 1\\n};\\nvar GlConnectionPoint = class extends BaseConnectionPoint {\\n  constructor(_name, _type, _init_value) {\\n    super(_name, _type);\\n    this._name = _name;\\n    this._type = _type;\\n    this._init_value = _init_value;\\n    this._init_value = this._init_value || GlConnectionPointInitValueMap[this._type];\\n  }\\n  type() {\\n    return this._type;\\n  }\\n  are_types_matched(src_type, dest_type) {\\n    return src_type == dest_type;\\n  }\\n  get param_type() {\\n    return GlConnectionPointTypeToParamTypeMap[this._type];\\n  }\\n  get init_value() {\\n    return this._init_value;\\n  }\\n  toJSON() {\\n    return this._json = this._json || this._create_json();\\n  }\\n  _create_json() {\\n    return {\\n      name: this._name,\\n      type: this._type\\n    };\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/connections/Js.ts\\nvar JsConnectionPointType;\\n(function(JsConnectionPointType2) {\\n  JsConnectionPointType2[\\\\\\\"BOOL\\\\\\\"] = \\\\\\\"bool\\\\\\\";\\n  JsConnectionPointType2[\\\\\\\"INT\\\\\\\"] = \\\\\\\"int\\\\\\\";\\n  JsConnectionPointType2[\\\\\\\"FLOAT\\\\\\\"] = \\\\\\\"float\\\\\\\";\\n  JsConnectionPointType2[\\\\\\\"VEC2\\\\\\\"] = \\\\\\\"vec2\\\\\\\";\\n  JsConnectionPointType2[\\\\\\\"VEC3\\\\\\\"] = \\\\\\\"vec3\\\\\\\";\\n  JsConnectionPointType2[\\\\\\\"VEC4\\\\\\\"] = \\\\\\\"vec4\\\\\\\";\\n})(JsConnectionPointType || (JsConnectionPointType = {}));\\nvar JS_CONNECTION_POINT_TYPES = [\\n  JsConnectionPointType.BOOL,\\n  JsConnectionPointType.INT,\\n  JsConnectionPointType.FLOAT,\\n  JsConnectionPointType.VEC2,\\n  JsConnectionPointType.VEC3,\\n  JsConnectionPointType.VEC4\\n];\\nvar JsConnectionPointTypeToParamTypeMap = {\\n  [JsConnectionPointType.BOOL]: ParamType.BOOLEAN,\\n  [JsConnectionPointType.INT]: ParamType.INTEGER,\\n  [JsConnectionPointType.FLOAT]: ParamType.FLOAT,\\n  [JsConnectionPointType.VEC2]: ParamType.VECTOR2,\\n  [JsConnectionPointType.VEC3]: ParamType.VECTOR3,\\n  [JsConnectionPointType.VEC4]: ParamType.VECTOR4\\n};\\nvar JsParamTypeToConnectionPointTypeMap = {\\n  [ParamType.BOOLEAN]: JsConnectionPointType.BOOL,\\n  [ParamType.COLOR]: JsConnectionPointType.VEC3,\\n  [ParamType.INTEGER]: JsConnectionPointType.INT,\\n  [ParamType.FLOAT]: JsConnectionPointType.FLOAT,\\n  [ParamType.FOLDER]: void 0,\\n  [ParamType.VECTOR2]: JsConnectionPointType.VEC2,\\n  [ParamType.VECTOR3]: JsConnectionPointType.VEC3,\\n  [ParamType.VECTOR4]: JsConnectionPointType.VEC4,\\n  [ParamType.BUTTON]: void 0,\\n  [ParamType.OPERATOR_PATH]: void 0,\\n  [ParamType.PARAM_PATH]: void 0,\\n  [ParamType.NODE_PATH]: void 0,\\n  [ParamType.RAMP]: void 0,\\n  [ParamType.STRING]: void 0\\n};\\nvar JsConnectionPointInitValueMap = {\\n  [JsConnectionPointType.BOOL]: false,\\n  [JsConnectionPointType.INT]: 0,\\n  [JsConnectionPointType.FLOAT]: 0,\\n  [JsConnectionPointType.VEC2]: [0, 0],\\n  [JsConnectionPointType.VEC3]: [0, 0, 0],\\n  [JsConnectionPointType.VEC4]: [0, 0, 0, 0]\\n};\\nvar GlConnectionPointComponentsCountMap2 = {\\n  [JsConnectionPointType.BOOL]: 1,\\n  [JsConnectionPointType.INT]: 1,\\n  [JsConnectionPointType.FLOAT]: 1,\\n  [JsConnectionPointType.VEC2]: 2,\\n  [JsConnectionPointType.VEC3]: 3,\\n  [JsConnectionPointType.VEC4]: 4\\n};\\nvar JsConnectionPoint = class extends BaseConnectionPoint {\\n  constructor(_name, _type) {\\n    super(_name, _type);\\n    this._name = _name;\\n    this._type = _type;\\n    this._init_value = JsConnectionPointInitValueMap[this._type];\\n  }\\n  type() {\\n    return this._type;\\n  }\\n  are_types_matched(src_type, dest_type) {\\n    return src_type == dest_type;\\n  }\\n  get param_type() {\\n    return JsConnectionPointTypeToParamTypeMap[this._type];\\n  }\\n  get init_value() {\\n    return this._init_value;\\n  }\\n  toJSON() {\\n    return this._json = this._json || this._create_json();\\n  }\\n  _create_json() {\\n    return {\\n      name: this._name,\\n      type: this._type\\n    };\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/connections/Event.ts\\nvar EventConnectionPointType;\\n(function(EventConnectionPointType2) {\\n  EventConnectionPointType2[\\\\\\\"BASE\\\\\\\"] = \\\\\\\"base\\\\\\\";\\n  EventConnectionPointType2[\\\\\\\"DRAG\\\\\\\"] = \\\\\\\"drag\\\\\\\";\\n  EventConnectionPointType2[\\\\\\\"KEYBOARD\\\\\\\"] = \\\\\\\"keyboard\\\\\\\";\\n  EventConnectionPointType2[\\\\\\\"MOUSE\\\\\\\"] = \\\\\\\"mouse\\\\\\\";\\n  EventConnectionPointType2[\\\\\\\"POINTER\\\\\\\"] = \\\\\\\"pointer\\\\\\\";\\n})(EventConnectionPointType || (EventConnectionPointType = {}));\\nvar EventConnectionPoint = class extends BaseConnectionPoint {\\n  constructor(_name, _type, _event_listener) {\\n    super(_name, _type);\\n    this._name = _name;\\n    this._type = _type;\\n    this._event_listener = _event_listener;\\n  }\\n  type() {\\n    return this._type;\\n  }\\n  get param_type() {\\n    return ParamType.FLOAT;\\n  }\\n  are_types_matched(src_type, dest_type) {\\n    if (dest_type == EventConnectionPointType.BASE) {\\n      return true;\\n    } else {\\n      return src_type == dest_type;\\n    }\\n  }\\n  get event_listener() {\\n    return this._event_listener;\\n  }\\n  toJSON() {\\n    return this._json = this._json || this._create_json();\\n  }\\n  _create_json() {\\n    return {\\n      name: this._name,\\n      type: this._type\\n    };\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/connections/ConnectionMap.ts\\nvar DEFAULT_CONNECTION_POINT_ENUM_MAP = {\\n  [NodeContext.ANIM]: void 0,\\n  [NodeContext.COP]: void 0,\\n  [NodeContext.EVENT]: EventConnectionPointType.BASE,\\n  [NodeContext.GL]: GlConnectionPointType.FLOAT,\\n  [NodeContext.JS]: JsConnectionPointType.FLOAT,\\n  [NodeContext.MANAGER]: void 0,\\n  [NodeContext.MAT]: void 0,\\n  [NodeContext.OBJ]: void 0,\\n  [NodeContext.POST]: void 0,\\n  [NodeContext.ROP]: void 0,\\n  [NodeContext.SOP]: void 0\\n};\\nfunction create_connection_point(context, name, type) {\\n  switch (context) {\\n    case NodeContext.EVENT: {\\n      return new EventConnectionPoint(name, type);\\n    }\\n    case NodeContext.GL: {\\n      return new GlConnectionPoint(name, type);\\n    }\\n    case NodeContext.JS: {\\n      return new JsConnectionPoint(name, type);\\n    }\\n    default: {\\n      return void 0;\\n    }\\n  }\\n}\\nfunction param_type_to_connection_point_type_map(context) {\\n  switch (context) {\\n    case NodeContext.EVENT: {\\n      return void 0;\\n    }\\n    case NodeContext.GL: {\\n      return GLParamTypeToConnectionPointTypeMap;\\n    }\\n    case NodeContext.JS: {\\n      return JsParamTypeToConnectionPointTypeMap;\\n    }\\n    default: {\\n      return void 0;\\n    }\\n  }\\n}\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/ConnectionPointsSpareParamsController.ts\\nvar ConnectionPointsSpareParamsController = class {\\n  constructor(node, _context2) {\\n    this.node = node;\\n    this._context = _context2;\\n    this._raw_input_serialized_by_param_name = new Map();\\n    this._default_value_serialized_by_param_name = new Map();\\n    this._initialized = false;\\n  }\\n  initializeNode() {\\n    if (this._initialized) {\\n      console.warn(\\\\\\\"already initialized\\\\\\\", this.node);\\n      return;\\n    }\\n    this._initialized = true;\\n    this.node.params.onParamsCreated(\\\\\\\"create_inputs_from_params\\\\\\\", this.create_inputs_from_params.bind(this));\\n  }\\n  initialized() {\\n    return this._initialized;\\n  }\\n  create_inputs_from_params() {\\n    const connection_type_map = param_type_to_connection_point_type_map(this._context);\\n    if (!connection_type_map) {\\n      return;\\n    }\\n    const connection_points = [];\\n    for (let param_name of this.node.params.names) {\\n      let add_input = true;\\n      if (this._inputless_param_names && this._inputless_param_names.length > 0 && this._inputless_param_names.includes(param_name)) {\\n        add_input = false;\\n      }\\n      if (add_input) {\\n        if (this.node.params.has(param_name)) {\\n          const param = this.node.params.get(param_name);\\n          if (param && !param.parent_param) {\\n            const connection_type = connection_type_map[param.type()];\\n            if (connection_type) {\\n              const connection_point = create_connection_point(this._context, param.name(), connection_type);\\n              if (connection_point) {\\n                connection_points.push(connection_point);\\n              }\\n            }\\n          }\\n        }\\n      }\\n    }\\n    this.node.io.inputs.setNamedInputConnectionPoints(connection_points);\\n  }\\n  set_inputless_param_names(names) {\\n    return this._inputless_param_names = names;\\n  }\\n  createSpareParameters() {\\n    if (this.node.scene().loadingController.isLoading()) {\\n      return;\\n    }\\n    const current_param_names = this.node.params.spare_names;\\n    const params_update_options = {};\\n    for (let param_name of current_param_names) {\\n      if (this.node.params.has(param_name)) {\\n        const param = this.node.params.get(param_name);\\n        if (param) {\\n          this._raw_input_serialized_by_param_name.set(param_name, param.rawInputSerialized());\\n          this._default_value_serialized_by_param_name.set(param_name, param.defaultValueSerialized());\\n          params_update_options.namesToDelete = params_update_options.namesToDelete || [];\\n          params_update_options.namesToDelete.push(param_name);\\n        }\\n      }\\n    }\\n    for (let connection_point of this.node.io.inputs.namedInputConnectionPoints()) {\\n      if (connection_point) {\\n        const param_name = connection_point.name();\\n        const param_type = connection_point.param_type;\\n        let init_value = connection_point.init_value;\\n        const last_param_init_value = this._default_value_serialized_by_param_name.get(param_name);\\n        let default_value_from_name = this.node.paramDefaultValue(param_name);\\n        if (default_value_from_name != null) {\\n          init_value = default_value_from_name;\\n        } else {\\n          if (last_param_init_value != null) {\\n            init_value = last_param_init_value;\\n          } else {\\n            init_value = connection_point.init_value;\\n          }\\n        }\\n        if (CoreType.isArray(connection_point.init_value)) {\\n          if (CoreType.isNumber(init_value)) {\\n            const array = new Array(connection_point.init_value.length);\\n            array.fill(init_value);\\n            init_value = array;\\n          } else if (CoreType.isArray(init_value)) {\\n            if (init_value.length == connection_point.init_value.length) {\\n              if (last_param_init_value != null) {\\n                init_value = connection_point.init_value;\\n              }\\n            }\\n          }\\n        }\\n        if (init_value != null) {\\n          params_update_options.toAdd = params_update_options.toAdd || [];\\n          params_update_options.toAdd.push({\\n            name: param_name,\\n            type: param_type,\\n            init_value: ObjectUtils.clone(init_value),\\n            raw_input: ObjectUtils.clone(init_value),\\n            options: {\\n              spare: true\\n            }\\n          });\\n        }\\n      }\\n    }\\n    this.node.params.updateParams(params_update_options);\\n    for (let spare_param of this.node.params.spare) {\\n      if (!spare_param.parent_param) {\\n        const raw_input = this._raw_input_serialized_by_param_name.get(spare_param.name());\\n        if (raw_input) {\\n          spare_param.set(raw_input);\\n        }\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/ConnectionPointsController.ts\\nvar ConnectionPointsController = class {\\n  constructor(node, _context2) {\\n    this.node = node;\\n    this._context = _context2;\\n    this._create_spare_params_from_inputs = true;\\n    this._functions_overridden = false;\\n    this._input_name_function = (index) => {\\n      return `in${index}`;\\n    };\\n    this._output_name_function = (index) => {\\n      return index == 0 ? \\\\\\\"val\\\\\\\" : `val${index}`;\\n    };\\n    this._expected_input_types_function = () => {\\n      const type = this.first_input_connection_type() || this.default_connection_type();\\n      return [type, type];\\n    };\\n    this._expected_output_types_function = () => {\\n      return [this._expected_input_types_function()[0]];\\n    };\\n    this._update_signature_if_required_bound = this.update_signature_if_required.bind(this);\\n    this._initialized = false;\\n    this._spare_params_controller = new ConnectionPointsSpareParamsController(this.node, this._context);\\n  }\\n  default_connection_type() {\\n    return DEFAULT_CONNECTION_POINT_ENUM_MAP[this._context];\\n  }\\n  create_connection_point(name, type) {\\n    return create_connection_point(this._context, name, type);\\n  }\\n  functions_overridden() {\\n    return this._functions_overridden;\\n  }\\n  initialized() {\\n    return this._initialized;\\n  }\\n  set_create_spare_params_from_inputs(state) {\\n    this._create_spare_params_from_inputs = state;\\n  }\\n  set_input_name_function(func) {\\n    this._initialize_if_required();\\n    this._input_name_function = func;\\n  }\\n  set_output_name_function(func) {\\n    this._initialize_if_required();\\n    this._output_name_function = func;\\n  }\\n  set_expected_input_types_function(func) {\\n    this._initialize_if_required();\\n    this._functions_overridden = true;\\n    this._expected_input_types_function = func;\\n  }\\n  set_expected_output_types_function(func) {\\n    this._initialize_if_required();\\n    this._functions_overridden = true;\\n    this._expected_output_types_function = func;\\n  }\\n  input_name(index) {\\n    return this._wrapped_input_name_function(index);\\n  }\\n  output_name(index) {\\n    return this._wrapped_output_name_function(index);\\n  }\\n  initializeNode() {\\n    if (this._initialized) {\\n      console.warn(\\\\\\\"already initialized\\\\\\\", this.node);\\n      return;\\n    }\\n    this._initialized = true;\\n    this.node.io.inputs.add_on_set_input_hook(\\\\\\\"_update_signature_if_required\\\\\\\", this._update_signature_if_required_bound);\\n    this.node.params.addOnSceneLoadHook(\\\\\\\"_update_signature_if_required\\\\\\\", this._update_signature_if_required_bound);\\n    this.node.params.onParamsCreated(\\\\\\\"_update_signature_if_required_bound\\\\\\\", this._update_signature_if_required_bound);\\n    this.node.addPostDirtyHook(\\\\\\\"_update_signature_if_required\\\\\\\", this._update_signature_if_required_bound);\\n    if (!this._spare_params_controller.initialized()) {\\n      this._spare_params_controller.initializeNode();\\n    }\\n  }\\n  _initialize_if_required() {\\n    if (!this._initialized) {\\n      this.initializeNode();\\n    }\\n  }\\n  get spare_params() {\\n    return this._spare_params_controller;\\n  }\\n  update_signature_if_required(dirty_trigger) {\\n    if (!this.node.lifecycle.creationCompleted() || !this._connections_match_inputs()) {\\n      this.update_connection_types();\\n      this.node.removeDirtyState();\\n      if (!this.node.scene().loadingController.isLoading()) {\\n        this.make_successors_update_signatures();\\n      }\\n    }\\n  }\\n  make_successors_update_signatures() {\\n    const successors = this.node.graphAllSuccessors();\\n    if (this.node.childrenAllowed()) {\\n      const subnet_inputs = this.node.nodesByType(NetworkChildNodeType.INPUT);\\n      const subnet_outputs = this.node.nodesByType(NetworkChildNodeType.OUTPUT);\\n      for (let subnet_input of subnet_inputs) {\\n        successors.push(subnet_input);\\n      }\\n      for (let subnet_output of subnet_outputs) {\\n        successors.push(subnet_output);\\n      }\\n    }\\n    for (let graph_node of successors) {\\n      const node = graph_node;\\n      if (node.io && node.io.has_connection_points_controller && node.io.connection_points.initialized()) {\\n        node.io.connection_points.update_signature_if_required(this.node);\\n      }\\n    }\\n  }\\n  update_connection_types() {\\n    const set_dirty = false;\\n    const expected_input_types = this._wrapped_expected_input_types_function();\\n    const expected_output_types = this._wrapped_expected_output_types_function();\\n    const named_input_connection_points = [];\\n    for (let i = 0; i < expected_input_types.length; i++) {\\n      const type = expected_input_types[i];\\n      const point = this.create_connection_point(this._wrapped_input_name_function(i), type);\\n      named_input_connection_points.push(point);\\n    }\\n    const named_output_connect_points = [];\\n    for (let i = 0; i < expected_output_types.length; i++) {\\n      const type = expected_output_types[i];\\n      const point = this.create_connection_point(this._wrapped_output_name_function(i), type);\\n      named_output_connect_points.push(point);\\n    }\\n    this.node.io.inputs.setNamedInputConnectionPoints(named_input_connection_points);\\n    this.node.io.outputs.setNamedOutputConnectionPoints(named_output_connect_points, set_dirty);\\n    if (this._create_spare_params_from_inputs) {\\n      this._spare_params_controller.createSpareParameters();\\n    }\\n  }\\n  _connections_match_inputs() {\\n    const current_input_types = this.node.io.inputs.namedInputConnectionPoints().map((c) => c?.type());\\n    const current_output_types = this.node.io.outputs.namedOutputConnectionPoints().map((c) => c?.type());\\n    const expected_input_types = this._wrapped_expected_input_types_function();\\n    const expected_output_types = this._wrapped_expected_output_types_function();\\n    if (expected_input_types.length != current_input_types.length) {\\n      return false;\\n    }\\n    if (expected_output_types.length != current_output_types.length) {\\n      return false;\\n    }\\n    for (let i = 0; i < current_input_types.length; i++) {\\n      if (current_input_types[i] != expected_input_types[i]) {\\n        return false;\\n      }\\n    }\\n    for (let i = 0; i < current_output_types.length; i++) {\\n      if (current_output_types[i] != expected_output_types[i]) {\\n        return false;\\n      }\\n    }\\n    return true;\\n  }\\n  _wrapped_expected_input_types_function() {\\n    if (this.node.scene().loadingController.isLoading()) {\\n      const in_data = this.node.io.saved_connection_points_data.in();\\n      if (in_data) {\\n        return in_data.map((d) => d.type);\\n      }\\n    }\\n    return this._expected_input_types_function();\\n  }\\n  _wrapped_expected_output_types_function() {\\n    if (this.node.scene().loadingController.isLoading()) {\\n      const out_data = this.node.io.saved_connection_points_data.out();\\n      if (out_data) {\\n        return out_data.map((d) => d.type);\\n      }\\n    }\\n    return this._expected_output_types_function();\\n  }\\n  _wrapped_input_name_function(index) {\\n    if (this.node.scene().loadingController.isLoading()) {\\n      const in_data = this.node.io.saved_connection_points_data.in();\\n      if (in_data) {\\n        return in_data[index].name;\\n      }\\n    }\\n    return this._input_name_function(index);\\n  }\\n  _wrapped_output_name_function(index) {\\n    if (this.node.scene().loadingController.isLoading()) {\\n      const out_data = this.node.io.saved_connection_points_data.out();\\n      if (out_data) {\\n        return out_data[index].name;\\n      }\\n    }\\n    return this._output_name_function(index);\\n  }\\n  first_input_connection_type() {\\n    return this.input_connection_type(0);\\n  }\\n  input_connection_type(index) {\\n    const connections = this.node.io.connections.inputConnections();\\n    if (connections) {\\n      const connection = connections[index];\\n      if (connection) {\\n        return connection.src_connection_point().type();\\n      }\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/io/IOController.ts\\nvar IOController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._connections = new ConnectionsController(this.node);\\n  }\\n  get connections() {\\n    return this._connections;\\n  }\\n  get inputs() {\\n    return this._inputs = this._inputs || new InputsController2(this.node);\\n  }\\n  has_inputs() {\\n    return this._inputs != null;\\n  }\\n  get outputs() {\\n    return this._outputs = this._outputs || new OutputsController(this.node);\\n  }\\n  has_outputs() {\\n    return this._outputs != null;\\n  }\\n  get connection_points() {\\n    return this._connection_points = this._connection_points || new ConnectionPointsController(this.node, this.node.context());\\n  }\\n  get has_connection_points_controller() {\\n    return this._connection_points != null;\\n  }\\n  get saved_connection_points_data() {\\n    return this._saved_connection_points_data = this._saved_connection_points_data || new SavedConnectionPointsDataController(this.node);\\n  }\\n  clear_saved_connection_points_data() {\\n    if (this._saved_connection_points_data) {\\n      this._saved_connection_points_data.clear();\\n      this._saved_connection_points_data = void 0;\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/params/ParamsAccessor.ts\\nvar ParamsAccessor = class {\\n  constructor() {\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/_Base.ts\\nvar TypedNode = class extends CoreGraphNode {\\n  constructor(scene, name = \\\\\\\"BaseNode\\\\\\\", params_init_value_overrides) {\\n    super(scene, name);\\n    this.params_init_value_overrides = params_init_value_overrides;\\n    this.containerController = new TypedContainerController(this);\\n    this.pv = new ParamsValueAccessor();\\n    this.p = new ParamsAccessor();\\n    this._initialized = false;\\n  }\\n  copy_param_values(node) {\\n    const non_spare = this.params.non_spare;\\n    for (let param of non_spare) {\\n      const other_param = node.params.get(param.name());\\n      if (other_param) {\\n        param.copy_value(other_param);\\n      }\\n    }\\n  }\\n  get parentController() {\\n    return this._parent_controller = this._parent_controller || new HierarchyParentController(this);\\n  }\\n  static displayedInputNames() {\\n    return [];\\n  }\\n  get childrenControllerContext() {\\n    return this._children_controller_context;\\n  }\\n  _create_children_controller() {\\n    if (this._children_controller_context) {\\n      return new HierarchyChildrenController(this, this._children_controller_context);\\n    }\\n  }\\n  get childrenController() {\\n    return this._children_controller = this._children_controller || this._create_children_controller();\\n  }\\n  childrenAllowed() {\\n    return this._children_controller_context != null;\\n  }\\n  get uiData() {\\n    return this._ui_data = this._ui_data || new UIData(this);\\n  }\\n  get states() {\\n    return this._states = this._states || new StatesController(this);\\n  }\\n  get lifecycle() {\\n    return this._lifecycle = this._lifecycle || new LifeCycleController(this);\\n  }\\n  get serializer() {\\n    return this._serializer = this._serializer || new NodeSerializer(this);\\n  }\\n  get cookController() {\\n    return this._cook_controller = this._cook_controller || new NodeCookController(this);\\n  }\\n  get io() {\\n    return this._io = this._io || new IOController(this);\\n  }\\n  get nameController() {\\n    return this._name_controller = this._name_controller || new NameController(this);\\n  }\\n  setName(name) {\\n    this.nameController.setName(name);\\n  }\\n  _set_core_name(name) {\\n    this._name = name;\\n  }\\n  get params() {\\n    return this._params_controller = this._params_controller || new ParamsController(this);\\n  }\\n  initialize_base_and_node() {\\n    if (!this._initialized) {\\n      this._initialized = true;\\n      this.displayNodeController?.initializeNode();\\n      this.initializeBaseNode();\\n      this.initializeNode();\\n      if (this.polyNodeController) {\\n        this.polyNodeController.initializeNode();\\n      }\\n    } else {\\n      console.warn(\\\\\\\"node already initialized\\\\\\\");\\n    }\\n  }\\n  initializeBaseNode() {\\n  }\\n  initializeNode() {\\n  }\\n  static type() {\\n    throw \\\\\\\"type to be overriden\\\\\\\";\\n  }\\n  type() {\\n    const c = this.constructor;\\n    return c.type();\\n  }\\n  static context() {\\n    console.error(\\\\\\\"node has no node_context\\\\\\\", this);\\n    throw \\\\\\\"context requires override\\\\\\\";\\n  }\\n  context() {\\n    const c = this.constructor;\\n    return c.context();\\n  }\\n  static require_webgl2() {\\n    return false;\\n  }\\n  require_webgl2() {\\n    const c = this.constructor;\\n    return c.require_webgl2();\\n  }\\n  setParent(parent) {\\n    this.parentController.setParent(parent);\\n  }\\n  parent() {\\n    return this.parentController.parent();\\n  }\\n  firstAncestorWithContext(context) {\\n    return this.parentController.firstAncestorWithContext(context);\\n  }\\n  root() {\\n    return this._scene.root();\\n  }\\n  path(relative_to_parent) {\\n    return this.parentController.path(relative_to_parent);\\n  }\\n  createParams() {\\n  }\\n  addParam(type, name, default_value, options) {\\n    return this._params_controller?.addParam(type, name, default_value, options);\\n  }\\n  paramDefaultValue(name) {\\n    return null;\\n  }\\n  cook(input_contents) {\\n    return null;\\n  }\\n  onCookEnd(callbackName, callback) {\\n    this.cookController.registerOnCookEnd(callbackName, callback);\\n  }\\n  async compute() {\\n    if (this.isDirty() || this.flags?.bypass?.active()) {\\n      return await this.containerController.compute();\\n    } else {\\n      return this.containerController.container();\\n    }\\n  }\\n  _setContainer(content, message = null) {\\n    this.containerController.container().set_content(content);\\n    if (content != null) {\\n      if (!content.name) {\\n        content.name = this.path();\\n      }\\n      if (!content.node) {\\n        content.node = this;\\n      }\\n    }\\n    this.cookController.endCook(message);\\n  }\\n  createNode(nodeClass, params_init_value_overrides) {\\n    return this.childrenController?.createNode(nodeClass, params_init_value_overrides);\\n  }\\n  create_operation_container(type, operation_container_name, params_init_value_overrides) {\\n    return this.childrenController?.create_operation_container(type, operation_container_name, params_init_value_overrides);\\n  }\\n  removeNode(node) {\\n    this.childrenController?.removeNode(node);\\n  }\\n  dispose() {\\n    super.dispose();\\n    this.setParent(null);\\n    this.io.inputs.dispose();\\n    this.lifecycle.dispose();\\n    this.displayNodeController?.dispose();\\n    this.nameController.dispose();\\n    this.childrenController?.dispose();\\n    this.params.dispose();\\n  }\\n  children() {\\n    return this.childrenController?.children() || [];\\n  }\\n  node(path) {\\n    return this.parentController?.findNode(path) || null;\\n  }\\n  nodeSibbling(name) {\\n    const parent = this.parent();\\n    if (parent) {\\n      const node = parent.childrenController?.childByName(name);\\n      if (node) {\\n        return node;\\n      }\\n    }\\n    return null;\\n  }\\n  nodesByType(type) {\\n    return this.childrenController?.nodesByType(type) || [];\\n  }\\n  setInput(input_index_or_name, node, output_index_or_name = 0) {\\n    this.io.inputs.setInput(input_index_or_name, node, output_index_or_name);\\n  }\\n  emit(event_name, data = null) {\\n    this.scene().dispatchController.dispatch(this, event_name, data);\\n  }\\n  toJSON(include_param_components = false) {\\n    return this.serializer.toJSON(include_param_components);\\n  }\\n  async requiredModules() {\\n  }\\n  usedAssembler() {\\n  }\\n  integrationData() {\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/obj/_Base.ts\\nvar INPUT_OBJECT_NAME = \\\\\\\"parent object\\\\\\\";\\nvar DEFAULT_INPUT_NAMES = [INPUT_OBJECT_NAME, INPUT_OBJECT_NAME, INPUT_OBJECT_NAME, INPUT_OBJECT_NAME];\\nvar ObjNodeRenderOrder;\\n(function(ObjNodeRenderOrder2) {\\n  ObjNodeRenderOrder2[ObjNodeRenderOrder2[\\\\\\\"MANAGER\\\\\\\"] = 0] = \\\\\\\"MANAGER\\\\\\\";\\n  ObjNodeRenderOrder2[ObjNodeRenderOrder2[\\\\\\\"CAMERA\\\\\\\"] = 2] = \\\\\\\"CAMERA\\\\\\\";\\n  ObjNodeRenderOrder2[ObjNodeRenderOrder2[\\\\\\\"LIGHT\\\\\\\"] = 3] = \\\\\\\"LIGHT\\\\\\\";\\n})(ObjNodeRenderOrder || (ObjNodeRenderOrder = {}));\\nvar TypedObjNode = class extends TypedNode {\\n  constructor() {\\n    super(...arguments);\\n    this.renderOrder = 0;\\n    this._children_group = this._create_children_group();\\n    this._attachableToHierarchy = true;\\n    this._used_in_scene = true;\\n  }\\n  static context() {\\n    return NodeContext.OBJ;\\n  }\\n  static displayedInputNames() {\\n    return DEFAULT_INPUT_NAMES;\\n  }\\n  _create_children_group() {\\n    const group = new Group();\\n    group.matrixAutoUpdate = false;\\n    return group;\\n  }\\n  attachableToHierarchy() {\\n    return this._attachableToHierarchy;\\n  }\\n  usedInScene() {\\n    return this._used_in_scene;\\n  }\\n  addObjectToParent(parent) {\\n    if (this.attachableToHierarchy()) {\\n      parent.add(this.object);\\n    }\\n  }\\n  removeObjectFromParent() {\\n    if (this.attachableToHierarchy()) {\\n      const parent = this.object.parent;\\n      if (parent) {\\n        parent.remove(this.object);\\n      }\\n    }\\n  }\\n  initializeBaseNode() {\\n    this._object = this._create_object_with_attributes();\\n    this.nameController.add_post_set_fullPath_hook(this.set_object_name.bind(this));\\n    this.set_object_name();\\n  }\\n  get children_group() {\\n    return this._children_group;\\n  }\\n  get object() {\\n    return this._object;\\n  }\\n  _create_object_with_attributes() {\\n    const object = this.createObject();\\n    object.node = this;\\n    object.add(this._children_group);\\n    return object;\\n  }\\n  set_object_name() {\\n    if (this._object) {\\n      this._object.name = this.path();\\n      this._children_group.name = `${this.path()}:parented_outputs`;\\n    }\\n  }\\n  createObject() {\\n    const object = new Object3D();\\n    object.matrixAutoUpdate = false;\\n    return object;\\n  }\\n  isDisplayNodeCooking() {\\n    if (this.displayNodeController) {\\n      const displayNode = this.displayNodeController.displayNode();\\n      if (displayNode) {\\n        return displayNode.cookController.isCooking();\\n      }\\n    }\\n    return false;\\n  }\\n  isDisplayed() {\\n    return this.flags?.display?.active() || false;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/audio/AudioAnalyser.js\\nvar AudioAnalyser = class {\\n  constructor(audio, fftSize = 2048) {\\n    this.analyser = audio.context.createAnalyser();\\n    this.analyser.fftSize = fftSize;\\n    this.data = new Uint8Array(this.analyser.frequencyBinCount);\\n    audio.getOutput().connect(this.analyser);\\n  }\\n  getFrequencyData() {\\n    this.analyser.getByteFrequencyData(this.data);\\n    return this.data;\\n  }\\n  getAverageFrequency() {\\n    let value = 0;\\n    const data = this.getFrequencyData();\\n    for (let i = 0; i < data.length; i++) {\\n      value += data[i];\\n    }\\n    return value / data.length;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/audio/Audio.js\\nvar Audio2 = class extends Object3D {\\n  constructor(listener) {\\n    super();\\n    this.type = \\\\\\\"Audio\\\\\\\";\\n    this.listener = listener;\\n    this.context = listener.context;\\n    this.gain = this.context.createGain();\\n    this.gain.connect(listener.getInput());\\n    this.autoplay = false;\\n    this.buffer = null;\\n    this.detune = 0;\\n    this.loop = false;\\n    this.loopStart = 0;\\n    this.loopEnd = 0;\\n    this.offset = 0;\\n    this.duration = void 0;\\n    this.playbackRate = 1;\\n    this.isPlaying = false;\\n    this.hasPlaybackControl = true;\\n    this.source = null;\\n    this.sourceType = \\\\\\\"empty\\\\\\\";\\n    this._startedAt = 0;\\n    this._progress = 0;\\n    this._connected = false;\\n    this.filters = [];\\n  }\\n  getOutput() {\\n    return this.gain;\\n  }\\n  setNodeSource(audioNode) {\\n    this.hasPlaybackControl = false;\\n    this.sourceType = \\\\\\\"audioNode\\\\\\\";\\n    this.source = audioNode;\\n    this.connect();\\n    return this;\\n  }\\n  setMediaElementSource(mediaElement) {\\n    this.hasPlaybackControl = false;\\n    this.sourceType = \\\\\\\"mediaNode\\\\\\\";\\n    this.source = this.context.createMediaElementSource(mediaElement);\\n    this.connect();\\n    return this;\\n  }\\n  setMediaStreamSource(mediaStream) {\\n    this.hasPlaybackControl = false;\\n    this.sourceType = \\\\\\\"mediaStreamNode\\\\\\\";\\n    this.source = this.context.createMediaStreamSource(mediaStream);\\n    this.connect();\\n    return this;\\n  }\\n  setBuffer(audioBuffer) {\\n    this.buffer = audioBuffer;\\n    this.sourceType = \\\\\\\"buffer\\\\\\\";\\n    if (this.autoplay)\\n      this.play();\\n    return this;\\n  }\\n  play(delay = 0) {\\n    if (this.isPlaying === true) {\\n      console.warn(\\\\\\\"THREE.Audio: Audio is already playing.\\\\\\\");\\n      return;\\n    }\\n    if (this.hasPlaybackControl === false) {\\n      console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");\\n      return;\\n    }\\n    this._startedAt = this.context.currentTime + delay;\\n    const source = this.context.createBufferSource();\\n    source.buffer = this.buffer;\\n    source.loop = this.loop;\\n    source.loopStart = this.loopStart;\\n    source.loopEnd = this.loopEnd;\\n    source.onended = this.onEnded.bind(this);\\n    source.start(this._startedAt, this._progress + this.offset, this.duration);\\n    this.isPlaying = true;\\n    this.source = source;\\n    this.setDetune(this.detune);\\n    this.setPlaybackRate(this.playbackRate);\\n    return this.connect();\\n  }\\n  pause() {\\n    if (this.hasPlaybackControl === false) {\\n      console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");\\n      return;\\n    }\\n    if (this.isPlaying === true) {\\n      this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate;\\n      if (this.loop === true) {\\n        this._progress = this._progress % (this.duration || this.buffer.duration);\\n      }\\n      this.source.stop();\\n      this.source.onended = null;\\n      this.isPlaying = false;\\n    }\\n    return this;\\n  }\\n  stop() {\\n    if (this.hasPlaybackControl === false) {\\n      console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");\\n      return;\\n    }\\n    this._progress = 0;\\n    this.source.stop();\\n    this.source.onended = null;\\n    this.isPlaying = false;\\n    return this;\\n  }\\n  connect() {\\n    if (this.filters.length > 0) {\\n      this.source.connect(this.filters[0]);\\n      for (let i = 1, l = this.filters.length; i < l; i++) {\\n        this.filters[i - 1].connect(this.filters[i]);\\n      }\\n      this.filters[this.filters.length - 1].connect(this.getOutput());\\n    } else {\\n      this.source.connect(this.getOutput());\\n    }\\n    this._connected = true;\\n    return this;\\n  }\\n  disconnect() {\\n    if (this.filters.length > 0) {\\n      this.source.disconnect(this.filters[0]);\\n      for (let i = 1, l = this.filters.length; i < l; i++) {\\n        this.filters[i - 1].disconnect(this.filters[i]);\\n      }\\n      this.filters[this.filters.length - 1].disconnect(this.getOutput());\\n    } else {\\n      this.source.disconnect(this.getOutput());\\n    }\\n    this._connected = false;\\n    return this;\\n  }\\n  getFilters() {\\n    return this.filters;\\n  }\\n  setFilters(value) {\\n    if (!value)\\n      value = [];\\n    if (this._connected === true) {\\n      this.disconnect();\\n      this.filters = value.slice();\\n      this.connect();\\n    } else {\\n      this.filters = value.slice();\\n    }\\n    return this;\\n  }\\n  setDetune(value) {\\n    this.detune = value;\\n    if (this.source.detune === void 0)\\n      return;\\n    if (this.isPlaying === true) {\\n      this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\\n    }\\n    return this;\\n  }\\n  getDetune() {\\n    return this.detune;\\n  }\\n  getFilter() {\\n    return this.getFilters()[0];\\n  }\\n  setFilter(filter) {\\n    return this.setFilters(filter ? [filter] : []);\\n  }\\n  setPlaybackRate(value) {\\n    if (this.hasPlaybackControl === false) {\\n      console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");\\n      return;\\n    }\\n    this.playbackRate = value;\\n    if (this.isPlaying === true) {\\n      this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\\n    }\\n    return this;\\n  }\\n  getPlaybackRate() {\\n    return this.playbackRate;\\n  }\\n  onEnded() {\\n    this.isPlaying = false;\\n  }\\n  getLoop() {\\n    if (this.hasPlaybackControl === false) {\\n      console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");\\n      return false;\\n    }\\n    return this.loop;\\n  }\\n  setLoop(value) {\\n    if (this.hasPlaybackControl === false) {\\n      console.warn(\\\\\\\"THREE.Audio: this Audio has no playback control.\\\\\\\");\\n      return;\\n    }\\n    this.loop = value;\\n    if (this.isPlaying === true) {\\n      this.source.loop = this.loop;\\n    }\\n    return this;\\n  }\\n  setLoopStart(value) {\\n    this.loopStart = value;\\n    return this;\\n  }\\n  setLoopEnd(value) {\\n    this.loopEnd = value;\\n    return this;\\n  }\\n  getVolume() {\\n    return this.gain.gain.value;\\n  }\\n  setVolume(value) {\\n    this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\\n    return this;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/audio/AudioContext.js\\nvar _context;\\nvar AudioContext = {\\n  getContext: function() {\\n    if (_context === void 0) {\\n      _context = new (window.AudioContext || window.webkitAudioContext)();\\n    }\\n    return _context;\\n  },\\n  setContext: function(value) {\\n    _context = value;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/loaders/Cache.js\\nvar Cache = {\\n  enabled: false,\\n  files: {},\\n  add: function(key, file) {\\n    if (this.enabled === false)\\n      return;\\n    this.files[key] = file;\\n  },\\n  get: function(key) {\\n    if (this.enabled === false)\\n      return;\\n    return this.files[key];\\n  },\\n  remove: function(key) {\\n    delete this.files[key];\\n  },\\n  clear: function() {\\n    this.files = {};\\n  }\\n};\\n\\n// ../../../node_modules/three/src/loaders/LoadingManager.js\\nvar LoadingManager = class {\\n  constructor(onLoad, onProgress, onError) {\\n    const scope = this;\\n    let isLoading = false;\\n    let itemsLoaded = 0;\\n    let itemsTotal = 0;\\n    let urlModifier = void 0;\\n    const handlers = [];\\n    this.onStart = void 0;\\n    this.onLoad = onLoad;\\n    this.onProgress = onProgress;\\n    this.onError = onError;\\n    this.itemStart = function(url) {\\n      itemsTotal++;\\n      if (isLoading === false) {\\n        if (scope.onStart !== void 0) {\\n          scope.onStart(url, itemsLoaded, itemsTotal);\\n        }\\n      }\\n      isLoading = true;\\n    };\\n    this.itemEnd = function(url) {\\n      itemsLoaded++;\\n      if (scope.onProgress !== void 0) {\\n        scope.onProgress(url, itemsLoaded, itemsTotal);\\n      }\\n      if (itemsLoaded === itemsTotal) {\\n        isLoading = false;\\n        if (scope.onLoad !== void 0) {\\n          scope.onLoad();\\n        }\\n      }\\n    };\\n    this.itemError = function(url) {\\n      if (scope.onError !== void 0) {\\n        scope.onError(url);\\n      }\\n    };\\n    this.resolveURL = function(url) {\\n      if (urlModifier) {\\n        return urlModifier(url);\\n      }\\n      return url;\\n    };\\n    this.setURLModifier = function(transform) {\\n      urlModifier = transform;\\n      return this;\\n    };\\n    this.addHandler = function(regex, loader) {\\n      handlers.push(regex, loader);\\n      return this;\\n    };\\n    this.removeHandler = function(regex) {\\n      const index = handlers.indexOf(regex);\\n      if (index !== -1) {\\n        handlers.splice(index, 2);\\n      }\\n      return this;\\n    };\\n    this.getHandler = function(file) {\\n      for (let i = 0, l = handlers.length; i < l; i += 2) {\\n        const regex = handlers[i];\\n        const loader = handlers[i + 1];\\n        if (regex.global)\\n          regex.lastIndex = 0;\\n        if (regex.test(file)) {\\n          return loader;\\n        }\\n      }\\n      return null;\\n    };\\n  }\\n};\\nvar DefaultLoadingManager = new LoadingManager();\\n\\n// ../../../node_modules/three/src/loaders/Loader.js\\nvar Loader = class {\\n  constructor(manager) {\\n    this.manager = manager !== void 0 ? manager : DefaultLoadingManager;\\n    this.crossOrigin = \\\\\\\"anonymous\\\\\\\";\\n    this.withCredentials = false;\\n    this.path = \\\\\\\"\\\\\\\";\\n    this.resourcePath = \\\\\\\"\\\\\\\";\\n    this.requestHeader = {};\\n  }\\n  load() {\\n  }\\n  loadAsync(url, onProgress) {\\n    const scope = this;\\n    return new Promise(function(resolve, reject) {\\n      scope.load(url, resolve, onProgress, reject);\\n    });\\n  }\\n  parse() {\\n  }\\n  setCrossOrigin(crossOrigin) {\\n    this.crossOrigin = crossOrigin;\\n    return this;\\n  }\\n  setWithCredentials(value) {\\n    this.withCredentials = value;\\n    return this;\\n  }\\n  setPath(path) {\\n    this.path = path;\\n    return this;\\n  }\\n  setResourcePath(resourcePath) {\\n    this.resourcePath = resourcePath;\\n    return this;\\n  }\\n  setRequestHeader(requestHeader) {\\n    this.requestHeader = requestHeader;\\n    return this;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/loaders/FileLoader.js\\nvar loading = {};\\nvar FileLoader = class extends Loader {\\n  constructor(manager) {\\n    super(manager);\\n  }\\n  load(url, onLoad, onProgress, onError) {\\n    if (url === void 0)\\n      url = \\\\\\\"\\\\\\\";\\n    if (this.path !== void 0)\\n      url = this.path + url;\\n    url = this.manager.resolveURL(url);\\n    const scope = this;\\n    const cached = Cache.get(url);\\n    if (cached !== void 0) {\\n      scope.manager.itemStart(url);\\n      setTimeout(function() {\\n        if (onLoad)\\n          onLoad(cached);\\n        scope.manager.itemEnd(url);\\n      }, 0);\\n      return cached;\\n    }\\n    if (loading[url] !== void 0) {\\n      loading[url].push({\\n        onLoad,\\n        onProgress,\\n        onError\\n      });\\n      return;\\n    }\\n    const dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/;\\n    const dataUriRegexResult = url.match(dataUriRegex);\\n    let request;\\n    if (dataUriRegexResult) {\\n      const mimeType = dataUriRegexResult[1];\\n      const isBase64 = !!dataUriRegexResult[2];\\n      let data = dataUriRegexResult[3];\\n      data = decodeURIComponent(data);\\n      if (isBase64)\\n        data = atob(data);\\n      try {\\n        let response;\\n        const responseType = (this.responseType || \\\\\\\"\\\\\\\").toLowerCase();\\n        switch (responseType) {\\n          case \\\\\\\"arraybuffer\\\\\\\":\\n          case \\\\\\\"blob\\\\\\\":\\n            const view = new Uint8Array(data.length);\\n            for (let i = 0; i < data.length; i++) {\\n              view[i] = data.charCodeAt(i);\\n            }\\n            if (responseType === \\\\\\\"blob\\\\\\\") {\\n              response = new Blob([view.buffer], {type: mimeType});\\n            } else {\\n              response = view.buffer;\\n            }\\n            break;\\n          case \\\\\\\"document\\\\\\\":\\n            const parser = new DOMParser();\\n            response = parser.parseFromString(data, mimeType);\\n            break;\\n          case \\\\\\\"json\\\\\\\":\\n            response = JSON.parse(data);\\n            break;\\n          default:\\n            response = data;\\n            break;\\n        }\\n        setTimeout(function() {\\n          if (onLoad)\\n            onLoad(response);\\n          scope.manager.itemEnd(url);\\n        }, 0);\\n      } catch (error) {\\n        setTimeout(function() {\\n          if (onError)\\n            onError(error);\\n          scope.manager.itemError(url);\\n          scope.manager.itemEnd(url);\\n        }, 0);\\n      }\\n    } else {\\n      loading[url] = [];\\n      loading[url].push({\\n        onLoad,\\n        onProgress,\\n        onError\\n      });\\n      request = new XMLHttpRequest();\\n      request.open(\\\\\\\"GET\\\\\\\", url, true);\\n      request.addEventListener(\\\\\\\"load\\\\\\\", function(event) {\\n        const response = this.response;\\n        const callbacks = loading[url];\\n        delete loading[url];\\n        if (this.status === 200 || this.status === 0) {\\n          if (this.status === 0)\\n            console.warn(\\\\\\\"THREE.FileLoader: HTTP Status 0 received.\\\\\\\");\\n          Cache.add(url, response);\\n          for (let i = 0, il = callbacks.length; i < il; i++) {\\n            const callback = callbacks[i];\\n            if (callback.onLoad)\\n              callback.onLoad(response);\\n          }\\n          scope.manager.itemEnd(url);\\n        } else {\\n          for (let i = 0, il = callbacks.length; i < il; i++) {\\n            const callback = callbacks[i];\\n            if (callback.onError)\\n              callback.onError(event);\\n          }\\n          scope.manager.itemError(url);\\n          scope.manager.itemEnd(url);\\n        }\\n      }, false);\\n      request.addEventListener(\\\\\\\"progress\\\\\\\", function(event) {\\n        const callbacks = loading[url];\\n        for (let i = 0, il = callbacks.length; i < il; i++) {\\n          const callback = callbacks[i];\\n          if (callback.onProgress)\\n            callback.onProgress(event);\\n        }\\n      }, false);\\n      request.addEventListener(\\\\\\\"error\\\\\\\", function(event) {\\n        const callbacks = loading[url];\\n        delete loading[url];\\n        for (let i = 0, il = callbacks.length; i < il; i++) {\\n          const callback = callbacks[i];\\n          if (callback.onError)\\n            callback.onError(event);\\n        }\\n        scope.manager.itemError(url);\\n        scope.manager.itemEnd(url);\\n      }, false);\\n      request.addEventListener(\\\\\\\"abort\\\\\\\", function(event) {\\n        const callbacks = loading[url];\\n        delete loading[url];\\n        for (let i = 0, il = callbacks.length; i < il; i++) {\\n          const callback = callbacks[i];\\n          if (callback.onError)\\n            callback.onError(event);\\n        }\\n        scope.manager.itemError(url);\\n        scope.manager.itemEnd(url);\\n      }, false);\\n      if (this.responseType !== void 0)\\n        request.responseType = this.responseType;\\n      if (this.withCredentials !== void 0)\\n        request.withCredentials = this.withCredentials;\\n      if (request.overrideMimeType)\\n        request.overrideMimeType(this.mimeType !== void 0 ? this.mimeType : \\\\\\\"text/plain\\\\\\\");\\n      for (const header in this.requestHeader) {\\n        request.setRequestHeader(header, this.requestHeader[header]);\\n      }\\n      request.send(null);\\n    }\\n    scope.manager.itemStart(url);\\n    return request;\\n  }\\n  setResponseType(value) {\\n    this.responseType = value;\\n    return this;\\n  }\\n  setMimeType(value) {\\n    this.mimeType = value;\\n    return this;\\n  }\\n};\\n\\n// ../../../node_modules/three/src/loaders/AudioLoader.js\\nvar AudioLoader = class extends Loader {\\n  constructor(manager) {\\n    super(manager);\\n  }\\n  load(url, onLoad, onProgress, onError) {\\n    const scope = this;\\n    const loader = new FileLoader(this.manager);\\n    loader.setResponseType(\\\\\\\"arraybuffer\\\\\\\");\\n    loader.setPath(this.path);\\n    loader.setRequestHeader(this.requestHeader);\\n    loader.setWithCredentials(this.withCredentials);\\n    loader.load(url, function(buffer) {\\n      try {\\n        const bufferCopy = buffer.slice(0);\\n        const context = AudioContext.getContext();\\n        context.decodeAudioData(bufferCopy, function(audioBuffer) {\\n          onLoad(audioBuffer);\\n        });\\n      } catch (e) {\\n        if (onError) {\\n          onError(e);\\n        } else {\\n          console.error(e);\\n        }\\n        scope.manager.itemError(url);\\n      }\\n    }, onProgress, onError);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/utils/params/ParamsConfig.ts\\nvar ParamTemplate = class {\\n  constructor(type, init_value, options) {\\n    this.type = type;\\n    this.init_value = init_value;\\n    this.options = options;\\n  }\\n};\\nvar ParamConfig = class {\\n  static BUTTON(init_value, options) {\\n    return new ParamTemplate(ParamType.BUTTON, init_value, options);\\n  }\\n  static BOOLEAN(init_value, options) {\\n    return new ParamTemplate(ParamType.BOOLEAN, init_value, options);\\n  }\\n  static COLOR(init_value, options) {\\n    if (init_value instanceof Color) {\\n      init_value = init_value.toArray();\\n    }\\n    return new ParamTemplate(ParamType.COLOR, init_value, options);\\n  }\\n  static FLOAT(init_value, options) {\\n    return new ParamTemplate(ParamType.FLOAT, init_value, options);\\n  }\\n  static FOLDER(init_value = null, options) {\\n    return new ParamTemplate(ParamType.FOLDER, init_value, options);\\n  }\\n  static INTEGER(init_value, options) {\\n    return new ParamTemplate(ParamType.INTEGER, init_value, options);\\n  }\\n  static RAMP(init_value = RampParam.DEFAULT_VALUE, options) {\\n    return new ParamTemplate(ParamType.RAMP, init_value, options);\\n  }\\n  static STRING(init_value = \\\\\\\"\\\\\\\", options) {\\n    return new ParamTemplate(ParamType.STRING, init_value, options);\\n  }\\n  static VECTOR2(init_value, options) {\\n    if (init_value instanceof Vector2) {\\n      init_value = init_value.toArray();\\n    }\\n    return new ParamTemplate(ParamType.VECTOR2, init_value, options);\\n  }\\n  static VECTOR3(init_value, options) {\\n    if (init_value instanceof Vector3) {\\n      init_value = init_value.toArray();\\n    }\\n    return new ParamTemplate(ParamType.VECTOR3, init_value, options);\\n  }\\n  static VECTOR4(init_value, options) {\\n    if (init_value instanceof Vector4) {\\n      init_value = init_value.toArray();\\n    }\\n    return new ParamTemplate(ParamType.VECTOR4, init_value, options);\\n  }\\n  static OPERATOR_PATH(init_value, options) {\\n    return new ParamTemplate(ParamType.OPERATOR_PATH, init_value, options);\\n  }\\n  static NODE_PATH(init_value, options) {\\n    return new ParamTemplate(ParamType.NODE_PATH, init_value, options);\\n  }\\n  static PARAM_PATH(init_value, options) {\\n    return new ParamTemplate(ParamType.PARAM_PATH, init_value, options);\\n  }\\n};\\nvar NodeParamsConfig = class {\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/Transform.ts\\nvar TransformTargetType;\\n(function(TransformTargetType2) {\\n  TransformTargetType2[\\\\\\\"OBJECTS\\\\\\\"] = \\\\\\\"objects\\\\\\\";\\n  TransformTargetType2[\\\\\\\"GEOMETRIES\\\\\\\"] = \\\\\\\"geometries\\\\\\\";\\n})(TransformTargetType || (TransformTargetType = {}));\\nvar TRANSFORM_TARGET_TYPES = [\\n  TransformTargetType.GEOMETRIES,\\n  TransformTargetType.OBJECTS\\n];\\nvar RotationOrder;\\n(function(RotationOrder2) {\\n  RotationOrder2[\\\\\\\"XYZ\\\\\\\"] = \\\\\\\"XYZ\\\\\\\";\\n  RotationOrder2[\\\\\\\"XZY\\\\\\\"] = \\\\\\\"XZY\\\\\\\";\\n  RotationOrder2[\\\\\\\"YXZ\\\\\\\"] = \\\\\\\"YXZ\\\\\\\";\\n  RotationOrder2[\\\\\\\"YZX\\\\\\\"] = \\\\\\\"YZX\\\\\\\";\\n  RotationOrder2[\\\\\\\"ZYX\\\\\\\"] = \\\\\\\"ZYX\\\\\\\";\\n  RotationOrder2[\\\\\\\"ZXY\\\\\\\"] = \\\\\\\"ZXY\\\\\\\";\\n})(RotationOrder || (RotationOrder = {}));\\nvar ROTATION_ORDERS = [\\n  RotationOrder.XYZ,\\n  RotationOrder.XZY,\\n  RotationOrder.YXZ,\\n  RotationOrder.YZX,\\n  RotationOrder.ZXY,\\n  RotationOrder.ZYX\\n];\\nvar DEFAULT_ROTATION_ORDER = RotationOrder.XYZ;\\nvar CoreTransform = class {\\n  constructor() {\\n    this._translation_matrix = new Matrix4();\\n    this._translation_matrix_q = new Quaternion();\\n    this._translation_matrix_s = new Vector3(1, 1, 1);\\n    this._matrix = new Matrix4().identity();\\n    this._matrix_q = new Quaternion();\\n    this._matrix_euler = new Euler();\\n    this._matrix_s = new Vector3();\\n    this._rotate_geometry_m = new Matrix4();\\n    this._rotate_geometry_q = new Quaternion();\\n    this._rotate_geometry_vec_dest = new Vector3();\\n  }\\n  static setParamsFromMatrix(matrix, node, options = {}) {\\n    let update_scale = options[\\\\\\\"scale\\\\\\\"];\\n    if (update_scale == null) {\\n      update_scale = true;\\n    }\\n    matrix.decompose(this.set_params_from_matrix_position, this.set_params_from_matrix_quaternion, this.set_params_from_matrix_scale);\\n    this.set_params_from_matrix_euler.setFromQuaternion(this.set_params_from_matrix_quaternion);\\n    this.set_params_from_matrix_euler.toVector3(this.set_params_from_matrix_rotation);\\n    this.set_params_from_matrix_rotation.divideScalar(Math.PI / 180);\\n    this.set_params_from_matrix_position.toArray(this.set_params_from_matrix_t);\\n    this.set_params_from_matrix_rotation.toArray(this.set_params_from_matrix_r);\\n    this.set_params_from_matrix_scale.toArray(this.set_params_from_matrix_s);\\n    node.scene().batchUpdates(() => {\\n      node.params.set_vector3(\\\\\\\"t\\\\\\\", this.set_params_from_matrix_t);\\n      node.params.set_vector3(\\\\\\\"r\\\\\\\", this.set_params_from_matrix_r);\\n      node.params.set_vector3(\\\\\\\"s\\\\\\\", this.set_params_from_matrix_s);\\n      if (update_scale) {\\n        node.params.set_float(\\\\\\\"scale\\\\\\\", 1);\\n      }\\n    });\\n  }\\n  static setParamsFromObject(object, node) {\\n    object.position.toArray(this.set_params_from_object_position_array);\\n    object.rotation.toArray(this.set_params_from_object_rotation_array);\\n    this.set_params_from_object_rotation_deg.fromArray(this.set_params_from_object_rotation_array);\\n    this.set_params_from_object_rotation_deg.multiplyScalar(180 / Math.PI);\\n    this.set_params_from_object_rotation_deg.toArray(this.set_params_from_object_rotation_array);\\n    node.scene().batchUpdates(() => {\\n      node.params.set_vector3(\\\\\\\"t\\\\\\\", this.set_params_from_object_position_array);\\n      node.params.set_vector3(\\\\\\\"r\\\\\\\", this.set_params_from_object_rotation_array);\\n    });\\n  }\\n  translationMatrix(t) {\\n    this._translation_matrix.compose(t, this._translation_matrix_q, this._translation_matrix_s);\\n    return this._translation_matrix;\\n  }\\n  matrix(t, r, s, scale, rotation_order) {\\n    this._matrix_euler.set(degToRad(r.x), degToRad(r.y), degToRad(r.z), rotation_order);\\n    this._matrix_q.setFromEuler(this._matrix_euler);\\n    this._matrix_s.copy(s).multiplyScalar(scale);\\n    this._matrix.compose(t, this._matrix_q, this._matrix_s);\\n    return this._matrix;\\n  }\\n  rotateGeometry(geometry, vec_origin, vec_dest) {\\n    this._rotate_geometry_vec_dest.copy(vec_dest);\\n    this._rotate_geometry_vec_dest.normalize();\\n    this._rotate_geometry_q.setFromUnitVectors(vec_origin, this._rotate_geometry_vec_dest);\\n    this._rotate_geometry_m.makeRotationFromQuaternion(this._rotate_geometry_q);\\n    geometry.applyMatrix4(this._rotate_geometry_m);\\n  }\\n  static decomposeMatrix(object) {\\n    object.matrix.decompose(object.position, object.quaternion, object.scale);\\n  }\\n};\\nCoreTransform.set_params_from_matrix_position = new Vector3();\\nCoreTransform.set_params_from_matrix_quaternion = new Quaternion();\\nCoreTransform.set_params_from_matrix_scale = new Vector3();\\nCoreTransform.set_params_from_matrix_euler = new Euler();\\nCoreTransform.set_params_from_matrix_rotation = new Vector3();\\nCoreTransform.set_params_from_matrix_t = [0, 0, 0];\\nCoreTransform.set_params_from_matrix_r = [0, 0, 0];\\nCoreTransform.set_params_from_matrix_s = [0, 0, 0];\\nCoreTransform.set_params_from_object_position_array = [0, 0, 0];\\nCoreTransform.set_params_from_object_rotation_deg = new Vector3();\\nCoreTransform.set_params_from_object_rotation_array = [0, 0, 0];\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/obj/utils/TransformController.ts\\nfunction TransformedParamConfig(Base, default_params) {\\n  const matrixAutoUpdate = default_params?.matrixAutoUpdate || false;\\n  return class Mixin extends Base {\\n    constructor() {\\n      super(...arguments);\\n      this.transform = ParamConfig.FOLDER();\\n      this.keepPosWhenParenting = ParamConfig.BOOLEAN(0);\\n      this.rotationOrder = ParamConfig.INTEGER(ROTATION_ORDERS.indexOf(RotationOrder.XYZ), {\\n        menu: {\\n          entries: ROTATION_ORDERS.map((order, v) => {\\n            return {name: order, value: v};\\n          })\\n        }\\n      });\\n      this.t = ParamConfig.VECTOR3([0, 0, 0]);\\n      this.r = ParamConfig.VECTOR3([0, 0, 0]);\\n      this.s = ParamConfig.VECTOR3([1, 1, 1]);\\n      this.scale = ParamConfig.FLOAT(1);\\n      this.matrixAutoUpdate = ParamConfig.BOOLEAN(matrixAutoUpdate ? 1 : 0);\\n      this.updateTransformFromObject = ParamConfig.BUTTON(null, {\\n        callback: (node) => {\\n          TransformController.PARAM_CALLBACK_update_transform_from_object(node);\\n        }\\n      });\\n    }\\n  };\\n}\\nvar TransformedParamsConfig = class extends TransformedParamConfig(NodeParamsConfig) {\\n};\\nvar HOOK_NAME = \\\\\\\"_cook_main_without_inputs_when_dirty\\\\\\\";\\nvar TransformController = class {\\n  constructor(node) {\\n    this.node = node;\\n    this._cook_main_without_inputs_when_dirty_bound = this._cook_main_without_inputs_when_dirty.bind(this);\\n    this._core_transform = new CoreTransform();\\n    this._keep_pos_when_parenting_m_object = new Matrix4();\\n    this._keep_pos_when_parenting_m_new_parent_inv = new Matrix4();\\n  }\\n  initializeNode() {\\n    if (!this.node.dirtyController.hasHook(HOOK_NAME)) {\\n      this.node.dirtyController.addPostDirtyHook(HOOK_NAME, this._cook_main_without_inputs_when_dirty_bound);\\n    }\\n  }\\n  async _cook_main_without_inputs_when_dirty() {\\n    await this.node.cookController.cookMainWithoutInputs();\\n  }\\n  update() {\\n    this.update_transform_with_matrix();\\n    const object = this.node.object;\\n    object.matrixAutoUpdate = isBooleanTrue(this.node.pv.matrixAutoUpdate);\\n  }\\n  update_transform_with_matrix(matrix) {\\n    const object = this.node.object;\\n    if (matrix != null && !matrix.equals(object.matrix)) {\\n      object.matrix.copy(matrix);\\n      object.dispatchEvent({type: \\\\\\\"change\\\\\\\"});\\n    } else {\\n      this._update_matrix_from_params_with_core_transform();\\n    }\\n  }\\n  _update_matrix_from_params_with_core_transform() {\\n    const object = this.node.object;\\n    let prev_auto_update = object.matrixAutoUpdate;\\n    if (prev_auto_update) {\\n      object.matrixAutoUpdate = false;\\n    }\\n    const matrix = this._core_transform.matrix(this.node.pv.t, this.node.pv.r, this.node.pv.s, this.node.pv.scale, ROTATION_ORDERS[this.node.pv.rotationOrder]);\\n    object.matrix.identity();\\n    object.applyMatrix4(matrix);\\n    this._apply_look_at();\\n    object.updateMatrix();\\n    if (prev_auto_update) {\\n      object.matrixAutoUpdate = true;\\n    }\\n    object.dispatchEvent({type: \\\\\\\"change\\\\\\\"});\\n  }\\n  _apply_look_at() {\\n  }\\n  set_params_from_matrix(matrix, options = {}) {\\n    CoreTransform.setParamsFromMatrix(matrix, this.node, options);\\n  }\\n  static update_node_transform_params_if_required(node, new_parent_object) {\\n    node.transformController.update_node_transform_params_if_required(new_parent_object);\\n  }\\n  update_node_transform_params_if_required(new_parent_object) {\\n    if (!isBooleanTrue(this.node.pv.keepPosWhenParenting)) {\\n      return;\\n    }\\n    if (!this.node.scene().loadingController.loaded()) {\\n      return;\\n    }\\n    if (new_parent_object == this.node.object.parent) {\\n      return;\\n    }\\n    const object = this.node.object;\\n    object.updateMatrixWorld(true);\\n    new_parent_object.updateMatrixWorld(true);\\n    this._keep_pos_when_parenting_m_object.copy(object.matrixWorld);\\n    this._keep_pos_when_parenting_m_new_parent_inv.copy(new_parent_object.matrixWorld);\\n    this._keep_pos_when_parenting_m_new_parent_inv.invert();\\n    this._keep_pos_when_parenting_m_object.premultiply(this._keep_pos_when_parenting_m_new_parent_inv);\\n    CoreTransform.setParamsFromMatrix(this._keep_pos_when_parenting_m_object, this.node, {scale: true});\\n  }\\n  update_node_transform_params_from_object(update_matrix = false) {\\n    const object = this.node.object;\\n    if (update_matrix) {\\n      object.updateMatrix();\\n    }\\n    CoreTransform.setParamsFromMatrix(object.matrix, this.node, {scale: true});\\n  }\\n  static PARAM_CALLBACK_update_transform_from_object(node) {\\n    node.transformController.update_node_transform_params_from_object();\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/obj/utils/HierarchyController.ts\\nvar HierarchyController = class {\\n  constructor(node) {\\n    this.node = node;\\n  }\\n  initializeNode() {\\n    this.node.io.inputs.setCount(0, 1);\\n    this.node.io.inputs.set_depends_on_inputs(false);\\n    this.node.io.outputs.setHasOneOutput();\\n    this.node.io.inputs.add_on_set_input_hook(\\\\\\\"on_input_updated:update_parent\\\\\\\", () => {\\n      this.on_input_updated();\\n    });\\n  }\\n  static on_input_updated(node) {\\n    const parent_object = node.root().getParentForNode(node);\\n    if (node.transformController && parent_object) {\\n      TransformController.update_node_transform_params_if_required(node, parent_object);\\n    }\\n    if (node.io.inputs.input(0) != null) {\\n      node.root().addToParentTransform(node);\\n    } else {\\n      node.root().removeFromParentTransform(node);\\n    }\\n  }\\n  on_input_updated() {\\n    HierarchyController.on_input_updated(this.node);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/loader/_Base.ts\\nvar LOADING_MANAGER = new LoadingManager();\\nLOADING_MANAGER.setURLModifier((url) => {\\n  const remapedUrl = Poly.assetUrls.remapedUrl(url);\\n  if (remapedUrl) {\\n    return remapedUrl;\\n  }\\n  const blobUrl = Poly.blobs.blobUrl(url);\\n  if (blobUrl) {\\n    return blobUrl;\\n  }\\n  return url;\\n});\\nvar CoreBaseLoader2 = class {\\n  constructor(_url, _scene, _node) {\\n    this._url = _url;\\n    this._scene = _scene;\\n    this._node = _node;\\n    this.loadingManager = LOADING_MANAGER;\\n  }\\n  static extension(url) {\\n    let ext = null;\\n    try {\\n      const _url = new URL(url);\\n      ext = _url.searchParams.get(\\\\\\\"ext\\\\\\\");\\n    } catch (e) {\\n    }\\n    if (!ext) {\\n      const url_without_params = url.split(\\\\\\\"?\\\\\\\")[0];\\n      const elements = url_without_params.split(\\\\\\\".\\\\\\\");\\n      ext = elements[elements.length - 1].toLowerCase();\\n    }\\n    return ext;\\n  }\\n  extension() {\\n    return CoreBaseLoader2.extension(this._url);\\n  }\\n  async _urlToLoad() {\\n    const {storedUrl, fullUrl} = this._urlData();\\n    if (this._node) {\\n      await Poly.blobs.fetchBlobForNode({storedUrl, fullUrl, node: this._node});\\n    }\\n    const blobUrl = Poly.blobs.blobUrl(storedUrl);\\n    return blobUrl || fullUrl;\\n  }\\n  deregisterUrl() {\\n    const {storedUrl} = this._urlData();\\n    Poly.blobs.deregisterUrl(storedUrl);\\n  }\\n  _urlData() {\\n    let fullUrl = this._url;\\n    const storedUrl = this._url.split(\\\\\\\"?\\\\\\\")[0];\\n    if (fullUrl[0] != \\\\\\\"h\\\\\\\") {\\n      const assets_root = this._scene.assets.root();\\n      if (assets_root) {\\n        fullUrl = `${assets_root}${fullUrl}`;\\n      }\\n    }\\n    return {fullUrl, storedUrl};\\n  }\\n  static async _loadMultipleBlobGlobal(options) {\\n    const promises = [];\\n    for (let file of options.files) {\\n      const storedUrl = file.storedUrl;\\n      const fullUrl = file.fullUrl;\\n      const node = options.node;\\n      promises.push(Poly.blobs.fetchBlobGlobal({storedUrl, fullUrl, node}));\\n    }\\n    const responses = await Promise.all(promises);\\n    for (let response of responses) {\\n      if (response.error) {\\n        options.node.states.error.set(options.error);\\n      }\\n    }\\n  }\\n};\\nvar CoreBaseLoader = CoreBaseLoader2;\\nCoreBaseLoader.loadingManager = LOADING_MANAGER;\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/loader/Audio.ts\\nvar Extension;\\n(function(Extension2) {\\n  Extension2[\\\\\\\"MP3\\\\\\\"] = \\\\\\\"mp3\\\\\\\";\\n  Extension2[\\\\\\\"WAV\\\\\\\"] = \\\\\\\"wav\\\\\\\";\\n})(Extension || (Extension = {}));\\nvar AUDIO_EXTENSIONS = [Extension.MP3, Extension.WAV];\\nvar CoreLoaderAudio = class extends CoreBaseLoader {\\n  async load() {\\n    const audioLoader = new AudioLoader(this.loadingManager);\\n    const url = await this._urlToLoad();\\n    return new Promise((resolve) => {\\n      audioLoader.load(url, function(buffer) {\\n        resolve(buffer);\\n      });\\n    });\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/poly/registers/nodes/types/Obj.ts\\nvar ObjType;\\n(function(ObjType2) {\\n  ObjType2[\\\\\\\"GEO\\\\\\\"] = \\\\\\\"geo\\\\\\\";\\n  ObjType2[\\\\\\\"CUBE_CAMERA\\\\\\\"] = \\\\\\\"cubeCamera\\\\\\\";\\n  ObjType2[\\\\\\\"AUDIO_LISTENER\\\\\\\"] = \\\\\\\"audioListener\\\\\\\";\\n  ObjType2[\\\\\\\"POSITIONAL_AUDIO\\\\\\\"] = \\\\\\\"positionalAudio\\\\\\\";\\n})(ObjType || (ObjType = {}));\\n\\n// src/engine/nodes/obj/AudioAnalyzer.ts\\nvar AudioAnalyzerParamConfig = class extends NodeParamsConfig {\\n  constructor() {\\n    super(...arguments);\\n    this.url = ParamConfig.STRING(\\\\\\\"\\\\\\\", {\\n      fileBrowse: {type: [FileType.AUDIO]}\\n    });\\n    this.listener = ParamConfig.NODE_PATH(\\\\\\\"\\\\\\\", {\\n      nodeSelection: {\\n        context: NodeContext.OBJ,\\n        types: [ObjType.AUDIO_LISTENER]\\n      }\\n    });\\n    this.fftSize = ParamConfig.INTEGER(128, {\\n      range: [1, 1024]\\n    });\\n    this.output0 = ParamConfig.FLOAT(1);\\n    this.output1 = ParamConfig.FLOAT(1);\\n    this.play = ParamConfig.BUTTON(null, {\\n      callback: (node) => {\\n        AudioAnalyzerObjNode.PARAM_CALLBACK_play(node);\\n      }\\n    });\\n    this.pause = ParamConfig.BUTTON(null, {\\n      callback: (node) => {\\n        AudioAnalyzerObjNode.PARAM_CALLBACK_pause(node);\\n      }\\n    });\\n  }\\n};\\nvar ParamsConfig = new AudioAnalyzerParamConfig();\\nvar AudioAnalyzerObjNode = class extends TypedObjNode {\\n  constructor() {\\n    super(...arguments);\\n    this.paramsConfig = ParamsConfig;\\n    this.hierarchyController = new HierarchyController(this);\\n    this.flags = new FlagsControllerD(this);\\n  }\\n  static type() {\\n    return \\\\\\\"audioAnalyzer\\\\\\\";\\n  }\\n  createObject() {\\n    const group = new Group();\\n    group.matrixAutoUpdate = false;\\n    return group;\\n  }\\n  initializeNode() {\\n    this.hierarchyController.initializeNode();\\n  }\\n  cook() {\\n    this.cookController.endCook();\\n  }\\n  async audioAnalyzer() {\\n    return this._audioAnalyzer = this._audioAnalyzer || await this._createAudioAnalyzer();\\n  }\\n  async _createAudioAnalyzer() {\\n    console.log(\\\\\\\"_createAudioAnalyzer\\\\\\\");\\n    if (this.p.listener.isDirty()) {\\n      await this.p.listener.compute();\\n    }\\n    const node = this.pv.listener.nodeWithContext(NodeContext.OBJ);\\n    if (!node) {\\n      return;\\n    }\\n    console.log(\\\\\\\"_createAudioAnalyzer B\\\\\\\");\\n    const listener = node.object;\\n    this._audio = new Audio2(listener);\\n    if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent)) {\\n      const loader2 = new AudioLoader();\\n      loader2.load(this.pv.url, (buffer) => {\\n        if (this._audio) {\\n          this._audio.setBuffer(buffer);\\n          this._audio.hasPlaybackControl = true;\\n          console.log(\\\\\\\"play A\\\\\\\");\\n        }\\n      });\\n    } else {\\n      this._mediaElement = new Audio(this.pv.url);\\n      console.log(\\\\\\\"play B\\\\\\\");\\n      this._audio.setMediaElementSource(this._mediaElement);\\n      this._audio.hasPlaybackControl = true;\\n    }\\n    const audioAnalyzer = new AudioAnalyser(this._audio, this.pv.fftSize);\\n    const loader = new CoreLoaderAudio(this.pv.url, this.scene(), this);\\n    this.scene().registerOnBeforeTick(`audioAnalyzer-${this.path()}`, () => {\\n      if (this._audioAnalyzer) {\\n        this._audioAnalyzer.getFrequencyData();\\n        const value = this._audioAnalyzer.data[0];\\n        console.log(value, this._audioAnalyzer.data);\\n        this.p.output0.set(value);\\n        const average = this._audioAnalyzer.getAverageFrequency();\\n        this.p.output1.set(average);\\n      }\\n    });\\n    return audioAnalyzer;\\n  }\\n  isPlaying() {\\n    if (this._audio) {\\n      return isBooleanTrue(this._audio.isPlaying);\\n    }\\n    if (this._mediaElement) {\\n      return isBooleanTrue(this._mediaElement.isPlaying);\\n    }\\n    return false;\\n  }\\n  static PARAM_CALLBACK_play(node) {\\n    node.PARAM_CALLBACK_play();\\n  }\\n  static PARAM_CALLBACK_pause(node) {\\n    node.PARAM_CALLBACK_pause();\\n  }\\n  PARAM_CALLBACK_play() {\\n    this.audioAnalyzer();\\n    if (!this.isPlaying()) {\\n      console.log(\\\\\\\"play !\\\\\\\");\\n      this._audio?.play();\\n      this._mediaElement?.play();\\n    }\\n  }\\n  PARAM_CALLBACK_pause() {\\n    this.audioAnalyzer();\\n    if (this.isPlaying()) {\\n      console.log(\\\\\\\"-pause-\\\\\\\");\\n      this._audio?.pause();\\n      this._mediaElement?.pause();\\n    }\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/core/geometry/Group.ts\\nvar CoreGroup = class {\\n  constructor() {\\n    this._objects = [];\\n    this._objects_with_geo = [];\\n    this.touch();\\n  }\\n  timestamp() {\\n    return this._timestamp;\\n  }\\n  touch() {\\n    const performance2 = Poly.performance.performanceManager();\\n    this._timestamp = performance2.now();\\n    this.reset();\\n  }\\n  reset() {\\n    this._bounding_box = void 0;\\n    this._core_geometries = void 0;\\n    this._core_objects = void 0;\\n  }\\n  clone() {\\n    const core_group = new CoreGroup();\\n    if (this._objects) {\\n      const objects = [];\\n      for (let object of this._objects) {\\n        objects.push(CoreObject.clone(object));\\n      }\\n      core_group.setObjects(objects);\\n    }\\n    return core_group;\\n  }\\n  setObjects(objects) {\\n    this._objects = objects;\\n    this._objects_with_geo = objects.filter((obj) => obj.geometry != null);\\n    this.touch();\\n  }\\n  objects() {\\n    return this._objects;\\n  }\\n  objectsWithGeo() {\\n    return this._objects_with_geo;\\n  }\\n  coreObjects() {\\n    return this._core_objects = this._core_objects || this._create_core_objects();\\n  }\\n  _create_core_objects() {\\n    if (this._objects) {\\n      return this._objects.map((object, i) => new CoreObject(object, i));\\n    }\\n    return [];\\n  }\\n  objectsData() {\\n    if (this._objects) {\\n      return this._objects.map((object) => this._objectData(object));\\n    }\\n    return [];\\n  }\\n  _objectData(object) {\\n    let points_count = 0;\\n    if (object.geometry) {\\n      points_count = CoreGeometry.pointsCount(object.geometry);\\n    }\\n    return {\\n      type: objectTypeFromConstructor(object.constructor),\\n      name: object.name,\\n      children_count: object.children.length,\\n      points_count\\n    };\\n  }\\n  geometries() {\\n    const list = [];\\n    for (let core_object of this.coreObjects()) {\\n      const geometry = core_object.object().geometry;\\n      if (geometry) {\\n        list.push(geometry);\\n      }\\n    }\\n    return list;\\n  }\\n  coreGeometries() {\\n    return this._core_geometries = this._core_geometries || this._createCoreGeometries();\\n  }\\n  _createCoreGeometries() {\\n    const list = [];\\n    for (let geometry of this.geometries()) {\\n      list.push(new CoreGeometry(geometry));\\n    }\\n    return list;\\n  }\\n  static geometryFromObject(object) {\\n    if (object.isMesh || object.isLine || object.isPoints) {\\n      return object.geometry;\\n    }\\n    return null;\\n  }\\n  faces() {\\n    const faces = [];\\n    for (let object of this.objectsWithGeo()) {\\n      if (object.geometry) {\\n        const coreGeo = new CoreGeometry(object.geometry);\\n        const geoFaces = coreGeo.faces();\\n        for (let geoFace of geoFaces) {\\n          geoFace.applyMatrix4(object.matrix);\\n          faces.push(geoFace);\\n        }\\n      }\\n    }\\n    return faces;\\n  }\\n  points() {\\n    return this.coreGeometries().map((g) => g.points()).flat();\\n  }\\n  pointsCount() {\\n    return ArrayUtils.sum(this.coreGeometries().map((g) => g.pointsCount()));\\n  }\\n  totalPointsCount() {\\n    if (this._objects) {\\n      let sum = 0;\\n      for (let object of this._objects) {\\n        object.traverse((object2) => {\\n          const geometry = object2.geometry;\\n          if (geometry) {\\n            sum += CoreGeometry.pointsCount(geometry);\\n          }\\n        });\\n      }\\n      return sum;\\n    } else {\\n      return 0;\\n    }\\n  }\\n  pointsFromGroup(group) {\\n    if (group) {\\n      const indices = CoreString.indices(group);\\n      const points2 = this.points();\\n      return ArrayUtils.compact(indices.map((i) => points2[i]));\\n    } else {\\n      return this.points();\\n    }\\n  }\\n  static _fromObjects(objects) {\\n    const core_group = new CoreGroup();\\n    core_group.setObjects(objects);\\n    return core_group;\\n  }\\n  objectsFromGroup(group_name) {\\n    return this.coreObjectsFromGroup(group_name).map((co) => co.object());\\n  }\\n  coreObjectsFromGroup(group_name) {\\n    group_name = group_name.trim();\\n    if (group_name !== \\\\\\\"\\\\\\\") {\\n      const index = parseInt(group_name);\\n      if (!CoreType.isNaN(index)) {\\n        return ArrayUtils.compact([this.coreObjects()[index]]);\\n      } else {\\n        return this.coreObjects().filter((core_object) => {\\n          return CoreString.matchMask(group_name, core_object.name());\\n        });\\n      }\\n    } else {\\n      return this.coreObjects();\\n    }\\n  }\\n  boundingBox(forceUpdate = false) {\\n    if (forceUpdate) {\\n      return this._bounding_box = this._computeBoundingBox();\\n    }\\n    return this._bounding_box = this._bounding_box || this._computeBoundingBox();\\n  }\\n  center() {\\n    const center = new Vector3();\\n    this.boundingBox().getCenter(center);\\n    return center;\\n  }\\n  size() {\\n    const size = new Vector3();\\n    this.boundingBox().getSize(size);\\n    return size;\\n  }\\n  _computeBoundingBox() {\\n    let bbox;\\n    if (this._objects) {\\n      for (let object of this._objects) {\\n        const geometry = object.geometry;\\n        if (geometry) {\\n          geometry.computeBoundingBox();\\n          if (bbox) {\\n            bbox.expandByObject(object);\\n          } else {\\n            if (geometry.boundingBox) {\\n              bbox = geometry.boundingBox.clone();\\n            }\\n          }\\n        }\\n      }\\n    }\\n    bbox = bbox || new Box3(new Vector3(-1, -1, -1), new Vector3(1, 1, 1));\\n    return bbox;\\n  }\\n  computeVertexNormals() {\\n    for (let object of this.coreObjects()) {\\n      object.computeVertexNormals();\\n    }\\n  }\\n  hasAttrib(name) {\\n    let first_geometry;\\n    if ((first_geometry = this.coreGeometries()[0]) != null) {\\n      return first_geometry.hasAttrib(name);\\n    } else {\\n      return false;\\n    }\\n  }\\n  attribType(name) {\\n    const first_core_geometry = this.coreGeometries()[0];\\n    if (first_core_geometry != null) {\\n      return first_core_geometry.attribType(name);\\n    } else {\\n      return null;\\n    }\\n  }\\n  objectAttribType(name) {\\n    const first_core_object = this.coreObjects()[0];\\n    if (first_core_object != null) {\\n      return first_core_object.attribType(name);\\n    } else {\\n      return null;\\n    }\\n  }\\n  renameAttrib(old_name, new_name, attrib_class) {\\n    switch (attrib_class) {\\n      case CoreConstant.ATTRIB_CLASS.VERTEX:\\n        if (this.hasAttrib(old_name)) {\\n          if (this._objects) {\\n            for (let object of this._objects) {\\n              object.traverse((child) => {\\n                const geometry = CoreGroup.geometryFromObject(child);\\n                if (geometry) {\\n                  const core_geometry = new CoreGeometry(geometry);\\n                  core_geometry.renameAttrib(old_name, new_name);\\n                }\\n              });\\n            }\\n          }\\n        }\\n        break;\\n      case CoreConstant.ATTRIB_CLASS.OBJECT:\\n        if (this.hasAttrib(old_name)) {\\n          if (this._objects) {\\n            for (let object of this._objects) {\\n              object.traverse((child) => {\\n                const core_object = new CoreObject(child, 0);\\n                core_object.renameAttrib(old_name, new_name);\\n              });\\n            }\\n          }\\n        }\\n        break;\\n    }\\n  }\\n  attribNames() {\\n    let first_geometry;\\n    if ((first_geometry = this.coreGeometries()[0]) != null) {\\n      return first_geometry.attribNames();\\n    } else {\\n      return [];\\n    }\\n  }\\n  objectAttribNames() {\\n    let first_object;\\n    if ((first_object = this.coreObjects()[0]) != null) {\\n      return first_object.attribNames();\\n    } else {\\n      return [];\\n    }\\n  }\\n  attribNamesMatchingMask(masks_string) {\\n    const masks = CoreString.attribNames(masks_string);\\n    const matching_attrib_names = [];\\n    for (let attrib_name of this.attribNames()) {\\n      for (let mask of masks) {\\n        if (CoreString.matchMask(attrib_name, mask)) {\\n          matching_attrib_names.push(attrib_name);\\n        } else {\\n          const remapped = CoreAttribute.remapName(mask);\\n          if (attrib_name == remapped) {\\n            matching_attrib_names.push(attrib_name);\\n          }\\n        }\\n      }\\n    }\\n    return ArrayUtils.uniq(matching_attrib_names);\\n  }\\n  attribSizes() {\\n    let first_geometry;\\n    if ((first_geometry = this.coreGeometries()[0]) != null) {\\n      return first_geometry.attribSizes();\\n    } else {\\n      return {};\\n    }\\n  }\\n  objectAttribSizes() {\\n    let first_object;\\n    if ((first_object = this.coreObjects()[0]) != null) {\\n      return first_object.attribSizes();\\n    } else {\\n      return {};\\n    }\\n  }\\n  attribSize(attrib_name) {\\n    let first_geometry;\\n    if ((first_geometry = this.coreGeometries()[0]) != null) {\\n      return first_geometry.attribSize(attrib_name);\\n    } else {\\n      return 0;\\n    }\\n  }\\n  addNumericVertexAttrib(name, size, default_value) {\\n    if (default_value == null) {\\n      default_value = CoreAttribute.default_value(size);\\n    }\\n    for (let core_geometry of this.coreGeometries()) {\\n      core_geometry.addNumericAttrib(name, size, default_value);\\n    }\\n  }\\n  static clone(src_group) {\\n    const new_group = new Group();\\n    src_group.children.forEach((src_object) => {\\n      const new_object = CoreObject.clone(src_object);\\n      new_group.add(new_object);\\n    });\\n    return new_group;\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/operations/_Base.ts\\nvar BaseOperation = class {\\n  constructor(_scene, states, _node) {\\n    this._scene = _scene;\\n    this.states = states;\\n    this._node = _node;\\n  }\\n  static type() {\\n    throw \\\\\\\"type to be overriden\\\\\\\";\\n  }\\n  type() {\\n    const c = this.constructor;\\n    return c.type();\\n  }\\n  static context() {\\n    console.error(\\\\\\\"operation has no node_context\\\\\\\", this);\\n    throw \\\\\\\"context requires override\\\\\\\";\\n  }\\n  context() {\\n    const c = this.constructor;\\n    return c.context();\\n  }\\n  scene() {\\n    return this._scene;\\n  }\\n  cook(input_contents, params) {\\n  }\\n};\\nBaseOperation.DEFAULT_PARAMS = {};\\nBaseOperation.INPUT_CLONED_STATE = [];\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/operations/sop/_Base.ts\\nvar BaseSopOperation = class extends BaseOperation {\\n  static context() {\\n    return NodeContext.SOP;\\n  }\\n  cook(input_contents, params) {\\n  }\\n  createCoreGroupFromObjects(objects) {\\n    const core_group = new CoreGroup();\\n    core_group.setObjects(objects);\\n    return core_group;\\n  }\\n  createCoreGroupFromGeometry(geometry, type = ObjectType.MESH) {\\n    const object = BaseSopOperation.createObject(geometry, type);\\n    return this.createCoreGroupFromObjects([object]);\\n  }\\n  createObject(geometry, type, material) {\\n    return BaseSopOperation.createObject(geometry, type, material);\\n  }\\n  static createObject(geometry, type, material) {\\n    this.createIndexIfNone(geometry);\\n    const object_constructor = OBJECT_CONSTRUCTOR_BY_OBJECT_TYPE[type];\\n    material = material || CoreConstant.MATERIALS[type].clone();\\n    const object = new object_constructor(geometry, material);\\n    object.castShadow = true;\\n    object.receiveShadow = true;\\n    object.frustumCulled = false;\\n    object.matrixAutoUpdate = false;\\n    return object;\\n  }\\n  createIndexIfNone(geometry) {\\n    BaseSopOperation.createIndexIfNone(geometry);\\n  }\\n  static createIndexIfNone(geometry) {\\n    CoreGeometryIndexBuilder.createIndexIfNone(geometry);\\n  }\\n};\\n\\n// ../../../node_modules/@polygonjs/polygonjs/src/engine/nodes/sop/_Base.ts\\nvar MESSAGE;\\n(function(MESSAGE2) {\\n  MESSAGE2[\\\\\\\"FROM_SET_CORE_GROUP\\\\\\\"] = \\\\\\\"from set_core_group\\\\\\\";\\n  MESSAGE2[\\\\\\\"FROM_SET_GROUP\\\\\\\"] = \\\\\\\"from set_group\\\\\\\";\\n  MESSAGE2[\\\\\\\"FROM_SET_OBJECTS\\\\\\\"] = \\\\\\\"from set_objects\\\\\\\";\\n  MESSAGE2[\\\\\\\"FROM_SET_OBJECT\\\\\\\"] = \\\\\\\"from set_object\\\\\\\";\\n  MESSAGE2[\\\\\\\"FROM_SET_GEOMETRIES\\\\\\\"] = \\\\\\\"from set_geometries\\\\\\\";\\n  MESSAGE2[\\\\\\\"FROM_SET_GEOMETRY\\\\\\\"] = \\\\\\\"from set_geometry\\\\\\\";\\n})(MESSAGE || (MESSAGE = {}));\\nvar INPUT_GEOMETRY_NAME = \\\\\\\"input geometry\\\\\\\";\\nvar DEFAULT_INPUT_NAMES2 = [INPUT_GEOMETRY_NAME, INPUT_GEOMETRY_NAME, INPUT_GEOMETRY_NAME, INPUT_GEOMETRY_NAME];\\nvar TypedSopNode = class extends TypedNode {\\n  constructor() {\\n    super(...arguments);\\n    this.flags = new FlagsControllerDBO(this);\\n  }\\n  static context() {\\n    return NodeContext.SOP;\\n  }\\n  static displayedInputNames() {\\n    return DEFAULT_INPUT_NAMES2;\\n  }\\n  initializeBaseNode() {\\n    this.flags.display.set(false);\\n    this.flags.display.onUpdate(() => {\\n      if (this.flags.display.active()) {\\n        const parent = this.parent();\\n        if (parent && parent.displayNodeController) {\\n          parent.displayNodeController.setDisplayNode(this);\\n        }\\n      }\\n    });\\n    this.io.outputs.setHasOneOutput();\\n  }\\n  setCoreGroup(core_group) {\\n    this._setContainer(core_group, MESSAGE.FROM_SET_CORE_GROUP);\\n  }\\n  setObject(object) {\\n    this._setContainerObjects([object], MESSAGE.FROM_SET_OBJECT);\\n  }\\n  setObjects(objects) {\\n    this._setContainerObjects(objects, MESSAGE.FROM_SET_OBJECTS);\\n  }\\n  setGeometry(geometry, type = ObjectType.MESH) {\\n    const object = this.createObject(geometry, type);\\n    this._setContainerObjects([object], MESSAGE.FROM_SET_GEOMETRY);\\n  }\\n  setGeometries(geometries, type = ObjectType.MESH) {\\n    const objects = [];\\n    let object;\\n    for (let geometry of geometries) {\\n      object = this.createObject(geometry, type);\\n      objects.push(object);\\n    }\\n    this._setContainerObjects(objects, MESSAGE.FROM_SET_GEOMETRIES);\\n  }\\n  _setContainerObjects(objects, message) {\\n    const core_group = this.containerController.container().coreContent() || new CoreGroup();\\n    core_group.setObjects(objects);\\n    core_group.touch();\\n    this._setContainer(core_group);\\n  }\\n  static createObject(geometry, type, material) {\\n    return BaseSopOperation.createObject(geometry, type, material);\\n  }\\n  createObject(geometry, type, material) {\\n    return TypedSopNode.createObject(geometry, type, material);\\n  }\\n  static createIndexIfNone(geometry) {\\n    BaseSopOperation.createIndexIfNone(geometry);\\n  }\\n  _createIndexIfNone(geometry) {\\n    TypedSopNode.createIndexIfNone(geometry);\\n  }\\n};\\n\\n// src/engine/nodes/sop/AudioAnalyzer.ts\\nvar AudioAnalyzerParamConfig2 = class extends NodeParamsConfig {\\n  constructor() {\\n    super(...arguments);\\n    this.url = ParamConfig.STRING(\\\\\\\"\\\\\\\", {\\n      fileBrowse: {type: [FileType.AUDIO]}\\n    });\\n    this.listener = ParamConfig.NODE_PATH(\\\\\\\"\\\\\\\", {\\n      nodeSelection: {\\n        context: NodeContext.OBJ,\\n        types: [ObjType.AUDIO_LISTENER]\\n      }\\n    });\\n    this.fftSize = ParamConfig.INTEGER(128, {\\n      range: [1, 1024]\\n    });\\n    this.outputMult = ParamConfig.FLOAT(0.1);\\n    this.average = ParamConfig.FLOAT(1, {\\n      cook: false\\n    });\\n    this.play = ParamConfig.BUTTON(null, {\\n      callback: (node) => {\\n        AudioAnalyzerSopNode.PARAM_CALLBACK_play(node);\\n      }\\n    });\\n    this.pause = ParamConfig.BUTTON(null, {\\n      callback: (node) => {\\n        AudioAnalyzerSopNode.PARAM_CALLBACK_pause(node);\\n      }\\n    });\\n  }\\n};\\nvar ParamsConfig2 = new AudioAnalyzerParamConfig2();\\nvar AudioAnalyzerSopNode = class extends TypedSopNode {\\n  constructor() {\\n    super(...arguments);\\n    this.paramsConfig = ParamsConfig2;\\n  }\\n  static type() {\\n    return \\\\\\\"audioAnalyzer\\\\\\\";\\n  }\\n  initializeNode() {\\n    this.io.inputs.setCount(1);\\n    this.addGraphInput(this.scene().timeController.graphNode);\\n    this.io.inputs.initInputsClonedState(InputCloneMode.FROM_NODE);\\n  }\\n  cook(input_contents) {\\n    console.log(\\\\\\\"cook\\\\\\\");\\n    const core_group = input_contents[0];\\n    const objects = core_group.objects();\\n    if (this._audioAnalyzer) {\\n      const outputMult = this.pv.outputMult;\\n      this._audioAnalyzer.getFrequencyData();\\n      const data = this._audioAnalyzer.data;\\n      const maxCount = Math.min(objects.length, data.length);\\n      for (let i = 0; i < maxCount; i++) {\\n        const object = objects[i];\\n        const dataEntry = data[i] * outputMult;\\n        object.position.y = dataEntry;\\n      }\\n      const average = this._audioAnalyzer.getAverageFrequency();\\n      this.p.average.set(average);\\n    }\\n    this.setCoreGroup(core_group);\\n  }\\n  async audioAnalyzer() {\\n    return this._audioAnalyzer = this._audioAnalyzer || await this._createAudioAnalyzer();\\n  }\\n  async _createAudioAnalyzer() {\\n    console.log(\\\\\\\"_createAudioAnalyzer\\\\\\\");\\n    if (this.p.listener.isDirty()) {\\n      await this.p.listener.compute();\\n    }\\n    const node = this.pv.listener.nodeWithContext(NodeContext.OBJ);\\n    if (!node) {\\n      return;\\n    }\\n    console.log(\\\\\\\"_createAudioAnalyzer B\\\\\\\");\\n    const listener = node.object;\\n    this._audio = new Audio2(listener);\\n    if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent)) {\\n      const loader = new AudioLoader();\\n      loader.load(this.pv.url, (buffer) => {\\n        if (this._audio) {\\n          this._audio.setBuffer(buffer);\\n          console.log(\\\\\\\"play A\\\\\\\");\\n        }\\n      });\\n    } else {\\n      this._mediaElement = new Audio(this.pv.url);\\n      console.log(\\\\\\\"play B\\\\\\\");\\n      this._audio.setMediaElementSource(this._mediaElement);\\n    }\\n    const audioAnalyzer = new AudioAnalyser(this._audio, this.pv.fftSize);\\n    return audioAnalyzer;\\n  }\\n  isPlaying() {\\n    if (this._audio) {\\n      return isBooleanTrue(this._audio.isPlaying);\\n    }\\n    if (this._mediaElement) {\\n      return isBooleanTrue(this._mediaElement.isPlaying);\\n    }\\n    return false;\\n  }\\n  static PARAM_CALLBACK_play(node) {\\n    node.PARAM_CALLBACK_play();\\n  }\\n  static PARAM_CALLBACK_pause(node) {\\n    node.PARAM_CALLBACK_pause();\\n  }\\n  PARAM_CALLBACK_play() {\\n    this.audioAnalyzer();\\n    if (!this.isPlaying()) {\\n      console.log(\\\\\\\"play !\\\\\\\");\\n      this._audio?.play();\\n      this._mediaElement?.play();\\n    }\\n  }\\n  PARAM_CALLBACK_pause() {\\n    if (this.isPlaying()) {\\n      this._audio?.pause();\\n      this._mediaElement?.pause();\\n    }\\n  }\\n};\\n\\n// src/polygonjs/PolyConfig.ts\\nfunction configurePolygonjs(poly) {\\n  poly.nodesRegister.register(AudioAnalyzerObjNode, \\\\\\\"myNodes\\\\\\\");\\n  poly.nodesRegister.register(AudioAnalyzerSopNode, \\\\\\\"myNodes\\\\\\\");\\n}\\nfunction configureScene(scene) {\\n}\\nexport {\\n  configurePolygonjs,\\n  configureScene\\n};\\n\"","status":200,"headers":{"content-type":"application/javascript","content-length":"1180231"}},"type":2,"external":true,"timestamp":1723918426365},{"data":{"url":"blob:https://ipfs.arkivo.art/a8a4a8d9-77bb-42cc-bb3c-2c45ad47eec5","body":"\"����\\u0000\\u0018Exif\\u0000\\u0000II*\\u0000\\b\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000��\\u0000\\u0011Ducky\\u0000\\u0001\\u0000\\u0004\\u0000\\u0000\\u0000\\u001e\\u0000\\u0000��\\u0003-http://ns.adobe.com/xap/1.0/\\u0000<?xpacket begin=\\\\\\\"﻿\\\\\\\" id=\\\\\\\"W5M0MpCehiHzreSzNTczkc9d\\\\\\\"?> <x:xmpmeta xmlns:x=\\\\\\\"adobe:ns:meta/\\\\\\\" x:xmptk=\\\\\\\"Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44        \\\\\\\"> <rdf:RDF xmlns:rdf=\\\\\\\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\\\\\\\"> <rdf:Description rdf:about=\\\\\\\"\\\\\\\" xmlns:xmpMM=\\\\\\\"http://ns.adobe.com/xap/1.0/mm/\\\\\\\" xmlns:stRef=\\\\\\\"http://ns.adobe.com/xap/1.0/sType/ResourceRef#\\\\\\\" xmlns:xmp=\\\\\\\"http://ns.adobe.com/xap/1.0/\\\\\\\" xmpMM:DocumentID=\\\\\\\"xmp.did:F964064F4D8F11EC9844E6F006BA4CD1\\\\\\\" xmpMM:InstanceID=\\\\\\\"xmp.iid:F964064E4D8F11EC9844E6F006BA4CD1\\\\\\\" xmp:CreatorTool=\\\\\\\"Adobe Photoshop 22.5 (Windows)\\\\\\\"> <xmpMM:DerivedFrom stRef:instanceID=\\\\\\\"xmp.iid:9779AF34359D11EC822BFA12199E3BE0\\\\\\\" stRef:documentID=\\\\\\\"xmp.did:9779AF35359D11EC822BFA12199E3BE0\\\\\\\"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end=\\\\\\\"r\\\\\\\"?>��\\u0000\\u000eAdobe\\u0000d�\\u0000\\u0000\\u0000\\u0001��\\u0000�\\u0000\\u0010\\u000b\\u000b\\u000b\\f\\u000b\\u0010\\f\\f\\u0010\\u0017\\u000f\\r\\u000f\\u0017\\u001b\\u0014\\u0010\\u0010\\u0014\\u001b\\u001f\\u0017\\u0017\\u0017\\u0017\\u0017\\u001f\\u001e\\u0017\\u001a\\u001a\\u001a\\u001a\\u0017\\u001e\\u001e#%'%#\\u001e//33//@@@@@@@@@@@@@@@\\u0001\\u0011\\u000f\\u000f\\u0011\\u0013\\u0011\\u0015\\u0012\\u0012\\u0015\\u0014\\u0011\\u0014\\u0011\\u0014\\u001a\\u0014\\u0016\\u0016\\u0014\\u001a&\\u001a\\u001a\\u001c\\u001a\\u001a&0#\\u001e\\u001e\\u001e\\u001e#0+.'''.+550055@@?@@@@@@@@@@@@��\\u0000\\u0011\\b\\u0004\\u0000\\u0004\\u0000\\u0003\\u0001\\\\\\\"\\u0000\\u0002\\u0011\\u0001\\u0003\\u0011\\u0001��\\u0000�\\u0000\\u0000\\u0002\\u0003\\u0001\\u0001\\u0001\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0004\\u0005\\u0000\\u0003\\u0006\\u0002\\u0001\\u0007\\u0001\\u0000\\u0002\\u0003\\u0001\\u0001\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0002\\u0003\\u0000\\u0001\\u0004\\u0005\\u0006\\u0010\\u0000\\u0002\\u0001\\u0003\\u0003\\u0003\\u0002\\u0004\\u0005\\u0002\\u0004\\u0005\\u0003\\u0002\\u0001\\r\\u0001\\u0002\\u0003\\u0000\\u0011\\u0004!\\u0012\\u00051A\\u0013Q\\\\\\\"aq2\\u0014��B#\\u0006�R��b\\u0015��r3$��C񒢲S4%\\u0016�sc5\\u0007��D\\u0011\\u0000\\u0002\\u0001\\u0003\\u0002\\u0005\\u0003\\u0001\\u0006\\u0006\\u0002\\u0002\\u0001\\u0003\\u0002\\u0007\\u0001\\u0002\\u0011\\u0000\\u0012\\u0003!1AQ\\\\\\\"\\u0013\\u0004aq2����BR#��b\\u0014\\u0005�3�r���C$S4����D\\u0015��\\u0000\\f\\u0003\\u0001\\u0000\\u0002\\u0011\\u0003\\u0011\\u0000?\\u0000��h�\\tr[\\u001cF�\\u0012$o��7ߨ���֧���Ă\\u0004WVVm�)\\u001d\\u0003\\u000b�MZ�5���qc�*\\u0019�\\u000b�q�\\u001f\\r��&Gq`��}\\u001b�D��A!��Z�\\u000fN恛���%ف�\\u0011q�u�֢�\\u001f)�DE�v)m��A\\u0000��\\u001a9\\u0002t&�fk�BYV�`�p�Ts\\u0011��9\\\\\\u000b�\\u001a��M��\\u000e2�r쎬=E�\\u0002��\\u001b����I�m��=T��o��zl3���#�\\u0018��&�\\u001a\\u001a\\u0014\\u0010&8iE�\\\\\\\"�\\nX�6�?�8��s�<�\\u000b�}\\u0001\\u0004^�Qz�/+\\t��%\\u0012M\\u0019Q-�\\u0016�i����\\u001f\\u0006B����A\\u0001o��ہ7�и�9�Y{\\u001e\\u00141#���\\u0000�>�)xr1��F����h��\\u0017\\u0010ę�\\t\\b�E�YX~\\u0015�7�:.Z'\\f�1v��\\u0000q\\u001d�Ƙd��$\\f�n�m�\\u001bU\\u0013�y2a�SFO���6�u$�w�w�D���-���Oh\\u00126\\u001f�c��\\u0002��F������z\\n\\u0006N.f̊Y\\\\Hc������\\u000f�\\u0019\\t��Ǿ��]g�dDqa+��\\u0001��mk�\\u0019��(��V�ܣu\\u0017�Z\\fY\\u0012J�\\fn�\\u00053����)�.\\u0013�-?\\u0010`\\u0001��ޖ\\u001c\\f���q����ju��1�\\u0015\\u0010q�H6�֔}@��\\u0010h�;��Y~�$⍋������҉��8G�Ʌ��\\t����\\u000b�\\u001bM�\\r�ڬ\\u0018^�= �F���A��`~�'�i����lx�\\u00191����\\u0000���Kѱ� �\\u0018\\t3)\\u001f'#S��Ae8�\\u0006���u���e=�\\r����@&�\\u001e�,�\\b\\u001a\\u0018Ҷc�m�$f[���Z�\\u001cI\\u0016싒\\u001bp\\u000b{���mҽ�Ë\\u001c�ơ\\u0012S����\\u001e��\\\\�y\\u0000��sw����S�D�6гj\\u0001�\\u0000(�GL�W�p�\\u0000�\\\\2t�\\\\\\\"8�\\t�\\nx��tď��y\\b�[&{�!�\\u0003�\\u001f�Ǹ�?�bd�1ɏ\\u0016-��o\\u000foz�\\u001b�|}4�s��阳D��\\u0011�kv�\\u0007w�j>\\\\��$\\u0006h^\\u0004؞2M�K}_�U��i\\u001eCc�\\b%�\\b㥵F\\u000f$b��\\u0019atA}��_uʟ�{�n2%�24�D\\b\\u0007@�:گ�V\\u000e\\u001f��7�ט��d�\\bt�L[AWh\\u0002\\u0000�W&G\\u0019���������+4e�ب�6����t�Lex�3YM��:_��A�ZH�B�\\u001b\\u0014�H=;��G��q�B���\\u0001crI�#�P\\u0002\\u0000\\u001c5��23��\\u0000\\u0012\\b\\u00113�'�ᦘ�&���ë\\u000fAV��I�\\u001b�A\\n�H���O�\\u0000�M�s\\u0002o��\\u0013����ސ�K��L$�v%\\u0001\\u001b�����*�\\u0006��\\u0007����\\u0003ۋL��\\u001aL��3\\u0014ql_{���6���(�O:o3q�cƑ\\u0004.�����R�Th�_)ȗ˴\\u0015\\u001eߠ�����4�\\u0012s1�&9\\u001fp�\\u0014��6�k�w�U����<���8\\u000bjb\\f�:a�ח*�\\u001b\\u0014�)Y\\tr�ZK\\u000bZ��;\\n��&F�\\u0015��\\u0012��e�t\\u0016���\\u0011H�g\\u000ba��*���~��\\u001cZg\\u0004�9[���4\\u0001Vá�z�;2�*.\\\\\\\"�Ɔ�\\u0019\\u001c��ݣ��R�\\u0012(�e�\\u0007�Y\\u0018uz\\u001aH2c�D�0ܠ�n�Gc�4��i��F͐�\\u000b�T\\r��7Nߍ#��I�<ynl���v\\u0000�\\u001bzҼk�����w��v\\u001cw_�\\b��\\u0015d�i�\\u0000�1��A�db\\u0003\\u001b�\\u000e/q֛��\\u0000r�-`T/@n-K�30p`EkI&�\\u001e��ܞ��z\\\\\\\"\\u0019��I6���\\t���}?Ο H��\\u0019�\\u001212�gnG\\u0005\\u001e�.C2�Lw]B*�[b�i\\u001f:�\\f�\\u0017��\\u0019��V\\u0000�ݺ�-�s�?z%�3�@�\\u001b�7w�y����E\\u0018�B\\u0014\\u0017d�J�X�ě�KsqC�\\\\��\\\\\\\"�\\u001e'�\\u0006\\u0007�\\\\IU\\u0004\\r�N����\\\\̑�? �K�=z\\u000e�\\u001a�q�\\u001cvjH� I\\u0013��X�i\\u001a��X�f�r�a��\\u0013\\u0000\\u0001\\u0017���_.Y�\\\\\\\"�\\u0012\\b�d\\u0004\\u001e�\\u001fu3i3�f�\\u0014;�*u��7\\u000eq�N�����l<m� :F\\rʃ��Ƭ͆\\bf���\\u0000��\\u0014��ٴ�o�-��JI'#-����`X��I\\u0003_AD�W\\u001f��)��\\u0000�A\\r��\\u0003T��\\n\\u0001:k\\u001c+2N&˜u\\u000b�\\u0012'��y\\\\�y�\\brfa\\u001b4rE2��\\fm���dU�9\\u0012Ap�M�v�V���� �F\\u0015�$�@O��\\u0007;��&<r��E�?��\\u0000*������Pɓ*Yp�\\r��Z\\\\\\\"cւ�i3q��.�Ў��S�#�x%ƌ~�:��$��\\u001b�P\\u0007\\\\\\\")^\\u001clHϋPl\\tvoR\\u0007SWA�e�� B��\\u0011�@�@�����S�9&\\u001c\\u0000��<gmk���%��K-Y[�\\u0006�=��K��\\u0019�siY\\u0019z�H�k~\\u001d�1����cmar.\\b�z֛$/9��c�H@X��Yz�s�j{P�\\u00123O4�A$��ض(\\u0011E�����#U�~O�˟0\\\\\\\"�@\\\\��8�=����\\u0019��ԙr�%�S\\u0018��\\u0003������\\f�7\\u001b�\\t\\u0002=�H$���\\u0006�\\u000b�w��|��V*��c��Ut\\u001b\\n#��׈ŔA#C<�R\\u0016�}\\u000e\\n����H�1���+\\u0016\\u0016fW[���\\u0012�#����9����\\u0017\\u001eE�!�J�u���|My�a�F&�4��=��-�|/Cf��e�*ddmfX�U.����GcO\\u000e\\u001e\\u0010|�ULg�O]��@mT�|�U�9��Le���\\u0014n�Rc�\\u001fvj�6�t&�t?�[���C\\u000b��x\\u0006�\\u0018m)�Qpu�\\u001a�\\u0019�,��<r1R�D^���n��u��_��y�+�,�A\\f\\u0015.���҉Ɉ\\u000b1��R�;FK�dV�g���q�\\u001a.7��\\u0002�\\t\\u0012\\\\u�|��o�Q,\\n�12\\u0013�*u��\\u0016�1f\\f�D����\\u0017�]��ӧǒGH\\u0012@���m/D\\u0011c`\\u000f�Jf\\\\�T+6f`�,���\\u0003J[������X�w۴o��{��HҺ�S�bf���\\u001f��_��X��\\tn��4FV\\u0000�S�<�9#\\n�@�\\u000e���)^_\\u001f�\\u0007-���%��ʫ\\r���_րڽqr��]�;�ϑ�\\fn��\\b�6�JT񗍣\\bd$Y@\\u001dO�\\u0016�N,�\\b�\\u0007���T�\\u0010\\u0016E\\u001d=�ҫxq\\u001aO,Cl��n��_N�(�#TW� ( ��S)����w�R����A�t�:�8�\\u0019�kNŽ=�/\\u000e���H�6(egV\\\\\\\"�\\u0003�z��L������������\\u0003�\\\\�n2I�6#\\t1'\\u0007c(:mр\\u001doY�\\\\\\\"Ǔ8dd��\\u0016}ָ\\u0007RH\\u00174�\\u0000�x��\\u0013�i���r���a�3c�D�TqH`�\\u0000U *0&��z��Fd�  \\u0000}z���)�\\b�ƅ\\\\\\\"2J��d\\u0004��#io]h�B,g���\\u0013\\u0013#*1��+\\u0010\\u0019���D�5e\\u0002D|��+�͗��/��c���j��w�r���f��\\u0019(VTa�\\\\d\\u0004�G�n�\\u0002)��3'7\\nl�6�{�(�ؒ��-���\\u0013\\b��P̉�6���XY~���n>\\u000bŴʯ#����7պ�h�t&\\u00002+��q�8�r@\\f5����WfD1y\\u001cx�6�k0f��:Y*)8��Sb�́�r6�\\u0015\\u001b�z�G�$��8�����ͫ�^F\\\\H�i�\\u0018������iP��\\u0012d��z�e\\f��ub��.ط��s�ȕ!�2y#�]���\\u0006�\\u0000�h#2\\u0018�H�r:�6&ݫ\\u001f�efG��2;\\u0018�::�\\u0001\\u0003�\\u001f*{��Θ\\u0018�.�rkvav���~�z*\\biy�A�\\u0012\\u0014K��x\\u0004�I���yYx�eƒ�-\\u0016�V\\u0004\\u0014fЁArp��.4Y\\u0000+\\u0019,���[\\u001fn���s�$p�%���K�c{����֋㱢\\\\���\\u0019���W�(;�\\u0007�\\u0006L�\\u000b���� �|j�o\\u001d\\u000ba��\\u001d����\\u001c�\\u000e_\\u001e\\t1=�+�\\u000b\\t�bH\\u001bh谆\\u0004)�U�밷O��<�\\u000e��E,r\\u0018�\\u001b:���[�t4?),�j�B�\\u0011f\\u0004��\\u0004~5\\u0003�U�*\\u001ci4�3ǎ���y\\r�\\u0007�*9$Y���z\\u0005\\u001a��Mf�^=�\\u0016\\u001cE�e�PtRI��V���\\u0015���y#%�'��em�6*���t�Ň�r�C\\u0013��c\\u0012��m��k�Z�M���E�\\u000ba˒�\\u0016$*\\u001f�z��p\\u0018~\\bñiT�w�\\u0001�u��]�\\\\\\\"��&�\\u00163,��4\\u001bM�T�\\u001b\\u001e,�)&F*T\\u0010�^�pҕ\\u0014V��)x����\\u0016\\u001a��\\u0001�\\u001cJ�\\u0006�rdw\\f�;mn�k�So��c�\\r���3�q�U|'ؤ���BN�\\\\\\\"5��Mɦc�\\u0016\\u0017#��!(P�H�\\u0002�i��J��A2�nQ\\u001d�\\bζb=�'�\\u0010�~0G\\u0003Y�\\u0004�]\\u0006I\\u0006 �\\u0011�\\u001a�\\b\\u0013&}�o0���\\u0012iD\\u0011�&b\\u0012�qF!������d���\\u000f*�\\u0019\\u00111>�y\\nF���x�\\u0019�;�H]��ZR�\\u001e�h��\\u001b^~����\\tǘ\\u0007����\\u0012�Xi�\\u0016�Ue��A��p?Y��\\u001f�4ˋ'\\u0017\\u000e(J\\u0005��+щ�D�E.�#\\u001102\\u0016Dg�c<R;n`�6��O�\\u0011\\u0006vJ@���\\fq����\\u0000��LH\\u0000\\u000f�#�\\r�,�\\n\\u001bN\\u0002y\\t'�\\u0019�\\u000e&FnNJ\\u0010�6��ֻ����~T��)\\\\\\\"�.#$eˠadp?N�A&?,fȑ$��\\u001b��m\\rq}-Z��f\\t�X8�A6l�`�\\\\\\\"h��!n���\\f��ZG\\u001av&|`�\\u0019W\\\\\\\"\\u0014\\u0000\\u000e)\\u0003X4._?�\\rd�\\u000b\\u001b�����m,\\u0007�T���������\\b[3u:��Rx��̜�œi\\u000e7\\u0016'@���zq#Í0�i\\u0007�l\\u00160\\tm�����W$\\u0002㨑C��_\\u001f�W��c��g���f�\\\\h3��p�P6�\\u001c؍�m��*\\u000b\\u0017\\rp9@�_�\\u0013�\\u0006\\u001b��}�����'-FK.N7���q#v�{I���.R<|��06�*���\\u001b�\\u0013@�\\t���۳2\\u0012��ʺZv\\u0013\\\\\\\"��\\u0011����Lm�R6���\\u0000m��Z���#2\\u00057\\u001a�B�6vRy2�F1��5���B��\\u0013ګx�\\u0019�ѻ�\\u0013\\u0016\\u0005��!n\\u0005[\\u0019WX�J�\\bJ�|��ؒ�A-p�@>�n\\\\�\\u001cI2\\fa�\\u000b2��:\\\\����c�2�@�#\\u001e�'��׽-��(^\\u0018�M�Z�߸�ڜ�\\\\\\\"|�04�\\u0000��\\u0011���r;R�ʀ�\\u0005�\\u0003�(��\\u001d��/e�Iu\\rku\\r�u㤚L��B����\\b$D\\u0016׿�M+�\\u001c'�\\u0010�a�c�o2�5��P@���Wg���\\u00148�^9:ʷ\\\\\\\"˭����\\u0017\\\\\\\"L\\\\\\\\�A�c'�A�պ\\u0003F^\\u001e�\\u000e�I�\\u000bx��n�\\\\it\\u0011oF�ֆ磑w�\\u000bJ�Y\\\\(��:\\u0013ֺ�5��\\f\\u0012�#��L@��ԟCD���(�\\u0000�eH�\\u0011�A\\u00048��^A����3��13��}Fá�t�j�B\\f��m\\u0003��N\\u001d�'�J�\\u0002��\\u0006��\\u001b\\u000e\\u0017Ew��\\u001ae��\\u0000#7���F!�\\u0011�Ơ� \\f�6�\\u0007�W�\\u001cm�1\\u0018��1w_q�?굨\\u001e[\\u0019p�\\u0011���5���� 1\\f��F���\\f�>\\u0015�ǿ��T\\u0001\\u0007K�m�V|\\u001c�R�fT\\n����ҽ��$�~�~V\\u0003p��\\u0001\\u0000�E7�棎(�12��HO��\\u001f_�u\\u000f�M��<��\\u0002H��WM��o���#\\\\\\\"(<G\\tֶ`�䱹� 0�i���$˙�\\u0016|h\\u0014��m�oo�DB��aC��VǊ�\\u0017\\u0011�e���\\\\\\\"��Ll�\\u0012Rx����\\u0016����[w���pN����2�\\u0014\\u0007]6�\\u0001u�\\u0018\\u0011�T\\u0002@\\u0002mp�ڷ�\\u00177�udGΝ��-��\\\\\\\"���\\\\���.ƀ\\u0014\\btk\\u001e�z�/B�pk�\\u001e�E\\\\\\\"��\\u0012t+\\u000f�ڋɇ�\\u0013�!�I\\u001eRF�����\\u000fj�azi+��F �\\u0001�\\u0013iYF�\\u0007��n�@jy�H|�\\u0012�*Ccԃ���8�@b�c�q�\\u0002n2 2\\u0006���w=4�2��F/p\\n�\\u0011(\\u0017'ӵ�֊\\\\\\f��|��;\\t\\u0002\\u001b_Q�N��\\u001b$M\\u0014�b���0\\u0012���h4��`\\rM��\\u0018��rc���*\\u0001\\u0013w�*?\\u000b\\u0012?�\\u0018�J�6�*+X�%GKw\\u0002��w��r�.�:[�$ԃ\\u0019qD�$�!F.ŮM� \\rOƪi�9ҡo*ǵdB4\\u001f���L�\\u0000\\\\�]g�/ƕ�.\\\\�3c���.3�\\u00190U�N�j�?�HW+3�ȊN>PJY�k�P�\\r�\\u001e3�\\nl�_#!Hy\\u001b�6j�Uy��{�#�\\u0007�\\u0004���l`�\\u0013��t�ؘY\\u0007��4��\\u0004C��\\u0017�Q\\u0007R=(Hb\\n�2\\u000e��o\\\\��FwKmu=���xiV\\u0004��a4q�\\u0002�M����UП\\u0019X���7\\u0016=���\\u001f\\u001a��\\u0003�_>r6@�*Sq�?m��ҁ����̀�\\u001b&\\u001a\\u0003#�'k��S��\\u001f:%<��cZξ63�e\\u0019/l��\\u0016:�OJ�;�z��̇&\\u0007�\\u0015#a6\\u0016:�,>tl\\u001cP�\\u0000m�\\u001f:2\\u0017h��=�\\u0000U��Z����ᢌ!�~����}/�WRf�d�,\\u001e[�������Ֆ\\u0000�ApzG�:\\u0012��\\\\�ݩ���4�#�j߶���\\u0006<J����}����u��$��\\u0012�O\\u0018��\\\\\\\"ā��ζYI\\u001eF4.X��5��m�\\u0011�2��{�-�m����|�Un�\\b�Ӗ�_��\\u0007�ͭ�Hk��\\u001d�\\u0001R�J]ujT�R�J�*T�R�J�*T�R�J�*T�R�J�U���%��\\u0003�5�@l���\\r=-jU���\\u0014C.E\\r$�@?�}G��u\\u00048�A��\\u0000�1T�y�\\u001f�ή�\\u0017�\\u0000�:�<k=��\\u0013�3��v�n[\\u001d�\\u001d{�^+#�����8�\\u0012\\u0007fd\\u00002�=�ZS�\\u001e:e�UN��I\\u001d\\u0006��m�\\u001f�� �C\\u0001�v\\rJl�r\\\\\\\"�Y�����O\\u0019[�ɒ�DĊ\\u0001�4x�9��\\u0013\\u0006R�\\u0011Ƭ�ܒ������)G$�O�1Eddڬ\\u0000�-�\\u001b�M0�bM�n��/���\\u0000�g���qy��5ܨYOF\\u001bmM�5�_�NL�\\u0002���x\\r���r\\u0010�M\\u0004�?\\t�������ޘ�s'�Z�\\u0001y\\n�r\\\\j[��K%l��\\b{'�w�\\u0001�� �v��I_��P\\r�\\u0006�\\u0014\\u000b{��U��\\u0013o�i\\u001a�|��0�C���(lv�`\\u001261��3&#P>�k�1lm�\\b�\\u0003S�_k\\u001e�F48�\\u0019Q�\\u001br\\u0019m\\u001bj��\\r��n��3��<�Sň��\\r\\u0000c�}�_ \\u0006��\\u001a8��Z���\\u0013��\\n��ః��uҽ��\\u0018y\\u0012L\\\\\\\"Y\\u0004\\n%�&>�n��\\u0000\\u0000k�S��\\u0000p�\\u0013!\\u0013��Zu:���ۥ\\u0012�\\u001b%��c\\u0000\\u0002��o���SNW(�\\\\\\\"ڤX-�[v\\\\\\\"��2�\\u0007ƀc9/�h�N�Yr���JclK#X�G��\\r\\u0004h��!\\u0011F�2\\u0001pE����\\\\�~�-\\u0013{e\\fE�6\\u0004j~\\u001aiEı��\\b6�O�E������~AŤ\\u000b\\f!\\u0011\\u0006�E�����mǕ`��C���X�k\\u001a��>�M�q�4/,�\\u0003\\u0019�U#��БJ\\r��\\u0004�\\u0012\\u0007pH(�i[w�FS�\\u001b�,��B��\\u0011��\\n�B�,�Ibydq��6յ'���̎\\u001c����c��-��h��W\\u0018�M�r[ڋn��\\u0003Z�&�=��o\\n\\u0014&��Ի\\u0005\\f���a%��)��]����� Ǖ�Y�\\u0005��-�\\u0000Y�o�:\\u0011\\u001cF���8�Y��2zG#Z.30́&6H\\u0017C��\\u0001*�\\u0000��Y!�\\n �,4�#6��i��L���1<vǐ(Y�l\\u0000?2j�B\\t���qՁ$\\rt\\u0006�@A\\u001c�L�H��\\u0019WmGN�W�`>\\u001e��������\\r�\\f�\\r���j�!�\\u0019Q��S�~�PѨ<\\u00017�.C.��&�7\\u000bu�MYd�\\fw\\u000b��=*aŐ�{D�i��+��\\u0010�h\\\\\\\"�j���$�����caᅜ\\u0013&�8�>�Ǡ���x�\\u0013�\\u0006w��-�ZW�\\b�\\u0010�����5*��\\u0000\\u001a�\\u001c\\u0005�\\u0003JО9|��:���\\nx�8�����)\\u0001�\\\\�,J^�\\u001f*h�\\u000e ��\\u0006DƄ�v�\\f��@A\\u0014~W�hO\\u0006D\\u0011\\u0006H�3B���[m�~��M8��\\u001e/\\t�h\\\\\\\"\\u0016\\u001f\\u0015^��\\r�o�\\u0014�\\nK\\fm�^E�\\u0017�\\u0014���7\\u001f\\u001fìز1�\\\\\\\"�!���?��G�cJa�s#+\\u0010C;�\\u0002(�5km\\u0000w\\u0015��Y�>O\\u0003�\\u00168f�\\u0014`�Ղ����c�qs\\\\\\\"�G)�n ]�\\r�O�S,�\\u0013�5��cȶ��k��_j�d៶�\\\\�Vn�E�\\u0004{v=��\\u0014L|��\\u001b��$�'m�\\u0005{7������\\f�����\\u001d@��X�\\f�H�\\u0010{��h=��\\u0000�X_\\u0013>X��:n�cM�5�3���B� \\u0017�߳\\t:kq�\\u0000�H11�->�\\\\\\\"�\\\\\\u0002�-���Z,mP�\\u00167������Ɉ͗iU����\\u0006��ց����^+٧Q:\\u0011V��Pr����р�(,J���.{���X#��I��ı��u�\\u000e�{�u[Q\\u001c\\u0006��b���w��uW��Ƙ\\u0018�K\\u0011�X�U�F}�\\\\\\u0012{|(�I\\u001b�)$,˅\\u0012\\u0004���k7�\\u00142e�K\\u000b\\u0013#HC�^ͮ�\\u0001�zs�z8�I�+\\u001f\\u001a\\u001d�����ŵ\\u001aR%�Y��L�ds���W��Y��\\u001b�\\u0007k\\r�E�\\u0002m�P,1\\u0014h��\\u000fAʞ�\\t6u@Pt�]'�S>nH\\\\\\\"�v����\\f@\\u0000b\\u001b��:��+-��\\\\\\\"L%p7tm:�Oʴo\\u0001�\\u0016�$�&>ȋ�t�\\\\\\\"�n��\\u000f\\u0017��#������O{���4��և�\\u0010�\\u0006^$.�G�\\u0012\\u0002X�\\u0018�!���\\u001fZI��H�c-�\\u0001��K�n'\\u001d�a���Ȱ!E��7��\\u0005\\u0017�׌Ć\\f|�oe����\\u000b�\\u0016\\r�ʖ�\\u001c�F>\\u0018ƅ.Uɿ_�^�A�L�q\\u0013�\\t��TL1�@b^��\\u0002��5�̕�U[�u7\\u0016��\\nS?\\u001b�)�d]ۀ�����&����!��0/{FPiV�ll�k#o\\u0004\\u0003\\u001a\\u001e�?ֈ\\u0010L�+�cc�q�6��y{��pb�Ο$H\\u0002�� ?U�B\\u0001]b4S�\\u0019\\u0019R&�\\\\F;o=��U�x�<l+��Q���\\u0000\\\\\\\"46t\\r�gqz'\\u000f��\\u0017\\u0011�7��������W������Z�6t��m,�6���_�;qҲ�\\u0003;.��\\u001f_ʼ���Y\\u0019��\\bg��\\u000e�Z���Dɍ�\\u0016\\u000e��\\r�[�uV,S�-��āI�k�\\u0003�c�=(���\\u0011,xQ�3\\u0001�#��r.�F�{\\n��>DC\\u001b34r\\u0004Y\\u000e���(�@�q2\\u0003\\u0000ĩk�u\\u001aރ�\\u0006nF9��K\\u0002Ž,\\n�~TǕ�3`ʸ��R\\u0001���>��҅\\t�5<�����\\fh�L��;�R�\\u00068�T<�L��Z=-o�jܨ���e�\\u0010�m4��t��\\u0000�db\\\\\\\"\\f6F\\\\�,��~�t\\u0017�\\n#�ȓ\\u0019�(Ŝ��\\u001a��?�P��w����n�IR\\u0012�@���12��\\r�%ݑ�2\\u000e���3[փ�#\\\\\\\"LV�2\\b�cc�\\u0000\\b�����\\u001c\\u0004���Y\\u0004�\\b��x���{\\u000e�����'�\\u001do5������\\u0004��\\\\\\\"��q\\u00066��72�є�j��(!�6�F&�N�\\u0007N�\\nu��+\\u0013\\t\\u0014��e�n��\\u0007��J9\\u0015���a\\u0018\\u0005�\\u0016��\\u0000�V�w\\u0015�c\\u000e.6�ei\\u0000\\\\\\\"K�\\u001e���SUC4\\u001e�&��&EEˊܽV\\u0010V��\\b���X��d$��I#U���\\f��o��j�^S?+����C\\u0005\\u000b�`�Cs�P�\\u0018qg��>\\u001b\\u0015��2��\\u001c�\\u0000o�VɌ�l��rG!M�&\\u0017$� :��ҕ�p�\\\\\\nq\\u001fҞ��WD'\\u001b\\u000f(bdX��\\u001f���\\u0014H�8�\\b�\\u001b%����c�Qy�ŒP!7X�YT�#�����&�x�U�k�g�\\u0001B��\\u0017֬L��+:2�\\u0002�\\u0010u���A�E�5ڱ�\\f�q��Y�Hn`\\r��8U��\\u001d\\u0006\\u0018Y1�E\\f�\\t�Q�(�\\u001a.[\\\\\\\"\\u0018�;B�yY�}�X\\u000bu�<t�.%�'�\\u0019Æ��ās��E_�{��,�N���I�\\u0019��\\\\\\\"��n�=>7�\\u0018�\\u0018�V���|��;Y\\u0005�\\u001e\\u001ai�\\u001et�L4ǐȮ\\u0007������-����\\u001b��s'p��]�\\u00006�\\f>M�Ə�\\n!�a��`O�~�*����\\u001c\\u0003&7��\\u0003*�������W�\\u00167dr���#�̓\\u0011�޴�{yLhu�3Ox\\\\�=8֗!\\u0016\\\\�Ī��C\\u0003b���\\u0016\\u0004ǈ�\\u0013{i�C��\\u0015�\\u0004���ǋj� \\u0001վ��{���]E.&.KyM�o�'�ߨ�m\\u0019\\u001avmn:DV\\\\m8��k���Sya\\u001fY�ʻ���V\\u001c�r3��\\u001d�2\\u0011�;\\u0013�:ho������@�<d\\u0019\\u001d�(?R���J��g�f\\tÅ�K'�\\u000e�*��I�\\u0005gy\\\\\\u001c����FV3 P�}D�G��\\u0010\\\\\\\" \\u0001l�8{U\\u0017L�^\\u0012�\\u000b\\u0017U\\u0006N�y�|�U�(8N^\\u001b��\\u0012ڏM;Z�Ð��(v�\\u000e��ժ���41%�DF@�l!��m�6��ؘ�N=\\f�\\u0011$b�6\\u0016%�K��\\\\X�\\u0018\\u001b�\\u0018uN�]L��x�v�3������8�|f\\f��e�\\u0001�6�Y��\\u0000�m\\u001f�D��\\u0013cI\\f1��v����\\u0000l\\u0003�����L~-\\u001b.�L���P��֥9�I$�e�r9ܟ�-J%H �I\\u001e��)����@��\\u0011�`6\\u0014�\\u0007�8�3�\\u0014\\u001dĮ�����\\u0000���NkcK\\u001b�1bۯ\\u0015�gn�\\u0016�z�|�T�`� b\\u001c�\\\\~�N��\\u001f��1\\u001a\\u001c���Һ{7��kk�\\u0014V��?O8\\u0003�(<l�1(|���[��c���Lm�\\\\\\\"�\\u001c�\\n[\\u001f!<N�\\u0015�u;�V\\u001f\\n`0Vh�\\u0019jg�!&�޺�Bڮ����Q\\u0015��i�-��\\rⲳ{���oU�A��9�\\u0016iV�\\u001cm��܎\\u001bPCu�z�Sh���e ���S\\u000e\\u000bq%�� �T�\\u0003\\u00133\\u0003\\u0019cR#Ę3\\u0001(���\\u0015\\u0003K\\u0000;���R)ᑔ*�Sc��[󦜞yΎ\\u0011\\u001bl`\\u0000�A\\u0004\\u0017��\\u0000-i?�\\b��Hp���%�\\u0000�2k3��v���T\\u0003�q:F޴�>;�%'��\\u0002�Ա%��x�x�K\\u000f\\u0016C\\u001e�2�&�\\u0001�:Z׫�5�4�\\u001be��\\u001bc�Ca��r��q|?\\u0010�P�u$�m��AK\\u0012=������\\u0019\\u0019Y\\u001eR�\\u0011�1�\\u0018>6�zH�FdA�ʕ�\\u0000��w�����\\u0019Q�Lhu�1���A��\\u0003�o\\u001fn���\\u0011��ǡҸ�i,A���\\u0000��a)�akX���~5fX~\\u001a\\u00181�Wa�Y��YM�����9rI���d3>F�7�\\u0000�\\u0005\\u0000,K\\u000f�δ�ń\\u0004��F{F�\\u0000M�Q�q�p�IU��\\u0003c�>'n�i�a�\\u0007��B\\bh��a�\\u0017�>\\u0015�,��q�BAɺ��+�@>�F<\\u0019/�%Ɏ9s\\u0014�i�-��x�\\u0000\\u0007�\\u001ci\\u001e^D9�|\\u0019�FE�S� r:E,�̬��|�\\u000b5�r\\\\\\u001b��+�#\\u0010�^\\u0017b\\u001d\\u0001\\u0005��i>��7�����e�BV0\\u0001,:���P�\\u0018X��\\u0018�H�R-k��Mz{�\\f�Q��Aa'�\\u001bS�U\\u0019E�Xg���h��e���S7\\u001b\\u000f0�䴁H\\u000f&Ӵ�7$w�V��_)&\\\\q�\\u001c�j\\u001b\\u0012m`\\u0001��\\n3#��� B���v���]��]���8��\\u001b}\\\\\\\"�@\\u001d�t�$�\\u00004N��WN\\u001e�A��b1^ʅ;y\\u001b������@�\\u0012)W7\\u0019�X�)\\u0001\\u0010y\\u0018\\u0003`u��+�\\u0005�\\u0007�_u�\\u000f�z�Õ���ƢH���m.\\u000e�c�\\u0014�;�\\u000f\\u001b��Yo�����݀�芑3\\u001d[R|%\\u00151�7%�4���K���thc�/\\u0003���M�����SL�CcA�V#\\\\\\\"�a�~�N���Fd��\\f\\b[r�t\\u0002�pҹ�U�&8X�B0`���CV$\\u0000A��-�nEU'����\\u001e\\u001aWRq�s��2�,%`\\u001d\\u001a�k\\u0003��޹�>ߎ�u���e���\\u001eQm-bGCK�*Y\\u0015%����� �w��+�9\\u000e4�\\u0018���m�`\\u0007Z\\u0012A$۴�caȸ�d��y\\u0011D4F�O�z/\\nY\\u001f�\\n0\\u0011 $�5u��\\rt�\\t��Y!�\\u0011�\\u0011�K\\bX1�^�\\u0004\\u001fJ\\u0013\\u0016\\u0006�4\\u00032�+\\u0011\\u0001[R����ވ8x�\\u0019\\u0012cIi��խ�-�\\\\\\\"��-3;\\u0001�po�t��|�\\u000b���\\u0017/�Ʌ\\u0015��T/'{��\\u001ch��8ظ�\\u0010F\\u0010�r��\\u0003��\\u0006Csk���C�}�\\u0019x��Ga�*�,���QH�\\u001e&\\\\Ctq2��T��%�������� ł\\u0016 \\u0010�K\\u001b\\u0012�w�SUI�NT���\\u001a+�ś�8�\\u0007�\\r��B2]����(\\b��6�����'%�˝��n�В!��jE��֊<fB�K�bAW��o�Z\\u0003Ǒ\\u0017#\\f\\u0019�(̷+/c�\\u0001���Iؙ��؋;������\\r�U�As$a$cljX_[\\u001d\\u0000#��'*<Yqc�k��{} �5=�U����\\u001c0�i�c\\u001b�R\\r��\\u001d��S<1��\\u0015`�p7fb���\\u0007�\\u0014/\\u0001$�\\u0013\\u001ak��Ʀ���\\u001f@dBL���8����n2~1f̒C-܈�ض^�M����8p,Q>Q;<NB\\u001b�#���ۑ8Xx\\u0010��|�\\u000f�@\\u0004j�\\u0002o�s��\\u0006\\u0004�3g����k�-e\\u00129� \\u000bzS$@���>Tun��\\u0007�+���l�2�'�>��K�\\u001fNø��x�p�3B�����V����P��'\\u0016\\\\�K��3\\u001bl�$5���=jdG�\\u000f��*Hv�[\\u001bXtҗ� \\\\\\u0016w,ǅ\\u001eO\\u0010���\\u0019�)�\\u0007M���t�\\u0015vO\\r�>yȔ��ۤBI\\f~}@��y�\\u0000)ǆ4f\\u0011�c@\\u001e��mc�J\\u0016L9���\\u001eV+�\\u001f\\u001b\\u0012m�@���X�z�Q��Y�9��X�&�\\u0017���AFڑ\\u0000\\u0002'jψ���.V|k�\\u0003Bv� s��\\u0019O>\\u000bǑ\\u0010F�T�[p� �|).NH��\\\\\\\"\\u001b^P��k���L0�L�l\\u0017��;\\u0016p@\\u0001\\u0014Z�;�Wc��\\u0007��F�ŠU���)�|~\\u001d�\\\\\\u0018��\\u001aF�kW�1c�\\u0013\\u0011lm��\\u001bHa�߈�8�\\u0019�̏\\\\\\\"u\\u0001#�l���OcD�d��\\u0001�(\\u0018\\u0018�A;\\u000b5�t\\u0002�� �3ɓ9-\\n�v���j-�W�\\u001f��r\\u0005�$\\u0017d@=�\\u000bp~zU��#�Kp�\\u0015Y�a˓�s\\\\\\\"&1��#qm�{՘�9�\\u000er��&&$ov�\\u0002˴�:^�j�;H=�(��}F��*��Ɠ7��\\u0012FqԒ��z��#���b8��$\\u001b\\\\\\\"��\\u001d\\u0005�\\u001b\\u001a\\u0018%O\\rH�t\\u0018W\\u0018v9\\u0004\\u0006Q�0��2@�F�b�q�\\u0002&ŝ�騺Z�\\u001b�}*��͕$\\u0011ŶE\\u0007l����[[Ҫ~7>\\u001cvwʑX����ߙ���3�^@�JV\\\\\\\"������@�\\u001aZ�u.�\\u001euy,u��n�*�8�u{�q��t���FWa\\r��:u�+梆.A�\\u0000�0\\u0017o��Ө�V�\\u0017\\u0004Ɋ�\\u0004�D\\u0017�G`����aX�Ko�͵�E�l�5d(\\u0003�q��3d˕��1ƚ\\u001bdhb��R�\\ro�R�J�*T�R�J�*T�R�J�*T�R�J�+o�F�\\u0001`\\u0005�\\u001f\\n�I��h.'��2 �[�#_z���M­��q�B\\to��\\u0005� u��\\u0012\\b�\\u0015�\\u000e@�������f-��\\u0001�fV�Gչ�\\u0003�iyy������Ln�\\t\\u0000h\\u0005�\\u001bi\\u001f\\u001b�\\u000f%�a�\\u0004�5����:���N\\\\\\\"�H'�[0�\\u0000�\\u0004�@u`�\\u000f�)\\u0010\\u0017,I�xs����<�c\\u0002����W��\\bV�\\u001az���:\\u0003\\u001f���}��\\u001bji_!Ō�W|���4Uaгjl?:���C4�@�;��k\\u0012\\u0011�ք�<�ұ;�W-��Di\\u0015�\\\\�7���\\u0019��\\u0000��8Tc�\\u0011[Ġ/���F��]�A���\\fa�r��r��\\u0016�h�A�\\u0010����U���>PB�qЂu:�*��UBɓ\\u00152�y�\\\\�\\u000eE@\\u0002��<k�K+\\u0018C4��Op\\u000e�v���4�36L�eŔ��\\t��*\\u0007�@�n��~^\\u0014~7 31R��;���[Mu���a\\u0018Rom/��dFk��\\b\\u0006�x93b�덠>BY\\u0001��\\ri�0�O\\u001b\\u0010�8��^�:�U$QɼdL$�P�r\\u000e��\\u0017��U\\\\ft\\u0018�8�\\u0007��hPJ����F��\\u0013$2ec�?�������Qޫ����`-���mTS&L���E�wqPi`㶤F��3,`���X{�1\\u0017\\u0003^��\\u0001������R���*��\\u0006�^�c�\\u001a!3c0G\\u0013�\\u001f�\\u0000/��-K�A��\\u0014�װR�!�G\\r\\r\\u0015���ǜݘ4nz���#\\u001e\\u001e.,D�GTEg:\\u000b�\\u0000����S�&SC\\u001c���Y\\u0007QM�\\u0016l>\\u0019Wȱ�\\n�\\u0004]t�N�\\u001b\\tڲ�eZB�\\ft�O*��r&>RQ\\u001c�c�\\u0001;5\\u001a�ތ�W'/ ��\\u0001#ԏ���K\\f�~BĨ��\\u0000\\u0001eA���DU�\\u0014>>RG���.\\u00007\\u001e�cV�\\b\\t�\\u0015����E�)쮦=\\u000e��A(f٢�\\u000e��Z��䯌r�$\\u000b�B/`\\r�\\u000f�Ռ����\\u001e�7�ʔr�ߎ��.\\u0002^�\\\\\\\"\\r(���Vn�\\r�\\u001d�\\u0000&[���N+ǋ�D'pT���߭��\\r�4��a�7�����Px�8ņ\\u0017��&�k�{�_�Lx蠎I\\u001e\\u0000]E�y���˽\\u0002��;��y{\\r˯˞�kk\\u001c�21\\f�Y�\\u0003H�m]eK>/�-�̪|n\\u001d�v�R��\\n��xsr�`FO\\u0010\\u0011��㹰�ќ�/�������I�OΩ��)��@\\f�������\\u001e�+hK\\u0010=�����L��H'#�\\u0010I��i�?��<n%����TQ2\\u0018�X݈6\\u0000�oZM�S�TP\\u0018�9C�ke� �OE��;\\u001e՟�p�O]��5B�I!r�ڽ�s�ZTB,~�Hʸ��\\\\\\u0000�-�I���|�l\\\\l\\\\�\\u0013\\\\4�-&��\\b�z��qQfe�ND�R\\u0014����}\\u0018m?\\u001a��9'\\u001b �%�/�\\u0000p�r�\\r\\b�|�!�2B�\\u0001\\tV\\u001d:hoI��'iF)�n�\\u001c\\u0001ڃ�L8��o �\\u0000��\\u0000k@&5\\\\\\\"�~��C`�<y\\u000f�\\t\\u00022I^���7��y33Y�d\\u0001\\u001f�����!�n\\u0006��\\u0007�ş��\\u001fܔ�X~�t����1�v\\u001f}dL���G_���a��GbI\\u001el\\u0002T��B�ο�N�\\n\\u0013�'#�����a�\\u000byd�\\u0006\\u001f�|m�\\\\p�<\\u0011̲\\u0010��*\\u0000�]\\t�k�S\\nL��1�c&B�s�����?��Ll���Ӷ�뷮���3g��Ui\\u0019c�Y|`�\\b\\u0000�R)�/�*I�����M��*\\u0005�VI�����0)<ma���\\u0000�h��r|�+��G���iV�\\u0011�=���Ų�D\\\\\\\"��\\u0016�;�}��\\u001ec>\\\\�-�ss����q30FL��\\ta����\\u001a��`�wa����:D�)A��G�����\\u001aM1�.{��\\\\�\\u0010koE��S�����MƸ�18�\\u001a\\\\\\\"�ұ�9��-@�t�4�\\u000b�K�Ҫ�2q�re\\u0012�q \\u0000\\r�ˮ��J�`bs�DK6؀�Wm�H�\\u000b\\u001b���\\u0018|nF\\u0019s���!&�X\\u001bjE!��W.��c���.?\\u00172+�R\\u001a�^Z\\u0001?e\\u0017���8qcDwJ�+m\\u001e�X\\\\�F����*\\u0002ź:���\\\\�ܧ�\\u0016��t\\u001f*c��\\u0016\\u0016$��\\u001aX�8��\\u001d\\u0017oʞ\\u0000��\\u0011J��\\u001a/Ō�\\u001d�\\u0004��\\u0006`�0�\\u001a�nd`,=osZ=���\\\\xZIR6q*\\u001d�@\\u001a5+�NW\\u001c�>�+9���|\\u0005��i�\\u00198X���\\u0011�[2\\u0001\\u001e�\\bP����Q\\u0010��J[��@s\\u0007\\r᭍@��FCfd� ,ҳ)\\u0000��?\\r�i�?'�ŏ\\u001f!vϵ\\u0015�\\u001b�aָ�!*�a ��m���5n\\u000e\\u0004Y\\f�A�D�\\u0016�\\u0002�=G�\\\\*�\\u0004{R�c���-�]DRl�\\\\�Շ\\u001d��=�ڀ���\\u0018����a�Ǒ�2[�\\u0002{�\\u000f\\u000f%q��Qn>��������1ȭ�\\u0017B\\n�m\\u0003Z��Փ#օ��Γ��\\u0004O��h�P��e�n;\\u001a\\u0016��,ă}��ۏA@�%������*_�\\u001f:��\\u0011\\\\�:�\\u0016�V�?\\u0012)|Y�K�Ŕ˳\\u0017��Qq`\\u0018Xn���*i?*y\\\\�`l�@�+�\\u001c��Ts��7���˓*l�\\r\\u000b\\u0007ܿF��%�>PI�\\f�\\u0015�\\u001bG �5����2��_/\\u001f\\\\\\\"\\u0004 I&����\\r�g��\\\\xdIä���`@ \\u000eͥ\\u0019eH��\\u0018�h�\\u0014o/�\\\\w�|C�\\u0006=�\\\\\\\"��d�r\\u0003a�\\u0002�*���j��Ń922]� �q�>����r��D2x����%�ċ�j�\\u0017\\u0007+6O\\u001eb��\\u0003s\\u0001�\\u001b\\u001f��K°�'��r\\u001e���d�{Vq��)Ռ\\u0000m\\u001c��K-�h�Ok\\u00027��w�\\u000f��H�je3&�\\u000bm���/�9\\u001c\\t���\\b-���:ٯm/�]�E��G�9��\\u0013�\\u001eۉ��Q�Oҳ*ۅ{F\\u0014�'Mv�ʼƟ?\\u0019ٸ� \\t\\u0001]���u��\\u0013��f�\\u0010��\\u001cQ{�h\\b��\\u0000HcrzUx�>\\u0012��1�ď���2���\\u0000w]��Y���@\\u0003p��H$���K�\\u0000=҉\\u001f\\u0011��k�+Ț?\\u0004����o���.\\u001f��\\u0004�=��\\u000b�}���R�g�\\\\h\\\\\\\"H�K4�i\\u0018t?��Ϊ�/+���Ґ�l�\\u0005խ�mک@\\u0013S.<���##3\\u001d\\u0001 ������\\u0001��\\u001a;��1��\\u0007m����8�O\\u0013\\u001b��r!�,Q\\u0001\\u000b�g\\u001b��)���\\t�\\u001f\\u0005VK)Fe\\u0006�\\u0000U����!�\\u0005岛%�7�\\u0018�:\\u0015\\u001a\\u001d}j�Mv�Tq�f�,��㬁�}(��\\u0012��9�P�8�� ��×��c��:V�\\u0019\\\\\\\"Ǟ<1\\u001b�\\\\\\\"77c�\\u00167�+;,؟�\\u001cw�A�\\u0013n��HP����Nr��\\u0004��d0�V�\\tk�kzZ��\\u001b\\u0002\\u0007:'\\u000eٰc�!�w��\\u001f�K$ǄrQe����-����\\u001b�h\\\\�9��Tc\\u0003+\\u0010H$��\\u0000�\\u001d�>.Ny��ltbL�*n\\u0016_Ƌ��a�L1\\u001cβ���7'h�Z�v�ɘ!�x�A\\u001aq��}�A�\\u0015�X����\\u001b�\\u0014�qs�$�6�\\u0019#1��੾�/�k�C͒�=��\\u001c��\\u0007S�Z?7<g���\\u0010ǵ��͉m����ށ�aa4��$x���lw\\u001d�\\nb0\\r$i�\\b����n\\f�ʵ�K\\\\\\\"�;ƃmyW\\u001c�<������oFԭ�ِߡ\\u001a\\u001a�5L���❄\\n�be�oo~���\\u00136\\\\��\\u0017��8F��E\\nt���\\u0015��`���\\f��$��\\u0001����#�g�`1\\u0017qh�\\u001f��.@�C\\u001cJ�\\u0000``�u�x� �9\\u001f�\\u0018ʍ�T��X{vۦ�ɏvZBUB��\\u0010j\\u0010\\r\\u0002��u2c�U^C\\u001d�K��6hC�#C@bg:�k,�}۽��\\nA6\\u001f�<7�<��k2\\u0007|l�IƄ@�0��QyYk�;��[�\\u0011��.�qu�\\u0011׭[�ß��C4�%Ém$~�h���Qև�ƘeM�\\u001c\\u0012��q\\u000f��[��Z����Ɉ\\u0014b\\u0017�X��\\u0000�\\u0017��\\\\��y���\\n�U�d���A��))��\\u00072\\u0014\\n�����pQu\\u001b��44�6N\\u0011�]���mY���\\n�����\\b[{�w�������f��ɍ$���5��\\u000b�\\u0000e�{\\u0011j4�J���E##a7\\u001c;`q���ƀ\\u000fy��\\u0013��|\\\\�\\u0019H\\u0006�\\u0002�F�R�^�G0�.!u�P����?Μg����\\u0004\\u0012\\u0007�!]Z�?!H2��f|L��3%�lݿN�G\\u001b\\u0000�l�ux2��2\\u001e���˧L���M1�)�DX�h���\\u001e����7�@�e&\\u001c�ɻn�1�A7ֈ��%2C�(RH��m�p*ٱ'\\u00192I�mst7\\u001a�\\u0002~F4\\u0011T\\u0005��\\u0011\\u0004�I�\\u0005���}��u�A:`።49\\u0012���k�(Q�SU�q��Z\\t�\\r\\u0013��8ЩP\\u0019]w^֠���\\u00171�0�|\\\\���u'�\\t�zڄ�\\u000f)����>@`����v�j��ұ�$�\\u001aA����F\\u0018�\\t�\\u0013,�g\\u0013�V�S���*LWI�)\\u0014�(�}���t:�\\u0015�Y�\\u0018�\\\\\\\"�ב��\\u0000�5\\u001e�zR��dE>3��\\u0004�_f�}*��rq3|�Bdƍ�e�a?�E�5l]���U�.:�χ�ʩ��B\\u0010�\\f\\u0002λM\\u001b�8�w\\u00199�\\u001c�\\u000f��f�����4�����8�]Sr�$���q�J-����Ƀ\\u0010�<q��b\\u0014�mme�J��ƞ\\u001c|��\\u0003\\u0000�m\\u001f�Kz�X��{ʲ\\u001aG�\\u0010t��?\\u0006P�\\u0013.E�[J\\u0018=�\\u0013#Һ���L�Q��Ƹ$\\u001b\\u000bX�/Ur\\\\v<�\\tC��f\\u0005��6�4\\u001d����W'��\\u0015DA���@�@�u�V���o:�l�(*�\\rE\\u0000�^9?�\\u0015\\u001d �\\u0000*����\\u0000a�����d3�\\u0010c]j�����\\u0011�26F4\\u0007���nR�}M}5��9|�\\u001c\\u0013��}���\\u0007f�m\\u0000��Z\\u001b\\u0010\\f�39\\u0017��\\n�M=h��hr1�\\u0019\\u00140\\u0007r���zц!������\\u00108R3`�ȹrd�rv�\\u0006����n`E\\u000f���\\u0016dٱIg%vn%\\u000e�\\u0004[_�x\\u0017+\\u001d��D�)�V\\u0007�b[o����,�\\u0005\\u0004�<p���ל^�`GV����v1���IB�\\u0002��7�J1�!Ct�4�\\t�h�a��a��q�^Ӱ\\u0004�\\u0012u���&\\u000eN\\u0017�C\\f\\u0006=���\\u0000�\\u000e��oΫ�cC�FUU73\\u001e�1��/{R��%\\u0011�$%�{Gʴ9\\u00028�� ٶ�\\u0007�\\u0003�Dŕ\\tl���D\\u0001��'��\\n�,k\\u0017<�b~4����2&h�A%�\\u0002M�:6ߙ�p����t���̬�4�{\\u0002=��4k��%�9yX�ɶ27\\u0012o�\\u001dW��\\u0019rS��\\u001cv\\b\\u001a�}6��\\u0005\\u000b��\\u001f�o�i�c09.|��V�귆�\\u0013U/\\u001f��fc�M+O<��9��/����W�ɞ�f#ʿj��\\u0006{�n��k�U�<\\u0016NG#��\\fшói��\\u0013�x��O���c%�\\u0016\\\\\\\"G$�\\n���sGĉ��\\u0006e+��佧\\u0019\\\\���\\u0017H�F����|�%�\\\\@D[��j�o��\\u0001+�D�\\f�l7\\u000b�Ǡ��8�,�G\\u001eDP�5������(����%����H؉Q���K����\\u000fZ���o���Lx2\\\\06�2+��\\u001a�d|}�\\u0011�$ؓ��\\f�gF��X\\u001b*����q�#�m;\\u0013;/큠\\u000e����zW�\\u0011����K?��(�#�\\r\\u001bP/T&D\\u0012˿\\u0012P���X^�\\u0014\\u001dh��\\u0006\\u001b�t�dҼv�1�,�\\n�|~C)0�%,\\u001a\\u0019\\u001fey�qM\\u0019Ǝ\\b�\\u0010�\\u000b[�\\u0014�G�M3��$�F���b�}\\u0005�\\u0010\\u0007�И\\u0019��c�F�dgW��;���5��R�%.t�q�Ɏ\\u00146��kw�sT���!,��I@>`�5\\u0003�L�A�^��?)V�\\rd��)�/i�>?4a��\\u001d�6`@��m�F�a:|k�N9�xV\\u001b\\u0015��cb\\u001b�a�j���f����\\u001f\\u0000��$���S�i�Z\\u000f���ĐHX3��F*��c_֍~��mE+\\u001a�C\\u001d��иg��ǒ��>9��:m\\u001c�9��\\u0006�̝\\u0014  ���XX_��#��ɲ�r;�!��\\u0004������qfVc\\u0018߫2\\u0010��n��U��ycǈ�(�9b#`YX�l={U34~�I���U�ȁ�eL�:\\u0014B�U�C{iL�2��~_(�(M�\\u001a����ģ\\u000f�S�\\u0007#\\u0016v<��\\u0019B�$F,\\u0002�\\u001a^�w\\u0006��\\u00032I&��E�,��7o޾�(z�Ts��&<\\u001blqw(k]N�>t\\u0000\\u001b��M�Di�+FL��\\fa#��\\u0017\\u000f����\\u0006��\\u0019�D��Lh�,\\u0006䲋ڪ\\u0011��\\u0019�i\\u0015�\\nf����XX_�����,q\\u000e�*�\\\\\\\"\\u0004�}�n���2_��)�V<m�6�F�\\u0004\\u0003��7\\u0004Ѭ�\\rk90K-�]!�2����W�\\u000f4�<\\u0010*2�\\u001a�\\u0004\\u0010U=�n���y>�:\\f��\\\\\\\"\\u0014\\u000f�\\u000b�e��\\u001d:kր�'���re�P�e�b\\\\\\\"{FΝu\\u0017\\u001e��\\u000f\\u001e�Y\\u0013�\\u0014��\\f��\\u0016$�)��U�\\r����J��@�\\u0000Zh8KdLː����\\u001e�灠;��\\u0015��\\u000ej\\u0019�m���\\u000e\\u000b��\\nE���hj��\\u0000uYNF[\\\\\\\"�!_tD�\\u001a�Q�)�ǆ5W���Rݚ�z\\u001d?:e��\\u001f\\u0016���*ʦ6\\u0004{K\\u001b\\u0006#�T\\u0000p\\\\���ޭ���p+��3���X���\\u001c�\\u00049Pg1tY��\\u0003����\\u0000�gyi#�5�J�\\u0010\\u0000 r\\t�吝hx�\\u0014�L\\u0004� 23\\u0010\\t%�Ԛ�rN�!�!\\u0003^�1��*�N�Q�3�,r�*\\u001ca\\u000eʿ�\\u001eJ>�\\u0016�J�+]J�*T�R�J�*T�R�J�*T�R�J�*T�]�+�\\\\\\\"�\\u001b\\u0015u7V\\u001d�\\\\W3=��+(�#z\\u000f�v��K�φ�C�\\u0017�tF��ԃ�>��D�:�#!ġ�.bBLl\\u000f:'��)\\u000e\\u0003d17����\\u0004w\\u001a~t�2ɺG\\u0016U�Q��ďSK09N;\\u0007�����y\\u0018�K1�sZ�L4g\\u000f�J>�����)�9W\\u001b���;9���\\u0007G1]��P\\u000fjw\\u0002��J�I��\\u001e�\\u0000:�di��f++\\u0000B���\\u0006�~W\\u001d����B.4m��>�\\re%�Q7F������V��\\u001a��\\u000f�X��fe\\bt\\u0001�h+�\\u0014��J�[u�=�<|�l����$�v�k�X���Z�j ���\\u0006\\u0012\\u000bQ3ƤD�ȗw��i��[�z�r��9\\u0018�Z��>�˨��ִ\\u0012+�4�+\\u00041���\\u001d�J�dDc�k\\\\�V'��P1��f��*���m�d\\u000e$��3�n.�L�\\u000f��)�<c�Ų&�\\u0010\\u000bK��M�-)g\\r�3�g��\\\\\\\"\\u0005�Π��֪R�X�Y61�[��s�hm\\r\\u001f����\\u001a\\u0001hP}�>����p��\\u0001�M0�\\u00052=ۂ�\\u0004(��m֨(��k\\u001cM��\\u0012�\\u001d\\u0006�oF�\\u0017[����P\\u0000�Q\\u0014�G�dː��\\u001bzg���`�\\u0014�,̡Y��z��\\u000f\\u0017\\u001a\\u000e@gde�@(\\u0006\\\\\\\"=�z���׾�\\u0010�G@�4��Bg�H�J�@�GM\\t��_�D��\\n�;�����\\u000e��|��k\\u000b��ɖt]�-���{�[pS�J[�bχ��\\u001c��c\\u0005\\u001b�.�b/C<S\\u0006��:�6�\\u001e�\\u0000��nU\\u001d�5ʙ�\\u0006H\\u0017W\\u0011�2��[Q���~C�\\u001aߙ��ƌN<��\\r�A��i�����q�t�Bn�m�����zkH8�\\u0000�R�S\\nh����\\rco�=�\\u0000\\u001a�F��,~��\\r�j��\\u0002u��\\u001f��y\\b\\u0001��\\r.Q*8\\rj��X��[\\u001c0��Y�����\\u000f��\\u0012�b̓�\\u0001�Pz�ߕ:�%�#�2�B6�0���\\n�:<�����\\\\�$0ӷ@M[�6�z�?\\u000f\\u0006&\\t�C����7�n���fG�\\u0006\\u000eV7�ES!~��\\r�i�^��2I\\u0004�;yB����\\u001d(l�r��\\r罷�\\u0017[���\\u0000���Cvh]I���\\u0018ԩCԧ�+��\\u0016\\\\y�~Ӆ�=�?mfq��\\\\\\\"e�}Or�F�Ԛk�Ŗ�a4���\\u001eà\\u001f:��V�iwD�\\u0016ۂ�T�'K1�Q8�>:��K܃�Zp��Ҵy�J�cW\\u0012��9��\\u000f�2��ڳ\\u001dw\\u001e��h����S�}��3,r\\u0003p�k����LS)\\r��#�\\u0002\\t����6nv>\\u001cJ�ơ�/o�\\u0001\\u001a�)�(\\u001a\\u001dN�H\\\\��ٜ+\\\\\\\"NB[��C\\\\�+M���w�Ք�@�ʪ�i\\u001b�\\u0019��!X���\\u001aY�gI���Y\\u000e���O�Q\\u001cd���\\u001e�\\u001e�J��m�\\u0000*Pя(���Ɓn��_�\\u000f�)�,�wG�;w��{m}?\\u001a�\\u001ai�ɞh���\\r�X�kWq���r�Hţ[X��Z�P�fdO�&<���0�&�\\u001d����՘�Ļ�+�@.��ރɜ�^4�\\u0016P��}m]G\\u0013�n�X\\u000bj�m�\\u0016�\\u0002��\\u0000oNK��\\u0005XEs�d���Y�u\\\\���d���\\u0000���;Fo{����V\\u001b��p�+n%\\u0005q<\\u0000IUבi�����y8o4\\u0013y].�\\u0019\\u0001PX�߯Ƒ�\\u0001��U\\t��+n�M�4�qdȃ|a�ȗU�\\u0000��@��d�#�ΊF�\\u0002����POc�R�\\n\\u000bo����|L��x�@�\\b\\t���a���k�T����1�6�l\\u000e���\\f��I��\\u0014��]k��Y]���\\\\\\\"-���� �@1<Es0�8��]\\u0003%���Ǉ�+-\\u001ej4le��ſ�Do�/\\u0016/%�e�����\\u001di�\\u0017\\u0007\\u0002dǍ4[�w7ݡڠ���W��\\u0000\\u001f�\\u001agǍ��M�$[�u\\u0001�K�\\u0013?\\u0019�q]!�\\u0000�\\u0002:�Km��EW���ǲ�Q]P�U�tak\\u000bSn_�����ƈ0��m�H���\\u001dz\\u001e�R�~/6we�?�]�\\\\\\\"�[P������\\u0014L<.X<rh����Qk\\u0011��4�1>MYn\\u0000��.>�ύ�\\u0018�\\u0011�u\\u0006���R�}7����\\fDc�˔ښ\\\\5�(��\\u0019\\u0016\\\\�c6:8]@4��ƕ�~�\\u001c�\\u0017W\\u001e�J'x\\u0001m�byұb�f�\\u0000�M�����Z\\u001f\\r�D��ػ\\u0013}N�M~Un\\u0014�<��d\\u0001��]�z��x�\\u001e\\u0014�\\u001dÒ�\\u0016�6��\\u000f.#\\u000e[tm�#\\u001e�\\u0017��\\u00124��I\\u0018aÃ=RDV���Gs\\u0011[J'K)��rLЬEԬs\\u001b�K��}@\\u001dT\\u001fJc��\\u001a�J�v{IR�`��O�\\\\acFҙ��b\\n�\\u000fk\\u000e�2���E�2&\\t+}zm`\\u000e�kz\\u0003N�X�6���\\\\�X�'�9\\u0000C,��n�y�\\u0013�\\u001cFV-��\\u001aG&�{��r���\\t\\u0002�쩺��n�\\u0000���5��'\\u0005\\u0018�\\r��\\u0015��\\u0014�b��f�\\u0000��s\\u000b\\u0018���$fg�\\b���\\u000e�^���M��\\u0000*׋�|+�U��\\u0004[nŌ�\\u001d��\\r,�屔��B\\u0001&���?+ռܲ���[\\u0012��B\\u000fA�UQ,p��Er�H%���ҟ`�G�\\u000b�DQ\\u0012/���[N��TGUp���K^s�(���qv�ߧ~\\\\�O!��7\\u0003�)}��\\u0006T��I\\u000e����\\u0000�Uq����\\b2B\\u0019C\\u0012E�}��T���ƛ\\u0013)D���QkF?����e�\\u0012\\u0007&O}�\\b��\\u0000U��V\\u0006��ȃZ|�w\\u0004L`�\\t�y�\\u0006�r�$��\\u0018\\\\4Q�FȠ\\u0005�vc�{\\n'\\u001axpe \\\\;]��kmֳ8Yy��Z\\u0016��V�\\u0019\\u001e�}~\\u0015��(����dpJ�����\\b���?Y\\u001b�V_'��\\u0011�r]��Y:�?��\\n�}�r�\\u0010,Y{|hl̜L�D���v�qk/��4w#\\u0014�+�c�\\u00196�AՁ\\u0016�t����\\u0002�^b������;Ձ\\u001aDR��Hf�yV�1n�o���0xo����\\u001e��å�!S�����!�\\u0007`o0�\\u0018����j�����N&4\\u000f\\u001c24�mF� ��m,4�Tp^i2�\\u0010�u����\\u0003Kk�P\\u0001:��l*�\\rܷ�..ub\\u0007�\\f�>\\\\��3\\u000f\\u000b�n��\\u0012;��¬��y^JH���\\u0018&�;\\u000fr�՛�֭\\u001ekϲV�%e*v)Ի\\u000e�K8^5��d�ǔ��*����B`t����cҕ��\\u000e\\u000eL�%\\\\.-��C��.S\\u000b\\u0007r�G\\b\\n\\u001a�\\u0013�\\u001bwj����\\u0019k�\\u0000ss���b?�L}��O\\f�a�\\u0004�#\\u0018�I\\u0019�^��;\\u001a�p�r�\\u000b�D��6Ѐ�t�r\\u000e�E�P\\u0016'E�\\u000f:k�a]�m�_�5\\f�����L�����y\\u0013G�\\u0012T����-��\\t�^G\\b�=�\\u0007��6Qpt�L��[\\u0011&�\\u001b�L.��\\u000fk�Z�'��ɒ \\u0011�\\u0010E��\\u0011�܀[i�IQc5�7�Y27t.L+\\u0019;�\\u0011?\\\\\\\"���\\f<�N;\\r�3=�*��{\\u0012$RnT��aƬ��\\u0007�#\\u0011D������\\u0016=\\u0001&�e\\u001c�2v�o\\u0001@@\\u0002�^��M�\\u000eT�\\n$a\\u0002��6\\u001e�XQA \\t\\u0014�U� ��7�6�9\\u000e\\u0004�~[2li��dtXI\\u0013+%��-��5�\\u001f\\u000e\\tL�����q`==��Ɗ��q3�Y��̃k%���{M^^\\bpe����x�b,\\b\\u0007c\\r�m@?\\n�-%X�ӧ\\u0018�\\t�\\u0005��H����-�M�\\u0011��g��A8�\\u001ekƊv�1�m�S0�\\r\\b��D�\\u001b�F���4�3\\u0016lt�X���ď�[��SU����\\u0006A\\u001c\\u0001��\\u001fq���QLj���37p�\\nP���8�\\u0007޽�b��Q(\\u0000�X87\\u0005:��$�����n\\u000b��2E$z)For����\\b 9r�`ʾ0��,n�HM�l?�o�Ɠ�@G��@�Z8B�\\t������&�\\u001b�CZ\\u0006&Å�\\u0015��\\u0004�\\u001e¬�\\tO\\u000b\\u0014��F2�z\\u000fh�l\\u0007��nT�.ð\\u0019UK3Xn`\\r��jq��E�\\u0011-e+쾛��~&�r\\b\\u0016֙�$����-{\\u0016Q�V`�\\t�\\u001e1HLl�I�\\\\\\\"\\t`�\\u000b���Y\\u0014��+J��r����\\r������������]�&'���5^\\u0007\\u0017\\u000f\\\\\\\"_.\\f�\\\\\\\"T�\\u0006V\\u001a؋�\\u0018���\\\\dL�,Q��@�\\u001c3�!�,n\\u0017N��q@q� �]4�8\\n���\\u001e\\u001f\\u0018 �\\u001f\\u0002D\\u0001�7Ê$\\u0012�\\u001b�^�\\u000e�aֆϏ\\u0019pf��xVA�\\u001b�\\u0017:X\\u000f�\\u000b\\u000e[(<{\\u000f��b;��&��\\u001bw�\\\\?\\u0014L\\u0002E�\\u0014�U����mݪ�`���Pe\\bχ&L�24w\\u001b{�hC�\\n�*\\\\�xU\\u0015�k\\u0000�Q\\u0016�r/�����\\u0011D  HWDc�݁��Y�}�:��ƻƥZߦ��>\\u0014À�\\u001eQ��;���}.��hP\\u001dIA��\\u0003Z~\\\\��A��U���?I���O\\u0012퓓��|�X�\\u0011v�\\u0017���\\\\�[dx�-vR��t�n�Ҩ��1�\\u001e\\u0007�Q�]��\\u001b��֗�>F/!\\u001cj�Hv3\\u0018ߧ��ƘH�]�8�E\\\\�\\u000bc+7��H\\u0004ūæ\\u0007�Zo�8����ؓ���l\\r�:�n��Y�J^E&l�f��\\u001b-�3Xt\\f���3\\u001c���\\n��e�4a�N����6TlS��Q����V�����\\u0010l-�z\\u0011�7�e�\\u0000*�\\u0011��?\\u0011�\\u0000���|/'�\\u000e:�$DL�\\u001d�\\u0006�ۏ��=+��鲹\\u0016X�Ʊ�%��\\u0003]ߍ\\u0011��\\u001e)0ƶ��fs�b�\\u0018mo��Vs\\u0012�\\u0017�\\u0014r�72\\u0007g\\u0007P��[�T�\\u00130˯\\u001d�Ҵ�\\u0019��ă\\u001eP��\\u0012\\u0014�\\u000f�?ύN;?\\u001f\\u001d�\\u001d�Ī�@����q���\\u0019����>*c��\\u0004�2ZҖ:\\r��l}?�Y\\u0014�m�y2|�\\u0018D\\u00061{Z5kh\\u0007�L��\\u000e3�r0\\u0005,� ��t\\u0000�\\u0000�\\u001c\\\\u\\u0002\\u0006��l��9\\u0006>�əV �m��҆�ŏ\\u001f\\u0014,h|�\\u0000\\r��\\u0003���Ace�+�ٍ�\\u0005�\\u000fE>�oSR\\u001cܬ��������\\t\\bР�[�5W1���g'�=�f\\u000f([�e$�n��J\\\\\\\"�Ck��0a�c�V�K���:��\\u001a��c�.X�3���Fܲz�6��N:��>\\u0019<����A�����-�A��;���!�${Pz�5A�G#3J��U�]l\\u0018\\u000e�o�J\\u0002&\\u001aw�\\u0003)�͍ݭ�um7�)�\\u001f9,���Y�\\u000b0=O���^\\u001eg\\u000b���1hr'\\u0017�(�.��}-I2�\\u0019ƼY\\\\|�`�D�of;H��N�\\\\��9�ǘb�\\u0016[�5�j>�^��\\u0014n4�J��ī���4�p��r�j���9\\f���L�Q�7{���{SN2s�J\\\\����f��\\u0000�X~�ml>\\u0014�\\u000eK\\u001f��ɎlvY]���k\\u0001��֛���\\u0006dH��m��\\u0000P�[QB\\u0014H���f�1ڒF\\u0016�b:|�3Ƃ�Q��gD\\u0004V�\\u0018If�I%�>��s��u�w#j3F�@\\u000b \\u0017\\foDI�aM�r&��h�\\u001dᮨl-u��S\\u001c��l,�\\u000f�\\u0018#�/��\\u0000P?\\u0003j��6�5�\\u001e>F���[\\u0005�\\u0011���99m<�T����:\\u001d4׷�Y�\\u0019$��u�C\\u0004$�V��W�^��c�\\u0007\\u0001�*F��4�H�\\r�;{{���\\u0014\\u001c�h�ɔ�\\n��R?�\\u001aiF�B�\\u0012 ���*yw�O��N�\\n�bO\\u0019#H�z�nG9��2!bc�������\\u0013��:dM�dY�*\\u0019E���P����愞_\\u000f۲��Ŭ\\u0018\\u000b�\\u001bzՙC���%�\\u000b69�MB\\u001b{���a�Y��\\u001a\\u0018��VT�\\u0000!\\u000b���\\u0007q\\u0015r&���D���Y��ɒ9m&�7K�\\u000ba��F/#°C�\\u001a�Ƞ~ږU�$�\\u001a�8yrg]'Ǵ\\u0019\\bw�\\u0004\\u0006��לf\\u0017\\u0015�\\u000eK�(dێ�_q\\u001b��\\u0007�����Zt�(�LL�\\u000bc�$%ķ�\\u00047��\\u0018\\u0015Ԙ\\u0011E\\u0013�3X\\u0006��qu.�E���%�H�8o�\\u001c�\\u0019͸\\u0018b@����a����|>|\\u0010C�\\u0016C\\u00023�\\\\H����}�o�]���y�I��\\u0011P�@=ۻ6��zрL��Ζ\\u001b�`��B��� �\\u0015'�B��;\\u001ed�_s�\\bVĝ��\\u0001V+A��6$�x��X+��\\u0013c��K9 L˛\\u001cJ��ۙ���oU\\u001aZ���� �,����e\\u0000�����t��\\n\\u001c(\\u0002�\\u0006��Z.�{l�@\\u0004��Z=�h���Hsb�1�d�\\u0016\\\\\\\"�G�\\u001d/E��\\u001c���T\\u0006,@ߵr\\u000b�{H?\\u0015�I��I�)�f��!��� �o��fc�h\\\\\\\"S2�2K$@�ۮ\\tm�֬��$\\u0006\\u0004��!�ʲ�\\u000bb�`\\u0002�=Jg]~��/���3����H��ÀY@,�zn�\\bp㏊\\u0013⼌dQ��{X��t�z�YJ��Y^G\\u0016!\\nz\\u000e�=j��g,\\u001fz\\u001d&�G\\u0005b��\\b��$\\u001d4�\\u0000�Bg_�3W�B�]�7w;q\\\\\\\"��5�\\u000f&\\\\��4�*��\\u0010\\u000bu�>\\u0014��vl�7H%\\\\\\\"�x7\\u001a\\u000e��=�x��\\u001d���\\u0010�!Ե���m��N<��42\\u0010]4;Ha���\\u0011ӡ��\\u001a�����\\\\\\u0010\\u0019U\\u001b��\\u0014\\u0002\\tܓƪ�R�\\ri�R�J�*T�R�J�*T�R�J�*T�R�J�(�>;+4�\\u0002�\\u000e���S�o�#�L[Au��5��јЈ&@���+��?:`��\\u0001`��\\u0010:�LU\\u001ck��y�I�!\\u0014�\\u001f/��dcG�\\u0014M��\\u001e�&�b��i\\u001a0'[�\\u0018�\\nܷ�����Mu\\u001b�@ZY�\\u0000�\\u0010\\u001f�]M��\\rh\\f�Z9L$\\u0006\\u001dbU������Y����Hc,~G��ʘ\\t�B#�j���~\\\\\\\"��\\u0014\\u0003|��o �/����x}��Ay�\\u0001\\u0007�\\u0017�Z\\u001e\\u000e\\u000f�q�sȶf����R�\\u0002bspO��\\u0013����-v[�^�Nՙ�͛��g��3�Y\\b�����޴�#*\\u0012e\\bQ�*��(mc\\\\�\\u001c\\u0012H����/te��'��A p�*�|�\\u0013���\\f�\\u0019v?���欜io\\f��1\\u000b�\\u0000YOG�k�{��q\\u0013�%����kI�\\u001d�e ����>�kB�4h<a��\\u000b\\u0003{�\\u001a�ÕQ(a�\\u0018�[��y\\u001e&.�ά�ٰ���ĊY���\\n�#�A�\\u0016Б�\\u0001v)�u'A��S�b���X�\\u0016S�\\u0012=�\\u000f�6�h�R�R=��\\u0000�:��j�ͽB��xVO�\\u000f��.1�Ȁ���\\u001bRD���,\\bl��\\t6X�?֘�dI����C\\u0012чa�\\u00001\\nO�B�qr�RU�gU\\u0002E�\\u0018(�\\u001a$\\b�\\u0003�E�Am~\\u001f�@gm\\u0004\\u000f��L퍛\\u0019\\b҉��<m\\u0000\\u001f�\\\\�(�5���WE:��\\u000f�\\u0017�\\u0011\\u0010��ݭ�]�m��EF�3�����-j�F�;6|\\\\c��`%��>7��P��}�x��T\\u0017('o�p�w�f\\u0002�\\u0010l̂\\u0018�,cr�o�mץ\\u0005�E?'\\u0016t\\u0006��G`�\\u000fp�\\u0014{b��4x3�\\rw1H���O��j7�|���+.0�\\u0004�6\\u0001I\\n\\u0000[���\\r\\\\\\\"d�ں�QDeƁ\\u0003��ŵ�\\u001e\\u0003�`��Dx\\u0019_|�D\\r\\u001d�����j\\\\\\\"INJ<Ct��\\u001e��cBe��!\\u0012�\\u001f���'��\\u0000���W�l��u��}����\\u0010\\b���>Gq$u4�����3\\u00177\\u0011�\\u001a]\\f�Hq�\\u0016�_���Ϲg�^Y\\u0018*��M{�JU�s�+DI�\\\\\\\"%խo�PM)���\\u00001۰[b\\\\)$}W\\u0006��gR���x1\\u0016k��N���ӯ��%��\\u0018�X$�H�\\u0016K{WOƐ��R�2ĈC��Ơ\\u0003��|kC��\\f|\\u001c�$��H]�\\u0006�s\\u0002Ր� ���{\\u0017Qv���zU��\\rd��\\u0016\\u0017\\\\�Ԫ\\u0006,�&��V�\\u0001����񣧉\\u0000\\u0001�m�,:R���9l�m�:h}M:�ǀ�<6��\\u0000,\\u000f���z\\ngg-`��\\u001d�軽*�><jYۥx�>��� Te%��\\u0000��&�8\\u0018�rs|��a/bTؖ\\\\\\\"�E��c�H�U��ٯ�|ǭ\\r>`�_$��m\\b\\u001dl4��^D8�V8�\\u0018��nq�\\u0016\\u0017�-C��E\\f��\\fF��0!�&�(�z\\b\\\\\\\"�Ʌ6t�I\\u001e��AՍT�O�Sp�_ʟqF1��O��Ğ�\\u000e�j\\u00177����'�\\\\[@n\\u0001��\\u0019\\u001a�7�ML��y\\u0001Pt\\n/��\\u0017\\u0000j\\u0000���t\\u000b��OʑG.>W3�*\\u001b�\\u000f��}ǡ�>�0O���\\fL\\bd#��k3Õ^[\\u0015��\\u0016MO��Bw\\u000b�V�7h�,n\\u0019,�����xdC�\\u001bn(���\\r�X_K�H[#.IX�s3\\u0002�\\\\��ڝd,^)=�e�,BB5]�\\u0005�\\u0000\\u000b�\\u000f���3[�35à7���\\n0���\\r5�K�.L`\\u0003\\u000e��}(_��%t1�!�`7S�u\\u001e�w\\u001f��͒�R����\\bU��\\u001a\\\\��\\u0013o�u\\u001e\\u0011�!#�RXٗ�k\\u001a\\u001b��Ia˼S\\t����\\u0000P\\u001aޗs\\u0012@���Zm��\\u0003$��\\u0000�O�:Lz��\\u0011�\\u0004̘�d\\nn\\u0014\\r\\u0001:�\\u001f�U��cD�9ub\\u0005�!\\u0004��U|������b�\\u0015�jO&!WX㴁Ɗ�q���� \\u000fZ\\f8\\u0013,>V�u�ˌ�Ӿzg$\\u0013�\\u000b�o\\u0000�@a�/njL��(�\\u0011��I:�Pn�懃\\u0018�ї,\\fZ����b(�\\u000eC����A\\u00166\\u001f���Mg$\\u0006?\\u001d9V�ر�+����0�\\u0015�n\\u001bs\\u0015�\\u0011���x�.ݻ��:��W\\u001c�6F$�R�\\u0014\\u000e�1PIk�\\u0001��Rl\\\\��re�\\u001d���^2@���U���\\u0019�T�!�W|����\\u001a�h��Yҋ����X)=;|i�\\u001f���.�\\u001cM\\t�\\b:2ۯ�ӽ\\r��\\u0007a\\u00162+ϠYOK���k���W�D@�!�A\\u000f�oJ\\u0014c�\\u001c�d�\\tK;#~�pB�άɉ޲�\\\\##:1�\\u0004�z���\\u001eR�\\u001a\\u001f�\\u0000Kg�pIrzމ�I�1r���\\u001e9ca���ۦ�f$�'G*\\u0018�C\\u0002E2���g�\\f(\\u0014I�)�{l\\u0002���ΕEa��\\u0001�$�\\u0013h&�>�z\\u0001���QU#A\\f�捻�ע�Y\\u0013\\u00079/�F$�HKl\\u0007��R�i_\\bE\\f�o%�t#M/q� �r��1o0u�C��D\\u0014\\u0013;Ƣ��Ƨ\\u0018��S$�\\u0000t�+G\\u000f�D��۴[��\\u001eI�-&\\u0012�\\u000e��\\u001a\\\\�ݼۭ�S\\r������\\u0018��XjJ�\\u001c\\u0013���3�U�J�q}���M�T�N�MY�\\u0006,����8����a�\\\\\\\"����ǒ(!P��\\u0018�\\u0001��Ku��P�`�\\u0014�g��AܨO�\\u0007Rlu\\u0015~N^i�\\\\\\\"�]�A$m\\u001cJ�H�D1=�ޙ��,\\u0017���cf\\u0017�u�=}(\\u001c)\\u0001��%��;\\u001en�\\b,dȲ\\u001b���f\\u0017\\u001aIA�!v*���\\u000b�zy�\\u001f?\\u001e�f0�\\n\\u0005\\u000e;�П�[�ǆp�|K\\u0005q����A�zzU�Ь(R\\u0012˻�.�\\u001bQ\\u0001\\u0011Ɂ��G�\\\\4t�.�nѮ\\u0007])^\\u000e<qg�\\u0014�cx��(��{�i�3���msp�K��\\u0019X9\\u0013Jd��X{w�\\u0000�:\\\\�\\u0017�\\u0012��\\u001f�c��>��C�_�_2)r����\\u0018��8�>5�\\u001dXd=H�\\u0010�֓>C�x�m\\u0019�\\u0018����z��\\u0007QG�\\\\\\\"d\\\\\\\"�R���ee�z\\u001bT�D��c6\\n.�\\u001d�ď�n��҆��2��ʩ9U\\u0003q�>��\\n&b4\\u001aRW\\u001a�R`A7\\u0000t�(_��\\\\̓��l�#U�\\u0000:\\u001a\\u000f\\u00031�����Vy$\\n���5;�hq`���3Β6\\\\��b����\\u001d\\u000f@(\\f�<M�#Ek�R\\u0014�-};�I��Eh\\f����dL�\\u0005�����6�����s�><q���q!��\\u0001��5���\\t�{̭m�}vߨ53a�3\\u0001@�u`#�\\u001d݊�]d�\\t1���+\\r�-r\\t�U(.�/S����\\u001e$Ȋ1\\fJLY���kK��eώ�\\u0006\\u000b\\u0004��v\\u000f}��OzW�\\u001a�y�$lZY\\u0003\\u0007��a�F7���\\\\F�i�T��P����~t~KI3\\u0006��X[���5Z�J�J�<س\\u001c�1�l��\\u0007��t�2�@���[PN���ֹ��s?�r0�+�B���\\u001bX\\u001b^��qgM7*��l6�ö\\u0005kZ�����U|�E��6_+Ⱥ\\u0003�ڛ�ڒq\\u0012[ h����h�\\u0013.\\u001c$E�\\u0002\\u0004t����ނ3g\\u0019|噝V׵�Q��J=W+��fb�\\u0007[$v��;�m7P�I�, P�0�}/n��F�P<\\\\t%�s�ܽ�\\r�](ѕ��n���Wƪ�\\u0015\\u001e��S\\u001e���\\b��u`\\u000fM�F,y\\u0013b,��c:\\u0001$�rC�\\u001e�SD�G\\u000bgd+�1Df\\u000e�H\\u001a\\u000fw�U\\u00193�&d�2>�\\u001d7�\\u000f��\\u001a\\u0016\\u001d��:\\\\S!3l��\\u0011B��_\\u0012�T$#df�v1\\u001fʩt�٣Ȏrn\\u0002IpA\\u0005�ֵ�w�9�M\\u0016+*�� *\\u0012,č\\t\\u0016�V��g-��\\u0014��˱���\\u000e��(1��A3�\\u000bF\\u0001\\u0011�\\u0016�-��Vv�I\\u001c8Uy\\u0018���Nڅf \\u0001���k\\\\�\\u0000\\u001c�/\\u001f\\\\\\\"Y�՚f �ԁk�����\\u0019����7i���\\u0000=O�B��qG�\\u001c�*G���O�Q��}W�fw��t�ܒ�ݻK�\\u001fW_�Z�\\u0004�iKϓ#8U��[��gJ#�ˏ7jGb�2>��['�_r\\\\�Oʙ�1�\\u0005*�o+�ֿ��\\u0000J���G&$�i�\\u001e5������y�\\u001b���Ədr�\\u0005�\\u0006Qb�\\u0000�;u��KA\\u0010\\u0004�cΙ�:�Pr1RE��\\u0016����J\\u000fz�W\\u0018�\\u0018�ܴ\\u0012\\u0010I���\\n\\u001f\\u0016|�Ɨ\\u000f\\u001a\\u0006h<���nm\\u0000\\u001bC\\u0013�\\u0000:6,1��Qٝ�\\u0012�[�\\u0000�U���6�ȉ�����v��������A='��L\\u0019�]�\\u0012.FW\\u000f\\u000f��2\\u001bqA���\\u0000 H�\\t>�h�\\u0015ۭ��\\u0013�\\u0000ji�1li �����}�\\r�οJ�\\u000f_�*���9��b�/�?\\u0014,�\\u001d/s�\\rh�_>L�8NFY@���\\b\\u0016v\\u0007�ʩ\\bE�\\u0013\\u0003�\\u000f�S?����L�\\u0015g��9�\\u000b�90�\\u001c!�;�Wv�\\n�\\u0014�8K�+<��فԹ�=)�9�YDe�Qɣ2hm��u\\u0012D�|�\\u0005G�\\u0015UdFшc`�\\u000e���\\u0013\\u001aA�r���َ�k�~قP�ށ��C�2�\\u000f;)2):;\\u0002t\\u001d��\\u0013&\\u0015���&�2B�\\u001a3��?��{\\u001cx��Q���bHV:��Z\\u001e^1W\\ny���\\u0013y�\\\\\\\".���}ޔ �\\u001b(\\u0011�nh�lc!\\u0017df.�n�\\u000e\\f��QY틘��(�S��l6����\\u000fC��Y\\u001c��+�eD�n\\u0000n\\u0004�~5V6Nd�\\u001eB\\u001f\\fi\\u0005�� IRH����3����bඬ����X�\\u001b�m\\b���b�\\u0005\\u0005ɉ��z��\\u001e�rr����\\\\\\\"G��ư\\u0015ar�=.\\u000f��Ig\\u0019\\u0011rж|�X�\\u0005Uذ+v(��։�$��\\u001c�\\\\Hʩ�\\b\\u0007Kk���9q���\\u0018��x�o�E�I��\\bm\\u0012V\\u0000郯֠���ef\\u0004\\u0007��ݹG�Wf�JZ\\u0019\\\\\\\"�/\\u000b�\\u001d���=-T�[�Ú\\u0018��\\u0004�UT�(��9\\u001f������7˵���X���*i>D��L�{%�\\u0014,�Xm\\u001f;P�\\u0010>�\\u0006l�ɕq\\u0006���\\u0013\\u0007B��K�E�\\u0006(�G�\\\\\\\"�\\u0005�����o�]�ff��l\\u0003͍\\u0019\\r*\\u0002�\\\\���JK���;FŁ�E��\\u000b\\u0010:��;\\\\\\\"\\\\�|��@$��P��}��w6�*��1\\u0006tֵ��1�7cō{b�jeX����boˏ;:&�\\u001d���ѽA\\u001dmsL�\\u0017\\u000e$�\\u0003�N��\\t�0@��)�,��h0�\\u0001�Vv�`�ԁ�~\\u0016�p�8b�)Lo\\u0000*�ŁO_�L3��9�\\\\��Eg�ң\\u001a��\\u0001���A�qSc����ɤr.�źX�\\u0018q�\\u00168�<R\\\\\\\"\\u0005!\\u001c�\\u0010;v֬����\\b\\u0017yxX:/�k\\u001e�\\u001a���ce��*�D���m�B�#j��.A�\\u001b�xfi\\u001cG�\\u0015�\\u0005�˟�*��\\u0002(24����n�o&^\\b$��\\\\\\\"InS�4\\u0017��oޑbfrfYfƙ���7��\\u0006���G,�n9����Fv\\u0010\\u0007V\\u0007[\\u000e�R�s�ȟ��k+�2��\\u001b!VXT��Ǖ\\u0013�w�\\\\�^Byr\\u001e\\u001c�,\\u0006��{�X�VڏƬ�\\\\d\\u0019�`���?�l+�<~b<W�)��$��\\u000e�\\u0002���!~zU�8�$��4ʥY\\t��r����46��\\rUK.�]ʙ����>\\u001c���[��\\u0000\\u001e\\u001e���c�#�U�!s\\u0014l\\u0001\\u0000�����,\\\\�`N��\\f�!\\r�\\u0007imz렢�xa\\u0012\\u0007��Zb�YB��\\u000b�4.s�rS,\\u0010 g�w<��+��[���\\u0005�w\\\\\\\"H1�5�X2�e����##]#���P<�!?;��d�v��\\u0001p��?V��j�8ɗ\\u0012S\\u001a3\\\\\\\"\\u000f�A>�;��#\\u001ef\\u0014\\u0007j\\u001b8\\u0003@\\t?��pYX�NJ}�C�A��C\\\\\\\"(\\u001a���\\u0003�j�`�\\u0007�\\u001a�v\\\\���Hg��4;�J1�.YR\\u0014p<vU,Qw�A��5�1�\\u0017\\\\\\\"EX�K0��U�^$X\\\\I�\\n\\u0000�4%\\u0003]��-���և�\\u0011�\\u0003J�&������\\u0006�`����X|�%!�?�$��C\\u001fZ�\\u001c8a\\\\\\\"|x�#\\u001b\\u001fs k�\\f�V��QBfe4�\\u0018�a�X���\\u0018k3\\\\\\\"�mn����\\u0006\\u001e4��\\u000f\\u0011�h��k�\\u0015n\\u0006f4Ś\\u0015\\u0004\\u0005���OQ�Ƅ��@`\\u0013��VW2\\u0015�؝�M�&�u �\\u000e4���0~�\\\\\\\"\\u0003�RB��[\\u0015o��*�L���ǈ\\u0018�p�������ے�3�I��\\u001d�;\\\\������\\u0015�&D;!ř\\u001d�c�\\b��cB�)i��Jٗ�9\\u0017\\u001d���H;\\u0000���J�X�<9%�\\fl�c�=X��7��x9,��\\u001d�e2<�&�k\\u0015���O¨�ϔHS>\\u000f��\\u001e�\\\\�:h�KWs�q�d�ۼp2-�\\u0005 n\\u001dI,j\\u0000\\u0003\\u0003\\u001d_���B�\\u000b\\f��}��U�\\u0019���*��$Ɏy�,��\\fJ�\\u0005�����E��cO\\u0010��\\t�(uXӰ^�\\u0000\\u0002{W�꘱\\u0003\\u0016�IPIN���ց��Æpbw\\\\�=��`l�t�ҡ�DαJ\\r��8��i=�؋DE��j�.\\u001cܜP�ex�^��\\u001b�c֕r1M\\u000ed���I\\u0001�Ɓ��N�ğ�ݍ.\\\\p�N�:�^�v\\u0014�����m҉�������AB\\u0007O3&�����8\\u0004v��D\\u0019�Y�~�\\n�J�+UJ�*T�R�J�*T�R�J�*T�R�J�*T�Z�;3��\\u0010;\\u0000e��Pz\\\\t6��\\u0010��%����OC�d�\\r��,!�����\\r�a�\\u0015��e�U6�U��nm򦩑�p<�C\\u0016R�t=A}\\u000f\\n���\\u001c��y.\\u001dN����\\u0014\\u001c^9F���y\\t������K�oZ�<��ʬ��;A\\u001amU>�ƒaǳ\\\\\\\"x�k$�\\u001f\\u0013>�R4e�\\u001a�2��c�h�\\\\x�\\u000en�ap�\\u0017��O�W;}�*�3m�ek�\\u0000`�7�ҟK�01�g\\u0006GE\\u0000\\u0013a�a��z���dQr:\\nc��A�\\u0002,N\\u0004�\\u0007��Xƨ\\u0002�\\u001at���\\\\\\\"�\\u00010�6���W�0��'\\u0012'�Ue�t��\\u0001b�[J!�-���ӿ�\\\\\\\"��lqe'V\\\\\\\"?ME��Ӵ%�\\u0001uQq}:w���w���M�\\u001f%���\\\\�Y-���F��\\f4��\\u0014�\\u000f,�\\nO�h�\\u0007�z\\u001a?!������X����\\u0014�`�\\u0000r]��\\u0003p�Q�Ӱ���?(�h�u\\f�\\u0018\\u0000>[Eh\\u001el�`���Q}��z�\\u0016n�H�#��i��\\u0007�\\f�b��c\\u001b!:\\u001fws�U���@~Ȓ�\\u0000\\u0011v��\\u0006��.�\\\\\\\"Zu��!!E��x}k�\\\\��ɞ\\u0018���+����7\\u001f���Ϲ@\\u0016^����Jdğ\\u001e\\u0015�'�]�s��{\\u0015��*�,܌�Z2�([��\\u0000��P`�_\\u0000*rc*QD4�C\\r\\u000f���\\u0007�/�wck���BÛ�`�l��,�����\\u001fE�mD)}���\\b��\\u0016��\\u0015���xyh�3r����\\t�pm��\\u0000�p�I�7c`T�F�+W�\\u0013-UA1�#y@7\\u0010/�V�\\u0012����6�Y;nQ�4\\u001e,�\\u0000u\\u0016�� �\\t!A�D\\t\\u0012X�)�uo�P�\\u001f\\u001a��(�\\u0005�>�%��0$�BU\\u0007�_��\\u001a�&a��$̤��~�z\\r,7w�4'\\u001f��O6?!4�l�Ҭ\\u0004�\\u0001ox\\u001b���]g��2ba�@�ѩ\\u0002꣧�M8]�\\u001cTi�BA\\n%��\\u0002�}I��ҳ\\u0012\\\\\\\"9����\\u0005s����D��o���\\u001fj�$�\\u001d�E���\\u0000�S�\\u0000�!\\u000e#O%���WP\\t����\\u0000%����\\u0019�T��P����s8��iK,�5�\\u0010lOK���\\\\\\\"�\\\\�`�O*���\\u00068��;\\u000fʫ$��K8l\\f�SfD~8�$\\u0013�\\u0013���K��/\\u0016icl$x���h�JFF��-o�Z�l�\\\\�\\u001dv:�\\u0013\\u0006M�P��\\u001b�#J�s�\\\\\\\"L�M�&9P-��-Ṽ\\u001d�\\b-\\u0000�f��/��hV�\\u001eE�]������yһ����ȟ\\u0003*rLQ{c}6�!lt��Dr[B�}@騤��$�Y�eĩ#<M\\u0013�\\u0011�)\\u0005I�W\\u0010gO.2K$�����5h�ؐ�]cf\\u0012(�a�m�Gl�\\u0003C��ۆ�'�%�x\\u001d\\t�g\\u0002��\\u0006�\\u0002�\\u0013�ɗ\\u00160��>\\\\\\\"�-���}-D�\\u0013����\\u0003�\\u001a�r/�Ҷ�\\u0005\\u001f*C\\b!\\u0010;�iN�\\u001e�^��\\u001bWI��\\u0005\\u000eO%o��5g\\t:�1�*�x<�\\\\Is$�)\\u001dB��\\u0016e\\u0002����)6^T�沖\\u0001v�\\u0019M���W���[nd��\\u0010Do+\\u001b\\u001d~�\\u0013�\\u001f\\u001a��kI�X\\u0014\\u001a�W�\\u0012\\u0006�b���p�)\\u0017n��ڴ\\u0013b�\\u001e��<\\n�$t�z�C����\\u001c�iapY%��N�\\t�i�\\u001f�����,�;�텰��j��\\u0019\\u001e6�F�\\u0002�k#Y�zZ����և�vVM:�r\\u0016?M=��y���a�&`\\u0019���\\u001f��G��\\u0010b��R�D��1\\u001ah;_�e�&\\f�bo\\u001a�u�6�\\u001d�p���\\tc��*������$\\u0001�+'�� ��*?�nZ��y��\\\\\\\"\\u0006u;\\u0000\\u0012��k��Ɣ��7!�spĕ��)���Eq�r�\\u0019���!��\\u0002�\\u0003�\\u001b�lNA����%�\\u0017Qm�Uɨ�\\u0002����G�/\\u0006\\u001493\\u0004��,\\u000f��T!e�ǅ��}\\u0014\\u0016&���N>E�C��i'Kw�:�ա�\\u0017�<rdǑ\\tʉI�y\\u00017`7-�Jyc\\u0004�\\u0018\\u0019��{�@n��\\u0001�P��i�\\u0004�Ǜ\\u0012�mu�\\\\\\\"fft��8�j9\\f��\\u0011$�\\u000b�\\u0001\\u001f�|t�f@�R#f)sq�z�/\\u0003�dM*̾\\u0005E2��\\t\\u001e1�U���\\u0002Lh�\\u0011&�\\u0012�\\u001c�v߯�Px1�M7�Ƨ\\u0018t��\\\\\\\"�춎u��p�\\\\\\\"\\u0001t\\u0017>7��\\u0000�ֳ|�#ad.9q �\\u001c0\\u0004}Zw�V�nW\\u0016p�o:7���a���7ȇ3�Y�Q�\\u0011�\\u000fK�A5�\\u001b;y9A?�\\t\\u0011\\u001ai�V�P�>6`��w����f�\\u0018�\\u001e.\\\\\\\"��io�s��\\u000b����[o\\nE�\\u0015׶��;++\\u0007\\u0011�\\u0004��P���\\u0000+�!'�8�\\r�\\u0015\\u0005>D^�\\rN�\\n�67H�\\u001b��\\u0012#}*�S\\u001c�B��z7����X�~貱`1�\\u0013�ě�S��޳��K��K���`,Z&\\u0002����M\\u001ar�D�\\u0013J[o����mk�\\u0013�ozkc�\\u001fI\\b�}J�\\u0013ϝy�,-\\u001c\\u0011����#�7\\u0014\\u001d,~f��dI'�C�@۵\\u0005��\\u0015��C��N���_�\\u0001��w#\\u0019�\\u0004����e\\u001dn;�� \\t�kO�U'\\u001bOF��w<�o\\\\��\\u0013�$(e>\\u0002�;\\u0013��ޗ�`��\\u0019G\\u001aV������7��p�p�1U�\\u0002T\\u0002Ҹ���\\u000f�\\\\ЙxI�#�m�_I\\u0017���m�OE�y�@\\u000e?!��r�ha��<�+����.;=����H\\u0014�?.�b\\u0004��3��\\u0003��\\u0015vF\\u001e$\\u0012\\t�XȆͩb��\\u0004߽W�p�\\\\\\\"|,\\u0000d-q�\\u0001��6�^�1W�\\u0010\\u001cp\\u001dă$\\b�h��2q0�\\\\D�\\b�R�\\u0010u\\u0017���5o\\u0011�*`�\\\\�Ir�� ���\\u0019ܶ1�+���K)]�\\u0010����\\u0003\\u0002^\\\\\\\"�\\u0000Dgj�=>\\u001a�(b��\\u0001�P�\\n��\\\\\\\"e�g<w��h㗏;�\\f�|`3\\u000e�7J'\\u000b�Ń\\u001d��̊��\\r���\\u0014���)&*��i\\r���*Ղ\\b\\u0011Wf��U���m4���=0M+�E\\\\���\\u00166��cY��\\\\dJ�'�$��?\\u001a�\\u0012h�xa�\\u001c�2�2^�G�\\u0016�Ur���/\\u0011����X~����yyD���\\u0011\\u001b\\u0007�.\\u0005ƽh�\\u0007��NƯ�2> ,ʥ\\\\\\\"u\\u0006�ا2C4��q��$~�0S�_��������\\u0010c�h�<̠�\\u0006��\\u00166\\u0016����<���Q�\\u0007���\\u001b���nzQ�θ�6^h����nC���? \\r\\u000eL�RK\\u0015[��������H3c�\\u0015\\u0007����ZM��.DqM\\f�὚ud��e�2��\\u00136�\\u0003���\\u000e�bgÒ\\u0015�\\u0005b,U\\u0019����A�&>fC.[��-��\\u000fC�P\\b��Md\\u000eٜcȽ����\\t��\\u0019Yw��\\u0000,~�k�\\u001e��G�Ǐ�\\u0000�٢\\u001dE��|+���I&�\\u0000l\\f`�P�>�\\nl=�.\\u001f'$�\\u000f\\u0003^D�H-�n�j[dؕb7��V���r\\u0013�\\u0002\\u0004!-v�W�\\rM\\r�c$�\\u0011I\\u0006�ɘ\\u0015x�h��?�u��J�#g X:��.�:.���^L�\\f�@X�y�:;X�\\u0004���,\\u0019�\\u0018\\u0004(�8/su�í\\u001c�n)o�RNlza\\\\�r��m7�5N_\\u001b\\u001ad�1`����N�S���T�(���h�dH�\\u0002\\u0011������9\\u0007L8�o�\\u0000L1Z�\\t�\\u0001asI��Ypݞ=�\\b�]�\\u001e�E�Iő��\\u0003��E -�\\u0019��*\\u001f�\\u001e5نf2\\u001aֽA�\\u001dj���M�^LH�X�*�c�����ּ|��Hg���Ҧ�\\t����\\u001e:.V$�U�$KO\\u001b����s���U|�p./�!�;���[֋zW]5��J���S�Fa�\\u001a\\u0019�_�k�-q őL\\\\\\\"\\\\yE�q\\u0000�u�Ub�e�D��of=@\\u001e���\\t2q�\\u0011!�$\\u0017�@H�\\u0000*�\\u000b'4�\\u0006$fH�\\u0003!\\u0017�\\u0017�\\r��t\\u0004\\u0005�>U�����9)��\\\\��ަ�\\u000b\\u00064x�<�\\u0000�\\u0018�5[��c�s\\u0018�\\u0003�\\u0001����;W����k��,Q6J��H\\u0001�\\u0019I\\u0000���:�*NaW�<_���Vb��\\u0000�\\u0000�u�[�\\u0007��F��+�lm�_\\u001e�7\\r��o��(-\\u001c�`�L^<6�T>�\\u0000���\\u001f\\\\\\\"�,���'��\\u0001�PY�[�\\u0007Qn�����\\\\\\\"�\\\\\\\"0��\\u0018�74�NBbX�\\u0018��\\fu�E!�cSJ�eT\\fh��!�%g�;�8���osؐH;X�iFvD��yX��\\u0004^fV\\u0007�Nӭh8� �a�(�%@�;��z\\\\\\u001e����\\u0019�Ex#\\u001e%M�\\u0000=̷�h�ӭYa�Ø��Y�l6�|���H�q\\u001f\\u001d\\\\\\\"*�X#�1e\\u001b<h��\\\\tW6��h�o\\u001f\\u000eLG������\\u0019M͵�cK�8s�ő\\u0010\\u0007�B�\\u0006�\\b���C�-;��Y�ϐU\\u0004�v�\\u001b�,\\u0007[U�K�#E��<�h�Å��\\nC��댏�2㴙J�ň�kZ�ЁW4�921\\u0017k4�w�\\u0000v�n\\b�32��V=�YI����C��beg4����\\u0005�\\u000b]G[P��Bue�\\u0017S\\u0007�bD�\\u0006K¾1d\\u0002�\\u0000��\\u0013�M\\u0018319\\u000f�\\u0000W�0�8��>�=�i�u�sO�\\u001b��W�JQ\\u0018��\\u0002{�>��*��3fN�㴊�U�\\u000fp�qv��&9r1��\\u001bf�����\\u0015\\u0006�Gv=�\\u0006\\u0005tѭ�\\u0007�S\\u0007��2�\\u000e0^\\u001f+\\u0002\\r���>|)fg�\\u000f\\u0012�\\u0018����\\rn�\\u0000\\u001a�\\u001d~�V'\\\\\\\"j\\u0001��kM?�a:�D۶0f���:]?=j�?���ȏ#ءG�;݊���-z�� ��b\\fS���S\\u0019>>n�b��$\\r� \\u001eT>'\\u001e�\\u0012c�\\u0006;�L��l~�Eg�\\u0007\\u001d�\\u0014X�T�F�ŷ��&���~!0%��3��9���\\u001b����YHS=���� ؛�� �O�\\u0012\\u0002�\\u0018&X�V|�7(Q�,\\\\l����������&���RA\\\\\\\"��v����XX|��\\f�Xq�!\\\\\\\"\\t\\f˻\\\\\\\"\\u0015Է�ֹ��홲��J�\\u0000�\\u001d��\\u0013�rB�$�T�E�|ُ�6D��ݐ�\\u0013(�X\\u000b(U\\u001aZ���e\\u001ap<����0�2��r\\u001f���\\u0003�m]q�X�\\u0004�ĉ7\\u0005\\bmk\\u001b{�M{��L�e���$��{K\\u0001��\\u001a~T�\\r�x���ᐻ\\\\m�jK����_\\u0015Lch\\u0004s\\u000e�I�����0�n5���\\u0003y\\u001eF\\\\~F'�}П\\u0019\\t-<\\u000fӍ\\u0017�N\\\\\\\"l\\u001c�}�3#�\\u0001\\u001fR�hO}oFd���\\u0011�\\u0013x\\u0002\\u000f'��۶���;��6��+l�0����'�i�Y��\\\\\\u0011C=�'��\\u000e�t�\\u0001���\\u0007}'�>-��'��*N�\\u000e�U�#AI0a�\\u0019\\n�����\\u0001};֎DIW\\u001ei\\u0002�҇� {B\\u001bZ\\u0012<�1y(�16\\u0017Wf�z��-e�:չ��\\u0016Q��Wd*\\bE\\u0002��N�/ō\\u0019�\\u0000^sw�Jf�;�~��a\\n�.��R�\\fi\\\\\\\"|�h�)d,�=�\\u0003k\\u000f��\\u0011�10�cGV�gc+I\\u0018��n��ӎ\\u0006||2[#ޛv�\\u0003u�\\\\����M���\\u0000\\b�\\u0016U\\u0002˴���T�\\t\\u001f\\u0013\\u0014��稃s\\u0015��!�M3Ț\\u001c�IF\\u0016G�2��\\u0018}%u�\\u0007�Kpqq#�\\\\�g>�!\\\\\\\"�F��\\u0017��~D��*\\u0015G\\u0004�8���Sچ8x��4�&��%c���+�n&ۄk�\\u001e/\\u001b&L9\\u001c�\\\\X��K_�\\u0003Ɂ��Eɏ����\\u0017H�\\u00163啽��M�%�6$9I��\\u0016hdi.7�\\u0007r.�\\u0001�\\u001dE\\u0015��<X�b�\\u0016�\\u001a�mXkޫÛ�\\u0018G\\u001ah�Yq3\\u0006�Ѝ\\u0003vo�Bd�L��\\u0017����̳��F7EԵ�\\u001fPb����%r\\\\\\\"q\\\\\\\"���\\u0016�\\u001d���g�Ǜ��\\u0019�~�6\\u0007`�.�m֬0ȭ\\u000e.,���(�H����J�$�\\u0006U_'�x�\\u0011\\u0019$��5��Y\\u0002\\u0001���LY3<�ȽH�\\u0000�+�ב�N�8�͙�R|L��َ�6\\u0017��j�.PG\\u0004����G(\\u0019H�4��T��2�\\u0001\\u000e8\\\\\\\"]�Τ�$�\\\\\\\"�K�O\\fL��M=ڂ\\u000fSz\\u001b�= �d�������Us�����\\\\�!6-�����-��\\u0018���\\u0012\\u0012K��oR;�\\u0019��g�\\u0014.#�\\u0016�K�\\u0016?v�\\b���U��$ؑ�\\u001d�c���U;V��\\u0015!�\\u001e\\t�Z<��C\\n�\\u00016�\\u0016�}-�X:\\u0002Di�9��ɒ�,�Ɉ\\u0005;��'mi�\\t��<�$n�P�M�7�N�\\u000e��\\u0019�����ܪ��V�Z�\\u0000�K�\\u001f�Ǘ\\u001d�L��\\f�b�U6�,��smi��-�p\\u0011E��f�4�#\\u000b��׸�*]p�m�R�bɍ�n�r<.��\\u0004�G�\\u0015g\\u001f>\\u001b�y�w\\u0012�,,�@��eQ�'f�S߯ʳ�\\u001b��K\\u0016<\\u00043;\\u0015�BY�\\u0001��\\u0000�\\u0017�%hc� RL�]�؇{�@=(�e�\\u0016\\u0013���\\u0018\\r�I�q�j���2f'��M�x���\\u000e��E�q�\\u0011���8p\\u0004/�ˌ��\\u0004&�\\u000fk\\u0010�/]dpܮ$K7�g�\\u0004;\\u000e�q��������6F\\u001c+#\\u0016i\\u0018:\\r�\\u000bn�h��k٣�+\\r��v\\u0012H��m`{�*\\u0007\\f:\\b6μ�(\\u001a�b�GU���m`���u\\u0006����a��2s��g�\\u0010�\\\\\\\"ْ�6f\\u0004��j���`O���D���\\u0012�o���/aM���b�\\u000eLJA�\\n�4ܷ�Iy(\\\\\\\"�)�#t>�\\u0005�/�ZXib�4�Q��v4\\u0001�.Eӑ���hZ�*UӪT�R�J�*T�R�J�*T�R�J�*T�R�Jg�uwr��W#�\\u0000�ֻsF��\\u0012�t�.\\u000eS��E��c`H�\\u001d��+l���!Jݑ��������:G\\u001a�����x�\\nG�\\u001a�\\u0010�9�\\f�U-\\u0011�����Z��X�\\u000eLf8��a\\fV�u\\u0016#^�\\u0004�����\\u0010!Z���\\nmWo�i�dR�h�\\u0003m=\\r\\u0012\\u0015���2v�TO��\\u001ci����\\u001f��\\u0011�U�Q�^�\\u000e�F^\\b�U��m;7[\\u0015����O�\\u001d�\\u0015��O{��\\u001f*S#F5(P���z�VL�\\u001c\\u0000�\\u0016��5��\\u0000S�b�\\u000f�r=�\\u0002Dn\\u0014�&>�LҬs�߰�\\b:�\\u0015�ƙgĂp6�\\u00045�W��d\\u0004*�(܍w�\\u0015����\\u00041�mD\\u0016S{��5e�\\u0001�\\rt��n4��\\u00067\\u001eҗ\\u0002���\\u0011����˗!F\\u0011�;\\u001b{����ڳ-�9]1�\\u0016�f��:\\u0012-�j�<�M\\u0006(-�_�:l?��\\\\��c��*\\u000b�t\\u0003�?��\\u0015�$\\u0018\\u0013ʱc|\\nˍP�c�!�H�-\\u0003\\u0004H\\u0002�Mv\\u0012n4\\u0015~\\u0012��\\u000e:�����:k�1�X�\\u000b\\u0016�\\u0015\\u0018�_�F�5����O��x�\\u0001L��U�OZ\\u0013<i8��@�\\u0007I�_��y�Y�a\\u0014wR�3*\\u0006\\u0001\\\\\\u001bk��x\\u0018+�\\u0003\\r�Gm��t\\u0004\\u001bXz�g;�2\\u001a\\u0014ǳ�\\u000f�ӡ���|\\u0016�VR\\u0006�h\\\\\\\"碨q�7������{;,�\\u001cz����2��I\\u0015\\u0011�.�\\u0016#P����n\\\\\\\"y�ZH��Lv\\u0012��\\\\i�\\u0007v\\f�\\u0015I\\u0001�ĒYM�B�r��+���%\\u0016�����*�5�MSI\\u00114^?���\\u001b�$z�\\u0001\\u0004?N�hV��=ϭ��s�Ik����H\\u001amQ{\\u001eԒ>ig��.F\\u0019%����\\u0003�m\\u0005<�\\u00174'�u��߉�\\u0001=H��>B�6�k\\u0015��N\\f;EҲ\\u0004й�0M\\tTf�#\\u0002��,z\\u000f��/!\\u000eN.0C�\\u0015E�&��/��/Z��|6�7�\\u0012�\\r����\\u0000�\\u001bkn�ל�\\u0018� �Ȍʒ�w)�o�\\u001d\\rP:I�R��<��%\\u0015��?M�\\u001e.Q\\u0017\\u0015\\u0014ઃ\\u001d�]�܂{�U\\u001c<ؑ�b�]���/h\\u001e�ӚI\\u0012\\fdŌ8I-��\\n���=(Y����\\u0013\\\\\\\"�~�\\u000e�Gcz�H��=�W�\\u0017\\u001eVkV�V������L0�q�S\\f��$��\\u0007�p_���Y��g�Gsr��\\t�A:Z��-.+�P6\\r�or\\u000f�\\t�V\\\\R�\\trM�u\\u0014\\u00190��\\u0013��T\\r\\u0005O\\u00071ŕ���e9�L���#b\\u000f-��8���)&C�ru(m�'�z\\u000f����\\\\\\\"d�ߏ!���p\\u0000o��zy����n�؂�}I�r[�Ȉ�\\u0003�$\\u0016y��\\u000f\\u0018�b>B�\\u0010�=��ټ��決\\u0019���\\u0002���q!���ER��\\u00002��m�\\u001b\\u0013�\\u0000P�M�8�<\\u001eR�F<� i@Ԇ\\u0016�\\u001f�E\\u0002l߅]\\u001c����#�D���{Z�\\u0000�[|���b��\\\\�K�K�O�\\u0013Kr0�ɏl���\\u001d��#��\\u000b�1A�17b�RdDt:)6\\u0006�r8rE+�\\u0015v�\\u0005��?:\\u0011�\\\\\\\"�\\u0012�\\u0018���7*�4V\\u0001��Cp.é���33\\u0015f8�S\\u0000\\u001c�.\\u0000�+�7�,2B�\\u001du��\\u000fΪLLSȲ�4q�a|�F�ڋ��16\\u0013ϕi�\\u0015|�&IM@m�5�x�x��\\\\\\\"ǌ\\t\\u0001�C0�J�\\r�y����l\\b�erǮ��\\u0002z�\\u0006\\u0000\\u001b�\\u001a]�e�Hb\\u000f��ֵYh��l\\u0018��\\u001c�*������X\\u000f_�\\n�\\\\\\\"?3S2e|���\\u0018.3n�/��� �y��\\u001d��\\b���V'3�Ή12#�K����{\\u0002.:iL\\u0003�C�^\\u0019\\u001da#�b��O��\\u000f���T\\u0002�l\\b�/La\\u0007R\\u000e՛�kX\\\\\\\"�w\\u0016X�\\u0011\\u001c*�?��(����6�^֥X�x��C$�Xn^��Zy����dE�%\\u0010C&�K\\u0016;T\\u0003aө�y.%�l��l��\\u000e�Dr-`n6ؓ�P�Q;�Է�w,\\u001e�\\u0011\\u001c\\u0000���I\\u000f\\u000e��\\u0010Y\\u001a\\u0011\\u001c�O��\\r�ⱹ��䄋��!�km{֞ \\u001f\\u001d\\u0016@K��r��\\u0000�����L�<`\\u0010�7��{T+�Ï:ˇ̂��IX�f��`C\\u0014�C�?�ꬖ\\u001b���n�Q�ȆpT\\t5��k����i�%\\u0012��X\\u0002�@�o�\\u001aڈ�R9d�Y���\\u000e�����\\u000fz��ka�\\n�9�\\\\���:iC����{\\u0014�B\\u001aRX���\\u0003M1\\u0017ŏ\\u0014k`\\u0015\\u0007�t�W�\\\\\\\"��7\\u0000��\\u001f�>�N$8�\\u0004p�!UG{����DbI�QXr���R\\f\\u0006�z�\\u0015^\\u00141e̲2\\t6\\u0002�t���0�4�*���\\u000e/�~��q�!\\u0000H��������\\u0000�T*���Xw\\u000f\\u0016IbP\\u001b\\u0014$�R�@�\\fg֋\\u001b\\u000f�\\u0006X6 S�m2~��yy�0���$)%��qS���1����B�� �\\u001d�5�0P׷ʑgp\\u0013�rqI\\u0015��v\\u0012os�i\\u0006��i�Bd�$�\\\\\\\"oeB@����\\u0000*�\\u0017\\b:[ʛ�La,n�x\\u000b�<I��H�Yp��<�H���]�scT�\\r\\u001et\\n�o���ƥ\\r�\\u0000�_�E3�!��Â9��>5!���0\\r{��\\u0016\\u0016@L����6\\u001cr���W\\ra{�\\u0016�D\\u0004�#�:\\t͏\\u000er�.e ���܈�k��;-�I��ZX�\\u0018܀\\u0001k\\\\�������!�}�w��{����z~3��C��q�m�T\\u0012��\\u0013��K�1`��\\u0010ZT�\\u0015a�n��7\\u001d�h�ԋ�� �`�2>LY2&<h�\\u000f���\\u0017���\\u001c�\\f��\\\\{�\\r��\\r5뷽{��H�\\u0006[�2�\\u0018�^�}:�j*�R|\\fxC��>����P/z���\\u001cU0�\\n���\\u000b�럧�i>.{���\\u0005\\u0000�G�t��x,<n�\\u0000���|����\\u001e_]�L�[�\\u001cg�\\u0010\\u000f\\\\\\\"��^�\\u0000֙��`bF�ɐR9���\\u0003\\u0003��\\u001d�,9rL�edG��\\u00180\\u0003A�\\r����\\u0000 �����i\\u0002�c��\\u000e��@VS�A�<\\u0019r4��c\\u001f����:�YK\\u0000&\\u0018�0G\\nQ�g,�2A0a*ٽ�m$\\u001b�V�#�0�(�\\u0010�YA[\\u0000A\\u0004w��#�\\u0000\\u0017�����\\u0002i�Y��J\\u0003\\u0012-�U�\\u001aF0s\\u0017�#���\\u0016o��\\u001b�����A\\u001d�I�t bLP\\u001aΠ�\\u0019\\u0000]�\\u0006��\\u0019�4 l�ר����9�%\\u0018�!\\u0016t��n�@��[z\\u0001�R\\u0018�̧O�2\\u0012��YN�\\u000e���#\\u0011�db6䙕v���u`}:�s)Lm�届�2��\\rY\\u0006��b���x#L+��w�\\u0007�kG�ˇ��\\u0004ja6\\u000f\\b������q\\u0019\\u0016d�d`�$��t��L��83I\\u0011�d*�n:���\\u000e�\\n<LYU�q�+���w��ɐ�\\r������\\u0015\\u001bq�)'�Z8�\\u0002�f�@\\u001b�\\u0003��\\u001b\\b|ѕ\\f\\u0019��Zۖ��!Ç`7(\\tbn�:��^��\\u0011>S�2�l\\u0012\\u0011\\u0019sk����� \\u0001A�V��=L.-��\\u001ag�rqͷ\\u001d\\u001bt�]��p1�\\r��\\u0010�\\u0004�ı�e��\\u0013k^���H��Q(H�c8x����8�~Z\\u001c7ǉ�R�V5@\\u0019���?\\u001a�Ŏ�yS\\u001b�x��Zl\\n@`r6�:��Ӌ�#�\\u0005Ɍ��ܫs���>\\u0014��\\u0016(NU��d�x\\u0015D��J+�Z��K��i\\u0013r��!��\\t\\u0014h�,�{[�\\u001b\\u001c�2���I!x�U$�sfm��ڄ\\u0012Z�5��&!�\\u001d�\\n�n�\\u001a�q�r\\u001f+3%�\\u0018Ȉ�nm�\\u000bn��1�\\u0006gD�� ݣR\\u0016�z\\u0011�z5[\\u0019s�idک\\n�WRZ�/�J�\\u0016\\b��D\\u0002���\\u0007Ǝ'M��-|я��Ƅ��F�#�<�S>G\\u0017����cñ'B��p�\\u0017Ku�zM����e� ���,\\u0000�\\u0014�'/:`���~ً^1�\\u0015��\\u001fR�[S?9�4A7ZĐ�_�ք\\u001d\\b�\\u001fJ����\\u0018Vk�\\u0000Ԯ����ٜ>7�D\\u0012���\\u0016c\\u0019k\\u0006'V\\u0002ڋ��!�\\u001f3��Lb\\u000f���O��M�*7\\u0007���8�i\\u0016<�S\\u0011BlA�\\u0007�ũ2�\\u0017��8���e`�M�(ݸu� �\\u0003h�֋���r�e]�#]j��}i�;�t\\t`��%�Y�OUcb��ʇ�p��\\r�EUdt \\u000e�A���2%�t\\u0013;��k�].��;�\\u001aU|�L�q�\\u0000ʊm���[�\\\\\\\"��`\\u001au�cj<^k�EĪ��ɠa\\f��\\u0006�\\u0019�>�F�\\u0019\\u0014맭S\\u0004�\\u0019\\u0006Gx¾틮��\\u0018x��\\u0016\\u0016gb�T��Z�S\\b�ܢ\\u0005ر-�����ғ�P,�]w����W;�UVb��\\u0013\\u0002~�,x�dË�\\u001b\\u0005�\\u001fy�nB��|����� �\\u001b5.���\\u0018���u��Z����\\u0015!\\n0dq���\\\\\\\"���K\\fי��H�\\u0003��\\u0002i������[�\\\\\\\"���̈́±�\\u0019;���,}i~~~>F;G�>N�I\\u001a\\u0011Dq�kA�&ޖ}���\\u001fwk�\\n�8�|G�ǹ�&;}D[��\\u0007\\u0013��\\u0013p�f��ч�:���kn�8��Đ�\\tns�j�<��Z�!�\\u0018+�\\u0000�\\u0015�\\\\q��4P�C)*\\u001d\\r��\\u0004�N��1Ʌ\\u0010AǕ-�\\u0005���F�J�Ă\\u000eIUc��Tm�Bt5�'�./2����AVR���\\u0016�_�\\\\\\\"��4�\\u0000t}E)��@D\\u0013�\\u0006\\u0001�4ksHPMz�\\u0019\\n\\u0004���@c�v\\u0014fvL��?ۂ�\\u001bB���\\u0013��Үk��8&\\u0012�<���\\u0016Q�\\u0002}*�\\\\�>�a]ʅ\\u0002���\\u0001�zart\\u001c��p��\\\\\\\"�3cɔ�l\\\\\\u0002@�,8�jK�ܦ\\u0016I|Fh�@C3\\r-����>��͓)S-�S4FUe]�\\u0010ڋ|�sƈ�q\\u0018ʻ<��\\u0016���!t\\u0007KW�K���\\u001a&���[�\\u0000ik��\\u0000�.M��%��A�g�j�fWLO�a���\\u0016N;u׎����\\u0006s���O#\\u0010�F�f]��u��~5��~~L�H�(`\\u0014��\\u0001�\\u001f\\n�p\\u000eg'\\u000eLb�\\u001f��t��v���9�\\u00116�>�t���h\\\\\\\"\\u000bn7��\\u001el�-\\\\,2�qjYa�O\\t�W\\u001f#���\\nLo\\\\\\\"B�\\u0015�p,�@���Vp��ƒr����Ѩ$�\\u0013���셎p��UF���\\u0015�\\u0017��+ͨ�+H���@Oմh(U@ch��K��-�M�nA�\\u000f�\\u0005\\u0004Ny��/�\\b�ݍ���\\u0000\\n�㲥�E�\\\\�����ͽ�\\u001a0����~\\\\\\u0003\\\\\\\"��\\u0011�}��ޤ��Y��G�-o1\\u0016U\\u001d�z��^�z �G�\\u0007zї�+#\\n�љ\\u001do��2>4�Llؕ�\\u001b*��{�k�WG\\u0012A�\\b���[\\u0003kh4��T�FFR�\\u0013�\\u0001�\\\\��\\u0000��j���ƅ��Xż�ۻ����\\u001b�\\u001bM��\\n�6:��\\u001eE\\f\\u000b�\\u0012\\\\\\\"$A5�ce�\\u0012g��R.��}o@M\\u0017�n^;�L��%I;��@7�+�D��d͕�\\u0004\\b�һ{��Z�� �-%�o2����n[�Um5�r\\u0011\\f���\\u0000�O��i�j�we\\b'��>[\\u000b��WC8�Q\\u00118�\\r\\u0004�}��n;v�V�\\u0007\\r\\u0014���b��:��=�\\\\��<�\\\\\\\"��1���ۅ��lߕ�����ľ�\\u0011}�^�LH\\u0001���r�VQ��@�HC��n-��ǅ\\u0015����a�̻ɸ�E�m7U��\\t��p�n\\u0000�A7\\u001dM��\\u0001�rQ����\\u0010����URz)�J�$y���\\r����΂���u\\u001d�� ��[�V�}9���YNF\\r�n\\u0005ӷ�h]a�\\u0000M8Yp��ZL�y\\\\\\\"�M�\\u001cd(�/~�\\u0007Ɩs�XH[#��Б��v����6��y�d�y\\n�$fi\\\\���b-��Ru�~U��g*�˚^\\\\\\\"\\b[i�\\u0000�}-VYA%�n\\u0014�\\u0010\\u000b\\u0012\\n�oMt�QL1���\\u0011�n��V\\u0016skziS\\u001eid,�\\u0017k?���:����pd>\\\\��D�cKn{��;���\\u0019\\u001c�^\\u000eK��\\u0003\\u0007rl�\\u001fmY\\u0000�rJ�\\u001aB�����c9m,\\u0003p\\u0013���l~G�Ēu�\\t\\u001e+��T�Ջ\\u000b�h\\u001doJ�|^~`\\\\x\\u0016%��+!�\\u0000�n-�p:�g\\\\\\\"'�8��;���-�^C��t�C�\\u0012b�\\u0018�b��\\u0011��\\u0015ۨ%�¦����\\u0004!YttWd7t6���i��r&\\u0014�3\\u001d���\\u001b�\\u0000�-Έ7�dJ�\\u0004I� \\u00023��&�j�^\\\\��\\\\\\\"\\u0016\\u0007�!�r�\\u0010���q�����hF�h��q`O��Q��\\b+��S\\blA2�\\u001doe!�,�������\\u001f�\\u001bC.�_�u���6Tel�E\\u0011��6�������\\\\\\\\�\\u001ej��'�]�$HB\\r�t%���y��E��\\u001b�oq�\\u001b�B4��\\u0001\\u001dWH�1��\\n�L6#�\\u0012\\u0002�����ڍnX��B�8�b\\u0005tu1����m��\\u0013F���Ƙ��wD�'�\\u0006��;�=)\\u0002C\\u0014�c�Ǔ�̡~d�����ǅ$M�x�\\u0018�-�\\u000e��[҅�FU\\u0004\\u001b��N�Y��'\\u000b\\u001c�����t\\u0019�E\\u00134yn/2_<��B�ڱ>�Oį��d��4m�I�A\\u0018\\n\\u00120I����ks¯'\\\\\\\"B�1�U�-��Gkz�7�3�B_���m�M�[{mWh�Ѭ\\u00014�\\u0013>G��[���*N�\\u0019�jT�U]\\n�*T�R�J�*T�R�J�*T�R�J�*T�R�k�ˏ�y���\\u0010ڀtb\\u0000\\u001aVH\\u0002M���\\u0015��\\\\\\\"N%�L\\u0018(M�\\u001e�H�z4٣�`��V\\u0005�\\r�\\u000f�Ipb,FḞ��`�������\\u0007�\\u0000{k�\\u0005\\rƺ\\u0012H`X\\u0002\\u0000�O�0����ȱo\\u0012�\\u001f���5?�5CjVY9\\u0019I�8�V|��d�� �Am\\bc�\\u0004|\\u0005U�E)��P\\u000bH��\\r\\u0001$k�h����\\u001e�Pu�ۛ-{>+I`�kh\\u001c�\\u0001\\u0007�\\u000ed'\\u0019�J�\\n�o+\\u001e/=/�\\u00130l.H�[O֓���,���+'s��Gjc��\\u0019�R.^�S����W#\\u0012h�.��6�\\u0010ȫ}}���8X��H�#nB�\\u0002\\u0015n��%E/\\u001eB\\u0014,uF��j����F9<�u��?m��b\\u0016�\\u0006�D��i�FK��cF\\u0015q͊�n�Cv���1�C�\\\\��\\u0013jj�\\u0010�xǕ}����]>��\\t���R���зO�?\\u001f��:�n��\\b����x�d\\t\\u0011��@.\\u0000�\\u0000�_�W\\fS�%�of���\\u0000[�p���[o��\\u000f!\\u0003A�|m1V���\\u0012�\\u001d�\\u0003��\\u0017��P�\\u001f�}8�1I\\u0000˜!�ή�k\\u000fq��1�\\u001a�W��ݛKY���k9�G\\u000f\\u001f�\\u001eV\\u001c�r�\\\\\\\"U������}(�?��+\\f�ņ\\\\ \\u0012\\r��\\u000fԟ�*�j4�e�rX�T9\\u0006�`�\\u000e�i�*mrH�\\u0018rw]�\\u0000&����\\u00176d��l\\u0005\\n�@\\bc}6���+��q�W�%&\\u0014,B\\u000f%�:\\r�6\\u0006�+<x�2&{��#��X\\u000f�@5��\\u0002#\\f�*oV�\\u001b�\\u000f�Jɼ>4��������C�\\b@�q���\\u0000V��\\u0000�ޒȩ,\\u0005��1�?���\\fחBv�I\\u001b�cڨ��+�rt�fAۍn�q#���@\\u0001yv��\\u0000�S�h\\u001eUe���x�\\u0000$2\\u001d���=�?���ė\\\\\\\"i\\u0016���\\u0001�\\u001b������Yx�c$\\u0005D�RB�\\u001b+}V�z��5��\\\\\\\"���r�\\r��X��^NEBӰ�cu�܎�ۭ4�3g��yr_���\\t\\u001d�\\u001e�6_\\u001c�e�\\u0012�� ��`GP/�W��ȯ<Id�v7K��?�*�P0�\\\\=5�>O������k��������T\\u0016\\u001eE6��\\u0012-A`��\\n\\u0015��I>�����M\\u0001��-\\b�\\u001c�I�c\\u0007���׵\\u0015�\\u0018\\u0002\\t'�d��\\u0019t\\b�o�Νp���Y��?�X���CQҢJ�\\u0014ܟp\\u001d�1����aĐ�H�\\u0018�\\u0000�\\f��a�\\r?�q���\\\\�\\u0004rB<m}\\\\۵��j�(�9\\u00025�R��7`G�����=}&��̆ir\\\\\\\"F�q�F#�[���|��:I\\u0002�iЋ�Ԥ��\\n��\\u0012<�I\\u0017��!��V\\u0004��u\\u001f�D���� ��4�N��&�r\\u0006c��/7��\\u0014�L��R\\u0010\\r����hy��\\u0015��G�������\\u0011��d[���\\u001f�\\u0013,I�\\u00197�\\u000eW{)Е���\\\\\\\"�u�>H��=�\\u0010~������qi$�hn�\\u0005�0\\\\\\\"xoI�\\u001e��\\u00024?ҙq��ġԲ��\\u0016�����x��.�\\u0014\\u0013\\u0019�m\\u000fǯqG`\\u0019̯�\\n��o\\rاӯ��\\u0002kεfv`U\\u0007V�qҧ\\u001eT\\u0016�-\\u0007{\\u001b����y\\u0019drHk�\\u0014\\u0015��J��O�\\u001c�)Dj\\u001a�K�YG{�j�Dq�\\u0004��\\u0000�捔0\\u0013J����\\u0004�@��0��LEl�\\u0012L}��\\u0003؞��m�r��<�aܱ�[�\\rߨ��\\u0014q�\\\\\\\"��s\\u001d���\\t\\u0016\\u0004\\u0003�\\u000f�(�e�,k\\u0011 ȶw�lt\\u0017�R��ȩ\\u001d$]>���h��vX,]`h\\u0017m~�[X�^/.\\u0019�����\\u0018ARK����\\nt��2cq\\u001ez��1�e��r�\\u0015|�x\\u001cL\\u0013lV�1\\u0019IY��N��|M�\\u0000\\n�\\u0005b�\\u0013\\u001c�z��\\u000f�+�\\u001c_<5��\\u0019\\u000e\\u0006Sa\\b?'�Y�}k�\\u001eG\\u000f5YD�<���$\\u0010\\u000f��\\u00010ʃ*F\\f%�śo鶽)>g\\u0012S7Ì�;�\\u0004\\u0013n�\\u001bՃ?ō&<���U�7��C|���j�\\u001f����a*��\\u000b\\\\A����I�ܙ�\\\\\\\"U\\u000f�Q#V�*��\\u001f��d��cL�b\\u0005ɴ��t�֖�\\u0000\\u0018�\\u001b��s��Ƿ\\u001f/n逹]���\\u0015�QL[����˟\\r�FX�-p�Z۬{Q^�� k�UyxUW���\\u0010\\u0000�\\u001f}.�d\\f\\u001a`wJ�cU����\\f�8\\u0000�Q\\u001bB����\\u0005��)\\u001b�1�A\\u0018�C\\t\\u0002�GJ�r���Y\\u0016�ː�\\u0005�\\t\\u0016��]�<�|��a\\\\^\\u000f0�A�)@�_3+r)\\u0018(\\b�ѝ���*��\\u001a\\u001eN<�۔\\u0015�\\u0017RF�i�!vńA/�А�z��v\\u000b�M� �\\fP�\\u0006�\\u0017�A��:2M�Q�4ÅR�B*\\u0015�����L���ːD�c\\u0002�7\\u001dX�\\u0014�'\\u0011b�I �M���N��򤼧�@�����\\\\\\\"dd�\\u000e�K_���gR�4\\u0001Pu�����,�\\u0013\\u001a��I\\\\\\u0018_��\\u0000�Wc\\t�}+��W\\u001f\\u001f�Ě\\u00041�HJ�/p��]���T�\\u0000\\u001f�L���%�#2L[PnZ�>�ӭ\\u0015��8�g\\u001d��#EU.��F�}}j`c�b��G/�\\u0002n��n\\u000fk7�u���,��:�֬�V J^\\u0018�$�u\\u001feP�\\u00071i�k@\\u001c0:1Vں|(�2S\\u0012W�yI߲8���m\\u0003�hl䁲S.)\\n�`��\\u0006��_�i~v[(�\\tU�\\f\\u000f�U�\\u0002DI5�p�|�,�Yi\\u0004F�Q��N��\\\\l92&c*�r���1���k3��G�ϑ5䑛j��\\u0010\\u0001��A�\\u0014Y0x�$�\\u001a-���T\\u001e<X�.����\\u001f���TQ�\\u0002�#VQ��R�\\r�#*��!�1�\\u0013�\\u0012��:_*���s�\\u0013�>�5\\\\�&n?�f��/�9\\u0016�.��CڜqRp�r�G1!�K!�X�tq�Ιs�˅9R\\u00121\\u0000X��\\u0002�P-�*�Ԏ#�X�\\u001f\\u000fl�l����n�|\\u0014q�#6B��m�[��^�\\n2,�ɐ��\\u0014j����\\n�4�mg\\u0005�X�'���=F��r\\u0012����\\u0004����\\u0005$����f��\\u00162�Ci�_mn�ï�L�*6�G�%\\u0015Q��ƣ_M\\u000e�>4\\u0013�ʙ�7ܥ�\\u0007�`����ӥ,�\\u001f5��\\u0004�fϴ{}l\\r2��\\u0002I,� ���\\t�m?�;�U��)\\u000eIV�]�g��7x�\\u0017*\\u000bf�b[A>���˄bY�&k��~�\\u0000���Y�ff�\\bF�F6k\\u000b_�\\u001au�4|���ma\\fNei:]�YSO[М�<\\u0011`;��%�T��\\u000fo©1cT=�r\\u000e3�՟'.L�O��3Ͱ\\u0012 N��L,S�4\\u001e0Sb��D&�q�.��1�7b�Ak\\u0000�R����3ZE�+��U$\\u0013qb\\u0001��3�Ɋ\\u0005��aY/b�u�{�\\u001e�@B-ہY��\\u001b�v��\\u000b������c\\u001c>SÑ(&X�\\u0004�Л��\\u001a�qk,9\\u0005]@7(�tk��@\\u0003�H��P6b�h:0�\\u0017�a��\\u001e�ՙ\\u001c���0��\\\\\\\"f�\\u0019�{�۲���`���[\\u001f�����\\u0000�,ڹ:i=B8z�M�x�\\u0013\\u0010P�����ǥ��\\u0013��<V0ň3�\\u001b䑬\\u0014�����¸���G�\\u0018��ZV~�\\u000b�\\u001d�|y�\\u0019�\\b\\u0011\\u0015�\\u0019\\u00180]-q�ͻV���B��GS[���xO�\\u0014��\\u0006\\u0003|7@,x\\u0011ʉ^=\\u0017��\\n�\\u0000U�Ĭ\\u001c4��\\u001f�r훇�C\\u000e<���G\\u000e�t�5o����$?��>W\\u000b\\u0007���@]��\\u0000�Y���1��\\u0019@JUˈ�z��N�۵\\u0014�y�n�H���8\\t�\\u0014��FT�/P�eA�ǩ�\\\\\\\"���O9f\\u0006?�y�]�i�XXɏ\\u001eT�٬�V\\r�v��\\u0016�� �~����\\n!!�\\r\\u0015���\\u0000*3��ˇ(C2F�*&���ap7�>6��i\\fV�㫅O�X�ߏ'�q�v��\\t�eMA\\u001f�T�ì؊�ڵ�1�\\u001b����]��\\u001cJ�/�X�s��u��ry\\f�X�V\\u0005�Lr,`��(E��@I�\\u0003�d�\\u001f�'�\\u000b��oaq�ƌ�\\u0002T\\u0000YxR���_\\u0017s#ُ)�8��~�n\\u0014o/ ��a��U&券������x�||X����� �Ǹ��(�-�+%\\u000f-��6;@BH��\\\\����~4��=�r(��Ԉ�0l\\t=�z��j6\\u0016Y�Ac�j�%�����\\u0012��\\u0007+��\\u000b�V���K#�9!\\u0004���(K�/�5\\n\\u000fN�\\u0003�O�6-����p��G�GC�6O\\u0013\\u000ej�)$��'\\u001bMլ�z�~��YL���?^Uy|G�۽\\n�,8,�CI}9ɡ���s�\\u0004q�\\u000b\\u0019i\\u0019��$\\u0001��\\u0011�\\f�ż��Pl]��#�����t��� T�\\u001bBc�d ��n���\\u0014��\\u001b4/&/�^h�v:FC2\\u001fK��\\u0002\\u0006�֔����nVK*�\\u001b}y�r��\\u0005Xf\\u0003M�\\u000bp:���7-�\\u0015\\u001ce�D@m��FD\\u000eI����1��^\\u0013'\\u0015%őZd\\u0003j\\u0005*�?�鵅/��2�����cf%\\u0001ڨ�[�}*\\u0000\\u0018\\ru��M��\\\\��`�YA'��z�\\u000f\\u0016I&2DەP�����O�p�Y|e�\\u0012Zi\\t�\\u000e��n=oEC\\u0016D�y�W�\\u0010\\u0014�n\\u0007��2�,a�\\u001b/\\u0016H^\\u0016O$��\\u0015�{w[��Y&�a\\u0001D)��˔�\\u001cc\\u000bݗ\\u0013\\u001cy\\u0010\\rJ\\u000f���X����p )�k�ꏱ�>NR\\u0012񲍬K�rޕ�#)XZx~��@\\u0006�^��W��c�y�r�V0#p\\u0019����P��l�,\\u0006M�d��q��>,����̶-�)@��𪠒\\u0006w�\\u001d\\u000b���]�Wa�0\\u001e��~w\\u0005\\u0006fV\\u0011Vlyrͷؕ`\\u0007P=}(>\\u001b\\u000f�\\u0010M2����+���Zu�gǗ\\fxELY�*K-����\\u0005[w?\\u000e�Wɶ'Zjx;\\u0017DƢ��\\\\\\\"��hS��ǟ\\u0010ݤ�m���-Ԛ��\\f���/\\u0015�վ�F\\u001a��ԋ��#\\t�0�N�6=/��i�&\\u0013\\u001a\\bԠ�\\f�X�I+�\\u001b�\\u001f\\u000bSWPL\\u001d7�g\\rv\\\\\\\"�?v�D\\u001b0�ޅ��C��\\u0019��'�GKGk���{U��U��8�m�\\u0015�:\\u000e�^��Nc��$Ǜ��fleщ\\u0000\\u0010E��E[��\\u0006~\\u0006��w�b>�ek\\u0012GU\\\\\\\"��2\\u0003�D]A��\\t�1`\\u0001\\u0007qY�\\u0017��@f�e+�<izeI�ɺcy&��\\u0007gҠ��렣\\f�� W�����oӦ����0r�Uز�\\u0017l�\\u0005c�{���Cdf�\\u0013��\\u0016T[r[t1\\u0016S\\u001e�@=zڪ�n�)�~�&���ƶ\\u000bE���0P8��\\u0017\\u001c2��f\\u001b�Ig�ŏ�\\\\\\\"��\\t�7����\\u0007P��\\u001f\\n�\\u0007��ƝZi\\u0004�ASbH]4�ja���1\\u000eી\\u0003:�M�j�4\\u0011l�A��Kl�\\u0011���Ǖ\\n݈|uⴓ5\\\\�\\u0011�T�\\u001f\\u001fΊ�q��\\u0003,�]'�),r^��ɧP�j(L\\u0004���Qr�RDn��m��Ft4�<\\f\\f�FTL�\\u001a#�{��%��� �Z\\\\\\\"NܫO��ݔ�,�\\n��\\u00001�\\u0006Ǎ(���\\u001fsJ�F`ʋf\\b�\\u0017h�����gάr<�?�K\\u00105>��h�\\u0019�ј����d^�U�c�U�V7\\n���b����2�ѱU�름��\\u0010m���������\\u0016ҝ3�zyZޕ��q�G�����2�������H�sF3�^3$���c����\\n��ظ�t�$��G�\\u001c�YUO�S�S\\\\>\\n�:ge\\u001d�<1��.�܍�z�jZK-�\\b#�kLÕ�7vv.�@f���4�!�XS3\\\\\\\"\\u001f\\u00111\\\\+��\\u0018��\\\\�ҽ�L>C��\\u001c�_��-\\u0004q�B�\\\\��(l���8�r��q���\\u001f�K#H��o�z\\u0003�Γ\\u0005�\\\\H^\\u0010���X�4\\u0001M���אz��\\u00108��0�}�Bw�V�>M\\nA2�N�F\\u0014�zm�FXd����\\u0014\\u0012\\u0007�R��ӑ�l�IBĄ!bI�/u_O�ۍ9QyL���/a��/n���\\u000e7��t�B��YT�}\\u0006�(\\u0011ԋA\\u0004�ʙ�\\u0018�[�K�9�#m��\\u0015�!�� �\\u0013*'p\\b�Ib����Gmj���NN|\\u0018qq�\\u0013,�o��Jw\\u0016[ޘc��`��[\\\\\\\"�B\\u0001����ңϓ\\u0006RG$`+Gp\\u0007]�مX܃<\\u000e��^\\u0013\\u001a\\u0015U/\\u000e�<A]$\\u000e5W7��A���.�=���au\\u0002�g\\u001d�p�\\u001c,q643�F��+�\\t�5���\\n%y|�$��1��\\u0014J\\u001aGd���67[���k6@�l�x���\\u0019S7��o�.�w�Qj��(��\\u0005=Kѐ��\\u0018\\u001f�Ν<b��~K6���o�c�6��w�2�NF<o\\u0019��ۘ�����^��#~2l��M�I\\\\\\\"����M������\\\\�\\u0000\\\\\\\"�\\u000eD9���!����� �|m@C�����\\u001a+�a�d�\\u001cR\\n�V$���v��\\u0010�����E2?�X\\u0013��{�\\r�,���\\u000e0O���;H��G��CA\\u001c�I\\u0006S+\\u001cu7�c���׽\\u0017���e���_\\u0016��4�a{\\u001d���:�\\u0010\\u000e�`\\u001c\\u0005(!9�E�3\\u0011���J�\\\\xO��L�����\\u0014�S&�\\u001a�7�[�d����\\u0012l���@\\u001a���u���d\\\\'�\\\\�#%C�RH\\u0006�\\u0010o~���P�,\\u0003o6\\u001b�[��C \\u00014�\\u000e\\u001f#f��T�͠��hj�*P�B�J�*T�R�J�*T�R�J�*T�R�J�*T��\\u0000ǣn3?\\u0017?*\\u0015�7,�7\\u001e���\\u001dA��w��Ä�\\u000f�\\u001ca��S\\u001a�A\\f;�t��.Eq�Gᐝ�Z��\\u0007�j>i\\u0004�D�\\u0015\\t\\fA���\\rΠ\\u0003`\\u0003\\u0010uҬ\\u0016(�t��D�X22�'\\u0012g8�rX�h�5�\\r\\u000b7\\u001b\\u0004�!Čcƶ��?��5�&,�b2H�]�Q�\\u0015���\\\\�1��\\nO\\u001c�\\\\\\\"\\u0005\\f�M����\\u0001ϚK5��a��4\\u0006��͝��A\\u0003}y�V��\\r�\\u0010<|�� !:MУ��^\\\\\\\"l�m`o��t��U�r}�\\u0014�!\\u001bJ����\\n$!T#@ϴ\\u0015�-q7�9�!��\\r���Rw\\u0013����gc5��ǿ���Ȧx�F����2\\u0006�Y��H�\\u000b��\\u0005\\u001e���\\u0001������ˉd�p�RK��\\u000f��#Þlh��'\\u0011Ȁ2����ֶ\\\\�!��þ\\u001c�\\u001c�,�i�-�\\u0005�_�\\u0002\\u0006k��\\u0007\\u000fJ�y������l�.\\\\\\\"!���+�3��K�\\u0011�+�k�\\u0003�?j\\u001b�wȀ��\\u0013M\\u0019�][�wz�r�a�\\u0016�x�\\u0019Q���;�G�YH�\\u000e�\\u001f\\n\\fh��D\\u0002JʾK���މ\\u0001\\u0004��X3-�\\u00146�[M5_~:����E��\\u0016e!���֮���I�����B�\\u001b�n��zW\\u001e\\u0017b�p��\\u0005\\u0011��\\u0015~���\\u001a\\u001b!�۹%\\u001eV\\u0004�{\\\\\\\"��D@\\\\\\\"\\r+��q�\\u000e�\\\\�x뿭U�Ǐ��:b�.D�\\u001a�z��&�\\u0000\\u0001Kqx\\u00034���\\u0000����\\u0016��颹,��x\\u001a9�L�nA����5�kFA&N\\n#�\\\\�s��YK1\\u001a�׵\\tU\\\\d���޻i��\\u0004�\\u001d�~�\\u0014�\\u0005?�4\\u0012qscʡc\\u0012�!��h\\u001a�\\u001e�3�Ifٚ�L@i��>���=)�%*�V/\\u0018��\\u00022J\\u000f��5��\\u000e8C�\\t�KcN��E`LJ\\u0001crޥ�����N�\\u001aς<��ݗ\\t�+\\u0002g^ �\\u0015�fxݕIP\\u001a�o��\\u0000\\u001c�O4���5\\u0016�}��Ҽ�I�sD�o!��:\\u0015��\\u0000�9�1��ˊ4;��$�����\\u001a\\u00105�\\u0006�� �k\\f�^�^<���(�C\\rE�\\u001f�\\r\\u0018au\\u0007[\\u0012\\u000f����\\\\\\\"\\u0019\\b�J�$�4 �\\u000b-����^�gz�,��\\u0014^#����\\u0016\\b75��V\\u001d�\\u001bP\\u0007;\\u000e|��<^\\u0018�hM~���6�Asyl��\\u0002\\u001b\\u0015�7�\\u001a[�H�\\u0002;m�}������~5�ŀ��X�>�5�\\u001eF\\f�4r+^5\\f�\\u000e�J��+�\\u001e=�C.B�gЧ���­��Lp�X�|7\\u00004a}�~�\\u0001��`\\tፖ=���\\u0005�ۯƬ\\\\\\\"�\\u0018�4\\u0019�\\u0012�\\u0000��\\u0000�w%Z\\u0018\\u001e�́��\\u0014f2`\\u0010��2�p�*�Aov���k?�r8��4X�,0�Gb-s�v�UfN!<�J�-�v\\u0000u\\u0006�DŃ9��F�^Q*\\u000b\\r��\\u000b\\u0016=M�/\\\\\\\"\\u0016{��\\u0003_���f¾)���헅��OY��s��;�1�U\\u0017$��Q\\u0019�3��ț�����W�/��GE2���BH��@�\\r�Uy��\\f����l{��\\\\0�� m���g\\u0012\\u0010�\\u0012����ci\\u001ck?�ᕍ�2D�w����\\u001e���\\fq�,lv-�\\u0000*T�,�QlYŅ�6q,\\u0018�\\u0016y\\u0011>��%Gj<���t����TEŪ�\\\\\\\"�\\u000f���\\u001c\\u000f��M\\u0013���Y�DB��*l/����\\u000b�$S3\\u001d����q\\u00174�IZ2\\u001dN�Sp(z��\\u0005&\\u0017\\u001f�C�ě���\\\\\\\\\\\"�$�Ć\\u0016V�4�wk�����W�<Y!\\u0013\\u0010�~��\\u001d�´�\\u001cT��\\b��\\u001d\\u0011��\\u0006f{w7ӽ(��2��ʌX\\u001b�����z�Uju�=�\\u0001�I�o����z��q��\\\\x\\u000e\\u0012��\\u0004\\u0002qm���u#�bH�˱�da\\u001c�\\u0005���b�~��\\u0015�_�Xc��#����(��_��)?+��\\u0014m��x�����b554�i�\\u0017B*�gG`\\u0015�#0\\f�\\u0000Q�H\\u0003��~o#\\u001b=q10\\\\Ǉ�C!\\u001a\\u0006 m^���\\u0011LlQ#\\u0010é�Cs�ԗ\\u000fu�Ÿg\\u0000����W�f�\\nc�\\u001bF���\\u0001\\u0000���P�F�If�ym�\\u0015?�d��I�-��2\\u000b\\u0014�O9;r��f$\\\\\\\"I\\\\\\\"�$�\\u0017ܣPz��K�\\u001e8\\u001ch�\\b,VE�2�>��?Κ�S+>l\\u0012�⪫E\\u0018��B�:��=����%G��7*\\u0002��ڛ[��љ�\\u0013?�\\u0001��U�Q[\\u0019�\\u0013��!���jU�\\u001b+\\u0013\\u001df�y\\u0001u6�_��D�\\u0005\\fxj��~�F��\\t\\u0001\\u0017(G��\\u0004�f�gJ����l\\u0016������K�`��,\\u0017Ā��F�\\u001aѡ�\\u001a\\u001f!�\\u0012�cq�]b�ӕ'�U�K\\u001e�� �a���B��}�M��\\u001f�Yزg���#\\\\\\\"\\u0019n�N�\\b���\\\\\\\"H\\u0014Om�-�S�.��C\\u0003�i�\\u0011�\\\\\\\".P�\\u0000����x\\u0011r\\f����}��uP\\u0006��1�\\u001el�l\\u0019�V��bhy&Lx��2�P\\tT�i&�o�_Ų^Y�[H�\\u001bۭ���#��\\bWq�a\\n���}+�̳�$&1�F\\u0012k�4��L33�X�\\u0014�:�)\\u0007n�U��7�js�\\u0001����Ω�P@+m�H4/\\r\\u0017�y[\\u001fr�H� ���\\n\\u0001�?>��@\\u001a\\u0018ȉ�ˇ\\u0012�.`��������R\\\\\\\"A�\\u0018f�\\u0010#[���v�q�D\\rtI6���/m\\r��|���\\u0005��\\u0014�}\\u0003\\u001b\\u001b\\u001a]�\\u0019g�ɀ��\\u001d�A��v\\u0011K�f$\\u0016\\u0003Q:�ˏ��qw����N���Ws2�Hc\\\\eg�Crl,�z��i;6NKƤY��9\\u001a\\u0010/��ǘ�0<(��_q*u��k��\\u001b�\\u001fq�Z}���Y\\u0005���5�ƅ�\\n�Dƾ�V�\\r\\r�_BI�?-LmZ\\u000e>\\u0018����0��Aԑ`?Ƒr8�Xْ���X\\u0014~�[�`=:Sc;b�%�\\u001aG*}�\\u0005�/��ҼL�f��9\\u0015h�BZ�\\u001dU-�\\u0001\\n�v_��\\u001e5_��6O��\\u0015���q<?�z\\u001f\\u001b\\u001aH�e�W]�\\u0001\\\\\\\"����\\u001f�\\u00192B����3\\u0018�[��!������� ''��O۫��y\\u000e���77ǽ7俎\\u000e\\u0007?�#$��3��\\u0003�\\u0014\\u000e����I\\\\d�v=\\\\k��y x�p*�cZv���s#�a�(U�c\\u0012�\\u000b^ߕ,�=�}1����kӭ8�\\u0012E����\\u001b4={��ֽh�\\u0015��\\u0000\\u0000\\u0006�Kw\\u0014�*>L\\u0013�J�xg)Iǉ��P@O�\\u001c�XL���\\u0004�\\f� �ڞ��\\u0012ɓ�u\\u0001\\u0004/*��}�\\n��7)\\u0016dXx������\\u0010She\\u0003f���N\\u0004ҮL��\\u0019�Bc�������TT2�#q\\u0014aY?|t���F��\\n�eu��\\u0018�CaҒ��.fC,�ep�\\u0010�]{\\u0001Vb�d��]��m^���\\u0000\\u001a��\\u0014\\u0019k��c7�#���U�\\n6Q@%s���d�R?�k1��\\u001c>\\u00042ZG�/{��n?����R�$���R�#v@��\\b\\u001fUw��\\u0006?\\u0003�\\u001c�n�g\\u0016�\\u000f`�\\u001b��������&9�\\b`H\\u001e�\\u0000���z�\\u0019��*�A����%y�\\u001b���F�\\u0015��`I�U�҄H���L3\\u0005�\\u0001\\u0004Ǣ�7\\u000b^��>Y��ФQ\\u0012QXۢ��\\u0005ά�fcnY\\u0015���K\\u000b\\u0005oýY �\\u000bh�^�\\u0011�2�n\\u0012t\\u001e�ܧ����ŎR�k�N�&�51�\\u001f\\u00020���F�\\u001a0u�����\\u0017��%d����\\u0007��Sj\\f\\u000134���Ct���\\u001b�\\u0015;�4>2\\b\\u0002߲��2bf��\\u0010�\\u0004<\\u000e3�Ý(�6L��Y��\\u0012���.4�޵�~0���\\u0006\\u000e��\\u0006���۽0������\\u0000�T��ن�7\\u001a�\\b�t��\\u001e)1�G\\u000e�\\u0000h\\u0012m\\u0016ٻo�߭��B�IP#s[�*�d-����H�K��ʗ\\u0012?+�ų���\\u000f�<�4*\\u001dT��\\u0006B\\u0005��4#�rg�e�� �e8�+e[6������ \\\\\\\"E�6�k(��E���\\u0012���Z��g�\\u001e�s\\u000f��Aq����\\u00023��n\\u001e�o��qޫ��h�(�LWm�/������x��,��\\u0015\\u0003$��\\u0014�R~�\\u001f:#�V\\\\\\u0018!��f`X^�\\u0006��UjN��>�E\\u001b9I\\u0017\\u000e�ĩ��ߴU��z\\u0010)G!�\\u0019�\\u0002H\\u0011��^��\\u001aZ�FN\\\\\\\"ĥdB���wS�_�q�2\\u0013.\\u0019�F\\\\\\\"2\\u0002��\\u0018k�֊nvU��'\\u0018J�\\u001c�oi#�Z��\\rlÍJ��\\u0011�\\u0001�5�\\u0016wN�\\u0018��k��u�E�\\u001ac����n�[\\u0015[s\\u000f��>4�H�\\u0004\\t�\\f$�\\t:�[�����He%wE$�П����Ҧ�\\t�k����^Q�j�Z�dk�ޘ˗��C\\u001e\\u0014V�P<��ʇE\\u001a�4\\u0006w/�y�J/�L6�N���$�v|�^2\\u000f�\\bc��\\\\\\\"�@�D�t�\\tǮd��\\u0019\\u0000�ّ�7�AD�A<�\\nO��.\\\\+\\u0005�*��j.;�\\u0019��Bl@)�-܁֋0bI��\\u0018�|RA����u�\\u001d&N<8�\\u000b-|����\\u000e��[��F\\u0006RA�&\\u0019Uc\\u0014{C/c؟��ŮU�T\\t+�y�̽�\\u000b�3w1u�b�i���\\u001d�:Q\\u001c3�e�\\u001d\\u000e�bQ&�.W{\\u001aY�ş�9_p\\f�,��\\u0010,J\\u000b\\u0005�\\u0017�򥸼��w9��\\u0017�\\b1m�a�~}-E� \\r\\u001cP$'\\u001d򘻼��\\u0002��\\u001e��~�e���A��\\u0001n'TE����L�\\u0014cG�$�r4\\u001aݶ�u�\\u0011L�ѵ��\\u0003e�MƄR)�g|�y\\u0000E��F\\n@7�wz��˦2�`\\u001dA%�@u:�ڃ ��+��i�h���p.lM�ݙ\\u001en7\\u0019S��\\u0003JV9\\u000eO\\u0015�\\u00192��bv\\\\\\\"\\u0003��\\u0001~�\\u0015�dNy)r�\\r�H�\\u0012�]@:\\u0001�Pأ\\u001f)\\u001a|�Ԋb��\\fā�\\u000f�\\u0012�<�|���\\u0000�\\b]�!�\\n��\\u0001�PM�PY�Q\\u001cMk�\\u0006�\\u000b6�>*��Ju���d�\\u001e&|\\u001f�ȒK�)#o���&�\\u0000M�\\u0015�-�o6\\u0018\\u0013%��\\\\\\\"�`�m��M�6���ga�cG4E�w�\\u00156\\r��\\u0012�)�yYyXy\\u0011��<}7c;j�H\\u001b�ĝ��\\u0012�\\u001bl9�L�\\u0011�f�$\\u0016V�F�M\\u0005\\r�͓ǡU�C���v��N׮�'=RL\\\\-�\\\\\\\"��V�VF��\\u0011�p�\\\\�Yr �V8��Ʈ?�?H���[S���`��y\\u000f&Cd��g;�/m�~~�A��.�\\u0014�TGԪL��Q.8�)F&\\u001c��'A$J��`UZ���yʩ$3I\\f���R�\\u000b)77*��\\u0014�\\u0000';\\u0007��1p\\u0018�/����z�!\\u0001mm��\\u0000�Q�q\\\\�}�Dب�@\\u0018)�S�\\u00125���9P�\\\\k��3��ك��1�\\u000e�僪�\\u001d.��q';��Ρܨ$([\\\\��]��\\u001ef\\n��.Ē���_h�]m�W\\u0017\\u001a\\f<�g�\\\\�2\\u0014�R�*c6��oރ��\\u0000��I\\u00123K\\u001c!�UbY��_�֧R\\u001c����V'���B\\u0006d=`�\\r�F��\\u0000�-01�\\f��\\u001d�NþC�\\u001a�$�xY2A#b��,Y\\u0019�\\u00111 ��!��a\\u0004rcȐ!\\u0002��Q�~4��#�Ń%\\fNᝤ\\u001a\\t\\u0000��И\\u0003}�q�#�\\u001d�On�S�+`��N\\u0014�K\\\\\\\"�(���wx���E�9x��I'��\\r�\\b�os���6��K�Ʌ��8ąk��I#�:ܛ�9�K�\\u0011�g�6�립�����y@���\\u00148�OqI\\u0005�k��\\u0011΀�3\\u0002x���Vg�1\\u001a�-��j��\\u0000�I\\u0002�\\u001ci�>^;\\u0014�Ċ\\u001d\\\\�Mߥ�����\\u001c�\\u0012ȉ\\u0014\\u000b\\u0010\\\\\\\"_!�}�]��6\\u0014/\\u001f�\\u0007�\\fX���\\u0005c\\u0005�`��Ӱ�(d�\\u0000�?Zv`M�ɚ�,A~[��L9\\u000f\\u0014�3�­�n�t\\u0004\\u001b\\u001f���xO��\\u0014��\\u0013'��\\n��`\\u0007@;\\u001dzѹ\\u0018��\\u0012�\\u001a�R��F�z��\\u000eM�]\\u0002�ݒ�\\u0002��ڶ��\\u0016\\u0017�?#�҇���@X�˝�G�YD���\\u001890Ő���P����5_<���1�@���\\u0002�\\u0015��p���\\u0019|�5���m�t�z\\u0006�pCl,�جŃ0\\u0003��\\r�K�H\\u0011iv���\\u000f�vd��.��ĉ�k�\\u001e<c��\\u0016�\\u0019Px˟��z���\\u0018�R�g��O\\u001f�\\u0002�}�I��q��S\\u0010M7\\u0010ķ�o��\\u000f�v^�*\\u0007\\\\\\\"\\t��6\\\\�g� ���\\u0013�_Za\\u0007�\\u001f},&>�x9\\u000b���\\u0018�j��Z��ܧ�;'\\u0012]�\\u0016� ����u�N������p�i#21���q��k\\u0000-���FVt��\\fk�Wi@\\u0004����5.�6\\u0014I�rs�$t?n��$\\\\\\\"�.\\t���K\\u000eT��I�o�Z��\\u0019��4��I�\\u0005��~Px�B�rC��ɓ)��s�̗+��\\u001e���#�1g��M�%�/b�\\u000fV���(?�||�����$l<������c��t\\u001f`��}���[j~v����7���q���&9!@ ����=(L��W\\u001a<Y\\b9H�ِi��\\u000b�h��,\\u0003��\\u001b!]�.H�h�����8re� �\\u0015ڈ�5 �݁�Wk��\\u0019�DR\\u0018;�%�/���\\u001b}{�\\u0016]\\u0018�\\u0000�\\u0014I�Ehĸ��\\\\����\\n���\\u001b�o�u3�,A�$�\\u0016@�b�G]��v�g�)b�$�o�@Q�׸�Ҋ��&�ă\\u000e\\u001b�\\u0014I��u{\\u001d\\u000f�\\u0016�J�p\\u000e�us���v�\\u00051�u@t��>�R�J�tʕ*T�R�J�*T�R�J�*T�R�J�*T�R�s�Œ����\\u001dѺk�y\\\\\\\"�\\u001b\\u001f[�o�~:RO�Sf4� ��R�6\\bO���+V�B�sD��<@.���[�\\u0018�8�^..˜L�[�G�>T�\\\\\\\")�Ѯ�YO]-���1x�T]��Z*S\\u001b�i_gp\\u0017�+l�̉�p1#2\\u0004��k�\\u000bp7\\u0006'�Uδ\\b�ጨ\\u0013s\\u00161��~�:\\u001eC\\u001d��\\\\\\\"�y\\u0007��{\\u0018����9 ���H�\\u0015�5��c})^&$�3�ϓ\\u0011\\u001b\\u0018��M����7�?q�6:�D�W���\\t!�\\u0013N��\\u001f\\u001f.#\\u0006̊\\rǈ�G�ZI\\u0007�dF\\u000bh��\\\\\\\"�\\n�ZF��\\u0002\\u00042��m6�SzS��rC�WuR��\\n��*:7��hx��u\\u000f P�\\u0000$\\u001d\\t\\u0003R��\\u0004��m�K��+0�{]�(3�\\u0003W\\fI\\u0002���\\u0014`T\\u0013�����G�v8�m!%���ʝ��<�\\u0015�lc\\fUM�����hŎ)6�\\r*�GCf\\u0007�R�Y�cw�@\\rɋ\\u001au� ����]n��ܛ\\t6b��ֵ�5�c�'�n,z���\\u0016��h�\\u001cH\\u0018ȷs��J�>V\\u001e/\\rհ��fp��\\u0010>�ʪG\\\\\\\"~�j�r� �@��������.C\\u001c����\\u0016\\u0012Ƥ2��YEf�\\u001c)q�1��I%).�F�׻\\u000b���Q�!�3q�\\u000b(F�Y\\u0012�O�6\\u0004(���w\\u001ai��V�J�đa`noކ8\\u001e\\u0015�l��\\fB\\u0006�\\u0007@\\u0006��`X3��y\\u0003�%������o[�����\\u001b�*�(���A{\\u0005�P�T9\\u0004\\u001c�n҅\\u0005�s�w��~~\\u0002e���a����\\u000f�֢�1��X�\\rk)|o�(\\u000f�R�\\u001c���F��*\\tr �E��8r�\\r�ն�ƚO��k�����\\u0000i\\u0006��>�\\u0019�\\u0016(��7\\u0017:R�e���}oP�=��9(ߥX�[,̼\\\\�X\\u0002�5U�B�ZE\\n�FCdƲc3~ӥ�(n�\\u001e�t?�]�$�Ό]�dVR�j-f�ʮ��T�l�E�\\bT\\u000b��k��\\u001d@\\u0013�_zVT)��X�\\u0001\\fT�7\\u0011�\\u001a�r�N�Je\\u0007��0�T[P��U|L�\\f�3j�\\u000e���iN$�9�ɉه��%\\u001bH\\u001bB�\\u0005 ��$�q#\\u0013�iYX\\u0002�E�z��5�3b�bC\\u0015��q��pҮ$p��C�s2$\\fA\\u0004>��J\\u0011e�\\u0016W�t����ۮ�})\\u0002r�ϝ��\\f��1�\\u001d5�o�Ҙ͙6VS�9\\u001eI/{\\u000b\\u0001��j)����[B�I��y���Q/3K)�\\u000b\\\\�\\n�\\u0018����e\\u001d�3�,5]�E�TD\\u001e4B�\\u0010M���\\u0006�\\u001a\\u001f��a˒\\u001cy1�+3�&d\\u00057�C�ƭ�I&dV\\\\Kx!\\u0003\\u0002�� �I\\u0006�+��#e\\u0017 ���v���\\u0006��E�\\u0019!-�J�4Յ��\\u0019+�C��\\u001eLv,\\u0019H�]I\\u001e��\\b���\\u0016\\t��ˬ��hz\\u0010{ѫ\\b\\u0000�/��Hp��k\\u001c���\\u0018r�;��̽{\\u001a~�M\\u0012�K1\\u0016o�J[\\u001c�6s\\u0006B\\u0005��/�SpMy�s&\\b[\\u001d@��u:h�{���\\r\\t�]/![7l\\u0001��\\t��S�{��ȸ�K(Vc�S��n}4ҋ\\u000b,���*��x�\\u0001#V\\u0005�,\\u001d{��E\\u0019\\u000eF<r�B���m�A������PIҔS&_'(\\u000b%I;p\\u0006)�;�b��\\u0007�-�ߡ�6�5�U�r�\\u0000��(�d\\u001a������\\u000e?�ǎy��PJ�C\\u001dR����Us\\u001c�AX��A\\u001a�n�\\u0016�HTZ��ǥ\\u0005�H��\\u000f\\u001f\\r��5\\u0001���\\u0004\\u001f�Z#\\u000f3 $�x��;]o�M\\u0013>:sq϶S\\f~@��\\u0000=�},�o�\\u000f�+�$o.�0���@e�N9\\u0019#��\\u00064v��K�h�&��\\u001fJ�\\u0014��Uק\\u0019, �r�Ƙq��|2L��F�r�s��,GRoL����d\\f,\\r�Џ�g�\\u0013$.D�H�\\u0002��6���\\u001aR��.��lǠ��\\u0014X�\\u0004ƀ��\\u0000hS&E+\\u0004�\\u0016\\u00129�/���2��Tn�\\u0005\\u0016[\\u001e���$]�(1�6�\\u0016cs�S\\fׇʒ4�M��H?2\\u0007j�\\n9Y\\u001aV�F\\u000b~���\\u0016�}/ڲ.'\\u001eU�\\u0016N��޶.|-� %U͘�\\\\\\\"5\\u0011��s���bG\\u0003{�Qfe��z��2\\r؎���O���\\u0019�qy\\bQ�Ly#!��\\u000f}ç�O���x��K�l&��>�M��-[.\\u0016�#�W4a��@\\u0000̓�w���4')�>�G��e���\\u0003����p����\\\\\\\"�?\\u001d�EV�\\u0015�\\r�*c0�bJ\\u001dF��S��qJ\\u0013\\u0014\\u0015�������j\\r\\u0005j���C\\u0012\\n9\\\\\\\"6֬��nA\\u0012,\\u0000\\u0019\\u0002�iX�\\u0018\\u001e���r��p2D\\u0019E\\u001c4{ԯ}v�\\nw�=���\\u0010��'�Ā��.\\u000fʗ�\\u0019I�����\\u0018�; ��D�\\u0016?\\u0013�P2xV�KT�ͮ�\\r�1 �\\r�}�pA�\\u0000���T\\u001f��.��Wpr�e\\u0018�m�Q��pO�i~\\u00160ʞ8��\\u000f{��\\u001a՜�\\u001d��Y!>D�\\u0012\\r�ӯ��E��\\\\�\\u001a`��\\u0013 Qu�+�\\fY�\\u000eQNd\\n�ŕ.��w�J�\\u0006�S\\\\\\\"A(�mc��n�M�H��\\u0019�M��1���\\u0014��v�I��� �#\\u001eVBHv�\\\\\\\"[Q��\\u0003_J\\u0011�W#e\\u0007��ǩֳ'��|w�r-���\\u001byQ�\\u0011�\\u0017�s��x�f�lQ�J.�v�����)7�>3o�#v�l\\u0003\\u0003��\\u0006�iF\\f\\u0005\\\\f\\u0015��wx�\\u001b\\u0012���\\n��\\u0000\\u0016�a�~�\\u001a(�J\\u0014H�ֹ\\u0017���\\u001ac@���3\\u0014\\u0018�y8�=���\\u001fA��\\u001f_jX]��C\\u0011\\\\\\\"��q}�����Bѐ�˶H�f��F��q$~g�+����\\\\\\u001dOJ\\\\S\\u001f�#1M��!c�m����\\u0018іK\\u0010o�J<�V'˅��lx�d��\\u0012d��\\u001f�\\t�bE�#HHd�]��\\u0013�Jg:�˙\\u0016D��x\\u000f����m���CO\\u0012c�'�DrH�}��\\nh���?s#�ަEA��^�\\u001f\\u0018f�\\u0004��ڋ����q�����:\\u0011U��\\u001a\\u0019\\u001fn�fv~>69��^���c]q�6k���\\u0010��?Q=�frx�`0P|�\\u00006[���=;S>72y�d�-����5\\u0006EWd�|\\f�\\u001b}j�\\\\��lYH�9���!7\\u00006*~�Z�lXe\\u0004J\\u0007�\\u0018\\u0014�t`\\u0000���x���eB�Q5　6�_o˽\\u001f,�䂲�@�Z�������sbiJC\\u0018%.M�����L=S�\\u0019S�`91=�\\u0004�y\\u000fCJ�����w�\\u0018���Gr@ ��)�#�.8;��`Tۭ�h�C'�\\u0019�&(�Ib\\u001d�Dcpz�\\u0014&n~^k2�dV�\\u0000��P>$�:�\\u0000m#���\\b ��\\u00107ֆ1Ñ��!\\u001f��v2��=\\u000f�D��^6�\\n��C����*�x�\\u0016�R�D��T\\u0001������O<\\u0018�$r«b������_�B.�Q�]�<4��\\n�g\\u0004�bZ&4n�\\u0015G*�&&�kG1�F�G�_m�\\u0014�Y�M\\u000e&,��\\u0001���k\\u001bܗ&��\\\\\\\"VxrCY��*\\u000f�>��|\\b֓8���e�Q��rlt�i�Õ|�>+�'֋�w��\\u0012�!�\\u001a�M�T\\u0011�Y�<v\\u0011�FY\\bTT\\u0001\\u0014\\u0013k���Qi�3G+b�K\\n\\u0016VuRF�5��c�D�\\u00051��sbFge�+�p6���5�y�X\\u0007\\u000b\\f\\u000f\\n+�\\u0000^Oq/�\\u000f��w�����m�\\u0002M7:�'3dg'#b��@ \\u0015��\\u0005f��\\u001a\\u000e[\\u0018��s�0�\\u001f_���\\u0017c��^�8�[w��V������#�\\u0019ytS(\\u001a�U�Z&���x�W\\u001f$J�\\u0000\\u0012F\\u0019B:���mM\\u0014��^Gއ2��{j;x�K�ӢZ~���Bi3v�� \\u0002�[i�֛�s�A�\\n$��\\u0005E\\u0012\\\\\\\"�>5��z7�\\\\\\\"��ȁJ��X���\\u0016?\\u000f�u&(��\\u000f!����\\u0010�\\u001fZ0\\f�c�j�l.Y�\\f2\\u00004�[Uc˖f�*(�I�e�]Ut���*�Y�4Ҿ�E\\f�����!M�3;��G�\\u0006gd ��~�\\u000e�\\u0016,���I(�k4@#7�Uk\\u001a\\u0016\\fD\\u0003l�j`̋�#>0ɁlkO�\\n#\\u0003\\u0002\\u0004����B2���\\u0004� P\\\\�\\u0013��\\u000f�M�\\u0010%Ы\\u0002�\\u001b�e�Gș�*�E�#y�\\u001fH�m\\u0017?�E�\\u0013y#�\\u001c\\u0004P���ػ\\u00026��4��@\\u0000�o�xQ��\\u001f,��-v<au\\u0002\\u0000;s�21�F�x��\\b����\\u0006�n\\u0003�֍��\\u0016)� ��E��j����)#�La6�\\u0006�&�\\u000b�k�\\u0013\\u001f\\u0016M���i\\u001c\\u0007���˝J/M{�2�`�:\\u0002���K\\u0005\\u001f�dn���7*�\\u001b\\u0003H\\u0002}j�\\u0011e`�&1��b��\\u0016�\\u0000\\u001a\\r\\u0006|7\\u0010�$Rt\\u0012����Q\\\\ܧ\\r�`ƑG1>{\\u0002w�\\u001a\\u0012o�@/\\u0019��)l��1M�t����k��ƍAQ�\\t�T]$�\\\\��l]=Q�s���[�`K\\u000e\\u0014�\\u0010�y\\u0014]ɱ�'��t��9\\f���N\\u0004�D�T\\u0016ԛ[uQ>;q8�oC,N-�w��\\u0016�\\u0017Ҫ⸨r��G�zܙQM�@�#��H�p\\u0002�|+O��&s�;\\u0017a�����XmN�8�\\u0017��(\\u000bJ�7H�V$j\\b饩c�M�Q&B!d�#\\u001dF�\\u001bn�����,��ά�(mu�oCI�\\u000e-����D\\u0011�˞���_�\\u0012�H1p1\\u0013�+�_�[��\\u0014��ҲJ�O=+�������R>&��l�W*\\fg�1�:y\\u001c�$�ƅ\\u0000�Z�3\\u001b:,H����-cШ����6\\u0012�.�ʣr��X�ֈ�1�1ƃ\\u001b�ÎE�94�\\u001d\\u0006���������1\\u0015�M����.wu���2_��`�\\u001ci�x��\\n�\\u001c��Y�6�RJ�ŷ\\u0000o�|\\r�$��r�-�J!�I\\n�n�H��\\u0017\\u001d���W&F_ d\\u0018�\\r�����ּ�Q�30\\u001a\\u000b�1r�!��\\u0007]���\\u0000Ҽ˗��{O\\u001c���\\u0001\\\\ߨ�[Qs�qJ1�3���>8o�f\\u001d\\t�М�,n\\u0006bn\\\\��\\u0012+}B��o}\\u000fj�\\u000b\\u000e�\\u000bo��&|k�\\u0012a\\u000e��d��\\r:�o�π�$�F�*��N�_0���^����\\u0004[\\u0018x�m�уj6�@��r~\\b̋\\u0019�.C�ԯ������\\u001b\\u001cr\\u0012���\\u0004cs/�_���\\u0004N�[S\\u0014x�ȍs�|��\\u0000SK\\u0003\\u0006>S�,�\\u0019&����J��v�[\\u0011�4�>S���G����_ܻ\\u0013�߽�\\n�\\f ͚\\bHUR߻ٕt�y̬x�\\u0012���6͠8/�\\u001d�\\u001d=oB��\\f�bI�aU��6{�bdǉQ\\f\\u0010\\u001c��\\u0006�}\\u0001�\\u001f*1Ā3FG�n�P[��2~V(���V\\u0003\\u0004^X�n���[�5�G/\\u0006:�cC�yTٛ�\\u0001�����u�q9\\u001b1r%�&��!W7f�s�4��\\\\\\\"7�\\u0014�.V\\u0019qسj�\\n�\\u001ec]�U�\\u0000y�9\\u000epM�(\\bv����>=�x�;�by\\u0015�1�\\u00121���5=\\u0006�|����J\\u0002o�1W\\nm�[��8�x�q܃+�f)e$\\u0006Ո�oB����\\u0005YW�x�\\u0014���[�Ʈ���\\u0006C��@ ������1\\f�Z21�\\u0006PWr/��S��a�G>\\u001eEr��D��\\b\\b\\u0001Օo>)�xK\\u0013(t�qm�q}>\\u0014W#�!Yf�\\u0016��R1���zU�ܠ꾜iw*\\u0011��Uhd\\u000f�\\u0018�\\u001a�����9\\u0005Tڱʊ����6����F~^LL9�e/㐛\\u0013`/b�:�\\u0016\\u0012I��#Cf�N�&Ǩ���99Ӓ�\\u0016;2\\u001d�1�_�]j��X�r}��p����\\fr&\\\\\\\"��\\u0003\\u0000�9�VF6H�+1�]���K^���zW^^\\u001f\\u001a3$P��p���*OQ�C�e\\t�\\u001e\\u0019���S\\u0012��\\u0006�k֌ϙ��1ȉ\\u0010_v���\\n:�\\n�D�$�-x����\\u000e{.��\\u0012B���5�[yQ��;��$�M\\u0003��o�G�����\\u001a\\u001f�볛\\u0007��F�%������Ћ�Z\\u001c^?��\\u0003\\u001cE�\\u001c�T\\u0012�\\u0017b��e:�Ƒ8�Ɩx�\\u001dL��O�in���H\\u001972d�R�0���\\n�E����\\u0012\\u0004�\\u0003�����r{�����v\\u001d�����F&���Œ',�\\u00166X[�o�/�ʆϘ�r0�\\u0002��$j��@u\\u0017#�+��T���]\\u0002��N�B=�҄�]��\\u0015\\b���3�`r\\u0015Upc���\\n9\\u001c�\\u001b\\u001f&\\u001e�_�\\u0018\\u000b'`6�v=�&�hK�\\u000f$[\\\\\\\"=�xήG���ބ��ɋ\\u001cr�P�#��$�y\\u000f�XzXQ�G��8�\\\\\\\"C�[O\\u000e��\\u001bCn��\\u0015l`I��)�_j\\u0018\\u001f&(\\u0000\\u0012��Y����<O4%�c(���ܝX�Z�.\\f�NJ,�%߭Þ�T~��L�\\u00152[%�H*\\u000317Pt���W��O��C�7ŏ\\u000b\\u0012ċ�*>�\\u0007��\\u0006�O��\\u0000�+#?p.4H��\\u001b#�I�%�xĈ�\\u000372h���\\u0004�{l�����\\u0019�f\\\\Q��$2'�Q��(\\\\\\\"�\\rm+��\\u0016M�@���=�\\nJ�\\u00104:�W�I�l�չǊ\\u0016H����C�\\u0006� *������'�\\u00150d\\f���\\u0010�\\u0004��0\\fo�Ln&T�Y\\u0019��&�܌O{\\u001fJ�g���r@��Ca���\\u0000J�E�\\u0016\\\\8�yS��\\u001e(�ڱ���+���\\u0000�Y�R\\u0018�Ζ8��0}�MI�{�\\u001a�\\u0010\\u0006����9�-�t,V�\\u0000κ�*T�C[�T�R�J�*T�R�J�*T�R�J�*T�R�J��\\u0000\\u0019�\\u0012D�n�1{Ѝ.\\t��\\u0000#O\\u001bu��\\u0010\\u001e�V�\\\\\\\"ԗ�Hp�]�͓�y\\u0018h7\\u001d\\u0017�O�\\fh`�\\u0019�a+NI\\u0000h�\\u0000\\u000f�׭Y`\\u0000\\u0007s\\\\?'\\u000b>\\\\������o��\\u0014<�\\u0013��eK���@\\u0017�\\u0000:�\\u0015�(���\\u0004�R-v~���S��iv�\\u0017y\\u0006�\\t��Ȣ=��\\f@\\u0000\\u0012;�|=5��7<k\\u001eY�\\u0004\\u0010=x��%T�`\\f���ۨ�C�h�#\\u0013n\\u00119�\\u0015\\u0000��U�2$܆Z-��\\u0004�KX�$-\\u0007���bg\\u0014�.��(���\\u0000nmSH'�ք���\\u0019�����\\u000e�Ιe�\\u0018�L9\\u0012H�\\u0018��V\\u000elI\\r�G,���xo�Q����������Jq$�7g#$a��b�Ip��j}�Q�G��!AbZ���Eͽ4��\\u0005$A�hw�ҩ�cK\\\\\\u0001�K���\\u0016?5�H����geVRX\\u0006R����{��\\u000b׹\\u001cZr,�d+E\\u00142)\\\\\\\"2.Yn�H5ܷ�\\u0001��Y\\u0017j\\u001b܋�m�D�$���Ĵ�\\u001b�}D�֯ ��R||�@f׵��\\u001chi1@k�,A �����'�n�h`f\\b������o�S���9\\u0018�2��I\\u0000��j��\\r���f�4FyQI�XY�Z���\\n\\u0016ЃO��\\u0016���|\\u0007*�����\\u000f��T�Y�b?\\\\\\\"(��rr�\\u0011�d�Q�u��xI\\b�\\u001c��K�\\u0001�֜c�1\\\\\\\"1��ܓ�NߕQ\\u0000���K����<\\u000f.5j�Z��F�T�=oҼ�]��<�׸��~5e�ԥ��\\u0002A\\r�5˖���#�&������!iq\\u001c\\u0000\\u0003��\\u0007[��JV)�ٞt�j/�5�S���.v����5�8����Ct-s��Tm\\u0017:t4�p�\\u0001Ԛ�x\\u0018\\u001f.\\f��\\u0002bcu��\\u001d\\\\\\\"�~o\\u0013}�Wpv�����ӽ\\t�9ʙ�7H��;�?\\u001fƌ��\\u001fu朙6\\r\\r��\\u0011�\\u0007�\\u000f��v�BѶ��\\u0006�\\u0000�R�\\b\\u001b\\n,��e�\\u0003Dee���\\u0002�E��\\u0007_��<�;�������W�6��\\u0007j�$�i6J���F��޵']�\\u0003[fޭ7�U���߾򄕽�[��$�<c�A2y\\u001887\\u0001ƀ��]7\\u0013\\u00149\\u0005b��E(Sm��bN��T��O�Boc*�\\u000e��\\r�$oA����\\u0001j�\\u0004K\\rh�)D�\\t���EF\\u0000܀t&�����\\u001f�\\u0018�.�j@\\t\\t�#\\u001bz�҅�:�yHI�|�\\t�oz�5\\f�+\\u0015�8�ӧK{\\\\��,u\\u001cj. ��I\\u001a��5��P���ź��\\u0000�<�a�d�L`m�\\u001d�K�\\u00121k�ߖ��\\u001f1�?\\u001d�>��\\u0001\\u001d\\u000f�[[z���҇b��t\\u0003Cc��Dm$i�>��\\u001af�2��r��<c[�Ȑ\\u0006�`X�\\u0013K��c˞]�v6Pê��Jp�x�d%�\\u001b�f���Ggy4\\u001a\\u0010\\u0006��w�\\u001fz/\\u001f�\\\\N�\\u000fWM���8i\\u0004O8\\u0001��ѹ&�\\bz\\u000b�\\u0019q@�\\r\\u0014\\u0003` 9�v�M��\\\\\\\"�G&F\\\\\\\"���+\\u0016�`}��^�Fܔ�\\u0003�Xt�:�v�t�H��L��E��ѓ��\\\\HD9�Ѻn��R���������E\\u0017\\\\\\\"ҵ�dR�\\u0000\\u0000\\u000f$fy\\u0000{�\\u0019�/p�Z\\u001cy\\u000f�7\\u0005��;�\\u0016��\\\\\\\"\\u0005\\u00106�o���\\u0002�w�WcH$Γ\\tc����ȝ\\r�\\u001a'\\u0002v�B�Y\\t7SԪ�7����o?!<����a~�\\u0000\\r�ҘM�\\u001c�����\\u0017�/���\\u0004t���2xQdƖ&��?0羢�c�\\u000f\\u001a\\u0019\\u001a�~���>�W9�\\u001f��8�YFj��줶�=�)�'6Hc�$�e��\\u0007Co����\\u0002��0��\\u001fq\\u0017�A\\u0000\\n�\\u0004�\\u0006\\u0007�7�\\u0018|ly�*\\u0007c-���\\u001bG���\\tR\\u0001� 8\\u0017r\\u000e����Ñ\\u0010�\\u0016���H�Ef�fv�\\f�\\u0011\\u001a�2�m���!�'�\\\\\\\"A&�6f\\u0003K�V\\u001a\\u001a\\bҰ�\\u0018d\\u000b����\\u001b�E�u�\\u0000�hyT�2Lic0LI1\\\\�\\u000e�@~zt���$���H��U\\u0003�E�\\u0010>�)��}�\\\\�Ze\\u0000\\u0002�\\u0013M\\u001a<uO��<(w3\\u0011{[��\\u000e6\\f]u\\u0005\\u000e��4�k.<�\\u0001�\\u0000\\\\\\\"�Y���$�2h��\\u0019`'۰9\\u001fP�,\\u000fr�M����w[���u!.&^R�f2���P(c�\\u001f�WI\\u000b$>H�2H������q�\\u0001֋H��>\\u0016ĩ*.��`s��\\n\\\\\\\"���-�m\\u0005��@�}��ǆAf7\\u000eo�$�E\\u001b��c�W#���Y\\u0014��^�ո���<�Ȟ\\u0011�m�_��~�����g\\u0012n\\u001a�Ư7������V\\u0013�o����􊳎��\\u00169\\u0012G�;�c�hOB��~)g,����.������:\\bd\\t$��%�Kݶ��D�g\\u0012��0P��\\u0003`��Z�q����j���\\\\�Fr�����ǡ��\\u0018��\\u0018q�\\u0018\\u0001N���\\u0002�g�\\u001c�r����#\\\\\\u001b�\\u0005?�(ٯ>?�6��v��\\nU���'#�\\u0004�ĥ���� ����҅re���\\r�\\\\\\\"G\\nӓ��[��|��ό81:�#z�\\n4��]�\\u0003�ā}È��L8�l>7/��O�rO���\\u0004k\\u0012>z�L��,�e $<��`w[�Ls�\\u001e(�s�(��q�\\u0000@:{��֝�\\t!��,\\u0011\\u001c�\\u0003�\\u000f\\n��#�S��:\\u0013n�s�+y\\u000f\\u0011�*m�%>����b�w)&����\\f��\\nl�6k�`5�Dm�ۨ\\u000e?&^;\\u001f���\\u001d�v\\u0012\\r�ֱܶ5W!<�\\u0000n�\\u0000��\\u000fܹ�[���\\u000b�5��ȹW\\u001a\\\\\\\"�/s�E��)���lT�e�Gm�׵�\\u000f���Q>R��emM��u\\u0004Y�\\u000b{m�ޫ�䌜Y�2\\\\\\\"`\\\\\\\"qw\\u001fV�v\\nA\\u0015D�\\nȭ�������[�_Z�����Z�d���\\u0006�����Ө�iTM��\\u0010��2���:\\u000f��u�����1�ȻfD��t�M�|�hflȚY��=����Jr�Q��~����\\\\e�Ɩ�O��FG�\\u0000\\u001d�Ϗ-�\\u000ecۅ\\u000b�$˕|1�\\\\\\\"[\\u0012�\\u0014\\u001b\\u000b�c���m��K�J\\u000f:��\\u0001eT�pn�\\u001f�.V4-��$.��mpZ��}A\\u0015\\u0019��٢4\\u0001�*�I\\t�E\\u001d>$�I��� %$��+^R\\u0017#OVF\\u0011\\r���\\u0000*]�|lr�\\t�t&�����\\u001f�Y�?!*L��,w\\u0001\\u0014-��=�ץ\\u0011�\\u0007���`\\u000bG2\\u0016�N�\\u0014��U�93�id+�K\\u0010=����\\u0006m ~^�YIB�\\u001dq�B��Eq�21 �䅙�1\\u001b�6[ia��xex�Xܗ\\u000f��}��m\\u001d)���L����u%�n\\u0005�\\u001aΌ\\u001e_\\\\\\\"\\u0016\\r\\u001b��� \\u001bm���T�M\\u0016\\u0013�88؅\\u0017j��\\u0003�G-�<t\\\\���\\u0014L�*�m��\\u001e�\\tץ\\u0007/\\u0012��A���f��SS\\u0018��\\u0016���V��pA\\u001f܃�rH���#����\\u00192'�#�ѴA�Hn���\\\\�A����m\\b�\\u0018NEGL9��\\n��I3�ޜ(1bc�������1/�hݦ�lh\\u001e?��ɍ�Ay\\u0018�Ο\\u0000?H�NN4��\\r�\\u001c��F>IYnAF w\\u001bM+ē\\u000b\\u0019\\u001b\\u000bȪ�Y/a��ծzބ�W\\u0016�M�]��j]ϋ\\u001c7�f��\\u0018�\\u0010�q�UE�c�������(���]��\\u001b�>\\u0004f\\u0017;w��Ԅ\\u000b\\u001a��p^i�����x� �1�/n�-Ur�9o\\u0010\\\\iVw��T\\u0011�m�n��j�t��\\b��j\\\\\\\"iY�\\\\�q)k^�.\\u0011\\u001aEY��.\\f|)\\u0010������n\\\\\\\"�io���+,��]6,A@f$�\\\\\\\"�\\u0012hl˘L�*�e��ǰ�s�kwү\\\\\\t�U'e�\\u0007k5�˥��\\u0011�Gǅ��8G��ci����\\u0011���V\\u000et�\\u0012�$�8K0W`IAs�Dqy1a�4y3�Lh|D\\\\���\\u0011�C\\\\�ؙs�\\u0019�\\u001d7��{���_J��\\t�*�\\u0007Ȫ��SԟJ\\rd~4�fC�\\b�uq���\\u0007�=�.2�ٗ�[��KU�\\u001cL\\\\�,�b�\\u00134\\r�נ\\u001f�����z\\u0003�\\u0000�\\u0002O�bg�Q��F�kN�e\\\\vL2ʮו]�\\u001d\\u0006��j�p��\\u0013h�s��x~:���\\u0019V�.�N��ۉ�J\\u0016\\u001eo�XV90\\tȅ\\u0002��\\n��i�\\u001b�~\\u0014\\u001f'Ș�U��\\u0016�\\u0019\\u00100\\u001a\\u0003���||\\u0018d�\\u0019_s\\u0010\\u000eM�\\u000b�:��\\u0007J��q��\\u0014�ZTԀ\\u0001�\\r��PEd\\u0000�\\u001e�<�v��B-�;��+I\\n8�PY\\u001c���;X�*��p\\u0007�A��\\u0012 p<{�Y�cc���;3/���\\u0000\\t$�![_���j��B>,�\\\\G�k��\\u0016 �k��F[MM�ƨc�;yq��G�I�[͠�*�/*,��F\\u0001��xїK\\u001b\\u001e�<4\\t8�7�%�E���k�J��P*d㛺�ȌM�)�\\u0006�K�pr/<��KdJ�d�b�H\\n��(\\\\�d\\u0004��lZ( \\u001f\\u0019�����{���q'���2����U\\b\\u0005�T1#�0=5����'�CB�dGP\\u0019t^��]+�N#.i�s���UT[\\\\mS�u�H��乐ˇ���\\u0011�1\\u0000�H���(I`�Y�\\u0007ⱷ֋\\u0006\\u0002�0�+m\\u00043�Ƥs��w�z�͏*c6�$\\ri��A+�Z��o��\\n\\u000fr�@\\u0007ݷ��&L+\\u001clɼɠ\\n\\u0005�&��Ec�9������>�4���(�4���4�o\\u0013*2*vث\\u0013k뿠��\\u0018�wΗ\\u001d��\\u0000�x�0M�>���<\\u001c/3��\\u0000��*(u��{�(��mU��Ț^G\\\\\\\"G���\\u001ca��c�\\u001a��=)t0bE \\u0010\\u0019<�/�}ʐ�t�R�bv�K_\\u0014�pAN��ܳ��μb7�\\\\�^N4\\u0010��\\u00128i\\u000f�DŮm�i���\\u0004�e��Ó6�m�\\u000f�5\\u001d=+��Y�D����%ln\\u0005�]��O�H���R\\\\\\\"����\\n���֍m\\u0001���t��c_\\u001c�\\\\a��\\u0003��פ\\f��A�9YX܌�\\u001c�(���u�\\u001d>\\u0006��ו�8ʫ�m�.7\\u001d��=�S���y\\u0014\\\\�W'\\u001e9\\u0019&�u�e\\u0007R��&�����G2oA\\u0014��\\u0005�r\\u0017��v\\u0002�ŀ,'N\\u0015\\u0002�~ߌ�OHgh����8�JܐL����S\\u001d�}�A�I\\u0003ӭ�\\u001a,ǁ���\\u0011�ȸG�\\u0005�k���>�\\u0003\\u0007\\fB\\u0018�K�i�R\\u0018�u�����d̓\\u0011%xQr���\\u0006\\u000b}�t���\\u0014j�\\b\\u0017�:�8I�G�؟\\u001a\\u0011�.8��\\u0000`�F��+��a��_\\u0011\\u00043���\\u000fe�k5�S�����Ă|��d�o\\\\\\\"�\\f\\t�����P�3�q��\\t*�}�Ņ�k�Z\\u001f���F\\u001c\\u0010��3�73�n��\\u001f����\\bQ\\u0004��֚<�����Ɉd\\u0000*��)�\\u001a��6D�\\u0015��4��f\\u0005�����|(�ɂP\\u0011e\\b@P\\u0005��5�\\u0015�|\\r�\\b���/�\\u000b����ݩ~8�\\u001f��7%��\\\\\\\"�{B��|�)�\\\\\\\"#�kIk]���v�\\\\\\\"\\\\\\\"��Y��%�\\t-\\u001c�H�J�E��L��L|i�3\\u0005\\nۀ 1��ǽ\\nȸ�K���\\u0000������Z�.�P������n�䰾�o�KRK8*q�\\u001a��j2[\\u0010�q:�ǔ�{��\\u0003��\\u0000֐ae:D\\u001c�����31ҟ��\\u001e\\u0011\\u001e���\\u0019�SrX���ٜtC�+\\n\\u0018�{����)�Q��4\\u000b���\\u0014-\\u001c��ܢ�k�֩H�Ѷ�>e���\\u0019��C���$M ���y8 y\\u0014�R��#MGΙG������/9)�#T��R��Yr�^F�l�+\\u0011����\\u0000Ҭ̇\\u000e,�i%2��̭պY@+QY�GM���QgS#\\t7N$`ʦK!��\\u000f\\u001eF����ceH��`\\u0000���[ք�1e��w���e!6>��$\\u0013I�Z=ei,U��\\u0004\\u0002�\\u001f�4Ċ(�#ɏ��\\u0004��\\r��:���k�\\u0016���L��j�x\\u0002�+�\\u0000�V(���@�aKq��6Xr.\\u001e4�\\u0012u\\u0017>�*xe\\b�IvW\\u0005I�wu\\\\\\\"��\\u000e?�\\u001f\\u001a1��*|��@o������)\\u00164�^A�:\\u0003�n�o��_�CBd\\u0002{bm���ɗ\\u0014�l�-�\\u0017\\u001fi�x�o����Æ�\\u001e$FH��\\u0004����v��x��t1d��F�\\u00124\\u0003]m��\\u000f��\\u0012D�G\\u0017��˻p߻��\\u001d���/�����\\\\x�\\b�^�Yo�&�\\u0000R��������+,1�R��~eZ\\u0003u\\u0002`���\\u0019 Ɵ%�Jr\\u0002Y\\r��;�ӵꌼ'P^\\u0016Iv���,E�@Gz6\\f�rf�w*��@�\\u000fխ����Tsg���\\u000f��\\u0011a��\\n��J�\\u0017��%OI�U�g���5�ðeі4\\u001a�c���f��\\u0004\\u0017�X\\u001d.5��K<y�2\\\\\\\"�\\u001a\\u0016.\\u0002%��$�Gza����2\\u001c(Pm!H{��ߥ��`A$8��\\u0013���M�\\u000b\\u0011��\\u0003�+\\u0016\\u0017uH�ҹ�����˘\\u0012���\\t�MxP\\u0018��\\u0003�����\\u00124JU��Q�\\u001d�cj��3\\u001c��\\u0000�k5�\\u0000z\\u0001��RN��L��,Ydf$�\\u0018��\\u0006�r�S>Pd\\u0012�wn_��~U\\u0000\\u0016�\\r\\u0016&'�`B�L\\u0019�4�J\\n�J�+]J�*T�R�J�*T�R�J�*T�R�J�*T�Z�>M`�7ˀL�}��-�\\u001d:V�\\u000e\\u0018��&˚\\u0016�uR#k�\\u0010\\n\\u000e�\\nݴֱ<Nal�a�\\u0016ȉX\\u0016\\u000b�l\\u001d~v��1���`�Mw�6���c�S��\\u0015\\u0017\\u0015ߜV\\u0000\\u0013\\u0011|Y\\u0015J乀�'��\\u00147��L҅\\u0002\\u0017����u�<2C�4mb7m\\u0016�a�7��I�\\\\\\\"(=�_�(�i��\\t\\\\\\u0016f��.w\\u000bڙ�'^\\\\\\\"��\\u0003�\\u0012�����a�.�\\\\��em\\u0016\\u0006d�\\u0010�\\u000bk��P��\\u0012�8ɖM�\\u0005\\f��ކ�#�\\nM\\u0016�\\n�\\u001e��}�Gk՘Q������\\u001b\\u0018�b�E��K��\\u0019�m����\\u001e.<���\\u0019%�Y۴h!t\\u0004�(9[#\\u0013\\u001fȞ�U�,L\\u000e����\\u001d�[\\u001c@,��\\u0004�w��Ѯt����*��F_���J�la�U�{\\u001b��\\u0007\\u0012�bI �UC5��o�}�`���\\u0006�=?�\\u0003�\\u001c\\u0007*��rZV2\\u000f�8F��i���\\b�T �\\u0006M��\\u0005���q�E]�\\u0017����Ks\\u0016)��l��uU�Gz�\\u0017�\\u0017�v�ˠ\\u0003V֚I��\\\\�T�%�\\u001aZ����O%��X�\\u001fxF$%����K�\\u00191\\u0017��̬?[\\u000eǵ����\\r�E\\u001b�_�nJ�U�2�}��u�S\\r&�7v��k\\u001e�ֻ�\\u0014Î\\u0014�[P�\\u0000\\u0007�W�gkH\\n���n�h(�Xi߽�UQ�\\u001a��\\u000f�\\u0010�\\u001aVr�I\\\\\\\"d�\\u0000:�9U�˷MJ\\u0012��M*�̶�22�g�/ ���\\r�#_U\\\\�#�l�\\u0010�\\u0010�?�\\u0001\\u0003�����dg�\\u0012&\\u0012\\u001b8o+��`\\u0005��k�T[C�Zqa\\r�\\u0012E�*��M\\u000e�\\u0000dW�G.�\\u0013J��[\\u001et:�`�n�|h��.'\\u001cƜt�L�\\u0001\\u0010��־�n���r�\\t[K���\\u0014߆ŀ�K�� �̆��ā�~\\u0006��h'�uˮ\\fY�\\u0005�e%mkA1\\u001a�ƚ���ɑ�F$ܕ:jz|녞|��ƚ+\\u0004kF�}�����Ҋ�h�)�/\\u0012�־��V�A���,�0�o\\u000bkFYzhO���^�k�Q�ͧ�A?ms1�|��\\u0014�/rY�-�>�'+�\\u0004q\\u000f�VY��Y\\b!�]\\u0000\\u001aR�'%��\\f�\\tIй*?鸧܍��\\u0006�oy��\\u0011c��en�$o�7�©�\\u001eU��x\\u0019�c^���A�w{�&pK�-����7�dǀ�\\u0003ʧ�d]X$B��zS\\u001c\\\\G�W\\\\\\\"U��7��_��\\\\\\\"�q\\\\|i�F�\\u0015��k���hmZ@���[�w������)X�\\u0017\\u0011��rڸ��#�,gKo/?����\\nO��&\\u0004͗Ǜd1)?����\\u0000P���\\u001b'\\\\\\\"lU���\\u0019�.���=��6�\\u001c�\\u0015\\u0011\\u00157����P�X�Z#:\\\\~3�\\u0018�\\u0015'�{<�l!��d�k�\\u001aT`'����<��Xո\\u0013�\\r?�Hb'\\u000f���p��v_u�\\u000b[�)��$�\\u0010@&��\\u0000�R.?\\u001c͕��w\\u0010�>����i'Th�UJ\\u001b�\\u0006\\u001eˀo��XԺ\\b\\u0011�W��7�\\u0007\\u0002Ն'���[<e�d\\u0013\\u001a�`�䏇�\\\\��\\u0005ƆƸ�Ġ�\\r�nQ���\\u0006��\\u0000*�F��\\u0006�[S�\\r��A�\\u0004�Z��\\u001ah\\b�k'��,�O\\u0004�G�ؼ%H\\u0003^��\\u0015�\\u0011\\u0019��\\bX��b�|\\u0007�j�n)�k�YO�U�G�Q�\\u001b�\\\\\\u00163��8��Y[]u\\u001aPkp\\u001e�ݑ�+:�N)\\u0013\\u0012\\u0004iʉ�A����p\\u000f���:�׵<�#�������\\u0018�{���%�BJd�΀�(�o��u�\\u0000\\u001a\\u0013\\u0013��\\u000eQ&)x�mf��\\u0002\\u0001��W:\\u0011Y�\\u0017u\\u0013(\\u0006�ƣJ����>Q\\u0019�o\\tU\\u0012\\u0001�m�aVr��\\u0004�\\u0012\\u0016PG�\\u0010�6��VI�r\\u0013,q�\\u0003;\\u000f��\\u001a/_��K���B�i�5�7h\\u001a\\u000b�a\\u0013�\\nz�\\u00050�G���[F�x\\u001a�/�.��6$z֗��l\\f�G \\u00022Oն��\\b�H3�8��\\u0013!i\\u0015\\u0006���+E��2�\\u0001�\\u0019c\\\\u�kb�\\u0000���4CQ#��y�J\\u0010\\u001f�X}��u\\u0005�\\u00103Z��t\\u0004�*�L41�\\u0014�I��\\u0000�\\u0003��18�CLI+'K_�|;S�+,Ɂ\\u0017�X=��M�X�U\\u000b\\r)Y��ǈO\\u0006\\u000b�ߌ��O��,\\u0004�1\\u0019|�\\u0016Sqp)g�\\t�$�M�\\u0002��Ѯ��hO���\\u001f�����v�7���*�\\b7�֖���2�\\u0004�2��Q�u�+9\\u0019{��a��\\u001aӇ'���B+4��2n\\u001b�[�Z\\u0017��YX\\f���(������E�\\u00135�ȃ 0�\\u0005\\bl�K6����^w\\u0011�ǪJ�z\\u0010\\u0003�~�=W�t�/\\u001c�BE���V����\\u0000�i���T�<����\\u0014(�9�y��^7?'\\u0011�+­��\\u0016���_�����1���Q���^՟���Db\\fH\\u0019v3������yH��<���#\\u0018�q�\\u0003�=(���#������w˘cFUgi��74^p�)q�\\u001e\\t���\\r*\\u0015�\\u0004`ɻ�5�5�A���.d�4q�\\u001d\\t\\u0016$�\\u0014?\\r��\\u0013�T��!v��\\tfn�p\\u001a~5VN7#��e(\\u0015U�l:;\\u0005:�*��\\u0007Jf_\\u0007\\u001e3��@Bh�����\\u0001Ebr�گ��M\\u0014k�\\u0018jv�\\u001d��ҳ�V�(��4�P�㭯��I\\u0018gP���\\t�\\u0013[\\f^/\\u0015X��\\u001aK�P�F\\u0016�n:\\u0011�5\\f����\\u001e#I�����\\u001c�O\\t$9\\u0019�fx�c$�N��d\\u0004�on��v>?#�b�o)�@�wn\\u0016Sb��W\\u0012����\\u0013E�H��\\u001a�}��\\u0001k���D��b�\\u000b)\\u0012���l���u��\\u0000:������y\\n\\u000e\\\\\\f�c\\\\\\\"��\\u0003R[R\\u001b�t���\\fζ\\u0011�k\\u000e�>\\u001d��j�|�\\u0004��`[P��G�����2L�|XN<{\\u0015�)�YJ�;�?\\nA��ϐrL�\\b\\u0016V:�ݭ�Pź\\u0000I\\u001aU�\\u0018�C�@���?��i)�g�#i��A\\u0002�.ޔ\\u0014���\\u0000\\u0004~'�{S��55�\\u001f<Ѵ��I�7��K���p�6.lR\\u0019B�v)\\u0017\\fA`�m\\n�\\b��_cN+�U\\u0001lU�a��\\u0019��`��bŵ$��*ŏ,D�)6�R�Xﶗ4�9\\f�1�&\\u0016-k�$�\\u0016�Lc��\\u0000nd�\\u0000%���∎��լ�&����s�\\u000e�K��\\u000f��/�2���2�\\u0019�\\u001fk�,t\\u001a���1?�Á�ʏ\\u001f�\\u0018�]��}�U��қ���d\\u0004l���!!��\\u0000l:|(.[\\u000b\\u0006Li\\b�H\\\\\\\"b���鵏Sz��Tp��q�Q���$�V�X�)W+�`g�i���%��P�fݫ}�H?\\n/?�\\u0013H\\u000eK�*�jX\\u0000=N��\\n\\bc��c_\\u001c�wF\\u0017�|�5�l�21\\u0015\\u001e5}�;>��ԁk�6���I�Z\\u000f��\\u0018\\u0016B�OS\\u001dD�\\u0014\\u0007\\u0019�.\\u001c��\\u0011��[)���ܷ�D��R�(\\n��)1�Z�B�r~=��&Ŗ=�\\u001do�?PF��W=�2��c;�\\u0003\\u000e��~�B�@;-�\\u0006�)*�ALj,9n,ǟ���L�o,)\\u0001\\u0005���\\u0018�\\u0005���T�\\u0004�\\u0018�3\\u001db7��:\\u0012j���4�(�N̅�\\u0001�\\u0005�����]br��L�\\fo\\u0012��\\n�}\\b�\\rh�[�����8p-\\u0000�u�C;�r�fvW��-\\u0010$�\\u000e�{�����\\u0018\\u0019\\u0000�\\u0014ԩ\\u00167�\\rl��A\\u0001��+1�O@I�j�#���\\t�X� \\u0010\\u001dT\\u000bh\\u000e�I=�\\u0000�m\\u0004�\\u0003S4�\\u0000\\u0013�ɑrc\\n-�[%� ƛ�;i���>*E�\\u0018���\\u000e�u��~\\u0003�L�q\\u0016,���)��[�'�\\u0005����e�|�Hc�\\u0002�i\\u0007�ޯ�t�Ò=#�\\n�\\u0018����vz6��Ɉ��&�2#���\\u0015O\\\\\\\"?fP\\u001c����9���2 �T�J!\\\\\\\"7a���#�p���q�3!�H��\\n\\u001d:���WM>\\u0007�S§dH��`\\u0016��z޼^S\\u001b\\u001b\\u0011c�}���V����w΋\\u000b\\u0004�Dz\\n'��8�V-�\\u0019�%t�f�H���6$.��9}��\\\\}\\u0003���U�)��{!*��U��_�d�h\\u0011��I�U�);X��ӯj�w�%1�cȲ�Z׸\\u0000\\u0006\\\\\\\"�\\u0000\\u001b�|u��^��Y�\\u000f3G�g\\u00183g\\\\`)t�s��A�\\u001a�~\\u001f\\u000f7\\u0000���о����7۴��(�1rq��ؐ��Sc��ލƔ�˓\\u0006T���! �q`7_�\\u000f��.n<�@�4�\\u0000��m~�DΫ��K�\\u0001�\\u001e%�3�\\u00190�q�\\n�\\u001fD\\u001c�]�r���v���\\u0014\\u001f\\u001a�oN�Wo\\u001e1\\f�'%�J�^ſ�Pg��\\u001aB�(@5R-p/�4��2%Oq�\\u0011\\u0006���q�G�8��ΚD\\n��d�\\u0019N0\\u0015\\r�ᮻ��<��`,�8�\\u0016�*���P܇9<x��S����\\u0019\\u001a�7#�\\u001f�a��_�A.2�z��\\n[Cc��~c/(e�9\\u0019�YC�$�m�;\\u0011��\\u001a�\\u0000\\u000b�\\u001e_}4���'����\\u0004\\u000b��`��\\u0011I8��E�XeR!P��v����kܬ\\u001cd��'�i\\fPt��t֎\\\\�%u\\u0006?\\b�rnI�\\u0000�S��C�\\u001eI\\u0014�\\u000b��\\u0000m���%{�bT\\t\\u000ex��\\u0019p���'o&V8r`R\\u0014������N�\\u0000��c?�1$j�1�6a{�k��Ҿc\\u0017\\u0016lђ�4��K��\\u000b뮚v�x��S��$J�YAآ�{o{�oVds\\u0010C�\\n�^LyCyM�\\u0000z-\\u0011E ��YH�ƅ2fR�p)\\r��A��;\\\\W�_��\\\\x¢����=4�yg\\u000f\\u001b$�b���:|\\u000b|i�o)��Ǵp/�UpT�\\u0007o���\\u001cI�r�1�\\u000b\\u0015\\u000e��\\u000f_�U\\\\\\\"ۉ\\n(��\\u0003�V��To���\\u0019\\u000b;\\u0007\\u0007M@�\\u0007\\u000eB��r�f�\\r�b�l'+ٷ\\u001d\\r5XD8�+)\\u0015\\u0011�G��\\u0015*�]>4��y��@��b̽:�Қ��'2郓 �b\\u0012��\\u0000;\\u000f`�:�-}�&L�z��\\u001eD�1\\nZ��y1UK�bH�9e��*\\u0002�w\\u0012\\r�\\u000e��\\u000e'�i\\u001d#���E&��I>�VG\\u0003\\u001f\\u0011�%\\u00069v\\u0000` ������C���\\u001c���Z�E������4�3i���2vq+�x\\u000eZ$\\u001e\\u0002\\u0007\\n?\\u001e91�$\\u0011�&�����*�\\u0005S'\\u0007�}��� �D�n�p[�k�Vb�\\u001bE\\u0004�m�Uo'@�\\u001d}(L�by'\\\\�.�ʍ\\u001b;\\u0001��\\u0004(=n;��eP\\b#��҇Ǉ�?ldP\\u0001��$|gASϜ'Ďs*�E�J\\u0007�\\u0014\\u0016��u�L���>8�/$\\u0006=�U���7���\\t�&g#����\\u0018��@�)b\\u0005�\\u000e��]�\\u0000%�X ��\\f����@\\u001a��^�)I�R�\\u0015��K|��ݙ�]\\b���И��N�o:#?\\u0019�'Ǟe>H٬�r\\u0017���J8�<<���3�7��s�\\u001f\\u000e�g\\u001b*��Ƴ9xe�C!\\u001dX[�\\u0007����\\u0000\\u001d�\\u001cl��܊�+�9\\u0016�(\\\\\\\"��#}k*\\\\\\\"�VB�.����5���fq��X�Fd\\n�2J�]v�[Mm^*��d}�X\\u001030��ە\\u000e}�_N��ˏ#3=v\\u0001攀�v�h�[�E\\u0003��J���/�܄\\u001d�g�z~\\u0015-]'Y�O$���h\\u0012\\u0013)կQ��Ad�Ł��!���\\u0001��\\u0000F��f����\\u0002Hx�\\u0019M�u��t�I\\rki�[R�d͗(V�)|j\\\\\\\"�X�\\u0000\\u001d:\\u000f�\\u001f�\\u0006W\\u001eq�\\u0005h\\u000b�fSr4�n��s�dTP��\\u001a���5�|N�l�2c�{�GWH:�������lˉ�bή�E���o�-Wr��e��/�%��ët�~5�%\\nf\\u0000��\\u001b�Z_KЧ\\u0013.m�!;�-*�kt�}t�%�:F�@�nzRS,c/�T�\\u0000$NA2��n��*3\\u0017\\u0003����\\u0003�\\u0001�׾������'.�8�yqՖc`�/�c���Y\\\\x��vV\\\\�vW��\\u000b(����W\\u000b\\u000f*d\\fv�X�\\u0000�];\\u0013��,�\\u0001\\u001ai���aň�\\u0018�e̚\\b�z���\\u0016�O���Icg�\\u0006�����Db�ܞ\\u001a�߱\\u000b4q!b�)�����zu�\\u00148��\\u0015\\tH��n!�\\u0007M����?ǹY8�8�8�4SI�dn�����\\u0007O�\\\\���*�9\\u001e�N<-�%��4$H!uދX3�l���\\b̃\\u001e5���\\fX�\\u0005���a^���4��o��\\u0000��\\u0010\\u0019�6$k��^�@\\u001c�檬\\r<!\\nD�5��E{��Q��1!�~��-��f��:��\\\\\\\"�+p\\u000f�x�\\u001e>f­�\\tɇs�h�q!fft���\\u0012Ff�\\u001b��(����\\u0001\\\\q܎_�C#�4ff\\u0003oM�Gʽ�&H������uր�l���ǝ\\u000bA%�@7C�w\\u000f��d�,-e\\u001b[�>��q�DL�#�\\u0016�\\u000bUG泌s��\\\\\\\"�6Y�&�\\u0018����J�\\u0003On�t�U��\\f|�1�\\\\yQ�\\u0019\\u001egr�:�D�?\\nq7\\u0012a�LL�\\u001e�J�~�\\u0018i��cڀ��qT�\\\\\\\"1��\\u0014f�b�\\b��\\u0000��}��fN�\\u0019\\u0019�9l}���\\u0010\\r���\\\\����ƃ\\u0014F�N�7��b��\\u0013��zQ|�!����!\\u0005��#\\u0007 �F�H�)<8Q��\\u0018Gr��6�\\u0005�N�c��j��!x�\\u0017Ly6��\\u0002�ڗ�Rŭ�8�\\\\\\\"�j�ޫ.�ṱ�W\\u001cz�Ŋ�+\\u0004\\u0000�\\u000e�B\\t����\\\\\\\"blٌ$\\u0018�\\u001d�\\u0002\\u0001�\\rl��<�\\u001c\\u0011����\\u000b\\u001b\\u0006\\f��\\u0007ʱ��i\\u0016t�!$%�[\\u001d@�U�,�a�<\\r?�\\u0003��\\\\�f�e�]yP�*T�[�T�R�J�*T�R�J�*T�R�J�*T�R�J�c+\\u0013��S\\u0005��\\\\�\\u0012l\\u0007�ʟ� �%�D\\u00124n�LE�M��\\u0000��Y��+\\n�4� cm��\\u000f`-�~6�4x��Aq\\u001d�\\u000f���V$�'�uL�`�p\\u0003N�g�Xч]�im��\\u000b_�W�\\u001bƶ$\\u0006�� �*ƉUlnH�[�on�ErW}�\\u0000p�V�����Z*Ë�̀0Ő���G�JO\\u0019��?�<�e���\\b+v��\\\\��1�X@D��[\\u001b�f:^��㥐\\u0015g�\\\\\\\"�\\u0000���5�2C��*Gs?�\\r�WC���\\u001f���bI:\\u000eU�O/\\u001aaUŗ��vb {\\u0000@���f>\\u001f\\u001ck\\b$��o��8��K�4aA(UB��\\u0017k~tD��$bU�F\\u001e�\\u001dP���cT�ĭ:�����\\u0003c��Q�\\u0003�픽��Dkhל�й\\u0000��\\u0012\\u001b��v�nM�F��Ɠ�\\\\\\\"��\\u00167~���T�&)\\u0005\\u0014�U쁇pjܜ�Q��A���,\\u0017M,\\u0001�\\u0010=\\f�2a��!���\\u0000��?�,��b�D� �g\\u000eG̕���Ë6\\u0018�y�l��������㜐�\\\\\\\"r�\\\\\\\"�\\u001e2�[e���{^���s$�Lm\\u001f�ƣd����T,\\u0017V6��\\u0014����\\u0019�\\u001f�\\r\\r&\\u000fO�\\u0007!V�&�n����\\u0000�p�q�}M\\f�L]��U�,4�_�\\u001f\\u001e:K�\\u000b�d��@��W\\\\�C3\\u0013�X.Y�\\u0007);J�ʯ�a���-�V�%�\\\\\\u0017�]��\\u001a\\u001f-�$X����a����Iqy�PA7S���)�\\u000f������.&��vv��R\\u000f˷j\\u001d5�����-��eȾ1�)��F���q��Y�~�$_�ͫE��I2��Deڨ��k�Q��o%��p�\\\\\\\"����RMƟ�T�m�,�C\\t!`�\\u0000���ts��i�\\u001b/\\u0010E֐OU_�����В![��9��\\u0011�e!�H�\\u000e�t�g�W�!dqp\\u000e�6��~�j���\\u00192*�\\u0004J�$r��v'�\\u001d�b��ĝ\\u000e��\\u00022��\\u0000��J�\\u0007M���X``��9A\\u0017\\u001fA�ޖ�i\\u0002S-�RJ����Z��q\\\\\\\"�y���D@�5�\\u0012:�q>4�@�e\\u0007u���m�F�\\u0000\\u001f\\u00011�\\u0015��&:t�+L\\u000e�\\u0015\\u001bUM�i�����TV�P-�th��m^�>Ú�\\u0012�G,L@����zS���E�\\u0018jA�nzR�`iy�\\u0019�� �7�����\\u0005X���m�/�ӯn�\\u0000�8\\u0003�q��\\u0019J3���>���P�\\u000eZe9��\\u0001\\t�\\u001e��\\\\�O\\u001b�qpa�3����-��̧��z\\u001b��1��\\u0006ǖgS�\\u0001`\\b����R�\\\\\\\"\\\\�ŊG��x��J�;�=z����h�W5��[���L\\r5��0�\\u0016A\\u000e�Bc6�Scz>G2�\\u0013�����ˎialI.U_qBA�+^��,�<i�<����\\u001fv��\\u0016\\u001dS2)�V\\u001c�@�N�x���^l\\\\�FZ��ech���\\u0003��֍*���pT��_������*K\\\\؂t5��'o�G\\u000e�a@\\u0014F�k\\\\\\u0003��P\\u0012+> |�e��Ȑ\\b\\u001c\\u0017H4�~S\\u001f\\u001aB�ZV��\\u001a��\\u0000I4�$��ˌ�\\u0002�Ԉ��717%h�\\u0013+\\nU�\\u0015\\u0001Ycfr\\u001eĕ=Z�\\u0000�T��_,�L�Ң,\\f���o���)�z�v4X��o�\\u001d��\\u0010X��t�����B\\f�\\t�9P�I\\u0007b\\u000fN�\\u001a��Í�˟\\tU�U\\u001b�/��䚮S.\\u0010�)\\u00126��\\u0018tߴ6�n)��s0ĸ�\\u0019\\u0001��Ҷ\\u001d�T#zё�<*�\\n�b@�v��Ҩ�\\\\\\\"�ȏ��(\\t�d6\\u00175~7\\u001b��d�a��\\n\\u0001$\\u0000\\u0014_K|�6\\u0014�������a�1�O�O[w�|\\u0007%\\b�a�֖Y\\u0019�\\u0011��\\u0000\\u0016=�Q��\\u0006�ʗ�bΪ�\\u0019��-��}*�����`�\\u0016�9c}��}\\u001d@���0�\\u0017�q$���ҡU\\u001bK5��Ҹ�$e�ÀL�\\u001cN�ȣEf \\u0000Y�Uoܠ���NAm�\\u0018o�\\u0005u�_�\\t1 \\u001f�(��d��B��\\u001a��\\t�Nu�����ᑃ�Gk��\\u000f�O���\\rD�c!*��\\n�7�j�e\\u0015�r��H�����h�8׌�ApG���&�G=+���\\u0007\\u001c�\\u001c\\f�\\u001e\\u0011�S|\\u0018\\u0019x�m�gV,\\u0001׫5�\\r���Fb���Fݼ\\u0011�6\\u001a[�Wb�\\n���;\\\\\\\"D\\u0014ǳ�!�_�\\u0012c��0��H��ˣ\\u0018�\\u001dA�Sn\\u0016�\\u0007\\r�&\\f:dː�f%\\u0016&\\u000b���&*g�\\\\��u\\u0012��Z�\\t�o{�U'\\u000f�q>���N�/��^��Y�\\f&ș���#�ȵ��Ҧ�#`��\\u001d\\t��`\\u00012'JV\\u001f'+,\\\\\\u0010+�a�\\t�\\u0000�O��\\u0014X�\\u0006ō�R߼K\\u0006\\u0007wQcoΫݑ?!�\\u0001���#\\u001e���X�|�4Τ��`C\\u000bZڟ��_\\u0015����ΰJ\\u0002�BF\\r��\\u0012�\\u0002)u�L��$\\u001e���:\\u001e\\u0018��C�q\\u001f�����6�>+\\u0005�0��^ע3x�!�y2n���ot����]ut\\r�\\r�Ŕ�󧴮5�hܽ�Y�W�\\u001f$�8p�b��1�8Α\\u001c�3\\fm��\\fis!\\u000bo��O�y��gl\\u001c�\\u001c��\\r�m��}.[�4l\\u001c^:��d�\\u0017'�����M�>6[g�K$�\\u0014��\\\\\\\"\\u0003Ok0���R�@:�\\u001e\\u001e�� 9q�\\u001b\\u0017���������4��\\u0019K<�l�p�a����F�y�Ɍ�/��C�j�rn���\\u0002���acd#���1�\\u000b}t��\\u001c��q7���1�&��{�M�\\u0000�ǅB<�\\u000b���\\u0012�3�\\n\\u0001�T�7\\u000eL���l�\\u0006e7_�V������\\b�\\u0002\\u0010\\r�Z��>nTF\\u0010�8�\\u00120�\\u0005H��5�s8�\\u0004i�w`������\\n̑�i���o'\\u0019��ܗ�[��~U�\\u0011\\u001cn���k\\u0000��\\u0000��\\\\\\\"���\\n6G!�ۨspI騮8\\\\|l���ʈ�ʪV&�,\\r�t�ҙd�\\u001eg����;\\u0010\\u0001k\\u0001�m�@�{��c��]�>|l�s�hC\\u0016�]�\\u0005�c1�J�Lv.�?_@��֯Ň\\n,e�+���f���^��|cdg�4�A\\f{�__�:t��\\u0000�\\u0018D�\\u0018�|��\\u0011�f�POjn��Q\\u0003�`|��\\\\m��]w%\\u0017l\\r\\u000f��0M\\u0017���\\u000b۪����M��#��><�\\u0004�X\\u0001���\\u000f�\\u0017��\\u0017\\u001f�.\\\\\\r4�7�\\u0016(6�/�\\u0000���E�f��\\u0017�3t]����=\\u000fOJ4BC��$iʵ�>+/���5\\r�\\u001a�u��L�\\u0015L��\\f�!V\\b\\bR���\\u0000�Uٙc\\n\\u0014\\fB�;T[qө�s�E�\\u001c��\\t\\u0012\\u001d,X0��iG8�텱��*��\\u0003V\\u0017���H3���T����V\\u0017Z{lTjt\\u00047��O\\u001b6<\\u0019\\f�ԭ�Ʃӡ\\u001f\\u001a��|��rQB8���Y4�\\u001f��O\\u001f�䱆P�T>�X\\u0001�zc���\\u0012�9\\\\\\\"6��2\\t�\\u0000ނ\\u0018Z\\u0014�\\\\�xV����ȍwi<fU�s�Ѓ�i^�\\u00064�)�\\u001f��U�\\u0001f^����FO��c��2s]P��k��z�j��M\\\\\\\"x�\\u0013w�w�:jP\\u00026����3\\u0019F4sN�qu�_ݩ�uץ4��\\u000f���1\\\\��!%\\u0018�l�*\\f���Y<�+���\\u0010�[\\u0007d!�\\u001an\\u001aڎ㲤<$p�CI\\f��[��{\\u001d�>\\u001e�Ԗ\\u001c��g\\u0005�yU@\\u0001_P==ƜE\\u00163�qVEǜ��@\\u0005��u\\u001d\\r/\\tq=֝��秏я�C���K:A\\u001f�w4�\\u0019<����$eR�\\u0001�<f��h����d�F�0.���$k]eA'\\u001d\\\\\\\"�'�d\\u0017�\\u0016 ��Q�#c�\\u001ek�n�\\r�8�6���b:Q5�N@$��Z����;��\\u0005]ߢToK��!\\u0016,��P]��s��\\u0000�;~\\u000b�H�ᐻ�q����|L�88c,�E<l���l�\\u0000�[�+̹������}��t$[�Q�ܖ��\\\\\\\"��3�\\f1&,�K\\u0013\\u0005��~j���\\u001c\\u0016�\\u0019`qbTI\\u001d��mn~\\u0006���\\\\��bJv�\\u001f��}�=5�\\\\>6*D!�,\\u0019�*�����j��\\u0000���9���0*1=\\u001a��\\u0000�Xiש�k�*.N\\u0017\\n��\\u000f\\u001dr]�q�PC0s%���?���Yf�G�\\u0016�*�sn�\\u000f��X3�\\u0011�K\\u000bC!?K��\\u000f�����O���M$Xx�\\b�\\b\\r'�B���Dr�p��!Qg@\\u0006Ēă����گ\\u0007qq��\\f�%�O���;����\\u0000���i�W�\\u001b%��\\u0011�W��c\\u0019��KX\\u000f~�nu��M�\\\\\\\"l�q4\\u0001X���=�+-���\\u000b5�c�\\u0016\\u001d~g��)��I2��%.�%�R�\\u001b���\\u0014\\u0015\\u0007֡,ŀ\\u0011w\\u0013Xr���(~�?m�e]Z~�\\\\\\\"��\\u000f��_'��1\\u0010��v\\u0006�=oj_����폂Ybr\\u0003\\u001b��{���z���nC���Y^!9���\\u0016E7�z\\u001a��x�<�%���nWҗ�c��T\\u0014�Ī6]4�a���C�iə{���Ӡۏ*\\u0005��X�ea��\\u0010�6��\\r\\u0013���c��\\u0015Wo���'���4׍�\\u0007*#<3G$�{Ż�\\u0000�j�\\u0016`�?ݡ��x���+z �?����R�͕2\\u0005EP�]�1�:G�4�����eG���L�fn�.�~\\u0015�V&:��iKK#1\\u0000\\u0000.�R-���\\u000b\\u0012e����LJ�{�&�Sҫ尔g��\\u0014�m��ud\\u0003[��Ph\\u000f\\u0015<�\\u001be�8±���\\u0014]�g~B��;\\u001b\\u000f\\u0012D}\\u001d�\\u0014\\u001f�q��ƭ�r�c�0-\\u001dȍVݭ�=�\\u0000\\u001a�\\u001e\\u0003\\u001f3\\u0018�L�\\u0015\\u001b�0:\\u001b\\u000e�0j�b݉\\f�\\u001b�\\u0016�\\r�\\u000b��Tn\\u0016�!@51�g(쿑�v����\\\\�*�*�\\u0010M�\\u0013G}��'�\\u001a�4n&\\u0004\\u000b\\u001c�\\u0011+yH��i�;kҀK+\\u0004�kFAuS�֚�\\t�w��N3\\u0000v���t#�=���Q��F�ӯ�c��\\r�Aň�6?�D��Y�<�^Lr��\\u0000Y^Um��*Gr=(���9\\u001e5���%�i\\u0012�W\\u0003K\\u000fO��~ݰ�8���0�����[�\\u0015N>o'���d�?4-*�����۶�OK��:\\u0013:���7 \\\\��8�\\u0000\\u0019\\u0015F@����o�\\u001amFI\\u0006l|oۗ\\r,ckȀ\\u0000Phm�P�{a$�}�ӌ�m#\\u0012.W�@�֭�\\u0005Ʌ`X�%\\u0010\\u000f'X�Z¹���(�*,�G�� �U��\\u0004���1�qɨp���&@�f��5��J'�Ɇ\\\\(rx�TF�\\u001a4cV\\u0000�\\u0017\\u001d��B 0M���ٕ����\\u001a�\\u0007/m\\u0007[WY\\\\�|N �\\u0002��k��)��\\u001d��[ѿ�9H�9_� x�\\b\\n�n������6��D\\u0011�S!�e�\\u0000!׶\\u0017!+��b\\u0007�\\u0018�� \\t�deR#�m�a�Z*,,�`��<�\\u001e�(��\\u001f�u�_;��e�\\u0018��\\u0002ʈ\\b\\u0001oܚ O\\u0003gG��\\u0005\\n��>���\\u0005���K�If�\\n�a\\u001cy��\\u0006��-u-y�2!�\\u001f\\u001fƪ�S-�&^D���@\\t\\u0001UW��Rl}h^c�\\\\\\u0015lVfv�YA��t�o\\\\��8�\\u0012E(�\\u0002��\\u0011���_�\\r�\\u001f���9*%k5�����z�{U�\\u0003\\u0011���Z�&P\\u0001`�^�h�2U~����p�\\\\\\\"�y\\\\-�ѵ�֟笘�QɔC!eY5'i���(iv���܌���\\u0016������W\\u0004͜g�\\u001e�\\\\\\\"^�l�on�U���b\\u0018���Y���m�Y\\u0017&$`A?�i)��+����q, (p\\u001e���w���3\\u0001$�nǎp\\u000f��\\u0007A��w\\u0007�4'�\\u000b�&�\\teՈ���<�y��<l�L\\u0007�e!��o�z�_\\u0015R�\\u0001=O����S8�\\u0000�.؆�\\u0011�n�!�\\\\\\\"f��\\u0006%�O\\u0013���˱,I�b�����)S��|(IH�s��\\u001d�T_u��\\t\\u0006�L|u!��\\u0007p۠\\u0004��\\t���<R4`\\u0010N�n��*sƥm#�i�Q.�WS��\\\\�\\u0010x��F�,y9\\u0013��h�T,��\\u0006�ӽ�4��\\\\��q'��_|z�[ݴ\\u0003�i���1�%� ˝���Dg�m\\u0004\\u0000:z�\\u0006I�\\\\�\\u0000���H�b����͉�Y�5@Π�}yV��3�tÝ��귫�u��\\u0000�W}�'�~k{� T^G\\u0006��\\u0015\\t��px�ɓ\\u001e�%*�ͻ�\\u0000^£����B1�ө�,d����/]j���B���E�ŃG\\u0016�\\u0015�~�k�wB&���\\u0019�4A���p� a�*����X��4�#��D���\\u000b�e�;D�E��./��7!\\u001d�TL�\\u001f��`\\u001d\\u0019��^��\\n�0\\u000f\\u0019�.d�>���U�����;�W���P�Ɩ/6I�%�B/����Ҩ\\u000bDV6F|����:t�Ch\\u0018�VŒp�$��-�\\u0019G�s\\u001d�oկ~����|���>�o�E��~��\\u0005q\\u0014\\u0006<yw�d\\u0017*U\\u0017�����\\u0000�w��!\\u0018�@ ��e]�\\u001f������ N�nv\\u0003�K�n\\u000eF^+\\u0001�\\u001d\\u0005u���\\u000f53ceC�Φ\\u0002YJ��{�h,�H�\\u000e�@ᥚi\\u001dd28�0v�\\u0000�I�e�\\u0012Di�o\\u0018�\\u000b:�t���}(���� \\u0010��,���� �\\u001bAo§n\\u0000��\\u0013��c��߸\\bÅ\\u0013�&\\u000f�<j̜LL�,�bd\\u00001V\\u0001�n��c�8\\u001b\\u001f6H����e��z^��ьY��bI:�q47e7\\u0000�$͓ː���\\u0006�\\u001b�۱�I.ĥ�'H5����Î�'��A홹I��TT�R��R�J�*T�R�J�*T�R�J�*T�R�J�*S�6Rqc%l\\\\\\\"m\\r�\\u0018\\u0003z�ȊѬ�\\u001b\\u0006Q#\\\\�\\u0007P\\u0006�����#B�=�N��Ç)0�\\u0019\\u0011��3u�.\\u0005ͻ�\\u0007ۥp�Ŗ:\\u0000oa\\u0013]F�n�b�f7\\u0002��k{j\\u001b���/v�����\\u0012\\u0017O*9ާ��z\\u001d}¸ڶ\\f���}�N�:T�\\u0004\\b��\\u0011\\\\K�b[�i{j{ܱ5NJ��J\\u001dĀT\\u0003{�4��f�\\u0001#�m}�ӭ�t��^B��Q��c�\\u0015ucy��\\u0010έ�K\\r�H1�R\\u0007Q��_x`�U]�X\\u00025�6��r8�r�lJ��� �\\n\\u001cg�4A%�a���m�\\u0006�������ِ��T�X�i�lK �$k!][��Hc�-���d��4��u���\\u001e�Ѡc!\\u001d\\u0000���kѵ��\\u0017��U�Q��b�S��m8jDW�\\u0007�U]�V��Ƃ抋�W|���\\u0001K�/e\\u001bG�]�\\fAw�m(A[���H�#�5�B+\\u0017��\\u001c��U���%�\\u0016@��\\u001d\\u0004F�҉�9\\bs�\\u0018Ȋ\\u0015\\u0000��w�ﯭY'�~[\\fā!h�$�J��obX�����b���\\\\wm�#\\u0010[�k�Z1�\\b�[pY��蚬\\u001d5���R켬���+%̒�n��|�U��\\u000f}��(��2����\\u0012ı_�\\\\\\\"�~���߿�\\b\\u0018��afOi�����k��\\u001eN^�XFN�0��H�\\u001b\\u001b'%�x��\\u0002�E��7�\\\\C#-��ۘ��\\u0000w]m]��+y\\u0018m/�؋�����wŖGX����f��U���FOM�j>�ϓ�ɑ\\u0017�/n\\u001c-9���g�(�\\fs��\\u0000k%<�\\u001b�\\u000f{޴��#�\\u0001��\\u0000�o���\\f�>\\f�\\u0010�M�\\u0013\\u0000�I/�h��zg�P�C\\u000e�@�]��\\u0000=\\u0005��2\\u001b�b�<p�[����\\u001e\\u001e�R�[)\\u001b\\\\\\\",lf#\\\\\\\"71��N���\\\\q����-�6�k=�f�[|�xs��\\u000e>-��I�KH�\\u001b�t=4���/�B����M@ۘ֘p\\u0014Eť�\\u0000�F�2u�M�4\\u001cF_ڵ�x�܍UZ�O���Z;$����\\u0003x\\u001a���-\\u0019�3�`F+>ThT�mP�T��\\u0000\\n�\\u0015��VY\\u000f�Fй�\\u0000�Ƣ�,�@�=t��XTa�\\f�'k�@�\\u0012Ug�\\t��䦙\\u0000���;m_h��։��6ˌ��2�\\u001dN�t��i-�9\\u0007R\\t\\u0006��:��7��J���Lk�\\u001a�e�\\u0016\\u0001��!��5䈒m��\\r/Wq�\\n�A+9w\\u0005�\\u0002.\\u0006�WS]�8SO��\\u001f�f\\u0001�K�{\\u000fƄ����G,�\\u0002<u$��-�:���\\u0010\\u0004,�-��iG\\u0018�!)�F�δ9\\u0012\\u0017U��wkam,}+7�\\u001b>C�m>\\u0019\\r�K\\u001d�ak�ߥ[����D\\u0011A0D_��=� ��S�Nh1p��K$�V\\u0018\\u001bP�N���N`�'JO��d�s9�%�ǡޖ�\\u0000\\u001f�(q\\u00193��G\\u001a�\\u0001��ʮ�S�E��bbٲ\\u0002��}\\u0000�\\f\\u0006�?\\u0007�Ɍ�3�Ό�\\u0003\\u001c��﹁��{G�w�ѯ���m�\\u001bQA�}O�KR���-y�w\\u001f��\\u0000��\\u0019`��Y��;�z-W� \\u0010��#�\\u0005�o�\\u0012^6��Ƭw\\u001b(�������h䀳E\\u0014�Z_귭!C��WQ�\\u00069E\\\\\\\"X��ދ�)�\\fc\\u0015R��RK[������b\\u0019Ր���\\u0000#M\\u0000���\\u0019n\\u0010\\u0017bnm�n��\\u000b�\\u001c��v��7;��������\\u0002\\u000f�s��� �,\\u001et\\u001cy�S��s8���\\u0019B��\\\\\\u0011{�)�no���1R��\\u0016>e��pW�pi�O\\u0005����1B\\b�駶[��~�}j�n&>.\\u0011$�'\\u0012��\\n��_�J\\u0007*�H��\\u0015�e��U�d�0m��>خgŚE��*ɑ:�1��!@��`�Lp���ǭɿZy����x��FH�7\\u0010\\u0006�\\u00166�XI6lC&\\u0015+\\u000b\\u0012#/a�F��{\\u001aj��ۨ��}sN/+#>4WkZ�c�k9�aN���&6�`C{YXn��Wr\\u000b<8�+:��Е�ji\\u001f\\u0017��&^L�\\u001cR\\u0016�\\u001c/f;c\\u001bA$t�Br�l�I<�K.L!��\\u000bX/�H�E�7-�\\u0006�����S��\\n\\u0017�;���4�ޛ'��n\\u00052RVYq�o\\\\\\\"��]�T�v��({\\u0016%@��\\u001c�\\u0000�L�>\\u001e3�\\u0017���reqm�=�z�jh̘ ��\\u0015\\u0012\\u001d�Ƞ��h\\u0017�Ux\\r\\u0004��T�<\\\\�\\u0012�EQ��\\u000b��¬liF=��Ia���_JQ�����0y1#1�)\\u0017'�ĝ׽�ӿ�<^?\\u001d�c��\\u001aس��Yn%ճ���\\u001eb]\\u0013�7b�z����Di�{R�E\\\\xN`\\u000b��N�܅6�y%�h����\\\\\\\"�\\f��v�\\u000e���Ŕ1�g�%�m&�A��alY1&�\\u0003\\b�_l�0\\u000f��\\u001dɦ0�DQ<����\\u0019�#A�\\u0016MZ&�@\\u0000i�7'����S)\\u0000:��j�G>GMĀ�~ZRo\\u0003���\\u0005��\\u001a�C��\\\\i�U\\n$��K�ߪ�m�И\\t\\u001c�\\u001f�唆p����v�&�\\u0011~��@:R�O�Lc�\\u0016\\u001aU\\u0004�7)�\\u0018��pv��OW���Ӑ�;\\b�%�����\\u0003��t�2�\\u001fʯܩ�6��$\\u001fO��ݧm(�vT�\\u0001\\u0018W��:I.�JƧ�,:\\u0016�� \\u0000 p3Dq���\\u0010��.S���J?�/61�(\\u000b'�h\\u001fM\\u0018��M�hA�/�/�\\u000b���aݍ�j\\u0000ܣ��}:w��yD��$�P�G�]ĝ����וa͓3�\\u0000��\\u0000�0��B��\\u001cu��lX��To�A\\u001a�n�\\u0001;�\\u000f��KW��!�\\u0019�c�fڒ��I=ƴ?!�\\u001c��T�\\u0010��m�'�\\u0002��U�d̹��\\u001a\\t\\u001a0N��iѭ�^G\\u0007\\u001aΝ��^&��]�cF�\\u000bc�\\n���}x�x�\\u001f\\t�%�9]�@�X��QD�^A1ȴ3>�o�~59����fWu+߱7�U1�ı�z�,��0e;E���oJ���em����\\\\Xώ�FE�6W�o��\\u001ai\\\\�r\\u0003\\u001f#�u\\u001f�\\u0006C b4\\u001d\\u0005���V�񹸭\\u0017(%T3\\\\\\\"�c�X\\u000b��k��p���\\u0019���G���%I\\u0018�k!Շ�4�|߼Ê[\\u0014���{��\\b��|�1ǔV��\\n\\u0004Un�3\\tk|m�Rl��Ւ�ni�`���.\\t����vt\\u0017f�0\\\\\\\"��\\u001b|�Ғ&JN5h�8\\u001e�\\u001a�A<\\\\�\\u0013\\\\\\\"���Wsj5\\u001at�\\u0001���ɑB�J ��8�\\u0002N]qVop�\\u0007�&\\u001d\\u0003\\u0001}��6����8�y\\u0007�!�v?]��O8ӄ8\\f�;(\\u0012��v*�����?�\\u0014��S�k\\n'�&\\u001b\\u0007á�1\\u0011Y\\u000b����s��\\u0016\\u001e>F*�:��x\\u0003Tbr0�ɜWv�1�\\u001a��\\tЍ��4�&\\f�q\\f�\\bY\\u0001\\u0016\\fw\\r5�}(�r[\\u0017=\\u0004Пz��\\u0017:����&2���y\\u0015T��\\u001d\\u0005�4\\u001d\\u0002z�'�9Ny@��D�움6�h\\\\\\\"��G�Ɉ3N�\\u0000\\fT��~\\u0016�R�l�.ze#mf\\u0000!\\u001a[m���\\r���A\\u001c�2�\\\\\\\"\\u0000�ζc�XXw�qv��qC\\u0017�E̝����V�\\u001a\\u0018j\\u0001�U��ˁZ��էW�\\u0014+���̪r#�ld%�k\\\\���=hLc��<����\\u0004�\\u0012c���E[\\u000e\\f��٘�#�܉�\\u000b�Q�����?�!lH\\\\\\\"�\\u0018���\\u0000�\\u0011\\u0004�S��\\r䢬4�i�]\\ba�'�x&��e\\u001bc�۱~�ǡ�)�7\\u001b!Ĉ�1f�}�\\u0003K]o�\\u001dh8��.\\u001elRb��\\u001eAb\\u0014�J�Ҏ�2x����B��\\u0005��\\u001bmqޢ��*�����c*� \\u0018���h#\\u000b��#�u�j\\u0007Q���H'lh����\\u0006�A�aʊLteUxT��\\u001f�a�]*�,����\\u0016\\b��\\u0010�\\u0003\\u0012�w[v����B\\u0012�+:A\\u0013�Q��^\\u0017�\\u0010�\\u001c\\u001b��\\u0018zmD�./!����2F\\u001aM�\\u0000��?�Y�Ry9E9�z\\u0017����\\u000e�?Μ��\\u000b9�w\\u0017\\u001b^�E\\\\\\\"�􋘇��h2�J�-�\\r���H���\\\\�\\b3\\fW���x3��2\\u0004�*��T2�#�4�$��2������T�\\u0006\\u001a��1H�m�|\\u0000\\u0002���D�\\n�Q��țu]�u/�r�\\fl�\\f���E\\u000b�Y\\u0005�F�& \\u0000TV\\u000f�l�Y\\u001d�\\fo��H�jg\\u001e,9\\\\c�Wr9c{Y�\\u000e��x��p�@��\\u0001�=z^����D�\\t�1�x�\\u000bi�w�\\u001e�Z�>t��M\\u0019A���]n�\\u000f�E\\f3\\u0000A��+@E񼌸�\\u0003�\\t�cq�O\\r&����\\u0006\\u0004�$Vm�$+o�h�\\u0011_/;'\\u001c��/oww\\u001e�\\u000f�\\u0002��Ɉ�e�\\u0000��\\t���M{�\\u001b�\\u0005��E}��\\\\�]�: \\u001b�}��v\\u0001�}+0�\\u0001�{9P��\\u0000��l��cO����`�e\\t\\u0014��c�\\u0000J���\\u0016�})f\\u001e�\\u001c�\\u001f��8�.e��o`\\u000f}\\r\\u001a��1�ș�Ҥ��s����\\u001d�-\\u0001�6Cr+cm䭏�-��E\\u0012���$P�,2�`\\u0019m��r\\u0013���F�Ng)���\\u001c\\u0016��n�`\\b5���W���G\\u0015����L�\\u001c^2ZQ��j}�m^Ő$������㶋mw)��\\\\�7�,B\\u0004��ť�\\r\\bm6��ҫ]B�\\u0001��\\u001a��B��\\u001c�_\\u001d�&F^���R��\\u000fک�o�؉\\u001e��\\u000f�~TdBiyl�L���\\u0004jT؀��?\\n��h�\\u001bƊ�c\\u001b\\u0001�_]hl�2�%,|q�m,��Yl��R�]n�=?�R�3cDLr5���p���\\u0003J�I��\\u0000�!Ŏr�-(/7�[�c�K�Jg�Ĺ\\u0019�$�ifA\\u0003Y�\\u0004llַ}i.7\\u0016\\u0004-�o��܉`E���9�Âx>�݄�\\f\\u0002\\u001d�|wQ1&\\t\\u0003��ق�\\u0003\\u001eF\\u0016N6\\u001f���Uɏ���\\bV��W��\\\\�x<�o\\u001a�bq���W$\\u0006M�\\u0019�e\\rމl\\u0001�e��hd.�4���t\\u0007[\\u001bP�\\u00162>\\t\\u0007%��8)\\t\\u0001A�����H�\\u0003}hÄWs��u�2\\u0006\\u0004\\u000b��ڊ��1�e��� L��<~f�񪏥G�\\u001a�\\u001a�(1>�ln5�QORI�N�\\u0003�\\u0003���1�d�64q�\\u0000m\\u0011�X\\u001f�������f�i\\\\\\\"�啀u�J�ԅ��N�$o\\u0014E��\\u000b�#1p,�E�3>���Ƒ�v\\u001b��\\u0005��55FT99eg�\\u0000���\\u0018�v��oӭw\\u000f3��|\\t�Q�H*l����1g��\\u0018���1\\u001bUA%캁�\\u0015H�\\u0010�(u��)�NE9P�Ǘ\\u0019�I�2^m�\\u000fz�.+\\u001f\\u0002R�0�:���pXu+z��\\u0019\\u000f���\\u0014�U�(=���m����0W \\u00171�\\u0003��a@�\\u0000WAG4\\u001c|��N�H�nI\\r��\\u001a�j� ��$*\\u001cV�\\u001c�N\\\\�)\\\\�\\u0012�\\u001a�x�E.��\\\\�\\u0013)�$f !\\u0017�����\\u0006T\\u001c~Q�yT�FF��\\u0012\\b���q�(���\\u0000X�%�)\\u001f�\\u0006��\\u001c\\u001e;\\u0007$Ñ��1ʶ�K�HM�:�^��m\\u0015���\\u0000\\u001d9Uc\\b3\\u0006�d>�Ԃ ���\\u001a,XyL\\u0015hìj[�-`\\u0018�z��ҽ�\\f>/\\u0012<�l�\\u0002\\u0000�ڤ\\u0012u�Ҏ�&>:O\\n�\\u0018��\\u0011�ܻz�C�yx��4�8�^x�g$\\u000b(�v��[[5V@��Ǳ/L���^5~23\\u001c��ɋ\\u0013�1�2A�&����\\u0018�\\u001f���ُ_(\\\\\\\"�����Ce��<�\\\\l�no��-�x�;*\\u0002َ�\\u0017�\\u001f\\u000e�[����D�� ���� E�sD�F���F�F�L0\\\\\\\"�o\\u0019\\u0002���\\r�_C�u\\u000b�F�/\\u001d��\\u0001�gvD\\t\\n�Tr4���ҽ�%���Ǫ�cq+�'꾞�qڃ���\\u0019b�\\f$��dI^Oy��Mu�����$��UR\\\\\\\"v\\u001d?R\\u001b\\u0011�[P��72h����K.\\u0005DT,�\\u0001�ƈ�h\\u000f�\\t�sP�;H�\\u0010��_������A�O.4X�*}�\\u0002G���zn\\u0017�&�\\u0010ȹ\\b���U���O�^���Ǒ\\u001e!m�cH%R��,*ʍ'P\\u000e�1�%�͹{$�A��ʕ\\f<��8̅��J��-�pʙef�i\\\\\\\" ��@#\\u000e�rȣj���.\\\\��)�U6��?�J�D\\u0018Q�2@WU\\r#}Zu��Z�4J[?�`P��e\\u0019��,�éc�\\u000f\\n\\u0007\\r&�\\u001cI\\u001eB��\\t\\u0019}�\\u001e�\\u001e�\\u0016\\\\Ym�\\u001ch�4쌷-kZ�n\\u0006��$Χ �ȊŁRñ�Y��drq$�L��n���\\u001f�P�\\n\\u0016�����[��D\\\\����\\\\C�\\t��]�ҙ��\\u0013E�0�O\\u001c��\\u0007B����ӯKU\\u001c�f�Y1�\\r�H��\\b��o�2Ǉ6dv�U\\\\$a\\u0019ԇrE��\\u000fZU6\\u0016\\u0004��b���B\\u0018\\u0015�,�MŃ߯Z�H3��\\u001b��\\u001c\\nr�`��\\u0019�0 i�ާj�|�q\\u000e4X��D�E�!��#[�@�9�,�RI5��w\\u001b�֘s->.i*���\\u0001��J��I����j�\\u0003A[�-ǽ\\t9\\u0017R����J�*�EJ�*T�R�J�*T�R�J�*T�R�J�*T�[N\\u001f�x1!��濒A�*[�7YT9g�ƫ�랿���\\u0007��c..e���Ⱦ�~���5�}�;y\\u0019QH.t:u=���q�=�ؒ\\b�`wڤhK�e���\\u0016r\\u0000��\\r�[��H�5\\nϹ\\\\�v��5�|�w\\u001b�.�Z��U\\u001f�q�D\\u0011����\\u0001#R�\\u000bܶۚ��@$�\\bԐx�x�\\u0015�@��\\u0005 ��\\u0000w�vO���\\u0018���\\u0003u���\\u001f��T�V+�*{�E�����\\u0003����\\u0003��W\\u001dSF�\\u0000�&b8�Va���}�����\\\\\\\"ڝ){�B��G��X\\u0006[\\u0010z^��Rg8�LJ�D@>B�O�(\\u000eE�d�Y0`�UF鍍����\\u0001+�Q=G��\\u001e��\\b�p�2[�ɼ�\\u0005h���5�i�U��P��ۥ�B`<R�qÍ�~\\u0006�mZlI\\u0002G�_y 7N�����W3/�I�ā���\\u0000P��\\u0014|���0�g�\\u0012\\u001cg\\u001b!h��\\u0016�Zf��p��z�\\u0003x��QVG��M�|au\\u0004����~�r���ċm�b\\r����ϓ��A{�n�z��[[R��\\u0019\\\\\\\"LEa��絃��Ut7V{���3:\\u00182�m1�;N�\\u0018�q�+l�&ͅ�\\u0016\\u0010�h�i��L�q򹩒w�Bƥ\\u0019����@\\u000e�ޕ�\\u0014�Yѓk�*\\u0018\\r��\\\\\\\"�5-�m\\u001f\\u0011]�\\u0014b6�\\u0006P�Vv�]5��\\u0017��\\\\\\\"�C��v6\\u0012O����\\u0011��~&�����\\u000b�*�ʠuo�t��{6d�I,�\\u001a\\b����\\f�O�ǡ\\u0000�M\\u0018m\\\\\\\"\\u0017�H,�86+�h�\\u000fJT�+\\u0013��xߘ�eD\\bqZ�i��S��iY�g)��\\u0015�B����6!X\\u0005��ן�r\\u00112%���P\\n�oe�\\u0006�r<.?\\\\\\\"Ѵm��\\u0002ֹbm��\\u0000\\u0001J�<l�^R\\\\YT)\\b|��\\u0002\\n�?\\u001ap$��c�cc�x�p�91��']�k�+H�ǰ\\u0015�-�޼���(�<�\\u001d��m+�\\u0004]׸\\u001doC\\f��%\\\\\\\"\\u0007\\r�>�^��h�7{�똸��rN��c_���?\\u0013��\\fب���l�#R�P���\\f\\u0019םR���X�$c]�\\u0019l?P�o\\u0004\\u0000ŕ�F_R~\\u000bY�L�l��\\\\\\\"���{\\u001dN�'�\\t0@5�\\u0019��r\\u0016�]�����O�\\u001c��s,�e\\u0004�r3\\u0002\\u0017M��\\u001f�^��9�LD�\\u0002�E�\\u000b\\u0000M�kK�A�`A�\\u0011h�f��z��Jyn{\\u0016|�\\u0003 \\u0001\\b\\u0000:oݻO�U��\\u0000<�̘2�:�0I\\u000b��k9��Vs��x��('\\u001b��e�Д\\u0000\\u0019?�Y�V����n\\u001f\\r�4~ve�&�ݍ�Ӡ�_X\\u0010�UQ�@\\u0000\\u0003�W�p������$y\\u0019M�d.�\\u0003��\\u0002�y��;���Q�\\u0016H�Ƙ��.\\u001e\\t\\u0010D\\\\&ҋ��\\u0010:u5���ːx2}�_�b5F�_��V�,8���b�H��/e�\\u0016�u���qq ��\\\\\\\"\\\\\\\"�u'���\\u001dj��)v��>��eŇ.?\\u0019P��;���6�}�9�����\\u0002�\\\\^֦��r��Ќ�E�\\u0011��% }\\u0004���YԆO\\u0014'E�N�\\u0013��ߗĉ�\\u0001@�\\u0004AY,\\b*E��\\t��4����\\u0002#��u�\\u001f�\\u0005Đ�rI���\\bgo��})\\u0016l�>AK� �[�oM��\\u0000r�\\u0014c�p\\t�jw1Ք\\u0013�\\u0005��id�\\u0012���\\u001c�2\\u0014f\\u0000+�w6�k|4��\\u0000A���/�Y��!����i�6\\u0015f\\u000b\\u0006�̀\\u0016`�d\\u001a�-�|�\\u000e<�A�rD�\\u0019�8����P0Ɉ`�l8D\\u0010�w\\n4�\\u001aۭ�Tӈ�\\u000e\\u0004,����~&\\u001e�ԑn�mV\\t�`���\\u0000ی(,D\\u0011�Rl6|e\\n,\\u0018\\u001b���o��>.H\\u0010��Y}�\\b�\\u0006�5�\\\\\\\"\\n�$�hiK:�O�_K�u�Ӓ�2�L�O<���K\\u0016�\\u0005��\\u0003)b��z�����&�!f�\\u0007�\\u001b�b�ɇ�L[hy,B)�)=mF�\\u001c�\\f\\t�\\u0014�{�[\\u0011��h�m�\\nM��ȧ+�٠\\u001f<G��x�\\u0015\\u00023�\\u0000���5Q�y\\b�$�V���p\\u000b;S\\u000f�o�U�\\\\�\\u0003\\u0018n@�G�]��+\\u001f;�-\\u0003�\\u0002\\u0001\\u0012�n�\\u001d��5�\\u0016Tذ�\\u0006O�d\\u001b/`H\\u001e��,�dl�`7\\u0002\\u000b\\u0000~T�qeu6��n��|�].\\u001a\\u001851���f�����\\u001e�Ê�\\u001c\\u0019���!�\\u001flop7���f&��\\u001ew,�\\u0005`z\\rmjhe�1�)*�����I�\\fd�L�R�Kmab\\r�V1F��\\u0006�C3��['J6Fu�D��R�;\\u001eL�ȣ��\\u00041'�\\u000b�5��r�G�\\u0015@R�Z�����\\u0000Me8��\\u000f-%he \\u0016\\u0006�a��S�\\u0019�\\u001a�ؐ4+�ڥ��fn\\u001b\\u0011¶\\u0012�\\u0000� c�6\\u0013h��ʀ�\\u0013�\\u0012L�ۅ���O�O���\\u001e$\\u00199���*H\\u0015 �5-\\\\\\\"�$�����P�\\u0000�0����琿�v�ɽ�P\\u0017n�G��[#\\u000f\\u0013lB�\\u0019���\\u000b�ڠ��o�i~S��Ƞ-��8!�3\\u0015���S'\\u0010>F\\u0014�a�V�\\\\\\\"u۴��d�PENXϋ\\u0014\\u0005_x%��\\u0003k\\u0001ޕ���\\u001c��7h���#o\\u001e�q��@+�Ĭ�V8��\\u0004�@�V���\\n\\u0007\\u0019�Y���YP8�\\u0000\\u001d�R\\u000e�\\u000fqי�v�(װ��ԧ5�L6\\\\h�~;n�jQz]V�\\u001d4����0\\u0012\\u0000��\\n����\\u001a\\u0013����z��#F���׿_]j�\\u001e�\\u0006\\u0000\\u0007_jg��\\u001fqC�' bv��\\u0017�\\u0007;9~�ꁝA�AӨ��T�\\\\.&L����\\u0017 u�B���<,X#�c\\u0017�-�2���\\u0007E\\u001f�3���qe�c��7���7K0b\\u0000\\u0000��@�\\u0004�:U��'��ǡq�\\u0015S�;\\u001eZ�\\u0019�\\\\|\\fe�\\u0000�F�\\u001a����E_��v|��T�\\u001e\\u000bn��݀a}\\u0016�\\n�\\u000b\\u001e\\u001ci\\u0000\\n6_�\\u000e���I�8��pbdfːK,�\\u0016�\\u0002�\\u0001nF�\\u0005\\u0007Q6�4Ѫ��\\u0003z��F�\\u0007S��zRnG��,���\\u0018�J\\u0013�t���Y�����<�V2.;5�I����1�\\u000ex촑���m\\\\\\\"ѯ��\\u000f�E���\\u00002��FK(\\u0001���X�!J\\u0015'q\\u0007]u��͝B��y��\\u001c9Q��S�x�j�kn��\\u001f_�ҕ�K��9\\\\\\\"`U6![0r\\u0005�\\u0016��.j)��\\u0010�\\u0006����\\u001b��VA������%�琍o���\\u0004�U:-!1\\u0005��\\u000f\\u000f��@~'�7֫F�-\\u0016t\\u0000(�@݀5O#�����\\u0005bqt�t\\u0004�\\u0007�\\\\��`�Q�>\\u0016�G���a�C�Jq�e�`�T\\u0005�r\\u001aߨ\\\\\\\"�a�Q�ə-\\n�律�\\u0000\\u0014'\\u0013�e��K k\\u0012\\u0005�h���\\u0010,n�\\u0000o\\u000f�\\u001a�\\u0001k�];VW\\u000b\\\\\\\"L\\\\���mf;X8�����i�.j^c;F�\\u000e�!\\n�k{�@��I醴��R��\\f�\\u000eLx�k�\\u0007_ժ�M$�4RM\\u001b,+%����/�⏑S.v�\\u0016=�\\u0001��o�\\fڪ�=Z�Ճ:L�3\\u001f\\u001eT\\u000e�\\u0011��5k\\r.?ƺ�?�d`E�\\f�ѼO��m��ʪu#[�-KFP�c3\\u001c�;�A�?ɜ`\\u000be\\u000e����Ir��x�y`V,\\u0014m\\u00040�X~\\u001aP�N�yX����β\\u0019\\u0000�@�}�\\u0000�8�X2�\\u0014*4q\\u0012�@:\\u0005'D'�5f\\u001e3��K��\\u0017\\u001c�\\\\\\\"@�۸m�[�(�\\u001cn��V\\u0001�t��\\u0000b�7�0b2�㜗D\\u000b��{�\\\\�p�ˏ!I\\f�T�#ud&�\\u0016�be�\\bdpN��F��\\u001am��9�eI\\u0004:*�\\u0017\\u0000\\\\\\u0012/{�[\\u0017\\u001e��\\u000b2�y�j@\\u0004�~���0&�mM`ő�\\u0018>C\\u0006\\u0019\\n\\u0005#~�z��`eǓ�\\u0015\\u0015��O\\u0010v�]\\b�\\u0013�cL�C��}�r�2������\\u0010\\\\��#����\\u0010�<,l�&ƖGg��F���M�l�{#/\\u001e\\u001c\\\\�X��&�>�^��\\u0007�Q\\u001a\\u0003�J�xGw!D��1\\u001dZ���O��l�W!���O�����\\u0006Nv4��\\u000f�\\u001b�w\\u0015r`K,\\r,J����\\u0016\\u0003���c�$gm�W���\\u001a��\\u0017�J\\u0015:��8S�i�����4���yQ\\u001c\\u001aA\\u0006\\u0013\\b�\\u0004��q\\u001fWK[��+��������+y��*0��ꭡ\\u0007J��\\u001f\\u001cr��\\u0011T��lW��3{\\u001a\\u001f\\t\\u001f',�S$�\\u001e��('���k&G\\u001e\\u001chF\\\\�r�\\fa\\u0006�X\\u001et�\\u000eR|��ibإ��۽�n��[S�V\\u001eK\\u001f�ȓ\\\\\\\"\\f<��+\\u0014���H��w��I�0�T�\\fPۤtCn��؊���3�7\\u00140�\\u0000Ňs\\u001dn\\u0001ak�@\\u000b\\u0004z�\\rj'���\\u0005�u*Y\\f\\u0003`�6�v�#�e���\\\\��2\\fWܫu\\r����)�8��i�3L\\u001e)\\t*�K�����Q8o��\\u00198�i$�4e7(�t\\nO�UK��˖hղ��1ﲫ-�\\u001fO�\\u001e�\\u0018����*��\\\\\\\"1����밞\\u00159�XR T\\u0006\\u000e�=\\u0000\\u001fV�\\u001a���a\\u001fں����E����f*:�)V[͛\\n��m�6�-���\\u0003����9��y\\t\\f�v�\\n�:О�:�F'��\\u0018e# %J�0��\\u000f�:y�ab�c6G\\u0017,r. o��{_��~T���M��FY�͘*�3�=t���L�e���\\u001b��0�\\\\\\\"�F���ץS�9\\u001c\\u0011\\u001e#H�!`�5\\u0016n�6�*ͷq�j�%�.6�\\b�\\u0010��EM�q�F:�*�ꎱ\\u0015;�0���q�d�+\\n\\u0018�\\u0004��K��a����-ӽu���E��\\u00128\\u0014��\\u0018,��\\u0019�'�W�Yʟk\\u001c����D�b#`\\t\\u0004w�\\u0015\\u0010\\u0000�M��}MO,\\u0015�U{}�E\\u0006׆6%��h��1����\\u0013\\u0019\\u0003y,\\b\\u0000\\u0002-f�ؙ\\u0019�,�*\\b�y-\\u0012�!N��q��0\\u0013\\u0012C��M��,���\\u0006�\\\\\\\"��8��ra�H�1*N��&�\\u001a�P���\\u0018�v�\\u0006�<\\u001f!�ĩ��\\u0001\\u0002�t\\u001ch�K��L� ;\\u0003\\u0011#)�v�ڹώ.C!��v�\\u0004Vp\\u0011�#�\\u0017�]��M,\\u0005���F����\\u0015E��5JgO���j̱ʂ�\\u000e�W�����7\\\\�!����(\\u0017\\t����\\r��\\u000e�̓\\u001a�U~U�q�A|�o\\u000b\\\\\\\"5ј1�m\\u0017��v���<fe����&@#:�P���\\t\\fhL���V���x��B�zX\\u001e����ś$b��\\u0016��e��nA=�F�NӤ�\\u001c���c'6C�\\u0004\\u00028\\u000b�I�91�Vd�y\\bE\\r ro�\\u0001Ҝ�1�V8q�V6Ua����\\u0000\\u001a�ɕ�ʲ:��\\u0003p�ڏ�hx<�H��@�T�����04\\r��QKC\\u0010�C�\\b��|rq�\\u0017#\\u001e0\\u0006C�\\u0017�\\u001d(_��eÐ��g�^ŬIS���׹����K?&\\u0013a>�\\u0017\\n:m\\u0004�5W#(��\\u0002�A\\n$7�\\u0006�K������(~c'È\\u0015�a#\\u0005d�u\\u001e��Ep�t\\u0007�\\u000e#�\\bƍz��ae\\u0011\\u0001�I�\\u0005u�a�x�H�\\\\\\\"n�\\u001bYN�׽7�$�ÄK�ge'�\\u0006��w~\\u0016���.G\\u001e�*��eڑ��\\u0011��j�*�6<io�ڎo`ċ�_��(\\u001a��Z��#\\u00199��q���Z\\u0006�=j�\\u001c\\u0006�3��ĩ#k0�{^�F!\\u0019���CcH�7�[j��U_��01��|��9}�\\u0010�͢-ɲ��ј��9�/%��c4n\\u0007�Enͷ����,���\\u0007��)��\\u001dq�l.b����Dѳ�\\u001c��5�\\u000f/s�{\\u0003��H�X��~\\u001e����\\u0004+\\u0012��\\u0010�\\u001bH$��L9����D�����\\u0019��!�����35����q��\\u0017g�}�@.�1��� �q�\\u001f9q�Q����\\u0001�'�޻�iylc�;\\u0012��p��.�\\u000fC�s\\u000el�D�apF���t#_ΉLy�\\u0000�p�bg@\\u0015��\\u001d��m�6��V�\\u0013����1�\\u0004��[�\\u001b�x���a���W�$\\u001bH:����q�͍]Z!� H'���U�r�H�%\\u0002\\u0018K\\u001bK&�\\u0004\\u0013ҧ9\\u000eV\\u001f\\u0015;\\f��&�m\\fA;���(�HO�Ð\\u0000ˊU\\u0011\\u0011z���\\u0000�\\u0000p�\\u001c�\\u0013͌��\\u0017�����\\u000e\\u0002�u\\u0006�Q�YI\\u001aF�*ʸ��K�Qr���3��\\u0015d9�bE��>��V���Q\\t�H� ŐŽ<�+\\u001b�,u��,��\\u000f\\u0004\\u000b�\\u0012\\u0003,K#��Pu$\\u0015�mEa����\\\\\\\"�\\u0017ۨ@nQOE��ь�OR��5��1�¥q�'��z�L��U�v\\u001f#��̫e\\u0011�\\u0013�\\u001b\\u0018�7u\\u0017�{��>lq��A\\u0004�)\\\\�&�B��\\u001d��D\\t&ȍ\\u0006ݫ\\n؁����z\\u0001�|�r�4^0%\\u0003z����,o�\\u000f7\\r`ly�I\\u001d���n6�\\u0010�\\u001b�\\u001e� 묬\\u001aq�ƌx`��\\u0003z����\\u0017$u\\u0017\\u0016 �^�NCa�FVtrYUt6\\nGq����=�r\\u001e\\u001chʺ\\u0006-\\\\\\\"��\\u001b\\r.~\\u001aד�\\u001f3�=�eU'n�7\\u000b�U#\\u0002I\\u001a΃�ϥLػI��BФ�o:��/\\u001a��J\\u001b\\u0013��ٜ2\\u0010���\\rcש\\u0017��O\\u0012�\\u0012���\\u0005��\\\\\\\"�\\u0015P/�/Z��M��y�%U��\\u0010�.�e$�{�h�|\\u001chT�ƫ��l��\\u0017�^�\\u0005@H@��C\\u001d\\u000f�\\u001a\\u0012�a3w3��݌\\u00070��L�z9\\u0019R<�Q�;D�\\u0018w\\u001fM%�\\u001f\\\\\\\"|�Sw��������`%Ǒ�\\u000b.�E���u:z��FG\\u0016\\u001a�\\u001eN0�9k<r�~��@\\u0015|�N��Tŕq��r��\\u0000/rF�ON�h|��1�~�\\u001ap�  ܿ���������h�\\u001c&�+v=�;\\n�gq�|��\\\\\\\"�\\u0011B�w�F�{�n�A�Y�O\\r��\\u001f\\u001d�\\u0013�ؗ\\u001f\\u0011}~5\\u0018ip]\\tߍ;�0�\\u001b)g\\\\��J�L�m4%J�(+�R�J�*T�R�J�*T�R�J�*T�R�J�*Q�v\\u0012�N�+\\u0018�&ŇR�V�X���H�H@\\u0014�)��t\\u0004zۭ'\\u0018Y8\\u0018P<�\\u00167e\\u001dP�p��O�\\u0017O�Q\\n~�,�zm\\f;���H~#J�y7�\\u001d�*��\\u001c\\\\\\\"\\u0007�J3��2�o�#<Q\\u0012��Q�\\u000b\\u0010�\\u001f�2��9\\u0010���D���o�}\\r��\\u0017���V��\\u001d\\u001eL��u.�N�e���n�����OSQ~Fv�5��8��ŏ\\u0017���#���R���7����\\u0005��lop/^�22J��B\\b`4�4]�}zפw��X{�[\\u0018\\u001cLǴ�\\\\�2X�\\u0012)\\t�\\u0001�F6�z\\u0002k�I�|ɡt`���m{_�91���]lI�~�\\u00003TE�\\u0004e��Y��sk\\\\�k:��r�\\u0014�\\u001a,lN��Dy͗\\u0007i�Y��D���d\\u00138�^�E����<8c�țE�\\u0005�?�rn=){\\u0013\\r�Qk�\\\\\\\"���^9dy�Ș\\\\\\u000e�\\u0007�ւDA\\u001a�c\\\\�Y��@�U�Vա��:X�H�Ef��фRF.\\u0018�\\u0011�ҧ\\u000f��ʄ�\\u0011�A\\u001e����#\\u0011bG�\\u0003�@5���H\\u0016Z��{���\\u0011����\\u0000��\\u001e�M+��\\u0019q�p�s�\\u0006��7�O!��=��z\\n�[��\\u0012-ֈ��+\\u001b����P-v�1��tM&+I�\\u000f�p@\\u0006���\\u0011��AA6S�\\u0006\\u001ci�F^�\\u0018�B\\u000f���+I��\\u001f3�11\\\\�%\\u001fU��X��t=����q�E\\u0012�D�\\f�� \\u001e�>���z\\bS\\u000b\\u0013���]$�2.<��8���p\\u0007�Ew��l�\\u0011���i8x��A<nn�\\nm�,M9\\u0000\\u0014�Πk�K\\r+#��&?2e��uT �\\u0015gE�F��Hٲ�Ru|M��\\\\\\\"�\\u0013�C\\u0014L��\\u0016\\u001e��6\\u001fָ��#ŖWV,e������ao��\\u000f�df��Ƿ۽?e\\u000f��\\u001e��WW�TF�c����\\u0010j)\\u0004��ϋ6\\f@KZ��\\u001a�\\u000b~�ze�bI\\u0002!\\f�\\u0002K�Y���P+4\\\\\\\"t�F��-�B����\\nѼ�\\u0012�v\\n�\\u001e��j?\\u001a\\u000f��DX܄�9hN�>\\\\\\\"\\u0000\\u001e�=F��\\\\\\u0002DjgZ/\\u001b�\\u00146R1� Z}9�0I|��$]��iPu��*��x98�]�) �k��\\u0012}E��o��\\u0016��\\u0000��c\\u0004o�bw\\u001b�\\u0007\\u001b�|�.�^\\u0000�ʹ����^�\\u0001����\\u0006|�\\u000eLmp\\r��4��|�N<�#�J�G�M�7ipH�exؿ�B�\\u001a+�4r0�K.÷W��?\\u0012�`�(�JYB�[G�}'�H�M\\\\\\\"��f2\\u0014bǯI\\u0003+7N�nRu\\u00106\\u001e�jك�fT\\u001dv(6d���'�i��\\r\\u0012*����I�\\u0002�t���c\\\\\\\"%��#o\\u0007㴋Z�\\u001c���S\\\\\\\"��]%�)ao��\\u001d\\r\\u0007<�\\u0013J�\\u00057e\\u0017�z�\\u0002ݍx\\u001a͒]��\\u0005���\\u0003�\\u001bkY��H�mڪ,�G��\\u001a�6d���x��\\u0015\\u0018��#^ԍ��$�\\\\\\\"�\\u001eP\\u000b\\u0014&����I2��0*m���\\u0015L-<E?6K�\\u0015\\n�\\u0004���\\u001f�2�3\\u0013\\u000b�#�F��\\u00014o;\\u0007���'PY\\u001a9\\u001e��,\\r�\\u0000�VR9\\u0019�$25��\\u0003���\\u0014�<��������%��q`4�AaC\\u0012� ��x��l\\u0019\\\\�7p<D{Uxq�\\u0014b(����v�I=���9\\u000eS\\u0015��p��\\u001e1��G���Q�*b��D`�G�kI��h��)\\u0014^��F��^��ޕ���\\u0007x4~�o�7�%8�y�#+$�,�)\\u0016��Woz3\\u000f\\u0018���Eg��e7!���iY�$�.j����\\u0012@�bm~���\\\\\\\"\\u0011�\\u0001\\u001c��O�-{��T�+\\u00130ނ�����2�BU,P�OSΪ(1Lr�e�\\u0015�@\\u000e-k���\\u000eU��1Ai\\u0000X��KX7��N��[\\u0011\\\\\\\"�{\\u0013�X#t�\\u0000�f��szS����a,�Ѵ��\\u000f4q�e{Xw�*�q�������X²\\u000b�q��\\u0014�)$�]�#�i��Ɨ\\n9\\u001c\\u0004�u w�ҳ�\\u0018�\\u001eC\\u0018��\\u000fp$[C�\\u0006��Y(x�ˡRۍ��^�ju�ʕ�d�\\u001dD�\\r@� ׼� �H��\\u0000\\u000e71\\u001e��Fb�\\u0004Y\\u00198�D�����[�\\u000e�C�U������\\u0012�l\\u001b\\u0018�\\u0006�\\b?\\u001b�.,&ُ�3\\u0002�L�7h>���\\u0000�*\\u0012u�&�\\u000e1�\\u001a1,�H\\u0000�\\u0000?j�7����\\u000f\\u0019PB�\\u001eQ��\\u0000���\\u0014�\\f8�ǎ\\u0000�*��\\u0016\\u00166\\u0015�c��0F\\u0014D=Ȫn5׽�l\\u001c�#2><{|һ\\u0014���1�OA�\\u0015\\u001d)Xrv؇�O�jf��gTO\\u001f r�\\t[���?j��i?��\\u0018�\\u0002b�auQ�r�Ѕ\\u001aP�O\\u0016,ǎ�\\u0000���\\r���Z+\\u001e�f4�<�Xb��P\\ts���ƺ��t�sdrRgD�Nݪ�_oA�8�\\u00028Յ��>ds)���\\u000b�}զ�\\b�3Hn\\u0018�{P?��\\u0018\\n�\\u0016ތ<�\\u0007�i\\u001e��\\u0007&&xQ�a#8V*=��$����md��ڱ䂦�\\u000b�mM�­D�\\u0018��ѱyi��*4\\u001c\\fW���\\\\F,�dD�����p��ISϒ�4��ѹܪ\\u000b*/U\\u0000��kqӌ,\\\\��@'�6���RP�Wӵ����D�b?�*�e��\\u0000��l\\u0000�o�i#��\\f���55�\\u0018\\u0014��1��\\u0001kw\\u0007�Y���\\u001f/��B�;+'^�\\u001f�[�v\\u0012$�%���ج��m[\\u001cز3�\\u001a<�\\u000e>vڪ�w8\\u001a�M/I8�L\\\\u8h��\\u001b�y�'��(� %n��J��\\u0004��n�f>0L�\\u0003\\b��Ӟ��Y\\u000b��E`Y�\\\\u�{��\\u0004-����>��߭i�\\u0000��8�@qT+�v��`\\u001f�\\n\\u000b��\\u000f���d�\\u0015\\u000eE����Ƣ�\\u0010��\\u0000�Ô2��TB�v \\u001d�I����12&Y\\u0014��Ak\\u0006\\u001dOB+��f�eCd�9\\u0000���:�\\u0014�\\r ��pрl�F��R;����y9L,{ةg���\\n/o�A�\\u00189\\u0011�|���ҏ\\u0007�߼�p=�q�6�7�\\u0012^+\\u001f\\u00125��f�G'Qs��V�f�<nZ������\\u001c쪃fͬ\\t�\\u001bw��~T\\u0004Xk\\u0014۠�*9!-u��\\u001di����k��\\\\�,���t#�Xظ�\\t�ȅ\\u001e ��G��#Z�n/\\u0013��lՑ�~��Nᵏ�-���:�9���7���G�\\r@>���9�y�q�\\u0005��YY\\u001f[\\u0010����P@32G*g�%\\\\f.\\u0017\\\\\\\"�$�=�����0��VYw/�\\u0006���>U\\\\��r��x�\\u0012��\\u0004Z繪��~�b�i\\u0000(��lJ�om:�ȊO����t?#P��0&�#. \\u000e1�PI��\\u001eT?\\u001d��\\u0013cc�(\\u001am&�$\\u0001�iWE24R�.n���\\u001dI�����\\u0019 *\\u0018�N�K�v�0[&>60$\\r\\u0013H�Q���C�[\\u0014�\\u0000ҏ*>U�#�\\r���N��iKA?\\u0019��|r�DR0��;I��d����x�\\u000f(�l�A+`�no��J�9\\u0005Ǖc��\\u001c�dB4�\\u001e��U܆Ls�.�+b#�\\n�\\n��V\\u0014*\\u0007S��@��Yr��0�\\u0005u\\n���\\u001b�B�w1���;�C!�ۧ��\\u000bM8�+9p��M��\\u0000����\\u000e�|EV�>.>\\u00034��3:���h�k\\u000fí5���H\\u0012 ��/`*m���U1[nv��4�(\\u0003\\u001f��\\u0013�ʰ0\\u0004/)4�x�s����\\u001fz_��\\u0013��O��\\u001a�ƌ$\\u0016\\u000e=��\\u001b��ht�8�\\u001b+7>m\\u0011w�\\b��_��R(��$W��L�\\u0010/����aoZb�Ĩ\\u000fH�\\u0014��\\u0000�s����4��a$9_��h.[&L)ATVY��h\\u0005���\\nF\\u0012\\fl�\\u0000�e��ߥ\\rΟ\\u0011^r\\u001c�9\\\\\\\"7�I\\u000b\\u0003�\\u000b}6n��ac,q\\u0005\\u000f2��=m��\\u001a\\u001a\\u0016Ec���\\u0006L�*�`U���F���ޭ�Y61LgH��*��!\\u0004\\u0010�)R-n��Yxb� s4\\u001bѝv�\\u0006ۇ]/�G���9x\\u001e=��J�\\u0004#߲̬~W�\\u0007��H$���cUH��A�W�_=v�.WD��/�\\u000f�Ì}�:���Y���%��V�FlJ�Oc�\\u0000*:NC%�%��b��\\u001d��_<Q\\fv��d\\u0004���(\\u0019��q9|�S�M�H���U��Is��\\u0011T\\u0017\\u001eU�[\\\\\\\"�˅Ũ�)�]Hu�Lp�Q��M�<��\\u0000ۻ�����H�d�ĝ�����a�S�Z޶����\\u0018�%�1��\\u0003���N���̎:y��ϻN[hi��#\\u001d\\u0015\\u0007cT����9�Y�/s+���S�*-�I?w:�ˇ8�͎�@��)�0=�֬�\\\\.!\\b��;��\\u001e�}���j�\\u000f*\\f\\\\��\\u0016ހ�\\u001a�kz�I0���o�\\u0016=E�n�w)�\\f&'Jh���a��������$��Eq<8�@Da\\u0005�\\u000fK�RVdG[\\u0014����\\u001doY�FY�8���ŚFз�j�=�L8�\\u001eb\\u0014�Bé=5�ak��L\\u0002=�y\\u0011���\\u000b�ܯ�D��\\u0000M_>6d3��P_ ���?F�\\u0001\\u001a�Է/7+*x�5���#\\u001d=\\u000e�\\u0011M9H�cly��F�2�_j�\\u0005��={�̓�����\\u0012U\\nRM\\u0001gar.zެI�\\u001a �\\u0013b9PeɔB�����)\\u000e|�m�I��\\u0002���e�F�g\\u0013� \\u000b�Fv���*m���P��j�\\u00132�m�\\u0002\\u0007��$\\u0007��\\u00153r!X\\u0010q�-\\be\\b���\\u000bok^Ċ�\\nme��\\u0005S.a�(W\\u0013�C\\u0005O��K0�yٖD�'�s����+�\\u0004��\\u0000\\na\\u0017\\u001e>Կ%|h�Z����i�\\u000bڊ�?.\\\\<l؋2�\\u0005�rZ��[�~��\\u0019\\u0019\\u0012�\\u00191fB�������\\u001f+T�PO��E\\u001eF93\\u001cw\\u0005~�[ ��I �w&������0\\u001c�lg\\\\\\\"ӍV5$�;t�6�S�\\u001b�sb&hYB��T�2�?K[��&,�aO\\u00141\\u0019\\u0003\\u0015\\u0000\\u000e�\\u001aш�3��(l�\\u0012ZR@�Ё�*\\u000eE\\u0017\\u0015�]6�y��N���20e\\u000eŀ1\\u001a\\u0018�j�+\\u001f�L(<����\\tw\\u0004����q�\\u0001\\\\\\\"���\\u0003�5�S\\u0005�\\u0017\\u001aW\\u0011��q��\\u001b3(���N\\u0015r%93��id{4�F$u[v�;���\\u0003�\\u0001ӧƒ�S6\\u001f)\\u0018$?izO\\u0015k��i�Ņ�X~��^e\\u001e�\\u0001��UV_\\u000f\\f�2>D�LN�\\u0010���\\u000e�m�\\u0019����\\\\\\\"�k�VV��\\u001d�-T�rs��'�Dhor\\bڧa\\u0004\\u0001`z\\u0003����&��\\u001b�R�G͍�ϑrm�lKJ�'�jY.P�vB�\\u0011{�\\u001a*�\\u0015�p���&�̉}���nu�\\u0011\\u001c��fX}����sm�48�9�v\\b�,g�\\u0000�\\u0015�c��ۥ\\u001b2�\\u0015P4��E\\u0013:\\u0012\\u0015\\u0015|\\\\�u�&�\\u0006�k\\u0014L�\\u0003\\u0017�ƘK�}�\\u00163Շ^��ϕ��\\tZ3(D�)\\u001a\\u0001�\\u0000�\\u001b��b�g,��#2�a)���\\u0003ЃD�銈�m��#�=;\\u001b��!K]\\b\\bߝ7�q��\\u0013)r#]1��'敏�\\u0019Y#�|/p��\\u001b�A{kS\\u0004�\\u001e>�r@�=�'Mo�U!�\\u001ceh\\u0018��ò�\\u001b�_])y�͈�\\n!�� �7)�\\b�3�H��2�8\\u0013ݞ�h��@<�:k��\\u0006-�C\\u0016�I*5$�����L��\\\\ܴ�w�x�~�\\u0012��?-iv\\u0007\\u001f�>2�͙�ؒ�\\u0010\\u0018\\u001b���za���\\u0003\\u0012�� ��1\\u0003Kn>�.��\\u0014\\u0007\\u001e.�\\u00179�n[���u��W2�f=�F.��O{�;iڮ��Ó\\u0019�C{\\n�n?��ɓ��&6\\f��\\u001b0\\u0000>����:ڎ�\\u0002|<<�Y��+�і���F�֢D\\u0012(�\\u0012Jw�wX�m:\\u00111�W�ؑ�r)\\u001eA\\u0010A��:ot�\\u001b\\u00199Y��x�c\\u0018Ł7�ڽ�t+ž6���&T\\u0000\\u00006ƺ1��^�\\u0000\\u001a&\\tZNC4b�ڻN�@W}�/�i}�\\u0017'�\\u001a�0x�j\\u001eCd��*�0\\nu\\u0004a\\u0003�N�]h\\u001f�y\\u0019b�c��Y\\u000e����5�)�M�\\u0002���)H�\\u001c�+\\u0003��$Xv��\\u0003L��-�gp�E���>u_1�$\\u0013G\\\\\\\"\\u0012\\u0019YI\\r�-���m\\u0001O\\u0011\\u0000�v�D�'�t\\u0002���%Μ��',��\\u001bq��+Jv��)mu\\u001ah~u����9\\r/+$�g˷l0��<j\\u0014\\u0000� ��\\u0014/\\u001ce|����qd�D7�e�\\u0000{��(�|��\\u001e,�\\u0004��\\u000b�E�����P̢Ǽ!�m�O��\\u001f�gL�1\\u0017�7�rI�:�\\u0001�\\u0007\\u001d�����a)\\b�5٣��\\u0007�U�(n%\\u0019Y�I�R��g�ӡ�9O:±�#�=�C\\u0001{���\\u0017�w�x�\\fYr9\\u001cYCC\\u0004H�\\u0019��9��Z%\\u0004 .\\u0001�����P�\\\\�H\\n��X�\\u001a�\\b<��\\u0001Ò,�ɚ@J�s�oQe\\rm+�*9���L���\\u0012�Ձ�:\\u0001ޝbfA���\\u0018'69�1�6\\u0005t��u�w.g\\u001cNT���\\u0011bU\\u0017�oU\\u0016�Zj)bt\\n����+.P0*\\u0005-��RȺ��ۅ\\b2!�'\\\\\\\"0�%��7\\u0011�M\\t��Vk�!��q'�u��M:~\\u0014n>\\\\\\u0002!�p\\t�rw<�ݩВ������%�v�\\u0004i�U\\u001d4\\u0014���\\u0015���{Ot��\\n`��\\u000045J�*Vʕ*T�R�J�*T�R�J�*T�R�J�*T�R��C\\rHe?�5�����#)T����Av�j@��\\u000e<|i\\u001c�����aoZ�'�_������nB�\\u000fҌB�7����6/\\u0005��۽����D�;'\\u0018��9\\\\\\\"\\u0016|x��\\u0011tbt���\\u001b1�C\\u0019P\\u0019M����|�0�+\\\\\\\"dA\\u0004y\\u0012\\u0016%}~�՘q�\\u00027�+>�f�����q��b�2\\u0006KA\\ra!LA2uח�\\u0014Ņ�\\u000b_QQI �\\rt\\u0016�?�S��%\\\\h�\\u001bLa�c�O�\\n\\u001a9��t\\u001d�Z���f|Q\\u0016�yPt�<(�\\u001f@�����#���\\u0011\\u0004���Q���z�>�n�}g�zWm1��\\u0014�\\u001a�`�^�EG�D��\\t��a�YO�K\\u0016\\u0004<]n>\\u0007�@�\\u001a�\\u0015�cu�V����Xaʺ\\u001dہ-�\\u0005\\u001f��G��џ�ff���GE�\\u0001�\\u0006@dA���L���1�Kt���Ҳ�X��\\n�f�~t�;(v��SR{[�@�<���L0\\u0002)���P���2�lP�r$�ʟ�.��`\\u0013ʖp�ˑ\\u0003\\b�4\\u00128\\u000e'�\\u0018���\\u0006��\\u0000m�����\\u0014>d���bߤ|{~B��&O\\u0014�)$���ؓ��y($�\\u0018̮��\\u001b�\\u001dQIՇ��\\u0006�jV\\\\C\\u0017�p�+p�}u\\u001fΟpQb.|�\\u0011��!���5�3hY�Rh\\u000eO2\\u001eC3�\\u000by#U\\b�b���mz��\\u0011����yQ��K��B��\\u000eD`\\u0005\\u0004\\u001f$�ܓѴ����\\u000e\\u000e���2y\\r�[\\u0005�\\u001cFK)ЎV�U��xrC\\u001c�i��;\\u0012T�P(.C�����]\\n�\\\\\\\"�]:mj���\\fx\\u0001<@�gQ��k{��O\\\\\\\"!��)\\u000b �\\u001e��\\bal�)d\\u001f\\u00177qA��o��?ʲS�x�Mf�;Ll�F:��իT�I4�\\u0019�!�����\\u001bmړf`B��Vgtk8 �v[Sc�\\u0001��6u\\u001ak�P����I�?�s9\\b��W����׌\\u001d��cߡ�qk\\u00156�x�$m�\\r\\\\\\\"�Y>���^�����Y��vR\\u0000m��\\u00164.\\\\��g\\u0007�ly�n��I���V\\u0000�`\\u00030H���Ts0&H��v\\u0005%�Dm�lA\\u0006��^<\\b��\\u0018�Ė\\u0002>�h�\\u0000��&���pN�v�ʳ5�����ձ�}ӡ\\reu$_�\\u0003��<+���d��\\u0018\\\\\\\"�U����O�>,\\\\\\\"\\b\\u001c\\u0018�\\u000bh\\bۥ��Z\\u0003���,�\\u0014\\u000f!\\u000b��u����h��G�r��);��[\\u0010t$w\\u0014$�K\\u001el�\\\\\\\"��B��\\u0000H��)�L\\u0006���Qr�\\u0007BE���&b#�4�/&\\u0014�cwڲ��\\u0000���&\\u0006��d��q<N��~�_m�\\u001eֽ��<8�Z,I\\u0017��r\\u0014\\u0012ub/b��[V�\\u000b����ə��\\u001cQJ�1\\u0012����G���KiR�L]��x������sj��\\u0002����\\u001en68�,�uVD\\u0016\\n�P75\\u000e�+�\\u0015\\u0001�7\\rڴ��0�q��`�\\u001cm,l�\\u0010J�?���a�\\u0000(�(%I�\\f��\\r�\\rK|*��\\u000e�&���YW)ɁF���G�E�\\u001f���ߴ֊+\\u0012[����ÇDL؛1K�ӽ@�k����\\u0017\\u0003<3@�Y\\f��v\\u000e��\\u0002ͭs\\u000f/3���\\u0006ઢ�_Mz�\\u0000Z��&&ȱqRTU�\\\\�2\\u001c'\\\\x\\u000f]ǟ\\u0001Λ� �8^�\\u001fu�Tu�X�R)$3�9��m\\u0000\\u0017����#�!7�\\u0003��Tq>4l$�b�����֦6fƬ�q\\u0012mڒU1�ȩ��\\u0005\\u0007+>$�a�0U�Y\\u0018[�jV��i�\\u0014�N�M�<�\\u001f����)�8|s�\\u000ez0�I,eA�m��~#�h?����I6\\u0013\\r�Mi�}7o\\u0000\\u0006V�X\\\\~5oq\\u0002O�i�k��W��\\u0011mE�%��`�����tG5�r�Yr���x�\\u001a�\\u001c\\u0000ͯ�j7��RG��\\u0018�d\\u0006_B˷��I����\\u000e\\u001f����\\r����t�-��en-�F\\u0004�F�\\u0014�X0$�>](q\\u0019��1��e|��\\u0016L}W\\u000b\\u001at���\\u0012�>_!��m\\u0014;7y[���\\u001e��RF�\\\\\\\"�\\u0018� �\\u00056U��q\\\\\\\"�\\u0016+ \\f\\b:��4�4>\\u000e1�LR%�i\\n��Jp�e�g�jɓ �T\\u0003(�\\u0011�S��\\u001c\\u000e��F\\u0017$koK��L�1�\\u0000�0wK�h��4�D���Z����Qfe&L�dI\\u00143��+����W��\\\\\\t�(Y_|�q$\\u0012Z1��E��4��(�7�R�5\\u001dK��<��Od ���f��isI\\u000e//\\u0012�\\r\\f��-�K�U�q&<k0�\\u0000��Li�\\u0010�\\u0003��\\u001b;\\u000eL��<Q�@,\\u0000$�'�z���\\b\\u0006\\u000e�>1|YK\\u0003h��]�\\u0014�\\u0019�2H�\\u0015X�K]����7�Rixȗ.LX\\u0011b�o�{#j����9���[\\u001fy1F��$����:�ʑ��# l_\\u0013�ܖ\\u0016׭^�\\u000e\\\\i��.+�_ח���Ӊ�$�0�Dk\\u0005i�C!������\\n�2��.lK�\\\\\\\"\\f�m)릖�\\tǁ�\\u001a\\u0019H�0���[�ƒ���qx3e��+Ǫ�]H'ڽ�MP^�ÔU�@�\\u0013\\u001eo�s<����\\u001f�^�Cl8��\\\\\\\"�\\u0012���Ibt\\u0015]�\\u0007\\u0013�\\u001e<m��\\u0018 ���m�i�\\u000f�,\\u001f��ls��I\\f*\\tm��*{��{���C�#4���A�P�[\\u0001�$g��cmHh\\u0012?5l�</#\\t9��^�u���wҖ�f� \\u0018�}�K/����\\u0000}\\u0016.A�ث��\\u000e��n�\\u0004Q\\\\��ȱ*��\\u0006`62�\\u000f��S*�24�>��\\nu$��:��`-���5�'�R�׋\\u000bd\\r+�5��l��>������\\u001aY\\u00181~���A�VD\\u0011�3�\\u0011�&57\\u0007x^�\\u0000\\nW.T�\\u0000p\\u0018��z�:\\n���\\u0014$fE�Y\\u0018�a�-ŬAӷjѤ�<�\\u001b\\u0004\\u001d-a\\n��]\\u001beedMx�[_K\\u001ff���{�ٹ\\u0013�sA,\\u0005��R�iT2l�V>�zј��<�Rq�&�B�U�Ы���+�ۣ��v��@ɬ���Q��q�Vō��\\u0010N���ռW*܌sM��9b\\\\\\\"�n�\\u0012�U�6��\\n��\\\\v_\\u0014��!����\\u0011��cE��!o��\\u000e�tmF��E�x&�n\\u0017ór)\\u001d����pT��\\n��ϟ\\u0010fWh+\\u0010\\u0016���8G��.K�0�Mh��\\\\\\\"����\\u001d�\\u0001�\\u0010j\\u0018�����J��)v�A\\u0011�\\u0000�6��}�mM���L\\u001cs�D��v\\u0017\\u001b����m\\t`����5���Ƙ��\\u001d����i��X�\\u000b\\u001b��\\u001b\\u0012\\u000f��p��y\\u0012\\u0018���7���\\u001f�k���\\u0000�1ʗ��N��z�U�>\\u000f\\u000b\\u0004sc/�\\u0019H�bĩ6�\\u0016\\nzT\\u0012�X[\\u001e�\\u0012˅Q\\u0005��e�C�yW\\u0012�\\u0013��,�Hَ�O�\\u0007��&�c�� �\\t\\u00121ԏk�ϭ\\u0013\\u001eL\\u0019j�P\\u0003g\\u001eۭ�\\u001a\\u001f�\\u0014�\\t�Y�DZ\\u0018Xu���(ͫ\\f@o������rߍ2��V<�\\u0002v��t�]�cDq�]b�2[\\u001a>�u�\\u0000\\u001a\\u001f�i\\u0013�\\u0018Y�/\\u0012�6�ě��\\u0015�M�)��؍*b\\u001f��,�a�\\u0007���\\u001c�&.V\\t \\u0015�!�'\\u001dwz~5y[��\\u0005X��u�?�sf�Fę\\f$*�E����u|����H���$\\f�em�l;\\u0013Jpq��M�<� �l,,k�L��Зe,,_K�?�G��1G�B�H�@;�k\\u001d\\t��K,\\b`��S2e��\\u001c��i$+X֓�ԝw��\\u0000��X���&NV݌#\\u0018��,Xn\\f�.���#>�ZL\\\\)<�P\\u0012\\u001fp\\u0001�O�j��(?��AH�Άn>/!��\\u0014{K?ӻ�A�l�r�\\u0019A�&@\\u0000���\\u0006���յʲ���j���brc\\\\f\\b,�w\\u0005�Y�\\u001c�Ęb\\u0012˟\\t&FVH�~�^�\\u0000\\u001dj�|�q� S\\r���E�:1\\u0016�(�K,�� E\\u0003!�\\u0011��l\\u0017\\u001b��\\n��ɂ\\f'�`�\\u000b8B�k~�|~4y=\\f4}+&\\u0015�r\\u0002Y�'U_�i���7\\u0014-��F\\u0005湑V�\\u0006��)�\\u0007��\\r^+��K��\\u0003��~T�+��1�gF�2�V��ݯ���tҳH����]\\\\\\\".J\\\\\\\"���ZZ��\\u000b\\u001dx�[sfO �ā��6��Qi\\u0000}��\\\\��I\\u0001���%\\u0018!��=�:�<��Pc+��\\u0016F`�.��jO��\\u0019Q��\\u0012\\u0012��m�}}���Q\\u001c�X�`;����I�SٯG\\u0013t��\\u0000QN%U \\u001d\\u0000\\u001f�\\u0012��82�1T���\\\\\\\"�P=\\ru�.,�AŖ�-&i\\u0001\\u001d.B���\\u000b�$���.I?q\\\\\\\"�fmI�4���C��~��ƈ��k���f�(\\u0002����^�\\u0007�M_�+�:�\\u0003\\u0016@�)qn�tր�\\u001da�B����1���O�U�I�9p��u���3��n{�\\\\\\\"�0YrVx���\\u0014۱]ibM!14�ew^�q\\u0017��D\\u0013��8r�\\r�9\\u0019�ٮ]����M�C��\\u0018��������\\u001f!6\\u0000[���]���̀c�2O\\r�R��b��!�ֆ�0�\\u0012|����+�\\u001b؆\\u0005�P\\u0007^����΋\\u000b�\\u0016�Ҫ���\\u0003\\u000fp\\u0015d�xǡ�����\\u0010�K\\u0015%�'�\\u0000\\u0014�\\u0017���\\u001cc\\r�Ź���\\u0003N��U��\\f�8�џ�@׈�bGk�g\\r�&$\\u0012x�#.ڒ\\u0001$\\u0001�ߵ\\u0013>NCO\\u0006|�'�0P\\u0018�n\\u0005�P\\u001d�\\\\�c����\\u0012yMt\\u0013�\\u000f�r&R��\\neeP\\u0001mǟ�\\u0015��\\u0016=���v��P�~�'��Ӭ����F���\\u001d��@\\u001d�\\rU�`oH��GX\\u001b�\\t\\u0012\\u001f(�$t\\u0001{��y��G�1�P��\\u0013a�O{�W1.\\u0003cȽ:��<)>F\\u0017��1�\\u00071:�\\u0000���D�{\\u0002y� e\\u0017�iK�Yo��I�C�4�\\u001d�X�Ě\\u0013\\u0017�(O�(��,N�տ��ڪ�Z%ϙ��\\n\\r�\\\\\\\"M���\\u000b^�)\\u0000\\u0003I̘�d1\\u0013�~���\\u0013��b�?�4e\\t{\\u0005\\\\\\\"���>�Ue�.\\u0014��〓e\\u0015D��%����-�c\\u0015�ᅣvQ\\u000f�\\u0000\\u0006�zm�Rx̃2)%W)\\u0001W�O]��ԑ����I��萺�_�{u��Mw��!_߻l�R{�6��j\\u0003�͝7F\\u0013|fF3d\\u0012u'��|\\u001c�\\u001e-`�p\\u0018���b@&�v�J��?\\u001d��cȂr�1V,�\\u0017\\u0003�6顩lu1�cC�\\u0018�-\\u0000^�ޅJ��t�5h�Ξw�+K\\u0014Qy&�{:�S������tHT;�L�\\u0003�\\\\'�.�\\u0004\\u001d>5_\\u0007''�+�$m&Z! �b����z|i+�f�\\u001eF'���3�>;���=�P�t�~B>�Ս]\\u001b\\n�l�c��Vq�Lq8��Fɝ���.��\\u0019�L��<��w����\\u0011�w$��\\u0017V��R�9a�!�\\r�H����ï�j�3:y\\u0017\\u0015�'Ì߷\\\\\\\"\\u0007(��\\u000b���պ\\u0015�'uX�D��r�뗸O�fX�:\\bo�) T��#�� @�%bdRn\\u0012E���\\u0013UƱ\\u0018��+�C5�u#���\\u0006<��D�\\\\\\\"�\\\\\\\"��\\u0001>ͣK�[��2c�\\\\��\\u001c����O\\u0018\\u001f[\\u001b�@l>ҁ�n�7;�M�&\\u0015�\\u0000%2�lVV����\\u0003\\u0017\\u001d\\u000el�_z5���B�@\\u0014�B�I:\\u0016L�,\\u0014\\u001d�\\u0011���)��X��\\u0012�>8*2\\u0010\\u000b��̽7kVɒ\\u0006$��/.H�\\u001c*-� �g��\\u001bU�\\u0012T\\u0003*'�A��r3�|LH\\u0004�WK�m$}+-��e�\\bAg6�O�բY�8Ѽ쬰\\u0003��K�iܽhn#\\u0000���u\\f���Q����V��\\u001c~.o��㴉\\u0012ZE'K�\\u00000�U�I7\\b��3΋&A��1�#8rS*�Uva<�W���<�Je+\\f*\\u0014Bd��M�Mx=܊ʒ�<2cNT�BtT`�\\u0010I��\\u0018�\\u001ct\\u000bx�9S\\u0010^��\\u001f\\u0001�5ّq\\u00151�y\\\\\\\"1%�?W[��u֡c\\u001b�q\\\\\\\"\\f���\\u000f6�� ;\\u001f]\\r\\u000f���w�WP�v����֣����F�\\u001by\\u0002�~C���R.6\\u0004�\\u001b�\\u0015ʃ`�a~�\\u001aUؙ|\\\\2�\\u0016O���lD�a�[�C@���Eɨ��4�je��g\\u00132�n�O��5��ǎ)�l\\u0000�d�Vگ�:��9l�Yf�p�2�t\\u0005\\n���ۭ֋h$�0D�[\\u0011T�-\\\\\\\"�\\u001d����T~t7%'��\\u0006!a��<ہ#h4@�.�\\u0002~�}\\u0019\\u0011�\\u0016\\fl��)�\\u0012\\u0004\\u0019 \\u00053���U��s8�{G�\\u0004Q\\\\\\\"\\\\�׷��[S\\\\qϺ\\u0005��<�s[O��}(��&�\\u0016s�i�f>�o�\\u0003K%�?�+\\u001e=�\\u001bDڋpZ��l=h�y�\\u0003��wlf�\\\\d�rUam<5���~C��&_\\u0006��\\u0012\\u0004fE�\\u001e��\\n+334C\\u001c��<rǶ�\\\\Z�J؋U\\u0010��<�)t_\\u0019Ep7\\u000b���+��<�\\t!ʔy\\u0010<�6�w\\u001f�5�rWPM�4�a{���\\u001f\\u001dJ\\u001c�=C���H֐�E�ː$�\\u001d���\\u0018$�Q{��\\u0014lXܪ��\\u0004W�5�Sk܍AcFqY��4˜dc��b��<�\\u0015w�-��d��\\u00170�bh�\\u0002\\u0016v�#/��T\\u0015\\u001dp]=@Dk�\\r3.|�\\u0003�[UeD�%W��J�,\\\\�#o692�\\u001bb$X[�6��9��2\\\\\\u0000o�\\u000bk\\u0003�֭0�8��9'b�!c/��6�4��)\\u001781� �\\u001d\\fie���m�Q��S�f�:�0��\\u001d\\\\\\\"\\u000e����*PV��*T�R�J�*T�R�J�*T�R�J�*T�R�\\u0016◕ȑ^Q\\u0010�\\n�\\u0000� �vk�־�,�Ł%���VE�@\\u0005���L��,���s\\u001cћ�\\u000f�>����O��J�\\u0018�A�E\\u001d\\r��z\\u001e�b���\\u000e$'�\\u0000�����0d�m��0,���������/���\\u0007�'�����l4�Q�-�ڜ�I�^{4�\\u001c\\u0000��Ն U��\\r�_��C�\\u0018��ڒ\\u0017��\\u0000*!\\\\�����\\u0000_\\n�[\\u0016ں\\u0006�\\u001f���\\u0000�TkK\\r�P׺�K�\\u0017\\u0007�ڮD!�V�m�>��V�|q�\\u001aL�h��$u�\\u0015#!cQ���N���W4���m��\\u0000�\\u000f0�\\\\�\\u0014L��\\u0001#�7j=:�pH�/ډ\\ff�6�K�\\u001e>\\u000f#\\u001c�+�H�\\u0013\\u000b��{t\\u0007Aҙʘ�6TE�̻���ÿ��I����Mo,~%��}9�����\\u0011I\\u001a\\u0017Ől,��\\u001cw��P\\u0019�p\\u0004k\\u001e�O\\u0019hͶ���_�\\u0014S�\\u0003��\\f�Ⱥ��k�\\u001f\\u0011Y�\\u0000�\\u0018�b@eڊ\\u000e�\\u0000����o���Q\\r#z���\\u001d�#\\b\\r����n>��\\u000b;#�\\u0004��m�*�[a�\\u0014�'29%�\\u0015DrE\\\\\\\"�0���[|�\\\\\\\"�@�T+m���\\u0000�\\u000fBM:��\\t�s匤\\u0004�7'�o_[V|yHb�m�W_��\\u0000^���rB�N�t�o���>x��\\u0010\\u0005�����O���1\\u001fօ�c�#��\\u001e4�\\\\�ݭ�0d\\u001aH�4�\\u0000v\\u001fQ\\u0002�\\u000b�E�b��~�e�0=�tr=~>���ŀP��<}����zbev�hȠ2�#Ԇ&u2v���>���u�֖Ge\\n�{\\u0004A�oh��\\u001d.�UVЫ0#�rK�ڰ\\u0012�\\u001e��h4 �\\u001eԯ3\\u0019��L��[��\\u0015�\\\\B���Y�[{W��z^�jcO\\u0010ckXzВ�\\t?�1\\u0003q�шu֬����|��<`릞���9\\u001c�X� M�m\\u0005���^�,�J�+�s�\\u001675Z���l�?׸�k`-���>\\u0015Ȟ8��om�V�?*T���\\u001c+z�\\u0018P\\u0000:����}h���.%m\\u001e�鱍����j[\\u0016rc�\\u0011\\u0000��걎��&�rf\\b���&�%(\\u001ci��mg1`ʚH�2�\\f������Q�c�j�:�ak���\\u0010L}>�u'\\u0007ɪ\\u0013�a�n�܅O}�u��l�<�Ǚ��؉H�\\u0014?�d��;Τ�@��sY��Q\\u0006U��t_\\u001a��=�?�4l4Ӆc�<�ˑS-��%\\u0003^\\u0015~<�DS\\u0010�\\u0000RH�O��C���ˆ0���\\u0004��_�G�^��\\u001b&L2Š2�\\u0005��*4�\\u0000��̐�\\u000b��H�\\u0018�ؓ{P�\\u0004w����v<�|�ON۶�<�\\u001b�/\\u001d�5��H�`|a�����\\u0010G*X\\u0002U~��^��Z8`�1�\\\\\\\"\\u0000��\\u0013�uƤЪ�i�3�pm�\\u001a\\u0017��2s1\\f��*�T\\\\�OZe�Ŵ8�&b�'H�o��j�\\u0011a�*�1EY�\\r��I��\\t�s�y�\\u0007\\u00066f�1�\\u000b\\u000f��|a��+�ޕ�o;2�\\u0005?l��a�\\u00027��d�$1\\u0003t����{Z�a\\\\\\\"���KX݅�\\u001f�U&\\u0014i,*�̷;�j�[[5�Q�ώca开\\\\)\\u0017�v�A\\u0003a\\u001b\\u000f�#?��\\u000e�\\u0012�ߍ\\u0007�\\u0017�3{�\\u0016�me�\\u001dmM�\\f,9�y�\\u001dSl{�m?_�K!�����v$�\\u001d.\\u000fk\\u000f�6���/��c�92H\\u0006�z-�\\u0010\\u0007O�V�tX��\\u0017m��x���~\\\\b�<�G�Jy�_<{\\r��m���j�'\\u000eH��gr��k�I��\\u0006��Zo���\\u0000�d�fF�k�\\u0017av\\t��\\u0017�u=�\\r��Sb\\b�c\\u0004n���\\b\\u000e��+\\u001a�h1����j~T\\u0007\\\\\\\"2��f���\\u001fnu��G�Â_\\f''\\u0017��{\\u001f!��_�\\n�fee�$g3�20\\u0003nǿ`=;S�8�����@\\b\\u0007�Ep�,�dϓ��`]�)s���k��Q��hM�iږ2\\u001c�\\u0015\\u000fs�}9�X�4��K�ҕ\\u0012���\\u0016\\f�����^qqqPC�l�\\u0005Q�|���əBĤ��p�\\u000e���ּgߐ�\\u0012���[\\u0012\\r�Ek��\\u0014�H]y�T�peDǇ3\\\\\\\"���8�2��=�ˬ�\\t\\u001c\\u0011�\\u0003BG�-�\\u0011j\\u00139\\u001f\\u001f.G(R2\\u00033\\\\m�kL�sq�A�\\u0019h�c��4F�F\\u0007֐�9S��\\b�;q\\u0010\\u0002��S�����f\\u0001}A�bGl�t�1��^S@c�.I�%��3Xt�ֈ��s��Ď2\\u0004x�6��q���t�qc�I��[3y!V�+�\\u001d\\u0005(��^C�de>8\\u0005�\\u0004ؒ\\r��Ɨ��z܎\\u000b�n��=;�*��y��$Y8�v\\u0017\\u0019\\u0002Mv\\u001e��ӿJ6퐾)\\u0010\\u000b��\\u0006�\\u0006�͛�\\\\�l{C�r�{\\u001d?����i��#���9\\u0015��?Q�mk��p���o�Rφ���F;�\\u0018�,�)�\\\\i4��C\\u0001�{�Л�-{V�\\tf�<r1�\\u000e�\\u0012-�KVVy��\\u0004��j�#\\u000f�\\u0014�\\u001f+)ٖG+%�U�O[T\\u0004\\u0001$M��R|�y\\u000e4���a\\u000e��f�ec2Ƙ�+M4��4����\\\\�E�_�����&�\\u000431��z\\u001fJ�\\u0017h27��n@o��\\u000e�\\u0000\\u0013j\\u0013#�A���t��#\\u0003`\\u0003\\u001dw|�\\u0011�+��#�n�i���y\\u001e>\\f�\\\\\\\"�hv�t}\\u0018�<��Q�\\u001e����l(hs>�\\u001a�g��O�{���p���Bt\\u00041�{\\n]��\\u001e,�8l\\u0001������\\u0000�Lc\\u000b<E#\\u0016\\u001b���UU�r�O0x�2g�\\n�<���[���S/\\u0006\\\\y�8�v�����R\\u000e�Xk�\\u0017�r\\u0018����\\u001d�S\\u001b 7�ֶ�@�9���2'�I\\u0002FcԨc�֥�\\u0019\\u001e�E\\u0002C\\u0015V\\u001dw:0�H]\\rU p�p��N�\\b��BO���0\\u0019@\\u000f�[[ֳ��W\\\\\\\"����4�P�X�\\u0006�\\\\S�d��Iq\\u0018K\\u001b��\\u0016�N�h\\u0006���zӍ��F`��2t\\u00191��\\u0000� ��\\\\\\\"f��cb��,A��>��3q�\\u001b\\u0005yT\\u0014e=YW��-W�&1�F�%f��v�\\t*\\u0006��Ҭ�pq��\\u0014��\\u0000V;�i&�47�kJ8�Z���\\u0013<�\\u001b&\\u001e�c�,\\u0017\\u001b\\u000f�7ׅ\\u0001�\\u0019��L'}��[H�U��Z������F6�\\u0016\\u0007Mt�SA��ˣ�a�\\u001f^��^�(�8�6��_\\u001e\\u001dΊ̥�ݸ\\u000b��`��m?4P�\\u0000���Q\\u001d\\u0012�F�<I��ܙb��#ٴ.���sּ��c˖$d�/+xː��p\\u001d��\\u0000�T�A\\u0017�G�vy6��M�\\u0001�x|K�\\u0019��\\u0012b,�z\\u000fw��%�kxR�\\u0006%���]�k��]r���6�i�\\u0001X\\u001d,Of��n@�N@e�S\\u0018}\\t^��_ΊX�\\u0012ɇ,���\\b�hPM�\\u001e�\\u000fjo�:�\\u0014����%�\\u0000\\u001b����[գ\\u000b��\\u0015o��J'\\u000f�\\u0010#\\u001beFa\\u0019H�\\u0017�\\u0000\\u001d���3\\u0016\\u000f��%l�&`��$�O�\\u0016d���b���n�56���m\\u001c��*2d�����Gk�֬�u�\\u0002\\f��\\u0012n�mm���\\u001e�L\\u0005�v�ZZ�̈́6&B\\\\�`2H�<��.�c��#x�B�t\\u001f�5�%�T�t�x�џ�i�խ*�\\u000e|l�sw��1�\\rA=C\\u000e�i�Dsaq,�\\u0014�m\\u0016;���\\u000b�\\u0017ܧ��t��,�v��ʭ�a�?�q���j��D��\\u0012��\\u0004=�\\u0007���C���T�\\u0013 x�(��֣���������2;\\u0017i��\\\\\\\"{6\\u0013�Xv�i�D��W\\u00026\\u0000n&��4��*��'�+;�8S>W�\\u0005ـU\\u0010\\u0017�s���~Z\\bc\\u0012�_����\\u0004��\\\\\\\"��i\\u0006?\\u0019��!��ed]\\u0004ɪ��\\u000b�ޯNS���&*���]cvPc\\u0000\\u001d�\\nGKP9��Z$pξ\\u0016s�_���P\\u0006R�\\u001fMz\\u00078��\\\\\\u0019F\\fm�{��i��\\u00108p>�j�8gbC�R����^98I1&��=��\\u0018��\\u0014ta�|�o\\u001b�\\u000e.\\u001b4�����6�\\u0010\\u0018�ޗ�r8��\\u0018��_ds��eο\\u001bZ���8Ц\\u0016���\\bȏ�R)�Ƨ�q�D��d\\u00114w���\\u0000Y�O��L���2�8�!�׶��\\u0000Ԡ���-^\\u0013-\\u001fbx�\\u000ba��M��ji�3����\\bÉ%X\\u0017��\\\\*�qd ��V\\u0018�\\u0011��)-��ˇ#\\f�W�n�\\u0002�4�҆[�l�M\\u0018�\\u000b\\u0015\\f.\\t���t�9,�%�\\u0002��\\u0003&᯸zm��\\\\O(\\\\i\\u001d�2\\n�)7[�������$�e\\r:�\\u000b`�w��\\u001e�\\u0015\\b�r�n��7�Ë\\u001b\\u0017V\\u0003���w\\u0004F�A���#ɍ��$~q\\\\\\\"�\\u0017bA\\u0001[p��J�,S�ȓHZ\\b�\\u0014\\n�A,H���S\\u001e_��/��M����Ƞ�\\b��ed#�,\\u000f��B�4�X�ҫ�\\t�\\u0011����N�҈jh�����8�mW��:�=}��?�)��>t�<��K(��A��\\u001a^�W����\\u0004y�q\\u000b\\u0016�\\f`\\u00066:]W���:e��'�TU��e�\\u0001�\\u001c\\u0010�>��+��\\u0012b\\u0011\\u001e;�1������z\\u0001\\u0004�n\\f� xU�y\\u000f������q�G��GWN���\\u00004,o�\\f��ʊIA���\\u0005���֜e,Y�\\u0017�Z6�@\\r�N��h,NB\\\\Ȧ1ǰF�jI�=��Z�r���4\\u0013��B�9��\\u0000�B�'�Gh\\u0004���}�@�>Eǋ��$�C��\\u001c>�J�H�ǀǊ�\\u001bI��k��M/�3��9\\u0002V2\\u0006�m\\u0000w4\\u001f/(�\\t�Eu�A�3��!﷽������ܦvX��[\\u00122�\\r���{��=��j�\\u0001<6֨c\\u0005��$\\u0017Su��\\u0016��;�Ҽ�C��`a�j�&��{��S^?\\u0006\\u000eC(@�\\u001e9\\u0014�\\u0018\\\\�\\u0003\\u000f�\\u0001���\\u001c\\u001f+�\\u001bF�b� �tB\\u0006�-{��X�? ��G\\n��,��\\u0012?\\rj�Hb�£#�L8�2Vٟ����44�\\u00126Kǋ �\\u0003\\u0015\\u0012F?l�А}+����R�r\\u0017bā`��ӽ\\u001d��\\u0006.<+��)v��\\u0000�,;_֕�s��E�\\u000f�&�Im�\\u001e�m�uP��s�}x�c|���\\u001b\\u001a� p7,uG�&��|�\\u001f��1�nPSj��\\u001e���ߡ���͟<\\u0018��K�d)��\\b���\\u0000�\\u0000\\u001a��f�G�6LR\\u001f�pK\\u0002��~�WҚ��K\\u000e�؃��|I\\u0011]�����=j\\u0016\\u0004�#�\\u0016lyP�`ń\\u00058����ʊʎ�3D�e�U7\\u001b\\u000fwƓ7\\u0019\\\\\\\"�����\\r�m�שo�>����Ά\\u001c�|{�X��Kt\\nH���R܋�Č�\\u0014Vf���@�\\u0002���X�>Lj ʵ�y[��Jx��\\u0005�s\\u0011��3D#�pm�\\\\\\\"��x䍤`\\u0016o�\\n�U���8�64\\u0013��a'����\\u0007��\\\\\\\"����L�q.���ז1k\\u001b��\\u0007�BV5:ƞ�[q�'\\\\\\\"�H�,�A���\\u0007-5�1�|s4\\u0005RY5RE�\\u0003����ո�[b�ǒ�t��6�u*�Z���C�\\u0019�I\\u0012cD��\\u0005���ð?�t��\\\\)\\\\\\\"�i,.�\\fL\\t^�>�\\u001a!�\\u000b\\tې�֩ol�:\\u000e�F{���m�a�1��,���do�AtQ�B��\\u0015�.,9\\\\��4�\\u001cMdP@'r�.ޔ\\u0006g\\u0018�dE�\\u0013<����BU���TjG�bh�m搆�ߤ[P/އF=�U=:�\\u0012(��$�xٲbwb\\u0012�'\\u001d�w\\u0016\\u001eV<Y������Y�An����FlX��d�4�UR�M�7�o~�^��dA\\u0004�(C�\\u0014���G�K�u�(X�|���#X�;0��7B�������\\u0002L�\\u0018�~G�p�\\u0001�f���\\\\��9\\u0002ʂ \\\\���LS*\\u0018� .\\u0011J\\u0004,#7[\\u0001�ilѿ-������\\b\\n\\u0002�}�M�\\u000bR�a/܈�C2�6��\\u001dM\\u001e\\u0019��Ǐ\\u00183\\u001c�볡���~�#s\\u0004�Ϧ�g\\u0011B����k]�*��O٥3�]��\\u0014�xRB�;\\t�~ �\\bI�?4L\\u0010<P�b�R\\t��T��\\u0003j*�x�\\u001b{f�\\u0015�'`�ۉ4�#���)�\\f����e\\u001e�V��[��L�\\u001dQ��\\u0003n�mS�W\\u0018\\\\�\\n��n]7:�%�q��2����\\u000b?[k����n4�8\\u0000�\\t�P\\u0014]\\u0005�:R��X��\\u0011\\u001c&ͫqa`GsW�DC�\\u001e7\\u000f3 \\u001e>��i��)�b{�]v�d���FB[2�+L\\u0000G\\u001eU�\\u0004���&Dr<\\u0010�ر�pI���\\n!1��\\u0012�������=���1s1qb)\\u001a��(]\\u0003�:�#�[ì��>q\\u001e�\\u0013b�����K��X�\\f��t\\u0007x�8#)�\\u0000\\u0016�5kP�#b���9��>1�6�JH�(��\\u0015��Z\\u0013#��#\\u0010J��-�\\u001f�õ�uaξ\\u000bf\\u0015\\u000e� F�ON�Z.DL�#��\\u000f\\u0019���BM�\\nV��,\\u0006��c��\\n7��\\u0004vЇ�-\\u0016�0���8p�b��V�\\t���:���r��s�m��\\u001b)[�\\u0000v\\u0017��NvN\\n��\\u0018��Yʐ�*=��[�[�t�1�PG��\\u0007sܚ���t�v�x�1����gFm�:���T�C[�T�R�J�*T�R�J�*T�R�J�*T�R�J�#w��-�\\\\�\\u0013a��հ���F�D�xUA\\u0013\\u0002�\\u001bm!��\\fc�$�D\\u0003$�`�K\\u001f[м�\\u001cRE��\\u001ax�!p�D$\\u0012�\\u001b�D\\u0001�k��y8���7 \\u0006\\u0003z��A�\\u00124M����\\u0000�-'�tQ�]\\u001b\\u001b[��|b�P\\\\��{�Ƙ\\u0002\\u0004�ۧ�\\u001ajH]w:��\\u001eU�%��E\\n��O\\u0013�E������\\u0000�Z�����\\u0001%�Ϡ��\\u0003�7\\u0005~}*�p\\u0010��\\u0016�O�\\u0007�Y\\u0015�j�I\\u001d�\\u0017\\u0017���~\\u000bz�x�B5;X}G�G�Sv�\\u0018�zxǠ�y3�\\u0010��+\\u001f!��Bh�x��Ϊ���i�iF�T\\u0001��QG\\u0014j\\u0015Gj�̩\\u001e�s��:�a�\\\\\\\"f���I�S��^��6ޫ�2\\u000e�0�\\u000eT��F�@��%��\\u0019\\u000e�\\t;z\\u0011ٯڦnQWH�����^�t��U0d4��7��bv\\u001a�[ѯBH\\\\\\\"�e�\\u0000u\\u0002���9�\\u0013�[��R�וW��d�Y��*\\u00126B�b\\u0001_o[�k�܎.#���J�\\\\\\\"Ĩ���}��U\\u0007K�*<��&Ia`��\\b}I�\\u0000ժ�o3��Ø��\\u0010�.\\u0014�c��n���S�\\u001eu�O8�\\n�\\u0000��\\u0011��We�q�f\\\\�p�$�E!�;5�zj{�ۥ\\u0007���v�h�r�\\u0016p˴�\\u001a\\\\\\u0003����S��d-wv,[���Ga\\u0003\\\\\\\"DKY�av?;^�\\u0000�Q�f���o\\u000b���x<\\u0014qc�\\u0019\\fN[�ʃ��aU�>\\\\\\u0019���x\\u0019Dz�Q�}��M���w\\r��V�n���\\u0000�y�\\u0011�\\r��:\\\\\\u0003�*zڬ�\\u0012yW)|��m��2\\u0018<��fT�b)R\\u0018�\\b6�\\u000e��\\u0011�+K\\u0002�˰�Q�\\u0004|�Q\\u001d�\\u0018ۦ�M���\\u0000�FĞ.5\\u0005�&��S���\\u001a��(�*��GWwF\\u0015���U90}`�x���?�j�a\\\\\\\"�\\u0011HE��u:2\\u0004\\u0017n��җq0K���4{S\\u0018�^9�w\\u001d��_J\\u0017^\\u0002�`ι\\u0015��6�G^��^4�\\u000f�ߊ�M\\u0018��7\\u0018\\u0018\\u0002T\\u000e�OSR<e�\\u001cpE�\\b�ϰX&�\\u0000���^O\\\\\\\"nJc�\\u001f�\\u001b\\u001c��}]��q~�\\u0007�4�ρ��&���PB�&���mMI\\u0018ƛVO#\\u001a\\u001f!�l̎\\u000b'V�=7�\\u001aiUc;���o�K9\\u0015��1XMh�\\u0002�z6�U\\u0015~V\\u001e+�sH%�Ӷ���M�GV���8�l�;���v�����*\\u0012Î�J񰨗\\u000e�ڂ�s<\\u0004L�Ѹq���9\\u0011�ahE���rlGaW��i�\\u001b��\\rۈ���\\u0017�\\u0000:j�f<sG*�ѭ��_�����7 Y�U�\\f$H�\\u0019�#>\\u0017|v�G\\t�+/��\\u0000\\u0018ƍ�L9\\f`k�}W�n��1�DA�@\\u0002�\\u0000\\nk����\\u000e$\\u0003j���+H?�eI\\u0016�t�3�2ic���άؤ���L���Ω��x?3��7�vǊv�\\u000f\\fұE������DB�r<��(��\\u0016���}�w\\u0016�\\r�E\\u000bq��\\u00177o�\\u0000(�\\r\\u0016Cs�C��3B.U��\\u0000\\u000e��n�R\\u0001�D�\\u0011�6A6��:h�?ʝ��c�\\u001b����\\\\\\rl\\b��\\u0017�j^\\u000f�d�v���C�N��e��.4r.c3d1�\\f��{m׭,ʗ)2K\\r��\\t{�r:\\u0010-��`�\\\\\\\"�1˝\\u0005ؘ��L�.����ۣ|G��U���\\u0016 \\u001d-Z<!\\u0004�\\u000e<��Rz��ի\\u0005���м(�1V����}.{�D��,!��\\u0000v_�{Z��\\u0017\\u00193�(���\\u0017\\f�VٛD,ϩ4z�$ˠI\\u000b\\u0000�Ѝ@҃��\\u0018Q�˫J�؃��A�tҬJ�\\u0010.�N��\\u0000*\\u001d�Q4�\\u0006\\u001b\\u0014\\r���\\u000fs�\\n�l�E�JB��p�U�\\f���C�\\u001b�q�,��\\r$�W\\u001d]�^�\\u0005 �W�v��d��,\\u0019n@ �v��\\u001b�����XN�q�\\u0018�#v�\\u0005��4�jK�񊮒�7\\rN�����@eL\\u001b����ɑ_\\u0012\\u001cx񪛈\\u0005���CZ\\u0007��_�\\u0012d\\u0004,j�ۯ����0r,��b���n��ל&�&�ڪ4\\u0016��J/\\u0011\\u0002�N�@�}:\\u001dOji�X\\u001c�\\u0006L���&�P'�����ǆ���,����APl\\u0007���<$|x��I�6%����\\u0015� �%ɎUv������Q�o'\\u001ch��\\u0011om�[����u�1��ƞW*�s\\u0004eFf\\u001a�����_/��h��Ic;�H���X|mo�TaG\\u001a�����eNK$dX\\u0013}Ŭ;\\\\�\\u0014^n^:�]\\u0002���\\u0001�^��o�[\\b\\u0019X�F�\\beW\\u0017�������\\b6���ffY*p��~Q��� �{'\\u0017)�V9FÒ����t�\\u0019\\u001cj�bhP�\\u0010����ƺ�����I�\\u0002uǗ��:7����W6\\tW�0c\\\\\\\"dM��\\u0003�ң\\u0003\\\\\\\"�*b@;�?�_'\\u0011Ɵ\\u0000�\\t\\u0013h2t�;R<eL|�Q�U�`����\\u0000�_ ��ɒm�_z�6!��s\\u0007(�\\u001eldy�]�;��w��\\u001f��\\u0004�\\u000f,�lҸU�h \\u0001�u:kV\\n����J�r)fe2\\u0012�\\u001brN�(��o7\\u000f\\u001bF��\\u0019&�6�Uz�+��5�r�;�\\u0013��\\u0003o�oq�n\\fO]mA�c�vhQ)KJlz�ޚ\\u000f[\\n?-\\f\\\\d�A#�Qw�)�\\u0012�6�\\u0002WQT��\\u0006�\\u0001-���ˇ\\u0017��\\u0017w*�l�����\\u0001���W'�Ê)\\u001a\\u0014h�\\u0011�\\u0012\\u0006%�u������ �\\u0010K-��u�\\u000b~���\\u001fZ$r܎H1_�7ڻo۵��8�|+�\\u0001xܠF�XU.6��~\\f�$�fu\\u001fei�2\\u000e��F>�\\u0004�\\u0014�ח*���\\\\]�0��Wv��\\u0000��\\u0015�_/$\\t\\u0013�\\u0018\\f��ߧN�P9\\b����m�\\u0001�-�\\u0011��y4',��M���\\u0000\\u0003i=E\\u001eF\\f��u�\\u0015�0�(ϬK1�\\u001a\\r*��G3%Y%E\\\\\\\"K(\\u0016�'�ߍu&''�`+,�<�\\f��?�޿\\u001bS�G\\u001b\\u001alUDxİ4l�]�\\u001b���E/�\\\\\\\"\\f�\\u000f�\\\\\\\"g����\\u0002z�(H\\u001c8i��MF��S2�)��U�t-\\u001d;�\\u0000:N\\u001b-%\\u001ef�3+\\u0012�웈66��\\u0003����\\u0017�Y\\u0010]���S���!^n&\\u0017\\bX$�\\u0014\\u0015��_Z�>6\\\\6�%l�(@�F����*�/\\b\\u0006�z�Ύ�dHcr��\\u0000���\\u001c���&׋��\\u0005�%������C�\\u0000�eJ��+{\\u0000�E�%�n��X|��9\\bщ\\nn;I��Z�F\\u0016y�\\u0000�\\u0007��\\u0000�e[f\\u0004��8W��\\u0015\\u0010\\\\4�w\\u001a\\u001e;\\n��)�\\\\\\\"ʆF\\fX�\\u0017ڀ\\u000b��(I�\\u001f2l�̞v�k`l(�\\u001e\\u0004\\u001cq�vd�#_i*̺~��J�fŒIb@|x�.�n,�q+�_��\\r�,�h��\\fj��dǍ[+�@\\u000b\\u0010VE\\u0006�\\u0018���\\u0005�c)$�t��\\u0017����\\u0001�\\u000b\\t`�z�-`M\\u000f�.\\t�X`���\\u0000S2��c~��\\u0007��J��R2��\\u0004�=�U�\\r�M�Z\\\\\\u001dmb4�j#\\u001c-����\\u000eႲ�[�0uZ:~j\\u0019sd�%��\\u001b$\\u0003V�r4�\\u001b/#:=�\\u000e�e\\u0005$�K|\\u0005��L��G�G��\\u0016Db\\u001f~�\\u0017�ہ��M7�w�4>2��\\t���z��:�\\u001c��\\u0018d\\u0003��Y~\\u0002�8����\\u0004]q��\\u001f�9�oAn��3��gێY�cx�լ��U��0x\\u001c��'7�u*��F��F�\\b���#\\u001f\\u001d����\\u0000�rRe̛�؝ʪ\\u0006�~��\\u0014\\u0004�c��E��d��n,1*G/��&�\\u0018��\\\\\\\"\\u0004,�v�:�i�����\\u0011Ňt�(�\\u0002�E:�U��\\u0019\\u000f\\f��.T��\\u000f�J�L���vUP�?p���;Qc`A&}4ړ�3�@�1��,m3*xц7�؆u*T0#P\\u0019��=u��s�ܫ͔�ڣ�\\u0000�����\\u0019#��E��i7\\u0006�\\u001e���\\u00198���a�[�\\u0019���\\u0017T7��\\u0007z�Ĩ'�1Pc.�]�P>SK3b\\\\��G�,�<��m�[���3��\\u0017i,��Vp�.E��\\u0017K��3%��b�{�!��('�Q�fH� �M��P;h.�Ҥ�q���8�\\u0010\\u0010�5���4ێFȂ7f�\\u0000�\\u000b\\u0016\\u0003�-�\\rL��f�\\u0012��A\\u0012�Crn6��ԇ\\u00073.$�\\u0006�D\\u001a\\u0012�!��s�>5|߸a$�\\u0014�P�ohQn�]AG\\u001aA�o�v\\u001b1���wV�Q܄�8�\\u0018�З,\\u000b����}oI]\\u00032G+\\u00152�]�R\\t?Ux09)���\\u0000!]��Y\\u0019�����\\u000fkв, �m�c��&�ݍQ)lA\\u0007�o��\\n\\u0010�\\u0019.��O^e#�\\u0018z\\b�Y�t\\u0003\\u0016]�c`��'M=~t\\u001b�[�Ƒ�ph��F��N�(Nc\\u0016x0��|�u\\n\\u0018��\\u000e��Z��2�`F\\u0014\\u0018�\\u001bH�u��\\u001a���s�c�pAc#/\\u0011�\\\\d�dy�i\\u0006B@�FV�( {\\ng��q�\\u0006R\\\\\\\"1��-k�梁�H�\\u001d��4��\\u0017�\\u0019\\u0018��\\u0000i\\u001e��Z<\\u0007��\\u0000o�\\u0000l��\\u000f\\u001c����ki�V��\\u0007��{)l���\\bǸ�*t\\u001aN�<�\\u0000�8ܼ�e�\\u000e2}Gx\\u0003q\\u001a\\u0016��>�&�c�J\\bVx���MǸ�P��\\u001b�,qǎ�$,\\u000b0�m�ԚM�\\u0003\\f�\\u001a��0\\u001bo�k�E\\u0006ɉ\\u0017\\u0015ߎ�i��t\\u001eP\\f�����cz{�C�\\b�'�$�g�DFҥ��[O§��ܮO&IB�x��YUN���]h������$\\u0012\\u0007� u\\u001d\\u0001�Ux����e���؂��{�۷��\\u0014�\\u0004~_�#\\u0016R��U{�\\u0000\\u0018�\\u0003o_zk\\u001cpe��\\u001e\\\\I\\\\\\\"cD�\\u0014�.�ȱ �\\u0000�֔,˵w���\\u0014|Xՙ<��lq\\u0004�&L���`W���{Z�t�%œ4E\\u001a(���ͺm\\u0017���2��$���\\u001ar���\\u0007�ز(\\u0000�!��\\u0010\\\\\\\"�=hQ�6B��2���\\u0006ä@���\\u0000:\\u001f�⋼м��HcXЏ�uc~���A\\u000f��.5���$�����Iᐴ\\u0012�i\\u000b�\\u0005�e#Z���Ұ\\u0001��Z�\\u000bʳ#��Tt��O\\u0011��])���2\\u0019�\\u000bBAE��k�=�\\u001d����y,�2[\\u001a,f��\\u0012�b�����\\u001a�\\\\\\\"(g�Lu��G@L@\\u001b�z���&��6F01��$\\u0016W\\u0016R\\u0001\\u001d�\\u0005��M�y2��H�A*���7�$:�Aw�+ܡC�)�ή�yZU\\u0011��g\\u0011͹�\\u0000i��\\\\��\\u0011\\u001cp��B� �\\u0010gIm�M\\u0015���Vecb���L\\u0000&K��ŘX_�t\\u0002܀�A�x�f��\\u0010��dE?��\\u0002��*�*G҉���˜��\\u0018��H�\\u0010\\b#��_JQ>^.\\\\\\\\\\\",E`��\\\\\\\"�е�����WS\\u0014�\\u0019\\u0016�K^ċ\\\\Wy\\u000f���\\\\��&F?���'�zT,\\u001dA\\u0017\\t+�+N���ŕ'�wG>=͎��\\bu��8�:W\\u0019�B�E���C�t^�}B�\\u0000�Z�K�{\\u001dq�E�@#M���B��cֱ��6X�\\nHb\\u0001$�\\u001b�\\u000fZ���r�m$y\\u0013�C �! \\\\\\u0006��\\u0002��2vF�����Q �Π\\\\Xb��n\\r\\u001b�Q?��\\u001e0�n��\\r9.\\u001fݼ�==�\\u0000�T4�ܔ�b\\u000f\\u0014\\u001d`ߩ�\\u001a��ޔ\\u000f\\u000f\\u001f\\u0011�䓐�A���C\\u0015b,,o�\\u0000\\ns����\\u0004�%iLf�\\u0010kku�qU\\u001dJV\\u0003N��\\u001d�yՆ69\\u0005�m#\\u0011\\u0000J\\u0013��=�V^z���:���/\\u0011u�\\u00056�cֆ���\\u000b\\\\\\\")`e9\\u0012�V��T\\u000e�W������8&�\\u0016\\u0011e��u�[�aj�;��Y\\f�@\\u0019�Rѻ\\\\]O�\\u0016�j�\\u0006�`\\u00180&�,y\\u0013\\u000fw\\u0011*��e\\u000f\\u00126ׄzPX�c����0�c��P��T\\\\�1s���3F\\u0001 ��b�SkW��K��r�d˗�\\u000b\\u0002\\u0004`\\u0011�����8�Ag���!��\\u0005�no�Xc0F���@B8�\\f�\\u0015=��դ�׌U0rJs�f�=�h<[\\\\�����]�氁��\\u0003rY`#����|;�Q`�.|��\\\\]X\\u0006���M\\\\�a�,fb�\\u0018��L[�(\\u001e�V\\u001d,j�z]�.\\u001c��<Y�\\u0017\\\\J\\u0018u*-�~_\\u0010i�\\u0019x|�f\\u0016�6EM�\\u0015�?�i.\\u0007\\u0015��䜍׈��\\u0015$�a{\\u0000~\\u00149��\\bt�\\u0015�(��� �2_۸���W,2�I\\u001crƶ�`v����\\u0015v�tИ&�&lo\\b\\u0015��/ͧBv�(�;\\u0017\\u0002\\u0016h]I�������S�)s�6D�b��]���#i=>?�\\u001d�ɤXP�\\u0018\\u0016E\\u0011\\u0006�p/(p,P��{�7\\u0017��\\u001cO�\\u0013+N����ŵ\\u0000�\\u0014\\fK$be$\\u001d\\u0007:f�#��(��\\u0014\\u0000\\u001ftn\\f\\u0001��f��8�\\u0019`@V9X)\\u000e����\\u001e�U���%a�s'�\\u0000.WK�oJ&l����NI�>�\\u0001&�?H�\\u0001A�$� �c�`Yf'K\\u0005�>TJvЬi\\u00134� +\\u001b�\\u000f|�7F���p������\\u0018�Q���%�֖�;��λ\\u001c�r�\\u001fƟ�i\\u001aw\\u0001\\u0004��fa��h{t�\\u001c��6|��t6\\u0005z\\u0010\\u0007_�\\u000f���:e+�H@X�7I�(*�*T�5*T�R�J�*T�R�J�*T�R�J�*T�R�\\u0017��f�Hd����\\u0000�~\\u0017�'��\\u0019�'��+nm�)�\\u0000��\\u0001^��!T\\\\�\\u0000\\u001dI�&�p�-qD�y�MjxL���c%��\\u0010���\\b�E7U��:�4���J���g�S\\u0005����?�O�\\u0004��+�\\u001b\\u0003ޜ�A<k�檮g\\u000b��>�QX�(�k�DD��\\u0000j�\\u0011���z\\u0016Ae\\u0004u\\u0007�W~_\\u001ck0��ߟJ3���U��F��>�Zɡ\\u001f����\\u0005W�<QDef\\t\\n��J�6�vn�����^f X<\\u001bC���-qk�_Ɔ�T^\\u0001؟���WJ��\\u001b�T�-k؋\\\\U2΀o'C{0�}=}-C��F���n���+�q\\u0019��A�?J�\\u0001\\u0015���\\u0018\\u0002`\\u000f¸o��\\u000f\\\\\\\"�\\u0016\\u0004hO���e1��Y�d�\\u0001crl�Z�;��\\u0000\\u0016\\n\\u0000\\u0000v\\u0014�\\u000f\\u001eW���(VYKF>\\u000eM�\\u0015\\u001b�\\t�N��؊��hV�&F���\\u0002�2��te\\u0007�_V�yI\\\\\\\"�x�`��v���\\r�?\\n!���oh�M.��Y��z��)\\u001b\\u0016�!�?\\n\\u0013��i�B��s[\\u0002���2��*�C)���{\\u001e�\\u001a狙̫\\u001b{�K\\u001f�N\\u0013��X����A �܀��Ҽ,�a�R\\u0010�@�����j�}DV��2ctY�V\\\\\\\"T��ҟ,��a�\\u0017�=\\u0007v��\\u0006\\\\\\u0019m��ɺB,\\u001e�_oZF~�2)\\u0006\\u0002�#\\u000f�\\u000b�m�i�\\u001d�����E�+����U�\\\\�ؑ\\u0014�2�K'n2���HR�$�{�\\u0016=���i#E��m&�GV�ʡ�\\u0002F�B��~U�T���J5�\\\\�~��\\u000f�TM� �:�h�k��K�1�v��X:�P��\\f��v���\\u0007�k�\\u0004�q�(�\\u0017�W#M��?֖�<�)q��5�t��:O�}�D��U �&�\\u0017�Qۭ\\u001b�8��\\u000e�:V��\\u001baŏ\\u001efU�:��\\u001b�\\u0000:�����yU%A�ι�}�|`\\u0006'�/��\\u0019S�\\f+\\\\\\\"+\\u001f\\u001e�\\u0012k���A��Ly�^Q�d&6�\\u000f`u\\u0007ɷ��\\u0000m)�i1�\\u001d��\\u001bu��N�##[*>[\\u0003Y�.%ʸ�a\\u0003\\u001b�z]���W���p�6d\\u0005�;9h�fEc���}�\\n����2�2��e<�Hѭb\\u000fu�aLߐP�6\\u001c%X�� \\u0007n�N�k\\u0017ȕ\\u0019Ҙ��w\\\\��\\u0015���\\\\��\\\\\\\"b�?��0ʘ��2\\u0000T�t\\u001e��\\f����fo���_Rk?��fd��\\fk�\\u0014�̈́�\\u001e��?*[�\\u00192�D�R�\\u0014lWbl\\t�n�Lr�N2|w�\\u0002�@@k�\\u0005���5y\\u001d�`E'���`����3q�\\\\\\\"6�3yܴ�\\u000b\\fh�\\u000bmP�q�=��PF\\f�W*Ic_4�n�h\\u0006���馕V\\\\��\\u001e^���\\u0007��V�\\u000b\\u001c�\\b� �H�3�\\u0000\\u0007,����T��r�Z��\\u00180��j�k\\u0003�\\u0013��h\\u001f��9�x\\\\��5�z8'V\\f>uw\\u0017+�~u��O2\\u0014F^�,�!LL�6,9\\u0012�\\u001d�r�C��g �Y�\\u0001\\u001c^�ZFU[�RI>�*\\u0018\\u0011\\u0015�\\u0014g|�\\u0002w\\u0016�\\u0006��}}�k�S\\u001d�:\\u000b���_;&,l�hU�9X��۽��K���ҋ2��M�y.c\\u0001�K\\u001e��/��ә��ƌ�E��7ܠܯK��J\\t�iv�\\u0011�#��\\u0011n�\\u001e���E\\u0018l������6�P��\\u0004.��\\u0013e\\u0016e\\u001b���q�dhc�<\\u001f\\u000b�F\\u000e��6f\\u0000u#�b��\\u001a]<�\\b�O�^�\\u0012I\\u001c�\\u0000\\nv,*q\\u0015�X�I��X\\u001b�\\u0019��̴���\\n\\u0013c}\\u0019܋t�[��V:gO4�1���6#\\u001b]����L'�b%���wXm�҉��8�J���N�n���U\\fI��QɍT�\\\\e[UF\\rϘ��F�g�\\u001c�2<��`����q34��%�\\u0007��\\u0000z\\nX�'2�F\\u0017V?N�ע`\\u001f��2��CF�[z��\\u0016�T2\\u000b)Px�`«�\\u0012�1^�=�[�I\\u0010i�琀��V1sn�\\u001f�J9�^Yf\\u0011�\\u0011����_����\\fX�0�\\u0019\\u001a�M�\\u0003uK_�𤋮�\\u0000!\\u001b��ҋ�ؗP;v�3\\u0004\\u001et�\\u0000\\u001c+y\\n���}�\\u0000�\\u0003�<��\\u0011�\\u0007�P4��Ӯ\\u001es��è;\\b馺ј�^\\u0002�\\u0015V�˫\\u0013b����J�7\\u001au��8�\\u0013\\u001c\\f�\\u001e��#�\\t\\u00025ٷ�Z1���ۏ�&#r\\f�Bv�W��s|��/\\u0004\\u0018��d\\u001d\\u001c�]�\\u000f����$^F\\\\q3K�?asam�z.���L_0\\u0019M&�F���{��q��\\u0004��LpU�\\u0004�\\u000f��E�@e\\r\\n��\\u0014����*�P<��\\u0016\\u0005�rֻ�x��C�h��\\u0001��6>�}�o��e�\\u0002\\b�V�\\u0014�1��_y��U�FN7\\n�!$o\\u000eB���j\\u0016U�?��\\u0017�j��a|�W!�Nk��h|����kX\\u0001��y<��^\\u0004�\\u0003ڴ��'�Y\\u0017'���VƠ\\u0011�3�\\b������\\u000f�c\\u0001�\\u0000\\u0018\\u0013�J�Lh�\\u0000F\\b\\u001d��Zc��2T�0d{��F�6�R�g�ԍ�����ZQX�\\u0005�J��ff\\u0017q֫�5�%��B�y��\\u0017n�@��Y<�sbOe\\u000f\\u001b!��\\b]�X��ѣޡ\\u0014��ݱ}\\u0007S�40Ǖ�$AL,�T���]GJ\\u0007u�\\f`�D���]\\u0001�\\u001ax��>\\u001b�=�ͦ�B8��J ��\\\\M��' FY\\u0000\\u0003o�N�||Ҧ\\b�\\u001c\\u0011%ϼ����\\n�+�ŏ\\blb'O�A����\\u0014w\\u0017�b�\\u0002�\\u0002I�\\u001b�\\u0011�����Q\\u0000\\u0006��uz��s�ˉr�3�d�\\b�#��օ��&f��L���\\u0012\\u0003\\u0011�b\\r6��bH�v@�$\\u0001�w�Ho��\\u0016\\u001e>4Y\\u0019F=|D(��}��_�D͘���'r!\\\\\\\"K�\\u0017\\u001b��3[��\\u0007\\\\\\\"\\u001c�\\f\\u0011= �Ǖ���lD�V��I���4\\u0006\\u0012� T`u���}ibE��L�L��k(\\u001d���\\u0019<�\\u001d\\u000e\\u001bL���u\\u0003�=�f֖}��\\u001f�Y6����kEa�!Lκ�p�y\\u0006,���nF��K\\u000b���q��0�L(��}�Y��4\\u001bI\\u0003u��^M�\\u0016*�\\u0016K*������W\\u000f�\\u000f\\u000f4k<g*9$�%\\u0001�5��\\u001e���Ks��H�0ž��M�����D\\u001bKykS7�[�\\\\İ�+�#j�����\\u0018�@�C�m춷Z\\u0015\\u0012(�Ȁ\\u0002\\u0001\\u001f�*x䌅u*��N���gL��Ժj���V\\u0003�C�\\t�f�.\\u0005ĉ�4����δ���U�Ƒ6��P\\u001b��'K�Q�_32)�\\u0011>��u����֒�\\u0006�X����C\\u0005E\\u0017��\\u0000P֭i22�]ٍ\\u0019\\u0005^R���,��׵B\\u0001���V�jb�bd\\u0015�<�\\\\\\\"��֕3Ǉ�\\u001a���*��Ʀ%S\\\\\\\"�O+v��ҙ���,\\u0011B\\u0010�\\u001bH\\u0001zk��/\\u000b�\\u0014��ԴbA\\u001c\\u0000uy\\u0018��/�M&�\\u000b��aC\\\\\\\"���;�{�\\b-n���\\u001a�2�B�\\u0003s4��VL�_)lݬe2�!b\\b`�'Z\\nh���|w��\\u0006#z�ӭ�W�l\\u0018�b��FDj!On��m»�UȒLD�2�~�E����@��I\\u001c��&����\\b���1 �T;\\\\$�?��\\u000f���Fq�\\u0018�|X�R��F�7��0��F��O�\\u000e���-���U�`���bef�\\u001a)?��ѳ\\u000b.��k��s\\\\\\\"�\\u001b\\\\\\\"E�lyJ�X\\u001e��{ڴ_�yX\\\\\\\"\\u000b�\\u0006�dp��\\u0006�;nP>&��ex��hH!Q\\u0019@\\u0007�&�\\u0003�\\u001e�\\u001b����\\\\*���\\u0005�\\u001bH;�,\\u0018qqf\\\\\\\"YL��#i\\u0017\\u0004�\\u0011��U�||�X\\u0012,Dop\\n������\\u0002,7]ͱ7\\u0016\\u001a�\\u0014\\\\�����]k.^�\\u001b1g9���ۨ��0r�\\u001cd�2\\u0014\\u0006R^'6�m\\u0006���\\u0003��y\\u001c�$/\\u0014\\u0001U\\u0001\\u0016\\\\\\\"�m���e�L\\u00182q�ԑ\\f������~4&o\\u001f�cC\\u0017)�)�,`8M\\u0018)�.�����@;Sq�NEGa���tR\\\\\\\"�~*X䁷�'{:�~��=omj��̶�TǼ{��\\f6��\\u0000WƑ}��\\u0019\\u0010}Բ8Y\\u0017MK\\ru�����\\\\\\\"\\u0005\\u0013\\u001c�\\u0000P��bE�\\u0013TN�T���\\u0018�r�\\u0019Iy��/N��N�|x(�3Zo\\u001a�$�u��ڊ�<L���YC)���{F��ƸɃ\\u001ed�\\u00147Y\\u001d\\u001c�}�U\\\\\\\"�O��u\\u001c\\u0018�sJ�J4Xq�����T\\u0000t\\u001e�`���8R2\\u0015��\\u0006e\\t��~��Ny\\u0004W�8�c\\r�lk�m\\u001d4װ��!�Ɏгʬ�8��\\r�Kt��J2\\tYVF��1�����j���'\\t\\u0003$B5*`h��ߦ���^�D�\\u0001`����i�:e|�\\u0015���\\u00171\\u000b��\\u0005\\u001e��)\\u0004\\u001e3�e۰1\\u0001��h$_Z�\\u0003�\\u00064y\\u0019�\\u0007�Y���6�R~#\\u0005^gv}\\u0010\\u0000UP'�T��\\u0007\\u0006\\u0002\\u0002\\u0001����u\\u0015\\u0002t멚��e�\\u0018��@��4ֻ�Ȇ=��j\\u001bF�\\b���(>g��\\u001c\\u0018���qX�L�\\u000bo\\u0002�~��+*��'���Ip�\\rqc�\\u0002�}乹��R$�\\b%\\u0017n�u��ؒ\\u0000��;�\\\\e[)\\u0004�他�Wy����frO�N���]�\\u001c}�\\f��:�����Y������O\\u0018�6\\u000e>��\\\\\\\"FGa��[J���,�\\u0017\\f\\u0017�?�\\u0019�.����BZ\\u0006��:\\u001et���\\u0000�\\u001d�\\t`v�1��:㳉��f�˷��}�4�A�҇9?u(��\\u000b\\u00136�&���Μ�A��ZbgA�F,$�&�!o�뮀ڕ���?���i�\\u001dı3/�D��t���\\u00073\\u0002f6�Y\\u0006\\f2�\\u0015�W��-�5\\\\���L��\\b�\\b�G\\u0001�\\u0003���/��\\u000b\\u001e9�\\u0017H�K8]}ֲ�_�K��a>T�a�&*Aq�\\u0000�\\u001d;v�sfǗ\\u0001�c�>ո��!���\\u0015a���\\u0004m�\\u00004�E�bA���?�\\r����E�d&W����8\\u0007�n��:�Z<eqx�1�i\\u001bj���n�ԛڪ�<@��晈���\\u001b���Hp���\\u000f;d���b/`�\\u0003�/�\\\\\\\"��T���Px뉋eTlj�\\u001dZI�b�rٍ����0,�Ȯ[PV�GO�\\u0001�g�tؘ�\\u0015b2���6��bm�ֽ�%[�\\u0011�\\u000b�\\u0019�@\\fۜ������x�ق<(dg�\\u0012$\\u0000o7��Qn),-<�j.\\u001c\\u0018�c\\u0017\\u0006\\n:r\\u0010Vn�4��u���p�$�Oc\\u0000T��H��ړϒ�\\u0018J�Y's�f,=���+��YZ/�K\\u001d��I�����!�L̘�|j�\\u001a\\u001d���6��I��u\\u0002�4;�\\u0014K�\\u001e�%�\\u001b�\\u001b�?�֫��Ɛ;5ϻ�\\u0018\\u0002,;���\\u000f\\u0015\\u0004�䴁\\fD�Գ6�O��ǋ1�ˍ��\\u0005Q\\u0004z\\u0007\\u0007ݻ��Q�ύ,Yr�\\t\\u0011���7\\u0015׽X$1��\\u001a���R���]K���~\\\\\\\"t]~�8ŉ�c�iG(�z�z�\\u0014�v��W�r�+K1\\u0007Mu��zWY9�i\\u001656{\\u0007\\u000e�T܋�3�1`��`\\u00168�Wto�Qmm�\\u000f��\\u001f�\\td�����h\\u001c�\\u0019D�l����b-�:�|_\\u001b�O��V?pKn-�׿kv������6I\\u001d�\\u0000\\u001e��iw\\u001d�V=�\\u0019v\\fJ��\\u0007�L0#L��fx�U�T�N���\\u0017��XPcX�<+V`���d\\u0000A��'ލ��œ��\\n�\\b\\fŔ\\u0000��P��\\n'��ᴰ��\\u0010\\u0013<O)�]K\\u0002��k\\u0013�Җ�\\u0011�ɏ��\\u0017�\\u0001�04�#\\u001e���q�\\u0007���l�B\\u0006d\\u0005YM�l�jȍ��<i\\b�\\u0015\\u0011պ󩍭�A>�/!���8�lq[s�\\u000b��\\u001d-�\\f�\\u0012�&)$\\fV]�7FO����/#\\\\\\\"�'\\u001b�XΦ�����D�\\f��%�ڑĂ6i\\u0005�$�O©�� ju�o�z:���lu4N�C�]����� |\\u0004f�M��\\u0006��-�[7���\\nl�V\\t\\u0011�'\\u0005�m�)�6�֚�\\u0000%�rp2q�0�M��4\\\\\\\"�ܛi�҅L��\\u001b�4\\u0006'��e6\\u001e����5�\\u0000c\\u0017k;�1T���\\u0010���t�}��\\\\�\\u000e\\\\�����0��F�zw�V�.\\u000eO\\u0005\\u0010V�s�.����O�{Z�8�\\r3K<�1�\\\\x���7�����ȖL\\\\�|OѴ�;�b~tPIݖw\\n�ƕ1g�6Xl`T��\\u0005�,��&F|~\\u0006�\\u0000E+�g�{N���\\u0018a�\\u000f�\\u00124�$��ƮŒ3҇A�\\u0011��g\\u000b���@V,��2\\t\\u0001*䶞�t��Ǜ&Y\\u0004�\\u0014\\u0004�ѯ��pnz~\\u0014\\u0001�U\\b�Ŀ��\\u001eR0LXᠲ�ڻ=��\\u0007�j�������e�\\u0017\\u0005n�\\u001b܂\\u000fʂ��\\u0006.\\u001bF\\u0004�-�\\u0018:G��_Zf�d!�ʧ``AS`H�W��\\\\rc2�R\\u0006u�C�Q���֭�U-\\u0013赟\\u001bak0��ƦKe!B�Z\\r~�1p��\\u0001��Ҹ_(:\\u0006ݮ�Vs����\\u001e6��\\n\\u00057\\u0001ON�.?��ɗ�\\u0012\\u0005;�hM��v���°e�\\u0012��\\u001b\\u000b���AV�\\u0000�\\u0000s\\u0014�\\u000f��'!f��\\b�bCr��T�A]\\n�*T�R�J�*T�R�J�*T�R�J�*T�R�?�p�D�(��I}��\\\\\\\"���H)�\\u001d���~\\u0019��k�ez��X0k?��\\u001b\\u0011\\u0018��G1ZUȇ\\f��\\t'՘(�X[S^cr��\\n�\\u0017�T\\u0017\\u000b�?k�\\u0015��͓2A!\\u001bc\\u001e���z������r\\u0004���+\\u0002�^�*\\r2\\u0016S��Hɂ�\\u0000\\u0015q�\\u001f��e\\u001ax���+A<�<r�\\u001d��\\\\\\\"��\\u001e�UbQ.\\u0015�\\r��\\t���\\u0000F����Ȃ)�(�@Ġ\\u001aQ\\u001c�\\fX2��;M\\u001c�\\r�mѷ��kGv��Y\\u0017��\\u0017)���m�UO��\\f�U�\\u0006P\\u000f��ƛ<�&2\\u0004��E\\u0017\\u0017��^��<�5��\\u001b�����4�����KF�}�M�_�QF��)y�\\u0012��Vlܯ.\\u0013^�\\fA� ��Y���W,�ă�_p\\u001dꙁHǕ\\t\\u000e>����o\\u001b�8\\u0016�Dd_j*�ݧ�\\u001e�l�\\\\bv���f�C\\u001cK{'�X\\r>��#R��\\u0004\\\\��4\\u0007\\u001c��e�獝d\\\\\\\"��\\u001d����{P<���FyC�b\\u0002���ЁB*M#.�F�\\u001d�K\\u0016\\\\\\\"4\\u0015�\\u0007�;eY����kkC\\b����IF�E���P\\\\�&Lt�XH򨌞�����7\\u0007\\u0016|\\\\�dI]q\\u0014\\u00140�qk\\u001b�ѯUr\\u0010�a��[�GVTbw%���ڧ\\u001bx���F�#+�\\\\\\\\\\\"ᄪ<\\u00117~�����M���ʐN�I�\\u0001�\\u000f��,|\\u001c���H6�7v?M��ƴ\\u0018y^u20�\\u0005�\\u000b��~�|\\u0018��!�R�\\\\\\\"�����;\\u001dj\\u0010I�\\u0011���HuM� A����\\u001f\\u001e.\\u001b\\u0019X}��\\u001c�n\\u0002��\\u0014�.9�d\\n@u�-ٵ��h\\u0004߈�XJ�U!Y���=(ɥi�'۹�}�4T�\\u0006�\\u0000�Y�J��{��GQmvוw\\u001a��ҋ�*�Xw6��i\\u0014M�6�<a���@Mq��cb��I\\u000eK\\u001c�\\u000bb�Mņ��j�M�gφ1$��s��\\u0000[����R��@�U���,啐�B�\\u0000Z�p�7��A��@IV�T۾ۓ�S<�V,��,X-�>�\\u0017\\u0014/�s\\u00173���v\\u000b�\\u001al�\\u0001\\u0017H�\\u0011��z�\\u0012r8-�\\\\\\\"%��-vR\\t����V��sL\\n����2ݔ��ɳ��\\rk�C\\u0005*:�-�����y��\\u0003.3\\u001c�&��\\u000fKV������\\u0018\\u0017c�^�ݬi<Q7#�&I%#\\\\\\\"�:\\u0001�Q8\\u0010#z���\\u0015\\u001d�\\b\\u001a��\\u001eCޫ�rēy�>(�\\fl:�_Ґ6(���>V$�z\\u0012kE�E\\u00148�E\\u0013�Q\\\\\\\"\\u0013�{�\\u001b�),B�0���\\u0011�up�\\u0018Ȣɟ��yū�&S\\u0019�\\\\\\\"�u�\\u001c�^6d8\\u00003�J6�P/e�q�N׮p�;�^�m�\\u0000#B�qd�P\\u0014���\\u001d�j�D\\u001a�b�ΐ`\\u001d6���\\u001f�!�0b,��-sޛ�\\u00148�\\u001bد�#f\\u001a������|\\u0001����=�������t6\\u0017�Ύ�\\f�Dh\\\\\\\"�g���^�A٘���WA,8�Q6I\\u00027\\u0004X�7'JY�`�G3��\\u000b7�\\u000f�K\\\\�)�\\u0014Ҝo\\u0013D\\u0006�ʥ�ܡ�\\\\n�\\u0006��co��=6�����@�3�o�C��<��\\u0017d7)�S����(gH��Wq\\u001d����M19t��\\f�G����\\u000e�\\u0016�z[�d�\\u0015��$[_J� �\\u001b�U��:5���Ѝ\\u001a�t�5��Gv�N�\\u0012\\n�\\u001d5�\\u0014��O�`�\\\\\\\"Z8Y�\\u0004��-��έ�p���>1����\\u000b�\\u0005P\\u000fOƀ��%ɂ\\u0018d�܋�����\\t����J\\fH�ݞ�frmci\\u0011}h�7:k\\\\����˘\\u001b\\u000fV�\\u000f.T^^\\u0010y�[\\u0019t��@\\u001bEǸ�h��\\u0014eq�cJ6�EՔ؂��\\u001f��ZQ�c�\\u001c��\\u0010�у\\u000f��R���|xl,�\\u0015��2\\u0003�+i��\\u0000V�Q��lԜ\\u00001��\\u0000f\\u0018�;�\\n\\u001e|���2���+���J&\\u001c�Ŗh�P���SЍڹ��;៥I\\u0001��O]oV\\u001c�ͼ��C1\\u000e���mV��\\u00181�+c`[`���Ơ�#�cN��\\u001b'\\u0000\\\\\\\"\\u0015`쬽o���K�ݕ\\u001c���\\u000e����yY�0�.̣u�\\n\\u0005M���pNꯉΞ.o\\u0003!�M�b\\u0018u�dmr/覩��k\\u001e�0ap�\\u001c����Ɯ�i�q\\u0012��L�D��(e��n���\\u0019����#\\u001exo��3�ʿG��0c_B��<\\u001c�w�@6����\\u0000�oھI�N��d��d3��\\u0000�.VK��\\u000b���v<9����ar\\u0005R�\\u0002l&�=$�^\\u0017�ʐK,�^7k�\\u000e�~\\u001e���.Dܓ�d*�Q�\\u0014�\\u0004\\u0001��58nK\\u0017\\u000f��\\u0015�fH\\fU����\\u001d�����X钯\\f;��\\u0000��\\u001dځ���E\\u0006\\u0014\\rA֔�ؿ����>(�\\u0000��~��>w�\\u0000rǄ��@\\u0019������\\u001c*�H�#K4{�\\u0004\\u001f�\\u000bX����<I4�G�!�\\u0015s�z_�)��y���\\u0016=��b\\u0001#q�V��U��\\u000b�@��里L��#��\\u00122�(\\u0001X����<��Q��/\\u0019�[��lOr\\u000f�ґd�C\\u000efV>\\f��9܌��Y\\u0015z��s\\u0006<<�#\\u001cj�b\\u0000���\\\\\\\"稦<g\\u001d�\\u0019��ųx�¬}�J��_ϭ6\\b�q�Y�ZR�\\u0005Í�\\\\\\\"���G��X�>O'\\u0014\\u0018��*څ\\u0000~��h����2$�ܖ >�\\u001e�b;n�C�\\\\T|W'\\u000e\\\\\\u0005$�%\\u001cH�v�qbHS�QF��\\u0000 �\\u001a \\f-$���\\u0000\\u0014}\\\\\\\"��J�\\\\���֯/{(_\\u001dCZR�\\u000biw�ړeE��\\u0012N�˟jǪ��+��\\r�V*��� Q\\\\L�9�!�\\bb�E��n\\u0007�\\r�bf>Sd��X\\u0002��:\\u0003��k����ô�h���,^[)_\\u001f&<C��*c_oj�\\u0007\\u000b\\u0010O4�4c \\u000f\\u0012\\u001b��ݶ�O�\\r�K\\u000bB���<�AR\\u0007�:u\\u0014��#\\u0006xn\\u0011\\u0014\\t�\\u000e�^���\\u0004E�4RB�n�\\u0018�ԇ֜��T~^����&��2f\\\\��_\\u0019�j��U���+�<H�\\u001b\\u0012Q�\\u0000�\\t?n\\u0013k�%�\\u0007'�w��LS�\\u0014�i�\\u0015����d�b�,r\\u0014\\u0005�;�s���Tr�K\\u001bcc�\\bVp\\u0019��[��RA��M�\\u001c�\\u001a��ɿN^ޔ\\u001f���q��%K\\u0017$)�C\\rn;�Y�\\u001e\\u001cR8\\u0004\\u0014\\u001b��l\\rp-c�9XM��� �k:��.)���\\u001eF&F6�%uV\\u0017\\u001a\\u0002mu�ҪI�ʋ\\\\\\\"NEˎ�ř�p=��^f�\\u00140��D�i���\\r�GrGn�R�L�?�\\u0011��E�\\u0003ݥ��\\\\��\\u0002\\u0011\\u0005���M�M��q���M�\\u0000]C\\u0012\\u0000a��D\\u000e�r��{\\u0018'VK�\\u0007}!N�J����b4�,a<���\\u0003^��Oƨ���\\u001b+*)�e�m�\\\\\\\"��p�\\u0000-�m�I�ۑ�D2��\\u0015r@`U\\u0015��m�{ә8���\\u0010�\\u0013\\u001cc�Y\\u001e��Һ\\u000f���Μ)��b\\u0001�l�wNɰ�j�U�\\u0005��H�����\\u0016�+��I�j�3>3�s�,�|NF��l�o�Gq�X��o���2�\\n�r����-�0�\\u001c/��Vp�\\u001e��~\\u0014\\n��\\u001an\\u0003~\\u0015d\\u0001�\\u001a\\u000bF<��]ϩ?J\\u000b\\u000b��\\u001b �G�\\\\\\u0010c�$�o���~By�W&f��\\u001f\\u0018�UT�4N.K��,\\u0004�-�U��\\\\\\\"��K\\f�\\n�\\u0014h�7��\\u0017�\\u001b[�kGl�7O\\b��F,��;X([��9Uْ.BE\\\\\\\"��l��\\u001foU�+;\\u0014\\u0019\\u0019\\\\��n�Z���\\u0014iz.9$\\u001c�c㥠\\u001b#\\u0011�p.��_��E��\\u001f�e���!UHC��'�JR:�ڙe���G�&`�S&5��:�����]�dl�}�d�mB�\\\\\\u0013��ܼ�6R$M�\\u00141�'�T����\\u0000�m.k�2�\\u00035�@�E�\\u0000�z�6.<���$�6_R4\\\\\\\"�7\\u001dxmY�5��Xf�LI\\u0004h#�h<H��Xe�t`�DE���u���\\u0006\\u001f�<8��B�u�!-����R~<,PI���&�FY_��:\\u0011~�W8x�7)���\\u0010�\\u0016��\\fU���F<�r�?�\\u0013\\u001c�l�0�\\u0018/�u�\\u0016N��c[w��+��\\u001c�)\\u0004�D\\\\�J�����z���8�21��\\u001ak��e�\\u001aX��>\\u0015|XBY����\\u0001���\\u0006��ϕ��,۟\\u001e3rT\\u0012�ӯ���ζ�x}+\\ne�m\\u0003%������-��0�b�l$\\u001b�`���rO�\\u001a\\u001b\\nI��x\\u00143$���{X\\u000b\\u001bz���d�X���a1���\\u0010��j���2[/\\u001f\\u0018*d*�����'�v�M�\\u0010��`i�\\u001a��q�l����X}.���CK�.W-�\\u0004��EbYG��6���.�1d�x\\u0010�`��r�A_��M#�2r���X�^x��_�[{���|<l\\\\��\\u0019.\\u0011��T\\u000b\\u0016V\\u001d\\u001b]mz\\t�D\\u001c�Ί �@M��$� �\\u0010iVF��Cl�+�^'�0G�\\u0003xѽ�y-׹_�4n\\u001a����\\u001bT[�ֆ��ɛ:\\u000e>@$HْK\\\\�\\u0007KѶ�\\\\����7�\\\\\\\"1����S��K.�\\t��Ē�2��j\\u0014�=�t<1���\\u0000�p\\u0011[xP=�c`��~4p͗\\u001b3#\\f�x����\\u0006�o�>��\\u001c�1�f���z\\u0015��Mƴ# p@�k/k>\\u0013l�\\u0018hQ�_��9\\\\'�|YqH\\fV��\\\\\\u0003�W_c\\u001e#.D9�r�/\\u0018\\u0000k�ÿZ�3��O7#liKZ$>����x�����M�\\u0006�*��o�ߝ\\u000b\\u0007,\\n�\\u0006�#�hġp\\u0010M�\\u0000�R\\f\\u0016�OP-\\u0013�N9\\u001e\\\\�1f4`��C6�]iX��l�%�p�d�\\f:�t��c@�\\u0002f0m�J�\\u0007=o���\\u0019PΑ#\\u000f4M��:7�CFDH&\\u0004\\u0002 �◙_\\u0006@C���^V��\\u0006\\u001b�y\\u001c��l|��u\\u0005/�u���̒4.Aa����6�y�0f�<��\\f\\b\\f��\\u0000��ο�U���4a\\u0016e1�\\u001bΣj�۽P�F�\\u0000}3\\u001el\\t\\u0004\\u001e�=��\\r�ثS\\u0018�c�+��\\u0011I1�\\u0000��R.\\u0002@�\\u0016uT\\u000f�iw�޽���\\u000e\\u0011�\\t�39\\u0001#�@�oh��D�2\\u001c�d�\\u0006)�;�\\u0018��\\u0000��U�(�n3�h\\u0005\\t|�O��ޕ��3�\\u0001L8�L\\u001f�G��/�u��\\u0003��7\\u001f�>�Ȇ\\u000eJ\\u0006�dD\\f���>�\\u0001�ʐq�fW%�\\\\\\\",�\\u0012A \\u0017rw�#F��m]Ʊ��.>\\\\j�\\u00177ܻ��u֡C�\\u0006�ySr�\\u0018\\u00032_�\\u0017\\u0016\\u0011=>�����d�H\\u0002'�Jӳ\\u0006��\\r��\\u0000\\u001a]Ơ�%f�]�A�T�-k\\u001b��\\\\�P���Ȳ�!\\u001eѰ�\\u001b��}j�3�\\u001f'��A�\\fx�E\\u001a�\\u0005Ձ��� ^�\\u0019�ȊR��K\\u0013e�#PF�� ̀�Hܛ�X�O\\u0002l\\u0003j���6�w��>R�>6TO�!��\\u0010�\\u0018�:/�ku7�0�L�0Ɋ9v��*\\u0018�\\fG���Md���\\u0002G\\u001a�eD\\u001a\\u0016>��P8�L� 0\\u0012�k�-��\\n�.4��\\u0001\\u0006�d�\\u0000��i\\u000f1���c\\u0002b�l�ؒ�N������|Y\\b�\\u000e�u�<d�\\u001b���!�T�I�r\\u00137���15�T^��7\\u001d��\\u001c���\\u0010A*�d��\\b\\u000bb}m{ա\\f�/N�4��ڝ�\\u0013�tÕ��\\u001b;��-������TB�˓p\\u0012\\bع!t鹺P9\\u0019|vn;2�TF<���@:\\u001b�FrHW\\u0014��YT��=�wiq򤘒E�I�\\u0004�l\\fN��h�:|oW:�\\u0011\\u001cN�JN\\u001c\\u0011�s�\\r�&��۬\\u00056�܍\\u001f�,8yP�\\u0018\\u0007|���\\\\�B\\u001dHa�Sܾ{\\u001b.\\u0016|�X��*Ƃ���pOΐB�2ȋ�\\u0007�YC�\\u0015�\\u000fPj�C\\u0019V#$��G\\u001b4V\\u0016\\u0007Ҧ2��z���2��b�\\u001b*ぐ�Մ�@�ބA�I\\fL%DP4���Z�\\u0011T`�\\u0013d\\r�7��I$\\u001de\\u0004�o��v&G!�� �5fU��\\u0001u\\u0002�*�)�\\\\\\\"�D�\\u0016l��\\u0015�M�\\bb\\u000e�\\u0013�Ы)\\u0004� �3*�BB2��4\\u0001\\u001b���|�e17Զ\\u0001��\\u0014Xj~\\u0014\\u0014G%�|��c\\\\\\\"�;�\\f���T�>W�Vr����b���񬑰�Ss{���\\u001a��э$12>(V\\u0013�o��h\\u0006��.�R\\u000fN�e\\u0001��\\b^�Dc�������z\\u000b\\u000b#?&9U��\\u0000�t�\\u0000G��Z�oj\\u001b\\u0005���u�;1��\\u0016��à�\\u0006�q�X�\\u001f�\\u001c\\n��{�_q\\\\\\\"�=�`�\\u0014�\\u0016\\u001c����\\u0017R\\n��'qo�ޡ@�f$kZ1y����zq�Ut�N�]w������<2��!\\r�\\u0000��\\u0005��\\u0016ӡ�i��YXؐe$M�ٶy^cib:�Ƞk�K\\u001fΆ�!��Ɗ%�6�P��\\u000f�W�r\\u0019\\u00198ذ͘�H\\u000e�\\u0018�U��ܟ�N�ki\\u0016�r\\r\\u001fM׎�'1�|�r\\u0016b�Q\\u0015�T*at��\\u0014��Λ��&�\\u0006$F�(�\\u0016:\\u0005?�j��c���\\u00180~��1�\\u0003rzبݭ1�\\\\\\\"�\\u000eX�VX�\\u0014V��*��\\u0015��J\\u001f\\u0007\\u000f\\u0017\\u001f.\\u001c���}�ݍ�۩�֭����3\\u0014��1-�\\u0015����g�޽����X��&^�A��/�\\u0000*��\\t��g����N��m�\\\\�/�ul��C����WM>\\u0015��?}'��&���6��T�@��mV|k����A�v�AԩR��\\u0015*T�R�J�*T�R�J�*T�R�J�*T�R�0�Ŏ7\\u0007%7�\\u0004\\u0011��M:Ur&��m��4˄a����gK\\u0001���=����s�\\u0003 ,y\\bt\\u0005$G\\u0003[Z�\\u0014`\\u000e{�\\u0017˕]͎�D۷Ҳ�F�\\u0012;{��]M\\u0003\\u0002\\u0018�SP~~����\\u0011�v�e\\u0004h�C�#�a ~4\\u0006lk�%$&�fR�@����@ޖ<�.\\u0014�^$\\u001fZ��8���yJή\\u0010@\\u0016�i�q�\\u0005��E!a.�T���z��JS��\\u001av@�*��\\u001f�h'�p��\\u0004�\\u0002^(�W����㦴\\f��\\b1a�N1�����#�����n!T�n���\\u0001��r�1\\u001eAw7���o\\u000b򸢹L���1��\\u0019�j� ��:����\\u0018��%bP��!&��~&��I�\\u001e�Wǐ�\\u0012�\\r�}\\r�\\u0010J����h����\\u0000��dQ�ʬ�\\u0000�\\u0017P\\r,�\\u0013��Lr\\u0010�\\u000b\\u0012@v\\u0017]\\u001b�\\u001d��L���c\\u0006�Wi-���mS�\\u0019o\\u0019�(+7�EAm�\\r��~�m*�y��M!�ヴ\\u0005�\\\\��t�XdRX9���>[\\u001c9\\\\�W�\\u0000��\\u0003\\u0015�\\t�������\\u0003L\\u0007�\\\\\\\"v6�\\u0003�F�\\u000e�+�rr0��S�\\u0000pX���,u\\u0017\\u001aS�\\u0012�\\u0000�pw�\\u001b�z\\u0011xŎC.�C�\\u0011\\u0019�ŏ[��\\u0018\\u0015�\\u0017�&_H��S���+�g\\u0007\\u0000�p�G�\\u001bO_γ�����ύ\\\\\\\"�(�*7hm��1�y�.\\u000ey��&�Y�u��n�X\\u001bv�y���e�q�\\n�}\\fv�v7?��3 �\\u0001=D������_\\u0001ʀv�\\\\I\\\\\\\"mmT�q��ڭh�Eq�\\u001d�\\u0014���C\\u0013&��\\u001e�q������\\\\\\\"2�D/\\u001b)\\u0004\\u0017���ޝC�lI?N����\\u0004��+��0B��f�]�М��\\f��'C\\u001d���,\\t�oֽ�yF�\\r��F��?k��\\u001d\\u001a�\\u0000.�W(@�u�q�\\u0000-AE+E�\\u001eDM�\\\\o��\\u0007�\\u0004~\\u0006�n�\\u0000�q�N���\\\\�\\u0001x�nnC�W�\\u001a\\u001cq&�\\u000f�T\\u000f)�\\u0000Q��z�o�\\u0010ga2�ʾlU��\\\\\\\"�\\u0013���&�����$���X��E\\u001bX5�{�Jo���\\u0003\\u001d��o>�\\\\\\\"��M:��\\u0004�Dk�B�_\\u0006<nrdэ�?-�O�(�\\u001f�Nr`�$�$�?\\\\\\\"4;��H\\u0001�k-��ޘ6,)�d�&�\\u0018��h[�֖cr�\\u0013t\\\\\\\"=�%��\\r�b�I�q'͛>vx��n2��}����,��g��+����5S�j�#U�k]���~�O]����\\u0000M����֮%\\n\\u0017x���#V���R&m�\\u0018Y������L�Y��xR�o\\u000eg�gME��z���-LI�F\\u0016���Zl��I;�S�\\u0005\\u000f�K\\f�qd�\\u0018�ʤ9 \\u0015\\u001bI\\u001a_�J\\u000bz�n��2�\\u0013��\\t k����5&>DR�J�\\u00115��4\\u001b���T�vВMk`X�\\t�Ot7�R�����6O\\u001c���\\u0005m��rd{\\u0012F��ր�ֶ��P��\\n�\\u001b\\u001e\\u0006\\u0007���'\\u0016!*�1�o�zv�\\u001ac���7�b\\u001d�\\n��E�ES�����g+\\u0016 |>�\\u001bGuQ�ˋ\\u001ad�(�\\u0002�����D�sC��0+�&��\\u001e\\u001aU���O�&\\\\cƻWz�pl�J���\\u00070�lR��\\u0015]���i��4�Hd��\\u0003h�{�mqn��*�E\\u0004��\\b\\bD\\\\\\\"Eb��k\\u0011��J\\u0007\\\\\\\"9E�\\u0000��~�Mi��\\u0016o\\u000b\\u001f���ʒ����=6�Ɣ�x���$q4��\\u0017q:!��1ҏ�p���n˲�amoڕ�S�c@�G������(�,�3�d�Crތ����X�.KS0-+v��x�\\u0006\\u000e�R_\\u001b\\u0001u$٬~4!�L���\\u0010��*7\\u000f�ڪ�\\bl£]�\\u0001����qW�,��vٷ��\\u0003��i�\\u0003�[ۋ\\t��N�7�3L�V\\r� �ɘ�V\\u001e��\\u0011U)�\\u0018�5\\u0002E�6�\\u0017 \\u000b�\\u000e��x�XVE��;�r\\u0018\\u000fx6�}(��P�N��/�b\\u0001\\u0016��4���C�s���\\\\�b �V���|�l\\\\+�,�]V�{|;k^��~7ک�D�JK6���\\nk�M\\u001c�9\\u001fp�v+��6m�E��nS��6�\\u000f,��b]H���\\rkt�\\u0019:�3���Ρ\\u00192�E\\u00194L�\\u000b��Wb\\bߝ\\u0007��R<Ȱ!�5P.Wr\\u0002M�CQpqX��7[I<w\\\\\\\"km��b6�-^�\\u0000��f�C�� �\\n,-n�\\u0007�/��_\\u0014$\\u001bK��,�;�\\u0001ۧSG+\\b��e��\\u0000��Y�s�8��B@�ΤnO�4�h�/�u\\u0005\\u0016�>�-�����?��<��f�OtH\\u0012��{\\u0006׵]�S�ő\\u0019\\b��\\u001b�~6�6\\u000f\\u0017ǧ\\u001b\\u0001��\\u0012�\\n���ڛ�$�ih�������z�k�\\u0003&�H�ǇҾu)y\\u001e_\\u001cEV\\u0006��j\\u0014��Ҝ�)\\u0007!$A#+�\\f6��\\u0014�m?:(aǋ$�[y�����KZ�ă\\u001e,�bQ\\u0019�J���ʡm\\u0002ƪL\\u001fCZ��\\u001f\\u0006LA\\b\\u0001D\\u001f��3�\\u0015�\\u0014��@E� po����W�9\\u000eS\\u0017;\\u0015�ܜc\\u001a��+�ɩ�W\\u001e��R����F�Hd�+4v�ܭ�\\\\\\\"�\\u001c�\\u001f�1[!�*���\\u001dłZ��\\u001e���:�z#j5Ɖ�\\u0004���~M���}��4�����\\u001a��\\u0014�u=T[��8�O'\\u0002m�{��x�F�\\u0000�\\u0013�;�J�\\u001f\\u000f����8�G��K\\u0016�6�\\n�ߗ�=��ȹ\\u0010\\u0014�9�\\u0011r9�ܶ���LQE�Tu��˭9|L�!\\u000e�D�Y�\\u0000�����})v=�s\\\\\\\"��ꛄ�Eʩ\\u001a��N�y�:\\u000e84\\u0004dK�t�\\u0014kvЖ���l�q�L��>��+��3�|\\u000bb�|�A�\\n�LX�\\u0018\\u0019^\\u0012�K��޿�:�.L�7����cSчc�K�C������\\u0003�R4�x�C�Κ\\u0006��a�__�\\u0011�\\r\\\\\\\"�y,\\u0018�\\u0016�te�Њ\\u0017&l�iF3\\u0016ƈ)���W%��\\u000e�#�\\u0019\\u000b�U��j�.H=z�_�3#Ň�Y�W\\u001a6RI\\u001a{�/�z��̂\\t\\u0016Ҫ��r�F����v��X��\\u000b�\\u000e3�+�|��t�1c��..T~S'@74'�,D y#����Ί�`Ɋ\\u001c�Sg�@DS�\\u0013�i\\n䳧��%�!�Z�\\u0000\\\\\\\":װA+�@��\\u000e�Bn.��S\\u0014l��\\\\\\\"�\\u001c\\u0006X�T]�\\u0007\\u001eb�#���\\u0006r\\u0018k��M0\\r\\u0019�[��\\u0013;\\\\\\\"l�\\u0014�0�\\u0000�'^��\\u0000\\u001b�\\u0016�90A�\\u0006�\\u0001\\r?�v��\\u0018kqG�D�\\n9�G�Q\\u0001��Wm�A��Tq�,\\t:�`��Ǉ�.VvV���\\u001f���\\u00189\\b�vO&�_�l=�?�z�l��D�\\u0012\\u000f\\u0016�n4[\\u0013��t���\\u0007%�?��\\\\�+ݏ��WAo���\\u0001�a��f���\\bޣ�\\u001e�Q i\\b54�Ƀ2����c_���q�\\u0000'�c\\u0014h\\u0019�[�\\r\\u00022����|k����,�\\u0011f�1L�M�.Q�m���rxXrW͉ A��{�\\u0016��P��\\u001b�K3L\\u0017�P*��5�&���jV?��2[�q\\u0017L�4�\\u0000(\\u000eGnt!�\\n�\\u0014\\u0013{u���S2,�G\\u0010O�F i\\bX�-tU\\u001eˑ����<��-���\\u0011�!\\u001b���&m��:�ښr\\u001ct���A>� ��G/���7n\\u001a\\\\�v�f`I�\\r9\\u001e49<���0t(��W\\u001f&]\\nz}i\\u0003r0㿆_iK���\\b�\\n&\\f؟\\u0005d1��R���a�Mj��V��Y�/�I��#�\\u0016�ҳ�4\\u0000��n�k���ǅ��P�2g�ښqr� �Y�j��s��jI��~E����Ge�7��}>\\u0014\\u000f�1�&�RB��F�O�kP?Ȳm�����1����\\u0000��\\u0000��@H�T�Foj݋\\u000e��0'*�ǋ��o�U��\\u001e\\u0014X�X�/�\\u0002���\\u0001�\\\\z���}�c��Q\\u0014k�v7����i\\u001f\\u001b���\\u001c�L@�E!�Q�t\\u0017�r��UG�Y\\u0015ogݷo�\\u0011�(\\u0004��t\\u001dS�Q'�\\u001cc\\u001en|�vF\\\\g\\u00144����҆�����C23L]�u����ۦ�0��|�h�ؖb�5��\\n|D��q�������\\u0000\\u001a;�����9P$P�$�����oKU�\\u0005��\\u0001ʧ�����P�rH�ͺ�\\u001aS\\\\,�\\\\\\\"�h�%0���&�����F�ܓ�\\u0002F4��\\u001a\\u0019=��N�)^p���ǎh�\\u001bE�6��~F��\\u0012?�\\b�.X�*�:�����\\n\\u00194RL\\u0018�y|Q�\\f��;�8�7\\u0017(\\u0013�!U��c��$�\\u001b:��c`\\t�S\\u0007䱤�\\u001b@FF)�nW�uҖ�츾\\u0019�\\fj�٬\\t)����s>q\\u0011M\\u0017�Eլ7w�_�%W$\\u000b�ʱ\\\\\\\"ݠ�=����o \\n��}zkĐ�d�\\\\\\\"�RH��l?t�u>�r�\\u0018x��4���(ê\\u0013���oK2�7���4�\\u0012\\u0010ʹ\\\\\\\"#��i}mT�#$N�5P\\u001a禚���d\\u0010`�\\u001a��r�efSb�:Lmƛ`��㌓\\u001b\\u001a\\\\\\\"2T�3�Yۻ\\u0015PzQY0�h�s\\u0007!v�pۺ�m��gd��9\\b����{\\u001d�O���\\u001b>l�.^T�,�$j\\u0007A���4��pf��j��A޴ac�.,� ķ���\\u0016�\\b�\\u0006��1rr��,�\\\\\\\"�\\u0005\\r)!��_ϭ�\\u001c�\\u0019#���H�p/�i?�)�~VTX�όXLΠ*�߯��(nS\\u0012I�#�5풚���\\u0005���֘��@\\u0010!.���.L���re*\\u0013���ª�G��kmE�����0;O�(�*X��[\\u0003k~��_��*,�u�%�ee\\u0011���=�1}(�8��>$��+��\\u0000,��P�a=_�;����*\\u0017\\u001b��(�w�\\u001fm+e^?'p\\\\\\\"@�.> �@��y0˗���\\u001d\\u0012�Qm�\\u0018����W\\u001e܎c����^�}�Ӡ�aWK\\u000b�$��L+v��#��E�\\u0013w!J͈:\\u0013w[��8�7尢y\\\\�qL�\\u0010\\r\\u001a�O]H��Q8��I�M!p'�7c\\u0019:��q���\\u0017'!x��,2FY�(ݦ�\\u0007�ީ|hqp�Ɋo2�-�\\u0016\\u001a\\\\jj�$\\u001d���� �[\\u0016(\\b�\\u0000\\b&��H]�%�A&l��TaeRĒ\\u0001�@�F�J�(yG����\\u000b�z�ڼ�ř��F7�\\u0010J0O{&����@�ș�rѼ��\\u0002+/�5'��#Ҩ5��\\u0003\\u0014�#�\\u0017�\\u0007��d�I�M�܁67'�&,�|�\\t{hP�{��#�,��\\u0000���J\\u001bI��-�V�+����\\u00143LĲ��[Ré\\u0016�\\u001dh��\\\\i�?�H�mra~��\\u001b���U�\\u000f]�(p\\u001e�@�ɍ\\u0015��\\u0015�X\\u0006t����e��\\u0012G\\u001a�;��%n?��\\u0011�2�q�͎|���bm�X\\u000b�\\u0007�\\u0001?01%q\\u001bܪ�t���Z����\\u0019}�[~��kw��f��\\u0012\\f���\\u0018�\\u0016���\\u0018u�`����w�F^�T�0f@\\u0000ev�v�r�X䔀v���6���\\u0000\\u001a���|D�Ϗ���4�\\f\\\\\\\"��\\u001d.�k޹�`���n9���\\u0004��\\u0005��F\\u0006�\\u0000\\u0001Bø\\u001b\\u001b\\u000bW�)��)�\\u0002�u�2j\\u0007_L\\u0010-�\\b�U8�^:K�>��q�\\u0001��\\u0000�\\u0015���x�\\u0013\\u0014eA[��Z�-]�\\u0019\\u000e�\\u0013}�\\u0000�H\\u0004��Ҩ��0�2��/,E�ꪤn��6)\\n\\u00030\\n8\\u001e\\u0015�eVFl�/�\\u0017v�bO\\u001d���9\\u0019RE�J�c��Vk��9�\\r>6�\\u0013\\u001e�ؒ-�7�e�^0O&J�/���}�\\u001b�CG�عYn��+(�Z�\\u0007��߯J3\\u0010$﹢�E��,�ғ#�p\\u0003ֽ�G�\\\\\\\"\\t�l[0i�щC�;I#�7�>\\f�|YW\\u0010H��\\u001f��N�>��-�̓��ϐVFt��N��n;|�ʃ��\\u0000���G�#H\\u0002h\\\\\\u0014\\u0002�/k��&\\b\\tԱƴ�,���|?4�+�\\u0018��4h�E&)��э�*챿��5���ȏ�ʓ\\u0011d�7��8,�.G[\\n!2��d�Դ�\\u0002��{��Qj\\u000f\\u000f#\\u0006!:�\\u0016�a+1���:���\\u0000:�f�U\\u0000��iY|\\\\A\\u0019�=�q�\\n��ɓ�\\u0013U�JJ�y���Ȍ\\u0015f\\u0005����T��\\u0019Ha�IR\\u0006a�\\u0004�@:i�Қ˕���\\f��\\u0003D7Gc�Y\\u000fOo�T�7\\u0019���\\u0014�:�P-�`~\\u001a�\\u0005\\fE�\\b��kcf|W�J[\\u001bغ\\u001d9\\u000e�Nt�\\u0018\\fE����\\u0000\\u0012څ7�'�4�~6\\\\\\u001c\\u0002\\u0015���ˉV���5��R��da�81��/����4�\\u0013\\u000ei8��ɖT�\\u0006Cp�M�a{�\\u0016�TJ),\\u0007S�0'���sdƊ\\\\2ar֝x\\u0003�{����i�\\u001c3yþ@���\\u0004��֌��Ȓxq�Mج7J�ݽ\\u0016��d�×\\u0017\\u0011�-\\u001e5�t\\u001dK^�\\t\\u001d(��3���y6dJ�����l\\u0007m(�R�Ph��Fw?��\\u000f�p\\u001c��ڹK!H׶L\\u0006Ӗ�d\\\\?\\u001d�\\u0003\\u0016[\\\\\\\"��BĕZ����y��Ucǌ�i\\u0005�6���\\u0001>�#rp�\\u0014�\\\\\\\"�\\u0013\\u000b0a�_M/T\\u0018!\\u0011NB8I\\u000f�J�4��ҪeAP.�?�dL f#;ge,-r�vפ�\\u001e�d���<�7�X�B\\r�𮺕�����,�V/���[h\\u001b���S^>��\\b]��\\u0012\\u0019\\n�\\u001b��\\u0000\\u0005�jU˘�|�\\u0015*�����\\t\\u001a�\\u0000��Zt�Z�O\\u001f������\\u000b�?Q�\\u0005\\u0005R�J��R�J�*T�R�J�*T�R�J�*T�R�J�*S.\\u001ex\\u0012F�TBe \\u0006�\\\\i��z�c�d���ټ\\u0002�#i���\\u0006���\\r���G6L�s��!O���\\u000bN������F,�v6�\\u0002>�u\\u001bZ�\\u001c\\u0013\\\\�4\\u0010����mβGN�ɠiV9q\\u001bs�^EV\\u0001��R��*x\\\\\\\"�(��\\u0000j�EW�\\u0004\\u000b\\\\_�j�h��J��7\\u001fO�W��I\\u0014����\\u0003�I��|o֙\\u001a\\u0010u�=�\\u0019r$ 鑰ҙg�nj\\u0000\\u0011b6\\u0005]\\u0007�ݯ�Tea\\u001c�e�I|{l.\\u0005�\\u000bm�Q֫�:\\u0015�\\u0002�mm�\\u0010\\u0007�\\u0016[\\u0001F)74�+�\\u0007ڝ��1��]��8��/\\u001a��9`Ŷ�\\u0004Z��\\u0000:i���\\u0002���\\u000b�\\u0000κ�\\fhrcT��\\u0019Ko \\u000b�N�J_&\\\\�eL�L��Q;\\\\\\u0001�ڭB��ds�y\\u0018�8&�et\\u0010�E\\u0015��\\u0006X�w�&�\\u001d���^�f<;\\u0014\\u0010F�WQ�:Җ䑐��e�l-ޝ�w��V�lQ��}*�'J��^�P=��VL[`\\u0002��V\\u0011u�\\u0005k\\u0007��\\u0000��W4\\u001eh�H\\bf+��\\u001f�z�\\u0011��Aq�*-pO�[�ɓ2+y�\\b���G�mp\\u0000?\\u000e�\\u000b��\\u0006[����\\\\��z\\u0010j\\u0018�c�\\n\\u0005�\\u000eH\\u0003B��$\\r�8��h-�\\u0013k\\u0013V�d���?��{�����J���C�\\u0016,Υ�|�\\\\\\\"\\\\n�t�[�Y�G.P��k�ʀǨ\\u0006���Y�|�\\u001a�'6,\\u000b� �@\\u0001A���Zi��B\\u001ciqq�2O\\u001a�%b\\u0002�\\u001d�u5�㿐M\\u0000x�KJ��\\u001f���F���\\u0000/��\\fr�I\\n6�\\u001a�k\\u001f�\\\\\\\"&l���\\u001d궿֊\\u0019:I�~�0����\\u0005�\\u0013�-+;���ύ�}�+\\u001a\\u000b�\\u0000:\\u001fS^����<E�R��\\u001a����G��S\\u001b�!�!\\u0013�P�Y\\u0005�t��\\u0004r�Igm��6\\u0003[\\\\ޜ�Q&�$ܸR\\nƱ\\u001e�kb���.D�2�\\f�\\u001b��Y����1�XD\\u0011o{�4���ߥ#��r��%������5\\u0003�̱�&���\\u000fAn�N`�ֲ��2X�\\u0012��b!T���W��#��rM\\\\\\\"�\\u0002OFf,.?\\u001a[����3��L�m1\\u0012J��'�\\u001b�&LY2�X\\u0018\\n�X�я]��\\u001d�]I��\\u001eB\\u001c�\\u00166��C\\u001bkC\\u0013\\u001c8\\u001aJ�u�c��ru[\\u0012G\\u0012*���&\\n\\u0015ZY�?�\\u0010{�oP{T�L���Pr�ќ\\u0019�¨���n��{7z\\u001f�����P&�=��1\\u000fc��\\u001f���-^)Ɂr����\\u0019�8��V��P�$�:rںx0��\\u0014���MY\\\\��A��D�z�%&ȕD� �\\u001anKU�3\\u0013ǲ�}���o���\\u0000:�Ʃ�\\u001ch�p�f��~�Ξ�nv7\\u0013'#\\u001b$x���knk{7\\u000e�j�A\\u0013��I�E8��K\\b7�\\u0003\\u001ch�FH�jC\\u0010Yo�W\\u000e1�Ⱦ:\\u001d�\\u0003��Yu6�O'\\f83>_�v�\\\\�\\u0002��Xr��*3�v��m���F\\t5�Q�.��S\\u00126�\\u0000��`L�0�x�,�}�6��-�V\\u000b��s��y�0�\\u001f\\u001a\\u0019J�(\\u000e�47=Mkc����1@�]�)�$�cГ���$�\\u0013\\u0005���E�A`�{\\u000f�,\\u0007�H\\\\\\\"�·\\u001c�32\\u0011�mb�3�'�\\\\\\\"�Y\\u0004A��c�\\u0001=j�MU�.�|`j\\u0018�@~\\u0006��\\u0013G\\u0002\\u0007ݺ�\\u0015m,m��v������%B\\fv\\u001e����*]�\\u001a�P�\\\\\\\"����(�~\\u0014�\\u0018��$�w\\u001b�eoS�yBUdh�.���=(\\u0001\\bl��6\\u0011�\\u0013�/�����Q��N���?�1\\u0006�@>�j����`2��m� �᥏\\u0014�2Υ܆d\\u0002��m��\\u0015�f�$��!\\t\\u0014�\\u001f\\u0005~�����*hU�*Hm\\u001f�\\u0000\\u001a��t�r#y'��gf \\r���̖\\u0011�p�\\fG&\\\\\\\"���qr�\\\\\\\"��~��dr-.@�\\nXF�c*GO�]���X����=m׷�Q���\\u0016D\\u000b\\u001eb+2^+��B=@��R�4YO�6YІR,n��۵S����Β;�\\u00108�#���ħNޚW\\u001c�\\u0007%��vPcETR��>4��L��-P�\\u0012\\u0003n�@u��\\u0000�i\\fp���V���\\u0002�ɥ���KM\\\\\\\"�AB��Đ\\u0018�|oLd\\u0007C�R�(�@��aT�o���\\u00005�\\u001b�\\u0000�<rD\\t�,�?H\\u0003��U�\\u0000!�LG�ɰgVp\\u0001\\u001dT�qD�ɰ�b�\\u0002Cb\\u0017�&��C�\\u0000 ��1!a �&�\\u0013��N�)A{z\\u001dγNTl�J�\\n��\\u001a�*OV����d<�\\u0003b������ �����\\u0014��lD��c�#<B��bl/�ֱ�|d�z�ѷ�;\\u00016����\\u000f\\u0013�:\\u0018�u*�0\\\\\\\"v\\u00176m\\u000e���+�;h4\\u001e��O\\u001f\\u0007��������[`\\u0007\\u001d+��ͷ\\u001a8K�k\\b\\b������y�m/J��\\u0011\\u001a<��USi@X��גUy�JL��\\u0013�[\\u00126��I2��JN8�j��ܒ\\t:�\\u000f�Y%f\\u0005#�ʙ\\u0010�bPe��\\u001a)��M3\\u000bg\\b_\\u0002P~�`�ڀ@\\u001a�֎\\u000e�\\u0012�lm=�\\u000f\\u001d�4�\\\\\\\"\\u0016$>�U~Z1��Қ�r~�vX�A\\u0000���I v�VГƲ�\\u0018Xe�\\u0000\\u001d\\u0005��;�j}7�����\\\\\\\"WV�&�]�k,\\u0018��O�k*; \\u001dAPt�<�IN0\\u001eF)(%�6\\u0004��ӥ\\u0013�`�\\u0014�\\u0010�|7�+Ic{j/��@s+��f�q���,\\u000f�\\\\s8�2�U�\\b�L�X�p\\u001e<I`\\u001eede>�u?�(��0�/fAp��[����6O(�U�$j\\u001ae�F�\\u000bh��C���I����ˏ�UZ@\\u000b2�q�\\u0016\\u0007�B\\u0003\\u0006-:0�s+�J�\\u000fP$]\\u0016\\u000e\\u0011Ηo���Km\\\\\\\"��]�9Ɉ�\\u0016\\u0006;�v\\\\\\\"嶛�O�z�G��mkA�\\b��ۡ��\\u0000�%�ƶl\\\\nD>)��k�\\u0010z�\\u0000Z 5���t`ű�Y�o\\u0003ڙ�\\u0000\\u000bǓ��69\\u00166�\\b�en�\\u0018����N9\\u000e\\t�L�4�\\b�M�\\u0006��\\u0001z�K����I�ґ+ ;\\u0011�t�u\\u0007o���\\u0014�\\\\\\\"t�3\\u0015x7��]�R�pw\\u001d/T\\u0014ɍ�֯7�����\\u0017��w��������Ș��43'���U���a{�4��1�L���#��C\\u001d��Ņ������s缘�$b8�97\\u0003�s���kR�R|�!\\f��\\u0005$��֋\\u0019`��B�iʗ�\\u001c���\\u0010���gSw�\\u0000�^dbϐ��FCs��\\u0003�S^�#q�����<���\\u001bح��[t��X܆la�Cy7�`N�\\u001e�����r�\\u0013��\\u0007�\\u0000���պ[���f1\\u0016���R�+-��\\u0014~�_���C�d@�Sͱf���;�p:��D�cq\\u0002\\u0000����htщ\\u001f�m�����tRJ�5�F��|~����\\u0000\\n].n{e�2�,�a\\u001a*�\\u0004\\u001e���\\\\\\u001c���@:u\\u0018�Ʌ�~mz���ҟ�\\u0015\\u0014��\\u0016I\\u0005�'r�\\u000f�(LX$\\u0002X#���ʤ��\\u001dA�4�?��x�\\u001a\\u00133I\\u0003\\u001b�U��\\u0003m*�2Y\\u0002M1�\\u0003����&�}B���]�h\\u0013&�N>.1�\\u0019�\\rH\\u000e\\u0015u�c�i�,�\\u0019t��#�<�@�\\u0005��Ћ���DVF��Ѷ���\\u001e�Z���\\u0016(U[#��\\u0013M[C�ƐJ9�\\u0010��G��k(�\\\\\\\"��Xz�i�T!~+�V%D|��\\t\\u000b/�C!=V���\\u0000#\\u0017\\u001c��<�&x��\\u0007�Z�D\\u001d�-\\u001f#�b��3m\\b,\\u0003\\u0000H\\u001f�\\u0015����/ݸ$H7HX\\u001d�N���4w���\\u0019�!�\\\\\\\"\\u0000�,��w7�v\\u0003_��\\u0000��8'+b��\\u0017��m���W&��0�k�A\\u001f�z\\u0002;\\u001f�\\u0013�����\\u0006<Jd1\\u0016\\u0005�Q���\\u0007�֔��\\u0014�<��P�T��&�q|BI#f)h�X��V�\\\\���z�\\u0004�֦t¹Y�V��\\u001b-�\\u0003���>Y�ʑ�3�©�����&$Q�Ɨ��h�tgbz^��\\u001d��&Kd̆/\\u001a�`\\u0001��az�#\\u001a\\\\��!3,\\u00110�X��M-��R:��[��ڃ\\u001b�\\u001c��-�\\u00010�2zu'h��\\u000e\\u0012��[`��%z��~��(N?#7���@\\u00066\\u0004�f���cW·\\u0014E��ZPo���n>w�0$�kc�ܡ/!m6�t\\u0002�\\\\\\\"w��Wt�fVcp,5����\\u0005�\\u00193���Y�k��p`\\u0006���\\u0006�eiAgA�\\u0016�/���Б�#r�I{E\\u001a:��$�t�f�\\u0018�q��8�Z3\\u001a�K)����k��\\u000b\\u0015]L��\\u001c>�\\u000e_#�\\u0003\\u0002:�ֻ��,[pbf\\u0006�\\u000ea�b�+9[+�Qj��1S�\\u0006\\u0006b�f٭�m�7�wj�C�����\\u0019\\u0001P6�-�\\u001b�J����\\t2\\\\\\\"%�s�r�p���{�ڊc]u�brc8W�aB�w��Z>)�|��ib\\u000f\\u0019t�2�C\\u0011�b\\u0014���z\\u0005�2\\u0013#\\u0001���\\u0007��fW.H���t�\\tek�_��L��a��4 �\\u001dP\\u001b�ڣ�4Kh�\\u000f�_���p�-\\\\j1�7���M\\u0017+\\u0006U�(v�\\u0013\\u0015Yw\\u000faP6�P4�C�8x���W0F߶���1��길�Dc�E1˄[�\\u0001��\\u001f�T��m>v8��V\\\\\\\"@KYI\\to����\\u0010�W�>\\\\�4��Q��\\\\gޓd�#\\u0006SɎ�<L}��/�\\u0003��:U���\\u0016�6$�$�n�-c���ڍ�\\u000el\\u0019-31��\\u0016Dr\\u0018���i&Ke�3��Ƴ!y\\u0019��:��)e��\\u0010�?*v\\fYY\\u0006e0���X�4�s�S\\u000e\\u001b2\\u0010�4H�\\u0018N����?�^����D,K0�@7յ,N���G\\u001b\\u0002\\u0012�\\\\\\\"v��t\\u0004*۱\\u0014�\\u0006u{Em�V�PC[�\\u0017y\\u0019�-\\u000f��Mf��l����gǕ��\\u0016ק�p:�b\\u001c̬$O�{G2\\u0002�n�\\u0013�x��7'\\u0002A\\u001c&9�V\\u0019\\u0012~�\\u0004�7\\n+���ʃ��:4T\\u0012}dm؆�vm�ґbK.6Jǌ\\tk�\\u0011��=\\b� ��q��9���\\\\\\\"���̺�A�i�̓�d�M��C��-�W\\u000b!�\\u0001\\u0014��@\\u0006��:{�\\u0007�dM+�^��\\u0010�����|t����RɘL��${\\\\\\u000f��މ\\\\2�,�nt>����a�]�{�[$5�S\\u0001�h+K\\u0007/��\\u0000���`��T\\u0001`\\u0005�J��c��R紮'�g��\\u0001\\b'��E���V��\\u000b-��b�{�e'T\\u0006�ޚQ\\r\\f`�-�����B��g9��\\u001b�p\\u0013�f�\\u0017������sG�|X�d�\\u0003��\\u0018�\\u0001�]*��\\u001e\\u001641�8`[i[�s�v��\\u0013���LR�7�+,�\\u0001\\u0003q:[v��׉Ɖdc���\\\\\\\"�\\u0005�\\u0011�D\\n\\u0012m�jџ.\\\\\\\"�A`�\\u00021��ձ�\\u001aq�y\\u001e0�\\u001b9β\\u0015\\u0005\\u0007A�Z���ة�/\\u001c\\u000bnc���Ў��Ea�>V3œ\\u0010�.���'���(iq�\\fH��\\u0015�X�\\u000b��\\u0017����`��ދ\\u0007�P�y�7``_��֮�8�i����ؖ�\\u000e��5�9�bɇ'\\u0002&��\\\\\\\"V[\\b�����,�^Y��\\\\\\\"P-��� �o}���m��~0��ș\\fs%Ƥ\\u0010oaހ[\\u001dB�'������\\u001f\\\\\\\"��=�\\u0003\\rĒ\\u001c�o\\u001d�\\u001e>&fC���P�\\t'x67�ޞe�Ɍ�6(�\\u0018�+[p��\\bS^$S���$`�1�e�l���\\\\C�_5\\u0019�k��e\\u0002��Ul����.l[+�I�vO\\u000b>f��~�%��\\u0000N�)��ŏ\\u0000��n��2��ڥA�t\\u001d��~C\\u0007�Ȝľ4�Šs��\\u001bz�����tŔ�\\u0001�{�v����O���0q\\u0007\\u000f�&*\\\\\\\"F\\u001aS#F\\u0014n\\u0017\\u0003R*1\\u0017���I�\\\\\\\"�NL��^��<�ş���\\u001c�R��\\fY�>��K5�\\n-�(�/ڇ���Y2�9g�\\u0012������N����~?!\\u0010y��ҝM���\\r\\u0003��\\u001cY��a\\\\\\\"dO\\u001f��S��՗��\\u0010(�\\u0004�\\u000fj_��\\u0011�r(ϋ$�E�\\u0001om.�>�f��#�ȔI���\\u0007R��\\u001dԎ�q҉ĎL���A��!�DT\\u0012T\\u0001��Z�.\\u001f8�,ؒ�����.\\u0011�\\u0001�V��l���\\u001d�\\u001c��c�\\u0000*Y/��V�� p�i��9�{\\n�1�\\u001f�%�?�W�9�~,�,�\\u0006;lc�o\\n\\u0007BM\\u0000~�\\u0019[\\\\\\\"tA\\u0014��9�\\u0006\\u0004\\u0012t�BM\\bÓ\\u0012L�Y��\\u0015��ܬm���V�\\u0013O6:\\u001cp�\\f�����O�m'�\\u0016�XC$�\\u001bκ�m��\\u0011�QU�dt�R`OǞ��\\u000b\\u000b\\u001eH�h�|\\f�m��G��r>��뎳��[�a��\\u0017'i?\\u001a\\u0007\\u0001�b�@��⢙\\r���]k��q����(�3L\\b\\u0016?�h\\u0019YC5��bՈ\\u0015�\\u000en��`��,�̂KLi�@Ҕ`�K\\u0016^Q^-2���D%�[�Ѭ\\r8�)r8�i�1\\u000bk�}\\b\\u00006_˵.�×\\u000e\\tr�S*O\\\\\\\"�]u\\u0017�^�<~\\\\��ŉ\\u001b<sne��mw\\u001e�\\bb-D�\\u0010\\u0001բ�\\u0015����P�V�U��)\\u001a�:\\n���Fq�9\\u0012��܃S~�ފ�)�0��C;#����q~���t�q�c/#\\u0010��,����\\u000b[Q�ߵQ�H�%�\\u0015\\u0017���\\u0000�N�\\\\\\\"�\\u0000�j�T\\u001d6���zXŗ>y�~a��*n\\u0010��\\n�\\u0005-�,�b��5c3��8��Л~�W��I��$�V�z\\u001bSy<|�\\u0013\\u0001v�l$�\\u0005S�e�5��I&����{nScj������\\u000f��\\u0019\\u0018��-����\\u001e�\\\\T�R��R�J�*T�R�J�*T�R�J�*T�R�J�*S�7�͖(8���\\u0010�Oۀ7:��?\\u0010?�ʞ��ʡ�_b�K�\\u0018!��Z��+����5��$Ą~�\\u001a�����\\u001f3!\\u0012���4��)��\\t;�\\u000f��\\tϐc�P,����U\\u0012K�.�؝n{\\u000fZ�E� K��`�a�����LQ�V;\\u0015O���\\u001f��,���-���B��a�6�O��捍���VTW��\\u0001b���\\u000b<I4�\\u0015[\\u0017!����i�<L\\u0018��:\\u0011����^\\\\\\\"����(uwi\\u000fEٴ\\u0001n�U8��ec�\\u0019\\u0018��\\r&r-~�j�҉�sp�c���\\u0001w+�V�E�!Y���IڷyI�'��\\u0003\\f�\\u0001�~U\\u001c��I�\\n���������n����\\u0019k\\f�F�N��V���\\u0000pl��p\\f\\u0012cJ�\\u000b5�\\u0005���Kۊ�\\u0014{�\\u001e�\\u000b~\\u0014D�\\rZ��.R\\u0012&\\u0001�d�?U,��Bv�m@���܌H��d�\\u0006��S��+ܜ\\u0012\\u0017�\\u001a�d���ݏ�hi0��ĴWh��2\\u0011m��5A�&t�\\u0003\\u001eU\\\\b\\u001a�\\u0002���阍\\n��k1,�7bN�o\\u0013;�1*��I���\\u0000�O�Ub\\\\��7d\\u0000{�$\\r+����#b5\\u0006�[��W��v�kO�8ݠ|�����U��\\r��*]�/�\\\\\\\"��{��Gǵy�,p4�āT�&��kG�c�6,�\\u000e<�\\u001b��7� ��P�\\u0011�#lm�t[�\\u000e���oU#!<\\rs<��\\u001e�B\\u0000�v��\\\\�p�y�kC\\u0018-���?ξ},�,�+���f?\\u0012nkg����}��X�]��������{\\u001d��c��Ż\\u0017���ݾ\\u0015e]��k���,�>$\\f�+��YG\\u0005\\u001a\\u0016�LU��h1��9A��[�n��|W\\u00037'��J�\\u0012#y�oз�O�=�;�Ǆa�U�9�j$\\u0005z\\u001b\\r���Bp����9�6���\\u0005�\\u0005ʝ\\n��ԥʬHR\\fhy�zҘrx���cF\\u0017\\u0006:�\\u001c��i�|t\\u0018[�\\\\��\\u001a�\\u0001�ۯ_�Q?\\u001b���{��nn7��u�W�L�=��;)\\u0005H��l6�\\u0002�f]�*@�p�%���K�z*䳛�ã;0<c��Ud���@\\\\\\\"����@����|x�ȎI���H`4,op)��\\u0002\\u0004�\\u000f+�/ _s(:܁�U+!7���Z1�hl�C��2��}x�Yٰ���HV;\\u001dN�\\u0006ďC�S�)%�kw&��|�G�'[��v���.h\\u001cla,�2�cԱ\\u001a\\u001b|*�\\u001fJܞAlw����8�G��X�\\u001cs6Y�h�\\u0018ԭ�5���\\u0000*�H'�_��Y\\u001b\\u0012�C\\u001b1+��t���\\\\\\\"\\\\h|^O \\u0005��A~�d�\\u0018ݒ�2��J��_��P@t�5��<��2\\u0015���\\u0014\\u0001\\ny\\u0018�E�`��*�d�{�;t�\\ri�\\u001f�\\u0007\\u001f���*^7'b(Հ��������:r*�}���\\u0013p\\u000b\\u000fe���ӞO6,\\u000e\\u0011\\u0004��l�H��\\u001f�?\\u0016��\\t��\\u0012\\u0005;\\u000bf@�\\u0002�FQ��\\u0013��\\u0000\\u0002��:[t�S}\\u0018�v\\u0016�b�q�$\\r��\\u0005Xu\\u0006�G�B!2�h�As\\b��?H���kv\\u000b-��\\u001b�n�u�\\u0004�\\u0000r�-���e�X\\u0007m�Q\\u0019��Ĳo��rOPX�H�O$�\\u00042x�\\u001e�A�@5�)���$�?oUCk\\\\)��Y�^v���G� B?*A ����V�\\u00183dlv�B\\u0012.�C�:�\\u000f\\u001c\\u0001�U,\\u0005��sM�X`Y�!R�u�\\\\iYf�\\u0003ƫ\\u0002�]\\n\\u001dv\\u0011�?\\n'\\u001f�����9ǈ5�?Q�8�\\nHބ���w�՟�u\\u0003�\\u0014.D����\\u0006���-���a�bÑ�\\t]�\\u0018����\\rig)�\\u0003g0�\\u0011\\u001a�\\u000e�~��|��\\u0017���M#E1wx����=\\u0007�>�\\be�\\u0002u��X�`a�3B��q\\u001bU9R�\\u0018�q�$��M�*�7��\\u0004���\\u0015y0���!\\u0019����V�\\\\\\\"���I �s��\\u0017�����w�=�̦G��\\u0006X��\\n�[2+vݷ�^A{�\\u001dT\\u000e\\u001b\\u0016,m��\\\\I�\\u000br\\u001c�h~292qw����\\u000b\\u0010C/��\\u0000��I�s&9�K��%�[�}��b-ڙ�x\\u0019X��\\u001f�\\t.������\\u0005�|�+h\\u0013\\u001d����\\u00032+u.\\u0017���\\u0016J��I\\u001f�i��\\u000b\\u001c�\\u001a�\\u0012[K��\\u0000Q<T\\u000b\\u001a*�uՋ������2w1�T4�K\\u0002t�^ԯ���,�r+�ն�;����8��\\u0002j�!��\\u0013�L�����#Z͑���<\\\\Y��7]\\u0013�hb����cak3�Qm@��ZY8�q�a�9&�A\\u0002ȃ�\\u0001m\\u0005�7׭�\\u001eg\\u000e�\\\\\\\"8c`�\\u0018��A�\\u0005������\\\\\\\"D�gwh���\\u0003On��څ[@~<��r���ػ�Km���\\u0010I�$fl�v\\u0017���\\u0015v\\u0010ǟ(��̚��ǵL��\\b�vi\\u0016�u�H�ۆ�oƖpQ�>Kȩ�Ɨ�\\u0013�����1�<� B��� �\\u0017H\\u001a�sɍ�4r���*��\\u0003s\\u001b߯�F�\\u0013�XYX��\\u0001\\u0000�ú��\\u0006����D�.\\u0010ؒ\\u0007So���>FP�%�4\\u000ed�� 6./���\\u0012\\r\\u000f��ز�]��n3�쮸<<�A�5i\\u0018\\u0012�J��z#��|UI�ZEp�#���Q|\\u001a��d\\t\\u0018���d&���?\\u000b��\\u0000�Y�yY��`\\u0003,��\\u0013:}.��(\\u001d����#J�'/��#\\u0019k�`�k��u���h�\\r>B�ȇ��,G��\\\\\\\"���eĊI\\n�w��T��Cp�ş tmѡ\\f��op\\r��eD�\\u0004$$��k}M�����F���Pe\\u0007\\u000b\\u001e�\\fH�dz�S���|�\\u0016SX\\u000b܍\\u0000#[�Y.C���a\\f�$/\\u001c���tC�\\n?�/��.�`O���.<�ÍaG�����B��\\u001aP���\\u0006�\\u0011�8֜k�\\u0000�1�\\\\�2˳A`J�i<��Y��/<�,L�\\u001b�&�}���(���\\b�<�0UAb�w`>T��%�H�]l�߅\\u0017�4\\u000b��`��C!aԅ��)�-�X������\\u0006�ѧ�����I�(\\u0004��E�]�{|MIx�ׄd�\\u0016\\u0016�R\\t��ߥƕԙs>#û`�\\u0011q��4�\\u0000\\u000e\\u0013�q\\u0012�DpY\\u00163{3\\u0000\\n뭺�)�\\r�mG��0ɂ%��,GJ�)ҳ��2aEr\\u001f�m{m%M�5�>^|0�<\\u001bq�\\u0012\\u0010$r.ċ\\u0001��/Z�l��\\u001c�ql�-��R�����Ҭ�1䛏�0�\\u0016�r\\u0007��.?�S7��H[m'��j`p|\\\\m�l���\\u0003�����*��K��\\u0012(g�2�P�A\\u001b� �>W�U�\\u000bH�N�Y�VPz�p���\\u0003\\u0007&9�Y��\\u0017C���U�@����.d�l����l�{t��P�E����\\u0001�T�\\u0000f�\\u001f\\u001a@Ģ`�7hcӝs�sX�6Ls��Y\\u0019�b�G�Q,\\b\\u0007�~��<�E�T\\u0002�td]I�'H�@�\\\\�\\u0001�қ�m.L�G���ne������H�7�EW���i�q�\\u001d7;�Q�sNs�N��1T^�N��M4��n>N6A\\u001d�i\\u0000T�ĝ��t�'��2B��֏s;j$7���>v\\u000f��\\u001a�,�*3؋\\\\�G�\\u0001�\\u0006�u:kF<,Y�?!U�UC���]u��rW�\\u001b\\\\\\\"2�[�\\u0014�\\u0001=F�v<����X�����ݸ�?\\u0011ږr\\u0018���\\u001c��O�2I��o�l>\\u0015�͌a�C��ZS\\u0012푬=�;P�ƙ�k-�ui���\\u001f��b>g�q���\\u0019\\u000e\\u000e�k�Vk�� �ɦ�\\u0002$k�qCtV���U�|�\\u001f\\u001c�a�L�DUn�hC0�V6#����4���6*mr\\t�\\\\n\\u0017�\\\\\\\"S�\\u0001�\\u0019���\\u0000���F�m�\\u0012#�{���\\u001c/��ك,�\\u0015�H1�.\\u0014v,��7���FO�+&ֱ\\u0017o�\\u0016�t��\\u000e^^O���1q\\u001e�6�V\\u0007m�zkOp��^*\\t��4�0\\u0000g�h5\\u001d�ޓ4��r2�\\u0000��ِ� ���N�y��X��xS�N�.̽�z\\u001ck��\\t��2C\\u00164Xr\\u0000��B�.�ګ\\u0003KQ�\\u001c��F�B���6��k�|&V~L��D�c��2ؕ\\r�0c��Ӗ�\\b��ŁV@J����/sm*,���M/.;U�1\\u0017f���\\u0010�v��j�>7�$!d�v\\u0002!{\\u0012��@w��7ō��E*\\u0014�~ʧ��@�I\\u0004�ˎ1��\\u0013��\\u0014nByQ��\\u001b�`C��}*6D2�?F��ǕfÉ�*:GOx�W=Aq�/i�\\u0007OZ\\u0007\\u001f7\\u0013-\\u0016\\u0003.����M�\\u001d���w\\u001b� �L\\u0014}�!(&\\u001d�:��*�/\\u001e>6I�\\u0000wp&饭n����>>\\u001eBi�+,�n\\u0001m�1>��Ԃ\\\\�\\n�G\\nћ\\u001f��A�rNEc�\\u001d_#�s\\u001eԷ��\\u0005�\\u0004��&�kid�6��\\u0000�f���ȌN\\u001a���6�J��@�����e�2���Uov�*�LQb\\f�8ս�\\u0000��7�*\\u0000_�T\\u000b�Wu{+�K8�$�\\u0011\\r�Ҵq�YI��kI\\u0018\\\\\\\"'$����n�5o\\u0001�O��E�$Hҡ�X�!w\\u0017b����'�\\u001aH�Q!+�A��q���ݲ#�?\\u001a�fgp�ߩ*/��DG\\u0018�c���+�`ZH��S�A\\u0006L˘�Kmh��d���u\\u001dA�\\u000e2q �`�D\\u0012�������$o\\u001b��]\\u001c\\u0012rY��,�\\u0011uڤn%mk�t\\u001d)�l1�\\u001e\\u0015\\u0002C�_�\\u0014{�|�m�c\\\\\\\"o ���q2��{9_(�\\u0013+�\\fU\\u0011��mڂ�E����lh���6V�#\\u001b�B������\\u001c�.\\u0007����\\u0004\\u0005>��\\u001a��t\\u001e�o�4R.;0\\u0005ﴋ�MM8�𹑉3\\tL8����\\u0001�ٻ���\\u0011U&x�\\u000etk��P�$ B��^P򓠤�q�/\\u001d�,D.C*;�H\\u0012n\\u001b��\\u0011z�\\u0003\\u0006YyY���\\u0005�*\\u000bُ݊ʻ�G�\\u0015|6�q���\\u000e����J�\\u001c�;\\u001eI����EX�B���J7�2���e���fL�\\u0017%�\\t\\u0012�1�#ژ�R�y\\u000b����p�ie\\u0007��&�\\u000f��Ҏg��.|r�\\u0013i��T(U$u�q�';\\u0016C#\\u0002�H-릕^?\\r&@U3j���ߕ'#�\\u0003�\\u0018���\\u001fZՂ\\u00186\\u000b屸Lj\\r�����l��dc\\u000f\\u001b\\u0015\\u0017�T!�:�v>��!I���cYUe�d\\u0010Cp\\f��}�H�\\u0013\\u000f\\u001f8Ĺh�q�+�$\\u001b\\u001b\\u000fw��\\u000f\\u0012�VY$��1*�Ė-�c�֬\\u001f�����h��q�~���d\\u001f\\\\\\\"�ѹ�\\u0014|\\u0019�cp\\u0019\\u0019\\u0012:�\\u0013�m\\rԝ�\\u001f�Mi\\u0006\\u0018��w�\\u0019�!Xn\\u000f��m�~T?�fL(%�\\u0019��\\u0010dmF�\\\\|�Dc�\\u0012a@��$��\\u0012\\u0006�\\t \\\\zцh1�\\\\\\\"G�=�\\u000fۆfQ\\u0013��P#�L���6lI��lGQ�\\u0000_OKQ2@\\u001eDq%��SM~5IǞx�U�d\\u0000�\\\\^��\\u0017_�Rc�\\u0013��,��@m*���2�(d\\u0010~J\\u000eӡ�\\u001c\\u0005�2a\\f�]gZ����\\u0011c\\u001c\\\\�g�\\u0010�\\u0011x�\\u0000A���d�TO\\u001c����dH\\u00046a\\u001a\\u0011��\\u001d\\u0007���\\u001d\\u0012˞��s\\r��.\\r�N�ҼÄ�7�g\\u0012\\u0019\\u0019�M�\\u000b!�l~b�,@����\\u0007s��@�Vǁ���}�^c�p�F�m������>5�*�ټ�1�F\\u001e�������K��xG�����\\u0010\\u001e�PO�S�8)\\u001a��b\\u0004{�{�\\u0003�$6��\\u0001I-l�>�Z>�\\u0014Č���Ի\\u0003�\\u0001�\\u001c8�9�|\\u001b\\u0004$�2;[U���S�A\\u0006~\\u001c�D�o�\\u0000�\\u0012���\\u000b����T�`�\\u0000m�\\u001f\\u001f\\u0018\\u0018�8�TpO�\\u0016-�$f�\\u001b2I\\u001d�����s���\\\\\\\"ҡ��j|yQ�.KD\\\\\\\"�]L�5>���v�˻�\\u0018\\u001bU�\\u0000F�h\\b��\\u000f �\\u0004a\\u0003���UZ��\\u001fON�\\u0007\\u0010�LR?�\\u0015]�}ہ6'_���?�aH���2u\\u0016\\u0016�p;��Ř��\\bל�S����L��\\u0000\\u0011��(�\\u0012�q�*�?9�Y�����큚�M�����YQ���D��ː\\u0011d\\u0017\\u0004^�#�I\\u000eBI\\t\\u00110.�\\n�\\r�.��\\u001b\\u0012L�6\\u001f��\\u001dY&r�=��Soʡ\\u0004�\\n\\u0017�h��Q\\b�?x�H��\\b��\\u0000V3��\\u0016٣6Yq���؏����@�O�s�%�Έ6���C~��ѼO\\u001d:�2\\u001aB��v��\\u0005mub;P�`A\\u001cyJ\\u0015�E #��0&�U����n\\u001bi\\u0014��\\u0000�j`@f���\\u0000a��MS:\\u000f��[\\u0003/��\\u0000�>���g�q��j�Q��\\u0001�'��$��a����&Tɹp����z��}��Lx��\\f�y���{�:��.UT�\\b\\u0002�V<�j��-�\\u00067˛���S�\\n\\u0002�X�7�\\u001e8�\\u001aK�D\\u0002�~\\u0003ҹ�u�|iap�\\u0016�񶅀`��t�\\u0006�Mȉ�r�\\u0014o� ,\\tQpnG]k�ƛ�O\\b�s(�ab}��iڏ���u�^\\u001aT\\u00012f+�!��m: ��\\u0000��׼�\\u000f#�\\u000f��B\\u0015��!�(=W{\\u000b�\\u0007Z&c��%T�i!wjv۠�J��wě�'�\\u001a�F��S�㰬3K�&�X\\u0016]��?\\n�Q��0\\u001c�N_/�B��|�\\u0018�\\u0006��֖�D�B�\\u0004�*�Uԁfc��zCɾD�m&M��\\u0006��\\\\\\\"�\\u0016�kq��3\\t\\u00192!W�G%e�\\u0006\\u001b����oҳ<�~?!�>F4i\\u00146UP�n���?\\u001a�a\\u0007Jo��e�\\u0014%u-���\\u0000��KjT�U[�T�R�J�*T�R�J�*T�R�J�*T�R�J�C�aC�\\u001a��(\\u000b\\r��\\u001e���;�ŝ�!\\u000b�~�e\\u0016\\u001f;\\u001e��ȟ\\u0005�k�����<�\\u001d��l\\u0007�L8�\\nb�oj����t��+�@�޹\\u0019�<H�HbY�宴O9ʮvL|V\\fC\\u001eG�yS�#��G���Q\\u0018��$k\\u0002{Db�\\u000e�N�n\\u0016y�|�6B�H(�&\\u001e�\\u0014�[��kV����T\\u0012%��B\\u0000&��>\\u0015\\t$�n�A<�y%�\\u0016!q�@5�ȥ���\\u0003cnå{�]��Z��j�|9a>H/$C����\\u000e$��?����\\\\¬\\u000e��6=l\\u0000�oU����Y�\\u0017$\\u0003`>'�A�MUI[�>�NϷP\\u0015����&�\\u0014�?�U\\u0018�kLY��X�?\\u0000(~vtl(�\\u0016�(�+�s���h�1��\\u0018�#/K\\u001bJQ�������Gz\\u0002��?�t<|���HPC+\\u001e�`��1��H�㪩?��I?!L��|�3lᔀ���z\\r(<\\u001c4��!X�>�u��5�`�G:�\\u0004\\u0000ᆗcc���n\\u0018\\u000e�5��t�N��d��\\u001c\\u00162�W 3\\u0012�\\u0000:\\\\��k����q#���1��Op��1M\\b�\\u0010wn_kZ�]G~�^c�1<����\\b�_�oZ�ϭr\\u001f\\u001a\\u0000J�\\u0011�i4�#)�dVٵPmQ{�\\\\LC\\u0019rev\\u0003�#20z��N�݀��R󚈍\\u0012ñOe�����Qti48��lj!LO�^4�|�.:�\\u0000!�\\u000e��w���B�H&�0�o���b(�6�t�\\n����3�H{�\\u0018䑌�\\u0004�O*��\\u0000+��5\\n~\\u001f֩��\\u0019\\u000b\\u001c������\\u000eT�\\u0000�Ư�qb�-�}_\\u000bu�2?����A�:��ӡ�j�7\\\\\\\"~�����\\\\�\\u0002�\\u001a7=v4�\\u0017���w���ZP��6�\\u0003�}�������\\\\��9A\\u0011x�kt%\\t\\u0000��ƻ^E�\\fx�`\\u0017h!Pt_q�� �s�\\u001c��\\u0005��Q\\u001bD?S}Z|E�\\\\\\t���^�Gl\\u0013Ӊu\\u001b\\u000e�����\\u0017)�\\u000e�V6,H�t��Gǆ#�\\u001d7hE�o�\\r�e�!ʲ�.��&�W:5�\\u001b�h��QǏǉq��\\u0016T�A?\\u001a��&�ޙ���L�\\u001a\\u000f�Q���\\u0011��\\u001c9����W[�ʙ�O\\nfD\\\\��=�a���\\u0000Z\\u0013��l새��P��H͉#�*��s�1X��)\\u00067��N�\\u0000�\\u0012��Α�?���\\u001c���n�\\u0011��\\r.��O�f$�\\u0000�R|s�'t\\u0016\\u001at$��ⵄ�3�\\\\h���$��ӳu>����q���H�J$�C Е\\u001f�M�\\u001d�_�c9\\fisbI,\\u0016d=\\u0001�7�_�B\\u0000�w�\\u0014��g�\\u0005Ѕ\\u0002��\\u0000w1B�\\u0007ȗ)U�\\u0012\\u000b\\u001b��>��iA�cp\\u000b\\u0000~\\u0006�K���b�\\u0011��p\\u0001��\\u0016����j��^I8��?�A$C�\\u0000\\u001eB\\t(�\\u001f���L��\\u0018�v�z��4\\t�\\u000f���\\\\�l\\u001bDk\\u001a{Ѽ~\\u001cQ��:\\u0019\\u0019�m��k��$��C,C�ִ�R\\u0014XZޔ�\\u0000�b�\\\\x�\\b�\\\\\\\"nGݮ�I%��\\r�?*¸��q�,�;�M\\u00156���Dꖫ\\\\\\\"���\\u0003Y��;9�3K���B�鴞&�E�#gÍ\\u001b�iXlrmk��&7%�\\u0004�i`�`��n�E��e�I�>?!�r\\u0017f�\\u0004�ww�S����i�\\u0006\\u0001Df�*�bH���RN�\\u0000(\\u001c�o�r;cP� a7[;\\u001eb�ŏ>HY\\u0015\\u0019��굁buקZ�\\u001f\\u0019�2�\\u000f2#\\u001bI�\\u001bk�z{�\\u000b}�+!��6\\u0017\\u001ah��?�o��\\u0014A\\u0003d��!a�{��an�ޡ�ЊB���\\b\\u0000Ur�w\\u0015�ܠq�<�s�A�mR�\\u0018v� �\\u000b�����\\u001a�8�\\u0015\\\\\\\"�{�\\u0016�0�\\u000f':I�Y\\u0000�\\u0011����5q�q�\\u0000s\\u001a�\\u0002{�\\u0000��t=\\t\\u001f\\n\\u0005�$��ʞ�����\\\\\\u001bB��D�\\u001aֆH��0���HQ�y\\u001eG��=��\\u0000�O[�a�!�y\\u0015Ր�C�B/��외�ᳰ�V]��J;'\\u0015�\\u0016F��\\u0011.�SЯM*\\\\\\\"�\\bU�8\\u000ety\\u0019��\\\\���n�+��\\u0000k�\\u001f\\u001ai��d\\u001c���:��S�e�\\u0013f<�i\\u0019�;��~��9c\\u0016Y�*\\u0001�\\r����O�X[��\\u001c��\\u0011*��\\u001fG��mƖ�\\u0018\\u0005h*X\\u0018>�@\\u001e�W\\fC\\\\\\\"Z�8�\\u001a�\\f��r\\u00192w#��D�����\\u001c\\r���Ҽl�2\\\\�PON��W?',�\\\\�\\u000bh4���4TM.g\\u0003($3�*��Ђ\\u000f�Zi\\u001c'A$VB�Mz�1���u[�q��G�\\u0017X���\\r�}��\\u0016��q8ȸ�U��B\\n3\\\\��P>t�\\u0013�7y�݌\\u0002�\\u001d�λ��\\u001f�R�H�X9���J8\\u0001\\u0015��U�\\u001eSz�����\\r�\\u0004S\\u000eO\\u001b�:�\\u0013B\\u0002�n\\u0002�n�:/��xs�vR\\n0\\u000b����Py\\\\� �\\\\\\\"21�V\\t$�\\u001b�\\u001e���VVv/\\u001c��w_�1��[�_K\\u001e�=;�\\u0015�\\u0001�!��U�x�r\\u001d�0̱�>\\u0005fg\\u0016�\\u000e��N\\bǑ�#�~�-�6�\\\\�ڙ`���%���S�b�Y�\\tw~�\\u0003Н5kiA���3��1��G[\\u0015:6��\\u0017*��py\\rk��3v2�\\u0016�΋���j#7\\u0001[>\\u0019�l�\\u001f��}K�\\b\\u001a���Jw�\\fS�^��\\\\qm���E;�g*Hrڵ�[���Y&��\\u0013���ʙ\\u0014\\\\�w\\u0000F�M�V\\\\���k�1\\t�A�#���/#��'��\\u001b6 ,��}׋��I���3a�K\\u0012\\u001aBv\\u0015M�B�W�]�<ЙDn�*\\u0003�V`��7�{�\\u000eJls�3�7�F�-���\\u0016\\u001f\\n�b�dI��#wC{\\u0001ӯ�j$�\\u0006k��0f����C�>��ڌ�%�l�\\u0002�T�Bt.O鷥\\u0011�\\\\\\\"��I2��������T\\u001f\\u0015�q�\\t1�d��'��R��\\no��`s�Q�����_Z\\u00029}��7+�5\\\\*�a\\u0001\\u0019.�>���f�-m&�u\\f����J?�䤉DF2���W@7�\\n��҉\\u0018X����(��\\u001fh�\\u0000ۯ�\\u000f�\\u0010��}�!!\\u000fC֍IV���I�᱄u%�z�\\u0003<��+����L�$0�Z8�\\u001b��k�{Л$���\\u0000l��c@���\\u0010���]}-W����c�R+�\\\\\\\"g]�_u�Ph)�|�y�\\u000b$�\\u000bo��:���\\u0005L�-\\n\\f���_���+6E�1��&O�})�^\\u000f�\\u0004�;I\\u001a.�-B����~1:ɉ\\u0012 ]�\\u000f#\\rI@@����K�I��\\u000b\\u0001'�oA`��kڄx2�\\u0007!�I��\\u0013��[_𤩉�\\u001c=�f�\\u001f��\\u001c�E����}\\u001b���3LT�x��%�Sr�_�=4��~&\\u0003bBZ%e�ܲ��O��kR�s��<�@��3X\\u0010\\u0017�\\u0000\\u0013F��d����-��hPؔn�>tfI\\u0002\\f]�V\\\\ȫ�C�$aU+3nPD��\\u0019rL��)�\\fh�d:��\\u0015\\u001b?\\u0003�\\u0005˫ʰ\\u0017'Ĳ\\u0003\\\\\\\"(�ov��AGx�~f(dfQ�\\t����\\u001c��~\\u0015��2rR)bb*Y\\t�4Ғ���ݻ�F�I��\\u0017��|D��\\u001e��l�1�\\u001e~�Q��꺲��/�����\\\\� ��qG��\\u0010�\\u0000�\\u0004���R=iLy��\\u0001\\u001aȢ5Џ�aLr���\\u000f��\\u0017Y\\\\\\\"\\u0006\\u0019?��u`��J�J��u\\u0019ۄW0\\u0007L9\\u0011�\\fa�/\\rLɏ���<��\\\\���8-}�\\u0005�X2��N,�p� ��Ne�#���:�q\\u001enw�M\\u0003F�$\\n�|JM���\\u0000\\n\\u0016�.~?�LFF\\u0007v��\\r؊\\u0002B��~:���_�\\u0017\\u000b\\u0005��k�>�O�Y��i\\u000f\\u001e�,��\\u0018v��?�\\u000f�\\u0019la�{�\\r��\\u0016�m��֫�G\\u001el�@�P��p���O����T<.NF3B�\\u0000��\\u000f�v�K\\u001dF��g$��O\\u001a���\\\\\\\"��`J�?O#�iS�Ȕc2J����{u\\r�\\u000bQK���.)V؇��p�����xlIW\\u0015�h��\\u000b��\\b6��ztօ��|��\\u0018�X��1���\\u0001��Aa��]*-�;ߌ\\u001cx��\\u001a�\\u0004�3���u��B�(�t�\\u0012\\u001bx\\nA�=��n�v>|\\u0019��\\u001bc\\u000bh�.��\\f�K��\\u0016{4�B��I$Z�\\u0000\\u001a\\u0013#\\u00168#\\u0012��=�k\\u0001�D\\u0002\\u0000fg���\\u001b\\u001ev��J34a��}g��3�2�LBH��c�+Y~~곆���\\\\\\\"\\u0016�r\\u0019=����\\u000b\\u001d�ڏJ'\\u0005fX�r�����������d1�\\u001dJJ\\u000e�l.E�kC\\n�\\u0001�\\u00004C�ɗ!��X9�\\u001d�u?�3��F\\u0003�����\\u0005�t\\u0017���W%Ż'���VF:���5���I���\\u001eR&\\b?l�\\u0002\\u0016�T��(���s\\u001eG$f�J�3�$�\\u001d�n�u'u��P`\\u0018�\\r��֔�\\u001f\\u001e7ǐ\\u001c��o�\\u000b�Ҫ\\u001c?/�\\u001b�Ғ\\u0015X��epl/ؚ�\\u0017��\\u0000i|֕�b�$����M,\\u0013鶺\\u001fJ���L<X\\f$�$I3�_o[\\\\�wJ���\\u0012dd`��)՜����u�H$)�p1�Ktm\\u0018\\\\\\u001dJd!`1Y�:\\r\\r\\u0007��2\\u0016[\\u0013�J��Ԏ��׎��>��><X�\\u0015\\u0017�_[|�J0d�I;-Ի�b����~�o\\u000f'\\u0004���=�GC�ګ\\u000f����\\u0000\\u0012D\\n\\u000f3�r�q�\\u0001\\u0000kn���3�Xx�3\\\\\\\"�AP6+]�Xک\\u0019y\\u0006\\u0018\\\\��c�\\u0001�H��\\u0007V��W¸�yVF�\\u0013o�i\\u0000X��]��F�\\u0002�\\u0017U#Kt��@[����ls�\\u0000��G�ckU��:�h\\u0006g&�d�\\u0011$�{\\u0016;X��\\u000f~�kdM�ʱr\\r�\\u0019?i�n\\u000bc���U��s03xgX�9!I;_�\\u0003�[�\\u0001��\\u001c�fg�@�\\u0007��7}={U��3Q�%�dˉ\\u0012Bc�\\u0000���ƭI�\\f9� r�K\\\\\\\".��\\u0014����_ҋ�<��Qe�xC�����m\\r�.LbA��h�<�С\\u0006�\\u0007�\\u0003Q+ȫ�\\u0014������*\\b��0n�@����Y\\u000b+�._���\\\\\\\"�\\u0004��C`�E�\\u0016��X��Ӡ$��|g�w�\\b\\u0019bv.\\u0011��\\u0003\\u001f�6��\\u001f\\u0015#�r��<\\u000e��$:�n���[z��p�Ry���X扌\\u001e=��,wk��V5�r����L�����\\u000f�yQQf648�k#4��\\u001b�\\u0003]=z�<�8�I\\u001eZ�q�N\\u000bx�\\u0000�;�͠��ȱ���\\u001e\\u00197���6�_x�~](\\u001cȳ#��3,�M�\\u0000Ԅ�w�T�:�`��:���\\u0012^�2\\u0004�c^�\\u000b�ו\\u0019?-��\\u001b�ZW*J���\\u0004����\\\\\\\\�\\u001f�\\u0012�\\r�\\u000b\\u0012\\u0015u����<FN*B�4C�)\\u0001�a��zP|g\\u0014���\\u0015v_!\\u0011������܉��+\\u000e5Q�\\u0015r�J�\\rK�G\\r��\\u001fƧ\\u0019���A\\u0012���w��2�z_�v����X�7��[��X� �J���\\u001b#7{o�\\u001c&�\\u000f�Qm�\\u001f�\\rU�ʼ��Dڊ6�\\u0007p\\u001a\\u0011��U1?�H�|�{�\\u0007\\u001aܭāӥ]�.L9\\u0018FG݌���\\u001d\\u0002��V�s��H�,�#\\f[f���.j4s\\u0014�W/\\n��F/�b����P\\u001c��Y�v4��w�>F��\\u000e�H�{R�#\\u0017T\\f\\n\\u000f�����k�\\fW�\\t��r���]��Es��$�Ĥn�R#\\u000eڝ���_\\ng�\\u0012qX�><Cyu,ͩ���o��؆\\u0006�\\\\��􎟍5��%�\\u0017\\u0006\\u001c����+8�\\b�:߭�t\\u0015k�\\u0019��C-�=M\\u0016o+!|\\u0018�*��C}hd�\\u0019�9~\\u001e�730P���\\u0000�s��\\n�:;/�\\u001d���{��Ps�$I'\\u000e�^M�3 �ӵ��\\u000f�\\u000e�Å\\u0010K\\u001a�\\u000f�2�s�MoT1�ʐ�\\u0011D\\u0010\\u0006��Ǵ�Ly�\\\\��\\u0007��P��f'\\u0013�����O\\f�_3\\\\_R7]o�f�l��f\\\\vߊYn\\r����wJ�9����#\\nvX��pa�Z�>T\\u0018�G����ۼh6�,I\\u0017\\u001d.��e!���\\u0006�h��\\u0007��Q����.\\u0004�\\u0004�\\u0012F��\\u001bo�����T�x�r\\u001bt-*�S��m5\\u001d댞K'/5b�E������\\u0011���z\\na��$�X�\\\\\\\"+d�v�[�C�[c|*\\u000b��\\u0006u�T�ŋ-�ddM������\\u0006Bq�\\u000f$\\u0010(�ͽ�\\u0012v���I�\\u001b3\\b�36<w,X�\\u0019�o���D\\u000f��8�\\u0012��\\u0017�\\t\\u0003�#J�.+7\\u0003!q��3c��a�������D\\t\\\\\\\"\\u0018\\u00107X�S�\\u0010w2\\u0011|N6\\r�\\u0001�� �0\\u001ax�h�/\\u001c�e'Q�����\\u000er���!��p۠\\u001aZ��Y1]wb�0��ǹ\\u0017`�1\\u0003]+����C\\n9d�X��\\u0012(%H\\u0007_�J\\u00192D����\\u0019E\\u0001rdF�y���\\u0005\\\\\\\"V7ם\\u0018S\\u00036\\u0004�M�]�kb\\r�\\u001a}6�\\f�͙0�<�\\u0004�n�\\u0003���za��s���`��=����,�.��;w҇�݃<��/�8�����K\\u000b��?�H\\rh(�(�;�g���\\u0006BUrN�O\\u0018'�\\u0019��ϝ�\\\\\\\"ڋ�\\u0006t�<�4�A�׽e3PG�˥��ޗ?�M�9��xQ��F���Ҝ�W)�R�����ܛ�*\\u0000�JՇ�\\\\���\\r\\u000f�\\u001fJ\\u001e�J�5��J�*T�R�J�*T�R�J�*T�R�J�*T��\\u0017����\\u0002  ���\\u0001-��<����\\fj��nTVe\\u0016�*F�\\n��s�;c�F1�\\u001d�\\u0018ԯ���i�.G$�����{G�'��H��t\\u0014Y\\n�\\u0000��q�|yǒ�2+�Vf'�O�{\\u0014\\u00181�;`n(�co\\u0003x{{�4q�\\\\H�P\\u001b���\\u0000u�\\u0007䰢Ə X<��$��>��\\u0000:\\u001f�\\u0000#<��\\u0012�\\u0000�º���B9\\u001aS�в\\u0005Ӯ��չ��V\\u0011b7^�?ʨ�|�X�:�/�<\\u0007w֣Rcd�P�\\u0016$�m֊k\\u000b��\\u0011^ǉ+\\u0005\\u0016`/�O�Q�\\fɺ;��4b-c�����T�:�?\\u000fZ�?\\u001ef!��\\u0000�v�c���^0R\\u0018�\\u0015�%�vy\\n�B����\\u001a���\\f|YrP\\u0019\\u0018X�q��\\\\��܌A�!�d\\u001a��������\\u001b�\\u000e)\\f˱ݽ�#\\u0003S�kn�hE�\\u001a5޴=͛\\u0011��Ygi0g_mk��k��Go�\\u001d�&��\\u0019\\u0014��eǽ\\u001a�\\u0016V�\\u0000�S�g�[B\\r\\u0011�> *�5�&�\\u0014\\u000b�\\u00025ҋ�1`�a��*ڙXٔ��1\\u0000���-\\u0002���7n�$o��j�����\\u0018\\u0015)�\\n���\\u001a��A�\\r�\\u001a.n\\u001f\\u0019L~3�\\u001d\\u000f�Mz�iG�\\f�ic�A\\bC�\\u0000�};~T����\\u0005�\\u0012�1�Ő�\\u0000�ID^�w\\u0014���2yK�\\u0011��}��\\u001b���i����V6\\u001d��\\u0004���&M��0\\u0018�6 �6 \\u001dj���f��N��\\u000e\\u0010�o{��]{S�f!�ɰ\\u0000\\u000b\\rt�)����~�W���:�J8�'�I�h�R�=��E�)�A�\\u000e�j>u�'�\\u0014x0G�?q$�\\t4�W�נ�\\\\\\u001ec���3}��/�l@\\u0007[_�T\\u0017}G��\\u000f�dν��%�Mn\\u0000t���\\u0017;ǵ`IFC-���{u\\u0000�:ړ�\\u0010dM�K*G\\r���$\\u001f�W�60�cpv�\\t�v�~�4�s\\u0019�\\u000f��\\u001b{K_�})`��\\u001e�M�Ä��\\u0006PX�ܱ:��\\u000f��1�hܕQv\\u0016\\u0017�*q\\u0012$���촎�\\u001e�)\\u0017�\\u0001ɴQ0LY<�7W����x\\u0004��f\\u0011�%^�\\u000br:TV-\\u0004\\u0003�1\\u0006��ĩ�&M\\u0001�@:�\\u0019\\u001b�9x�H�2D�[hl\\nپtn|m���\\u001cp����e�����i~8�\\u001c��Z\\u0010�\\u0003\\u0011kX��Њk\\u0013�\\u0013\\u0006��l\\u00180�\\u0001#�\\u0018�\\\\\\\"��.Lm�d@A\\u0007�\\\\\\\"�\\u0018�\\u000b5^ D2\\u0000�\\u0018���m��/��o��\\u00003V��.�.��\\rn��Ar\\u0004C��d#�XX�\\u0002�\\u0000S��y|��Oa2��\\u0015�1՘\\u001d��F��\\u0006%\\\\H�\\u0006�˸�ݽ�\\u001a_�\\u0000\\r)Sr�N���Q89��\\u000b��\\b\\n�|����(M�\\u00060 O(:v�\\u0017,*\\u0011\\u0001H�\\\\Ҝ9�p�S_��S��!l\\\\�n�\\u001e/�U\\u0016������P�d��*�\\u00046�=l\\u0007�~\\u0014�\\u0011���ρ�ߓ\\u001e�k��i�w���rr��c�eRtm\\u0005�\\u00002(��i�@�x�&Kz�⍾�Κ�>5�\\u0014�+���i~�ҾFh�ʜC�P5=5av�\\u0011����ί�Ţ�ԁ{��]ñ\\u0015r��4Iȇ�G���.4��D\\u0003\\u001c+:�ǝ� 1>��J0��� C?�X�]�﷿δ��\\u0015��\\u0019<9z\\u0019C�\\u0016�����h,x�)Wi��\\u0000���ʎ���2]r�*�X$�m�\\u0011��)Yq\\u0011\\u0005\\u0016�\\u0016������D˕�'���|�1�٤��l�$M�\\u0012��#���\\u0014�ڽ�Hr2�\\u0006L�\\u001f\\u0010D�Cv�qm�MN�d���eG�\\t�Ob���ɸ�μ�1\\u001e,�|0I�\\u0014�l�u�v?Uϭ�Q\\u0012C\\u0005o�ұc\\t\\u0019s�ѵK�\\u0012\\t�Lk]O��fʚ\\u0006�c�m�� |4\\u0014.L�~1�Om�V��)�1���<,7�6�6�7��\\r����7��+/��\\u0014{\\r(\\u0017�l�57�܆�U˕�\\u000f\\u0011*9-�4�e#����]�}��z,>�S���{vҗ6CO����K,�C �$\\u000fQjm�\\u0007LY\\u0018j��,G_o�ޅTN�ε��r��Qc�\\u0005C>�?Τ�2�\\u001c�|DʠF�\\u000b\\u0000W��NW�<ȸa�4!YF�$'���P��\\u001a:f\\u0000��Irl+;�\\u0014���B�!t'[m\\u001e�o\\u0013'�\\u000f���5�u-���U �[�A�WAʜ\\u0018�1��V��-���J�`J����Ҝ��k)�>�\\u001bd\\u001frA�?\\u001bV̝�v��\\u0000,-�`��)�\\u0013��C�.<�d���u(@>��\\u0007�«��.O���̙��\\u0002�c\\u0003�����[/\\u001c�d\\u000f�I\\u001c�b��(���Z�sR��Ib}�V�N��>u@�\\u0004F�\\r=�\\u0001\\u0016����j��y�\\u001cw\\\\\\\"?4�������\\u0000\\u0016�Y�M3�\\u0000\\u0001bP}�s���@B\\u000ba}��<�PVRIbA�\\u0007a�բ�%��&�f�h\\n:u�S\\u0015\\u000bK\\u0005��[ҕ�|���$���\\u0000i\\u0011����#/��>69/\\u0004\\n\\u00166#߷��\\u001d�g�71�ꥼ���k�UPt=��_?��\\u000f#\\\\\\\",��(\\u000e\\u0005��\\u0003U��^?���=\\u0017!��\\u001c�\\u001b���G6t�u�ӵ(��v����~Al��\\u0015ql�a�ٽe��y\\u0006�\\\\\\\"��2T\\u0002-k�j737�X\\u001d\\u0014�F�\\u0005Sa`5:�\\u0014&F4�2F��P�F���P?�H�NYfV[\\u000fe�\\u001fQz0�)\\n`R\\u001c\\f�\\u0006cnA�\\rt<\\u0001��\\u0012NB\\t\\fo��7ݨ\\u0004��QxЬP�\\u0005�\\u0011����N�RL�l�--�se�z�j�F���Y2c���\\\\\\\"ƥ\\u0000k�\\u001bM�\\u001e�\\n\\u0015�$\\u00125�S�Ə�\\u0019�7xc3���֫R�r���Mh�C��\\u001aZ���)�H,�1��p\\u001a�\\u000e��1�3x�r�|�\\u0002ĮC<@�~+��EcE\\fi\\\\\\\"�V\\u0004{�\\u0003ܣK|E\\u001c\\u001bI�ٙ1eS=Ë��\\u001a\\u0003\\u001d:�S���#\\u000f\\u001f!�\\u0017����\\u0014��#�z\\u0012\\u000emF;<�L�@@��>��Y6\\u0014\\u0017�3��\\u0013��\\\\\\\"�|��k�0�~�u��\\u0016���՜y\\u0016\\u000b\\b�i[|�L\\u0018��S�)�\\u0002��B�\\r��\\\\�!����_;3�A���\\u001at�����\\u0000z�l���M�ۺ�=��M8\\u001ei�x��\\b���\\u00120��\\u001b��}:ЦYg�N�dȉ\\u0011l.\\u0015�\\u0001A�ڇ�@\\u000fW\\u001fƒ��=�iTUa�A�3�:��D��<�X��Ф��H�B�&���\\fdD�Y\\u0016�\\rq��z\\u001f56��6�/�\\\\\\u0015:\\u001f�\\u000b��E�ZV�Iod���\\u0014\\u0004��\\n\\u0000[`�T\\u0018<{\\u0019�l��Pb�O\\u0011�L�\\f�\\u0011����,[�a}�\\u001d�}\\u0017���\\u001d\\u0015e�ivPl/m\\u000f���,��0�&(�X��@\\u0017\\f5�\\u0000\\u001a\\u0017��\\t�\\fH�X�lGK\\u0006V�oO\\u000f\\u000b\\fn��3�\\\\\\u001eZ\\u0011�@-���/\\u0007..U�1g�\\u0006�v7!���v�s�|��bRHԕt�t�Z���Q�e�������\\rt�iƤ*ZE\\u0006��\\r����\\u0000ŭ ����[?�ǃ\\b�N,�T�\\u0014\\f�E#����\\u001e499�\\u0014�\\u001c�b\\u0017��\\u0007q��R�L�i��i%�K\\u0010To�M�Z�ĈaN3\\u0011��r�\\u0013}A��6��A������K�X��\\u000fi'ݧj>\\u0010\\\\\\\"F���Rٌ�+j�h.\\u001c�\\u001ak�s��d�='�l�(g��\\u0011�\\r\\u0002��\\u000f�����<�h�.<\\u0004��������8�k��Y\\u001f*U�A\\u001e͠����\\u0003�&�K����1��\\fp��TX(���oP\\u0016\\u001c$m��\\u0013\\u0017��#:ܯ�t\\tH\\u0011�<4��\\\\\\\"99\\b\\u001e!�*9,5�\\u0018u���꫑��G�\\u000b��Q}}\\rcL\\u000e�6;\\u0018�t\\u00166�ju�\\u001c�;&f����\\u000b�,`�7+��t:T[�\\u001bD�E�Z�J�9F--\\\\\\\"7�'�0⹜��\\u0012��Z[\\u0012.?�Ҝ,�/#/�\\u0014Ɠt�D�U\\u0016���T��\\u0000!81����.�������՘'�2�M\\u0011�%B#\\u0017��\\u000bTkX�:�կ\\nR�ʃ0�ȕQ?#�y����rx��\\f�\\u0011Y����m�J9H�/\\fŋ5�\\u0016%l@p?M�J;+��N+\\u0018D�BX��ovX������\\u0004��&��LZ9\\u0001\\n�w\\u0004aш_�\\u0010\\nT������.&WN��\\u001b\\u0019�@q�;�X|�bE\\u0014��\\u0002Gm��B6�c7!�����O����[\\u001c��<\\n��X��do\\u0019�$�VRmY�L�\\b�w���\\u0015wX���R�p��Ҵ�/\\u0013.\\u0010�Go�-�Cŧښ�X��G\\u0014\\u0018�@��#5� ie�r\\u000fZ0e&D\\u0019\\u0019eLy\\u0011�N��d������U��1R\\\\��\\u0018;�n��Cd�ˊ\\u0013\\u0003l�,��\\u0012�ı�u�Q�]Φ����\\u0006$G\\u0000\\u0012��P��p\\u0015�\\u00178����?t�B��m�ǹ~6�#v���A\\u000396f��h^uqx�\\\\\\\"�lb��hd��V�n\\u0001���,\\u0018�\\u0012�\\u001c�.������?\\u0003Cf�ꖐk[d�*>\\u0013��\\\\��\\u0014�\\fo��8}iv6,yٙs�����c���k���D\\u0018�\\\\�4�� �n���h��>}*\\\\\\\"�M���!��Y�\\u0016\\u0006�h��t؂.*S���\\u0019;�.�zzT\\u0016�:�>�\\u001c��\\u001eE��\\u00137B��5\\u001a��(�nW\\u0005�1o\\u0004��s#\\r��\\u001d6�\\t�2�3�%�\\u0018�\\tn\\n�\\u000e\\u0014~�{w�\\u0000:�Ng%d�2�,\\u0003�:�[�����\\u0019���xD`y���Qp��4%���i�\\u0000\\u0019�\\u0013({�\\r��\\u0011�/�;$s�cy���<K\\\\\\\"����\\f���+ƎL6�=�\\u0000�\\u000e@@�\\\\��\\u000f�G�\\u0000\\u001e�)\\u000f#�G��2\\u0004fo�\\u0017p����\\u001e����&����\\nE��\\u0016s`�Z�I7=�\\u0018$k��\\u001d��\\u0015-�\\u0006�\\u0002\\\\b�:\\rv\\u0014�?'*\\u000eG\\u001eg�dt�*��`ߠ�h�l�D�Qhr�Q�����KiJ*\\u001c\\u001e1�s�$�\\u0005�/�PO���Y|��U\\\\�<q��Г�O���ҩ�EA�/�\\u00061���\\u001f�p\\u0013io�'�>ͩ�\\u001f�7\\u0015����11X�{���\\u0006��K�#�LuO3{d�I?����\\\\��9m\\\\\\\"��\\u0011uH�̑\\u001d\\r�~�\\u001e���Qsc�\\u001c���\\u0000k!�d\\u001e�\\u0006\\u001d}��F�m�����Egfv%qʔ�'R@\\u0004p�Y���\\u0017\\u001a�m\\u001c�r#mv���~���\\u0005ɼ#\\u001c�:��Yn.@֝f�X��q��1\\u000f�\\u000b1�ѵH\\u0003��k5�c�h��fG\\u001eQ�\\u001b�zk��BX�dk�\\u0010�������\\u0005C\\u0011w=��ax\\u0016\\u001c�x��3�J0���+7��)�\\u0003+� ��أC�J�F�@k1��,�bP#�\\u0006�\\\\����\\u0006^l����\\u0005\\b���ە�`��M:U�ZgByp���)|�ꥲ^�mS�h�*��\\fyfyV+�1-�Bno�\\u0005���\\u0014.�k��\\u0003�\\u0001kQ�헆�Y�3��ʻo��{USf�\\u0000�r��\\\\\\\"+#���\\u00001��^�P�J\\u0002�=1���\\u000f��s�\\u00068����N���AM\\u0019�4��2��teXZ��W1�K<\\u000f�\\u0001\\u0002�U�\\\\\\u0010���ZX�\\fs4Gh)\\u0010h!c�o��j+?\\u0011\\t��@F\\u0019�����w\\u001f֊\\u0000������d\\u0019g���6T���}�~\\u000f\\u001d�\\u0000��\\u0004�ԗq��v�����Eg��8���{7��ں���l��XrЋ��~���h7�$�\\b\\u0019��(R�\\u001e��Z�@\\b'X�C��w(�\\u0003\\tk\\u000b3.��>�L\\\\\\u001c�\\u0019��\\u0013�\\u0005�\\u0018��q�\\u0017�\\u0013$\\u0018k\\f�錂gܡ\\t\\u0002��c�ү��H���!�2��T\\u001e���{zא��I�G���`���E�21�\\r�SCi���\\u0000Sm����|�@\\\\�e�F4*\\u001cY\\u001cx�Xp�a�!.DD[h�����\\u0011�\\u0006\\u001b\\t��lB0�%A�zZ�o�F\\u001c�q�l��rE%�\\u0004\\u0002@=�_��,�K\\u001daY�\\u0003<R1��n\\u0016$\\\\�j�\\u0004�:5��Mf�_'i�E�|��4��7�\\u0005#��&i`�Ch�\\u0007p\\b�\\u001b��\\u001f��1g\\f�\\u0004v*v��ou�t�T\\u00191Z)f��A**\\u0003�q\\u0002����A���q��F�I��z\\\\\\\"56�'i�i��\\u0011Մ����\\u0001F��jf�c�\\u001eH\\fH���\\u0016]v�~�6g)ȴ��\\u0019��b�⪋\\u0004\\u0016�t�\\r�i�?�\\\\�ty�\\u0011Ȍ��^��;��oZC/'�ˆ#�\\u0015��km���׮�])EL(KB��$�3�6F������<�o#��\\u0017Rc֫�9l|ǚ)�<p\\u001ba�\\u0014t\\u000e?p���L)�<�\\u0017\\u001dZ\\u0000_�\\u0011-rXmݯ�^��\\u000b'/\\\\\\\"G�F�;�#�\\u0005��\\u0001=i����4\\u0011�!�[\\\\\\u0016\\u0017[/C��S\\u0012 �\\u0000\\u001ciY\\u0018\\u0005(�f����V\\u0014\\u000f���Ws�2��cK1Y�k!K�u��G��q��ھ\\u0006����B���?�_�,Y�m�øMsv;��÷©^f|'�$&h���F�\\u000bh\\u0001�J\\u0007RX\\u0016E�kt������\\u0018�1���ne��\\u000e�h\\\\\\\"#n4\\\\).\\u001c���*ي������<�\\u0007����o�~��\\u000f��Z89.7*C�J�\\u0019dQ\\u001bFz������w��\\u001c�FY!\\u0004&�\\u0013u��kMr#C\\\\\\\"�\\u0005\\u000f�ٻ�\\u001dr(\\t,\\u000fù���P5*T��J�J�*T�R�J�*T�R�J�*T�R�J�*T�[(�\\u0018�j ��\\u0018�,A��\\u0016�\\u0000�X�ض>$���6��!m`4�LLw\\u00062:G\\u001a��w?l��hb^�$G�UPc�\\u001f)\\u001b�mY�_��\\u0018�\\b�����ނ�\\u001a0�\\u0012\\u0017��OκVyM�E\\u001d\\u0014t�\\u0010THֹ�ZI\\r\\u0003�҈�6\\\\�ؿ�\\b\\u001fGr}Z��\\u0002PB��\\t��\\u001cGmGC����tP��ln>t�5����q\\u0011V,�)IB_`�\\u0000�z.\\f����I��/p\\u0006�\\u0002�\\u0001Qc�#O��&Y\\u0012\\u0016�w���\\\\\\u001d5�\\u0000\\u001a��d`e�������\\u0015ma`����I�c�4�&�T{W�_��ΛcLc\\f\\r�Ϣ��)^o\\u001a��������_�J+x(�.��[�\\\\ˋ�\\u0000�\\u0005\\u0011��\\u0017\\u001f��*2\\u001cͩ\\u0016ZE�\\u0019\\u0019Abmm�Q�\\\\\\\"��W*\\u0013�q�\\u0015\\u001f�ѝZ�Hc����\\u0007A\\\\,�q��\\u001d�1�e��\\u000e\\u0016�j0���_#΋\\b�\\u0011�\\u0001)��\\u001b��a�ڴ\\b\\u0017\\u0013��=�\\u0012d�\\u0006\\\\G\\u0010�ԩ\\u00125E2���]>\\\\2��G\\u0017�*JҶ��m\\u001b:�<����0�V�[\\u000bZ��\\u0000k�p\\u001eXJ\\u0002�\\u0015YA�/O�Z���8D\\r���z\\u0011@����ƕ�[\\u0006[�(\\u0016�\\u0019\\\\\\\"M�X֨�2�8am����9�U\\u000f�[{tP5:�\\u0000�\\t��R�ג�\\n5�֊�]�_�\\u0000�P\\r��}@�>��\\u001a�p�.`�\\fj7n09\\n���\\u0007t\\u0001�6�U���/m:U���\\u0016V\\\\\\\"��@���\\u0017Un��\\u001bX�u�\\u001f�\\u001d�\\\\;\\u000fԤ�|�ʀEC��\\u0000P*�X�ۯ��А\\rhĀ���n[�\\u0000���h܎>h�`iU�}�c�=t�\\u0007�]�ō��\\u00062$���\\u001bm �Ν*�l�8�ɞ?,���\\u000b�ܽ\\u000e�n\\u0005\\u000f\\u001cG$��M��\\r}��;u��nhn�����\\u0001\\u0019�\\u001bY�@�<#�ҕr8�m\\\\\\\"H�\\u0005�%�]M��n����#\\u0006K\\u001b~��\\u0000�V���\\\\�\\u0004h�\\u001c1X�+��\\r����xV�C?��|��_j��X̷�S�{�b�d\\u0015?}0�\\u0000�C3��7F\\b�w٭�\\u0000��B\\u0003*�r\\t\\n\\u001f�=h\\\\���`�\\u0013�2�7F\\u0001��k�\\u0000Z#�\\u00191q�M�u��ܿP_�F��L&k���\\u0000�\\u000f��]��dD�Ġ\\u0001Ъ���4�-A�Z���\\u0000�\\u0007���$�\\u0000m+nB�ǻSq��\\u0000*37\\u000b-�Ib!��x��^�Rt\\u0012\\u0000֝��g*�\\u0001ii;\\u0019�_��q�%̋�d\\u0005|g�\\u0005,׵w��\\n\\u001c~s�˂\\u0010���p�,6�\\n�\\u001d?Uw�l\\b��7�����$��=zQ\\\\����,h��\\u0000RP5��f�~6��\\u0015�r\\u0001�fc�$��`\\u0006����&�X\\\\�\\u000b���X�>\\b�������@=�;�yS���m[� wRlV��y�?��������u,\\u0000ڥ=oF�\\u0003\\u0006��7\\u001e0|k܌�\\u00111���3�ǟ�<�2\\\\1��v1�c����8O�I4Q�UD ��Y\\u0005�\\u001f��\\u000e�:I3\\u0018XL��{�{\\u0001�)�#,�d��UN�RGB\\\\\\u001b\\u0013B\\u0006��Z����o�q/\\u001c\\u0004hԟ\\u0017*c<n�L\\\\\\\"2\\u0002і���k�֒|�`��{�\\r=����\\nU�q0��A�\\u0006���=-Mp1\\\\����+11\\u0011�\\rM�R9W�7%����aɋ��@œ�Wf�:ʚ�\\u0017&\\u0018��ʒ�\\\\\\\"w\\u001d��[z|(�����1a�I�\\u001d7k�ޕ\\\\|T��y�#�͞ǩ�\\u0000I\\u001f�C���@�$J\\u0011ؕuQ`è����E�F��eC�\\u0000�w�k���&�͖,�9��Ƒ�R��\\u0005d˸x���\\u001dM��\\u000b\\u001e���.\\f��m��-��-��R`N��\\u0003z2�z��a����(��1��\\u0001f����\\tѠx�]D*U�Z���uQ���\\u0004��|�WiV��ߧkј��\\u000b?��\\u001bW����W�\\u001ci)h�!s\\u00006ݏ��֗��+x��\\u00107�ZG��g��\\u0007�o��2>5W\\u0010�\\u001a���yl\\\\\\\"�*��5��\\u0001�Y���\\f�pd�@\\u001f��iS+�lNO�\\u0000'sG,h\\t7�v$\\r�\\u000fZ\\u0016l���bL0\\u0017i�\\u0000�m^��ڒ2dl�5��\\u00146�\\u0006�<\\u001c~?��.����&�G�(�0x�\\u0014��YD�\\u00064�{��C��\\b\\u00184��2n;-�ґdK$9\\t.P���ۡ\\u0007Cj0ˆ� ����u�{��x�c\\u0017�x�=k\\u0017��� ���A�\\u001d4W!�����\\u0018\\u0001d,�5����)V0�y�\\u0019���{�m��\\u001a?#\\u001d�ő:0pP��\\u000e��Ά\\u001cCǌrZ��\\u0003a���Ɓ�H�Q�\\u001e�U������{A�rcM~�W'\\frq�Lv\\u000b\\u0014D\\u001b\\u000e�}6���\\t/\\u0011>KC�H�\\b��c�}�Af]E��|��8�n�\\u0012\\u00061\\\\��6\\u0015q��\\f\\u000410kn*\\u0005�Q�Y͑.\\\\c�ł�1]\\u001f������\\u0006F�r\\u0011��'ވ��\\u0011^<y�!/�\\u0018��\\u0013ջ��s�q���ˌX�\\u0014d;�'��?M�H����r��\\u001b�H���e`l\\u0014\\u001b�ſ�\\u0011��.d���\\u0000�@\\u0014{l����h\\u0016X�v�['��ғ�[\\u000b�,V\\u000e�i\\\\|y�t�帬�21b�%\\u001d%\\u000e�F�Lv�:�T.[d`a�]d\\u0012ȁ��\\u0010\\u000e���\\fL���\\u000b#_lg����7[׹3�eʸ�y/\\\\\\\"�\\u000fB\\u0006�)��!@gҳ\\f\\u0019\\u0003�\\u00064�'���,�Nb���\\u0011�S���x�9�\\\\\\\"/�rC\\u000e�\\n\\u0011f�\\u001b�Ox�F.C\\u001elNF(�l\\u0011<`.�\\\\\\\"��KVW\\u0007�^7��\\u001dW͈]�\\\\\\\"�k\\u0006\\u001e�r>=�,0vFe\\u0002ۃ~\\u0014�Y|<��e\\f��,\\u000e\\u0003�Z\\u000eC\\\\\\\"\\u001cl9���L�86\\u000b1��*ǥ���/%��H�?ۗؠ\\u0012H\\n-��5G)�M��\\u001e9\\u0017�Sh�\\u0012֠��0�`B`em�O���>tGS;kYF+�\\u0004mX\\u0006��ש�8Ӟc\\bb�͑\\u001d�U[�[�$\\u000b�Ba�fM ���\\u0015\\u000f`\\u000b\\u0011`.k�K8��3O!|�B�������\\u001b�\\u0004�g�;���[؃�|h�;�U-��\\u0005\\u001fu��)�3f\\u0018�q>@%\\u0001\\u0003�ލ��TQ�I�q\\u0019�@\\u001e�\\u0007�oMMg6#sX��1�5u��cc�\\u001bz��zrs�$�\\u00136<��3(c�.��\\u0005\\u000f���?\\\\\\\"9.��e=�iԛ��\\u0014��.�15e�\\u001aj\\t\\u0018.<�;ZϾ\\u0007%�\\f�s�q\\u001f��A��߫��A�q\\u0010b�fr_&V�y��\\u0000\\u0005\\u0000�Uș�g�Ta\\u0003�C�@\\u0000���za��.Ti6f�񍠨���=j�q$k\\u001f���,���ֶi\\u0000\\u0001�\\u001boUęx�1��Q�N�\\u0013�����\\bY�˾w���{�ۡ�C�%>h�#�\\u001bm\\f�K�\\u001bFQ���\\u0019\\u0019\\u0006\\f(�F7!��\\u0000/r��T��\\fH:S�%�dr�\\f�#�֝��3,��I�\\u0018F��������Uy<�vg�\\u001d��R�@.̫���V��3��\\u001c�$\\u000f\\u0003\\u001b�uٹ.\\u0001e���}�\\u0011��mU�?݉N�?V�d�6\\u001e����Y3&<N��-�E��\\u0015ƣ���ddŊT�ث��\\u001e֣\\u000eC�\\u0006=�L:���\\u0015S�m.\\\\\\u0013�,�\\u0014�5\\u001e�7\\u000fw��\\n?�L~:<4�|�<d1'RV�\\u001bt�R�B�\\u001b�\\\\\\\".���Z?�\\u0014��>��\\u0003\\u001e�����d�<`�Rg\\r\\u0003�KD�V>�\\u001e�\\fy8�e��*(-\\u0018u%}6�=�&˜de4��\\u0013ڣ��v\\u000eQ�Ȅ�I\\u0019$0\\u001dmo��Ut��\\u0004����\\u000e��\\\\@\\u0015����k�cb�2I�KH\\\\4�.T-�۰���T���s�`-c�w��bK4�\\u000b\\u00038K\\u0015k���\\u0000oj\\u0017���\\u0015�4��\\u001aZ���ۖ�R�\\u0006�\\u0007Ʋ0k1\\u0002\\t.�\\u0007&�G�K�\\\\\\\"��������0w\\u0001��\\u000e�;Q\\u0019\\u0019r���5`e(n\\tU@5����^>\\u0004�`X��\\b�[����l��\\u001aCk�cs�Xƥփ<�ǥ2�ɕI�2f\\u0018лt��\\u001c�Y�f\\u0017�`�\\u00162��1���AKpx�,\\u0005��\\fO�Z�|hŊ\\u001c�L�,��l������Z�W#���\\u0013\\b\\u0005�!X�)\\u0016��=�\\u0015B�\\u0017\\t\\u001alj�����%�HgN�\\u001c74\\nfd�xP�\\u0004� \\u0012\\u0001\\u0003����7��9[L\\u0012�Ɩ\\u0013\\r\\f������\\fh�U@;��{��ʽ��g㼑O\\u000e�y\\u000b�\\u0006�\\u0003o^�@�E䨦68k�_��bc���O�Z,�6,�\\u0011�GD@l���{\\u001e�\\u0000\\u001a\\u00033\\u0001p�\\u001b�5��M�t@�/�֍�\\u001cyF7!�o\\\\\\\"E�\\u0000n�\\n$���qҁ̿�$О�S�\\u001a��p ��\\u0001�x����r\\u0016\\u000e�V&KN���N_\\u0007\\u0016N>c;��S\\\\\\\"\\u0010E� �����ȟ\\u000e,҃U�ڋ�h�/��ę�yJ��Ϗ#F�7�)���Jc�s\\u0017\\u0012N\\u0019_\\\\\\\"c\\u000b�gaAsf-};���I>Ե��\\u001e\\u0010�tn��h\\u0000��}b�G�e�g����ȶ��\\u0001m�w\\u001e�qʅ�\\u0013\\u000e?t�\\u000b:\\u0013m�\\u0007�⸤��i�\\b\\f_J�_�z|:U9��'�A:��C��k4o�ڧoo��C0�4�Z�g��&)���h$� G�V�\\u0000\\\\\\\"��\\u0000ۯ\\u001a���}�Qsa���\\u0019�#,6��~�\\u001d����9�\\f�Aٌ�7R��\\u0003}1D\\f��7�Dn���D�9\\u0003��T,\\u0001�\\u0016\\u0004n)\\u0018p��(,��r0+�ZM�F�\\u0000�I�L��\\u0004��KA5�c��Xi�݈��vʑ�\\u00068�\\r\\\\\\\"\\u000e��\\u0014~T\\u0017\\u0018�x��a}����\\u0017g��֜`cǃ��`&Y�eW>��j\\u0005����N�\\u0018\\u0010\\t\\u001a��C��ݛ\\r�*��\\t�M�O\\u0018���M�b,V0��E#K.�\\b=�'��1��t��J��\\u0014]H\\u0007�s�,Y�(D�!�ʠ��Cb.M]��\\u001e.<��*�\\u0005;CY�n�;ӏp]a\\u001a���w�Q2c9\\u0006\\\\wh���N����8�\\u000bcI������[�ZN�\\u000b\\u001c�h�]%�3Z�o�O��|26;�\\u0016Q\\f�\\u0014���4�T.\\u001cYseHKF|��o�'�@�}@\\n\\u0001>�ʋ\\u00165D|�Ńd�F�pf�L�9\\u0001P/���~�B�A�\\u0000�A���\\u001c��m���v�/�_J9�r\\u0010Lɵ!\\u0000\\u0011�\\u001d��K��f)\\n\\t\\u001aFETp\\u0002\\u0006�v�jS�h!��\\u000e|Ehŕ���Eȹ��n��s��\\b\\u000f���uA�N�M�\\u0013�'�n=�#�{3\\\\��G�]�\\u001c\\u000f\\u0010�0*���m�魯�+�=��;D�\\u0007�\\u001d��N��{Q\\u0010\\u0003h-�����.\\u0005P\\r��O��\\u0000E\\r\\u0016V>��r\\\\\\\"�F+�c����}�?\\u001a������'\\r��er\\u001a3u6_q!\\u001a�\\u0016\\u0016K�FV[�+,�\\u0019�p�\\r����?!��E���q�����{Ъ�i�\\u0006���ff�I*\\u0019\\t���tK\\b�\\u0000ڙ��ecJ9\\b��[}�\\u001f���t���\\u0015���E��a\\u001ey�ܥJ��\\u000e�����9Ā�6B\\u0006wVB����I�J��\\u0004�\\u0003�����\\u0000�\\u0000u��]a\\u0017\\u0006\\u0004��LE���Ѝ��\\u00036\\u0017N \\u001e<����R,\\u0012/�\\fy\\u00164�\\u0006��Ƿp�E�+`d�6*$���+\\u000f�{�O�PO\\u0018LlI��y��V\\u001fQ�{X��>f\\\\��O,���(�0l-bO�i{��4�\\u0012�Z>G�:Մ�|���9\\u0011��p�\\u000e;p��\\u0010E\\\\\\\"���F�b��w��\\u0019�]���,�\\u001evI\\\\\\\"�lhT�\\u0013}\\f\\u0011�n\\u001f�mz���q�călQ��\\\\\\u0017m��e:�\\u0000Z�*3��O<L\\u00165h�r\\b:�kAV��3N���L���|AU���p�\\u0007�ձ�\\u0003�&L%\\u001e,�\\u0018�\\b$\\r(I��l\\u001eJ8��e�F�$�\\u0000�f=�WǴ���9\\u0003j�\\u0011�\\u001a\\u001e��ņ��ҀҬ���:�u4\\u0005C:��Ջx\\u001dfi�\\u0000A�\\u0006B \\u001bfz��#OJ`��Ř�m\\u0017�\\u0015�\\u001d\\u001a���mR\\u0007�(�ȱ��f�C��P��v�\\r\\u0016��k��(x��4W�v��,\\b\\u0003s��Kװr)\\u00162L�\\u0000�\\u0018)ab;��z�\\u0001 ��\\r˫�Q��q*�\\u0000�����m�\\u001d_�SE@��Q#6y�\\u0012��s����v�J�6\\u001e\\u00153�\\\\��;��6Ecos�h(�L�χ,1���6um~\\u001d:�Y���+Ï���#\\u0010�8\\u0002��j��G�`\\u0010�&\\u000e�Y|r\\u001d�L�� \\u0015UČ�>�G\\u0015$\\u0018�\\u001c��\\f2��Z��qqک͂,���Z(�\\u001e5(ѹ&�\\u000f������3\\\\\\\"�9\\u001c�w�\\\\�p�#�\\\\�!�N�}��Ds\\r���\\u001cPd�V\\u0005;z�Tm�P�\\u0016`�h��b�Gia���3��\\u0010/p\\u001f}��\\u00053p�e��W��m\\u0011�\\u0001\\nۮ����O���Ŧ*�\\u000eL)`i�;X��\\u0000\\n�-8谛���HQ��'q�N��O)\\u001c\\u0013���v\\b\\u0002X�*(\\u0016\\u0016\\u0016Ң�rJ6�r�u\\u0011-li�\\u001c�D�\\ft�\\u001d$S^\\r1�sC��\\u000f۬{�̡��km�ѩ\\u0017�\\\\�29��q�(I\\u0001\\u0004 � \\u000f�����ӎ�͂�$\\u0007!A*�\\u001bꫠ��𤜸Q�\\\\\\\"��\\u000ba�]4�\\u0000UB8��<lĻa:��oj\\n�J�U��J�*T�R�J�*T�R�J�*T�R�J�*T�[��\\u0000�>�ݲ�\\u0006U#o]@=�a+a\\u001enS\\u0005Y�S\\\\\\\"��R��O�I#Pʿ�~\\u0014��;8�o\\f\\u0004馜�\\u0004R� mBH���m��k�\\u0000��v���R�.v��\\u0006@�'��m:���֋���\\u0000\\u001d�ԯKڊ��^o&#�Ƞ$\\r�p�#�H�M��(F��\\u0000B�f�I\\u0018�*�.X(>�\\u001a��\\u0011�S�_C��\\u001a���q�,\\f����N�c�J\\u0015�.v��QD�\\u001c�\\t�$S�)�b,7n믦�_)�G�4+.F����W�ױ�Q\\u001aS������_Z�\\u0013+Y�[jo��N��G\\u0012y\\u0014+�\\u0005��E.�V\\br�'��\\u0000\\u001d�䰰����N�\\u0011���Lq��m�\\u0000C_p��t���[��E�\\u0018ˌc�UFK��+(�<�ʠ��\\u0013d ^���|�\\u000f2\\u0010��\\u0002���p[��J��\\fO�_\\u001e$\\\\�Sr��.�V�׆�\\u0011&�v�o��\\r\\u0000E\\u000byO��\\u001c\\u0015��\\u0000oj\\u0002\\u0014X�\\u0018��nS���k���P��\\u001cR+Mh�\\\\\\\"���]/M���9�\\u000b`��\\\\\\\"�g��|<{{^\\u001b�;�&��\\u001c\\u000e�������\\u0019����\\u0011\\u0013M''\\u0015��.���N�s�f��aCb3f��c\\u00022\\u0010\\u0016����\\u0000�w��&(Hʉ\\u0014F7k{XZƊ�\\u0015x�F�&Y\\u0005��bu��v�i_�\\u0013\\u001f��\\u001eTǐfɍ�<��n>��s��T��l�#�\\u0015\\u0001���owo���\\u001ah�\\u0014JcAgg�`ǧJ\\u000b���ᑾF���\\f�nͯSE�\\u0000\\u001e�͜C\\\\��,;v\\u0002�\\u0005��E�G��ڿ\\u0012\\u0013�<��H\\u0003�\\u001c�֙�1��<!�`\\b�;Q��8���$���tQ�\\u001fJ��;SL�bȢ0=�(��\\b��\\u0018���\\u001a��\\u001a\\u0002�\\u0000\\u001a�7���T\\f\\u0014行�\\u001f��a�s#H\\t\\u0005�}{\\u001e�߄\\u0000�Ii\\u001d\\u001b~�~ZiU�0*\\tb�o{\\u0004\\u0003��\\u0001ޏ�7�\\u0018&Y\\u0014�.\\n�/{��MX`��ǟ#\\fb\\u001dD�\\u001bM��3#\\u0006Q���G#dD�\\u0016GO��n�{kN�\\b�\\u0014��N�4\\u0017\\r�d���<�\\u0018�m�\\u0015\\bl[�6�\\u000b��|�LUlk*H�$�\\u001fr_�~>�H�\\rL�����~_��&Lk�Qq�\\u0000�\\u001az�$0J��2�*��\\u000fi\\u0016:\\u001b�jy�����)$�>�u\\u000b��u5n&$8��\\u001dI�8\\u001b��L{7�WO\\u0001ܮ�x���?S\\u000e�\\u0005\\u001a�+&o$d�hm\\u0018���=�yef̂&6~�W�\\u0004���\\u0014G����'��L��P�v�\\u0005���\\u0000P�1�\\u001aO\\u001a�\\u0011���\\u0013sc�w�q��W\\u001d%߱Q��\\u0012.H���I�H�\\u000f��5�d�`��j�c֨�\\u0012cK�ﰲ�R\\u0007���e\\u0013\\u0012y'\\u0018跐��z���̜�r�d\\u0010M�Ч@��Sn\\u000e\\u001f|�\\\\\\\"2�*�`/b\\u000f��ި�ڴ���\\u0006+C!/���n:oC�\\u0014�����7��u\\u001dj�-�$7;|[��}�\\ng�\\u00168L*�d\\u0005�{\\\\_OƳ�FT�r/�\\\\\\\"�\\f�\\\\��A�oʨ�\\u001b�e�.<ń\\u0015\\u0006��7�\\u001ah��c�I<�g�֬��d�-1�U����pU����Qɲ�qqJ�L�\\u0014���\\u000b�~ttX�j��,l�F]\\u0018^�v��`¡��`�H��\\u001f�mV˛��#lg�\\u0018FK\\u0010��S������$��H����2:��\\u0014^O\\u0016���d m,��e��Z�F��1�.D\\u0007i\\u001b�\\u000f�ЃV�b\\n��\\u001e���m�Z�U��\\u0010��\\u000e���\\u0007�X�1㖒S�U#o΂|�.�V�~�{7Ƙ��4��d��1��K��>���՘�1�/ږ�l\\u001a���i�\\u0014��2��$[L�㧮����0�wd\\u0019\\u0005C�S�'R\\u0016��6\\u0013K�\\u0004��\\u0018���\\\\\\\"���Z�\\u0014Ĝt)&�$mRֽ؝\\u0016�^ x�$��B�\\u001at�\\r���\\u0014�\\u0005E���W-|���VL�\\u0019�.���\\n�*\\u000b�O\\u001f)0,r,�2����\\u0000@�����_��)��$�:j��N3�f�\\u000b+�;�T�᭩4�\\u0019\\f<�\\u000f��S�Ab\\b5dɓζ����\\u001d.������rx1�c���Ĥ�^��M,�\\u001e\\u0003+�HE�\\u00057��Y��L|B\\u000b���M:/�]��Lq\\u0004˶6�H\\r�\\u001f�\\u0003�V�7\\u0013Y�l(\\u0003�E��ԅ���(�#��&W�X2�G�\\u0007h��J/>1\\u001e2��\\u0012XY~TF�H�xʻB�\\u001a�\\u0016��4�#��ʃ\\\\\\\"5\\u0011*�\\u001fy�Vpu\\u0017��Fb�w�ȗf��!Abʓ\\u00107���9\\u001eu�D��p2�\\u001fM�@'�\\u0000���ʺi�:����Y�m���&a��Vݵ�2����W�i��n[\\bq-\\u001chf|�\\u0003Q�7��{6�\\n\\u0002ca[��9lW}�P\\u0007�Tǟ���$�Hf$\\\\��?�S!��\\u0002\\u0018���\\t?rP\\u0007�whXz�\\f\\\\�q�#E\\u00061�\\u000f��Z~#2,�:Q�\\u0004���V��\\u001a�\\u0000�MNè��J�\\u0007�Ifa�9q����\\u0015�ړ.T\\u0019�i\\u0013��ԔYS�U�׵;�8�\\\\\\\"\\u0003�$ي2\\n\\u0013�$!\\u000e��\\\\�oғ�%��V\\b�쵤Bu��H�\\ry�E$�\\tQ\\u0000�\\u0004;����u��\\n\\u0014��g��-�\\u001b�$�\\u0018��L�H�p��9x�Ȣ�Vgg�\\u0000t\\u0003�#Ԋ2~?���x����~�\\u001d���I���]�N,E�v{�\\u0002G������9%`���)\\u0016\\u000b�޿\\u001a�\\u0000�d�cl\\u0006���\\u0013��1/\\r<��x�\\tm����47��\\u0000*\\u001f�d���y\\u00143�p��V��\\u000b��pZ)^EȾ�\\u0001�3�t&��!\\u00149rc�$&&��\\u0001i\\u00035�|�p\\u000b0�S���\\u001eU��|���\\\\(�_\\tL�GK\\t�zS^v\\\\I��y����Ѱ\\u000b�\\r6��z+\\u000e\\\\a�\\u0012�tR�j=�\\r;߽f9LNA�8�2�\\f?��E��\\u001d�\\u0000�E8�e8�<���7H�}�^���ҍN��q��d�@^�\\\\�v��\\u001a��a4��!d;�LVڲ�Y�i\\u0017\\u001f\\u001d��\\b�7��1��N���и\\u0018y�\\u0007'6\\u0019\\u001a\\fs��F�\\t�>^�dx3qyr�m� �ƃk\\u0000�ހj�����LN��\\u0018A�\\u000e7G\\u001a7��O���)\\u001f0mj\\u001f\\u0012\\u0004�\\\\\\\"X\\b?F��U+���d����s\\u0019R\\u0005q��m\\u000e���\\u0000b��,��\\u0014wS\\u0011@�^��\\u001f�\\u0013\\u0013���\\u0014({x�c!�\\f�\\u0019u\\u0003��`���\\u0013�\\u001e\\u001b\\u0005��k�\\u0019t-��M���Xx<l�S���]��p\\\\\\\"@,��[�.ۉ2�rI�\\u0019\\u0003\\u000bme:پ\\u0006�LL1�!\\u0014\\\\\\\"� ��R�ZS�I\\u0001\\u0016�\\u001a\\u001d#Ng�i¾\\u001a���\\t*Τ���(�>�<����� �,��\\u0007ݰ\\u0016�\\u001ct��i�^L8����B���\\u0012�3\\u001d��v�rrR�3B6H���Z��q�U����\\u0010)�\\u0019\\u0010\\u0005.�\\\\y\\u0014���\\u0002(Е^���\\u001f�#7��FT\\b?i8�� �Ҋ�o)�&?ܘ����B���e��\\u0012\\u0000�\\u0007���v\\u0016;�\\u0005\\u000f'\\u0014��Xy^��q�\\u0000\\u001a��ˌ��.[>�\\u0000m�4�m��\\u0015�6�:��S\\u0003\\u0015`�q6U����0E�F����0�|ѹ1�VA\\u0010a���Z#7\\u001d$�\\u0006, K\\r��\\u001e�\\u001f�t�z뀊|�o'7\\u0019c\\u0011()�qq��4\\u0007���L|3�-+N<nѠ\\u0001E����5\\u0016���'���\\u0001��\\fz\\u0000~��g��Hf�#\\u0011h彙�Co����\\u0013q3\\u000f���(\\u001a}@�Y|�\\u001c\\u0019�\\u0002*�n\\fTj��X��Y��K�\\u001a2Lq6�\\u0007�]M\\u0010؉։��͓\\u0013�q�2\\u001cI���q�\\u001co.���\\u0011*cF�.,�Y\\u0003�����^fq�61�D\\t��\\u0016�C��n�'\\t������ gf�i���~��U��υ��y0�Xoc�\\u0017��Q�l-t�����'��b\\\\�>u9q\\\\��\\u0017��\\u0010�A�\\u0005\\u0005�\\u0006N.Dx��FC\\u0011�{E�|(��23�+�;�\\b�=��k��j����\\u0014\\u0012�\\u0012�4��V�P��*�W��%�\\u0012\\u0006�Ъ���\\u001e�@4�U�\\u0018�ֹ�\\u001f+d�ʭ%��.�\\r.�+�\\b�}��n\\u0003�\\u001du���\\u0000\\u001dC�%�dLhA`����\\u0000kE����Ì�;�P��\\u0014{lXU9�~sb����a\\u0017���KX\\u0013�h\\u0018\\u0018���G����2�,�N�<gҪ�'�n>vW+�\\n�����\\u0017\\\\\\\"�Zݩ?\\u001e>�Mү�,{H�\\u000e�\\u0010t\\u001dkG\\u000f\\u0003\\u000bp\\u000e�(37�\\u0006\\u001a������8�\\b�dA0�7\\u0002�au��A��7�wL\\u0018�C�q�w������Nq�9!c�r\\u0015\\u0007�\\u001f�p�ȍ\\u0016\\u001cm��\\u001d��7t�ҝ��ϒ\\u0018�4H� W�ޟ�|o<1�a\\u001a㕖\\u0000cF\\u0002�q?�B��,P��\\\\\\\"���8q�����������l�ٲ\\u0018�{�\\u0010��A\\u0004\\u0011�\\u0003Q^M�\\u0013�\\u0006�A\\u001c�Ժ�����n���/+=�FF�+�����ʍ���>&FYi�&]�VV6q�k�\\u0015a-�\\u0012r�.gn��J͓*eL�����S\\u0017\\u0019!�7}��|�\\u0019���\\b�f\\u0015��\\u0007��{X��j\\u001f����Ti�\\b�,�О�J-�i`�nG'\\\\\\\" ��\\u0018 ��6�wKR~I\\u0017/=B�\\u001a0\\u0000$kcԁT\\u0018\\u0006\\the*g�6�9�yC��dې�n��\\u000e�](�7\\u0006<�%ȝ�.]�*�\\u0000\\tКn��rW�\\u000b�˰#��\\u000b�\\u0003���X�\\f8�r�*ء�)�\\u0000W��ˍ���(�Y!DQ�0��P�A>�!\\u0004�\\u0010�\\u001fCCfk�l���X!\\u001f$�\\u0010)�qpc�6*���}W�W\\u001e�דp\\u001c�v\\u001c�c\\r�F7\\u0004�I�e��Dq�\\\\i\\u001c��J��l�Z\\u000f#�0���\\u001d��B�B�ޫ����9Z:��\\\\\\\"�\\u001feh�\\u001b��#&,j���\\u0017w\\n\\\\g�\\u0011��-\\u0013Tˀ3\\u001a\\u001c���\\\\\\\"EEA�\\u0005zܟ�_��%�`�!�\\u0019�IP\\u0001 tc�z��x��.+�u\\u0005�\\u0001K����Bp�ؑ:d@cR���Aѻ\\u0011�+I\\u0016\\rx���/��\\u001f\\u000e4v7\\u0003�zd��#�Vr1\\u0018yX�9\\f��bb\\u0003� ��󥜇\\u001f���\\n���A\\u0004���=(Ř�s�+�E��\\u001b��Mw?���\\\\sQ]����$q����\\u001a\\u0007�O��i�Q;�r��䣢-�zt��\\u0007�Lu\\u0004\\u0016\\u000b��M�v=:S\\u001e7�Ǉ\\u0001w�l��\\u0011?W���PN%�2W[\\u0002YG��ѸP����Ty$\\u001eI,\\u000b\\u001b�ǵ�*\\u0005\\u0000(�J�����Wi���\\b6�\\n\\u000b\\u001a_���:�G a��v�� I2��S`c{�@����+�q��:FL�g�7�\\u0012Io��҄�E\\\\��-�H��\\u000fP\\u0015���\\u0000OJ��:\\b\\u0007�S��\\u0010q��7���{Ѽ�\\nO4�d?�,`F�����׭\\u001d���q#Y$h�\\u0013lv\\u001e�{�*������0�\\u001a+5�^�}�|i[��b!$��:��[��Ve*�Q�[��\\u0006\\u0007�cPq�.\\u0017��{xi�k3�Q��;4\\u0003j������`�1\\u001b�_�\\u0011��./���Y��\\u001fq\\n\\u0005�ޫ�=;͈��%�v \\u000b�ow�/Q��U�}�u�V76\\u000b��\\u0005Y\\bbی���#�W��d\\u00191\\u0015Ʋ��\\u001a���>��@sX�\\u0007�̋�o�*\\u0005�Л�U�\\u000eaʞN/%����\\n�27[Bw\\u0001\\u0019�\\t�Vg�ɐ���ƲD�\\u0007�V�W�]������&>\\u00169�QbM��\\u001d��4L˪�\\u0003p��W��#+a/ۓܻE\\u0000�q�s`�ʓ\\u0007\\u0013kE\\u00138��}줒\\u0018�ֽ�`�l�q���*�\\u0007[��_��q)#Ʋ>�t\\u0004�B\\u000e�P\\\\d�I琽��T\\u0000ł��*\\u0001�\\u0007j�\\u0014�\\u001c.\\u0007Z̙Td͜c��z��\\u001f��֭�;��\\u0001�\\u000b�\\u0002�4\\u0016��eos}$iz;2~=���\\u0000o��\\u0007�!7\\rbGP�\\u001a\\u001f+\\u0006\\t�i2\\tf�l\\r�-���^��b�\\u000f�\\u0011\\u0001f����~��}�[��\\u0016\\t��ʚW\\u001f���\\u0000\\u0015���\\u0014�?�����'\\u000eY��\\u0004JC+�b��Ο�0�b�ۍ�Y1�HA�V�ۏ�5�� �Ń��]bLh$�fk\\u001b\\u0002�\\u000b\\u001e��;4�U�x�#\\u0012K\\fxB\\u0005\\u00176�\\u0014��v�05$}8G:���\\u000e1���.7��W�45�\\u0014x�҈�,1I�b\\u0014�}m�J��י\\u0003\\u0006~Rlh�M\\u00069�hlR�\\u0007{�Ue�a�O\\n�\\t\\r�[�V\\u001a��mhn1�/ֶs}u7\\u001a��Р���{�+=��M���&\\u000f�Fr\\\\F4�A�!V���U�������\\\\�r\\u000b������e\\u001bnaS�/Bv�\\u0000��2\\u001d1\\u0004rƭ\\u0000Pc\\u0001A#�oo��\\u0000Z�&�\\r$�0�F�Y���\\u0005�mS����\\u0006�8_:!�?u��n*g��<9P�\\u001e6<Q���k�[�\\u0016�O��\\u0006c�2er��1;���\\u001fv��\\u0000\\u0013�\\\\�%ϟ��\\u001d�h\\t$�C�\\u0012œ$h�ESmַ��PL�[p�\\\\������3����\\u0015*T�ZjT�R�J�*T�R�J�*T�R�J�*T�R�J���7\\\\\\\"\\u0015R�)����YJѢ��Q��\\u0015_��!��Ǥ֏\\u001f���.N�$0\\u0011\\u000bw�z�\\u001a<�\\u0004��\\f\\u0012��m :�cbT�\\u0017�9|�Dx\\u0007�B\\u00148�8$9S�\\u000bt��1\\u001c%@�;-��m+��l\\t�ߓ���\\r\\u0006�i�]Z��M\\u0003)\\u0002���\\u0015�|o-sy9\\u000bb�.B�m��C\\u001fjO�,Q,*S܂ɥ��w\\u001a:|��O$��\\u0018�\\u000f���|iJ\\u0007[���\\r��h��O�X2�}��\\\\\\\"4���J�\\u0011��j�8�\\u0005��B�,�\\\\\\\"C�v:)!WRx�1/��G���\\u0012�#n�G���6\\u0014דȏ��\\u001b#�o*�d2���߯ґr�\\u0000y��y�Ǐ\\u001e��-`?\\ng�O\\u00165����V�,����֍�M�\\u0011\\u001cy���<~�!�\\u0000\\u0011F�VtY�\\u0014�c\\b\\u0014\\u0015\\nS]�@#�\\u001a�Y�\\\\\\\"A�j�u�C�?�]���\\n�޶�Gk��\\u0016�:�o���ۦ��|�Mr���\\n���Va�H\\b��]���#�r�`��9\\u001c�\\u0000�\\u0016�6�{�z\\u0017'��IU$\\u001e�`�u@\\u0000�r4@y\\u0016-���\\u0005�Ѿ5D\\u000e\\u0014�\\u000b�\\r^r�'��MÕ\\u001ai��ș8����A�em?;S�C\\u001el��dy\\u0019M�@\\u0005���\\u000b���|EY�`А�����ڟ�Q�xS�r�j�FFe$\\r�\\u0011Bθ��\\u0017ڡIbH�)�I�\\u0018�tdS�\\u0015��Ɖ����\\u0004&�{�zy�+K���\\f\\fi��(\\u0015L�\\u00053��n5!�ꏺ�����2v�<�oΏ�0�͔܂\\\\\\\"?�Rӿ�\\u001f��[3;-���L@�t��-����֭�x<o���m���ώO\\fGR��IK�zP�맞O��o�\\u0014ZŻa�K�z��I�\\u0003ɗ/��\\u0011\\u001bX~��\\u0000:m\\u0014��Z�M\\u0000�v��p\\u001aly2�#�\\u0011q{�\\u0000kr;ދ\\\\\\\"\\\\�CZC\\u0003\\u001c��1F�̗��\\u00071<i6<\\u0013M%�{H 3h,h�0�Jw1;�n4�DaT���\\b^�T2F��;\\u000e�Oj�\\u0007\\u001dh���,\\u0016�w\\u001b�Sr�&i\\u0011�E2���B��v�k����h���\\u000fW_�\\\\\\\"�V9+o*)\\u0001�]:��l���\\u00048�w�:�m`5�K`A�]\\u001f\\u0017 t�M��\\u0007���hp�\\\\\\\"(�ЗTEF\\u0002ێ��Vfd�������h�\\u0006�}G��X���D�?���*Dq��\\u0013' ����\\u0005\\u001a\\\\\\\"��\\u0017��jA\\u0003x�PE�\\u0007a8�\\u0000��-;�U�k��\\u0011��7\\u00146,?�)<����,3�⌴q#\\u0011`�A�4ߍ�\\u0013�y$�1�I\\u0017j2��\\u0006�ֽ�����ecG�\\u0012`��� )�n,h\\u0010��\\u0006���\\u0015�*\\u0013�fe\\u0001QU@�\\t\\u001a�v�\\u0017��!�\\u0006:��-���>H��5���+�e�Hx�\\\\\\\"�O����kov�v\\u0015��'\\u0010q\\u0019�2\\\\�B��6$m6��>g\\u0012�~9�b%EQ�B[As����(��K��&\\u000e�fA;�,b5�h�N4\\u0011���)�0:�����.\\u000f\\u0013\\u0013\\u0010<c\\u0015rK��H�A\\u0000h�ި8S�\\u001b�K�a�}ٽ���Da�BH�\\b���}����\\u0002�w���\\u0016\\\\�F\\u001d\\u000b��n'�ҧ\\\\\\\"��%\\u0016(\\u0019N-戳���>]j�?��\\\\\\\"eV�c��S�-��[�k�I2�\\u0007�1]t�\\u001c7�C\\u0010��ss�a�Ј�\\u0002��MU���>�5ę0�t\\u0017,��}uҴ��~z�\\u001e\\u001a\\u0000���$\\u0013���J�8�ܙ\\fX�7�{-��x�I���<�Ic]��\\u001b���V�#'\\u001f��\\u0016WF���䪲����j�����\\u0007\\u000e�`2\\u0002$��\\n\\u0016\\u0013'\\u001a\\u0016R�m\\n�鴑ѫ��$��.A�_��.�:|�\\u0016���K���B\\\\܋��{ڼ��ȗ+�2(\\u001b�@4��>u\\u000e�lu�<���)[�[�w\\u0014o�\\\\<hx�\\u0012�c��s_���c����s?b7>���ر[�����q�\\u00180-��[�n�\\n�\\u0000Z\\u000b���A\\u0006J\\u0000�弽v�؊�C�j��O\\u0018\\u0010��6�}\\rWȰĜ$#� ,����>4\\n,�S�I��t'�\\u001aޝg��'(��e\\n�\\u0019���u��\\u0014\\\\��\\u0001�$*\\u001e�\\\\܏�*\\u0001&8V�%<e��C�\\u0002\\u001by'J���tެ�\\u0010\\t#�ϥ\\u001d\\u0001�\\\\\\\"E�o\\u001c7k�ǡ�^��deᰈo���\\u0003��[WI.\\n5�0ki�\\t�M'�fl�Բ�s\\u0006H����f���9�\\b��@\\f=>T��Rx٢\\bK�V�l=���x�Hx�=�7V7\\r�\\u001f���J��ؙ[�\\\\\\\"]�n��YE�ǭ�\\u0011>��\\u001e<��\\\\1�\\u0011Չ\\u001e��4\\u001f\\u0003��2I(`�\\u000e�\\n��-��\\u001d\\r\\u001a�F�1�EVq+�;\\u001f�\\u0006\\\\\\\"ߐ�V���LFl8J�6�X�.����|��0\\u0012\\u0006��fgyA%O��\\u0016�\\f@o@u�Z\\\\��\\u000b�\\u0017)f1����/Ư���i'i\\\\\\\"Y䉂\\u00177�\\u0016�mz\\u0007���3r1#`q���Oԥ��_���ؒ4\\u0011�\\u0015�Z��\\\\����r�\\u0000�r?�$b�dm�]uN�W��*c �n\\u0004ML��6o\\u001c��\\u0015N�JxQӬ��\\f��\\\\\\\"+���wm�\\n\\u001f�\\u0011���4�� \\u0001k\\u0016$�چ^n\\u00193�\\u00161��4���_��fٞ�\\u0000[\\u0005�'p�oS'��:d��,N�M\\u0006\\u001f\\u00175��[\\u0015EĘ\\u001d ��T��d�\\u0001-g�\\u0014/s�_Ί�V���\\u000f%�K\\u001ck+����[� �͂� \\r\\u0004���\\u0011�b�#�'?8\\u0003�-���܈\\u0002��U4��`V��\\u001b^�\\u0004W \\u000fƛ��c\\f��EE.�q���^�ϗ\\u001b\\u000f��.V?ld\\u000e\\u0015E��X�~\\u0014�3(K�\\u0016,R\\u001d��u\\u0000�W�}ƅȊI�VG���ov7�ړ \\u001etI�\\b\\u000eB�[�Tp֝��ly�%q\\u000b*\\u0013�\\u0004�H�V���҈�_*�\\u0000*�n\\u0004�օ���Z����:Lf�H��QΗ�:��,���6�E��Xmצ�u��\\u00027��p��q�+hg\\u000b�ƥ\\u0017M~��\\u000f��V�o؉=����c�mz��Ə?�0�<��Fo\\u0011�k\\u000b����<Ӳ�p�C��֭�<_%��\\t�X�d�\\u0002=�Ph1\\u0017p\\u000b����OϏ�����\\\\0�/�m}43A�<\\u001c�ЦLwh��\\u0000��J�@����`d�*��:\\t\\r�2�\\u0000��V����\\u0018���*�*\\u0017�)�P�n���r�>x�&RM�̑��$߽8(7\\u00166�@��w�*b\\\\��W!�\\u0015m=\\\\\\\">�\\u0012\\u0018\\u0015m\\u0013\\u0001�EF\\u0003�n�ՙ0<\\u0019\\u000b��L$\\r����`j�G\\u0012Lw�@o\\u001b�\\u0018!�e`l�|)\\u001c��!�R\\u001d�=\\u0001#ߧCT�l%!\\bȒ}?0�)~.>��FU\\u0018�cb\\u001c���4�>\\u000f\\u001f#>,i$\\\\\\\"<��T\\u0015S�,�w6�\\\\\\\"�Y\\\\>#q�?\\u0012c\\\\\\\"G�D���~\\f:��'\\u0015&7#Ȥ\\\\��$6b�����>\\u0015���\\u0003\\u001eg\\\\(�hGk�m�I5V\\u0007pd�Z�g>'�ŭ|�\\u000e\\u0013?Җ�p�Tq\\u0012��\\u001d�+\\u0011���\\u001d{|k/\\u0019`�X\\u0010�B\\u000fZ�>F$\\u001c��6e�36�\\u0013\\u001d�_r�\\u001d�}h~g\\u0012\\u001c�����\\u0016ǹ�\\u0005�P���Z�\\u0000�\\u0000��\\u001eB������\\u0016�����Ҟ/9�\\u001a`�y\\u0011� _i���{S,}����:�ڤG\\u0015�\\u0007Pv�����>?5#E\\u0017��nCm�$P\\u0019�����!k��/��\\u0002~w\\\\\\\"�m\\u0000�\\u001b��(� ͚�K36�ᾜk��\\u0007\\u0006ff�m��\\u0007��\\u0013�[�Jrq$�F��\\u000b���) ���ٲeܢ\\u0012Q�{Xj�Z�3�щH��ݭ�Z\\u0014k��i\\u001ci���Ok#�VX?.\\u0007�)�d\\u0007�\\u000bǀl\\u0015U\\u0010}\\u0000�;R��\\u0016lɌ���@\\u0016Mđ����f\\u0004S�\\u001c�\\\\\\\"H\\u0019\\u0000&�0��\\u000f�\\u0004�7!��򍠑q��zfGИ�����j���\\u0000�\\u000e\\u0017\\u001b���v�H�7\\u001e��\\u001e\\u001f\\u0012)af�+0-\\u001a\\u0016$\\u001e�A��1\\u0010ȜC��d���J�d�[28a+$��r�\\u0000���R�8�d�bX!��\\u0000p�F$��GfƢ҄��[\\u0014�9\\u001e��T\\u0002�&eI0@�xy�\\u000b�\\u0003�Y�E�J~�oS֭�';�i_\\u0015\\u00150�o\\u001cl��H�=��mk?\\fI6T�)\\b1uV&�\\u0002�5o\\u0019\\u0014�\\u0014�����\\\\�\\r���h�\\u00076\\u001e�9�%\\u001d����֡�1��6\\n�\\\\�Q��H��aѫ��Q�G�}d�*\\u0000�z�P�x�\\u001e0��t�sy�V.;\\u0013�j\\u000f\\u0007%�\\u00061\\u00112G�[i�\\u001f�+.21�Bn\\u0002\\u0016��|y]�\\u0015�q�l�����RDx��\\\\\\\"g1\\u001b�S�[u�j���ۢ��I\\u0018�\\u0014���n\\u001f��T�f.;H\\u001e$��[�d�\\b���v;�̪\\u001d1U�\\u0017b�UC6���D�����\\u0001'�����\\n�\\u0013\\\\\\\"��p'���ǆ8?u�le\\\\\\\"46ۯCK�F�\\u0013D��e\\u001e��қs̰�x�P�)P�i��/ҕ\\r��\\f�?��6+\\u001b��\\u001e���32$�³\\u0015���\\u0018���\\b=\\\\\\\"��rs�\\u0003��0�@\\u000b\\u00131:.�qEE�\\u001cJ���\\u0000\\u0002���Q��\\u001f����CO�U�n�\\u0001���Wʪ�lA��\\u000b=�r�?�\\u001c\\u0003� �UD\\u0013\\u001bS�d\\u0004cDi�\\u0018$�\\u0018�\\u0013G\\f��Ā���Z:�i�V����W�\\u0018Vi]�4f;\\u0013�u\\u0014��9\\fH�\\u001dD1Gr��R/��\\u0000*7�\\u0011����D\\u0006�t����j�)@C\\u0006h�\\u001cA�͇��\\f�\\t���2\\u0017�\\u000059NK$/�`G�y_}��\\\\j5�\\u0017\\u0007�dh�a\\u0014l\\u000e�Y��^�֬�E�#�3�\\u0019�3u*��C�ҟqs�ˇ<Y%q�@d\\u0012>�\\\\\\\"\\u0001���T\\u0019Yd\\u0007e�^\\f���\\u0007�*�Ź�$37*M\\u0007-��ņ�\\u0016\\b���\\u001b\\u0005��/�E$�1W\\u00066b\\u0015�]+���U@�\\u0015�\\u0018�RF���҃�>�\\u0019�c�4��y\\u0005�\\u0007K\\u001dzP\\u0005\\u0018��k�\\u0013�ƫ\\u0012��r\\u0011��_�B\\u0002��\\u0015$�1ݣ\\u0004��[jI�i?!\\u0006vT����F72/@\\u000e揕%���\\u0016A�\\u001e̦=H�\\u001b3ٮ;Wxy�\\\\\\\"\\u0012\\u001c�8B\\u001a����S\\\\\\u0013_ͭ�x�OQ�\\u001eG+c\\u001c7\\u0000\\u0016J��C\\u001egj\\u001b'��c��#l�A\\\\\\\"�\\u0005��(�0a㢺Y\\u0014\\u0001\\u0015���\\u001f\\u001aU��<�.\\u001c\\u0011~�v�u���/M00�)���\\u0000ȉn�Ip��e�zQc�.ڕ�\\u0006(��c\\u001d�\\u0017�zkCc�a��i��$�ɸ[\\u001f�G⣆_\\u001aA\\b���u�>��qm{P\\u001c���r$��)Y\\b�no���;�~�e��t0���]w\\u0000ߝX�I�=�3�lC!�ZUY��\\u001e��M��q�뷐\\u0019'\\\\\\\"�v\\u0005���VW2\\u001c�f\\\\b�ώ5�t�0�I�G��\\fa\\u0001vح�;�Ս�>$�(̈\\u00188�eb`\\f�\\u0014kkj-Pk3ӤE;��\\u0011-I�34��X�S�sKa�\\\\�E�N\\u001c�\\n\\u0010\\r���^�S,<Yp��ɕ\\u001dp��H�1���׮�\\u00066[�r26�S�a[�!�G�Jd�6k�c�]�\\nr\\\\���`�\\u0000*�P�$7\\u0003\\u001c�e��\\u0013��\\u0016&�\\u0000lcG*������Ir���\\bP�D`�2X;kҋ�,\\u000e�X��n\\u0003��N���a�9�?���$b�\\t\\u000fs�U�p��T�yТ��\\u001eu\\u001a)V\\u00021���P\\u0015[�鐥xN�MG�\\u0003�R�����4�t(�\\u001e�@��y\\u000b.znI\\u00143�I\\u001bFѯ��1�̌\\u0019>�K\\u001c���\\u001bk\\u0015:.����ed�d\\b�\\\\\\\"Ux��U���6�q��]��\\u0006k}ŌQ�|p#\\u0011b���\\u0007��U�m[�\\r�ܨ2�\\u000b�\\u000f��k�-�ߐs��\\u00116.N���\\u0000�d�������kqڮ�V|\\u00193|�dX�`I�.���~��\\u001e\\\\��ϲd9��\\u0002�>��fӥ����'\\u001f*,��x�\\n.���ԍ:��;\\u001diC#&<p\\u0018#\\u0004w�t��\\r��CC�fr@�\\u0015T\\u0001�,W�4���I�(�p\\u0004�H[y�{����G}���p\\fȫw\\u0003OK/�Wap�~~\\u0014yO�D�d�,�[v��vۻ���A��\\u0003�⚍�1!鷥��\\u0013Γ�^N_�.EyJ�!�\\u0018��^�\\u0000�ǋ:H#�\\r,{�N,\\u0003n�ӥ��+\\u001e\\u0001���ddK\\u001a��X�1�[����.W�u-�nB<��XV\\t���Q}�\\r-sҡY\\u0004/A+�6@\\u000eG�{�K8�jC\\u0010&�����Y�����\\u001cg�\\u0018w`{~58�rx��͏�Y\\u000bE��ڏ�^Ɓɍ�\\\\\\\"�|8^4PL�b\\t\\u0006�[���t��)��#��\\\\�?\\u0002;Uu�\\r�?\\u0016�\\r9p�ʊ��<l��\\u0010� (R=�>�Ã_7\\u001a��\\u0019v�}���/j�r��|���6�u�l:iZ�˛\\u001e\\u0014�8L�Rw*}_\\u0003�e����=�6��\\u0000#�@\\u0003J�Uѣ�\\\\\\\"})~.$�ˍ�a��ˁ�\\u0006\\fq�\\u0006�J�U��J�*T�R�J�*T�R�J�*T�R�J�*T�[�\\u0018T�B],\\u0002�\\u001f0�V\\u001a�x��9\\u0010I#�X0��E���\\u001aLU�D_\\u0017�B־\\\\,��Դ\\u001d�@v�Akin�R���9\\u0003��\\u0019\\u0018.+J\\u001aB�ۍ�?\\u0001L�\\u000b<2\\u0005\\u0016%H\\u001e��<�x[\\u0017j\\u0010\\u0017s\\u0004a��;\\u001a�#j�_�P��������\\u001c�#�\\u001c\\u001fm\\u0001����!��E�{�\\n\\t3��T��j\\n�ƙG�#�&J�k$�\\u0018\\\\\\\"�cp��\\n\\u001el$É�eiZP\\u001a�to�R��\\u0000����)�\\fv���GQ��ޑT�\\u0000��9�9\\u0004��\\u001d\\r1Ǔ\\u0019`I�\\f�*ۃi�����H�\\u0013 :�o\\u001a��w�\\u000fϭ5�q|�\\u0011>V�ݘ};�����l��7?n�̋�\\u0004�\\u0004\\u0003��\\u0000Mi�>a2��\\u001b\\u0006@\\u0001�$ߨ�s��V\\u0003,\\u0011��F\\r���י�)\\u0016Y\\u0014�E6�T\\u001d�,\\bP:�l������\\u000e3\\u001d\\u0014�n��iT$h\\rs�\\u0017&F�\\u0017�2�\\f\\u001f��/�\\u0003*F\\u0013�\\u0001E�G�w�ޙ���\\u0001\\u0001}�\\u001a��?΄�6?�\\t:^0�F��������?�¾9\\u0017�Y�\\nS�\\u0000w�\\u001c����.\\u0010���l����]�br�k�H��\\u0012�4�_z� ���\\u000e�\\u0000�Y&$�ܔ��%�X��\\u0000�v\\u0013�w̰���0�`�\\u001b[���\\t��.\\\\��4�鮭��w'\\u001e]?���\\r!��˃\\u001eLh�+\\u0014�Gq���z~�I�|hu�PUo�Q��)f?�FY��E\\u0010���;�,ָ\\u000bn���\\t;Wg\\u0003�\\b�5�C)���e�\\u0000�݂�\\u0019&�� ���(\\u001f�\\u0000�r�/\\u001a�uQ)\\u0004v7J���~3\\u000elVu,�\\u0012�_PU@4�����\\rY��\\\\�d¤i4i��{cQ��J\\u000f\\u0007�����Ǘo�ȂV\\u001d\\\\\\u0003޵��#\\bdbm`��\\u0012�o�W�qY�\\\\\\\"'��Eu+�E�:_�[�y\\u0002\\u0006M�ê�qr=��K�:���0�T\\n��H\\u001c�F��eha3H��-u�Gu�Q1��\\nd\\\\\\\"���*�YH�u�9��A�\\u0010�\\u001d��1Qqs�j\\u0005�\\u001eI,��\\u000bX+����V[X5����l�GW�xG�Agq�\\u000e\\u0011Eeߐ��A�\\u0006ޢ���ϛ\\f!N�\\u0017\\u001f۴�_@ʁD\\u0011��\\u0016 I=�5�d�S\\u0010���YGS���a�����ǒF�D�n:\\u001a��k\\u001f@z���\\u0011�q��`��\\u001b)\\u001f�\\u0013o�ҾW\\\\\\\"@�\\u0000l@X�{��si�^�_\\u0019�<n1\\u0010��8\\u0016\\u0002�\\u0013��F\\u000f�\\n#�e�\\u0006\\u0010\\r˔\\u0003�@����D�!���\\u0019>�ok��y\\u001c�hV5�vX\\u0011R8�n_j\\u001b�_��^�ry�m\\u0014`B��~��\\u001e��E�޲<��qz�ǯʕ�ȹ�Û,^�����g��\\u001e\\u0013\\u0012��F����z5\\u0005�����\\u0000/�U��}�\\f�\\\\\\\"L��M���w���KZ��x��\\u000b\\u00026�\\u0006�\\u000e��d8N8L͓8�)�\\u0012.\\u000b|�ڴ��X\\u0004N�H��.4\\u0014��?�#ֳy�W��?�\\u0000]�\\u001e\\\\\\f}�\\u0007$Je�<�?�\\\\\\\"J���\\u00024\\u0003�՜?1ǌ�<�f8�\\u001d�����\\b\\u0003Ҫ���\\u0016Tǘ�\\fT�[\\u001f�'P~4\\u0016~/�i#T#i����|V\\u0001����VdfO�Ύg�O߭9���\\u0017#\\u001e,\\u0011\\u0016<�D�\\u0002�\\u0004��)Y��`l�sk�X��\\u0006�u�+��%�S\\u0013&�(uM�u��7�[q�h\\u00062}�a����2�\\u0003�%��\\u001b�_ʶ2a\\\\8��r\\u0017&FN� Nď�,���%�7��5�6��>�F,�%�̗\\u0003MuS�xɸ���r\\u000e���s��hC\\u0011Ӯ�\\u0001�pqq��\\u0018F�R5*\\u000b2�}��_֭\\f��F��\\u0019<R��|n3\\u0000����}��\\u0010��\\u0002�\\u001f�=X�]}Mw����d��\\b%WK5�ۭ��U8y?tRT>�R6u���Z����\\b��元�\\u001dGcҩ]YM���}�s�aʹ\\u0006,�Ӝ\\u000e����i�C��\\u0012'��%Z���If'\\\\\\\"y1\\u0011Z\\u0011���Y�\\u0000R���z�>&\\u0007u|�fg ^�@׵��>T\\\\t�\\bhѝ\\u0010��+�5�\\frzΜ�@W\\u001dͅ��^�B�d�\\u0014/\\u001f�m�1�#\\\\\\\"C\\u0004�\\u0012\\\\\\\"�\\r\\u0017i��\\u001f��|U����#��\\u0015.z{Gʌ��\\u000b�b�\\u000b��x�A \\u0011�n�����8�j��u�h\\u0018\\u0015m&�u�b͕��nt(����ڈ�\\t�v�P\\u0011�\\u000f�=)nBE/\\u0017�.����\\r�҈08I\\u0014�C<l�oF���R���\\u001c1a�\\t\\u000e8�\\u0011����+\\u001a;�@\\u001b�g���>PC�AӦ\\r_�\\f�\\u0018�<~�\\u0014�Tw6����r���F�1P\\u0005͘-_�\\t�'�\\u0019M�����oq�ֆI|\\\\ԙ\\u0011ݜ�\\u000eX�{�w�\\u0014\\u0012v4�,s�O���_m>�g�\\u0006?\\u001b�=�\\u001d\\u0002\\u0012\\u0005ΧM={P\\u0003�A9�YJ��x���¸�I31�,Q���[��\\u001d6��C�62G�����04V�5�T�\\u0010Á\\u001aǭW�n �|���߶\\u000fV�\\u0004i�Q���K�U ��\\u00047_JU�N���\\b,��w4�is�R��\\\\o|�l��X(\\u0017,E�U�\\u0004��[�ۏkn��**ڪ�P\\u0000\\u0002��m�7�oo#\\u0012ē�sqև�0&��\\u0010\\u0016\\u0011���O��\\u0000�w�\\u00148�a�\\u001d��\\u001a0b�]�\\u001e�\\u0005Y��aϓ���4R�\\f��������zi����E\\t尥��\\t����t��[�����:��\\u0012���{S���\\u0019�6.�>?^\\u001a�|��\\u000eB�k\\u000b�؝\\u0018u��\\\\N\\u0003σ\\u000b<����\\u0000'O�Ɯ�=\\u001c�^fv�\\rO��\\u0000����'\\u001d�����62�D7�\\u0005\\u001d���L.���C�X\\u0015Y�a\\u0005z��p�i�\\u0005(ʆ\\\\~Bt�\\u000f*��\\r��\\u001dG�Q\\u0011�\\\\\\\"cG<�T���;���F�^6Ll���_3\\u0013���\\u001a4�O���\\t\\n�P1\\u001an\\u0004\\u000b�\\u0000J��$lu\\u001fZѓ$.0J�lb9�����\\u0006lO��\\u0014��,*Q�A�\\r�\\u001d{VVl�r�1H�9\\u0019�\\u000e�ۯ{�\\\\\\\"�\\u0007��3�&@A\\b��:7����\\u0014���#��ſ',�&�m��\\u0000��;\\f���Ґ��#�\\u0016�3��[|Uĸ\\u0003�vώ�^F#J\\u0013\\u0013�Lb�F���X\\u001e��)�T͏$r�+�#��5�p/���?�3cI��4]\\u0000\\u0000�\\b�ֈ�S3��\\u0018\\u000e�\\u001a\\u0014$Hu���m�\\u001f\\u0010\\u0006�\\\\�\\u0013��m�Ā�0v�����2�p�F\\u0011\\u0016M@\\u0005�ݦ�;S�X�\\u001f&)q]\\t�u�}�t�����N7�\\u00113�\\u0002����V\\u001e���.|l߹�Bc��l\\u0007ӯQ��A�I$��X�4��\\u0000_�\\u0005�ˈ��.�5�\\u001d[P\\u0007�}h�R\\u001c���&g��\\u001bR2\\n�����_���\\u001c�\\u0019cy${6�7�\\u0004[��=)�.j��Ȋ졃(?�\\u000f�ќ�/\\f�\\u0012̛nIQk_�Z��\\u0018�׆�\\u0011\\u0011Y�t\\u0018F5ĸ�8�\\u001a��q��p\\u000e;<6B4I*\\u0015\\u000fob�\\u001e�\\u000e�fFl���\\u000e$��\\u0012:�)fڍ���S)�&���\\r��T\\u0011q؃I�+���xV�����\\u0004�\\t*\\u0000\\u001c~�\\u0014q��ȽH��uV�H��3�ؕ\\u001b\\\\\\\"\\u0012�Ԗ�1�pz��z���d�\\u0001��'[\\\\nr4����|m�\\u0010�r��!O�(�>D���\\u001a@�\\u0017Db\\u0000t*u�Z��\\u0005Lhi�򲢗\\u0003#\\u0006\\u0016�\\u0013\\u0012$k΂Ï&\\u0019\\u00112�xL��v#��>��r�I<rC���z]論�\\u0000\\n���(��Q�\\u0014/#?�tz�I�qb~y\\u000e2\\u0014ĕ�k8�\\u0000�J�M�_�\\u0011f�B�i��Z�+g�IF\\u0016�,��\\u000f\\u0019��\\u0015��Y�\\u001e��\\u001as��;\\u001afN:\\u0004��hҁ�$}\\u0002�֙gp��491�yQm!�s{��J\\u0004d�M�񻤓\\u000f�\\u0001`m��ŋH!\\t֒��\\u0018���\\u0002 \\f\\u0013X<��6Nd�\\u0016T�\\\\\\\"{\\n\\u0011sq��[���eFM��\\u0005,\\u0005���n��8x��Ŏ\\u0019\\u001f(�Qop��a�SH�\\r��\\u0018dE��rΖ\\\\\\\"����)I\\u0012�t�S\\u0015��Z��\\u001fB���\\u001b]}M3�Y'�|�\\r�f\\u0000\\u0012,t맥u�\\u001b\\rr3\\u0010y-w(M���*��Ƈ�\\u0019c2�#`���/�\\u0007KPo\\u000eW#\\u0004��}�a�����)�#I�\\f�r\\u0016u\\u0018�\\u0006\\u000b\\u0006~\\u0013TI4����P�d�#\\u0017\\u0007m��ح���h�^@��f\\u0002�=Gμę�V&\\u0001�\\u000b�����\\u0017�P��$��|v��\\u0017�t!�\\u001f�(Q�3�\\u0015鏑:ϤV�1|b�y\\r���d\\bTZ9�\\u001a�Q\\u0011\\f��\\\\y�\\u0018��\\u0002�nǥ���r/�Σ\\u0018��'�Zߑ\\u0002����\\u00168\\u0001)\\u0011�v;�\\u001f�ɱ��\\fM1�y_kH�@�E�ڶ\\u0006��\\u001fJΙ1�@���7\\u0012��J�s@1ID\\r4�\\u000eJ�m��sU�bC,\\u001b�\\u0006�T\\u0000\\u0006��r��_��#\\u001f\\u0002���u�鶽oCq\\u0013c\\u001e>\\u0012W��.���?�CI�ey\\\\\\\"T.�JnN狀�g���pA�=j�<�ff�G��<0�U�\\\\���\\u0001�\\u0000֛��&;�\\u0007(\\tc\\\\u�\\u0010uM�kht�I���>,���\\u001e1i�~�#�k|{�J\\u001f���r1d�I�8�d�\\u0001�ۍ����4Z5�4�%#�D-�]\\u0005\\u0002��Ň3V�,��R�m��Óq\\u001d\\r�ޭ��'��\\u001f�_�k�\\u0017\\u001b����\\u001a�\\\\���l|��\\r� �C�\\u0015f_\\u001f�x�\\u0013{�G�.�jzu�\\rVF�� \\u0016b\\u0004��X\\u001c��\\u0006h�m���@G����&8?q*;�t'm�[��=j�W�yd��f�l\\u0011�\\u000b\\u0002G`\\b��g\\u0017�\\u0019ǎiY�L�uP,�6��<���(�m\\\\\\\"`\\u0007�S`zZ�1(�'S����\\u0012�\\u0012�\\u000e���=1̎>�e�cMyq��pO����\\\\��ǊM���țź��\\\\�I��\\u0004���r9��q�Zs���q�|a�ܦV��\\u0010\\u001dY\\u0007�]�\\u0018\\u000e_ύ'+[���\\n�H�v�P|\\\\�\\u001eEbY�\\\\\\\")r���Q��\\u0000�E�XW�\\u0013�(S&S�\\u0014�F�ĩ�\\u0000\\u001a�n7 �c6,\\f�\\u000b\\u0007TAf(E�\\u0000WsVK�\\u001eTѳ���˺6\\u001fI��f��1��_N\\u0002O�S�\\u001e\\u001c��l�����a�0�G:\\u0017\\u001eQ\\u001e:�\\u00056��@/�\\u001e���\\u000f&h\\u001d����+.���Ji�\\u000e? ���|J��M{^��(��;3�[��\\u0011͏c�@-22\\u001f�[���\\u0016\\u0004\\u0000�G�m���\\u0016܌�\\f�����\\u0004���Y\\\\s�\\u001cqF��L\\bI\\\\\\\"��M�˸\\u0003�M\\u0011)�\\u001f#\\u0011\\u0015\\u0004�v\\u0019��R��=((0����2���x�����`4\\u0015crR�\\u0017um����c��ʭ�M��\\u001e\\u0002����U<uL���\\\\\\\")'�x�L�!&�'��a�%�\\b�A 2�^㯨5�F\\u001e,/,�\\u00069�O\\u0013:6ˎ�\\u001e�J�\\u0000\\\\\\\"��ɘ\\u001c]� !Y��Z\\u001d\\u0007j\\u0004����.,d��JҀ�p\\u0017\\u0003M;�h%K\\\\:�\\rt�\\u0019|l�\\u0011�C�\\u0005��v���d�5W#�G���A#�\\u0011��\\t$�\\r�t4�L��\\u0019\\u00102\\u0019}�\\n��\\u0015�ǯ�vqp�L3!x��W\\u0007[���M}()3�.q�&i!RJ6�^��՘�\\u0003\\u0002iC3�F&l�\\u0005Ĳ��\\u0011�#\\\\p�\\u001f��x;\\t;�� ��t����!��\\u0019q#\\r�\\u001f\\u001c��\\n/b�\\u0007];�\\\\w'��~Hp\\u001aA\\u001b��mэ��a{u�K�r3�\\u0012-�X��?L���!ҩ1\\u0005bT���Z\\u001f�˒�UW\\u001a\\u001cb\\u0017��7֭�ʒ>BB�]3ϸ\\u0013m�����(�Ja�\\u0012?\\u000e4 \\u000b����W\\u00036\\f�g�,�+��$��v�>t�\\u001c�1'���T2)���o�U�mE=F\\u000e�DVl��cr%\\u0019@�\\u001fӤ[�I3q�\\\\�Y\\u000f�\\u0002�Q\\u0001�W���&���k� ��B�\\u001b]��[�\\u0000J7\\u0012uh�O\\u001eՑ\\u0000\\f��?�\\u0014���\\t\\\\�\\u0019\\n��>�G]�i��\\b\\u0002\\u000f��6���\\b)�K�\\u00069�|��s~�x|�\\u0011Ab��v��Z�y`�1�\\u0006\\u0007�r�_'��\\u000e���֩���y�@����b�$��]�t\\u0016�yL�)��q&h�D����_s����wS\\u001aD�1��Zm�&\\u000f��v��R�\\fL1SǍ1���\\\\\\f��/���A�5ӥ\\u0001��\\u001b���G�3r��\\u0005�Ϗv�kz\\r�G\\u001d\\u000f�r$���\\u0010\\u0000\\b��\\u0000�O������>4by�\\u0002�*\\u0005$h{Y\\u000f�Q�bm���Q��g�ڨ�8\\u0012(x�4ʉV0D�و��\\rm���C�2s3Zp�\\u001a��\\u00030\\u0005�'��\\u000fZ��\\u0019����N�\\u0001/�Ief]l|k�N�8���N\\u0014��{�n�:��T�� b\\u000e���@�/e]��-a6\\t,��χ���>UD�\\u0010��\\u0018�t:U��\\u001c\\b\\u0013!D�F��T\\u0012^�ѷ���?�+>8p��ʊ>$�jc�����u#-�@p�5��zw�3�UY�E�A�P���x��Q�\\\\!�\\u0005�i\\u0000U|^z�r&L\\u0000\\\\\\\"�.\\n�7���U����r���\\u0002\\u0002.�\\n\\u0007A���a�H�W0J73�=�{A��?�L��I+i��\\u0004�\\r�~��\\u000f\\u001b\\f͐���ci��hZ�*P�F�J�*T�R�J�*T�R�J�*T�R�J�*T�[A�\\u001a4�\\u0010v��V.�K7�\\u0012�\\u0015\\u0017e��\\u001d-D�5�\\u0013�(��Æ{�\\u00106�\\u001c=�d�2���]ߨ�O�\\f���\\u001b��\\u0000�Ŏ���I6^\\u0012ϐB���Hԝ�׬��G�坙���\\u001e3kY~���-V�\\u00115��|s��iP��[���J�qK\\u0000����\\u0000mu\\u001d͵\\u0017�U�F��\\u0002�};�\\u0000ZS�G\\u0006v�V�}��0�\\u001f���s���֛��\\u001a�>`�D�ᡬ\\u001eV3�3C_,H>���q.*\\b��\\u0016\\u0007ڤ\\u0016��_֨n2I!�ϱ��\\u001b�#������w'�-^�9�8�~4�C)��\\u0015H7+�綵`��Q\\u0006B\\t�\\t>�gjW�4��ѓb\\bW�����[��.dӝ��E\\u001e�\\u0000��j��\\rh\\u00193\\u001b�����\\u0010YT_A�~�z��2�5D��߯_�P�`\\u001e�n\\u001f/��g=�C\\fY���#I�I�\\u001aU1�R\\t?�e\\nn-n��ƺ�FǙ䍈hº\\u0013}��4��ۢ^�\\u000b�Y���\\u0003ު3��r\\u0001��I\\u001a\\u001d�:��H�v������<W)��� �v���6�*�:�m�u\\u001f���\\u0013귓j\\u00067\\u001f[\\u0005��nT��p�F�f\\u0000�>���GƏ��~K?\\u0013\\u001c!�\\u001c0yP\\u001f��\\u0016�����\\u000e��w�����9u΁l\\u000b{�v�}b��X��#\\u0012�Y�ڬ��G���h���\\u0014u7>�}ֿC�Uc�Ǻ;��rn������*0\\u0005[�uS~Ƣ��+&L��k������I�B\\u000e���\\n��b�&8d���E���T\\u0016=,k�1�nĂJ�e\\u0003�\\u001f�0�Fʗ�(2N\\u0003\\u0001m\\u0014\\u000e�*\\u0005]\\u0007*wxb|�.\\u00194��\\u00109�\\u000b'\\u000en;0E2�(���W\\u0017��-1�*\\u0005\\re�./^�ӟÅ��1\\u001b�$�\\u0001>�{��Sq�\\u0010.D��N��\\u0006�b*�+D�v��\\u0002|�\\u001f��u���H�+Y�{%g���{�Cr��%o����<�L\\u00180��WEU�߭,�+$\\u001b�3��J\\b�H�\\u000b���{\\u001d5��.nI�r\\u00048-�c`w�\\u0001�G���\\u001dj���\\u0001����D�Td%{0r\\u001e|��Kq��!\\t�LyWr�@X)\\u001a�ͨL`��H�\\u0000�B9�rl+�O���\\u0006o�gY�/�eP���}E?�\\u0018�x�\\u0015\\nI6���:^�j���s�ym�\\u001a��\\n�*V���q9,w \\u0002ޠ\\u0011��Q?�բ�NJQhb6W ��}��\\u0000nݩ�W\\u001b,�4s!\\u000b������P\\u000f\\u001eX�@���\\u001aG\\u0001�Si\\u0004�=lj\\u0004r� ���j��/\\u0018�\\u0003w\\u0019\\bES\\u0013����#Ɍ�=�|x��Vm7n\\u001a����V��eI��\\u0012Y��\\u0017��ޙM�\\u001bcK���\\u0017��3�w\\u0004���J�i����XK����E���Tǩ����b��.B�d.\\u0002]#�q�O�\\u0002\\u0018\\u0016\\u0018�\\u0015@A�S,(\\fP�o����4\\u0004��}'i\\u0006��S<>I�\\\\K�\\u0002J�-{Y�~w�\\u001a\\u001a�\\u001c�\\u0003��sIc����<�����X�����c\\u001b[�M��~:ə\\u001b5�E@y\\u0017�kj�l�8d��x!wg\\u0011�ʮ��|j��tɝ0��]�a�YzZ�\\u0016\\u000e��'ޞ��T����m]��\\\\\\\"�\\u0013���rT�;\\u0004%��Bz��E��H`�d\\u001b�\\u001b���\\u0003��(dڀ�yb,:��\\u0005��\\\\l�h���\\u0010\\u0003*���U�Pdy\\u0002\\u0018q�\\u0019r��a\\u0000��\\u001d9�Y�r��^L��#\\u001a\\u0016\\u0001��E'�|i쌣�Y�1����RE�v�\\f.A=��\\u0015���\\u0003!e��\\u001d�@�\\u0006�}oCgo���\\u001d�,q�P\\u0005�Wgӷ�[A���\\u001aNL��6>ڌ�\\u000bZd\\u001ec���Y�\\t�E\\u001e�\\ff�/��=�E�M��L��\\u0006H�lN��A��֓\\\\\\\"64S\\u0004\\u0001������?ƀ��M��z�*H�֌ʹ\\u0016�\\u001dJB�c��2_�Ǘ\\\\\\\"%���p��n�t;{\\u001bQ�F(8X�B̌��\\u0000�yw�$��[}�%��Q����y\\u000e.)\\u0004%#���\\u0013��D��\\u000et���&\\u0000qc�n�x�\\f��$�K������H���ݯΫ�G\\u0016t1\\u0016fLv2J�z�U���M�i\\t�����X8\\u0000���X��HPJ\\u001a�M�nF��~t\\u0011\\fĳA�p�[��\\u0002�崆\\u0000�\\u000e��Zp�ǖ��\\\\\\\"��\\\\.���JU��d��m�/\\\\\\\"�H�\\u001dA���-��g��<Gp?�h���iu���Gf֭d�\\u001c�\\u000e\\u001b\\b\\\\�\\u001d�\\u0019c����\\u000e\\u0013��\\u0012\\u001f\\u0013�F�r�\\u001e�t��ڇƇ#+%�\\bٞVb\\u0015u���kֽ�8g�iP̋\\f��%\\u001d@��#�1��^\\t\\u0003�3,�#8:\\u000b�6ߵ\\u000b\\t\\u0010g^5�\\u001e\\\\H�:5��\\u001bh\\u000eK\\u000b?\\u0011VX�d�If�tV\\u0003O��o�����<��L�\\u0000�(��#�q�zӞC�\\\\��� S`��u�m\\u0014W<|x�F�B�~��2\\u001dK\\u001b�-�5�|�U��\\u0007��LX�0KK.\\b�r.���d�O+n\\u0000���*�g�\\u0005�\\u0012�o��ƃ�_� �2h�F�)���\\u000b\\u0002G�SN\\rbuyQ��}��\\u0017\\nlF�\\u001a$\\n�\\u0011�O�U�f8�*\\u0018\\r\\u0007�ן�e�I��,�Lv- ��U;��w������\\\\\\\"�w&4\\u0001LJE�\\u0016>�#�PyR��?\\u0019�!/\\u0017� \\u0016Y5&ƭ���3Ǒ\\u0011P\\u0014m�z����@�D���\\u0015x��r-��,خ�7\\u0006�Nd�E}����(�I�\\u0012;�@L�\\u001d����s�e��Y���̻/�\\u000f�A \\u000b���ۊXp1L�'�&-+X\\\\���\\n\\u0013�r�!O�����x��\\u0000�#%�i�M�F\\\\\\u0013\\bJ\\u0014e�c�\\u0004i]ŝ\\u0014\\\\3B\\u001bt�Lq�vw7\\u0016��Y������H�+FN�V:��Y�,<����T�fݸ�ښ``�����L8C�Bǧ\\u000eR��E�Ւc�Ɍ��\\u0006�v\\u0013����Ҷ��\\u001d6\\u0002�%�\\u001fYU��\\u0002,/��i\\\\<d�2�6���)�\\u0002�6���\\u0007:E��b����N�C������u�B��L�$��[ff��>:ƚ�\\u0015�4�<H�H�E�\\u0019��c�%\\b��z���d��\\u000e��K\\b7 �kk�v֯��Oو�\\u0011c��hǩ����ڻ�E�\\u0011�\\u0004�\\u0012(i\\u0016�܋�=�z7���w'j\\u0013�fϗ<��T��y���C�\\u0000 �f+�)��U\\n\\u0018��m���Y�~\\u00148�)$��Q�\\u0000t��=\\u0000҈Li����\\u001d�m�\\u0000���/�\\u001bt\\\\\\\"��\\u0003�򼼉�$Q���QJ\\u0013�:�J��\\u000e�5\\u0014x�\\u0000�dS�f\\\\lIꎟ�\\u001fҦ)1@��,�:�\\u0000®����\\u0013;�\\u0005���\\u000b5�\\u0003\\u001d\\u0005�WA!��dʉ�x?�\\u0003rI�u#�=�^\\u0016L��I\\\\\\\"\\n��)%$-��Ԏ��L����v\\u001b���1fRq��\\b\\u0004衽����43&\\f�\\u001b�3]f$�V\\u001f��+�c��)!\\\\T�I@�2\\u0005�S{Ym�`��ÞW�&�B��'p\\u0000{��E$��\\u0018�f�r�\\u00026��b=��h��f�V\\f�.�`V}\\\\s��Zu��9�����Y�-���s�W�\\u0013��F\\\\\\\"�\\u0001v�\\u0012G6Q{�Ӿ�\\u0016')��HZ?7�v�]\\u0018\\u001bu��l\\u00126�A�[���7��*0K,���e\\u00183;:<\\u001d�*�\\u0004h�=l�$�M��v���~&��>J�\\u0000\\\\\\\"�\\u001a�Ȣ3�(�[�DbdG:��\\u0013\\u0005�\\u001c1xI�)�1�,�6y\\u0006�3����������\\u0003\\f�OT�\\u000ecJj!�\\u001dV��d\\u000f*�׹�\\u0004��\\u0013A��2\\u000e\\nb�ȩ\\\\\\\"�wm\\\\ �;�:�Ҿ#\\u0006X�4=� �u���Za��I�E(d)\\u0010]I�m���}�X\\u0017ک����\\u0002X\\rc]xV|�U�c�w�+\\u001d�F�良�%\\u00166V��P��v��ռ�3�NH�Y\\u0001h�A/��ň���qG;H�pϒ\\u001c�\\u0014�u#��m(�\\u0017+#\\u001f��X�\\t�$���{�`\\u000fK\\u001dij�\\u0018{GS�7s��|�#\\u0017p�i:�z\\\\ \\r9{��,VR�n`�\\u0002�k�\\u0000�L�r1 s\\b%\\u0003�\\u001b��4�!���d�\\n�,�3����?\\u0001�Ad�ĪeJ���\\f\\fk��\\\\\\u0015\\u0006���dh,\\u0015\\u001a>$ɶ�7��6&�_+bv ���\\\\s�j\\\\9\\f\\\\I�\\u0010���#��\\u0016��o��NT�}�آ��\\u0003���n��q�I`ǒh��ڍcН,�\\u001e��k ̓21�j2��ň7��VR�Y\\rp;Iڹ\\u0018��ҹ\\u0015���\\u000f�ǁ�ӕ,̊T�!\\u001c�9\\u0018鷮�[S��\\u001eI��ʒ6)e�I��#��γ2ɟ>�\\u0018��sn�\\u0004[��1\\u001eH#9e�Yq��\\u0001Ա�-��j����`/�W]=���.'eT�$�ɓHo]6�?�Oڼ��'��\\u001fO�#\\r���t���=0p<\\u0019\\r$�8$����t[t��\\r\\\\\\\"ʘ��J\\u001b����\\u0002N�\\u000b\\u000e�|3fd�HL~8�*;�������I�@�z���(�\\u0018��}����z���-\\u0016G\\u001d&bf$����R\\u0003F�v�}��j�\\fH���'��;����J\\u0013��]�\\u00020U\\u0004�nt\\u001d�]�/\\u000f&\\u0005��\\u0014��/}�u!u�JY\\u0004����a�q�Z\\u001e���\\u0013ɳ2d_ۘ�\\u001f��(�f\\f/�2��r\\u0011e��Y���E�F|pq�'�\\u0012*������{��1��>�& ���~حg��[�׵;\\\\C&\\u001c#.?\\u001d�\\u0006�\\u0011�6�M������Ռ��\\u0000\\u001d\\u0011W9lY�.N�u��μ�4|�sL�/\\u0003m%[۰�]��M\\u0011��6L�A�\\\\\\\"��Fc�\\u0002m��Gq�\\u0000�\\u0006D��6HH\\u0014{:\\\\\\u0010.�N�\\u000f�-Ś<~o#\\u001e0&ƝCD�eT\\u0006ߞ�P�\\\\\\\"\\u0017m\\\\\\\"���\\u0002�|=x���K/�>�(ɸ��\\u0005��|�܆�/�(>Vh��q�.�\\u0004�I�m\\u0004��ڊ�2�\\b\\u0006DK�\\u0017[7��l�\\f�0>���\\u001dw�\\u0016\\u0004��޶�\\u0018±o�ˬ��^9ɕU��<y\\u0001]�NښjyNXqhc�\\u001d�\\f��\\u0005��?\\r(x0�\\u0003$y�\\r�\\u0012�>�v��ۏ}{S\\u0018'�l(��\\u0014��?}[K�Ca�i\\u0013���\\u0004�O$��dgk\\u000fkn�J;\\u0003Q�^�/���lkN,yN7Øa�vK�;\\u0006\\f\\\\\\\"-���p��g�x�f��o�.omOz�7���\\u0000��h���ͳB��4�ǽp�1�C��\\u0019fk�*�@\\u0015�bK�$�\\u0019�_&(�w�vS�ooz�2�$-���Y{\\f�3\\f��aB�\\u0019����j�\\f���6+M*�%\\u0018\\\\ݮv�{ڋ�\\u0006ǂ\\\\I�%����mm.=iV\\u001e.l�K�\\u0012ݞ�\\bѝ��\\\\CǼ�\\u001c��63nw\\u0000n�A�\\u0012M�-V��F�N1K\\u000e��S\\\\\\\"\\u0010�.`�n��a��R&NLn\\b���\\u0014�n]Z�n?�j�ps��\\u001f\\\\\\\"\\u001de�7�#��aa��w�p9�RLX#ڲ\\u0005VQq� \\u0012o��J�~jI�L\\fH�y\\u0012\\u0012�;\\u0011�P/k[��\\u0004nN�E\\u000eKϑ�\\u000bJ�u3\\u001d�a��\\u001b�� ��$�\\u001b\\u000e�\\u000bt�RU�:,$�\\\\�P�:{�g$�JU����\\u000b��\\r\\u0015$�V?�����$j�-�����kh\\u001b���z���#.\\u0012��Dˊ\\u001a���9����l�x��\\u0001\\u001b\\\\\\\"#ȋ�]��\\u000f���#&L�煊��7PP\\u0015�\\u001e�:�\\\\��˖i�v�(�\\u0017E���q��֎Y1_\\u0013\\u001f�G�4*\\u0017���kި̙0=)�n4\\f1�|��$i����\\\\W �\\u001aRdVFM�������Ky<�3��\\u0016beƁ\\u0003���\\u001a\\u0000>U\\\\��c���\\te��n�$\\u0002;��s�$\\u0018�C\\\\\\\"�#������F�� �0F����w\\u0014ú�� \\\\\\\"\\u0013q#]�҃��\\u0003\\u001e(\\u001f`e��@A���~ܱN쬬\\nʌ,���=-ޚf��Í����\\u0004�--�]m��[�^ag̙r�\\u0004G\\u0012\\u001f\\u0019r.F��ʨ�7\\u001e&ݸ�����\\u0003��vB������&G\\u0007��s)������\\\\\\\"�m\\u0003� �Z��y'\\u001d�+�e.�2�2�\\t�Qn��S�#�\\u0019P~ڪ���\\u0012�:���\\u0012\\u0018\\\\\\\"r�Lʹ�u#���\\r$\\u0010?\\u001a���3��n�MeH\\u0003~`׹�\\u0018�2bFI�W���w��,q$\\u0018�\\\\\\\"�\\r�7{X�\\u0016�^�;7��M��|]\\u0015\\u0019F�U��G�\\r�\\fo*��\\u0017\\\\��P�,A7����~��e���j�\\u000fuS��Ă$�=L\\b<�4n_\\u001ep�Y`K�i�GV�QK\\u001b\\u001aI�x%�w2����\\u0006��ufG3�3B��Xت�}̣��Ҏ\\u00110�\\u001a�H�a2y\\u0018�������8W!�yЖ�\\u0013�N���\\\\\\u0018\\u0002�Lo8�;�6������}>�D�y9(!�\\u000f\\u001a+ܑc�Ћ�A������\\n�)��n[~]��N(_��ȒQ6TrF�V����w�sg�U�o�\\\\��|?�b\\u0002C|\\t&��&DLX�7�8�l`,���wT�׍\\u0006�V#a�,��*�T��H=,5�՜��}Ԟ\\u001d�0l������1bA\\u000eB$%\\u0001)\\u0014�\\u0001�z\\u0013��V[�����\\\\\\\"�\\t\\u0004m$��\\u001a�<K[\\u0007mz����\\u0012K��l%z��~\\u0000\\u0019��T�CO�R�J�*T�R�J�*T�R�J�*T�R�J�*V�\\u001ek\\u0007��x�E�v��[�&�\\u000e�J\\u0002v\\u0013r��(��ړ�\\u000fp\\rb=\\u0001�޶|\\u001f-�8��0�R��\\u0012\\u001c�[~t\\u001eN\\u0016w%�\\u0004�c\\\\\\\"\\u000f�\\u001bD�7��j����I���\\u0004�|b��\\ro�x�/�+\\u000b���>=��\\f!�5��<�ŕ�;nV�uނ�NB,��X\\fpE�J\\u000f���oZg��2���\\u0006���t��s4����ٱp:���\\u000b�\\u0019�B��\\\\��v����\\u000bV�eq�����\\u000f#�Br�<1�cC {� \\u001f�ΫÒY��\\u0010��C\\u0010���������P;���E\\u0000X\\u0005��}oB��P\\u0006���\\u001dh\\u0018)i�vӅi��¸�,�|���j\\u001a83!UYT\\u0010\\u0014na�m�ߕx3,dQе�6#���\\u001d�����������^1�ŏm��K� [�4\\u0003\\u0015���z+��܄!n}:n��z%�Iy7��K�\\u0004\\u0002ޭ��'�L�c*!tk�\\u0012�\\\\\\u001dz\\\\��(�`�6+�\\u0004]\\u0002�����\\u001c�Ί\\u000e�g(��J�Sa�\\u0005\\u0012:32�,�����͋\\u0002�+be���\\u0000����Q�Α\\u001c�km$[�E�U�$����j�\\u001e���\\u0007=�Ύ\\\\��\\u0016H.\\\\\\\"�G�j��1����F7��x��E��\\\\\\\"�����[\\b5��~�\\u0005a����b�A��X�/\\u0010k�v�Q�Z���\\u001b\\u0012o\\u001bn\\u0002��R�W/���\\u000f�>9�����\\u0000�s܀[AY�����R#�뱐�\\u0011�[�Z �\\u000fCưd��@ȅS ���\\u001e�֓\\u000e,�\\u000f�Ζ��\\u001f�kD��P\\u001b�\\u000fН\\u0003\\r,OƱ���&CJ�U\\u001dvI\\u0012�\\u0011����a�X\\u000f\\u001aK�l*Ah�6��t�\\u0000\\u001a�~�\\u000f'�(\\u0011�,OȍD򠿒dK#�B�U\\u0016�'�\\u0006åU��\\u0004�\\u0017�0\\u0016�\\u001dʷ�i]rlٓ�v��챃�*�\\u0017�C�\\\\\\\"��C�w47I&=5�8�W\\n&����`��yӯ��&;I\\r�P�d��ԃ��Sҽ�rc�*LI<2LL��\\u0010�\\u001e�\\u001f�W�\\u0019`��,PJ,�K\\u0011��s�\\u0003?\\u0014�G \\bX#�N�̺Q �w\\u0014��{�n_�e�1;\\u0006�K�y\\u0019ܣ�B�\\blB\\u0011����N����\\u0017\\u000e!\\u000e�m�G������+5��\\u0011ˊ9݅�oam\\u0010\\u001dO����\\t\\u001cK>;3 `\\u001b~�of���DC\\u0000tc�jk^TN֊���`G�9QRK\\u0016V\\u0011l��\\u0005Y\\\\\\\"\\u001b��B\\u000f�_�(߆�\\u0013)\\u0016`V\\u0015-`_���X��#?��O�\\u0004�j����\\\\$0>LP�2J��\\u0007]H�\\u0013�a�(��;�\\\\�\\u00035�AH�\\f�\\\\�S�W�(\\u0003�.O{w��|�e�7\\u0011�n\\f�\\u0016�\\u0001\\u0004_�Fv\\u0018A\\u001c���*��/���]O$�&,�\\u0011�(�\\u000f \\u0006ְ�z[2��\\u001f�9���TA�\\tT�{�DA#�<����\\u0010��\\u001b\\u0013`o�\\u0000\\n��WǒX�\\u00068�[t�M�i|�qfd���B�)k�z���ͅ\\u0014��\\u0011c*��\\r�ѝ\\u000e��\\u0012��\\u0019�\\u0014U|���\\u001a�5�Ir��U\\u0017;��x�f��\\u001fn�G�ﾶ\\u001a^ߍQ���\\u0012�wlDb�O�\\u0003��� �\\u001eH�;|�(q��!���/H�ἅ\\u001c61]�,�3*�k\\t�\\u001bO\\u001a)q\\u0000��\\u001b��`��k�4T(�@�}�}��k��s��G���s�\\u0000mqvӧ³�r|��rD\\u0014\\u0019$B\\u0015���X��h���:p�g��y92\\fȡ�\\u0013A��r:�i�\\u001cYy\\u0013K60*����@�kГ������\\u0013n+q�\\f�R8�8Y\\u0012�\\u001b��v�\\fb���ڲ�WL�Ϻo�g$�ى:��L\\u0002؞5XW��H�q�D|��\\u0014\\\\\\b_�Gը\\r�A޺S��8x�\\u0012�PP,E�\\u001bМZeǞ������{\\u0011���w�3�.G�Q�i�\\u0003`\\r�\\u000e��\\u0006?�Z�\\u001b�\\b&\\u001b���sZ\\\\�3D�\\u0005G\\u000e�\\u0015k\\u0011�_�YX\\u000e�ᬝJ��.~\\u0016���,\\u0018\\u0011�D�\\\\�\\u0000L@�$�L�'��9!Ԅڻ@��\\u001d>t6)e�[`V�\\u0006j�gɅ�`�\\u001d맂�\\u0000Zm'-�����\\u0011�\\u000eC#\\b���}\\u001ak�G\\u000b�\\u0015$��U��,:��\\u0005�\\u0000�P��$m�Q\\\\~��1����L�\\u0011Y�7H�\\fd���44!V��ΆB�΁T���|��\\bѷ\\u001b�#�\\u0002�V\\u0004�}��\\u0000�&�_��s�B��ܪ�f���c�C\\u001ek$���\\u0001\\u0011�[�뫸���U�X�����G�������`�,\\u001f���0��I��\\u0011.�[Z���)��\\u0000vqL+4l\\u0001\\tr�\\u0011qp����2�\\u001c�������b���ǵ�)�/\\u0013����f:\\u000eGa\\t1'���d\\u001d����![Uc]��ƹ\\u0013\\u001b�:�(0�d�4?Z\\u0016|Y��r\\u00157&����I��\\u000fa\\\\A'۳8]\\\\\\u0012o߽U�f�6��o�H/�v\\u0015Ի�\\u0004�\\u0000�}����/KtW\\u0005\\\\\\u0006\\u001c�6<ψ#�g�x��x�9P�sx���D\\b�_���G�#��A�\\u0017\\\\\\\"YrH*d}\\u0007p�\\u0000QAǁ$�M�\\u0000p���g\\u001e�b,�p�g}��_A�N��Y\\u001c\\u0004@�\\u0015���Er%�6���WG��ܹ�~��n\\u0016*\\u0002���V\\u0018BE �7�mlW�I��1s\\u0018�\\u0010\\r��\\\\\\\"�B�\\u0007k��zS.C%�)رD4A\\u001f�B��:��B�E�~��x1f̓\\u0012�c9\\u0010%�l�5��J���!1��!eWy\\t'�[�\\u0000顪yy%�a�W}����r=�\\u001a\\f\\\\\\\"�X\\u001f\\u001b5�16�WG�6r.D�4�\\u000b�\\u000b\\u0005\\u001d��\\u0013R�\\u0001a�*����S�`m\\r�Cae�B$1�|P�e���q��먉��Ic�iX9\\r��\\u001d�hN2I��T蠑\\\\\\\"X]�ԩ������Q*:��\\u0002�HSe�\\u0011®\\u0004\\u0003�Sr���\\u0000�T�\\u0003�j/*i��F�\\u0012\\u0014��\\r�=�W�\\u0011Yw�;�X^�\\n6X��L� WE\\u0001\\u0005Ƥ��_Z�\\u0015��\\b\\u001dG��CmE���ڈ�q+�Ěŏ\\u001d�^���}��1\\u001f�G=i\\u00074�\\u0000#�J���c\\\\�\\u000f�0᧟3)�V$�.�{�\\u001d��|�\\u0011&\\u0006t�c�H\\u001cy\\u0010��u\\u001f�\\u0015��rg.�7DQ�\\u001f�UA�}�[��!(�ӊ$���S�q�,�qg\\n7��\\\\��zR�G��fY�\\u000bG�Lo-�\\u0014\\u001dn\\u0007ϭ[��E\\u0016t\\u0018�\\u0004�J\\tߠU��\\u0012\\u0000��I�\\u001b+#\\\\\\\"D/�\\u0004v\\u0011�\\u001dH��a�sY�a��;�W\\u001c]��'�4ː�Ǟi2bb�5�c�\\u0000m��[��<d���\\u0018�%x�\\u0011�����S\\u001cn&!�@�����j�n&�z��幒C������\\\\\\\"C#�RU@P��zXw\\u000f\\f�8\\u0011�kTC��\\u0019z����c]?�y����χ\\bf�����S��\\u0000-(^b\\u0004�\\u0011�Aw�T#��\\\\U��~\\t1��H����\\r�9\\u0017�ӥNS:\\taD�\\u00129\\u0001Yb��\\u0003��I\\u0003��K˅����A���\\u000f��;>\\u0007�2 \\u001d�0v���O���%�\\u0018��H�T3\\u0000,�}H�\\u0000\\u001aa�\\u000e>f4o$w2\\u000f #K\\u0002=Er��\\u001d��%L�ΚM�H\\\\\\\"�\\u0006��WҖ�f�93��\\u0004[��Fk.�7\\n�}+E�S�q�`ʚ͎�!ш�7\\u0001Ƈ��[�yg��Far��(#��[\\u0011�F\\u0000�9\\u000f\\u001a��x#}J�V �\\u001f\\n\\\\\\\".MS|�\\u00019\\f��^���ʓ�\\u0000Ւ�#˓uǱ��M-KFWI�J��V���#�a�X��YR5\\u001fN|��~\\\\\\\"\\f�\\u0018r3�1�B��ܠ�\\u0012�q]Gό  �2cO�W���K�L\\\\Yx�\\u001d�e�ƌ\\f�\\u0010��r4o�WY��EǤ��\\r���R/�^�Q�V\\u000eƔ�\\u000ef`��cV�c@\\u000f9�L\\u0013�\\u0013�\\u0017�\\u0019X7�;�}�\\r��P�RE��$�\\b�P\\\\\\\"��6\\u0006��q���NW\\u001d7\\u0013\\u0014S���d,�pmOn��ݟ�d><\\u0010��+�\\fjX�\\r�֪-7\\u0016�򦧏������܁�\\u001a����\\u0019㓔�o4R�\\u0010\\u0004\\u0002��O�\\u0006җdr\\u0018��T,j\\u0018�?Vߐ��ƞ<���tt:����\\u0003FD��+�\\\\\\\"\\u001b\\u0005���i�?�J�9\\\\\\\"�t\\u0010gz7�\\u0000ל�a�M\\u0000�Z%�Ix��B���am�t��ҁ�Cc��K#�se�\\u001a_����iLX'�s2E\\u0010�\\u0005̀�\\u0015�ś��ʟ+6[0��a���-��\\u0001`�-�\\u0014uO>\\u0015^?�0���2�u�����\\u001aϵ6�_\\u0017����Y^\\u0002�O��=�~F�Β\\u000eG�\\u0002�Dt��ځ��Yu�Ƹi���H�\\u0006%�_!�H^�h�\\\\gǓ��\\u001b��&C ]�J�$�*uֈ4\\u0012����\\u0012�r\\u001b2��y�����\\u0010(�ɐ\\u0013\\u001e�k�F7$ioZ���ɋ�G���5��Xo\\u000b{\\u0002�z\\n�y���,aY�\\u0005�ݶ��\\u001bw�r�Tٚ��\\u0000)��\\u0000𚫘\\te$�\\u0011�Θ�.\\u0006=�ȸՕ�\\u0007$��\\u001d+��י�d��&N�)ʴ��w(:\\u0005?�r�,��r�r��/\\u0004D���/�ʇ(�@n�-\\u001fq���X�8\\u0013HM��3���$Q�?SY�o �L*!�M@��M(�1�s\\u0010�Q�36�%ϧO�\\u0019�2<�\\f�eƃڌ����\\u0010{�I�0\\u001f\\u0000ʘ�^+\\u000b�n���}-�ښ̳�\\u000b�v˴_a�����U\\t0d�`q�\\u0014Y��\\u0001`��\\u000b��Z')D�^6��ׯSށ2G�#\\u0019\\\\\\\"�����\\u001d7��Ə�(�\\u0003\\u001b$�1]��\\n0m���\\u0007���F\\u000e\\u0012�9\\bb1\\u0007p�\\r���\\\\\\\"����V�\\u0011��8�\\u00058%\\u0006K�F[WS\\u001b���U���A�\\u0013t��#\\u000fh�}���5#{E\\u0015�\\u0014\\r�%�iރ���\\u0019�X��`dg�7}�(\\u001a3\\u001f��鴙\\u0018�PK�\\u0013�$jZ��{kkҲedp\\u0006'� \\u0002�\\u0006٦�\\u0014�‹�\\u001b�̩���]==��N!��|��@\\\\\\\"g\\r\\u0000\\u00166C�OO����F���TQ�[n=v�Fܔ�qQ�.��,��:jM�Q��M?�r��XS�\\u0013�y\\u0011�\\u0005�F�����ڮ�'\\u00182H��\\nq�����(��\\u0019H՛j_���G���q�D�\\n]\\n��Ζ���ry�~.O1�X�\\u0014�*�vj�M\\u0006�ԋ2^S-#�$eDZO���\\u0001F��N���e�qͿ+\\u0018��\\u0016��0�F\\u001a\\u0010X�(��� \\rgz[;\\faq�\\t��4'}����s�Uc]�қ#����ڂ�͋�\\fl�:9u��׮�^��\\u0013�:�\\u0010�\\u0018I\\u001e����\\u0014�Pbbo�\\u001a��\\u001e��QH��H�z�>\\u0010�Tv�2��\\t�+C���{���\\f��\\u0007�X��^�O��\\\\�D�8�\\n�쥃86m\\u0006�=*�/\\u001c�d�Dm0$�5Kk�|)�\\u000e�/�+��QK+\\u001bh\\u0000 ~G�Q\\u000eX\\u0012I�����1�\\n�V$��7i��L)�\\u001e-�ds�#4m!;��%:\\u001a\\u000e\\u0014�<�\\f\\u0019�qج[��Ktk\\u000e�3��N2\\u00198�<��2?�^-4c��u]�)�ɕ e�\\u0017D6f��5=�6UR/e_s\\u001aTo\\u001fȱ��Ǒ��AD�}�:I�I\\u001c�F�\\u0002I\\u001f�m.ߦ��\\u0011�E$3$�\\u001e���ۅŖ�=*�+\\u001e)��y�3K��K�\\\\�M}oDː�`�\\u0015B�c\\u0018#_j��\\n)�`.�aJ�1O\\fBNN�>M \\u001e<6������\\u0018��D(�$`\\u0019ʵ�\\u0017�ª�,\\\\����T�%�2h=7ڪe̓;\\u001c\\u0004���WU��cp@�u�\\u000f*㷛-�3\\u001fAm�U����5`�\\u0005�:��Lɏ�f\\u0015�褫\\u0006��t�F�fg�¶4��Q\\u001d�1\\u0005��pwu�\\u0001�,�P��\\u0013�H�|�\\u001dX�6\\u0004���wȌ�t�\\u001cv14>1��\\u0005���E�I�y'��\\u000b\\u0018\\r-��M�m'�� \\u0012n\\u0010\\u0014\\u0002����NC�\\u0016ǐ>|��n�\\u0017�����\\ty_�4}d*-�\\u0000�@�dam9\\u0018�\\\\\\\"O+.����l�׶�>4_\\u000f����$BHĮ�������Ar�|^LA\\u0013�\\\\\\\"\\u0019@�Đ/ko�zQ���=k>2\\u0017)L�;M��\\u00105�a1�S\\u0006|H��nͿco\\u001a�\\u0000��گ���3��>R�ț�\\bJ��ϥU��A��.?�]��F�?��\\u001a�\\u001f�汰���Đƞ\\u0002\\bV��n��҇&@��\\u0017��?����\\u0007UW��\\u001a~���J]�$���\\\\\\\"�#�����\\u0013��\\u0013���7<��z4�}�D\\u000b0��ζ�_��U|d�)d�H�^\\u0007-%Ɩ}W��S���)�X�Y\\f�6f\\u0016\\n�A\\u001d���\\u0016�;�7��{��*\\u0017��\\u000e��\\u0005�m\\u0006��?\\r�#!ݑ�mtb�N��ao����0f��s2�{�(�[����̬��\\u0016h�\\u001eYQ����\\r��\\r��h��\\u0006_\\u000e\\u0002H\\u000b\\u000b�uR�7뮟:\\u0012���6�;ִ͗\\u0014c\\n]�H�q�$~a�ҹ�\\u0018\\u0019Y1�6����H6���{\\n�s#\\u0015s�b���\\u001b\\\\\\u0011r5��)�D����@i\\bg@\\u0014t�z�I9(�Yo\\u0018R��\\n\\u000f[[�\\u0005Bt�\\u0013�ߍ_����6�e��� �\\u0013?u\\u000bR�J\\u001a�R�J�*T�R�J�*T�R�J�*T�R�J�*T�\\\\\\u0017\\b���d�\\u0000�2�\\u0002�b�?�\\nKZ���Kǹ�o������;U�������r�m2\\u0004�ʘǋ���!M���PM�~ur�(\\u000b�\\u000b��[�5^t�`��Q���|�W��\\u0016R3ǨRo�\\u0003AL\\u0004l+�ɐ��\\u0018��\\u001f��\\u0005ٯk2��{\\u0016:\\u000f�T@�FE��^F\\u001f\\u001fK�cF\\u0017>�A��J��,�\\\\\\\"��~�>��\\u0015uS�\\u0007��1���-5�is�;N���֤���Oaޠ�&0�r�S؛�Sm��X���\\u0001�O��֤O��7\\u0005�j��\\u0015�O\\f�\\u00152��ʕ#s[ҡH�gyI��J\\u000e�wZ�sRx9(�\\u0018�~5]�spnI�A��$WLxg'���#\\u001c���&�?�\\u0018�Z����3\\u0002ֹ��:�j����Lw�&\\u0002txP��n�������Lɏ�P\\u0015{\\u0010;�Rg>j.��\\u0001q�s�P\\u0012F�-�����'!l�I�A\\fv<�mBf�Y�fDXZbNԹ\\u0000�s��A�qs\\u000eC\\u0018N\\u0017�e�~����\\u001f\\u001cL�\\t\\u001d{�k$��@\\u001br�2�\\u0000�\\u000f�?���\\f��\\u0012yWQ1���c\\u0006K\\u0017�\\u0015��x�vd\\\\(#�l�,��E�{�*�?��C?�(!��E&�[����V��\\u0016O�q�����\\u000f]�K�S\\u000f*�.&*8��w�t,�l5�D�\\u001aoU�\\u0004�+\\u000bn�\\u001b�{V-��vG\\u0005]I\\f�B\\b�\\r\\u0019���d\\u0010-�-���~�W�L\\u001cl\\\\��\\u001fp\\u0013�gF���o�q�k�*���\\u0000\\\\\\\"*�X�䒘��\\u0014�­����Ƭ�Ƹ�0�1��Z�4�4Q\\\\i�s�\\u0013��<1\\u0007�C kH���z6�@<k��B\\u0006c����x��\\u000e�[P{[Z\\rp���\\u0016�\\u0002w\\u0011sn��>t�8���i��c�ȠH��m��Q����S��㱗&\\u0000�[���ܰ\\\\\\\"�\\u0000!ӵ\\u0012�\\f���d\\u000eFL�G�\\b�A�vn\\u0017�\\\\\\\"\\\\\\\"\\u0001�\\\\\\\"F\\n��۵\\u0019��ɀ��dL�v͍�n������o\\u0005�\\n�����\\u0000N��M9\\u001e*\\u001eA�܀P[Q{�W�\\u0019�)#�|\\u00191.RB66g\\u001e���*K�U�\\u0012w�A�j�����6\\u001a�B���B\\t��/�c�d�aJ�\\u0006;0F�Tv���xc*5�v�%�$b��?Mϩ�:����\\bG�gI\\u0007QUqC\\u001f$Ȼ\\u0017�\\u0001+m\\u0006�z~T��\\fm\\u00166�\\u000b^�����0�b�ʚTfS(U�ֵ��4Y�<�\\u0010��6Q�2��kW\\u0002$�c2�L�#���`�\\u0003F�\\u0000CY�I#�����\\u001c3�\\u0002�+iZ.5�cn-�\\u0000���7�\\\\�\\u0001�o>3^B��A���.�/\\\\\\u000eM�\\u0015�\\n\\u0002>��:\\u0002�HҶ���V\\u0015!�\\u0003}$ȣ�_�>)\\u0018o���\\u0001�k�\\u0000�\\u0011vyT0�5 �\\u0000f�\\u001e�_\\u001f\\u0010�Xs�\\u0014�1�+(\\u001a3\\u000b\\u001d��\\u000e�\\u0014��y\\u0010�ś\\u001d��\\\\\\\"\\r�Ϡ����F^�\\u001e���5���\\u0019�vV9l+p\\u0010�\\u001d5��:��p����\\u0003J�q���\\u0011)\\u0012��o\\u0014�\\u001dA�[w�<\\u0013f�\\u001a�a�ݸ�Y߷�ҊuH1�Av�`\\u0001s{kNǌ0\\u0019\\u001au\\u0011�*¾{b���\\u0000\\u001f��\\u001bffx�X\\u0002|~*?3\\u0007�8�n-��E6�ޕ���ɾ�<���n4�Zhį�&�,��ͮ/�c��\\u0011�?p��,\\u0014\\u0001�\\u0001DǇ�Qx*�̯!\\u001c���6��zQ�V\\u0014һ�\\u001bv��=Z���\\u00049�&�\\u0011�(7m&�\\u000f���\\u00163��\\flU�@w'�o��d�3�ї\\\\\\\".���\\u0014L�q�\\u0007/��e��y,~gR�ɯ�\\f�\\u0007�$�lZ�6�����ð�+\\bY�\\u0006\\u0006�����\\u000b��&W\\u0015�\\u0018�<�\\u0019���I���J��ŎxĤ���\\u001b\\u0007�\\r\\rQK-�]p�q����\\u0018�uvV\\u0007��[B5��[���i6;�\\u0019(�ğݦݴ��9�Fx�ƭk(�n�qk��c��]������,\\b��o�jF�D��\\u001e.�#�����Qs��\\u0019:�֛�\\u00191�ֳcSu�t\\u001dT.^\\\\��\\u0019�m� =\\u0000���\\u0018G�\\u0003\\u0003�EPn\\u0000\\u001b�ץQ��xPO\\fQ\\u0003\\u001a�Pϩ��$�i���ĻL��G�w\\u0000\\u000e�hVX1�bxT�\\\\\\f~;�B�,����Q_ǟ!�U�/\\u0010b��\\u001f�u��VT��L\\\\\\\"a��{��T�\\u0000\\u0018Y�x��i�p<�a�~�/v��u�V�����ɴ��G�RG}���\\u0003�z\\u001e�B$H����_�\\u0002�7��1+�QK��<�츘�[\\u0019׫/����C�w\\u001f����^�N���<�C\\u0015a�\\u0013�_'�\\n!\\u0004�\\\\\\\"߅�ޖM����\\u0006_z�{��f\\t4\\u0018\\blj�B��\\n�\\u0013\\u001ct���\\u0000۹\\bq�)�+\\u0013���.\\u0003\\u000b�ލ�ȋ��g�ߴ'R5���\\u0017��UIeB�ƨ���;E����>(Ǖ�F�c2\\u001d�RFĿ�h\\r�Y\\u0004��cZ}��U�\\u0000o ��o\\u001d����<0�A&3�N�v�/k_��TeG����:�B�w\\u0001u�\\u0006�?�\\u0017\\u000e\\f��!6;d�\\u0014*6�\\u001d>6�5�E��\\u0001Ǒ\\f@�I\\u0015ϕY\\u0005�\\u001d-��@�Z�G�\\u0002�b�c\\u0000�e��̌~*���]����#\\u001f\\u0011�1\\u0014�ň�0�7\\u0015R5��.O\\u0004�N\\\\����\\u0014�x\\u0015��\\u000fa�cBqy\\u0000fce���@m��ҟfs\\u0018�.8�]�#x�c��\\u0000�ҊIi:\\u0005\\u0011X��X2bB�26K���+7�'�rr[\\\\\\\"/&E�& �\\u001bk��\\u0000;W�K�#�7�c�ҫy��U�կ�V���NBc�.b�ώ��0\\fH~�\\u00124ҳ�\\u0000�q\\u00063c�<\\u001fI�\\u0014��[��bN��@76��\\u0007�ց�\\u001e\\\\\\u0018\\u001c��l�zh\\u0007L�~\\u0003H�\\u0019�fq�h����XH�at`E���!x1㈰b\\u000025��:�~&��6\\u0004�O\\u0006I�\\u0002�+��$�\\u0012����\\fa\\u001b.�U�\\u0019&���í5�Š\\u0006\\u001b��J���\\u000bd�_E}����J��G]#\\u0001E�6�s�\\u000f����4��Wڨ\\u0005�u\\u001a��:�LL���&b#C�\\u0002z�\\u000e�U�qhU�6I�i�:�\\u0006߁\\u0014���t��tS\\u0012�\\u0005kn�U<W^uC`�%ˈr��̱ؑsf�\\u0000\\r)�#\\u0001�ɂ\\u0014&o�1��h�\\u0017��Q����/��\\\\�\\u0012\\\\\\\"��n�\\u001bj�W�}/\\\\�ٹY0O$\\u0016�]��/��M�\\rA�'y��.\\u0018�e*���\\u0014B�\\u0010}��g�ܬ/\\u0014�eW�\\u0017��\\u000e��R)o�\\u0017NP��\\u0010V\\u0006e��]�\\\\\\u000fp����k;�@ؐ�D������&�W�����K\\n��\\u0007%[�\\u0012��;\\u0013�_�\\u0000r��b#cK�Y�b\\u001e>4e+\\fr]��0=}i66W�\\u0018��$�¬V-n�\\u001d7\\u001e�{U\\\\�\\u001a`\\u0010�\\u001bxe\\u00056خ���Le�1a�2\\\\\\\"\\u00069ː����ߠ\\u0007�\\u000f��#�oye%B�[ݸ�i��\\u0001�xkV<�|��6FS\\t\\ft�}(Lw�ĳ�ٯ��>����M��X�/��ZF$�c��u�R�n\\u0015�ɆI��\\u001aݥ\\b\\t`@趽��<�\\u001b�\\u0019)�R�H�W��\\u0006\\u0016a�S���m\\u0003�Fp��̸�|���p\\u0011ʒ�F\\u0006l�,��6��P�\\u0017 [M\\r8�\\u001c|<|,����@�ہm\\u0019G��[�ŰvX�\\u0012A>�\\u0007^�D0}�z���\\u0004�\\u0004�fn�:+�\\u0010#�\\u001d\\b�h�`\\r\\u0018�#\\u0002�OLK@��bύ����@����ƣ�\\u0011����\\n��!B��E���\\u0004R)s[���a��@\\u0011�+s���]���Ѻ��\\u0002\\u0002��\\u0014��\\u001bTQ\\n\\u0015�#z��|E�-�� \\u0010gQEp�\\u0012��\\u0010��d\\n�\\u0003�:�\\u000b��09\\u0019��̕���(T}�oo\\u001d��\\u0000Cօ��e�ʍ�fDSsq�h�������\\n:�\\u0014o�_m��D�æ\\\\\\\"��\\u0016,�yu�\\u0014��S:E\\u000b�e���i\\\\����ŏ�\\u001b)�iDK\\u000e.lQ�\\u0002Z3���N�ň\\u0006���\\u0016^m\\u000bH\\\\H�S\\u001b��h6\\u0000�zQI\\u00167(bi\\u001f�\\u001c\\r`����o�)�X�OW��N�l}�ya�!r?5�N�N��g)4�f�Wc\\u0016�\\u0016���W��&R\\u001c��D���Ws]msN��t��dV\\u0011��d\\u001e�,?O�)�ύ$��\\u0019C\\u0002�u\\u0002�:�Jl\\u0010�\\r\\u0006\\f��\\u0016\\u000b\\u001e�?\\u001bv�q�ʃ�EF�\\t\\u0003�P\\rϨ\\n:~\\u0014VX�r� 7���ƚ�PX�����lL�\\u0014�\\u0001�&>С�u�M~\\u0014�\\\\~K\\u000b>W��$P��(;�2Y��\\\\\\\"��hbd\\u0016��ȥ\\ng`��>;N�QxPG�\\u0010�X�\\u0016�n4\\u001b��\\u0000�;׋\\u001e6^3�A�\\u0012HD:\\u0016\\u0003�\\u000e�g�&\\b�x��3�n�\\u000eտSmj�?*Eŉ\\u000b�6ш���©��,������@�������\\u0006:�F���\\u0017�0�\\u001b\\\\\\\"\\u0013\\u0017�R~���\\u0016\\noץ^y&\\\\�\\u000f�_\\u0005�w1\\u001bvm�\\u0000�����G�01��\\u0012X��f!�\\\\��\\u0015�1\\u0016a\\u0005�`v\\u001f�Aaf�ӭY$��Z\\u001e�?�oC\\u0017\\u0011k\\u0013;j\\b�Z��3�\\t��#>�#j\\u0019Aaҫ͞<!& \\u0001�@�AeU\\u001fN��R/⹒`椻w���\\u0013`\\u0019A��Ӽ�����\\u0004�%$d6(��\\f=nt��\\u0006�kd��eŇ\\u0018\\u0018��\\u0015�*G\\u0004;ϴQ�\\u0000Ǳ�����,��n�V\\u001d�\\u0018��ʞ�Mo@rs�2�O\\r\\n�\\n��y��\\u000b�B\\u000b_Z[�\\f0�c��\\u0010�P\\u0003\\u0013����ލ��\\r����\\u0011\\u001e\\\\\\\"�̭��Yv�zި����S�\\u0012dfl\\b��\\u0013:��`�t�h\\u001e;��7��pw�R�罅��S\\u0017ƕ�Z\\u001c�t`=���\\u0014\\u001e~g�����m,d���m\\u0006�n?\\u001a�\\u001dyy'x#P�\\\\\\\"�����{�!\\n\\\\����\\u0000��Y��ʩqEy,���\\u0013��2��^\\t\\u0015v2\\r�\\u000eҺKU\\u001cW!�����k���\\u0003�]\\u000fz/\\u0011�sJ��Y��\\u0003_r�mޔv\\\\0Ɂ69\\u0001�B\\u001a\\u001bZ�k�h1�Yc��]��|VB�]��#t\\\\����{\\u0002<��<�e��凵F���2X�/.<l�i$\\u0004�&�\\u000e�ֱҤYB\\u0016Ǒ�eڎ�!�\\\\�R���NK�=�X��\\u0000��۶�B&Nܸ�a�|E�\\u0011\\r�w�L�3\\u0007:\\u001b4f\\u0017R�:��\\u0000���1 �\\u0013\\u001e.B9\\u0013!�\\u001b�\\\\\\\"4 \\u001b\\r��\\\\Ϗ\\u001c\\u0018\\u0007)dW�\\u0006�#���@��STE&\\\\�\\b�\\\\\\\"K&ՑT��\\u0007j^,l��\\u0010\\fZ&E7�deǓ\\u0006U7d�\\u0001,����a+c��\\\\\\\"���+\\u001b����6�`oU��O\\u000e~<�I�\\u000f\\u001f9do�����\\u0003z�\\t��<TF8ؘ�\\t�T�YX�\\u0000Ɖ��\\u0006�\\u000b\\u0006r����jҺ};�aj&a�A��F�ixmSk)]^Ԉ,'��\\u0015w;\\u0007\\u000f\\u0016\\u0013c�\\u000eQ\\u000b\\\\\\\"��m���X�\\u0003�\\t��a�1�\\u001e\\u0017\\u00128\\u0000��#�����2F�\\u001d�.M�\\u0004\\u0003���,�U0Iں�\\u000b^�N���\\n�\\u0002��9�0�=�`�\\\\\\\"���p\\f?�:W�g�������J ���\\u0016�KU��\\u0018��#�ѐ��qo�T�0�դ�n1+�F�J�\\u001d�� ���\\t����\\u000bH�}1��`����k;\\\\\\\"�b�2elAQ,Ԃ��ƹ��������2+\\u0014b\\u0016襴��\\u0000�Ү��E,y,��-�\\u0002\\u0001k|\\u0006��\\u001a\\\\h8��m�fs\\u001a �l\\u0003�k|E�>��N�M;�ґ\\u00139�}H�Ul-\\u001aN�C\\u001c�>M;b\\f�}ͺ�\\u0014��ʃ�L��\\u001e4�\\u0017r�3�e���ȸ�\\u0010��\\\\\\\"M��W'y �O&�ρ\\u0016,��\\u0010!]�(\\u0019Go�&��\\u0012)�1\\u000b�LC\\u0016>ӧm�����\\u001c��o�����b�v�4��b\\u0006\\u0016V�\\u001cfMS���ل\\u001b�n�\\u0010\\u0002.:S��\\u000b�l�k4r�NO�J�\\u0005a�\\u0005��,�\\\\\\\\�$~ \\\\����6����z\\u0011sD�[@\\\\�-��nK����{Ts�\\u0000ݡ�\\u0000�U��%�3\\u0003,J�\\u0000��P9�<\\\\|8��3��P���\\t����$\\u001c4Q�^\\tY�R|gv�}-�\\u0013��\\u001ed�\\u001d�uK���z6��u\\u0007-���.\\fP��\\r�J��\\u0003�k��\\u0000�F\\b\\u0014]��]k>l�F|�\\u0001�E\\u0016'��0h�L�x�,�پ����J]/\\\\\\\"g�P�8\\u0019\\\\\\\"8J��l��H���Ƥ\\u0013E��.�6��$\\u000fqԁ��)��\\u00079\\u0001Z�;\\\\!\\u001d\\u001c\\u001e����\\u0010�p#��ڢ�i\\n岶Du(\\u001bn2G\\n��\\u0012r\\\\�!�q>�!$o��;�˥U<r�Ѧ/-\\u0013��\\b�\\\\���\\u0003q�����\\r\\u0017��\\u001fw�m�\\u0000��j�?�83��x�=��\\u000b��:\\u0006>�EL-�\\t:��Q+�\\u000eΑjى\\\\H�j�}j�=c��X��\\u0010���bI��oҳ�ۣ�2\\u0018�H�(\\f/m\\u0007������y\\r7�8�\\u0010��6��\\u000fq\\u0003�5�� �\\u001f)�m�B�\\b \\u0013�j#1����%S��\\u0017S�Ԓ�F�A�z\\u001a�J�5ҩR�J�*T�R�J�*T�R�J�*T�R�J�*Q�W-��Nf�7V\\u001bd���\\u001f\\u001f�Ӿ\\u0013�Ə\\u0004O${�!N���!6�>t��Ƌ\\u00176H\\\\\\\"$�,V�F�{RS8l���R��xվ �����$\\r~���:>\\u00029��\\u0011���T~�w֨�2�h�F6�ߗƋ�\\u0016\\u0015�0-�(���J�\\u001f��)\\\\F�7\\u001b�õj�\\b�<�q��Y`�\\\\���\\u0014�to�\\u001f�'C]>�AS��z�R������>U�CH�\\\\\\\"��n���Z0$��k6,]̈���kʸ�;�U,\\u000f�����\\u0000�ҹ���1�ݿ\\u001a[�\\u001eK�;e\\u0002�\\u0005�o���i�\\u0004dF�ׯ�^��ԉ٢�y\\u0018�6U#lz\\u001bm��D!��8�DVݷ��\\u001d)\\u0017�H\\u001b\\u001e5g�p�ύ�.��m��S?�&a�q�\\u0001��kJ��\\r>4\\u0018�B��\\u0006�\\u0000H�/��6�J����x�[�\\u0010\\u0015Q�҉7���9�bb�\\u0014}7,��I�7>���Ѻ~\\u0014�\\u0000\\u000b\\n6�Y�h�(rm�_�J��\\b\\u001f�JVw\\\\v3~F�J�\\u0000�}�jl}j��#\\u001b##H��6�\\u0002��K\\u000e��Х�\\u001fpS��oUɔ��x��H<�OM\\u0002�G�_J�\\u0016\\u001c\\u0006�'ڴ���8׹x�\\u0000�Ѡ���H\\u001e\\u0004\\b섽�������\\t�l<�\\u0017\\u0016o��@\\u001bB�\\\\\\\"�Ei'ɋ& c\\u0005v\\u001b2�\\u0006���Uc�{|�e$�\\u0000:��&�Ra���i\\u000b����ؼ�-��M7�N�\\u0015�Ҳ��\\\\�9;eO\\u0011�l\\bz�ܟ�_�6٦?�\\u001f�(��0\\u00048�i��+\\u0011��m�Ɨp�O���#3ym\\u0019�j����j��\\u001bE\\u0011�|�\\u0014��]v�S�\\u0000\\u0014�)\\u0011�L�]�_[S���h-\\n2D\\u0014^�qk[�q�)�\\r�\\u000e\\u001d62\\u001d�[��6��a��V�o};ί\\u001bKA��O�#\\u0012����t�\\u00169&�v:\\u0014��\\u0000�Je�)<T�-��\\u0015�͸YH֕G���*5�jT��cޯ�E��\\u0005��p�3a��Ueܷ�\\u0014D�gM6�\\u0018\\u0019\\u000e\\b��mnbv5��Ȗ9D𝬬H�ǵ\\u0015��\\u0019\\u0003d1t�A(�_O���\\u0002h91�1%db&@te���Z3�\\\\ws#!�X�lHRt��})\\u0018�\\u0007e>�yX�6\\u0004�\\u00180HPW��4�\\u0013\\u00012��9�.[�qj������V�\\u0013\\u0018�\\u0010�����\\u000f�E�T�3\\u0015�*wH�r>�bK�����i*H\\u0019����\\r(1>A���4���DT��_⌸Ήk\\u0005�\\u000e�Q�\\u0010\\u0000�$^��+��\\u0019Y\\u001b�f�FX��\\u0000��V\\u0004z��2W;.q\\u001e,�(U����\\u001a�\\u001a\\u001f��8#�|wFk<��6��[D\\u0002dW?ñ2(���*�j�2�<���\\u001b\\u0013�\\u0010K���\\u00003T\\b2<\\nں\\u0000.\\u0007[\\u001d\\u00053��a�Q��i\\u000b\\t\\u001eC�(K\\u0015\\u001f��#�\\u0011$\\u0011��6�6:�[�'\\u0018,5?\\r溾^LX��\\u0015Ks\\u0019\\u0016\\r\\b\\u001c�u�r�q\\u001f͊��y\\u0013s6�-�ں\\\\R!�ؔ��,.K\\\\�Mn�ه����H�ݥ%^?\\t$��\\u0001fbN���_AV1Π�}t���@t̲VҐ��\\u0000�WC�<K� m��~�Z���\\u0019������\\u001dP�\\n�o�R�r0��\\u0018*K�\\tb5ۥ��Z��\\u0011��'1G`�o��H\\u0015G)\\u001d,A�S��\\u0000[�;���\\u0010~�f\\u001b���s��\\u001a<p�\\u000b&��6�\\u0003m*��Q�[�,X�����\\u0000�O0sK\\u0017������YH^�?�.���%Ǚ�����\\u001e�Q�|(��S�m�#:�\\\\\\\"\\fAU�@@�9q�b\\u000e:�J\\u0013c��ں��Wi�\\u0004��2\\u000b�A���4\\f����,��U\\u0019^U=��?\\u001a�gr��1�/�\\u001e9\\\\\\\"�V� �yY�ma���}oң��\\u0013�t0x�Td\\u001a\\\\\\u000e�H>��\\u001cع��\\u001cly\\u00152�Z�r5����-�&\\tƝH�3yz�5���\\u0011\\u0012\\\\}�����]�Z�{���МV@H��3\\u0013\\u0013\\u001ei�E�h}�Г�BNޕd\\u0002N��\\u0013\\t̯��PXd,�\\u0003;A�+��vR��<�YH�`\\u0005q��dN�\\u0014U[�T��ֳ\\u0002Oz<�\\u0016S�\\u001aS#\\r[�\\u0000��ch�]QXݘh\\u0016�S�\\\\�Eg̃\\u001e\\\\�.\\u000eG�\\u001cg�\\\\dI\\u001f\\u000f��*�b��u��\\u001b{G���98�\\b�$�и���:�9����\\u0006\\u000e$�p.�8;�;^�\\u0000*�^\\u0003'�V̀��n��n�Qш�.\\u0000g\\u0003[��J�c>/\\u001f��LX�\\u000b�\\u000fg\\u00128H����d\\u0018\\u0011�\\f\\b���GE6�~tfy�'\\u0002Lb-3����`A��R��͉\\u001a���\\u0002mקJ_�����y<`�\\u001bdbP)\\u0017o�����1 �H�G�x�����D1�K�p�8|\\fX�ǔ�\\u0007T������)��\\u0007�2/�\\rm�U<�I��A�\\u0003�\\u00033{F����Wp��\\u001c\\u001d��F�\\t�k��g\\t�$\\bR��&?P�@�P���ǫ�\\u0005���t�B�� �-�V���lo]dJVu�L!��F�\\\\���M�-jM���3d���\\u0011k\\\\X\\u000b۵Ȣ\\f \\u0001���+V^�Č��óN�v��8�n3�.��uC�ױ���x���>,z�N�w��\\u001d�򮥁rY\\u00109�Eq!6���\\u000b~5�%)��ʖx˨e=@=H�XRgNT��s\\u0010�VȡJ���<4\\u0013cb͐��\\u000f\\u0018\\u001fQ�}~U�',\\u0019X��\\u0018\\u0016RKk���j��c�rAh�a�]��H��j_���\\\\\\\"ƃ�\\u0006��Z��)\\u0010�s����1ѯӇ\\b�'��g�67ެ\\n6��\\u001b\\u0002����l���~\\u0007\\\\\\\"<�'�Fe���*7&�:m�L\\u0010���dG�l$Ur�\\r�4��8~w%�!��K̻\\u001c�!�\\u0000X��N���R\\u0019\\u0001\\u001cL���0yy�Q֩\\u0000.�J�U\\\\\\\"���1���)�\\u001fq�A�O���H\\u0004l\\u0002�\\u0012(;��\\u000f_M\\u0006<\\u000e�\\u0010���I#OZ2T\\u0019I,�\\u001f\\u0019u\\\\\\\"�\\u0000��ڌ\\u0005\\u001a�n�Xr�e\\b\\u0019܉6��P�x�6$�C5��!���w��u�]γ/��T��nھ�,\\r�ǭ_��>&<P,��cRt\\u0004����9\\\\\\u001c��,�Ubk�Gsp�P��u\\u0002��\\u0007Z����Ml�ˑ���ƺ!��x\\u0003�k=\\u0017�\\t�y�1(�ne\\u0017`?Q\\u0002�sɃ\\u0007\\u0016�\\u001c�4�x�����\\u0000�~5��ݐ�ʅBjI�o��x��F��\\u0018\\u0010#��?�T\\u001d������,X���\\u0019o��FC' c�@�(��*lB���\\nb�^\\f��XP(���V���L�r�\\\\T�%\\u0011Z�F�\\u000e΃p����! ,�.�N���\\u0005H�p��lMa�\\u0001b=\\\\\\\"����K����������ǂ\\u001c�r2e�\\u0000�G{\\u000b6�`G¸�1����F\\u000b�+���1,����;���#�ƙ�\\u0000h��\\u0000���v�]�9'C\\u0018\\u0002���\\u001f�[\\\\\\\"�\\u000f�D�\\u0013\\u0014�͙�\\f��N\\u001c��PYiEb4�\\u0014CO��\\u0019\\u0018\\u0004�\\u0001%�aH��fɜd$hˢ�\\u0018{�\\r\\u0000�s�I��)�YӢ��CYGҤ�\\u0011�pm��� �MӨ\\n\\nhHЛ�\\u001au4M:i\\u001c���\\u00164V`_96�*I�F�&���Xܪ�f\\u001a7�\\u0003���s(�ث��e�\\u0016`�\\u0004hE��{އ��r\\u0019���$b\\u0016ڻ�7�\\u001e�GKSL�\\u0006�h�DR�*O]�F��p�h�\\u0015�:��ҝ�xx��T��ZK\\u0018\\u0002�Ge:䩌.���c�q@�<sD����\\u001bJ�:\\u0010\\n_B�{�/z�'2x���\\u0001\\\\�C\\u0011p/�r��4rJ���UE$�{�\\u001f\\u001aY�d�}�K�Tcƀ�� \\u001d[��?��\\u0018�˒6��ѝ����&��2���\\u0017�\\u001co:�VQ�*\\u000b\\u0002��+�\\u0011O���<��-�o����\\u001eO�\\u0001r\\u0010x�eV:�ȫa�3$����\\u001e�G\\u001eyf̎qXU]�Dp\\u001c�S\\u0004�L��>$�����O�U�Ȭh�XK\\u001a:6�;2��e�9h��e�\\u0007\\r�Ep\\\\�������ڀ�x�\\f|\\u0019]\\u0017��\\u001b\\b'V캚\\u0012\\u0014�\\\\\\\"�?Z\\u001cd&e\\u0006����.�����A�)�\\u000f/6T\\n�q�X�i\\u0011z��hI=�(6�L쬙q��4*�v�5.\\u0000�ǧS����\\t�\\u0018�hк�\\u0017 �i�\\u001b�N�seK�F�\\u001e0߸Jݯ{!_կJ��\\u0015V��4���6L*�j�1�ȑ<\\u0005�M\\t�-\\u0007+v�{[�\\u0004�K3)\\u001dG��L���8\\u0019Ry|�\\u0016F�����֓�\\u000eW��#\\u0019LX�G�Kl��\\u001f3M�㗏bL��%���im\\u0006�\\\\\\\"��db��o����Tb_ 38�5��\\u0002\\u0004\\r\\u0000\\\\\\\"j�blL���h�#�6>�\\u0016�,;R��bl��,_\\u001c��Xض�u�N��\\u0019�΂y2��\\u0012\\u0012�\\u001bh��@S�7*\\t�<�{���g�I�H��I\\n�Ke�\\u000b���F�G�'jY��\\b�\\u001b,��\\\\�\\r��t����(�\\u001c�!&Uk\\u001d\\u0000�@:�E��eo\\n�X�m����Ӊ��:\\u0019rdhc�W\\t�����֭�@*�\\u0002.'oz��9U@p΁F��vZ������w4~�\\u0004i��\\u001dI\\u0004v���9��\\u001c��\\u001drWt*N��{�{ѹXxXn��\\\\��G���\\u0012\\u000e���v\\u0016w\\u0019�\\u001f\\u0013�.���0[�/p��\\u0000\\u0010/n�N&�'M4���\\u0002�l�$�\\u001a6hm\\u001bN\\u001aE\\\\\\\"�8���\\u0001˝�\\u0012/�\\u0001eR\\u000fҾ�ѱǋ|�T�\\u001c���+r�R.�\\u000e���Z\\u0001��$t�ŌdR��{�\\u0004�:Z�G\\u001f+��a�\\u0013e���\\n��\\u0016�]{�[��:�΃\\u001a�>:e9�-\\f�\\u0003Z�դ��\\u0005_�\\f��oj��a��|?\\ni�41x�Q\\u0010\\u0016i\\u001a��4�,.^\\u001cȡ�.Roi*D���m��>�ǈ\\u000f\\u0013%�,cn��[Й:\\u0001\\u001e�\\u000ep�Vɒ�P�p��4֔�±\\u0003+����/�S�t\\f��1+���r�\\\\��[���6�H�q�\\b�lW���[\\u0001��T�f$��+#xb�n\\u0000^�j/�ڃ��ݩ\\u001d']v�\\u0018��lM�\\u0015��U2\\r��Oҫ�\\u001ch�+5ɔ��v�\\u001b���j�p��\\u0000\\u0003�`v_c1�]z��9\\u0018�\\u0010C�%�Qȍ�\\u0006ۃ��\\u001b�9�A�\\f���I�\\u0015Aб:n�S:C\\u0003hkF��X@����\\tr�S@ �9oT�2\\b��6��\\u0000S�����.2r8�s�9\\u0011��\\u0005����t����LeRw30R�\\u0015�j\\u000b\\u0003�\\fx`c䡒\\u0015�J�\\t�^��%\\u001ae\\\\�\\t\\u0013��Ҵ�0�+\\u0013�<�g`\\u0014�Y\\u0004h�Se��L��\\u0019J1�)껆��>���yg΂\\u0005�\\u0018�w�]\\u0002�������ő��>\\n\\u0019af�\\n�v�j��U�\\u0007+/6\\u00160,\\u0018ȭ�f�3�N�\\u0003���\\n�]�`\\u0006��\\u001ap\\f3�BC��.}`���@� �\\u0005e���+m�\\\\\\\"\\u0002\\u0012�P��\\u0000ƜM�`�c�\\u0014��<h\\n�U\\u0017�\\u001e�t�gy�i1\\\\\\\"�\\u001f��\\u0000�Pl*�\\u001f���h�\\u000f\\u0002\\u0000ۇ�u\\u000bL\\\\��ʈ�`\\u0005��U�)�w�t��R��OI��ū�\\u001a)\\u0006<2$d#9}��\\u0004n��x8ѓ6L{s<�#�X�������*�#K�\\u0014q�:�+�\\u001bnu���9�\\u0000���\\u000f�\\u0003;h��}��A��5 �\\\\\\\"�+�N�T�B�@6���}k����\\f�C�`�M$\\tk�h��ڍ��s�)�E;��\\\\\\\"6;��7���RH\\n�X\\u001d��P��M[~D�@f;�� �A~�;��\\\\\\\"#�P:��!�X�1�@�4�\\u001eC\\\\\\\"|��1�r�;�`T߸\\u0015�<\\f\\u000b$�̞D;�5�B.\\u0001�w�Yy\\u0018�YQwt2\\u0011f+{�\\u0006��ĭ��m��N��}D~4W\\b\\u000b�I<5�\\\\�Zq�Ll�\\u000fV�~���i��bY}���\\u001a=Xm:���s�E������*\\b�\\u0000�\\u0019��\\u0007��>c�6FF8w�m1��k\\u001b{���N�flӠL��\\fhE�\\u001f{1�t?U�Q��X��(Π�^�m$\\u0002�j\\u0007=4���lE�12n�������\\u0018�\\f���\\u001a+��a�a���ۯ��\\u001f}�2�����M�..\\u0003|mJ�9��\\u0019\\u001f��Id\\u0007k���\\u0015D�\\u0002\\u000e��\\u001di�\\u0011�\\t7+��\\\\hʖ�i\\u001fƕ��,���1䅘\\u0012�@�\\u000b^�\\u0000\\u001ac��� ��f1�\\u0016��,Aݥ�=)w�I\\u001eH�\\u001c��\\u0007��\\u0005�e:�,�TbC\\u001e*F\\\\\\\"|�V���\\u0018O��\\u0000ѡ\\u00008k���N4g&\\\\~F>��U\\u0011\\u001e�e��i0��ȅ��(���$X�7�Vd,�!@�8�E\\u0017\\u0002��GJA4�H����z�ެ=߈�1y\\f��!^\\u0018�2�Y�\\u0011�T�3\\u0019\\n�\\u001f�,\\u0001G��� *\\u00173��8�K\\rH���Y|��7}vm��ZK��\\u001eL��R�\\u001dA���<nHI�\\u0019\\u0014\\u000f#m�+��M���\\u0000�f�F��d\\u001d�=���\\u0014��\\u0014\\u0007\\\\\\\"��Q\\u0017k��Mŏ�ş&,�ӈZ����\\tR�J��R�J�*T�R�J�*T�R�J�*T�R�J�*V���(����1r[�/��R~rǒ�ڋ/�\\u0000�)���\\u001e+5���G^����}�\\u0000$�h��I�\\u0011a��l?�2�\\u0011۲=fk.\\u000f-W\\u000eDpE�[!oA\\u0002)�\\r��\\u0018��݈�M��\\u001a`̬w-\\u0004�RG�\\u0011A�uU\\u001e�)��#|\\u0000���\\u0000Jp\\u0006+���/~9���^��\\r����\\u0000��b1<f)\\u0001;M��-��_�ܪn\\u0014�\\\\�ǽQ˖���xn���0��\\u0004��V\\f\\u0019�HPY�A*��\\u0015�\\u001a\\u000b\\u0013(ɏ\\u001b��\\u001dY��\\u001b_�S\\u001f|�����u�hn;\\u000e\\u0001�\\u0004anYU�'[��u�f�\\u0013��dǛ!�9I\\u001bn \\u0001\\u001b\\u001b���K\\u0011j͉Y\\u0019�\\u0010U�߽v|���b=�����\\n�\\u0010U�LA���W�H�Qp[�J\\u0013\\u001f��/\\u001ai2���c�}ۖ��։��oo���\\u0000�T��\\u0019�L�c��]��pGkS_Q����e��\\u0005]�\\u001bh\\r#��Eņef-%ë\\u000bX۱��$�<|90\\u000b�㵉P���Ķ�QG�b�$�!�\\u000e��$���U����\\u001b�E\\u001b�I�P��\\u0016#��V�\\u000b��\\u0014���\\u001e�\\u0006*�#�\\u00061H9��>i�\\u0015�Fm�R�pi;� ��Wbq�܌�ce\\u0018gT#�n�\\u001f��\\u001d�<�a��G}A�i�7,��N���\\u001a��p{~\\u0015\\u0019Q�ƛ�H\\u0015��6\\u0004L�\\u0006;W\\\\\\\"��� G�VE\\u0013��O}o���\\bq��*\\u001dt����\\u0003\\u000eCL\\u0010��o\\u0003[Yo�(�a\\u001e�_�h�k�u�aEơD5��\\u0000c���3�g\\n��\\tU�\\u0002+;��i�\\u0018�r\\u001d��\\u0015O��H�W���B�$_i%E�<�ǋ.X\\\\�������[]��P\\u0007\\u0003\\u001b�䝱؈�����Ha�U���xݝC��}�U����H-��\\\\��\\\\q\\u0019�dK\\b\\u001b�-��B4�����\\u0001�yA��8��\\u001e�\\u001a�\\u0012\\u0004�fh�TS��c�n�\\u0011z���*p�\\u0002K�\\u001c\\u0004�Wy��� s��\\u0015�p)?/�.\\u0019�\\\\v*ጤu]=���֜L���\\u001bX�j�\\u001aM����h���T@M�\\u001d,m�ѱ\\u001a��Z�\\u001c\\u0017K�V�u\\u001c��a�/���H\\u0003�@kh=t���l�,S\\u0010���\\u000b��X\\u0013�KG\\t?\\u00119��<Mu����U#�\\u0015���\\u0013I��\\u001c�\\u0017��*�\\b$oƛ崫c�e�`\\u0001�b=��襍����|�\\t6b\\u0007�\\u0000�P\\u0011Ȥ\\u0012������cb?:_�f�$�,\\u001b�i��(m�\\u001d�§\\r+��\\u0019Zʧr��c�\\u0017��&%\\\\��\\u0000�����\\u001f\\u0013\\u0018f?�\\u0000)�o\\u001bS=�9�\\n�I\\u0003M{\\u001a��O>+��\\u0001�\\u0004if\\u0007J�\\u001c�a�����B����zU�0�*0\\fE�A$u�)��ɍ\\u001c����`N�zR���\\u001f\\u00056\\u001bnc���^�\\b�RL��I��+���m����֯\\u001f��&\\u0003\\u0014�\\\\\\\"I>�j���:U�\\u0017�ƘjI�\\u0014l-Ԩ���\\u0002\\\\\\\"��p\\u00068/�l���5�39�$�\\u001c}�ʹo�;\\u00036�A�$�Id�d��Q#x�\\u001bz�p�-F�VI\\\\)�&\\b�;\\u0003�u�c�?'\\u0016FI�#Tb� \\u0018�,��\\u001f�\\bP�� V�=̬,��\\u000f�\\u0006�������FJgbc��Ѝ�ʠi������q\\u0006J��#@dU�p\\u000e�[6���8���\\u001c� �}�b�c��޾u�q��d\\f\\u0019\\f �\\u0012=�����^��\\\\\\\";|dƇҺ\\u0017���\\u00153\\u001caw�k�և+\\u00112p�+\\u0012V��h�͉V��a@��\\u0012ݤ\\r��ֽ�\\u0000�����F&���[E.��4�3��$�1,�#��\\u0005���AF�\\u0000�\\u0003\\\\l8�&U��\\u0013�\\r\\t��~�\\u001f,#�rA�l�$*\\u0018�}n)l\\\\`tU,ZG\\u0004��ڭ�G�쉖$\\\\\\\"K��\\u0003�\\u0000\\n�\\u0016a\\nG�����<Ϻ�[P6�\\u0002�0�r��\\u0001�vsc8\\u0013\\u001e\\u001f\\u001c6�(�t�it���b�n�a>ݣ��Pi�\\nE��\\u001cJ���\\u0018��X��{�܎/ �o�4ڄ�,_S�\\u001d\\u000f�֚p�����q\\u000b�\\u0010��[�c�Қ\\u0014����Y�]�0eW\\\\��u\\u0001���~l��2���H7.�\\u0002��i�\\u001c�P��YdV���Z�rQy�I�a�\\u001a51 :��o����#��b��\\u0003������_V�g��dĭ\\u0019WG*�cm\\u0007\\n��U�4r+\\\\\\\"N���Q}�}\\r\\u001f��M\\u0002H����eV�\\\\�\\u0013����Z�h՝Yt�KiI_��>|;\\u0002ŝD�]�\\u0013���r��LC{i�[<,زf92c\\f��\\u0015Emm,~\\\\����\\u0007�P\\u0019\\u001fi*Ů{�7��xx��\\u0012��\\u001f��=\\u0002��J840r-\\u0016JlW���\\u0002\\u0019C\\u000b�/��Q�\\u001cX\\u0004�n�\\u0012���\\u0007k�4\\u0010\\r\\u0007�䒣�PE֛�q�)O:έ��큔kAD��(�p��\\u001b�=\\u0017����\\u0012l�q3Օ�$jN���\\u0005#��7\\u000eH�L�\\f��T\\u001b�\\u0012-�����d��qY��(���G[Z�Μ��369�r��]�c�\\u0004w�1��o1F2�}��w~����G1�\\\\\\\"��ʤ�\\u0002:��z�\\\\_&�K���\\u0018l��B��~5b#���ǖ�*�B�\\n�;\\u001a疟&\\u001c�W��tW�FM���Q�\\u0004��&Q�\\u0001�D���k���\\u0015T��ܲJ��e��C\\u0000/a{|(�9e�|f\\u0005\\u00113\\u0010ž�4\\f>\\u0014]�\\u0005�-��3Mʇ\\n*�^�c\\u0006툸�\\u0015\\\\��gq˚\\u001f|Ѿ�\\\\\\\"g�k�T�ќlp�\\u000bK�]\\n%�P�\\u0017'��AW����?�\\u0004\\t\\u0013�Y5bm�ߥ\\r�'��,�\\u0000�Ӱ3\\u0010\\u0006�_�Un54\\u0019\\u001d����\\u0006u���+�2���\\u0002@X�\\u0005�{����V���P�v16�u��롥�c\\u001c\\f�� Ar�\\u0005�Ʒ����d��Xݣ��Q��/w�^�m\\u0002\\u0017��֋!c�ebr\\u0017]X��\\u001ch\\\\�\\u00063ʫ����ڱ6��]E���\\u0011��\\\\\\u0017]��~\\u0001�\\rE�NG!��\\\\!\\u001d�v2\\u0019��^��\\u0006�d\\u0019d�!�YD\\u0001\\u0011^I\\b\\u001a��w��Dr��i`?��\\u001e|ؕ�>,H�sJ�#Q�6�½��ʅ��\\u0017l�ʥ�$~ޝ-�Q�Y��Q��\\u0019ee�P���{�~T\\u0007\\b`�\\u001c�\\u0003�37�3m��@-�\\u0000M�.O\\u0016|ɢƆ��\\u0019�\\u001bP\\u001d\\u0017q�4p#އ\\u001b\\u0005�e��1�y��rx�P�,ܧ\\\\\\\"�v\\u001e(�\\f\\r��\\u0001:\\u000fJ?)!�\\u0016y\\t�`�0;lH�xl\\u000f��h�]��[u�6�5�2x<���r2/\\u0018@QƠ��\\u000b|*����D�J�RK\\u0005LL�\\u0018r��T��\\\\��`�X��\\u0002aBJ��~�?�zB3eQ t�3�.�j\\u0018�\\u0000µ�Y9��G\\f�\\u0003*\\u0000���J���ڊ�1q#\\u0013�9e�I�O!*7�\\u0001�?\\u0003�Q�� \\u0013M������*#\\u0013�&$rֱ�$m��*��;)&�\\u0000S��\\u0017�*�\\u0016,�K\\u0019uR{\\u0001ږdeq�\\u001f�#ldy��\\b���\\\\\\\"��>**�_,cO\\u0001\\t�}�$\\u0010n�-V>3�P�(�<��[�����'��'\\u001b��ʲ2�\\u0003t~�w�8\\u001eRL\\t|2�4`\\u0011�\\u0010'h>��\\u001e�^W��/\\u001a��v8�'\\u0017\\u0010��@�\\u0014��=Oq�\\u0002aO!��X\\u000f5��\\u001b�om�9\\n\\u0000K���E\\u0003Q\\u001c��|9�\\\\Dc*�d�XZ��\\u0004p\\u0014א�/�A\\\\\\\"�#�\\u0007Y\\u0019C\\u0002=\\n�NԷ��5qW��v06��[o\\u001e�:\\u000fJ?��U��\\u0000�<��\\u0002-�����n�(u�F���,ψUDe�\\f��jz^�����2\\u001cX��#��LǍqx�.T��:��'�[ {��<馅��e����ַ�S�8�8�m�!�(Uۨ,�����P��\\u001e���}/�6�,��ƊͲ�����5�)�v���I��\\u001d\\u0013&\\f}�c��]�O�Q�d��Řx�\\u0012\\\\)#k\\u000b\\r�[�L22`�.C��B-\\u001c@�b���]k5�����hK�4A��o ���n�/\\u001f\\u000b���g\\u0011\\\\\\\"���{\\\\�>��\\u001c�V��@�Z~4\\u00190~�e��9U��7U�j;\\\\\\\"i1��c7Y\\u0018�V�z�h�\\u001b�\\u0003���qɔ�\\u000f*�ٔ\\u0010T��ocޗ�E/�&�\\u0019\\u0017\\u001clf'P^�n}i��|��h�\\u0019\\u0011.�P���:�l4��GF��\\u001aYe@2]j��ڹ\\u0013\\u0003A�\\n�b��\\u0017�C�\\u0017�o�m��*\\u0017���\\u0014P���vco��[Jm\\u0017\\u0011*����#�6�\\u0005щ Z��rp\\\\\\\"��L�\\u0019��b�)d�\\u0007�h��\\u001a\\f���\\\\\\\"\\u0006Eٹs�����Y�93a:�5��؀v�p0���d�\\u0018�]�ҝ\\u0000*}��w��O��\\u001e4�<Q���,X�{�\\\\d�!�,0\\u0017�0\\u0017a��t�Q��M����\\u0013�H�B,7n`���\\u0019em��\\u001b�ү\\u0006P�Y�&7>Cߍ3-�\\t�\\u001e�k��f&+d��!T����\\u0011��\\r�\\u001b�/��h�}Ғ\\u001d\\u0018Z5�#�#�0�_�I\\u001ao�*��\\u000b>�n�mK8���\\u000e4Fh���\\u0014�\\u0002��[ҋ#%��QN���B�\\u000b��\\\\�;�\\u001a:�\\rx���\\u0010��!�z�[��v�۞\\u0007p\\u001aE�9m76�\\u0017��\\\\\\\"8s˫��\\b�?Q���J_�<0�xbS�\\u00031�B�ݜۯ���\\\\\\\"C *\\u0004t�\\u0006 �ry(�NA�c|+�\\b�a�)\\f-��Q\\u0019�\\\\\\\"a4&\\u0013 \\u0011����Yuc�ʈ��!ΐ�8�P�$a\\u0000\\u0016\\u0000{n=*�/7�N��p7P�tf(C5�\\n�\\u000b\\u0017��H��\\u0000>ݪ�$ه�\\u0006�UC�\\u000fƖ�s�\\u0000��\\u0013\\u0013�J��\\u0016�&���\\u0019\\u001d�=�*\\u0002\\u0010h���5\\u0003�d��y�v\\fU��rX�=)�Qb�O$q�.����#���R̤Q�\\u0018�h�#\\u0016Ck�7��z\\u0015\\u0000(�\\u0001I�g\\r�(Ȁ\\u001c���u�8{\\u001a#\\u00176g�)\\u001c�� VD:\\u001b��:�\\u001b;�\\u000eXv�«\\u001cNF�\\u0012\\u0001��38ܼL�'�����K\\u000b���ַ_Z'\\u001da�$E,e�\\u001b�$i��\\u000e��f\\u001b])m��\\f2*��f���ϭ\\u001d�3��s\\nǓ-���if�sր�s\\\\\\\"�Ya��d��^7'���{�D�ddC�\\u0015��)��\\u0017�@�\\u001c~,&6\\t��&�;ܶ��\\u0003D\\u0013h<�kW�)�ݾ���\\u0017�\\u000eal��;SNI\\u001ex�\\u0007���!����o��Ƽ�3\\\\\\\"�\\u000650G�\\u0011���\\u0001\\r\\u001b_�\\\\���gx\\u0002ŝ\\u001box�k�bT���ipj�L|�3�h\\u000e�MT�CkD �F�l+><�!��Y��uӏ�21c�\\u0019Z\\tq\\u0010�� \\u0001ץq���O��\\u000f9f���h{�u���Dy~\\u0017K��4@�_[�\\b���Wr����N���y\\u0019����\\u0015��\\u0015W���;Z\\u001b\\u0018#��<�\\u00025�p�21��\\f�\\u001b�(���\\u000e�z����\\\\\\\"xe�15�*\\u0003�)�ǜ򅐕W&�/����\\u0006X9\\bF� �H���td\\u000e�\\u0006�$k��t��&6��V��\\u000b�H\\\\\\\"�V\\u001d_J{����<LXR\\u001f)�\\u0001\\u001e�En�\\u001e�\\u001fք��8�\\u0013�� �eĈ��vն��ƌ���ے�\\b�Yl\\bk\\u0000\\u0000��T���2�qǹ��\\\\�\\u0006�\\u000bU�]�}�R-+�\\\\\\\"\\u001c�S23\\u0010\\u001c��\\u001e�\\u0010*���\\b�\\u0001�b���nY��4.\\u001c\\u0011d�K4�\\u0003��`\\u000b\\u0016e�붽?�Һ�+;��F�%�9\\t]�\\u0016\\u0016�~�� \\b�\\u001e;_ɏ)3!\\u001a��\\u0000\\u001d5�[\\u0019�+_ŏ\\u001fjp流1�ɍ�YLd1^=q��)�{1g��c��\\u0013rH��ҹ���v� ,��m�����z�P��yÀR9�@\\b\\u0005UW�ޮ�s%��Y��h剴�-������\\f5\\u001f���b��]Y3\\u001d\\u0019�lp\\u00048��A�\\u0017+����,m�+\\u0001 7\\u0017ԝ/Њ:V�&\\u0018��\\\\\\\"��o�Ž�|){��I�\\b\\\\v�,\\u0014/#{�7����\\u0013��\\u0003���f#vD���v\\u000bm/Ut��\\u0003\\u000bÉ��π#b\\\\zʰfv�P��\\u001f�.Ir�,I��f\\u0001�����ź���rr\\u001a|T�]�O��kjۭoƜ��YP�x��V��,\\u0018�Z�5�3Ả!Ɍ��l�{\\u0015{\\u001b2zU\\u0003u������\\u00055r\\u001ch[=���\\u0000x>2Z�:\\b\\u001e�ֺ\\u0018X�P�ض�f�����\\u0000\\n\\u0012('���w���\\u0006��X�9�P��+��{a��V��[���Y����(E\\u0004\\u0013:��+\\u0016;�\\u0016��J�4�m��x�W\\u0019�s\\u001c���@�\\u0017W�LPQ.Ke̒)�F�w3\\u0011�u\\u0003z�zWyJ\\u001f��\\u0014\\u0002� �u#K��\\u001cN$\\u0013�4�@v%��r,\\u0014~T\\u0002$C�:ybC\\u0014Hv�ͶM:�i��\\u0012�\\u0017mcү�~\\\\�\\u0005\\u0015\\u0011���j�[���\\u0003dq�b���8�*���� zUܗ\\u001d��1c��8,\\u0015��Ym�n�\\u0000�\\u00199��\\\\\\\"@�������,�ǒ4�\\u0016Vx^u2�~���>u\\r�l\\u0003-�-)x�;�3�\\u0015^\\f�P�On5�̱I�2�6S�7h�c\\u001f���'$�f�Ӹ�M\\u0006��`4\\u0015�3�\\u0005[\\u0011�խ�AoFZ�f���w\\u001b�����\\u000fv�RȆ:,zo[�L��\\f�@��\\u001b�\\u0006~ꢥJ�u��J�*T�R�J�*T�R�J�*T�R�J�*T�.$a�؇���Ҽ�d��<���]�#�)�\\n����RN_��?�/�\\u0000�(���q-5��uϑN�ߧ�V�&ie�'��\\\\\\\"\\u0012\\u00146��飰�r�pY�\\u0017��|\\t�X�/���\\u0000\\u0004��!{��|kK\\u001e��ʠ��^��ۿ�T��\\u001a�72�XD�/F�\\u0012��#jQ����h�s�k\\r�ԃ���C\\u001eay\\t�\\u0005!?i1\\t#=�0&�m�kJ\\nd),�����OZ7\\u0016I|�\\u0013�:1],���G��oM�\\u0000\\u0017\\u00061 \\\\@�n����0JaP�m�6�\\u0017�j���A�\\u0012�ә%y\\u000e�d`\\u0000�\\u0013��\\r\\\\\\\"ʩ\\u0016�w�ji\\u0012�#\\u0013(\\u0017!I\\u0003��U�\\u0006\\u0018DkYNW�q�֜�^q52�\\u000f\\n�!x��\\u0000z��ǭS�r�ɏ,l�Wɢ�\\u0003C���N\\u0012x�\\b%��f>�҆�¬Rn��\\u0000��\\u001a��\\u001ao�T�|��].�ҋ�&g�\\u001a\\u0001�\\u0000hG{z�*�v\\\\\\\"QI��\\u0013f-�\\u0000\\u0007`5ֹ�\\u0005�ح�1\\r\\u000f~��\\u0003\\u0007\\u0013>\\u0019����2\\u001a\\u0015}T\\u000bj�\\u001e�V���RJ�]CO���##\\u0015�tg�pě\\u0006��\\u0007Z>\\u000eR\\u0018x�1\\u0015\\nd\\u001dHaum���\\u0002�aK���!�̒�+4N\\u0010\\u0001}U6�\\u0010/Y�\\u0010�TYT��o�����B�Ҭ4\\u001b�\\b\\u0015�:�K\\tvTpXra��m�4������K\\\\�\\u0014n������6eS�Sm�h4'JA.tR!�ί\\b\\u0011�f�\\u0019A�\\u0000\\u0016\\u0003��xy\\nx��:�FK||�)�\\t\\u0012N��\\u001b\\u001e%\\u0019����\\u001b$~b'O�U*�J\\u0003خ�H��ީ�,��L>����k��-�99���,\\u001cX�Q`\\u0017ҋœv{\\r�Z\\u001f�z\\u0011\\u0005���q�\\\\\\\"n�\\\\\\\"\\u001d��U��ɟ���\\u0004A\\u0019\\u000eU��m�-�J�)Iq�\\nT~��\\u0015ђ2�� e�kj.nzWAT�tG��\\u0016\\u0000v��:��\\u0007J[�fP��f\\fs�\\\\\\\"�O'�k1\\u001a�\\u0000�ҩ��\\\\[�Si��ab$����b��'���S\\u00162\\u001b�B���mv\\\\\\\"�L� \\u001d�S�Qn��'N@�^��$�\\\\\\\"\\u0004FW{�X��@�:�t�1*H=��c�Ji�p|w\\u001f����\\u001b&$�A���\\u000b�w�\\u001a\\u001f;\\u001b\\u0016\\b$ʕ��P\\r��#\\u0016�\\u0016�\\r$�:�)�2ڢK��y�Ƽ�Ǟ<\\u0018��\\u0007u��\\u0003�\\u0004���yL�)*\\u0014\\u0006[��)�\\u0013<\\u0012����eV\\u001b\\u0014��\\u001aX������8�\\u001b�}����(�q<��Vf\\u0018��t2�\\n�t��W2��H�E�B\\b�[@;��i\\\\夌�ģq2\\u000f�\\u0000�U9|���\\u0018\\n����#�0�~\\u0016�j��r\\u001b\\\\\\\"\\u0018�UVO��<���Ћ\\rM�Q��ޯ\\n8��.���w�\\f� uoר�(|�x�M��$hv8��\\u0013��\\u000f����,��2�?lD�4�}��\\u0013r\\u0018�n�MةP�=H�M�*\\u000b\\u0003��N�\\u0015�����\\u0007%�b�\\u000e��mO���b�h�.\\u0014�,�������zkj\\u0017��I�0�-�nȮ4\\u000e��p\\u001a*.\\u0017\\u001f��O\\u0014�V�\\u0016&�\\u0001�\\u0000V��Y:H#�76`�\\u001d�L��#n����n$��\\\\Pb����\\u000b|-X�O\\u0013\\u001f��>\\n ͆F�%���E�\\r�\\u0000�Uy��#�>>&2+A07wR�Ik{H v�8)�yN�\\u0019i$����5�ON�\\u000e��;S��9\\u001b�V\\u0002��X�A�\\u000f�6F\\u001f\\u0016q�Q\\u0004Ш\\u000b�ӡ���U�dgχ��7��*,̿\\u0012t��͇&D����`Pk\\u0000{z\\u001fZV�\\u001d#e��\\u000f�X�\\u0010\\u001b����\\u001e���;c����\\rd\\u0012�,~\\u0014\\u0007�ev�\\u0001��1A�`�Py��\\u0018��ybh�H\\u0004�?V��\\\\BRm��\\n�\\u000b\\u001b(Ҙǃ\\u000ed{s��\\u0000\\n���\\\\Z��X��'&P\\u0010�t�\\u001b\\u000fz�>\\u0015�\\u0000��C\\u0014�\\u0013���i\\u001e\\t�s��\\t?j�`���\\\\\\\"v\\u001d�>=��l9����h�\\u0004\\u000e=Gõ_�4N�� ��ҷ�\\u0016�Lv��\\u00161��V�w�V�[�@G�q`�L��\\fag-�\\u0007����6*��\\u0012�\\u0000=�K�j���Y8�\\u001686H�tV�k��TPQDFd���mН\\tj\\b�J�\\u000f\\u000b8�\\u0019�SUm���\\f���ʛ�c�HDn�\\u0007_��(�|��Ȋ\\t�)b7�n����ؼDXy�e����ٸ\\\\���S�BK��\\u001e\\u001c�)\\u0011\\tc\\u0013�`dK�}�\\u001azSY\\u001e@����m��/c�@���Ƈ><���;���ZF�\\u000e���ő�<�-4�<���\\u000b��\\u0013�-p@yw8\\u001eˏ�\\u0013�^���s2��\\u0011+�\\u001b\\u0001\\\\\\\"�\\u0013^d�1e�.3D`��<\\rb�u��JSck�-��]\\u001cyW�<x_Ǹ���&�pzLzQP\\u001f�8�ə\\u0003�!;�q��n�A�(ʁ��\\\\\\\"{l\\bRM��֏�����5)��V��V\\u0004\\u00166��IӠ\\u001difl�N9��U\\t\\u0016 ���ӱ�4���zϐ��F\\rܽB�\\u0018i�4�x��\\u001c�Lp�-��\\u0003!��A\\u0007��ށ�7�̝'�Œ�Q�X�\\u0017E��Z��\\u0000\\u001b�L<48�Bd�\\\\\\u0019\\u0000�\\fw*��\\u0015��9\\u0004��e�@=�\\u0002����w\\u000f�Lx�\\u0016�j�5�\\u0016\\u001cy�(I!7�I\\u001c\\r0�IF9�xvy69u�]o�N��x�\\u0015�D�b!!���%���I\\u0012�1X�kX������g8^\\u001c|y�%\\u0001V]]O궃N����o�ڹ����}��gx���(��\\\\�4r��\\u0018���\\u0006۪1�\\u001e��*�s�YR+\\u0001�u��,<��ݮ/W�_ >t��Yɺ�M~�­��\\\\\\\"�t��I'RuC�|�V�\\r\\u001fJ~v��\\u0000w\\u0007��/\\u001f����\\u0006Nf\\\\��Ȱ\\u0010-��\\u001bAoKi]͕��9\\u0010B~��\\u0016�䮗����8�M<r\\u0015\\u0013*�dm7!���\\u0003\\u0015�y�\\u0005|��@X�D��5�҈\\u0000t\\u0000�),�\\u000bd\\t�m\\u0001GĆ���_!�\\u0001�� 6�b�ON��a͛\\u0012`J�\\u0018�A`����}5�^�9\\u0011�fb�61�\\u0001(2�7\\u001d������I��|y�jS����l�%�k��3�\\t�dċ�BD*�v�}�/�\\u0017�n48[�cfevM�X5�a��M�\\u001c\\t���奐L��/�\\u0000!�Q�=\\u0018\\u0013ڗ �ǚx�G��䗽�lv�o�\\u0011\\u0017:�\\\\Q�Ls\\u001c�0\\u0016\\u0004\\u0005 j�;���\\u0000\\u0006�\\u001c�*o��y\\u000f�\\u001d�p*��\\u001bj?�_��ff2>5��\\u00049�t޷�V{_�S/$eX�o$}#&��j�S?/\\u0001�\\u0010cc��6�s��\\u0012lX�ǽQ���EY�\\u001d��$��k��H����H�E�\\u001f����~\\u0016��9�3���ʐ�17G,{�fm�-A��]�H�a��em�{�n�\\u001b\\u0000>`W�<�6\\u001e<nm?�ic�\\u000e��zZ�濏0�r��K1&U6ؤ��zzkO\\rj��z�i��6[Y@ƶ�-]\\u0006��n>6$���\\\\\\\"�]\\u001aE�,�7�Z�\\u0011ކ�i�f��\\u001a�Ƒv�k\\u0006\\u0006��zt�02r1\\u0018b,&Y<l�T�k��^�4\\u0017-\\u000ej\\u000f��E&�\\u0003�\\u0016�X-\\u0012��\\u0018�\\u000fN:P\\u001c\\u0004?e�i�F}\\\\k+��Z�r��ʂH8�r\\u001cn�!�\\u0000��HA�u�x�G�\\u001e(��\\u0006�\\u0000Gek\\\\��/��݉1\\u0016\\\\\\\"�K�s{�\\u0005?�����>8\\u0002(AC���5���^�.��Q\\u0006��x�[���\\u000eS�\\n�\\\\�S!��ݾ����>>I���m��H�w_�4^F'�c'#�\\u001a�a���\\u0000^���^<~.\\u0013�\\u0000����X\\u0001`X_ݨ5jd��m37�Xnt�\\u0012�Y@���D���\\u0006k����[\\u001a�Χ\\u0016�Ϸ�S���ad��\\u000f\\u001b\\u000b2�ߣ!�E0�5q��\\u0014��T\\u0001���)�V�VK&L�u�\\u0003�w�b�bt-��\\u0000\\n֓\\u001e:ye���\\\\\\\"��=�X��˸Ql\\b����.�s`\\u0018����+�v�6m���O\\u0015���:\\u0018H��|��z�?\\n'\\u000f�\\u001c~\\u0002�*̤2���\\u0019��2�Z�\\u0018e�\\u001c��b\\u0012Ga \\u0004���u�ݴ���Æ��6�K\\u0012�m{��D�(��?\\nvl�Dv˽�w\\u0012v\\u0017Ux�da��\\u0015'�*L\\u0018�� ���M\\f9\\t\\u0013�ʰ��hؑ�>�n�O\\u000bˌ�\\u0004�ZOy\\u0017\\u0004i�\\u001e��3��#)��&_�pNߕ\\u0018l{���±yx3w\\u0011-�܍\\u0018zk@�d�ؿ�\\u0014�B�Y�:�����D.\\u0007\\u001e��\\u0016s8�f���~zZ��\\u0000\\u0017X3�I�\\u0007�X\\\\�a��\\u0001��=�/�a�^@\\u0001�\\u0004��|ȡ�L1`�t_OZw��\\\\��\\u000b:\\u0012�&G�I]�U&,x�>O$p��q�o��&��T��3\\u0019��\\u0016-�O�h�W\\u0015q��T�vA\\u001f�k������H�f8�z�\\u0017���o��\\u0014Ɯ��a��\\u001c���j�\\u001f\\u0011�L'��<���\\u000b;��n�\\\\�kE��FO\\u0015\\u0013M1���\\u0007\\f�\\u0016�ܶ[j-H�lvć7\\u0006GI~�=���#�ʳ\\\\\\r5���h_��\\u000b_k0�p-e�X�I+��_zk;)�[�J�`Li�j��Lh_(D�\\u001dB���mߵ�.D9Y��F�]\\u0006Սz�'��V'\\u001f\\u000f N\\u0013���$`A�����\\u0000��ܦ\\u0004X\\u001c�\\b��� d�\\u001fr�ov���Vr\\u0017a\\u0000����\\u001c��\\u0017��\\u001c�VX,17lk�t�9\\u0001Jx�K'\\u001e7�`bx�\\u0017\\u0016�\\r�^�L�K\\u001a\\t�`6\\u0001g\\u001e�o](�^\\u0006�:If�X� �\\\\\\\"��\\u0003s��_�\\u001f\\u001f\\u0017\\n2L\\t|b\\u0006�`6�\\u000b\\u0011j#�X\\u0011�Qbɗȱ��Х\\t�PGP\\u001f�.�Γ>9\\u001deU�u�,\\u0005���5�\\u0017*d��a(>�\\u0018��Ro�P�+�\\u001c�\\u0012\\u001c�\\u001a;C)*��j�k}V���6\\f%(��`\\u000b�~�z|5�\\u0014���p�Yrc8�`�6T\\n�\\u001f\\u0011\\u0000o�\\u0001�u��\\u001c�I\\u0007�p\\u001a��n$z�4T����bMظ�\\u0004�?u�Y�E�\\u0016���TP`͕#��謯{�/}}zW��l���6,`˰���mC�\\u001f�/2d*JdT;��ϥ;�͆{_��yƪ̦�I��8Ͻs����)���;�\\u0015\\u0003X�\\u0002@��֕앛*\\u001c�ir\\u0003��A�H:��2L�\\u001a�<s�CGm/�QF�E�K:H=�o\\u0001m��m��Z}���\\u0006�kv�O�h8u\\u000bjb@-�\\u0013 �2y�sA�b ڬ��̥G��K�[U�=�5I\\\\\\\"q�� �\\u000b.�ͩ�����\\u001c�$`X,K�U�\\u0000@\\u001f�\\\\rx�%���=��D[X\\u0011�\\u0002�R-&8ǵf|�C�$�����x�֔ɗ\\u001crE'���\\u001dр{�ֽ\\b�er\\u0012E+űr\\u001e�������Q�x���X��\\u000bJ�\\u0006\\t`=�A�5��ߊ�a�Ht��I\\u0011�\\u0015\\u0007�=\\u001a�*��1��\\u0015��c��|\\u0018�E�\\u0005�c��\\u0001����\\u000e7\\u0007jF\\u0012q&�\\u001fO�Fӻ�Adg`�\\fd�軻�:{n;�L���C�4���\\u0000\\fX\\u0015F�z�n�\\\\��A>\\\\\\\"c���\\u0019\\u00121\\u0000_yU*\\u0007�h��\\u001c��]o���5~?�0)����b\\u0016'F;�\\u001bM\\t$��\\u001b�Ŕchս��Y��C�ٺQ\\u000bɃ\\u001a��a��w\\u0011��q@�\\\\\\u0013��8�\\u0004�6��h�#\\\\�\\r.+�\\u001b��)\\u0011�V�]��B��BC~X\\u001c�>5�\\u001d@�퐒{i�zq��\\u0007\\u001f��� b��R��-�\\u0012��%E��jS,\\u001c�\\u0011�<y�|΋#؉\\u0015��\\u0006���n7�p�1ϔ�B�\\u000fh6R\\r�����1��ܱb�N�]CoOiڭ���T\\f8��\\u001afa�\\u001aekT�\\fÌ�4'ޔ�e�li#\\u0006�\\u0003�\\r4:�\\u001fJ}�.6N\\f�*ݞ��\\u000e���O\\u001c�r2f36ņ@�\\u0018\\u0001ac��\\u0000��nC\\u001f 8�\\u000b|���k�\\u0011�֣�@\\u001a�汔\\u000e�\\u001e�l4@L���M���6*�ǱF�r\\u0007�s��O��\\u0018\\\\\\\"���NݖВlt�\\u0004p��ٰ�`匷*�-���;���qQ�]��B��\\u0001�Cށ\\u000f��`kw��N1�)9Ԩ����N��ٜvVXYZ\\u0019��HC�濹��\\u0014a�\\u00064��\\fk�\\u001b?�U@`�T�{i�3c�\\u0017UH�H�P������ʍ[\\u000e��v-�?Q�\\u000f�~\\u0016��7\\u001b�\\u001a�i�@�\\u000e;a�1�[��2\\u0013s��1'��>�?k\\u0010�h䰷�����n4�x�gb���\\u0000�\\u0000��0�A�\\\\�A\\u0000�<Qd($���G��p2`\\\\�q��\\\\��tM�{cb��cӭI�0g֐�=�\\\\}K$\\\\\\\"\\u00105��]�Ӥ<4��Y�\\f�PX�\\u0018�=��*��X���@}��#z\\u0013sGs\\u0018yXܣ�ز�\\u0002���-@�����w&0vF���tb�\\u0017\\u0000$\\u001dϿ\\u001eU�'S\\\\\\\"��\\u0006%gөK���\\u000e\\u0012h9��ʔ\\b]��7�\\u000e��~]i�\\u001f�L��,��$\\u0004n7;��o{ު���jଭ!\\u0007_�\\u0007oʭ�hq�\\b�.\\u0005�1�\\u0003ާ����\\\\h\\u000b\\u0013\\u0003n\\u001b�6Qy�㢳.72��-;��H�Va�x��\\\\Y\\u001e'-9h�}\\u0006�f\\u001d���.�3�+'�9�M���(��\\u001f{4�!\\u0004�\\u000bXj/Jrʜ�����\\f.4�j�E7��\\u0006Bම��\\u001ai\\u001bU5*T���*T�R�J�*T�R�J�*T�R�J�*T�R�mq0�p��\\u0016Sx�A�ݭfy�nFO��\\u0000�\\\\\\\"��vP��ǆ�\\\\\\\"5���H�XVNVm�ʪ��_h�\\u0013r\\u0003;\\u0018�g��\\u0000�y\\u0007����;��F<G���\\u001e�MFϏ�Z\\u000b�\\u0012�I��<FL��\\u001e/�*(`�^۾W�5�\\n�)�:~\\u0014\\ng�d�\\u0000g��1v�d�S\\u0011��R)P�bm�4\\u000b�k{�{����(�blnF�k��Lx�kF�m��`\\u001f\\u001b\\u0013ֈ\\u0018���#b�Y�������5��E��`�\\u000f��C�ѽ,�8���\\u0000\\u0010#m�5���+o�U@$}��^�67\\u001a�\\\\\\\"�\\u0010\\u0005��A7>�V�LuGQ�\\u0010�]=N��\\u001b�>���9\\u0010���;\\u001du��\\u0003���ʕ��m�\\u000e���n;�$1\\u0006�H��\\u0001Er�\\u0010����\\\\*mM����\\u0000F�\\u001c�\\u000e\\u001cD��ـtE՚�\\u0001~Լ�N�)�:��E'�Ѡ�G�d\\u0019&`=�\\u0002��zbL���o\\\\\\\"@�t���è?:\\br�\\u000e�C!e�@B����d�2�\\u001b\\\\\\u0000��\\u0007�֥+)�a\\u0012��3[?�|X��L���\\u0001\\u0015N�\\u0001\\r��)�����&8\\u0005�f�S������ �A�-�*�k\\u0000-��-ZL�yZ\\u000f6[٘��ƈ���Y��\\u0003�\\t�����V��7\\u0018H\\u001a���^�Y\\u0018ܣLgJ���|��,\\u0019���t��#�O�f3�\\\\|�� }�\\u000b۠b:\\u000fZ�`\\t2�Bϸ�R@��=G����!��L��;�FPu��?֞���8X̄��/�Ơ��?>�r.3�_���\\u000f\\u0018F�X'��Y�7t�B\\u0006�\\u0010��\\u0000\\u001a}��F�gd�O�\\u001dB*�\\u0001��$�8�>8�/![�.���\\fMп�Ҋ�e�ɑrL{�\\f��6������\\rx`zm�\\u0000��[\\u0003)hG�q��i�^�j�q���[��\\u000e|�u�_X��>\\u0005G��y���]b�l$\\u0014?�[�j��Lwݎ���Hd�絀��\\u0012�\\u000fW.\\u0011ι��)��IC\\u0010�\\u000bk�i\\\\\\\"���υ�� \\u0001�\\\\\\\"�j�^��&�6��\\u0000�G�e������2&��G\\u001e�R~�ں�~uF\\u0016+���(`�0\\u0004G���U[�p\\u001b�N9\\u0010a�\\u0005�Ӷ��}��\\u0007\\r`۷�\\r��\\u001a�9)\\u0016J�\\u001eH\\u000f\\u001b�\\u0007Cn�;��d*����5�@�f�T\\u0005�\\u0006���*�V.��\\\\\\\"g��4�\\u0007��\\u0000i�\\u0002��D�\\n\\u00025\\u0007��>,���'$�\\u0004W��~�N������ϕ�ǌ�\\\\\\\"nv說5��1~�1�\\u0006+\\u001c����\\u0018��;ڒ���\\u0002A_��x5�ċ��r3ƛ�\\u0006\\f�\\u001c�s����D�$�-��!�4�\\u00145�\\u0018\\u001b�\\u0000�Z\\u000f\\tTMk�\\u0001���w����#l���\\u000b6C*�b>�����S\\u0015�Gҹό�r)s��p�^\\u001fJ�Ɏ��X\\u0012\\u0001\\u0002.�H�,}>US�\\u001c���Z�\\u0003a��IyL�\\u001c�HBcUv@��Smkő��`Z�A~�\\tօ�2\\u0015M�j�#�q>�d|�t\\u0010͌�\\u001436�\\u0000��� ���q3s&�c�w��\\u001c�J��\\u001a\\n\\u0017!uPLM��#@h��S\\u0011c��rX�k�i��`\\u0000���yr\\u0006�0\\fw0���ڌ�FN,1�\\u0018\\b��#i>�V���8���,�2\\u0011�H\\r��\\b\\u0001j�70��(\\u000e��\\u0016�{���KJ}�\\u0015$K\\u001f�\\u00101G�N�\\u00177��]n*y����\\u001f\\u001b�\\u0019r\\u0001��\\u0005ꁨ���������O\\u001a\\\\w�k��/��\\u0000��J�5�����W�m�\\u001b\\u0015�\\u0000��_m��\\u000f�̒�\\u001b��p�7\\u0002�k�>�T�\\u0014��}+&\\u0014w�F&U~ᱛ`ӿ�*ʛ�\\\\\\\"\\u0005B�2�_Q���&\\u0019\\u001b�\\b`�Q�����Wd�9{\\n�F�x �,;wҪ̎\\u0015\\r,�x��\\u0013�OZ�\\u0010�e��Ԟ'֍3><�FPY�\\u0002�&bw\\u0014\\u0014\\u0019Ï|�֓�w\\\\\\\"��Z���|o1��Ĉ��Q��m�K�\\r���z�!q��Y\\u00191�,�C\\u001f\\u0019�_��1�\\u0012|\\u001c ����r�{��;���\\u0001 ��\\u0018���x�\\u0004\\\\\\\"\\u000e�l�\\u0019�D� R�M�1��\\u0004�0<%M�\\u001b��L\\fO#M*�ݤ*�n6�_Ƙ\\b\\u0013�\\\\�{{��\\u0003�>���+'?\\u001aؠ�R9\\u0005�\\u000b\\u0013�Z�Q!�����\\u0016\\u0006'\\u001a.&U�\\u0000�;\\b�������U�e\\u0018���\\u000b{z~�N�S�d,\\u0013h��\\u000bw4\\u0006\\u0002�c#\\t�\\u0018��\\f\\u0005���u��<�N$�SaFZQc�\\u001dW�/B\\u0014\\u0010-S�Ӥ���s�U\\u0007.D�\\u0003���\\\\\\\"\\u0011L��LD��[�H\\\\h�m\\u0018u}��\\u0000�E���ɓ��V\\\\\\\"b\\u0001���|��0�\\u001e\\u0004�����^�[���\\u001f��̈́�!\\u00121)k\\u0012l5�2�!�N�#�dř\\n��B(a&\\u000f��f��<h�D��\\\\\\\"\\u001f��\\rk?����)>�\\u001b\\u001f`:��Ҝ�e���I�G�\\u0012M>��m��\\t���\\u0013ı��rT�}mk���}i\\u001e3\\u001cx�\\u00121�]Ǩ�Oi��P�N@,e�A\\u0001`:w�2c�| �\\u0003��ؕz��ڤzU|_ 2�H����K\\r�\\u001d��Gc�\\u001f�`\\u0014��\\u0013�\\u0000\\r��I���*���֬��p\\t8�\\u0018�t�\\u001a�F�\\u000f\\u0006X��ge�Bn��-辴O$�\\\\\\\"@\\u0018lߪ����\\u0014�3�Õ�,�ط�kk\\u0001���K��<_�ő\\u001fcH�\\u0010I?Z�R\\u001b\\u0013\\u0016\\\\��\\u000b�\\u001ck����0\\u0018�Z�\\u0005�\\u000e�\\u00146&|�F&H��\\u0013����\\u0012F��YV\\u0002<��ue������,����\\u00191G�ݴ\\u0012Op}il|�P��*8\\u0006��;�\\u00125$\\u000b��z�+3�_!{���g��\\u0003\\u001eƛ�\\u001c���q��$��[���<K�q+�ٲ~���C�\\u001f���\\u0003:I%��k�,QZ�1�b)�Raʈ�F\\u000b\\u0003�D���\\\\\\b\\u0010H\\\\\\\"�َ\\u001c��&1�2I6�e��ڀ�cf�g���\\u0007����Tqv���K���;��iGO\\u0004�\\u000b�\\u0017t�\\u000b��R�0�1'�+�S\\u0002d\\u0003�\\u0012-�E{tү3J3*�\\u0014�L�BelxY�/y\\u0018�;����E�G����\\r�n\\u001b����oƩ�$\\u0011��f\\u000b|wR�u�;��6�H��&@��\\u001d������f\\u00048���8����7�#\\u0000��\\u0004������e\\u0011�\\u000e\\u0015\\u0017��y\\bV\\u0002��7\\u0018`#ҊN#\\u000eXd/���w��(\\u001a��\\u0000:�\\u0013�Ǎb�\\f�a��I׮��r\\u0018�|LrșJ�̠G���Ȱ�z^�q\\b�6��<�df:��?�\\u000eL��6Rw�W��˗\\u0016l��q�\\\\\\\"\\u0001\\u0006o���\\n���P��`$\\r\\u0000�_R\\u0007­�\\u001a\\u001f�4�p�b�+&�r\\u001c��M��R\\\\�Yr��@˶$�o��O�J�\\u0003.y\\u001d�'p�c7�.�bB�\\u0005\\u001e��LIvO�n�֟��L~:�+՞��E?+\\u0014i\\u001fJ\\u000b%�NX�\\u000eSI\\n�v���7\\u0001�P7|�B�\\r<�\\u0019�c\\u001a0*I%��\\u000fZo��~.x��\\u0000Iu��\\\\mmC\\u001b^�KP<��g�\\u0018�dy�\\u0010���\\u0000���H!\\u0000\\\\\\\"=\\r-�\\u001c�@�E�T\\u0013�4\\u0003������>-�ۍ(g\\u001dA\\u00049ӯ�Կ����\\t�\\u001d�F��A+�h\\u0006����;��\\u0017\\t����.�,\\u0006�\\u000fy_CUq��Q��]ـm��$ܓ�Q��DiH��\\u000bx��\\u0018��*�1�t������\\u0018\\\\����a��߭\\u00143�(��\\u001a\\u0004w#{6�\\u0002k�\\u0014_\\n�[�e�?�â\\b\\u0013%F�\\u001f�+��_�_���M\\u001e\\u0019�h�,I��\\u0015��\\u0002M��֡$�h\\u000b���}�\\u001da���v�\\u0015N^\\u0004g)���\\u0014�ͥ���\\u001a\\u001c󜄑�ݒD \\u0002Jٚ��(o��X%�Y\\u000bo�~��\\u001e\\u0019p�ȡC�X܍H��\\f\\u000bX���\\u0015i�.��duʡ\\u0018p���TW\\u0011����q�X�vf�os�\\u0013a��\\u0019����D�,;�T\\u0005��\\u0000��,5�0�n=��/+'�\\u0003\\u0010��\\rr:��E�\\u0006\\u001f\\u001ar��\\u0012�\\u0001\\b�$7V�F;�*�`\\t\\u0010�\\u0011�����G�\\u001d�#�toʄm��\\u001eT4�Q�F �Y��}/����O\\u0015\\u0004�\\u0012Ǘ�v�6\\u001d\\rﮢ��G�O���d��B��b�����\\u001b$ȞI�\\u0014�\\u0002\\u0001\\u0007ݹ�\\u001d�U�ȋ�]�1�6������3�#\\u0011q$�\\u001b�����Ñ�\\u000b��y\\u001e�fP�qcc�ij\\u000f��\\\\\\\"ly_�d���I>�m5'�P\\u0011�b\\u0019�Du��:؛�7\\u0003�[�\\u001ef&4��4�\\u0016m�B�t �[z�t�uv\\u0004'A\\u001ci��%br0�2\\u0015\\u000bx6�v��q3%�L\\u001e_lp�U?�a�K\\u000fZ�\\u0004Y�\\u0017\\u0013!��2�z�F��֯���p3L�;�Ĳ\\u0017[��f!��e�q\\u0010pc�ʐ�ȹ*�\\u0005��[��=GSPJ�\\u0018\\u0016<Z�����\\u0019ơP65]5\\u0007QDf��\\u0018�q�\\u0013x�]H�t��:�C\\u0013@�\\u001c|\\u000eU�a�@@q�&�\\u0001�v��U���'@\\\\-�\\u001f����º|���\\\\���\\u0018\\u0000�\\u000b{z�#\\\\�\\u0006��w�y\\u0018N/$����6AMx\\u0003�\\u0014�9���2& X_`B��ݔ\\u0012Z��X�փ��U���\\f�\\u0014�\\u0014R�\\\\\\\"Cy\\u0006�w��mӵ\\u000b����\\\\\\\"��� �\\u0018�̣oo��_)��ˍ�c\\\\\\\"{\\u0016V�\\u001b@\\u0016 ��Q\\u0015���\\u000f�U\\u0019o8��\\u0001:@]���ȹ,NZ8\\u0013\\u0016\\u0006�l�|RH�n;��\\u0012-�3��ba�Õ2�\\u0018�\\\\\\\"��`\\u0001�\\t�5���\\u0010C\\u0011\\u00008�e�S��^�\\u000eB\\ta\\u0011��F�� \\\\��M�R�D\\u0019�t�a�FLG\\u001a\\u000br,:�\\u0017e�QJrRNS\\\\\\\"|��\\u001e\\u0013#,Jz�\\u001a\\u000b�i��0c9\\u0003\\u0013\\u001aeS\\u0012�JT��n�O^�i����ɛ|\\u000e�z\\b��p=��kTq��dM\\\\\\\"��**�\\u001a.���z�U���&��ز\\u0015\\n,�R�\\u0002\\u0019������Gp�*\\u0013�)-\\\\\\\"!&�k�s\\u001aI�䅜�8�[�^����G��\\u001c���V��+�\\\\\\\"\\u000fn�}/�Sk��qg�\\u000e;#��H7���@�3���@cm�zi��|x�K3�\\u001d\\u0003�:q�\\u001b�\\u001fJ\\u0013�����3XM��7\\u001a�\\u001fڵ�\\u0006/\\u0016�*K7��6�}����ž5~,�Q�\\nU��۵)\\f8�\\u001f\\u001aDL�\\r�\\u0017\\u001e�6��h�\\b�=�8�#�E���\\u001dt�(����`�u%%�\\b �[�\\f��\\u0014t���\\\\t�c��%UN��г|4�\\u000e��\\nr�;�$f?hT\\u000e�u�j�Ŝ��d�J���u*\\b'Ǹ���l�1@6]\\u001b��Ǎ�!ŗ4��\\u001d�}XP�q8�d\\u0006�<��u�\\\\���p1�l(�\\u001c<�n\\f��#��o�u�\\u000b��:4j��\\u001f���O�Z�\\u0014QcC\\u001b�ɘ�e�,z|���\\f��n�{B�4,�����%�=:\\u001d?.���\\u001f�I�َ��\\u001a�o\\u0010-�7K�Wi��܌>Q�\\u0014.\\u001btl�P5��A�mVq��1�.a��%�Io$or��X���on��9�9�<�$˗$�<cM�\\r6��\\u0005,\\f�7r@\\u001a\\b�'�Q�ɇ�P\\u000e��\\\\\\\"��\\u000f�\\t�k�K.8�IC\\r\\u001c\\u0007b:%\\u0013$�4�3ƪ���X�pJ�.:i�ҕ�\\u0000\\\\\\\"�q�\\u0014�H���\\nn\\u0002�\\u0000v��R�^|\\\\\\\" \\u0002DJ��\\u0015\\u001f\\r)�r0��C\\u00024�4a��͓��c��쎮�gar6���}*�S��GiU.#\\u0003x\\u001e�8�?:Q�H�w$0FV\\u0019��o}�ߥ]��q�\\fFS2�\\u0007�\\u001b\\u0006\\u001b��\\r/�'�b3�L�a\\u0016\\u0016\\\\\\\"�\\u0007��J��[\\\\\\\"ݴ��\\t\\\\��\\u0019;�\\u0018��0xr�\\u0004�ˉ\\u0001\\u0001��d;�.\\u0001\\u001a��~�@�D~p���\\u0019RT����\\u001a�\\f,�`��ٖ\\tU~ٷ\\u001d�jJ���\\nU�\\u0014�a2��\\u0012\\f�����4j0>إ�U�?.۩�mS���Q�\\f\\u0005wϑ�\\nӤ���۽�s͊�%\\u0018�j6�U����Ӊ\\u000f\\u0018��\\u0004�4��\\u0005.�#Q��}6�\\u000b���-h� �f�!�\\u0007n��F�\\u0000\\u001fBu����\\\\\\\"\\u001e�\\u0000�\\u0012Bž���Q�$�\\u0019cA4��6\\fn\\u001c�[���.S\\u000b#\\u0005qexvǼ�H��K[���q�׍0r��<�a�ڈ�X]��R�\\r:����o\\u000b?y��_\\u0004i�a�+�j��j�&~:lj�-�\\u0019��\\u001d�j\\u0006�?�[���$Q��dѶ�\\b�ޕ�L�s�68�F�+*��\\u001c�q5�����\\u001e\\u0000ā�\\u0000u��u�Gq]c�\\u0000'�qdG�4(��Y;\\u001b��RAc�$�1�O��lc��B\\u0000��\\u000b\\u001f��:}kܾG!�\\u0015��ɐ��n�zۭ]���\\u0006$��\\u0011�\\u000e��nU��K�\\r/H�qY21���]�;X�>��U��͏\\u001cSra�2e��,�@���\\u001a��0 ��O�\\u0010\\u0000*�&���[�Q �\\u000f�M\\u001b���8�X���ate�\\n�\\\\�\\u0017��q�8��_Ό6� �\\t\\tn��X�\\\\dn͇�&Lr/��\\u0007rt\\u001bnmzO\\u0014X���e��\\f�\\u0000T�oB��޶\\u0016�\\u001f�JnF���`\\u0006�\\u0016\\u000bN� �\\n�&Id�/��}�<$����\\\\h�C\\u0010i\\u000f,�>c\\u0019�\\u0018�\\u0003 �u'��GÌG�&Y��\\b�We%�./�[���{�DNS G2�!k�S�\\u0004t�(�^�f��\\u0011���\\fp\\u0018�q��\\u0014\\u0005J�(k�R�J�*T�R�J�*T�R�J�*T�R�J�*V׏��1��\\u0004F��cK$�\\u0011�Y\\bE���\\u0000\\u0002n�=oM0\\b<v2�\\u0000���\\u0000\\n��\\u0018�y$RAP���TS\\\\)P��Mr׻'��Е`2A\\u001ağZ�����*��\\fk�6������r�<s$�Y��\\u000b�~\\r�JU��(�&TR�y�2¦���h/����>�ō(�ok�AJ��\\u0016�tn�=�P-�֧����U��O\\u0019�I]Z���6�ZO��$c��Up;X�F++�\\u0010Z׶��J�O?��1Ȗ\\u0012'���_���#���\\u0019]��#�ESD��\\u0006��.#�F'��p�)��� V%ݴ}'K��\\u0011�:�(\\b�i�����k���Z����:�^�p��$\\u0010í�z9�,I�|�\\u0019U`Aeb��Y<��\\u0019��tА;\\u001fJ�)�m\\u0016$V\\u0012[|�m@��u�ԟ�-�E��k���\\u001b�*͠m�?Z�G��DU\\u0010�@�@�)s�y\\u0004�9��'�\\u000b�\\u0002GP\\u0002���<|HfE�\\u001b\\u000b��)�8k�ˑ\\u0000\\\\\\\"U�OS�3�\\r�S��U�\\u001er��\\u0010 ަ\\u0005�\\t�1Z\\u0005T�I!\\u0016\\u0000k���\\u0016\\u0017#�>\\u000eL\\u0011ȆY\\b۸��X�E_ƇL�O'\\u000b>S\\u0010|x@\\u000b(���һ{ۭ�i�\\u000baǗ\\u0015��\\u0002h��;����ҝ��I\\t\\u0006ޣ\\\\�\\u0017\\u0003a�� �������_�k̿��8�2%\\u0004E#5�A��\\\\\\\"��\\u0005[��\\\\\\\"���v�\\u0000�\\fu�ʈ�yx�n\\u0002IV\\u0013\\u0013G*\\u0006�\\u0011{��=hd9\\u0012q\\u0006E\\u0007h���\\u0000�R��Y�Y��k�\\u000b\\\\\\\"�g�q\\u000e\\u0004o�ޔ�+&\\\\\\\"�\\r�L� �����Q��,\\\\��\\u001c;,Lŏ�\\u001c��m�\\u001f��,Y���N�T�X� �[�?\\u000bќw\\u001d���K\\u0010`����\\u0000QRè�\\u0016�� ��C8p�q+�tI\\\\\\\" \\u0013��N�14��=�\\tré��m�A�g}�m�\\u0011E2ܔء���\\u001f֋;��7\\u0004v�R�>!��L�����\\u001bWV6�\\u0000:g\\u001dyVll�2�~�Qrq��b��,�2J�x\\u0004\\u0016r�\\u0003�@)\\u000ed�\\u0010�\\u0014�\\u0000�M+M\\u0014(�E\\u001c�ѡ;n��H\\u001dϥ.��p2ݾ�V߹��믠\\u001576���ux2*��S*���\\u0011Ċ]�.FT�\\u0014 ���\\u001a[���\\f\\u0016�*�����\\u0011����\\u00164\\u001c^ReJ�LD\\\\\\\"�ٿs�}���<�'&<s1/���m�����k.e�\\r����P%��>����+?n\\n�A*��\\u001b(��|9�Џ\\u0010H�u(�7Pá\\u0015�Ǐ&E'�\\u001b�!\\u0004n\\u0016�mk]1y�cυZh\\\\\\\"a\\\\\\\"������ݫ\\u001f� �ȕ�bۋ#\\u0015�\\u0010�u\\u0014��m��ݵO\\u0007/p��^5��H�ƙpь����P\\u000b�Z�\\r=���O���&.d�Jw\\u0017�����O��3\\u0004e1�\\u001b�v�\\u0006�ۏS#�,�,�7��~���J1 \\u0000\\u0004E/�\\u0005]����F�\\u001cMt0Nw7�\\u001c�`���$这�2��\\u001a-�v�\\u001fCk\\u0007�E�]�m���\\u0000�\\u00127�Ԑ\\u001bZe�U�oB,A��!\\f�k�X��n2�6\\u0001J�\\u0011���?����@(\\u0005v\\u000e��Z�桖<�%�Lp�\\u001ak�b7\\u0010\\u0005h��L8#�ѕd�̒):�F�R~QL��\\\\\\\"ؗP�\\u0017[�К\\u0011���bLV�9�y8�@��.��\\u000e���\\u001e;L��ַ��މ��=��˰\\bX)\\u0011\\u0007���ӧo�(�ˉ�hQ\\u001b�~�\\u0017���l8���������\\u001dnF���E����\\\\\\\"���ϖa\\u0006WV���\\u00105��R�a�\\u001c�ޅ\\u0002H�Րm#�\\u0015��d6\\u0010�,q(,�������R��\\\\�v�)�H�G\\u0001�S�\\\\�\\u0000\\u001c�&\\\\��w]ń͍�\\u0000������+���,\\u0015\\u001e�w�<�SG�r�ewW\\t�ie�\\u000e��e��F��fk6��=h�S�u�\\f|Xݗ'ڱ����\\u0000�\\r*ܮ\\u000f��O$�1�\\n\\u0006t�\\u0001r\\u0014P��h\\u001f�J��8�.��i�(6�9\\u0015�VI�\\u0004]c�#p�4�\\u0003\\u000e\\u0003�\\u000bM\\u001a��7n�~��ƕ\\u0013zM ff\\u001d~�\\u0007P����!b$�Y4\\u0017}\\u0001���kNE��\\u000fz��6l�\\u0013�뗦�uP�#!H�`\\u000fK�\\u001c�\\u0016�s\\u000e~�B�Y���Ѵ�5ֽ�\\b���\\\\���6��j?�1�O,'\\u0012)V\\t&�\\u0019\\u001d��-vck����\\fO\\rO�Uc������ҫ��|P\\t�\\fB\\u0018��5$�m?\\\\\\\"k�;(deJ�B���kk�_�r�\\u0000���/��\\u0006C\\u0001wH�9���\\u0002�o\\u001f��-񎮥Q��=ߪ�w�\\u0019\\u0014\\u000e�H#��G2a�22 ��h�\\u000f����0�\\u0007\\u0012\\tB+>�\\u0000�u-�Z��Q�s\\u0012�\\u001c�R �A,�u\\u0001�+�\\u0000:?\\u0017\\u001a\\u00181�em3\\u0012w���\\u0003e��L\\\\\\f|�Ă\\\\\\\"#�\\u0019in�\\\\\\\";�G�w��0ӧ�b^ۜ���3>�Q)�ڂ��\\u0007C�\\\\\\\"㽈�h`٫�*$�\\u0014�i�z�i�!÷\\u001b\\u001f�2\\u0016d�U]�6��s��\\u001d�m\\u001dv\\u0011p�G¨�\\u0000L�S^�T\\u0000\\u0006��D���1��N�{gc��I�u����\\t��\\u0000��\\u000e�&K��f��U����Bq\\u0003��&*��(ÔK���ON����\\r\\u0018��\\u0002M���V�*\\f�\\u0010v�>C\\f�\\n�s��%�ę���*�Z)%䦴'����\\u0001Q{|=iG'�2G�.,eDN\\u0015�jUI\\u0016? j���LֈL�;v0\\u0005Z����Q��,\\u0007��\\u001f���\\u001a���,��f�\\u0007�$�xm@gE>F3� \\u0000\\u0001��wQz��@8��j\\u0015��\\r����cq9��ŏ4�u�\\u0000�*5e��i�\\u0007���\\\\\\\"b?��\\u0013\\f���}#�$ΎVd\\u000bE(�|}�7\\u001e�ЃKF�҆\\u000f?\\\\\\\"\\u0017��\\u0012m�\\u000e�\\n���\\u001b��2�R�@��1e\\u0017\\u001e��h\\u000e��\\u0011��,5�l;�����\\u0011D�tD1���m�\\u000fZOh\\u001c�\\u0002Y�E'Mi����HƉ:��7����\\u0004O$ynU\\u001a���v���׼�B�Ьr�\\u0014��@E؋Zƫ�A�b�✼g(U����>�۽6��r�͌#�����S�R)�W*��o=x�x�|\\u0004\\r���މ�\\u0012R�I�禢��R�\\u0002U�\\u00136\\u0014e���\\n�R.\\u0006�\\u001a+��L\\u0011�2�ʲ\\u0015]��6\\u0004޴\\u001cfbqH0\\u000e�����V��������9\\u001e3+�_��4Ѧ܉����_��_\\u0016\\u000fi\\u0010G�\\u0014�\\u0018|�\\u000e1�2k;6�EU��x2��\\u0011�\\\\\\\"��1\\u0017�.\\u0006���9g�\\u0006kFbk�V`\\u000f�jmVcbM���\\u0002�$��`�,M�ź�����,A�(��o��ǥ^Lj��[�\\u0003�ZO�ˏ\\u001fhe\\u0018�\\u0016B��eI�+Jy\\b\\u001f\\u0013\\u001a��\\u001eEfb���m_�Ƒ���3&��p\\u000e�FA��j��n6<\\u0015�\\u001e&S3F\\u0013�\\u0019�:�A�kK9^BL\\u000f�\\u0019\\r�\\u0000D�:�\\u0015`uR;i}*H]\\u0000�i����Z����\\u001dG\\u0001�\\u0002���ț5�5��1\\u0011��\\\\�]��¨+&\\u000b\\t�\\u0003\\\\\\\"\\t\\u0001K\\u0010��ڍ?�Y��w4\\t\\u0003\\r�G�a���[Q�Ņ\\tv�%#��-n�~��z#$�v\\u001b�B�&\\u0017hf6���xI����K'3\\u001a$�Lx�\\r��~?�]p\\\\\\u0006G!\\f$���G*�\\u0017w{kr;�m\\u001e\\u001f���\\u0013�\\u001a�\\u0000h\\ry�#`ĥ&`�!2hl��S��1��ۡ�¥��`\\t��c�\\b��o\\u0004ξ����ɒ\\fy|�\\u0017($\\u000b`�u6׽\\t\\u0004�\\u0016tK�VѶ���\\u001b���\\u0014�/�V���;�\\u0016�r�\\u0005���X\\u0007'�=���Q�Ǵ�\\\\5����\\\\k:\\u001d�\\u0017�ԡ\\u0006ҌV7\\u0004\\t�����\\u0012 �#��C\\u0003\\u0015׾�RmGf�+�Ʊ\\r�\\b!4:\\u0001��<�G$\\u0010#(m�*��@\\u001e�~unfaǂQ���\\u001a�s��\\u0011D\\tF�t�b��6A�6e\\u0017dL�u�\\u001d�\\bҹ�s&+H�Ī�\\b&�v�l?�]`b��\\\\���.�\\u0002�w�m�\\u0011I��c�F3�g}\\t���\\u0014ϋ�g��X�K����]�Z�\\u001d�G-�\\b����V�+��\\u00177�͍�F�5�\\u0005�s]�\\\\��ʄ�+��N� \\u0002u��Qp�\\u000e4���s�B\\u001bM{���΄��\\u0011`\\u001b��\\u000fM�՟9�DRf���-���J��m\\u000b5��\\u0000�e\\t��#�$�\\\\m��H�R!~��3\\u001a\\\\���y<)*諨b�\\u001f�q/\\u0018q\\u0014�}�&��\\u001f��\\u0007�Ý\\u001fy]�u\\u000f�\\u0001n���ۏ�9\\fq�\\n�������E���\\u0019t�btojӑ\\u0006?\\u0013\\u000ee�\\u0016t\\u000f���\\u0014�\\t��lK\\u0004���\\t�[\\u0005ۯ�Vr8靏��\\u001e'Y!~����z�,�bɔ�\\u001a\\u0013{\\u0002�\\u001d\\u0000�^�7/��2�1���.{n=��GLiΰ�\\r�<�n���'�.\\u0007z;'\\u001b!�\\\\\\\\\\\"���E�\\u001b.��\\u000e�7\\u0013\\u0014O�\\u0018��H\\u000e�;�}\\u0014\\u0001Fqܜ/2��(@���.G�Z����\\u000f�FC�+��S��\\u0002\\u000fM*\\u0003��*��&\\\\�\\u0011�L��ΔF>6w\\u00114�O -3�V�O�����o�Ln[:&�(\\u0019��Wi�c���kOs��\\u0000v�I���]���6�\\u000f��]q�\\u0007��2����\\u000f\\u0018�!t\\u000e:]j�%DƵ�K�+��ށ�b8�_��\\u00134૭�fQ#h\\t\\u001f���֫�3b�bH�M��u��4��0�\\u0010܂K\\\\\\\"ɎB7�Ł�\\u0000��q����E�\\u0019�^�?J��OKU�\\u0017�`� \\\\-\\u001c(�\\u001eR1��i�iRr(�\\u001b{�x+��ơ1�� ��T��~\\u0014O��<S�gő!�jFL \\u0005.��\\u0000�s~�4��y\\u000eVN5\\u0010�\\u0012ĩ\\f\\t\\u0016\\u001e��\\u0003�O��g�dd���A��`4P��Mk:�=���fF�DzV��ϊ�\\u0011\\u0011[V��0f��S�\\u001e7.�\\u0014�4\\u0019\\b\\u0004w*Y6�C[�k�.Xq���s\\u001b\\u001b\\u0003���ߏ�)�\\u0016�¨I�@u:u�r8y��>��x\\b\\u001bP�HI��S���u`b�8t+���\\u00066�ZC�������b��q�b\\u0019N%��\\u001c���\\u0014H\\b��K����rrf[\\u0015g-�on��A@\\u001d\\u0001�bl&H��-Ӵk\\u0019�Im�=��-�\\u0013&$��\\u0012�-\\u0013�b\\t���Uݹ�˛�Vɐ 8P�N�\\u0007�\\u001c9V>Q&\\u001f\\\\\\\"�X�R/B���Žj��$h\\\\\\\"\\u0013�T�X\\u0013�\\u001bM��\\u001ag\\u000e\\u0016\\u0000�iy\\u0002Xʇ���\\u0004j�ץ0����͛%�������,��;tG:�Wi��_c�_#\\u00132+�CҪ\\\\/���s<jcg6Ie�U��\\u001d-߭(\\u0019\\u0003\\u001b\\\\\\\"O��]\\u0019��\\u001b��黽8���\\u0017' �\\u0017��2)\\u000b��������̒yp�%�\\u0007\\u0000�D,��6�\\u0004�E�!kZw\\u0007���C���1.Lk�o�m�U��je�G6�g`M�~��dI\\u0007.dǗ}ɐJ�}\\u001b����\\\\c��\\u001f �̓+�`��\\u0011�[�S�0���\\u0011�H�n\\u0012.�f��R��Q �\\u0018(��?�����NLl�\\u0010�\\u001a�j����q�7��\\u0004\\u001576�\\r��2y|di'��Ů\\u0018\\u000f�U������\\r\\u0018\\u0005�Y\\u001b���\\u0000\\u001a�ns#?\\u0018�O��r��\\u000b�m ���mLiX8ɸk��R|e�ܸɉ;,�b�:?Y'�q1���P��-�0%�����&���H�\\t�~I�Y�\\u0007�HBE�N���Gc��1\\u0017\\u0017+9be>(���U_��o¹n8b�B\\\\SdQas�;G��\\u0016��$L\\r��Z2c�Y\\u0001\\u000feˊU����(���}�?\\u0015<��\\u0012\\u0001#��\\u000fk3u�W|�K�\\u0000x�3Ʒ\\u001e�d�)��<����\\\\��0�^1e,�\\r��P�yyQ�Mu�\\u0016��6��t\\u0014\\u000e�\\u000b=ZjxӼ<#;��\\u00063z�%��\\r�H��\\u0016GپD�\\u0018\\u000e.#fUg{}7:\\u001a\\u0003\\u000f$c���m\\u000eC�6\\u0000�P�lt��1ř�&>�.���\\u0004\\r��I:Q\\u0019\\u0011E���\\u001e�\\u001c\\u0011\\\\\\\"��#��}GME�:�t�\\u0004��\\u0014��vk_\\u001a\\u0000�s\\u001cD,[��A4L��)�e./\\u0014\\u0004�G��D�\\u0004T;�[�֯08|���\\\\����#l\\n��U:\\u0016���\\u0000Ѫ�<x�ݓ\\u00030��W;�\\r{�p�������������U��˦�\\u0005���Wa\\u001dGS\\u0000\\u0013��S'��\\u00190b_�MF@\\\\\\\"#��\\u000e\\u0015`�.&T�1\\u000f\\u001a\\u0003\\u0010\\u0004jۅ\\u0000�lRǒ�#��H5�[R��k���g\\u0011͒���\\\\��54&L�\\u0007��4��\\u0015T2\\u001d��oF���D̠�������e�{d\\u0003w\\u0000@h3�����8�t1��ԙ,\\u0001\\u0000��\\u000f���+�Hy�uV/ގ@��A\\\\\\\"� ��m^��\\u0010�$��\\u0003�v�\\u0013��\\u0004�WO�Ä\\u0005E�M\\b-$~�1��ƵwI�:D��LT8C\\u001bX\\f�,\\u0016���̢$D�\\u0018��9dK\\u001f�<aC\\u001d\\u0016׶����\\u0015�����\\u0012�$c\\u0019[�\\u0014��}\\r��,����Ɓd�i�n�����4��V�G+\\u000e,\\u0018�ˎ�#,�dgk��ņ��N�2��j����q?S����-�����x$Hq�FR�;M�\\b���j��\\n���0�\\u000f��ۧ����YXR�d�-�,��R޺\\u0001�� �r\\u001b'-�o�b\\u0005�XZ�֨��W\\\\N�m�]&y\\u0011�CT�R��ԩR�J�*T�R�J�*T�R�J�*T�R�J���w\\u001f�\\u0007S\\u0012�\\u0002�\\u0004��#�Q�\\u0004B0\\u0003���K�^�\\u0005\\u0015��Z\\u001cx�\\b��\\u0014l��FYN֙����$�\\u0005���$\\b��'�l�r�6�9\\u001f�B�\\u0007��\\u0006����m�E�\\u001d�\\u0011��_�~X3��������\\u0005�\\\\\\\"�\\u0016�z\\u0013�g�\\u0018X�\\t\\f\\u0017�\\u0004�&�\\u000f«��\\u0000���Gkm�F�\\u001dt:�\\u0018\\u0000�\\u0003ֶ�3 �䶐4>�5���|(r#R\\fs\\u0013%��l;\\b�=OZ�\\u0016�\\u0015\\u001ex�F��m�ޟ�\\\\�<�x�>�$�CԹ�0�\\u001fZ�,u�S\\u0000�%�\\fM���z\\u0000�1�\\u0005�\\u001e��\\fx�H�\\u0003Gs$뭳�o���̃%C���K��\\b=�~���\\u0010��\\u0014n��P{\\u001aY\\u000f\\u001f��7�ACb�:\\u001e�N�T\\u0005���lX�m�>7�MA�.D˓\\u001eEQ�\\\\˓N�\\u001a��Y���l��h;���\\u000f����)*[z��n/�4U!�)\\u0006��\\u0016����\\\\�\\u0000�I����,j,W]��'��N�7�t�׳?�.�zU����V�M��\\u0003��W\\u00133x�+v6�iw�9��e\\u0004�K\\u000b\\u001a��� �����V��S\\u0007u���\\u0000����\\u001a?��o��F�̍�0ޥ�\\u0017\\u0005YlG��?�x�`}�(�\\u001eK:@�P��k���)����\\u0000A��c�}�\\\\�\\u0000<�I�x����F��{���Ƅ�۰��\\u0003\\u0012eƋ�m�� \\u0003�\\u0013Y#�f>!�v\\u0002\\\\\\\"���\\u0002m�\\u0000M�A���\\u0017�\\u001ai\\u0002��Tbt�6����VE�K��|;�\\u0019�\\u000f$H�HBos��\\u0016��U�J��\\t�\\u001aS�\\u0000��\\u000e5��\\u0000�[�\\u0016��\\u001cG���\\u0003\\u0011��^�]���_�QO\\u0015u7o+�\\u0000_[\\u000b^��Z\\u0006�\\u0012)W{\\b\\r�\\u0002J�۵\\u0003�@�\\u0000\\u00025�\\u0000㩬�\\u0011��\\u0000��\\b%�f\\u0016#�����H���\\u001e�a����ȲƇ��&����u���Ć1\\u0012����\\u001br�\\u001f�^��<�4���\\u0011�v\\u00066a}�����H\\u0010g�\\u0000�\\u0017�<\\u001d7�\\u0001��A\\u001fh�8WBn\\t�P\\u000f���\\u001b��ae�|wh���\\u0000$\\u0006���D�F\\u0000,���o���Y�\\\\\\\"wE&�\\u0005�_�Ɣ��i3�\\\\�\\u0000\\u000f2��]�2>6^�=���\\u0017\\u0017\\u0019�)s�n���m\\n�mq��r�F3��D[��o�T�G�\\u001e'*ۮ\\u0003[��\\u0016��:�K?�ř.>0P��$O-����/��j�m\\u001e��qf\\\\�F\\u0000l�17�\\u0010\\u001b[���w�����\\fNc\\u001b�\\u0002ZH[\\u0018**\\u0001�徚�`�\\u0012� i\\nc�#\\u0011�\\u0017,E���\\u0005�u�I��l91�(}�\\u0018������ k��|j�\\u0000��\\u0001�)��iK\\u0013]\\u001f/.\\\\X�\\u0007��ۣm�����&d��4�\\u00124B6\\u001bAс��n���Z9r�3  �\\u001e��l@I1Qm�I7�\\u0006��O\\u0018�~��\\u0014v̕�~�Ó3�\\\\Y5p5b:��\\u0000*��x���1\\b\\u0000k3\\u001d�[�^�r�\\u0001�X�V�\\u0010�]K\\u001bt\\u001e��@s\\f\\u001b\\u0001�PX��rN�kVr�\\u0012�\\\\\\\"�a�1�6�\\u0016����\\u0019���\\u0019��U\\u0011;~�/P���NdBL6���2��_�x[�2\\u0000��\\u0000�\\u001a��d<�����#GT�\\u000fzhk\\u0002��\\u0006�\\u0001<�� \\u0007��\\u0003���j[.4��\\u000b\\\\\\\"\\u0012\\u0016G�`t\\u0005�CF�dI\\u000b�x�- �^��]*ɠ\\\\�q���YgE'������\\u0010�\\u001e>J�3���v��>�zҮ%��\\u0012OH\\u001cMi|��92:,��ߔk?\\u001aA�\\\\�M\\u0013�d_!r��#�aL�|H�1d�/q3�\\u0011�U[��:_������_{n$7�\\u0006�\\u0003WqbI3�!bw�B��u립(�\\u001a��<>\\b���S���3�1&��DR!�<�b\\r���\\u0002��QS�o<���\\u0018:\\u000b��5���\\u0016<)�\\u0006\\u0014��/���_������\\u0016ņ&�c\\u001co0\\u0012���6� 7^��cp�&�*+�b%\\u00065`=xɤ�x�:,�\\u0001�\\u0003�\\\\�Z�L|,�LwI��n��\\u0004�=�j��d\\u0005\\u001c\\u0007V��#��UQ�\\\\\\\",\\b\\bD\\u001e�z؛�-��\\u0003\\u0014�sۀ�\\f�0-܏��8�bss\\u0014PͰ2(bn\\u001f�mzQ��L�m��jh�+\\u0017\\n~O#&E\\u0012O\\u0002F���.��6��&4X|��:����!�\\u0000����Kɔ�&ģ�7Q�f����b�qBȊ�;0�Z��\\u0016=�DL�\\r�H$j�2�\\u001bح\\u000f$1�\\u000f\\u0002�*� \\u001a[�q�&x�i�\\tX\\u0019@(G�l�����mN�?�c\\f(_��3\\\\\\\"\\u0002��/�_�� \\u0002ޑ��&13���\\u0003$��Q��v��\\u0000�K�>\\u001eB�:K��\\u0004�:(\\u001b���k�R5�Ǉ�ft\\u0010��'U\\u0010��b(Q�n���w�\\u0013��#�l\\f�Y3U\\f�)ܶ\\ft\\u0003a���М\\u001e\\u000e6O9�\\u0010���p\\u0001\\n��^Op����Pu\\t\\u001a��[���\\u00058�369[���9h�Iq�YZH�r�\\u0004(�\\u000bX��>d?�͌��\\u000b\\u0004\\u0007��/Lyn>x\\u0013\\u001c\\u001c�\\u0005�\\u0010\\\\\\\"H\\u0015��b~��\\u0015+\\u0001�\\t|S��\\u0013�\\u0001�KN�oZǛ+6\\\\=Ҋb\\b�:J��\\u000f�{\\r�Ydȇl��lX)_Z/\\b��)+3\\u001d���V��m�C^����bF��i�o!N��ڳ��͇��\\bT@����6�\\u0007��\\u0000���W\\u0004�F��'�~L�1䜆,\\u001a�Q�Or��5JgE9y�\\u000f�뭎���\\u0006vTqG�ح,,�\\u0011n�\\f\\u000e�ƨ��\\u0019���\\\\\\\"�\\u0000n�_�\\u001b6�cqWs���\\u001aC\\f�$�L���s\\u0003���\\u001aƑ�E;*�l��d\\u0001M�\\u0015]��$Ӄ��\\u0017*H�h\\f!��'u��\\u0016��5�/\\u001f#�\\u0018�e`\\u0007R�����Ⴐ�y\\u0014�\\u001f�U ��Ԋe�$[\\u0018�\\u0018�@\\u0000H�a�\\u001e���pH�Mk\\u0018ʸ�\\u001c�:�Y�� �5��I8��3K<�v�L���궧AL���\\u000eH��P�)e�Ԁt[�}j�+\\u00079��!�&ɔ���i\\u0001~^�����s̹*��n[!l@sП�/F�\\t$�B��5�\\u0006�WdL��\\u0005c��6<b���W><��y<�[�\\u0000\\u001c�׷]���M\\u0013/';�\\u0005�FDl����}\\u0000�՟�r�䡌F��v�\\u000f�k�Z����R��ٓ\\u0015�E��[@���\\u0002��L�a\\u001f\\u0016.�%\\t\\u0016���=j��y��\\bY扂��\\u0002\\\\\\\\�|�^w\\u0010��+�\\u0019�H#�\\u0018v�S\\f�O���|h�Y�XI�.�5$�Rz[҃��wX�dE��c��\\u0000����\\u0007�\\u001d&�\\u000e\\u0016��.+g\\n�\\u001d���dǭu��\\u001c>̒���#z[R����B쏐\\u0006�Ē=U�\\u0013I2�s�\\u001c8� �\\t��q���F/-�G\\u001c�R&:m$X\\u0001��\\u0016�\\f��`O�\\u001aO���.�\\u0014$�\\n�b�\\u0013�S\\u001d��l�\\u001a]����w�B��~V3C4�X��+ٷ/k��z�\\u0012`O�F���\\u0006�I\\n��̡N�m�4Ҵٜ�rќO\\u0019U�/\\b?����)8�u3\\u0013�7\\u0011:\\u0002G*~_)q��n(,h\\u0011\\u0010��k;��&L\\u0003�bK��R8\\u0016��\\u001a6��)vK�d\\u0014B]�V�)�Q�J�ō&\\u0017\\u0012��I����}M͏�.cr1�C�����\\rƋ���I-p:\\u000fj��c\\n2t�\\u0017��\\t*�E.��gS�C#���=\\t>�{�S�\\u000ec\\u0013'�G����J�\\u000e���ғeD�y\\\\\\\"!X�f��/\\\\���ni�\\f� /O��JNO\\u0015\\u0019DJ�~Zzy�\\u0002�QH\\u0004]�T�^|����\\u0011 +�(N�O�Y\\u0011���\\u0012\\f�(��d�\\u001fo�n\\u001a���{���6JJ|o�\\u0006b4�\\u001bz�p��y(!�b|�JHAK��i�\\n5��2�deA�S\\t\\bꤝD�;S�^\\fs���?�1eB�Vuݧ�\\u0005͌|��.?�\\u0000\\u0015G]�ukv�{>\\\\\\\"A\\t���\\u0017,X���ܚ%0�#�W��]��\\u0003���:��\\u0004�cH�I���D��6��c�Ҽ�p��I0�,��!\\u001f^ށo�ޕ�\\u0001�/�h��8k�oi�a�\\u0014׋ȇ\\u0016\\u0015�w�h�Dv:؛��\\u0000SK\\u0016lh%l�)�\\u001b4]#\\u0002�lK\\u000b�=\\rG\\u0004�\\u0007�d�bȋ��\\u000f����b�0xzP����l\\b���71���\\u001e�\\u001dM\\u001b���2a�y��E۸�5����҃��L�8�24\\u0012\\t\\u001aR�\\n\\u0005���ښ\\u0018�)������+���*u���L�M쥏\\u0006�g��R�ōr.\\u0004-kbd�}wۗ�d\\u0001e�t�i\\b�n���_��d�\\u001b��ErU��\\u001b\\\\�]��d��ǂ5�E����v۸�&��\\u0000\\u001a�\\u001b\\u001b6Q��\\u0014hȪ�H�w�\\u001d\\b\\fGKU�\\u0000^\\b�\\u0006=��&R;Kbdx`\\t�\\u001b�6ި�(�!S �2I�M����ڿ:�5qRYp���\\u0001�\\r���6���ҭ���_��|n>�Dd�F��\\u0017-ef=���X�K��6G��>�Hm\\u0007s��{\\u00021�h�\\u001a\\\\c�[62�:�}�k�m���W�o\\u0014�Ax\\u0002\\u00106�_�R�A���;ʰ�@�ֱ\\u000b����j.\\u0007C1\\u000e4�\\u000bz��\\u0019s`|%�ަ����/Ӷ��2\\u0014\\u000e;�z�șY��´\\t\\u0011�:L��W�\\u0000\\u0015�23\\u0017&Gi�@� 'c\\u0002:ߥ���G\\u0011�\\u001cF�,gh�\\\\\\u000b�e\\u001fH\\u0017�ץS��K�\\u0016O��&)Wp�\\u0018\\u0005���\\u00016,X�\\u0000z�\\u0002����w�\\u001f:�\\u0005w��L��3�U�rb�/�;-�\\t��UqY�\\u0010C7\\u001f�\\u0004NwobWf�1:\\u001b�4�9\\u0019���F,m� Ʊ��n����s�\\u0018O\\u0014ePơї�I���*�I�)\\u0016^D�\\u001c󀄓bJ�{h\\u0001[���)>��~�\\u0000o\\u001ekP++>4]H}��aº���ʒ@�Ʋǣc�M�s�Z7\\u001allhէQ�n�v��5�T~T\\u0017\\u001b��$�g,�av�,�Av\\u0017+ң��E���n\\u0004��!��-�z�\\u0019b\\t��\\u0003�C��\\\\o�\\u0014���EKB�!���\\\\\\\"��2U�͊\\u0001�kik��-Tdr#��\\u0018cA\\u0004� \\u0012!>Фm\\f\\u000f��O!\\\\\\\"�\\u0004Pc\\u001bM3\\u0005���\\u000f���@�Q9� ҂Y�\\u0004\\\\�\\u0000���Q��\\u000f�5Xܮ<�\\bl�ҤC\\u0010\\u000e�S���qb��F�\\u0003���\\u001c��گ��\\u0011�\\t�\\u001c\\u001d�Jm��)�C\\u001c\\\\\\\"A)�\\u0014R\\u000e�����^\\f��i\\u0001��o!]��>�+^��w�)X�.%l�\\u0013t�y�w�]A\\u001e>N\\u001c�yZ#$j.J��+)��\\u0014���\\u0000o�г2L\\u0012\\\\\\\"M�Ko�?*\\u001329G(��0T�%~��h1�w<�pc<pHdft6POM?Υ����Qm�\\u001e�֞$bLh.��-�g�D-�\\\\\\\"*��cƞ\\u0014-��\\u0011\\u001aߢ�Zѷ!�`�\\u0002n�\\u0014�%;�\\u0012M�sb=k%\\u000ei�.\\u001c��d\\u0018��nmZ�7-!�nA$3G�#H���\\u0004��\\u0007¤\\u000f���\\u0019�\\n�]���d\\u0017{\\u0001Y�F\\u0003�3`�9a�*��\\u001e���\\u0011֘M\\u001cm��\\u0012J\\u0011�h��\\u000e�\\u0018\\u001e���E4!�$\\r�\\\\\\\"Ð�\\u0007��\\u0006Y\\u0005���Ɣ�3�|,���@���7C}�S��\\u001bz���a�kt�\\\\\\\"��\\u0014B�*d\\u001d�\\u0000��#BG\\\\\\\"=�̜��˃\\u0011B\\u00152G�\\u0001pIa�һ�dL���\\u0005�b�@���� j;М\\u001bH�����}�OX�]�\\u0014�\\u000e78K��1O\\u0014��c��)#F$Z�\\u0011B\\u000b�\\\\\\\"�I�\\u001e�Y��ā\\u0006�0��\\u001dD��\\\\V7\\u0017���<9���\\u00161�U�\\u001564f^40�|b��\\u0016\\u0002\\u0019f%��4��\\u0000\\n���Y�ߵ�rY�v(�[V���^��9�A\\u0015_��2�\\u000b��\\u0002��\\u0016��,\\u001bN�4����e9��\\u0013\\u0016D���t�f\\u0007�[�����( ��B�I���z�̂,F��\\u0018�\\n�����QK�g�-\\u001ac����N�Nףg��kdr\\b�(��!$\\u0011��W��W\\u0002:DUe\\u000b�\\u001f)w@o��,�ӧ�E��H<\\u000e�\\fN�\\u000e���\\u0011����+�\\u001eM\\u0006\\\\�f;13�\\u001e�(Pv�Ӧ��//>F~3x��\\u000b\\u0018�Qb��'u��\\u0015۾/\\u001d�Ә�3\\u0016\\\\\\\"5Fwm��^��\\u000br���ԑ��.`�h̸�\\u00182�\\u0013�\\u001d�&S;rG�S\\nǑ�H@o`�\\u000b|mƮ����$�&\\u0018�c\\u001c8\\nCܒ����PܔY3*�2�m\\u001aF\\u0017\\u000e��T��o�\\u0011�\\\\\\\"�3��\\tf,���^�5\\u0017�jZ\\u000b@3¨e�\\u000b�\\u0016����#�n\\u0014�|�'%��\\u0012��3$�^��\\u0016P\\u000f���������2h��0I\\u001d��r/����/���\\u0018`\\u0003%n\\n\\u0003�x����^i�(�2��F�P\\u001f��آb/+\\u001fҏ>o1�%���\\u0017BLO?�r0\\t�&7\\u0002'a�]t\\u0015)�\\u001b`c�\\r֝R�N�\\u001d(��O�H��\\f�I���@g��Yx� �\\u0015��ױ�m�O�G\\u001d1�\\t���3���&�Z\\r\\u0003��\\u00149+\\u001cp��N涇K��X�x�w�p.�5\\n\\u0017�զ�H+�Hq�7��x��>��GZ�\\u001f�8��\\u0018��Kl[�k��B�\\\\��\\t��+F`N5|��b�Vn�y2t֫�����14I,L�ʹۧ�I�j�gd�^KΑ,*�\\u0000�z|�\\u0000\\u001a�dqyJ\\u001crHVv����`�\\ru���/\\u0012E��\\\\8�\\r���Kl�wn�a�G�O��\\u0019�\\u001e�KN��?\\u001a\\u0006�J�+uJ�*T�R�J�*T�R�J�*T�R�J�*T�[\\u001c3\\f\\u001cv<�D�,~\\\\\\\"���Ir%x��0Wk)��#��<1��c�\\\\\\\"\\u0007C\\u001a]OM\\u0005 ͑0y)#D\\u0002\\u000b-�\\u001f\\u0015\\u001a�s\\u0013\\u0002v�7���r�r\\u000b���\\u0018}�VCH��l\\u000f,b�J�s\\u0013r*��A4�\\u0012I�X[j�\\u0002��A�U��y 2a��n��}����W\\r�\\\\\\\"r[�ݲ\\u0011��\\u0016\\u0017_r��K'\\u001btʓ�]��ӓ��r\\u0014WKEɓU:jb��kb��bV�d'��\\u0012?�C�J��\\u0019\\u001a��\\t\\u0007������Tpu66���$���*�e:�\\u001a�UZ\\u0006�Oj�g.Ś�&�&I>��D�\\u0011��a�\\u0016>�A\\u001f3�UŇ��]\\u001e������\\r�\\u000b\\u0012H�˳sF���z�C��\\n�\\u001fb����\\u0002�{J�T\\\\Q��\\u001c�!�6�B�\\t\\u001a\\u001f��y�dY�\\u0018�\\u0018� 7� �����\\u0017ҳYp�\\u001eA��M\\u001b�޵��\\n����\\u0013vk���\\u0000^�����\\u0000�f�Hrz\\u001a\\u0002���U��\\u0014X��\\fU\\u0006����\\u0002Af��n�ՠ��<�*\\u0016i\\u0016��MF���,��Fu��U:1\\u0003�\\u001d¼�\\u0004��\\u00191�Rx_k[T�H�[z�h�F���K~��:\\u0018�xMj?���&��Y.E��E��\\u0000:�!ɇ�Of>B��������\\u0000�\\u001b�&X�<��l�l�@\\u0006����K��\\b�^C\\u0006L\\u0017\\u000e�+����.\\b��އ�nF�1)vU 4I�Y��/��H|}?I\\u0004�\\u0013.1F(߁�~5Fr�c��V`-�i�cA���\\u0006d���\\u0000\\u0003�98\\u0000�\\u0017Y�\\u0002���H��Ç9-��b:Ù\\u0003\\b�~��=��i��k��\\u0000��W�pE��r\\r��R�s�r�\\b�Ы� �\\u0007Q� \\u0002\\u001cG�9�Ð�ʡ�}}�5�\\f\\u0019\\b_\\\\\\\"��v��\\u0017�+=�aŎ��k6���o��nc*L|a,Vܒ/]A\\u001a�k=�3�\\u0003f�\\u0014�\\u0016��\\u0014��\\u000e��\\u0000V���E�g��X?���B�綒-��\\n�`����3��1�N�\\\\\\u0005\\\\\\\"�@�U3ss�!6\\u001eM�PB���t���u��\\nN\\u001c,$S�\\u0004;A��QY����\\u0006�ѩo���\\u0000*T�A���Cb�\\u0001\\u0016�C�L�<\\u0013\\u0019\\u0006Ɉ\\u0006�Pz\\\\\\\"����q��\\r����:�z��\\u001f�y\\t�!q%��RQ��,>��S~q�q���G�@\\u001dM�iL�\\u0015�VG��//\\u0012\\u001f�\\u0000q\\u0018F�;�o������w@�\\u0000f'O��z�(\\u001c\\u0010�h\\u00160�(�.��\\r�k�5�w\\u001a��\\u0011$�X��\\u001d�2}�!���\\b��0�1�mkN5\\\\�z�i�V�i@ǎ<�;��T7\\n�\\u0002��m�4ܬ�8H�vܭ���D%��\\u0019K<k�78�u;A��Q\\u001f�8��uv+kw�m�i���\\u001d\\\\\\\"�d[�&@2�);Dƴ山���κ���X��S��y\\u00141�,\\n7�ru��wRM1夎$\\u001a�X�\\u0007S�����\\u000b��ښ)\\u0010��ܭ���z�\\u0006�Z4?me�r.3�1���I\\u0002Z���\\u0018X�1]ʀ\\u0000�As��(�3rm��LK�o\\u0010Q�\\u001a\\u0006�\\u0000�Vg�#��ȌI\\u0014�N��`>F��$���X���V��m\\u0014�\\u0007��Q\\u0004�\\u0006`I\\u001c�ū�\\u0007�!�w��\\u000b<y1�p�d)X��.�ߦ���\\u0000��[ϓ6\\u000e܃�ak1$����֮\\u0018�rbH `���+��h\\t��\\u0018p���\\u0004���\\u0016ͧc��\\u001d�f������=|��\\u001c>�}����aq�m��Ɨrȉ\\n�\\u0002\\u0004��P1�랟�\\u0011��\\u001e4�;�$�\\n�Se\\u0017�\\u0011��y.e ���Udb��\\fw��駭h�8�<�BI�&*�7��ZP�[�)�k?�v\\u001ck��1{x\\u0003�'�\\u000e�s\\u001eBK\\b��\\u0006C��\\u001b�\\u001c�9���A\\u0004����!k���os��=\\u0002�\\u0000�\\f3'^Pa�ec\\u0011\\u0019<�������]d�#6Чj��I�@&6��ϗ\\u0011�\\u0011�\\\\\\\"IS�\\u001d���\\u001aM����N�Ѭ{�o�*����G�ʶw7mE�z�c`c�q\\t}�m]��\\r�ְrdH�\\u0013�\\u0018�4�\\u001b��b:Ш\\u0001�IҶ��\\b*��\\u000e����\\u0014��\\u000e褀\\u0012�(����\\u0003�����&́]�s\\u0006h���\\u0005��SL|��p��\\u001e�ƭ�̷>Do��Z\\u0007\\u0006\\u0017\\u001c�q�m����#i\\u0002�;�\\u000e,c�����B{�!x<4�+F\\r��6�{����Y�>k�ǉ1b�o\\n\\u0002\\u0011X\\u0006�\\u000e�\\u0017\\u0017�\\u00169i$t���~>���8�Ϟ(�j�춾�^�ld\\b޲x*����0!\\u001a\\u000e����0�vʻ��%�\\u0012nI�7���d,ȷ�\\u0015m��=��8y�C1��3m\\f#\\u0004�wt�j�~K:\\u001e_\\u00132\\\\\\\"#��M\\u0018�B�F�C\\u0013օd\\t�3Zr�/�\\u0000�� �㾀{S�\\u0013+\\u0013��:֑f��\\u001fP-{����}ܙr�Fv`>����kV��Θ��/f��*�W�� �x��s�\\u0018�8�1W1���\\u001e��K\\u0016��V\\u0007���E�\\u0002UY�o��U�\\u001c���\\u0011&*��s�f롯p�W7'2Y��.�\\u0016:�q~��\\u0012�X���\\u0005�\\u001f���\\u0013�\\u001f�Y��d\\u0018'\\u0019k��u[ܑ�|�*�40�N=�J�q��`\\u0002c�\\u001eF�񘑏\\\\\\\"D��4����@\\u0005ͭJ\\u0002��7�+��{I�o�Z�\\u001f�\\\\\\\"eDn��u\\u001a���4=�2,��+��}�۷��\\u0017\\u001d�� Iׄ�N\\\\�Io#(f\\u000b���D(\\u0000h$hI��<Y��� \\u0006�C\\u001f��zI¬��\\\\�9e/%��ҵɉ4\\u0011��ܲ�K�m\\b�I#�lH�\\u0011��\\u001b2�ˋ��~5r`i�%�a���\\u0012U�\\u001d\\u000e�q\\\\�9�i<Ec3�`V56,4��F�\\u0000$��\\u0000٤\\u0011��v@\\u0010��w��ݻR�\\\\\\\"2�\\u0019\\u001e5;bHќ\\rC��a��f�6h$Q��)\\u0000��u��P��\\u0012J�b�\\f��F5Eu\\t��v��8rҪ�\\u0001b�c�3�ɸk���wx�7��C-��-���hF�0�B��A\\f\\\\���\\u0000\\nk\\u0016.o;��\\u0006T\\u0011�\\f��u�>5J\\bf$ќ��\\u0012����a�SΓd�_혐`*��ȭ�I\\u0005�N��\\u0000\\u0012i>>>$٠L�,qw\\b{�)jy�p�;��B`F\\u0005\\u0016Ğ��\\r�,\\u0011�\\u0012\\u001c��J\\u0000v���Y�\\u001c�3\\u000b\\u000e�\\u0002�3\\u0000���\\u0012c��W�\\u0018\\u00180�c孒'p� �z\\u0012\\b�ʬ�b���R ��-3��\\u0004�/����eɝ2'TX�ݵB�r-�[��f^4S\\u0013<#�\\u0000!T��������\\u0007a��H��\\u0013��ݲ���c��s��KÏ$1ǫ;2��Gz�\\u00163�\\u001d_p.۔\\u0003�҅�6\\t��̒\\u0006���BG���\\u0018�Ȗf.�\\u0002����OMu���&jdÒ��U��4s\\u0014w+�É:E\\u0015ʸ��X�T����\\u000f;/�8�q\\fe#VVIY�YX���i��묤\\u0013ŶPn�m�\\u000fk\\u001a��'�u�Y��os}�OE���\\u0004��0��\\u001e\\fXzT�^��CɟmE\\u0006�T�~�uV\\u0006��۽nk�s&ŕq$U�8�\\u0012z\\u001d.>\\u0014�/\\u000b7\\u0007\\u001e@�\\u0013\\u000b>Ɣ\\u001b�mw|�Y\\u001e,\\u0018��dd)ȷ�Y�*\\u0011�\\u0015GC��V��;kZPFQ�8\\\\�Z�\\u0003���P2,�s��1�9�ɡ�[�?�U>VNO%��\\u0002�\\u0010vC����\\u001aS،Y\\u0018�}�ܛ��(\\u0003�{�\\u0019���=���e�\\u0016�\\u001d:+U��[gQI��)ϑ\\u0017\\u0019E?�@i\\u000b�\\u0018��\\u001a92��7��d\\ro]:Q��!\\u0004\\u001c2�\\u0005T�\\u0014E�R�m�^��/��#����Y��\\u001fK�N�\\u0007�]��dC\\u001ad�\\f��^��N��+6�\\u0018]r�Z�\\u00073���\\u0000^6����\\u0006�#�\\t��\\u001b��\\u001c�.l��m�k�N\\f��#8�_�\\u0019�\\u0003��z��-��Ґ4�\\u000e\\u000bnU6�����&e_<�-�m�����0\\u001b��\\\\\\\"\\t�������'���3v��V\\u001f�\\u0007Ү����\\u0016F˒�\\\\��\\u0000�G������X�0B��\\u001f�/�>U�#*9y\\u000f۹��/�X��\\u0000�q��X���\\f��Dދp�\\u0017\\u0002�\\u0000-j�t�;-;\\u0016��\\u0005�\\u00066Y��Y_�$iZe�\\u0011y\\u001a�\\u0000Uͻ_A���la�4ٓ���e_��\\u0000�L�q�8�J�\\u001a6Ex���O]{Ҭ7ǉ�&�d�/����&��ڻ�G���+�*W+��$�u?ʘ�٧��XZ\\u000bA7�e\\u0000-� \\u001f�\\u0019>T�8�;\\u0018V�/��\\u001f���ǟ�\\u001e\\f&�\\u000f{)�B'�[zީ������[!d\\u0000�I\\u0000[۵zЇ�r����x�\\u001b����\\u0013�\\u000e�Un\\u001c\\u0001��>\\u0015v\\u001c�r���\\u0006W{no�\\u0016�=n~\\u00151y����\\u0018�²��Tk\\u0000���n�P�t\\u0019\\u000f��?b�|���\\u0007�޻��4�-�#��!vm��\\\\\\\"�\\u001d)�\\u0000��\\u0013Ɣ��a7ڊT\\u0003\\u0010uޜaK���O���\\u001e,Clq[�Z�K\\u001e��]\\\\\\\"1\\u0015h�Z6I�b�{v�bW�\\u0014�!d��r��>h�F��n�6��\\u0000\\n\\u0006\\b�\\\\�\\u0000\\u0016C�xF�7?\\u0005צ��ż3\\u0006�a6�a�S�fr��F�0[����\\u001f�A��+��'�e��/u\\u0001�B-�i��ϋł\\u0012\\u001aV\\\\�n��ʄ�K^��+\\u001d#�Xy@\\u0004\\u001b\\u000f��\\u0006n7�\\r\\u0000U��#;�}\\\\\\\"�S\\u001a���VQ�ړK�<�`\\u0017\\u000e,�\\u0014�\\u0003\\u001dc��+^�&V�O4J�e��т\\u0014����ҽ�����|�\\u001cP��\\u0019\\u001b�ϩ>��Ƈ���E[�\\t;/��X�.\\u000f�Ҧ\\u0006:cg\\u0011�\\u0015�\\u00118�n\\b#E�u\\u001dhg\\u001fnq)f?\\\\\\\"\\t7\\u001eQ�L��uxP0� ˳I�\\u000b&+�jA��a��H7[�c�өqo�y��`��\\\\\\\"�@\\u0019E���?\\n�\\\\,$?w\\u0017���\\u0016%[�\\u0006\\u001f��Z��L��u}�ذKt���,T�U��6����r�O�E�\\u0018��c��ҼyU�x�_�\\u001c�\\u0018̻Z�I�b�XU�~L�rYм��\\u0007��@�\\u0006��i*Ý\\u00164S��XX\\u000f\\u001c�\\u0010\\r�X�N\\u0011��,��#K+3\\u0012\\u0005�\\u001ajE\\t\\f�V��tޣ��vV�\\u0000�K�)�I�\\u0003J�&F����\\n�\\u0002��\\u000e�\\u000f�C�y��\\u0001��}\\u0018y\\u0019WE\\u001dms��vx9\\\\���R(�?`Q��Ok�&~\\u0016<\\\\5�����R�k�\\u0016\\u0003�\\u0016�w�\\u00132�\\u001cy�;�����0�M��#r-�\\u00146.2d4P��$\\u0016;\\\\�m��O�^�!\\u0006$\\u0007\\u000eb�,��N�)�/���0x��\\u0019\\u001c��\\u001d��ӻUsfq\\u0018rK��\\u001co\\u0014�0\\u001b��K�ƧR��%3��|���b�\\u0010-\\u0000�_�\\u001c�f\\u000b�$[�c\\u0014+�\\u0000m�[p:���2Nd��?�\\u0017�;Ĩ��Czt����N\\u0007#��&<\\u0010�4p\\u0015\\bd;�\\no��U\\\\�\\u0013���B�\\u000f��űP�}�\\u0001�\\u0001PZP��\\u001a�s��\\u001c\\u0004�� G���pe�Ŝ#��\\u0013\\u0005k\\u0000��kkz\\u000f?����\\u0012��\\u0004^�mkɖ|��#&)!�\\u0004\\u0010��\\u0000\\u0006�\\t���k\\u001e\\\\o\\u001f�lE[�\\b\\u000b��\\b\\u0001Z\\u0001�N��\\u0015Q�����xP��B�0xҕIg*D�\\u0017O��C/�Ux�؃��3��\\\\\\u0003\\u001b3\\u0015Vf�����S\\u001e+'�<��|�⑕\\u0002��n�c�\\u0015�-��/-9đ�Y\\u0011\\u001e��x���\\u0010�\\u0002�\\u0000\\n7\\t\\u0005B���\\u001dH\\u0015�^�#\\\\\\\"��\\u0014�-���i\\u0014皎<(8���\\n\\u0011�eMT7U�ޥ�^_#���\\u001d�ȋ��\\u0000\\u0012-�\\u000b��.>6\\u0006*��ۙ�c}�q��!3b͚\\u001ci�h��\\u000e2\\u000b\\u001f�h�m�\\u001aЮ�+0$k��o!/�pYG�7\\u0001��v����V�u��kH�H\\f?�k��Rϗ,��e\\u0018'�H�PB���K\\u000fJi��\\u0019'\\u0010\\u0012�\\u0010{nw\\u000b\\r\\u0005�\\u00034x\\f�H�\\u0019V[FS&ަ�\\u001a�F���*��L�>+Qm\\u0017\\u0010\\t:upҎ��\\u0017\\\\\\\"\\u001c�#�J�u�î����d���G$>�as�\\u001d���O��\\u000e\\u0017�IE�!Ld\\r\\u0017��\\r[���}̹Ӗ�����ٚ�zt\\u0017�P\\u0001�\\u0000���(;7�\\u0000�J��\\u0012b@ꙮ3���I\\u0015�Vq�5�\\u0010\\u000fP/]�:qq�\\u001c���\\u0001R\\u0005��������~�Uk�}�5��\\u0000�\\u0004��\\u001c_j� [,��-����JWR�a�i�?�1��\\u0013\\u001e6�a\\u00176C��:ilm<�����:��*]N����\\\\{T��3��Ȗ,�m<\\u0016\\u001b��\\u0000tjU���I$���]ϴx��WK���g�\\u0011�\\f�L�5�*���㽨�E��u�E�cl����K�\\u0002����<�*���\\u0017%\\u0004[7J�F��\\u0015����f�LpK����L\\u0005M�\\u000e��_�.\\u0014��X`\\t4���\\u001a\\u0006�}���I�ϓ.h`�X!�#\\\\}\\f�}\\rY\\u0002K�p�#��?��(\\\\�\\\\\\\"\\u0007\\t�T\\u000eD��?n��*~[��3B48�Z8�6�\\u001dI&���k�IS-�PC-����>\\u0014�Yr�����\\fq��e�\\u0005E��z���C\\tؼ�]����kU�\\u0003\\u001b�ƴ���F�ŉ\\u00015�u�TT�R��ԩR�J�*T�R�J�*T�R�J�*T�R�J���������]?\\n�s����\\r��\\u0000�+O��3\\u001a��#K�U����9����M��G��\\u0000�YLp�\\u0000�S��@�\\u001e�\\u000f�F��E3X��{\\u0004\\u0001����\\u000b\\u0017\\u0006\\bC�\\u0002\\u0006f\\u0017\\u0017-�'��\\u001c�,H�N\\u0002﹍_��Οֱb�s/���-��4�F�V�3������\\u0000\\u0011;���\\u0017\\u0014��d��Q\\n`iZ8T�\\u0018Z4c�\\u0003���Dk��G\\u0005G��E��\\u0015�2{@\\u001bl,=��j�ƌ��\\u0000�\\u0000 �\\u0000�j�Ey�cym���Cbɵ���\\u001b�Gc_�\\u0017,�\\u0013����i\\u001a��/AAM\\b�M�\\u0014j�\\r{����2K�\\u000b���Ҷ&RT*���\\n1�\\u0004\\rt\\u001b�������\\u0006l3�L��e�\\u0003jw\\u0010�\\u0000\\u0003�z�� h$�\\tD��ڣ����}i^.4�����|��1���I?�OΧ-��\\fnz��\\u0002��ăʋ�'BҶ�(߫����O\\u001e�IL �r\\u0018�U:\\u001e�ׂ{\\u0006أsj�M��\\u0010W�d�1+H|�׿a��E4��ƽ�b�\\u001d�_�@���UC*�1�`�ME�ތ�ĎY-\\\\\\\"�P\\t��\\u0000�Z�E\\u0014�{�l����\\u0019����\\\\\\\"����S��t\\u0014�\\u0017\\u000eSY��P�!�?mQ��X�Ae[�[�ZN�|��\\t!��\\u001fզ���ʵyj�\\u0019��x�1rz\\u0000\\u0007_��h��%IQ\\u001a��\\u000e��\\u001a�:�\\u001e[c�#䭡<�\\u0003Ɣ�ņB���\\t \\u0016\\u001an\\u0016�{SW�X�9\\u0010�\\u00141c8d�,�bm�5��H���\\u0013H��Z��\\u0017PΛq��ώ,���(���\\u0017\\\\\\\"E\\u0016���\\u0014��\\u0003Xj�9\\u0018�\\u000f!��`\\nǙm��z�[�E\\u000b��i��\\b?հ��mZ>\\u0013#\\u001d!�sc\\u0013)EFP�j���\\u001bү�Xp�\\u0016>B%�,��n��B��P\\u0019|���\\u0011\\u001eDt��X5�#֦G�P5��0\\u0018[�\\u0000f\\u0004k�\\u001ahQa�L8�l\\fv%�(6;\\n��\\u0000.U\\\\�J���n�o���\\u001aЎC\\u0018\\u0017�&�˚��\\u0017\\u0017c���������ߠd6SmM�P�@5\\u00064��0\\u0003s�MU�D�對w:�a�ځ�tw-\\u0016d8�Y7)�ԣ\\u0013}��*��\\f\\u0017�r����O�N$㶯S\\\\\\\"�hP;G�Hϑ���\\u0000��Zc\\u0007!���\\u001cي�b�)�_����\\u0015�0�N�\\u001c\\u0016%o�ۘ�׿Z����\\u0010̌��E\\u0019\\u0005ԍ,>6�\\u001f\\u001b��e2�޻Bu\\u0016\\u0007��\\u0014��\\tQ\\u001a��Z$��\\u001c^NS�ʣ U:[1\\u001a�\\u0000�C\\\\\\\"\\u0000�\\u000eB��hϯ�Q�\\u0006��5�~L|d��X�'K�\\u001d�H���݇��+��eʑ�D�($�k�1\\u001dt�{';\\u0017�#\\u001a5�c�$A�\\u001a�U����A��JO5Y\\u0006La�ޠ��4�yU�\\u0015i���2��\\u000fk1��4\\u0017\\\\\\\"ˇ�\\u001dH�B��\\u0001`\\u0007VZ��\\u0004��y\\bc�\\\\���o�\\u001bRS4�\\\\\\\"n{��\\u000bۥ\\u00007\\ru���\\b{�5��ש\\u001b�\\u0000�;oM�ś�$��,�\\u000b��\\u00100��\\u0000\\u001a�\\u0017X��\\n\\u00072x�3�]���tҕ`rg��\\u0012�\\u001f�H?~05(5�QO\\\\\\\"���G8ɏ\\\\\\\"�>��M��mM�\\u0001�\\u0010\\u000b|�&H�)\\u001eF\\u000e�.�,�\\u00180H\\u0010#cWp�\\\\\\\"�\\r��\\r�K��7���\\\\\\\"��Ƌ�{^ǣiA�G�\\u0000���dk�[���r�\\u0012\\fy\\u0004�\\u001e?}�`\\u001f�5\\f+\\u0006o���Ce\\u0019\\u0004<L�-\\u0011�8y�;a\\\\n�������S\\u001e\\u001e|g�iVC,�\\u0011\\t��\\u0004�\\r+�`�y)2\\u0006��\\u0006R?M���E�\\u000f$\\f��ev\\u001a\\u0012\\u0017]:��r\\u00062I�\\u0004�\\u000e�^[݀�t����ī7\\u0005�\\\\��K[�agQ��Z\\u000f��\\u001f\\u0003�Ù\\u0017z�ut�\\f�{|t��\\u000ey&�0�C/��e���+Z�~?\\u001fʯ����\\u0016ETU�\\b@t;����\\u0000J\\b�\\u0012�\\u0019s\\u0011\\u0019�u,�����\\rEBO�Ӽlx\\n�\\u000f\\u0007.4\\\\\\\"\\u0003q$���Z����ǖ3+m����CѺ�W\\u001a\\u001c�W\\u001b`q�\\u0015:�z\\u001a{7�,j�\\u0017�(\\u001e����\\u0015~z;�:FB�j\\u001f��\\u0018��0�:�Y���-B{��\\u001a�1\\u001b�u��0J��6��p\\b(5\\u0017\\u0017\\u001b�H���\\fؓ�\\u001d�Y��\\u0016\\u0016��Z�_�\\u0000g��g*�8����^���N\\u0014�\\u0018E�\\u0012�,E�}���\\u001d(\\t�\\u0015�\\u001e;\\u000fs!�R���D\\b�����|�Y `\\b�J�FM;�\\u0000ƒ�\\n�r��}м��z��m@r\\\\\\\\�s\\tcb��i�hE�\\u0000Kڏ�ܹq�����X2=���\\\\7e��.D6�6�u�\\u0017��<�E0%}�\\u0013^�7b~uN>\\u001bI��\\f�\\b#�����(�L`��\\u0019S弪\\n.�K�-`u�\\u0005\\u0004�سr1�\\u0004�FQX�{�^��*>����4�\\u001b%��id�\\u0017%tV�Zk����c�\\u000b$�i>�ڮ�~�\\u001a�,��\\neh�Ơ���}�ҔgG��#)���m��m\\b4N\\u0002���`�R��\\t���΅n�h�?�#���\\u0000\\u0017\\u0012�mr_l|�:�}��!�=�����h�\\u0013t���m\\u0001\\r��Gq�\\u0000�2S�\\u001f�\\u0005�[t\\u001a\\u001d�\\b�~��\\u0016@|��\\u0016�-�|�o{�E8㲛+#\\\\\\\"\\u0015��c컵�`���oک�\\\\d�,��q$Sp�̳͟$v�\\r�v\\u0001�\\u0011�Y�N7��\\u0007O{D��\\u0001�!6V��Z��G\\u0013\\u001d\\u0007�6��q�\\u0014��m�և�ܞR9\\u0010\\\\$~\\u0016\\u001d�ͻp�R�R)�H��Mӻ�\\nn\\u0005�RI�\\u0005E�ny\\r�'��36V�\\u0010Zp9��GP��}*�&\\u000ePwx�\\u0017#}�f�)����\\u0011����ɽ\\u001d\\u0018\\\\kv:\\u0012/z\\u0015��\\be�\\u0018g\\u0016S\\fd�۩%۵�f7(#��3�2B\\u0001�_���a*X�Abƞ����lAT��\\\\\\\";p��o�S�+.G�Ε\\\\\\\"\\u000b\\u001e�\\u000b\\u001fw��\\u0007�W�$�\\\\~Ftp�4DX��Ǻ�W�r,܌\\f����\\u0002M�)�H�S��v�Z��|i`��F��\\u0004�u6�\\u0017\\u001f��(H�#e2+6@��u�d\\t�.��QBM�\\u0010�gL�v\\u0000\\u0018���Aq�Ӯ?�\\u000bǴX���/)\\u001a�����R\\u001c����|u����\\u0017�\\u0000K|(�I�E򺷉nd���\\n���PMX.���\\u000eA�\\u0001�*�왡�NY�w\\u0007�\\t\\u001a[�i\\u0016F\\\\��8U@\\u0003q\\u0004���\\u0000I�Z\\u0019�x���\\\\\\\"�\\u0005�x\\u0016�X��{�\\u0007�\\u0014�7����O�+�-�\\u0017%���~5\\u0018�\\u0018:\\u0003W�d�u���+wR��s?|S\\u001c\\u0006O�\\fv�h�Z��\\u000f_C]~��l�\\\\\\\"��p�\\u001b��\\u0000+�w7\\u0016i� BU^S�P\\t�\\u001f*s�b���Y\\\\��\\u0000\\u0004#j�_R5�Q`F�J1�\\n\\u001e�f���P���5����\\u0006V�1.J\\\\���Gc�U|\\u0004-��X\\u0002�;�%[\\u0003sj�82�_*FLo}��\\r�׭;�-\\u0014+ż9/�\\\\\\\"I#�mC_�48�1!��mZs�ŋ\\u0014��\\u0001��.C\\u000e�\\u001cG\\rh7ĉ'�yd��\\u0016V-{\\u0011��j���G\\u000b��HT3\\u0011k\\u0016 \\r�zu��\\u0011r��#\\t^�9.\\u001cX�\\u001d������\\f��@v�a\\u001b�\\u001b�\\u0006�KQ�\\n����n�e˕��\\u001aq:�I��\\u001a�$\\u0010$\\u000f*�{��T�ۯJK\\u0007/�\\u001f\\u001e\\u0017��-T�:m$\\u0012����֤Sr���\\u0001�F�!��:{�o�ƨ�ȕc�4b��E��hUt\\u0001D\\u0001Θ�9!�Za�&G��hx��[v$�ӭ��+\\u001b�O{|j�Nx�7�b�1to�\\u0002��9\\f�rr7Ʋc�RO��â�QB�H��\\u0000(c\\u0000E�\\u0018\\u000eȇW�m��5L\\u001c��`�})�6o\\u001f\\u000e,��\\u0010��s���y�\\u0015�F\\u001bO��\\u0012�$�d �����~�r\\u00112\\u001fzGk�\\u0000\\u001d?Q�)���\\f\\u001e�\\n\\u0013�>�#�\\u0007�L\\\\\\\"�VH�s�\\t�[}�����;!��\\u0006�\\\\\\\"�X��6� \\u001b��Z�7\\u000f\\u0017�h�I\\u001bġ�d���\\u0000\\u001f�q��\\\\\\\"ȁ#܀���n�\\u001a[�B�sI\\u001e\\u001aE��\\f�PuS~�\\nz��\\u0017/\\u001f93,yx�}�7�b\\u0003\\u0004\\u001a}]/چ\\u0014\\t&\\fH��)��e[���v�\\r5�U���f9�.��\\u000e� �?U����Y>���`�\\u001cu�h�\\u0000��\\u0000q�\\u0000������2qZ2�\\b\\\\�u%H�\\u0005zU�b�:\\u0019a���ۼ�H�Z���i1\\u0003Iև\\u0010lks�\\\\���l\\u0014\\u001d��;��\\\\�x��,g�BȎ���\\u0007a~��U��\\u000e<���Q�bT[K�(8��'Ȏ6�\\\\\\\"]�B7�$�;}i\\\\R�Ɩvp���N�v֍\\u0018�\\u0000���V\\u0003\\\\���\\u0018��ct4�1���M��q�-2�\\u0005\\u0012%e�}�麩�>,tI6J�)U�*Gr��S��9�1\\u0012�\\u0017Ap�\\u001aY��� �\\\\�@P����{Y�*�߬���G�|��ɓF�F���)�\\u0013\\u0012}ǈ\\u00133��Yma�,��0g�\\u001d�7�q:�[P\\u0005=O?\\u0015�\\u000e[�wH��\\u0016 ��7�}h���NOÕ\\u001a0K\\u0010��\\tס�U�%m\\u0001`\\u0010�=i��\\u0000\\u0019]�v�\\u0012ő���>��G�\\u0018��d���k�\\u00046]\\u000fN�*A�dg�͞{���\\u001c�#�,~\\u001f�8���Ě+\\u000bm:�\\u001fJ�����SbE0$��b�c�����p&8G�Y����fY/wS\\u0004��ǅ+�x�pq��O`�*�ڒ\\u000fR\\b���,��2�&�\\u001cBH\\u0001\\u001626�\\u001b�M�߷YfQ%��wla{���p�-�\\u0012��C�#$,�U�X���\\f���)#�����Ԧ\\\\\\\"�Z�Qr��^\\u0010��^񜬹q�>I\\u001b��\\t'�\\u0003����h^O*\\u0014�+{�۬��{Z)`b%�bP��\\u0015��-��I3\\u0013*L�WaY�u�\\u0003���6,a��-o���*�\\u000eL�\\bŐ\\u0005�F�6��I&�\\u001f\\u0013�\\u0019������}Oz�yrDqB��Y�e$\\u0002�\\u00116a�H�ɋ\\u0001Q�@`\\b%\\\\\\\"��Dؔ\\u001e�:�i�Wlq�FC\\u0001\\\\\\\"\\u0002ox�qڈ�DuN�.*�=�fɏ6ps\\u0015�\\u0013\\b6��*�\\u0003\\u001ck��ƺI\\u0012���fF�\\u0006��\\u001e��g�12�l��\\u0013+\\u0017؇i=N�i^��f\\\\���䀷7R}5�6�\\u0012<lG�ȗd�;6�@\\u0001O�w�\\u001c\\u0007h\\u0010(g�o\\u0018:����T��s�����*�r\\u0015�\\u001d\\u001a����J���\\n\\t��]J_SpoL�a�yw\\u00129�9�p\\u001d\\u0002n��N�Z��G\\u0001Ɨ\\u0019b�i?p�u\\f�m7�h\\u001a\\u000b\\u0012�؎��lŐ�Ď�*�\\f��xoE�ʆ�C$%'k�E\\u0004��\\u0003��.T�:�}�x�k�S}~50��NK���\\\\\\\"nV�C{\\u000bӼu�\\u0018~��\\u0004E�����jbͰ�O�Ս�b���V�[�y��'\\u0011�xd�\\u0019�\\u0011;� 5�=GS\\\\d�r�x<��\\u0010X�ѝ\\u0015-�?��\\u0015ҧ\\u000b6|��4�e\\u0000c��$j4�.�u��y�%�ʊN\\\\\\\"Yg�\\u0018��K\\u0005�v��\\u0004X��%m�\\u0000��:ֳ~u,��\\u0016�*�tI�V�j�9\\u001fr�\\u0016�\\u0014h\\u001bN�~��Qy�B~>4�K��U�E�\\u0003�Z\\\\�r͋��twK�\\u0017\\u0017�z\\u0000\\u0017J�\\br�*I�Ql\\n�@6�֡-0\\u0000���Ǐ\\u0001ģ?Cx�X��\\u001d�\\\\[�\\u001a�\\u001b��l)2\\u001b\\u0017�,{�R�w�_o��\\u0011�`�O���\\u0010�6�\\u001a��������a��y�\\t�F�v��\\u0000�\\u0001ӥ\\u0010�\\u0013����X\\u0017j�\\u0019\\u001e�\\u0000��\\u0007�U �[P�\\u0013�n�\\u0000Z^Tg\\u0016#��]t,N�!\\u0005&�䋔�Wm�o`K\\r�Y�:����\\u0003:86ce�,��q�RM����\\u000f�����e9Yd!X�KXi���<X1r�@�����\\u0000���\\u0011u��\\rk�i�^<�\\u0006;�[S�\\u0015�4�`��SM\\u0017�|8Ql�M�H�X۽g�yu�rq�I��˗[\\u000bn\\u001fC�u\\u0014�\\u001f��`�by'�R�cG�-��\\u0014��_JU��\\u0003\\u001b\\u0017!\\u001aY\\t�=��\\u0002��T\\u0011Һ�\\u001fJYq�.L�8\\u0002?Y&KW\\u000e�A�a\\b�LYo#�\\u001e�{���\\u000bP��\\u0018�yJ��\\u0003\\u001e�c�����rc���*^E��-���MȠ���\\u0000q�X�x�2o`\\u000b\\u001fƠ��\\n�oH��\\u001c��\\u0000J���2(2.�'��kCɗ����\\u0011�ʓ\\u0003�ؒ\\u0017���o%�1.쪎IX��\\u0003��^|Pc��b��\\u001cd\\b��/҃Ç\\u001b�,�%E�ۍ�\\u0000\\n[;\\u0000ou��X\\u001b��/\\u001cx�\\bt�y\\\\\\\"U\\ndc<��p���l�˔��h�jH=H�]{v�r���ۇ\\u001c��T�\\u0006��l5>���\\u0013���H���\\u001237�/S��K��9\\u000eO\\u0019�H�!�\\u001ck\\\\\\\"��8���\\u0000��S\\u0001`-:���y���#~�w\\u0014�fň���Y��\\b\\u0012h�\\b��\\u0019r��\\u0019:����V͖7D񠶇W�K�x&\\f�e�@(�\\u0004p�\\u0016�}�q�M!�C��\\u000b�C�\\u0018r��1��_��o��Rv؏_���\\\\���,1���6�C��i\\u000eo\\u001c�2F�\\u0012\\t\\u0005�\\nN�k�=�����\\u0000m���<���^��Z��\\u0012?\\u0016b\\u000f+�8g�f\\ft7$�W�`����CYz�\\u0001�ݭQ��S�L��ld���\\u0019\\u001a1\\u001aL�BT�R��T�R�J�*T�R�J�*T�R�J�*T�R�J����[��\\u0007�\\u0000ͧ�Vo��I��`�K��\\u0014u$�֛�_�\\u001cbO�\\u0000\\u0012�\\u0000�\\r\\u000e��\\\\�����\\u0015���\\t�5��θ^6S�>v\\u0002�\\u0015�\\u001d\\u0004�\\u0014�g�!Eƕ�c\\u001c�h����S\\u001c���\\\\\\\"[5�m��� �z^��H���K��ʍ�����[�K_\\u001dbē�!\\u000e�C�/m�\\u00011\\u001c\\\\\\\"�rbx%Ur\\u0007�U�㼚�1�\\u001c����'Zt�H�:�\\u0000[zkH1��=׹J/\\u000f�ǹI\\u0016@�lM�U\\u0006����w%�_n�)���H�\\u0018�Mmar=4��S\\bJ�<\\u0011���^�4�u�E(�\\u0005u\\u0004^�X�K3 �KĎRͮ�sTy�\\u001d��b!X6�G*\\u0013��ŋ'\\u001c�F�\\u0019���E��lF���T��k!0��r7-��{��^\\u0016\\u0011F\\u0013���i\\\\\\\"@�'O�޸�\\u0012I�\\u000f\\u0018\\t\\u001c���k�����-\\u0004\\u0001��5����ŉ�m\\u0018��\\u0013�㿥\\u0013\\u0004x��X\\u001f\\u001d������M\\u000f3K���\\u0018�\\f\\u0017;�Q����\\u0014�\\u000e\\u000b\\u001d��-�c�$�K�K���\\u001e(c��\\u0001�O\\u0018�\\u0014=z��%u;�g�����}�\\bƭx%��6q\\u0004\\r&�cfL��!�\\u0007%� �\\u0000ө���G6/\\b 9 ��\\b��\\b�1\\u0011A'gG\\u0007O´\\u001cD�cc}�\\u0010��E�n:\\u000bT�#ҹ�q��\\u0001�\\u0017\\u0013\\u0003�^�B\\u001e)ba�#)\\u0007�\\b�S'd\\u0001\\u0019�~�U6ԑn��u��3K�]N22�޿V�]mB*�v\\u0011w\\u001d���F\\u001c1 p���Ŗ7\\u0002I\\u0003��uC�f|���}����\\u0000�\\u0002��>������'\\n�:��\\u0016big0μ��,��h~\\\\\\\"ը�DJ���!ol{��0\\u001a/ΪB��B5��.C�\\u0012u:eT\\u001a~P\\\\\\\"���v�\\u001e<��%;���Aeԝ�F�՞� &X��`�n�K��n���J��\\u001e\\u001c�B̹\\b�z�_GҠT�G�HO�r�k�ށ\\u0016䏌U��|l�\\u0002���K\\u001d����\\u001f\\u0006\\t��\\u000e�u\\u0006ۭ���<�m\\u0014ȁ��k����ֲy���c�A�\\u001bX\\u0005�����\\f8\\u0007�1ZGo\\f1��p\\u0005���~\\u001e�\\fl�n#m�Ҵ����\\r�9%��\\\\\\\"�\\u001fJ����Y\\u0019ȸ��u�3��\\u0007[��\\u0000*m��\\u0017\\\\\\\"\\u0013\\u000e@}���2t*��\\u001b�\\\\\\u000e$�|�ع\\u0003l�\\u001b\\u000b_��t��Zm�A\\u001eF2��X1���W���+3c��\\u0010!V\\u000fN�w��fG$\\u000e\\u0015\\u0018\\u0007\\u0016\\u000eG��|{H\\u00129�\\u0003\\u0016:���rĝ4'�F�\\u0002�'���T\\r������\\u0001WEš��ȸ/\\u0004~4E\\u0016\\u000eē��:<��*����\\u001fn���q.<��gu\\n�'�P@���%�\\n\\bp\\u0001\\u0007���\\u0017=+=���\\\\\\\"O\\u0015�J��PJ�Qjq�\\u0019�\\u001ef��TB\\u0019��\\u000b�PG�+�b�y��\\td\\u0000�\\u0016��>��@�2u�\\u0005c��(f&c�\\u0007�-�r3�\\nK;\\u0006D\\u0000mQ`�ԏ��2^:%�#\\u000eQ�k#j\\u000f�M3��h\\u001b\\u001elh��\\u0007�˰�몊_�>L\\n`#s�\\u0000^�\\u000f���\\u0014.�Z�33��0P��Ӆ\\u0018�R�\\r�~�\\n�z����\\u0018�cCȉ�&(�2�=�\\u0016�5�5�&���\\u000b���f:OɼP�[\\u0017?\\u0012=�V��<�\\u001f��\\\\nY�D���~:S,�\\u001c\\r\\u0016��sk\\u0000\\u0005��,\\n�6�a�)�=�;���c�\\u0012I3I�G�\\u0016c��]�W\\u0002y���8%h���\\u001d\\u000f��\\u0007�O�7/��R��;���1Z\\\\\\\\g�\\u0014c+4�f��.7��kU�?\\u000e$�\\u0014�KYlI�ۦ�_\\u001a��;\\u0019S���:��E��M���1yq�\\u0004�����L�\\u001f�s�\\u0013���.K�ƤLLW8��\\u0015�����\\u0007B\\u0001�phX�H��\\u0019}�����\\u001d�\\u0017�s�K1˜\\u0018C�\\u0001\\u0000's��ۧ��p�)�K\\u0010gw�H�;���\\u0002���}��\\u0000\\u001f\\u001b�͐\\u0002�\\u001cZ�\\u0000փ-\\u00040��oD_k�۬\\u0000��G&�eŜ���\\u0004^�=�)Z�\\u0000)�ʖ\\u0004�3\\u0002�{��\\u0003�\\u001a�ҏ��I������}�����W:o4��r�YɌ����$�\\r[4�\\u0006\\nE��q�2u�\\u0014P�<�\\u001d\\r�\\\\\\u0006�\\u0007��?;,1�2�bZM���\\u0017��\\u000f��$y\\u0011�a\\u0016�$k�Pj��\\u0002��Qh\\u0012xS�aɔ\\b�����\\u0004mwֻ9�I�eEx�efR.\\u001bi�?�8�o��,)I\\u0016'�!mA\\nJ�Y��M�K\\u0003ıuW\\u0002�w{����\\u0011�a,H�&1�g�r�@���)�\\u0018Ƅ��`�3]�c!Q�\\u00198�)\\u0019�g��+�\\u0015�Ǉ'\\u001b�Yrap�1��\\u0010ߩ��ј\\\\\\u0004yX��E/�q�DH5\\u000eT��=��\\\\�Ux�0%��?��jq���Y.# \\t�n\\u0006�`\\u0017M�\\rDI� -�\\u0002t֓��d\\\\�N<R&2\\\\\\\"�@��γ\\\\䅣�\\u0011�\\u0000p�;\\u0007^��C�\\u0000�sp@d��Ԩ �t�A�\\u0015$��\\u0000�C�<\\u001e\\u0016��\\u0000���u��ȧLȁƘ\\u0012F���\\u001dw-8\\u0000�I�j˓&o\\u001b\\u001e5����Bڀgm6�8�d�\\u001e\\fC\\u000f�@\\u0006�]�RH4D\\\\�$� ���s0\\u0016$�l7\\rh�s�|��\\u0005�k\\\\��ڐ�y\\u0012�˛\\u0019Sr�Щ�K3�\\u0004���Z�6�0\\u0018/\\u0003H�\\u0000�\\u0000�P�2\\\\On�\\u0014�`�\\u001f����y��\\b��$\\f�v۱X{�\\u001dΖ֪������\\\\\\\"xv\\u000fpr\\u001b_���\\u0002_\\u0017)@\\r.R7�\\b1��\\u001f��X2J�{��\\u0001i�c�'M(\\f�&4&t�Z����\\u0019�gr��7\\u0019Ҥ�e哓\\n����lI\\u001e�:[����4N�\\u0001\\u001c��&�K�޴qA\\u0016\\\\\\u0001a��R�U%\\u0018i�'�\\t\\u001e\\u001c�5�Wq\\u001c�\\u0002Q\\u0007_��j's\\u001aq<k./ �tP\\u0003\\r\\u0006�@�G��\\u0000(��^\\\\<��l\\u0004M���SK���k���ǲ8�W��P��E\\u0010\\u0017�]l�Ȍ��\\b�Yt㓓ϞY\\u0019�\\u0002\\\\\\\"h��2[��W8���܁��7�Ϲ����~��\\u00184\\u0002�C�MiO#\\u0018KX�͋\\u001dַ��\\u001e|�Hs%�S\\u001b\\\\{N�\\u0003�O�qbH�KJ�ݳ���k�����@w:G��N���j�4pX��U�X���\\n9�\\u00011\\u001bVVș$�p��\\t<j�C\\t\\u0013�\\u0002\\u0019\\u0001�\\u0014n���\\u0018�\\u001div\\r����(�U�Q.�C\\u001f�\\u0013F�8�>\\\\\\\"�H奕�M굉�(�핋<S0yF�V�|-K*oS�^I�y2x��\\u0003�'s0�\\u0016T*T&��;���x�:\\u0019@Ȕ��\\u0000csaS{�uּ�~TA#�;DcRL��(\\u001d�L ݏ\\u0000\\f�ؾ�>\\u001d��^O���\\u0006\\f��\\u0019��ȣia�\\n��հ���JÏ6U��\\u001590cp��\\u0007x��0̿i\\u000e�\\u0015�-�:tҫ/\\u0010�!s�&S��2��~�E^RX�\\u0006�q�0=�t�ݫ��\\u0018ϋ�!R$V�#s.�m>t9\\u0005��Y!C���S\\u0001l#��1��f[[�\\u000b}p#�Y%�K��c�C��7\\u0003���'9�H�M�Ig����K�\\u001dE\\u000b\\u001f�q>\\fhKK\\u0011�tP/��:�y���Q\\f��\\\\\\\"<���U����Յ�D�F�\\\\�\\u000f%r\\u0016K2��\\u001b$��\\u0002��*����2�\\u000eb`K\\\\{t\\u0016'�Bq�\\u001b\\u0010x�%6#p��_�z�\\u0006�x�7�;m���u��-׭f?�'�\\u001a|8\\u001c@�|@�\\u001fm�6&��\\u0011\\u001d^�8r.Es��\\tpD�#��_�K�,��\\u0004��Y���)�\\u001f��\\u0000̅�W[��\\u0018hA�8.\\u001b�\\u0002F�\\u0014\\u0019\\\\��9\\u001bm��G��iS��\\u0016\\u000e\\u0018'\\u0019�`w\\u001d�b=t�B��N�\\u001bU\\u0016��\\r�\\\\\\\\\\\"��\\u001cf.O\\u000b<��\\u0012C�2\\b\\rp/��Ά�\\u001c�X�PG\\\\\\\"Ow'k{.4\\u001d�қ������o�;\\\\\\r\\b����L�;�1\\u001c^\\u0010��?\\u0011cW��滏*N;Y�\\u0018ƾ?c���Zt<>ʫ��\\u000f\\\\\\\"\\u000f4��Fv&�\\u0006�KWs��K0ƌ��W{�\\rOE\\u0017Лw�1p\\u000b\\u0000�r!\\r`\\u0007շ��'\\u000b�a�ff�n�-��\\f�w\\u0018�+��u�B\\r�i���\\u0002>BZM��A�\\u001e2�c�(O&�/c�������G���,eRE[!OV6�(\\f.2||�<�_\\u0011��\\u0010C6�p}-\\\\r\\\\�2cM�\\u001cndk�n4\\u001a��T�\\u0011H̏��@��\\u001d���οJiǱ�\\n\\u0019r\\b\\u0013\\u0018���\\u0001�\\u0012o�ֺ�|NN',�Ec`T�w\\u0014\\u0006\\u0016\\u000eg!�!Í�M\\u001d���E���\\u001a�dYXY/�2�(�n\\r�:�|� �\\u0012'_|<~I?�ǐ��c\\u0000Ǭ�^�\\u001f��#\\u0019/4J\\n�#�{���T̐>G��+���0F�M�u\\u0015!�����`\\u0015f,�v�\\u0003��wփ��L��\\u000e1U�I\\u0015C�h����\\u000e�\\u0000F��~�<�\\\\dV�ԧ\\u0018Va�\\u0015V�DoO��3����C�e�Y���M����|\\u0004A�\\u001c�G!��$\\\\���\\\\\\\"\\u000e6(\\u0000c/�k\\u0000�j��Ֆ�\\u001a\\\\���\\u001f\\u001b�vD�pWi��d�U�!���I\\u00018\\u0001Yrc��a`�\\u0002�{�\\u0019��4;kGr�K.Q�L�f\\u0016�R�MŴ�_����c\\u0005�p\\u001br\\u001e�d-m,@���䧛(��C���\\u0001b\\r���!�q�\\u000f�\\u0002�é{��ӷK�W30m\\u001c�m\\u0018����R\\u0002&�>�*ɲ�\\u0005P\\n�j\\u000b[�\\t���\\f{�\\u0015�f��)��\\u0000�N®�\\u0007�\\u0000��cO+\\\\\\\"�3�p\\u0004�CU�\\u000f\\u001b\\u000b擔�mH�db�\\u0016\\\\\\\"��M(r�������S�,��ّ{K�����\\u0000m-��~\\nG:\\u0017I\\u0003\\u0015k[�M��*ʖH���\\u0002���.�nA&�c���<�*1u\\u00051լ�,\\u0005�����a6\\\\�\\u0011��Ƞ8\\u0016\\u0005J��i��t�E,??\\u001a\\u001f\\u001b5�[\\u0000B���$���l�O\\u0014��h��P\\u0017ݹE�v�V����Ly\\u0015��\\u0000��\\u0006;�t���j_\\u00166T����V8�P�\\fc��\\u001f*5p�а\\u0002\\u0016$\\u0000X\\u0000\\u001bw@-�[�`E�O�\\u0014>J��\\u0016\\u001br�\\\\Sv5[���Ӆ+�rJ=�m��%�\\u0018�*̄c�\\f�o�w���\\u0017�\\u0001��i��S�رe�\\u0018��=%#Kz��H��1\\u0017��V�PbB�\\t\\t\\u001b����\\u0000΢ \\u0012\\u0007\\u001d�y9\\u0018�l�1,@}�k\\u0003�(,r�~���F>�u �5�\\u0000M�;�\\u001c�d\\r\\u0002�\\u0000���?�v�1�[\\u0016hde�DXI\\u0012�o6���;�YYr�\\b�@W\\u000f`��\\u000e��B�\\u0016X~m#�֗�k�c'&\\u0004Ʃ~Hю�\\u0007�F\\u000ek��\\u0019�<Ds\\u0015�%������Wp'%$k�;Fau\\fT\\u0006\\u001bA\\u001dA�����b�\\u0000���\\u0002m�\\u0000��,2�\\u001c�h���.UF�\\u001b�ޕe�:���\\u001a���Ö��\\f5vȲ��\\u001c����C9�\\\\\\\"\\u0013hv�7Ղ�)�$�\\\\\\\"��\\u0000�\\u000b�`/a�m�x\\u000e3\\u0019�6~C�\\u0002\\u0006\\u000b\\u0014��;���,zW\\u0002,y�2\\u0005!q�ȥ��\\u0014�C\\u0010=XP�\\u0019X�mp#�/ƚ�z6%8¯��f�\\ft�1�Q����(�\\u0016 �䴄5�?H\\t���Q9eO�\\u0000Hfإ�$\\u001b\\u0005\\u0017=G�\\u00183#��d\\u0007�\\u0014��㺞��!��I U*B�\\u0011{؋k�S b�C\\f`��w$�\\u0011C�y\\u0018�\\u000b�to3\\\\\\\"!{�\\u0014Qĵ�zdP\\u0018\\u0018�7\\u0017$�B3�he�_w�k�Z�\\u0006C�#�\\u001f/��\\u0003\\u000fm�\\u001d�~�v\\u0010��\\u0015�$p����H$����>\\u0019�\\u000b��\\f��\\u0004\\u0003ަśН=��*@$B\\u0013���%��\\u0012�_�D��Ģ:G\\u0000�QE�����\\u0002����+����ޫ�;�\\u0019\\\\\\\"��\\u001d�h\\b\\u001f\\u0003Ur����\\u0006�R4-#m\\u0017'M��ۭ(�8�qq��#I\\u001b�]�������\\u0002t�5\\u0007�����ݙ�\\u001bq<�\\u0017r>��d㢓\\u001e\\u00191\\u0019�\\u0019B���\\\\\\\"�r5�z\\u001b?>,.@4��\\u0019���\\f�\\fOSc�ҙcO��E����b�/��OzO�\\u001aN'�\\\\\\\"V\\u0012\\u0019[I>��\\u0000S[SW\\u0011�M\\u000e#'#e\\u000eʚ\\t��7�*g��|����{\\u0006\\bڍ�U�`S\\u0019\\u0007��;\\u0015��M��.��S�����9.���F���\\u0016�\\u000fZ��\\f���b�Fߤ�\\n�^��(\\b`\\u0001\\u001a���Z1�/�&<�]\\u0006\\u0010�3Z.�\\b�\\u0000�9�<����A���ꁏ[iM0q\\u000e.,pG0�E\\u0003|�\\u0003-��_�ܱ����J��\\u001fF�=�P��g�K\\nʭ\\u0014\\u0011���@�/W&�\\u0004\\\\\\u001f~\\u001e�����\\u0018ώ��\\u001e-rY�\\\\\\u001d\\u0007�\\u0011L9X��Li���o\\u0000\\r�zh5�����9�(��`��+��@�AZ�+6\\u0016ȖD\\\\\\\"F�\\u0005\\r�*�wi�\\u0000\\u001a\\u0017�\\\\Y�ˉZ���G,�[q��X߾���h\\u0002@\\u001fǥ+��\\u000bۘ��.ḇ���Ε���\\u0018�\\u00181�}�ʃ���,=4\\r�\\u0019�c�F7�*n6\\u0003q҄�\\u001b\\u0002\\f�ix�2-�r\\u0017܄\\u001b[Ab\\u000f���ʴ0H��%�)�X���\\r*\\u0006\\u0000\\u0013�\\u0001��\\u0012�DP\\u0019�I,P\\u0005�\\u0010 �oGrY�}��>\\u0014C \\u0015%�h\\u0007y�i��O%\\u0014�fH�\\u0002\\u001c��\\u001f�k�Ҵ<zE�\\u0013,S�\\u0007�o���\\u0006�V���2Ý*��؛���\\u000fC�P)b�H*6\\u0013Z��'��\\u0006Dw܀�\\u000f\\b�$���*T�WZ�T�R�J�*T�R�J�*T�R�J�*T�R�J�q��\\u0000o��\\u0000�K�\\u0015TjFFY�pҍ~Q����~?\\u001a�\\u0000�lU�;y\\u001c0�bH��)����˗ԑ�\\u0000�\\\\eI�\\u0002f\\u001a��7s�\\u0014���4X\\u0014�\\\\\\\"�`��11�a�U.n\\u0019��\\nu:�\\n6j�8�\\u001b��\\u0012T�6��ڤ±�)�0���Ϳ�Kg�&$��l�X\\u0011�\\u0013�n�ˎ@ Yf����\\u0007�4�0�\\u0013\\t\\u0004c��\\u0004�a��h,]�~���#vGt=G�\\u0000\\u0019=7R\\u0011�\\u0018:��\\\\\\\"�\\u001ew���\\\\��ͨ*f����\\u0014Pu`\\b��r\\u0010��a}�X\\u001a�&y1�TA�~�Gѵ\\u001aZ���X&��ȩ1Sy\\u001dn�\\u000e��K�X���\\u001a�`�r3+\\u0000F6%NB:V9�s\\t�,q�����h>\\u0002�O\\u0007�,����x��ǩ6\\u0000~u�O\\u0019e�\\f\\u0018\\u0018�v��[�.z\\nq�v%�\\u0012|�=�č��\\u0016\\u0014���+��-�\\u000b_\\n����,�қF���5����q�u��\\u000e�*\\u001f\\u001eeyL���~\\u001f�z�-�\\u0006���R�\\u0003JcCI��$��X\\u001b\\r�|�O�\\u0000\\u0018����)\\u0007\\u0013���8��I�\\u0007�D�}\\u0018�/��&o݇�Б��p\\u000e��\\u001b[*2�h�5\\\\\\\"�C�M\\u0012\\u0000'r&�\\u001a�iQ\\f'Y\\u001a\\\\+�ܟ\\u001c�p�Z&H\\u0017���~U��#/�R�\\u0018�H*��\\u0016���Tr��s��4ڑ���\\u00191{K/a��qeK���N�L�wD�[����/�oT\\u0001���JFO\\u001e\\n�\\u0017 ɒ�Vx��Z[4�\\n�r\\r�VY\\u0003\\u001b\\u0012\\b�֮���̂Lͧ��J�,\\u0014�[\\u0001ޭLLVčs\\u001fÒ�c\\u000f�\\u0010�\\u0006Ӡ4&\\u001c�\\u00176P�\\u001dP�-\\t]\\u0005Ɵ�\\u0019\\u0012\\u0001�D\\u001a�r���lo�<��N��h^_�\\u000e�!�\\u0018�\\u0005����J�)���F���w�f �k\\u001a�]�HyO�{T�}��\\u0019���I$�n5.lo��\\u0001��93���o�\\\\\\\"�\\u0017\\\\\\\"iR�U�v'��i�\\u0000\\u0013��\\u0004c�.���A��֓a�\\u0012���&̣j�\\u0000q�5G\\u001d\\u0016�w�:w[�\\u0007�Ie\\u000e��\\u001e��O)�W9UU�\\u0016�z�\\u001eՙ�w\\u001f�M��{ɏ�\\\\\\\"�;WZҘ�a��}\\t�k9�&��\\u0013�\\u0017q��\\u001f�*7S�\\te\\b�M#\\r�4x�Qo\\r��;�\\u0018�\\b���\\u0018߯z�\\u0013'��-�dܫaa�õW��r\\u0019��\\\\\\\"�\\u0004l\\u001d�w�R�\\u0001���\\u0019���pB5�m�I\\\\\\\"��Z�10�O�\\u0016II7\\u001d�\\u001a^�\\\\���\\u0016�c���A�+F<�#=��\\u0013\\u0006=9��Fs#\\u001e6\\u0011y�ҵ�-��׽�k7�b�`�#Ro���C�F\\r��^�a��\\u0000�\\u0015\\\\\\\"lXE�)�X�j��^>4�%�F\\u0006%*A�u���=PvӞ�\\u0018��\\u0000���e����n\\\\\\\"!G�\\u0013\\u001a\\t�M!$���O�m.{U��c�\\\\\\\"\\u0002�|w�\\u001d����Xb�r �r�Poq���\\u001bOu\\u0000�\\r\\u001ar\\u0012\\u0012Шg1��H��;�Qu\\u0011\\u0003\\u0014��'}X�0�N�\\u001c2�\\nv���W�x!uŔث\\u0018�V:3\\u0011��Ƞ�9&�4����\\u001d\\u0017v�{կ\\u001ce\\b��\\u0015���f�\\\\\\\"��\\u0004��ҳ#�&5$-�W����1�\\\\\\\"�I)y��i7��(yq2�<o!\\u00005�����z?��\\u0003-�[�$� ��\\u0013�u��N������A;h+��!�A�Y�:�N�x�^#\\u001b�Y����\\u0001r}��Q\\u0002y22L����`\\u0010�6�]�_��x̸�\\u0004@Y�k���b57�1��%d�-��{\\u0011����T�\\\\����E��#���Br��+3\\u0015\\u001c\\u0013\\u0014`��\\r�$[�4ύ̓&S\\u0004P��\\te��\\u0017\\u0003j���+�\\u001bC\\u0005�� \\u0011^c�q�\\u001eg\\u0005�F\\u0000X�'���Z�v�g�\\u0007eu!aTs:�6\\u000e'\\u0006\\u001c�r\\u0016\\u0000^`A\\u0016���[W�����\\u0004\\nq�$$>ݝJ�ݷ��\\u001c�W'��$21������z\\u0015>�\\u001d1�\\u001c�ͺY\\u001d�F=w\\u001f�Z��L\\u001a\\u001c�>\\\\h\\u001f#��@\\u0013;\\u000f¨�����/\\u001c�\\\\{G6����E\\u0005�Ğ?��ʃ|���\\u0019z:���QNS,G�,1��\\u000e�{u�m\\u0007�UY\\u001c�\\bʪ\\u0003�\\u0005W�A�\\u0000�\\u0003�!�Ǩ�\\u0010M;�>`e|j�\\n(�!zH���,X�\\bdB��\\u0019w}7#Q�5�\\u0017�6~\\u0017�\\u001dD��Ҳ\\u001d��>\\u00177�ҭ�@�\\u0015*�\\u0013�\\u0017:v���bL���\\t\\u0019��Ʊ^������{x؅*\\b\\u0003HҴ��<�c6Yd%�.����NN\\f�|P��1L�T�*W��ƕ�g/�&�I\\u001ca�VKm�0\\u001f��Ҟr-��\\u000643\\u000f���4?���hmA�̒�\\u0010F��G�@\\u00016ܫ�5\\u0013+d��\\u0001s�g#�o���3\\u0012��J�V'�{����\\t�db�.P�\\u0019��!>�\\u0004�u�4��O\\u001cY��:�����ScL\\u0004�,��]\\u0014Y\\r�\\u0000\\u000fN��\\rx�{���'\\u000b�w8�2�OT�?dQ8yع0�\\u0014{��$p�=ۭ�î��\\\\�&2�\\u00122�\\u0012n�U���qӽ\\u0013��$\\\\�c,%!f.�$oV\\u001b��ѹ\\u001cdc.\\\\|X�bV\\f\\u0005��\\u0007�BOR�?�s�\\u000e/\\u001d���L�\\u001bL��r&s�#�g�2u��\\u001bhi��D�y@�e!b�oq$�v�ҩ�\\u001f��䀒)aH�\\u0012�\\u0006�ћu�4�/\\r�!q���\\u0003q�w�\\u001dj-�d�F�^I�Y\\u0000\\u0006q��\\u0004m�J��2L'am\\t\\u001d��;%fR�0w���\\u0003v��\\u0000�Z�LX��Ȱ�+q���ړ��ŴG\\u0013t�%��z���\\n���N\\f����\\u001a��>@|�&�f�Q��\\u0014�Q�`\\fޠ�e��ځ->w-��A\\u001a��.,�7jk����'+\\\\\\\"��*�\\u001bs{�Ƅ��\\u0018Пw4��9\\fDI\\u001b-�M�^�[���k�:\\n��\\\\�rbK;��d}7\\u0016�\\u0015�+��\\u0004WU\\fv�nN�\\u001a�\\\\\\u00191�s#9P��WP����i�)\\u0016\\u000f�^8�2��\\u000e�����^���䤾\\u001c��x���\\u0014\\u0000��oV�˘�J렚\\u000f\\u0017\\u000eP]S�a:�\\u0018?�F���\\u001b\\u0017��\\u0011G�YZD\\u000b�\\n��\\u001f\\u001dj��9\\u0013<�R\\u0000X������Ұ�2c2!EF(\\u0011�ȶ��8�h3�XT~�j�݃n\\\\\\\"����\\u0004�\\u0014\\u0019q|��s[Ի���'�|yD;�I�\\u000b^��<�8мED�GY\\u0019t?O�\\u0000kz��\\\\�lD\\u000e\\u0012p�\\te���i\\u0017=:��\\u0017�S0H��3\\r��v\\\\\\\"޺UH�xү�9��ʗ(O#GD�\\u001f�z��`��L�r�c\\u0000o�ͭ��J�\\u000b>Q\\u001b�+2\\u0003���/�o��J�\\u001f/-��\\u0018L�\\u0012̤�{���\\n,��i\\u001d��<�\\u0001c{�n\\u0016�W�ү6+0Z�.2�&L�>��%\\u001e\\\\��®�DIiA�$�w���M�eO��w�C*�5�9�U��\\u001bL�0�vR��F��7{|)\\u0017$ |�\\u0018��\\b(��m��\\u0000P#���I?ƴ�\\u000b3|H\\u0001@0@&T�<+i?��$l|��7e�2�&�:\\u0006��zE�f�&\\u001cC%\\u0003��.\\u000e�{\\\\wj*|����\\u001eS��Q͂��۷\\u0001ޭ�8����$�ħq�t���M�?�i\\u0019;-��\\u001a�\\u001c\\u00132x\\u0018����b�I��\\u0000�\\u001eI.��w\\r��\\f5�U�K\\u0014�c�n�S�Y47��ۓ����Ɯ�`m�ܪ.��n�Ѹ<bq~\\u001b�]�l&a��G��j�`��>^{�3�\\\\�� O��}��-\\u0017\\u001d��r#�#{�\\u0001��ǡ�ֳ9&y�\\u0018���5�\\u0016&�~\\u0015^\\\\�'�\\u001eie�-�kL\\rʝ:�����8��\\u001a\\b���\\u0015)rH�sDd��\\u001c(\\u0011F\\\\\\\"39��2I⼢�����\\u001f�1V����v�\\u001at���\\u0000rp\\\\�ϓ\\u0019G\\u0004��ߧ�zv�V��20,c\\u0001-�q\\u001d�\\u0014\\u001e6~L�ԕrN�z\\u000e�_AD�\\u0005�&4�J��\\u001f��&��-��\\u001f�9�EGl�v \\u0000w\\u0010/�\\u0004�/\\u0015\\u000e6ք��a�\\u0004ݷ6����g�{���4g�*���]l���\\u0019�X�d�ް��\\u001f[�P\\u0000n,N��R[7q�U�Zle���h��2qy\\bq\\\\\\\"R��\\u0005���\\u0017\\u001e��L��|�,�]dK\\u001b���R,c���fH\\u000b;\\u000b2��k\\u000e�Wo�@ك\\u0013�\\u001b�� n���Ւ\\u000e�\\\\\\\"f��κ\\u00016b!�����«ʊ)9��D3�\\u001c@��(��a��W��cK��\\u0000�D�בӺ��\\u0003�¤<�>W$#,����]����zQ��\\f9�$\\u0005��ĬX��k�m��Q\\u0000��������+������S�r�l�Y�E\\u0001\\\\��\\u0000v�ܚ[�����\\u0006`\\u0012��0�&���͂�uSo�\\u0015e�\\u0001�ʨ���z���X��\\u0001�\\u0016�\\u0007�Q�b��\\u0000;�\\u0002��̈�\\f��]�;���e��B��zP�~<RK&l���\\u0013\\u00127]�K���)�Y�\\\\\\\"BҠ\\\\�\\u001e-��(���{�����d�D\\nCg��d\\u0004�B���{U9���q�\\u0017�*\\u0012]���?Ƌ���қ\\u0013\\u001f(\\u0002��\\u0011������\\u000e>98��m�\\u0011�Bz\\u0003�� \\u001a��|8+$s)�P1��ٖ�M&��ɔ��Z5\\u0005�7\\u0011����:�,�8�+��v� \\\\���*\\u0006�r���\\rv�\\u0013���r�7�C���`D\\b~{��|\\u0019����3,%��0��\\u0014�\\u0005���P��A\\u000eW�QKd��dYR׸\\u0017'ҏ��\\u0010�\\fqʸ��@z-�=it�\\u0011��2#��%\\u0003r\\u0003�����\\u0010Zq�{p��i\\u001eg�{yq�&4V�\\u0005�ο��DdgG��<\\u00197�\\\\\\\"u\\u0002\\u0013�n�m�\\u001d-C�fE���o �\\u0005�$\\\\��\\u0002���y\\\\�x�\\u001b\\\\\\\"H��&�0�R��6�\\u0014�\\u000e<y�O����s�\\u0017\\u001d,{�k��|��MFÇ���o�`�%��`\\u0004�\\u0006�8��\\u0000\\fIq?u\\u0006Ҧ�w�[�Z���\\u0017\\u001f\\u001f&;\\u0014P�-Н7jU\\u0006�t�\\u000f�>CK�\\f1\\u0018�P�\\u0004�۠\\u0000\\u0013�$�\\u001b��s�\\u00102I�@��\\n�s{w�꼀�\\u0001TW\\u0003x�v�d����!��\\u001b��3���9\\f��hT�?]}h�i@�\\u0019�B��t�磊ί�\\u000b\\u0006x̑��s��=�u��W$��c����C��\\u0010t\\u0000�e��^�ˈ]�>T�˓.&Ķ�6\\u0014c\\u001aA��Mp�u`�������\\u0010�䴋��bU�\\u001b�4Ѝ\\rQ����\\u000b�\\u0016\\\\�E,�\\u0010v�\\u001dv��S\\u000b��LHYc��\\u0004��\\u0015I��R��\\u0018�\\u001b��9��S��L7w����O\\u0011�N8��0�f�+<��IR�.�Z��v�\\u001c\\u001c>%����\\u0010L�]>�uf�ڶ�W�\\u0005f~�,l\\u0019$�\\\\�mm��-�W\\u0018����1�ˌ]�[{\\f��\\u0017���/R�-p0.کs�\\u0018�\\u0001�aY/v�6��\\u001ch�W�l\\u0018�1FL�0U-�'�Dw��⌃s�}��\\u0006��v\\u0014?+������s��P,\\t\\u0006��aTay�\\u0000�d\\u0003\\u0002�`X��|M0��;A�\\u0018�\\\\+�m��\\r�.4�U�C>\\\\\\\"��M�\\u001e�m�\\u0007]�֢U0��̭�h�\\u0010nF��u�0��'\\u001d�ǁL!O�d��w\\u001b��,{��d�\\u001b1$�f%�YP~��\\u001bn�SA<�������l\\u0001Ֆ�Xh����]I��\\f��\\u0002�v7P���\\u0000\\u000f�w�p��i\\u001c��:��\\u000b\\u0006\\u0002�]�vZ!�bś���o\\\\\\\"�[�!\\u0003��m\\u0006��}u�9��3&�\\u0019\\u0016\\b�\\tw\\\\9-�m�j��J뮴��ч!(�1��x\\u0007z��Ë#\\u0001D�ov�\\u0014��O]:U\\\\g\\u000f0�TVYV)�<��\\r��v��Y\\u001261���\\t,\\u0001�_?���8��żD�dD6V6\\u001a��N�K���hsa\\u0002�;��\\u001d�\\u001f\\u001c\\u0005��\\u0006�~UĐ��c�\\u001f��fo\\u001ah|�����4V\\u001e\\u0011��̈��Vg7Ո'V��(\\u0006y�s���\\u0007�s\\t\\u001c^Āv��\\u001d�.w\\u001f�1��,s0Fa�}��e�m)v�r�B�\\u0016����8�b}\\u001d�v�rd�go�P�$G\\f�\\f�?�\\u000b\\u0000A٭�qz�\\u0017�\\u0019\\u0018h�!p��\\u0016�����g��\\u001c����\\u0011#SfY/ao��v�ԯ\\u0017\\u0001�����\\u0018�I#܁���bo�\\u001d�L�d�9�5;͋'c2�\\u000f\\r��(�8\\u00181�W�\\u000e8�ɊM��\\u0001\\u0011.�����ލ���\\u000e<)\\u001eiD��k\\u000b�E�[v�������\\u000e#�E ����O[����ٴ��*\\b�Ȅ)�#K��*\\u001d8o�P0����\\u0016\\f�\\u0001\\u0004\\u0001�{կ�����l�H-\\u0011\\u001a��0�k���<�D�{+.���~�(\\u001c�\\u001f�\\f��G�\\u0015��[����+�2m\\b�I�\\u0000�6�sf_�\\n�A�@3��*\\u0017yVWu�6�Z>?�q�\\\\?��0<ң��nu��+v�B-ҳ��?�f<[�Z��Aaqѭ޴�r<�\\u0018��\\u001c�FJ�Y\\u001dC=ζV�5�䥞l�%ɔ�3\\u001b����k�\\u0015m\\u001f�@��f\\u0016Fr��A\\u0013\\f\\fk����R�\\rh�R�J�*T�R�J�*T�R�J�*T�R�J�+i�\\u0002x�c���5��%�\\u0007�à��\\u000f1��\\u0014�BAG\\u001e���o�Zu�Jf�\\u0017p]Y��w\\\\��k�4ˤ\\u0001\\\\_#�|g&RAV}?�kM��L�2r\\u001a�2]�\\u001bX#n\\u001f�\\u000f�:�Dr\\u001e��{����B�\\u001cm�?���BB\\u0015X�{�u�Pk�Q�>�8ň�e��Z=�QZ�sps��Yr\\u0006;��Y��\\u0006\\u001a~��.C��Ŗ؄���K�0��Y,H\\n\\u000fʒgϗ\\u0014��N=��Ł����^�W7b�E���H:����\\u00069\\u0006��\\u0000�J��\\u0000��q�\\u0005V\\u0011?�\\u0006\\u001a ��Dd\\u001c��L�c\\u0005�laRO�[��hc~&W�]β�k\\u0000{Z��k�<�G�gdg�J�\\u0015H�M.����h���>]��s��\\u00125\\u001d=�H�=�\\u00104�f�8�NN��/�G\\u001e\\u001e�&0�Ad/;]U\\u0001��\\r���\\u0000G#&\\u001cq�e��_K���<^\\u0017�Cq�1<C�\\u0010��\\u001f�?:HD��J���\\u0001����d\\r?����K%��4Ui'�S\\fl���؎�\\u0011�ֽ�0ʻ\\u0011v1Վ�Xu��!c>R��5bz�TH1�VH��#KzQ\\u000b�\\tY�i.ɑY\\u0017\\\\\\\"�\\fl�D�y�ː\\u000e�a(\\u0000���k7���R�͆;�\\u0000��:�\\u0007�Z�\\u0014�$�A���\\u000el\\u0001�Dm��!6\\rq�ƙys1Y��e�\\u0007\\u0016��\\u001foj�\\u0018�b\\u0001\\u0006���5��p~�|����TƧ��\\u0004\\u001d/P?�?\\u001e!\\u0018���s�lRm�F\\u000e�$�nB��5i'�mjy>[\\u0002��\\n�~��w\\u0011\\u0006��9lF��l+X+�M����a����FT�m�n[�\\u0004\\u000b\\u0001Z��2K�Z�\\u0017y\\u001a7��\\u0016\\u000eL�N#����2!ԏ��J��[�����FȐ�2�Y�.�*м��\\u0004=T\\u0002\\u0018����\\u001e�\\u0004mf�]T؏�RZYg_\\u001b\\u0010��%͵'J�C����$���1�\\u000e�\\u001a�)\\u0004\\u0012t\\u0003OJȘscul*ro09\\u000eu��&�b$V�0\\u0006�t����m��@\\u001d�x�QX\\u000b��{iꧥS'�!�E��+3(k\\u0011��J�\\u0010V=io����\\u0015~�Z]�a�理� \\u0001%?ܦ�\\u001f��f�\\u0005d��+*�O�����i��\\u00076ބ.�>��,�6T�m?�\\u0018\\u001d��Ӹ��z���V\\u001d��~��\\u0000���\\u001b�^�֯��&RH7��\\u0002K�~�\\u000f�(8~���uX�t$_�?�i�W�l�\\u0000\\u001e>_�\\u0012��\\u0011��\\u0016�%5�\\u0004�z�ʄ\\u00077��9e�%����*�՚E�^E72\\u001f�Q�A�4���e\\u0012\\u0012��r^��*����L�_�1�\\u000013���P�Y9���\\u0019ؒ\\u001bB��K�����6��ճt�\\u001c(1�ɓ:�\\u0018�3��,��^{�ⱸ\\\\��\\u001c|�2#\\n������\\u0000u6�@�ܣ���2�F\\u0000M�$�n�\\u001a��X��,����<�,�Z�{�^���qbI\\u0003\\u0002��\\b�c�#җ\\u0013�\\\\\\\"+_�\\u0005� )��񧜦SK�Έ���\\b�(�/��K\\u0017\\u001b��|i�n\\u001e\\n��\\n�\\u0017v�5N74\\u001a\\u0017&;d#x�[F٠;����\\u0004�\\u001c����e�k\\u0000:���\\u0000�\\u0001F�jiD2dɟ\\\\\\\"�Z\\u0004_���}'Z��\\u0017\\n˟�6\\u001c�\\u000eD�\\u0015�����_�/��I��:\\u0017m\\u000f��o�\\u0000j��w1�9\\u001c�h0�q\\u0003�C���Z��U1��<�#�'mo��������\\\\���0WU��+b\\u0004��\\u0017��[\\u000b�\\u000e$�ʾ(�6�an��/���瀀�Џ3�d\\f�l>w�<�\\t\\u0017\\u0011��O0u`����ڄ�$�\\u000e;���\\u0007��$Fֹ&�\\u000fΚZDmk[Y<|(��3\\u0012�.�jA�G�6�1�d�s\\u0016�e�f��}-�\\r��`�\\u000eY�\\u00073�Y\\r��F#��\\u001a�A��\\\\\\\"���.�,�YG����\\u001c�È��63�ʃ��i��ٺQ\\u0013���zπY�\\u00060�U]D�?�����Yf\\u0013�3\\u000bƥv�n��Q²m���W�\\u0000�}u�Y<�̐���+\\u001bF˪���ZE\\u0014\\u000218��\\u001b�@F���B\\tU\\u0000C\\u0013Ml��\\u0017�Ⴉ\\u0002G�\\u0002���<���\\u0000R�\\u0011ײGp\\t\\u001d{�\\\\�g��G��\\u0015 b\\u0014~�V�7\\\\\\\"������<�\\u0000�� \\u0016���\\u000f]�V\\u001f\\t���\\u001f'.ԅd��lĆ�\\u0014/{���*\\u0001\\u001a��}�W���%�\\u000576 �\\f�DA�\\u0003:�\\u000f��\\u001b\\u001eǸ�1��~#��3��7=�1��\\u001e��W�����&0��m�UY�K..\\u0019�eu��i�\\u000f����Q��±\\u0000zҝH(�ar1�^*$P�4��r\\u0010\\u0000��[O��'�C$���PM�\\u0002oe\\u001dwz�\\u0012݀�g\\\\\\\"1�[B~*y���A��x\\u0003D�d���C���U��\\u0015�`�7G���LL\\u001d��iK���M���|�\\u000e\\u0000�\\u0004;I\\\\\\\"�U������O�a�,AB�D�\\u0014�\\u0019\\u000bm������c�D~�\\u0014,`�\\u0013\\u0010\\u0000-���\\u0000ʽ�9�\\u0004(� �0Sa��7��U�P�L��\\u001fZҘ\\u000b���\\u0002�c�:O�\\f�֊�G9\\u0019X�\\u001e!\\u0016�(>�s�����?\\u0011��M\\u001bE\\u001b\\u000b���\\u0004��\\u0016�~=k�<x3�4I(�A��[h\\u0000�A4��wI��Z1\\fi\\f{\\u0018\\u000fc��k��\\u0002�A\\u0002�+�\\bf\\u0018\\u001432��p\\u001f���\\u0001�\\u001b����k��oy7��\\\\�vS�I\\n\\u000f<�b\\\\\\\"�t:��\\u0014�'\\u001f�<&h�#i\\u0019J6�����4V\\u0013\\b\\u0000��|�\\u0000mr��ۍX\\\\\\\"?\\u001a��Ӯ[]l�\\u0011;\\u0013;U��c\\u000b�^���\\u0000��E��l\\r��A�Z\\u0017>i<s���\\u0004\\u000e�\\u001dv�\\u0015ęЌ\\u001cH���\\u0007c�X�К^F*�\\u0006���V�\\u001f�\\\\��>F\\n@\\u0016��t��bܓ(\\u0004\\u000fb��\\u001d�y\\u0011I�D=��V�\\u0007���P���t��lY\\u001a�㨵\\t$\\u00123�\\u0002���\\u001ak�h���f8Κ\\u0016���\\u0017#�ŰLv��ڍ\\\\\\\"j��\\u0000h�$�I>�\\u0016e&��\\u0000�\\u0001aG\\u001cY%�N�S��){�ݯ�\\tʬK��\\u001b,�ʤuk�4�\\u001aC��\\u0002Y\\u001c\\\\\\\"��\\u001fv�?:���SV+�Y��o\\u001dFo\\u001dF3���\\\\.ەs���6QE\\u0006TRY�r@�®��h�ɸ�����y�/��+��LQ�\\u0019)\\u0013���ڻG����V����$X�\\u0016���3\\u0014\\u0017$jO��Ի�+��߀�4\\u000e\\u001f6Ig\\u0010n|�\\u0018\\u0018Q�\\u0003쪲xܼ���2 `��O���\\u0014��2�\\u0015�w�ǆ{Y\\n��\\u0013����W�+\\\\\\\"<�����D;#\\fE�5�K�}�\\u0014\\\\���\\r\\u0013\\u0002Ĳ��b>\\u0000T\\u0005F2�<I\\u001e���\\\\����ˈ\\\\2.�w �+�\\u001b\\u0011���5���\\u0002ᝯ����ָ\\u00192E�1ķ��ʶ��\\u001bw|ͫ�Ύ#`���Ƃ�k�lG�$V\\t,�B\\u0003�/n�\\u001a�V��:į�;>Dcҙ-q\\u0007�\\u0007]�p�%���1�\\u0000�\\u0005�5�\\u0017J]��r�\\u0011�\\n\\u0014\\u0007v�\\u0014\\u0011���\\u0015�\\fŔ�\\u000brB�}{�(�\\u0018�p��_ B�ױ6�\\u0005\\u0017�QD\\u0012\\u001bC�\\u001d\\fSM�q\\u0012���\\u0001Dq�DeC���\\\\�\\u0000V�\\u001dN�\\u001d7\\u000bR�.L��\\u001e$��6\\u0016\\n�\\u0015\\u0017��n��}�Tn�%��3��\\u0014׆Ú\\\\H\\u0004�!\\u001b~�� j\\u001a�\\u001e�/��I+��Z\\u0004���{�Ƞ�G��g\\u0013����ZJ�v��\\u0015����ޯ�1r��\\u001f��㌱�H�\\u000bm\\b�\\u001a]��9dT�hS��C�J3\\u0002W�\\u0000o�E��\\u0018Fo�\\u001f���j9�*u\\u0016�L��\\r��U�\\u000b�PC\\u001f֗� KŸ�o#�&2m}��moʭ��͂A�<~��p\\u001bw������Tr�dc༅\\u0015�V��:�w�]�G$��\\u001e0�ں�����(�����q�6\\u0011�\\u0018�Aei*��\\r�\\u0015t|�\\u0004��]%7+`,zZ���ЎN\\b�lw(���@m�^�������c\\u001b��\\u0006�n��%kK��Ƹ�;�%I�\\u0018���c�U.D\\u0015a��\\u0018�����{M8ru1\\rÀ����4c�\\u0007 �\\u0000\\u0003s\\u00007\\u0000\\r������%�R'b!}��X\\u0010��ީ䦞<�W6|f��Em���_P:�8�\\u000e|M\\u0011\\r��\\u0007\\u0017�Xu\\u001a��\\\\�\\u001c�q7\\u0013�\\u0005\\u001f���l�.O\\u001b\\u000fBム\\u0004��_Qκ័��ޅ]`b�\\u0013p�6����k�hVQ�\\\\\\\"�J\\u0001P�E���\\\\��\\u0014�\\u0002���xٕ\\t\\u001an��:ᡛ��M��X���>�(\\u0017Ӡ�c{a��*��9\\u001c�ɐ�Qd.�{\\u000f�Ks1���(dt�-��bz�c\\u000f\\bb�\\\\�����U?H7���u���Ό�Dc�\\u0014>�@��zm=�ud����\\u001e&NӐ�eE�7Q��\\n\\f��]�C\\u0011�\\u0001�鸳-ر\\\\��E儼\\u0000w����}�+�@����WƓyr�O���\\u0010�l�>�g�b�/�����eő�Y\\u001b\\u001d=�D\\u001b@�ؑF��Y\\u0012�\\\\\\\"�\\u0012b�,@�I��c���D �F\\u0017�\\u0000�'_J��e\\u000f�q��A��\\u0006�Z���2���\\f�i$��\\u0005�\\u001d��i�8\\\\Ղ(�۾ѽXn#oK\\u001fZO�er��\\u0002f�dƖ1$r���qw\\u0017\\u0017������\\u0019\\u0012�^\\b^?m�\\u0002�?�z\\u001a�%o���U��V��%�d�\\\\\\\"\\u0018�B�GLO\\r8�xٸ�\\u0006�(�M+\\u0012�l\\t?\\u000f���W�ǝ\\fq��\\u0011���\\nu%�ި���ɕ�-���\\u0004:^����W$d�\\t��2;G�y\\u001b�}\\u0006߅D�-!}-�J���\\u0006C����9��v׏*;��\\u001eN7\\u0004<�'x�c�噈\\u001a��k�7�Ǐ\\u001f\\\\\\\"B�L�\\u0014�\\u001d\\u0013�{\\u000fƓbC��\\u0010��e�������ڣ��Ep�4�.\\u0003d\\b�Vr��\\u0000V����H\\u0015\\u0001�\\u0000����Wʯ�\\u001a�9\\u0011�\\u001b\\u0005���My��\\u0016Nj���\\u0000A���'���\\\\LL�P\\u0016th_ ��A��5���\\u0007?\\u001d��\\u0013�2\\u001f3��@��N�\\u001dk�;��&�\\u001c~d��aaa�T�w�==h��ݷQ�̙��\\fϋ\\u000eO\\u001f!\\u001d�RU�\\\\c�؃E��L��e�\\b�\\u000f�[\\u000end<efH�\\nT\\u0010n��k�4D���{ȱ*�\\u000bw�R<li�.W��m'�����BH\\u0019\\u0018�\\u0006Q'�����JJ��ȸ��\\u0002����Rȹ��!��̬�7�*PjW�\\u001aW\\\\�y \\f�b|V\\u0013#\\u0005\\u0017\\u001bu |�( \\u001f�ʹef��}żl�\\u001e���GA���󠉊$r�f;�����\\u000f�D������Rs�Ɂ�H\\u000f�,��O��U�g�\\u0000�d�l2ː������q)n�\\n�|o��^=�a�3�\\u0000�.u�iG\\u001b,ؙ���\\u001f���m���w҉���2�D�1�(�&��uۮ��R\\\\\\\"����\\u0000�\\\\\\\"c�=�o\\u0000u(ԇc�\\r \\u00194Z��痏|�\\u0013\\u0019\\t-\\u000b\\u0015�7\\u001blt���!�\\\\x��ʾ$\\u0007[\\u000e�\\u001f\\u001d����\\u000733t�\\t��\\u0006�v�3q�*�\\\\\\\"\\u0002��:��O�ha�\\u001d\\r��\\u0012�D\\u0012���F\\u0018[*)�oF\\u0004'n��QդӞC��N:\\u000f��ًf�ȷ��\\u0003��I\\f>DwR\\u0005Ե��ތ幼>U��xB\\u0001\\u001by$��w�pȣ��L�)6\\u001b�\\u001c��c%\\u0001\\u0016^�\\u001a�J\\u0004�\\u0007Q��|��*(\\u0002K�8�(\\u0010 G3YL8`�8�����;�ԝ\\u0005hx�)�s]Y�X�?�e\\u0001����\\u0000�ڲ͉,\\u0012\\u0005}\\u001c\\u0000�.�_�Οq�̎��\\u0006\\u0013��(F*�ݿ�,�VD�'����9��\\\\�J�%����\\u001e�p\\u001ck�S\\u0012\\u001c}�ؓg�1mH����00����f��6�-ԯ�7\\u0006�ɚ\\\\��\\u001a�\\u001d��O�(�\\u001d�s��L�l�շ@K\\u0005${�\\u000bX�G�dw�1�!�UǪ�\\u001e6ȹ���3�N1�\\u000e=?��P�'\\\\\\\"�bxD�]\\u0015�\\\\h{)�!���\\u001cJ�0BH\\u0000\\u0000��\\u0000����̈N'��>�\\u001a�\\u0007���1�1$��WdH؏\\u001b)R[�_�R\\u0002.�V<�\\u0000\\u001a\\u000f#>KW��1�B�k��cH�+�p���ʀ5��)�\\b����\\u0010�\\u001cf\\u001d\\u0011�\\u0003�\\u001b9��iU�u=�s�\\u00136&\\t\\t��of�-ßҠ��\\u0013��l8��\\u0014�+8R�\\u0014���1\\u001du\\u0015\\u0001\\r�\\u0001���o�Qq��n�nƥ@='�9И�\\u000f5>T++�,��\\u0004�{/���z��yx�'�ʏ$,@p\\tK�u���l�c�x1b�J��A����[AZg��?\\u001f��6�\\u000e�D`h�4=i�\\u0002\\u0001���R2�Ζ�c�ȳ\\u0013�\\u0000h�Z�?�,h�fQ&\\\\�с\\u001f��X��:Rɲ�\\u0000۹Qx�l!�#\\u001b������_\\u0001>t�5�lW6\\u0004��oq�\\u0002�\\u0000�W�||�y\\u0013;Y#(�\\u0000�\\u001d}���iO��0\\u0000\\u0010\\u0004�5�\\u0000�]�wl����YUC�\\rd�_e*�ɑ�\\t\\u0016K;��U\\\\\\\"�A��)���\\u0010���� � {�q�n�H��w�a�����B���Y���w�-���\\u001a�r�;�E>嶵%P(6�!?ʉ��e��^��ʓ�\\\\���8\\u0018�)�X\\u0010\\r��@\\u001aX\\u0013��+1�F�gH���T؍\\b��<G��#\\u00199ܬ��9&D\\bH\\u001d��\\b�J3�6ː�3dE{$�,�>\\\\\\\"��\\t \\u0001<d��L��P\\u0017\\u001b��im�\\u0018UӓD����R�]h�R�J�*T�R�J�*T�R�J�*T�R�J�*Q�o\\\\\\\"�3n���D�\\u001e��(:�(]\\u0015ԫ\\t\\r�l�!� / H���b�6�t-�j:|od��a|�|Dta�=(\\u001e/��l5�\\u001f���04\\f\\u0007���8����l\\u0015�]u�z 5\\u0004i�8�:�>|������\\u001b*\\u0005,5KO�>�O\\u001a��O��o�c�-��\\u0016?\\u001d(I�&�@ұf�\\t�)�B�\\u0017hP\\u0010�i�����<~.B\\u0015q��2k��\\u0019@?�\\u0011\\u0006u֟�:&5\\f�I\\u0012���H\\u0012v\\r\\u0013�'M�{�m���\\u0018܀��=����m\\\\��a\\u0001\\t\\u00120\\u0017$_O��t1*��KX��\\u0000�X\\u0015���\\f�\\flk�V�\\u0011;OV$z�\\\\�\\r��|��9^)\\u0014��\\u0001v\\u0003� n%�ޘ�\\\\\\\"ȁ��h�Tu��/�(cC+\\u0016���\\u0019X\\u000fҦ�\\u0000:�\\u0007H5~\\u000edRY��H�V\\u0007�ޑ�\\u0000���ˌ���п��ʘ�-��*�_b�\\u0004��\\u001e��q�\\f\\\\�K3�Ȃ���f�k��'ӵ\\u0019��i�\\u0014\\u0011�*\\u0001{���soƁX;\\u0010\\u000eշ�Ƙ�\\u000b\\u0012\\u000el�C�4�ڄ�ȋ��Y�H�,\\u0011)�;YO�\\u0007�4�Q*\\u0019�\\u0001��En�G³?��L���ԍ.��wS�+��ܞD9�a��ĒA䄶ˏ�\\u0015�_��V4h����<t�\\u0018+��X�h��\\u0015�\\u0011C<�;hb�\\u0012�\\r�\\u0007��\\n�0\\b\\\\\\\"\\u001dQ�؞�:�_ӥ\\u0013�x�%��B\\u0000�\\u0012\\b'�\\t6����30�ĔQ�����������q\\u0004�ׁ��\\u001c���\\u001c蓐LB\\n\\u0013\\u0018 ����¤ؾU\\u0013��u\\u0000}^�������\\\\� �X4g�J��G���7#\\u000f�0#�?�G�I��\\u001e��=qi���޺\\u0003\\u0005�:f��mAt�&u\\u0014\\u0006<�DRȗ|y\\u0016O\\u0019�Sz׌�� �\\u0002,\\u0011H70�\\u0005f\\u0004u?�fs1\\u0003��[���i\\u0000��QWB�� ��RY_u��߅\\u0016#�]`G�\\u0006[�\\blyJ!��7������]�I\\u0014��(�ذ��\\u0019X���\\u0003}�̍�r��i�|K��ʲ��ܪt&�BM�W\\r\\u001c��஺_�\\u0019u\\u0019���:\\u0003�Ƈ��\\u0000�㺨3cȝW����8�ɉ�\\u001a\\u001b�ڛ|\\u000f���n;���\\u001b\\u0014y\\u0013d,��O��k�.6�K\\u001cOk�}ߨ\\u001e֮y���1 ǁ�I��$U6����*�F�i3U���\\u00005�I\\\\Z�\\u0001\\u0013E�\\u0003�㉆�{X�^���nFx&ƃ\\u001e9\\u000b<\\u0017\\u0012\\\\\\\"\\u0003`I���\\u0003K\\u0006\\\\\\\"A3�xƧR:�[�AC2���o\\u001an\\u0004K��Z�\\u0000֨\\u0002=f���r�B��fO�^\\u0010#D������۵��vpH\\u0003A�\\u000e�S�콐ȞDw`\\u0001��A�߯j�b�f�\\u0010E�$���\\u001b\\u000fZ\\u0016\\u001a�ճ�$�Gi�d\\u0013˝\\u0013��\\u00069�c\\u000f���Zծ�I%�Ɠ#\\u0014E4�.\\u001bܫ��F����XrL���-Ξߐ�\\u0013�\\u001a��B�[�[AqjK\\u0016@m\\u001a���\\u0002a�\\u0014��\\fm\\u0002dS\\u000eg\\u001a<y\\u0013!W��'��k\\u0016[jG�\\u0015�y\\n�G�U`A?\\u0006\\u0006���y���%�\\u0001�V$�~\\u001bH�0q\\\\\\\"��ī�\\u001cK����\\u0004�[�晎���\\u0000�o+\\bɐ�\\u000e\\u0018�W�1��<lP�1T�U\\tg��\\u0014�$\\u0012�t(˨�˽Q�A��R�\\u0004yl3����w+#�\\u001b���\\u001a�\\u0007s�\\r�\\u0016\\u0007ҙ�o�s��e^��\\u0017^��C\\u0006��2�\\u0019B�S���-֘\\u0010�ş\\u001b1�Q\\\\\\\"\\u0019�з�0UC\\u0006\\b{��ܼfɑU��\\u0019e}����\\u000f¼�����f\\u001e v�\\u001b^̶��#օ�d��\\u0016�� =q�ۥkyB!Ğ]�ح�I�n���\\u0007°8Y\\\\�9��B�}�9^�\\u0004u��\\u0000\\n��J��\\u0015�ѡ\\\\�R������:^�H��R�0.Y�Z��t��4�\\u0010ځ<�h\\u0005��Di�$0Q��\\\\\\\"i�\\u0013�C$�m�{��\\u001fϭVs��\\\\����\\r��\\u001a�h���G�q\\\\\\\"��kk�\\\\�\\nA��`j�i\\u001d���d���\\u0012%q�'�)>\\u0007��eɍ�����8S\\u001b)m�i�\\u0003���E�e\\f}Ct\\u0016�+�O��\\u0014a<r��2o\\u001a1,�]\\u001c�\\u000fʅ��\\\\ei��$�(���~G��#4�rG\\u001b\\u0003\\u0012��H\\u0016��74�v)vE�Đ=(�b�<��l� \\u0007���-/��8\\u0002k�}g�\\u001e)YC\\b�`*�~�rZ�^��~\\u0019�c�\\bTe\\u001du�;��NVL��#���;�Żw��9U|8qT\\u0012��T\\u001dB�[p�Z\\u000e��.�wO\\u0003��A����<Y�p�����S�G\\u000fj�\\u0003\\u00028�[\\u001edY��]�\\u0003c���֏̚'\\b��la�\\n>���\\u0000_�J�W|�.�ep�\\u000e�7\\u0007�\\u000eƚs���aD�\\u0002�n\\u0001���\\u0017\\u001d�f��\\u0014\\u00029泮\\u0017ɕ��>\\bu�q�xV'-^I�t$\\u0019C�\\u000frk~���3�����h$b�nV\\u0002�5� \\u000f�21��fR.��wm\\u0005���0s����\\u001b4�c�p:\\u001a�pw\\u001a\\u001d����p\\u0006.��@=@j4ОQZLno\\u0014�B��E\\u001cj��\\n\\u0017h\\u0001�;R\\u0015�\\u001b++\\\\\\\"\\u0019Y\\u0016C�P�)�o���Z�q�f4|lX�\\u001e�M\\u001a���w��X�Y�.\\u001eF����Ǒ$j�zx��Z� F�}i�U�݅�#\\u001a�GD�4v\\u001bFXde\\u001f��\\u0012O�>��\\u0018�d><���I#���a\\u0017K���\\u0012K\\u0007��Va\\u0013\\u0011�]T��je�ş\\u001bǝ$��/�Ы\\u0016!��\\\\\\\"���~�\\u0018�\\fZ�]�_���|�|�mL)\\u0013\\f�\\u0006���/�F2��$�:��.Yu:\\u001d�\\u0014�\\u000e/\\u001e\\u001cQ���nu\\u0002�m��S/��',� \\u001f�����\\u0013j'��\\u0003\\u0011�1��$��7*\\u001bQ��\\u0004\\t��\\u001a�l��1\\fnB�p3�Oց�A\\u0006�6(�\\u001d�\\f�\\u0018\\u001e�J�6�R�u\\\\\\\\ei����h[�M�oKQ�^\\\\�9�wiC(����\\u0017K\\u001f��Z\\u0013�8�\\u0019�*���\\u0007C{��|�Q�@n�Z����|c�񲞼)xȭ����]�y�y\\u0016#4q��\\u0000��6��tx�\\u0015R)R2�DK�=\\u0018�N�ڂ��G\\r�����,O�\\u001a<\\u000f��������g4�\\u0014X�(�X32��\\u001d\\u0005�S\\r�\\n\\\\\\\"D\\u001e~�RS�R�d%,�Ǽ3\\u001f�\\u001c\\u0004PY�E��0F��W�y\\b�����U�E\\u001eu�v�UnE��ڛcqs���L��F\\u000f�\\u00176$�E��\\u0000Ƃ���ƍr1X�J�t��é\\u0007�z\\u0000�G������\\u0005Y\\u0003X�[���O��B�B0r�X�\\u0016K\\u001b��Gf�0�߰^\\u0010�}nāoʸɞ\\b\\u0013\\u001f\\u001f+\\u001dd,�RF\\f�o:��\\u001b��~}��_���gy6\\u0011`\\u0010\\u0003[��V~�h]I8�\\u001a��I\\u001a��E\\f\\u0018%�B��$�\\u001f!ծ���ir�\\u0002��˔I&!\\n����\\u001b��J\\u0012\\f�a���I\\u000e:\\u0012��$�\\u0003��\\u0000\\n�%ȑ��P�R;mcԷ��,-\\u0001�O.UXpeGc|�rs���*�c��y#we[������)�\\u0017\\u001b��k,��\\\\�arNѪ�\\u0007\\u001a,�|-��U��^�y6���Oμ�*~*&޻�v\\u001e�w\\u0002t�ЬA\\u0011t,�S�9r����p���\\u0003B'�\\u001d�G�ėk�X�@�b}hȧ�(�P�eګ����'�A�\\u000e\\u001e:�*?��I\\u0019�\\u0016ץ[����ݙn�݂��*��^�y\\u000b�!��o�Y�\\f\\u0017�\\\\o�\\n��\\u0007C�JGʲK:��@�\\u0014���K��L�%�Ə�N@�ŤE&�f\\u0017�м�5'\\\\\\\"\\u0013�\\u0000u��\\u0004(\\u0006��\\u0016�m�aG�Ɩh�x��;~���۵�Y���-����f��(\\u0003H��\\u0011d\\u0019e\\u001aG�0�r�r�$�|Q��j�����^�L\\u001c^n>T\\u00131Y�\\u001dL��@��[Sg�)\\u001c�\\u0019K}i`A\\u001e�\\u001a�u0�(w�\\u001a��k�e�ōćb灮q�V�0�\\u0018�PpG?Z\\\\\\\"l�h�l|}Y�\\u001e�\\u000f��k?\\u001e[�|�%��I&筬EY�\\u001a゙��ٚ\\u001d����k�\\u0000�S'��9C�\\u0014H�\\rǺ�ܿ�Uً�*��\\u0000)\\u0015�|o\\u0007\\u001e\\u0003�ɑ������̯�׹���^,��<��;\\u001b\\u000b\\u001e�t����γH�\\u0001Y�*�is~�Ry\\u0006<аܑ�!�Mmf7\\u0003���\\u000e\\u001d9><ż��\\u001a2\\u0006�\\u0001�_�*�)an��1T���\\f�1�;s\\u0012~�T,n�+H�#�Vk�K&�\\u0017�]���\\bg[�T\\u001d\\u0000\\u0007�&�\\u0018~\\u0014\\u0002\\u00151�=������u�X9k���\\u001ah�ds���6�\\u0002�i`м6�d��d��6�/Tƣ�mƯ�\\r��f,d>�J�1�X��Vw`�等�~�D\\u001c�o!,h�$q�ݕ\\u0006�o�nk�i^h�\\u001b�C S\\u0018\\u001fQ=��Q��)8��L�2<\\u00172�N��5���\\u0006\\u0016<-�q\\u0018YU�V6��dyr��\\u001c\\u0019��\\u0015\\u001a\\u0011 ��\\u0005�Z�zP��\\u0012��%1�\\u0000�\\u001e��\\u000fV�q��\\u0016\\u0015,���׻\\u001e��~:�\\bK��N�49�VT�j� �\\u000b��~��0M\\u001bcE����,��`-`(<�̍�ǁ����m�0�]�{��8���dʪ]Y�y\\u0007�s}?�s���&Ls6G�D�%��U�k_����E]tc�mT��ylM���3\\u0003���]�#��\\u0011[\\u0019@\\f\\u0001>��#]MRI��a\\u0018Vܧ�&�+k\\\\�m\\\\r)��)�����\\u0003�F�56��Su��\\b�IF�w2\\u0003����ʈ\\u0005�\\u000e��(2��d\\\\\\\"�2\\u001cr�\\u001f}+�*T�\\u0000b��\\u0017@t�a�u��,�\\u0015ą<���3^���;׿�buf�&i��\\u0016bY�\\u0007�ޙř\\u0007\\u0011<��#��\\u001a\\\\\\\"\\n\\u0001-��n�,J����4���8�3�\\u001e2\\u000b_\\u001e2KGɗ@\\u0019yk΁a�\\u001e^/\\u001f�ۢ\\f#��߉4t�o�L�g�E;\\u0001в�o@E\\u0019^;�䔴�2>2�{\\\\�k߮�T\\u0019rr\\n��H1�2�������j%�\\fA��YH\\u0003\\u001bފ�\\fe�\\u0016�im9���8�G;\\\\\\\"\\t<�1�\\u0010: \\u0007�;�w5���Ƒ�}�;����\\u0011���P���'|&9\\u0000\\\\u�\\u001a\\u00056*4�\\u0003��>\\u0017;\\u0017�W��>D�3;�\\u0000p�:_�a����̉֗�\\u001e{OlB���\\u0014O�^�\\u001b�/5,@+��\\u0011!���Q�������vy\\fN���C-��\\u0005\\u0003\\u0014��\\b˩���\\tV\\u001f\\\\\\\")�\\r����?�䜈�)\\u0015\\u0012K]��R��Z��\\u001a&u2=j\\u001e��ŏ#�[l�^��_ZM.f\\\\�\\u0010�]�Y�ף���1Z\\u0015Ō;�q�E˱��5��Vf�cŕ�\\u001c.�;��;��;�+�̜<����\\t\\fq20+�S�\\u001e�Z#1��>�߁\\u0001a�\\u000b�%��A�E\\u0012�\\u00049/\\u001c���i\\u00144ŀ�\\\\��n���yN##\\u000f\\u0000;H�r�wn@\\u0000'�;�x�\\n\\\\\\\"[4*U��,N���\\u000b/\\u0004&�c�w{B������?*\\u0018:{G֓�;eg$�o\\u001b���+#��\\u001e���6�U\\u001a\\u0019RK�$K\\r�m~����bV8}�u>�|)�\\u000f\\u001d��3O\\u001b\\u0019\\\\\\u001d\\u000b\\u0011u\\u001f�s�ݑ��2�\\u00101����[ػ\\u0001L�\\u0013nΥ\\bߦ�\\u001f�\\u001d�ɍ^\\t[��\\u0010�~�\\u001e7�9i���\\u001e�h�\\u0018|�\\u0000�\\u0015/-�3D�\\u0012v�ܤ\\u0010,�К�A�.C��*K\\u001b\\u001dt\\u0017'�\\u0002���Đ�y�`\\t{�\\u0004\\rͦ��CK�T\\u0004\\u0004Z�\\u001d\\u000e�Uw�g|�26C�մ鵄7�\\u00189�M���\\u0005ʗuQ����֩Ƀ-�E�v�\\u0006����֯r11��L�D�3��Z�\\u0002�\\nHSF,p�i3�ZlEPF�s-���\\u0013z0Y��i�\\r�$�<k��.�\\t8YZ\\u0001:\\r\\u0012=�|T���q�r7�nXm[h�t���|L����a���]�2���)BeE�*��Y�u\\nC\\u0015\\u0016�ڪQ4�FL��INݨ��\\u0016�.I�B\\u001e��.P\\u0007W\\u000fhޚq��q�3�\\u0013\\\\\\\"�a�S\\u0003Q�\\\\2J�ä�dxļ\\u0011�\\u0012\\u0003t�\\u0000ѫ�y\\b��Yݙë\\\\\\\"\\u0001��]h�0%���\\u0011y�����ɺ�׿Z]�pܫ&,��\\tr\\\\\\\"%=�\\u0019��\\u0018\\u000f�*\\u0002�1��\\u0006��#\\f���\\u0000$\\\\\\\"��6�\\b\\u001e�F\\u0014|VNa�k������>\\\\\\\"ͭ\\u0017�8����*A\\u0016N!d�%��I�o�߭+��?��43����h�^���\\f$��\\u0012b�|������75\\\\\\\"T��iL��Q�;���ܸ\\u0000WF�CLg�\\u001e79㈠\\u0012\\u00042�l\\u0003\\u0011�:z����U�\\u0015�!�\\u0018\\u0019\\u0005�(F��\\u0000I�pr�1����rd��\\u000eM��\\u0010mF�X1Ǖ!�/���?P��\\u0000;�Z\\u0002�=R��V�v,�� ��\\u0015�];��\\u001c)�\\u000ef0��\\rhH�5.�\\u0001��q�yly��xU\\u0014��V��x��Z�H\\u001f�\\u0011cF�\\u000bJ�I�\\\\�dҴq��C�\\u0018/0\\u001b6��t�^��\\u0012��gm$\\u0000Ec͐�,i��\\u0016whg$���\\u001aK�\\u000e,�(x�Fas\\u0018k��\\u0000q��|��\\\\�F)���\\u0000�\\u0006ځO���1��]U<2�l\\u0018{�u;�5���Ys��F��M����\\f\\u00005֙�+����\\u0012527�t-J�(k�R�J�*T�R�J�*T�R�J�*T�R�J�*T��6�W4�\\u0011\\u0004\\u0010ŕ$[�\\u0003�����\\u0015`M\\u0003����*�NVL\\fO�*�\\u000b\\u0016\\r��}M\\u001b�>X���]��c�O�\\u0007>&$Q$Ҵ���\\u0015�C\\u001b���:U�\\u0014���\\u0015����\\u0007]E�*&@�+�d�0v�FAnF � �\\u001aQ��#�16\\u0002�m��Ŕ1��_g�ƅ��h\\b��=��\\fy\\u001d#_�2�A��ɮnh�\\u0017^�\\\\\\\"���\\u0004jlE�\\u0000�W��(\\u001b�j\\u0005���T�ek�k(%YSK��V\\u0005i\\u0018\\u0010\\u001d��\\u00176\\u0017?�\\\\�7\\u001a�����q� 0\\u001a��F���ǅ�r\\u0002�\\u001b\\u0017Ȥi��[hh�B�e`��\\n��~=j�IA�\\u0005�x[K[�ި��6�������\\u0013A/\\u001f\\u0011V�4\\u000b&��Tkz2 �F a�p\\u0002��c�X�|��(w\\u001f&��p\\u001a�+q�@Ë�N��H`@$\\u001b�V$*Kn\\t��\\u0015��\\u0000k#\\u0012?U���$�{7\\r���\\f�)-\\u000fԃ���-���ba�'H`�E�H�\\u0015\\u0000YX��\\u0017���\\fI�Ύ9SrHJ\\u0016\\u0007i\\u0006�h?�q>73�ɮ�;\\u0011ʎ�;��\\u0000�M2`��Y<uv���\\u0018ݍ�\\u0016t\\u00147/\\f\\u0010G�\\u0000\\u0000�`���c����ʃ\\u0019\\u0015�\\u0005\\u001b�[ܭ��A�4��|�\\u0013\\u0013�VU���B���\\u001c~<�\\u000b��/�\\u0003�TTr\\u001c��}\\u0004o#�83x���\\u0016 ]p�g�ҿ�E�xd�]\\u0019HQ}\\u0001\\u0007[\\u0001^\\u001d\\u0007�`����lE��B�n�d�*\\u00120HE]E���\\u001f�\\u001b��\\t\\u00140�\\u000f�B�|���NbW�b@��\\u0006����&t@��_Q�Rn�V�SV�-�\\u0014�M�h�h�1���أ�饾\\u0015!;C\\u0011����Ԋb@'M��I�E���5�D�Ff�_v�%�!��K����aI\\t3��\\u0011���zz���\\u001b�N�n:��Y�M�����o\\u000e<L\\u001c�\\u001bn\\u0016�[O�����6G��>���s\\f>.\\u0005X\\u000b��̖�}��ē�f͉\\u0018B\\u000e�$\\u0003�j_<�\\u0017��{�X����_���8�\\u0014\\n�\\u001a�V$#i\\u0004[�Me��.�j�'F?*���R�U���6@�n�3DE�'��.$\\u0000�#C�%��I�\\u0007�,!�u�$��t�8Y\\u0011�L7���\\fq� \\u0010O�ץ[\\u0017\\u001e�\\u0004���,ĝ�~�E�O\\n�2&\\u0010�\\n��Cp�F��\\u0010�ۡe6�zv�xQ���jH\\u000b�-��ݿʞ�\\u0000��\\\\i\\b(?�\\u0000\\u000fP\\te�aB��\\f.o\\u0011aq�J��)�ϭ\\t\\u001a�n�e2\\u0010z�\\u001fH\\u001e��<[]\\u001c\\u0007\\f,I�X�����bg*�<E\\u0019Gԇ�K�׫ylq\\u00063��|�\\u0004D�nu-Ea'�\\u001e?\\u0019{�\\fI��@%t�T�\\u0000�ڱc'\\u0017Yw��\\u0005CZt\\u001e��\\u00066��1H��'�X�X���9�\\u0015�r3��(�$\\u0001Xl'�N��z\\u0016,\\\\���2���d�\\u0015\\u0004�s�hk^�?�eB�h���`�Tj,{|�\\u0011�[v�´\\f�\\u0016f�E׹�}j��pJ��D쬱�@�A�H^��F�rسa}�p�5\\u001ept*��j�3��L������Bl7(�\\u0010=k\\u0019&>D1$�)X��OcoZ�8�<i�\\u0006\\u001f�\\u0018�Kc8�=u�����go\\\\\\\"�Q!i\\u00142鵉a���Q��bg����F�͸�\\b;�t�i$Y�Ì�����.��=h� I�\\u0004�7����mI6\\u001e�@ݣ\\t\\u0014��|br܄|@_^zS�����HM�3�|6�\\u0002˲���\\u001d��e�`�\\u0002��7\\u0001��jkM>(�<x췐�ē�{A�^��Ra�\\u0002Cb��i�#�M+D6ϭ=3;x���*�}�(��G�\\u0011�}��\\u001eAbv��\\u0000\\u001a+��\\u000eIR,V\\u0012c(�Q��=��9���1��}�A�6�f�['|�.4b<+����=�m��H��@\\u0001at��\\u0018�'\\u0018�\\u0007�5\\rm�~��]9>\\u001d[i�\\u0006�\\\\Ҭ��i��\\u00172�PGE'�c�+@�A��;=��\\u0013���?�mi1�q���,wbW�\\u001djM�ɄV,i��pD\\u001c����A�Z���_\\u001aU�ɕ��V�\\u001ai׭.�ś������\\u0017\\u0007�\\u0015���Ɔ\\u0006ɑ��\\u0005���4\\u0016��b��\\u001a10Ó�W}Κ\\u0011~�ޖ@�\\u0003\\u001aO8�x<�#�\\u0019\\u001b��m�-�@&eE\\u001d��ć\\f\\\\\\\"\\u0005��\\u0011,���a��y�b\\\\yU�\\nc\\u0000�\\u0006��}���|�\\u0000\\u001b7#\\nfx���da��>\\u0014o\\u0013\\u001c��3�%��\\u0000[��A$�\\\\\\\"� �4c�e�rwB(epO��?e_�\\u0019\\u00123\\u000b�\\u0011*\\f���S�<,\\u0011\\u000e\\\\��XB���\\u001aܕ���l8�D�\\u0018%Wo\\u001a�\\f\\t��O�\\u0015tS�}�s�d�B#\\u0016�����C\\u001bC\\u001f�\\u0010\\u0019�W�e\\u0007�\\u0016�d\\u0019\\\\<nF�i�*�\\\\\\\"|����y$�/�Ƥ\\u001d��]���\\\\,\\r���\\u00160����\\u001dIvQ�o�5f\\u0001y���i�\\u000e\\u0015>ܒ\\u0002���A���p��vRB�lF��_�Z�$�&T�h��������A�GrD\\u0019\\u001c�\\u001a��\\f��*�m\\u001aG�0�\\u001e����:Ӟ-R\\u0019\\u000f�����m+�Jd|��\\u0011C@H���^�Z\\u0007���\\u0018�b���\\\\\\u0011�=�>T���+>�S���0���İ\\u0006�\\u0002y�Q\\u0019k\\u001c\\u0019RC��T\\u0016Q��\\u0000$���Xw��B�:��n�Ҹ\\\\l$0� �d2\\u0001�\\u0007���>;�����y\\u001f��w��s\\\\�C۽L�֢�ѧ�Z��ċ��\\u0016��\\u0005\\\\sPO�y���W�\\u001d\\u000b� _#6׵�o\\u001d����<��9p�C\\\\\\\"��w���}_�]ũƚh���\\u0013i���\\u0000�q��\\u0016fLQ�J<�YϢ��\\u001f�P$�(y�?�\\u000e\\\\�\\u001b��]\\u0000aY<�e��Q��yH��'\\u0012LX���3�\\u0000�F�\\u0005\\u0014�\\u0000m��Ҕ�\\u000fh&��?Q����c�a2�9�\\u0006H\\u0010�Bl@]t�p�e\\\\h�(BQw\\u000fø�R���i���\\u000e�\\u0019.F[n\\u0003�1\\u001cE[�\\u0011c�\\b\\u0001Y�7�\\r-�j��A��vXqԅE$�M\\u0017ZO\\fᑗ&RfGum�\\u00066�kQ��\\t�\\u0004f��+��,����\\u001b���,\\u001aK��\\u0001\\u0002�dPpb���Ðݐ\\r_�xM\\u0005��bJDaL�\\u001c\\u0011'e#���2��\\u0011X^�A\\u001b\\u0014\\u0012�N�\\u000bkC����c�6�\\u0017[��t��o��<��r2\\u0013�\\u001a����-Џ��>��2c�!5[�n��P���d��-/�\\u0011��y�FrpZ\\u0016�VY2C\\\\�\\u0004*�7�\\u0007�z�>\\u0017.s#O,\\f��5\\u0001�~\\u0015��T�\\u0019c�WR��FM�-`����QR�0�\\rL�Ouq�e�\\u0005k\\u0003\\u0003�q\\u001fu)�=�D\\u0012ݣE2���[�֙r\\u001eT��(\\u0016\\u0016\\u0017\\rq��uN8�>H@ׅ�3#�}j�(\\u0000���{\\\\\\\"H�\\u000e�\\u0012�Ku�է�V� �\\u0016�r�T�,�!V1����f��ɖHUv*��s�\\u0013�\\u0017��4�a*T�!>�\\u0003v�\\r}i4��Bm�\\u0002�'K�x|��\\u0001blx埢����\\u0016փ*�\\u0005\\u0006E�t�ϥn�\\\\!�\\u000b���C\\u0000ۑ�{���;Ș�o\\t\\u000b  �ǵ��\\u001f,l�؈��\\u0001\\u000f�G�\\u001a\\u000f��x�.F�%V��\\u001c��\\u001fKv�Aɕ&D��q�B\\u0014lЀt�^cCʳ��reSm�\\u0005\\u00065\\u0004�ƚI���|\\u0019Q�����j�M��1/#.G�\\u000b\\u0000䁭�J&./\\u000f\\u0007\\u001aY��)'u�`5\\\\\\\"�G���Up�0�TnuԀF����w�F�\\n�����\\u000b.����Dra��P�$eUa�=-�@f��\\u001c���\\u0015���'���\\u0000u蘢ʒ�+�f'j�\\u0000i�$��rr��q�\\\\��k�\\u0019\\\\\\\"�\\u000f�:�����}(,̦�b�\\r~ZЋ6b��K�\\u001b\\u0018<�B*�N�;n\\u0007[u�\\u0014�;`)\\u000eѼٶ�iI�\\u001c�_�1���݋6��mo��\\u0007#2\\t��!%AhԶ��ѐHa0�Uc�\\u0007\\u000b�D\\\\j�@\\u001f�s%o�|4�<!�B������\\u0014O\\u000e��\\u0000jF�4{vFR��n�6.X�C4���%6\\u0004�ۭ��}h�V��\\f�cV�&\\b���7��p\\\\\\\"�]t�\\u0001c����!X\\u0015 \\rY�\\u0006��5|�`qy\\u0011e�c#KfH�(\\u0005A\\u001a�{\\u000f��Cr܀��F \\n�Ee\\u0016\\u0017\\u0005\\r�4\\u001f)����#$��ae$\\\\X[i��\\u0012gg��%U�I\\u0014\\u0018���O�m�U�\\u000e$t���ac�\\u0013^�\\u0003�k�\\u0002dkDG���[�\\b\\n���\\u0005�@\\u0001���J�\\b𱡓\\r��Jx�JH\\u001b\\u0019mq��Q.4�M\\u001e��E`K\\u0006\\u0016R?OjW��r\\u0011�vYb�T�Q�A$�+�J�\\u0016�B���\\u0018N,��\\u0019\\u001d�JY�\\u0002�t�$׼D��\\\\d��H\\\\\\\"V\\u0011ƣ�\\\\\\\"���Z*)�H3�\\u0019\\u00071��0��\\r\\u0017N�S\\u0007 !�u*�\\u001d�?P���MhܜH�|v8��)b/q��=o���A�zWU<h�?k&\\\\��_+8{�;\\\\:F�JQ��.b\\u0018���\\\\\\\"7�\\u0012v���d⢓\\u001cDL���2��a�(L�_\\u0001�*\\u0017\\nwX���\\u0000�]��\\u001c�0!%J��m�����0I��\\u001fj\\u0000�\\u001b\\b~�Z��\\u0002M�n���\\u0012[bd*dDv�S}Ga�\\u0000:���6|�4�1��@K\\u000bt\\u001d=���B*`��(\\u0015�R�0;5�гC>\\\\��X�\\\\���\\u0000ZS����w<��?\\u000eV\\\\�\\u0006V\\f0Ѯ���'nC\\u0013\\u0019q\\u0019\\\\\\\"�'#l�m���f��\\u0018|S��I�\\\\\\\"��\\n\\u0002\\u0001ۨ�~�$�2�~4>5!d[����+ޞ�|�B��1�g��m�B�\\u0014�U�#�\\u001b�z<��\\u001a���e=ӑZ5��Je�\\u001b���~܊��Fa�+���|9��K��dp�J�B��@\\u0001\\u001d*��8r\\u0018\\u0018XĬv����Q�Yhy3\\tv�3\\u001a���Z��U�9�V��\\u0013\\u0016g\\u0001�8!��X�\\u0007�h�\\\\~>\\u0006��c�J�\\u001do�oe��j�B<�\\u0001�\\t\\u0002N\\n��\\u000e�oi�u�\\u0007%���d�ī���ֈ87�\\u0011}ۭ��H9nI�\\u0018�x�!IC�i}�\\u0007���5a��\\u000e�Y���_\\u0018��l��\\u001c\\u0006m?('�\\u001e�lpd�U�k\\u0005u�W��z��L%g���J~�P\\\\7��U���t\\\\K�@�H�\\u0006�\\u0015H�06�G�kP��dMŬ�\\u001aPb\\u000fvјۯƕb�\\u0003�B\\u0002�\\u0011<�kZy\\u001d�c��u\\f�m+���\\u0015w\\u001f�ʯ\\u001c��;\\u001c�>!pX[��cڽ�V�b�s\\u0002�\\u0000\\u0010�(�ܧʉ\\\\�c/\\u001a,\\fhQ�1 r\\u0002\\u0011e���h\\f�>Bl�|�i��[\\u0011}�\\t\\u001e�\\u001e��\\u0001�\\u000eZ����_ܔƹ\\u0014�6\\u0017(�*�J\\b1���\\u0018 &�/���\\u0010�O,�I�.@lY#\\u0004��%��q�U\\t\\u001c�|���/�\\u0010!tu�����\\u0007�\\u001d4C.\\u0018��&1�.�h��oʫ%�J�:q4�y\\u0011\\u0015\\u000e`���\\u000fJ��&yչ����Q\\u0018�FU\\u000b�\\u0016�~4&L��NG��\\u0010c0P��I\\u001b�{3_ҽ�l|���y�c�\\u00124\\u0000j�\\u0018�����8qeF��\\f_\\u0015\\r��\\tS�v?�J�\\b2\\u0007�Zy\\u001eT�\\u0018`�v^�o\\u0013�TdP�H� ��;���^[G��i74-`���{i�Za�e���\\u0015��6@��\\u0002�H�$Vo>\\u0018�%Ć\\t^h\\u0004� �Ae^�\\u0006�4�.B)1ZIq�@�f�n\\u0007w�Z�U���\\u001bUd�aĉ�\\u000b�}\\u0003\\u000e���Y�J�\\u001a��\\u0014\\u0016���PA`6�5�L�\\u001f\\u001f���\\u0003,����H�\\f\\u0014=ʏ�\\u0000q����'2��Y���u�\\u001f*33#�ȞI2�$��\\u0001IBCt��jj\\u0012$\\u0005 �=K4�Dfeȯ\\u0019��e\\u001f\\u0016���ёg�y\\u0001���\\u0000��E�[�������E-�\\u0006\\\\�\\u0015\\u0012\\u0019 �@\\t�w���Z�\\u0015�����D�1X�\\u0013 {�ۙ��Z����7c`�DR�Pl\\u0019��i,{\\n(&x�QJ�]2\\\\\\\"�\\u000e�@Ih�v�#�����b$�2%q\\u001b)�ּ`�!�?���8����c�<1\\u000bl}H\\u001d\\u0000S޺��y8�|����or�s'�\\u0000�(��A�\\u0017���NՑHcccpj[�\\u0000�B4��R��p��2�*Y�2�\\u001dJ$i;�]&�M,��Ť �Q����*�xﾘI\\n1ƽ�Cebm{[��y���&8�P�U\\n�㱽�cV`rˋ\\u000eD�-�E\\\\\\\"�㽔�\\b\\u0000n�*\\u00012�[]�Z\\u00151*��\\u001cv�\\b�ׁ\\\\\\\"�����\\u0004\\u0005��[���\\u0014n\\u001c�ŜsB\\u00131]���n�\\u0000�U�:����4��В�Tu�ýQ�.T��<�!#j����׷�ƅOT�}����mv`�ٮc+r��'x�9,�\\u000eFT�p�%Y��n��\\u0003m����g�M�l�������\\r;��lL���|l�I����\\\\[��R.C(��<̪��d馗�Զ\\u0014L]�OƵc �n�-�V\\u0005�w���\\rR�J��R�J�*T�R�J�*T�R�J�*T�R�J�*T���&�\\u001d��_$v;\\u0007��?\\n\\u00151�\\u001eDR�\\u001e�Gj��:�v�eG\\u0016�0~�[n3\\\\\\\"\\t��XV�\\u001b\\u001bx�X\\u000eƈ�X���\\u0013�jz�(l\\b���Ƌ��\\u001b\\u0000!�\\u0016\\u0003���W\\u000f+\\nL�N��si:ܯ��Ҙ\\u0002��\\u0005�ڸY�\\\\ٲd������kF�ZbT�6��3p�1\\\\��WBȠ��\\u001f�5��3\\u001e�e��\\u0015���v��5���3��\\u0006����\\u0000�sj��Y���|/#��1\\\\\\\"4�X��\\u001c�{�\\n�Y�\\u0012h�:�����\\u0002F@w\\u0007Q\\u001d�t\\u001e�\\u0014�\\u000ec!d\\\\\\fdB\\n�Ŋ߲�m\\u0005[���\\b㌘׹?W�LQtC\\u0000\\u001bbv�\\u001e\\u0006S�/���fr\\tf\\u0000\\b��GL�\\u001a�\\u0010e;Z��/z\\u0017�!!�9\\r����\\u0006�K<��%��\\\\�X�h6�����Ț'ws�\\u0010GkZ�:XJH1Zr�\\u0000�o\\u001f0N��\\u000b\\u0012ß.5�\\u001b\\u0002Ǌ�\\u0001��jO{_AL�6R�J�Z�Ǜ\\u001cA\\u0019g�e\\u0003e�\\u001aU�e��$1X���#�u\\u001d~\\u0002���\\u000f\\u0018c\\f�\\u000b\\u0002u�޽\\u001f�!��t�.TFU�q�$�5���2'1]SqPO[\\u000b^��V\\u0016^;\\u001e8��ɐ�������\\u0000��,�F`�m:\\u000b�U*�N\\u001c\\t\\u0010P�0�Û\\u0002�\\r��z��1�S^{\\u0000\\u000b�db\\u0015u���)6'\\u0013#�\\u0006!\\u000f!�\\u0005���\\r\\u0017�\\u00152q���y\\u0004�x�*}��\\u0006�\\u0005�\\u0006�lxX�p9�I!�;6��m}t�Fq\\\\�7,�<O>\\u0012x���%��O�\\u000e�~�\\t�\\u0003QC��&�\\u0000̒�\\u001d6��]�\\u001aˋ��f��;�-�'wo�W���ۘ�{y\\u0010��\\u001e��^7\\u000b��}�\\u000f��\\u001a�mĲo�\\u0000AmN��?��m�3=���I�scj���V��'���\\\\6��v�}\\u0011@w}M�\\u001f�u)\\u00119I/��v��>}�DB1c�y 0\\u0005�k\\u0001r>4�7-�U�\\u0015TD$�w'���a�qP^�\\u0003\\u001cIҋ���Y#�F>H�\\u0010��\\u0005\\u001d\\r�W\\u001c�)�卜��\\u001a�r3-�����F���\\u0011��A�k��ԥ��*��F)rN\\\\\\\"��\\u0000���[�v�\\u0000�T�*T�m(�c��L\\u0012[\\u0014�'Q<~�]�/�\\u0013l��*��\\u000b]M�q�W!q���.L�\\u0014�x\\u0010�foҧ�q��W<�!�|c�\\u0001i\\u0002�Ѝ/��g\\u0014��\\f\\u0003o���i�]m��Vƥ\\u000f=\\rv�>/%�0Y�c�\\u001b\\u001e_J/'\\u0003�|�� �.v�۔Sk\\u0005�^�<~9�ǎ\\t�|�Y����_J�s�Y�S�c�'*6�u��\\u000e��ʅ��͆��N��vڦ�;�:t�\\u0000Dz�i\\\\�,f̠\\u0015ǉq~@z��J�E��3�\\u000b+\\u000b3\\u000e��Z�d� \\u001d�@���\\u001d�\\u000f�A�\\u0000P���Rl�#�2��ۮ5�$\\u000b\\u0006�(�)Xc`��C\\u001f^���\\u0000�\\fk&��tÈ�2K\\u000b��>��_�s����C\\r)!�\\u0014@؆G��~O��֟Y\\t;�\\u0001F�\\r����8�Y\\u0019nR0b20V���6�Q\\u001b�\\u0011�z�\\u001a\\u001e����kK�?Zn���8�\\u0004o��ڮ\\b���Z�t�Y\\u001aI���Ę��]�{[oB+9�3���\\u0015�\\u001d�\\u0006�c��*&�\\u0006���\\u000e�kj\\t���R�4�xk�j��i�+(\\u0018[�5o\\u0014{�������\\u000f[Ҝ��fƖ7�b6���\\nI֎�����e{�Do�&�\\t\\u0007���2c�R2��\\f[�[���$jvQ�\\u000f�q Տq�%N�\\u0006�Y�1Xƻ͜\\\\0=E�J��f\\u001e3ʄ��L���\\u001d\\u0006�!I�\\u0014�e\\u0006�H\\u0012(��v�\\u001f\\u0017$R�,.�Z \\u0012K�v?�1J�\\u0006b�g�\\u0003�\\u0011\\u0017�쫷.\\u001fJY��\\u0000����Ȗ�Gs��\\\\f�L�9\\u001b%�D\\u0002�[�t�����\\u0019k�\\\\\\\"D�c����_����Z�\\u001alh\\u0004��H\\u001b�/�\\u0000J� �\\u0000\\u00142��}��6|�͚ߌ~�(�lZ9q�1�S\\u0002�c$�\\u0007��;�r)�\\u000f��,�DȞI��&B��e\\u0007�i��ؑ�ϻ&\\b�[{��d\\u001e��Z�\\u0013��\\u0018��交�J�\\u001f���VI \\t�8V���Ր�+�\\u000e��\\u001fzG�\\u0006n,YQ���X\\u0004�)\\u001b\\u0001��֕Ã��yr�\\u0012c�<�\\u0000\\u0000�n��ֵ��\\u0000+\\u0003cɃ�TJv�+�D�\\u001b�A�d\\u0013�Ò\\u001d�� ��]\\u0019�\\rzkF\\u001c\\u001dH�~�+.lyA�\\u0011\\u0019���ʲT�\\u001fNuf[�\\u0013�򴻒6Ru\\u0007u�B��[�0�7\\u0002����\\u0016\\u001fl�F��o�dЦN)L�ȧ�[�f\\u001d\\rjS����\\fX�0��\\u001c|mq�]{�39[�IS\\u0000i4x�\\\\\\\"�5w��'�&\\u0006�++�cE�\\f�\\u0000u\\u0018f��BE��u�D.\\u0007�e\\u0007ńG�0\\u0000��\\u001d��J�\\u001c�X\\u0016I�a�f\\u0017�M��i�Ƙ��\\r�r\\u000f�vVe:\\u0010�:kB��\\u001e�����ѹ'�(�\\fY-��-�T~\\u0014�3��f$�q��b\\u000b5ƯoJ��\\u0016d��,��\\bDq���5�\\u001d���\\bdP\\u0015L�ǩ��\\u0000Vk\\\\\\\" \\u0016y`��\\u0006a`n����S�d�\\b�����&Ly<uDQt&H��v��1Ǒ\\u0016;�62\\u0002�\\u0018�m���\\u0015��g���J�\\t����\\f�á۹{�w��=�R92/�\\\\*�nOM�u�D`r\\u0013�aŔ�*���\\\\_�gVeH� \\r*�������ސv��Xѷ3�H�M�G\\u0019�FU�R\\u0014\\u0001s�\\u001c�\\u0017ķ\\u001b*eDU�^7_��Q�\\r�\\\\\\\"���\\u0018��O\\f�o�\\u001f�\\u000e��4��.a�q1d1�4l|�~��=�:�\\\\!oO���v���?6;S��d�{7�h���f \\u0012�\\t��\\u0000OʚqY�1�A\\u0011�7P�\\u0013pv�\\u001aQ�92\\u001d�q�����fčq�\\n�\\u001e���\\u001d��lݴB�v\\nN���<�~L�q&<�\\u001eF�\\u0016ఒF�M�����m>֞FV駊�ݠ��*�\\u0007�7��ҕv����\\u0005���\\u0016\\u001d)V3\\u00199\\f�\\u001c\\u0006e!T�a�)�\\u00071\\u0007\\u001f�<\\u0013�e'r2�b���\\u001e���Chԍ�FB�q?QUU�\\r�F�\\u0011�Q��921\\fx��ˑ:��E\\u0006�[�\\\\��\\u0010a����\\\\\\\"���G\\f����ޫ�\\u0018���\\b\\\\\\\"\\u001bm�R�����\\u0018Ȓ���z�\\u000f\\u001f�ۡ$\\u0013E���Pd�\\u0003�ښ�%�q\\u001c��3N@\\u000fM�h��x���\\\\\\\"j�\\u00039:]��?�7���&�R�����\\u001dT������\\u001f\\\\\\\"2�f\\u0003>Aw�XZ�z|�\\u0014Ӑ�\\u0019\\u000f�⢕�\\u0017(�4[hM��Mh�O�Ք��i\\u000er\\u0002ɑa\\u0016J4oo#�)vn\\u0004�܃�t\\fN��GC�Rբ�\\u000f'\\b�ˏbx�Y\\u0011��Aa��4�-�<\\b��x��̨� ��~=�W��vc\\\\\\\":1\\u0017gR��\\u0000\\u0000]�o��@0� \\u001dy�)(���Q�n��\\u0004@��\\u0011W�\\u0002\\u0006�R�\\u0003�'i(6�Z\\u001aNC\\u0013\\u00163�\\u0003\\u0019f��o%��w��p�1�,�N�|O��F�/Z��cI�D�\\u0011x�M���X5�늬`�c�:֮ʶ$��Vlhr�x�\\u0012ԣ'�9��,Bq�\\u000b�v��_A^eG>bc���H�i\\t���z�u>7\\u0010��\\u0006*�S�E�9ܺ�\\u001b_�Z�K�[��7�����{�i����\\u0013�ƁrK\\u001e�E�D���\\u0010O\\n'7���\\u0012YY�\\r��\\\\�#�o�g �E�����2\\\\9�\\u001e9�3��\\u0017�M�o����Y�?���\\u0005Z�F}]��V\\u001f�zZ����<݌�Mu\\r�M��q����a���u�b�%fݵ��-Զ��X�M��\\u0016:#�%��I\\u0004\\u0011�q�J�xH�)�\\u0019�m]��\\u0007�{\\u001fƂ���NQ ��S\\u0006�pu�\\u001b�S�\\u001bp��#�w,X�\\ts�jG��.\\u000e�g�ˏ��&f����_�����L\\u0014��\\u001bH�\\\\��~\\\\\\\"�Ƈ��5ѧ2ySk��\\u0002~_\\u001a� JG���4j\\u0005�s!�7\\u001f\\u001a�\\u000b��؂�?-~�H�O�׮2��\\u0000������\\u0015x�c-$�\\u0003\\u0007w��\\u0000_��㾿\\nQ�b\\t��,g$)\\t\\u001a\\u001b�^�\\u0003Гڍ���!��.f0DE��\\u001b��.ߨ��]\\u0005�\\\\<̨\\\\\\\"�Ԭ.f\\u0012I!�n�K�ƨI-��U\\u001c8�\\f9\\u0013+ߕg �eu�إ��fT����\\u000f�1%Y�� �oBi��돍+a�Y\\u0002�Eծ��CL�6^:8���6C\\b�b�đ��\\u0000\\n\\u00172#�\\u0010� H�\\fo{zkGh\\n�~?md\\u001f�eȗ#*_h\\n?o~4��h\\u001e5Y!e�H�\\u001e�\\u00105-�6�cD���T:�\\u000bj~�Tw���͛\\u001dZ$,�!{�\\u0001a��E\\u0013��8�De񔐫\\u0003��`M�\\rF�\\u000e��0�`\\u001c\\u0018�At��C�\\u0004x�b�\\\\\\\"V\\u0011o,HU��^�_ZC0�\\u0000{����\\u001a��ؽ��}�n�kM�y\\flh`�rAT�{�T�\\u0002��#S�J�<,\\u001cX�0�*ڱ_v��Oz\\u0000\\u0018�\\u0003��U�&\\fX||����\\u0014��4�=N���C�#��,��Z�\\u001dU����5�\\u0002�\\u001c\\u0018�Ȅ�A-�����m�)�K���ާo�Q�4$�\\u000f#㕘��jPY���U��%��\\u0007z��W�q�\\f\\u000b�`��A�z�2��\\u0005�����zw��s���?�1�Ȫ�M�M�\\u0000\\n�\\u001e?�S �VV6��l~g�����NB^>\\bC��eG{)1��F'�u�Qm�ʵƍ1qi�}'�W\\u001c���\\\\y\\u0010@/\\u0019\\u000f!r.��\\u0010�\\u0000��6\\u0018a\\u000b\\f\\u001bd�e\\u001a\\u0005�[��E1����Y`��FіP:0>�i\\u001du��\\u0016\\tpq�*L�i��Z�+�j(\\u0007�\\rjٱ$�F\\\\k�SS�\\u001a�\\u000f��4��$�:�>�u\\u0005��n�\\ni��\\u0017\\u001eJ&�\\u0001��ݿ�\\u0007��r�����XbD�JlVEf���=}(.[��Le��\\u000b�<���} �\\u001d��\\u0005v�Jj�ś�\\f\\u0019��� i\\r�W*�\\u0019_\\u001f)2r$P<��_]��5��\\u0000h��\\u000eH�\\u0019eS�\\\\\\\"2\\u0001M:��|k\\u0003\\u000bN�A\\f\\u0001^FpF��6=�Z�O��\\u0007VR\\b��P���T&��j�7����c�\\u001a\\u0006\\\\`��r�\\u0002���iz��\\fu��Y�mw\\u0000��{FѨ�^A8^[%UwFl@\\u000b}P(���>\\bd�&u*\\n�e\\u0007m���Q\\u001fǌf9\\u0011�V���\\u001b��Kirz��F5��1Y\\r�3\\u0015X#�� ��(\\t�9\\\\\\\"�]��Ʃ�`\\u001bJ\\u0003f;o��yxyDFȏjC(*���>�'��\\u0015^t�\\u001f�\\u001b�h֌.�>�\\u0016���T���o\\u001f$^\\u000ffD�\\u0000.Eվ����T��6���8\\u0010\\u001b\\u0013�b��#$��\\u0018�O�ǘN&#��m\\u0005\\u0019H\\b����zR�����\\u001f���8��\\u0004�\\u0018#j��V�\\u001d)\\\\��\\b�)]|&�:�����O0q���V\\u0012��%\\u0000\\u000f#\\u0006�O���G\\u0018�!���?�8�k��N?�;F�w\\u0015�6H��2�ɷ�+\\u0003+\\\\�M�5T��%&�W\\f�ġ��b\\u0007]\\r\\t�D\\u001ab�1XH\\u0012\\u0000\\r�b,Z�+�\\u0013\\u0003\\u001c;�\\u0003�6�\\u0003}��pzw�\\u001cD\\u0000v$R?h\\u0015�\\u000bdau댋�6�{�x�\\u001ft�.G�[�Ã��om���\\u001c�C\\u000b��}����\\t\\u001d�N��i\\u000e\\u001bI\\fs\\u0018&k#�z\\u0013��S��\\u0018\\n�[\\u0015�\\u0000]moOJ+��$�4��g\\u0005��`ʺ�m�\\u0000�.�r9F��<1\\u0006�gf�\\u0000:����\\u0015�?$b2�Ξ-�\\u0012�Kn�\\b?�B�r\\u0019�t1B�\\u0006�Ota��e��\\r������\\r��7�\\u001f�Z����ؾ9��\\u001cY\\u000622ub��<~�5䱌�W\\u0014b12\\u001b��6���:�4���raK��(O0��\\u0010t���\\u0000�*���\\u0001�ȉKM\\u001f��c�\\u0003�\\u0014����x��Dc����4&��\\bX8�\\u0018\\u0003�Pg\\u0018�\\u0016Ua��p��\\\\�p4\\u00043�4�\\u0015,���uԑߥ6�\\u001061]��Y�����SBec���;0a�Gk�z\\u000e��\\u0019�Ñ��`e��k�\\\\�l?\\n�������q3�j�3y8\\u0011@Tr�T�.Q\\u0003`8S<�F>\\\\\\\"��1U\\tЍ޴�L\\u001c��\\u0019r4\\u00113\\u0006S\\u0018���m���I[\\u0011�f�q��DX�������0�2�\\u0017/)�\\b��\\bmg����颾\\u000e�:~?֓�;8\\u0019�\\u0019^��DYÎ�(駇��D�<���Rۘ���;��S�,�8��y�C1e l�������\\u0007Ǒ<I������o�V�\\u0017��7�G#,n\\u0002�A\\u0000�������<��\\u000b\\u000bs֍�.\\u0018O!2�R�[��?\\u001a[�h��I���Ҹr��\\u001a\\u000b���O�\\u001d�H\\u0011�\\u000f)��X�6����c�\\u001bC\\u0003q�|M3\\u0015;��\\u0000�\\u0018���\\u0013�|n2\\u0016�-�9\\f\\u0013\\u000b��[���FѼ頎4H��NL\\n\\u001aI%K��p��<��7'\\u000b��>�V�a<f8�]��o�Bu�0D�m�4�\\u001e%P�\\u0002*�0�Wp#�L��c�������TmSp�\\u0014�q�C��K24\\t\\u0003/��j\\tխ����p�\\u0006;E\\u000bf/�\\u0012\\u001cj�q���J?V��g2[\\u001f��|�\\u0016_�y\\u000f�K�/�];Ҝ��\\\\�\\\\P�!kn77�Z\\u001e*,H��irDsK����\\u0003�)\\u0017-���D`\\u0005\\u0007�\\u0004n����*,\\f\\\\\\\\O�\\u000e���\\n�Ԯiu%{!X\\u0000��:\\u0013AԩR��R�J�*T�R�J�*T�R�J�*T�R�J�*V�\\u0006\\u001d�P�[\\u0002����54�!\\u0016>I�Fв�\\u0001�_\\u001f���\\u001e��\\u0000���Y��\\u0000�\\u0000�K�\\u0000��V/\\u0014�{$��\\u0000:Ή�K�i&n��dH�\\u0019\\u0016��0>��|�۟=����N����|*\\u0018kv\\u0000�\\u00016�%�®Q}I no_�t�oc\\\\\\u0004��A�R>ʶ,���,\\nۧ�t\\b���Iak�L��HR2�\\t����\\u0000~�}h���bX&�v\\u001b8��\\u0016!�MA�_\\u001b'\\\\\\\"! ���m��[�\\t���1\\u0005\\u0015��.����\\u0000.\\u0015���\\u0000��\\u0019��|Lq�\\u0003\\u00130p\\u0019u���\\u000et�\\u001f�1�4�\\u0015��{�_�ڇ�l|yd�X\\\\\\\"�Nߨ�m�x�f4�x�V5>�\\u001b���n����#:`��\\u0013\\u0018�\\u0010\\u0014��ְ�U�\\f�~��Єr�Z?�d�yv��J�\\f��\\u001aC3\\u001d\\u0000��Or\\u0017\\n~\\u0019A�K*��z~��\\u0001�v�6��\\u0018�c(��۰&Ɗ�0d�\\nb,�\\u0016��tץ��w\\u001f&)\\u0007\\u0018��F(\\u0019��u����\\u0017�ִ� h+\\n�E:AW�-���ռ�\\\\ �U�1��\\u0000��%��_󤸬#�3jv\\u0011��{\\u000e�\\u001d��7���&\\u0010�.��\\r\\u0001�k^c�..J�\\u0010w\\u0000�\\u001f��i�\\bʹ\\u001aߋ/\\b�\\u0015g���`.�f��/�噂���3��\\u00138�H�Ǖ\\fm\\u001a�c �\\r��{Z���.q\\u0013F���-�B�kG'\\u001f�)k@��A��_J\\u000eX��B�e���\\u0006�\\u001bh;u�\\f\\u000fO\\u001aÛ;?���1��\\u0007�z\\u0014���E/�8*�mpm�^��X��E� &\\u0014�I�р�\\u0011j9��W���N�B\\b�du�P�d��,�+H�\\u0007h\\u0004\\u001bz��R4��\\u0007��J��Ԟ����:��k�g����\\u0004*\\u0017-\\u0014\\u0015s����\\u000f�#ࡒ<���R�\\\\\\\"ٔ�A\\rZ\\u0016�R$P�r7��]F�^���r&˛��E<k�Ը����ڙ�WF]�Zv,�S\\u000eL.!c�w�\\u001dEL��`�\\u0019[�2\\u000f�\\n?���y\\u0007��\\u0014��]�6��𠲱��c�u�H�%\\u0002�b\\u0013v$\\u001f����ŗ\\u0010���˷i�_�4\\u0000\\u0012`Ua!\\b�e��\\u001b�(\\b1�\\u001cD)�TQa��~5��\\t1r%�\\u0018�D��7\\u0014mI��֏\\u001f*'�\\u0011ث\\u0004��\\\\\\\"��[��l��m�A�T�t���\\u0016G)���u���Z\\u0007�\\u0000���w�!���\\u0005��`E�4�ֵi3�l\\u0003\\u0004��вe����\\u0002�\\u001dIֆy�|Kϒ����F���mQB��1���\\u001eG��\\u0019T\\u001c������(~7��\\u0010\\u0003+\\u0017�Ԭ�\\u000f���\\u001f���|r\\u001e2LtC\\u001a�\\u0007T�@\\b+�5�L�\\u00064y~#�\\u0015gS�AխԊ�����(�Bb[h�b�}h�6\\u001bF��0ͮVyec\\u000b�>�5��lQcbf*�5����\\n\\u0002\\\\ރ\\u0019Rϓ��;��\\u0018�\\u000e��=���u�g��4'|\\u0011��m�E�\\u0000�&���\\u000e\\\\e�.�\\u0015'��kRɖ \\u001d+v<`x�\\u0014\\u0003%��\\u0006������r�$E\\u0005�;�{��J#���M:I&��l;\\u0003{\\u000b~f��V1��#�*�\\u0016\\\\q4�\\r�\\u0011�f�\\u000f�0͑���\\\\�L\\u0000\\nB�[�)�\\u0001��$ج��f��u��֞�b8����0�'��mj\\u000f��|�;��퐋�$����ΜI�a�\\\\�>�۹\\\\\\\"�I\\u001a���Z�z�\\u0015��\\b����Á\\u0012\\u0007\\u0010�)�\\u001bWݥ\\u0013���C\\u00022�yl\\u000b�f�n\\\\\\\"��7\\u001d��9?l-��>��\\u0011�\\u0002<r�\\u001bF��6>�QU�\\u001fq\\u0019.�����ȸ�#�E�5շ>��Vw��\\u0011eB�7�w���F��g�X�-�\\u0004\\u0002��\\u0000����9R\\u0002�ȑ�3\\u0012���55��UyA,|�\\u000b�\\u0001�!�m��>��Ln1\\u000b��w>��1%�F��\\u0001��H�2fșc�Ѫ-�\\u0012I�^�o[U\\u001c��.^\\\\\\\"䪼W+ K\\u00027\\u0011���D�Y�u;I\\b�^ˠ:��gr�v�avt\\r�B����\\u001f��ǎ\\u0017_�z��ϟ�|���\\u00062N��\\r��L�Ǔ������l�{��\\u0013�m�T��ÞrC\\u0019\\\\\\r��\\u0014\\u0011kt\\u0015l�gf.Ь1�_ْ��K\\rN��҃u�r�\\u001d�X�6Ѝ4=���\\u00001\\\\\\\"�ֈ�|x��eW8٤ZT��Gr dq�C\\u0003+H�vFE�� �\\u001bzV\\u0017��#wB]\\u001ci{X�Њs�Ҝ��ay U`}w�S�U܆*4bD�\\u001c��n���\\u0004�Z�@A3\\u001fJF,ݯ�:���W�\\u0015L��s*\\u0011�(6\\u001dI�h�W�T���X�\\u001c|�\\u0014K0\\\\\\\"ʠ~����#bd)�ڬ>��#�\\n1�7)�\\u0018\\u0012����)?��Q��\\u001b�3�!I$�ݓ'i�t\\u0002D�\\t���k�y����B���đ{ܑaG����Y�N��I�YOj\\u0013��rp\\u0015s�G\\\\rG�����}ކ���\\u000f��j���RZ\\tC�\\t��~\\u0016FT.��I,,��\\n��/��7 �_@�\\u0000�{\\u0004J&\\bV�T�i\\u001e�k\\u000b���˂\\u0000\\u0002<�uV\\ru�%\\r?��G��q}��#��\\u000025��+&�S��z��Xԣ�����\\u0002!�ރ�?�aA�H���X0��\\t\\u0017ڭ���\\u001f��\\nI�\\u001cyQ��&۶�\\u0000m�z}4�N�<��mH>�4��y\\u000b*�]��\\u0007Μ\\u0010\\u0000\\u0007\\u001eu�3#��F0\\u0014�\\u0013�s��ef`�HS\\u001a��\\r�1��ױ����$��,*�p��Q�z�h���e��V�����ۂ�|�\\\\�3��\\u0002\\u0006��\\u0002�\\u0007h�P�J�7\\u0006�H���R�*\\u0013�t\\f�N�z��j�glx�x��ሓQ����W���O�)Sl*��\\u0014�����ܹ\\u0004�I�AP�7\\u0013����y|x`�,�\\u0010�2��~�A��\\u001f�F\\u0000�\\u000e�֭�dS�\\b)�Z��Ѭ��\\u001c���f\\u0018×&'���P㺑��[��\\u001cxrfc�W��\\u0011mu�4�+�i�2�Y�IH\\u0016��(��\\u0017��7\\\\\\\"��қEf2���/��\\u0000��\\u0014k���\\u001fet<p1���3\\u000f�\\u000fj�\\u001dE\\u00049�E�x�\\u0004���ـ�Z��G\\naG���0�.�}�ާ�Cs8qA��B� �n�hA;H��\\u0005�1\\u001a8�T�\\u0006�\\u000fh�Q�S�\\u0018Bm\\n�v�g�|���ǮV�(\\u0000���iL���_p�Vp:�ic@�#�[G4�QW���O�?:�db�\\u0002*����Oե�5���(\\u0005\\\\&��\\u000fw�SI�7�C�7yX�\\u0013�X��})�\\u001c���H��DIY����6����8k\\f���6Y���\\u0005\\u001f�i,\\u001c�a\\u0019\\u0013\\u0011��[\\u0016%I\\u0001�k��Y�6&^\\u001f�LK �n��\\u000f�\\u0007�Z�F=-�*n\\u001c���_�������1�\\n\\u001b�y?-\\u000f:-��G�c\\u0005\\u0011�w$l}�OK�Z�q�C\\u001c\\u0017͍e����.<`i�\\u0000�Bq�)��\\u0012F#�ƣy:��On�k�/\\\\\\\"\\u001c�\\\\\\\"/��9���}�~\\u0002�@$��k��\\u0007\\u000b\\u0001S����ҰMw����Yѹ\\u0012dL7�&��u]��P\\r\\u0004PI�\\u0013*��n�\\u001a�.\\tq�_��0�\\u0018Ee6e������,�+�\\\\,e��͠_Ƅ�V!���\\u0003�l���\\\\O����ƀ�сA\\u00108{���5�\\u0012ŀ \\n\\u0004���\\u0011|I�|��ce6?\\u000e��\\u0016\\u000f\\u000b(�m��L�Q�J�2w��q��\\u0011}��\\u0000\\u0007[[��+uZ�+f+\\u001a�@91��p�b\\r��\\u0004\\u0018L�����\\u001d���N�O�T,o$�B/23mo�Џ�\\r�M.lɌ@S}��\\u0015}M\\u0011�$�����y\\u0018<�Wm=�;\\u000bڕ����:��}k��g��6\\n��0���LsӅ0��0;�=��\\u0007�Sǣ'\\u001a����\\u0017b�v�$�\\u0014g+���`M�\\u0016N����1[9]v�\\u0016�҆>�dE2�!}��F޻�ދ\\u0018d�\\u0011am����6\\f�\\u000f���38�T��b\\u0013_Y�xL��\\u001c\\u0005��Ln��\\u0003X�����Dr2�Q�&G���LTX��Sm\\b=�\\u0013��o�+��&`�<�\\u0016wn�C�|-J�dʒVp��j�F����\\u0006�\\fB�\\u0007�:\\u0010�]�\\u001eq��Gm�@[���U|��Sr�͓6خ\\u0004\\u000f\\u0018!c�Xtj`�z��f�\\u001e+\\r�\\u0013@57\\u0016�u�yV\\r\\u0004h�j��\\b\\u0000��m�Ψ~?\\\\\\\"lyDq��M�Гn�gI�Z���\\u0012+7o����ޞq�\\b�b]�e*\\u0002JF�T�7�+̩^\\f����fu�I\\u001d�4.>^6.\\u0006=�-���\\t2!��\\u0001���^��~L���a�s(��O�E��\\u0005\\f��Ζ�݃��r�H$p�U�ZK���/�Y\\u0012(�\\u0006�\\u0014�\\u0002��\\u0013N��\\\\�\\u001f�\\u001f]�\\u0015�O�7��\\u0011�.\\u001f0�y\\u0019v�Xm�j{54��`a��h�T�\\u001dN�tc�\\r�5\\u001bN��i�W�{p�.؅����#��q�C��Dp~�H��U7\\u000e-��u�m����F�q��0\\u0018lpF��%˖\\u0005�S\\u001ch�մ&ڏu/���Ή2��y�?sh]\\u0000mGJ�e[U''�\\n�)2b�\\u0000��X�@�����y���Tc\\u0014���W�f��?Q�kщ�6&v,�\\u0015�\\u000b��\\u0000ֲ�`����a���ycu�J�X7],\\u0002����\\u0011��8xyS\\u00176f.�N�\\f}���0��\\u000e�~\\u0014\\u0001\\u0005�˕MŬ��\\\\��\\u00003^�|�FN\\u001b}��r\\u0015\\u0002\\r��\\u000fS��T�2;G\\r���\\tS���Ҁ�0�\\t\\\\\\\"�\\u0011�5��\\u0013k\\u0000u z�WM��$M\\t�%��H7�\\u001d.jdŔ�f�ua\\u0007�c ��Û�Ȧn�ڢ�#��3dA�\\u0015a�������U�ݷ�K�_Ǡʄ͒��&v%��n�\\u000f-��dD\\u0002EԐz_�z��1��\\u0004lb\\u000b�f��\\b,X�[�B��*��:�J�q�N�\\\\!��\\u0005[��sS#��arX<A�H {����TpR\\u0019��9\\\\�\\u0016\\u0016.\\u001c�n�\\u0007�\\u001f�|����\\u0011�[u�\\tbt5���\\u0000�̄l-ʞi\\u0000?����[��e\\u0017F�,.+>�V|y��yq\\u0013�����kb�ݴ��$�㥁���`�p�2���\\u001aN�R�G���&����\\u0007�S�J<d͖(�\\u0000K\\u0010�\\u000f@\\r�#�Q���H\\u0012@��;��\\u001b��\\u001a�զ��ݪ�6\\u0005i,��^���j�0�p�M\\u0014;�w\\n�Ė�Y�W��Ɛ�\\b�*�M�{�\\u001b����k܎I��Ń!S\\\\\\\"\\u0016O\\\\\\\":���ۡӭ\\u0016[���\\u0003\\u0003\\u0013\\u0013\\u0018P=�R���b��li\\u0017�\\u0016\\u0015�1���\\\\\\\"N@�Rܠ�����A��0�:\\\\\\\"�\\u001be\\u0005��}�*t։��\\u0019���W�@`G�t�ڃ�\\\\y��'�d=���O�\\u0013��XX~X�\\u0011����H\\u0004\\u0000>=j1��h�)�\\u0007�r���?\\u0007��\\u0011�އ���Ο(�K$�'ت�Q��6�J\\u001f6\\tp2�7\\u001b4��\\u0019�\\u00005��6���ϑ�?\\u001e�E���p4\\u0003�\\n��ک����D|� \\u0011�w{v�O@t\\u001a\\u0013W\\u0002\\u0004κ�\\u0006uwr�b��3 \\u0010?Ls�2qs���bG\\u0002�I��ާ]i�\\u001c�\\u0019\\u0011K\\u001cw��~��\\u0000?�:�&\\u001f\\u001eh(O����\\\\�u��?\\u001a9\\u001a\\b��2���\\u0000wz�\\u0005�YKlzWsB�G|�\\u001cH�no��>#��8ϵ��đ�M.\\\\\\\"��P�6�k�\\u0003w�\\\\\\\"��e>��\\u001d\\u0005�r\\rB�\\u001a�5�00�\\u001b%�\\u001b\\u0019���}*m��1��C�!�\\u0012�@޿I_O��P��2xCG��U�s��d=,Ѭ\\u0018�\\u0017�\\u0013����či\\u0012K̬=�I\\u0000\\u001b�S~W����R�\\u0018�1nD��\\u000f�\\u0000\\u001bz�`ln?�'υ�rVIE��3\\n��\\n��\\u0003\\u0011E�$�8�\\rѼ!\\u0015QP�]�ݻޅΤ�\\u0005A4�\\u001e-DƁ��p���\\u0001�\\rw��ʑ����\\u001d��N�׍�qS���N���*�.\\r���u�� \\r�b-i�0�~���ýL��E�dǾX�]z��64`���ZN4A�����R��G�*�QE��<\\u0010\\u0015\\u001cc�\\u001a�\\bmw\\u0012}O���\\\\�����|�c#�� X�pjr\\u001c�4q\\b0a1\\t\\u001cM#�a�h6�j\\u001f\\u0019ߒ�D�G�m�\\fH�{���T�`i�ZpǐIu\\u000b�I��������Er\\u001f�e�Ě\\u000f��?*�2\\u0005,���\\u001a�\\ni���F`\\u0004�T\\u0013f#��UX�2C�̖�0@�#tw���Z\\t1�\\u0014x�\\u0016S\\u0012����#K��)\\n\\u000b.�:�1C�\\\\\\\"����T�Wy���Ҡ��\\u0012�\\u001b\\u0002�^⥎��ׯQ�+�$���\\n�;�UE�b{�Ԛg�\\u0001�|��bQ\\u00161�\\u001f��a�m\\u0002�?\\u001f«�\\u0017\\u0007��d��b-��ۗq�4~�:XV\\u0001d���\\u001a<yq\\u001c�讹�W�5Ƿ��]8U�����df��\\u0011�$\\u0000\\u0002\\u0015�\\u0003N��j�+\\u000b#*&3H\\u0017\\u001d��\\u0011��ݷ\\r/j�7\\u001a)�3�\\u000b \\u0012�Y����(\\u001cl��|�c�����nE���E$��\\\\�O-k)ǒ\\u000eE�ȍk��8\\u000fY��8���T�\\u0002����P�_nःj�r���O\\u0004��#Y� �=v�\\u0013Ҟ\\u0005l�IԴM\\u0004{AW�pǡajA�\\\\\\\"G�*%�\\u001b[����[�\\u0013#�*��*�B\\rː��8k���T�C[*T�R�J�*T�R�J�*T�R�J�*T�R�J����\\u00185�\\u0000�_��_�\\u0000՟�\\u0000��&\\u0006߰��\\u0000�k�\\u0015���\\u0000����\\u0000\\u0017��>\\u0010;�\\u001e�ι~\\u0019������k9�\\u0007��nS\\u000el̄\\u0010�����:�g��8�G6D�1�\\u0002����\\u0010\\b���\\b�ʹ\\u0005*X{�~5��W?�.�2\\t\\\\\\\"@�5ی��Yq���1ek�tPk�\\u001a\\u000eJy$lܖ�\\\\\\\"\\u0000)�q���GǽW����\\u00198�\\u0006K���=�V]m{kzS7?��3I\\u0011\\\\}�U�io�פ1~� �\\u000e\\u001f�t�x�|&P��#\\u0019v�Z\\\\\\\"��ֵQ�e��(�\\u0012��\\u001d�\\u0007�[�\\u0005+�x�s\\u001dd�&#{H�/�\\u0003�i���/>|�-���{���#�[�0$��)�3�\\u0018UT\\u000bc�\\u0017%�����̰��*}}k\\u0000�%��d(<we��\\u0000��Ƅ�7����I4���J\\u0016:�&�MNZi��c�<��Ȫ�=��\\u001b{>TG\\u0013 �\\u0006�\\u001d�1m\\u0003��:��J3/���č�\\u000b�5��GZY*�Ko��+V,�N_#���\\u001a���\\u000f?�C$�Q\\f)\\u0010m��I\\t&�\\u0003�w4\\u000f\\u001d���y/\\u001a\\u000bE\\u001b\\u001d/!\\u001b���W\\u0018���8�JE�a!��m5�_����p1�(���\\\\\\\"�+�mr>\\u0006�u\\u0015I�]�\\u0010\\r��ћ\\u000el\\u0018_\\u001d䣖�\\u001cKI���V�c���\\u001coa�5�Hӧʕ\\u001c��`ѻL\\u000f�dQ�${O��VaD\\u0012F0#���\\u0014��7u�*r��Rb=�G<�\\u00135�����6�\\u0000:!\\u0001��k��\\u0003�l��l!���Z\\u0017������cLd��\\u0011y-��ؓ���@��\\u0004Gs�[|��Z�id�[��P\\bרN�i�2q���J�hlH5?6���w\\b0Y�>�ƯNY'�H�\\u0017��F#[\\u0002�K\\u001f_�k��\\u0011n�K\\u000e�\\n�q�f\\u0017%'��!ټF��\\u0014�����z{��x�/���=\\u0007z\\\\\\\"t\\u0003�/!I��\\u000f�<\\u001a8Rm��'\\u001d\\u0003���sY��AC�Ȕ@�I@�\\u0017��툔\\u0000\\t.\\u0000Җ�0�\\u001d����\\u001b(6:��x\\r���.��:\\u0006���\\u000f>9`X��,�X.�m��z��D�YO\\u0002�\\u001e�Y\\u0019��m�\\r\\u001bֳ���edF\\fS��CLeif�\\u001c�\\u001fF=O��\\u0016\\u001a�p\\\\\\\" ��1��Ǘ�-u�\\u001a�;�<G\\r}k�\\t���^l��E�+\\u0018\\u0003�M��=I��`cO ;Xm*\\r�+Tb˴��\\u0005?\\u001ax��SrI\\u001a�\\u0016$��\\u00162X\\u0019\\u001cw��^S���l�\\b\\u0000;\\u0005ڑ��A��\\\\|+62�D&\\u0001#\\b���Z��p��%�\\u0000t�\\u001eΤ��Z�-�2 vC��o����\\u000b\\u001eU��\\u0010��Ŵ��\\u001b��4G\\u001d<�y\\nZ��\\f\\u0003t��t�3O����\\u0013�4o��.\\u001c�4��x�ڻ\\u0017K����Z�r��摢n:5ګi\\t6`\\u0006����\\u000b�տ��y\\u0007\\f�C�$i��Jry)��,�*��4\\u0017��z2l��Y�E�����<\\b0�\\u0014Ǒ�VPZV\\u0016��6�\\u0012'\\u0002�-mu�Љ֍�&@˱�����\\u0006g\\u0015�\\f���ɚR�jE�쵴\\u001dkG\\u0010��|��\\u00024C� \\u000e�\\u0000�a\\u0016(՚����\\u0016#o��\\u001f��\\u001cp\\u0000�]M�Y�\\u001e��)$Dz\\n��x���h�_�t\\u0011�\\u000eU3�ir9�<?��#oa)�P\\b�\\u0013��Vg��m�a� @���\\u0011N�q��\\u001f��d��\\u001dwzw�38o��uƗÐ��'P~\\u001az��N\\u0015LrL�&}yRS�˓.5\\u0004\\u000be\\u0015�i��+'\\u00041l���k�qӾ���r\\u001b&\\u00191@��f2�`\\u000e�B�~f�R8��\\t�\\u000b\\\\\\\"2&��I\\u0018��u6�´\\u001c\\\\1c��\\u0011n�<�㡱����+������$;��\\u000e6hm�b\\u0017�.��eEt�� m�}�A���� \\\\gi�1i�\\u0000r�$\\u000biDd��<ϒ��I.�\\u0016\\u0005���;k޺l?&;G{\\u001e��h�:���V\\u0001�\\\\\\\"�$\\\\�چ���I22��+\\u0003�xP�\\u000f`:\\r\\u0005\\u0011�\\u0013E\\n,\\u001a�\\u000b\\u0014\\u0006�N��\\nD�\\u0013��D��4�\\u001e��nH2N�3��k\\ru'�\\u000e�\\u000b�����P��+\\u001aM*��\\u0011r�\\u0013\\u0002\\u0004�\\\\\\\"7��\\u001a���P<�;�ѱkv�J���1Ǭ\\\\�3H��\\u0019l\\u0007�\\u001a\\u0015��6fq�)$�\\u0007��\\u001ap\\u001c�r�S�P[\\u001b,��!'�\\u0003\\u0015�9,\\u0012�\\u001e8uY7�\\b\\b��=��\\u0005#�����n�_v����bE}��,\\t��\\u0000\\u001a�p��O�E\\u0016;\\\\\\\"J�؅�h7\\u001f�,��\\u0002t�\\u0018�L#\\u0010���[|��g�9Lya�\\u0011��,n<��H\\u00176ָ�|Y\\u001cZc͒\\u001f�іD[[o���y��\\\\\\\"\\u0011�\\fl�s�\\u0000?��7����\\u0018�b��6�{�i��ޯ��cޖ���\\u0016,��{��v��^������P��+�\\u000f\\u0019\\u001b���k��oփ\\u0018�dʓ�;q�$.�cК��̟\\u001a\\f|lD�#�\\b畈\\u0006��>^���\\r�\\u001aϹ��Ɩ\\u0015V�#YҦ(������ ��[F\\u0006��\\\\��Vǀ�0ќ�\\u0013��4�\\u0005����\\u0017&;�ju\\u0001O�������4�H��!�\\u00013[j���~��1\\f#\\\\\\\"\\u0006Y���\\u0010X\\u001biD\\u001c���\\u00057\\u001a���ڿ2Ab5k���^�ŅD�p27M�E��Bq�\\u0010�.Eʓ�����+ȑ��iT�����.�Wcgǘ�\\u001d�٥\\u0005w\\u000f��v�*\\\\���HP[�Iɇ#��\\\\/*N�[�W�\\u0012cO�2�\\\\\\\"���\\u0006�u�X�ғ��eO\\u0001�۶>�>�M֦9X/\\u0001\\u0011��\\u0012X\\t\\u0007ӯk���s\\u001c)���Bv�6�c{\\u0003񥥥\\u0014������ϗ&�\\u0004\\f�\\u0015���k�/���.��\\u000bm\\u0001\\u0006��#Ҙb`�)����]�G\\u0016%V�u#��N&FI\\u0012:9B��\\u000e�V��\\u000f'��\\u001eV��\\u0001cd[\\u0015�)\\u001f\\u001bڠ�%�Xە\\u000f����6�6�ѹ�h.G\\u001f;��\\u0018��EpX_B��}mN�b�'\\u000e�7\\u0006 �\\u0007a6:��Z\\u0015�\\u0002\\u0019Lfr%\\u0001vö��N�׉��)�H�?iS�1��r,�uұ'����\\b���\\u0011\\u001a�w��ŊP����Rn~=i>s&|��\\u0007���\\r���Z�\\u0015v{I>k\\u0018Y�b\\n�M���{\\u0003B�X�H.U\\u0019K��#��\\bȗ��J�\\\\\\\"�/����om��vK�hZHӕ\\u0005'\\u0013��)���{X\\u001f���)�G\\u0007\\u001eF;md�\\nE˒me��cM�x�'v��I�\\u0004�\\u001a�7e\\u001b�=\\u0007��Vg',\\n3$���\\u0003�\\u0005�\\u0005�&��\\u0003m֓��\\u0014\\u000b�yA�C�28F\\u0003K�:�Ҟ7+7\\u00021��\\u000b�\\bb��Yc`m�opMY���9��VI\\b\\u0011�ܻ}O�R\\t�����q;D\\\\H�t�@�Ğ��S��!��2,`I�\\u0003Kn��`m~�#R\\u0007\\u000etܾ-��\\u0014�29\\fT�\\n��v4\\u0006zI-�>�T�\\u0017��\\u0011<��b�\\u0011�������*�G�>\\u0001����\\\\\\\"ɰ\\u0005>�-���{\\u001f�xU��\\u0001\\u0010%��H6鯭Y0�\\u0007�\\r߅dŅ2x��-�\\u001e@1�S��\\u0000�6䡛\\u0017\\u0015��#�\\u001a�e�\\\\X\\u000b��TqS���\\u0019\\u0000f��+�n�lI�WsBy\\f\\u0013$��\\u001c�\\re=\\u0001\\u0017\\u0003�I� BHۮ�[��\\u0000�;���c���5\\u0011�F��DY9ܼwP�xՍ�F�֪\\u0006\\u0004�|�&?|\\u001b\\u001c�0\\u001a7E\\u001f:���7%������0��$�H\\u0001�X.�����^4�\\u0016u)(pI\\u001a��\\u001b�P�H6�5j\\\\/��p����T�ą�,H� �@s�\\t�%2{!F!{n$W�N~\\u0016\\u0016\\bY\\\\\\\"��!p�@���Z�'\\u001c纝�bQ�#Bǭ�FT2b.��E��\\u0006据\\u0001\\\\ivԌ\\t��||��V��c��)�4�LV8\\u000e�m\\u0017�\\u0001G�(�\\u001f\\u001e<����h\\n�b\\u0004�d\\u0017���ƹ�$�'\\f� \\u0010̖V\\u0004t'�=�C��dq�1C�\\u0010$�H�3{\\u0010m�\\b\\u0012\\u0001i?ʄduɓ\\u001a*���=f'_���s���H\\u0012!1F\\u0012nC�/`4���g�W\\u001b\\u001c4\\u0012��]�+X��[��s��ǮTPd\\u000f6�w�k��ƿ\\u001a�3칥L,x]r\\u0007��\\b\\n���^ߦ�\\u0019���%����؆W×���Ȳ8�q�\\r�\\u000f�ʗ\\u0018K�VW\\u0017u��ǽ1�\\u0001p�U���i�r\\u000b\\u000b��FG\\u001f��bx��e�n��v�\\u0006#��||PC\\u001aE�-\\t\\u001b���Z�\\u0000��&I!㧕^o/�lj�2�\\u0013�ʽ\\u0007ڗp)9ϐ��|�$\\u0007q\\u0017���\\u0001�\\u0014Ɣ9��=��0ڪ\\u0007rM\\u0004b8|�ɝe�\\u001eh�b�\\u0001Rv�����u/�� �\\\\.F#\\tcf�>�ޠ�+A��f�w2\\f�F%�I�H�r���P\\u001f0-\\u001a�X)�`57�\\u0013���C�\\u0012B\\\\G���R>W���\\u00126\\u0004�\\u0017X��q����c�+�c��\\u00134`ȩqm� }5L��K,~�+O��d��.\\u001c9�p��Y�7�LWi�C�� 3�$��]oRnN>?;\\u001b5\\u0010�$a���\\u001d\\b\\u001a��\\u0002y8!Ǒ�Ԥ�v�\\u001d��ޫz�\\u0004��\\\\\\\"���\\fl����kՑ�����\\u0011�'}Ū�6�z���\\u0014ӌ�9\\u0010��\\u0004�s:���\\u0000�օ�,\\u0003�\\u0000\\u000eы\\u00166\\u001b��z�#\\u001b\\u0006<N\\u001b�3Xd<$3[�\\u0004X �H�R�a.>4R�w�\\u0012z�.m�\\u0014c3�M��m���o&O'\\u0001y�\\u0004\\u001b�\\u001d\\f��ʒ�<˓\\u001b���N��\\u001d\\b�VG!>F0��A*5�\\u0004r�+���T�X��8�2\\u0000���#\\u0007��5�j��\\u0000\\nf.�6�5�@\\u000e�(\\u001f\\u000e�\\u000b\\u001a̕ٸ}�Y��\\u0019��VPZ$\\u001f�~\\u0015D3E�o̎\\u0007x�\\u0002'!���-�u�3d�&�2�܇\\u001f��\\u0018�����2�\\u0006L5a$�9\\u0002&�T�h;�(\\t���\\u0011>�6�V%��m��MB\\u0017e�F�d��B2\\u0007�]��ͤ�lWT\\u001cV��ݚ6�e�BO���Z�`ǉ�\\u0010I\\u0010�=�I\\u000f����\\u001f*Y\\u000e&\\u000e\\u0014�I��e]�v�\\n\\u0005���\\u00162�8�V'q\\u001a��ڶ����\\bI�\\rw;R���ʰ� *\\u0005������eL,��4۪��Q\\u0016\\u001boJ��ˁ��\\f�hъ��C���N7+�6\\u0014&@w�\\u0007FSm/֘���&\\u0011�C\\u001e�<dܩ�rh�\\rq=$\\u001d\\u0004o�<)�>3\\u0014���E>�\\u000e\\u001c���\\f|u��\\u0000-\\u0000'�����GCaIr�s��`DX�\\u0000ą����7�^��7'\\u0017+\\u001d��Y�՘\\u0012\\u0006���Mx��\\fLd�luf�\\u0000����W�j\\u0003t�\\u0014��\\u0005��[#(=@��Dǽ$��\\u0007\\\\\\\"S��$�Dl-��N�#�G�<YsZ\\u0012�\\\\\\\"�� �!�Wʖ�m7%�\\u0018�`��1)!I$\\u001f�/]4X\\u0011ᡒѳ�jO����Q�rBƝ\\u000b�}8Q����R\\u0014^Ȳ\\u0007�\\u001b��\\n��Lq�7�R7��U�w� z�y\\\\�\\u0000\\u0011\\u001e\\b��\\f�\\u0000\\n��[u���}inlpd�Q]Y�X�\\u001bY�����m�ՑT�\\\\�\\u0006�mzZ38��o�֖Ç�n�ξ@-q6�z\\r�\\u0000�6�)�\\t\\u0012\\\\\\\"\\u0015\\u000b�Mː~��\\u0015� ��>M���\\u000b�\\u0001����I����\\u0012��픨c�_v��S����1&h�1fD��I�%[o�\\u0001a�DŊ�:xMf�\\u001b#���\\u0014\\u0012nư`pc�ivY�|��\\u0002@�M\\u000f�\\u0003�]��s�L5��\\u00024�¢���\\u0001��zQ��2f��h�\\u0019��\\u0005H`�=m��Ӈv�O'�J>�\\b1t�YŅ����feF��gRW\\u0001�c�>=@[�9�Y~>\\u0002g�<�$_�0I�z�j��\\u001f1�eL$�(\\u0016\\u0006F]v;jQ��\\u0011<|�\\u00113��\\u0006��'�\\u0007*��r���^C\\u001f\\u0013�Q&�g��}�������S� \\u0000L��QJ����#\\u000b-@\\t���@�cO9�\\u000f\\u0003$�����U\\u0002��CM��ļy\\u0001��;\\u001d�R\\t��bd��r�P\\u0005̎<��l7�\\u001e��\\\\s΍��\\u0012�F��:����?\\n��I\\u001a�\\b��:�\\u0010q\\u0014,t�X��M�&,\\u0016s<���\\u0004�\\u0013�Ze��\\u0014\\u0018q�$\\nU=�\\u0005H�\\u0016�#�1�qs�\\u0018���\\u001eE�\\u0015Y.5�\\u001d�|U��!y�U�%]K_����ơPARI�Hҍ��\\u0000������&\\u001f���,���lVr�N\\u001b�\\u0017B\\u000b��\\u0007�xZ9p��H���e��I���گ�qx��Vv�O��\\u0019DH�����fָ\\u001f�Ddf`�x���6$\\u0004�C��[u>�z��4��!�������\\t��^�qxx\\u0011�R�-{\\u0012��/�Qn�\\u00064�\\u001c�����l� ��l��S�4�-f�\\u0006Pѳ���q���_���\\u0006\\u0016V|\\t�6�\\u0005Y�{]@�˼\\u0002F�C�x\\r#ށ<�|=It\\u0016R�\\u001fB$����}��9��.P\\\\�B\\b��ݥ/� �\\u001f)�0T��,o�\\u0000\\n��\\u0018S?/\\u0005 s\\u001bO!I���\\u0006ړ�V_�\\u0007���a*4aH\\u0011�؝��\\u0004v4 t�2F�޶c���*aP�V�I\\u0013\\u0013o\\n[R�J���J�*T�R�J�*T�R�J�*T�R�J�*T��\\u001f\\u0013\\u001c\\u001cs��k�\\u0014�lX�VD���#\\r{X��G\\u0010��ՈH��Y�\\n�!�\\u001fx�$|��\\u0000�d�\\t�#��u�.4ƌ�-�\\u001c��Ӟ\\u0007\\u001a.Y�.q�l\\u001bɮ�@�\\u0014�?/\\u000b\\u0017>|\\u0018\\u000e�\\\\w�\\u001b�\\u0004{z/��*��l��?���׿j\\u0004��\\u0006R�1s6�\\u0010\\b�wַjN��\\u0012�(�tk��Ӈ�Q�~B�l�I�Wb%C�7?Һ�\\u0012Ȭ��pֽ�ze\\u0016\\u0004@�����P/��H�j�e\\bJ��\\t�8\\u0006&)a\\u0003@w~t\\\\\\u0013�!�,�h\\u0018���ATq�b�\\u0007�\\u000f��\\u001a�\\u0001�z�O��b\\u001c��@ϒ�x�R͸�\\u0006���w��Xڰ�#.L�*��ڝ�b���\\u000eC�\\u0003j��\\\\��\\n\\f�N7\\u0017\\u001dYH\\u000bqn���\\\\7���\\\\\\\"\\u000b\\u0017��P\\u0003)�\\u001dݏ�]�\\u0000\\u0017����\\u001d�e\\\\Y�(��=�k�~�\\u001d+9[B�[R��O��G��KF#j�*$DF�r���ǋ�1\\u0005�� �lS��VG�\\u0002�\\u001c�a�\\u001c��wo�\\u0000'F\\u001e��\\u0011���D\\u000b��M��\\\\\\u0001�����)_|~9\\u000e��n©P��1�\\u0007:<��P(���f�<��Cq��ƲKv��{��0�\\u0000\\u0011N�\\u0000ݱ9-��C�@��,���[�\\\\\\\"�q�>v\\u001b�����zk\\u0017\\u001c�����(\\f�G}\\t��A\\u0004\\u000e:�Jɓ2*�,��#\\u0013.��(\\\\�X�\\u0019�\\u0001\\\\\\\"�m��-q��q�\\u0013\\\\\\\"�Ͷ\\u001d~]mL�H��k�V*����Cq�Y�le����\\r���|��օ�\\u0011\\u001b\\u001d4���\\u0019Y�\\u0010�7W\\u0016�}�����e�4��$\\u0001\\u0011~�-�)�K>b��Y�}�΂���\\u0011�����M�v�?�\\u001b<\\u0019.��JT)���OF�H�\\u0004��Y��\\u00192��\\u0011\\u0019�������~�\\\\\\\"�|b۝N�W��K�9C����lI\\u0003�z�3��L9a�Vye�d�E\\n\\b��m����o\\u0006lc\\rŷ^��j�\\u0013�\\u0015�^?��\\u0011�%1���{�\\u001e�\\u0016\\u0016&F>�Z�'6V\\u001a�oZ:6\\u0004��w��$�����.zQX,sci\\u0013�g�����t,�t\\u001b�fV2�\\u0011��j�g#�\\u0017�W�Z(��r@uR�oU\\u0017\\\\\\\"��\\u0019\\u0018�Py\\u0014�3h@�\\u000b{\\\\�Z��ʲe4h}�ꭷw��s�E�@n\\u001c)-�N,�X�5�?��\\\\�\\u000b���-�5�\\u001f���\\u0003ZY�²���9\\u000b[�N���\\u001e\\tD\\b�]�Y��b��\\u00014�\\t�N6A���ۀ���U\\u0002a��mvq�\\u0019�\\u0018��a\\u001c7һ�1A��\\u0005\\u0011��Y�t$֯\\u0007\\u0011�Ge�[k�o\\u001eCfD\\u001b�k�ŀ���[^',@�\\u0019ʂ����\\b\\u001d.jȜdVlx��R;l\\u0012\\u000b\\u001ef@���\\t��P<`\\u0012A�\\u0017����)\\\\\\\"A2����0:�\\u001dl��z\\u0013.&�\\u0019aB\\u0015�J��7iC�ˑ�>�*G��$tf\\u0007m�\\u0006\\u0014�V��\\u0013ʳ\\u0011��eL�\\u001bLۮ��AI�����P\\u0017A#\\\\\\\"\\u0002o�hz�:ט\\u0000�g6�Z(�)?���\\br�#&\\u0013 i�B�TZ���[����\\u001c�K!�mȑ�n� ��V\\u0014ɓ����\\u0000-�\\u0013�]\\\\���a��밤�Đ&�$���B�\\u0006�7&���.D�,w��@-�����+:�h���\\u0019|Ѱ+\\u0013\\r$\\u0003�>�\\n���Q�f�x�\\u0015c�5,��{5�\\u0016��\\u0015�NB��,\\fZ�՞�-�\\u0018ǅP�,ٲξ�\\u000e\\u0003�?�4\\u0018��*l�Ɏ6I�}N�*��x����x�`*\\u0002-��|�;�ŗ�r\\u0013�$�4�l\\u0015��Q�\\u0017��W�1h�P�߹l�B��oƪ�p�f�;*��_\\u001b\\u0012r\\\\\\\")\\r&\\u0004�iRyL,�\\u001d\\u000b6�@\\u0000\\u000e՜��Tv2\\u0014F6\\b�M�f�0�\\u001ehq�a\\nҷ�X��RA��4'=�\\u0013E��\\u0002n�T!z���_Jc\\u0006\\n\\f��x�8\\u0007\\u001eF�z�\\u000e�c`��t�L�\\u0013����ݼ��}it2�e�(}�o$\\u0015���S�|̍\\u0014�C�\\u000f��k/�;�I\\u0014������[[j(Z\\u0001\\u0017j>���C+��]b'QǍi�pC䜌���\\u0004j���ɹ�yˣ�Q\\u0018�\\u0000J������W��4d4�F�I �X\\u001e�δ>G:��\\u0006<Q��X�mA\\u0007��\\u0000�T��-�}�-��\\u0007�Kn�`\\u0004)�\\r5\\u0002���D�\\u0019q�[�\\u001eΠj���\\nn���\\u001c���і�\\u001aҬ�\\\\\\\"�\\u0016lF(^\\u0007$D��_N��I�4��\\u001b'�I�׽�\\u0003i��U����e-�\\f��\\\\��\\u0005Y3\\f�7\\u000bZ�E'\\r�����ڍT\\u001e�^�W1�,y\\r`��p�h�F���c�\\t��G2\\u0016m�\\tck\\rk?\\u001els�$rHaHŃ\\u0001�\\u001b�qA��.�n�JӇ\\u001a>\\u001f%\\u000e�/Yӫ]��V�iFFN6$j%Ǐd�6�V���\\u0000*�.E�\\u0019��\\u0000��\\u001f��\\u0018���\\u0015��YX��\\u0018�M��iVG��cC\\u001c)�\\u0014}|�걱�?Ό���blLD[ӉᏤI4'?�A\\u0002`N\\u0004\\u0001Ud��^�������H��\\u000fk��lu��\\u0000:gȲf�L�\\u0012-�J�.�u\\u0000[^�'\\u0004\\u001d�wɒ=��7��\\u001a���o�Z\\\\\\\"�G\\u000b�12d|\\u0007B�\\u0016Ap�W���.jľ3\\u001c,Ii\\u001fR\\n�\\u0000Q��&�2��-\\b�\\\\\\\"�����K����!\\u0010I\\u0013�\\u000b�\\\\\\u0001���~}k�쨰�2�s��@��=m� \\u0019\\u001c��_+1u\\b\\u0017�@H�<x�\\n���\\u0001i6�m@�1��A��&m�0�t��\\u0000Q�@�\\u001fq�ǙN�`\\u0007�;�\\u000f\\u0007\\u001cŎ��&h��\\u0014�p���i��V:�X�\\u0015��1\\u0015�3)\\u0005\\u001d�\\f�2��D�\\u0000\\u001f�?�k�����\\u0014\\u001b�X��Z��\\u0013\\u0013\\u0017���\\f�$,�,F�L�7/_N���l����E8o\\u0010f��w����5�\\u0019��f,�~G'�Ds\\u0005i\\bѼ���^��Q�t[X�~@H\\u001c�ޑ�>W\\u0019s.A(�����4\\u001e���s�|�\\u0012�l,�Y������Ypa�\\u001b2#\\u001e_�H�\\u001d��q�����>Bh�\\u0002�Ǒ\\u0011�2��ַBG�(�1��$d�@\\n�v��\\u0002����\\u0001��Pfc��Y���q�E,ڛ�d����8���4�y�\\u0003\\u001d���0�\\u0005\\u0014t��})p��ϖ?���\\u0006:�tV���/�O��dq\\b�\\f����\\u000f\\u0018��[��K9�x��nLTr�������k�(\\u0015\\u0015\\\\�a��V̙<�\\r��\\u0000��-ƛ[\\u001a/�B�\\u0012.$��\\u0001.���mv\\u0002�\\u0000�������4nߠ\\u0005�\\u0007���h�\\u0007\\u001d4Ѧ[3#H�H�ಃ�wƝ�\\u0004Q����D�M��\\u0014\\u0001�[t\\u0014jmf;\\\\5�mXٻX�@l���܏��0����Qe��\\u0007��\\\\��mփ��ϓȴ�,��T\\u0006?B\\rPm\\u0014���H���b����\\u000fO�\\u0013�����n7��\\u001a�n��$\\u0012�^xV�!�/��\\u0011q\\u0010B�\\u001f�h�񓑜��m\\fh\\u001fgM�\\u001f��҄����ù\\u001bd,����:�\\u001a�l���\\u0019/\\u00192Ic\\u0012���\\u000bZ�-��K�\\u001eN[,�Tl�4\\n��o��ތL�B�<+*2cd^媺�\\u001a_\\u001b׼/,!�E�O���cp�\\u000b~U^&B4\\u001b�a&Ƴ(�ڭ�Liq�\\u0018���2�\\u0001C\\u0001s��\\u0015��|;FЃ!V2\\u000bn�0�����9\\u0019\\t\\nF9\\u001a����Y�<v\\u000f��J\\u0012-'^���9��\\fw\\u001cXF�v�:ʖ\\u0005V�\\u0000\\u0011�\\u0005�g�\\u001c�v*�\\u0019\\u001b�;c@\\u0001\\rմ=�4�,�\\u0014\\u001d����H��h��ʐ�y\\u001bi�6Xӽ��\\u0018\\u0002)\\u0011���Za�\\u0017\\f����GT^cPw\\u0002k�[����\\u0018p�Ic*\\u001d���t$���x�l�*�\\u0001\\u0014hF�\\u0015}�F�޾���J�M�\\u0018d&&X �d\\u0017\\u0012\\u0004;�l5���K���ʍ�p\\u0001\\u0004%��F�\\u0002��\\\\A��#�$xl.�ʣ\\u001b��n\\u0001�?�j�\\u0017���\\u001e6r�N��M@\\u0000�i���#o�\\u0017�X�[�h,T\\u0001�U���+>2�J�\\u0018V�W�Ӧ��N�_\\u0006\\u0019�e�\\u0005�iT39\\u0006�v�)w��\\u001aN���GB|�Ս̓oPX�V6$Hs��\\u000bܛ���i�.A�u\\u0017S�Uk��s�$�\\u001b)e&ā��/�֬�1��7\\u001d�S\\u0018\\u001bb\\u0007�$����Ch\\u0003ZǓ�Ŕ�\\u0015{�m\\u00124�F��M���I�1M���\\u0013k�_@{�G�ső��C��/\\\\\\\"1'�bہ��io\\u001d���f��3���k�\\u001b\\r�Ŵ\\u0007��)��)����\\u0016>g�(]l\\u0012�ѭ��C����F\\u0010r7��k����q��\\u0018[�\\u0015��ʫ���6�yӗ�.l̾� {F��N�\\u001e\\u001f#�ǉ�BAi�\\\\\\\"\\u000b�)\\u0004\\u0006e��\\u001dT��^���Ĩ�kF��\\u0001�����4�\\u001d!�9\\u0006A.\\u001c�����ip*өF�ݬ\\u000fZ\\u0005),�rv�S:;�NL�9pǅ\\fN��B�Y�ʙq�qرE���\\u001b*!iRE\\\\\\\"�:��j\\u001b�\\u001eU\\u0019�\\t\\u0016�\\u0003�=�l:����T�\\\\�\\u0019�RLq�\\u0012\\u0010\\u0001?�\\u0000_h�k�E�\\u0011\\u0004.���>Y���\\u0006���`8@�y�\\u001c|�p��˘Q�!�m����|}*I�Ƨ\\u001f$\\\\n\\u000eg����\\u001e�f����4�\\\\��./l��\\u0012��0\\u00035�5��_\\u0017'�ĕQ���d���~�;u��&u\\u0012\\u001b�.V�F\\u0012��\\u0010�p1ԥD�Z�G\\u0017��S��*�Ұ_\\n��\\u0003\\u001dlH��D�\\u001a�\\bdw�=�\\u0003��=��5\\u0017��g\\u0017\\u00148s�Fጱ���n�\\r\\b7���|ܬ��\\u0007vD��j\\u0019I��ʢ�H~�\\u0015h��/�ݐ2\\u0012�(�\\u001aIj+�\\\\�\\\\\\u0018�v\\u0003u�\\u0016\\u001b�\\u000eoe5w(w�ù�V�m�k�7_��a,�6.P$�A@��W]\\r�گ���:X���\\u00050��u\\u001e;Xu�D�GL�q�Ʋ��!��Y\\\\<��e�}\\f�S?\\u001b�ğ\\u0012\\\\h�'y�$������kWge�\\u001cW�C6�n\\u0006���JW�<�@� 1�($��f\\u001at�xxI7\\u0017��f����Ǡ\\u0006�ڎ�P�\\u000b#}\\u0001ҟ�1U�͔�P��t�D�\\u000f�)L�G��\\tq�o��\\u0000�\\u000fV=��S�Tȃ\\u0011Za��r�-e�\\u0000Сq1^\\t�p\\u0003i��_�ry9�b��bF*�\\u001e�ۡ-z\\u0000A\\u000447\\u001b��9`1�\\u0003�E�\\u0000����5�\\\\\\\"c\\u001e^IB�\\u001f\\u000f�H��M���\\rk��\\u001b\\\\\\\"C$�i\\u0018K�XA ��\\u000e�� �˒�\\\\\\\"n}��bm�\\u001d,=ni�\\u001c�G�,P����]\\u0016��$�+\\u0011\\n*�PU\\u0011\\u0011�s\\u0013�+\\u0012\\u0019D\\u0012\\\\|UyyH\\\\\\u0000\\n����N���qr|���\\u0018\\u001b\\\\\\\"\\u0001�B�3/�,�*�A9\\b�C�#\\u001d��\\fn_w��kD�rq�D���\\u001a��k.��\\u0002�\\u0004�\\u0010���l�*��ǟ&F�dƼ\\u0016�:\\u0005>�|��1\\u0018��o\\u0010�%GF��|��~w��n\\u0003\\u0017\\u0017)|�l۬��\\u0011����I\\u001a[�\\u000e�E����,#\\n��6�\\u001b\\\\ڻ�?�aE2 ���\\u0000r�m\\u0012\\u0013��z[֣\\u0000N�\\u0013�;��0gDyh\\u0010��B�\\u0013���S�ُ!\\f��E�\\u0001�`\\rȾ�i�?\\u001e\\u000en\\u000e�(F+����\\u0001R6����\\u000f\\u0019�\\u0004s�|\\u00126�4���]{ռ���x��e;m���A�\\u001dF�Y�(��]1��\\u001e�&\\u000e��:#��\\u0000n�a�fdl�V\\u0013\\u0002>���}lt���%��e���G+�,\\fvF�i\\u001eBX{o���\\u0000\\nU�\\u0002C���\\u0011\\u000f%ؓԃ��]�M\\b�h�\\u0018�u\\u0002!{-�]�\\u001fJ��\\u0003H�<9P�&<���\\u0016\\u001a�x�\\u001e�ո$��~B\\u0019X�*��mj�\\bc�)�W��%t\\\\�ڈMծ/s�\\u0006��rP�q�K\\f��0��\\u0007]Xߧ]*�Hq|�J!��ɰ\\bw��UF�v&��S{���a�*f7�O�}\\u0019�Ґ�>d;1aV\\u001e��k�I\\u001f\\n5��\\u0011�k�\\u000f�;���qaEq�&=�+FR2L�I\\u0012ko��\\u0014''6C˿qX�بv�oSޮ�l�oI�\\u0014Ï#�Pɇ\\u001a�R���\\u0000/]?�3I��6���-�\\u0011�Ca�55��ɓʹ\\u0001v8�p�k��&�aq핞�<��B\\u001clb�\\u0017\\u0002ۅYˑ\\u0011��K��\\u001d���B\\u000f�O�P��\\u0013��\\u0016a�u�2Fډ��W\\\\Nn^t�Ȳ*$\\u0000y\\\\\\\")�\\f{kּ�\\u0019\\u0017\\u000e�02H\\u001d�9k\\u0002.O�\\u0007­�9�`�2#EI�;�_Ab\\u0003_�\\t\\u0016O)���\\u001f\\\\\\\"�uc�\\u0004z���\\u001c\\u00139\\u0016ݘƳ�M�񌲕���=C�(\\u0000,���U\\u0018\\t�G6PÃ�\\u0003��\\u0001q�{�^ݩ�c��>E�?4�W$����\\u0006ݺ���\\u001c\\u001eی�\\u00063N�bQ��k��Ҋ̋\\ni��\\b���\\u0001�\\u0017�;O���H�\\u0002xq�\\u0015Y��4��!�����Qx\\u001c�\\u001d.D��d�Σq(C�=��kTr�q��%�9A����\\u000b���9�ٰ���Dq���\\u0017@\\u000fc�Q��@��w�$��\\u0011H\\u0018����}(r.I\\u0002�\\u0011��_�\\u001e#�\\u0000�&WV\\u001d����;�j9�h\\u001c�[6h���-�\\u0016G�`;�h\\rΔ�3++*s.S�%�I=��aҴ\\u001cLy\\u0011b\\u0019@[��I6��cҒ�\\u0005�!)m\\u001bK�\\u0007a�T&5:�1���s�e8����J��h�G��\\n�J�+mJ�*T�R�J�*T�R�J�*T�R�J�*T�[L\\f��\\u0003\\u001dU�\\u0011�\\u0003�8�\\u0017��\\u000b~�ď�\\\\\\\"���q�\\u001d�ğtH�#�\\u0004��~��_�\\u0015��#����u���\\t���A��� \\u0010\\tQ���Ff<m:x�=��n@��*��қp�(w�u$?�\\u0011��j?\\u001a�@\\u0006k\\t\\ftScL��*�p1�A۩\\u001d\\\\��\\u0000�\\\\#C�Ў�������1P؂YuU\\u0006��5�k\\u0004�V*E؞��I�\\u0015/\\u001b\\u0001Y�\\u001eF$�Ef㬚\\u0010���P����\\u0000�׎��&�YS� ���\\u000b��>?!,6G�?j�\\u0013{u���W�6<�\\u00026jþ���X����j#��t�\\u0005��;\\u0002G��>4�Ȗ.\\u0013\\\\\\\"y\\u0019^0\\u001c���\\u0000\\u0012��Ғ̨Ӷ�}�\\b�\\u000b�ƍ�q�\\u001f��'�(.�\\\\\\\"�J\\u0017\\\\\\\"$�\\u001f��Z'�\\u0014�_�\\u0019�gK��@Т�1�\\u0001�\\u0010H�j��8��O�\\\\\\\"E�+`ک}�����\\u000e@ac���\\u0000nw4Q��M��M�\\u000e7!����e ���\\u0010}Q�鴎����lS�\\u001b\\u0017'�tӘ��`��E����\\u0010��\\r\\u0007��Ǧ��p�ob����S����;\\u0012\\u001eD�F��i���\\u0014dp\\u0012��\\u0005���j�(\\u0010��0\\u001f�6�6��Y�D�1�'(k\\u001cZK��W��\\u0000��h��\\u000e�\\u001c���ԉ���E\\u00074�ǌ�í��\\u0011����5qq�\\u000f�����\\r�v�\\rI��-r��\\u001d����5��X\\u001cغ\\n�qФI\\u001es\\u0018٧\\u0001�\\u0003r\\t�\\r�kM2~����\\u0000�^��#� �a$\\n�v���+ى`؈�\\r� o��_��B0 �Н�\\u0011�0�|y0�\\u0000�83�\\u0013Tr��G\\u001f*F�%A��Y��\\u0002\\rg�*|�Ǚ��\\u0006�\\t&��R]q��\\u0004U�A\\u001d��+9��K\\u001er��������G�z�xn�\\u001eUh�O��_��\\u001e\\u0016\\u000e�E��\\u0000�\\u0000�3�|Q�?�0��鯢�U�0a��&?�\\u0012��:����I�ja\\u001c(��F�Lk�,E�\\\\\\\"\\u0001v���.B�\\u001b֦s�\\u0010P-��\\u0004�'ҫ��+�d�\\u0006v��\\u000e�m�T�NRn$�<\\\\\\\")���e'�}\\n�oJ+����\\u001b����-HyX�X��)\\u0011���_KP\\\\H1�\\u001a<XBd\\u0018�L��;\\u0016�o�1�|�\\u001d�݋9��lh��1���3���jE��\\fYX+Z�\\u0000�z��Q�e�\\u001e\\\\f\\u0007q-�7\\u001bm��i�f8�бu_�c\\u000f��B�\\\\W�)�&�x�\\u0015�\\u000b���ǧaFg1�\\u0004GP\\f������\\u0012\\u0001�u��&>3��]ؖ��}:J\\u0013�i��\\\\\\\"IDr��\\u0000:&�����\\n\\n���\\u001e�ѓ�ݐ�C�I&@�\\u0011�T\\u0006a{�=��_\\u001a9����\\u001d\\u0018���_�/\\u0010(ۙW�,z�\\u001a��p��\\u0004�A,}\\u0001���:�:������H�<��9\\\\\\\"�F���m?\\n\\u0007��\\u0007�i\\u0010��\\u0004nڝi�0�q\\f3\\u001d�+�u��i�ʬ�d�=�T���\\u0006����-7L{��\\u000fw�q3\\u0010�$\\u001f�5�V�\\u000e���OO�^:\\\\��\\t!��]��\\u0003��z׭�<�Xx�U\\u001f\\\\\\\"E\\u000eæ���:i�cC\\u0014RY\\u0013p����\\b��\\\\\\\"�4\\u0019\\u001c+.D|b̢Fh�\\u0010F�Bb�F�\\\\�/�����\\u0005\\u0019\\u0010�\\u0016Y�Li3�0$non�>u���E�K�u�(�����w\\u0017$�~Fk����amm��v\\u0005c~5��dIrJ*(S�u�T�\\u001c\\\\��d.K2\\\\\\\\\\\"�n\\u0000�k\\n\\u001d� Lϸot� \\nz/k����\\u0005�\\u0016��\\u0000J�ר�R�D�\\u0017�R7>�k}C�E\\n��dژ�����O/n\\u0001z�32�*�XM�Ѵ\\u001e4�<�$�1�\\u0003D/�#�E�����g��,�!��Z=��\\\\\\\"\\n2���>\\u0015�.L\\u000f�R[�%\\f�غ���\\u001fJ+�{�\\u0019j4Ǌ�\\u000b\\u001b��t���\\u0002$D\\r�6\\u0015ȭ��8�8@�]Eg���1�L;\\u0000�w!@\\u000bf�kz��\\u0000��\\u001eN2��\\u0003n-�\\u0002�����S��]�U\\u000e1���T]�`���x��!r1�X�b%�t�m\\b�җ\\u001e��G������{C��\\u001d���q�J�\\u001eI�\\u0010���\\u001d�X��o���A.*���\\rֱ\\u0000����)$�\\u0012)&H�`�A����WX�\\u0018�c+;*(v�b\\u0005Η�=��\\u0004\\u0012�\\\\+/��&lx��v���\\u001f)<��y����3\\\\\\u001d��07�}��\\rf��:Q��u�(�Ф�Yo�{N��{�f���8�b#�Ge�؅\\u0017�7\\u001a^�ɖo��9���\\u0010,�o�\\\\����T�7��&;��ݸ�dVQv�F��3��\\u001chX+7�07���\\u001b�maLre�B�b\\u0010�F�t\\u0000\\u0004��$�}i6vt�{������ ���\\u001b���peK���.쌡I��QHu�I3T��\\u0000\\u0015�\\u0016C�כ�q�czg��G\\u001e��\\u0015ic;\\\\���\\u0007n��q�L\\u001cc\\u001f��\\t�d�\\u0001����\\\\\\f��\\u001f\\u0012?#+YP���+����vF<1��\\nY���\\u0005�\\u0000:(g\\u0000\\u0013\\u0003�VL���Y\\\\yFK�\\u0013���_!�x���\\u0013h�'�\\rn\\t���ҾW*\\u0015�Y���F]5b���<�ϑ��\\u001d\\u000f�B\\u001e�v��ބV��s��\\u001b�U,��\\u0018�n\\f}mҬZ��\\r�\\u0007�U�S?��\\u0006P\\f�3\\u0010ۑ�ڻ�ɍ�\\u001a�%�\\u000f���uw\\u0013Ȝl6Y\\\\\\\"d��\\u0018Y����K��K�\\u0013�\\u0002�WA�F�~&~\\u000bc$\\\\\\\"E9\\u0006�\\u0014�\\tk�nԼ�_ǵ���F�taZpx�\\u0013x�I���hc�\\u0018ߕLbϓ�$P�T�ګ���t��Ed�e�\\u0007������P�\\u0019����/�V��\\\\�/6x���\\f��D*H\\u0006 /�z��_ƒX\\u00179'R�\\u0019E`z뺥�h.-rEÄ�Cn9�ز�\\u0017\\u001e�\\u000e�\\u0006�Vr\\u0017�;<�7tS�\\u001f\\u0012\\u0005]\\u001cC%|�K��\\u0012P\\\\)\\u001d�G�\\\\��c\\u0006\\\\������`N������\\fXxѾ�\\u001d�)P\\t�������Y\\u001d��N�j(r�b����FW���\\u0019?�\\tЃJ�����2~�R�a]\\u0014�\\u001b\\u001fn��.i�f$y�e�\\r$�\\u0000�\\u000f��CC�`ǈ[.)UNKX#��S�\\u0006�\\u00003FbG\\u00049�\\u0000�\\f�ҫ�K�ib\\n���r�7\\u0019>�C���7�����\\u0012\\u0017Y�zU\\u0007\\t$\\u001c���>8\\u0005���7M�~\\u0017�sq�+\\u001c�w�ˍ\\u0005��{Q��`�#�>)\\u001a���Ħ�Uk\\u0006����R�\\u001c��e���I����r�.;Ñ-�q��\\u001fw\\u001f.P\\u001f\\u0012����\\u0014\\u0006o\\u0017�\\u000b�T�`-�;\\u0018vւ�\\u00020�Hv��t4�\\u0003\\u0003�r�����A�\\u000f�Í\\u0011|X�9*C\\u0019;��\\n��\\u001dهA2+O�\\u0018�cǁKd�\\u0002�\\u0000���h�\\\\�h�\\u0000���&˩Q�q�֮�Ǜ\\u0004=�\\u0000�mo�n?�U��cc\\u00042�dt�ͭ�^�\\u0002�=���`�b�\\f򪳃�\\u0011r\\u001aֽY9/�m��w\\u0006�a��Et$�Ő��u'�r�D���&+����季\\rk�\\t�8��${�\\u0006�\\u001a\\\\�\\u001bSē�Hc�Ƒ$*�AS�|}k4�\\u001f�<tdƍ!F��-��>UjA\\u0017k\\u0013\\u001e�U:39�ִ~�3�\\u0004��L��,S���&�n@�\\u0004��j�N[\\u001f\\u000b�\\\\�at��R�+nk\\u001d\\n��@�D��cb�1A\\u0012��PM�\\u0005\\u0016\\fo޸X�06VC\\u0010���P.ON�\\u0000:�@��0�7~�Ï\\u001dƞ�o���<����bЬ`\\\\\\u0012�9c�n��\\u0012Ʋ~�\\u0006��\\u000e�u\\u0007�����:\\u0019Ԩ�t�%��0�\\u0000M[��\\u000f\\u001a�\\u000b6�DwWU���P\\u000fj�b\\u0000�8��#)\\n��������l�o���a[퇺PIڲ�����*��\\u0017\\\\�q%����)$\\u0010�Z��6�cu���,m����j��9�y�#6�c�}�����-�㪞|����>A�+\\n\\u001b�H�_]�\\u0013�J-\\u0010\\u0006�̦��\\u001b�|�\\u0017��&�g�4������[�\\fؙ8YX��\\u0019��ڡ��E_��6V,�h��oߧ��ʚ�\\u001f(fQ��mG���k����I��\\u0018\\\\\\\"7_����ș�����\\fA���Q#\\u0016,9�T�<�q���I'�~\\u0015�\\u001d\\u0001Q\\f��QU\\u0001\\u0004�hGpj�y2$\\r-�Gr\\u0014\\u000bu=�G(,1�S\\u0011;p�\\u0005d`�\\u001b�\\u0002�O( �z\\u0010v���+n^J$L\\u0019�+I�n�_�#�Ypy\\u0005YG�Y\\u000f�U��:�\\u001fj�-eg-��\\r��^g�cddK�\\u0000�8ţqы\\rX|�}�\\u001d��\\u0005z�pҵ��\\u0013� ���68\\u0001�4�ZEw�\\u0007\\u001d�\\u0013,R�\\u0001��\\u0016\\u0004���(�?'\\u0002|e�#\\n����\\u0006c{o�ƒc�\\u0000\\u001e�G,��`:�aHc��ލ�\\u0013d���\\b�#�����S�M�γv\\u000f�\\u000f��'q��.=3\\u0012-�4�\\u001c/)\\\\\\\"I�9vc{\\u000e���|\\f�O\\u001c�Z8�\\u0001⾤��/�\\u0003d�f(`�\\u001c�D��\\b�l=(��bl�Ӎ0��%\\u0010E\\\\\\\"��\\u0010[q� �ǩ��:�6��%Ll'�\\u000f���So��gɇ�yKE��\\u0019�Y�����\\u0019x�x�Y�h�\\u0000�#��\\tԒ~]k�\\u001c��\\u001f:b�& ;���lA\\t���J�>I3�\\u0018�1��\\u0012�FЈ�?CB�(u�2����\\u0015\\u0018N\\u0017Tw�͚Ճ�iu�F޴,�˙�\\u0006F1�\\u00109PA�\\u001d�k_��)��\\u0013I�,�,�>DѨl�\\u001cN\\u0010\\fXd2&�\\u0005�7\\u0016\\u001f��P���Bdζ\\u000f\\u0012\\u0005\\u0011���\\t��\\u0017�B���lZA�*��\\u001d\\u000e4>3)쭥N����|�\\u000e\\u0006ly8�\\t�vE`M�\\b���B���\\\\\\\"l)�\\u0013�Iˬ��@\\b�Vy�2\\u0018�\\u0015\\nn}�\\u001f�\\u001dE3\\\\I�\\u001bǔTE�\\\\\\\"\\u0001mAԂ�\\u0000*'�:����(�d!�^��\\u0013r�\\r\\u0014�\\u000e\\u00146n^.\\u0004(f$���\\u0018՜���p�\\u0000�s\\\\�� \\b���~�FOpܡ��\\u001b��/�\\u001ay�7�@f�>Bt�\\u0017��ٜ��2�Ƒ�&E�V]A`\\u0006ѧq�\\u000fd\\u0006�B�y��\\u0000��p���\\u0018ӸH�pU��I���ΆH�!iIԳZ�k�ʌ�1�\\u0012\\u0007\\b�M\\u001d�+�2����\\u0014T�e\\u000eSl�H\\bZF�X������g��EW��X�@�\\u0007%|���Z��\\u0000\\u001d\\u0019Lio߽e�2�ˈ\\u0013�\\u0003�w\\nӸ�즼�I�\\u001c\\u0001��o\\u0005\\u0001[m7!��0���PF'\\u0001��c��{\\\\�\\\\9��<�j%�):\\u001b騣%��N1r\\u0002+�$nDk���\\ra��Ň�!��S?��U�\\u0014�[*�q�\\u0012�\\u0010����\\r�b�\\\\�\\u0018���\\u0005�\\u001a�\\u0016�^edɌ��ơ�d��\\u0013�A՜�\\u0000¸\\\\�\\\\H�F�6�\\b2�m��F�hG·�Y�� �d\\\\�c����;�ܻ����TI0c��r�ƃ\\u0010d�q2v�6MJ�I`}�Q\\u0018��#��\\u0007�쯯�m��S�O\\u0017g\\b�x�\\u001eF,�70@\\bBG��j�� ��E\\\\\\\"X�Y� �u\\u001a�SY�29\\u00190��\\rB��rϫ�~�[�ή \\u0000\\u0005���y\\u0003��{wI wK@׎���4cnP��m���^ݵ���\\rr�k�M��X\\t���@S��u�+�\\u0003�^C\\u0018�����)Y�t�ߨw��\\u001c�䃕��O\\u001b\\u0005\\u0011�rB�O�mA\\u001fo�\\u001f��14�����\\r�\\u001d?n�Ǖ�vbǔ\\u0015�+ ٭΄\\u001dޔ�\\u0018\\u001f\\u0003&&e#�7*�\\u001f�\\u0017&��\\u000b>\\u0006IP#�\\u001b\\u0010���m��R�6�͙W\\u001f\\u001c\\r��]ȳ)>��A\\u0007���ںk\\u001e�c��ln�o�f�,�-\\u0005c��}��\\u0011��d�\\u001bz�\\u0013|�{\\u000b���ҭ�����\\u0016*�D�p�.�:\\u0015\\u001dE\\u0013�)��!�\\u0014�\\u0011n����7\\u0019R�S�\\n�\\u0019\\u000e�o�O�D1��ш,\\u0004��h\\u000f�x�2\\u000e�(\\u000e���A\\u0003Mt���I��L��xrĊ�����\\u000f��ۧ�\\\\f�`�쭍���A���Ř�A�\\u0012\\u0007M+�F4���-�n\\u0013n���\\u0005U!�\\u001b%$|�h��i�Z�mWu���x��\\u0000Z4\\\\y2�a\\u000f���ɒg�L\\u001f_�\\u0011 ����\\u001f�1�c�\\u0000��p��6�x�BbD\\\\\\\"\\r���b\\u001a����\\u0015'�D��|\\u001f�L���\\u0013��������pDy��k\\u0011S\\u0013\\u0010����\\u001fJ��L!\\u0000�+4I�*c�>\\u001c�\\u0011�̃0\\u0016�p)w\\u001a�B�\\u0010e9[\\u0010��{\\u001d�0��x�lh��e!�E\\u001c6�Q�\\u0001���~?�T�\\u000b><y\\u0006f\\u000f\\u0014���PF�����c�F6@G��>\\u0018�\\u0017e ��e�k�Z�,�'�\\u0010ό����d\\u0019V@�\\r>��>>t�\\r��=\\\\�! �=���\\u0000\\u001ac���C\\u0007�\\u001e�\\u0006�css�8\\u0010@�i�᷈������\\u0000!\\\\�#G��x��T�X�\\u001d\\u0015m�\\u0000:^��\\u0018h_��j |��\\u0007��p\\r�+i�;�\\n+�h ��\\u0016�T�/�k��Y�]��Y\\f:o6�����\\t\\u0004����~���t�O�)�T&d�\\r�\\\\\\\"�־�\\u000e@��\\u0018@:,j=�j��\\flsY�6Y�,,2dZ#�jT�R�R�J�*T�R�J�*T�R�J�*T�R�J�*VϏ�q���^�(���\\u0016��f3{X�e�Zu\\nE\\u0017\\t�2���8�\\u0010nmG�e�\\u000eo�\\u0003 2��\\u0016a{\\u0003qY�E�����\\u001e����D;:\\t\\u0007�3���N�ԁ�j�r\\u0011�eBe����P4�\\u001e�\\u0000�[��2��\\u0014�;�\\u0003��[R\\u0005m5�\\u0016�\\u0015����qL��L��Q\\fh�\\f����E\\u001dN�VnZ\\bN\\u0016\\u001b\\u0015��\\u0019�'Y?�:h)^<�o\\u0000*m�ظ7�.���\\u0013?\\\\\\\"ҳ��[U�\\u0007�\\u0002��\\\\\\\"=j��U�%�\\u0004i:�DF�F\\n�*�H�\\u0013��'�A�+\\u0000}:_��lU\\\\\\\"xр`\\bS������]�\\u0010n���W�T�N�Nd\\u001c!n�PWz�#��9LE�}���(�+�\\u001bj?\\u001b\\nf��\\u001dn��n�\\u0007�\\u0007�,R��o\\u000fuW ���\\u001f�\\u0019p�\\r�:\\r�X��|�z#\\u0013;�\\\\�ʤ[�\\u0016��� �e΅�)-\\u0014F�\\u0018�U\\r��F���3�J-ܬ��iPۮ��-d���a����F��F&\\\\\\\"�`�-��qނ\\u000f\\n�<�8��VS�\\u001c}Mq���PB�(���3[�:]�{P\\\\�8�ȋ,�y\\u0006���ae�Go�5$�g�#�1��\\u000f�f�q�*��|q�t2F\\u0019{\\u0015�4�fm�J~7LV�'[C�i�#aK���3E\\n�\\r�m\\t?6֘Ae\\u0004\\u0000M�\\u000f�3�\\u0018�T�\\u001d����`/��\\\\e����G$M\\\\\\\"N���,?V�\\\\\\u001f�7\\u0010\\f�I�i�\\u0013a�<�Ŝ�%y�H�p�Y���K\\\\\\\"O$bH�I\\n�qb=mޜp8�a��NO�q����&����\\u001d�Fa{\\u0017:��X�;�j��i ��\\u0006ݪ�C0��@�y�\\u0002�O\\u0015T\\fi���?0S\\u0015t�2l��q\\u0013y,m�ߧ��]��؍#�\\u0017�YuB\\r��\\u0000r����t�dא\\r6\\\\����\\u001a'\\u0000�\\u001d��׾�R([Q��+�\\u0017>\\u0015��\\u0016@\\u001c6?��CUd���\\u001c2K���+�\\u0010\\u000b}��������0�l�������ӱ4�r�)yn<�+,\\u0018�;��V?Q�\\u0000��r��ag��P�唖9\\u001c��� �#�e���m�F���Z�5]�ʧE@�\\r\\rſ�g�w)�\\u0015To�G����ޛq�\\u0018�1���$ Q\\u001a\\u0015�߮��y�6Ft����D6���\\u0000��n�����FL||k�<s��W�\\u0004�{�1��m�g���H����\\u0007p�ZM��T�gq!��\\u0016ەM�\\u0019���a�\\u001a\\u0002����\\u0007�~w�B�̐�\\u0017$\\u0013 e`{��\\u0000�u�ˮ(�L�\\u00001*�Į��/���\\u0004n����o\\u0001�\\u0000���a�.4�������S�y-S<�yV�\\u0017\\u0002ہ�Xm���\\u001aˌ�H��1\\u001f��\\u0004\\r\\u000e���\\u000b\\u001f!2�&�dj\\n�p\\u000bn��אȍ\\u0011��#r\\u0001*5V�(˨%w\\u0004��0f[]Q�\\fb��\\n=�Z�O|�\\u0016�\\\\\\\"\\u0007m\\u0005�\\u001fֳ�G4S���`��t�AN��H��{(fkt�]?\\n[���\\u0018���D�\\u001dT\\rB�z�u\\u001dI�NԜy\\u000b|��tϯ�iKss�i6��.�mh�ȯ�2�\\u0004���\\u001a�^��\\r\\u0004��5���&ݭ�/Z#'\\u0012<y�\\f�\\u0012(\\u0012�~�>�\\u0013H\\\\���2�I�yq��Q\\u0015\\u0004\\b�8o���gʊ,�y\\u0006���+=�\\u0000��\\u000bnצ<�\\\\\\\"�b<��s�X���\\r-��X�L��\\u0011\\u00183kp\\t�\\\\!�\\u0007��g@Z\\\\\\\"�\\u001b���\\u001aq\\u0011:Vg8�6\\u0004��\\\\\\\"G��kY\\u001a��\\u0000\\u001fY$�)\\u0016��7\\u0003����i?�\\r�O2�a����[J\\\\Ƶ����V�\\u0001�D�N�\\u001e*\\u0018qc�7K  \\u0013�l:�r4�Y\\u0017\\u001fݸ�ҫ�zӹs�3DRd0�\\u0017�\\u0014m\\u0016:���㰹����}������#i\\u0017��\\u0005\\u0011\\u0015��2�\\u0019&�$\\u0013�\\u001f��\\f+$\\t\\u000b��$��\\u0000\\u0012�i�-���gX&�Pak\\u001f#�\\r���)\\u0004��\\u001ceg�A\\u0013����A�J9v�q�d��K���;���M��\\u0013�V)swT�R>@\\u0002?��Y�abA��\\u001a��\\u0010�4�\\u000fr8���~�j*b\\f6��c��W]V�>5�VCg�\\u000eD��1�*Fl\\u001bo�oV��qd�c�;$i\\u001fE\\u0016�u�}@�\\tr\\u0014@?\\u0012j�\\u0015˝ΐ\\u0018'�o�g��O�\\u0013J%16���l�֒d��v� �(���Aa޵|o�D�C�%w,L/coQ@�\\u0000���\\u00132B\\u0002��D�/�;=*^�\\u0012\\u0012 ��i�\\u000f��V\\\\w@ƺ7>g:��Y\\u000e\\u0002���3\\u0014\\u0000t\\u0017��\\u0000�q/\\u001b&w1y�\\b�Ea���nl>\\u0006���v\\u0010|�fO\\u0018\\u001fM�\\u0001']}}iO\\u001f��r�*�2�О�<d�_3Dv�u�;��6`��|\\u001d��y^7�$|�\\bۓ\\u0019\\u000e��\\u000e\\u0017���)d�^,�&3\\u0019Jn�\\u001dYo�����RT�Ѻ��\\u0001�6�szg2��m���%@7�D�\\u0005c����\\u001c�{_rL���BL3\\u001c\\u0011��\\u0007��\\u001f���NC��p��R�]�\\u000f�Uw#%�\\u001f�Zj��#�<�^ʥ��\\u001f��Q���\\u001f�\\u0003$�,*啚�\\u001bq���J\\u0017[VA��]O\\u001d��v��6�\\u0002O�\\u0003��c.\\u001cx�J\\u0016H}�I��_J\\u00037$�\\u0013\\n�Uř�Ҥ�u�q\\fp�^MW\\u001dЄa�I�֘�\\u0012�|��r�M���:�,(ŭ�32�j�:�\\u001f\\u0012��;��#�FW�c�\\u0018ڪT6�ʏA��(�>\\u0017\\u0012L�d�?t6�}\\u0003\\u0011�|��\\u0018\\u0019�L����P:�L�y(�ē�\\u0018ᘂ#F ;/R#=.zP.;1�!�ҙ�>o':b\\n�\\u0001�����6�B����w�!J���7&��+׎YN?!\\u0013~�\\u0002%�\\\\\\u0016G\\u0017\\u0007㴋��\\u001c���������]�>��nF���ȏ\\u000b\\u0000�\\u0018 V�o�o��v�\\u0003\\u001fY\\u001c�R;)���[\\u001d�`ȵ�;mp�\\rw<�2(V�cp\\u001b����0e���\\u001f�O{�PyYp\\u0014�\\u0002�\\u0012�B��I\\u001dGJ��Ǘ\\u000f͑pR��k��΍U\\u0001��7��W��\\u0000\\u0011[\\u0013x��0�\\u0018ؕs��}�X��d+��\\u0019h\\u0015�,��o{�?\\n�/\\u001f���\\\\��i�D�\\u001bK�I\\u001a�zW\\\\$\\u001c�d\\u0019#\\t�xe�*��f�Ÿ��23���\\u0007v=�kz��{|�;\\u0011�yR�\\u0000̢�<Y�c<���f�\\u0011�*���\\u0016�5\\u0004\\u0011�추��2 �V{���[�@��Er<�D\\u0018�b#`%@c\\r`�������V[͍7�\\\\\\\"�\\u0010��E�\\u001f֪�ЉX�\\u001a�6,��!��q�q�`m3\\u0011K8�c2\\u0019c�\\u001fj�#�\\u0019A>�\\u000f��2|\\u00009\\u0019��)�%�؟s�\\u000fҧ�[�|\\u001cs>:�\\b\\u0003�@�k�k{��%��$\\u0012��h(m�,TTv�gByV��<����t�p��#x��2�H��e\\u0001q���\\u001aW��Ax�΂G�H���\\u0000��v��f�.ti�<\\u0010$l��ɲ����'���*���lI\\u0004�}?�\\b��%�\\r��\\u001e\\u001e���i7ܚ �*�\\u0013.KK\\u0010b@պ\\u0005��Q���\\u0003�\\u0015�K�V~���wZb�Rd*�Д\\u000f�a5T\\u001d��U�@��'���������N\\u0016���\\u0000u[��؈2����]Gh\\u000e'ޮ�˛+\\rdپX�mۻ\\u0001��v�\\u0016\\f�������\\u00027X���\\u000bk\\\\�9X�>L.\\u001d�\\u000e\\u0019X\\u0000E�j-M�́|sG*���\\u000b�}�j�>�B(�)�\\u001bQ����<��:s\\u0015��M�0��S\\t�&<�g,����Wj���\\u0014u�9\\u0014��\\u0018�l-��e+�>��9�Qs�fWi�(�T�=�M{�xs��\\be�\\u0001][Q��~uM!�\\r�\\u0019<\\u0016)�r\\u0016�Ŕ2�2����������|)1r�F���\\u0010/���]�E�]�綝/V\\u0017\\u00123m�\\u0013�\\u001a��\\u0006�\\\\\\\"�d*#�~�Mŉ�𩪓�<#�\\u001a\\u001c����`V����\\u0011�zm���\\u001d����&ŌZ�޶�j\\u0002\\u001e8O*a̯�����(�a�]N�J\\u0002��p\\u0007_Κm\\u0018��9\\u0004ˋ��]�p��\\u0017Ҋ\\u0019H*΀���B\\u000f:Jy�1�\\u000b���t�b�\\u001d�9b���h���=�#[[Mj�\\u0005� Ιa\\u0010#�FK��\\u0000��=:թ���F{[l��׵�6�s���c���yd�Q\\u0011Wq`T�\\u0015�*\\bR\\u0018n�ʖ���\\u0015\\n\\u000b��\\u001b\\u00155��T\\u0019�&VTZO�!)n������zͺϋ��T\\u0007sm�6��S�9��?��\\u0000j�\\r��vc!�#Fu;m���)3.NL��E�\\\\\\\"\\u0012)g�e\\nO�ӵ(�Ń�Krڻ\\u0018�:�<���'�jO�2��gɆR�|;�Pl�p��\\\\E�c�3N��Q\\u0019���rn~v'�\\u0013,\\u0018���Ĳ.�>Q��;_�q�e_\\u0002\\b�\\u001d�[�p-���\\u0000TXL�t��\\u000f��6\\u0014\\u0019\\u0016\\u0012�\\u0012����'��1`�\\u0007��c��M\\u0010`\\u0010\\u0016\\u0003i;���^0\\u0013�ȗ&\\u0017e��P�/�=�,��A��9s�6O�by\\u0013*$Q�\\u000e�+j}�\\u001dzU\\u0010��E#�L�\\u0017�4r_��ܭ�\\u0000\\n��c�\\u0003��*�c�.'-vL��e���\\u001f���2$΍b�Z2�\\u0019Iac�e�0s'�26���X1V\\u0001AP}��*��Ɖ�\\u0002E�\\u000b����LW�͊\\u0010�A���)���^��X�`\\u000e+�u��i����.b���\\u0000֪\\u0004\\u001d�yQ��b�3��J\\u0004m���[i������8�.�1\\u0019\\u000b�}�OO�w�M\\u0014�e\\u0010���\\u0001K��\\u0007ֆ�cg�\\\\lF*J\\u0017�\\u0010z\\u000b�j5�Ҙ�X�=\\u0007��\\u0011��Yold��O\\u0011,b���c�K\\u0000��\\u0013�\\u0014nK\\u0000\\u0005�\\u001bzڀ�g�ݟ��0[�\\u001b\\u0012�}UOK�W�˗���3�I*񌥹*\\b��\\u001bv�X���9x�F��u\\u001eG�\\u001e�{\\u001a�\\u0014ɞ\\u001f}\\u0012�d(\\u001cߒI�T��}(\\fX�?�3坒\\u0016\\\\\\\"$#kk�\\u000f�j\\u0007��;��/�\\u0012�\\u000e�\\u001cj\\u001f�Cֵܬؘ�䔶��*X�~F�9�o31�!�\\u000b\\u0014���\\f=�\\u000fW��|X{q���`�/��q!N�z�ʧ-��r*S+i(\\f��e$t\\u0017���\\\\\\\"�L%'\\\\\\\"R��\\u0005X-�����\\u0000\\u001a\\u001b���J��\\\\\\u0011}���m+���ƌ&��>8��j5'�\\u0005S�>�\\t\\u0006�b)��Eƙ0\\\\����\\u0007��Nf�e>\\u0016\\\\.\\u0019�%ǹ\\b�a��RUq\\u000f���\\u0019d%|d_[�m�QX�ǦiWŔ���;I_v��)�X�q���dW�\\u0005'q��7F\\u001f:-I$�F��2����D�\\bX�#q\\u0000\\u0019�J0b�̛&<�5�k\\b�\\u0005)����%�\\u001d>�_��\\u0015#�f�n?�5��Z\\\\�Ę�[\\n����Yo��j]��o\\u001etN�;QJwГ�_CK�×\\u0019\\t]��\\u00036,��G\\u001d��W��m1<E\\u0003<��x?l�\\u0010���7m\\u0006�Zg�\\f�\\\\\\\"���\\u001e��\\u001bo�\\u001e��N\\u0014r�7�bؤ��e#�#n�W\\u0018x�pF�Y�H�\\u00026�v���֢\\u0000�\\\\\\\"4��~�F\\\\�.+�P���)\\u001b�5���$ReK\\n�W��\\u0015\\u0007M���{W�\\\\O?$���0U���\\u001a���y�l#\\u0016,\\u000b��\\u0001���L�e�7�\\u0010>5�8���Z�HQ��g�A��\\b��](�L��\\u001aќY1\\u0016bUQ�I'u���\\u0013mU��.D\\u0018r����I\\\\\\\"��7��L\\\\\\\"�ț\\u0019�(��I�T\\u0016\\n\\u0015z\\u0016\\n\\u0005�����ŕ�\\u0015�_\\u0019�����^�\\u0000#ҭ��\\u0010��<�$r,\\t\\u0016AԒm��K6�߮ޟ�L_\\u001b7i[�F ��A+-x���p�:\\u0014ɋtx��(n,WOgk|h�3\\u0014c��ԖV`ڷM�����ޕ�G9���,����O����\\n%\\u001b7��\\\\��:9��,Ļ���D�޳�e�3��\\u0007qŸĩ��<j���i�Ɯ�̗\\u0012n\\u0000\\u0015\\u0003�?.���4�\\u0014-�\\\\\\\"\\\\�X\\u0010\\u000f]kQ2���zW�[\\u001c�V�F��\\u0005~����@a��>\\u00008�L�ي\\u0003g�\\u001d��DmǕh��U��\\u000e�\\u001f�n\\u001ao���&�&\\u001c�Ħ�R\\u0000`o���|�&�hb��\\\\\\\"U[�$�\\u0000w\\u001d�\\u000eO\\u0014�{\\t�q�\\u0010��\\u0001a{m�k�e7�i��\\u0000�\\u001b,��Rd�[��\\u001f筪ƀO#��\\u00191��ӌJ3J��\\bX#�p��7#%���\\bX�1�Aq������\\nB�#�2Z94k\\u0012m��iA��yy��(%�\\u001et\\u0004�#\\u0000,�տ\\n�r\\\\>\\u0007\\u001f�.Q��\\\\J�T�l�\\u0012\\u0001\\f?3T�i�\\r'rb����A+�� B\\u0005\\f4\\u001a\\r�<i\\u0001��\\u0013\\u0018be��3\\u0015>M��\\u0013�Qo�����Y9\\u000b$���\\u001d��v\\u0000\\u000b{GsY�c��'�\\u0018�\\b�\\u0002�B���M���!L�2��ˇ*\\fd\\u0012��2��~�m���������A�OJ����8���y�q����H?�ҕ�H�kI\\bU�� ܃��a�ҎVe�:I\\u0014\\u0005&ۂ��p�֯�8\\u001c\\\\c�ً�����\\u0006��|+\\u001f�9��iJ��Amm��\\u0000\\u001a&:F��Brdl������F�\\u0005QR�J\\n�R�J�*T�R�J�*T�R�J�*T�R�J�*Vό�U��$�ՍF�*��,����\\u000b\\u0003(��ҙ��\\u0004�e\\u0013�\\u0011��[iҀxS'�d�\\u0004��r�6Q��\\u0000�+\\u0004���\\u001d?7�+1P�]�sL?&�\\u0000�'ozx\\t��׾��\\u001a*\\u0005�I�m��Uoq��C�\\u001dhB$S�R�:�\\u000b$')4\\f��\\\\\\\"FQk��o�֣\\u0015�(J�_ʷi�&��A��\\u000e\\u0019#�cbdm�\\u0011m\\r�u?�\\u0015��\\u001e\\u001a�����\\t��/�M(��|U&5.\\u001a��|�\\u0000�ױI4�!�~҃\\u001c\\b�+\\u0006�{[ҕ�T]l�B�\\u0016@�b9;aC��\\u0013wҖ����,�\\u000e�\\u0001٧���Y�1)�j�\\u001bkw:w�ϴ�k�\\t����\\u0000��\\u0018�m*p�7�ߍA�����X��I�U\\u0005�\\u0004�lP#\\u0005�\\\\\\\"�������\\u00053T.�O�RlnE�\\u000f^���6/�\\u0003�F��j�d�3,�\\b�X�\\u0017;o�i�dR��C\\u001f�Ud�:�e��VQ�\\u0015\\u0005�\\u001e����m��\\u0000Wi\\u001f�\\u0010.�v\\u0013�n}j��l��\\u0010�\\fv*ǫm\\u0016��nS#�T*\\u001d���P�b��(\\u0015N�\\u001f��ˇ~A�,@� I\\u001e�cm�ϣ\\n�8e\\\\ȃ�*�\\r;�\\u0002zQ\\u001c��V,�\\u0011X����pc=>6���ג��\\u00007��ߦ�u��r(H�ҵ+dl!�\\u0005(�x�>��CH\\u0006���{H��hL��\\u0005���bð��j$�&}�$�'_ӧJ� ;c�\\u0001\\r�k��X��\\u000e��qc%�F���4~\\u0014�ٜbȩ�U\\u0017T_��u�Q#�\\u0018ԝ�p:\\rڝ.j�\\\\\\\"��j��\\u0006��\\u0000q��*�7^�uQ��:=7�\\b;�\\u0014\\u0013h�����\\f�\\f/*��9�\\u0018빏�(�6,8M��\\u0019\\bP�!��z-�4^l�q�i��6�\\u0006�\\t�>e�m׵g�\\u000ec\\u0015����!J���wP^I��i��l\\u0019\\u0019pb\\u0017:+|�H��ڕ7)9�|���\\u0018��`��9ܜ��<�H�Q\\u0014P�ڷ�h�\\n�\\u0014`�\\u0018mk�ͥ�w��\\u0019�'\\u0019�����o+);m�\\u0005�[z�\\r�֏4*`k 1P��\\u0000QG\\u0014���\\u0002n�lI [�#�q��e�A\\t3/a����S\\u0006m�v��茺\\u001d�����F)<��\\u0007�\\u0016�GΘ>@}��WT��z��G�:N�!� ���\\fB�ho�=t7\\u0015�$W�Ƽ�)�\\u0000����p��y��#���k\\u0015=\\n�A\\u0000P1�1��\\u0001y\\u001a��O��ܚ\\u0012N�\\fuI�\\u0003�u<|Z.a�v \\u0000#�ͭ�ڍy�c\\u0003�\\u0018�t���6�%<[�.\\u0016I4\\u00176ґqXɓ3\\u0019\\u001b��#�0�\\u001f'\\u0015�\\u0019���$\\u00026�\\u0003��\\u001c\\u0016ו3��\\u00132O�[��j5�r2fB0�d0�?q�K���ӵ\\u000b!�(�,T\\u0012=��]t�%�x�F��\\u001dw\\u0015{\\u000b�鶃ʀ\\b\\f����}t5|���\\u000b\\u0000\\u0000\\u0017\\u001dt��L[T�\\u0014�\\u0010T�v��L�x��0J\\bə���>�~���1ɔ\\u0019`\\u000b�ݨ�$����w�Q=��0\\\\\\\"�z��i�.���nD%�\\u0013��\\u0010ܶ��qq0;�G\\b\\u0004�6rH\\u0017�$���fhV\\b�\\u0004�\\u001a^���|\\u000ebK�*=##k)����]C�\\u0011��D]]�C�\\u000e�\\u0000�~Gu��\\u0000=�mu��Uc�rg -ͅw\\u000b��4�8�;\\\\쿋��+C�[\\u0012VK2b���Ўեˇ\\u001f����ZR6ƣ[\\u0013��,&�C��N��ҵ��\\u001f��N��=t�_Z��\\u001c؜J��^����zk��:�lI�i�\\u0001�nؿ�n�QXi�6+��FdmK(*A��:kJ��ڏ\\b\\u0017f$��E�É��!ɂ@#��\\b��6�Q�֝Dq�\\\\�XvT�U�v珥3� �I\\u0013������ʝ'\\u0012b�,\\f�,\\u0005Հ6�i�g\\u001b��ą�\\u0014E !�6.��n���|<���U8�\\u0012\\u001e0�����w�Kv�D�ֶ�\\u0000��r\\u0010�:�*N�@�kV�\\\\\\\"a��C�\\r�$\\u0000WQ`m����>[#3\\u000e4�<\\u00116�[�&�k\\\\�ל�x8�eq��6��\\\\\\\"�~�\\u000bZM�'�a��ȭ\\u001c��\\u001aŔ\\u001e�J��\\u0007!�Қ0��>0_�ۮ<F���hx��\\u0016����'���Sq��k��r9&�\\r\\u001alw&\\u0018��\\u001f��u*N�Ʊ�\\u0006K���\\u00190nۿ��ҷx\\u001c�\\fX��\\u0018�Q\\u0014\\r��,@\\u001dW]?\\u001e�n�\\u0000\\\\\\\"��\\u001e<9\\u001f0�Ik�8,�ER�;��\\u0016<��3�;\\r�\\u000f߷[�l@!ΒI�i��_A�\\u0006��ƚ-�ps����b�GwrFХ��5�ZkI�ZK�C[ީ�i���\\f�\\u001b��)�+�p�>\\u0006Vd7�\\u0017�i�O�Ҙ�89��x�)��\\u0000t.�@���sG��L3\\b�wx\\u001aů���\\t��&T�\\f�D�T\\u0017=ms��V;&;\\u0017�\\u0005�ש\\u001d��\\u0006\\n���b+��p��Un\\\\eK\\u0006\\u001a3\\u0003t�\\u0014��\\u001c���U\\u0001$�n\\u0006���O�$�}���H�%�\\t6[��/k�Z���o��r]�ƃ�\\u001a��\\fH��1x��x�\\u0005V0��z��^��KU\\u0001B�6��u<�2Tgd\\nr�t�\\u001e��\\u000fsY_<�~�*Y��(�\\\\v�\\u0019�2H��E��\\u001b�շߩ����0癧�x\\u001fk\\b�{T�������I��\\u001cq�6�$m`Gv=�\\u0000\\u001f,\\u0011H�\\u0000!\\u001b\\u001bX\\\\\\\"\\u0017�4�s��b�\\t<�\\u0003H�!l���(�m����K�����S��x�C�0uP\\u0014���-�9Y�d\\u000b\\t)\\u0002\\u000b)�X���x��\\u0016\\u001a�\\u0018;]��\\u000e�\\t��Kqs\\u0007��p���!G��\\u0019�A�΃�\\u0013L�E�y\\u00162g�\\rΦ��l>ZR��8�]���=ђ�-cmCu�ד�\\u0019��ܞb�%t\\u0001E��\\u00174�4@�,�^2:kF�\\u0011��ɬXr���15���f$�d\\u0010����r�K1\\u0018�\\u0015@s#\\u000bܞ����20�\\\\\\u0005Œ�f@V���j�����Y�\\r��CDW�n�\\u0019{ޔ��dcH&��kmmI�/��҂z�\\u000e\\u0011\\u0015��Ň�\\u0000Z��G\\u001b�����Irx�d�ع ��I�\\u001b�/m\\u000e����WΕ�>F��G�;�I�Ӊ3<O�.ou�\\u0000u'�*�|rd�b��;�\\u000bh���ubt�����.Y\\u0010و��fy�|�>FnV4x��K�a�I=X|��?\\u0013��t�6����B\\r���a�u�\\f�`�IwrH\\\\\\\"�6��kc͹rf@����˕����k�E\\u0010��d\\u001a�X\\u0018���)Fªc�]��xr�K��1�\\\\G+�5�@ \\u0003m\\t\\u0003�^`D��򐬈\\fE�s��\\u0015�^4�\\u0019�Cu�X�'M/�֡�Ś� \\u0002=�B��K�\\\\\\\"�ne�q#�5Y�S#\\f-%��F�m$\\u0002�OS]d�����q���K4�n\\u001d���jHQ֊��ě�li`\\u00026f?�b4\\f�\\u001a\\u0011Ox\\\\�,�*L\\b��aWL���������v\\b��\\r�\\u0018�{^XA�e��{�{�R\\u0004�\\n/!2[�ִ�RH�\\u001b���y�1\\u0016'���\\\\\\\"E����]��0̍%RAE��X\\r����9\\u001cIq9\\u0007Luq\\u0012��w^�\\u001e��N�kr?v��ItB�H\\u0005�\\u0004\\u0015\\\\\\\" ȢLE\\u0019rt���b\\u000e�h6��7c��\\\\\\\"��\\u0012�������*�U\\u00037\\u0010d?�/���e#ٻ֦>\\u000f�Nr\\u00123 �j��79��x����bQ�\\u0004�+�e��-��|莠���S|����\\u0012m�\\u0018)\\u0000�l\\n3��i�\\u0015�|�o\\u0010\\u000b�ܺ�z\\r)\\u000e7%��`��(6ݮM�X֪|�c�q���_k7@Gj\\u0007'-p�9\\u001b|�\\u001d[h�9���\\f7�LG*�ໄl\\u000f����6'@`PP�v:ې����e����w�׸2'����.^5�%���\\u0015�i��'�\\u0014q��)(m�\\u0014�SM�f6��ŕ��J�VH4���\\u0002�\\u001b6�:�)K\\u0001�m5�q��eA�̬Y4=$\\u0003��p��tȚK\\u0012�\\u0005,�\\u0007��»�d�\\bp�]��T3���t��Aq���rD�#�&�\\u0002��\\u0017b\\u0005�+K�\\u0014�\\u001f\\u0013��I��M2��m\\u001f��v�\\u000e�����\\t�CA����u���J��,y�\\u001c�\\b�\\rݶ�/��Xg\\u0017\\u000b��|�\\u001c\\u0011�pN�\\u0018)����O'\\u0016^�\\u0002�\\u0013#}v�\\u0003��q8v��.C����v����n��c\\u001c�\\u001fqE�0b�,$����ȍ����9L9p�~$;b�wG���ʩ�7�J_!|��p�V�GMha��\\u0017\\u000163����C��U�=h\\u0005��$LxTc�!�\\u0002�*����\\b$\\u0012\\b�t\\u0014���(\\\\��\\u001d�x��\\u0000\\u0010�zt�y8�\\u0012C/�0�ب/�7coP:��\\u001c<^/�\\u0006.Q7��Kz�{���G��(VYvl�c_i'B�E�:�ad��\\\\\\\"/\\u0014�lᾓG\\u001a\\u001f��Vt�ivLWu\\u0005��\\u0007\\u0010xP<FW\\\\\\\"�M$Q�*��e�\\u0012�M�u�Ҋ�͛�Ϗ\\u001a\\u0005E\\u0010��^K�ŬM�\\nm�{'��0�FUB����e6^�M�P\\\\��q��W�\\u0012���˸�X��@\\u0010\\u0011ӭ�U\\u0016Р:�u�\\u001e4\\u0019G���TP�\\u0000CDk�&6��~&l|4�w��w��H .�\\u00174o�d�b1�-\\n�FWv.�\\u0005��5���^}�Ĺ\\u0012]�\\u000f\\u001a8�n�{�Ҋ��?��\\u000eHiJ��m\\u001a3 ��v4\\b����\\u0000�����H��*b$+�;����Iڅ�q���9\\u001dn��\\r�m7[�޵��#!\\u0012�u\\\\\\\"\\u0014 ?M�_�\\\\�\\u0000\\u0017�7��\\u0005��eR��}\\u0001\\u001a\\u0002?\\u001a:Q���>8$� ���I66'�{R��\\u000fi%�\\u0011'�X�7�>^p1����\\\\\\\"\\f\\u001dl��4\\\\�\\u0011,\\u000e��Hd_ :u�jW���.^<X��\\u0011�2\\u0001���^��rG�l,yaKM+H��\\u0004\\u001b���zkJ����L\\u0011���`n�o����ӄ�t�Pxk\\u001a�\\u001e�\\u0005U[]J\\u001c�\\u0015�4+�\\u0001�L������2yWv�Hb\\u000fZ��q�# �`\\\\\\\"ݰ�w���\\u000bkހ\\u0019�<Z�(,�\\u000f��\\u001at�=h>9���r!yd�BZh�\\u0006#��[�[\\u0011 �\\u000f\\u0018��1l�Hʅ�㷈o�(\\u0014�7\\u001a6�\\\\\\\"�V.�\\nƿ�n~���2\\u0019��\\u0013m.\\u0006�\\u0000��Ҏ����\\u0013$�X�����v�ӧz��Ĺ��\\u00182�]��N��=�o�ZP�;�+K\\u0011�밈�i���qx���O�\\u0000$��Ů\\u0011�Dq���N?%��\\u000b�\\u0006��6_m����G)�dff�~\\u001aH��Tf�m�m�u֦\\\\\\\"��\\u0002|�^y[p\\f5o¯.9\\f�c�6\\u0018�\\u0012H��\\r�\\u001f:`=3��\\\\\\\"��\\u001e7`����2�&٘+\\u001cig\\u0015�\\u000eY�ddI\\u001b��5�mz�\\u0016�\\u0017\\u000b�v�e��c1���k|�P��d�$�D\\u0019\\nZ��\\r���(�?\\u000292#�s�w;\\u0015\\u0006�^����7\\t\\u0003h��U=���&�;aH�G-���\\u0013\\u00111�& Z��qa[׿q�$͊`H�a����\\u000f���o�����K��\\u0010�_�j�\\\\ܖ��c�@\\u0000���m����S\\u001a�\\u00126�)x3y*�\\u001aƜ��rS�m�\\u001d���l���/�$d.B2�\\u0015$����#5�1� >��$i�m�GJ\\u0001\\u0017�ȅ�0�W�Ő��\\n�omŀҊ�Ǔ#\\u0017l�P\\u000b2{N�[AU�!��1������ϐd|K��\\nJ�_���U\\u0018ؘM��6�\\u00197�\\u0001���\\\\\\\"��b�\\u0000\\u001bfh�\\u0014$�\\u001d��\\r�3\\\\�΀��^\\\\\\\"��\\u0017���hP\\t�\\u0000M\\u0005�E'���Ď��:\\u001e�\\u001f�U�Op);�o�=E>��\\u001b\\u0012�\\u0016��\\u000b3qy�i�\\u0003 q��\\u0018�AiH��\\u0006aa���B��ƒL<��\\u001d��ÿj�N�\\u001d��_�\\\\tL�\\u0019��v*<����ߵz�PL��#\\u0017��u\\u0017��\\n�eU\\u0010�̞\\u0014�Ȣ㓬\\u0003�\\u0000�7zL�\\u0006�ɗ/��\\u0019v�1����خ��r\\u000f���C\\r��uƽ�d����\\u001dZ��Wq�BB�E]T�@4�M\\u000fkU���@�����J\\u0004d\\u0013�\\u000b\\rwU\\u0012�n���\\u0000J4l��4��\\u001b\\u001e GY\\u001a�3'�P���,2.~T�\\u0012�͢�']K_�{���Pc��\\u0019P���Wk0����u���+��(�ݲP��\\u0010\\u000f`���ڕ'#\\u000eT�b��Ȼ\\u0003�-�}5F\\u0003D4*`w���x�:�Р�H��!Û'�̒\\u0007�\\u0014\\nvʢ�r\\u0005�ݷ�N�G��?\\u001f\\u000f\\\\\\\"�iB�d+m4�tЛw�\\u0010qi>FH\\\\����ArlA���Z���8�W\\u001dd>h\\\\\\\"�y��X�6�����W\\u0002\\t���EʬW\\u001fs�;d-�@�e�����\\f<o����F�J�m�:iO[����q�$yRG�\\u0015@`�\\u0000e��OƆ�Y�a˃\\u0018��\\u00113̌�Z�˭�}-�y��G�bɌ\\u0001��\\u000b�6��a�\\u0002���t�u�J,�2.U�+3w\\u0019�m/l�x\\u0011�)<Ss��\\u00062��F�#u\\u0004�Am�M\\u0011��`\\u0011&\\u0013~�+��\\u001d#�nu:��T\\u0002����|\\t�Y�\\u001et��D�xp\\u0000��^Ņ�\\u001e;�31ΞB<��w'��k{��\\u0015�P\\u001b�_QMl]�*��1iQ���\\u000e7 R�g��\\u0007�+�bY�a��=-J�4��a9GMB�\\n���zSVD\\u0018\\u0014�._\\u0018bT�?\\u001d�T�R��R�J�*T�R�J�*T�R�J�*T�Zn?\\u000f�Ȇ\\u0014>_)�\\u0016���5�W�\\u001fi������8���\\u000b\\u0012\\u001aW��,#Lm�M�m66�2��qg+���Yv���\\u0017ҫ\\u0001\\u0017\\u0012WQ:��\\u0017�\\u0014u��2�VQ8ݺ�cҋ��<X��o$�j��&׽+�q���;1���\\u0006�\\r���Q\\u001c�vNih���\\u001d�r=�O�I�\\u0018��}�R�0�/��қ*L�d���\\u0002\\u0011�3��u\\u0002�m\\u001b�E\\u001a��\\u0004��\\u0007��[�\\u001eS�{X?�mk\\u0015�í \\u00199r1-#\\u0005{{A�\\u0000z\\n�ط�I6���VjuӅ(�Ӟ�\\u0000�w�'gC*��Y��򪲰2y�\\u001fْ�c�lD\\u000f}��v�U~\\\\\\\"��-d\\u001b�?�E`�\\u0013J�\\u000by\\u0017Kvb,*`p�h���Л��\\t\\u0003٩O\\u0001�>7.b�\\n8��?�B45��J�\\f��\\r����oZ�\\u000e#x�t� e\\f~=l~5�+.Jc\\u0005�6y\\u001dPz]�Ƣ�M���s��N�+�\\u001euw��\\u0003,�v�����T�������\\u0000H҄���l\\u001c��\\n��L$|X�$^��r�͏3ܟ�7��u\\u0014nD��F�\\u0000֧��\\u0004N�6��c�O�\\u0003����en<+, �BE����ƈ�`�k9\\u001f��P�\\u000e��?��Y1�U����\\u000e��m�\\u0000\\u001a_�e䜘���Y��ԭ�b\\u0007Ε�o�+J\\u000b�\\u0000�F5D\\u0006['>���+A�ݖr%h�� �.E����r8�X�,,�\\u0001S�\\u0000���,:|����\\u0003�+06\\u0002;�w\\u001b��29?\\u001e\\u001f���xQ\\u0010��z�iE��\\u0018�r8\\u001a(�k/�2>|J_\\u001a�si�V`\\u0001��<��-\\u0019���\\n�,�\\u001fPƍ�H��\\u001dƨ������Β�����\\u001cq\\u0018�?K�\\bPz��R�.?�H&r҂aSߨe��V��\\u0005�����<���0�2\\u0000�ѳ����f�\\u000b��!\\u001c\\u0011@�(,J\\u0012H\\u0017���*�7\\n��\\u0007�\\u0017Fe��\\u0014�\\u000e;��ǌ͟$S\\u0013g\\u0006\\u001dȤ�\\u0000�u�L8�;\\u001f������\\u001d\\u0004�\\bU\\u0007�����,��\\u0005l͑1�t�`���T�\\u0010e��\\u001e�k�q�\\u0003�G��\\f\\u000b\\f\\bLP��o{*��S*-\\u0004b�c�K\\u001b�xS�BH_.�w[�D7\\u001e��\\f�\\u0015��e��t�U9��&\\u000f\\u001e�M�_&_�\\r���ݶ�\\\\\\u000f �����A\\n4j~�����M\\u000e$������\\u00129\\u000b���/�ҘW.\\f��\\u0013����\\u001e�Ӹ?\\u0002*��]��Y|<c\\t�m\\\\��Y\\u001aW|�����#�џԄ\\u001b�Qk�ʗ�*�V\\u0006�:��x����\\u00013\\u0010�E���soJ��X́�J�\\r����6�a�5dF�~\\u0017��eW�U\\u0014���B)�\\u0007\\u001a(�\\\\\\\"䂠��Mh1��l�\\u0018��P�FT����w��\\t�\\\\\\\"\\u0016�b��\\f�\\u0014��`;ֲC��)\\u0013\\u000b��\\u001bw�?�-�\\u000fz&��䳰�\\u000e��VO6L��v˓{G�'�\\u000b��\\n#�\\u000b6TX�0�FQy\\u0006�.4��2a\\bQ�\\u001e�\\u0018�~5�&$�,SF�2\\u001b\\u001bikt4GQ5C(*�m\\u0010c�Ns!\\u0011d�,�\\u0019��\\u0011Ƞ�\\u0003���\\u0019�L�d�\\u0001WIΊNݥ�|��܁���o3�l\\u0018܀OF5�CM\\u001b�t��\\u0007���o�X (\\u0011Ƴ�.\\u001e�p�c']~;iI02�8l�ę=��x�K�\\u0003�����\\f\\u001d[k��\\u001bt59ԛ#7\\u0005\\u0011D���\\u0001�*u?\\n�3\\u001a|V\\t���ԃpj�2\\u0012T�:\\u0012+^/!�]\\u0018b��㌊��\\u0014��_�$ܤ���9H\\u0012�\\u001a\\u000b\\r�{iҮ���;�3��\\u0007�s����H\\u001d'�gR!u�0$]��ӽ���#)F\\u0001��/��\\u0000�P^����+>l�[\\u0018=6*�\\u0000�\\u001b��@c�\\u001dX\\u00141;�\\\\\\\"ĝE��ي��0�;������F�\\u000f�D�Xx'-&ɉ\\u001aVFD�\\rc\\u0004\\u001dV��SY\\\\��1���\\u0004FΠ�:�\\u0006�w{Z�1\\u0002\\u0018jD����s�<��m=��YS%�{�vY�łT�M�\\u0000}��?Δ���\\u0017�\\u001a&�R��!+�\\u0001v#��;\\u0002�H@��T�\\u0015�V��v˖Qg����>�?\\u0010)D\\u0012��\\u0015�U��\\u0017��\\u0014�d�J�����*�( ���)�3E*�$%��o�]Oj�\\u0000��\\u000e�\\\\��\\u0012I���S��!\\u0000\\u00146>2ǐ�\\b\\u0011W�\\\\\\\"*\\u0007��q}��\\u0015W)�� �\\u0012�c����=��S0�|�\\u0015Z�\\u001d@�S|q��rxr\\u0003\\f}\\u000f��N��\\u0000⹐*°F�`pWe��\\u001f��-\\u001a��}:[�pو����a{���0��h.��\\u0005��z��-�\\u001e��(q�g��=O�.��Vh\\u0013*0\\u0011�۸�n^���\\\\W\\u0015p32ɕ�\\u0012\\u0014\\u001e�?���T�2U %�J�@?�稦x8�\\u0013\\u000fĮG�\\u0000n�A�z�Rz�ڛ��d��\\u000euo��z�\\u00164����\\u0001*����u,w\\u0012\\u000f���W�!��f)*9�2_@ݭ�~�|\\tY\\u0016#$,� �4$�:�\\u0000�\\u001a���'\\\\\\\"\\t�\\u0000�d����vkP���*`��\\u000b\\u0014+��.;��4V\\u0000G�6Cy$���n�O����M$�^@\\bP\\r���.^fe�F�d6FrK؝7\\u001b��\\u0000nB�$��$�S��*\\b\\u001e��އȸdp�{d�ǎ�\\n��\\u001c(O��L�]���\\u0003 ��\\u0004�4����y2ǋ�Px�P�{l$Dr�\\u000b\\u000f�Z�q\\\\�$|�rH�Xq�{��\\u0004G���A��Ll��\\\\y\\f��\\u0011,����]T��\\u0017օ�\\u0006�V�~9B�`��*6�~c@�\\u0003�35�\\u0014�\\u0010)��>`ޑ�K$|��q��\\u0012�\\u0004�ֶ�k�\\u0001�W�|��2Dc�PW�\\u001b��^�g\\u0015���\\u0002���v���ߥ�\\u0015\\u0007��^B�q��S#<\\u0004\\u000b2=I4\\u0016bdK�s\\u000b\\u0007+�H�;��\\u0000hZ�&̋\\u001fyB�\\u0001U�6\\u0017e'���̒\\u001c�\\u001a\\u001d�� ���]�-\\f\\u0018�,�ْ\\u0002J�]A:n��j4ȉ��B�\\u0019\\u00102\\u001b�R5\\u001azz��g�x3\\u0019��a\\u0001E\\u0017��mD�\\\\\\\"��7\\u0012�l��M�֗aǃ�\\u0013�\\u0016:\\u0019d\\u0002ӱ�@7�n'S���9�+, �ѹ;~�V�B~\\u001e�\\u0005��\\u0002u��\\u0000\\u0014̸rdƓ\\n�� 9>AX�\\u001a\\u000fj�9r.�U\\u0015X��\\u0000i�S֊��H�\\u001e\\u001f.�0_F\\u001f�K1�sf��b\\f7\\u00105\\u0002�\\u0000�߭7�\\u001d�aĊ\\u0005\\nT�ù�[\\u001fZ��\\r�iS �z�@�^勶�ƭ���\\u0000uǛ $|iu�$Zѡ7���������?>\\u0014\\u001c.j���|y6) {���G��ς\\u001cV�v�3n-\\u001a����[SVE�󐮥cagc���\\r\\\\\\u0002$\\u001d\\u0005Z�l,Q��$�\\u0004�a�z�8���\\u00104��Liu'^��\\u0003�r�e�VF1\\u0014f\\u0017\\u0016�ʵ\\u0003*\\fx�\\u0006�]Q\\u0000V-�\\u000b\\u000b��X��|�,�%\\u0005���&?�wkmu҅��%u�&�\\u000f����[��Rɤ�\\u0006[J6x��\\u0011��\\u0018�:`��\\u0014�+\\u0011>�67���T��\\\\��i��9\\u0001v�U�.m�\\u0011޻�ĉѲ���T���,\\u000f{�^<�\\n�D��B|�!\\u001do��\\u0004\\u001a9%C\\u0011\\u0007h��\\u00120\\\\��� ��iqqw\\u0019�(\\f�y�6J�5��Nޣ_JY���K(l�Ud$��n�ݎ��8\\fג\\u0007eHe%K��\\u0012��c�5O;���n&$�2����]X\\u0016Q}�oK�P*0\\u0016�{��v5�\\u0016|,{�p\\u001c}!\\u0019I�Dq\\u001b}hx�\\\\\\\\l�cÉN8\\u0003q_m�]F�-B�����\\u001en5��=����\\u000f�z��\\u0000\\u0015�pd㤝��3Hw��~�o��g�\\u0000�`���A� �\\u0019\\u0015]�,T3^��ވ\\u000e�\\u0006��C�dr�\\fj��\\u001f\\u001a�3��9��\\u0001>��[�´I�+\\\\\\\"G+�\\\\\\\"[i�h4�\\u0015���p\\u0011���\\u0000H\\\\\\\"�\\u0000��!_B��\\u001d��c��\\u001e\\\\\\\"-�eh�V�\\u0017-�t�����\\u001fY�ٳ(��yBw�\\\\\\\"�\\u0004\\b\\\\\\\"=u\\u001b�\\u001d2?��X�Eu��)&͸��\\u0011A������%�Q�}����Z\\u0017��3�@+$x��c��\\u0014�i��K�Ҭ����9��ǗV�U�O�\\u0019��*�~��4�\\u0010XƼ8Rͅ�cf�\\u0012v�`�\\u000fZ\\nN\\u000f\\u000b\\u00173��Q�eg-\\u000e�{5S��i�)����pA���7����\\u0006�{��R��Gɑ�4�Vd�h�B�z���5|<�fC��\\u0015\\\\tRQw{�z\\u000b�֌Y=Z\\u000eb��ɷ\\u0019\\r�I�\\u0013!���\\u0014�'�10�\\u001eB�\\u0002\\u0003\\u0003����j�6I�]�/�7.l\\u0018[�\\u0006�N^\\u0011��q���d ��\\u000fC��D�qx��\\u001f��BF�@K\\u001d@\\u0017��H7\\u0012�zD\\u000f^4�����p�.=̄\\\\@\\u001bm�TaL��\\u000b�\\u0003� \\u0017�/�\\u0016\\u0004�\\u0000Z?2\\u0001�6�\\u0002��M�ԑҳ��\\t�\\u0007!\\u001cX�3\\t#-\\u000b�*��g\\u0007i��2d�|C�����\\ny\\ta���oJ\\u00179\\n�\\u0016�-|\\u0015�)Ǘ���U\\u001bK�xSe��㡅�\\t$����\\n�\\u0000m�4T9|\\u001f#\\u0004p\\u00043�;�N�\\u0015�U\\u0000ۨ\\u001dm\\\\C\\u001f\\u0014q���C ]��mI\\u001d@��j��܏\\u0004�\\u0004�,X�:��LbX�\\u0016�@��>M\\u0005�\\\\�\\u001f�q\\u001c���͇\\u0004�\\u0019UВLR\\u0000P��?\\u001bP�s�9|�\\r�Uc�\\\\\\b�؂�_S��W�\\u0002$�✝��A�\\u000b�aBb����D$��$���Fޠ�\\u0002\\u0001\\u000b�@�OL x흅���Pzd�}��K!���L%!4�\\u0016R.����N2<|,�ɑ����I�U���\\u0000�\\u0011�>Zᴶ\\b,\\u0015��ڄٍ&�\\f�Ɏ\\u0016O�Ջ\\r��*\\u000bkVA&T�\\u001a�ұ2��R�Ev+\\n�F��h�C�\\u000f4r`JTFK�\\u0013ۭ��\\u0010Ϛ��4�7��\\u0007^�Җ`:}��2��@��\\rF�\\\\��y��2,��VG:�I���KDDP\\u0004���u��Q˙˪��H�I�!`kD2�#�.jȘ� Y�(�\\u0014��k���l�1`�`���\\n!Q�\\u0013�Oj�+�̟\\u001aLE��M��1q�T���\\u0012O@+5i\\u001ah�tv����>\\u0015\\u0005�Iխ�-K��gR{~;@\\u000f�\\f\\u0004 �\\u001a���2��$�2Y�fsr��\\u0007\\u001e|Ȧq�\\u001aJ�B�΂�[\\u000b��g܅e�G�o�\\u000f�[���7�_���fy\\u0019��v�saoJ��\\u000e���e[\\u0010�\\u0019\\u0001��0\\u001b[1w\\r\\u0005\\u000b����><�F�\\ft�e\\u0002��\\r��\\u001f�\\n�\\u001f:\\u0018\\u001d�D����΁���0 �\\u001b�-���\\u001dǅ��\\rƽ�_���2\\u0001>L1aB�óK��7\\u001d�L0�ԓ���*v����?�«��4\\u001aL\\u0006?�Zy��b��o,��H\\u000b�\\u0003�����\\u000b�H�\\\\\\\"2y\\u001a\\u0012�bWO�ҏ�Ó\\u0013{7�%����*\\u0006bD�!Vvf�]M\\u001b\\u0018#Y�a�`ɐc[���3��p�Wq���Eɾ�I������T��x$\\u0018��\\u0004��x�6�aV��P�0�#�:H\\nG*�7\\u0001��io����\\u001c��\\\\�hv���\\nXsq�@�i���|q�ι\\u000b3�����\\r\\\\\\\"���\\u0019O����\\u0007�\\u0006��ݻҝ4\\u001b�}���@\\\\\\\"׽�\\u0003�\\\\\\\"�����RIX�\\b�}B�m��S\\u00182q�pa\\u0012H��x��[zuR\\u0016����di\\u001f�L�3<\\u0005,�\\u001eF��\\u0018�8\\u001e\\u0015�\\u000b��\\u0007\\u0011\\u001aI\\u000b��\\u0017\\f..�1����0r���ȑn��R�n\\u0005\\u0014���ܚ�\\u0007\\u0019$��)\\t�I\\u001e�ug\\u0004�s\\u000fZ���_\\u000b'n4��eK\\\\�[Kn\\u0005GQE��Α�Vw\\u0018�򤢻4I\\u0013������\\\\�1�cY�\\u001c��UOmG꩓�]\\u0011��O#�ڒD�D�\\u001dF���\\u000f\\u001a}�\\\\\\n\\u000eءV�E����[ǰ<��lS��ڲXi�^瞴#)�\\u0018Ъ\\u0012\\u000fQ\\u001f. ��c�\\u0007Ldr� \\f\\u0018h-{Z���|�%̜��\\\\\\\"D�����nhV��4�̆�����ڹo䱤?k\\u0006���������\\n����R6�4��gO\\u001dH���C�`LD�#R&�I��ј���\\\\\\\"\\u0000B��B���2�4\\u0018�sX���b\\u0000�~���\\u0012\\bᕤ̙�&e\\u001b�S��>�>\\u001e�\\u001e^6FV\\u001e��2\\\\\\\"�fPup�\\u001d��t,��N�X�T�\\u0019��tu�*��\\u001a\\u0019\\u0010E܍\\u001d��aM\\u000b\\\\\\\"���5�w\\u0016$Xt\\u0014\\u001f\\u0007\\u000f\\u001c�4�@��\\u0001\\u001bhcK���5�88\\u0012\\\\�\\u001b�\\u0011����[����b��\\u000b��\\u0014NT��T������\\u0000񣸯TmΟ� \\f0\\u0003��0ƪڋ����=�18|\\u001cO��_ۛo�U�� %\\u0018�n�ֆȍ���ʤ\\u0013\\n�R,B�V5T�~;cb�,ϐ���4k*�݂��\\r\\\\�g\\u000f,XZ�р�u�#\\u0016���V�Đ\\u000f?�f�-���r�u\\u0005�\\u0000�B�͋��\\u001e3�\\u001e4��&���\\u000bu��\\u0015\\u001cS˕\\u001c����fp4j�.i1�F�C�{�0�ïӭ4�����-$�c:ne6��\\u0001�Q�|)y�\\n�('HF\\u001a\\u001fz��dyHgA֭�5�'h;��~\\u001c�<\\u0012}ʠ�=�H}�[S�҉��W�?\\u0014l�B^9T]=�5��)_\\u001b>kcH��C���\\u0000�\\u001bn���Ņ�\\u0014�2_#\\u0003\\u0013\\r\\\\\\\"h���\\u0019�e;@s�;�C��j3�A�-�4c�œ�����f\\u0001�-�m�@O8��)��i\\u001f�V�Б�^��R�m�b}��XD\\u001d�7�\\u0005��qJj��و\\u0000�\\u0000Q�b>�*T�R�2�J�*T�R�J�*T�R�J�*T�R�B�5�\\ni�g\\u0010��\\u0004\\bXmq��\\u000f�P�1�\\u001be+<[uT67�Udf@�̑+\\b��Ҟ��4\\u0018��A\\u001eԿ1NE\\u0018�c�]Ô\\u000fZd��\\u001el��c2F���Z�{�z�x��\\u0005ά��\\u001f�;$�D���|z�Q��\\u0000��S�\\n�d�e���h\\rŀ\\u001aMt\\u0010\\u0005\\u0003��ouZW]+ͺ�����Uh\\u001b�ņۃc�ҍI_��^�\\u001d\\u001b�A^�U���v��Rg�E@��\\u0011�]}l*r�\\u0006#4��8������FNr�(�t,���:ٺ��9�_\\u0016LO����6�,:*��~?\\n��C�\\u000e\\\\��0V�b��7���+=�\\u0017�o��-�=��32�N#x�7\\u0006����ۍ:�)>:�h�5m��?\\r�E����23\\u0017���\\u001a��\\n\\u0016Y��]\\f��7\\u000e�%D�&�eH�8�\\u0000J\\r�Mֳ߯�q��.M�@dЭ셯e7��\\u0004\\u0013��$�\\u0000�q42K�$q�;)\\bN�n�֬\\r������8.X�<�FK����D6`�R�\\u0000�����R~L�q�衃\\u0013k\\u000e�ˌɏ3\\u0011%�YE�\\u0000�d\\u001a\\u001a㒄lR˺�-������W�$y\\u0003\\u0015�\\u001b�?\\u001aB}Ĉ�h��n��D[$y�L@nM������|�\\u0012�H�T㣠d�Ớ�\\u0003$�\\u0016Y�@�s\\ta���[MhZ\\f�t��\\u0000\\u001d�~Y\\u001cf==yU�M\\u0014�� �C`N�\\u001e�o\\u001d�\\u0014R�3��}�E���{P�a��\\u0018\\u0006��(�S�h\\u0005\\u001b\\u0017��A��R\\\\�@@�Q{J\\b \\u0013\\u0006\\u00125�v.V�t��l� oCr�\\u0018�XX�E�82�\\u0006R\\u0002�ɅO�C�ߏ�x$��u�_�H�\\u0019���z-\\u0019Y�\\r�\\u000e�k�N�#CL\\u000b�xiY��\\u0017\\u0015����.\\u0002�\\\\\\\"�X�cʂ�fB�\\u0001�\\f���.((\\u0013��f7�/%�21\\u0016\\u0010@p���{\\u0002\\u000e��\\u001cm�Y\\u0013=�+�@�:jw0��K;���\\u0016H\\u0005\\u0006�ۊy����\\u0016�i\\u0003mU\\f�F]4\\u0004\\u001a[��\\u0012l�8�\\u0004\\u0012J�_������mBp�4sd����\\u0016b/��)���(��\\u0000��M\\r����\\b+\\u001a�\\r�||�*<�7\\u0010�9��J\\u0002\\u000e7�����\\u0019�ҢGv�`��_���Nb\\u0014�a�\\u0012��\\u001b\\u001dC-�\\u0013�V�$�3��\\f,G��F\\u001f\\u000b����\\n���#}v ��\\\\\\\"��\\f��U\\u001cWZ�x������n#+\\u001c`�|E\\u001a1���{�\\u001c�\\u001a3��jI\\u001d����&7\\u000f$*�9��,���\\u0014�\\u0007Z\\u00044qH�F;͕.5\\u0003��5d��3.輰�\\u0013$W �\\bݧ�:�D\\bf\\u0002k\\u001f��������I���ׇ$��v5�'[\\u001a.H�̱�,O�\\u0018km�\\r�k�d���ȱ���%;�w\\u0001A�PY��`�G\\u0016\\b2J=�vR�}?��R\\u0019\\u0015�� �N�v��dD\\u0002\\u0019^-`֧��G�5��\\u0015��p\\u000b\\u0000\\u000e��W��\\u0010Ƀ �]�w-����+��\\\\�P��!��\\t�W���\\u0015�j�ث�o{i�G��9���\\u001aT��p�\\u0014�\\u001f1\\u001e3\\n&Ō{\\u0005R�d\\u0006;UU�}ޖ���\\u0013�J�\\u000e\\u0011�\\u0001�-���N6i�RA5�M�H�i�zk�\\u00138\\nO!Nō\\u001b*�a���:��ִ|g!\\u0002d����X0܂��³\\u001c��ɰV\\u00043n�Xh����F`񹣉y�*�&��\\u001a�s�q?\\n\\\\\\u001eVp��1�/�+��=h\\u0003\\u0007�\\u001c~�za8\\u001d�\\u001bA�Ǧ:��L���P��ѥ:\\t����n�K�Lk4\\u0011�k�X��]>\\u001c�b;D7z\\u000e�\\u0001��6-�\\u0018m\\u0017#q>��-B$���,1�l�C�G�ix�+#\\u0019>�ȑr�M����*�\\\\fĸ��\\u000eN��݉\\u0003�\\t6�p\\u0018�\\u0014��\\u0015�\\u001d�\\u001d�\\u0017-���Yc��y\\b'�\\n.CS1d(��\\t^u�\\u0017�|�\\u0018�\\u001b�`�M��8�d�'u�\\u0017r6�_�6��rc�t�\\u0013f`�]o{�ݦ�����'�N��\\u0014��\\u0007�܋[�\\f��@��z2n!.��,�xB�c�{S��L>M��,�s ]�_�ޕ6Kq��u\\u0013.F�`4ak\\u0011j��\\u0019$��.! ���[��k�����bQ!�͙\\u000f�ކ�H�-�`7��㥾t-���4��6��Z7�p���b*�\\tE��\\u0010����s&^(�����\\u0017MH�K�nFdf\\r�\\u0010e��ܟN�W�\\u0006l�Ȓ\\u000f\\u0012;��b�]=���U�0\\u0015�P�\\u000b^�D:\\u0003��{�mM��P�6�ǃ\\b\\\\\\\"�\\u0019\\ta\\u0004�4v\\u0007\\u0003)ƆR�,7m\\u0004�H=:Q�o��\\u0012��@\\u0012-�\\u0006�t�1�\\r�\\u001b�!\\u001cD̮�`K\\\\�P�j��'W�����=��E�u\\\\\\\"k\\u0016e���{�G*�\\b��ifg\\u0018�d��:\\u0017��\\u001a�t���\\u0000*�.\\u001c8\\u00180xK!'�1�\\u001b|�l� ����/\\u001b\\u0013؛\\u001d?*��'\\u0014XL�A��\\u0010\\\\��Rﱈ禜�o��<�\\u0015Hp2b7�3\\u0005�}��UFG\\u001b���s\\u0001\\u0005�\\u0016d��N�\\u000f�W\\u0014\\\\�;�H��ڤ��\\tҙ�A\\u0013�����w8ԯa�q�7\\u001e_\\u00169n�H\\\\+�-��ĝ4�\\u0000W8�-�\\u0012� j'���R�\\\\Y22f\\\\��\\u0014/�k\\r�OQ�\\u0019\\f\\u0010\\\\\\\"Å4\\u000b$��F\\u0006���RW�E1�\\u0007+*&h#\\u001b��\\u0015?V��V�49\\n���H\\u0016έk��\\u0000L\\u0002h2d�R�t����_���B�\\u0010��\\b\\u001a��>MY.G�\\\\\\\"ȖG\\u0000\\u0017rw!6\\u0017��m2p�ǐ�\\r\\u001fݻ�{V}q�/�h���ؖ�hv�]z�1�^&g\\fW!,1c\\u000b\\r�\\n\\f��h�\\u0006\\u0007���O$j��E��6n�����|��\\u0001�\\u0012\\u0019\\r��sٛ�N��c��\\\\%�JѶ�v�D;^��[��I��aM���\\u0003\\u001b0�Uc�\\u001b���\\u001f\\u0002n*ѢC��\\\\\\\"�b\\u0018Ou�\\u0005�\\\\\\\"��M�|���D�\\\\h\\u0005�\\u00180�\\u0000���{\\u001dz�L�f:F\\u0004\\u0012y�($��&ߦ�ֲk�)O���C�7&�zS^;����U(�Մ\\u0011s�\\u0015r\\u000b\\b\\u0001t��'���\\u0001�'+ciY:�\\u001c*��B96�Y�m\\u0003�z�����WyZ��$fĒ\\t\\u0007�\\fiNQ��\\u001be��=\\u0015ƫa�\\u0015o\\u0013\\u0006V\\\\2�Z����~��XzP\\u0005\\u0003A�:ӝ�\\fY�P�\\f.�\\u0015?�N4p䱱0#� 7�oa��vb\\n���U\\u0011��\\u0011�)m.Y\\u0006@��n���e�֌����H���fFr����\\u0014\\r\\n�\\u0000��\\u0002�˅��9\\fQ0��e����j���\\u001a�:#����U`�����>�l0�'��\\\\5`�9$���/�O8O���X�.koXNȀ��-�3�׿�I�_q>G ۱a$Z/o��F6�t�8�r�\\u0010�c;,��L��P�OΨ�fh����\\u001f��v$ԍ\\u0000�(c�?\\u0019\\u0006LY��mV=��5]��\\r\\u0007\\u0004��:����a����~_�;>_,�|�̬X�\\u0000��tQ���S\\u001d\\u001egb�;(Q�)\\u0006���-U\\u0003���7͖��v�\\u0002\\u0007�|��<hm!M�����W��\\u00010cS4��i\\u0013_�z\\u000e�ֳ3�4!��������^3\\u0018b��>*��\\u0000�/��\\u001a�Q�3:�|\\b��\\f\\u0001����\\u0003Y�VrxBQ� ���n�7E{��t�c�q�g#�1�\\u0005Or�Z��x�bi%�\\u0000p�S/�� (V�h�\\r\\t���p\\u00182��4[\\u000b[N�\\u001a���N�$\\u001d=*����d[F�\\u000e�\\u0000�\\u0013��63�I��e�\\u000fvk��'i�\\u0000���1����F\\u0005�\\u001b��#E:W2dI\\u001e\\u001e�Ф�X[��F��ٹ8늻�� ��m\\u0003\\u000b�\\u0000wʈ\\u0004\\u0003Xa\\u0013M\\\\1�\\u00038ʂP�\\u0003����kC��*A\\u0013���\\u0005�\\u000e���/�%\\u0010K���\\u000b\\u000b��\\u001do�7���j�k\\n�Q����c����f��\\u0011a\\u001cR��3G\\u0011cⶄ���u`\\u0001Zrxi�d\\u001eS�ŗE��ǎ��o>B��'a#��\\u0012AR>�\\u0001\\\\O�,��#�%\\u0016�,K1��҆\\\\Y'�\\u00128�\\u0012Ʃ�s��۩�\\u001f.)�|/ 2x���~���l\\u0005\\n\\u001b�<X�Jw��:>\\u0011��L�B�+�Q�H<j|ir��\\t�6�P�7\\u001d�\\u0018���ԓ`Abo{|:�\\\\vD�C\\f�k\\u000f���|k�7���\\u00176t�bƇs��_p\\u0005�@ӵ\\u0019m�ޕ�\\u0011�\\u0000��P�0+��&w��\\u0000����gh\\u0019��@\\u0003�@�ԑD6W\\u001d�O���xX���m+�I1��n�\\u001c�Ŀ\\u0016�cDVH\\u0019D�;\\u0001!����~��j��0��e���\\u0000\\u001c���\\u0003u_��R-���[���-��c˒Y�:P|t\\u001cG�\\u001a���1�\\u001aW��%�fu\\u001fn߸�]v�\\u0017\\u001e�g\\u0007��\\nL蓕�\\u0018ȷ��T����h?¼�̇i.JNG�7�~��y���rJ�\\u00031 �\\u0000o���|H\\u0007m\\u001b�'.R\\u001f\\u0019��\\\\g\\u0013|A�\\t�\\u0015O�Lf������\\u0011\\u0003t�֑��@�z\\u0017\\f���$�Ɠ6d7M�ܠ7�չ܌O�b��i\\u0015Uʝ\\u0005�X\\\\~U��\\u0013I��#\\u001f���*�nCuP~\\u0015E\\u0001�=&i��eLh�\\u0015���G�\\u0006���Y\\\\�9`\\\\\\\"�l��\\u0005�U\\u001a{��\\u000f��r�<s\\u001c�$i���߭�������\\\\�ʒ2�\\u0015\\u000e�\\u001bK=��\\u001d�U���x��2��n�\\u0012C[�+��(YaH����Z%ˈ�\\\\�FE\\\\��-*B�\\u000b\\u001fmQ����\\\\\\\"O�\\t$\\u0001��w�\\u0000��\\u0012�a��\\u001e�E&2�\\r���zo�\\u0012�x!1�����w\\u0014�W���֔q�n1�*>Gș\\u0011Ic\\u000b�\\u0005W���^��\\u0010��\\u0002m�P��]�eɟ\\n�v�+�n\\u0013�N��lm���u`Ӭ,�.�i���\\u001a�]�\\u001a�\\u0012\\u0006\\u0017s���փ\\\\\\u0012s\\u0014q����\\u0004k�m\\u001f�َ�?\\u001a`NT\\u0018���{�pBEu��{iqaU�Bб�\\f>�h<�\\u0010;J�P�[\\t'�p�ƈ�1\\u001cl%�MH�@;�ts!�:��sekݶ����Lf��cI��Bȅu>Ѧ�\\n\\u001b��\\u0000\\u00103�c��1��U+�U�u��Z�Z���ӫ�p�?\\u0013\\u0015�q�F��u��ԃ�]�,/\\u001el9\\u0000ę\\r\\u0013�~�/��������'j��{�\\u001d\\u0018\\u0001�ߵU\\u001f\\u001c��h�\\u001f%�f:hM�\\u0015\\u001b�8f\\\\%A#�\\\\�6\\nH�o�QEr\\u0019�H\\u000f�\\u0018uH��ȸv�?u0�Xn�6ʑ�G�\\u001cĘ�)ăzJY|�{���߯�P\\u001c�;]�M�lor�z�5G7��\\u0016G�m>'*\\u0015ƻJ���Ҝ/1\\u001c�\\u0006<�2U��\\\\\\\"\\u0002\\u001f_pۨ֯ESp\\b@��iN�|��Y�&�\\u001f'Y\\u0004�k�W<\\\\K\\u0004\\u0007\\b\\u0015i#/�\\u001an7:��P\\u000b�,�\\\\\\\"���Ƃ�[s{��?δ<\\\\�DK.fr�5��)��.�PQ޳��뇟�����ǐ�y\\u0001.���\\u00176&�\\u0010�H\\\\\\\"y�vX\\u001c��r3�[�ȟհ��_�W�\\u001f�(٨��\\u00185����r\\u0017\\u000f\\u0016L�P�^�5�X~5[���\\fS�\\u000e9$HvZ�)�I�C\\\\f\\u0012�l{�@�k�\\u0003�7�j��\\u0000+A\\u001f%�{�T\\f��v�8��|NIr\\u001a\\u0007A\\u0002\\f{�ȳ8ً�e���7�hH��\\u001e�\\u0013\\r��uH�R)��4��kz�\\\\dxQ�\\u0011.\\\\\\\"��������\\u0000�-ŒBebXRI�\\u001e�օ,ɠ�\\u00035�����T�� u\\\\-����#Z+6d�!^h_�`�m\\\\\\\"\\u001b�c�\\u001a}V�|l89\\u0011$�\\u0016\\u0010�@A�����\\u00183A��I f\\u001b�\\n���m\\u001a\\\\�����\\u0005|('q\\u0019�Q��m���\\u0000�3R\\u000e�G���\\\\\\\"HQ��lgK�C\\u0010uVܙ�\\u000e~\\u0000�\\u0002A��吟\\u0016�k�w�^�$PK�����ʈ\\u0014g'� �:�h����i�\\u0013/�\\u0011K\\bA-�߽�C��\\u00198ɒB�5���k��\\b\\u0002�,�]�\\u001b�ޙ�;����Ǌ֔ j���s�\\u001c��c��K\\u0004�\\u0004����i\\\\rxY\\u000e��1�\\u0012�HU �۵�>���e�Q��)�,R�g�Ap��Ăo�Uy\\\\�D�E���ek���u��b*��H6���Ƈ\\u001eg/��k�1ym;l\\u0006�k�q�L�^,���\\u0001\\u001bʍ���t��#���X�C$����冻�A�\\u0000*�de�\\f�(y��\\r�*��������|\\t32d��\\u0014\\u0011\\u0012���\\r�\\u0000o�oQn��[�oTHb�ք\\u0019$.!\\u0001��i�\\u001b$�ǌ�\\u0013\\u0018w>D\\fB��m�\\\\\\\"��\\u0010��ee$�����\\u000e��f\\u000b+ü��0\\u0006���@??�\\u0007���bu�UD*�b\\u0000@�E��Ui+\\u0004κS�.\\u0017Ϯ>�m:����\\u0007B\\b�ƃ���\\n�\\u000e[�cup�oȵ+���\\u000ed\\u0011G.L�H\\t ,v\\u0004\\u0013�`/J��\\u001b��E\\n\\u000e�\\u0017]uh\\u0007�\\u0002�J�*S*T�R�J�*T�R�J�*T�R�J�+I��d�$.�3+\\\\\\\"�@��R,�h��F\\u0016*�\\u0011Z\\u001cL�\\u0006\\u001c*$ \\b�\\u0000\\r�V=�fL�ܖ&��\\tR�\\u0017}i��@\\u0005�;N�\\u0003?Y�g�\\u000e/\\u0000�\\u001cɗ�4��tDSoo��י\\u0010��l��ܪt>���\\u0007��8�\\u0011��\\u0001�OƮ��<�ۋ5�?��)2yW\\u001f�k��|X������\\u001e��GO�RD7���W>D�VS{X�\\u0005���sk~�k7{�N.~&���\\u0003PX�\\u0016:ziR�t�p�g�߰+\\u0015\\u0016!�\\u0003[������r'\\u001e�U�d�\\r���V���\\u0018�ɻ\\u0006[\\u0010-�\\u001f�g��L2ya'�\\fH5�iLEޱ[|\\u001d2�\\t�L�\\u001azQx�ϸ=�6�\\u000e��44ۏ�\\bX�����k\\u001b[�/���S��H�A���a�ӕ�$e������b�2\\u000e��*8ULE�a^L=��n�}ᇭ�jU���q��\\u0014d�@�[�2����\\f�)xq6GU\\u001ak��)p�\\u000e\\u0017).F!�\\u000b�J��C݇��ֻ\\u0016n;?\\b�\\u001eD^i!o\\fs\\u001d�7#�_�k�4��I\\u0014e��\\bP\\t�ziAq���\\\\\\b�Yt�e�N�Ei'�^o\\u0017\\u001f\\u0002�ΛZY��#\\u0005 �a��)|<�?1q�x�\\u0014;d���W��n���nJ\\\\!�P��2\\u0010B\\u0002��\\u001f�)�i��q�7Icp�щ�ڢ�>�J/�9!��\\u0004\\u000f�\\\\\\\"��|�#�Is\\f�&���s}(�[-\\u000e4h���ݧ�S�\\u0000\\u001a�\\t�\\u0011L5\\u0012�0U���\\\\\\\"�D_�d�\\u000f\\u001bpD��\\u000b��zt$w�]�\\nd\\u0013��2��/�}�\\\\\\\"N��V��#ÍQ6�P�a��\\\\�5ԭ\\u001aF�\\u001d�\\u0005�t���S\\fd{AQe�ҁƆl�ˍ�eE�}��\\u0016a�^�ޕ�b\\u0005ݝ�+��s�;I\\u001aH��+}ǹ�Rɦ�*\\u0018cYJ�e�G��\\u0007S�&��fb%Cb�b�?K\\u001b�\\u001f�\\u0005�`�71㜝�#([���_�T5Z��8��e[��da�8��4/\\u001f$q�'��F[~7��a^\\u0014!\\u0018\\rA\\f\\u000e�bz���X����u��\\u0002{�6�L$�|WB�&c��E�T\\u0010Ě�Z����'}4�pK��\\u0012�g�+�,��w\\u0000\\t+܋\\u001a�\\u0010r\\u001c��Dێ\\u0000\\u0006PlG鶿P\\u0015�����\\u00193<��pn\\u001f�Ё�v�\\u0012r�c�e�\\u0019� ��k�\\u0017��R$�\\u0007�M#\\u001e4��IVu1s7\\b��\\u001a��v�����qC˔͛&CY^�\\t=�?�֯�=�!�\\u001c��\\u001e-�M���\\u0002��\\u0014Ú��̙Ĉ�\\u0014����m�{�/z\\\\\\\"��#z\\fx\\u0010��\\\\\\u0014�s\\u001c8�R\\u000eC?+\\\\\\\"UǅeU\\fE���$�\\u0000�z\\u0007\\u0017'n[͒\\u0019܂\\b���S����\\u001c�FC9/g\\u001e���I�)D�\\u001b�'I\\u0016α+\\u0015\\u0004\\r�6��sh\\u00104�J�<�o�8`4�-=f�\\t>�n\\u0016<s�&g��v��}Eש�aE���9�J��T���G��Gq�\\u0004X\\r�ױ��'�\\u0003�\\u0012d�\\u0005���\\u0015RV�K�]([(FY���M�<D�S�-r�\\u0017P�u�v�(99\\u0019>�Eh�D��\\u000e�sh5\\u0007�\\u0000ZS���3�}��E\\u0000\\u000f�޸�\\u001c\\u001e0\\u0005\\u000bw�\\b\\u000e��{t\\u001f3C+ʱ�\\u0011�\\u0000l���ڝ��7���fTd��M��\\\\\\\"\\u000fN��mVŞ�L�Z+\\u0012o+\\u0001�iՉ�\\u0015�\\\\\\\"\\u0003b{�v�\\u0003���oT�\\u00036@�e��\\u001b\\u0016�\\u0016\\u001d�\\u0000:�6Ux� F�B̽����R�5����\\u0000�\\u0012i����b���\\u0017e<�F�\\u0000ʩ�$�X�y\\b�M�(\\u001d�\\u001a��\\\\`�\\u0003��P\\u001c��\\r\\t=�|9Y\\u0018��fU��������)�\\u0011�(3<�ĵ�\\u000f��k�J�Η�\\u0006bŖ-c+��%��'�䣄]�q�(��\\\\n?6��\\u000f����!�\\\\\\\"g\\u000b��t=�\\\\\\\"�I�e��̓0VKH]G�6\\t`{��N�is�\\u001c�c�,�B\\u0006�K��ٖ='�t0x�3�X1d&�@rX`�GA��c�6\\u0001�\\u0016#�!{���\\u0016��ڕI�*�˒��F�sp=/Dr��C\\u0012d�-��v\\u001e��n�����\\u001c���l�y��H�]{-�\\n�2]�&��\\u0000�SYQ|L~6ud��~� ʧ�:��M��<\\u001e\\u001a9��dL�IO�V��je��c\\\\V\\f�)�\\u000fM����q��x��K�\\u0005V F㩰\\u0002��9��BF�c��6%Ddj����^�аWv\\n\\u000f��s�2fl��ݟ\\u0015�>\\fY��\\u000f!Wrq�1�\\u0011�Z႖:�?O�I�q\\fG|\\n\\u0014�n����T�Yq�\\u001ar�'M�A���\\u0003[z^�I�X��*\\u000f_�В(�-q0c�y\\u0007��q�\\u0016�7�����\\u0015�D�$[��7�\\u0011aʼ���'�k��MD��v�-z��)\\u000bd�\\u000f�Y\\u000e��u]4�T\\u0018He~\\rZ<�9sx�q\\u0000Kb+� w���\\t\\u0010$v\\u000f�\\u0003\\u001bi}E��Ƈ\\u0000�̳��cA�O����^��\\u000enr��wI\\u0012��_@t\\u001bh^[\\f�a\\u0016�Ί��{�K|��\\u0019\\u000e��\\u0011�Y�5�����m����:]�v\\u0012�\\u001d���\\u0003N�\\u0006.v6D(�\\u0013!��2\\u0006 \\u001b��C�&���؀I\\u0003�\\u001d�W�N\\\\\\b�f\\u000e}�jis\\\\\\\"h��x�`�\\u0010�t��_B�>\\u001ci ��1�\\u001c��\\u001d4 /Z#��1'�(p�G�7k�����Ӿ�V\\u0017�3�#�?���A&��)��\\u0017&9�,�\\u0015��u�\\u000f�\\u0014\\r\\u001aOҗj���\\u0019��u)n<D\\n1�r�>מ��`$&�|�zW\\u000f�\\u0011d�fac̉��\\u0019uf.:m�kU6\\u0014Y7��Q^����(��<�\\u0000�^�>\\u0015q���J?\\u001f6\\fw�Vk�6���w���r9p��bLT96�\\b\\u0004��#�f��tȱ|t\\u001e\\u001b�V}\\\\��Ud���cX\\u000f���*��\\r{���]aF�,ٳ*B��X׸T�\\u0013r\\\\F��O�����\\u0019\\u0014�\\u001b�\\u0002�˞��X�<��T��\\u0010\\b>����ƺ�g�c\\u0005�\\u0017\\u001bߠ\\u0007��ϖ�[\\u00112�\\u0006(@�?��u��x8��`�H�#sw\\u0016�\\\\\\u0003o�\\u0010Qq�\\u001c���91\\u0003�P�]��M ��*�\\u0000VQ��q�zҩ�\\u0013�� ��7��\\u0017'q��\\u0014d\\\\>\\u0014��\\t�a0�$��tf;�\\u0010�:��\\r�q8�s\\u000bO#��7\\u0010��A:n�C\\u0013t�����c��-wgbX�קh<\\u0007*M7)�'!��\\u0005�\\u0003�\\u0014Z��,/�����3B?�I6\\u0011V�7��=\\u0018)\\u0007�$��cl�����\\u001b\\u0015J�����U���ď�ȫ2H�{\\u0003�N��FT\\\\\\\":��cZ0�\\t�n���\\b��@���w�&+�(��!�\\t���^bO\\u0014\\u0010�\\u0006\\u00123{�t]�X\\u001f��$���wn9\\u0017���>G�5�\\u0006\\u0004F\\u0000�)�/��H\\tqk\\u000f�u�\\u0005n�S\\u0003��K�q��vb�\\u0011���\\n\\u0003\\u001aV|��\\\\\\\"��#n\\r��|+����h`���f\\u0007OE�������\\u0002Bn�G.�B.T��Z'/\\n\\f��H�eX�\\u0015�\\u0012�;B�%�imN��m�ߞ�g*��JuȺ�\\u0002Ws�4���\\u001c�ͶHB�\\u0019�����Zs'�\\u000f\\u001eD�\\u00122�c\\f=����\\\\\\\"��6\\u001b�a�K��1��\\\\ \\u0016\\u0017b\\u0014h@�����p$ޒJ��\\u0016�\\u0018��\\u001e���pc!]�w�]DpyYXf��p\\bNc��$��/�\\u0001b��]��\\u001e��9�S\\u0005r^)�WFm�I)�uQ��k�&A2Hc$\\u0011#\\u0012��i�p��e�2E`�.T\\u001d\\u001c���P\\u0013\\u0004i������eS\\u001e�LD\\u0019��?#��8#\\u000bo��\\\\\\\"�p\\u001au_�e�KD�\\u0006���\\u001e��M�l�\\u0004�2\\u0006۩\\b��ƅ~'ǌ҆�J���N�v�\\u0000Έ� p�bn�G\\u0019\\u001bR��\\u001b\\u001b�i�Yy�aa�b�p��m�ʊ��n޺U���r\\u0018$~D��0\\u0017��n:A&$\\u0013D�@An�=�\\u0000�q���������Y\\u0002\\\\\\\"���ѯ�@V�!�\\u0005��?O\\n�|�l�ȉ\\u0018\\u0002j�\\u001a�1\\u0007��_����̍\\u001c�BU@\\u0016Wk�\\u0003o�����\\u0015\\u001d%�\\u0019\\u001c�Ee����w����9\\u0018\\u001c�\\u0002$r\\u0015=[s\\u0015\\u0007�P<��3\\t\\b%M���P)�1(R��\\\\\\\"1\\u0017ni�[����\\u0001��\\r�H2�tX<\\b���dH@ia\\u000e�sA&�}�\\u000e�S�p��\\u0011,~XsW�#���z����]`���I+��Ah���_�\\u0016=,(,�W\\ni\\b��Jl����\\u0000�U�h��<�6��䷒.\\u0019�*c\\u0012\\u0018l���S��c姗&PɎ\\u0018Z;Y��\\u0013{��k�\\b�xb�<��U�4�����t.O'��axdRl�؛�&��\\u0014<\\u0013̢\\t�����\\u0001H���Ac\\u0017\\u0010n�ڦs�m\\\\PU�\\u001e2��F���L9��\\\\O��\\u0010qŶ\\u0001`T���\\u0003\\u0007+�� �\\u0016&b�\\\\\\\"Ƞ{n,\\u001a�ADr�%D��V䓦��֮�ȗ\\u001b\\u0000�x��\\u0005U1�*\\u000e��������t,5�.v>?��dQ�c��\\u0018s�\\r\\u0013�\\u001aA�qRp��\\u0010�M�\\u0003��}\\u001bOOJ�\\u001cز�ს��_��k{�5\\u0006ա�\\u0013�����D�#\\u001f�䅈�#\\u0011q&���H����?<�\\t\\u0002\\u0006�5�(\\u0006@�cP�0d������\\u0017\\u001e��[u�XY\\u0019\\u0006\\u0019\\u0006�$U\\u0010!a�����ڼ���Yٟ�e\\\\\\\"���&��-U�c\\u001f�q�\\u0019�I��n%�)P:��y�f24�R\\u0000�\\u001e�K�F��<8�Rw�\\u001eB�\\u000e\\\\0?\\u00153�@\\u0016�q�\\\\�|�_\\u0006�\\u001b-\\u001b�I\\u001bl�:�Ԏ�����n~C�'$\\u0001#�`\\\\\\\"�R�TYw|H�\\\\�ll�\\u0004�{��o~��\\u0006>9�ʗ\\u0011��\\u0018�rI���J��d�2\\u0012\\u000e2�u�i�������8�����T�<M�ם0�\\u001c�q\\u0012`|S\\u0015,J\\u0013uoJ\\u000f��>V�' \\u0007g(�2�\\u0001`>\\u001a����Ǔ4b@L���m�m���9a\\\\\\\"@��U��k���\\u0001'�Bӏ\\u0019`\\u0004&�\\u000f����|�i:�\\u0003����H%�u��d\\u0017�&�#ɹT\\u000e�m�����\\u001f0C\\fbVv\\u0017\\u001d�\\u0007]ݩ��%xd+i \\u001eݿ\\u0011�m)L���c�c�Ǩ�OiSڏ.\\fh�u����_�G�6f-e��-�@�6��V�')�\\nE(1P��\\u0012I.n߀��\\u0000g��\\u000b\\u0018\\u0012JM����\\u001dnh�/��i2\\u0007$ˏ3�\\u0016*�\\u0019@:�˛ހ����΅���\\u0012]��)��\\u000b��(\\u0017A����ңb�/%BIƢ9�A<��s.c��)�#\\t\\u00160n�o�=~T\\u001c��7)�c��)\\u0016�Z��\\u0007���y9Qe8h�p�n�{h~\\u0002���5�u��\\n�\\u00107+\\u000e���a`Bƺjh\\u0019�\\u0007\\r�\\u0016R��u`\\t����չ�\\u0010�٢Y\\r�������{�\\u000bP��YXxg+\\u0013 oːB�\\u0016 \\u000fw]z�(L\\u001clx��fx�%�\\u0003m�R>��\\r>⢏�����Ĝ|�1�-�<��\\u0000�����-\\u001d_�LƖ��\\u0016�U\\u0013rh̺\\t��@c͒2`��\\b��i\\r����\\u0007��z�/\\u0010fl)g9��.�\\f�\\u0015����ҁLI\\u0007-��#G%�\\u0002=�r7o�QBq�a�2rq�&\\u0007�nr�V۴P��P�����<?�ű��Vlx\\u0002c��t��N滟�(�\\u0016��=����\\\\\\fܸ��q�G�׸7R��i\\u001d:�99�@�\\f��f��v-`̞�g��*q���E�w\\u0012\\u001f�,��\\u0001��Qd%��Lδ\\u001e><8����X�����\\t۝]���$��\\u0014�\\ro�\\\\���j�%�@!�i�̥�%C�S����<����;�wǒ�c�^�\\u0000\\u0003W�em\\\\�\\u0014��\\u0012�Գn�(�¡}-\\u0004���\\u000e<\\u0005�)eH(����@\\u0007���\\f�|[\\u001clI��w\\u0000�q�Z���n)#�)\\u0011��\\u0002#���\\u000fi+��Q�I���\\u0005�e\\f��dBGc���ycǄ���u���C\\u001d\\u0005�2HP�F���l8��߼ \\u0010/\\u001f�Y��M�\\u001f�{\\u0004R,6�Eof4Dx�P���S��yK�\\n�nV�p\\u001d\\u0005\\u00196.>j�a��e(\\u0000\\\\\\\"�#��\\b�\\u0000��Y��`�ͦ����A��>;E��1�U��O\\u001f.,�\\u0001��\\u000fE�h�ͼ��9\\u0011<<~R�Ȍ't0\\u0010u�7�\\u0007�\\n�\\bd\\f�fU\\r���k�h���5�^b���ظ��2�Uٍ��\\u0010,5�j�8�19h�\\u0019�ʹ�\\u0005}�mn��Q�F5b�\\u0001\\u001b���W!�#(��ؑ���\\u001f\\nL�8Ǎ\\t��\\r��J_>D��/��˷��̈\\u0011�F�QNq፳'�M��e��\\u000b)\\u001a���C���e�N�\\b�\\u0013�,��I`X\\u0012>u\\u001bKO�)>6K�&0-Uę\\u0016���\\u0013�$ҎZ7�8��e7=l?\\u001d�����kĤx���ıs:�\\u0016���/Hj9%�?y��a,q��㮵*T�CL�R�J�*T�R�J�*T�R�J�*T�14�$�K\\n\\n{���oL!\\u0003��K�?�Γ���܄�&�q��%'տƘ��)�`,eP�;��Y�,�\\u0007���\\u0016�?��+A������طc�\\r����\\u0004�)䘅0t�V\\\\Ar�eR�������O��\\u0017VB���z�޺����\\u0000ƽy\\u001aR]��֦�RKu\\u001d)�k�}���\\u00124\\u0002��\\u0000.���\\u0019�;�\\r�w���8�*�8�7\\u000b\\u0012\\u001b^���\\u0014�\\u001fJ\\u001d=oR��[�\\u0002���e�F�ǽ�g��\\u0013�\\u0011�\\t/\\u001aX��޴0�d,���=�w��?\\\\\\\"�,�\\u0001`�\\u0019��ޔ�y��\\u000bNx��ի����c�X��P\\u0002m�5���މ*#FY�~����O�h�\\u001b��\\u0013�\\\\\\\"(�\\u0015�c�)^��W\\n����۪��\\u0003�^�\\u0000��O�`VIk�s�T�DgTF\\u0004����`���w���\\fO�˚5�\\u0011���p?Ό����%>\\u0005ЂH#K趯9�I%�H\\u0017���Hc�\\u0014\\u000f\\u00135�3��\\u0000+\\u0018R`�ͧ\\t���\\u0013&�P{���.Fy�LY\\u0018\\u0004�\\u000bh.v�=�j���B�G�[i�\\r� I,��?\\nY��\\u0005�Xj�S#���n!N�5�_J�V�60�\\u0000��ׁWm�\\u0006ˠ\\nt>��|l�\\u0018�R��\\u000eD�ո7U�6m~u\\u0004�8p5�)\\n\\u0003\\u000e���]��V`�����h��/�\\u001eI\\u0001����bW[^��*�a�e㲷�\\u0000\\\\\\\"\\u0010ON���K�V@\\u001d\\n�0�_���A�̪Xq߅|�\\u000ec.\\fw�C��\\u0018�K��N?�\\\\�JN��nO�+Y�o��2c���w�)��P���*�ֶy�\\u0001����1!��)�vd|lѴQ+M��\\\\t�\\u001d\\r���b\\u0012٫�'xYn���]�[hn*e����܍�hM�_��ګ�\\u000e�\\\\\\\"�Ё�kLQ��z\\u0000��)�QnC���Kr��)\\f�H79�\\u0012v������\\t�H�Бb>\\u0006�o�\\nx�\\u0011��O�7�@�>>��p�@�Y����p���#QL˙Y@ȧ\\u001b���P�xr�\\u0017ܯ�8Ř��^«��)p�\\u000b\\u0019L�n��:߭�F�}��\\u0019Y�R5�G��LXO�\\b�Ɨ�\\u00136� ����}*��\\u0007��*�#\\u001cM�7o$(a�j?�L��ID8��\\u0017�\\u0014]e\\u001e���\\u001d�k=�deE�dGp�\\u001b�џe��i��1YU���\\u0019N��r\\u000b[�O�Bepr�A$�(�4��\\r\\bm@c�T�N�~\\n�\\u0007VMn,I�u�j�' \\u001e5^C��.},M*�s��6FF�\\u0014�UO@�7[�h\\u001cT�\\\\\\\"u}��\\u001f\\\\\\\"�:i���\\\\(3\\u0004�Ffdoa���ҧ/J��0�#$��\\u001a�8N�Z\\f.Q�\\\\\\\"t�\\u0014�M�Rt`O��\\u000fQJX�\\n\\u0006\\u000beݭ���\\u0000��2C�R��| �K\\u0012\\b\\u0017\\u001a�����+�5\\u001dnMS�`A\\u001e��\\u0013>p���T+h\\u0017�Ӯ��]�g��\\u0011E����6�.\\r���]@R���\\u0001u�\\u0000\\n\\u0017\\u0010 H��%uje��@�\\u0000/��\\n;@\\u0000,�\\u0004�:\\f�Р���w\\u0016;א��u�ߡ�H�E�\\u0016Dr�h\\u00196\\u0007^��*�\\u0000�y��d�\\u0013\\u0014\\u0003��qQԧS�����Ö\\f��\\u0003�\\u000fM\\u0018\\u001d/Q����L�T���WRT\\t��S\\u0004ᡛ�\\r�Γ�\\u0018m�����m��x���3%��C5�\\u0016\\u001bO��-�ݿI��L�ώh�Ha(�\\u0014`\\u0001{Z�f۝3�\\\\\\\"I�'Op\\n�\\u0005��D\\t;�E���C�Lkp��h3�\\u001e�\\u0017\\u001d�����\\f����cn�&�\\u0014|\\u0001�\\u00192cbdI�\\\\\\\"\\u0016PSȩ�>�k_�Γ�:�X�$gȺ�\\u000f{\\u000b�)�\\bg��\\u0012Ѳ�����\\u001a�0��5o�&,���fB뭼\\u000e�_X�!���\\f�g�2A�\\u001a�B�b\\u0014]�n-�R�L�D7�f\\u0004*�\\u0001���O�\\u0002G\\u0012&��\\\\\\\"�m!P����\\\\��FB��\\t���l\\u001d�?�?m�\\u000e��S2���r1r\\u0005�N�ۄ�O(}�\\\\�\\b\\u000b{\\\\\\u000b\\u0000@����Th�\\b�;F�\\u0018\\u0012?V����^N\\u000b�����W��Q\\u000e\\u0000��)p�܌��\\u0001\\u0015�p\\u0005��@��ڣi,D�w��L�.+\\u0016\\u00032Z��~�u�$\\t�Ls��m-��u\\u0004��J!ߐ�)�\\\\\\\"\\u0014;M�;��֛�~��\\u000eR��v��_q����F���X\\u001f/�&\\u001e0K\\u0012�ɡ�^�Ҫ�\\\\\\\"!��\\u0014�VET�\\u000e#\\u0004� \\u0000\\u0006�\\u000f�EC\\u0019�\\b����\\u000b}'O�18��|^Vy��4ꎞ K.��ָ\\u0007�9�$�ŋ\\u001c�ά�\\u0010.Sݸ�\\u0001>�����,r�6�\\\\�\\u0018]J��\\u001fU�;ܪx\\u0003���Ǘ\\u0003����6�e\\\\\\\"E�I�\\u0018�NRb\\u0006�\\u0012�=T�Z�aę\\u0019%�\\u0015�?�2F��K��8!�/�\\u001f��!@љ\\b�۸&����2s�<\\u0019P\\u0012\\u0011�Hf�ꬒ\\u001f��2��\\\\\\\"\\\\\\\"5��\\u001d���M���3]ɇ\\u001e,rf�}��:��)o����*�RE�p��\\u0003\\\\�h�\\u001bw\\\\\\\"�\\u0019�Q�\\u0004nY�bAP\\r�{V\\u0017 �9\\u0013eE��&4E�\\u000b��\\u001e��}j��W�r��\\u0003�.�E���>\\r���\\u001a\\f��Xc��\\u0018��z-�����jq�\\u0010e(���\\\\\\\"�:u����u�x����\\u0015\\u001e��\\u0011���\\u001f!��3{\\\\Zċ���(q�T\\u000b&��l�G��\\u0014\\u0005\\u001d r\\n\\u000e�e4�8q�cteh_�\\u0016Њ\\u0003\\u000b�Hw\\r��i\\u0019�\\u00017\\u000b�SkR�W5��h�\\u0003��ܠ�c}jC,��@� i�����\\u0007��|p��dж�T��_�[�f�Q\\bS�fvf&�^׵\\u0019�7�q�G�e���r���H�9iV�\\u001d�����i�\\u0015\\u001eW��U���N�E�t�����ˏ\\u001a�P�ҍ �$�Y�39d���e���p����\\u001f���sI\\u0017�)�Y��]ll?H�\\u0015�5�>V><F3\\u001c�*�6\\u001bP�o�o\\u001ckqy_rwM��u��f���Cq\\u0012F�X��\\u0018��\\u001eW%��$Z*\\\\�\\\\\\u0019�q��rv�%���½�ɑ�~\\\\��!#v\\u0017��j�\\u000e5��\\\\��a\\u0011\\u0017\\r}X\\u000e�\\u0015����,m �\\u0012�#=��\\u0000�U�\\u001a�VN˹Ɛ\\u0018�9���M�`�*\\u0012\\u000b�!\\u0010�ө\\u001f\\ri7(&�\\u0004HX�e�\\u0003:�j\\\\�?�L|9p�u)$y\\u0010�\\u0011\\rs�P�^�^���R~�\\\\\\\"�Xd:��4!_��\\u000f{\\n��\\\\\\u0001�U�||�\\b8�\\f�Y����\\u0000�LN\\\\\\\"�\\u0006Y\\u001c\\u0014\\u001e�\\u0016\\u0000�j�Z�A��\\u0014c�3,��D{���n\\u0017p�\\u0019�,�\\u0017��ݏ��C�\\\\�\\u0003E\\u0006���\\u000e\\u0004\\u0013fl�Y\\u001a=C\\u001e�]\\u0001\\u0014],�\\t\\u000e\\u0018mʴc�`�{��\\f���B�����WC&LQ̒�_&�/�\\u0002��h,\\t�L���\\u0000h�C\\u000b�kpk�1�\\u001c���re\\u0011�b�\\b��/mj�8����`T�qa��\\u0016�A\\u0014\\b]\\u0019�zKH\\u0007�i˓�tǀZ�F8wO�\\u000e�\\u001c�*�[���^\\u001cts��\\n\\u0007��\\u000e��7+�\\u00123F7�*��u%�����*T�/�\\\\\\\"��\\u0011����@\\u0000ӵQ���\\u0001�\\u001fz�\\u0013\\u0012�\\u0007�m6\\u00166����7���4����\\\\mj+u�s&\\u0017��\\u0010D �H%$\\u001b\\u000b����;gK\\nű�S�\\n/��\\u0000\\u001a��9BD�.h��\\f��Hܬ��j�[�4�;\\u001f\\u0017�'0��q� '*F[\\u001e��ڧ��U�\\u0000\\u001aa�w���ڦ�\\u0001\\u000f=�\\u001d�VIcˈ\\u0005��͔~�ǰ\\u0015|��Ʀ'�\\u0003uW=~\\u0017�\\u001eg\\u0015��~hs\\u001fnf\\u001cN\\u000b ;$+oq�o҆���������U\\u0003n�\\u0010T�\\u0000���*�\\\\�\\u0013\\u0011�^c�,�Wm\\u000b\\u0006]n���\\u0005��\\\\���Lm���w����\\u0007A]p܄#&x���f}�@}�\\u001a*�Kz׊x����-4��&��K\\u0012��Y'\\u0003&,�p�$�\\\\\\\"��.�A��Pb5�\\u0005��q�yP{m�\\u0000L�\\r?dU�����O�f\\t\\u001b!\\u0000�Y��3q\\u000esB����p�o�\\bt-�>�cq�\\u001f}\\u000bl;e�G?I\\n:\\u0013�\\u000f�1`[^�n��e\\u0007�j�1\\r6���Iɓ�e\\u0018�\\u000f�\\u0005�ɞ?�'��1\\u0016)\\u0015%r�O�u�@���x�\\u0018��\\u0006E�Y�w%��G���{������Hm'�\\u001e�N�\\u001f���\\u0017\\u000ey�\\u0016\\u0019\\b�\\u0017\\u0016 [w�OZ�\\u0019�Ip&���ŅY򛙔�o���w��?�\\u0017���٤.t\\n\\u0018�w�J\\n\\\\�h�\\u00181��\\\\\\\"��w'so=��E�\\t�!�a���&f\\u00067\\u001f_ӥ�Z(�p��>>\\u001bB\\u001f�R�?%��o���-qn�֪�[M�\\r���\\u0003\\u0003��61|���\\u000e�xւ�\\u0007ʋ\\u0011��f��kYG�h�h�p�2�\\u0005&;\\u0013`u.��Q�5��a���3L�c`K\\u0006�\\u0001��-���ǈD\\u0019\\u000b#�\\u0016Pu����P��ߔ/J���E\\u0018<u�o��\\u0000u�H�\\u001c��\\r�\\u0013<�V�\\u0015\\u0017���n�9\\r�\\u0012�4,w\\u0013�YiG!�&C�,$�\\\\\\\"\\u0002X��~\\u0007�0t�A���_!U$2\\u001d\\u0013ۻ��\\\\���8��H3��g��?&0�u\\u001dH\\\\\\\"\\t��&��'/���o&6Q!�k�OV(;_��x��$����V'���O8�0�2_l\\u001b^\\u001f�Tu��O�V�1��\\u0016FR�(\\u0002�Z��\\\\0�]�\\u0018��\\n�;�-�\\u0016m7��)nC�#\\u0006NDʥ\\u0019\\u0001bzXP<o�^ycpRF\\u0017ﮤ�\\u0000�L���Bc&�m���i��\\u000f�[�\\th�W\\u0006K\\\\0��`i\\u0019\\u0000b��A\\u001eƵ\\u00158|Dʆ�p�y�\\u0013��B�a͏9ɊC�\\\\\\\"/��{�\\u0000J������FK2A\\\\\\\"�$�\\n�?���V�q�\\\\\\\"H�c�UC{~���*I#�\\t��\\u0016-K\\u0003`,\\u000f�4�������#�W,#4�X����Zx�p2\\u0005;,�٧��ޓ�|��\\u0010�\\t�*I-�]/�\\u0003�ފ�u�\\u0012T��\\u0014�\\u0005�f�m~����>틇\\f�1��t>���)Ict����p���O�\\u00180+�\\n���Ya\\u001c�b��8b(|y�\\u0019�a��Ŵ�׽��8���I�\\u0000���OQ���\\u0019#��%\\u0011���\\u0003��r�\\u0018\\u0001\\\\?\\u001b�ZC\\t�\\n(�\\u0012\\b���+SY.[d\\u000b�{A޴x~W��3+\\u0012\\u0017\\\\\\\"@/�{�i�댖~QqR\\u0015�2�YT�N��\\u0000�����0�LAc\\u001e�e\\u001b{mb\\u0001��\\u0014�\\u000e,��d����7E\\u001e�X�t��9C��x&\\u001e\\u0015\\u0003V\\u001a��\\u001d�\\u001a<���f�y�aY|�\\b��:\\u0010ȟ\\u0016��f�1�k�\\u0011����^\\u0019\\u0003�$d$*�YA��=�\\nU\\nd��I���D��/�����֧��\\u00069\\u000e\\u000e\\u0019��-){�\\u001d���w$j((��/7>\\u000bi&*kmC\\t,F��{җV�!xS�\\u0017ņ�\\u000eKn��\\u0000,r���~n��rd�; ���k\\rE�\\\\�)Ǟx�h�h�n񭜀\\t���\\u001c�\\u0004�\\u0019�>0Sb\\u0013�@U\\u0016:\\u001bw��\\u0015|G�;\\u0018\\u0003\\u001a�ľ0F��$u�\\u0017\\u0003\\nF�\\u001bozVW��Q�\\u0010��\\u0000�!]��\\u0000Z�xV��ЙՋ��qƷ������\\u0013��,�\\\\\\\"�,��L��\\b�]ȶ!�\\u001a���񣉚\\u0016-\\\\\\\"���b\\u0000�C�R�nVVg�DR�5؋�l\\u0000��z�,\\u0001���\\u0005h����eee'��n�&>�.y,��nv+aK���9F��F���p1s3\\u001f\\u001726W�%�F\\u000f�[���^�Ƽ�|�I �5�IA�5����Ǌ�\\u0018_�0c\\fW\\u001a34���AP�_\\u001dj\\u0003�1i;��}jdP��3�c�XD���<N�73\\u0006L�j�M��.R��~��\\u0019�'\\u001f��\\f\\u0013��\\u0003o��������K���R�\\nG-�`\\r�9;�X\\u0013���\\u001e\\u001d�G�3\\u0012Ki{��QĬ�1g�u&k?x�\\u0007\\u0018H+�\\u0018\\u0011�Ýu��+#&\\u0018f\\r\\u00163�I#\\rw\\u001e�t8�ϖ�.|�\\u001e�\\u001b�4��]io\\fҼ�R�d�X�M\\\\\\\"q�k��4n\\u001eW�=1��\\u0013o.G��Aoi�(��=@\\u0001��9�\\u001b�\\u0016\\u001c#�?�,�~Cn#�1��RH h\\u000b%��kc�Q��!\\u0003ƭ,`�����})~O���<�;�Um�(\\u000e/��։��1\\fx����[dJ\\u0014}D��=*ưH��V|��1�C�\\u0004MU\\u001b��8p�y\\u001c�\\u000eYXdR�Bȶ���_�1��/&U����v\\\\\\\"ok\\u0003k���ŖIRX1#s\\b`�\\u0016�a��D�G&&L�xd��D�$����l-n�%]�\\u0010mU\\u001fo\\t���\\u001e\\fip\\u0019ِ\\u0007^\\u001c:X����g�|~C\\u001e,q�X�\\u0016\\\\\\\"�P\\u0007Z�և�F~^BcŐ\\u0018\\u0001���F�|�Y�\\u0010`��\\u0007\\u001bc\\u0007\\u0012v��-J�*USjT�R�J�*T�R�J�*T�R�J�+K���M�\\f�\\\\\\\"�tV\\u0000���E�\\t�2hXܣ\\u0015'�O�y\\f�Å\\u0012R���\\u0001n��ye�ϐ��;�~t�ld���\\u001b�\\b�夶w���� �\\u001e�r�\\u0017\\u0017�v6s�v�i�\\u00013Ó&;!(����\\u0015�\\u001b�,\\t�Ψ�Fǔ2\\u001f�l�𧑤�\\u0015��*63�ƞ���\\u001dGC^!�\\u0011mt�-��<\\u0015�Uy|l\\t\\f������F�(��\\u0017c�\\u0005��\\u0000J k��]X�V܁\\\\\\\"&+�D�α\\u0019\\u001a2��S�H�y\\f�\\t��I��t&�V�\\u0000>����r2�c�g\\u001d|��1ۻiHsă2a*��9ܠ�\\u000f��b F���0�\\t�T���6�y�g��ȓ��\\u0010�+3ܻZ��E��J�@\\u0015\\u000b�I����_\\u0013�OƇ�o�\\u0006\\u0004���k�F\\u0007�h,����i�m�9��\\u0000��\\n\\nf\\u001f\\u0019��|�,3o�\\u0000/OJ�\\u0017\\u0019�\\u0016O\\u0015�#>�cT;N�@6[�Eh���K�\\u0005P>�\\u0007�$��\\u0000\\u001a��\\u0000\\u0017y\\u001f<�\\u0007ڳ#X\\u0013��\\u0017��zտ\\u0015�\\u0001x�\\u0012m\\u001d\\u0001��)�Hή�\\u0019m.\\u000e��ל�%��ǆ��!t\\u0006B���}������|��&��Y�+�Ў�)���x�\\u0019b�J��K�u�A��q�\\u0013Y\\u001fv�\\u000bw�҅�>��\\u001bc�\\u001dz�:�+ظ�7đf\\u0004�+����l,:Ra��>D�D�F�nb:m����>4��}�wMf��z^��ˆ\\b�Yʈ�߹����z\\u0002:Dk�\\u001e\\u000f# |�ɓ�n|#җ�\\u000f/�\\u001c�\\u0010,x��#\\u001d\\b����aS7���I|���0\\u0000ߧJu��\\u0000\\u0012\\u0018\\u0018�6�������4\\u0019��R$>F�;���z\\\\\\\"8r�o'�������\\u0013dd�|pvJ�\\u0001)�\\u00006\\u0015�����<1j,]N�:�׭\\f�x�\\t\\u00101���qѺ�R\\u0004�ċHmf���E\\u0018�\\u0016P�4<��r����%�\\u0010>��2+\\u0019�p2�dqੑ2\\u001blk�[ПO�=\\u001f�\\u001b\\tq�b�ɑ\\u000b\\u0006�[�]O_\\u001f�?֪Y%��y���\\u0000\\u0001=u��L����ܾ��v0���$,�\\u001aR��˄+~�e+;n7�\\u0017-^?\\u000e�݂�/�¨ʙ#g��B#\\u0004�˪��� �l���T�6��@��ZHpa(��\\tF�f{\\u001b�:[M)�AҲ�L�\\u0017\\u0013\\u0003[xɚ�c�?��\\u0001P��f���A'Ү��\\u0012x�WB��{\\r�\\u001a_��L��\\u0018Bp!�}��\\u0002�\\u0010}{ޓ�\\u0014x�Я�7b�N�\\u0003���3\\u0006%g\\b�A�\\u001dU��^?\\u0013��[\\u000ek���]p��L��[\\u0012C�=��V��0�V�#�\\u000f\\nI���m��0\\u001dS��jC>�op}�t92��1e�Lj?��/��£d\\u0004}�3x�\\neE{�0!��(|\\\\Y�\\u0019N�`���\\u0004��G�6�$yk\\tf`nF�m\\u0002���\\u001d�@}I\\u001eF=\\t:\\u000b\\u000fJ#7lS�}����Ҡ\\u0013�\\n?#\\u0018o\\u0019|�L�I(V kp�sڳ|�_�ҙ\\tRZ�G�S��\\u001f�%�~N?*�3\\u0006X���������y����\\u0004��&\\fi\\u0001`�J\\u0001��\\u0007����R?��Ya�\\u0015\\u0001Џ\\u001b�ܛO���3&�B�X��e�Tm\\u001cu��\\u0000�V\\u001c>K\\u000f\\u0017\\u001e@�rlk�\\u0015�\\r���v5�L\\u0018Yh\\u0007�c)ц��\\u0014�.\\u0019<reN>�!�\\f�\\u0013vrڟ��\\u000e$�!�&\\\\\\\"2����X^��\\u001aE�\\u0019�p�\\u001cg�i`�\\u0003\\u0013\\u0004�.3��l\\u0018䝔9�F��:���AgO��N2!\\u0012��$�\\u0000����W\\u0001�\\u0014�;�\\u0017|�X �5�h\\u001f�q���rH\\\\\\\"\\\\w�nŘ!����\\u001a�6\\u0013����\\u000f�o;\\u001e\\u0010�U�X�zę�8�g?\\u001f�\\u0019M�l�Ћ��m����\\u001e���\\u0017�|,�\\u0018∭��h�[�\\u001d��}�ǥg��fɂ\\u0014@���p:���r}\\u0007�\\u0017��\\u0004��(`LGKz�\\u0002*b`�\\u001d\\u000e뮔��>d�>\\f\\u0001�~V�T�\\u0016~:8�ɴ@D���\\r���\\u0000*j/ �!T;4c|�M�;\\u0012'���`��BI�\\u0005��[�B�67\\u0012\\\\\\\"Ǵ�\\u0016\\u0007�kq�=*�\\u0006$\\u0019+\\u0016���X�\\u0017\\u0001BZ�B�9;�z����xU�%a�\\u0019&\\u0010�\\u00102�p\\u0004���4:b��6h�H�Y\\u0001�a�i��V4��\\u000fx\\u0018���\\r�=�М�cE\\\\\\\"F�@ �\\u001d4o�ڮ�\\n\\u0014p\\u001e�x\\u000eWvrUr\\\\\\\"�k�\\u0012&-\\u000b���\\u001c�\\\\`\\u0016\\u0018�r\\u000b\\u0005���iT�o\\u0016ZO\\n�kehՏPF��7\\\\'̆<�!���@\\f�A�UL8Qsl���\\b���P/{m@5\\u0014!UA%��zg��\\fc@{����\\u001bՒf��u��g&�\\u0019R�\\u001e�=*��<��O���)w�>ՊC�� �75f3��D�O�FIfQ�\\u000e�OZ��!��\\\\\\\"\\u0012�a\\u0018����i\\u000f�+g\\\\l�\\u00141B\\u0007\\u001fZ�i�\\u000e#�\\u0003+0�\\u000e�\\\\\\\"9\\b�x�R˞qg\\f��]v��>������\\tv\\r3��\\u0006�q���$2A���,�dBE�I�JS�3�\\rYg2�q��}ޫ�ץj\\n�4\\u001b�\\\\�2yy\\u0011�:���\\u001c�䏺�É��&�x\\f���P\\u0012??�'�\\u001b#������dx�\\u001b�.��|���\\u0000�]�����f�=��6�ě�z�ү�i�܄\\u0011-�T����\\u0018�������)�8L�kVu���\\\\\\\"[\\u0012\\u0004'�fO��1Ƹ�$\\u0000Ik�n>��*\\u0003�<1Ŕ�r\\u0014�\\b�4�j`sP�\\fؾ�I\\u0019JY�\\u0010�O�cm=G�.��\\u001aViZ�k�z�\\u0002��ޟ��a�I\\u0003PKL�0\\b���^^|0L��v)�!�\\u000f��N:d\\u0018P<q�`��u-���ޑ�eee�Ri\\r��\\t�\\u001aq�͊x���|C���ǩcQ���D�\\u001e?���5tV���\\u00104\\u0002���#��F\\n�,�\\u001cF�\\u000b\\u0005�\\u001f�εvt��ˍ\\u001c�(.�l}\\u0002�{�֔`2d�\\u0019_f�\\u000b��z]{���\\\\������f;b\\u001a�\\u0004[�\\u00102����d���\\b�UV��i\\u000b\\u0012\\u000f*#��\\rp�Ud}�*�u�}:W�q�H�\\u001eŇp:�U��9_ńU�\\u0007x�զ�\\rҚC�\\u001a\\u0015�[��b���(wh���\\\\6,\\b��Vxo���N\\u001b���\\u000eTd�\\u0005�Q���\\u0000�4\\u001bp�\\u0017�\\u0017�\\u001a_,\\u000b\\t�\\u0015�i[��]{�����r'�\\u0019X��cv�\\u000b��} 馇�{¦Yϓ6I\\u000e�R\\b�M��_]-z��\\u001e���JЊG���\\u0005Bt���\\u0015�\\u0017\\u0011ƛ�q�Y��B��`x�ʷ��w{(.W\\u001d�x�ѝ�\\\\\\\"�\\u0000Oհ^�w\\u0006�����wĂЬ�*5�{[������|�9Q�2�\\u0011��P\\u0010M��mMA���[�\\b��J��\\\\\\\"�$e\\u000bi.$�D��}Ed�܉\\\\\\\"�xP�#;T!�\\u0000WqFr8�Ċ�\\u0005�\\u0012�7\\r6���}*��x��1O�!�V �\\u0001o���\\u0000�\\u0013��ٿ��'�H��M�b,^�\\u0017=�D$F�hr���S&\\\\\\\"��4���(�\\\\\\\"����+��D��3\\u0010;\\u0001��\\u0000\\u001ah���f���+*�\\\\\\\"�mm�Vb�\\u000f�������}��f\\u0007P_�\\u000fJ���3$�Cb\\r�������:�9\\u0015�d�i�?\\u001e��x��\\u0011�e_+ǌX�Q�\\u000b��_��}k�\\u0019�y�1rLy>\\u0007yf��\\u0010n��\\u0000��7\\u000f�����!RgRU\\u001bT`�]z�Wcļ~tҶ�L\\u0019\\u001c\\u0010\\rՆ�(,\\\\!'\\u0012N:�4��=�v�\\u0004�\\u0000u�iMf��1>�\\\\�ɉQS\\u001eF8W4)p\\u000e��\\b�J�\\u0016��ȗ�������A��D�u�j�~B\\\\֑XxZ3e1�B�\\u001fW�t�I����$�UT���ߥS\\t���Ȁ�ˑ���Tz\\u0005�U)%L\\u0003ljxL�S.)�fU�d\\\\i�v�T���<��`�\\u000eKO\\u0000��\\\\\\u000f ,=�������t�8�VVT\\u0000�Q�|�6[�\\u0015�*Fkt,o�\\u001d,(�/����\\f�-���Z�u�[\\u0002�\\u0011\\u0006�\\\\y\\u001fǗ#)I,�G�\\u0014^?9�\\u0014F4�p7�B\\b\\u0000�o}���r�XʓaK$yn\\bf���N�m����!�d%G�GK\\u001d�R�s2qr�\\u0011�р\\u0014���z�\\f�C\\u0005i��x�N\\\\\\u0001�X�[��q��+��\\bϕ'�²\\u0016�嶎ݩg�\\u0015�!YX�&e'���P�\\u0000u��e���1D�wjM�\\u001b��v\\u0014VW\\u0013\\u0014Qɐ��ö�kݘ�.*\\u0013�a�_�j��\\u0006���3��\\u0002@$���q0��\\u0000\\u001a*J�\\\\\\\"�%�~:��p��d�h�Ȫ|Dv�[��jS�����gR�U\\u0003��\\u0001^�<~C��1x�\\t\\b$�\\u0002z�\\u001e�\\u0015\\u0001\\u001a@�T>6;�+yV�V/\\u0010��>��7\\\\\\\"g�\\u001f\\u0002\\u0014&y�ڀ\\r�\\u0010\\\\��J��\\u001e>j��\\tvP��E��m�\\u001au�Py*���6<�\\u001eD]Ph|��j�Њ����E�� ̚6��EH�c>��~�_J�n�����Q{\\fU��͍��(֟�I�f���X��\\r<���@2n\\u0003��U��W6\\u001cY\\u001fh'�\\u001c��jv\\u001f��\\u0014��/\\u000b��g�+�F2��\\u0012\\u001d�]�܄\\\\*�}\\u000f��\\u001fg\\u001c�O�IT�I$\\u0000�*\\u0002o��T\\u0004_���W����ˑ�k�I0\\fL�J�2r����E؅�K�H��\\u0000J��]r\\\\\\u000eTr�\\u001bx��k^��ܣp�URA\\u0014�v\\u0001�\\u0017��{|���'�)2_�+���������*),��\\u0014��Jћ�ʘ\\u001b\\u001e\\u0014�\\u0017\\u0015�[�gQ������\\u0001�>���R\\t?\\u001f�18|\\u001a\\u0015U��1\\u001e��eS�=��O\\t��݁\\u0000!Ve:n\\u0000�\\u001f\\u0013WI&*�\\u0005�!\\u001b0Q�m�\\u000fBj\\u0005,@�����gG���%��*�o�Ҝ\\\\)&�K4�k]c\\u0000Z�6�c��L23s��\\u0000m�\\u001d� _$�\\u0005L`hA=\\t\\\\\\\"�I\\u001e\\u0014�+�#�.���~\\u000b֓g�&\\u0017%*�2�d_%�Q���^�ACti\\r\\u0003�F�J��\\fߴX��\\u0018��cZ\\u001b\\u001b+?��8W~�$\\fѐ=�}[X߭3��Y`��\\u001b��H1��;��I��*5�cc\\t�\\u0015\\u001bmr\\u0001�|zO�\\f�:�\\u0002AI�ԩ\\u001e�j��@O\\b�(��\\\\��)T\\\\�2\\u0004kZ�u�S��n.\\u000eXލ�\\u0000������W�\\u000b��\\u0000�\\u0006\\f��\\u0000q����ڇ�ʖ\\\\\\\"��)6C{�OqB�3���&r��]Uo��A�H��c�ed��\\u0005[Ām�w�)�ܯ\\u0017�[\\ni\\ff3vb\\n��6���ND>\\u0018���o6$\\u0019*d���̂�na�KR�c�,r\\t\\\\�C�\\u0015��a�\\u000br\\u00193qPb�<pY\\u0015\\u001c��*-��on��n$\\u001d����<uŖ�\\u0016J��E�r4�҈��jr1�<8ϑ\\u0019\\t�����E�!�^]�h��\\u0001E��\\u001e���V����1!��˹��-f t��A]cd���\\f��|\\\\\\\"'\\u0017 �n�j\\u0005�D\\u0016�t\\u001526l���`�0�\\u0001��O�\\bȆfݐ��\\t�;�Q��e��2\\u0016ڀ::��ۭ���V�q3\\fL�wS\\u00038m�����8�0(�\\u0004tYe�\\u0002�7[ST�$��ʓ�P+d��&w��xW|c\\u0018$�Kh�E�l�\\u0010\\b���9\\bqr12^V(�#\\u0016){�\\u000e�\\u000f�,�\\u0012��8;tbfu��ׯ^�cf$��m㐂\\u000b\\u000e��\\n�j�\\u0000\\u0011h��8\\u001aNdc�̎��\\u0016\\u0004�Yt�҉�/Ȍ���#\\u0011�[�da�\\u0000�s�\\u001eԷ+.t͗�\\u0016�r�\\u000bŷK���Q#�\\u0015����\\u0019'�\\u0005\\f�\\u000e�\\u0005X�\\u00187^�T��6N�2H�\\\\<\\u0018�\\u0016@�� \\u0016��\\n\\u0016[m* �ַ.t��Bdk�|@H\\u0011<��>G2NBxR�llUWm���u�\\u0018I&6.CeF񭏒F�v[[i��v�2�\\u0013���\\u0018���Zf\\f\\u0014�Qom2���\\u00120�\\u0002�2$�\\u0000�`�~7�M�5��k�\\u00154O�0�'a\\u0014���Ʌ�\\\\\\\"�c\\bG]��V�\\u001dj��L\\u000e?��\\u000f�u3FX�E}�1ݥ����q��#�$�%�ɱ\\t\\u001b�К�X�)���%�\\u0014\\u000bh\\u0019�뻿j��\\u0018�����l*r�\\u0004\\u001d�Q��Ҡ1>��Cp/�3���,S%�\\u0004\\u000b�uԋ�i�(�E�<��t��E�;\\u000eR���\\u0012F�}ʾ%6_p��)�S\\u001c���l�{�[KP2\\\\\\u0018\\u0006ctt�\\u0000\\u001d�6�N<���\\u0011�1��ҡ${�\\u0015�2\\u000e;�\\u000e$k(P�~�k\\\\����\\r��$)�*6�����P\\u001a�\\u001c�n.]��$A�����\\n�\\u0019\\u0012\\u000e0\\t i^4c\\u000f����;\\u0005�\\u000eH,.�R\\u0007\\r�j�\\u0003\\u0014 ��l�#F\\u001a\\u001e\\u0003_J^���ٲ�\\u0011�\\u0013��\\u001dmq��\\u001aT�94�2��\\u0010�!��CZ��g˃\\u0011e�\\u0018�غ\\u0003k-��&���3b\\fP\\nd,�)���)�\\u0003�ou\\u000e;�vʡ��c�\\u0003.L\\u000e���\\u000b\\u0005l�\\u001f�\\u0003&G\\r������xU<\\u0011\\u0012\\u001aY\\u0019���P-\\\\�8�Y��b�\\u0011د�\\u0000ݵU�\\u0004v��ɗ�>,��f&�{me?\\u001a�?���KJ\\u00128#\\nAR\\u000b�A��N�\\ns�ep��l$�+66�Q��`a�@C�\\r��n����xI��b$f\\u0002��e6�~4$\\u0019S�eO�\\u0004M�Q�\\r\\u0011�e\\u0004Uι\\u0010�b@�\\u001b��5��\\u0016���W?��.x�#\\u0005#*\\u0010m����P_�B���\\u0015\\u001f\\u0002��\\u0013\\u001b9��bօ\\b=F�P\\\\�pɎ\\u0005@�\\u0001-s��N���#���c���.��*������:�d�t<d�\\n��7�;�R�J�T��*T�R�J�*T�R�J�*T�R�Jk\\nN`B��v�@Ҹ�Ú\\\\�+!�k1\\u001a\\u0016Q���nD\\t��G�j\\u0019Ta�Q`\\u0010X\\u000f[R�\\u000e�<�_켓�\\u001e5\\u0002NRG������xؒ5\\u001d�4�9\\u0018���>�k�# Rnoֹ�\\u0001s�t-���mp��V�$\\u0010+&,�\\u0015r1�bi61Eȍ��\\u0003)c�\\u0006��+@\\u001b!\\u0018*�>�-cYy��\\u001eV�Q��؊�\\u0016��U�W> wm=\\u0007Ɩ\\u0006����K\\\\8\\u0000nx[�V�\\u001aL\\\\�?\\u001d�˒�\\u001a�K~�5����g(�9\\f�b\\u0014�\\u0015,,J���F\\u0011\\u000f���� \\u0010���?�g9ɒ\\\\�٨�\\u0004,5\\u0004��>umY�<��\\u000e�� �5җԩR��TÊ�u�3@��\\\\o'���޺\\u001a�b�P���B��%�kk\\u001e�����e�\\u0002\\u0018�[�R\\u0017�u\\u0014�\\u0006����c}��/qa��֯\\u0013�̱���\\\\�'0��\\u001f��q�ۣ���ܰ�@#�Y��\\u0011r6���E�`�H�m�ͷ{o�\\u001fJ5���-,�4��\\u0007���3/����2�P=\\b�\\u001065�����\\u0004Dp��΃���\\\\\\\"�D�\\u0003���\\u0000ꭋ\\\\\\\"��F\\u0007�^H�jʠ�\\u0016�{n\\n,j�LXr\\\\\\\"�er�n��o�\\u000e��B4��)�ze�r�nV���\\u001d)O\\u0017�\\u0018�6\\u001b�����l�2�d�����\\t�X��B�j�U�/c��GΝq�\\u0003\\u000e\\u001d��Ȓ�A{����\\n\\u0003'�ދͳ���-�\\u001c��\\\\�^h����Z92T\\u0010=�v�\\u001c^\\\\\\\"���ؕ�\\\\�s�IamoKY\\u0015�!W\\u0007@�7v \\u0001��E����̑��/�\\u0006�����\\u0011֞�\\t�H�\\r�O-\\u0013\\u0018��W�n\\u0012L\\u0000iO�%�r#�Eb�$�6��߀�W\\u00134q�\\u0002�\\u0007OJm\\u0016\\u0017)��/+$)\\u0012�\\u0003\\u000b\\u001c�#�\\u0001��A���)'\\u0015�|�:2�!\\t�`F�Rt׽��WR\\u0000�ˌ�4�.8��E��\\u001c�8��i\\u000e�\\u001d\\u0017�~�i����q�;� �,��r�A\\u001f����u��\\u0013���乞\\fX1c>�\\\\�5�z[�\\b�ub�͓>,Jt\\u0019\\u000b}\\u000f��\\u0014ÏwLXK������ݥQ�dy��/��@�Aڨ�ev�1m!#\\u0003����O���'���\\u0014����/ҥ�\\u0010\\u000f\\u001dhs�83�\\u0004IV�z�Yw\\u001b��\\u0012\\u0012RGW������:Qy\\u0000A�\\b�\\u001f�]\\\\|��b�sq�#G�}�$kiE�Vc��\\u0000� �&�ȉс��\\u0014��\\u0005;��66\\u0019��\\u0002XDq���y8�\\u000b#�x�ߖ@֚F۔Ð\\u0001WծmҼ�|Wt�\\u001c:Fv���\\u001a|�(~Vf�\\nYQC5���\\r�����\\u0000Ǟ�K\\tb7.�Pm�:��\\u0000\\n)�(S+��ɢ�3\\u00067+7\\u0011�\\u0004֎\\u0011\\u0016t��\\u000e퀂H%\\u000f�\\\\P��\\u0000�\\u0011 ip�e�:�V ���m��Lx��\\u0012���\\\\n\\u0017���\\n\\u001f����G�ş+こ8@_�N�So��J�d�\\t�N�}k?��\\u001a�M\\u001b̴�\\u0003��\\r�Ŧ\\u0016;\\t'\\u000e�C\\u000b��2����kE&$g��Ṟ2�\\bնƪ��\\u0014��\\\\\\\"_2���7�u\\r���iCr��,@\\u0005\\u0000�\\u0005�����A��o��M:ksf�rx�\\u000b؏��>%\\u0000\\u001d�u���\\u001e?\\u001f��D����Y\\u0017b~7����\\u0000z��1�,61�\\u0002��\\u0010\\u000b\\u001dz(�Fqk�'\\u00182\\u001dK\\u0000\\\\���U�_�x�\\u00112r%O\\n�LfTs�V\\u000bk��U�..�$�����O���u%�\\u00123r�\\u0007���g�\\u0003\\u001dߴ�\\u001dA\\u0004�؂+��a�\\u0015�B�\\u0014c�uq���(��\\u001e��v���\\u0000����Z�Lly2�- r�pS�\\u001af\\u0010\\u0017\\u0010S�<F�Ӽ�/��ȶ�8���4�e�\\u000f\\u000e8��e�\\u0018賂�\\u0017���VfL�\\u0002|�7��b@����kV�?\\u0015q��vQ��bS��\\u0017\\u001b�6q��nK�RAf�lO��%���[~4>:�\\u001f#��D\\u0006�\\u000f�8w��\\\\\\\"P$2\\r�ݶ�\\u0000ʫ�\\u00199�b�[\\\\\\\"�9�\\u0005�\\u0000~4_\\b�\\u000eX�ne�v�:\\u0003}���/��',efɍ\\u000e��\\u0005\\u001e�zw�\\u0019�\\u0007\\u0019ڀ\\u0003�ɐ\\u0003jb���a�\\u000bǨ�g�\\\\��\\u0015�ч�u�y�q��JeC�f�,-}ާ��JZ��\\u001a#9\\u0001�n��,A7����8�\\f��\\u001fo�\\u0007�mu�oƉ\\u001b\\u001a�0\\b�\\u001c=k.T�\\u0017\\\\\\\"�dK��V\\u00104���\\b�@�\\\\/f\\r+\\u000b0��M)t��\\u0019p�-�\\u001cm�\\u0010\\b�\\u001f*i��y���*I������Z�1�1F��Կ�!��~T$�[Y�${p�&\\\\ki\\t\\u001d \\u0018�\\u0010~�\\u0007$�\\t\\u001a��Z9\\u0018Y�_p�C�\\u00059o\\u0013*]T��5��US��2�σ\\u0016$y���\\u0000\\u0000�'�).\\\\\\r3\\u0012ae����?\\u001a�\\t�QZ\\u0011P�.�ՇCs'�xmM\\\\\\\"�\\\\c1�&H\\n7��\\u001b2�n��\\u0007Mu�pfA�v�<�\\u0016��g`�h�z\\n\\u0007\\u001e=�h\\u001c\\u0016�ږ�7�z�\\u001b\\u0018�,R�����o�Szͅ��v],�\\u001c�kO��\\u0016?\\u0015��\\u0018�\\u000e�o�T��Y�W�n\\u0018�0�\\u0014��\\\\\\\"�/����\\u0015N\\u000e'\\u0012g|�̐�\\u001bd$��\\u0019�oa�T����bč�ʁ�dk�.\\u0000܂�H\\u001a��Xm�\\u001cؿr�DYd\\b�?A�\\u001b\\u001b[�;}\\\\\\\"G\\u001aɈvq�l_�+���\\u0000\\u000fJ+��x�F\\\\֞%Ȓ7\\u0011�$�e ��\\u0007sjE\\u001acb����2E,��ԝ�W�~UW��N?�1���_\\u001b��Y~\\u0017�Gq�#�V8Q~��[���51�lLF���G��F5\\tpSd\\u0003�65V>\\u0000��[=�b�*o\\u001cJ:�Q��oUĲG���82�\\u000b2�*��\\u001cX\\u001fήˋ7/��\\u0002\\u0014i\\u0019�\\f�\\u001a���-��-G�\\u001aÄ؁IUM��_��\\u0006\\u000f��\\u0003�/^\\u0015Y<�<q������\\r����9�G\\u001eLd\\u0018s\\u0016\\u00000t�T���$|(>29�(܄\\u0015@z\\\\�h,�<8�Z2��w\\r@�ʴ���\\u0016)\\f~ P\\u0012���k�(�\\u0017k�����\\u0018�\\\\X��~�\\u0016��\\u0006-3\\u0002)n$q�`H�U\\u0011M�'A�\\u0016 u�5�&r�sO�\\u0012��\\t�Gk\\u0011�\\u0015\\u001e��[*<��\\u0003�;��\\u0011`R��~\\u0015~\\u001c�G��\\u0006ɢR\\u0018\\u000e�I�\\u001di�\\u0000\\u0018�1p̃@9�\\u001e��?�?��s.P��*��\\u001a\\u0003���jk��y�9H�\\u001e�\\\\\\\"d\\u0017�\\n�{Zh\\u00166��}�p{hF����A¯�Ud2\\u0005��\\\\\\\"�/]+��y\\u0001܋ar-���i=�j���]k��?��\\u001aB��\\u0016\\b:���K\\u0004���,`���\\u001bA��+�\\u0016D���\\u0010S@o�Kj\\u0005=�&�,\\u0011��\\u001e9�8\\u0012���F��E�\\u0015��V\\u001c��\\u0016`\\u0005�/�\\u0004;3\\u0012B���U��O�kŜwH�`/D���U�\\u000b�ӡO Y�Cؕ]F�H����\\u0018\\u0018��y�-�?O�ֽ�h'I���R\\u0018{��i�����NQ!�#!`�1KY7i�a��u�v�c\\n���\\u001f�H\\u000b��y\\u000b��m��n�B���\\u0006I�i���\\u0001�&�~u�\\u0019\\u0014���;F�z\\u0002F���9��\\u0019�Ic�72H\\r��BE���3##\\u001cH��F�\\ru]\\u000f]*�\\u0010f.��(��fW�r 6Zt�F�\\u0000^Us����\\t�/\\u0019\\t�q\\u0004��\\u0016�\\u0005u\\\\\\\"cb�\\u0004L��;6�\\u0016�E���5O\\u0013\\u0006��ٕ�]�U\\u000f��jH�Һ�g\\\\L�L�$�Y\\u001do{)\\u001dB�FG)\\u0013\\nNܤ�>lᇅ}���\\u0002�\\u0017\\u0005�\\u001aN��ȓ���\\\\\\\"��c<fE���{M���\\u0000�*��!�\\u0010�!\\u000b�L4�ۮ�\\u001b\\u0013\\u001f���K��\\\\\\\"��t��j:\\u000e~\\u0007*8\\u0019b\\u000b62�u���=6���6�\\n\\u000eM$�@��ƣ/��0��A_��2t�޹���&8��7\\u0016�\\u001d�\\f���ƌ�\\u0015��\\u001c��ȶ\\u0003�\\u0006�7��\\u0005�q�M2��c\\u0004j�H�bA�_wΊ��Ǒ����\\u0001�␓��\\u001e�=H>����a\\u0011I|X�`C\\fk,D\\u0013�ק֭\\u0015�W�1�G��\\u001a\\u0015��uG5\\u0014��\\b�dr�6ƽv\\rn����?����\\u00107�����-�d�\\u0017 \\u0006�o��M麨��c�\\u0014�j�٘32���Q\\u001c��4���\\u0013�ھDdA+\\u0003{�p��)��\\r��1\\\\\\\"����b1�\\u001fr؍?\\n\\u00061��\\tf�rcE�tP��\\u0004���x�d��9���\\u0018���j�v��J��\\f���3�4�dRÁ�r\\u001f+ysq�\\u0019��\\u0006�\\u0013��\\u000b��\\u000b�C<�K1T\\u0000������Es|�4����FD\\u0010�\\u0012��K�ܪt\\u0003JE�\\u00164P��F�e]��H67��}x�j\\u0011���I*X�\\u0015�}@�\\u001b�.O�E�yP�\\u0011�͸�m�Z�ȋ?�\\\\y�\\u0017r�5�]�\\u000b\\u000f�]�۰l�o��\\u0002�B����x�/\\u0015���\\u0005���ΧB���\\u0000�\\b�d��\\u001e\\u0007�\\u0012\\u001c���;�'-�\\\\\\\"M��\\u001e>F\\u000e\\\\�\\u0019$!.�Ru=�m:�v\\u0018�P<��RX�\\u0000�=��1�\\u0019�9c��\\u000f�\\u000b\\u0005{�{-����\\\\��S>\\u0006V ��1�`-��*v�p���������?raK�\\n`���D�钊\\u0015��6\\rs{\\u000e¯Ȃ\\b���\\\\\\\"�v\\u0017��N�}h>6\\t8�4M\\\\\\\"\\u0006�\\\\\\\"Ah�k���\\u0000\\u001al��+��X�\\u00140�܍\\u0001�j\\u0013��ܓb\\u0015\\u000b\\u001b�A���|\\u0018��\\u00038l�7pa\\u0013\\u0006=xR�1���i\\\\����A}�vj�^\\u0004�L%�!c\\u0005l��t����Fp�?a�130��\\u00030\\u001e2- &�����DI$?\\\\q�BN�&�n}h�+�\\u0004[��O�Il�� f\\u0018�*\\u0003h\\u0004��I���Z\\u0004�dY���2^�6\\u000b�_Z�+�ɕZ\\f�UJ�Xj=��E����.F\\t�ULH܉?J���=�/��̘�\\u000b���U���\\u0000V��߫�j�N��\\n��\\u0019\\u0011�Ih\\u000f\\u0011\\r��U\\u000b�ǅ\\u0018\\u0010��K���\\u001a�z\\u0013\\u000eL�\\u0016O\\u0014����Y\\u0014�R\\u0005���O�7\\u001f��\\u001e+<�Wa�A��ӵw����lye�M�\\u00056\\u0004Z�\\u0001�ޢ\\u0004\\r ����Uy\\u0018�7\\f;�d�X�B�$�]Kx̘�b�gB]A,� \\u0001b~}��/��F\\u000eD\\u0012�1�\\u0002\\n��$j�Q�l|��'ue�\\u0000]@\\u0007�\\u000fm����/.:\\u0006V`v\\u001b\\u000fp��\\u000e�Q\\u0007}�RˮU\\u0011�\\u0015\\n��8)�>ڿ\\u00037�ȦThe�]\\u0004\\u0017*O�X\\u000b\\u001e��s�6Cr�\\u0003,�K\\u0001\\u0017�\\u0000\\u0013\\u000b\\u0000�\\b;������ǉ2$\\n�.���\\u0007Ar*�'�\\u0018V\\u0012!\\n��l!���E\\rږ�kcJ�r6$)��lb�'B���f���\\u0000o�r�8�YQ�`w\\u0011+{�\\u001fC�rPq\\u001c�.n>0�(��Ik�:\\u0002�A�/�_��Ł�Y�X���\\u0005@\\u0003x��;Σr0e�ʒ(�ň�0�\\u001d�{A`>5R�L�5<�҇\\u0010ln2(�?H\\u0013�m�'Ҹ�?��37�4G\\u0012T\\u0001B\\u0013q�nI�e֬�h�)0<m!�(�={ګ����^81V\\u0013\\u0019\\u0005��kjv|E\\n00d@�!R�\\t$\\u0000F����\\u0003*L\\u0010bt���\\u001b*dSr�zȷ�k���\\u001a>I#���!)�\\u0017\\u001du�\\\\\\u000e$��1O|R-�1�R;\\u0011���G\\u0013\\u0010��\\fI!\\u000b[z��\\u0001�1�`i�\\u001f���K\\u0010y<s�.D�@�K\\u0000A���VH�3���\\n�{RN;�,\\u001az�i^\\\\�^\\u0015���\\u0015\\u0011E�V�\\u0000���2�E�\\u0013C���\\u0000l�Ͱ_^��3���a�\\u0017\\u0012�$�� �pT����E�XX͔����m���\\u0007���Bfz`\\r=��\\u0000��q�&S���Q֊[@n\\u0011ƃ�ɄO\\u001b@�\\f2�\\u0019�\\u0003x=,?Ƙ�X������2�\\u001b\\u0014�l�;�\\\\\\u000b[��`�#�\\u0011%�&7Y\\u0010;�2����\\u001b��)W\\u0016,�e\\u0005�#%\\u0016RI\\u000e�UۻU[��t�\\u001aD\\u00004����]F\\u0010�Ç�R�>CQ��$���\\u0017Ń&I\\bY\\u001cm�j���[顳D�\\u0000�.�Ѐ�ͼ�e��l�v�ř���\\u00111Ǖ���\\u0000\\u0013k�5��<�O)!X2d�RL\\u0017�l�A��\\u0007�ChS'i4i�\\u001b\\u0019G���\\u0001Vmm\\u0003���4�����8�pYHWP~��o�S윁\\u0006d\\u0018��R�\\u0012_!��j6�\\u000e\\fW���e\\u0016����T�\\u0010}\\u0001�\\u001b\\u0017���&L�i%\\u0004�e\\u001b�e=\\u001a�r:[\\u0003\\\\\\\"�<��/�\\u0019�{�\\u0017�اM[��1��M3�&�\\u0015\\u0012\\u0007c.��1v\\u0002�O[V賈5�\\u0012��-��v$\\u001ff��2��bĆkn��̥\\u000f��ރ���7M�r\\u0012HPI�\\u0014;�\\u0006�\\u0004j\\u0000\\u001a���.����\\u0017�X�R6��-��_z�r�1\\u0006l\\n1�U1��n�r��W�s8����-�\\u001dJ2*�bmn�CO����'�\\u001c(r\\u0014��\\u000b�5�zSG��\\b��!'H�VE*M׺z�\\u0000Z\\fNZ�\\u0016�\\u0018\\u0004�����q���9\\u0003]�X\\u0005�R6Ru�Z\\u001e\\u0018b���u�,Y��,`pI}��q������/\\u0012)� Ȏ\\\\\\\"\\u0002��\\u0002����N�TxQ��0\\u0017�\\n�fe 1 �ƫ�d���G�\\u0013\\u001e}��Ր�\\u0006�Ԛ�\\u0003~i\\\\\\\"F�ƕ�Xd���ċ��6\\u000e>M:\\u0000x��&��\\u001fxLM��8!�x�/��eZ[My���E�d\\u0002�\\nw\\u000b��*�;Ӽi�,���\\u0004\\r�T�R�U:�J�*T�R�J�*T�R�J�*T�R����\\u0012\\u0012T\\u0013�z��L��\\u0002�,l,��K1o����/�SL}�4j�SYGʹ��z�NU��\\u000b\\u0016�Z\\u0019�\\u001ac��)�\\f�-�����~\\\\\\\"\\u0015�\\u001d��\\u0000I�ҵ���8f������\\u0019 �\\u001c�:\\u0012W�4�:��U�\\u000e<EF�۩~V\\u0002erO�=�\\u0000(D\\u001a\\u0016��t\\u000b�\\f\\u001c��;��\\tA�X�)�2�.CF�T\\u0017!�t4'.b�̀ƾP�8�_ԵQ�>��>C�0�Gn\\u0002��\\u001a}i\\\\�91� �\\u0018���~�i|����ۭ3����#\\u0010x���\\\\\\\"�\\u0001�\\u0012\\u001d�����iQ�^u�\\u0013ڲT!'^3K*WsG④:�5�.��\\\\\\\"G\\u001a��\\u0000\\u001b�(�M�ǾR�T�u��|{Qj�@���V\\u0017p�F�u\\u001e���\\u000b\\u000e\\u0016<@��D�7k��\\u0000\\u001a��%\\u0000�������k�m`\\t�L�^k)�.G�N[^\\u001fJ�y�\\u001e2��E�\\u0011H=~Tg�?�޺���k�����G\\u001co\\u0019\\u0011�oe��.zSE�R,/\\\\\\\"x�ؠ�+q\\u0016�w�ڡh\\u0000�ơ�D �[o\\u001cF��Y�b�x�\\u0000\\u0017\\u0000��kx�>\\u00191��PB�\\u0012Om�\\u0006�ֱ�M��G\\u001c�\\u000f\\u000f���;�$~C\\b7���E�*^6Љ���|\\u0005�#�!~Cӝ{�$9s�b\\u0013\\n \\u0001���c�ڼ����\\u0003��f)}@=4��q䢃�\\u001d�~�WeԮ��qC�����̰JRB���N��F��C��\\u001a�Zǟ�Ǔ��r��\\u0007�؍�i\\u0016\\u001c��xM�a�Pt!��߅��\\t�T���k�#��|(�\\u001eS�*�d'�%�}?\\u001a\\u00033#�q2'\\u0000�E$-��[j�\\u0000Σ\\u0013�\\u0003�r�\\u0003@C|�ƚD���f�27���HM�B\\n\\u0012zn�\\u0000���2�>6sȯ��$��pmu�7ܮO�8\\n�%\\u0006(��X]���@�+\\u001f�-��=E�������fB_��\\u0003\\u0016��\\u0000:m��\\u001a1xϚ�\\u0013����ȼ�>4�o�\\u0011K\\u001dh��Y\\\\\\u000b��cތ�p\\u001728�\\u001d�Fw\\u0003nǪի1V�H��\\u000e<>B\\u0013Ҥ�c�H�T\\u0016\\u001eOٴ�!HT!�X�\\u001d���𣰹\\u001cn4�����������ww����cx��\\u0014F�F7gw���A�*�C��1����dq�i�\\u0000�\\u001c���}��|9<�\\u0000\\u00166N\\u0006C\\u0015�j{�����y%���E'u�r\\u0001\\u001cг\\u0010��ğR�\\u0007�����Q�\\u0013�l�\\u001e�:��y�!B�6ۢ\\u000e���g$\\u0012}�/\\u000f�H�\\u001d\\t`��4딏͉$\\n}�4�\\u0000ۨ��Jx1\\u0012���\\u0001�T��@��F&d�Ǵ)y#]]��ݻ�ڦ\\u0014�p�Lj�q��\\u0002Gݭ��\\u0003�\\b=CM#Zbc���1���\\r\\u0007- �i�\\u000b\\t�\\u001f.xT˰�hВ\\u00016\\u0017Җg\\u001c��<�C&$�\\u000f�X���k���M�\\u0000�+�\\u0016G�mr�\\u0002t�\\u0001���q����\\u0016P��Qbe\\u001fI[��;��\\u0011&)A�\\u001eS�qX���\\u0014�,'�NnT��?I�1׿ƨ�c��ra�\\u0017�����\\r3�\\u0005�;\\u0000+\\u001d��\\b�Q�`ø4�\\u0000+��#\\u001d�»��\\u0018\\u000b{�U�m=E\\bR$\\u00183MG9,�4S\\\\\\\"�\\u001c��\\u0017\\u0015���W[mXT\\u0012\\u000e��\\u0005�\\u0000���c�\\bo��W�Pr\\u0010�|Lsx|\\u001eE��[n�c��\\u0012)Fn,���ü�J4�M�\\u0015�k�=(�D|��$\\far\\u0000�2&@X�˯\\u0003�@���4ҷ���@��v |mN'�\\u0017 �\\u00003\\u000f�\\u000b_��U���r�l�d�\\\\\\\"w�/�R�g��9J1�\\u0002Gp\\u0001��_�Z\\u0015��H�:P���y\\u0001��V-�����\\u001cY��\\u0015\\b�\\u0000(�+/�fG:�\\u0012Y\\u0011ݬ�t\\u001b�ץX%͖\\\\\\\"��D��\\u0004�\\u001dA�C��b�\\nO1%Mȵ����#�C\\u001aM;\\u00062����\\n�]c}i��ܨ8Tv��L��\\u001d��!\\r��p��j�!-��G(b�Xt`��c�Y\\u001ep�.�6�\\u0010�\\u000fS�\\u001d+�;�ʍa��\\u0004?�Ru�\\rm�\\u0003[P\\u0010��\\u0012�\\u0011�δ.L9q�h����b5#�J\\u000e,l\\u0017�\\u0006<�y$c�3�걣f����2!�TD�\\u00100ԍ\\u0006���3���F�@ş#�ܟ��Kq��/-�\\n�]�\\u0000����\\u0004*@�B~�[�ǟ\\u0013;\\u0012�`(-�i�ӗeV�k�R|���䙉�[@�든��eÉ�p�WY6���\\u000fʇ�7�q�H���\\u000b-��=\\u001af�\\u001f��\\u000f\\u001b-�sdő0�p\\u0006F\\u0010\\u000f(>�)>G%�YX�&��2�u7��Ҵ<j�Xh�[<d�\\u0018kq`���>9l�I\\u0000�n�\\u0013�m�֟\\t��%ɎPv�]T�\\u0010\\u0005�ЂL�Z|��,P4�繥��M>K�\\u0000\\u0015�؄؏�\\u0000��|�\\u0012Fɹ�pڂ�G�\\u000e�'\\u001c\\u0011����̽�Q���1Y120��\\u0006��b�偰�_KR��\\u0000�r�\\u001b�5a�b\\\\\\\"��ˑ�b��G\\t\\u001cF���DP��2��H�k\\u0017�=�ҧ�[�@E�}�g����[S`:�z:(�Y�4���\\u0004t6��z~�f�\\u000eM��\\u0002���Qsڍu�Z���1]�z�u+\\u001dw�&���ʅ�}�+\\u001b*ܛ�|�´!\\u0004H�c]6�MhI�Lؑ\\r���\\\\ة�\\u001a�V`�����i�����G���.Q��g͏3�r\\ba=#M\\u0006��\\u001b��'\\u00052�\\u0017�#;�Τ�\\u0006�;^���\\u000eB�֒o{\\u0013�N��ߘ���@ﰠ��;[�-f2&�ȾDb�G%W��j�\\u0005�\\\\\\\"f����&s�\\\\\\\"2�/Uo�1������K�7���\\u0002�h�X\\u0010O�����Ɍ\\u0018����X� �n�ziY♫\\u00039 �\\u0005��6�\\u001bQ�R�\\u0014�E�\\u0012���jXg\\u0001�*v���Y���VM��2��\\u0011�\\u001e�U��X���E��\\u0011�\\u0001\\u0000\\u0006m*��������-���Wʘ��C��\\f8̮��%}�K���z�O�\\u0000�J�.�y\\u00007\\u001fN���US\\u0002\\b\\u0013�5i�._\\u0015وNڐDj@:}}h\\u001eO\\u001bt��\\u0019\\n�&ݧ]z��\\u0000*e��'��2�\\u0002da�m�gs2e|�g;�c��E ���\\u000ef\\b<R,\\u0005�U\\u0006B\\t�O��Pc���\\u0012xT�|�X�1�%OǞ��<y�Çۉ$q�Q�\\u0001Nѩנ���|�<�1��~\\u0018E�\\u0001[p\\u0016�������?3\\u001e[\\u0004TEK=�\\u0001oq6�~�\\u00071�r�A\\u0003y\\u00120_i:���TE�[\\f�q�^Է�򃒖:���O��Er#~A8�`�~�\\u0014驿Q֖G�e�\\u0006�$��\\u0000�n:�\\u001f�����/�f�\\r���bR\\u0004����o�\\u0019&\\u001ev\\u001c��0�I\\u0006��\\u0016�Z��q@\\\\]�*H`�N�9V��>\\u0016G�K�w\\n\\u000e�4��қ��`d��(��Q�Ֆ�T�\\u0015ӽ\\u000f�p�J��G�t�\\u0018�)��o�v\\r����\\u0000:\\bH�<r� \\u0006\\u0016u�����+1e�U�I���*�頺�k]\\u0004��cÐcuǙ@L�\\u0013&\\n��f��`�\\u000e\\u001922,~�\\u001bG�5���м�c�\\\\�.\\u0014,P��y\\b�`v���^�RA�\\u001e3�e���\\u0007� �_ι�@�%�\\u001dwىPE�ր(6�2w�l�\\u0010gy�.\\u0018���}�����'\\u0012S\\u0014���\\u000e����0�\\u001elp\\u001a�ʫ�Bz���Ƃ�Q�q�\\u001e8��k��?\\u0000��8�9|\\u0007%�eiA)c�*�ϩ�\\u0015\\n�8�R\\u000bxh�\\u0018\\u0000X��ڋYqW ������[k��4/?�\\u001c^0�vM�\\u0004�����ҕ��}�lyC\\u0015I\\u001fs��������\\\\$9Qy��H\\u0013�@\\u001a\\u0013��z�P�m\\\\\\\"�p����24\\u001e�7��\\n�\\u0005qsɞa�h7��k�4�\\u0002L\\u0011+L���5:X\\u0016��k+\\u001c\\u0019p�}�����\\rv\\u0015��)�>\\u000b������\\u001d���\\u001a�\\u0010\\f\\u0003�-�J�dK���\\u0014 S\\n\\u0017c��U�&J���\\b�\\u0000��l�Q���Uq���\\u0012G8y�#co��\\u000b\\u0015�U\\u001c�\\u0014�P�6�P��\\u001dQ:�\\u0015�\\u001d�\\u0003��*��V�\\u0012t[\\r��V.\\u0000H�V��L>hL��\\u00009��h��A��KF���}=(y�s>ل̫\\fl\\u0013��\\u0005\\u0019��ag\\u001b-��C���f\\u0004i��Q�\\fb���6�v���u�z��&�22�\\n���u7\\u000e\\u0015^\\u001ebebx��l�P$.ۤ`�굫�nZ$\\u000e��D���[��Wc�덓&C�\\\\\\\"\\f\\r�N�\\u0005��T�pQr\\b��8�e��\\n���\\u0016׭,�R\\u0002�\\u0006�'�Z1���K^33,���;C4�m>�rN눓F5PW��@\\u001a[���d�-\\u0011;c��;\\u0010\\u0012T[�}���A���K\\u0001���ec�K٬mk��Aq�}� �8ee��� ��6�DK�\\u0012��h\\u000f�g.V�/ܴG\\u0006ڝ�fb�UƓ�rVEo\\u0015�X��`h�\\u001ek.�2q�@\\u000bnuh�PM����#<�\\u0012��Ѭ7�����\\u001b\\t=��\\u0017��co�Z\\u0019bt��L�RW���O���O�.ӵY<��(VbRڰ��:R�2�Y\\u001f\\n\\u0004����\\u0006#j����K\\\\\\\"�r'\\f�@w���m��w50\\u0011�<�L\\\\\\u001f-������c�Bē�\\u001e[�O\\t���{�(6�� ��G�y_v�2���}�I\\u0006�=\\u0007j�3\\u0007&$\\u0013���\\u0001A���|���E�\\u0003.\\\\\\\"�+\\u0004F�R��u\\u0003���F\\u001c�2(�)7H�\\u001c��|��;Гb\\u0018�b4�{k[p��Fd\\u0001\\u0013\\u0012b0�|m�t�����l��9\\u0012���ڻ��T���:U8�1��e�e%\\u0001��w\\u0001��ګ�f�xr\\u0017!�\\u001fĻcC�7S����!/��*��#E�@\\u0002˦�����\\tYֲۧ`v����r�\\u001f��\\u0003]7���˕.d���b���P{u�SX&��\\u0019�*\\t6�X;\\u0010?Wƀ?�\\u0019f\\fp�K\\u001d�\\u0003���/�\\u0011��\\u00067\\u001a��g�̺\\u001dX�`.\\u001b�}(�@4�5���s���[����:\\u001d5�\\u001f?/\\u0017#\\u000eS\\u0013,�G����}���D�ȱ�x�\\r��t�-�].@:�5�q+,2$Q${��\\u0002\\u0017�/o�\\u0015�\\u0014\\u000b�p�B<�\\u0005I��ن��\\u001d=*A\\u0005�\\u0003��\\u001e��F|J�\\u0003d*��3$\\u0006\\u001am�\\u0017R�d���x1Tǋ\\u0013y#\\u0016��c��\\u0000*3���ٱ�@\\u0012�\\u000e�F�apV�և��'�\\u0010\\u0018�7��\\r��\\u0016ݧQV��3&\\u001eJ!\\u001b�A�\\u0011ؖ��o�Sj\\u000e��\\u001c+V6\\u0003*b�\\u0004\\u0004\\u0005Wɒ%�~b�\\t�U�G��.<(X����d'G;-���?k��\\u0014�R\\r�:�먫y8�'�Vh�\\\\\\\"6澬;\\\\_��%���L��;eceD�K�؃��j�`\\u000e�'֦L`\\u0017\\u000bn<��[���J�\\u000b\\r�p3q��,9\\u0003Ak�rt=n�v5`�2y\\r��\\u0000\\u0004����\\u001d/�0�0�,^:H����8�[�}?Ү�����&,��)@�K{�$\\u0010:|�\\u0000m\\u0001�>���.Dѱ���p�\\u0016r/\\u0010��K�x�#�(�!��\\u0018\\u0018\\u001bE�Wۭ��֮\\\\LđG!*�r�p\\u0005�.�������.�n���\\u0001m5�֎����ȅ��©\\u0019}���6ݽ꟤^v�w�8st-�fB�+����՟�\\u0016V\\u0012�@�c�ُ�\\u001f�N\\u000eN^*�G\\u001b\\u001cO\\u000eTD\\u000b��Ou���L�1�\\u0010ώ\\u00122��$\\u000fՋ����).��8b��\\fs2!&�՛���N�V�kA��\\u0003�Z�L�lJ��\\u0002�����\\u0013�ʊ\\u001b\\u001f&L��Ȱ�9X�\\u0012�\\u0014h\\u0001�\\u0018��'1427�\\u0016\\u000b\\u001bٔ\\u0012��z�)\\u0011���\\fw�ُZa�anw��*a\\u0000�Ck����\\u0000�E���yXB!k�\\u000e݊\\u0014O\\u0018\\u001fҞ����a�4L��\\u000b���\\u000f�\\u001d).'+�\\u0012�\\u0016ʓ��i\\u001c\\u001bk�~�-�\\u0001���\\u001aI\\u001c\\u000f\\u001b�p\\u0001�K|(|( ���\\r�\\f�\\u0005+k���ދ#���KP_\\u001beˎ�a=�\\u0002\\u0000ш3D�k�sc�\\u0012\\\\�}\\u0016�RM��\\u00192qr$\\u0012��9\\u0011:+Bwk�ָ��p2�Hq�\\u0000jF\\\\\\\"Χc(>��˴x�%;q�X0e\\u001bU?\\u0001C���ҩ�>5_\\u001d׿����xi��6Lq}���B�#t���h8ӓe\\u0017�e�n��R\\b�\\u0007=�4\\\\�Y�d9\\u000b�2z{l�h�T�\\u001c�&K�q���\\\\\\\"��:te#��U�\\u0010L\\u0018:ɏ�@��r��@7���\\t�$�\\u001aX\\u00177\\u001b\\\\\\\"\\u000e;\\t�0���-ܛ��\\u0000��\\u0000ʙ�c5�2�]�Qdf�\\u001f;iN�N\\u000e*�e�NRe�!�ǻ��:�\\r�\\f\\r\\u0018´2+�\\u0013�\\u0000�[X\\u001d��:څ��ׇ\\t;}+R�Ws\\u0018��/\\u0004�\\u0001*�\\u0017$\\u0012}�.{\\u0016\\u0018\\\\\\\"��\\u001a�؂T�æ��4��s���+�*ʺ�(�@?\\u001d\\u0005)�;֟\\u0010\\u0011�nkκ�O\\u001fZ�*T��\\u0015*T�R�J�*T�R�J�*T�R�J��>\\u0012xی�1�p����6e\\u001a�z\\u000f\\u0019�ψ�X̶�\\u0000�8^9\\u001f��\\f�I���X��a��V!+�\\t[1\\u0012���'p�\\u001d��^|\\\\\\\"�|�X��lDF���L���En���\\u0017��\\u0010(k\\rt����\\u0000-ܸ��!*�\\t\\u0015�\\u000bk�k�7��\\u0013�.~A�\\u001f�\\r�����\\u0012k^aqa���\\u001dV)w9\\u0016�\\u001a�����3\\u0005��d;m����\\u001e��\\u0014\\u0019\\u0019$R�\\u0010m�OM߅$�1bL�tGi\\u0001���;�0��H\\u001e��÷��-2\\u0015��64�gi]Qܰ���\\u0014n*�[f���|�V8���\\r\\u0014����$�6�_�D4WW,\\u001cE�@ }��8\\u0011� =o�Ud\\\\~G�e���A+���`=)�+����*�������ar\\u001a�\\u0012\\u0017��`�n~\\u0000\\n\\u001bu3@�Y\\\\ij�\\u0000k]����E\\u001e�\\u0017 �,(�\\\\9Z�;Xv�q �j�&ǖ\\u0014r.с���\\u0001�]\\u001c�\\u0019�nH]�\\n�\\u001e�u���R$\\r��9\\u0018:������\\u000b��!�\\t� ��v@\\u0007@\\u0014�aB���\\u0016;\\u0001���[S�x�.Y�\\u0016�:��t���𤴶\\u0010H�I�0|\\u0018�\\b�]9\\u001e4ͣm���m{��O\\u001fŴi\\u0004�/�\\u0015�v��nWC�V\\u001b�!�Ż�\\r�Z�^;6\\t\\\\\\\"x�j�\\u001a\\u000b�G�گ\\u0018�J���?mW�1�����+���i���t��.\\u0002\\u0006�Y%\\u0000ܽ�\\u000b�Q�����<�F��6ȝ��t�{\\u000f�\\u0001���#@��A-\\u001b��=��Q����Ɠ�\\u0013�vר��Ӯ�ֵ�\\u001eL�r�1�\\u0019\\u0018\\u001b���Tr\\u0012�ys.������Oʅ�2r\\u0013!^\\u0000���+�E�݀4Fr1O32�'s��.ކ��\\u0004mY�6+A\\u0016˝)f\\u0006\\u0003b�(�ɊI<�\\u001e�Q���N�dK)��\\u001d}m�4���\\u0015\\u000f�K\\u0015]�?S\\u0002l6�8e�0��M��ye@�\\u0016:�VA0���^7p���\\u0003�\\u000bt~\\u0002�q�4�\\u0015�$;�(�?�E�12�E&�c�]�ٵ$�\\u0003���\\u000ep�8\\u0006&v�\\u00151��\\u0000�C{Yoan���H���l�a�]�q\\u0019;�\\u0016ܷ���\\n�����O�ݲ��V߈�J<nse[����\\\\����)�1��[��M=X_��\\u0011�ȁ� vmk3��\\u001b6D�B���\\u0001����zLO�g�!p��oX���'Ŕm�\\u001d\\b�\\u0015k�a>�\\u001f�M�\\bq��\\u0015fB\\u0003��D\\u001a�?QӮ�PQq�\\u0019�O���\\t\\u0002V�\\u000e��u�2`r��̇�\\b���hc¯��d<.m�#h�t�\\\\��\\u000b�\\u0004g�\\u0011k������(\\u001c�fƓc8y\\u0007ն�i\\u0015b\\u0010a\\u0006���|��3��\\u0011FF3�@\\u001a�\\f[�iN8ӿ\\u00141��5��߭p�1q,6�\\t\\u0001��.(<nF\\u0018��Ɛ\\u0011k�n���E\\u001f�.c}��ō\\f�\\u0013h\\u000b\\\\Jai\\u0001Ecl$\\u001c��:Ȟ �\\r>KO���i����@\\u0015/��MN��\\u0013�(�\\u001aIs\\u0001ܮ\\u0015R�9���~֢3��\\u00191�\\fo�\\u0006�(\\u0000�\\u0000�\\u0007��\\u0014�FB\\u0007T�V��{�4Ɯ��/���\\u0000n�G�����g\\u00134g\\u0003\\u001c%��m��\\t�ƘI���b�\\u001eX�ϕwʪu t��5��X0�X^�S{u�,7\\u0013�ZY�\\u0013/$\\u0004`�m��:\\u0001�o�R�Ѓ�P�Շ���\\u0002A�\\u0000�w�N�R���$\\n�\\u0002\\u0015\\u0006�\\u0004�J�9�(4�vf'[��Vn*ˍ�!�|�\\u0019ڦ�o_�����1HJ�F췰��˽C��(�GE�H72\\u0018'��\\u0000J>~o\\u0018�\\u0000\\u001c�\\u001b\\u001aəa�\\\\\\\"\\u000f�\\u0002�3k�?Ɠ�\\r��\\\\d����T}!��V��fA<�\\u001ay� ɽt:u[Q\\u001c\\u000b*C+�\\u0014Ga��;����q+ʞ�\\u0013�|���R\\f�'��3ɕ6ɜ��P����}Xՙ�\\u000e'��/�D%YE�\\u0004�\\u0018~F����hCFJ��_�\\u0000t�\\u0003ɣ�7\\u001c�\\u0004\\u0012���5��O�(�0I\\u001fY��\\\\%�c\\u0002�7�]�Վ��\\\\��RˊR&a$ଉ�TtҜ`�F4Q��*��+�o��B��V(evw���D\\u000f��=ͺ�KS�3\\u0007\\u000b����bv�\\u0016�\\u0018_�Q�\\u0006Xż�Q�1eUL\\nQ]�d:)c��mY�y8�i�a�*�\\u0011@�Y}��\\u0017����O�\\t�N��c^�N�k�\\u0016��^>$��\\u0005\\u00196J�\\u0004\\\\���Cqy�\\u0003?ī�\\\\����07��G�U�\\u0004�1��[<��3�8�\\u0004��\\u0010q�x\\u001eudX�VQ���! ��\\u0002�̙��\\u0002�\\u0001\\u0004\\u0005�G�#��w!�G��dbec:����΄\\u0016�0\\u0007��z[�\\f(�\\u0016y,c�o�����@\\u0005�:\\u000e4�Z�9��l�����Ƹ����0�\\u001e��\\u0001����\\u001d-�\\u0014�\\u001d\\u0001�dh���/���փ\\u0007\\n\\u001c\\\\,'�V�\\u0004Tg�v'z��\\u0016��7��qx�1�\\u0013p�#�Yo}�\\u0015��ΩJ�X\\t;r�q6g�B\\t��\\u001dQW/\\\\\\\"2�5� B\\t\\r!\\u0006�\\u000b�?\\u001a\\u001b����8��0Pf@���,v�|�j���\\u0004/\\u000bB˴Z0l[��w��̤�v\\u0001\\u0019\\fK�;�~�*�����Z\\u0005R`��N<x�\\u0018eE��t��\\ns�E��ǳc��{#�E���\\u0000\\u001aY\\f�\\u0010E\\u001b\\u0017�� ���}E���]s�ȗ+\\u0011!�\\\\\\\"\\bkɻ[��P�>�^6��Iv�t{���׬�[\\u001c*�\\r������\\u0018\\u0016�vqn@;���@aafM�>0K��$���C���p�9\\fu�\\u0007-��Y@\\u0016\\u0000�`{��\\u0019�r\\u001c�8��K6Ř�\\u001a\\u0006\\u0001@�47�3����U��\\u0007 �\\u000fo��};V��*��\\u0012E����0c�E���\\u0006u\\u001aQ���c��\\u0001AV\\u0001B�Y�Ѡ���x�1�t`\\u0011�To�\\u001d�\\u001e�\\u000f�,��\\u001ad��-�\\\\\\\"g>����\\u0007����I97�J$�P�'\\u0007Vb\\u0005����\\u0013A:��V\\fX�W\\u0011�s7U��p\\u001f]k!�l8�\\u000b\\\\\\\"�[r��\\u0003M\\u0001��3��X�b\\u0013HnO�\\b֋���r�,d�f[�T'P>\\u001f*\\u001f�H�\\u0011ZG�t�A�߸\\u001e���k����\\u000eU���c�\\u0012���ZW3n\\u001e�OƓ\\t#98�d��\\u0015�dA�ހ܋����\\u0000\\u001f���2\\u00191� \\u00167�B�?O�\\u0011j���\\u001c�$���\\u0016\\u0012\\u001ef@IT���V�\\u0006\\u001c0W�cEY\\b7_��Ѩ�\\u001d\\u000e�Y��Eʇ�\\\\ Px�R�|w�dJ$�ţ�@7�>�%�\\u001d��5��ʍĪ#�m�p\\u0014\\u0004:�\\\\\\\"��a����\\u0013�BJ\\u000b�uݠ�\\u0014!�\\u0012(�c[�\\u0017�\\\\�Ӹ�?\\u001a��-[4�5��k2�ɓ�K�+��g���e��qW�Dh��#\\u00113{�\\t-�\\u0003��+5���B�\\u00043,횪W�ą\\u0004���n�\\n\\u001f&<�F\\\\~:y\\u001c�c��D\\u000e�w[m�\\u0017�;U�\\u0018��v�`ФN\\u0014Ɩ\\n̺��v�R�ԝ'�k�\\u0000+\\u00132�\\u000b\\u001bo��\\u0007\\nHy|�E�\\u0017u�-p.;�N�3\\u000e\\\\\\u000b\\\\\\\"�,�\\u0000Z��V�ڜ�\\u0015�I\\f�\\u001cJ^(ف]ۖ���h?����a(epY�5�;�hz���1�E�9A3ӭZy>6A�LZ�(�DN�Y�#Q6Dl��/$\\u0016�n\\u0003[n�M+����$�z(�\\u0018]\\u0018\\u0001�\\u0003s��L��\\\\id�;e�\\u0000XhYo���\\u0018yg!�\\u0000��a\\n�\\u0001��[�?P�l;Q�(\\u0002��\\u0000z��R�\\u001c��\\u001c\\u00042Y��!u0(�\\u0016l^K�hrP�#,��$�j/�h.S\\u000f<矵2\\u0001�\\u0006e t$X��Y�b���M��[\\u001aeR�����J�~���'!�8�\\\\\\\"�H��m���H�����\\u0002��3 D}���>\\u0011�\\n��,����EW�q���#姓!%;���[r���6F&T�`y6L�\\u001c�\\u0017��>t?\\u0011������I�.$\\for�z\\u000fZ]1�NVLҞ0�\\u0004V6;��\\u001d;�Fz@�O�\\u0006�J��2_s�)���8\\u000fOjq���ک�\\u001f\\\\\\\"��\\u0014n�ޖ�Ƀ\\u001cN��\\u000bnp\\r���+��8����T��q�\\u00167'�CI����\\u0019v��t\\u0000j��ۅ�*��$�&�q� \\u0016@\\u0001h\\u0000�+�G}�\\u0016b&H��Qf\\u0006�ƓE\\u0002��S���J������Q��y\\u001e4\\u0018�˷]��\\u0007{�\\\\�DG���F#���r\\u0018[�J����\\u001b���\\u000fz�+\\u0007u\\u0002��q\\u0016O�\\u00002�� ����P�mV��Ĺm\\f��b�ދ���/�P�Ts�VP˺6��ǲ�4\\u001f�\\u0017�aI\\u0019\\\\�X\\u0004�[�l\\r���Q񽪂��:r�9\\u0014e\\u0018��/AgV�\\u001d���|��iqɾ�`��i�w��񰙋,,��+��$\\u000fi6�EE�ˏ-$�\\u001f\\u001an�#�EͿI��pʊ<�Ie\\b�\\u0013�q��M(YW ��B4S\\u001aQc˛����bV�)#�����+����\\u000eJ�\\n��BO�ȣN�v�g��r�y$\\u0019�S$\\u000f{m\\nXu[[�Λ�-\\u0016.jǏi�tg���\\u0016Н\\t\\u0017�\\u001c��;䕧�\\u001e\\u0016\\u0005���n4Aa֭�\\u0019o��S\\u0006W�\\f�`�:���*\\u0002\\u001evx\\u0015�q�\\u0016зԧ��L� ���5\\r'�܅E�i�����S�\\fa �]�|�\\u0006�:\\n�I4yj�0��V\\u0007ۿ��\\u0014��,���ϧ\\u001ak�\\u0003\\u0002\\u001c��cN��\\u0003p_AY����\\u00069\\tݲ��:����f��\\u0003w�F����A��QyqM��Q}�B\\u0007A���L0�%�Dm�Q]���ܟo{�2�\\u0000��?\\u0019��\\u0003�\\u000f�\\u001f �\\\\��\\\\\\\"�u$\\t��\\\\\\\"(�*^)�\\u0004�$d�\\u0002~#])�\\u0013r��#66��Y#��\\\\\\\"�����\\\\Ҍ����N�j\\u0002=�/��:u���YP��ʟj������G��\\u0005���ǝGWˁfr\\u0006�%�AӐ��C\\b�8��\\u0012�\\u001d�H��\\u000f�7�8��%��\\te%�\\u0017;������H8ȳ\\u0011efR��]}�\\r>\\u0015�dǁ;A$�[���:\\u0010Tw��r\\u0000�m^�<i�G���\\u0018c.R\\u0012�U�\\\\\\\"\\u001bm\\\\\\\"O֫~:\\\\>lĖ8�\\u000b$��\\u0011��_�\\u001d-U�X�C4/,�O�,�\\u0019\\u0011���v����[��\\u0000{\\u0003A��� 7[\\u001bn\\u001a����}�P���#�~��M�\\u001a\\u0015{�� o�҇\\u000e\\\\�2b�W\\u001e;��\\u0019?u\\u0004|�:�\\f�!T�C&Ə��\\u0001;�u+oZ��J�Y\\u0013fc�Z9\\\\��i�\\r\\u0005���\\u001b0�\\u001byir\\u0000C����_wAj�\\u0019C�LY2Z)p���T�YH\\u0004�*\\u0014\\u00156�{S�\\u0006Ʊxjq5�\\tr֎�\\u0015�}v��v9��t�%�d^�u�����P���-\\u001bb\\u0006x�\\u001d\\u001fs[�\\u001d�N\\n<�rf�1���x݅����\\f\\u0013��ɕ'�2\\tYc*n�v�Op\\u001a�\\u0000\\u0016A\\u0000��*ݛ+e90�.Lx�lJ5�p*��ɗ�2e?��\\u0015�{}��*m��xq��T'k\\u0012\\u0003n��O@o�Vw��Ñ�C�\\u000e���z�<��#�(��_*�n\\u000b����\\u001d:ը �$@4��\\u001cX��VL�C�:t�+�O��\\u001c�\\u001cn��m���^�\\nP�ϙ8�y��Hۥ��\\u0007֮�NfD��\\u0003�c�^�W[�@���8y����L�.�Wn�J۰\\u001d5���*\\u0002M�?0�Ċײ�yR4�B�\\u0007�i^aq\\u0012H�p��f\\\\\\\"׾�;Z�M�A��4��7�6�b���Z���'!��-�\\u0001�EV裾��~+�14�u�\\u001aD!R[{��}ZP��!�=.OmO!�\\u001f���>2��\\\\\\\"`\\br:D.G��8m\\u0013K#NJhS#%]�A۴�E���W�y��\\u0004��\\u001c�¿��\\u001a\\u0016\\u0003O�Z��ɓ\\\\\\\"U��K\\\\\\\"��n\\u000fM\\u0005\\u0007��#\\u0002\\\\hԱeY\\u0014\\u000b\\u000b\\u0010lZ�*yb@�t�A\\u0017�cY\\\\\\\"�\\u0011�-g�?\\u001b���g�H�mI��\\u0016\\u0000\\u0002�Q}M4��\\u000e\\u001f%g��~I\\u001d#pt\\u0006>��oZ\\u0013���ő��\\u001c�\\u001e\\\\\\\"\\u0004��\\u0000��\\u0005�mz�l�d�#\\\\\\\"\\u0013��\\u0016�>���Ym@6;\\u000e&��F4��r=�TĪ���Ƒr����Ɲ�i��6%w��\\u0018ں�\\\\�}��o��_|E7\\u0015\\u0000�5�7\\\\\\u0012����Ɍ��\\u0003��p\\u000f˽\\u000f���s^8QvN�$����\\n��X\\u000b��f\\\\\\\"kPϝK&\\u0010��=H~�}Yw�¬��83Qې�q�$*\\\\\\\"�׭�q�����22a!f�q����3^��T�\\u0013\\r�\\t\\\\\\\"+��)\\u0016>�}��\\u0014'\\u000f�r\\u0007-��/�Xݒ{0�/��nm�\\u0011�5��H�\\u0016he\\u000b��W'}\\u000f�%��\\u0017\\u001e,�!<b�\\u001cu%Ŷ������Ŗ\\u0003��\\bQ��\\u0007u�R_}�8�\\u001c�\\u0018�E\\u0015��3\\u001d��$�\\u0000�\\u001b''�\\u0014B4�|V�j�,Hc���Џ�\\u0000�!�4��=rcu��\\\\��ln\\u0016�W�eM���\\u0012,�c���\\n�\\u0005�i~�~{G��\\u0000k�)�\\u0018��\\u0014���n��Ԏ��\\u0014o&Ɣ��`�As踼��!JK\\u0018��P\\u0006��[^��\\u0019��\\r��Z�R�����K\\u001d:x�.�k�\\u0014���hv1�\\u0013�$���(\\n30A�S\\u0014��=,t\\u001f:\\u000e��G�k��B�u�\\u0000�m�uJ�*T��R�J�*T�R�J�*T�R�J�*T�1r2#�\\u0014N�\\u0014�D�:\\u0011}/Z�\\t\\u00191\\u0015;O�l}=¼���\\u00020�p��\\u0016�q:��;W������\\u0000�Q�\\u0000⣶#ָ���͔�[{lD��\\u0013�SO��\\f�襷\\u0003�M(_�q\\u0015���\\u001a2��O�\\u0000��?�$\\u0005��v\\u0017��џƣ�\\u0015(��K7�\\u0000m��9�\\u0014�f�S�U\\u001b�L�2\\u000b\\\\�z\\u001dig$%���;\\b��B\\n���֙\\u0006+�*��\\\\\\u000e��?���lc��c��;�0`O#X�T-��K+A߁�`�\\u000eT��ә\\u0001%��\\u001b�\\u0006���#�!H��Qm:iK�NǞ���\\u001b$�'���&\\\\\\\"Iq��Y\\u001b�EY7u�ڶ����Bn\\u00112\\u0004\\n����b�r�f�$.��\\u0016�p�#2\\u0011;\\u000f\\u0012�P��~�QZ�bx���\\\\\\\"BZG�uE\\u001a�b�\\u0000Vs\\u001f���㡎r@\\bK��\\u0001$��}h\\u001d���3.\\u0006Ƨ\\u0019L��}\\u0007\\u001a�X��������\\u0013k\\u000f�\\u0002�A\\u001c+\\u001aH�(1X�\\u001f@?V���\\u001b��D\\r�A\\u0000wК���\\u0013c�@\\u0014��o݇j�e\\u0015�\\u0019P�W,�q�\\u0013\\u001e�9R�1�\\\\\\\"�K�\\u001ek��]!�\\f���m-�R:}�����n\\fp�������\\u0017�r��.H�\\u001d�H�Koon�va�^�\\u001f-@��#a�c�gU(�zF��\\u0012\\t\\u0003Aֶ�6\\u0014ض�\\\\��J�h��[ٽk�\\u000e&\\fLO��0L�\\u0006A��1\\u001fO�v�1c��E��\\u0010\\u0000��`,)���r��\\u00009r�m4Y\\\\\\\"t7\\u000f¸ʄ̤�\\u0014\\u0016�·\\\\,\\u0006R��c�J���\\u0015q�Kbt�J\\u0013����w���\\u001a���ncx��+\\u0015ɌN������\\u0000��3K� ���n��s1e�\\u0010$bYn���/~�W\\u001b��p�9/�*\\u0005\\u0005���҈�\\t�e3=���rmv\\\\\\\"��&�30i1�t?ؓ>8_�\\u0000+��}�Y��\\u0019�L�\\\\\\u0011�q����w\\\\���4?\\u001arq�]�A,\\u0011�[꽍�ƴ\\u001f��\\u0011�c�L��9��䓮��d����%W\\u0003\\u001fj+*���hc@A��T�L;��\\u0002�Xƌu�Z\\f��AO�\\u0002��Z'�\\u001d���/��k~\\u0015v_!\\u0016N\\u0013�Ф�\\u001a\\u0005s{3�[��ƬȑFW�E\\u0016a�Pt�4?ւ�\\u001eV��\\u001f���m6�\\u001e��L#\\u0019\\\\\\\"\\u0001PV5�}k���M��\\bH-���\\u0012�v�'\\r�mqp�3��(�%Lj\\u0018\\u0016$]-���5�.l�^Eڤ���\\u0006\\u000e6��\\u001a�a�\\u0000#���(�9\\u0007\\u00196@�m�Q`���Vny\\u0017!\\\\\\\"���� S�:܏�$0\\u001b��j\\u0004��9^ظh��\\u0000�Mi�۷#�\\u001c��|H\\u000f��(bo�QB�&N\\u001b#�9�&R�8�}4u��7\\u001axq8�Iv]�\\u0005�̧�4�\\\\���V��\\u0013ڪ/e\\u001e����\\\\Ӌ6<�p�\\u0001U\\u001bc\\f\\f�\\u000f���&\\u0019\\u0012vI\\u000e��O�_[Ѹ8\\u0012�\\u0003J`�⽑��\\u001b�����\\\\�����������h�\\u0019��\\b���]��o���\\\\�\\u0000֓�X�Ȼ����80\\b'�I\\u0018O\\u0013���j�\\u0001\\u001f\\u001a}��)�Y\\u0016\\u000ff�#+H-��R\\rYŲ��䴨�fțv��cվ:ף�s\\u0018T�÷M�K1\\u0003OE�Ī\\u0016\\u001a���R��o#��i\\\\�-���\\u0000\\u0004U���i1�t��ŉ@UM�bC�\\r�ܾBH�h1�eq\\u0019\\b\\u0000����=h6��Ü��lg(L�po�+\\u001b\\\\�2\\u001c|Y#����\\u0015���N�\\u000b��*��,\\u0004hA\\u0007y��0�ş���$28�)S�γ@�R���\\u0011���UI\\u0017���kK�\\u0004�4K\\u0015�X�f\\u0005M�\\u0011�\\u001aG����)�\\u0007*N����i��\\u0006ZƐh�q!oӧCj��\\u001a�\\u001a�M>+��֒ɗO���M0���f8����~��\\u0003�>��+���\\u000bF��@�m}E�K��\\fI1y\\u0004�'\\u0012 \\fmܭ�؏�2Ζc���\\\\����mqL�v���\\u0004H�H8qc�P\\u0001�l���&E[��.J����n�\\u0018ب\\u0006���Vˉ*�HB�\\u001a��`/����\\u001c^\\u0016\\u001b�\\u001c�L�\\u0017k\\u001d�nos�O�8�$2\\t�UrTB},.-IE=�r\\\\\\\"B���<�EË\\u00166R�]��I����\\u000f��\\b\\u0011�������P�Ó�\\u0003�Vڠ�\\u0013~�4҆ǹ�sԾ��q\\u001c6�ڦ��\\u0000*e�+��h\\\\\\t�\\u001d���\\u0016>��Ԁ+ ����\\f\\\\˼>�\\u001a�5�1,�\\u0012�8��(c[\\\\\\\\\\\"\\u000b.���D\\u0019�rf�d\\u0002;ĭ\\u001c�[�\\u0007����\\u001e��f��\\u000e@\\t+\\\\�\\u001d.Xގ��Dl��ů`oaK\\u0002�b>\\\\\\b�En�1��qc����R0S�q�\\u0003h���T�<��fb�W�Y_�~����\\u001e�*qx�\\u0017�.Cx�y�\\u001d^;�T�\\nX|iB�F\\u0006c\\u0010�\\b-��_p,u�ּ�3 �\\f�9Gv\\u0002I[Om��|*�\\u0012ۅ�i��+\\u0012S#���\\u0000�Qt�գ��0�)��w&\\u0006�3`\\u0014\\u000f���7���7�\\u001c|igR�\\b`\\u0014\\u001d\\u0019w\\u001bS�����\\u001df3\\u0002M���{��\\u000f���8�\\u0000��f]�lZ�nW�F��fm,\\u0005�'���l��\\u0013��ˎ\\u000e�-}����Ix�p�x��R4\\u0001Բꫵ[�I�\\\\�\\u001b#0�!>8T�#�]=h��W\\u0003j\\u0017\\u0002=��\\b\\u0004�t�J\\u0013��\\u0019o,�\\u0005�\\u0019Z�\\u0010\\u000b���R��Q�m\\u001b�Q]n�b9\\u0007���\\u001a�B���\\b�\\u0011�1e;�`X-̠^���mz�W#�V�r�Ouܣ]O~��\\u0019��DH<�J� u��:\\u001f�餼N\\u0017 �DJ:�\\u001c6����ʭk��&\\t���\\u0018<��V<���\\fY1�\\u0017�G�\\nϯ\\u0012X#���\\u001b{\\u00147�>~��`�o���-�um���G.\\u001bʋ?�n@~�m�\\\\\\\"��\\u001c��G�r�x�\\ta��;i�CNˏ\\u0013��\\r���=k>\\\\�B�a��b��\\u0001��R�^2\\u0018�,���6���h\\u0007�Eq�E\\u000e[c�L��\\u0014�Ğ�󪟎�1�<Lq\\u001d7C5����6�^\\u001c|�e}����FnE�}ݩ\\f\\u001f&C��A�\\u000f��\\u001ftWU\\u0006\\u0004�<��\\n�f���\\\\�3h�D�4^O��i�v!$G\\u0004G�-\\u001btק»�|s\\nx\\u001c���\\u0018Cr�\\u0003�OJ_���W\\u0018�\\u0005���.K\\u0018������G'\\u0019�V�E��\\u0000�Im����b�Βv�_�0vr�x�e\\u000b�5�\\t�CK�!ȇ\\\\\\\"e�\\u001d�f�L�\\u000e�]lI��cc��H�^E�@��;n��\\u0000���_0!���rN�QП��8l�,�\\u001c�s\\u001a�.ǰ�\\b�;�kފ?/*\\f>K*�3c�\\u0002\\u000bN�?\\u001a�\\u0006\\f�\\u001c\\u0019d�X�J�sp\\u0011E��\\u000fƋ c�YvF�!>��\\u000f��̜\\\\?�L���4B(#��\\u0016���kX�S)�\\u0001P#�ȱ`ąR5�\\u000e�Lm�\\\\\\\"��Z%��+�sv\\u0019r\\\\�F�\\u0019]xSu�\\u001c���%C\\u0014�hݸ(#��J�Y�D̀�(v�\\u0000-�u\\u001f�]�#�<vh��\\u001a�\\u0003�\\u0016��� ��h~��$�eٷ[�\\u000b\\u0001��B���#\\u000b\\u0003��i�\\n\\u0007��b��]���C^'�P�S9�ɟ�J@D�v��\\u0000*v�j\\\\\\\"-)0� ���\\u0005-��,�\\u001b\\u0013���IL����\\u0002�-�l��k�E\\u0012d0�1q�\\u0015\\u0004��{�|(�b�}�_\\u001e$���DkP'l��!�����mD��b(�5-�-f�n\\u0007�B�\\fF'�#�$\\\\\\\"�\\u0002�o`)\\\\/��N�{\\u0006�@�ƝI&��~Ur��\\u0005��H,�\\u0003a�{TC5y�gT\\\\]8q�\\u0003if�>��F\\u001e|s\\u001f\\u001b��}c'۰�[|zй\\u0010�cx�t�7�̆�Oc��u͏\\\\\\\"c\\u001c,�C\\u0018���ź\\u0005�w5V|�\\u0010]�t/��� k�CW��~��50e`��P\\u0007P�B�[��)Vl��ݐ��\\u0011�$��\\\\�\\u000f\\n�\\n�:�\\\\\\u0012�\\\\\\u0000\\u0005S�$\\u0012������!���%\\u0017S���\\\\�a����%P\\u001aD{:h5U:t��eWvL��ئ-:k]\\u0007���0\\u001b�+\\u0010\\u0017\\\\\\\"�\\u0007�\\u0003��s\\u000eY�!i�O����%�|�z���\\u0017\\u0011\\t\\u0017��`\\u000fk\\u0002i�\\u001b����\\u0006X��wgȿy\\r�\\u001azڇ�E�Ė\\fA'�g�1 ������LLd;�������7�&\\u0014�1�\\fne? 9�(lI���\\u0000tU.���\\u001b�����ph��]��\\u0015e$\\r+$�s���14mm�B��{��#\\u0006i����\\b��A���\\u001a�jH\\u0004s��_��f\\\\��@5����Gq8�\\u00068��K\\u0001�Ϋ�i�ǈ�R\\u0011+\\u001fU�o�A˝;F�Ǻ\\u001dH+r,*�=��\\u0011c�۸���h����k\\u000b�tc��g,#��]r\\u000f���)Y2v����������\\u0000Z,M3�\\u0019WR�Wܦ��\\u0005��3�� *��\\u0011-���>�o��\\u001aui��\\u0001�OwC�^�J�\\u001e�y��<w�&FƬN��\\u0002�\\rk#����Q%�F\\t��\\u00007���*9@F��{�%��\\u0017j�C{������\\u000f��8�8�Y!�\\u0016b��\\u0019�[l���,��O�\\\\��E�;�\\\\^�����P�\\u0016\\u001e%�1]h2>@�\\u0013��+�� �\\u0000+����4�9V@\\u001dd�q{\\u0015�8C��\\\\\\\"<q��1���\\fڮ�����\\u0004��G:�t !#@��}F�Z>\\f���bNDa�%z\\u0007u\\u0016\\f\\u000fN�\\u000b-Ŕ\\u001e�\\u001c7���8\\u000e&��q3o��\\r8����B뒛���?R�\\u0005�\\u0000ΜA�\\\\\\\"C⽭\\u0011U\\u0005�0;l.{ҾJ\\u00068/\\u0014%F�\\u0003_�Ru�=��h�8�$�Ƌ�qԪ�k�4lE�V1���\\u0003\\u001b�\\u0010�CN�kW.O�bc�k^1����x\\\\��ɟ*r��ڬ���\\u0000N�\\u0001R\\u001c�1�p�\\t�9wF��,�7]Hץ��\\b%3Hd,a\\u001d7\\u000e�t\\u0000�Z�\\u001aA\\u00126 �>��\\u0013\\u001ab'!@\\u0018u��md\\u0001M�D�lܼlT���qΫ ��,{�_J\\u0007:\\\\��eh�E]�q�+\\u001f�Z�?(c`�G+\\u0016�Z\\u0010�F*祇a\\\\d��?��\\u0001���؅\\u000f[\\u000b�j�~U�T\\u0004��)$e��]3A���\\u001d�,r��\\u000b���\\u0000*.~3\\\\\\\"t����ĳ\\u0006\\nu��\\u0015\\u0000��\\u0000l\\t\\r��\\b���k�z�<Vh�\\u000f/��\\b}ѐ\\u000e�]\\rH�v�������\\u0018��T�;H��dRD���h��Tp���rq�W�#������(�ήxו�,�F\\\\\\\"�݈'��WR���eb�딍�;���\\u001d��\\u001aڍ|I1�\\u0003O\\u001a\\u001b�O�\\n�\\u0011\\u0000�cϖܣ%�s:!\\u0004�\\u000e���w#\\u0017#\\u0012��v���t�jy���1&B�]nln\\u000e�A��\\u0014���\\u0006\\u0019\\u0007��Z\\u0004Q��M��\\u0000�4�x\\u000e\\u001cJcXYV�;����\\u0017��\\f�4��ʙ��kg�\\f8�\\u000e\\u0017��)mX~e�cDcrx����K����}֔\\u001e�n�\\u001aOʶ\\f�7�mx�3�&���H\\u001f\\u0003Ҋ�:p\\u0011��/|\\u001f�vF\\u0006�\\u0003�\\u0004w��R`����\\u001a\\b����d��-����cz ��\\u0014�\\u0003X��c\\u001e_\\u001dQ�h�F2ߞ�&9�\\u001eG��|�c�&HgEhY��\\nݷ|�эƲ�ƻ2X\\u0016�ܯ{\\no�/\\u0003��+K'��C#(-�k+\\u0005\\u0016���k+���\\u00025-\\u001a��\\u0001��=��Q\\u00028ΧJA9��\\u0003\\u0010UI'����\\u000b>l��񶢞�Yoo��!\\u000b\\u000f)�&iQ0Eٸ�R\\u000fVSӵ��;���ĒB<G�\\u0019�����>\\u00174�#\\u00071s3<_�\\u0014R,l�\\u0004\\u0003k���P\\r\\u0014&�G\\n׋\\n�\\\\\\\"�_\\u0003ͽ�\\u0000\\u0011�;�l9�6l�\\u0005�ƒ\\u001b\\u00025!��ҩ�����91d)vbJ=�\\u0001\\u0016�hXqyi�F\\u0011|\\u0010��6���6]����7��\\f<\\t\\\\\\\"�8�Get����:�l-L�\\u0002�\\u0018]V�2�;��\\u0005�\\u0019b#�\\u000eq�\\u0016�K\\u0006Z�\\\\x\\u0001P����CsQ6\\u001c�*��\\u000eH@��A\\u0010�\\u0018mկ~�N\\u0013Ęj2�\\u000f0Pd����:�𤜻���d�H,�>��\\u0000U�\\u0006�P�'ZG���\\u0015#T�<h�v���x0F&T�0i�/\\u0014�\\u0006��)���\\\\���}��@�\\u0018����o�Cp���8$�/�\\n����>ӷ�E yp#�LV\\u001fq91�\\u0017fT��\\u0005�\\u0000:\\u0016�R��n)��Fa`��*�\\u0005T�3Jx���Y���|K�u��@?AJ�q���9y6Ge\\u001b7\\u0000��\\u0005�R\\u001c|i�uc�US��A�\\u0000*p��&9�\\u0005l���:5�T�\\u0000�PQu�L�(�E�.2\\u0002cŌ��+2���=�,)Uy\\\\�E�w�����㽏z&n^\\u000e#\\u0016~:\\u0007�f��%�\\u0004F�5ݯ_AJ\\u0017 cr\\u0012H\\\\\\\"\\u000eӱR���o��U�x��|��R�G%��\\u0002�ۆ��E�c$D��4�Ƙ��\\u001b%�2��\\u0014K��<6\\u001fΨ�/��!L(�6�R�\\u0006ӵN�t]{��~Ok�r��X�nQ�\\u000e���r�p1�O\\u001d(;YU�e\\u0003��i\\u0006�Ҍ�Ň;��<�����-x�\\u001d6�\\u001e�\\u0000h\\u0003���\\u0006�^\\u0005�� \\u001bn�p�]\\\\\\\"��\\u001aX!|�T`\\t\\bu!\\t��q���>L��gr5�{t\\u0017.:\\n&L9�B�!\\u001e\\u0018�2�Go�R�\\\\�?ޜe�6��.6�\\u0000���W��Ϧ��\\u0018dV)\\nq�߶H�\\u0019��5��xq����\\u0013\\u0015�4��V�Ө�\\u0015��Q<O\\u0006:,H�3\\u001d�,@�Aӭf�\\b���O��raV`A3��J�*T��\\u0015*T�R�J�*T�R�J�*T�R�J���9�~�\\u0014���WS�M\\u0001_[�\\u001c~LM��bnd\\u0007����\\u0006�\\u0011�kZ^\\u0007&\\u0019rW%�\\u000fs(���(�w�\\\\��\\\\\\\"b-�L1��D�\\u0000)���p��o{h\\u00059�9\\u0014��8ѣ~�NF�\\u000f������Y�s%e�e\\u0003Bۇ�\\u0001[^\\u0018ˏ���5��%�7\\u0015v\\u001b��\\u001fp?:�I\\u0015x�\\n�\\r\\u001e���܌V�Ξ9\\u0018\\u0012:\\u0011�x�+/��m.6���_��\\u001f%��ry��\\u0007�\\u0015O�\\u0011�e�\\u0000�\\u001f~7����E0�`��6;|�>2��i���Y��cH$�:���ب^��Z��\\u001d�V����\\u0001ӷʲ\\\\NDPf\\u0007���)]݁>��H���PN���\\u0014\\u000bI\\u0007�կ�w\\u000e\\u0012:m�h>+\\u001aa�c�\\u0018���Mε��d*������t#�)Č\\f�H�\\u001c�4�>+\\u0012>���\\u0000�U�\\u0016:���\\u0002�\\u001at~4\\u0013\\b���\\\\\\\"����]\\b��\\u0012\\u00160_�c\\u0000mc�����jI,\\u0001\\u0004��t\\u0017\\r�S]�\\u0018j\\u0014����\\u001f�S�p��X�YR�\\u0015#\\u0007y�4.��}i�4\\u0011���\\u0017{\\u000f 6\\u001biy�X�x��U�)���a�z��i�\\u0000ȗi�UT9��sq@7�G\\u001eFp�3\\u0011�A^�\\u0001\\u0016C0�@\\u0000\\u001dI�\\u0000�W�9\\f���\\u0013u�k���3Ǔ(d>Bz�\\u0017\\u0017��s\\u001b\\u001d��]�\\u000b\\u000e��\\u0006\\u0000��\\u0018��N\\u0002w҈�7�V4$�\\u000b\\u000fSBg�.*��君�N��rgL�qR'��B�~�\\u0006��\\u0007\\u001f\\u001bɛ1�4�.�;�Gj�I<���\\u0012��uY\\u0006�~@�\\u0000*�%x���VX%�o�o�{\\\\\\u001bVg+/���U��c㝺�\\u0003\\u001e��s�.w\\u001e���;qԒ�� u�,nS\\u001a\\u001cV�#�Ơ����Τ��a�(<뫉\\u0017\\u0016F@\\u001f)F\\u0011~�{\\u001ai�\\u0014Y\\\\|\\u0011:\\u0006��PW���\\u0000*�\\u0017\\u00111�x�M�\\u0019H\\u001f4_Z�\\u0003��8�b���\\n�:���?\\u001a��4g#[�\\u0006�=i�4>����\\u00000\\t\\u0017;t\\u001e\\u0010fO�#�hy\\u0018�X�\\u000b\\r��2�%Q����\\u000b\\u000b��S��!�6�(bT�kj;�z����\\\\yà�\\u0005b?\\u000e��\\u0001 Ml�6+\\u0015e�m���q<Y3N�\\b��\\u0014���?�\\u0019.&h�2�Fm3m@�+���\\u0011�\\u001f\\u000b�\\\\}�i\\u0004o\\fI4��\\u0019{�\\u0003�5q���9����f�n,D�����6�Kƃ��:�4����\\\\\\\"&5\\t�\\u0014�\\u001b�.�j�6)���PU�*�X�.\\t���1�35˒\\u0015GR�ҜO���T�\\u0011�\\r��^�\\u000e�:O�f.6^$�w�K��M��m\\u001f�5�X���)s���w\\\\\\\"o\\u0012T\\u001e*�}��سC\\u001c��\\t߻����oʯyfd90e\\u000f����\\u0015��^���Ƅ��9�\\u001c���v-�`��;\\n/�Ɔw��d\\u0011X\\u0006${��!G�QX�\\u0013���2�\\u0011����\\b$\\u001dy�>�\\r\\u0010�)�B6�7��7\\u001b�\\u0007�(���q��)��\\u000b���U\\u001681���\\u000bkkږs������>+<�/E�ҺU\\u0007R�O(�z��\\u001f�s��i����د\\u001e`�<�1�p��v efn��n?�\\u000b���Ŏ�3���YA>����\\n��\\u0000�\\u00191Ffx��\\u0014�+�R�G3�G��lb\\\\\\\"y�o�A�\\u0000l\\u001e�\\u0000\\u0013�T��\\r�=+^G��1��ܖ �|�\\u001f���.\\u0013v.�{d��\\u0016��?���,*�Ѻ��Շ�KV�b��\\u0005\\u0006�\\u001aW?����L�3#Uˑ���\\u001a<?ڗ�ά\\b\\\\\\\"�\\u000ewιU�&\\u001e�L\\u0019\\u0018��l��X�X-���Й��\\u001bbJ }ҝ\\u0014\\u0015#��0n:FF�\\u0017��4X]�\\u0016'Qp)fg�̨�-\\u0018\\f�\\r���G`N� �N�Y0x����̹\\u001a2j�ӯ\\n�ɕ�C&(m�m�3����V���\\u0018�q8ܧ�FT�If$��#�~�+'\\fy1��?��\\u0010\\u0000�j��w\\u0013�\\u0015�ĉ�[n��K~\\u0017�\\u001b�\\u0006��5^9�NB�:u\\u000e5�}�V+�����E���X�ƣ��\\\\\\\"�-n����\\u001cC4P�U��\\u0010��\\\\ٟ�^�o;\\u000eFG/>JD<S$~6ч���\\u0007��r�Ќ1\\u0004�����k��OQnƗ�\\u001b�#��y*\\u001e_t�\\u0017��\\u0003�5�$�,\\u001eY�\\\\\\\"�\\u001e���-C�\\u0004%Ԑ\\b�\\u000fku�e3y<������b�\\r\\u0001?�~4l\\\\�^.*D��F\\u0005�0��[i�00�E\\u001e?\\u0003&4N�g\\r�?\\u0018��<+\\u0007�!,Y ���ݲ���~�fl\\b.���\\u0005��o�u�o\\u001f\\u001b�)k���r�Ԥ]@�\\u001di�|y\\u0018�nC�\\r�\\u0016M�{��;~uF\\n��yT\\u0019\\ny�\\u0015�\\u0001\\u000f��}5���\\u001cL�\\u0011�24p�ob\\u0006��\\u0000iF����Ȇ(I�b\\u000b�\\u0000�ֻn�Г�Hp��\\u0015I\\u001e?\\u001a�\\u0003\\u0011���\\u001f�y\\t\\u0004d�2H�\\u000e�0�A�U��\\u0005]H�g��(s���ٌ�Lq��%�6�׍\\u000b��\\u0016W-����B\\u0005t�\\u0003bX.��Ɏ\\f�>\\u0012�#1(T[[O��ߝ$��}�I\\u001a��㸞�j\\n#��:\\u0002��L'k_��\\u0010(N�#HmO�1\\\\�\\u0014��`\\n\\u0007��i�뙹3���� �H\\t,\\u0005���w��s�\\u0018�\\u001c,NL�ʥM�S𥼞;��F/%���\\u0000��Fa�ȜrC�o4A���\\t���:SgBN��ғ�\\u0002fl6�2\\r-�����R��X��@��\\u0012\\u001e��+E�.\\\\\\\"r��ʑ�&�`T\\u0016.\\u0019@��]>\\u0014��ņ\\u0012�\\u001bdR\\u000bKcuQ�-�\\u0014׏��� �+-��\\u001a�\\u0002�\\u000b�ڞ�\\u001bH�n��*%5%Hֵa\\\\y\\u0001B\\n ȥ�2��&���y�����슝6�m>u��\\u0019��RbO�\\u0000��{\\u00186��@&�֓+\\f���\\u001cL��� g;E�����\\u0016�]��7/��e!\\u0002\\u0006�\\u001b�w�uݻ�L@�[� �>4�#?��>fPȥQ\\u0015m\\u001b\\u0001�/�f���2J���\\u000b����S^#\\u0001\\u0019q�V��q\\u001e�\\u001e���2��9\\u0014���[\\u0010H��<WXZ\\f�f\\fQ}���5�\\u0000\\u001a6���b+>|��f\\u0016���.�\\u0000*sx#;%\\f6X#$NT\\u001b�RA��W\\u001f\\u0018a�IpW�4D(�q\\u0006@��4B�<�>T���h�\\u0012�.;�z';3\\u0003\\u0002 �!|IHm�\\u0013\\\\\\\"�裥�\\n�\\u001f֫0�\\u0019\\u0017�;\\bX�\\u0004��\\\\\\\"��\\u000e�>I,��,lA�H�kzѐ���G4)y\\u0014�N�r��?*\\u0013Ȓ�ɐ 1��x\\u0016\\u0007k\\u0001���L�\\t\\u001c[��]�����aL�\\u001fJ\\f�U��b-�\\u0011�Ү?�Ƃo��[cc���\\u0001�\\bm�t\\\\\\\"��9\\u0001��E���QI�\\f\\ba�\\u001dz���ƞB\\u0006��\\u0011�u ��\\u0003���x\\u000e&\\f�9ff� b�\\t -���֕�\\u0012�p\\u0004\\f�Y��[��L�_�a� z�;��9a��?zP�n��[_AO�\\b��njm�\\u0018\\u0003{\\u001dON��e��r��VU\\u0007z�}.\\u0006���\\u0013�-�r|)����+0\\u00014���L\\u0000|G\\u0005��Y$&BaK���4��œ\\u001ehe�̪�c`\\u0003��Е?ҧ\\u001e��\\u001b��\\u0016F�����}�<<�\\n�\\u0015m-�6�\\u0003��\\u0019\\u0019�Y'�\\u0014\\u0007oh�:�\\u0005Q\\u0004\\u001b�\\u001ac+�8�8�H�O=j�y$��u�FD���!$\\u000b��S$���|x���{���k��IR6`�,ık}$h:v�0�\\f�d�\\u0016fK+\\u000f��ikkKcd\\u0019�\\r11\\u000f#6\\\\l�\\u00190_�㦚\\u000f�{���ئ\\u0019ȍ$*�N�]��\\u001dh��|���\\u001dHg��X�t�{�̼t�\\u0015�\\u0017�h����q���!�I\\bb�\\u0015z�?�LQܛ\\u0007p\\u000fӨҹ�g�\\u0011��/�˔��\\u0019�O��K;\\u001f�\\u0015e\\b�$V�q��v����L|Nf`��o\\u001a�\\u001c�w\\u0018�lF���S��y� ���#\\u001fE��j�~\\u0017�Ö<¬�>�J��'���@ \\u0005���i:��\\u0000Z���R�g�\\u0005�f��5���%\\u001a}�\\u001c��\\bє\\u0001�k�HN\\\\�\\u001ey�gH�<b�f7;zt��g�>z�7�n<E�m%�l\\f\\u000e޽.��W����Pd�dm&1`.�G�B��\\u0005��Z~@��KÙ�V\\u0018�Dʫn2\\t�F;G�UX�>D��O$�^E\\u000ez���ꮸ��98�Ż�3.��5�\\u0000Oc�W����\\u0004p$�\\u0015\\u0014\\u0000�bG�\\\\q�ΞL�\\u0018�\\u0014�3*���u$��\\u001a�\\u00179Yr.VR�\\u000eސw���:�y�e�F����\\u0010\\r�[��6c}�p�#�2�\\\\\\\"�@���k9�C\\u001f+*9�\\u0015�P$d�t_rXz\\u0013Bcaa���Ϋv����\\u001d�}\\u0002�7�\\u0002I�\\u0001������0b\\u0019\\u0013#<�����\\u0004\\u0011\\u000fo\\t���\\u0006G\\u001a\\u000e\\u001c�c�\\u001c�T�!'����U��y2a�\\f$̨,A[�n�!ڛC��+\\u0019cU�UP��\\u001b̋�_��&>:$~�^ߨ��D�`�K�y5K�c��_7: �\\u000f��@�F�<i/\\r,��eY\\u0003\\u0019$���\\u0007�:ۯ����o�v�\\u0018��\\u001fN�\\u0003{�T�|j�ٸ��R��\\u001fs\\u0001���E{�49�1�VX,���\\r�-�~$�QZ�\\u0011\\u0005L�6\\u000b\\u001f\\u001f��ѕU��U]��3\\u0003���\\u001f.A�۸87:\\u000f�\\u0006��\\u0000\\n��\\fQ���\\u000f��Z#��\\u0000fʍ\\u0017\\u000f'���,!/�l@+��)PʘJŋ8o���4Jd\\u0010t\\u001c�?zFN�lb�\\u001c\\u0006�4.��4F?\\u0017��ϴ�Cs\\u0018!E��H�r�\\u0017\\u001f6Y�\\u000f\\r��#M\\u0014\\u0005�ʕ\\u001eBX�U\\u0004\\u0005kl:�\\u0017J/\\\\\\\"G�q��\\u001f�\\u001d@X�R\\u000b\\u0012u,��\\nX-�\\u0002��K��h\\u001cvS.\\\\�2�\\u0001J7�]�\\u0007���3�<У�s<m!f�����\\u001e��x3��\\u001aH�\\u001b;��p:�Z�\\u0000>�[���\\u0007Қr���~\\u0000|y\\u0015���8�>�hY�o�\\u0018:k��ݑ�0 rּ�U��\\u0007��\\u001a�k�R�,zFz߹�z�X2:bdH�U����v7���^p\\u0018����!-�OT&���}.i�g�`�9\\u001f���C,Dy\\u00129?R��v�W\\\\\\\"D�\\u0007\\u0003��1�8��Y��-\\u001cv�K��g�\\u0019M\\u000e=�\\u001a�\\u001aG;B��j5���b\\b�9\\u0004r��%�\\u0010�z[�p�xy1���>��k\\u000b\\u001f�AL�N>qyd�2A`��\\u001b�o��\\u001a�!�\\b\\u0004�Vr�VF\\u0003\\\\mu�H�&=k=�\\u0017�8�2���\\u001d� [�\\u001b�p�M\\u0016��4X�a�M呝7\\u0003�S���\\b\\u0012�\\u0015S���~Φ�÷�\\bf�|q��T��i��j�T�m����_zV|���w\\u001eY\\u0001\\u0013a�OL,���8�>#\\u0016r��>��\\u001du'����3&��(sR�NJ��f]\\u0007V�Q$o��3�\\u0011�\\\\�-���mҸ\\u0013��s\\u0018l�&60\\f�G���4�К\\b\\nIP$��ZA���V���q\\n�l\\u0003�\\u001bW��\\u0015C$,����jB\\u000f����1���B�2�\\b�\\u0001\\u0012�\\u0001�k�\\u0015w-���ƫq�\\u0004��UK\\u001d�Ս�����BVC#�\\u0002ୋ7MOK�ݱh�Ʊdő�L!�(c�լ�Ki\\u0014�\\u001b\\u0012A3Ì'ز�Y�Ԃ�\\u001dkF�\\fX�2�A:y�d\\u0012!�C�H���G�U�\\u000eCH��(/+�_m�\\u0006�-�yl8�%e�M�q�\\u000b���~},hX�T\\u0011%���rdGn�DS\\u0004ɽ��\\\\����.\\u00042�㬬�\\u0003s�N�Һ��\\\\d�7\\u0018\\u0019�_F�mS^ޔ��$���P\\r���U'U^�[sx�t�G�∝6\\u0000H,u\\u0006�҉���f�F�N��k���Jc.�Y��c\\u001a\\u0010\\u0014�\\u0006���N\\u001f*I\\u001b1B\\u0013\\\\\\\"YVᶎ���\\u0017�܉Ĺ2�$y�Y\\u0015�n��N߅\\u0019���2G���E��\\u0018��\\u001b�*z\\u0011���I B�����\\u0002F�m�\\u0001xp��.�s�)��\\\\�\\u001b\\\\\\\"\\u0001��\\f�\\u0015`\\t�K\\u0018ֹ���N[ �!�ȂB��lI��XQr�\\u0019!�췊05.Z��5�\\u0010$\\b�!�hU��}����CҌnB\\u0005��R\\u000b�36<�,\\u0003�\\u0000q���\\u000bd\\u0018�4��X��\\u0000\\\\\\\"�ɓ����\\r�\\u0011���B�+.B�T�^��C\\u0006]v�Wa�\\u001f����Bık\\rI�SC��K\\u0014x�c�%��\\u001b^R��{RLX2!�'�\\u0015\\u00143\\u0016�7�5\\u0000\\u000b�V�FA�.\\u001c\\u0018\\u001b��Zw��3\\u0010�����\\\\A{jJƣ�\\tםy��O��̬\\u0015X\\u0000n-��k[Z��i�,�x�hE�e˖\\u0000\\u0011��\\u0014ۄ�����c�\\u0019\\r��\\u001cZG���ԍ���*��f\\u001eW\\u001a\\u0014ƒ\\u000b�����t{�sm;iE:\\b��J�\\u0019\\u0003�ۑ\\u0010(F\\u0007�����(��s��]�R��!\\u00181\\u0016��6�eY��.,rCcv��\\rNݴ\\\\�P���\\u0019�C�\\\\��)ۣ{�`\\t�FY|8�\\u0010I�\\u0012\\u0003q�f_���\\u0018(\\u0006\\t�:yV�.r܌J顶.��xQ����GvR�X\\u0004\\u0005�\\u000e��ކ�%��[ɖ\\u0019���\\u0014����柒>\\f�����H����\\u001bG�\\r7�I9�&\\u00171�\\u0003D�\\nn��m�Z��\\u000e?\\u0010*������5��\\u000f�?�6!���#��A%�\\u0011�\\u0015��9\\u0018�c1���Q��khӶ��&Lֿ\\u001b\\u0018LAAf��o��R�J�}J�*T�R�J�*T�R�J�*T�R�J{�zs�\\u001c�f�#�'M,?�H��?7�ɍ������R���912�tƞ�V|��\\u001c.��׿_�WҸea����g\\u0000��n���|�F���\\u0000\\n�#�T�\\u0018i�qr\\u0003�Ѩ�e7\\u0011)^���\\u0000O�_�$$�U\\u001b,MS������O\\u000b��沰�v�!��)'�uE�\\u001foM���+�\\u000ed|s\\u0013IgF,\\u0013�S��\\u0000:��\\u0004���ȧp����s�\\u0014�x��x�w�\\u001aR� �\\\\\\\"U�%������/�\\u0017��J�XTF�\\u0002u�\\n���ɉ7�5���꧵lx~C\\u0002LI$Yv��i��U{\\u001f��[mߪ��\\u0003#4G���y�x��l�\\u0014�s �,\\u0007_R+G���6[� ��r\\u001c�!�d�c#�\\u0019E�(:]�>��\\u001b+.\\\\|$Ȝ���\\u0012Fl������\\r�}����\\u000b���1\\u001c�1cV[�\\u0003�gi;\\u0013G�\\u0016А\\u001c\\\\�u���`�\\u0018���`A�n�Ҽ�61�ؗ,�\\u0003ݵ]���Z�:_\\u000e+HE��\\u0001�ש�\\n}y��pB>Q\\u001fZ\\u000b�\\u001a6y�Oj��ݗq�Zg�H˸D�M�Ge-��7��.s\\u0004?�q3\\u001c�9s�$���r.\\u0012����E\\u001e�&�8$�\\u0014\\u0016���mB�?Y��\\\\O�\\\\\\\"\\u00163k -���\\u0000u\\u001d�#oF��@�k\\u0003�\\u0005�Z\\u0016%g\\u001e;�cm{�K��f�E�c4LW:\\u0016\\u0002M��\\\\\\\"'U��\\u0000�ژ�e\\u0007�&��{zޅv��fʁ;nç!&\\\\\\\"6:�5˼X�7�9\\u0013Mf�L�t\\u00146\\u0000g�%�\\u001a���u�֫��k���$�c\\u0006(�o%N��~5'#\\n\\\\٣��B��Gö�\\u001a��2�B\\u0016\\u0006��j��\\f8��* ��]b��U�ˉ�s\\u000b�h��f���\\u0000�e�\\u000eq�`�7i�jkq\\u0018�n%2�\\u0011\\u0012E�w\\u0000V5#�lk(�\\u0013��W�C2,��p�)АN��㸨�\\u0007�ogǏ&@\\u001b�:���~�t�\\u00121\\u001f\\u0012���5��i��BI�E\\u0005�����},h�p\\u0001�b\\u0012�\\u001eC��0:\\u0006�'�)H�ՖE��)\\u0000��߿ʴ)\\u0005yEr�1nK��/z���Ld%Sw��c�\\n˾#�(U\\u0010���\\u0004kܞ��i�$@��7�ʑx�\\u0019?u\\u001b�ʦ�#S{\\u001a\\u0012�~�_�r�˱1*W�E{<b-�\\u0001%@��\\u0000\\u001ay�\\u0004\\\\\\b\\\\��ۊ��o�i�,�X�rN�Qu=����\\r�\\u0004��(d\\f�{$[�:�\\u0000CT�\\f����\\u0018!��\\u0005��j̕V/\\u001d�F�\\\\\\\"i>\\u0006)��heUpc#m�� kzg��\\u001c�*{��η�ҳ�9�c�\\u0016���-��\\u0001\\u001aީ�P\\n��Yʫ2�\\u0004�s��8�ᱱ�٭\\u001eS�\\u0005Sq�۩��a��F?M�#�Ks�<��\\u001d�$iD/�+\\u001d{A��#@�UE����\\u000f�Ҭ5�KV�;\\u0013cp��p�$\\u000f�S��a������v�\\u0015�FF(1>;�W�&�zt�E���+�\\u001b\\u0002\\flŏ�6��t��$\\u000e�����m���h\\u0019.H\\u001b��o\\u0011º\\\\X�9�A�<�N0X��-�\\n�\\u0002��T�R�F��M\\u001aJ�%�q�è�׸�F<�X�*��=V�[׹�\\u0018��A�<�\\u001c\\u0012�( 3�5\\u0016������\\u001db�Q\\u0003����l�\\u001e�*���fE]˘\\u0013�I1���\\u0017�[�5�N)�\\rZ\\u000f���cX\\u001d���\\u001f5�eƮ�+\\u001d��\\u001a���\\u001f#f,\\u000e�#`���\\r���\\u0011�E \\\\<o\\u0014a\\u0001�w\\u001b�\\u0000��\\u000f�J\\u0003�YdY��R\\u001f\\u001e�Q�\\u0004�A�h��<�y�R���]�{�>�J�e��j�0��\\u0007`F����&(��H,z\\u001e�\\u000fJ���\\u0003!���fb���deER���\\u001a\\u0018#�-��ً3�\\u0000�\\u000e���<����g��B\\u0000�h\\\\j\\u0016��JY\\u001f\\u0010�\\u0019K�(TfX�\\u001b3(�\\u0004���\\u0017\\f\\u0018��Q�݀ n�\\u0007��G�è�\\u00136\\u0005�L\\u0016\\u0005ā�\\r�Ze�(��\\u0019k��\\u001b{�?O�޶��1%�&EY@�.��X�o�t4#�Ĺ!���\\u0010�\\b����\\u0019\\u0006d2d�ЈSV\\u0011��VB\\u001d\\u001co7\\u0007SqR��%�\\u0007^'ޛ�{�;\\u000f�\\u0010:�\\u0015e@o}��Q���\\u0012��\\\\H�5F�a��}ަ��|C��O\\u001e4n��6\\u0002��Ҵ�|ɏ� �h\\u000e�\\u0000�k�J�\\u0011�4|��`\\u0012ܓ�ְ4R�\\u0001\\u0007Ҧ,�q�p\\u000fq-�A'�\\u000f�D�pe�\\f��#\\u0012�i��\\u000bU�g�RG�\\u0001\\u001c*�P~�=��#p%ȑO�DN���+?�J\\u001e\\u001ch���\\u0000������Qؚ��e\\n'S>��p�_)�B�֥�q;���\\u000eY��#�\\fAe\\u0003��)a�B�E*����\\u001b�\\u001a\\u0018D0�D2��n�I�t���Vq�\\u0016��*AUo!�����\\u000b(\\u0019.\\u0002\\u0019�&yS���\\u00182?s\\u000f�\\u001f*@��\\\\\\\"iҪ��\\tB]�\\u0017�����5��)�\\\\�9\\n��K(\\u0000\\u000bn;E�5�\\\\2G''\\u0016,���\\u0003/�z�A�:C&\\u0012�\\u0004���@.��\\\\\\u0003֚����KM#�ǐ\\u0014$\\b�\\u0002���L}=)�\\u0004�2�4�\\u0018VAtBnX7F\\u001e��5\\u0016�\\u0006`�����z�X\\u001bU�����x��\\u0018T(��v���\\u000e;6\\u0019\\ti�C�$��#o�Rы^���؊�� S�2\\u0003�\\u001c#��\\bx��U@[��cbZ�y?�[R~B����p���\\u0013�\\u0017\\t�[��p�«�/��r{Y����N����Y\\\\��ʦ3Ge��\\u0012:�'�z��\\u0011p\\u001bH�dGō�5V��Cq\\u0002�)\\u000e\\u0006KbK��\\u0013�gi\\u000e����������f��Q*�&F���}\\u0017�qz\\u000f�\\u0001�g�k�Z/����u�\\u0003\\u0012�Ν\\u0018\\u0005���Z 5�g׍guV�|�[nU6GDͳ�UE��\\u0014�\\fX�\\t\\u0001߹m��k��cj��<\\u000b�{Ɩ۷����f<�i�o{n]G}-T��@p���n>Wv�\\u0000IeR�1��h`�M5\\u001c�W�\\u0000������\\u001c\\u001cs��Hۣ\\u0012\\u0012�q�\\u0000۽6㡕�1N䭀�;��m�\\n.H\\f�����\\u0019f\\u000b�r�\\u00144�fy\\u0016x\\b��qs����B�����ь�툽���PxC���WYXY\\u0011��5m�pRO�\\u0012\\rL(#�\\u0011a!��\\bm�roԏ�\\u0018����\\u001dDd�F#S{t�ٙ&\\u001c��������\\u001f�\\\\�E�zw�\\u001b�\\f�\\u0007n�\\u0010��#]f�ɏ�lg�A�K��N��k�֚�\\u0000\\u0011ď\\u001f\\u0002a<!rZB\\u001fq��\\u0001�ߙ��!cV@�\\u0017\\u001dI��DˌV%�Y\\u0006��P��֫��N=\\u001b\\u0012��Zߑ�MJ�\\u0000��\\u0013f☔����䮇Ao_Z�\\u0017�Η\\u0015011�=��\\r\\u0011\\u0017�kEd�\\u000f-Ǔ�HU�_�\\u0001D@��Ⱥ��\\u0005�$cm\\u0000���T$\\r9�h�.p��B\\\\\\\"�=\\u0007Q\\u0000@�?슪J�Y�A�K��Z�\\u0005�\\n\\u0003\\u001eT\\u0017v��wid i�4�{A4��6��c�޺P�\\fl��X)t\\u0011��}%��;}5���\\fp��ix�����fċ=&֞\\u001bEW�fA�\\r�\\u001b4[@����:�;u���ʕ�\\\\\\\"R�(N�(\\u0001U\\r�������5��3�Ǖ$�]��6��kX�)\\u00174Pbυ#��\\u0016\\u0004�Su���鲅J�K\\u0011\\u0017\\u001d��SF|X�rB\\u0016q8���U\\u001c}�ҞD��\\u0001�c`���:j:|�<�x�7D�B�t\\u0017\\f}livD��l�0��\\u0004k����2\\u0002b�1%\\u001e\\\\\\\"1ўd\\u0001���N�\\nk��cVm7�<\\u0007\\u0006Ll�V6�o�p����2��e�K��y��7`O�ji�ˌ�<o�z\\u000b\\u0019n@#��\\u001dh%h2\\u0010dJ�y?��\\\\���\\u000bvF$��33��C�CV\\u0000�qܼ\\u0019�^\\u0015�\\t���ؚ,q��\\u001a4�\\u0006�q���>/\\u001e�-<����D_�v\\u001ajv�|h�K��\\u000e\\u0013<2�#[\\u0017-`ڛV[\\f��&\\u0016�\\u000021$����<ٲ\\u000eKM+��`\\n�pN���(1cLzcP�7Ei���)��\\u0012P6>���~3?.Q<J�\\u001d�c9�Hc�u��\\u0011E���Gl�H�b����Z�/:l\\u0018Y�m���\\u000f@[���C�.L33\\u0016���I���M`�\\u0001\\u0013�]�\\u0018W.i�\\u0015T]\\u0010���:m���Ǚ��)�u��E��[�lQ ����\\u0014 (�_�'қ�K\\nƉ�}�ہ��C��8'\\u0010/�\\\\�\\u000b7_\\u001d�\\u0001Q�F���\\r�\\u0003w.��O1h��\\\\�M\\u001f�ø\\u0015\\u0004���|\\u0005)���x_%�\\u00129f�tRM��Ju&\\u001c)�=��8��M��@z�z8\\u0011��wF���d��I�T`�O�C�.\\u0007G�|X*�k:��_��\\u0019\\u0012�X��i���Ж�;�:�B�x�#\\t*���Ikz��Y��&\\u001e\\\\\\\"Fl��/�hT��o6d�\\u0002\\u0016S����Sb\\bSj�a\\u0007�\\u0003���\\u0019�\\u001e1\\u0001W9E,\\fܛܴ�\\u0019|Xq�ʆ'[�=��$�m�\\ry�s\\\\\\u0003��ZF\\u0015zJ�R���\\u0001�r9��\\u0015���\\u0003��t�cEa\\u0015L�<\\u0004\\n��\\u0006,�|do����:U\\u0010Xo�3\\u0003�\\u001c�{���Z\\u0000�\\t�$N�JO����g�q���#\\u0010M�����F�̊H�U�Dr]:\\u0000/��&�l׋8B�Е�[�ק�Uf\\b�8�\\\\\\\"����\\u001e9I�\\fT۷�\\\\\\u0001�-�[;�����C(Sq\\u001e�C�\\u0019$y������2\\u0013Rw\\u0002W���y�\\u0004���S\\u001b���\\u0002X^��\\u0005Q�dH��L�\\u0003�e`��,�|m�i�\\u0000�c}��\\n\\u0006\\u001c�!��w`N��ҁ�\\u0016�>mg�@�X3�'\\u0002\\u0007�0�� zи��\\u0011��g�\\u0000nd�tP�Rʹ�ۍ͎�(<��\\u0014�a\\u0012\\u0016x��[A\\trnzz�L\\u000f3\\fO'�!\\n��Aڹ��5˙v�\\u0000�\\u0001�>�����\\u0005\\u001d�hN�iY|��\\u0003[�2R\\u0017�i'�'�?\\u0018��t���E�\\u0000K\\\\\\\\���܌�|\\u001c}�ۣ\\u0016U\\u0007K��kRn;��\\u001f��@6\\f�vbmn�ګ�,)\\u0017���k(\\\\\\\"�.:kB\\u0018����^_\\u0017\\u001e5.šr��\\u0000�ΣS?�\\u0019�q�'\\u001f.TE\\u0017��\\u0007k.ۓ�V��[\\u000f\\t����kX�ګ3���������<Y�o).��I 1\\u0017\\u0007K\\u001a\\u001f�dC\\u0013%ɸA�\\u0000�ߍX\\r�\\u0013�)�T]�6\\u0002��W�jZ\\f�`\\\\�Ji�d����˩A�ʵ��j�Vl�q�\\u0005�\\r�\\u0017M�bGOZ�\\u001d\\\\\\\"�����\\u001b\\\\\\\"-�\\\\\\u0011�\\u0005���4dpcdq1�b\\r9�l}7)�r\\u0003P��\\u0016�\\n0�ǘb�r��Ñ2$(\\u0002��c�P��s�\\t�\\u001d��\\u0010/����1��'��eFŒ\\u0016�u\\\\\\\"�.������0�`�R\\u0005̶`�+cj\\u0013��4�F�3�\\u001e͛�-����1�\\f�\\u001d�ki3\\f!�מ�G\\u0016%\\u0001�W*�UYA�Ĉᵣ֍�*G_ލ�W!�f#�7�z!p���ߔ�Ur�,uk����s�:I���㺂�X)7�Z�,c�E�!\\u0016�U.4eRi�J�?�O�Y���g�nLh���L2�\\u0002?�u�9�lLd_۔>�'�{\\u001fΑ���9\\u0019A�\\u001b\\u001dw�΃��\\u001d\\u0006��$\\u0011���#\\u0019\\u00165y.l\\r����S��1��G�v���[q��])L�I�ڴ�ωQ\\u0010�\\r�B������&���\\u0019\\u00181N�\\u0015���k�I��}q�sQ��'���mVB\\u001bA��\\u001fZ*\\u0001�\\u0003b\\u0005\\u001b\\u0018��7\\u000b㽏���qRA��6 \\u001b�@��-k^�Յ���N�P\\u000e��Y\\u000b�o\\u0013#�ŕ�i������k�3�/����\\u0002\\fu�`I�66�^���L��cK���\\u0019da���\\u0002,\\b\\u001f\\n����1�!�D\\u001b�Ա\\u0004��Kx�O��\\u0018%!�p�hU�{MG��\\u0014��\\u000f�S<Eŋ\\u001eKд^\\u000e��r\\u000fҘE#M��\\u0010<�G\\u0014�I]���C\\u0000-�{U�ir�1�\\u0011������?�u�:��|�,��Y\\u001e{\\u001fk�f�~4'\\u0019\\u0004�|��i�!Ŕ�\\u0013{�[�n�a�@ \\u000b�,U6\\u001c,��\\u001b��=�������ƦfzĲb,�\\u001c��3_��\\u000b^��������f�U����F�\\u0013b>4�<.\\u0017/��r�\\u0016\\u0005t!w\\u0001��u�fK\\\\\\\"G�\\u0016�V�686V)}�����D�\\u0016O\\u0001\\u001cw�58�d\\u0018��\\u00179\\u000f��ŧ���p09l�˓l%��H,��~�zک�dI��1Z'�H�1%[i�S�DK���E2P�<h=Ȧ����5���dFʒ�A\\u0014lX�\\u0005�Q`5��F@\\u001a���[���)��.C��*@{�\\u0002���&��0�U�\\b�n�m[�=�ۧz���p���&B�\\u00164q�%�]�U �I�\\r.0�����:�Y\\u0016�\\u0001�����8\\u0019�\\u001f\\u0011$R�ŉ RW��o���@�\\u0007�k�֞\\u0019�\\fy-p\\u001e\\n�0\\u001eJ��1T�\\u0000$:c�^�.�\\u0002�\\u000e��4ǘ���h�ٙ�AݸX\\\\�\\u0000Z]P�Z<T�\\n�\\u0015�Ѵ#Z�*T��ԩR�J�*T�R�J�*T�R�J�*W��\"","status":200,"headers":{"content-type":"","content-length":"341512"}},"type":2,"external":true,"timestamp":1723918433605},{"data":{"url":"blob:https://ipfs.arkivo.art/08cd4331-0c59-4483-aefc-65d538ebb73a","body":"\"glTF\\u0002\\u0000\\u0000\\u0000è‘\\u0001\\u0000ˆ\\u0004\\u0000\\u0000JSON{\\\\\\\"asset\\\\\\\":{\\\\\\\"generator\\\\\\\":\\\\\\\"Khronos glTF Blender I/O v1.6.16\\\\\\\",\\\\\\\"version\\\\\\\":\\\\\\\"2.0\\\\\\\"},\\\\\\\"scene\\\\\\\":0,\\\\\\\"scenes\\\\\\\":[{\\\\\\\"name\\\\\\\":\\\\\\\"Scene\\\\\\\",\\\\\\\"nodes\\\\\\\":[0]}],\\\\\\\"nodes\\\\\\\":[{\\\\\\\"mesh\\\\\\\":0,\\\\\\\"name\\\\\\\":\\\\\\\"textured_output.002\\\\\\\",\\\\\\\"rotation\\\\\\\":[-0.21056242287158966,0.7044283747673035,-0.6330467462539673,-0.24227260053157806],\\\\\\\"scale\\\\\\\":[2.0711774826049805,2.0711774826049805,2.0711774826049805],\\\\\\\"translation\\\\\\\":[0,0.5309897661209106,0]}],\\\\\\\"meshes\\\\\\\":[{\\\\\\\"name\\\\\\\":\\\\\\\"textured_output.002\\\\\\\",\\\\\\\"primitives\\\\\\\":[{\\\\\\\"attributes\\\\\\\":{\\\\\\\"POSITION\\\\\\\":0,\\\\\\\"NORMAL\\\\\\\":1,\\\\\\\"TEXCOORD_0\\\\\\\":2},\\\\\\\"indices\\\\\\\":3}]}],\\\\\\\"accessors\\\\\\\":[{\\\\\\\"bufferView\\\\\\\":0,\\\\\\\"componentType\\\\\\\":5126,\\\\\\\"count\\\\\\\":2609,\\\\\\\"max\\\\\\\":[0.29284992814064026,0.4099600613117218,0.3582335412502289],\\\\\\\"min\\\\\\\":[-0.249650776386261,-0.4307509660720825,-0.3195040225982666],\\\\\\\"type\\\\\\\":\\\\\\\"VEC3\\\\\\\"},{\\\\\\\"bufferView\\\\\\\":1,\\\\\\\"componentType\\\\\\\":5126,\\\\\\\"count\\\\\\\":2609,\\\\\\\"type\\\\\\\":\\\\\\\"VEC3\\\\\\\"},{\\\\\\\"bufferView\\\\\\\":2,\\\\\\\"componentType\\\\\\\":5126,\\\\\\\"count\\\\\\\":2609,\\\\\\\"type\\\\\\\":\\\\\\\"VEC2\\\\\\\"},{\\\\\\\"bufferView\\\\\\\":3,\\\\\\\"componentType\\\\\\\":5123,\\\\\\\"count\\\\\\\":9105,\\\\\\\"type\\\\\\\":\\\\\\\"SCALAR\\\\\\\"}],\\\\\\\"bufferViews\\\\\\\":[{\\\\\\\"buffer\\\\\\\":0,\\\\\\\"byteLength\\\\\\\":31308,\\\\\\\"byteOffset\\\\\\\":0},{\\\\\\\"buffer\\\\\\\":0,\\\\\\\"byteLength\\\\\\\":31308,\\\\\\\"byteOffset\\\\\\\":31308},{\\\\\\\"buffer\\\\\\\":0,\\\\\\\"byteLength\\\\\\\":20872,\\\\\\\"byteOffset\\\\\\\":62616},{\\\\\\\"buffer\\\\\\\":0,\\\\\\\"byteLength\\\\\\\":18210,\\\\\\\"byteOffset\\\\\\\":83488}],\\\\\\\"buffers\\\\\\\":[{\\\\\\\"byteLength\\\\\\\":101700}]}  D\\u0001\\u0000BIN\\u0000Ð\\u000e>PS¥¾V\\u001c>Ð\\u000e>PS¥¾V\\u001c>Ð\\u000e>PS¥¾V\\u001c>Ð\\u000e>PS¥¾V\\u001c>Oú\\u001a><¥~¾¦\\u001a>Oú\\u001a><¥~¾¦\\u001a>Oú\\u001a><¥~¾¦\\u001a>ºy\\u000b>\\u0010§—¾Ö“\\u0018>ºy\\u000b>\\u0010§—¾Ö“\\u0018>ºy\\u000b>\\u0010§—¾Ö“\\u0018>ºy\\u000b>\\u0010§—¾Ö“\\u0018>ª*U>'ä…¾¼Ã:>ª*U>'ä…¾¼Ã:>ª*U>'ä…¾¼Ã:>cš’>á¹r¾Ê\\u001di>)N‘>)…€¾\\u0016Ä`>\\u0018§‚>ñÑv¾ßC_>\\bÇW>r¸L¾õmL>\\bÇW>r¸L¾õmL>‰ˆ…>n…\\u0014¾×ef>S¬Œ>Àœ\\r¾¬¾m>\\u001aðj>½ó\\u001d¾Õ\\u0013i>\\u001aðj>½ó\\u001d¾Õ\\u0013i>ívv>ÑQ\\b¾cpf>jªƒ>’–e¾\\u0014»k>ˆ”‹>*4\\\\\\\"¾„!b>ÉR^>Nù\\u000b¾Ò\\u0010h>ÉR^>Nù\\u000b¾Ò\\u0010h>ÉR^>Nù\\u000b¾Ò\\u0010h>ÉR^>Nù\\u000b¾Ò\\u0010h>©~r>F•D¾s’b>\\u0000„>b«¾Hù^>\\u0000„>b«¾Hù^>\\u0000„>b«¾Hù^>9Dh>Û=\\u0006¾‹5q>9Dh>Û=\\u0006¾‹5q>9Dh>Û=\\u0006¾‹5q>mð•>´Ã[¾é\\u0017n>_+”>è*F¾©yd>å˜>9Œ¯¾_Rf>å˜>9Œ¯¾_Rf>å˜>9Œ¯¾_Rf>[ÝG>/Ü\\u0016½[²k>[ÝG>/Ü\\u0016½[²k>[ÝG>/Ü\\u0016½[²k>[ÝG>/Ü\\u0016½[²k>õŸ>Á\\u0015ô½-³p>‚\\u0006‡>ðc\\u0015¾©\\u0014n>ÿÅ‹>‹:ä½éBt>¹Ñb>Øð`¼µaw>¹Ñb>Øð`¼µaw>¹Ñb>Øð`¼µaw>\\u000e\\f&>žÓÝ=–p>\\u000e\\f&>žÓÝ=–p>\\u000e\\f&>žÓÝ=–p>\\u000e\\f&>žÓÝ=–p>\\u000e\\f&>žÓÝ=–p>ÕÚ\\u0010>\\u0018È?>¹õ€>ÕÚ\\u0010>\\u0018È?>¹õ€>ÕÚ\\u0010>\\u0018È?>¹õ€>Ç<\\u0018>'°@>ñ–ƒ>Ç<\\u0018>'°@>ñ–ƒ>Ç<\\u0018>'°@>ñ–ƒ>›-\\u0012>\\u0013â0>ˆªt>›-\\u0012>\\u0013â0>ˆªt>›-\\u0012>\\u0013â0>ˆªt>›-\\u0012>\\u0013â0>ˆªt>›-\\u0012>\\u0013â0>ˆªt>›-\\u0012>\\u0013â0>ˆªt>\\u0005å=>Ÿë¤¾ñÎ=>\\u0005å=>Ÿë¤¾ñÎ=>\\u0005å=>Ÿë¤¾ñÎ=>\\u0005å=>Ÿë¤¾ñÎ=>\\u0005å=>Ÿë¤¾ñÎ=>o\\u001e?>\\t«¿¾¤5m>o\\u001e?>\\t«¿¾¤5m>o\\u001e?>\\t«¿¾¤5m>!\\f>\\u0007X²¾öRc>!\\f>\\u0007X²¾öRc>ðµg>7éª¾8ŽW>ðµg>7éª¾8ŽW>ðµg>7éª¾8ŽW>?.L>½è½¾§Qe>?.L>½è½¾§Qe>?.L>½è½¾§Qe>?.L>½è½¾§Qe>ßã\\u0017>í†\\u0012>ìm^>ßã\\u0017>í†\\u0012>ìm^>ßã\\u0017>í†\\u0012>ìm^>VÑ\\b=¿©Ì¾¦e>VÑ\\b=¿©Ì¾¦e>Ž€C=\\n\\u0018¸¾nøh>Ž€C=\\n\\u0018¸¾nøh>]\\u0007˜=Ê÷±¾fŒb>]\\u0007˜=Ê÷±¾fŒb>]\\u0007˜=Ê÷±¾fŒb>]\\u0007˜=Ê÷±¾fŒb>HÖ»=\\u0006}Ä¾ˆ«g>HÖ»=\\u0006}Ä¾ˆ«g>HÖ»=\\u0006}Ä¾ˆ«g>¢\\u001f+<œùÀ¾\\u0006l>¢\\u001f+<œùÀ¾\\u0006l>¢\\u001f+<œùÀ¾\\u0006l>±ô™=$1Ì¾?`ƒ>±ô™=$1Ì¾?`ƒ>±ô™=$1Ì¾?`ƒ>±ô™=$1Ì¾?`ƒ>ñ}Î»kÚÖ¾býk>ñ}Î»kÚÖ¾býk>RX_;r‡¾5ÊL>RX_;r‡¾5ÊL>Þù\\u0014=s]Ÿ¾÷Y>>Þù\\u0014=s]Ÿ¾÷Y>>ÅD×<HS™¾ÜND>ÅD×<HS™¾ÜND>ÅD×<HS™¾ÜND>¬,<™Ë²¾¶Ïm>¬,<™Ë²¾¶Ïm>¬,<™Ë²¾¶Ïm>\\u0007F\\u001e=ø; ¾Â¸P>\\u0007F\\u001e=ø; ¾Â¸P>\\u0007F\\u001e=ø; ¾Â¸P>\\u0010\\u000f\\u000e=\\u0016úŸ¾iÚm>F0Ÿ<Ù;“¾Œ\\u0013+>F0Ÿ<Ù;“¾Œ\\u0013+>F0Ÿ<Ù;“¾Œ\\u0013+>Qr8<‡””¾œ\\u0013p>éŽŠ=æ·®¾Ç«m>É\\u0005G»*Ÿ„¾·ÊO>É\\u0005G»*Ÿ„¾·ÊO>%ãZ¼c-¡¾\\rrp>%ãZ¼c-¡¾\\rrp>%ãZ¼c-¡¾\\rrp>Æ\\u0000<\\u0016\\u0019¾\\u0017n>Ñ\\u0001›:\\u0013°ˆ¾£jh>Ñ\\u0001›:\\u0013°ˆ¾£jh>ü­<7ï”¾±¸W>·ù1<P¾´è^>crt=Aêª¾\\t®T>crt=Aêª¾\\t®T>~=\\u0011=\\u00123Ÿ¾ß&^>³cf<5‚¾Í¥J>­+\\r¼2‡†¾%8s>­+\\r¼2‡†¾%8s>­+\\r¼2‡†¾%8s>d\\u000b:½˜r¾Nÿs>d\\u000b:½˜r¾Nÿs>³0\\u0017>\\\\IÃ¾P\\u0011g>³0\\u0017>\\\\IÃ¾P\\u0011g>³0\\u0017>\\\\IÃ¾P\\u0011g>³0\\u0017>\\\\IÃ¾P\\u0011g>Î\\b®½Í,‹¾¼4r>y*´½)\\u001fT¾t7w>‚ªý½\\u0003LŽ¾$y€>Ø/ø½lØ™¾¦È}>Ø/ø½lØ™¾¦È}>£x¸½¾”õ½¹|>£x¸½¾”õ½¹|>\\u0018N­½†\\u0014¾½By>\\u0018N­½†\\u0014¾½By>¬h£½\\u0019! ¾Í(z>¬h£½\\u0019! ¾Í(z>£?½\\u001b\\u001a,¾¦ày>£?½\\u001b\\u001a,¾¦ày>Gr\\u0002¾êd†¾›8t>Žê6½\\u0011ÊY¾á3v>Žê6½\\u0011ÊY¾á3v>Žê6½\\u0011ÊY¾á3v>† Ï½\\u001fM ¾÷Äo>† Ï½\\u001fM ¾÷Äo>† Ï½\\u001fM ¾÷Äo>† Ï½\\u001fM ¾÷Äo>Oßð½™ÑÞ½M¬}>Oßð½™ÑÞ½M¬}>¤‡\\f¾\\tàV¾{‹x>ð´\\u0000¾ñM‡¾\\u0006,ƒ>¨v\\b¾H’g¾„\\u0016†>\\u0010\\u0016\\u0003¾\\u0001W¾éÐ†>ø¾\\u0006¾ó p¾É|>z™\\u0016¾&_+¾§gŠ>\\u0004Ö\\u001b¾\\u001a‘\\u0013¾\\u0017Ü>\\u0004Ö\\u001b¾\\u001a‘\\u0013¾\\u0017Ü>ž\\u0001\\u0016¾Èh*¾Ò{>åþ\\u0005¾9\\u001c}¾‹‰u>é4\\u0017¾õ\\u0011\\u001f¾Á¼„>o­¥¼ÑBv¾zDr>o­¥¼ÑBv¾zDr>Äƒ\\u001b¾=ø\\u000f¾§&>Äƒ\\u001b¾=ø\\u000f¾§&>Ä\\\\\\\"\\u001e¾V\\u001c\\u0000¾£Ô~>Ä\\\\\\\"\\u001e¾V\\u001c\\u0000¾£Ô~>\\u0006K\\u0010¾‡\\u0018F¾ím}>J\\u0013¾í5¾pÕy>áŽä½zçl¾adu>ú_ñ½\\u00033›¾¢ôr>ú_ñ½\\u00033›¾¢ôr>\\r\\\\ü½\\u0018+¾dNr>Í˜\\u001f¾Úü\\u0004¾\\u001bUŒ>BÏ\\u0010¾þ:?¾\\u0017„„>)Ð\\u000b¾\\u0018\\u001eT¾aØƒ>þg“½C”Ù¾\\u001a,j>þg“½C”Ù¾\\u001a,j>þg“½C”Ù¾\\u001a,j>þg“½C”Ù¾\\u001a,j>s\\u0018s½žÛ¾ÐYŒ>¸¾ç=®ï·¾>¾[>Îcå=(\\u000b±¾}í?>±š·=ˆO±¾¤\\u0016\\u001f>±š·=ˆO±¾¤\\u0016\\u001f>¹ç=ô¦¬¾\\u0011\\u001a>¹ç=ô¦¬¾\\u0011\\u001a>¹ç=ô¦¬¾\\u0011\\u001a>¹ç=ô¦¬¾\\u0011\\u001a>¹ç=ô¦¬¾\\u0011\\u001a>ÞÊÛ=%7²¾;ûZ>\\u001ccý=\\u0017È°¾Î 2>\\u001ccý=\\u0017È°¾Î 2>j„²=ñX±¾#ÃZ>j„²=ñX±¾#ÃZ>\\u001cË=«Z°¾×ÎA>\\u001cË=«Z°¾×ÎA>\\u001cË=«Z°¾×ÎA>>¹×½Ê´º¾Bén>>¹×½Ê´º¾Bén>>¹×½Ê´º¾Bén>>¹×½Ê´º¾Bén>žzç½4{¨¾™µp>žzç½4{¨¾™µp>uéR½\\u001cb³¾Šm>uéR½\\u001cb³¾Šm>»Z–½°3§¾>\\u0019k>\\fKÙ½Ùµ´¾°àz>ú;½½d‹Ü¾>Ì…>ú;½½d‹Ü¾>Ì…>Ë\\\\¾½\\\\\\\" Ú¾Ü\\\\\\\"m>Ë\\\\¾½\\\\\\\" Ú¾Ü\\\\\\\"m>}bT=\\u000eÚ£¾Ë´\\u001c>}bT=\\u000eÚ£¾Ë´\\u001c>}bT=\\u000eÚ£¾Ë´\\u001c>}bT=\\u000eÚ£¾Ë´\\u001c>¼!4=‡¬ ¾Ð<#>¼!4=‡¬ ¾Ð<#>ß€\\u0010=6Ðœ¾\\u000fu+>ÆÑG=ïQ¦¾›d9>ÆÑG=ïQ¦¾›d9>ÆÑG=ïQ¦¾›d9>3I,=µiš¾áú\\u0019>3I,=µiš¾áú\\u0019>3I,=µiš¾áú\\u0019>$ë½†'¤¾W¡€>%\\u0012í½V×«¾(s}>ô”ä½\\u001a\\u0015·¾Ýl‚>ô”ä½\\u001a\\u0015·¾Ýl‚>#\\u0004Ø½W¡Â¾Ø\\tm>#\\u0004Ø½W¡Â¾Ø\\tm>Ç_Ñ½N±¿¾<w>Ð1Å½†ÙÈ¾¹&i>Ð1Å½†ÙÈ¾¹&i>“dÊ½ˆ\\u0019Ê¾ƒ }>{KÉ½\\u000bpÍ¾KÓm>\\u0002ÆØ½r}Â¾ÍÑ‡>He÷=Á\\r¤¾f¸\\u0016>He÷=Á\\r¤¾f¸\\u0016>He÷=Á\\r¤¾f¸\\u0016>He÷=Á\\r¤¾f¸\\u0016>He÷=Á\\r¤¾f¸\\u0016>@YD<Lm‰¾Øi\\u001b>@YD<Lm‰¾Øi\\u001b>@YD<Lm‰¾Øi\\u001b>;Î®<»¬“¾§y\\u001e>;Î®<»¬“¾§y\\u001e>™\\\\{=Ò\\t®¾¯Š->X\\u0007r=\\u001dõ©¾±'+>á\\u000eŸ=„å¬¾¦<\\u001b>á\\u000eŸ=„å¬¾¦<\\u001b>Oð\\u0014½\\u0011R]¾e\\u001fc>l#-½{pV¾þÉl>+÷z½\\\\\\b/¾\\u001b9/>ŠÂW¼_{{¾¬Â`>çqN½×÷%¾¥{!>LÊK½œ­9¾šn%>¼_\\u001e½¼³N¾®5F>³sI½ \\u001bG¾ß±j>ø³:¼\\u001cØy¾ L9>ãM®½7-ñ½ò—9>bW¡½€ÿ\\u0016¾!²T>Ìk†½E\\u0006\\u001b¾Žÿ$>@m½µ9#¾Ì\\u001d8>Aƒ\\u001f½o\\u0013R¾¡:Z>5óÚ<ù‡H¾ŒÉ\\u001a>5óÚ<ù‡H¾ŒÉ\\u001a>úí ½\\u0007¬ç½ÿ\\f'>úí ½\\u0007¬ç½ÿ\\f'>w|\\u0005½+\\tS¾…»#>!\\u0000ª½—l\\u0015¾{l>°†¼iˆc¾ú\\u0010\\u001f>ã< ½\\u0019\\u0016\\u000e¾ú D>¯ˆï¼«ÎC¾=\\u001e>\\u0014Ë¬½ù?\\u0003¾ò\\\\d>Ž\\nC½#Ž>¾@HF>£Š¥¼¹1e¾\\u001cM)>&ÿ‘½Ø!¾¡MQ>ïŒ½d¿#¾ñ#h>ó 6=}(}¾£B\\u0019>ó 6=}(}¾£B\\u0019>\\r—›½,Ô\\f¾\\u0000\\\\1>a\\u0017€¼ƒ××½\\u001b\\u000b\\u001e>›\\u000f¼½`àë½™¢^>›\\u000f¼½`àë½™¢^>|'½në\\\\\\\"¾ˆ^E>½nn:8è½Ñ¤\\u001c>½nn:8è½Ñ¤\\u001c>O°•¼éÝl¾¬\\u0005<>u/±½GX\\u0007¾ÅÖs>[\\u000fÇ½pBÐ½È\\u000ej>[\\u000fÇ½pBÐ½È\\u000ej>[\\u000fÇ½pBÐ½È\\u000ej>$U|½©Ã1¾‚ÂN>‡e\\\\;\\u001b\\u0005…¾x·\\\\\\\">™\\u0017þ;üó|¾-¤\\u001b>¨½u½´ö½‡˜\\\\\\\">¨½u½´ö½‡˜\\\\\\\">¨½u½´ö½‡˜\\\\\\\">¨½u½´ö½‡˜\\\\\\\">»9“¼y‘Ç½\\u0013¢\\u0010>»9“¼y‘Ç½\\u0013¢\\u0010>»9“¼y‘Ç½\\u0013¢\\u0010>nPw<!Þ!¾ÿQ\\u001c>nPw<!Þ!¾ÿQ\\u001c>“\\b¤»¼—x¾\\u0003Å\\u001f>È\\u0015ª½¬#\\u0005¾\\u0017•T>@Û|½¸z2¾<of>Hi3»ìGƒ¾¦\\u00156>á;0¼Lºx¾ÖF>DÙw½è—4¾±wq>÷¸œ½ão\\u0003¾£W*>üéÜ;ù\\u0015‹¾XŸ<>üéÜ;ù\\u0015‹¾XŸ<>üéÜ;ù\\u0015‹¾XŸ<>Ü]«½³ñ¼½=ï&>Ü]«½³ñ¼½=ï&>.t\\u0006½âaT¾Ç42>ÃÛ;½ûò®½¬I >ÃÛ;½ûò®½¬I >¡\\ná¼ƒDk¾¯\\u0016e>¼\\u0011Õ¼X0%¾=v\\u001d>4Øµ½ðéÐ½5\\u00002>4Øµ½ðéÐ½5\\u00002>$\\u0014ð¼3Õ\\\\¾Ü^K>ÏqË¼Jge¾á,Y>Ç•ƒ½\\tpÎ½g†!>Ç•ƒ½\\tpÎ½g†!>eôp;~AJ¾È\\u0004\\u001b>Æ;F½/ÂB¾ZpU>vça½r¨9¾Ñ8>¡<¨Ç\\u0002¾³Ë\\u001a>¡<¨Ç\\u0002¾³Ë\\u001a>\\u000bÇH=É8„¾[C\\u0016>\\u000bÇH=É8„¾[C\\u0016>\\u000bÇH=É8„¾[C\\u0016>Øö¸½ñyÝ½T}C>Øö¸½ñyÝ½T}C>?\\r=Â]¾Í%\\u001a>?\\r=Â]¾Í%\\u001a>…\\u0014*½Z—ÿ½*Ÿ\\u001f>9b:XpÙ½e\\u0005>9b:XpÙ½e\\u0005>­5Ú¼\\u0005y\\\\¾¦õ=>ÌI¸=1Œœ¾´ó\\u0017>ÌI¸=1Œœ¾´ó\\u0017>ÌI¸=1Œœ¾´ó\\u0017>ÌI¸=1Œœ¾´ó\\u0017>\\u0004žz=\\u0017'¾ü›\\u0018>\\u0004žz=\\u0017'¾ü›\\u0018>\\u0004žz=\\u0017'¾ü›\\u0018>\\u0004žz=\\u0017'¾ü›\\u0018> \\u0006˜=Ý“¾¤Á\\u0018> \\u0006˜=Ý“¾¤Á\\u0018> \\u0006˜=Ý“¾¤Á\\u0018>3F>=ö½\\u0012=p\\u001bá½´(s=r¦<r|³½@6·=pÜ–=Ÿ†y½@6·=pÜ–=Ÿ†y½*Ø«=°åt=cÿ ½üê~=–SR¼ã\\u0018D½üê~=–SR¼ã\\u0018D½FÝ•=4\\bE=³\\u0003Å½/çž=êz#=H+½`Cš=Ý½=øµö½`Cš=Ý½=øµö½`Cš=Ý½=øµö½Þ4r=ÉÅˆ=Ä§ô½Þ4r=ÉÅˆ=Ä§ô½Þ4r=ÉÅˆ=Ä§ô½\\tµJ=Hv=\\u0017 \\b¾Êþ•=u´†=õkÖ½\\u0006/¡=bk¯=ø4È½\\u0006/¡=bk¯=ø4È½EÇª=yJÙ<(q7½EÇª=yJÙ<(q7½ú_ =õ™ <>ñm½yU¬=\\u001f#:=\\u001b_a½°´„=GÎG;\\u000f…½6\\u0010û<\\n*–¼Ës€½‚åœ=ä_Û;Ä\\u0018B½‚åœ=ä_Û;Ä\\u0018B½PŽ“=Ýí£<0Ú½¶E¯=ë*™=à)§½¶E¯=ë*™=à)§½kÒÍ¼Ã!p<û.«½\\u001e¸±=¢À=\\u0016F½\\u001e¸±=¢À=\\u0016F½\\u001e¸±=¢À=\\u0016F½Aâ\\u0018½\\u0006i\\u0005=8îÄ½Aâ\\u0018½\\u0006i\\u0005=8îÄ½'L‰¼ûÝá<éÙÜ½'L‰¼ûÝá<éÙÜ½\\\\\\\"¼.=eb³¼ÞQ`½\\\\\\\"¼.=eb³¼ÞQ`½ÕE\\u0007½ \\u001b‹<Æú½ÕE\\u0007½ \\u001b‹<Æú½+ƒI¼÷¸…;µÿ–½÷û\\u0007»ªi–»(\\u0000™½_\\u000f\\u000e½\\u000fi\\b;„\\u001am½_\\u000f\\u000e½\\u000fi\\b;„\\u001am½\\u0018øÀ»\\b\\u0015ç¼@+/½\\u0018øÀ»\\b\\u0015ç¼@+/½\\u0018øÀ»\\b\\u0015ç¼@+/½Þš<\\u000bf½¼œ˜_½Þš<\\u000bf½¼œ˜_½á®\\u0016=nF0<¸kÀ½eÁÞ<„\\u0013d=†j\\u0001¾eÁÞ<„\\u0013d=†j\\u0001¾+]…<Ì\\u0013™:º¶½“>Y=9\\u0011/»=H•½\\u0019²¤<tØ’»5éœ½7Y<©´\\u000b=ƒ€é½7Y<©´\\u000b=ƒ€é½vò°='Y†<ÜéÍ¼vò°='Y†<ÜéÍ¼¡\\u0001»=s†€=\\u0019ÝÀ¼¡\\u0001»=s†€=\\u0019ÝÀ¼œö\\f<x£˜>\\u001du’¾œö\\f<x£˜>\\u001du’¾œö\\f<x£˜>\\u001du’¾©¤ž;ZŒ>\\u0018m›¾©¤ž;ZŒ>\\u0018m›¾©¤ž;ZŒ>\\u0018m›¾\\u0001&ò<j×Ž>og•¾³jB='Ž>pSœ¾b\\tc=˜fŽ>£2‹¾µq“=£K„>¦a–¾-N“=¨Ø7>5œE¾-N“=¨Ø7>5œE¾HOT=×Ô|>|Ñ?¾HOT=×Ô|>|Ñ?¾T\\u001dp=/x>w;]¾Rk\\u0013=|¼„>dé›¾'\\u000b@=áEˆ>nX¾'\\u000b@=áEˆ>nX¾'\\u000b@=áEˆ>nX¾mý‹=Ÿ1r>q‹‰¾§z<¨°‡>ã= ¾§z<¨°‡>ã= ¾\\u001aÅ…=¸(f>\\u0007\\u001f‘¾SD<='õr>ÄP ¾SD<='õr>ÄP ¾SD<='õr>ÄP ¾þ!‰=±¹Q>I:U¾eÒ~=«\\u00039>¥Úi¾4w„=j“x>ÑÊ¾Áí=ë0f>è\\u0006D¾Áí=ë0f>è\\u0006D¾Áí=ë0f>è\\u0006D¾õq‚=vˆT>à'‡¾µÔ_=fÐO>i˜¾s½F=+ë^>\\u0006Pœ¾Àõ\\u001e=y\\fR>œN¾Àõ\\u001e=y\\fR>œN¾[=»’@>ŸâŠ¾\\u0003œ€=\\u0002ˆb>ËY„¾]Ýƒ=(ËR>Æºm¾:ñ=ö¾H>Z˜z¾\\u0011s€=Èw‡>ê+“¾ŠD=ËP‰>W÷“¾—i\\u0019=/J$>\\u0004Z„¾—i\\u0019=/J$>\\u0004Z„¾_&\\u000f=2à4> Ó‘¾_&\\u000f=2à4> Ó‘¾_&\\u000f=2à4> Ó‘¾øÊ6=\\u0012v>¢u~¾øÊ6=\\u0012v>¢u~¾f\\u001a=²å>\\u0012·¾Š”0=\\u0018š>9½‰¾ù}r=]ƒ>(æn¾ù}r=]ƒ>(æn¾ù}r=]ƒ>(æn¾’m\\b=šÅ“>\\u0006‹¾’m\\b=šÅ“>\\u0006‹¾x\\u0016U=½žŠ>W-€¾¹E=E5Œ>i^‡¾ûÞ=×GD>Â=¾ûÞ=×GD>Â=¾dð‰=~Ž4>œ`V¾dð‰=~Ž4>œ`V¾Í\\u0019=¿‡>\\u0002yŒ¾ÌŸ™= i>£X‘¾™+/»÷šN>Êå¡¾™+/»÷šN>Êå¡¾™+/»÷šN>Êå¡¾VÀq=œ™i>j˜b¾õ§›=\\u000eºm>·a¾‰ø—=D×q>Da‘¾7Åv=¯F\\u0015>Âë\\\\¾7Åv=¯F\\u0015>Âë\\\\¾\\u0010ü'=\\u0002/\\u0002>`z_¾\\u0010ü'=\\u0002/\\u0002>`z_¾\\u0010ü'=\\u0002/\\u0002>`z_¾pø=™q>¿\\u0011‡¾âL–=»Ïy>ÂJ™¾XhV=;¥.>¾,€¾-áj=.^(>ôþm¾•ÍS¾g\\u000b\\u0005>y•>ý]D¾ÈÅJ=g\\u0012Ž>ótO¾s‹ã=\\u0000Ø–>ã¾;¾ÍxW<Å‘>ã¾;¾ÍxW<Å‘>®ëV¾\\u0005ÿ\\u0013>\\u0010\\f>4U\\u0013¾\\u0000s™=Ý@„>4U\\u0013¾\\u0000s™=Ý@„>4U\\u0013¾\\u0000s™=Ý@„>æÁF¾OØ†=öí>í£[¾\\u0004å)>3ò>í£[¾\\u0004å)>3ò>í£[¾\\u0004å)>3ò>\\u0001*Y¾\\u0002€\\u0019><=‰>\\u0001*Y¾\\u0002€\\u0019><=‰>+¥@¾›†\\u0013=WÞŒ>ñbH¾u*Œ=çF‡>ÀàS¾«Ñ\\u0000>\\u0004h>\\u0010\\u0007>¾Ú'¨<zD‹>DxM¾[\\nÅ=U3‘>™I¾[–Ç=£n…>Ö\\u00125¾\\u000fMì=$Š…>Ö\\u00125¾\\u000fMì=$Š…>¶É\\u0011¾^ùÐ=VNƒ>¶É\\u0011¾^ùÐ=VNƒ>(Î5¾,\\u001bL<0R‚>(Î5¾,\\u001bL<0R‚>(Î5¾,\\u001bL<0R‚>ð‚\\f¾,=‚=‹·ƒ>ð‚\\f¾,=‚=‹·ƒ>ÔjP¾wÖ=uóˆ>` a¾qêO>??˜>` a¾qêO>??˜>Ò\\u0014_¾\\u0015n>>À5>Ò\\u0014_¾\\u0015n>>À5>Ò\\u0014_¾\\u0015n>>À5>¬ºY¾Üê\\\\\\\">¹nš>B²]¾<`1>t\\u0005–>U<@¾•l9=gæƒ>a@<¾Ù\\u0014Ü;¼ñ„>a@<¾Ù\\u0014Ü;¼ñ„>a@<¾Ù\\u0014Ü;¼ñ„>\\u0011¯B¾ÀÉ-=îÊˆ>\\\\˜S¾ÿ:\\b>«S‡>\\\\˜S¾ÿ:\\b>«S‡>\\u0003\\u000b^½\\u001a(Æ=ñ£\\u0017¾\\u0006¼§½†U\\u0017>0æó½5=‚½ëí¾=ÍdÃ½Ð¦Æ½Þ½R>]”ò½„O³½€\\u0011c>ò$\\u0002¾q‡¤½zÑi>tÑ\\u0012¾q‡¤½zÑi>tÑ\\u0012¾¶_\\\\½Y\\u0004Æ=Úe\\t¾¢ÀN½’\\f\\u001e>\\u000f\\b_¾¢ÀN½’\\f\\u001e>\\u000f\\b_¾¢ÀN½’\\f\\u001e>\\u000f\\b_¾¢ÀN½’\\f\\u001e>\\u000f\\b_¾\\u0019¯\\u0005½ç\\u001a6=ßXå½.£x½ïô—=ü=¸½Gô´½\\u0011yi>×£Ì½šª*<ßÑŠ=\\u000eT\\u0014¾À\\u000e½\\r‹£=ß«\\u0012¾¼î½jì\\n>&é6¾)¬»Džc=Ÿ\\u0001\\u0002¾)¬»Džc=Ÿ\\u0001\\u0002¾˜…’½\\u0005ý|>%›à½HÕ‡½67 >\\u001fî;¾J‡¸½AM7>ô>Ç½þ<Á½:†M>3ÿ¦½þ<Á½:†M>3ÿ¦½\\u0004~T¼eCŠ=î{\\u0012¾L\\f‹½è\\\\1>©„H¾L\\f‹½è\\\\1>©„H¾ß‚´½ \\u0015F>þv\\u001c¾ß‚´½ \\u0015F>þv\\u001c¾¬í©½¸–>>4\\u001e'¾¬í©½¸–>>4\\u001e'¾L\\u0007j¼ôÕâ=ã\\u0013O¾fž°½^6>´J ¾‰—½½ò=ø&\\b¾wIX=§µ±=\\u0007\\u0014\\\\\\\"¾\\u001fé©½|Ç\\u001b>!B\\t¾.rh½Ê;„>a§Å½.rh½Ê;„>a§Å½>µÀ½NBI>9¼Ú½Jw½\\u000f~\\u0015>³'¾2d\\b½\\u001aQy=…Œô½a2¶;Ržõ=rê`¾a2¶;Ržõ=rê`¾a2¶;Ržõ=rê`¾ƒ‘\\u001e<D\\bÔ=›WI¾\\u0011ºâ<´\\t³=–·5¾¼\\u0016L½\\\\\\\"%T=–±¹½\\fêO½<\\u0001†=¬þÛ½³\\u0004ò<Éô”=’\\u0011\\u001b¾IP…½È¸É=b·ž½IP…½È¸É=b·ž½i \\u0005=F\\u000e—=\\u000e­#¾|5Ž½õ—}>\\u0004N\\t¾|5Ž½õ—}>\\u0004N\\t¾|5Ž½õ—}>\\u0004N\\t¾î&½¸ü<|Ú¤½î&½¸ü<|Ú¤½î&½¸ü<|Ú¤½×Ò«½µ<l>Ëüî½§Ç½L\\u001bT>)¶µ½u…‚½8£|>O\\u000e²½u…‚½8£|>O\\u000e²½­Ld<º\\u0016™=¢t'¾M·¹Œ9ª=è§2¾d/h½N»\\u001d><YP¾d/h½N»\\u001d><YP¾IP~½l¡ù=@ó(¾Ÿ–¼§Zº=[Ž7¾\\u0007x\\u000f½ÖØ\\f>ˆ¬e¾\\u0007x\\u000f½ÖØ\\f>ˆ¬e¾ýü—½v¤\\u0005>\\\\\\u001d¿½ &Ç½\\u001ešE>ò\\u0005¾½Òæ?½\\u001dz\\u0007>êïJ¾kX%½pÏæ=ï\\u0017<¾ì5…½=‘×=\\u0019:ö½%•o½G€=\\u0004Ú¶½²Ôk½\\u0000˜e=¸¾ž½²Ôk½\\u0000˜e=¸¾ž½²Ôk½\\u0000˜e=¸¾ž½ƒ=®½áµ%>‡\\u001b¸½ˆ!À½E¢d>¹¬±½\\rµn½Âw´=D?ï½ßÞ±½»¹\\u001e>‚7Ì½/Í¹½eö2>\\u0003,\\u000e¾l1½½\\u001fÏP>ÛÓ\\t¾/7Ä½Ÿ\\b@>\\u0016<ý½ƒì\\u0002½?¢§=©U\\\\\\\"¾[ó]½}Î«=J·Ø½\\u001c‚«½(;%>\\u0015\\u000e\\u0017¾Tä€½\\u0005¿¤=É;¤½Tä€½\\u0005¿¤=É;¤½Åt7½dD™=M6í½ç¸»½\\u0010„H>ì‚\\u000e¾\\u001d:Ž½ó‘ë=^±»½½¹—½odþ=\\u0011f—½½¹—½odþ=\\u0011f—½½¹—½odþ=\\u0011f—½§\\u001d…½‹—ß=\\b‘Î½KÕ#=H…ñ=\\têP¾KÕ#=H…ñ=\\têP¾KÕ#=H…ñ=\\têP¾[4¨½\\u0019 \\b>8lâ½ø\\u0014§½_=\\\\>òØ(¾ø\\u0014§½_=\\\\>òØ(¾ø\\u0014§½_=\\\\>òØ(¾D T=>jë=ðVB¾D T=>jë=ðVB¾¦VM½PÏÓ=bu*¾\\u0011¯…=eUÎ=w™\\u001b¾\\u0011¯…=eUÎ=w™\\u001b¾{\\u000e·½\\r*>ùêù½*lš½WË&>º0+¾Øy¤½\\rU\\u0013>\\u0019É\\r¾:Ç‹½°¢ü=$Zÿ½\\u0015Ìž½:ä<>,\\u00041¾\\u0015Ìž½:ä<>,\\u00041¾ÒêÁ½Èó\\\\>Zf˜½ÒêÁ½Èó\\\\>Zf˜½/\\u0004£½q˜\\u0015>½!³½/\\u0004£½q˜\\u0015>½!³½º\\u0007–½g2>:h8¾º\\u0007–½g2>:h8¾]k´½žE$>‹£š½]k´½žE$>‹£š½]k´½žE$>‹£š½\\u001b»U½‘»-=j\\u0016½\\u001b»U½‘»-=j\\u0016½ýÈ‹½Œ7ù=Þ×\\u0019¾íŽg½\\u0001z…>ºFí½íŽg½\\u0001z…>ºFí½íŽg½\\u0001z…>ºFí½³ñ•½Œ`\\n>\\u0019\\u0018\\u0012¾bZ\\t<Q¤->MQ•¾Lp\\b½À‘\\u001f>ä?‚¾~J3½zB2>ˆUŒ¾~J3½zB2>ˆUŒ¾~J3½zB2>ˆUŒ¾‡òÉ¼!r5>ðH—¾‡òÉ¼!r5>ðH—¾á’›»9T\\u001a>¿…‡¾\\u001d\\u0004@½·’#>Ú`s¾\\u001d\\u0004@½·’#>Ú`s¾ ž¶¼×6&>\\u001eëŽ¾ùA™<AÌ\\u0016>—’‚¾d¿<ñ¡)>ôy¾d¿<ñ¡)>ôy¾)äæ¹V•\\t>Üûs¾éã\\u001e=$1\\u000e>¯~o¾éã\\u001e=$1\\u000e>¯~o¾\\u0015\\r\\u0019½þ\\u0006I>›¨Ÿ¾\\u0015\\r\\u0019½þ\\u0006I>›¨Ÿ¾\\u0015\\r\\u0019½þ\\u0006I>›¨Ÿ¾\\\\@»½0‘€>\\b–£¾\\\\@»½0‘€>\\b–£¾\\\\@»½0‘€>\\b–£¾\\\\@»½0‘€>\\b–£¾-’¨½d?h>˜º ¾-’¨½d?h>˜º ¾q\\u0000Í½ZGf>\\u0019%˜¾q\\u0000Í½ZGf>\\u0019%˜¾q\\u0000Í½ZGf>\\u0019%˜¾q\\u0000Í½ZGf>\\u0019%˜¾atÖ½H«x>Ÿ%Ÿ¾atÖ½H«x>Ÿ%Ÿ¾atÖ½H«x>Ÿ%Ÿ¾B\\\\’½é\\\\^>Ûª ¾B\\\\’½é\\\\^>Ûª ¾Îá¨½Ó«„>·œ–¾Îá¨½Ó«„>·œ–¾Îá¨½Ó«„>·œ–¾Îá¨½Ó«„>·œ–¾fŠÊ½æðm>îº“¾fŠÊ½æðm>îº“¾éÛ¢½íÅt>ã´Œ¾éÛ¢½íÅt>ã´Œ¾éÛ¢½íÅt>ã´Œ¾µ,¬½ëÓu>æ\\u0014‡¾µ,¬½ëÓu>æ\\u0014‡¾\\u0004Z½üâ>*†Œ¾\\u0004Z½üâ>*†Œ¾\\u0004Z½üâ>*†Œ¾õï–½®î„>\\u001aÊ‘¾õï–½®î„>\\u001aÊ‘¾õï–½®î„>\\u001aÊ‘¾W¶y¾n£>e’¤>W¶y¾n£>e’¤>W¶y¾n£>e’¤>ÒÉh¾{ž>æÍ³>ÒÉh¾{ž>æÍ³>t¤¾eÒŸ>cj·>WÛ0¾}ƒ®>Ð\\u0000‘>WÛ0¾}ƒ®>Ð\\u0000‘>WÛ0¾}ƒ®>Ð\\u0000‘>ày¾\\f ¥>IN>ày¾\\f ¥>IN>ày¾\\f ¥>IN>ày¾\\f ¥>IN>1\\u0018|¾`Â£>ÑY—>1\\u0018|¾`Â£>ÑY—>8¯^¾ÌC5>I\\r‰>8¯^¾ÌC5>I\\r‰>8¯^¾ÌC5>I\\r‰>ŒÎk¾4§x>?‹>ŒÎk¾4§x>?‹>ŒÎk¾4§x>?‹>ù’d¾\\u000fïQ>|\\u0011‹>ù’d¾\\u000fïQ>|\\u0011‹>=\\u0018f¾\\u0007Q\\\\>ÁL•>‡(e¾•–d>EL‰>‡(e¾•–d>EL‰>‡(e¾•–d>EL‰>$·i¾½¦t>ÑU•>$·i¾½¦t>ÑU•>@fž½¬QL>PH¾@fž½¬QL>PH¾}\\t˜½¹Ü^>ÆéB¾Õd¥½ÏÄQ>aš5¾Å\\b”½èxA>d‰R¾Å\\b”½èxA>d‰R¾*Ú—½ZÌK>¦s]¾*Ú—½ZÌK>¦s]¾Ýæ–½‘¼c>¸7T¾Ýæ–½‘¼c>¸7T¾Ýæ–½‘¼c>¸7T¾\\u0005\\u0003Œ½\\u001açw>Ú\\u001d-¾\\u0005\\u0003Œ½\\u001açw>Ú\\u001d-¾·¤o½÷|->èƒi¾·¤o½÷|->èƒi¾%M&¾EÙ¦½È\\u0017€>«,¾¢œj½óª‚>¢è4¾a“…¼áU“>32(¾Xœ±½ä\\u0010‰>\\u0005H2¾\\u0003™\\u0005½ø\\bŽ>‡'1¾cb8½3Gƒ>1K6¾ ‘™¼]Sƒ>\\u001cÇ'¾8rœ½#€‹>eB\\u001f¾6ý”¼,‘>\\u000b¢4¾#ñ±¼!Âˆ>1,¾ö}†½Ý³‚>ˆvð½X½‹½Í^z>,.¾¸?D½%\\u000bŽ>Y\\u000b#¾]\\u001a×½éÊ…>uÃã½xÃ¤½ðÒ>uÃã½xÃ¤½ðÒ>i|/¾?áL½òÃ‡>S›å½\\u0007+C½å\\u0002u>S›å½\\u0007+C½å\\u0002u>¼IÍ½®\\u000bÔ½Ïs{>¼IÍ½®\\u000bÔ½Ïs{>¼IÍ½®\\u000bÔ½Ïs{>wÓ\\u0003¾ì#<x\\u001b‚>wÓ\\u0003¾ì#<x\\u001b‚>ÍH*¾›¸‡½–˜Š>~äÔ½¹ƒ”½¼éj>~äÔ½¹ƒ”½¼éj>CNÉ½ÄÂÂ½Œ\\u001bm>CNÉ½ÄÂÂ½Œ\\u001bm>õ\\u0004$¾]óÏ½þ™>•¶7¾&¼»0Í‡>\\u0010å7¾qÔ„»{\\u001d’>P\\u000b÷½\\u0015K2½RÈ€>x\\u001c!¾.ìè½ZíŠ>ˆùó½\\u0018P”¼«‹y>ˆùó½\\u0018P”¼«‹y>‡O0¾{˜\\b½Ü•>[Ùæ½°^-½NFd>z‡\\n¾\\u001b’@=\\u0017æh>Ì6\\u0005¾ÑdE=È\\u001aG>n•\\u0003¾\\u0016 \\u001d=I°;>á!\\u0011¾¨ý£=;¢y>á!\\u0011¾¨ý£=;¢y>\\u0015\\\\\\\"\\u0006¾`›\\u0014=m?a>èØ×½V¼O½]ñ5>ëû½XyŒ»u7Y>oÏ\\u000b¾›€¢=\\u0015}C>i\\u001a\\u000b¾ôcŠ=ÖîM>î¢\\u0006¾Ñ3·<b™z>¥©\\r¾¼\\u0005¹=fN>¥©\\r¾¼\\u0005¹=fN>\\u000b‹\\u0011¾ß»ß=M·I>\\u000b‹\\u0011¾ß»ß=M·I>NÉ\\u0003¾‰×k=Š 5>NÉ\\u0003¾‰×k=Š 5>ûmÿ½µëô;\\u000eFo>l0â½ãƒ'½\\u0006\\u0018Q>\\u0002«\\b¾\\u0017ƒD=ºŽz>\\u0002«\\b¾\\u0017ƒD=ºŽz>ÿß\\b¾\\u0016½\\u0011=Jò‚>\\u0017eû½RP&:Î†H>š©ó½@H¶»6@>væ\\u0004¾\\u001f™˜=ŸS5>væ\\u0004¾\\u001f™˜=ŸS5>ê\\r\\u0000¾ýâ½<µÅD>èñ½×m’¼[ùN>¡=\\u000b¾·³†=®bm>¡=\\u000b¾·³†=®bm>\\rÚí½\\u0002\\f\\u0001¼s,1>ø°À½´xŒ½ôÔ(>\\u0013\\u0012Ë½H0®½äIZ>GÆ–½ÄR\\u000b½{Å%>GÆ–½ÄR\\u000b½{Å%>GÆ–½ÄR\\u000b½{Å%>%˜Þ½w3(;®ê+>%˜Þ½w3(;®ê+>\\\\\\\"õå½ë7ð¼jh>>ì’ú½¶6È»gCp>¿Ö\\u0001¾\\u0012\\t·<¢·j>þq\\u0005¾Lt\\n¼ÄG>þq\\u0005¾Lt\\n¼ÄG>Ÿ›\\f¾\\u0015~=É\\u0012a>¦¥É½Z±“½Ò;4>Y\\f\\t¾%üo=\\tRa>€×Ù½ºTe½b\\u0003F>\\u0018òà½¾ò¾¼Gx0>ŠÒ½RË“½«ŒI>û\\rú½.U«<!¨3>y\\u0002¾íþ<\\u0014\\\\>r«\\u000b¾qnº=Eê8>r«\\u000b¾qnº=Eê8>r«\\u000b¾qnº=Eê8>r«\\u000b¾qnº=Eê8>äî½‹VÐ¼Üuf>WÖØ½½\\u0014w½)N_>|XÉ½ý‡7½]Ü(>fA½½‚íÇ½\\u001d\\u0001C>ýù\\u0007¾…ß =7ðU>Ëfú½È\\u0019h=)\\u0019/>Ëfú½È\\u0019h=)\\u0019/>ö\\u0010¾\\u0004±´=\\u0010Uh>ö\\u0010¾\\u0004±´=\\u0010Uh>›Vv¾\\b\\u0001”>£w—>,¯z¾‚sž>k%>zîn¾\\u0012¦ˆ>Jc™>„\\u001dv¾\\u0000u“>Ø_Œ>„\\u001dv¾\\u0000u“>Ø_Œ>„\\u001dv¾\\u0000u“>Ø_Œ>ÁÏv¾\\u0016»œ>E\\u001cž>~ëq¾y8‡>ýœ>AÉ|¾X€š>ÒYŠ>AÉ|¾X€š>ÒYŠ>X\\u0011ƒ½Œ†O>±µ•¾·0<½ýÑP>“`œ¾á€¤½Õ i>õ\\u001d~¾\\u0016«£½èãd>¸/g¾–¬‹½cë„>Übh¾–¬‹½cë„>Übh¾Q¨‰½ïãy>IyZ¾Q¨‰½ïãy>IyZ¾åÜ‘½ó;x>\\u000f–G¾åÜ‘½ó;x>\\u000f–G¾åÜ‘½ó;x>\\u000f–G¾©Òc½²©ˆ>\\u0002‡F¾©Òc½²©ˆ>\\u0002‡F¾©Òc½²©ˆ>\\u0002‡F¾‘\\r¨½\\u0018ZZ>p8’¾¥œ`½\\\\ò1>“óz¾ ’{½¬½G>sR‡¾‡[¤½Ð½_>dëˆ¾‡[¤½Ð½_>dëˆ¾T­‹½·€R>gG€¾0‘o½FÄ>>­\\u0001‚¾‹¦”½éˆT>íàd¾‡9„½`ï7>t§Z¾‡9„½`ï7>t§Z¾\\u0012Iª½Ñƒv>Ÿ2x¾‰\\u0001Œ½\\u0002@H>šÜw¾\\\\‰š½º\\u0007‰>¥\\u000f„¾\\\\‰š½º\\u0007‰>¥\\u000f„¾ðea½*\\u001fC>·ê‘¾ðea½*\\u001fC>·ê‘¾[Xˆ½³(‡>uÓ¾[Xˆ½³(‡>uÓ¾[Xˆ½³(‡>uÓ¾|ºA½Ž¼Ž>,<œ¾|ºA½Ž¼Ž>,<œ¾|ºA½Ž¼Ž>,<œ¾Ä\\u0010§;+þ>\\u001f\\u000b:¾Ä\\u0010§;+þ>\\u001f\\u000b:¾Ä\\u0010§;+þ>\\u001f\\u000b:¾ö\\u0003=œJ‹>y¨J¾ö\\u0003=œJ‹>y¨J¾]dý<\\bO’>£][¾]dý<\\bO’>£][¾€¸?<&h“>ŸÿJ¾€¸?<&h“>ŸÿJ¾Ä¡’<DÇ”>PCX¾Ä¡’<DÇ”>PCX¾‹¾ž;aÁ¤>¢ÂU¾‹¾ž;aÁ¤>¢ÂU¾‹¾ž;aÁ¤>¢ÂU¾çcÖ»!È™>{‘F¾çcÖ»!È™>{‘F¾çcÖ»!È™>{‘F¾Ë„$¾Â³e>ãbg>Ë„$¾Â³e>ãbg>Ë„$¾Â³e>ãbg>\\u000fJ%¾%Id>\\u001b\\u000fn>\\u000fJ%¾%Id>\\u001b\\u000fn>vÄ.¾«At>có|>ÀÞ)¾\\u0014>z\\u0000†>ÀÞ)¾\\u0014>z\\u0000†>ÀÞ)¾\\u0014>z\\u0000†>¸“%¾¦0a>þ¯>¸“%¾¦0a>þ¯>¸“%¾¦0a>þ¯>›÷&¾ú¤Š>à±Š>óN/¾`>\\u0000q‰>óN/¾`>\\u0000q‰>óN/¾`>\\u0000q‰>\\u00182C¾\\u000f%>Å\\u0012Š>\\u00182C¾\\u000f%>Å\\u0012Š>\\u000fØ,¾\\u000fyx>P[‰>\\u000fØ,¾\\u000fyx>P[‰>Wo)¾j¢ˆ>ª¦€>Wo)¾j¢ˆ>ª¦€>Í&(¾Á‘”>\\u0010„†>Í&(¾Á‘”>\\u0010„†>Í&(¾Á‘”>\\u0010„†>7aS½BIŠ>àL6¾ˆBe½$s„>¢m\\u0019¾ˆBe½$s„>¢m\\u0019¾TÅû¼•ù>{ý<¾wë ¼Ò'œ>(IN¾wë ¼Ò'œ>(IN¾wë ¼Ò'œ>(IN¾3–X½TŽ”>\\rLS¾3–X½TŽ”>\\rLS¾3–X½TŽ”>\\rLS¾´ñ8½dô‡>2Ô!¾´ñ8½dô‡>2Ô!¾kD\\u000f¼GhŽ>\\u0003\\f.¾kD\\u000f¼GhŽ>\\u0003\\f.¾znï¼g“>€JI¾'\\u000b\\u000f¼\\u001e\\u0001²>{Út¾Ì¬\\u001b½˜Ù±>¸µg¾S°ˆ¼iF³>2‡b¾²<³¼$d±>qT¾ÏµM½xE§>z®Y¾ÏµM½xE§>z®Y¾j‰\\u001a½ãx¬>¡SZ¾s©\\u001c½<N´>»i¾s©\\u001c½<N´>»i¾Ürš¼t¬´>ˆ\\u0019¾Î÷_¼Ö®¯>¦\\r„¾Î÷_¼Ö®¯>¦\\r„¾Î÷_¼Ö®¯>¦\\r„¾\\u0019”9½>„¯>Õ\\t¾\\u0019”9½>„¯>Õ\\t¾Ãí¬;ÄŽ¦>i´o¾Ãí¬;ÄŽ¦>i´o¾Ë°ÃºµÄ«>*\\u0004`¾Ë°ÃºµÄ«>*\\u0004`¾6²\\u001f¾·DB>€ËN>6²\\u001f¾·DB>€ËN>  \\u001e¾A?8>\\u001b0m>åª\\u0019¾Gr$>ê\\u000eV>åª\\u0019¾Gr$>ê\\u000eV>\\u001f\\u001b¾`t3>˜7N>\\u001f\\u001b¾`t3>˜7N>|@\\\\\\\"¾Ú\\\\\\\"O>‡Þp>|@\\\\\\\"¾Ú\\\\\\\"O>‡Þp>|@\\\\\\\"¾Ú\\\\\\\"O>‡Þp>I#¾µ\\u0006^>æ_>I#¾µ\\u0006^>æ_>I#¾µ\\u0006^>æ_>#t\\u001c¾t](>Eåk>´7 ¾ï,Y> =Q>´7 ¾ï,Y> =Q>´7 ¾ï,Y> =Q>$\\u0011\\u001e¾\\u000334>*1_>we!¾½\\u000eJ>éu_>/Ç\\u0019¾a×\\u0018>\\u0018©n>/Ç\\u0019¾a×\\u0018>\\u0018©n>Y\\r ¾9ê%>\\u0010>s>Y\\r ¾9ê%>\\u0010>s>Y\\r ¾9ê%>\\u0010>s>Y\\r ¾9ê%>\\u0010>s>¾Ü\\u0017¾ÄM\\u001d>¶ºC>¾Ü\\u0017¾ÄM\\u001d>¶ºC>¾Ü\\u0017¾ÄM\\u001d>¶ºC>\\u001a–\\u0014¾¡~\\u0004>e'd>Ð2\\u0014¾ÿÑ\\u0001>uñS>G°\\u0017¾v`ò=_\\u0012]>xÛ\\u0011¾\\u0019Ôô=Ùû>>xÛ\\u0011¾\\u0019Ôô=Ùû>>ˆ×\\u0011¾ýMð=y*{>­Ì\\u0014¾+ùØ=Ü9n>û\\u0014¾µ‰Ð=\\u0001Ô}>ZÓ\\u001c¾Xß\\u0002>cÑ…>ZÓ\\u001c¾Xß\\u0002>cÑ…>ZÓ\\u001c¾Xß\\u0002>cÑ…>\\r¿\\u0011¾\\rÇÝ=åêU>\\u001ap\\u0019¾qÅ\\u0013>x^a>\\u001ap\\u0019¾qÅ\\u0013>x^a>\\fõ\\u0017¾ÞÂ\\u000b>â\\u0001>\\fõ\\u0017¾ÞÂ\\u000b>â\\u0001>äÞ\\u0016¾!¨\\u0016>ó¬P>\\u0017\\u0017¾\\u0018O\\u000f>¤qB>\\u0017\\u0017¾\\u0018O\\u000f>¤qB>Ö\\\\\\\"Z½îŠž>ù\\u0004s¾Ž¨[½6§>?¥j¾µ-4½¾ë >ß±‚¾Eyk½\\u0007ÿ‘>\\u0000œ“¾Eyk½\\u0007ÿ‘>\\u0000œ“¾Eyk½\\u0007ÿ‘>\\u0000œ“¾×JÝ¼\\u0013\\u0017£>H±Š¾ñ®‰½\\\\»†>*Ó\\\\¾ Ö½é*•>5‚{¾s«›½\\u0010à„>-\\u0005v¾s«›½\\u0010à„>-\\u0005v¾~E“¼å\\u0001”>¼y—¾;ò=½-™§>\\u001dË{¾[BÄ¼%š>+\\u0004¾[BÄ¼%š>+\\u0004¾Øwc½d\\f>ni¾ÿaš¼ÂRŽ>Šq¾ÿaš¼ÂRŽ>Šq¾}¼•½'cŠ>uõl¾º\\r\\u0007¼Ç\\u0013”>`…—¾7ß\\u001c½¨x—>ºT”¾òîW½\\b-–>%ÒŒ¾‚K<¼Ú\\u0014¥>ÂA‰¾‚K<¼Ú\\u0014¥>ÂA‰¾Æ–\\u0015¼\\u001f\\u0010š>\\u001b³Ž¾Æ–\\u0015¼\\u001f\\u0010š>\\u001b³Ž¾í„¡:\\tiŸ>I$…¾`W•;/Y¢>¯\\u001e€¾`W•;/Y¢>¯\\u001e€¾«¿ü<\\u001f)˜>îä€¾«¿ü<\\u001f)˜>îä€¾™Ë\\u0011=\\u00193“>NÌy¾åð\\\\<“n˜>9\\u001eŒ¾apœ<¸#™>aH‡¾Í0\\u001b=ù÷’>­lj¾Í0\\u001b=ù÷’>­lj¾6©É< š™>¯‡p¾'ìl<½Tž>Œ^}¾”çv<‚Ÿ>ƒÜc¾”çv<‚Ÿ>ƒÜc¾c\\u0002\\r¾ê@\\u001a>zØ3>þÁ\\u000b¾Õš\\u0003>£û4>þÁ\\u000b¾Õš\\u0003>£û4>ª¤\\u001a¾ç34>p{D>ª¤\\u001a¾ç34>p{D>XM\\u0018¾jyA>0Ü>>XM\\u0018¾jyA>0Ü>>\\n÷Ñ½ã¶ >Þš0>\\n÷Ñ½ã¶ >Þš0>\\n÷Ñ½ã¶ >Þš0>è®\\u0014¾ÆÁ5>ê\\u00016>è®\\u0014¾ÆÁ5>ê\\u00016>ëPÇ½6Û;>Ê:2>ëPÇ½6Û;>Ê:2>|\\u001aœ½³ñI>©Ý'>|\\u001aœ½³ñI>©Ý'>Ërª½‚z<>,œ\\u0014>Ërª½‚z<>,œ\\u0014>Ërª½‚z<>,œ\\u0014>Ërª½‚z<>,œ\\u0014>0¯$¾X5U>Žˆ>0¯$¾X5U>Žˆ>»4)¾ÉxI>éQˆ>»4)¾ÉxI>éQˆ>»4)¾ÉxI>éQˆ>\\u000bwN¾„í->Ä*‡>\\u000bwN¾„í->Ä*‡>´KK¾…H£>\\\\\\\"ŠŠ>´KK¾…H£>\\\\\\\"ŠŠ>´KK¾…H£>\\\\\\\"ŠŠ>¡,4¾¿Y«>µŠ>¡,4¾¿Y«>µŠ>¡,4¾¿Y«>µŠ>¡,4¾¿Y«>µŠ>\\u000eod¾¸D‰>¢Hˆ>#\\u0017X¾ãrŸ>Ñ\\u0015>#\\u0017X¾ãrŸ>Ñ\\u0015>#\\u0017X¾ãrŸ>Ñ\\u0015>Šé!¾!ªF>¡A€>Šé!¾!ªF>¡A€>çò%¾AÀ.>I{‡>ƒ\\u001d¾7+1>‘>±Š\\u001b¾…8%>þ2…>Ô#¾œ\\u0011=>“T†>£P\\u0002=Þ‡>\\u001cÆ\\u0001¾K\\u0013g=Búv>·ç5¾^â€=œÄ€>…\\f ½^â€=œÄ€>…\\f ½\\u001eý\\u0016=ôk‰>²PÝ½W;R=O\\u0002…>\\u001eÈÂ½Ñõ%½=<~>#\\u0017½Ñõ%½=<~>#\\u0017½#¢=b…æ=¨ñ½û\\u0015¬= K\\u0007>ãûð½½x¡=\\u0018¦Ê=0ÔÏ½ÜA‘=²Ì|>r½½ÜA‘=²Ì|>r½½»WA<ÛT>6q\\u001b¾nd<w2‹>›ï\\b¾´.¤<œ\\u0000‹>a\\u0014×½¥·œ<Ð.Š>\\u0003(î½\\u0003Ûš=ö\\nç=„Ö\\u0017¾ö‡˜=Êor>Ÿ>¢½ö‡˜=Êor>Ÿ>¢½\\u0018€‘= AÈ=‹‰\\n¾\\u0018€‘= AÈ=‹‰\\n¾ô¼Í;Ù«Š>¤–â½§›”=È×v><àÌ½ÍÄ=\\u0003´ö=3\\n*¾ÍÄ=\\u0003´ö=3\\n*¾«á”=\\rC\\u000e>ª5¾û2Ÿ=\\u001d\\t>Hð\\u001c¾4‰á<õÈ‚>%(m½4‰á<õÈ‚>%(m½4‰á<õÈ‚>%(m½2ó»j\\u000b‰>\\u000fûÿ½%S—=^ê\\u001b>¬È;¾\\u0018–†=üú\\t>Ç‡C¾“ë‡=\\u0017]\\\\\\\">\\u0010§T¾“ë‡=\\u0017]\\\\\\\">\\u0010§T¾TÙâ<\\u0018\\n‰>m\\\\ ¾—¢=ˆn>å©Ô½jUL=Ø\\u001d>ƒ·&¾—†Á<”QŒ>C43¾Í\\t¨=\\u001fc\\\\\\\">\\n\\u000e\\u001f¾Õò¬=$\\u0005\\u001f>½î\\u0011¾< ~½\\u0012lx>’\\u0004ˆ½< ~½\\u0012lx>’\\u0004ˆ½< ~½\\u0012lx>’\\u0004ˆ½< ~½\\u0012lx>’\\u0004ˆ½nÅ¢=£¹i>\\r¶\\u0000¾Èöq½°u>Ó6|½Èöq½°u>Ó6|½b˜ª=ná\\u001a>À\\u0000¾Ÿ¦=w0\\u0006>Eý\\u0003¾PËv=;šv>Ù\\u001f¾?å°=û•T>0cÿ½Ð\\u0003†¼D¶…>ªÂ®½ªZ\\u0007½\\u0018!ˆ>³ÈÌ½Ö3·=ûé4>ŠØþ½ébž=²Ã6>b=4¾\\u0007†¬={96><.!¾\\u000e\\u000f³=µ™;>\\u0005 á½ôéš=\\u0011lO>E\\t'¾459=\\u0012M†>Š\\u000f«½‡Œ3=·u„>Ç‡ˆ½‡Œ3=·u„>Ç‡ˆ½‡Œ3=·u„>Ç‡ˆ½6M¤=F\\u001b+>–\\\\.¾T\\u000e­=ÙlQ>‚à\\u0013¾êj€¼àé‰>\\u0018~\\u0006¾\\u0011}’=™“b>í\\u001c¾öµ=W7l>Äè\\u0010¾`Œ)=Ú•„>%\\u0017C¾¶A-=gý‚>ÆK\\\\\\\"¾¦R£=Êð\\u0006>g‘£½¦R£=Êð\\u0006>g‘£½jT¨=qÎû=h¯ˆ½jT¨=qÎû=h¯ˆ½jT¨=qÎû=h¯ˆ½o_D¼ËÅŒ>ìþ\\u001b¾\\u0017˜Š=Ãf^>}É)¾-äz¼”\\rˆ>JÆã½²o%½ât‡>ãÁþ½\\u0002Ôn;?Ð„>þ£¨½\\u0002Ôn;?Ð„>þ£¨½¤m\\u000b»à‹ˆ>Ð\\u0006¿½ø=“\\u001fX>; F¾ø=“\\u001fX>; F¾\\u000eµ¦=&_>D­Ù½Ü”¶<‰Lˆ>ï²½b9±=à\\u000bE>ò«ç½Ç \\u000b½vn‰>·{\\u0019¾Ç \\u000b½vn‰>·{\\u0019¾SJ\\u001f»üìŠ>h²\\u001a¾3\\\\\\\"‘=vÂu>_ìõ½\\n¢©=}^Q>fö¬½\\n¢©=}^Q>fö¬½\\u000f}T=ól„>%Çé½¿úk=ƒú}>\\u0007\\u0003\\u0010¾\\u0013eB=1w„>úÝ\\u0006¾ëBp=–\\f~>ˆg\\u0002¾O¤`¼Ð=>¾ÿ–½O¤`¼Ð=>¾ÿ–½­§£=(_ô=‹þÈ½øh²=‰?#>Ÿjá½ØÑ«= ë%><‹¼½ØÑ«= ë%><‹¼½ØÑ«= ë%><‹¼½7\\f©=»\\u000bË=²‰§½7\\f©=»\\u000bË=²‰§½Î\\\\\\\"ò½Ï\\u001bN>\\u001eÌ·=bÉ½Â>1>(ŸŒ=bÉ½Â>1>(ŸŒ=%¨ç½ÂP>CxÍ=\\u0013\\u0007È½Ú\\u00163>[zÇ=\\u0013\\u0007È½Ú\\u00163>[zÇ=¡¼Ð½é¨[>\\u0010µh=¡¼Ð½é¨[>\\u0010µh=¡¼Ð½é¨[>\\u0010µh=ÅÚå½¥lM>cJe=ÅÚå½¥lM>cJe=FÎá½\\u0014šD>±\\t>FÎá½\\u0014šD>±\\t>k7ç½ò¾J>m¨ò=\\u000f\\u000bÔ½TÝ8>ïÔÚ=\\u000f\\u000bÔ½TÝ8>ïÔÚ=ŒÑà½y+K>î\\u0010Š=\\u0005óÎ½\\u000e\\\\>\\\\\\\"ì´=\\u0005óÎ½\\u000e\\\\>\\\\\\\"ì´=\\u001e±µ½mq^>\\u0005ó™=\\u001e±µ½mq^>\\u0005ó™=‹Ü½\\u001d\\u00148>·Ýo=‹Ü½\\u001d\\u00148>·Ýo=l\\u0002Ô½\\u0002j]>“Iò=l\\u0002Ô½\\u0002j]>“Iò=B³æ½\\u0005\\u0012=>ù¤=ÇÎ¥½D+>kOd=ÇÎ¥½D+>kOd=ÇÎ¥½D+>kOd=Ä'ª½û1>O€\\u0001>Ä'ª½û1>O€\\u0001>Ä'ª½û1>O€\\u0001>,jæ½ÒnW>ê%\\t>,jæ½ÒnW>ê%\\t>,jæ½ÒnW>ê%\\t>€›´½ó\\u000e\\\\>¤Bã=€›´½ó\\u000e\\\\>¤Bã=€›´½ó\\u000e\\\\>¤Bã=û\\u001eª½\\u00156'>A\\u0019\\u0019=û\\u001eª½\\u00156'>A\\u0019\\u0019=\\u001c]­½vÜ]>‘ÂZ=\\u001c]­½vÜ]>‘ÂZ=pY¼½Í\\u001fd>kT\\u001a=pY¼½Í\\u001fd>kT\\u001a=pY¼½Í\\u001fd>kT\\u001a=Ü® ½—rY>•ŸÈ=Ü® ½—rY>•ŸÈ=Â†³½ð\\r^>®à\\u0001>Â†³½ð\\r^>®à\\u0001>»ØÊ½\\u0006žd>êœ\\u001a>»ØÊ½\\u0006žd>êœ\\u001a>»ØÊ½\\u0006žd>êœ\\u001a>9Yœ½@[>Í\\u0018Š=9Yœ½@[>Í\\u0018Š=9Yœ½@[>Í\\u0018Š=9Yœ½@[>Í\\u0018Š=B±¤½ºâ*>“àÎ=\\u0007d¬½çN.>ˆR·=\\u0007ê†½\\u000b{->Ïôi=\\u0007ê†½\\u000b{->Ïôi=j\\u0001 ½Ëæ&>º¦y=j\\u0001 ½Ëæ&>º¦y=o5„½$^I>¾2‘=Ña”½ý\\nP>Y+ð=Ña”½ý\\nP>Y+ð=‹åŒ½npH>\\u000f\\u001dÂ=.„‹½8Ó=>Ü³æ=S•ƒ½á\\u0012W>ñé(=S•ƒ½á\\u0012W>ñé(=S•ƒ½á\\u0012W>ñé(=\\u0005Ý ½\\u0001,X>)ÿ\\t>\\u0005Ý ½\\u0001,X>)ÿ\\t>\\u0005Ý ½\\u0001,X>)ÿ\\t>\\nˆ­=\\u001bQ³>\\u001b8€>\\nˆ­=\\u001bQ³>\\u001b8€>Šn\\r=Ü±¢>\\u0016Â?>Šn\\r=Ü±¢>\\u0016Â?>Šn\\r=Ü±¢>\\u0016Â?>=Òœ¼™+§><Im>ƒ¶\\u0004=3µ²>ƒƒ„>3Ü¤½BÅ¦>\\u001f?ˆ>3Ü¤½BÅ¦>\\u001f?ˆ>3Ü¤½BÅ¦>\\u001f?ˆ>Ø}Ï½Õ.­>s¤Œ>Ø}Ï½Õ.­>s¤Œ>E‹ä½ù\\u000e°>w4Ž>E‹ä½ù\\u000e°>w4Ž>¡z\\u001c½,’²>›ˆ‰>ãÁÃ=ñÁ>K…Œ>ãÁÃ=ñÁ>K…Œ>ãÁÃ=ñÁ>K…Œ>ãÁÃ=ñÁ>K…Œ>–’Ü<'zº>©ã‹>Ûïb=\\u0003Ô®>fÉn>Ûïb=\\u0003Ô®>fÉn>RÃÃ½\\ná”>š$=>RÃÃ½\\ná”>š$=>RÃÃ½\\ná”>š$=>Mk\\u000f¼¾¥ž>È³;>Mk\\u000f¼¾¥ž>È³;>wµA½í¥·>æ³‹>\\\\\\\"îÉ=æ©>¡\\\\>\\\\\\\"îÉ=æ©>¡\\\\>\\\\\\\"îÉ=æ©>¡\\\\>KÆÎ=ÄxÃ>6\\\\“>KÆÎ=ÄxÃ>6\\\\“>KÆÎ=ÄxÃ>6\\\\“>KÆÎ=ÄxÃ>6\\\\“>7\\\\\\\"D½CG´>2)•>7\\\\\\\"D½CG´>2)•>bÌá½àoZ>vºbÌá½àoZ>vºkšÁ½O\\u000ef>¶°¢8kšÁ½O\\u000ef>¶°¢8kšÁ½O\\u000ef>¶°¢8/óì½Ó\\tM>”\\u000e\\u001a=*|ß½esR>\\u001c,ä<–ÚÈ½še->¤\\u0003=–ÚÈ½še->¤\\u0003=–ÚÈ½še->¤\\u0003=Õõâ½ÕA8>¤\\u001b.<Õõâ½ÕA8>¤\\u001b.<Õõâ½ÕA8>¤\\u001b.<ë@ä½\\tvR>Ó‚Z<Z£Ç½9\\u001ab>»ƒÞ<Z£Ç½9\\u001ab>»ƒÞ<¬{\\f¾ç\\u001b£>;õˆ>¢ø\\u0012¾\\f\\u001f™>O¸€>¢ø\\u0012¾\\f\\u001f™>O¸€>Ë|4¾Ÿb¤>¨¶©>˜\\u001f’½Å#\\u001e>Ã>è<E3¨½Kþ\\u001f>\\u0007Î\\\\\\\"='—Î½¨í0>ãJ!¼'—Î½¨í0>ãJ!¼'—Î½¨í0>ãJ!¼–¿q½xœ)>Sª]<–¿q½xœ)>Sª]<*¤½Gø!>Â\\u0015O<*¤½Gø!>Â\\u0015O<*¤½Gø!>Â\\u0015O<8Ä¨½Èk'>BM\\u001e<8Ä¨½Èk'>BM\\u001e<8Ä¨½Èk'>BM\\u001e<ß†`½¡>>w‡…<ß†`½¡>>w‡…<ß†`½¡>>w‡…<Á~È½l­\\u001f>×\\u000bª¼Á~È½l­\\u001f>×\\u000bª¼Ò\\u000e\\f¾Eðh>5³7>o³\\u0002¾—\\fd>KŒ+>M,ç½$–d>h›\\u001b>à$ô½V\\u001eQ>mœ\\u0013>à$ô½V\\u001eQ>mœ\\u0013>\\u0006Iè½¦\\u0015G>£F >ü¨ø½$ÑW>\\u0007>\\\\\\\">\\u001eÑ\\\\\\\"¾u\\u0004e>á¸M>\\u001eÑ\\\\\\\"¾u\\u0004e>á¸M>\\u0012w\\u0000¾ WT>s®6>œ\\r\\u001e¾\\u0012íU>Qù=>œ\\r\\u001e¾\\u0012íU>Qù=>o×\\u001c¾;I}>Sž9>o×\\u001c¾;I}>Sž9>\\u0018Ä&¾Ò0>ª÷U>\\u0018Ä&¾Ò0>ª÷U>—Aþ½<âu>^\\u001c >oÕ#¾.\\u0006}>ËlF>oÕ#¾.\\u0006}>ËlF>\\u0006Y\\u0002¾š\\u0019}>®÷.>ŠÞ²½ì\\fA>§Æ#>ŠÞ²½ì\\fA>§Æ#>Óh\\u0004¾§ø>Åù8>Óh\\u0004¾§ø>Åù8>Óh\\u0004¾§ø>Åù8>\\u0010¢Ø½[\\u0013G>\\u001a\\u000e3>\\u0010¢Ø½[\\u0013G>\\u001a\\u000e3>KjÔ½Ë{>—Ü%>KjÔ½Ë{>—Ü%>KjÔ½Ë{>—Ü%>õ¬\\u001f¾Ôï…>›8C>õ¬\\u001f¾Ôï…>›8C>õ¬\\u001f¾Ôï…>›8C>Ê•’½Í<<>…ÿ1>Ê•’½Í<<>…ÿ1>Ê•’½Í<<>…ÿ1>Ê•’½Í<<>…ÿ1>Ê•’½Í<<>…ÿ1>¯Úç½Ø²ƒ>—È5>¯Úç½Ø²ƒ>—È5>Ÿˆ\\u001a¾\\u000en>ìFh>s¤)¾à\\u0002y>èÀh>s¤)¾à\\u0002y>èÀh>\\né\\u000f¾íÁ’>ª–W>´)¾ \\u000b‹>ˆ†h>Œ(¾K\\u0003†>6i>ýÛ\\u0019¾ê¤Ž>¨Á|>ªà\\u0019¾\\u0006Ž>E>M>\\u001c…\\u0017¾z—>^ÕD>î`\\u0007¾<7‘>fÈ?>î`\\u0007¾<7‘>fÈ?>Ó—$¾ò”‡>E)U>+A§½¯(m>z\\u00008>h6»Êb‘>=[7>h6»Êb‘>=[7>VÂ*=†u>€R7>VÂ*=†u>€R7>\\u0007C¾¼\\fÀ„>|ò4>\\u0007C¾¼\\fÀ„>|ò4>\\u0007C¾¼\\fÀ„>|ò4>®­œ½ß\\u0016a>\\u001cq3>®­œ½ß\\u0016a>\\u001cq3>Ø“Õ»Ëkj>+ 7>Ø“Õ»Ëkj>+ 7>ààÍ½–ú>Ù\\n<>ààÍ½–ú>Ù\\n<>L,¯½§Fb>øñ\\u001d>L,¯½§Fb>øñ\\u001d>¦úõ¼â¦Y>˜\\u00153>¦úõ¼â¦Y>˜\\u00153>¦úõ¼â¦Y>˜\\u00153>›€½wº’>v\\u00039>\\\\\\\"\\u001f·½,òq>\\u000fj(>™£»½9M|>.x2>™£»½9M|>.x2>‰÷µ=\\u0014ð…>î«%>‰÷µ=\\u0014ð…>î«%>‰¢~=…%‰> ‘\\u001c>z@V=·\\u0016™>´Ù7>z@V=·\\u0016™>´Ù7>V@¹=¦¼¦>í0H>úÃ³=‹ä’>[°)>“ÇÀ={\\u000f¦>ÒY^>´—=oö§>\\u0004·A>ãµ˜=WJ¡>¹\\u00109>%¢=i[š>ðb/>Ò\\u0007¿=Vz>ó>C>Ò\\u0007¿=Vz>ó>C>¤ñp=˜”>\\tá#>ô\\u0013/=†…x>,(1>ô\\u0013/=†…x>,(1>¸u¾=\\u0013§‹>[Â7>¸u¾=\\u0013§‹>[Â7>t¤6=\\u001dw‰>“\\u0014)>t¤6=\\u001dw‰>“\\u0014)>Í\\u00017=ðd>,H\\u0012>Í\\u00017=ðd>,H\\u0012>®Q=höƒ>¨ \\u0013>®Q=höƒ>¨ \\u0013>®Q=höƒ>¨ \\u0013>åqÎ=ÀÒ™>\\u0010ýb>åqÎ=ÀÒ™>\\u0010ýb>\\\\œÌ=\\u0002\\u0003¡>–Þj>\\\\œÌ=\\u0002\\u0003¡>–Þj>\\\\œÌ=\\u0002\\u0003¡>–Þj>´\\u0011Ý=²NŽ><[@>´\\u0011Ý=²NŽ><[@>#+)=Péz>|;\\u0014>#+)=Péz>|;\\u0014>#+)=Péz>|;\\u0014>sùÞ=gz•>J6ˆ>®w&>¨æ¯>¢G>®w&>¨æ¯>¢G>µ³(>/\\u0016Œ>õªˆ>·´û=D>z>ò2†>\\u0002âà=Ž‹>È:}>\\u0002âà=Ž‹>È:}>\\u0002âà=Ž‹>È:}>\\u001aøä=w‰•>HÚt>\\u001aøä=w‰•>HÚt>\\u001aøä=w‰•>HÚt>h%->¬S­>7Žˆ>h%->¬S­>7Žˆ>h%->¬S­>7Žˆ>h%->¬S­>7Žˆ>“^\\u001f>\\u0013ˆª>\\u0013â„>“^\\u001f>\\u0013ˆª>\\u0013â„>“^\\u001f>\\u0013ˆª>\\u0013â„>“^\\u001f>\\u0013ˆª>\\u0013â„>\\u0001ëÿ=MQ>\\nÃ‡>ô<×=-E©>Œñƒ>ô<×=-E©>Œñƒ>ô<×=-E©>Œñƒ>_QÄ=i/§>Óû‰>­É'>IØ¥>\\u001c¸‰>„9\\u0000>Yþv>¥‹l>„9\\u0000>Yþv>¥‹l>`§Ä=‡P§>Þ y>`§Ä=‡P§>Þ y>C%\\u0005>¸øV>WC7>C%\\u0005>¸øV>WC7>©½=\\u0016Y=> ®/>©½=\\u0016Y=> ®/>\\nñ=Êä}>iÍ>>8íò=x$Œ>¾î[>8íò=x$Œ>¾î[>~Î\\n>\\u000fNF>\\\\\\\"bC>~Î\\n>\\u000fNF>\\\\\\\"bC>~Î\\n>\\u000fNF>\\\\\\\"bC>œ®]=€õk>õÐ >œ®]=€õk>õÐ >œ®]=€õk>õÐ >“°\\\\=D;g>¥»(>“°\\\\=D;g>¥»(>\\u001aÑ™=\\u0005&g>¥ß\\b>\\u001aÑ™=\\u0005&g>¥ß\\b>Ù¿\\r>n(T>ÉŸa>„f\\u0002>Ì´i>20v>„f\\u0002>Ì´i>20v>ª4·=#©t>Ò64>4‹¤=VÄq>°ø >NGú=Äï>Ô›V>=Ä\\u000f>\\u0011Ó<>µi>=Ä\\u000f>\\u0011Ó<>µi>M»‚=‰ŠZ>Mèù=M»‚=‰ŠZ>Mèù=M»‚=‰ŠZ>Mèù=fe€=OÕk>\\u0016‹->«ó¬=\\u0003z~>K\\u001a>«ó¬=\\u0003z~>K\\u001a>«ó¬=\\u0003z~>K\\u001a><†Ÿ=™Ic>\\u0003e4><†Ÿ=™Ic>\\u0003e4>\\u001e½\\u0007=\\u001d5K>\\u000b\\u00054>\\u001e½\\u0007=\\u001d5K>\\u000b\\u00054>\\u001e½\\u0007=\\u001d5K>\\u000b\\u00054>-ã\\u0006>–ÿ:>\\u0007œ4>-ã\\u0006>–ÿ:>\\u0007œ4>-ã\\u0006>–ÿ:>\\u0007œ4>-ã\\u0006>–ÿ:>\\u0007œ4>\\u0003!×=ªoº>ô:‡>\\u0003!×=ªoº>ô:‡>\\u0003!×=ªoº>ô:‡>\\u0003!×=ªoº>ô:‡>xs\\u0018>IæÑ>U²“>xs\\u0018>IæÑ>U²“>ƒª\\u001f>ý¢Ê>^\\u0012•>ƒª\\u001f>ý¢Ê>^\\u0012•>ƒª\\u001f>ý¢Ê>^\\u0012•>Ò¯È=Åâ¬>Ï\\u0015>Ò¯È=Åâ¬>Ï\\u0015>Y›\\u0019>HuÐ>y¼‹>Y›\\u0019>HuÐ>y¼‹>Y›\\u0019>HuÐ>y¼‹>Y›\\u0019>HuÐ>y¼‹>Y›\\u0019>HuÐ>y¼‹>Y›\\u0019>HuÐ>y¼‹>\\u0019êŠ½Gg\\u0014>ë^Î»\\u0019êŠ½Gg\\u0014>ë^Î»\\u0019êŠ½Gg\\u0014>ë^Î»¬,Æ½s=*>§•8½¬,Æ½s=*>§•8½\\u0006‚¥½¬,\\u0018>_øM½\\u0006‚¥½¬,\\u0018>_øM½È\\u001c©½ƒà\\u0014><ø†½È\\u001c©½ƒà\\u0014><ø†½ì›“½Æ’\\n>ûn€½ì›“½Æ’\\n>ûn€½p}´½í¾\\u0019>ãžñ¼p}´½í¾\\u0019>ãžñ¼´\\u0004¿½>›+>™N½´\\u0004¿½>›+>™N½þLÉ½\\u0014ƒ3>\\u001f\\u000fp½þLÉ½\\u0014ƒ3>\\u001f\\u000fp½ÃŒ˜½†ë\\n>WÖÚ¼ÃŒ˜½†ë\\n>WÖÚ¼kß†½—èà=§†2½`5‡½\\u001b»Ä=«:ƒ½>Vˆ½\\u001aéß=;[m½\\u0019\\u0011‚½çw–=B4½\\u0019\\u0011‚½çw–=B4½â¿‰½·ÌÄ=ò¬_½GYˆ½\\u0001D¨=@5^½¿Ør½}£Þ=›Œª»¿Ør½}£Þ=›Œª»ã\\u000fˆ½*n­=öY½H˜ˆ½IH°=ç\\u001b½›¢v½ß“p=ìä@½›¢v½ß“p=ìä@½Axe½H;Â=Sƒw¼ “n½-\\u0007¥=c$t¼ “n½-\\u0007¥=c$t¼Kñ€½B³ô=ïî\\u0000½ŸÁ€½³×Ñ=>üÜ¼A'‡½e#®=\\u0004íä¼‚@6½T\\u000f\\u001c>\\u001dÞV;‚@6½T\\u000f\\u001c>\\u001dÞV;2w<½ÆMá=\\u001fð\\u0007<2w<½ÆMá=\\u001fð\\u0007<Ë\\u0014m½}\\u0014j=\\u0002ã„½Ë\\u0014m½}\\u0014j=\\u0002ã„½1½\\u0003–‰=¥µŠ½1½\\u0003–‰=¥µŠ½'§w½Âî‘=¥»Þ¼'§w½Âî‘=¥»Þ¼Ô7Š½ýÔ\\u0007>·“$½ƒØU¼‰/\\u0007>%ö˜<ƒØU¼‰/\\u0007>%ö˜<ƒØU¼‰/\\u0007>%ö˜<ƒØU¼‰/\\u0007>%ö˜<ƒØU¼‰/\\u0007>%ö˜<ð–\\u0016¼“’3>Vr@;ð–\\u0016¼“’3>Vr@;ð–\\u0016¼“’3>Vr@;ð–\\u0016¼“’3>Vr@;ð–\\u0016¼“’3>Vr@;zÄU=•ä‚>ïTÚ=zÄU=•ä‚>ïTÚ=zÄU=•ä‚>ïTÚ=^–\\u0012=¥lk>_x1>^–\\u0012=¥lk>_x1>´¹’=º`ƒ>”’\\u0000>´¹’=º`ƒ>”’\\u0000>´¹’=º`ƒ>”’\\u0000>L|Q=ÐH„>§‚\\u0007>V8=5_€>¹\\u0010ú=V8=5_€>¹\\u0010ú=ô\\u0016=\\u0019\\u0002i>A®=ô\\u0016=\\u0019\\u0002i>A®=ý\\f8=’ìQ>Š¶š=ý\\f8=’ìQ>Š¶š=\\u0015¶-=_^c>IEù=\\u0015¶-=_^c>IEù=àÊ;=ÇÆ€>XÒÁ=àÊ;=ÇÆ€>XÒÁ=ŠúQ=X¢‚>Ü‹]=ŠúQ=X¢‚>Ü‹]=ŠúQ=X¢‚>Ü‹]=ÿÝ£=Zªx>¦(\\u0007>ÿÝ£=Zªx>¦(\\u0007>¼5¨=nîj>¨rÃ=!à©=sgi>#²=!à©=sgi>#²=è%¡=Ý\\u000bv>Ú`Û=¹\\u001c¥=\\u001d¸Y>rÔV=¹\\u001c¥=\\u001d¸Y>rÔV=¹\\u001c¥=\\u001d¸Y>rÔV=^N=Š‚>¦ÔÆ=^N=Š‚>¦ÔÆ=X ›=™Ô{>´„€=X ›=™Ô{>´„€=‡\\b€=HÍM>\\tÌ…=‡\\b€=HÍM>\\tÌ…=‡\\b€=HÍM>\\tÌ…=‡\\b€=HÍM>\\tÌ…=‡\\b€=HÍM>\\tÌ…=5ù¾½‹Š\\u001f=ŠÖ~=5ù¾½‹Š\\u001f=ŠÖ~=È\\u001a·½\\u001e\\nÚ<ôzd=È\\u001a·½\\u001e\\nÚ<ôzd=È\\u001a·½\\u001e\\nÚ<ôzd=È\\u001a·½\\u001e\\nÚ<ôzd=ÑÒ­½1„V=Ê³w=ÑÒ­½1„V=Ê³w=(\\u001dµ½F\\u0017a=É\\u0019‹=(\\u001dµ½F\\u0017a=É\\u0019‹=Ë<ª½\\u001aÑí<À<(=ö\\u000e½öa’=‰9m=ö\\u000e½öa’=‰9m=ö\\u000e½öa’=‰9m=\\u0000\\u0014d½³H¯=—x¯;\\u0000\\u0014d½³H¯=—x¯;\\u0000\\u0014d½³H¯=—x¯;\\u001a\\nd½NtU=ª\\fÃ;\\u001a\\nd½NtU=ª\\fÃ;Ì\\t\\u0001½\\u001aø«=.³\\f=Ì\\t\\u0001½\\u001aø«=.³\\f=Ì\\t\\u0001½\\u001aø«=.³\\f=N'<½ú9š=^-ç<N'<½ú9š=^-ç<'Ã[½”\\u000fs=â\\u0019ô<'Ã[½”\\u000fs=â\\u0019ô<'Ã[½”\\u000fs=â\\u0019ô<5þo½ud–=XsC<5þo½ud–=XsC<ø]½C\\u0013<=,«™<ø]½C\\u0013<=,«™<ø]½C\\u0013<=,«™<]ÂÉ¼\\u0006FÃ=ú(b=]ÂÉ¼\\u0006FÃ=ú(b=]ÂÉ¼\\u0006FÃ=ú(b=n¦Š½âZ{=Òé\\u001d=n¦Š½âZ{=Òé\\u001d=Üé¥½4\\u0016L=¥Ž\\u001f=Üé¥½4\\u0016L=¥Ž\\u001f=Üé¥½4\\u0016L=¥Ž\\u001f=ÐîF½Nó‹=ÔÒ3=ÑsL=\\u0001Ü‚>\\u001bÄž=\\\\\\\"\\u0001“=¶\\u0016‚>)_+=\\\\\\\"\\u0001“=¶\\u0016‚>)_+=\\\\\\\"\\u0001“=¶\\u0016‚>)_+=ë\\u0004‰=p°>ö„§=y\\u000f€=5¥‚>!“h=y\\u000f€=5¥‚>!“h=ö^¨=V»u>=“\\u001b=ö^¨=V»u>=“\\u001b=”.ª½·®\\u001e=Ùî\\u0015=”.ª½·®\\u001e=Ùî\\u0015=%L’½\\u000föÔ<\\u0007cÉ<%L’½\\u000föÔ<\\u0007cÉ<x\\u0013–½tMF=÷ØÐ<x\\u0013–½tMF=÷ØÐ<;m§½%ë§<Yä\\u0012=;m§½%ë§<Yä\\u0012=\\\\\\u000b¬½à[w<3(=\\\\\\u000b¬½à[w<3(=\\\\\\u000b¬½à[w<3(=\\u001a9h½M\\u001b\\u001a=Î«a¼ÀGO½K†÷;ÚàŽ<èˆ2½[U;½å[(=?f\\n½weØ¼@\\u001e<\\u0015ùU½Æ\\u0015¬<\\u0016ò‰¼Xá\\u0001½SÓD½¸ˆÑ<Xá\\u0001½SÓD½¸ˆÑ<\\u0005G*½ß–¼#'š<OÚ\\u000f½ŒZX:É\\u0013\\u0007½wþT½ã\\u0014ï<‚\\\\S<È\\u0015D½±ÏÍ<æ¼ó¼Þ\\u0014>½§Å…<c|É¼‹µ2½D@Ð;Áç³¼Ÿ±[½…H\\b=%]\\u0007½qP;½«5%;E\\t$<¶,}½ÏÇQ=,`½(=½¹Ð­<8´7½ŒTv½\\u0011²Ž=³º‚¼•®U½VR\\u0019=\\u0019•7½Ï>G½œg\\u000b=¨K{½ AV½õÓ‹=uxˆ;ÈÆk½÷š`=Oî»)z„½‚Š\\\\<XÊµ<­¢ý¼…N\\u0013¼\\n·û¼\\u001cÓâ¼Èøq¼8\\\\¼¼H\\u0017U½\\u0006f-=7=Ë»<69½ªÄÂ<\\u001a‹f½{š>½T*+<\\u001d\\u000fO»Ö½¼©>3½ð\\u0007^;Ö½¼©>3½ð\\u0007^;Ö½¼©>3½ð\\u0007^;á\\u0014G½2;‘<ß(%<4Þ+½N31»Þ-\\u0010¼Û¿\\u0011½;®Ÿ¼\\u0017÷\\u001f¼Û¿\\u0011½;®Ÿ¼\\u0017÷\\u001f¼rè<½ÛÙ\\u0005¼~¢ <Á¡\\u0018½ø\\u001dy¼\\n\\u001ds;|\\u0015€½ö\\u0016\\u0006½ÿ!O=|\\u0015€½ö\\u0016\\u0006½ÿ!O=]\\u001eh½xZD=ç+¸¼ëÞ2¼Nq\\u0019½¡—Å¼ëÞ2¼Nq\\u0019½¡—Å¼f•Ù¼ý\\u0018½³0'=f•Ù¼ý\\u0018½³0'=f•Ù¼ý\\u0018½³0'=KZ•¼g¸¥¼Rá\\u001b½6\\n9½Ê[½õãm=6\\n9½Ê[½õãm=,\\u0002½\\u0014?\\u0003;Êfû<TÞª¼˜]\\u0017¼pìG½TÞª¼˜]\\u0017¼pìG½\\u000b’½å'\\u001b¼§È,=:\\r¢½NKõ»¬I^=:\\r¢½NKõ»¬I^=ÃÄQ½>ôÿ¼jV\\u001c=rØl½€[x¼]1þ<}Q´=1Á=€7G½ÚÕ³=ÇtW=cVj<ÚÕ³=ÇtW=cVj<ÚÕ³=ÇtW=cVj<#ì­=¤«Œ=KÆx;#ì­=¤«Œ=KÆx;#ì­=¤«Œ=KÆx;Æ«³=.\\u001f¼=\\u001c\\n©¼Æ«³=.\\u001f¼=\\u001c\\n©¼UQ©=Ûãâ=í33½UQ©=Ûãâ=í33½Ð\\u000b¨=å.‡=–ÝÉ<Ð\\u000b¨=å.‡=–ÝÉ<Ð\\u000b¨=å.‡=–ÝÉ<Ãñ¸=\\u0000\\u0013ú=9E+>Ãñ¸=\\u0000\\u0013ú=9E+>îiK<[Pé=Ê¹.>U\\u0007j<÷-Ž=Ji'>…½ó;P\\u0006\\u0004>±P0>b‹t=Æ‘È=èæ+>b‹t=Æ‘È=èæ+>áZ ¼-[b=Ž\\n)>áZ ¼-[b=Ž\\n)>áZ ¼-[b=Ž\\n)>UÚý=÷|$>Ä\\u0006/>UÚý=÷|$>Ä\\u0006/>UÚý=÷|$>Ä\\u0006/>UÚý=÷|$>Ä\\u0006/>m×t½Y‹\\u0015>£v1>m×t½Y‹\\u0015>£v1>pa_½51ò=“Ž.>pa_½51ò=“Ž.>Hüd<+\\u0010>¦Í->\\u0015ú<v-†=Ù\\u001b>\\u0015ú<v-†=Ù\\u001b>\\u0015ú<v-†=Ù\\u001b>*²f=\\u0014åz=ìî'>*²f=\\u0014åz=ìî'>*²f=\\u0014åz=ìî'>\\u0005gŠ¼Õ6\\u000e>\\u000e5->º4\\u000f½árŸ=òú(>º4\\u000f½árŸ=òú(>º4\\u000f½árŸ=òú(>äŠÿ»»\\u0014Ä=„Œ,>Ó9T=\\u001c.\\u0005>–:->‘¯$½õk*>w\\u00021>©‚¤»È\\u0010T=\\u0007U\\u001e>y„½=Ùe\\u0019>uº.>y„½=Ùe\\u0019>uº.>ó\\u000b\\r=ýùn=Ø\\u0019&>ó\\u000b\\r=ýùn=Ø\\u0019&>™\\u000bÚ½˜F^>çí\\u0011½Æ1Ñ½\\u0019-I>Ó¨†½ÑÀ½Èî7>\\u0019üš½ÑÀ½Èî7>\\u0019üš½–|¯½\\u000blo>•ÜB½\\u000bîÚ½|‚:>rŽ&½“qÜ½ó‹B>HcÊ¼“qÜ½ó‹B>HcÊ¼\\u001bÉØ½K\\bP>D;½ËÎß½\\bhT>\\u0005Í¼ËÎß½\\bhT>\\u0005Í¼ôPÔ½/…Z>\\nGj½\\u0019¯’½Ã¢t>\\u0005\\u000f9½\\u0019¯’½Ã¢t>\\u0005\\u000f9½ƒ\\u0004»½%3h>o²‰½ƒ\\u0004»½%3h>o²‰½\\u000fúž½€¤r>>“î¼\\u000fúž½€¤r>>“î¼\\u000fúž½€¤r>>“î¼ÔwÝ;´õù=…U[=ÔwÝ;´õù=…U[=D¯\\u000e¼™Ð\\u0007>\\u0001J\\u000f=D¯\\u000e¼™Ð\\u0007>\\u0001J\\u000f=D¯\\u000e¼™Ð\\u0007>\\u0001J\\u000f=D¯\\u000e¼™Ð\\u0007>\\u0001J\\u000f=èÆ:‡‚Ú=ç?|=èÆ:‡‚Ú=ç?|=èÆ:‡‚Ú=ç?|=èÆ:‡‚Ú=ç?|=36º<\\\\\\\"\\u001f\\u0003>\\f`\\u0007=36º<\\\\\\\"\\u001f\\u0003>\\f`\\u0007=36º<\\\\\\\"\\u001f\\u0003>\\f`\\u0007=36º<\\\\\\\"\\u001f\\u0003>\\f`\\u0007=”ê›¸¸â&>™%ž<”ê›¸¸â&>™%ž<”ê›¸¸â&>™%ž<%3ì»ó8Ô=ž5e=%3ì»ó8Ô=ž5e=‡Î”¼,cÕ=-m#=‡Î”¼,cÕ=-m#=‡Î”¼,cÕ=-m#=ÝÚ-½\\t\\\\\\\"8>Ä†$;ÝÚ-½\\t\\\\\\\"8>Ä†$;ÝÚ-½\\t\\\\\\\"8>Ä†$;‘6)=\\u0013Û÷=Þƒ\\u0016=‘6)=\\u0013Û÷=Þƒ\\u0016=‘6)=\\u0013Û÷=Þƒ\\u0016=\\u0004Ž;=H\\u0019Ü=Ð^>=\\u0004Ž;=H\\u0019Ü=Ð^>=\\u0004Ž;=H\\u0019Ü=Ð^>=}Ò<!–ñ=é??=*{ø;ÿÖ=AW¥=*{ø;ÿÖ=AW¥=*{ø;ÿÖ=AW¥=*{ø;ÿÖ=AW¥=\\u000bQJ=O\\u001c\\\\\\\">\\u0006\\u0017ÿ»\\u000bQJ=O\\u001c\\\\\\\">\\u0006\\u0017ÿ»\\u000bQB=\\tÍ\\u0010>ª04;²\\u001a0=Û©\\f>ƒàŽ<²\\u001a0=Û©\\f>ƒàŽ<ÇÙš=\\u0013Ð\\u000e>eºx½ðg‘=D:\\u0002>Þ\\u0003Ú¼£\\u0006‹=Œ§»=‡t\\u0003=\\u001aŽ…=\\u000bï5>ý®ñ»\\u001aŽ…=\\u000bï5>ý®ñ»\\u001aŽ…=\\u000bï5>ý®ñ»E9—=¾DÀ=\\u001cÑB<\\u00047¥=;:@>C“š¼\\u00047¥=;:@>C“š¼»†Z=-`+>)Çµ¼Ò~î<Î7\\u001c>y}o<Ò~î<Î7\\u001c>y}o<Ò~î<Î7\\u001c>y}o<\\u0019Š˜=dH\\u000e>( -½~D‡=¹¹\\u001d>ÌÝ ½£\\u001f€= Œ²=?ù<=£\\u001f€= Œ²=?ù<=–f’=àÙ˜=8†G=–f’=àÙ˜=8†G=–f’=àÙ˜=8†G=S!œ=bñ!>mu€½S!œ=bñ!>mu€½ƒ‡p=È’ä==Ð<Š\\\\ž=5*Ò=[ÿÒ»Õé=uuð=pâÑ:`b˜=Ärþ=>S ¼çf£= »ë=¥\\u001ah½çf£= »ë=¥\\u001ah½9—”=”³/>Ôœ9½9—”=”³/>Ôœ9½Œít=Úø\\u000f>h¿P¼†3°=\\u0001\\u001d\\u001e>\\u00020°½†3°=\\u0001\\u001d\\u001e>\\u00020°½†3°=\\u0001\\u001d\\u001e>\\u00020°½0­\\u001a=×ê,>“6˜:0­\\u001a=×ê,>“6˜:0­\\u001a=×ê,>“6˜:0­\\u001a=×ê,>“6˜:å§Ð=\\u0019\\u000e„=ý@Ç<å§Ð=\\u0019\\u000e„=ý@Ç<p\\u0013Ð=ån¤=_¥S=p\\u0013Ð=ån¤=_¥S=p\\u0013Ð=ån¤=_¥S=Ü…\\u0000>É5q=;¤B=Ü…\\u0000>É5q=;¤B=Ü…\\u0000>É5q=;¤B=ÂJÆ=ÏÄš=\\u001eÜ\\u001b=YEæ=!ð‘=¬Ò\\u0013=M\\u0000á=¬_d=\\u0006Ó£<M\\u0000á=¬_d=\\u0006Ó£<M\\u0000á=¬_d=\\u0006Ó£<Œ›é=\\týr=¢jß<Œ›é=\\týr=¢jß<¹±‚=\\b=™=(Ýi=¹±‚=\\b=™=(Ýi=¹±‚=\\b=™=(Ýi=K„©½/l&=n2)>Tá¢½nŸ½=ñ9!>½‘½ñ0•=òp\\u000e>½‘½ñ0•=òp\\u000e>…Íf½Èk±=\\\\Š\\u0011>…Íf½Èk±=\\\\Š\\u0011>\\tëŸ½¡;·<”(>Ä®·½³ê†=M\\u0000\\u001e>‡ ¨½kì˜=¹½\\u0013>ÄÄ¦½‘¨\\u0012=âÒ >}2°½@L_=\\u0012\\t >“L™½Âž8=¬8\\u0016>“L™½Âž8=¬8\\u0016>mè—½\\u0007j\\u000f<\\u0004ë&>mè—½\\u0007j\\u000f<\\u0004ë&>;k›½\\u0004Üì<\\u0003»\\u0015>;k›½\\u0004Üì<\\u0003»\\u0015>û-Ã½`–\\u001f<¾þ)>û-Ã½`–\\u001f<¾þ)>Ó­¸½\\u000bwƒ=ef+>\\u0016Ä½íØÅ=~K2>ÙG½\\u0004\\u0000µ=+\\u0010\\u0019>ÙG½\\u0004\\u0000µ=+\\u0010\\u0019>\\u0001\\u0006ž½8eA<UÇ\\u0019>\\u0001\\u0006ž½8eA<UÇ\\u0019>Ù2¶½\\u0016\\u0004°=’â*>·=¦½\\u000e1‚= ]\\u0015>·=¦½\\u000e1‚= ]\\u0015>§·º½1‹ =úr\\\\\\\">v…\\u0001¾_žÀ=3È/>v…\\u0001¾_žÀ=3È/>X\\u001cˆ½GñÖ=4\\u0014/>X\\u001cˆ½GñÖ=4\\u0014/>YÞA½ÓÿÃ=mó+>YÞA½ÓÿÃ=mó+>µ³ð½YK\\u0004>¿$/>µ³ð½YK\\u0004>¿$/>ìd_=±f°=g\\u000bp=\\u0017¥C=ÝY£=\\u001bç£=\\u0017¥C=ÝY£=\\u001bç£=þ\\u0015\\u0005<kÉÒ=uÿ¿=þ\\u0015\\u0005<kÉÒ=uÿ¿=ñÿ\\u0007=âNÁ=~p¢=ñÿ\\u0007=âNÁ=~p¢=\\u0005Ð»<£Ïò=rŽ„=\\u0005Ð»<£Ïò=rŽ„=\\\\\\\"ˆZ=’¾’=Êéµ=ˆ\\u001fU=ñ—…=Yœî=ˆ\\u001fU=ñ—…=Yœî=\\u0011jÌ<õé½=5ÛÆ=Øò“=M·=Y\\\\\\\"î=Øò“=M·=Y\\\\\\\"î=Øò“=M·=Y\\\\\\\"î=Øò“=M·=Y\\\\\\\"î=m¬=\\u0000ð£=í?ž=m¬=\\u0000ð£=í?ž=m¬=\\u0000ð£=í?ž=m¬=\\u0000ð£=í?ž=„ià=i\\u000b•=²IÉ=„ià=i\\u000b•=²IÉ=þ8Þ=›Þ¡=Ö'«=þ8Þ=›Þ¡=Ö'«=þ8Þ=›Þ¡=Ö'«=¬µý=€¿=¼\\u0014¥=¬µý=€¿=¼\\u0014¥=¬µý=€¿=¼\\u0014¥=¿•ð=]\\u0011…=Ä[Þ=¿•ð=]\\u0011…=Ä[Þ=¿•ð=]\\u0011…=Ä[Þ=¿•ð=]\\u0011…=Ä[Þ=wŽÅ=†Ež=\\u0001&Þ=wŽÅ=†Ež=\\u0001&Þ= ·×=\\b\\u001až=\\u0005\\u0002ˆ=‡Èú=ü\\t„=Ã‹}=‡Èú=ü\\t„=Ã‹}=±xË¼\\u0001¹À½iŸ\\u0002>±xË¼\\u0001¹À½iŸ\\u0002>§\\\\\\u001c½çˆ¹½æÑ\\u000b>}Oz½—š~½d4ø=¬÷W½_†…½L\\u0005Ï=h\\u0010¥½—Dã¼Ú\\u0003®=Œ7¡½ËNÕ¼öiÎ=Ãð‚½ØeH½p2Ñ=õz½#ù\\f½_Æ\\u0003>¾\\u0014\\b½F\\u001d’½õ²‰=¾\\u0014\\b½F\\u001d’½õ²‰=4Œ”½TŸ7¼Ûí\\u001d>4Œ”½TŸ7¼Ûí\\u001d>4Œ”½TŸ7¼Ûí\\u001d>BâŠ½–ª\\u0011½\\u0018\\u000e¢=x\\u0015‹½c\\u0004V½â}\\b>s«½S1f¼®e\\u0002>s«½S1f¼®e\\u0002>ÖŒ½*@ê¼Ç\\u001e‚=•è&½Ý×£½ÍÄÁ=\\u0002y\\\\½ˆÒ™½¤¾\\u0018>\\u0002y\\\\½ˆÒ™½¤¾\\u0018>µ\\u0011i½r¥o½ð¿\\u001d>·•n½j”½ö#\\u0001>0?ö¼ë?°½ÔôÃ=0?ö¼ë?°½ÔôÃ=â|J½Ò™z½‡•¦=hß¦½2 3»Ð{€=hß¦½2 3»Ð{€=x ½ü\\t€¼Ñ)y=x ½ü\\t€¼Ñ)y=x ½ü\\t€¼Ñ)y=èH»½lû)¼†é·=èH»½lû)¼†é·=\\u0001‹®½¡/¼:à•=\\u0001‹®½¡/¼:à•=à>®½ªçE¼k;ç=à>®½ªçE¼k;ç=\\u0007Ø¨½Ÿãœ»@°\\u000f>\\u0007Ø¨½Ÿãœ»@°\\u000f>( Á½ °€;!Å¢=( Á½ °€;!Å¢=\\u0018ß(½ƒN¬½Ø¶ô=¹<™½\\u0000&ã¼\\u000fŒ\\u0011>L½¼\\u000b­½a¶¡=L½¼\\u000b­½a¶¡=L½¼\\u000b­½a¶¡=.aQ½ Ü=~Ý»=-p¿½\\u0012Î<\\u001eÈÚ=\\u0007•½½Üv\\u0010<ùùÝ=‚\\u0012%¼\\\\@S=‡I\\u0011>¿;˜½\\u0007Ç€=õñ¦=ên½¦|:=l`\\u000b>ên½¦|:=l`\\u000b>\\u0006¾£½\\u0005;\\t=\\u0002V\\u0005>Æ½Å½å}a<ƒ\\u0004õ=”Fh;’ž´=aZÑ=dï¸½w]3<\\u0013¶=dï¸½w]3<\\u0013¶=-õÈ½\\u000b¢\\u000b=n±Ÿ=òS\\u0010½„xž=²¾}=òS\\u0010½„xž=²¾}=\\fº‘¼„ßœ=¬+·=Ý†½mh=œ-î=—©¼½œþ%=Œc’=\\u0018oå»v™—=-+Ù=\\u0006\\u0019\\u0001<ÀõÃ=Ë[²=˜Pµ½ì\\u0002\\u0001=úaø=!Ï’<í\\b˜=Ýóù=!Ï’<í\\b˜=Ýóù=!Ï’<í\\b˜=Ýóù=\\u000f\\u001eÉ½Ò\\u001e±<{q“=s\\u0003\\u001a½¥b“=H\\bÒ=£¿W½ßft=EÔè=\\u0011\\fÅ½í\\u001c='×´= -\\u0014½GS=\\u000bõ\\u001a>»Ä»½\\u0012¡\\u0014=ì–Û=\\u0011b5½UÌV=MÕ\\r>²ï´½“!R=Ê-µ=ÿOÄ½-…\\\\<J¶=é\\u0015s½b·]=\\u0010J\\r>é\\u0015s½b·]=\\u0010J\\r>ˆsW¼ëÄj=Ù\\u0010ú=­hÛ¼Šž|=>ý÷=âî`½Db”=„d”=VôÕ=ˆ¶ó=Óá'>VôÕ=ˆ¶ó=Óá'>VôÕ=ˆ¶ó=Óá'>³¡\\u0018>ÔÊú=20>³¡\\u0018>ÔÊú=20>bþø=\\t*\\u0003>î\\u00034>’|ø=•\\u001dÉ=\\b6\\u001d>’|ø=•\\u001dÉ=\\b6\\u001d>’|ø=•\\u001dÉ=\\b6\\u001d>Hùù=ò5Ô=Cê*>Hùù=ò5Ô=Cê*>\\u0015eà=ÖnÉ=>®\\u0012>\\u0015eà=ÖnÉ=>®\\u0012>°›\\u001a>}<\\f>\\u0015ô7>°›\\u001a>}<\\f>\\u0015ô7>°›\\u001a>}<\\f>\\u0015ô7>î\\u0018\\u0015>ï*&>j¯:>ö\\u0011û<\\u000bP‘=n|\\u0005>Vîi=\\u00148f=Sð\\u0010>Vîi=\\u00148f=Sð\\u0010>Ú[\\u0018=ˆ¬=ü›è=Ú[\\u0018=ˆ¬=ü›è=”™\\u0015>\\u001do >öøU>lÙ >AV÷=&hR>lÙ >AV÷=&hR>lÙ >AV÷=&hR>»†ç=J‚ƒ=Bq\\u000f>»†ç=J‚ƒ=Bq\\u000f>»†ç=J‚ƒ=Bq\\u000f>»†ç=J‚ƒ=Bq\\u000f>Œ½\\u0002>C\\u0010b=2Ùï=Œ½\\u0002>C\\u0010b=2Ùï=A\\u001aÁ=\\n\\u001f=4†\\u0004>A\\u001aÁ=\\n\\u001f=4†\\u0004>4äÃ=/\\u0012œ=Ù’\\r>4äÃ=/\\u0012œ=Ù’\\r>6\\u001fa=_÷:>©Èv:6\\u001fa=_÷:>©Èv:¦5¼7”e>È\\u000fØ¼¦5¼7”e>È\\u000fØ¼¦5¼7”e>È\\u000fØ¼¦5¼7”e>È\\u000fØ¼÷Ý\\u0015=Y´N>š`Ž<÷Ý\\u0015=Y´N>š`Ž<(&ý<²e>¾µ¾<(&ý<²e>¾µ¾<(&ý<²e>¾µ¾<\\u0013£ˆ<”\\u001ef>d»;\\u0013£ˆ<”\\u001ef>d»;x!6=e\\u001cN>q\\\\\\\"C=x!6=e\\u001cN>q\\\\\\\"C=5'è»ðwK>pbß»5'è»ðwK>pbß»f«Î<\\u0018ÎA>”å@;üX©=ÍºI>´9½º†vª=Üu>µŠì;@Z\\u0011=DP„>ìPO½@Z\\u0011=DP„>ìPO½@Z\\u0011=DP„>ìPO½ãñœ=»ÎJ>™{\\r=•±=Q\\u001a`>\\u0000+§<œ_f=Ñ¸€>³vz<œ_f=Ñ¸€>³vz<œ_f=Ñ¸€>³vz<ÔÊ®=\\u0014ón>ÐÂ¨<¨ç¥=‘Ëy>)¾—¼çŽ—=oH€>L¼\\n¼ÿdº=\\u001b\\u001bY>=Ui¼Ø\\u001a¯=Ôh>>gVo½¹¬i=F$‚>Ê<)¼¹¬i=F$‚>Ê<)¼—š°=\\u00025Z>‡“U½¼'¢=¢êl>^\\u0005„½\\rø¡=2”w>ó%<½åª¯=µm>\\bG\\u0019½œø®=õ5<>*=¢½œø®=õ5<>*=¢½\\u001c==[Å‚>˜R\\u0001½=\\u0001±=f‡P>1E\\u0005½ƒ3™=TQG>E°£<Of—=]i€>uã£<¹–j=¸àƒ>eZi½¹–j=¸àƒ>eZi½-È=:çƒ>Ð[<½-È=:çƒ>Ð[<½\\u0007,K=\\u0006†>¡\\u0013\\u0003=\\u001cOé<ä\\u0000}>w*\\u0003»\\u001cOé<ä\\u0000}>w*\\u0003»\\u000b5&={ñx>W¨¤<¤¡4=‘¢>Æ*(:¤¡4=‘¢>Æ*(:¤¡4=‘¢>Æ*(:Øn\\u0012¼ÊÐ~>Œoc½Øn\\u0012¼ÊÐ~>Œoc½Øn\\u0012¼ÊÐ~>Œoc½ýÝ;É\\u000fƒ>f©R½ýÝ;É\\u000fƒ>f©R½Þ90=¿$„>šn“¼Þ90=¿$„>šn“¼ç)Y¼êÁl>õÌ\\u001b½ç)Y¼êÁl>õÌ\\u001b½.\\\\â<\\\\\\\"î>‘x—¼÷pÀ<´B€>õ³\\u0001½çÈ;+Éz>\\u000f´¼çÈ;+Éz>\\u000f´¼/Ò\\u000f=ò©ƒ>0=\\r½/Ò\\u000f=ò©ƒ>0=\\r½PŽ¢=ÍÝ¶=2í\\u0018>øç¡=c¿Ê=\\u0019¸#>AáÅ=ò·×=¢\\u0012\\u0012>q\\u0014µ=—ä=¯@\\u001e>à‘”='î˜=ê\\u0017$>™Ž–=\\u0005ú…=~©\\u0012>º¿b½Á9t>DØJ½’†\\u0019½Ò\\u0013i>K”&½2p\\u0004½w„y>º$m½§Êm½-ól>û/Æ¼§Êm½-ól>û/Æ¼§Êm½-ól>û/Æ¼ÄzC½\\u0014m>€Ç\\u0019½ø”†½Pnj>;\\nZ¼Óv§½a\\u0012b>åj2=Óv§½a\\u0012b>åj2=\\u001aÝˆ½ˆ3Z>.žÅ<g5•½œe>;*\\u0002;KÜ£½[+j>n\\u0003=¼KÜ£½[+j>n\\u0003=¼rî¨½£ýf>{GE<&ˆi½TRY>ü“Y;÷¤B½sÕV>\\u0012¤Û»\\u0013¬\\u0002>Q<E=glÜ=\\u0013¬\\u0002>Q<E=glÜ=\\u0013¬\\u0002>Q<E=glÜ= $\\r>ƒèµ<%pÿ= $\\r>ƒèµ<%pÿ= $\\r>ƒèµ<%pÿ=œ¸÷=/~{=º+\\b>œ¸÷=/~{=º+\\b>áMö=ÞL=5#\\u0016>áMö=ÞL=5#\\u0016>áMö=ÞL=5#\\u0016>áMö=ÞL=5#\\u0016>áMö=ÞL=5#\\u0016>\\u0011>J>Á¥Í½Kg@>\\u0011>J>Á¥Í½Kg@>\\u0011>J>Á¥Í½Kg@>Ç_J>±P“½‚ÜG>Ç_J>±P“½‚ÜG>\\u0019…=>S\\u0006=½08>\\u0019…=>S\\u0006=½08>ñD\\u0002>É-Q<®$)>ÞE\\u0005>‚}È¼œX\\u001c>ÞE\\u0005>‚}È¼œX\\u001c>Ô\\u000e\\u0007>ÒŸã¼W $>Ô\\u000e\\u0007>ÒŸã¼W $>Ô\\u000e\\u0007>ÒŸã¼W $>Ô\\u000e\\u0007>ÒŸã¼W $>¸tþ=½¤‡;¥p\\u001e>¸tþ=½¤‡;¥p\\u001e>¸tþ=½¤‡;¥p\\u001e>¤›1>D>;èH+>¤›1>D>;èH+>1Yû=ÂhQ=¿4)>1Yû=ÂhQ=¿4)>;G\\\\\\\">Öà-=+ê+>;G\\\\\\\">Öà-=+ê+>;G\\\\\\\">Öà-=+ê+>Äó\\u0006>ÓÑ¹»9~\\b>Äó\\u0006>ÓÑ¹»9~\\b>_\\u0006%>Ò.¶½7 \\u001f>_\\u0006%>Ò.¶½7 \\u001f>_\\u0006%>Ò.¶½7 \\u001f>Ø$9>ö¶¯½õÉ#>Ø$9>ö¶¯½õÉ#>&®,>\\u000f,G½ñ¯#>&®,>\\u000f,G½ñ¯#>\\u000309>©ªD½\\u0010Ò)>\\u000309>©ªD½\\u0010Ò)>\\u0018X\\u0002>UÖ^½×R#>\\u0018X\\u0002>UÖ^½×R#>+™A>\\u0002ÿŽ½g\\u00063>/³:>\\u0014\\u0006‰¼ò=4>/³:>\\u0014\\u0006‰¼ò=4>/³:>\\u0014\\u0006‰¼ò=4>£U.>q\\\\\\\"e=PD>/\\u0003.>Y2>=\\u0006\\u00175>/\\u0003.>Y2>=\\u0006\\u00175>Ïã8>)ß\\u001d»”«>>Ïã8>)ß\\u001d»”«>>ˆ¦8>žÑ=<Ý<:>'T1>Ê°\\t=³HG>gÉ(>\\fN®=Ê!Y>gÉ(>\\fN®=Ê!Y>!È\\u001b¼'\\u0017½“ =<ú\\b1¼ic§½\\u0000K==F¯º46V½˜°\\u000f¼F¯º46V½˜°\\u000f¼c›ë<|““½4Âú;c›ë<|““½4Âú;ow<=\\u0002ðˆ½6Ù¿;ow<=\\u0002ðˆ½6Ù¿;ow<=\\u0002ðˆ½6Ù¿;äÌ\\u0012=9¤½²¶Ì<äÌ\\u0012=9¤½²¶Ì<:Å¸¼ äd½Œ\\u0007Ë<åA(=ÛŠ®½8¯\\u0004=åA(=ÛŠ®½8¯\\u0004=´\\\\\\\"ˆ<ÇÞ§½LYâ<¥qŽ<M‘¾½tf8=¥qŽ<M‘¾½tf8=’¿¼d— ½wtf=’¿¼d— ½wtf=ÿIý»Å¾š½¨\\u0014Ì<(ˆ–»l{¼½[ku=(ˆ–»l{¼½[ku=©2;=BÙ¾½´ìF=©2;=BÙ¾½´ìF=Q\\n\\u0007=o×½°ª=Q\\n\\u0007=o×½°ª=Q\\n\\u0007=o×½°ª=$·¬<œhÖ½V±y=$·¬<œhÖ½V±y=:ë\\\\\\\">õÛÝ=q™<>©Ì%>/=«=ž\\u00044>©Ì%>/=«=ž\\u00044>©Ì%>/=«=ž\\u00044>ö¾ý=‡•¦=\\nl+>ö¾ý=‡•¦=\\nl+>Bóù=O—[=ûÁ\\u001d>Bóù=O—[=ûÁ\\u001d>¯9H=ÎÈ\\u0004½nÚ\\u0018½T ç=¹\\u0018\\u0018=èì<T ç=¹\\u0018\\u0018=èì<Ì!¿=Nß\\b=Zÿ:<0[³=àÁóºòÓ\\u001f»úW¶<ñ²k½{ˆ\\u001d¼úW¶<ñ²k½{ˆ\\u001d¼*|Ã<r¼B½·èÇ¼\\u0017êÒ<ˆ¡\\u0014½¬¿)½Î~¶=×\\u001aR<Ü¸3»“ù•=÷4z¼Í|á¼>C£=‘ê;\\u0016\\u0000\\u0013½\\u000ez¹=0;=\\\\\\\"\\n©¼\\u000ez¹=0;=\\\\\\\"\\n©¼\\u000ez¹=0;=\\\\\\\"\\n©¼ÏÆ†=z°h½„”f;ÏÆ†=z°h½„”f;ÏÆ†=z°h½„”f;\\bmº=«7‘¼U¹â;\\bmº=«7‘¼U¹â;S™ƒ=ÉÈ\\b½Ê¶Ç¼À8¤=ÄR©¼çk†¼»\\u000b¬=o¨\\u0014»'[‡¼Úõ9=©Ú9½\\n®Ì¼¬Õ³=\\\\Dô¼‡Ê\\u0005<¬Õ³=\\\\Dô¼‡Ê\\u0005<˜\\u00180<VW\\\\½jSl¼»)z=¤\\u0000<½¸qR¼TŸ,=˜(q½Àa\\u001c¼-*ð<n\\u0019O¾\\u001f\\u001e\\u0005>‚NÙ<M‰8¾Ëxõ=U\\u000f7=<Î*¾~±À=®‰ƒ=õd\\u000f¾£ÊÂ=öó¿=&‰?¾ôº\\u001b>öó¿=&‰?¾ôº\\u001b>äS¤<ªÒ\\u0012¾3T\\u0015>äS¤<ªÒ\\u0012¾3T\\u0015>;žž=ô\\t¾\\tË\\u0001>V¶Ö<a¯H¾ÊV\\r>ëbO<áÜø½Ì†ÿ=\\u001bÍ-<ò˜\\u0000¾¥ºê=\\u00189’<¿Ì\\u001d¾d“ô=‰O˜<»\\u0007\\u001a¾úK\\t>žs-;çËá½Í\\u0000Þ=·9\\u0007=]ü-¾…ˆÍ=I\\u0004\\u0001<mßè½¹5¶=h\\bÛ<ŠF4¾\\u0001æ\\u0015>h\\bÛ<ŠF4¾\\u0001æ\\u0015>ðÿ'=WúB¾j†×=\\u0012Í\\u0019=]t÷½ƒ£¤=E˜B=\\\\ì\\u000e¾\\u0011J´=\\u000etN=ajö½~ú£=\\u000etN=ajö½~ú£=Ç\\u0007< \\nþ½ì›¶=s\\\\æ<ÝÕñ½š!=èe2¼áàÍ½EBï=èe2¼áàÍ½EBï=ï\\u0001ƒ=s\\u000b*¾§1Ç=DŽ—=Ë]\\r¾ÖÓà=”à©=\\u0002°;¾8Çâ=¬=\\u0000‹$¾ðF\\u0016>Z:ª=®\\u001b\\\\\\\"¾\\u000f7ó=Ó4j=¾\\\\\\\"\\rò=Û\\u001dv=„ëB¾\\u001f³Ë=b¦®=Z\\u001ch¾j8Ú=k¾ =ÿåG¾\\u001cpØ=^\\u0004—=Õ\\u001c#¾4\\nÖ=Üjp=¾V¾ÉíÎ=†±Ð<ŸB0¾í-á= –\\u0018=Ï„h¾+Ú\\u0005>rU£=\\u001a\\u0000…¾æ\\u0011í=rU£=\\u001a\\u0000…¾æ\\u0011í=BQ½8Ã\\u0000Í½ž»ž=¾W„¼ø\\u0010Ç½›ÇÃ=¾W„¼ø\\u0010Ç½›ÇÃ=R¶=pˆ~¾ÊËç=\\u0002\\u000bB=/Ém¾ú?ë=G‡„=\\u0016ð‹¾ßc\\u0002>G‡„=\\u0016ð‹¾ßc\\u0002>lº´<ôŸ\\u0012¾Þ\\u0017Ë=:ïñ<md\\r¾\\u0017á·=®ˆ¿=\\u001d)8¾Ý\\r\\n>®ˆ¿=\\u001d)8¾Ý\\r\\n>”³==ÎA€¾\\u0002\\u0002>šzñ<#ˆ@¾ü3ä=1Ø¼=]\\\\\\\"w¾¯Wâ=1Ø¼=]\\\\\\\"w¾¯Wâ=1Ø¼=]\\\\\\\"w¾¯Wâ=SÌ?=ãqY¾ÐÝÛ==Š\\t=ú™W¾mÏñ=Ã±=@®0¾ûwø=V\\\\\\\"“=\\u0000\\u0007\\u000b¾¢r\\u0015>Aö¦=8;\\n¾\\u0005\\u001c\\u001d>Aö¦=8;\\n¾\\u0005\\u001c\\u001d>Aö¦=8;\\n¾\\u0005\\u001c\\u001d>ôÑÓ=Aoo¾¤ù=ôÑÓ=Aoo¾¤ù=Š\\\\Ð=Žxc¾þq÷=Š\\\\Ð=Žxc¾þq÷=\\u001cOÅ=ø#O¾_Åõ=\\u001cOÅ=ø#O¾_Åõ=éÕ—=Ñ¶u¾ÈHÛ=em‡=é¨u¾8ËØ=³W'=õás¾QQ\\u000b>Ó\\b\\u0015=[_ã½÷ô‘=Ó\\b\\u0015=[_ã½÷ô‘=¡q˜=Fðò½ÏÛâ=¡q˜=Fðò½ÏÛâ=¡q˜=Fðò½ÏÛâ=™¦‰==-ù½\\u0015>Ã=™¦‰==-ù½\\u0015>Ã=¬;º=UÍ%¾aO\\u001c>¬;º=UÍ%¾aO\\u001c>¬;º=UÍ%¾aO\\u001c>°÷°=½\\u0010Z¾úTá=FÊ\\u0006>ðÍš¾š\\u001a\\u0011>FÊ\\u0006>ðÍš¾š\\u001a\\u0011>H‰\\r>8d ¾Ú¨\\u0015>H‰\\r>8d ¾Ú¨\\u0015>H‰\\r>8d ¾Ú¨\\u0015>H‰\\r>8d ¾Ú¨\\u0015>Þ÷ô=Ú¼|¾ET\\u0019>Þ÷ô=Ú¼|¾ET\\u0019>Þ÷ô=Ú¼|¾ET\\u0019>ÌÕ\\u0001>†«Œ¾˜ú\\u0018>ÌÕ\\u0001>†«Œ¾˜ú\\u0018>ar©=s$˜¾0]\\n>ar©=s$˜¾0]\\n>fnž=¼¼Ž¾×üü=fnž=¼¼Ž¾×üü=fnž=¼¼Ž¾×üü=!¦—=¢r¾Ó¦\\u000e>\\u0012\\u0000¸=\\u0019ƒ•¾ÿÄ\\u0002>\\u0012\\u0000¸=\\u0019ƒ•¾ÿÄ\\u0002>‰\\r\\b>4¦6=Îø¦=óº„=ËçØ½7\\f¤=òYø=v\\u0013:½\\u0002SÉ=Èé=!–g½\\u0016‹³=V.ì=ª}‰½©ö=åNo=/2™½\\tx¶<xäç=ÀË‰½UÏ\\u0013>jæÅ=ÿ2½\\u0006ç‡=5÷\\u0004>R¯€¼aTè=äÿÄ=\\u0016±®½Ó´\\u0015>b¯Ì=Ñe­½§\\u0013ÿ=Œ0­=‡Ã‚½Á¿\\u001b=+\\u0001Å=j=¡½/ò«=ªÅÊ=Z‘y9‡ÙR<ªÅÊ=Z‘y9‡ÙR<Òð¼=µ|‚½\\u000bžO=‡1ú=Ušæ¼“À´={±i=$Øµ½\\u000emF=™{£=EËª½Fƒp=•Gý=e\\tE½ƒ\\u001fç=€Š‰=jäp½\\u0000ó7<Àžö=0ñ=»kq6=þé¶=\\u001d\\u001aÕ½Û\\u0015\\u001e>þé¶=\\u001d\\u001aÕ½Û\\u0015\\u001e>‚\\u0006\\u000b>¥\\fa<§+Ø=‚\\u0006\\u000b>¥\\fa<§+Ø='=ô\\\\Ã½£=V\\u0015e=á7Õ½\\b(=tÑå=\\u001a;ˆ<9§¦<tÑå=\\u001a;ˆ<9§¦<\\u0018¤\\u0006>\\fÕ<r\\u0016N=yH\\u0007>¸~\\u0014=ó>_=Iù˜=¢+Ö½@(Ë=CÖ\\u0006>‰Â.½@\\u0017\\u0006>1É\\n>Ü$ë¼‘\\u001b\\u0007>chÙ=ð\\u000b¨½Ó?\\u001f>\\u0002h\\u0007>ŽÁßºŒéÃ=ûøË=Û‚¤¼\\u001dà®<•ÿt=M¶ó½ÇÚ®=•ÿt=M¶ó½ÇÚ®=Û\\u001e­=©ZL½õã³<Ë5©=•a²½±8£=©$á=Â@j¼Ìi\\u0004=mU\\t>RËš<cä=\\u0010ï=°Õ¼;R«\\t=!&°=…\\\\Â½¡8ê=‚JË=µt\\u000b½ËRü<˜ˆý=\\u001f§n¼‰g”=±\\u0011Ó=\\u0003\\b¤½,;Ô=ž\\u0004>@§\\\\\\\"¼\\u0001\\u0016«=ý\\\\\\\"½=¾ñe½µŠ\\u0017=½¤ó=Ç©J¼—òm=@ò“=\\u001d¡‘½\\u0014±\\r=î¥\\u0004>\\u000e˜.=_ªF=\\u0016@\\u0004>\\\\g\\u0014<Éþ=qõ÷=÷\\u000f=Žpÿ<,!–=\\u000f\\u0004Ö½CL\\t>°7\\u0000>Ç:ç;\\u0001eL=Ä6ê=–Á\\u0004½ÖO‹=gÍÐ=¢¹_½˜€_=qñ\\b>=pV=_\\u0003=vžÜ=gö¼fG5=½ðß=¦d½BÌ–=ÌÕ\\u0006>Jœ<ˆ\\u0015Á=[\\u001dß=±®\\b½-XV=À°=+$ï½†Ý\\u0016>À°=+$ï½†Ý\\u0016>\\u000f\\fä=qþ€¾ël\\u0000>\\u000f\\fä=qþ€¾ël\\u0000>¸|Ç=z‘¾å\\u0010ô=¸|Ç=z‘¾å\\u0010ô= ÄÝ=ñ†•¾·.\\u0000>à­ì=’¹ ¾mò\\t>à­ì=’¹ ¾mò\\t>‚÷þ=\\u0015;—¾!\\u0004\\u0006>àÁ×=EÉ‰¾–ìö=ýªñ=\\u0018å„¾Ú½\\t>ýªñ=\\u0018å„¾Ú½\\t>\\u001ekõ=ä@‹¾?¬\\u0005>©ñ/>E†C¾/:&>åB\\u001c>+S%¾ºÈ\\u001d>åB\\u001c>+S%¾ºÈ\\u001d>„Æ$>T<O¾µ\\u001f\\u001e>„Æ$>T<O¾µ\\u001f\\u001e>\\u0003É8>\\u000b·ú½'\\\\\\\">êÇ9>b\\u0016Õ½¥\\u0005!>\\u000f\\u001d\\u0007>Ú©\\u0002¾F#\\u001e>\\u000f\\u001d\\u0007>Ú©\\u0002¾F#\\u001e>ØR>¡®\\u0015¾ð£L>9\\u00159>ÊÍ\\u0015¾Ä\\u000b!>ÅC0>Öˆ>¾£œ >{Üã=T\\u001at¾‹~\\u0005>íî\\u001a>\\u000bE_¾i‹\\u001d>íî\\u001a>\\u000bE_¾i‹\\u001d>íî\\u001a>\\u000bE_¾i‹\\u001d>íî\\u001a>\\u000bE_¾i‹\\u001d>r)Ü=f\\u0013T¾\\u0016ý\\u000b>@‡ã=Õþ[¾¯p\\u0019>j+å=tHe¾\\u0001è\\b>&‹»>¿‡\\u0017¿\\u0018Ì7¿&‹»>¿‡\\u0017¿\\u0018Ì7¿&‹»>¿‡\\u0017¿\\u0018Ì7¿&‹»>¿‡\\u0017¿\\u0018Ì7¿Õ4š>¬þ•<`\\u0011t¿Õ4š>¬þ•<`\\u0011t¿Õ4š>¬þ•<`\\u0011t¿ÎU!?B·®=fE¿ÎU!?B·®=fE¿ÎU!?B·®=fE¿ÎU!?B·®=fE¿†~ú>×¯\\u000b<1B_¿†~ú>×¯\\u000b<1B_¿†~ú>×¯\\u000b<1B_¿“nö¾\\u000eš•>úS¿6\\f\\u001c?ª\\n!>UèF¿3Â¸>sÑ\\u0002?³¸G¿$¯#?úò\\u0010>\\\\\\\"xA¿$¯#?úò\\u0010>\\\\\\\"xA¿Sr©>\\u0000K\\u0017? T<¿Fú0>r{¢>‡³n¿Í>3>*ÀW>h5v¿Í>3>*ÀW>h5v¿\\u0016ÙH¾öoá>\\u0019L`¿›jŠ>4ÏF>ngq¿À\\u0018¯>á\\u0011D>†„k¿mf<?<YŠ>!ì\\u001e¿mf<?<YŠ>!ì\\u001e¿mf<?<YŠ>!ì\\u001e¿mf<?<YŠ>!ì\\u001e¿6ð°>`fÒ=Èn¿••=?\\u001bô\\u0003¾üÕ(¿••=?\\u001bô\\u0003¾üÕ(¿••=?\\u001bô\\u0003¾üÕ(¿_eõ=Ì™>¡q¿_eõ=Ì™>¡q¿_eõ=Ì™>¡q¿j\\u001c1?O\\u0012\\b¾\\u0018°5¿§J8?·Â®=¾V0¿M\\u00136?€ø\\n»Îô3?M\\u00136?€ø\\n»Îô3?M\\u00136?€ø\\n»Îô3??vY?’]>*fö¾?vY?’]>*fö¾?vY?’]>*fö¾?vY?’]>*fö¾¸¸‡=^\\u001f‡>-Wv¿|á™=Ä(a?¿“ð¾¶!>Þ\\u000e\\n¾Ø5s¿\\u000f\\u001eb>â ô<Iy¿\\u000f\\u001eb>â ô<Iy¿\\u000f\\u001eb>â ô<Iy¿?óI?\\u0017Î†>(\\u000e¿?óI?\\u0017Î†>(\\u000e¿?óI?\\u0017Î†>(\\u000e¿?óI?\\u0017Î†>(\\u000e¿?óI?\\u0017Î†>(\\u000e¿\\u001bT@?šÀß>\\u00057ý¾\\u001bT@?šÀß>\\u00057ý¾\\u001bT@?šÀß>\\u00057ý¾\\u001dÕ\\u0011?–W‰>:áF¿\\u001dÕ\\u0011?–W‰>:áF¿\\u001dÕ\\u0011?–W‰>:áF¿g†k?Dq‰>W+’¾g†k?Dq‰>W+’¾g†k?Dq‰>W+’¾g†k?Dq‰>W+’¾g†k?Dq‰>W+’¾g†k?Dq‰>W+’¾þHÒ>„ÑÜ¾¼¥M¿þHÒ>„ÑÜ¾¼¥M¿þHÒ>„ÑÜ¾¼¥M¿þHÒ>„ÑÜ¾¼¥M¿þHÒ>„ÑÜ¾¼¥M¿ì¤~<e¤|¿qŠ$¾ì¤~<e¤|¿qŠ$¾ì¤~<e¤|¿qŠ$¾\\u0013,2?\\u0005a7¿„+L½\\u0013,2?\\u0005a7¿„+L½\\u0007Ù‹>`:à¾ÑC[¿\\u0007Ù‹>`:à¾ÑC[¿\\u0007Ù‹>`:à¾ÑC[¿\\u0007ªR>\\rÀV¿œ\\u0003\\u0001¿\\u0007ªR>\\rÀV¿œ\\u0003\\u0001¿\\u0007ªR>\\rÀV¿œ\\u0003\\u0001¿\\u0007ªR>\\rÀV¿œ\\u0003\\u0001¿Œ‘v?Ë…>›%‚½Œ‘v?Ë…>›%‚½Œ‘v?Ë…>›%‚½yðH=³\\n–¾;pt¿yðH=³\\n–¾;pt¿ A:¾Y\\u0013|>»¶s¿ A:¾Y\\u0013|>»¶s¿i«ì¾S´Ä¾±˜L¿i«ì¾S´Ä¾±˜L¿i«ì¾S´Ä¾±˜L¿i«ì¾S´Ä¾±˜L¿žUL=‘|\\\\\\\"¿(iE¿žUL=‘|\\\\\\\"¿(iE¿žUL=‘|\\\\\\\"¿(iE¿ò”µ½qem=L~¿ò”µ½qem=L~¿ò”µ½qem=L~¿Hî}>ýŒk¿Z3›¾Hî}>ýŒk¿Z3›¾Hî}>ýŒk¿Z3›¾Hî}>ýŒk¿Z3›¾ý=Ý=œW>¿àð(¿ý=Ý=œW>¿àð(¿n=¿ˆ\\u0007,¿²Ñ,<n=¿ˆ\\u0007,¿²Ñ,<´‘?¿Š')¿v{o½´‘?¿Š')¿v{o½\\u0011ÄG¿Ž\\u0017 ¿À^¿:\\u0011ÄG¿Ž\\u0017 ¿À^¿:\\u0011ÄG¿Ž\\u0017 ¿À^¿:°Cc¼Œü©=Š\\u0017¿°Cc¼Œü©=Š\\u0017¿°Cc¼Œü©=Š\\u0017¿OÃ<¿‡è,¿tÅ,<OÃ<¿‡è,¿tÅ,<OÃ<¿‡è,¿tÅ,<\\u000b\\u0018\\u0002¿¥ëþ¾nç3¿î`Q¿:Á\\u0010¿‰\\u0002Ú½î`Q¿:Á\\u0010¿‰\\u0002Ú½î`Q¿:Á\\u0010¿‰\\u0002Ú½©OÅ¾>ê%¾Žh¿\\n¼'¿æË\\\\\\\"¾\\u000e\\u0010=¿]kP¿1ç\\u0012¿àßµ½]kP¿1ç\\u0012¿àßµ½¼t\\u0016¼jå…=\\u0005q¿¼t\\u0016¼jå…=\\u0005q¿¼t\\u0016¼jå…=\\u0005q¿Þ\\u0007=¿ýé¾pVþ¾!¸O¿%*\\n¿œÁe¾!¸O¿%*\\n¿œÁe¾ü\\u0016B¿\\n\\n$¿Vd÷½¨äO¿¯U\\u0012¿»Wð½b™\\u001e¿YóH¿^”Š;b™\\u001e¿YóH¿^”Š;­ü<¿@¸)¿\\\\ãþ½#5R¿Åè\\u0011¿ûUö¼!?Ö¾ûw`¾¼¢a¿!?Ö¾ûw`¾¼¢a¿!?Ö¾ûw`¾¼¢a¿i\\\\\\\"Ä¼ë F=\\u0015 ¿i\\\\\\\"Ä¼ë F=\\u0015 ¿f`µ=š¯d¿—›á¾f`µ=š¯d¿—›á¾f`µ=š¯d¿—›á¾f`µ=š¯d¿—›á¾lq;83j=%”¿e\\u000e1¼Û²‡=%l¿èÊ|¿†æ\\u001f¾rKº<˜‹w¿í¿z¾Ì½˜‹w¿í¿z¾Ì½ÅÖ(¿\\fël¾‘\\u00167¿ÅÖ(¿\\fël¾‘\\u00167¿0R=¿NÔ“¾\\u0010©\\u001b¿0R=¿NÔ“¾\\u0010©\\u001b¿§µ\\u000f¿VX|¾!?J¿§µ\\u000f¿VX|¾!?J¿Â#É¾”k\\\\\\\"¾Òãg¿Â#É¾”k\\\\\\\"¾Òãg¿´•@¿ÚÞ½³'¿T£â¾ÑÀ„¾[¿[¿T£â¾ÑÀ„¾[¿[¿T£â¾ÑÀ„¾[¿[¿ r½\\u001eá<9%¿ r½\\u001eá<9%¿ r½\\u001eá<9%¿ r½\\u001eá<9%¿é#ˆ½\\u001b!\\u000b=%I¿é#ˆ½\\u001b!\\u000b=%I¿ªî9¿\\b¬ ½ÃÑ.¿Íð|¿ñÿ\\u001c¾¬ï<¾Þz¿ˆöK¾°ÚÈºÏE|¿\\u0019'\\u001c¾*ý™½kFx¿œ7W¾)\\u000eý=‚hy¿µýe¾Ð¬¡< §z¿\\u0015 H¾Ô¨e½ §z¿\\u0015 H¾Ô¨e½Ô5:¿éT\\u0010½~q/¿\\u0000ØN¿O\\t\\u000b¾æÆ\\u0012¿BÝx¿dýo¾\\u0018¬Ø;‹g\\u0015¿DÃÌ¾¿ë4¿‹g\\u0015¿DÃÌ¾¿ë4¿´ùw¿|es¾\\u0014Û“=´ùw¿|es¾\\u0014Û“=0é4¿\\u00075±½¦Ä3¿0é4¿\\u00075±½¦Ä3¿àîz¿O¬J¾tÚ‘;È\\u001b8¿Á\\u0004ˆ½á\\u000f1¿þ\\u0007ä¼+E•=;8¿áõ.¿Ü\\u0017T¾·33¿áõ.¿Ü\\u0017T¾·33¿Ö©2¿ž`Á½›¾5¿ë{¿õS3¾ßl„=\\u0016lz¿”„T¾È ´»\\n¥y¿%'b¾|Çƒ¼‹¶‹<±”%¿(1C¿‹¶‹<±”%¿(1C¿‹¶‹<±”%¿(1C¿‹¶‹<±”%¿(1C¿Œx#=XË¿€Mq;\\u000bÇÂ¾a:\\u000e¿ÅD=¿Šï`¾\\u001aÀt¿\\u001dÖF¾ð4–½‘£W¿Û¯\\b¿ð4–½‘£W¿Û¯\\b¿‡Â.>NÔ\\u0011¿`ÑM¿‡Â.>NÔ\\u0011¿`ÑM¿‡Â.>NÔ\\u0011¿`ÑM¿‡Â.>NÔ\\u0011¿`ÑM¿‡Â.>NÔ\\u0011¿`ÑM¿#áÑ¾d;7¿v½\\u0010¿•“Ö=\\u0016·f¿`I×¾•“Ö=\\u0016·f¿`I×¾E]˜¾\\u0003ÞO¿5‹\\u0000¿E]˜¾\\u0003ÞO¿5‹\\u0000¿C\\u0015Ï¾I”i¿\\u001fó=C\\u0015Ï¾I”i¿\\u001fó=C\\u0015Ï¾I”i¿\\u001fó=öT3¿\\u0005`\\f½\\u0000{6¿öT3¿\\u0005`\\f½\\u0000{6¿öT3¿\\u0005`\\f½\\u0000{6¿öT3¿\\u0005`\\f½\\u0000{6¿¨ ,¿XBó½ë\\t;¿¨ ,¿XBó½ë\\t;¿”ƒ©»zSÍ<ˆê¿”ƒ©»zSÍ<ˆê¿\\u001dK\\u0019¾ï-›½ò^|¿¯\\u0006}¿\\u0017œ>½Æ'\\u0014¾¢X\\b¿¸’W¿!)®=¢X\\b¿¸’W¿!)®=(`ô¾\\u0011ó2¿\\u0001R\\b¿(`ô¾\\u0011ó2¿\\u0001R\\b¿Üüô¾½\\fø¾\\u001d{;¿Üüô¾½\\fø¾\\u001d{;¿Üüô¾½\\fø¾\\u001d{;¿Üüô¾½\\fø¾\\u001d{;¿õ±2¿3Í!¿+T¬¾õ±2¿3Í!¿+T¬¾”Ÿ<¿]i*¿³Eò½Ã;¿éý,¿\\u0006ž–½Ã;¿éý,¿\\u0006ž–½Ã;¿éý,¿\\u0006ž–½O³•¾Ho¾Cëi¿O³•¾Ho¾Cëi¿O³•¾Ho¾Cëi¿zÞ|¿í*\\u001e¾ðZ®¼Ó›w¿šx¾Rv˜½´éz¿Z¡¶½úp5¾´éz¿Z¡¶½úp5¾Èë;¿.^g½Ì=-¿Èë;¿.^g½Ì=-¿Æš¿EÚ\\u0019=†®'½ËµI>\\f/Ý>*Na¿ËµI>\\f/Ý>*Na¿²ƒx¿½Ÿu¾à*\\u001b¼÷\\bn¿NÀf¾fö”¾U6}¿ÿ¥ì½\\u0011®º½­{==8\\u0012¿IÌQ¿­{==8\\u0012¿IÌQ¿­{==8\\u0012¿IÌQ¿­{==8\\u0012¿IÌQ¿­{==8\\u0012¿IÌQ¿É\\\\\\u000e¿E¯¾òŸH¿É\\\\\\u000e¿E¯¾òŸH¿É\\\\\\u000e¿E¯¾òŸH¿æ[8¿Ý\\u000fù¾ôKý¾æ[8¿Ý\\u000fù¾ôKý¾/\\\\\\\" ¿1x;¿PÑ‰¾¬\\f6¿è\\u0017\\u000f¿oWÚ¾ŒP•¾Üð÷¾\\b,S¿ŒP•¾Üð÷¾\\b,S¿@\\u0019N¿6E\\u0007¿\\u0014\\u0001Š¾“S¿!¼ü¾¤¬Š¾RàI¿§Åû¾\\u0006\\f½¾báM¿ua\\u0013¿\\\\*\\u0017¾z2¥¾n£3¾I\\u001cn¿\\u0019\\u0004!¿ÐÞÁ¾ñÑ-¿õ@O¿–\\\\\\u0014¿X\\u001d¿½¹hS¿\\f\\u001fó¾YÂ›¾\\u0006ŠW¿¥Ü\\b¿´+•½V‡i¿Ën¶¾|\\u0012O¾\\u001d\\u0017h¿®\\u0002Ì¾\\nE\\u000e¾I\\r\\u001e¿\\\\\\b‡¾§º=¿Ä©b¿4\\u0004å¾³x\\u0001¾à\\u0014T¿ÅÚ\\u0006¿ÌB¾ª4.¿9oÂ½&\\u0001:¿ª4.¿9oÂ½&\\u0001:¿xŽ\\u001a¿ÃE\\b¾'7I¿xŽ\\u001a¿ÃE\\b¾'7I¿iÙ1¿/]ì¾M4\\r¿³$i¿63Ã¾×²\\\\\\\"¾¤“\\u0001¿DÏ©¾pÎK¿»~n¿zy«¾$ƒ\\u0010¾¤^„¾\\b«®½°Tv¿=pp¿]ƒ©¾±1º½™vN¿\\u0013\\u001b\\u0017¿\\\\\\\"r\\u000b=\\rZR¿˜\\u0006¿ø”a¾MôW¿jƒ\\b¿†ò½\\u0000þK¿CÙ\\u0011¿\\u0012÷M¾<64¿\\u0002Ö/¾èm0¿<64¿\\u0002Ö/¾èm0¿i‘h¿Ä\\u0012­¾\\u0003³{¾\\u0017É¾ø|à¾ä!X¿3km¿\\u0019K¿¾RA¼3km¿\\u0019K¿¾RA¼UO^¿yJü¾Œ2c½–\\u0018ä¾f(þ¾F¼>¿–\\u0018ä¾f(þ¾F¼>¿„\\u001ba¿×¶ó¾UÕj<\\b³w¿ƒB[¾P1\\t¾\\u001dÃv¿½l~¾ñ¾Ã½\\u001dÃv¿½l~¾ñ¾Ã½\\u001dÃv¿½l~¾ñ¾Ã½ÃÑQ¿àu\\u0011¿¡S–½G¹I¿LÓ¾\\rðé¾ÝÅ„¾U¸ô½ÁWu¿![\\u000b¿\\bw²½˜•U¿![\\u000b¿\\bw²½˜•U¿![\\u000b¿\\bw²½˜•U¿![\\u000b¿\\bw²½˜•U¿­yí¾íS^¿Ì:3¾­yí¾íS^¿Ì:3¾­yí¾íS^¿Ì:3¾‘K¶¾\\u0006\\\\F½\\fçn¿‘K¶¾\\u0006\\\\F½\\fçn¿».$¿•ÐÙ¾Õu#¿ªïn¿+°¾]jÌ½çÊV¿qF\\u000b¿#vÍ»³ƒT¿G\\f¿ÎxÆ½ŒÎ\\\\¿h,\\u0001¿ü–\\u001b½,é<¿¯\\u0000´¾>y\\u0013¿\\u0001¡T¿\\n5Ž¾1#÷¾ô\\u0001V¿ÍÉ\\u000b¿0ü_½ô\\u0001V¿ÍÉ\\u000b¿0ü_½ô\\u0001V¿ÍÉ\\u000b¿0ü_½Îw\\n¿\\u0011~\\n¾–„T¿Îw\\n¿\\u0011~\\n¾–„T¿Â‘E¿#!!¿y×¹½mmþ¾â\\u001aç¾Æ¼=¿mmþ¾â\\u001aç¾Æ¼=¿w~D¿³ž\\u0017¿–ÿz¾\\u0007…å½ˆ2ã¼ÆI~¿HÀg¿\\u001ciƒ¾»R­¾HÀg¿\\u001ciƒ¾»R­¾¸çE¿åL\\u001d¿aM!¾ÑûL¿G7\\t¿¼õˆ¾ŽÆ<¾\\u001f¤à¼¬ƒ{¿ŽÆ<¾\\u001f¤à¼¬ƒ{¿ƒ˜°½vÆì;/\\n¿òéL¿<¥\\u0013¿\\u00032'¾º F¿we!¿£\\u0001t½å…;¿GP¤¾E±\\u0019¿å…;¿GP¤¾E±\\u0019¿q&&¿~\\u0007³¾P÷,¿q&&¿~\\u0007³¾P÷,¿q&&¿~\\u0007³¾P÷,¿hås¿\\\\Ç‰¾Ë~\\u0010¾hås¿\\\\Ç‰¾Ë~\\u0010¾Rï0¿Ö<]¾0¿Rï0¿Ö<]¾0¿‚ýë½*\\u0006Z¼ŸE~¿Ý? ¿Ð§F¿0iž½Ý? ¿Ð§F¿0iž½\\u0004/S¿–Ô\\u000e¿¼_¹½÷œ­¾\\u001e=þ¾-L¿÷œ­¾\\u001e=þ¾-L¿÷œ­¾\\u001e=þ¾-L¿÷œ­¾\\u001e=þ¾-L¿\\u001aÙÎ¾¿ßÞ¾ØöM¿\\u001aÙÎ¾¿ßÞ¾ØöM¿\\u001aÙÎ¾¿ßÞ¾ØöM¿\\u001aÙÎ¾¿ßÞ¾ØöM¿È¬û¾à\\u0014¹¾¬ÒJ¿È¬û¾à\\u0014¹¾¬ÒJ¿È¬û¾à\\u0014¹¾¬ÒJ¿°ù¸>z$\\u0005¿\\b!F¿»9\\u001c?wº\\u0007¿’°\\u0016¿¼p~?\\u0010€1½Þ‹Ï½¼p~?\\u0010€1½Þ‹Ï½\\u0001\\u0002p?h]\\\\¾½õ‹¾F\\u0002\\\\\\\"?ÓÍ\\u001c¿$€ò¾F\\u0002\\\\\\\"?ÓÍ\\u001c¿$€ò¾¯,??¢¸¾ÿ\\u000e\\u000f¿ü÷]?lÖÂ¾q ¤¾+ìe?fî¥¾‰)˜¾+ìe?fî¥¾‰)˜¾+ìe?fî¥¾‰)˜¾9{\\u001c?ògû¾³å\\u001e¿9{\\u001c?ògû¾³å\\u001e¿9{\\u001c?ògû¾³å\\u001e¿˜jü>+p=¿@Eê¾\\fËD?¯™D¾†.\\u001c¿9p?\\u001eÈ®½êx«¾9p?\\u001eÈ®½êx«¾\\n0s?KzO¾J|s¾\\n0s?KzO¾J|s¾8\\u0004b?rô’¾\\rM¾¾<\\u0015u?iÌ]¾dÈC¾›¾3?>{ÿ¾\\u000f\\n\\u0002¿x}N=±\\u0011F¿6¬!¿Þ8Y?\\fXÖ¾\\u0015µ¥¾Þ8Y?\\fXÖ¾\\u0015µ¥¾¢³J?×EÅ¾’¤ò¾¯ùs?/v\\u0001½f:š¾¯ùs?/v\\u0001½f:š¾ût\\u000e¿@f=¿ž˜Á¾IŠu?,”q>®ì\\u001f¾IŠu?,”q>®ì\\u001f¾IŠu?,”q>®ì\\u001f¾Ã¤4¿îË\\u0011¿GØ×¾Ã¤4¿îË\\u0011¿GØ×¾Ç–¾ƒz\\u001f¿$‘9¿Ç–¾ƒz\\u001f¿$‘9¿&0Ÿ>9ùA¿pâ\\u0012¿&0Ÿ>9ùA¿pâ\\u0012¿ý-¿È¢\\u001a¿xyÖ¾ý-¿È¢\\u001a¿xyÖ¾Ñ\\u0011¿eS6¿\\u000eïÒ¾«2¾ß´@¿`\\u0012\\u0015¿¸r.¿\\u0015» ¿\\\\ŽÀ¾¸r.¿\\u0015» ¿\\\\ŽÀ¾…\\u0000¾¾Õ\\u001b>¿Â¸\\u000e¿…\\u0000¾¾Õ\\u001b>¿Â¸\\u000e¿…\\u0000¾¾Õ\\u001b>¿Â¸\\u000e¿_ ·½±[D¿‚¤\\\\\\\"¿_ ·½±[D¿‚¤\\\\\\\"¿ÓÁƒ>Ö *¿P\\u001d3¿DJN>w¯\\u0015¿F,I¿DJN>w¯\\u0015¿F,I¿ÃÆ2=L\\\\\\\"H¿’=\\u001f¿;ÜØ>ÚŠ(¿}I\\u001f¿×µ“=¬*L¿JU\\u0019¿Æ‰¬<Ïý\\u0013¿¸ÑP¿Æ‰¬<Ïý\\u0013¿¸ÑP¿R$t?2áO¾ÎSc¾R$t?2áO¾ÎSc¾‹?DÏk»ôƒq=‹?DÏk»ôƒq=ü¢Z>¨¾b?\\u0006\\fÓ¾ü¢Z>¨¾b?\\u0006\\fÓ¾ü¢Z>¨¾b?\\u0006\\fÓ¾·\\u0015ø=È.\\u001f?)\\u0014F¿·\\u0015ø=È.\\u001f?)\\u0014F¿·\\u0015ø=È.\\u001f?)\\u0014F¿ù\\u0003à>eL,?©§\\u0018¿\\\\\\u000b¯>ì\\u001a\\r?ºØB¿\\bÓæ>\\u000fvc?gÎ®=íë/?ÝÕ!?åD·¾ r?ýŠ\\u001f>Hß‘¾ r?ýŠ\\u001f>Hß‘¾\\bÆS?\\u000eÒ\\u000e?ÜKˆ=\\bÆS?\\u000eÒ\\u000e?ÜKˆ=ÏÌz?v[ï=PÜ&>l8á>o&;?6‡\\u0005¿…0E?ç]\\r?ìO£>…0E?ç]\\r?ìO£>…0E?ç]\\r?ìO£>ÌÜg?”\\u0011Ï=¸ÄÒ>x@]>à}Ò>\\u0016·b¿x@]>à}Ò>\\u0016·b¿.D?Ô²\\t¿\\u0004Ý³¾_€Ï>·\\u0002½6äi¿_€Ï>·\\u0002½6äi¿_€Ï>·\\u0002½6äi¿Ÿ~{?”þ=ëÄ\\u000e¾Å¨v?Å—\\u001d¾ã?`¾b½|?yWY=g“\\u0019>\\n°i?é£Ï>ìKB½\\n°i?é£Ï>ìKB½\\n°i?é£Ï>ìKB½ÕŠz?¨–)¾ÏÆø½K­M?ä\\\\Ô¾ºµÚ¾-\\u00166?øb ¾¦\\u0016!¿Q\\u0003ì>ØÊÐ¾ÅI¿Q\\u0003ì>ØÊÐ¾ÅI¿@bM?¨Þè¾/ôÅ¾ô\\u000f}?«x½½öô=\\u00037?‹r=••Q½V¯z?ã>4¾BëÍ½ª)Ý>ÉiN?\\u0006åÎ¾>Ù®>÷£;?»œ\\u0016¿\\u0006¾\\u000e?Q\\u001e*¿ê·þ¾\\u0006¾\\u000e?Q\\u001e*¿ê·þ¾è\\u0005?;ó\\u001b¿m—\\u0018¿è\\u0005?;ó\\u001b¿m—\\u0018¿è\\u0005?;ó\\u001b¿m—\\u0018¿}àG?ÿ3\\u001f?\\tªw=}àG?ÿ3\\u001f?\\tªw=Þ‰è> @I?\\\\ŸÖ¾´ý\\\\\\\"?KËC?J‡É½ONi?µ¹>†ßG>ONi?µ¹>†ßG>ONi?µ¹>†ßG>\\u0011»\\u0005?;\\u0015L?Ëòš¾\\u0011»\\u0005?;\\u0015L?Ëòš¾-¯M?›ø\\u0017?Â¼9=t9:?I±\\u001c?bËž>\\n<v?¾\\u001d,>¿\\u0004]¾\\n<v?¾\\u001d,>¿\\u0004]¾ÜCy?–‹Y¼$ñh¾ÜCy?–‹Y¼$ñh¾í!U?M\\u0002?YØ_>ÉØw?’Êj>êÍ=\\u001c`c=»¶£¾¿$r¿\\u001c`c=»¶£¾¿$r¿\\u001c`c=»¶£¾¿$r¿\\u001d\\u001f|?vn*>?cG=l¨|?ï·Ä½\\u0006b\\u0004>¦Pw?~Åx¾Qz³½ÇÿF?ÐÙÝ¾À€é¾ÇÿF?ÐÙÝ¾À€é¾œ\\rã>©q:¿h½\\u0005¿œ\\rã>©q:¿h½\\u0005¿œ\\rã>©q:¿h½\\u0005¿;\\u0017`?P‰˜>*öÂ>Ë\\u0017E?•7Ò½©>!¿ã\\u0012I?h\\bø¾Å;Å¾}UX?ç\\f½¾ÿþÅ¾'…y¿\\u0017ÙV¾¤\\\\\\\"ž=f|¿ \\u0014'¾ð®\\u0013½\\u001b\\u0017|¿dö\\u0014¾yæÃ=ñÃy¿”/_¾vXÊ<ñÃy¿”/_¾vXÊ<uÃz¿éÃJ¾\\u0016³\\u0012=ÑØ\\u0006¿+¹â½¡ÀW¿ÑØ\\u0006¿+¹â½¡ÀW¿ÑØ\\u0006¿+¹â½¡ÀW¿\\u0007\\u0012{¿1˜F¾\\u0018f¼<$\\u000bz¿šÙS¾»lg=$\\u000bz¿šÙS¾»lg=$\\u000bz¿šÙS¾»lg=,c[¿rßù½‘-\\u0000¿,c[¿rßù½‘-\\u0000¿Sx¿x<d¾\\u001ca·½õWo¿\\u0010C¾\\u0019\\u001b™¾Æd}¿\\u001d^\\u000f¾2ãÑ¼¡\\u0017}¿3ã\\u0019¾X\\bæ:lEz¿Ú#U¾{\\u0002ú<3åá¾Z¯H½Ïde¿T\\\\\\\"ò¼.´=\\u0013ä~¿T\\\\\\\"ò¼.´=\\u0013ä~¿\\u0000¹g¿>\\u00016½ÑoØ¾\\u0000¹g¿>\\u00016½ÑoØ¾U±•¾G‡ç¼\\u0013µt¿U±•¾G‡ç¼\\u0013µt¿U±•¾G‡ç¼\\u0013µt¿õâ2¿öž\\u001c¾qä2¿õâ2¿öž\\u001c¾qä2¿¡ãp¿c‰J¾½¢Œ¾‰âu¿$\\rŽ¾\\u0014ñ´<‰âu¿$\\rŽ¾\\u0014ñ´<\\u001a€|¿\\u0010‘\\\\\\\"¾õà4=\\u001a€|¿\\u0010‘\\\\\\\"¾õà4=\\u001a€|¿\\u0010‘\\\\\\\"¾õà4=èy¿\\u001cµR¾V-Œ=¡w|¿ê>(¾À“¦<D\\u0015¿\\b³²½ŒN¿Ö1g¿\\u0000$\\u001f¾ÏõÌ¾Ö1g¿\\u0000$\\u001f¾ÏõÌ¾Ö1g¿\\u0000$\\u001f¾ÏõÌ¾¼\\u0018d¿½¾Ê¾übc¾\\u0004*¿~Bf½f\\\\>¿\\u0004*¿~Bf½f\\\\>¿\\r¼;¿Ù¦%¿r–U¾î»m¿Ž`«¾ûÀ#¾ŠŽi¿á?‡¾&- ¾'7}¿0Ì\\u0014>¸þº¼wÙ]¿Ž¿ê>š­I¾UMa¿óßÞ>ª.B¾UMa¿óßÞ>ª.B¾7ÒD¿¹n\\u001a¿\\u0007/Y¾’\\u0005B¿c2\\u000e¿ð,¯¾’\\u0005B¿c2\\u000e¿ð,¯¾’\\u0005B¿c2\\u000e¿ð,¯¾’\\u0005B¿c2\\u000e¿ð,¯¾\\u0016Kú¾‚vð¾×2<¿\\nXq¿ZÙb½Àa¨¾çYT¿\\u0012=\\u000e?†‚h½A¨€=F!c¿¾\\u0000ê¾Òo\\u0018¿Ñ8=¿ó+¡¾Ê9R¿>Å¾N‹×¾•\\\\!¾ø\\u0017,¿¤.9¿•\\\\!¾ø\\u0017,¿¤.9¿\\u0015Ü8¿H†0?\\u0014dc=™¶d¿\\u001fÆ‘¾\\u0019ë±¾Ò›w¿\\\\¥¾\\u0018œ¼Þ5¿‡e˜½›LÌ¼Þ5¿‡e˜½›LÌ¼\\u0013fŽ¾ö\\u0006[¿ýŒß¾¶³^¿ê¯Á¾v\\u0000¢¾¶³^¿ê¯Á¾v\\u0000¢¾\\r2t¿ \\u0018\\u0017=f„˜¾\\r2t¿ \\u0018\\u0017=f„˜¾²Úc¿€ãÊ¹^eé¾²Úc¿€ãÊ¹^eé¾gY‹¾?\\u0011@¿Ã>\\u001a¿ï¼i¿ÏÈ\\\\\\\"¾èPÀ¾YÂ\\\\¿±\\u001dû¾™È\\u0000>K‰!?Çþ\\u001f¿@Që¾ùjt¿‡:“¾™M›½3+È¾\\u001e?O?Ñ6à>3+È¾\\u001e?O?Ñ6à>f›¿7\\u0000U½m4œ<b\\u0016a¿”:£¾ç9µ¾ó¸ù¾Iu\\u000b¿Z¢.¿Ì\\u0017_¼s\\u0012J¿\\u0000\\\\\\\"\\u001d¿Ì\\u0017_¼s\\u0012J¿\\u0000\\\\\\\"\\u001d¿Ì\\u0017_¼s\\u0012J¿\\u0000\\\\\\\"\\u001d¿^$>=}\\u001a>¿Ð\\n+¿D#y>\\\\\\\"€6¿\\f`(¿ÝÈF¿Æ)\\t¿‘É©¾\\u0016¿G¿¦Lœ¾ë¿\\u000b¿ÇÜ\\u0001>‰¦z¿„Ê\\\\\\\"¾ü^|¿`¶(¾\\nÙ\\u0001½ü^|¿`¶(¾\\nÙ\\u0001½gÄ‹>FåZ¿o·á¾“K9¿ãÁ.?(ÄÍ½“K9¿ãÁ.?(ÄÍ½“K9¿ãÁ.?(ÄÍ½Ÿ°I¿ê{\\u000e¿\\u0013ý†¾Ÿ°I¿ê{\\u000e¿\\u0013ý†¾Ÿ°I¿ê{\\u000e¿\\u0013ý†¾¼DR¿ˆj\\u000e?¹\\u000b\\u0001¾%\\u0013¿~P­=°2ð;½Kõ¾e´T?¡ê>½Kõ¾e´T?¡ê>»w[¿ŠÊ\\u0003¿Ó)È½kßJ¿s\\u001e\\u001a¿Ý›U¿¥*Ó¾\\f/»¾Ý›U¿¥*Ó¾\\f/»¾ ýT¿¼ÞÊ¾¶ÐÆ¾æË§¾«±8¿Z(\\u001c¿¸Q\\u0004¿¬\\u001e2¿ºYÿ¾¸Q\\u0004¿¬\\u001e2¿ºYÿ¾×Gl¿ìÀ¾,>§=ˆip¿øïŸ¾î•\\u0012>cà8¿Î›\\u0007¿È¾ã¾êã\\u0010¿ê\\u000f\\u001c¿\\u0017\\u0015\\u000e¿à}d¿æ©¼¾#\\u001a…¾¸:`¿x\\u0006³¾5;ª¾ES]¿«9ñ¾,\\r3¾ES]¿«9ñ¾,\\r3¾ES]¿«9ñ¾,\\r3¾B\\u0013u¿™º“¾gcˆ<\\u0014°f¿­ÅÚ>îz–½\\u0000)Z¿,É\\u0002¿Bzç½Š\\u0019v¿P\\u001bt¾ž;\\r>çls¿*¯j¾C\\u0015U¾A‡g¿ý’`>@c»¾f|¿NK%¾Oí0½’ˆý¾åLE¿ QÍ¾ý¸b¿¯ì½¾ô\\t¾jåd¿\\u001dý¶¾G&Š¾!Tv¿²\\u001a\\u0016¾Eòj¾!Tv¿²\\u001a\\u0016¾Eòj¾ñëO¿V¾\\u0010¿§.\\u0013¾è\\u0012v¿f~Õ=“¶‚¾¥:t¿a6„¾TÚ\\u001b¾ð¼q¿Yw¤¾O½’=ð¼q¿Yw¤¾O½’=ð¼q¿Yw¤¾O½’=NOm¿¶,¸¾yŸÙ½ºqß>}ô3¿šÅ\\u000f¿ºqß>}ô3¿šÅ\\u000f¿ºqß>}ô3¿šÅ\\u000f¿ô¹j¿E”Ã¾)àì½Õ˜o¿•E‘>CªU¾Õ˜o¿•E‘>CªU¾Õ˜o¿•E‘>CªU¾>÷!?\\u0003ç\\r¿µq\\n¿>÷!?\\u0003ç\\r¿µq\\n¿\\r–)¿\\u0013n\\u0013¿€Hõ¾”ÑB?âcÿ¾§_Ô¾”ÑB?âcÿ¾§_Ô¾ODs¿–l¾QoK½ò?]¿Mw™¾CÙÎ¾`db¿ÒgÊ¾qC~¾\\u001d\\u0018^¿*\\bý¾«vd½\\n:j¿ÀPN¾0\\t³¾\\n:j¿ÀPN¾0\\t³¾.Øu¿u³n>:¼\\u001c¾.Øu¿u³n>:¼\\u001c¾\\u001bÙm¿âo»¾zTW=\\u001bÙm¿âo»¾zTW=Óul¿©1Œ¾c>‰¾Óul¿©1Œ¾c>‰¾c\\u0012c¿ŒªÀ¾¸\\u0007‰¾c\\u0012c¿ŒªÀ¾¸\\u0007‰¾c\\u0012c¿ŒªÀ¾¸\\u0007‰¾FÓU¿À¸ù¾\\u000fþ¾FÓU¿À¸ù¾\\u000fþ¾îæd¿ðL½¾íR¾\\u001cšë¾NÙb?ôpa½\\u001cšë¾NÙb?ôpa½\\u001cšë¾NÙb?ôpa½\\rë]¿­¦º¾q\\u001c®¾†i\\u000f>LE5¿,-1¿Pdû¾>¦C¿,\\u0015Ö¾.‘\\u001e¿#Ø.¿#6Æ¾.‘\\u001e¿#Ø.¿#6Æ¾.‘\\u001e¿#Ø.¿#6Æ¾\\u000f\\u0018¾Šœ2¿\\u001eÝ(¿\\u000f\\u0018¾Šœ2¿\\u001eÝ(¿YT¹½^ Z¿Kü\\u0003¿…«;¿ØÎ\\u0017¿Bˆª¾…«;¿ØÎ\\u0017¿Bˆª¾–jŽ¾É_K¿ð7\\n¿Ž\\u001ao>è¾K¿^\\u0001\\u000f¿þ<ª>Â\\u0018B¿>–\\u000f¿þ<ª>Â\\u0018B¿>–\\u000f¿!SÆ½ºØU¿&ˆ\\n¿m©ñ>Ñ.¿“\\u001e\\u000f¿m©ñ>Ñ.¿“\\u001e\\u000f¿±Û¶¾Lè\\u000f¿ßö>¿±Û¶¾Lè\\u000f¿ßö>¿±Û¶¾Lè\\u000f¿ßö>¿RŠ\\u0002¿q—è>\\t\\u0001;¿RŠ\\u0002¿q—è>\\t\\u0001;¿RŠ\\u0002¿q—è>\\t\\u0001;¿RŠ\\u0002¿q—è>\\t\\u0001;¿a¾/ªÙ¾\\u0002«\\\\¿a¾/ªÙ¾\\u0002«\\\\¿ÅÉN¿Cœ\\u0016¿:Â\\u0018½ÅÉN¿Cœ\\u0016¿:Â\\u0018½ÅÉN¿Cœ\\u0016¿:Â\\u0018½ÅÉN¿Cœ\\u0016¿:Â\\u0018½ñDf¿r\\u001a]>•}Â¾ñDf¿r\\u001a]>•}Â¾ñDf¿r\\u001a]>•}Â¾ê„«¾¤a\\u0005¿qùH¿ê„«¾¤a\\u0005¿qùH¿y±+¿Y*6?˜hV>y±+¿Y*6?˜hV>y±+¿Y*6?˜hV>y±+¿Y*6?˜hV>Mv[¿0õŽ=_–\\u0002?Mv[¿0õŽ=_–\\u0002?;&m¿4†›>5\\u0002d>;&m¿4†›>5\\u0002d>;&m¿4†›>5\\u0002d>÷Õ|¿KñÂ=…\\bÿ½÷Õ|¿KñÂ=…\\bÿ½\\u0018;V¿¬¿\\u0001?\\u000fçS¾\\u0018;V¿¬¿\\u0001?\\u000fçS¾\\u0018;V¿¬¿\\u0001?\\u000fçS¾à®Q¿Ô¾ò>Xa¥>à®Q¿Ô¾ò>Xa¥>à®Q¿Ô¾ò>Xa¥>²\\u001eH¿\\u001e¥\\u001f?\\u0000{;²\\u001eH¿\\u001e¥\\u001f?\\u0000{;²\\u001eH¿\\u001e¥\\u001f?\\u0000{;÷8ž>­\\\\\\\"g?4\\u0005™>÷8ž>­\\\\\\\"g?4\\u0005™>=VO¿ït\\u0011? \\u001e\\u0015>0„Í½0³~? Uÿ;0„Í½0³~? Uÿ;0„Í½0³~? Uÿ;z¶\\u001a¿ƒð\\u0011?Ó{\\u000e¿z¶\\u001a¿ƒð\\u0011?Ó{\\u000e¿z¶\\u001a¿ƒð\\u0011?Ó{\\u000e¿z¶\\u001a¿ƒð\\u0011?Ó{\\u000e¿“}f¿«XÝ>g`K=“}f¿«XÝ>g`K=¢\\u0002E¿Æt\\u000b¾ãµ\\u001f¿¢\\u0002E¿Æt\\u000b¾ãµ\\u001f¿¢\\u0002E¿Æt\\u000b¾ãµ\\u001f¿­œc¿Më\\r¾}Vß¾­œc¿Më\\r¾}Vß¾­œc¿Më\\r¾}Vß¾æ+v¿·Â\\u001b¾íåi¾æ+v¿·Â\\u001b¾íåi¾\\u0010§y¿4pb¾v[\\u000e¼aY%¿ ·µ½Ö\\u001cB¿aY%¿ ·µ½Ö\\u001cB¿aY%¿ ·µ½Ö\\u001cB¿qe|¿Iü%¾&ñ'=qe|¿Iü%¾&ñ'=<k{¿ø\\u000f’½â}2¾<k{¿ø\\u000f’½â}2¾½w¿c>x>\\u0005š½€\\fy¿Å\\\\\\\"\\n=kyj¾ò&d¿H\\u0002Â¾E¾ò&d¿H\\u0002Â¾E¾†”t¿ìé4¾@Zr¾†”t¿ìé4¾@Zr¾ôÕ|¿Å \\u0012>WÈ„=ôÕ|¿Å \\u0012>WÈ„=ôÕ|¿Å \\u0012>WÈ„=\\rx`¿\\u0000¼õ>\\u0002»é¼\\rx`¿\\u0000¼õ>\\u0002»é¼\\bf^¿»Ó¾å‡‹¾\\bf^¿»Ó¾å‡‹¾è½\\u001f¿Ê\\u0016Û½·)F¿\\\\\\\"Qm¿I•\\r¾õz²¾uúy¿‚ÂU¾>\\u001f]=U\\b{¿l\\u001b@¾X\\u0002i=žÏy¿Š†\\\\¾(ž\\u0018=¹¶n¿Âú½³\\u0006®¾y.I¿\\u0019$$¾ æ\\u0018¿ó\\u0005{¿˜ž8¾9›ž=\\u001e\\u0010„½Xö\\u001e=\\\\\\\"F¿šL}¿s\\u000eí½`m²=šgi¿û…ø½\\bîÈ¾Ä–v¿©Ä_¾\\u0004\\u0005 ¾ñÚ{¿ÏØ4¾³™ù<Á²y¿\\u0003Ba¾j {<ø(\\u0007¿@’2¾\\\\ÇT¿ø(\\u0007¿@’2¾\\\\ÇT¿\\u0010€z¿•8I¾o€=gÖm¿¹K\\u000b¾¬$°¾gÖm¿¹K\\u000b¾¬$°¾\\u000e}\\u001f¿â¼|¾Ñ\\u0004>¿\\u000e}\\u001f¿â¼|¾Ñ\\u0004>¿\\u000e}\\u001f¿â¼|¾Ñ\\u0004>¿¯­*¿±åO½Ž[>¿¯­*¿±åO½Ž[>¿6áx¿B1b¾ŠpŸ=\\nÞj¿o!ƒ¾Øà›¾\\nÞj¿o!ƒ¾Øà›¾Ìv¿OI<¾³+J¾Ìv¿OI<¾³+J¾Ûú8¿\\\\\\\"=Â½ñK/¿¬÷v¿ÍÆv¾Y+Ù=ŠLx¿˜Éx¾è/y¼ç,\\u0001¿y›&½8Æ\\\\¿Xÿ|¿8§\\u0014¾G\\u001dB=!u^¿¾$Š¾¯dÔ¾!u^¿¾$Š¾¯dÔ¾¸®$¿Ãc†½*GC¿y%w¿\\u0019Â¾í!™½{`{¿öÄ!¾â-Õ½Åj}¿J\\u0002\\u000e¾@$î¼\\u0014úo¿ö,\\u0010¾â\\u0011£¾Ëjz¿Ì>/¾º\\tñ½Ëjz¿Ì>/¾º\\tñ½däy¿¿CZ¾Ü¨)=‹Ìh¿Õo¾¤\\u0004°¾\\u001cëx¿ð\\u0001l¾êt\\u001b½•x¿\\u0007ð\\u001f¾'-9¾MÈz¿Õ$B¾ØÝ‡½m,x¿žf0¾Öî2¾:Ç|¿Ko\\u001b¾F×5½:Ç|¿Ko\\u001b¾F×5½\\u0003Y|¿ì=\\u0013¾L-³½\\u0003Y|¿ì=\\u0013¾L-³½ð\\u001dV¿óA\\u000f¾b¬\\u0007¿ð\\u001dV¿óA\\u000f¾b¬\\u0007¿º«z¿‚©:¾Û¶½}Fv¿ïˆƒ¾¼)½½§š|¿\\u001fî$¾”a¦¼§š|¿\\u001fî$¾”a¦¼Œê#¿S@M½¼8D¿Â×q¿åßƒ¾øÛO¾e¿s¿Ç©‚¾ÛE,¾±CL¿ü\\rõ½œ=\\u0017¿±CL¿ü\\rõ½œ=\\u0017¿\\u001cÓt¿k3p¾öy2¾Àas¿ÉÀ—¾¢˜º½êz{¿–¶0¾©ó“½êz{¿–¶0¾©ó“½,M¿ÎF]¾¡J\\u000e¿ƒ(\\\\\\\"¿ÐÔ½@MD¿Zt¿ûÛ‘¾m¾¦½KÁ$¿\\u0014f\\u0018¾Ä2@¿KÁ$¿\\u0014f\\u0018¾Ä2@¿KÁ$¿\\u0014f\\u0018¾Ä2@¿¾«»¾Ñà\\u001e½·ùm¿¾«»¾Ñà\\u001e½·ùm¿ÜÂq¿ÂÎ‡¾í\\u000fG¾ù}v¿\\u001bå^¾î•#¾Æ²z¿…OK¾„M\\\\\\\"½úàì¾Ýš\\u0016½:Âb¿úàì¾Ýš\\u0016½:Âb¿‰`x¿5>v¾öƒí¼\\u0006Ôl¿8?x¾jŸ•¾ïF|¿\\u0004¡\\u0017¾l´ª½ä-x¿Jág¾ö\\u0015Á½yuO¿xNN¾¹×\\f¿R¡r¿s¿–¾u û½°IY¿ôV/¾~\\u0010\\u0000¿×iz¿‹lT¾Ù~><\\bÇ\\\\¿'ŠÅ½ómþ¾\\bÇ\\\\¿'ŠÅ½ómþ¾\\bÇ\\\\¿'ŠÅ½ómþ¾\\bÇ\\\\¿'ŠÅ½ómþ¾ohu¿/ï¾.™7½C\\u0016v¿øŠ¾Õ£W½´X\\u0000¿¤8ï½sy[¿ÅÐs¿£\\b‡¾2‰\\u001c¾»Ô}¿•\\u0013ï½V_i½¡ã¾è ×º°Ne¿¡ã¾è ×º°Ne¿‘ÿz¿Ha9¾ð“½‘ÿz¿Ha9¾ð“½°Õ{¿\\rS2¾Æá4=Í~¿S[~½rŒ—=qÖx¿\\u0016n¾\\u0004ª\\b½m€B¿AêÊ½($¿m€B¿AêÊ½($¿m€B¿AêÊ½($¿€4|¿\\u001eÆ.¾¼8<Fv¿`Òj¾)›\\u000e¾±™8¿†%Ž½Iy0¿±™8¿†%Ž½Iy0¿>Ò\\b¿»íG¿yv¥¾Bo\\u0001¿IÖU¿‰#]¾/rt¿+ª—¾LÙ³<\\u0010°x¿êzÇ½¼”]>Âp¿bR\\u0012½¶'®>Âp¿bR\\u0012½¶'®>Är¿Ï˜Ž>\\u0013\\\\\\\"\\\\\\\">Är¿Ï˜Ž>\\u0013\\\\\\\"\\\\\\\">Un¿\\u0016 º>Ö¹¡¼Un¿\\u0016 º>Ö¹¡¼Un¿\\u0016 º>Ö¹¡¼T5L¿@Ñ\\n?\\u0006 ‡>T5L¿@Ñ\\n?\\u0006 ‡>T5L¿@Ñ\\n?\\u0006 ‡>‡Ê\\b¿‚WW¿Ü\\u0018ª=c\\u000eR¿Çåþ¾ZË¾m8V¿Õj\\b¿…¾\\u0000¾fÏV¿ü¦÷¾ËÜ~>fÏV¿ü¦÷¾ËÜ~>”•a¿±‰¿¾(\\u0000”¾™ÛR¿Šl\\u0000¿„b‡¾\\u0005Àv¿(Óƒ¾úí‹½‘\\u0000c¿SDÈ¾ŒS|¾‘\\u0000c¿SDÈ¾ŒS|¾úx¿Gíñ=<-M>–‚a¿ãZî¾;ä®½ër¿aKŽ>Q\\t\\u0019¾ër¿aKŽ>Q\\t\\u0019¾x‘(¿!e(¿);»¾x‘(¿!e(¿);»¾…‚%¿ë\\u001eC?F:\\u0006=…‚%¿ë\\u001eC?F:\\u0006=…‚%¿ë\\u001eC?F:\\u0006=ðÕG¾od,?UŠ6¿ðÕG¾od,?UŠ6¿ðÕG¾od,?UŠ6¿X\\u001a»>Ê±G?%\\u0006\\u0002?X\\u001a»>Ê±G?%\\u0006\\u0002?X\\u001a»>Ê±G?%\\u0006\\u0002?x7\\u001d?•™1?â¢À>x7\\u001d?•™1?â¢À>ù\\u0018\\t?ŠŠ7?¨ä>ù\\u0018\\t?ŠŠ7?¨ä>´€\\u001c?å{\\u001e?ödü>´€\\u001c?å{\\u001e?ödü>ùp,?æm\\u0015?Ø è>ùp,?æm\\u0015?Ø è>™y\\u001b?¦\\u0006ø>N2!?™y\\u001b?¦\\u0006ø>N2!?™y\\u001b?¦\\u0006ø>N2!?Ea\\u0006=¾?#?\\f\\u0004E?Ea\\u0006=¾?#?\\f\\u0004E?Ea\\u0006=¾?#?\\f\\u0004E?!\\u0007|¿Fì\\b¾\\u0012¸è½!\\u0007|¿Fì\\b¾\\u0012¸è½!\\u0007|¿Fì\\b¾\\u0012¸è½rnx¿ROd¾ƒP½½rnx¿ROd¾ƒP½½ò‹|¿\\u001bÎ\\u0016¾`a’½\\rÒN¿¦å\\u000f¾D„\\u0012¿\\rÒN¿¦å\\u000f¾D„\\u0012¿\\rÒN¿¦å\\u000f¾D„\\u0012¿ìYv¿g?Š¾šÞ\\u0004½ìYv¿g?Š¾šÞ\\u0004½ìYv¿g?Š¾šÞ\\u0004½ØO?¿ÕwD¾\\u0015Ü\\\\\\\"¿ëbõ¾«WD<r©`¿ëbõ¾«WD<r©`¿ëbõ¾«WD<r©`¿È=Ç½\\u0010C\\\\\\\"=p•~¿È=Ç½\\u0010C\\\\\\\"=p•~¿óT/¿6:‚½cÒ9¿óT/¿6:‚½cÒ9¿»i¿ÜôË>ZÀÅ½»i¿ÜôË>ZÀÅ½¶œÃ¾ÚËd>še¿¶œÃ¾ÚËd>še¿¶œÃ¾ÚËd>še¿Š\\u0017\\u001c¿åGE?˜Í=>…&\\u001d¿!\\u0018I?§* =…&\\u001d¿!\\u0018I?§* =Ãº¾±µP?¼cæ>ø#R¾â+¼>\\u001d7h?ø#R¾â+¼>\\u001d7h?ø#R¾â+¼>\\u001d7h?–‡.¿@\\u0007²>>Ç$?–‡.¿@\\u0007²>>Ç$?–‡.¿@\\u0007²>>Ç$?°\\u000e¾4¯i?sÿ‰>°\\u000e¾4¯i?sÿ‰>C´^½+îf?36Û>C´^½+îf?36Û>‚\\u001fà¾q]-?\\u001bg\\u0017?nJ!?\\b\\\\F?[‹S½g\\u0013ù¾O[W?«–q>î\\u0011†>w1t?\\\\\\\"N\\u0016>¼Lª¼•K%?\\u0005iC?÷t0¿ \\u0017¯>\\u0001‚#?÷t0¿ \\u0017¯>\\u0001‚#?ÊFß¾/<ä>\\f H?Ù•ö¾•'@?Âç¾Ù•ö¾•'@?Âç¾\\u0017jx>ñRs?qæF¾xYô>é½\\n?p\\u00161¿xYô>é½\\n?p\\u00161¿xYô>é½\\n?p\\u00161¿¬ô^¿±\\u0013­>žŸ¶¾¬ô^¿±\\u0013­>žŸ¶¾Ü“W?oE\\u0006?˜\\u0000¾Ü“W?oE\\u0006?˜\\u0000¾\\u001eÕ;?÷* ?#ª‡>\\u001eÕ;?÷* ?#ª‡>Mùy¿Ô\\u0003\\b¾ý\\u0006.¾Mùy¿Ô\\u0003\\b¾ý\\u0006.¾”Ùw¿‘ù\\u0007¾oIY¾ÿc{¿ÿJ\\u0014¾òmø½ÿc{¿ÿJ\\u0014¾òmø½P‹u¿j\\u0001€¾²‚\\u0007¾P‹u¿j\\u0001€¾²‚\\u0007¾©Ê|¿ò¸\\u0017¾ä§^½©Ê|¿ò¸\\u0017¾ä§^½©Ê|¿ò¸\\u0017¾ä§^½M\\u0007}¿^.ß½YÈØ½M\\u0007}¿^.ß½YÈØ½M\\u0007}¿^.ß½YÈØ½‘Íu¿ä\\u001e¾³,n¾¡È|¿­që½Ÿ\\u0006Þ½¡È|¿­që½Ÿ\\u0006Þ½¡È|¿­që½Ÿ\\u0006Þ½ùÛ{¿w_(¾+‘½®2~¿<°å½K\\u0003\\u001c½ö^y¿\\u0004¦_¾Iqo½ö^y¿\\u0004¦_¾Iqo½O½w¿ìHY¾0)\\u000b¾O½w¿ìHY¾0)\\u000b¾O½w¿ìHY¾0)\\u000b¾O½w¿ìHY¾0)\\u000b¾²Ws¿\\f±Ú½€N•¾²Ws¿\\f±Ú½€N•¾²Ws¿\\f±Ú½€N•¾ß\\u0007~¿\\u0004\\tý½ˆ®þ;IÜ~¿ß­s½Ê³•½š[S¿\\u001c ´¾‚tá>d\\tl¿ô\\u0006\\u0002¾ý@»¾d\\tl¿ô\\u0006\\u0002¾ý@»¾Ÿ\\u0016~¿¶º®½(Š²½\\u0007k¿e\\u000bP½­g5½-\\u001b}¿n\\u0014…¼ö \\u0018>“ü\\u0003¿*˜‡¼ÄO[¿“ü\\u0003¿*˜‡¼ÄO[¿“ü\\u0003¿*˜‡¼ÄO[¿OÝy¿‡\\u0004L¾óJ³½%x¿–l^¾\\u0011™ë½%x¿–l^¾\\u0011™ë½%Éw¿òÅ7¾Þ\\u001b4¾%Éw¿òÅ7¾Þ\\u001b4¾,\\\\}¿…%\\u0011¾D©¼ÆÜu¿|W¥½1‰ˆ¾ÆÜu¿|W¥½1‰ˆ¾G\\u001ff¿Aw²>¬æ‡¾\\u001dq¿Š\\u0010©>¹ŒÒ¼×C¿–•è>‘¨ê¾õZ\\u0017¿Ç9<?¡°©¾õZ\\u0017¿Ç9<?¡°©¾õZ\\u0017¿Ç9<?¡°©¾…\\r†¾+¨ô>%©V¿Q§o¿ä’Ý=;J«>§\\u0016\\\\¿ý8\\u0002?À¹<½ËÓo¿˜õp>¯ƒ„>ËÓo¿˜õp>¯ƒ„>¾Uá¼õ#<?¨v-¿uÛ_¿Lœr=(‡ö¾ÚfN½ªß-?8s;¿ÚfN½ªß-?8s;¿àbw¿B–q>žáÑ=’º¨=¿\\u0013¾>yÄl¿’º¨=¿\\u0013¾>yÄl¿\\u0018Ae¿\\b1>:±>š\\t€»hD?ð0$¿îàE¾ã¸[?qfó¾1&\\u001a¿œ0<?P{Ÿ¾ú4â>ëæá>ÓöG¿ú4â>ëæá>ÓöG¿\\r\\u00156>žº;??þ'¿\\r\\u00156>žº;??þ'¿\\u0012½\\u0014?»… ?\\u0005Ö\\u0004¿‘7?\\u0019§\\b?”yå¾‘7?\\u0019§\\b?”yå¾W\\n,?¥k=?Æ¯ó¼W\\n,?¥k=?Æ¯ó¼†Ã7?8ª.?¢î\\r>sÁÁ>½`?\\u0007;–¾°Nê>\\u0001ˆP?©}¶¾Î?4?ÿ~0?c$.>Î?4?ÿ~0?c$.>˜K6?Ãü.?©#$>­[&? P9?9Rm¾ÇN]?¦Mì>ŠìK>ÇN]?¦Mì>ŠìK>p½\\u0005¿Ä²\\u0019½’\\u0013Z¿,\\f\\u0014¿[PO½\\\\rP¿,\\f\\u0014¿[PO½\\\\rP¿·ºr¿twì½©–—¾·ºr¿twì½©–—¾N\\u0003v¿o9'¾¨—d¾N\\u0003v¿o9'¾¨—d¾¥Hî¼\\rfq=Mr¿¥Hî¼\\rfq=Mr¿¥Hî¼\\rfq=Mr¿Bµ\\u0012¿Nºý¼k¤Q¿Bµ\\u0012¿Nºý¼k¤Q¿G„p¾¹ì„¾`Ìo¿G„p¾¹ì„¾`Ìo¿\\u001efp?Ö~½!‹«¾\\u001efp?Ö~½!‹«¾Þ”\\t?\\u000f†C¿•\\u000f·>Þ”\\t?\\u000f†C¿•\\u000f·>Þ”\\t?\\u000f†C¿•\\u000f·>Þ”\\t?\\u000f†C¿•\\u000f·>ø¿6¿Š\\u0005”¼a63¿ø¿6¿Š\\u0005”¼a63¿»Jå¾+´™=ú\\u0015d¿»Jå¾+´™=ú\\u0015d¿»Jå¾+´™=ú\\u0015d¿§¾ó½B|£=[}¿§¾ó½B|£=[}¿S0¾¦\\u001bï<†\\r|¿S0¾¦\\u001bï<†\\r|¿S0¾¦\\u001bï<†\\r|¿>ê¨½±\\u0013!?vÙE¿>ê¨½±\\u0013!?vÙE¿>ê¨½±\\u0013!?vÙE¿>ê¨½±\\u0013!?vÙE¿«Ác¾¡—8=\\u001bRy¿\\u000b\\t¾¾RŠ½ö\\u0016}¿\\u000b\\t¾¾RŠ½ö\\u0016}¿\\u000b\\t¾¾RŠ½ö\\u0016}¿6\\u0017{¿\\u001ed\\u0004¾ƒX\\u0015¾6\\u0017{¿\\u001ed\\u0004¾ƒX\\u0015¾­ÿÃ¾\\u001eÞT½\\u000f l¿xÒ{¿Ã=#¾7Ûª½ O\\\\¿ÌH:¾ýŽó¾©÷T¿\\u0011Ÿä½Á'\\u000b¿§o·>N”m?õ—Ð½}×W?—€\\u0007?†æÁ½Ô¶!?»OF?¼Êñ¼Ô¶!?»OF?¼Êñ¼e\\f¸>+ãn?\\u0000ñ\\u0018»\\u0019íî>\\u001côa?²g=µuc¾Õ®d?Ÿ\\u0010È>µuc¾Õ®d?Ÿ\\u0010È>\\u0003fy?'íH¾.!ä½~@}?½+\\u000b¾ˆë[½\\u00190}?¹îf½4ë\\u000b¾5Ë=?ðG'?\\u0002ˆ\\u001c¾5Ë=?ðG'?\\u0002ˆ\\u001c¾8òú=còy?\\u0003^6>Ë\\u0000¿=‡Å}?6Q¾=É¢=Qÿ~?ëE€=ÍI&>q¬{?T\\u0018­½·àb?Éa°¾±ž¾¬úc?9\\u0002ç>òqm½¬úc?9\\u0002ç>òqm½®ŸV?mþâ¾\\u0003_¢¾®ŸV?mþâ¾\\u0003_¢¾é7\\u0015¾sÿ|?\\u001eè:=ðSW?ðr\\n?m°ª;\\n T?bÖÁ¾û\\u001fÑ¾\\n T?bÖÁ¾û\\u001fÑ¾­ìf?èÒ–¾p‡¡¾„öt?å‚K¾ÅèX¾ÃA\\u0001¾ƒó}?ÄYA»ÃA\\u0001¾ƒó}?ÄYA»ÃA\\u0001¾ƒó}?ÄYA»‰\\u0010\\u0000¾Äl}?¥z‡=;(o?¶>\\u001d¾wÛ¤¾ØDM?úÅö¾ÓØ´¾“¥p?sX\\u001a¾\\u0007«œ¾“¥p?sX\\u001a¾\\u0007«œ¾Á\\u0006\\u0015?\\u0000úN?\\u0014²°=ës(?\\u000bª??~Ò¤½Bé%?‹iA?j&Ä½DÒ\\u0003?€·X?-(\\n>æÄw?'ü\\u0019¾|yN¾—Ùy?ïæ8¾\\u001f²ù½n«V¾©Øl?¬û¡>n«V¾©Øl?¬û¡>n«V¾©Øl?¬û¡>n«V¾©Øl?¬û¡>ƒŠX?9\\u0018\\u0001?e\\u00032¾üb²½\\u001bn??[´>üb²½\\u001bn??[´>y†|?j\\u0007\\r¾°\\u001c·½\\u000bŠz?1×\\u0005¾\\u0010O\\\\\\\"¾Æ\\u0005N?@w\\u0011?·¾/¾”ez?ŠÐT>œ\\t'<ÇsÙ½ôa`?·ið>‰Ï\\u0015¾áUs?LMŒ>//?2šˆ½\\t+3=;”m?k1÷=oj´¾\\u0000w?W\\u0004\\u0007=]|…¾ï—~?è·3=Ñ¥Â=±ÉZ?U8£>·ÕÑ¾ò!”>Ã~s?t–Ü=¨\\u0015Š=»®~?Nåš=¨\\u0015Š=»®~?Nåš=¨\\u0015Š=»®~?Nåš=ê5r?Ÿ¨I½ï×£¾xuj?·ÒŠ>ž—¾\\u001fQ\\u0017½3.|?f\\u001e,>Ž?T?à ê>¯¶¤¾h#H?fñ\\u000f?I\\u0000Š¾(¨.?%É1?o\\bj>/~\\u001c?åAJ?\\fç;½’¾?¿§ž<\\u0018ã$=’¾?¿§ž<\\u0018ã$=ñ\\u0003}?¸‚\\n>‰#=ñ\\u0003}?¸‚\\n>‰#=ñ\\u0003}?¸‚\\n>‰#=ˆ«¸<zOx?\\u0002\\u0005x> uc?xÓÁ>Á„¾B?¿½j(}?Î¹ì=ÀwŒ¾ú\\\\\\\"v?nöŽ<I/\\u0011¾‰ka?õç>I/\\u0011¾‰ka?õç>ŸÜ)¾„¼m?\\u001fß©>Šu?\\u0013/>m%\\t¾Šu?\\u0013/>m%\\t¾Làv?j\\u0011ƒ>Q\\u000b‰=F„¯;bUq?\\u0011Êª>«°|?!z\\b>=[¶=J\\f•¾ÕZs?\\u0017¢Ü=J\\f•¾ÕZs?\\u0017¢Ü=\\\\0\\u0006½\\b\\u001dv?Šé‹>\\u0005Æ4?¯©+?†Úh¾\\t§|?N\\u0000%>î[ˆ»\\t§|?N\\u0000%>î[ˆ»\\f;\\u000e?éoP?¦‡,¾›-:?!°*?æÑ&¾¶°ü>ÝÝ[?À_\\f¾me0?í'3?ÇÏ@¾´­ÿ½Þîd?Ð\\tÜ>´­ÿ½Þîd?Ð\\tÜ>“Í?‰Ú\\u001d½æÛî»ø¥?\\féR½\\u0018&\\u001f¼¹’?†'b½äî‰<¹’?†'b½äî‰<¹’?†'b½äî‰<‚Çz?_±ì=M(¾‚Çz?_±ì=M(¾’Šz¿ûñF>¸Žˆ=ü6\\u0004¿ûƒZ¿Ñü‹=ü6\\u0004¿ûƒZ¿Ñü‹=sˆu¿5„>4ê=Z\\u0005\\r¿ÛQS¿q\\u001aü=Z\\u0005\\r¿ÛQS¿q\\u001aü=\\u0015f\\u0010¿ ½R?6v„=\\u0015f\\u0010¿ ½R?6v„=\\u0015f\\u0010¿ ½R?6v„=ò<y¿¾ÉJ>C·è=ò<y¿¾ÉJ>C·è=}œK¿E\\u001f\\u001b¿Rw|¼}œK¿E\\u001f\\u001b¿Rw|¼*¿\\u001aþ¤½é*i»}\\u0010<¿w®-¿\\\\\\u0004Ë;}\\u0010<¿w®-¿\\\\\\u0004Ë;-´|¿¡\\u0016>îI½v\\u0010À¾â\\bm?ÒI5½v\\u0010À¾â\\bm?ÒI5½P\\bº=bŽ~?R<`=P\\bº=bŽ~?R<`=nb¿NÓæ¾7àõ=nb¿NÓæ¾7àõ=ò—ß¾ì?f?Iú—<ò—ß¾ì?f?Iú—<Ê¾[¿Ï\\u0015\\u0002¿?i½Ù¼&¿kÕ=¿\\\\Ð$>Ù¼&¿kÕ=¿\\\\Ð$>Ù¼&¿kÕ=¿\\\\Ð$>\\u001aéS>€Äl¿X£>\\u001aéS>€Äl¿X£>\\u001aéS>€Äl¿X£>M–F¿Ÿ\\u0006?O²¾M–F¿Ÿ\\u0006?O²¾M–F¿Ÿ\\u0006?O²¾›%>\\u001a˜s?`\\u001a¼›%>\\u001a˜s?`\\u001a¼›%>\\u001a˜s?`\\u001a¼c\\u0000@¿G\\u0007)¿å¥ ½c\\u0000@¿G\\u0007)¿å¥ ½Å+)>¿ôv?ô$R>Å+)>¿ôv?ô$R>ü\\u001eÇ½u|?#t\\t>ü\\u001eÇ½u|?#t\\t>ü\\u001eÇ½u|?#t\\t>\\u0007‚\\u0012?\\u001dØP?\\b¾ª=\\u0007‚\\u0012?\\u001dØP?\\b¾ª=à®—>~îr?¾Ý½à®—>~îr?¾Ý½%ò\\u0019=/–@?Çb(¿%ò\\u0019=/–@?Çb(¿%ò\\u0019=/–@?Çb(¿¨{\\r?é\\\\\\\"T?³Ùµ=¨{\\r?é\\\\\\\"T?³Ùµ=¨{\\r?é\\\\\\\"T?³Ùµ=¨{\\r?é\\\\\\\"T?³Ùµ=s\\b•>?,t¿\\\\\\\"g˜=áÏœ¾<Ür¿<x¡½z¢W?\\nEö¾¦\\u0003y>z¢W?\\nEö¾¦\\u0003y>øvS¾N#r¿…9€>øvS¾N#r¿…9€>>²x?§\\u001c\\\\\\\">¶Ó4>\\fJc?›\\u000fÙ>\\u0017)7>\\fJc?›\\u000fÙ>\\u0017)7>E\\t?Rq†=[ìg=!v?ì<l¾{<\\u0019>ê¥M?øK\\u0013?Çg\\u001d>ê¥M?øK\\u0013?Çg\\u001d>ê¥M?øK\\u0013?Çg\\u001d>@e?šÄã>|\\u001aI<@e?šÄã>|\\u001aI<@e?šÄã>|\\u001aI<Ñà²>Êâ#?Ê&/¿Ñà²>Êâ#?Ê&/¿‡[Â½›z3?Bì4¿‡[Â½›z3?Bì4¿‡[Â½›z3?Bì4¿ŒÍ=¾-a?§Pà¾5Q§¾½:/?2Ô&¿ë]i¾ #/?\\u0010^1¿ë]i¾ #/?\\u0010^1¿ë]i¾ #/?\\u0010^1¿4‰\\u0002¾tR»>l\\u0001l¿4‰\\u0002¾tR»>l\\u0001l¿\\u0010ó1¾šE^?Ðìí¾\\u0010ó1¾šE^?Ðìí¾kÿ:¾ËP\\u0002?DUW¿þþr¾ˆÇW?oC÷¾þþr¾ˆÇW?oC÷¾þþr¾ˆÇW?oC÷¾þþr¾ˆÇW?oC÷¾Pí ¾tÿd?çCÖ¾ÿŠÛ½h0_?3³ô¾ÿŠÛ½h0_?3³ô¾žD.¾íû'?73<¿žD.¾íû'?73<¿žD.¾íû'?73<¿a¡º½ä #?\\u000béC¿a¡º½ä #?\\u000béC¿|ˆ`¾CUd?´yÊ¾Í\\tP?¹\\u0010»>\\u0004rè¾Í\\tP?¹\\u0010»>\\u0004rè¾Í\\tP?¹\\u0010»>\\u0004rè¾QeÍ>zL_?/4>QeÍ>zL_?/4>QeÍ>zL_?/4>QeÍ>zL_?/4>a\\u000b:¾;\\ny?L\\u0011\\u0013>a\\u000b:¾;\\ny?L\\u0011\\u0013>Ž7Y¿è4\\u0007?b³\\u0007=Ž7Y¿è4\\u0007?b³\\u0007=Î1â¾[?d?J©Ë=Î1â¾[?d?J©Ë=Î1â¾[?d?J©Ë=I2~¿(@ê<ä€ë½øTt¿ø×”>¿gŠ½·]'¿U@A¿\\u000bÉU=·]'¿U@A¿\\u000bÉU=·]'¿U@A¿\\u000bÉU=Jëg¿-­×¾\\f˜/=Jëg¿-­×¾\\f˜/=Jëg¿-­×¾\\f˜/=\\u0018 u¿\\u0012Ð‹>ð~Ž=î\\u001b\\u000e¿~£T?Ax3=î\\u001b\\u000e¿~£T?Ax3=?4©½FNð>T\\u000fa¿ûÃ\\u0003¿–ã1?\\u0006‘\\u0000¿ûÃ\\u0003¿–ã1?\\u0006‘\\u0000¿úÒU¾78x?8‘\\u0002>W‚v>—sx¿+“I<¥ê,¿âÜ;¿\\f@”=`&U¿ùš\\r¿Áä<`&U¿ùš\\r¿Áä<`&U¿ùš\\r¿Áä<–Ñ1?¾û¾­Œ\\u0006?–Ñ1?¾û¾­Œ\\u0006?ÉN\\u0001¼\\t¨y¿èfb>ÉN\\u0001¼\\t¨y¿èfb>ÉN\\u0001¼\\t¨y¿èfb>¨Èó¾Š°\\\\¿u½1>¨Èó¾Š°\\\\¿u½1>¨Èó¾Š°\\\\¿u½1>Z;j?¢X\\u0011=\\rÎÍ>Z;j?¢X\\u0011=\\rÎÍ>Z;j?¢X\\u0011=\\rÎÍ>ŸÐK¿ÕW\\u0019¿\\b†¯=ŸÐK¿ÕW\\u0019¿\\b†¯=Ó\\u0016ü¾ì\\t9½\\u000b…^¿òÈd¿z}\\u0016¾Š\\rÙ¾_ãÀ¾ÉUÕ>2ËS¿‡õu¿•N\\u0001¾ºÓ|¾‡õu¿•N\\u0001¾ºÓ|¾ð\\u001b\\u001e¿ã\\u0017H¿:ê²=\\u0003€o¿\\u000fë$¾\\bò ¾€\\u001d{¿•\\u0006\\u000b¾×\\u000e¾€\\u001d{¿•\\u0006\\u000b¾×\\u000e¾µ´\\u0002¿>ì„¾GØQ¿ggN¿yÄ-½D\\f\\u0017¿ggN¿yÄ-½D\\f\\u0017¿{­ú¾\\u0014-ú=3\\u0004]¿{­ú¾\\u0014-ú=3\\u0004]¿ºê|¿•¥a<ÊÐ\\u001d¾ºê|¿•¥a<ÊÐ\\u001d¾3&\\b¿Œe·>\\u0005rD¿°\\u001bs¿Á}\\u001b=z?Ÿ¾°\\u001bs¿Á}\\u001b=z?Ÿ¾Õ\\u00014¿ã½\\n?|©ë¾ªí|=fˆ~¿ë»²½ªí|=fˆ~¿ë»²½Cà§¾Ýâµ>\\u0001\\u0019`¿Cà§¾Ýâµ>\\u0001\\u0019`¿Cà§¾Ýâµ>\\u0001\\u0019`¿!®Õ¾ë\\u0012\\u001a¿8N.¿!®Õ¾ë\\u0012\\u001a¿8N.¿lK}>\\u001e\\n3?Ë«+¿lK}>\\u001e\\n3?Ë«+¿lK}>\\u001e\\n3?Ë«+¿òµP¿2C°>‘fî¾òµP¿2C°>‘fî¾òµP¿2C°>‘fî¾´rE>•Wÿ½î(y¿´rE>•Wÿ½î(y¿´rE>•Wÿ½î(y¿´rE>•Wÿ½î(y¿´rE>•Wÿ½î(y¿\\u0003ö\\u0000½x\\b?vbX¿\\u0003ö\\u0000½x\\b?vbX¿lÝ*¿\\\\=?x½úÔy¿Bt”½å¼R¾úÔy¿Bt”½å¼R¾Ó£\\f¿L7M?%lq¾'Äd¿Ú\\nâ>^Œ¥½U5~¿\\u0004P›<*½î½íöD¿J~\\u0015? Ž„¾Ë#J¿r\\u0005\\u001a?Gõö½\\u0007T\\u0013¿ÛK-?µïê¾ÃÛ‚¾åD/?®¾.¿ÃÛ‚¾åD/?®¾.¿X\\u0014k¿ï‡>ðb–¾Oªå>XÉ»>š¥P¿œkÊ¼:-õ=ˆ\\u0014~¿œkÊ¼:-õ=ˆ\\u0014~¿Û2Ì¾\\u0002ÏP>ád¿Û2Ì¾\\u0002ÏP>ád¿z(Í¼ÃéF=\\u0018ž¿z(Í¼ÃéF=\\u0018ž¿z(Í¼ÃéF=\\u0018ž¿«\\u0007?ªä²>…íE¿«\\u0007?ªä²>…íE¿¬m<ÐK~º\\u0013ù¿¬m<ÐK~º\\u0013ù¿üŠ·>a\\u001e˜>\\u001ab¿üŠ·>a\\u001e˜>\\u001ab¿$:6?L\\u0002\\u001f?¿ß§¾$:6?L\\u0002\\u001f?¿ß§¾H\\u0014c<×\\u0003“=žP¿H\\u0014c<×\\u0003“=žP¿H\\u0014c<×\\u0003“=žP¿°%‡½L-\\u0016>úª|¿\\u00192?-_\\n?Šçð¾6³3?³×.?Ž×N¾6³3?³×.?Ž×N¾JTY?j|\\b>1ë\\u0002¿JTY?j|\\b>1ë\\u0002¿\\u0000\\u0019ƒ½(\\u0013\\u000b?~MV¿›“¨¾NŽô>‚„P¿›“¨¾NŽô>‚„P¿yp5?½ç\\u0016?wmÆ¾@t9?Çùà>¦ù\\u0007¿iåg?½”*¾1jÇ¾q˜»<\\u0019ãE?ŸM\\\\\\\"¿7FC¾·è\\u0014?¬nJ¿\\u001eƒÔ>0¹è>›ÁI¿\\u0019KN?'·ª>c‹ú¾\\u0019KN?'·ª>c‹ú¾\\u001c¬¤¾û`ð>€R¿ÝD5¿x³í¼Þ4¿ÝD5¿x³í¼Þ4¿'ŠG?Cÿû=\\u001c@\\u001d¿'ŠG?Cÿû=\\u001c@\\u001d¿=´^¿Å¦„>ÏØÖ¾=´^¿Å¦„>ÏØÖ¾/ûA¿*ô ?Oð2¾/ûA¿*ô ?Oð2¾ÔKš>²Nc?2ð±¾ÔKš>²Nc?2ð±¾ÔKš>²Nc?2ð±¾#‚h?\\u0012ÃÍ>XØî=#‚h?\\u0012ÃÍ>XØî=\\u0005àx?f$=>»”\\u0013¾\\u0005àx?f$=>»”\\u0013¾\\u0005àx?f$=>»”\\u0013¾$;7?Y/š>ôM!¿$;7?Y/š>ôM!¿\\u000f´¿ò!C½ÈÁß;\\u000f´¿ò!C½ÈÁß;\\u000f´¿ò!C½ÈÁß;øh\\\\\\\"?\\u0001:_>¨Ú=¿\\f©ü=:Œ\\u0011¾Îl{?\\f©ü=:Œ\\u0011¾Îl{?!w°=f@‚=\\u0017‡~¿ƒ“,?\\u0017ö˜>í,¿\\u0002ÿ{?\\u000b\\u00052>hŠé<\\u0002ÿ{?\\u000b\\u00052>hŠé<\\u0002ÿ{?\\u000b\\u00052>hŠé<\\u001a.s?Ò™ž>R|(=\\u001a.s?Ò™ž>R|(=\\u001a.s?Ò™ž>R|(=¯\\nl?\\u001dùN<×\\u0016Æ¾¯\\nl?\\u001dùN<×\\u0016Æ¾¯\\nl?\\u001dùN<×\\u0016Æ¾¯\\nl?\\u001dùN<×\\u0016Æ¾b}Q>·Ð…¾ô|q¿b}Q>·Ð…¾ô|q¿b}Q>·Ð…¾ô|q¿b}Q>·Ð…¾ô|q¿\\u0010\\u001cÿ:¶ö¥½X(¿E¯¨>P'Å¾,±\\\\¿E¯¨>P'Å¾,±\\\\¿E¯¨>P'Å¾,±\\\\¿|×\\u000f?îÂÔ¾Â\\u001b7¿\\\\ôm½Ll$¾€=|¿lúo?! ²>\\u0001Ãq<lúo?! ²>\\u0001Ãq<m7n?{š•¾=\\fb>m7n?{š•¾=\\fb>¦÷0?ñ\\u0004a>¦80¿¦÷0?ñ\\u0004a>¦80¿Q\\u0001\\u0002=ö5¤=ß\\u000b¿Q\\u0001\\u0002=ö5¤=ß\\u000b¿V|2?1Ä¢>h|$¿[ªw?‡¡€>0Ÿú¼[ªw?‡¡€>0Ÿú¼;s?p›T>7÷g¾;s?p›T>7÷g¾;s?p›T>7÷g¾ÖºÐ¾-°i¿Œ\\u0007º<ÖºÐ¾-°i¿Œ\\u0007º<ÖºÐ¾-°i¿Œ\\u0007º<žr¯=$È,¿Ýž;¿žr¯=$È,¿Ýž;¿Ê¦O?«µ\\u0015¿,aü;Ê¦O?«µ\\u0015¿,aü;™\\\\\\\"w?\\u0001à>¾–y½u\\u0003s?ÿ”™>RBÁ=u\\u0003s?ÿ”™>RBÁ='R\\u001c?é»¿½#OI¿Ò£1?~\\u001c2¿ä\\u0001>¾Š4v?¯2‡>\\bˆ•½æg}?²çÙ=©—À½æg}?²çÙ=©—À½’Æ‡>¯)n¿î³>’Æ‡>¯)n¿î³>’Æ‡>¯)n¿î³>\\u001c/„>ë¥B¿å“\\u0018¿\\u001f¾o? \\u001a‚=\\u0012”°¾\\u001f¾o? \\u001a‚=\\u0012”°¾\\u001f¾o? \\u001a‚=\\u0012”°¾Á\\n§=\\u0002g†¾a#v¿Á\\n§=\\u0002g†¾a#v¿u_8½]3¥<<°¿u_8½]3¥<<°¿u_8½]3¥<<°¿Ï\\u0007?\\b‘^>ÉóQ¿Ï\\u0007?\\b‘^>ÉóQ¿Ï\\u0007?\\b‘^>ÉóQ¿Ï\\u0007?\\b‘^>ÉóQ¿¾\\\\}=AúÊ>I}j¿¾\\\\}=AúÊ>I}j¿¾\\\\}=AúÊ>I}j¿¾\\\\}=AúÊ>I}j¿\\u000b}G>¦·g?€sÁ>\\u000b}G>¦·g?€sÁ>X)3?˜ØM>´w/?X)3?˜ØM>´w/?X)3?˜ØM>´w/?\\u0005„J?‹x¨>©\\u0003\\u0004¿\\u0005„J?‹x¨>©\\u0003\\u0004¿ÛØ§>@HE?éæ\\u000b¿ÛØ§>@HE?éæ\\u000b¿ÛØ§>@HE?éæ\\u000b¿ÛØ§>@HE?éæ\\u000b¿ÛØ§>@HE?éæ\\u000b¿ÛØ§>@HE?éæ\\u000b¿\\rW\\r¿Ds\\u0006¿\\u0000Ç%?\\rW\\r¿Ds\\u0006¿\\u0000Ç%?\\rW\\r¿Ds\\u0006¿\\u0000Ç%?ëŠY¿åàÿ¾~µ+¾ëŠY¿åàÿ¾~µ+¾M×L¿A‹\\u0019¿¼¦!;M×L¿A‹\\u0019¿¼¦!;k^`¿\\u0013ˆô¾ôÎz=k^`¿\\u0013ˆô¾ôÎz=\\\\^Z¿û»Ú¾\\u0012~™>\\\\^Z¿û»Ú¾\\u0012~™>\\u0019õ%¿oyB¿žúR½\\u0019õ%¿oyB¿žúR½ý\\\\f¿+E³¾|.…¾ý\\\\f¿+E³¾|.…¾c}l¿p•ž¾œ†f¾c}l¿p•ž¾œ†f¾\\u000bûT¿6j\\f¿I`«=\\u000bûT¿6j\\f¿I`«=A\\u0019~¿|ß0<Ï(ø=\\u001d ¿nº”<@¡P½‡¯|¿ª\\\\ò½^¹Ý=zzt¿;”¾°4„=zzt¿;”¾°4„=ê@¿P«#;‰2œ½¤\\u000e~¿˜Æù½EŠ€¼\\u001def¿(}â½\\u0015å×>\\u001def¿(}â½\\u0015å×>`Ô|¿Jöj½Çˆ\\u0015¾\\u0005û{¿…¾\\f¾…Íâ=zÜw¿Ùîx¾}€q=zÜw¿Ùîx¾}€q=bn¿·Ÿï<ˆ/u=SÑu¿Ã[ç¼\\u0010;Ž>SÑu¿Ã[ç¼\\u0010;Ž>V¶w¿’0r¾^m´=Ò\\u001dv¿ˆ›Ý:ÅãŒ>L³v¿1¯\\u0000¾àSq>Sç\\u0006½ÿg§½\\u0004\\u0001?Sç\\u0006½ÿg§½\\u0004\\u0001?×V\\u0017¿\\u001b\\u0004n>[·E?×V\\u0017¿\\u001b\\u0004n>[·E?Äco¿\\u0018û©¾ £ý½Äco¿\\u0018û©¾ £ý½ªdr¿3¤ ¾¸Y‘½ªdr¿3¤ ¾¸Y‘½ø²w¿ZâX¾©ì\\f>ø²w¿ZâX¾©ì\\f>Ññd¿8ýä¾-ØW¼Íÿ<¿Tî¿>0Œ\\u000f?Íÿ<¿Tî¿>0Œ\\u000f?Íÿ<¿Tî¿>0Œ\\u000f?Íÿ<¿Tî¿>0Œ\\u000f?Íÿ<¿Tî¿>0Œ\\u000f?†wá½àÌ>\\u0000ûh?†wá½àÌ>\\u0000ûh?†wá½àÌ>\\u0000ûh?†wá½àÌ>\\u0000ûh?†wá½àÌ>\\u0000ûh?\\u0011c‡¾®Åv?ØÄñ<\\u0011c‡¾®Åv?ØÄñ<\\u0011c‡¾®Åv?ØÄñ<(n¾è–Ý<›Ïw¿(n¾è–Ý<›Ïw¿V¦ê>]?b?)'Á½V¦ê>]?b?)'Á½V¦ê>]?b?)'Á½åõœ¾\\u0013r?ÏÕÞ½¥~L¿YL\\u0018?Wû¶½¥~L¿YL\\u0018?Wû¶½ \\u0011¿9›€=\\u001cîk= \\u0011¿9›€=\\u001cîk=þ¬\\u001d¿4\\u000bF¿{y\\u0018>þ¬\\u001d¿4\\u000bF¿{y\\u0018>ûkR¿Í‘\\u0006¿,}`>ûkR¿Í‘\\u0006¿,}`>KõL¿q[\\u0019?–lG<KõL¿q[\\u0019?–lG<›\\u0017ï¾-Kb?D»¿¼›\\u0017ï¾-Kb?D»¿¼›\\u0017ï¾-Kb?D»¿¼S’{?Ì¸…=¸v1¾S’{?Ì¸…=¸v1¾Õ4y?ƒ!\\u001b¾È£/>•\\u0016?Bû£=\\u0002³Ø<•\\u0016?Bû£=\\u0002³Ø<{|?\\u001db(>„Á<\\n¼e?\\u0002ñÎ¾Ÿ05>\\n¼e?\\u0002ñÎ¾Ÿ05>\\n¼e?\\u0002ñÎ¾Ÿ05>=÷\\u0002?«'[?\\u0006¿–½=÷\\u0002?«'[?\\u0006¿–½\\r\\u001eH?à\\u000b\\u001f?žo^=\\r\\u001eH?à\\u000b\\u001f?žo^=\\n\\u0017‡>s¯o¿,ym>\\n\\u0017‡>s¯o¿,ym>\\n\\u0017‡>s¯o¿,ym>\\n\\u0017‡>s¯o¿,ym>\\n\\u0017‡>s¯o¿,ym>/IW¿éùq>ý9ù¾/IW¿éùq>ý9ù¾[ig¿?úæ½ˆ2Ó¾[ig¿?úæ½ˆ2Ó¾[ig¿?úæ½ˆ2Ó¾[ig¿?úæ½ˆ2Ó¾%tB¿\\u0012ñ\\u0002?\\u0001³Í¾%tB¿\\u0012ñ\\u0002?\\u0001³Í¾¸!E¿®;\\u001f?QR\\u0011¾¸!E¿®;\\u001f?QR\\u0011¾ppo¿È¸„¼ªø´¾ï¸Í¾(sh?…\\u0000ó½ï¸Í¾(sh?…\\u0000ó½ï¸Í¾(sh?…\\u0000ó½h¬{¿^‡=òÑ.>h¬{¿^‡=òÑ.>h¬{¿^‡=òÑ.>\\u0018t~¿\\b9Ù½¤\\fç<\\u0018t~¿\\b9Ù½¤\\fç<Þ58¿+Ï\\u001b?\\u0018/«>Þ58¿+Ï\\u001b?\\u0018/«>Þ58¿+Ï\\u001b?\\u0018/«>&ÓL¿rFã>¢•Î>&ÓL¿rFã>¢•Î>1\\u0017.¿*ç%?m¯¾1\\u0017.¿*ç%?m¯¾1\\u0017.¿*ç%?m¯¾`Ô}¿´¶×¼^L\\u0002>`Ô}¿´¶×¼^L\\u0002>\\u00183]¿\\u0019ìª=Ú*þ¾\\u00183]¿\\u0019ìª=Ú*þ¾\\u00183]¿\\u0019ìª=Ú*þ¾u\\u0003\\u001d¿\\u0007ý=?ÿ`Š>u\\u0003\\u001d¿\\u0007ý=?ÿ`Š>u\\u0003\\u001d¿\\u0007ý=?ÿ`Š>/SÞ¾\\u0012:M?RWÒ¾/SÞ¾\\u0012:M?RWÒ¾\\u0000\\u000bL¿ÀT\\u0000?Ío¬¾\\u0000\\u000bL¿ÀT\\u0000?Ío¬¾\\u0000\\u000bL¿ÀT\\u0000?Ío¬¾\\u0014¼\\u0000¿}\\u0015Y?D|+¾á¤Ë¾t†j?\\u000eDN½£ùâ>ce?ï´Ã¼£ùâ>ce?ï´Ã¼£ùâ>ce?ï´Ã¼¶òˆ>n\\u0002u?ÉÁä½Ôþd>&„y?â­ø:Ôþd>&„y?â­ø:e·n?m\\u0010¸>&£\\u000f=e·n?m\\u0010¸>&£\\u000f=>—c¿º/{=VOè¾>—c¿º/{=VOè¾\\u0000ú\\u000b¿ëd@½/\\u0001V¿\\u0000ú\\u000b¿ëd@½/\\u0001V¿g²\\u0007¿R†½>\\bMC¿g²\\u0007¿R†½>\\bMC¿}»N¿…îþ½Ž–\\u0013¿}»N¿…îþ½Ž–\\u0013¿*\\u001fc¿Œ\\u0011n¾ž\\rÌ¾*\\u001fc¿Œ\\u0011n¾ž\\rÌ¾*\\u001fc¿Œ\\u0011n¾ž\\rÌ¾”p|¿ÒÜ)¾$d'<¾‘5¿t´¾\\fK\\u001c¿'T.¿¡\\u000b\\u0019¿µŠØ¾˜Á`¿–çÑ¾*)}¾\\u0003_j¿+Ý¼¾\\ba$¾\\u0002z2¿½•\\u0013¿y.Ú¾\\u0002z2¿½•\\u0013¿y.Ú¾óE¿G%Å¾¶|\\u0001¿\\u001bœ;¿vŽ!¿u3‚¾\\u0007ˆi¿\\\\\\u0015(¼\\u0004°Ñ¾ícn¿¯t¯¾î9þ½ò\\u0016^¿0Ï¾é\\u000e”¾¸8i¿¥€Â¾,=$¾Ævg¿’\\nÖ¾î\\\\\\\"´=³<b¿ DÆ¾×Š†¾ú©|¿\\u0000¶\\u001b¾4•W½Gui¿õ\\u0004Ê¾ú†æ½Äú{¿2PB=\\\\\\\"\\u001e.>4öi¿¿rÉ¾Ñ\\\\Ì½\\u0001‡[¿£\\u0001ñ¾€„T¾ÜÖz¿rãö<•;J¾\\u0006y¿±œ·½8éP>\\u0014N\\u000f¿gq¾yZK¿¦ˆB¿63\\t¿\\\\\\\"Y¼¾’\\u0017¿_¯0¿•\\u0004Õ¾Uqr¿|~[½d\\u001a¢>£ù`¿uxÔ¾}4q¾“än¿\\u0004Tµ¾\\u0007\\u0010{½”C2¿]•\\u0017¿P¨Ï¾”C2¿]•\\u0017¿P¨Ï¾”C2¿]•\\u0017¿P¨Ï¾µkk¿>ñ1¾î`´¾+cs¿çH™¾|Õ¤½»ñV¿øpì¾h’¾»ñV¿øpì¾h’¾A·:¿NÃ¾4' ¿ó5m¿YÔ°¾=O\\u0018¾ð4:¿*Œ\\u000f¿\\u0015ŽÊ¾ð4:¿*Œ\\u000f¿\\u0015ŽÊ¾PÎz¿è5>¾ª\\u001eš½g’\\u0000¿×ø7¿”?ö¾g’\\u0000¿×ø7¿”?ö¾©¢(¿í³&¿mõÀ¾©¢(¿í³&¿mõÀ¾©¢(¿í³&¿mõÀ¾æÚ1¿¨V\\u001c¿E‹Â¾ç0/¿\\u0013á&¿\\u000fG§¾ç0/¿\\u0013á&¿\\u000fG§¾Âˆ(¿q\\u001d¾¾™ž'¿™­\\u0018¿Œß6¿Ûn»¾™­\\u0018¿Œß6¿Ûn»¾ŸQ=¿ÅÜé¾ç&ý¾´ƒc¿´\\u0014º¾µ\\u000f¾´ƒc¿´\\u0014º¾µ\\u000f¾Z´'¿kÆî¾J-\\u0018¿1n\\u0019¿£cæ¾A|)¿óA{?Ø C>¨òl¼âTV?×.É>E¹Â¾âTV?×.É>E¹Â¾âTV?×.É>E¹Â¾ÿ´t?ŸÃd>tJC>ÿ´t?ŸÃd>tJC>ÿ´t?ŸÃd>tJC>ÙÞs?°Än>Q\\u0000H>ÙÞs?°Än>Q\\u0000H>ÿ\\\\\\\"i?†Ó>ü$&;ÿ\\\\\\\"i?†Ó>ü$&;jŽ\\u001a?fD?SÂZ¾jŽ\\u001a?fD?SÂZ¾jŽ\\u001a?fD?SÂZ¾·â3¾\\u001c÷¦>QÊm¿·â3¾\\u001c÷¦>QÊm¿9\\u000e3½zg«=4Û~¿Õ2`½ˆ^\\u0001?\\\\\\\"v\\\\¿tª½ú±É¼¬\\b¿\\nÑ\\u0019¾Ÿ\\n>>·z¿\\nÑ\\u0019¾Ÿ\\n>>·z¿\\u001b\\u001b¯=D#\\u0018?Æ¸L¿\\u001b\\u001b¯=D#\\u0018?Æ¸L¿\\u001b\\u001b¯=D#\\u0018?Æ¸L¿‚mH> |\\u0019=sÝz¿‚mH> |\\u0019=sÝz¿‚mH> |\\u0019=sÝz¿‚mH> |\\u0019=sÝz¿Æ5ù¼Œû'=€ª¿Æ5ù¼Œû'=€ª¿àê®½‰ÿ³=ü\\u0011~¿àê®½‰ÿ³=ü\\u0011~¿2\\u001an¼¶ð‰;~ø¿\\u0011Æ¼zW?ç=Ž=\\u0011Æ¼zW?ç=Ž=\\u0011Æ¼zW?ç=Ž=Ü¼r¾äþ$?G\\u0017:¿Ü¼r¾äþ$?G\\u0017:¿Ü¼r¾äþ$?G\\u0017:¿8Èc¼hßý<.Ú¿ñNæ>\\u001báˆ>£'Z¿ñNæ>\\u001báˆ>£'Z¿ñNæ>\\u001báˆ>£'Z¿[‚\\u0007<:^É=0À~¿÷yV¼hoR=Ò£¿+Ì…½fæ(=!<¿À&³¾ÂGg?7ª}¾I(\\u0005=y‚=)X¿I(\\u0005=y‚=)X¿vSZ>P\\fQ?õP\\t¿vSZ>P\\fQ?õP\\t¿¢p]¿\\u001ck\\u0000?~©@¼L®p¿Ú%ƒ½ïX«¾Â%p¿d„d¾éª‡¾Â%p¿d„d¾éª‡¾;Aý¾ËH^?TÆ\\u0018½M‹p¿«á­¾Ê/,½ú\\u001ay¿~ß]¾º&¡½ú\\u001ay¿~ß]¾º&¡½Â­{¿óæ\\u001b¼:\\u0019;¾$úz¿ôâF>°ß\\t½$úz¿ôâF>°ß\\t½tk¿\\u0011T>óÞŒ¾üì\\b¾Ïq}?{z6=üì\\b¾Ïq}?{z6=½\\u00077¿Æ1?„\\u0007´½½\\u00077¿Æ1?„\\u0007´½%¨H¾æ6v?±àC>%¨H¾æ6v?±àC>%¨H¾æ6v?±àC>·Á1¾ÎùF?bÒ\\u001a?·Á1¾ÎùF?bÒ\\u001a?IF\\f¿(¼\\u0016?Ÿ\\u001c\\u0018?IF\\f¿(¼\\u0016?Ÿ\\u001c\\u0018?IF\\f¿(¼\\u0016?Ÿ\\u001c\\u0018?IF\\f¿(¼\\u0016?Ÿ\\u001c\\u0018?àí\\u0014¿hÌ ?I\\u0004?àí\\u0014¿hÌ ?I\\u0004?àí\\u0014¿hÌ ?I\\u0004?àí\\u0014¿hÌ ?I\\u0004?bB€>E\\u00123?ŸV+?bB€>E\\u00123?ŸV+?bB€>E\\u00123?ŸV+?bB€>E\\u00123?ŸV+?´\\bb¾ãé\\u001f?“Á??´\\bb¾ãé\\u001f?“Á??´\\bb¾ãé\\u001f?“Á??žnÿ¾ÿ\\u0014F?áÇ>žnÿ¾ÿ\\u0014F?áÇ>„\\u0002B¿³à\\f?šp³>„\\u0002B¿³à\\f?šp³>„\\u0002B¿³à\\f?šp³>Ž8Æ>¡V\\u001e>|±h?Ž8Æ>¡V\\u001e>|±h?Ž8Æ>¡V\\u001e>|±h?ôµâ>\\u000ex(?^æ\\u001b?ôµâ>\\u000ex(?^æ\\u001b?ôµâ>\\u000ex(?^æ\\u001b?Û\\b\\u001f?Q°\\u0019?èî\\u0000?Û\\b\\u001f?Q°\\u0019?èî\\u0000?Û\\b\\u001f?Q°\\u0019?èî\\u0000?#@³>‡Ï_?è/¬>’à\\t¿ž±8?:ÖÞ>’à\\t¿ž±8?:ÖÞ>’à\\t¿ž±8?:ÖÞ>’à\\t¿ž±8?:ÖÞ>wzI?§…;=\\u0013\\u001d?wzI?§…;=\\u0013\\u001d?äð2?vwü>+˜\\u0004?\\u0002@\\u0010?ª6!?$ã\\b?\\u0002@\\u0010?ª6!?$ã\\b?‚§t?Y¢I>ª\\u001d`>À\\\\?8\\u0015ù>\\u0000}\\u0014>ÐŒl?½ÉÎ=ZÎ¼>\\u0011\\u0005?HFA¿\\fdË>\\u0011\\u0005?HFA¿\\fdË>\\u0011\\u0005?HFA¿\\fdË>PTb?ö^ª>Tû§>ýVN?Ñ&\\u0015¿í·Õ=ýVN?Ñ&\\u0015¿í·Õ=Gd?¦Xª¾V\\u0019>Ø²Ò>A€\\u0002?±hA?Ø²Ò>A€\\u0002?±hA?Ø²Ò>A€\\u0002?±hA?;+n?\\u0011\\u0017˜>Ô\\\\\\\"\\\\>Ïte?Ë'$>ê¬Ó>!Ó<?òz\\b?X,Ô>!Ó<?òz\\b?X,Ô>/m˜>ÙLt?\\f‘Ö</m˜>ÙLt?\\f‘Ö</m˜>ÙLt?\\f‘Ö<†Äd?¤œ(¾PÅÕ>†Äd?¤œ(¾PÅÕ>¾»:?´ò\\u0002?j‹è>o·a?wþ¦>ùŠ®>ÔÇL?…Äæ>ÃÚÊ>\\u0002ªT?ÖÂ\\u0006?¯r9>\\u001dCy?ñ·]>è¿‘=\\u001dCy?ñ·]>è¿‘=ÇðV?\\u0012ÚÅ¾QsÃ>ÇðV?\\u0012ÚÅ¾QsÃ>¢¹I?Ì¾Í>ÿÔî> ©r?šóT¾6\\u001dw¾ ©r?šóT¾6\\u001dw¾ ©r?šóT¾6\\u001dw¾,Ð>òô#>¸Cf?,Ð>òô#>¸Cf?,Ð>òô#>¸Cf?,Ð>òô#>¸Cf?œAB>o\\u0019\\u001c?þ\\u0000E¿œAB>o\\u0019\\u001c?þ\\u0000E¿}’~>ÑÁv?\\u001acÃ½}’~>ÑÁv?\\u001acÃ½}’~>ÑÁv?\\u001acÃ½™0d?fXÒ> D¾™0d?fXÒ> D¾™0d?fXÒ> D¾W9\\u000b<êÓf?ˆ[Ý¾–»\\u0005?íãB?SªÄ¾›ôÑ>ˆ]Ê>:lR¿›ôÑ>ˆ]Ê>:lR¿›ôÑ>ˆ]Ê>:lR¿Jÿ3?ÌÁÎ>7Õ\\u0015¿Jÿ3?ÌÁÎ>7Õ\\u0015¿\\\\Ç«>¯\\u0018g?\\u0005ä‰>\\\\Ç«>¯\\u0018g?\\u0005ä‰>\\\\Ç«>¯\\u0018g?\\u0005ä‰>\\\\\\\"®6¿Èþ+¾¶\\u001c.¿\\rnÿ¾´p>?=©ã¾\\\\ÉU¾¥ô\\b> \\u0001x¿\\\\ÉU¾¥ô\\b> \\u0001x¿>œD>&\\b\\u001e?VOC¿>œD>&\\b\\u001e?VOC¿GÙ,¿E#0¾~¡7¿ó\\u001dg¿P´W¾Ä÷¿¾ŒÛ\\u0014¿{§n>/‹G¿0žu¿ªk\\u0014¾ø”w¾1\\u001bd¿/>”¾\\fþ²¾¢'Z¿Çsw¾6¢í¾¢'Z¿Çsw¾6¢í¾¾\\u001bN¿­åÏ½z™\\u0015¿¾\\u001bN¿­åÏ½z™\\u0015¿\\u0018i{¿ê]9>\\u0019aW½\\u0018i{¿ê]9>\\u0019aW½•\\u0005\\u0012¾f\\u000f\\u0015=d6}¿•\\u0005\\u0012¾f\\u000f\\u0015=d6}¿sT4¿.Mj¼W«5¿CÐÖ½D—«=É®}¿C5\\u0016?·Q\\u0006?ýå\\u001d¿C5\\u0016?·Q\\u0006?ýå\\u001d¿¤r¿Ü9”½ÁŸ>¤r¿Ü9”½ÁŸ>æÇ>¿N#µ>J±\\u0010¿Œ4\\u0017¿\\t ¾®©J¿Œ4\\u0017¿\\t ¾®©J¿ß~r¿kˆq>×2^¾31£¾$Â\\r½{|r¿31£¾$Â\\r½{|r¿Ž\\u0004Ò½d¢À>‡»k¿Ž\\u0004Ò½d¢À>‡»k¿¶ˆ]>9½è>ª1]¿¶ˆ]>9½è>ª1]¿÷òÞ½!•A<èu~¿÷òÞ½!•A<èu~¿À×3?\\u0015Y\\u000f?öãà>Ä£\\u001e?MA3?9„µ>Ä£\\u001e?MA3?9„µ>ºÜÐ¾æU[?¾„¡>ºÜÐ¾æU[?¾„¡>b€\\u0012?Z½-?±ë>b€\\u0012?Z½-?±ë>”ŸN>² [?\\u001aºó>”ŸN>² [?\\u001aºó>ŠöZ>\\u000ep?tMˆ>=Ù\\u0015=èmu?\\u0010f>=Ù\\u0015=èmu?\\u0010f>\\u0012®õ>®‹C?[ûÜ>x]f¾;Ìq?–\\fu>x]f¾;Ìq?–\\fu>x]f¾;Ìq?–\\fu>x]f¾;Ìq?–\\fu>JŽî½õ\\u000b~?#%=JŽî½õ\\u000b~?#%=JŽî½õ\\u000b~?#%=JŽî½õ\\u000b~?#%=]Ó\\u0011?úƒJ?ËSd>]Ó\\u0011?úƒJ?ËSd>f?è>Ç\\rd?%Ñ<f?è>Ç\\rd?%Ñ<f?è>Ç\\rd?%Ñ<K$I?¦T\\u001d?¦;=K$I?¦T\\u001d?¦;=K$I?¦T\\u001d?¦;=U:#?ùOB?©Ç\\u0006>U:#?ùOB?©Ç\\u0006>U:#?ùOB?©Ç\\u0006>U:#?ùOB?©Ç\\u0006>*ö\\u0002>³Wt?)ÿ‰>*ö\\u0002>³Wt?)ÿ‰>M<×>_5h?\\u001d–¹¼\\n.3?)Y4?ÿ¬ð½\\n.3?)Y4?ÿ¬ð½!ÓÎ¾uÙh¿Ý®Ç½!ÓÎ¾uÙh¿Ý®Ç½wæÿ¾h+]¿ç^|½`G[¿h,÷¾v¹:¾Æ»L¿Œ\\u000b¿0È€¾šPH¿®q\\u001c¿N¦ô½ålV¿\\n¬\\u0007¿V²\\u0007>ÁÞS¿Ñæ\\n¿O'\\u0013¾:ãf¿RªÜ¾#Oê<Q’\\u001f¿f£3¿W«°¾Q’\\u001f¿f£3¿W«°¾&ì{¿Æ‰´½÷\\u0013\\u001e>&ì{¿Æ‰´½÷\\u0013\\u001e>&ì{¿Æ‰´½÷\\u0013\\u001e>\\fƒ+¿PÔ-¿Œ©™¾ëts¿»{„¾’J->øŠf¿¶‹Ò¾@l\\u0010>øŠf¿¶‹Ò¾@l\\u0010>\\u0019'7¿³$&¿Ôy„¾QÓ\\r¿á‘6¿AèÛ¾\\\\éX¿«¢\\u0007¿­n\\u0016=\\\\éX¿«¢\\u0007¿­n\\u0016=K»q¿¶í¾Œ·V¾jGU¿Ÿ÷ÿ¾îCr¾Ü?\\u000b¿žáM¿Ä9u¾Ü?\\u000b¿žáM¿Ä9u¾„î;¿Ò\\u0004\\u001d¿\\n+•¾ÿëj¿‹ˆf¾Ï¤§¾ÿëj¿‹ˆf¾Ï¤§¾•ÄW¿‘„Ø¾öiª¾•ÄW¿‘„Ø¾öiª¾•ÄW¿‘„Ø¾öiª¾pfl¿×>Ä¾Œ\\u001e™¼pfl¿×>Ä¾Œ\\u001e™¼Õ\\u0019]¿4Ü¦¾®ßÄ¾Õ\\u0019]¿4Ü¦¾®ßÄ¾£Vb¿ÛHé¾’âÓ=£Vb¿ÛHé¾’âÓ=fç`¿q\\u001b/¾Ø]ä>fç`¿q\\u001b/¾Ø]ä>Çbm¿YŽ’¾\\u001f\\nw¾Çbm¿YŽ’¾\\u001f\\nw¾ÕÝ\\u0011¿Z\\u0000K¿ºâ\\\\¾æôm¿*Þ·¾Çº«=Ð\\u001a\\u0015¿v9>¿Ý½¨¾Ð\\u001a\\u0015¿v9>¿Ý½¨¾Ð\\u001a\\u0015¿v9>¿Ý½¨¾>ü¾×ìo??}P>âÜ|¿\\u001fA”= –\\r>E3z¿<QM¾tÓŠ½Y;¶¾%Õf?üf{>Ë/õ¾žE^?ÒÉ\\u0004>k\\u0006S¿f­\\b?ôÑ@¾k\\u0006S¿f­\\b?ôÑ@¾\\u0001YC¿ÍæÈ>àx\\u0003?Ñå{¿ñÑ˜<Ä”5>\\rÿ\\u0011¿`T(?Å\\u0014ü>K,J¿Ÿ/¨¾\\u0001¡\\u0004¿K,J¿Ÿ/¨¾\\u0001¡\\u0004¿\\r•y¿FÌ[>\\u0014#p½ò6\\u0001¿7†U?Çíc>ò6\\u0001¿7†U?Çíc>¶ÊÇ¾\\u001fØW?[f½>ª\\\\\\\"Â¾òÆW?t}Ã>¾}c¿,k·>–š’¾ƒR\\b¿{‹8?°\\u001dã>E»]¿…Íè>ô{T> úO¿&Á¿>²Ðä>„~•=5‰_?ö¹ö>„~•=5‰_?ö¹ö>„~•=5‰_?ö¹ö>»€t¿ë‘$¾œì~¾É†+¾@jo?I¸Ÿ>Æ‰~¾`\\u001df?òÁ¸>ƒyn¿:\\u001f¯>\\u0005Øü= ¼ý>1 E?y¼Í¾á&\\\\¿Ê!Í>=Û¡>ö‚“>Øšp?ŽØ;¾®t;¿\\u001a;$?\\u0017\\u0014j>@1|¿>èÉ½Ï\\u001c\\u0010>ÂÇm¾\\u000f\\u0000-?\\u0005\\u00173¿ÂÇm¾\\u000f\\u0000-?\\u0005\\u00173¿n~i¾x]Z?e`ð>ø–/=U4a?šyò>Z›‘¾ëþr?5é\\t> gŽ>Ç \\f?±\\u0010J¿ gŽ>Ç \\f?±\\u0010J¿ gŽ>Ç \\f?±\\u0010J¿‹ö÷>rë3>Ui[¿‹ö÷>rë3>Ui[¿Ûîß=X´\\u000e>§ó{¿IIU?[µ>\\u000bvÙ¾IIU?[µ>\\u000bvÙ¾IIU?[µ>\\u000bvÙ¾8Ì\\r?\\\\\\\"*£>\\u0014éD¿8Ì\\r?\\\\\\\"*£>\\u0014éD¿×@Ñ>é“¾>?TU¿×@Ñ>é“¾>?TU¿ù&X?é©—>ñ—ä¾ù&X?é©—>ñ—ä¾ù&X?é©—>ñ—ä¾ƒOZ?¤\\u001dk>ì-ð¾øíƒ>½çq?N>¤\\u0018á½fˆ}?Â–¬=¤\\u0018á½fˆ}?Â–¬=,3Ñ>\\t\\u001cZ?›§>,3Ñ>\\t\\u001cZ?›§>]\\f{?3¢G>¢ÉŽ<u`u?óŠ>®J¸=u`u?óŠ>®J¸=u`u?óŠ>®J¸=Â¸;?Ø‚\\u0012?‰ò»¾Â¸;?Ø‚\\u0012?‰ò»¾Â¸;?Ø‚\\u0012?‰ò»¾Â¸;?Ø‚\\u0012?‰ò»¾²¨`?,šó>\\u0012\\tr½²¨`?,šó>\\u0012\\tr½ó\\u0019}=©ô~?Ã©†½ó\\u0019}=©ô~?Ã©†½\\u0016F¬½èæä>÷ùc¿\\u0016F¬½èæä>÷ùc¿+™Ò½—Ji¿€#Ì>+™Ò½—Ji¿€#Ì>‘\\u0014É¾?\\u000b.?l‹\\u001e?‘\\u0014É¾?\\u000b.?l‹\\u001e?‘\\u0014É¾?\\u000b.?l‹\\u001e?‘\\u0014É¾?\\u000b.?l‹\\u001e?­R1¿˜¢\\u000e¿‚€ê>­R1¿˜¢\\u000e¿‚€ê>d\\\\l¿\\u0013‡™=ÇâÀ>d\\\\l¿\\u0013‡™=ÇâÀ>d\\\\l¿\\u0013‡™=ÇâÀ>š\\n1¿¾w{>“å-?š\\n1¿¾w{>“å-?Fá%¿®79¿ÛÇs>Fá%¿®79¿ÛÇs>;:3¾¤9À>ñ\\u0000i?;:3¾¤9À>ñ\\u0000i?w¼=¾\\u0000&#¾\\u0016=x?¬ãV?U\\u001dÿ¾ÑD^>±HS?\\u001bÛ\\u000f?+™b=Q^\\n¾Š¤}?f’\\u000b<Q^\\n¾Š¤}?f’\\u000b<Q^\\n¾Š¤}?f’\\u000b<\\u001f€&?9]<¿v/A>ä‹|?Líí½þ4ì=fZ½W„?q\\u001cù¼fZ½W„?q\\u001cù¼fZ½W„?q\\u001cù¼\\f£u?<D>\\u0000$\\u0003=\\nAG?\\u0011X ?Úä1½K\\u0013ä>ù¯d?žyt½íZ?ø×½j\\u0013²;e‘x?uE:¾p\\u0011\\u001f>K²a>‹çt?\\\\æB>K²a>‹çt?\\\\æB>èW}?*V«=\\u0005Bï½\\u0010Ûh?õÿ¹>ÿ€N¾ì{J?ek\\u0017?fj ¾í:r?ˆUš>õÄð½Êæ?ì&H<þöË<Êæ?ì&H<þöË<!mÃ>1\\u0013l?Ÿ/€=‘”y?FÅ_¾ b,½õ\\u0012\\u001e?\\u001eá@¿\\u000fbg>…Üú>ÓcX?²MZ¾Ð\\rˆ> æt?wWô½Ð\\rˆ> æt?wWô½h'Ã>k’l?¢ÀÞ¼h'Ã>k’l?¢ÀÞ¼aÞÓ¾®Œf?»H\\b¾•Q&¿Ö‡5?ÂKŒ>•Q&¿Ö‡5?ÂKŒ>*æ1¿‚\\u0013.?Zƒo>Ÿ¬9¾,ös?c¥x>Ÿ¬9¾,ös?c¥x>Ÿ¬9¾,ös?c¥x>–É—¾\\u001bã[?uÈÕ>–É—¾\\u001bã[?uÈÕ>–É—¾\\u001bã[?uÈÕ>\\u000f\\u0000°¾Ü(p?\\u0005Ö+½\\u000f\\u0000°¾Ü(p?\\u0005Ö+½ â\\u0013¾ó/z?AÄ\\u001e> â\\u0013¾ó/z?AÄ\\u001e>.hÉ¾ž£@?Ò8\\u0007?.hÉ¾ž£@?Ò8\\u0007?‚Iê¾ƒÄW?.\\u0005‘>\\u0017×½¾¯Æg?&ãS>Ô\\u0017\\u0004¿—VM?\\u001dî™>Ô\\u0017\\u0004¿—VM?\\u001dî™>yªŽ¾~6u?–·Ž=yªŽ¾~6u?–·Ž=Ë>¿LL’>ºo\\u001a¿ãƒ)¿–’É>Û9#¿<sî½\\u0019®\\u0003?\\u0001Y¿e\\b\\u0004¿‡á,?þö\\u0006¿uÊ.¿¶é»>¯º!¿‚æ\\u0012¿®\\u0019J?§!_¾@ˆÓ=\\u0018än?žE°>4,ú=\\u001aòk?¡Œ¼>\\u0017\\u0011\\u0018¾‹-[?1dý>Ã\\u001fs>\\u0006\\u001fd?›\\u0003Æ>Ã\\u001fs>\\u0006\\u001fd?›\\u0003Æ>Ã\\u001fs>\\u0006\\u001fd?›\\u0003Æ>C ¼>ñ¡c?²êŠ>qÃ‹>V~a?ó\\nÆ>ÌP«>Áöp?ª\\u0001:=ÌP«>Áöp?ª\\u0001:=â™Ñ>wf?j¬\\u0017>#áÌ>b\\\\V?î²¾>Þ£³=\\u0003\\u001fo?“;±>Þ£³=\\u0003\\u001fo?“;±>/×\\u0015>R\\u0019x?[)K>û)6?\\u0003\\u0007\\u0014?´ZÌ>’OÑ>§\\u0005\\r?ÊD:?r\\u0011r?|g£>@î½r\\u0011r?|g£>@î½r\\u0011r?|g£>@î½ò\\r}?Úv§=¤N\\u0002>ò\\r}?Úv§=¤N\\u0002>ò\\r}?Úv§=¤N\\u0002>þS*?)<5?ì—r>þS*?)<5?ì—r>„\\u0003x?¸Ôt>\\u001d”…=„\\u0003x?¸Ôt>\\u001d”…=„\\u0003x?¸Ôt>\\u001d”…=„\\u0003x?¸Ôt>\\u001d”…=„\\u0003x?¸Ôt>\\u001d”…=6ƒj?}D‘= \\u0017Ê¾6ƒj?}D‘= \\u0017Ê¾6ƒj?}D‘= \\u0017Ê¾l0|?£2h=¢.&¾l0|?£2h=¢.&¾¦m`?\\u0010Ù=x\\\\\\\"ó¾¦m`?\\u0010Ù=x\\\\\\\"ó¾{Ê\\u0014?F2Â=¦æN¿\\u0002‹?*ØT=›.ñ<\\u0002‹?*ØT=›.ñ<t\\u0010\\u0017?ùê‚<\\u0010£N¿t\\u0010\\u0017?ùê‚<\\u0010£N¿t\\u0010\\u0017?ùê‚<\\u0010£N¿t\\u0010\\u0017?ùê‚<\\u0010£N¿·ã}?F@\\u0000>ÿçÝ¼·ã}?F@\\u0000>ÿçÝ¼·ã}?F@\\u0000>ÿçÝ¼Ç\\u0019\\u001d?s\\u0015.>ÚbE¿Ç\\u0019\\u001d?s\\u0015.>ÚbE¿Þð4?;3c=KŠ4¿Þð4?;3c=KŠ4¿8h¤>bƒõ=#~p¿8h¤>bƒõ=#~p¿8h¤>bƒõ=#~p¿†¥|??ãñ»\\u0019\\u0007%>†¥|??ãñ»\\u0019\\u0007%>¿ÉŸ=6’o=°Ç~¿¿ÉŸ=6’o=°Ç~¿¿ÉŸ=6’o=°Ç~¿6å\\u0018?•\\u000fÍ=h¸K¿6å\\u0018?•\\u000fÍ=h¸K¿-\\u0000R>Z°Ø=*\\u0017y¿-\\u0000R>Z°Ø=*\\u0017y¿M:?ÒŸñ=Þ°,¿M:?ÒŸñ=Þ°,¿\\u0006—\\r?×p_¾°ÕM¿\\u0006—\\r?×p_¾°ÕM¿š¸_?þ÷à=+pò¾ó”k?\\u001f\\u0014/>á<´¾ó”k?\\u001f\\u0014/>á<´¾ó”k?\\u001f\\u0014/>á<´¾@{?”;?>P*1½\\u0017¥\\\\?¨œ1>\\u0011øó¾\\u0017¥\\\\?¨œ1>\\u0011øó¾6\\\\x?:xB>æ`\\u001a¾6\\\\x?:xB>æ`\\u001a¾F·r?Z\\u001e„>î4>¾‰Cx?Ü¬Q>\\u001bØ\\u0007¾(@x?Uíd>¾$É½(@x?Uíd>¾$É½¯ô¾W\\u001f7¿\\u0018„\\u0002¿àp\\u000e¿CäE¿ß\\u0004œ¾å\\u000bÅ¾WûH¿°zø¾å\\u000bÅ¾WûH¿°zø¾Øæ\\\\\\\"¼È@X¿uû\\b¿Øæ\\\\\\\"¼È@X¿uû\\b¿dx‘>0\\u0012P¿13\\u0002¿dx‘>0\\u0012P¿13\\u0002¿dx‘>0\\u0012P¿13\\u0002¿ØS¶=žT\\\\¿éV\\u0000¿ØS¶=žT\\\\¿éV\\u0000¿&Y+¿\\u001c:\\u001d¿y\\u000fÖ¾È£\\u0006>hìY¿0\\f\\u0002¿È£\\u0006>hìY¿0\\f\\u0002¿\\fjÏ½ø´T¿ã\\u0011\\f¿Á);¾Ä«X¿S\\u0010\\u0000¿Á);¾Ä«X¿S\\u0010\\u0000¿çš ¿:Œ6¿•: ¾çš ¿:Œ6¿•: ¾·áã¾%@¿\\u001fÑø¾™)ã¾ÓÛT¿‘0«¾™)ã¾ÓÛT¿‘0«¾5=[>¸ÒQ¿\\t\\b¿5=[>¸ÒQ¿\\t\\b¿T\\u001aÎ=n¬J¿3B\\u001a¿T\\u001aÎ=n¬J¿3B\\u001a¿T\\u001aÎ=n¬J¿3B\\u001a¿ý‹o¾ëÿN¿“4\\n¿ý‹o¾ëÿN¿“4\\n¿¯q?S¤\\\\>€Ä€¾YÏV?S\\u0006=>’þ\\u0002¿YÏV?S\\u0006=>’þ\\u0002¿YÏV?S\\u0006=>’þ\\u0002¿l\\u0000&?ê6°<,ÎB¿l\\u0000&?ê6°<,ÎB¿Uþy?LÞg½:ÃT¾Uþy?LÞg½:ÃT¾ÜÙ¾>Ä¤5¿;\\u0016\\u0019¿ë!\\u001d?ê¿ž=8 I¿ë!\\u001d?ê¿ž=8 I¿\\u001aE(?\\u0004*\\u0011>æ{=¿\\u0001ei?ý\\u0001\\u0015¾Ú¹Ä¾Ö¶÷½¦[R¿d’\\u000e¿Ö¶÷½¦[R¿d’\\u000e¿Ú\\u0016”;H(P¿•\\u0003\\u0015¿\\u0014~Ê;nH¿ÿ?\\u001f¿\\u001bBt?Ü¥Ÿ¼?õ˜¾.$D?mÄÇ¾n¸\\u0002¿^f?ê¬¤¾\\u001cÑ–¾Üº?:Ç)½\\u0018ó¡¼Üº?:Ç)½\\u0018ó¡¼Üº?:Ç)½\\u0018ó¡¼\\u000bë\\t?\\u000fŽ5¿aÔè¾\\u000bë\\t?\\u000fŽ5¿aÔè¾\\u000bë\\t?\\u000fŽ5¿aÔè¾yøX?£oF¾×øü¾yøX?£oF¾×øü¾`Î\\u0013?+Ð\\u001c¿õ2\\n¿¼èM?¯›¦¾¬Šþ¾\\fuh?,Y†¾\\f.§¾:Ç†>d‘?¿‡ß\\u001b¿ˆ÷K?GíÈ¾ÅJë¾ˆ÷K?GíÈ¾ÅJë¾\\\\|_¾·è\\\\¿½Zé¾Ú¿\\u0007?Z–\\\\\\\"¿_È\\u000f¿¹ÙP>yÒI¿å•\\u0014¿üls¿ì}Ž¾¿Ê\\n¾À\\u0006z¿Ü=O¾\\u00060“½;_È½Ó½‡¾­u¿wÛ!?0;è½ì3D¿êð&?-\\u0007½>ª‚)¿êð&?-\\u0007½>ª‚)¿„„w¿,Üô½Søf¾„„w¿,Üô½Søf¾ûÝx?½îo>èÏã;Ëâ{¿•a-¾:h½qòi¿\\u0017dÄ¾¦`\\b>\\u0003%q¿O3«¾:zó<,t¿º7’¾r\\n¿½ÄÖv¿_\\u0014D¾ñÄ;>4ç?¿…Õ(¿Ð¬d½ØÁ\\u000e¿\\n;¹¾}A?¿ ×:¿Ú\\u001e#¿B}¾U¾l¿ˆ^\\u001e¾ëÿ±¾U¾l¿ˆ^\\u001e¾ëÿ±¾ˆéØ¾¨œ¾ÇBZ¿œF==Q0\\u000b¿V‡V¿\\u000em\\u001d>âL©¾Y_n¿í>‰>¸µü¾\\u0012ÎS¿í>‰>¸µü¾\\u0012ÎS¿\\u0015i,¿w©\\u000f¿'Yö¾Že¼½ûo2¿O\\f6¿ª'þ¾ÅÞ]¿múJ½ª'þ¾ÅÞ]¿múJ½ñï¼>²/Â½Ò°l¿0Md?•„Ñ=7¤á¾5¨-?ÿ\\u0017ó=zŸ9¿_\\u000fc?¯\\n›>r²¾%©p?¥l?>?ý‘¾}n\\u000b¿ûtê¾\\u0015Þ3¿íÍ»=W6#¾y¢{¿2Ï>3¼{¼l\\u0011j¿¼lí>xÄ=Pza¿ûG;?qÉ´=S\\u0010-¿OÞ\\u001d¾°—\\u000b¾8…z¿Íù\\\\¿«û¦¾µTÅ¾¡[l¿k\\u0015·¾@¹\\u000f¾®´‹<—Ý§¾oÏq¿®´‹<—Ý§¾oÏq¿Ø\\u0002\\b¿L2J¿«ãœ¾Îþþ¾w\\u0017Z¿^·%¾Îþþ¾w\\u0017Z¿^·%¾\\u0006.Ó¾˜p\\u0002¿¨QA¿Ç–*¿<š´¾y+(¿\\u001fu\\u0011¿¢?1¿r±ã¾\\u001fu\\u0011¿¢?1¿r±ã¾WüI¿>&©¾©›\\u0004¿\\u0007‡¹¾+ÅÜ¾TˆS¿Ðci?ÚPÍ>“·½Ðci?ÚPÍ>“·½\\u0014[P¿\\u0006LÞ¾}¯Å¾\\u0018›J¿Æ%u¾]û\\u000f¿Ø>Ö>š!\\u001e¾È\\u001fe¿Ø>Ö>š!\\u001e¾È\\u001fe¿Ø>Ö>š!\\u001e¾È\\u001fe¿Ðü¾eÛ†¾u;T¿û±V¿>f›¾·Žç¾¾Öe?;t‡>ÔA´¾øˆm?‘—‰>É]„¾— ¨>êÌã=/\\u001fp¿— ¨>êÌã=/\\u001fp¿— ¨>êÌã=/\\u001fp¿×\\u0001>?Å\\\\\\\"Ó=ç„)¿×\\u0001>?Å\\\\\\\"Ó=ç„)¿¹ñ=?¿¦\\u001c>f\\u001a'¿¹ñ=?¿¦\\u001c>f\\u001a'¿ïVG?yÛW>RI\\u0017¿ïVG?yÛW>RI\\u0017¿©Š\\u000b>ôêˆ¾Œ2t¿¨É6¾lo±¾i¿k¿a}r¿RP£¾.×\\u0002½q—6>Ê„4¿f¯/¿q—6>Ê„4¿f¯/¿ãÿ{?6Ê\\u000e½_À0¾ãÿ{?6Ê\\u000e½_À0¾ãÿ{?6Ê\\u000e½_À0¾[¬V?ó.v¾ÈNú¾[¬V?ó.v¾ÈNú¾.y´>6¼¿=\\u0001^n¿.y´>6¼¿=\\u0001^n¿.y´>6¼¿=\\u0001^n¿u\\u0003(?lÑ=ƒ^?¿ËD0?öÏ$½Ê\\\\9¿ËD0?öÏ$½Ê\\\\9¿‹D\\u0003?‘„U¾é3U¿‹D\\u0003?‘„U¾é3U¿‹D\\u0003?‘„U¾é3U¿‹D\\u0003?‘„U¾é3U¿÷¯\\u001e?¼F\\u001f>ÚåD¿÷¯\\u001e?¼F\\u001f>ÚåD¿÷¯\\u001e?¼F\\u001f>ÚåD¿,Ñ\\u000e?\\\\ &>|\\\\P¿,Ñ\\u000e?\\\\ &>|\\\\P¿¸ð\\u0015¿2%+¿#¢ê¾¸ð\\u0015¿2%+¿#¢ê¾l\\u001fæ¾)\\\\\\u0010¿†\\\\1¿l\\u001fæ¾)\\\\\\u0010¿†\\\\1¿l\\u001fæ¾)\\\\\\u0010¿†\\\\1¿ÇD:¿\\u0000µ!¿µúˆ¾\\u0017\\u0016R¾\\u001dï,¿òM5¿\\u0017\\u0016R¾\\u001dï,¿òM5¿ƒÃx?:ÎA>¸€\\u0010>eº,?\\u000f‡\\u000e¿~\\u0016ø¾\\u0017&h?Ï5©¾dð…¾V\\u0004[?¼…æ¾ná‚¾¨cT?9Ð\\f¿¢²Ã½J\\u001aÇ>¥kA¿¡õ\\u0006¿œJD?\\u001f*\\\\\\\"¿ÌêÔ½w°8?=Æ\\u001c¿I€¥¾\\u0001Hz?/áú½\\u0016æ.¾ø\\u00006?\\u0000+#¿‚$˜¾¸Ÿ(?Á›@¿\\u001e’ÿ;»`\\u0011?«E0¿ýçæ¾üm-?\\u0003ä*¿ç+ž¾ˆÛF?*\\\\\\u001b¾Œx\\u001c¿ˆÛF?*\\\\\\u001b¾Œx\\u001c¿‰\\u000b)?\\u001b\\u001c\\\\\\\"¿ž°Î¾ƒl?\\u0010\\u001f¢¾ULZ¾Vµ>ËÈM¿\\u001fô¾#µ\\u0012?ÔQ8¿$dÈ¾KÏ`?{ÐÏ¾óœ¾í¹\\b?\\u0006q;¿IgØ¾sne?—0˜¾|š¨¾¡ÑÍ>¤ª„¾ÇÒ`¿¡ÑÍ>¤ª„¾ÇÒ`¿Àq|?\\u000bví¼7w'¾Àq|?\\u000bví¼7w'¾W\\u0019\\u000e?ð³<¿UUÅ¾'»·>•š/¿©\\f\\\\\\\"¿…uE?À\\u0007Q¾@R\\u001a¿…uE?À\\u0007Q¾@R\\u001a¿Ã­o?\\u0003\\u000bÆ½8ñ¬¾â>r?-áU=¶d£¾_ñW?û\\u0016û¾sA`¾Ÿ¾j?¬\\u0004¾¾vä\\u0015¾ÄX?…»+½†±l½\\u000b)Ø>:´¥¾³ÅX¿]Éz?S?>¾%ñ›½‡^L?—!›¾S=\\u0005¿ß8\\u0013?\\rKÒ¾²\\u001f5¿ß8\\u0013?\\rKÒ¾²\\u001f5¿´¢-?õ6\\u0005¿VÑ\\u0004¿Ôø\\u001d?˜\\u001e6¿•3¬¾¹L?¦cŸ¾ú°\\u0003¿À«}?·›ô½Y\\u0016~½ëzQ?ôla¾\\u0015ï\\u0007¿Í” ?î\\u001aG¿äU%½˜ØI?­üÉ¾ñ¾aü_?ð9»¾E„¢¾Œš4?·F.¿ÓÕI¾¡öm?1¦¨¾\\n¦)¾\\bn2?\\u0018<\\u000b¿\\u000bEï¾ürc?dÏ¿¾Á¸‡¾éø\\f?<ã/¿R´ò¾ú?g?‘+\\u001b>®xÍ¾\\u000fi?\\u0014û£¾‘‚¾ÕÀ^?¨fŽ<\\u0007+ü¾\\u0001ÃZ?/ý\\u0001¿·¼ß½(°f?*¯¢¾y\\u0007—¾àûb?f¥­¾¯ò ¾ë(S?\\u0013\\u0000Ù¾1“¿¾Ûªe?\\u0000kÎ>Úæ8¾F¹[?Ä˜Ê¾\\u001cI§¾™ÚZ?>NÓ¾íó ¾¾Þ~?½‚–=l\\u0016o½O\\u0014`?äÄ¾Œ\\u001a–¾Yë^?m¸\\u0018¾…àï¾Yë^?m¸\\u0018¾…àï¾\\u0016ç8?\\\\\\\"uõ<uâ0¿\\u0016ç8?\\\\\\\"uõ<uâ0¿\\n)=7\\f±¾\\u0000ªo¿\\n)=7\\f±¾\\u0000ªo¿_²\\u0019>T9ž¾\\nkp¿\\u0001Ök¼\\u0016r4¿È5¿\\u0001Ök¼\\u0016r4¿È5¿à3#?îlm½’¬D¿dîÚ>\\u0002Ö\\r=ù>g¿«è^?~öG>p\\u0012ç¾«è^?~öG>p\\u0012ç¾gbG?hLD>Sâ\\u0018¿\\u0002f$?¨“Ý¾óø!¿Ùú¡=‡U\\t=»\\r¿Ùú¡=‡U\\t=»\\r¿Ð4Ä>Jð8¾{äg¿Ð4Ä>Jð8¾{äg¿ç©\\b?f>Õ¼í]X¿%:\\u0012?\\u001bHÖ<[\\u0005R¿ÏÚ!=6ê¤<…¿¿ÏÚ!=6ê¤<…¿¿nhX?\\u0018;=ì\\u0007¿ãÙ\\n?åÅ\\u0003½HêV¿¦ \\t?\\u001b¸B¾\\u0019LR¿h2F?\\u0004\\u001fñ=ð3\\u001f¿b–>@¼ò:H®t¿b–>@¼ò:H®t¿b–>@¼ò:H®t¿b–>@¼ò:H®t¿ñ`g?$¼>e„`¾$Ý&?®’u>Ñ.8¿&0b?0Tn>ð\\u0015Ð¾ðüH?àj,=´Çi?\\u0000D®; z?€hð=ÂZ~?Ð\\u001d.=Ü\\u0004D=<ºî>„\\u00127>\\u0017Â^?È@¯>\\u0000E—<\\u0019çL=NXø>[­µ> \\u0012=äåï>­í`?»é?àA\\u0005>5Ð­<Þ„î>0›>°\\rî=cÂ=?Ñšo?\\fõ>\\u0010|\\u001b>$Ð”>¨ü\\u001e>œ\\r”>Ä|\\u000e>~Œ>\\u0018Êì=Ù\\bW?/ _?èÖ~>èI\\u0012>xj}>ø\\u0010\\u0019>\\u0003\\\\\\\">à\\f\\u0002>“ïX?ôAU?ˆz>¨*\\t>ŠŒŽ>°£\\u000e>Þ\\n„>ðJ\\u0017>ÉXi>@„ô=¸ìj>~æ~?pÓz>0Êú=K[?ÈR?~‚ˆ>`­\\u0005>:2\\u0003=\\u0014N4>>'œ>ô»&>Eƒ=?WŸp?»øu>p`\\u0003>Ï¼v?ÞB? Ú{?~tC?¥ø‹>ÐM\\u001f>h_‰>\\b\\u0019>è‚¯<Ðí(>ùð•>”ê&>5V:?$¥|?f´^>Pkç=\\n\\u000fb>´Rz?$xe?vFÛ>žvz?6øA?èZr> <\\u000e>P$|>€‹\\u0014>(\\u0013p>p\\u0015\\u001a>Ùo„=Áô}?È\\fE>øÔù=Úit?)D?#\\u0017¸;\\u0017\\u001f\\u0004?Ü\\r™=TŠ?[¥c?ž%Ë>J¼m?Êõ??õ…z?\\u000e—D?¹\\u0003>J\\u0018e?¸A?ÎVd?äÄ|?Üšý>ë-·=¢g?ã=“>¯ge?|\\ry?¤\\u0007ú>Ú\\u000f£<É³\\u0001?µ‹¢=]'?g=?\\u0000óè;\\u0013ÙD?ÊÒc?+\\u0004F?“<f?X¼}?þÓþ>ú•ñ<NÂ\\u0002?ˆÈ@?éao?ŒF}?Î¯o?îj~?x\\tú=>ç~? -ç<8VH?x#}?@L^?ÜËå>€à~?€\\u001e:<À`˜<˜³.>Ll>?®Òy?\\\\­S< œ7>&Ý@?f,t?¼\\u0005z?Õòq?¬Ù;HP4>\\u0016&D?A­w?Ìx?,\\u001cv?pZ? ì<Û¨”<\\f'\\u0004?V§>?ðE\\u0004=p\\u0001i?H\\u0015Ç>†•T?Z]{?y\\u001b{?2{ƒ>$l¼>2ïu?Ì\\u001cX?It?ë•´>R5t?Ù>ø>\\\\\\\"¬r?ÈQQ?¦Ò=`A]?Òö~?Ö2M?Þê=êƒS?\\u0000^‹;ôÙZ?v\\u001dz?@‹Æ>ìËx?¸óQ?á\\u0015?:ö|?¸E>\\u001a€N?\\u000089ÄtW?ÏPx?¦\\f_?£*\\u0010?y\\b?Œ”l>¼3S?œvy?w?\\u0000¾…>FÝG>\\u0018{S?\\u001aÎÇ>\\fÂc?ëK·>Ž5i?\\b«'?\\u001az?¹q»>j%g?ä|)?#\\t}?P1r?“³{?\\fþ´>\\u0018”v?&\\u0013Ç>{¶t?‚Î|?z\\u0007•> Ñ¸>Uk?Îàù>ÎJ|?\\u0014ñ#?ÚÐ{?¾\\u0015Á>Ì­n?`$5>g-L??n.?e¬{?\\u0006¼u?»\\u0017{?¶ÞÉ>íÍk?â2¸>Š8s?\\bŽQ>ižS?È\\u0001Ì>\\u0006ßc?ºê®>›{?°³Í>C\\u0015p?Þ(A?Š–¯>ÚÓË>\\\\¾i?T\\u0005T>\\u001eX?Š”Î>û\\u0015g?UÓÁ>Î’h?\\u00063Ç>\\\\Sh?nA³>×hp?`Jù>7Ðv?xþ½>®™l?¯øÁ>RÂe?ÍÊZ>2\\u0012[?\\byÔ>R\\\\\\\"i?.\\u0018=?DÛµ>\\u0012§Ù>h§k?\\u001fe:?@%®>ÖwG?(–È=y\\tV?\\u0000\\u0014/:€\\u0012a?ö¡\\u0002?Ü•x? øµ<%‚<?”Ü >ðà1?|É¢>wý=?dKŒ>D”I=ù7;?y\\tB?dõŒ>—\\u0012·>˜7]?`#?t\\u001f«>J\\u000bª>„›\\\\?üä'?^1©>B¯£>ât\\\\?Fá)?^ˆ©>Ä\\u0006>L¸\\\\?jB,?\\u001a)ª>È®:?ˆJ’>X“…>\\u00160\\\\?Vä‹>SÒ[?\\u001e»4?2’¯>bÂÉ<uA<?')—>ïŸy?PQ??|{¡>êIA?|á©>\\u000e\\u0018\\f?\\u0010›\\\\\\\">3Æ!?.\\u000f¨>€î/?Rò’>4í:?\\u001e#Š>„Í2?>\\u0016Š>Ù*8?\\fë‡>†\\t5?²y>\\u0006±%?s‹>\\u000b›\\u0005?P’8>U<!?ðv•>ÿL&?šj•>\\u0018n7?øÆ’>MÉ#?D'‘>ìÞl>àÀZ?h\\u00129?8ë´>Çâ\\u0006?h”R>\\n1 ?–m‹>\\u001f\\u0015\\t?hþ5>²Á ?\\u0018£›>Zš,?ˆà‘>BF)?ÒF”>qð4?\\\\uš>Y™!=v¶:?\\u0004ÊA?V3•>[²>?”Ö“>.U\\t?D‡R>»¡*?î¬>’å.?ôÙŒ>Ðü\\u0012=¨„Ä>Šø¦>„0p?Â½r?Þ¶>?–w?àÇC=˜Øj?€P‰>fxK?\\u00009Â=0JM?@Æ“=õM\\\\\\\">\\u0000×\\u001d=¸TQ?0æP=³J\\u0005=¸cl>.\\u0000'=Þ´ä>Ð¥/>Ð•/=ðrM?`ÚC=Ð©k?\\u0000§‹;0rN?ˆ‰¼=bxK?0Ãz=\\u0000 z?0\\u00036=¡\\u0015û>ú(r?ë\\rQ?è\\u001fÁ=;N\\u0001> \\u0003.=âS\\u0000?\\\\\\\"†u?Þ R?\\u0000ÿ¤=ÏzÄ<œ‰F?AªÆ<Z·D?\\u0016j˜> •q?Ö&p?À·N=\\u0014æ<å¹??Òa•>/vv?<p§>²:v?¨ðz?šÐ“>Ã”¡>£\\u0012y?ÒUê<âøD?N•%=úFÏ>ñäk?h\\u0011>\\u001c¿:=â?Ç>â6w? Ð\\u0004=T\\u0000ì<LÎN>g\\u0001\\u0018>Àš™=‰W(?\\u0000\\u000bù;6D*?»\\u001fr?ØR\\u0007>`”=™\\u0006+?©\\u0000u?¤ù+?ßêw?˜eó=¸Ü…=¹ü>\\u0016Œz?ÌG%?n-w?<£&?€'Ö<Îè.? Ús?\\u001dBz?«\\u0010w?÷\\r0=|D??m¶\\u0010=ÚÀA?\\bÕ\\u0012=ž,G?Rßk?0YP=œ>þ“p?ôñq?À$==ò+n? ¦)=\\u0018{K=VžÀ>jÄt?\\u0000f$=\\u000e3q?€Ëí<Nˆt?0¥\\u0001=\\u0004Æl? O\\u0000=M\\u001f=<mà>\\u0017\\t‡>€\\u0004æ<ØÙà>ªÒk?‹\\u000bl?\\u00008X:àhy?¨¢÷=\\u0003¶A>À1F?ì6'?°QJ=Îæz?Êß~?Ì\\u00160?\\u00171x?L~x?Îƒz?(ø\\u000b>°nh=ÛÕ\\r>à…=‡M\\u000f=\\bóV>\\u0018\\f\\u001e>p&h=š«ƒ>[X?\\u0000¯‡>Ì\\u0017Z?·Yœ>‰\\\\L?,þ`>3\\u0018W?!™›>¾.G?<T“>ÂI?ÁÏ‡> ûQ?ÖçŽ>ðyY?ìHa>÷…N?ÄQµ>H¿N?ø·§>\\u0001aU?\\u0015a¤>\\u0018\\u0005H?`‚¢>ÁùN?\\u001c—ˆ>\\u0018´V?©—{>:ñ;?è©»>&{/?Ø=†>`™1?L5²>3ìE?—\\u0002„>D”I?l.©>ê\\u000eZ?Íór>lçG?S±«>œQR?ÄÎ‰>BmF?Ü‹±>Ÿ<X?`W‘>^eR?vs>4»J?Aâ¡>J(U?„\\u001f¡>\\u0016+Y?PQF>œ\\u0004>?\\u0002ö¦>®\\\\2?1*¬>6ÙL?Â´§>Ç¶;?:ë~>\\n.&?ò’¸>ŸÚV?OM¡>~¹R?\\u0011Ú¡>Ôž9?/\\u0015í>\\u0012\\r-?0\\bn>³¯N?¸%°>Ì—[?è&w>4ž\\\\\\\"?Î™¾>à¡Y?øÁ\\b?€ª\\u0003>Ný˜>ò­T?\\u001eüF>+\\u0002I?9aV>,³D?r\\u0017i>\\b6;?µ\\u0015¼>È@>?ê¹H?Ð­û>Á­K?z°÷>~œ®>!59?\\u0016Qò>`’(?²\\u0000W?l\\u0005ï>Vö>Š;?!tÎ>¬\\u0016.?1‹[>ˆ¼G?\\u0000¼¯>\\f–U?N†™>UcX?‚œO>\\u0018~N?ú\\u000fa>ÈåQ?\\u00104˜>à•Z?8#®>{4I?\\u001aÇ?>šÔO?<ÊÀ>øpb?&;t?]©}??9€>1÷2?dà¹>÷ÝC?]ß‚>\\u0017 M?4b´>ôn=?\\tWP?HÝò>Æ¶y>°\\u0007Y?R>•>c²B?\\u000e\\fƒ>ê¦.?®€¸>(ÕK?\\u0002{}>ÍWS?ˆÃy>ÁÁV?-n>R\\u00038?:²>:Î@?\\u0010Y€>ø»@?\\\\í>®`U?ñT–> ²N?\\u0018c™>\\u001c’8?tXß>9ò,?5ä7>²I>?õó—>’|3?U¤?mÏy?R¹‚>Æ\\u001f*?>í¹>ø“Q?\\u0018lh>3N=?2E³>¾\\u001a0?a6¦>êÀ@?\\\\Þ¦>žô7?<Îê>’}&?\\u001a[|>ÁæO?(T<Ø¸]>C…Ê<hWg?¹Ja=¬æß>\\u0015œâ>ÄEp?èºm=Øàg?÷ì>’64?ˆ®-? \\u001e\\u000b=(æ~?.¨w?§Ó›<D\\rI>î¹\\u0017=X…g?¶!-?€9[<¤Û\\u000f>õÚP?n^ì=œÔO?w¤ì=DS>?z9E?^[A?%!þ=ò×D?Z;=ÎFR?Y\\u000eô>\\u0017nA?êß\\b> \\u0000J?xWè=4ÓH?íð=ö\\t\\u0014?V~.>\\f—F?S¥Š>ßC\\u0012?\\u0013\\f)>¢aL?ê,Œ>Â‡\\u0010?'Z˜>«\\u000b\\f?V¶>:6\\r?T9\\u0019>ÅYH?Jò²=tø\\u0016?Á¶\\u001f>?ÿC?ø(©=$UG?0;\\u0004?sòC?ÿ¹=“gJ?\\u000bÅÌ=”ÕD?^`³=\\b¬O?gç¦=ÔkZ?\\u0016Ù™=FîK?°Wÿ>5®B?Z\\u001eË=òrL?°\\u0017œ=ÏÑ\\u0018?\\\\\\\"Ø\\u000b>ÕúA?‘Ë\\r>á¯c?ƒíh=¢Y\\u0014?xŸ\\u000f>¤â<?H¬J?ä\\f>?ïl#>I3d?æA³>4&ÿ>²\\\\\\u001a>Ï‘^?Š\\u001c¬>¨Ž\\u0001?t<‘=ˆX?bÞè>ºñB?ä=\\n>9“g?†h&?2Ó\\u0010?Ÿ›ï=Lçb?ˆäã=w `?Ôûè=TÂf?²Ÿ'?Zƒ\\u0015?\\u0014.š=4êc?DÁÎ>Å»@?«÷\\\\\\\"?\\u0018å\\u001e?\\u0017ðœ=Ë\\b^?Z ß>¬]D?à¼ö=–#U?\\\\ª*>Í=S?\\u001a\\u0011›>ºL\\u0007?LOò=\\u001f—Z?È‘¼=˜US?\\\\\\\"¬Õ=v\\u0016Z?\\u0000\\u0017\\u001f>2WX?:É£>üb\\u0004?­\\u0017‡=41E?z!\\u0005?ÀÜ>?/¨º=hþ>?ce:?¬K??ÀäÊ=T V>\\u001ee$?˜/¯>h³`?ù\\u0017(?\\b3‚<•ÚO?.Kº=˜|`>\\u000e‘-?l·´>£ö%?n\\u0013º>\\u0012\\u0001+?äÆ>ð\\u0003 ?ÆoÅ>l‚&?°Ê>Â\\u0002;>úTþ>\\u0017,\\u001e?v›\\u0004?„éC>TÌÖ>©Ò\\u0010?\\\\\\u0005ë>q&\\u0017?jèä>#|+?øŽÃ>VrV>D Ò>N<\\u0011?\\u000e à>½%>?°÷§=æ½#?ÒÛÙ>ó09<\\u000e\\\\\\\"R?ã-?8\\u0003Á>›©(?\\\\\\\"½Ü>\\u000e\\u001f¸<Ô„V?Fò,?’(Ð>J\\u0001;?Vf=@—\\u001c?Ê-û>¤Q$?°@ý>•º\\u001d?ø¸Ü>Þ’C>pÃæ>\\u0002ùF>dßã>ÓÒ\\u0016?Ànø>Ø&?¼ªè>œ+?€ïã>\\u0012Ý,?l`×>{/?4FÚ>\\u0012…d?\\u001c”Â>&¦+?@1ë>10#?Ú“ä>\\u0006J ?j,ó>jý$?p/ò>—Í$?þEÆ>¶¿&?è\\u001dÁ>\\u0018%/?^ûö>Î`d?Ä„¨>¤W1?^ôê>@º2?2jæ>–ôc?’V¶>ËK\\u0018?`2È>/þ[?!Æ\\u001b?4\\u001d!?T|»>V\\u001d?\\\\\\\"ØÀ>­‰\\u0018?hyÛ>F\\u001bA?\\u0000\\u0019=\\u0003Z?ƒ±\\u0016?ŽY\\u001d?€+º>_ˆ^?\\u0014(\\\\\\\"?\\u0019/\\u001a?>ŠÍ>\\u0002š\\u001d?\\u0004zÆ>ho7>$uö>rŸ\\u001c?Å@\\u0003?ðùF>÷‘\\u0000?äÝ!?F“\\u0002?ï`\\\\\\\"?\\u0016ÛÌ>4š%?8ŽÏ>fz2?N$Ô>\\u0004¹<? ö\\u001e=²Ea?ÂÄ>P“\\u001a?\\f|ë>\\u0002N&?öŸÚ>\\u001b†'?`µÖ>¢VK>¶—\\b?_Ú(?#3\\u0004?¿§U>v¹\\r?\\bS+?^-\\u0005?ZQc?¨\\u0014–>vú\\u001f?@AÔ> Æ(?PhÐ>”š*?Èö>Ü¨(?¦\\u0012þ>õ\\u0010\\u001e?\\n\\r;?‡W\\u001d?±uN?WŸ\\u001f??Ž??.\\u0016 ?rLV?\\u0001ú(?ÌÍ4>Ìž\\u001a?Üã7?ÐuŒ=ö¡$?Y\\u0007\\u0010?A­J?k\\u0017'?e\\u0005d?ë\\u0012\\u001d?›eJ?ºß®> ü\\u0018=þ\\u0000\\u0019?\\u0015Y3?˜„d?à#À<s–\\u0016?\\u001f\\u00197?]\\u0006e?\\u0000\\u0011\\b=67\\u001d?`hQ?è\\u0019\\u001a?\\u001càI?—x\\u001a?â€<?Àß\\u001c?@|U?ìÔ\\u001d?æ8C?ÂD\\u0017?>þC?\\u001e1\\u0013?\\\\rB?‚1`?À«Ž=(Ä\\u000e?û{F?ê\\u001e#?7®`?žGç=´J\\u001f?&÷\\u0016?¶nW?«P%?¸ö\\u0013>©ò =§Ä&?Z{\\u0011?N? ô\\u0019?CÇA?†\\u0015 >@ÖÊ<… \\u001e?\\u0003ó*?ˆd§>\\u0000< =\\u0005;\\u001a?td0?#Ñ\\u001c? 3-?u:\\u001f?'\\u00004?1ˆ\\u001c?\\u0016Ë0?à¤\\u0018?Å­O?S¹\\u0019?‘ÙW?\\u001a[\\u001b?ž®W?\\u0004\\u001d&?Ðz\\u001f>\\u0012'\\u001b?¨\\u001dP?©ÿ\\u0016?ÑÄ;?œÜb?\\u0000ÉQ=.©“>p´á>ÐÓ>˜ÑÂ>ò\\u0016²>\\\\<ß>T,—>È\\r£>Àä>8v›>N}…>`š›>Šeg?œ÷\\u001a>P\\nœ>@Hã>M^[>4×Ô>ÚÉ4?V{Ç>çªO?dœ¥>ÖFu?¢±D?¹c«>Ü\\u0017û>Ò\\u0010¶>N‹ç>ãBœ>\\f\\u0013•>[¢’>¼\\u000e\\u0003?t–>\\u0014÷î>ð\\u0018>@:Ó>\\u0010å)>Ä+V?¬=ž>5š\\u0000?Û\\r“>^L‹>Ú¯u>ŽhÉ>\\u000eO§>ˆÂ­>q\\u0000­>ð† >\\u0010õR?÷„d?\\\\\\\"k–>Ì5ú>ÔÝd>ò&Ã>]£q?ÖwK?mÔ‡>\\nC®>Æul?%\\u0017W?çÖ‚>\\u0012–´>Ljk?\\u0007qT?1gm>\\u0012hì>ä=‰>ü\\u0015¸>Y²™>LSÓ>çb{>ÕÀ\\t?ŠR–>ÔQÂ>ä9\\u0007>Ð»>†ñ–>È%ƒ>Zxž>äì¥>Ðá‡>¤:Ê>Éz¤>*Hö>ŒÂZ>:dì>\\u001bë[>üô>¾M\\\\?|K–>\\fgk>Ð•÷>\\u0004´v>œ\\u0005\\u0002?8Åµ>J»ó>¼R­>üæî>š\\u001f‰>ët\\u0006?D\\u001f£= ©æ=Æ\\n»> dÚ>¤„>ÎÂ\\u0005?cØ,>øS>æt†>Hû>N‰l?0\\\\\\u0016>it\\u0019>šÛf?¬_º>d=þ>œü'? ]\\f?Â\\u001c“>À$–>D\\u001b§>Ð\\u0011ž>Ôaï=\\\\ÕŠ>óšž>òZ„>:a†>Ž\\u0000\\u0001?¤¨ƒ>Â’ù>Áxc>Þ&Ð>\\\\Kr?ö\\u0019F?Ô,Š>\\u001a·Ö>ðYƒ>îdð>Ü¾[>Ìêß>~ûT?pÿž>\\u0004$°>š1Ê>O\\r¨>ä¥>X»q>î…Ú>£\\u0014€>\\u0000—ã>î¢> oÚ>˜ç¶>T¼ì>x<u=ð}\\u001f>œé»>p>ð>N',?ôK\\u0007?|Ã®>ÀŸ·>Nµ¥>t7–>ïª¥>Ñã>\\u000b×©>œ-»>\\u0012Ý>úr¶>™h>vë¦>v¶–>\\u0010’¬>\\\\\\\"T>88î>\\u0016Š¬>¾Uå>k)Ž>ÄE¿>×Ûˆ=øh\\u0006>£cº>0Çã>\\u00033§>œí>=™Œ>N\\u001b«>›æ³>È<Ò><]»=Ø4¾=fæº>ÆœË>\\u001d¹\\u0013?@Ù=m6®>l´Ö>Š{I>¶\\u000f?®4^>\\u0018!ÿ>\\u0012Db?„s>I†¤>P\\u0001Ê>–€>TÙ¤>8Öd?ÈN\\u0019>Ýp?;XY?²¾6>UC\\u000f?Zî\\\\>: \\u0005?Ô»‹>z„à>Pø\\u0015>^M\\u0011?Åuq>Üî\\f?ŠÁ™>VÑ·>Á0ƒ>¨HÁ>ðQ•>¨-Ç>·{ž>0ÈÑ>\\u001búz> /¸>d'n?'ÈR?¿;­>èº•><\\u001fU?j\\u0019h?:ò±>JiÀ>Î“\\u0013?à¹e=<Áp>F\\u0002¿>âjo?Ù˜N?0’¶>ÆÙ¶>º|\\u0016?\\u0000\\u00074=’}K?¶d_?žä¼> ¥õ>XQ,?\\u0016ã\\n?N>„4Ô>ÑÚ\\u001d>ê@’>cF‰>ì¯‡>\\u001bP>b\\b„>•Ã“>\\u000e\\u0014Ì>\\u0014`?Ô‡¸>´\\u0002V?Ü\\u0007®>XŠC?\\u0002%¹>¼ÆT?\\u0010Þ±>¨ªV?ôÙº>G\\u001aI?°ø°>J®[?àê¾>R ]?\\u001a¬>Ÿ9:?pô¿>‰ŽR?•©>òoZ?è+¶>\\n3`?îá¦>7Ê3?ˆ¬ô>ÂŸb?äG²>\\u0002%\\\\?ð™ >ÑÑ,?¥°\\u0001?l7c?Êkœ>¸u9?`¦ü<6N?\\u0004R³>\\u0018j[?ÖªÈ>\\u0018 À<*Š3?;›\\u0013=\\u001cÎN?ÿÂ/?€ú÷<Â~z?3{Z?{\\f3? Š¸<}¡T?Øn¿>Æ<0?\\u00007P<0ïS?Ú‘É>ž\\fa?È\\b?\\u0019Îe?*:??I¯<\\u000b†7?¦h/?€\\u0019º<\\u000b/`?\\u0005|z?´M5?À¾Ê<fáR?\\u0018\\u001e¹>ŽÈj<€=Ñ<¬ã\\u0019=Tz7?Eše?uTy?/={?\\n\\\\ö>\\\\Çc?Ò}?1’~?”ý÷>Ý#=@ëˆ<žâP?à\\u0019×>,\\\\\\\"i?T–|?ÍÙ%=\\u0000Ôå;ê™O?hÛ>âUà;€b±;\\r;%>øht>ò«R? áá>Î\\\\\\\"§<  °<Ñ‘g?{#z?\\u001aj}?þeô>KÎÂ=0È\\u0002=›ö|?þ\\u0017U?\\u0005Ó~?tâQ>Ñ\\u0017¼>6b`?f€z?\\u001cqA>;™{?4xL>94¤>‘%h?7øy?#,N?š\\u0015{?`&o>h\\u00129=TQ]?§¯k=\\u0000:á<\\u000b¼>çó}?â\\u0016z?_ÄS?vëš=@Ñë<UGz?qêT?ÝŠ¬>€bE=×ã>@\\n+<¬¼c? Ç¡<ìN?=tL$?|Íg=œÊ=ÈCŽ>€Ÿ5=¶ÆŸ>\\u0000ß>=DPå>`_\\u0004=Ô·™>\\u0000,ö<äµ|=€F#?\\u0014Œ•>À´D=.\\u0006é>\\u0000\\u0016-=ê…“=à›Ä=h.>ÀÎõ<\\u001ek;?L½á>Tt?áPR?*çu?\\\\\\\"£W?âop?qãU?Þ\\\\:?˜cÚ>ä¿u?Ò6N?\\\\\\\"@=?B«Ü>+Ïw?f3P?\\t^??¼[é>!»x?\\rÍS?ŒÒx?Ê\\u0000Y?=$f?T½\\u0007>š\\ru?^[?\\fÚ9?(úÉ>L÷v?úF?|Ü\\u0012?ìX/>1ö\\u0018?¸ž/><ò#?ÈË@>ù“\\u0012?ø4B>lÆ\\u001f?x\\u0014=>«q\\u001b?@\\n.>cI!?`\\u0007$>]\\u0015?<3D>&\\u001c\\u001e?l˜\\u0015>vˆ!?à”.>.µ\\u0016?82>Ué\\u0011?\\u0000,\\u000b>ˆ5\\u001c?xÑA>Q-\\u000e?\\\\ ?>$d\\u000f?\\u0018 \\u000e>¹Û\\u001f?‚\\u001d§>zþ\\u001a?”þ6>°Ž>>²ã\\\\\\\"?Æ¶\\u0014?\\u0018Q\\u0000>éT¿>\\u0015Î\\\\?´\\u0019\\u000b?X3\\r>4% ?t\\u0000ª>{j\\u0002>¦{#?\\u0006m ?Hè\\n>Ñ~\\u0017?Ä\\u0007A>\\u0011‚Z>è»\\\\\\\"?\\f\\\\\\\"\\u000f? Jû=Lll><W\\\\\\\"?J}\\n?lX\\u0000>qd\\u000e?@Ý4>t,$?ØÊ'>\\u0000Á&?$\\b:>L¹\\u0016?äÄ\\u000b>4ê\\f?|\\u0015K>Œª!>™Ð#?#\\u0016\\u0019?ðªû=ÄN\\u001d?¬ã%>~¥>>ƒ\\u0005'?\\u000eIÍ=“<,?\\u001a¤à=»ž4?°£ø=¼è6?þ:‘=v›)?ýU$?¨Øf?ì]æ=†ñ-?ªÊT>ìì0?\\u0013Â\\u001c>Œá+?Wt¦=Z\\u00178?²{µ=D\\u00195?²æô=á&?8)‰=Öd6?¦ë\\u001a?Û\\rk?\\u0012€j=ò¦9?2&\\u0016?¦`i?\\u0016 Ú=ê\\u001b:?°9?\\u0018ËÅ=¸·\\n>\\u0016-(?å\\u001eC>cæ*?¸b¿=àñ(?\\u001e•'?—¿j?\\u0010ÈÒ=\\u0006â$?´ý\\u001b>ò)0?;ö$>tN1?\\\\\\\"k¿=Eµ;?úH6?POÆ=</\\b>¢Þ2?}*,>”b-?‚‹¢=\\u0004Ì,?Òe$?Úsk?\\u0019;+><Ò4?_pi>\\u001eæ3?0\\u0006l>@ &?3¶P>œR;?à\\u0004E?\\u000b8\\u0000?ÂEF?°[ß=™d(>ø:8?€?B?\\u0018ÁÏ=Œ¡=>h\\u00030?Úã\\u0016>¡Ñ&?4Áû=º!*?ªF\\u0014>ˆ¹!?#ë\\u001c?œ\\u0000\\n>¾½¢=H0?¥\\u0001j>æ\\u00060?8oº=µ†/?,>S>\\u0000å,?H~;>\\u0016\\u001b4?ÖOb>^)+?`—\\u0011>8\\f7?„ë\\u0006>¶\\u0014-?0\\u001d™=é)<?£q\\u0016?¬ƒl?ŠÑ2?¨‹Á=øUi?ôŒ7?d¥,>\\u0000%'?ôéP>Oê&?+DS>B\\u00065?%I|>XÓ*?®\\u0012æ=>§0?æÅ\\u0005>N—:?v,:?(ôÐ=¯$„={‹1?aa\\u001f?\\u000e„h?H|›=ðd=ÀS=0ƒ\\u001b=ªâ¤=€ùœ=a\\\\Ë<\\u000fÆ*?\\u001eÅk= îm=ž^|>\\\\\\\"„x?æ{³=À®)=àÇr=\\b\\u0003Ÿ=Í;V=à#7=\\u001b±x>\\u0010ö{?\\fˆL? (¿>|dM?d*¶>((I?H†Û>€\\u0006D?0¯ã>%=Z>hOl>„ H?˜nò>”mp>0Åq>úÇD?*Eò>{¸??¨rõ>tJb?à¬ÿ=”Qw?^[?auo>¸]>µ¬F?r™ü>òÕd?¯Ò=ª`N?\\u0018TÈ>\\fj>?\\u0010QÅ>\\u0002qF?˜šÈ>6\\u000fM? ½Ò>Îih?Ï¸?ÐäE?ò0Ñ>T–A?DPÆ>\\u0016š@?dÈÜ>4\\u00079?t¬Ó>\\u0000Èt?< K?vÃJ?\\u000eØä>èœB?€¤Ð>N\\u0011:>0˜x>ä¼O?\\\\Úê>6¸G?\\fò»>ÜºX?®Æ¾>^õ =xw4?;Ÿ\\u0002>Ê$€>\\u0006+}?¸ëY?–¶\\u001d=œ'N?ß²ö=ð¨w>Üj}?\\fNX?|ùR>ÈÇ¹>»P/?øŸ³=Õsn?\\u0010ä=&ÜT>¨<Ç>°–8?èƒ´=åH8?¨Ï…=Ê\\u0005a?b+\\u0015?þ†2?Xž›=\\tÎj?Ä\\u0003\\u0011?Ã¿4? j~=–)e?»Ó\\u0014?î~/?€t]=\\nm?ìÆ\\u0015?qÑo?øVÔ>ßý,?àÏ”=ô\\u001dj?`“h=ìm?gÆ\\u0010?\\u0018\\\\W?Öè??bäa?‚^\\u000b?¢‚w?~oº>à¹õ>ì™z?|˜y?Z¢¹>\\n}z?,è¯>zƒ=lã/?ª^o?@Œ\\f?/Ny?¬cž>îœ\\u0000?@”e<}öx?0Mœ=³ª}?þ0¶>\\u0000+{?à ž>7H…=x\\b+?rÌü>@íA=¬\\u0013}?Ð\\u0001¥>[©O=âÎ-?Ox}?Ðš›>eÇý>\\u0000‹!=÷\\u001a~?x'ª>Y¢l?\\u000fÐ\\u000b?ã,x?üñ£>õfh=–G1?‚J›>tÑn?Ð\\u0004t?\\u001bþ\\u000e?ðuh?ÀhÛ=9¦7>øš“>\\u001a™l?Øü\\u0004>È\\u000ej? Ú®=\\u001c.h?p›„=~¤o?¢\\u0018\\u0010?B2u?ÞâÆ>¨˜R>(úC>$-c?hh¤=PÉy?\\u001c¿Â>ö=A>\\\\\\\"‚›>0Pm?PÕë=¾‚B>\\\\Ç®>6ªo?¨'¥=¦¬g?8¯Ÿ=\\nbw?\\u0004Kä>¿\\u0019|?hd×>\\u0012Ív?>aÛ>¬v?¬\\u001dÔ>ª~D>\\u0000Å&>‚§|?Î@Ì>Ë\\u001dz?¸»Ð>_#\\r>Ü9'>n\\u001a?ò²á>|c{?ÚÞå>Ä‡ò=x›/>G&o?w'?‘({?‚Wë>ù¾\\u0019>Ô¨*>_\\u0019?t\\u0004Ú>ô¯k?:\\u0002\\u001d?‚Kr?\\bRå>Ôžo?½®\\u0019?”Êq?´\\u0017Ü>,Xæ>âÓs?ÏÁg?’‚N??\\tã>hd{?\\fr×>Ø¨u?ƒ\\u000f?è7_?\\u0007ÙÝ>K’s?b\\u000fg?`sI?Â\\u0015ï>ªO|?¢\\u0016{?àõÀ=Ðë}?|Í¾>%\\u001cõ>™Uw?\\u00001X? †A?\\u0010‚w?¤¥¿>ó\\u001dÛ>\\tX{?ˆ„ò>WÃu?¡jW?H\\u001bF?X\\u0005j?Ú\\nR?(ß> îw?b¬ê>Š©w?-SÔ>Šï{?¥ž\\u0016?uÆ[?ÈÎÙ>– ~?Ž:\\u0016?v Y?\\bLS?@5=º}?\\b&Ç=ÁmÕ>1?q?\\u000eƒ\\r?\\\\\\\"\\nb?\\\\\\nh?º¿E?¹ñ\\u0017?ˆPa?·o\\u0015? Žd?ÃŠ\\u0018?3^d?›~\\u0012?txi?X{g?\\u000e\\u0004=? ò\\u001d?ÂÙ_?(Û\\u001d?¼ñc?çO!?e.b?9\\\\\\u000f?®\\u0014E?¼) ?š[?³þ[?\\u0010ÓŒ=¶½\\u0018?çCg?\\u0001ÛÒ>‘y?Þ\\u0007\\u0015?\\\\L^?À’\\u001b?˜}[?S4X?¨×ƒ=ôV\\u0011?œ\\u001ca?ÛÔ\\u000f?ÿðd?ÜRg?\\u001axA?£s1>\\u00189E>–\\u00151>\\\\£/>/ß\\u001e>\\u0014ÕI>Ä}S;à–˜<õøJ=6‹5? ®\\f>¼0r>vŸ\\u000b>T}G>\\n€_>¨\\u001bc>çX4>ð\\u001a\\\\>†¢L>0÷x>¦TL?‚fë>Ò\\bÝ=H\\u001ea>\\rz!>øq9>\\u001aW\\u0001>\\boW>˜Sg?Òæ)?Ò”=>ôëB>Ò\\u001eß<<¦O?ÌOÐ=ˆ„l>*€L>¨\\u0000i>:}Ô=0ð]>i¹\\u0002>ð„c>eå\\u0017>°Áb>˜\\u0019\\u0001>l¡H>àGi?fO&?\\u0010ïä=hvU>7Ñd?V(?\\u0000˜f?Ìu#?‹àh?¢\\u000f!?{\\u001eu?.\\u0010î>÷\\u0004\\u0019?À&À>˜Ô`?=”\\u001e?Ê\\u000b_?1€\\u001b?hða?\\f$?Æäa?‹\\u001d\\\\\\\"?‘1=?À\\u0001`=ª\\u0006_?Óà\\u0017?ëoc?\\\\}\\u001a?lse?~°\\u001e?‘\\ni?J¹\\u0018?#>p?¾vß>6wj?\\u0016€C?§å/?°îÈ=Ð‘i?\\u0002\\u0013??0Qß>cgr?ª\\rh?YLJ?ìûU?„\\\\L?v\\u0001k?¥$L?H™(?ÐÏï=ÖTW?ŠØV?˜ín?Y\\u0005D?¬æT?`¤N?hœk?©AI?p\\u0000U?¶3W?‰\\u001do? AF?\\u001b{W?Êq\\u001f?xós?\\u0012îó>õ\\u0001º>`C[=æÃP?¾ü^?E:Y?\\u000e`\\u001b?I‹w?°©ö>ñýû>\\u0000÷U<v¥{?¨ê‹=ŸM÷>\\u0000Ö´;À$Y?\\u0000/z<h±~? u“=^oè>\\u0000¢£;\\u001b¿`? Û<,\\u0017Ý<Q\\u0016\\\\?ñý.=šÀ1?“ÍŠ>VÄ}?\\u00022\\u0004=¿¤Y?yœ>=òø3?¼» >±j?rÎw?4\\u0017M?ûK\\u0019=x§)?_wõ<U\\u0016,?¯\\u0019ú<!\\u00171?R¤ˆ>Pd|?xãT?€wg<‚(~?°6ª=^\\u0016Z?@A\\u001a=FQV?à‰\\u0010=6\\u000eX? ~>=\\u00102X?À€Æ<ãÔ\\u0013>XlÁ>ÑŽ8>\\u0012KÚ>\\u000b”=6DÉ>Ô“\\u0000?üÖ.>¶}ø=\\u001aT¾>š=Ë=^ŠÄ>ÆEÀ=xÞ”>‘$a?\\u0004am?\\u001bçæ=_e\\u000f?&^Ý=äé\\n?PŽº=Ar\\u0013?D£Z=š#Ë>Ydý>`Á;>n‚/>rs¹>t3\\u001f>l\\\\\\\"¸>äTü= ¿¶>ø–\\r>ÂÃ·> \\u0018\\u0012>\\u0002°\\r?~¶=ä%Ô>\\u0010º\\u0002?À…H>\\u001fm\\u000b>Xq\\u0012??\\u001e‚>‰n\\u0010?Mg\\t>Äg±>PU½=\\u001eiÕ>âC\\u001f>õ\\r\\f?Ú'\\\\>Èk\\n?D‰&>\\n^\\b?R¿\\u0014>M{\\b?éty=*E²>›\\u0007¦=Œ£†>ªän?žŽi?Ð8\\u001b> ¡­>°þ->Ê\\u0014\\u0005?8\\b4>Xu\\t?(‰@>Ì}\\u0005?€\\u0005&?Ÿ’\\u0005?Äu0>˜vÁ>?ÁÖ=ŒXÍ>\\u001fÛ->üÉÑ>þ¨C>ô\\u0014À>&\\u001d\\u0016>4\\u000e\\u0003?¼W\\n>G \\u0004?‹¢¾=¸H‹>Rèª>:\\u0005ˆ>µ#[?EPk?b™^?ç'n?Ìöü=Œëà>81]?Ç\\u0006m?xq]?·\\u001fp?(^ò=Ð\\u000e\\u0005?Èþþ=²\\u0006\\n?\\u0014Q%>ökØ>\\u0010\\u001fò=Œaë>FhÝ=ìÜ¢>Ýª\\t>d¬œ>\\u0014Jð=Êcü>Ü(>T€ü>‚³\\u0018>,ðû>ý¦Á=î\\u0001û>[Ÿ#>°ÿð>ö;¯=8eÀ>ÒC„=.ò½>½ü¬=òùˆ>\\u0010Ýû>\\u0018y\\u001e>~€\\\\\\\">h\\n\\u0001?™‘\\u000e>8/î>¥/$>I¨>ßÙ\\u001b>\\u000e\\u001fä>ª9\\u0012>¤7Þ>‚µI>LSÎ> Š,>x6Ì>Ž=Ë&\\n?Õ\\\\\\u0000?ç\\u0002*?2h=MÕ\\r?Oì\\u0000?òõ$?ÙíO?ÄÓ8?*F5>œÙ¬>Ól'>\\u0018ƒè>\\u001f\\u000f>´¥>ëÓ\\\\\\\">\\\\\\\"f›>VÏ½=\\u000e\\u001f¬>ðzi?ÜÇh?\\u0016Wï=â\\u001a«>½\\u001a@>ÔQï>Ÿo\\u0019?ê“þ>ÐÌÇ=ìÁå>K’É=@Wµ>\\u0010\\u0006×=œ(ô>H\\n5> v¡>¤\\u0003p?à-÷=Mš0>–º±>(Cø=XÍ×>uò=<\\u001cê>\\u00125\\u0003?„Ím>w+ø=Ž\\u000eÉ>pF\\u0016>\\u0014‘Ò>ó\\u001b\\u0012>$÷È>\\u0001‘\\b>ŠÚÐ>MÔ¯=^¿¡>ˆèe?ß\\\\j?íà¦=ø¢\\r?LóÅ=\\u0006\\u0019\\u0003?%¢ˆ=ÊL\\u0001?è\\u0013ü>\\u0000j/?\\u000bû\\u0004?Ä=>H8Š=\\u0019A\\u0012?JN?Ù”<?ï<l?\\u0004D®>ÀhÓ>pI¹=Ž×q?¬¼>äŽl?æ\\u0019§>ò‹É>ÈÐ°=”³t?D&­>›\\u0015>9`j?=\\u001b\\u0010?Àƒ±<”Þf?TO¹>V°\\u0012?06\\u0000=¨\\u001bi?6Ó½>\\u0014¯K?‹ôZ?\\u0018ëp?Èï™><\\bn?.E >\\u0012zÄ>ðë¦=ý—r?hì§>lÜj?$Â¸>\\b\\u000eÜ=(©j?S\\u001dh?0Ü«>¯C\\u0002>êKl?Œ|e?z.¯>¢¾\\u0013? zI=\\u0013Yn?þvÀ>óÊ¯=^3j?MÕh?šäœ>ÒIo?Þ)´>p}Õ>P#­=lEu?´^Â>ÔB{?´»\\u001e?„¥À>\\u0000mŽ=ü‡L? ;^?þºu?ðV›>”2ž=x²i?o,G?HGX?UÚk?\\u001d˜>¾òÁ=¸Æl?ö,Å>àùÏ<\\u0004\\u000ef?øØ¢>³^t?J\\u0011Ç>ÂIy?æ\\u001a?«„\\u0017>Õ\\u0003n?ˆ\\u000eh?à°3>ÀM\\\\\\\">ë.k?Ä7\\f?Àm‚<ÏFk?˜ÏB>ê¸Ý=g&o?N$Î>\\u0000]\\u000b=Î\\u001c§=~5m?ìIQ?Pç\\u0019?^ˆ=\\u0018,l?ªAC?†RS?KrO?ó¶\\u001e?’§\\t>«Åo?VöÖ> Qÿ<êóÝ> öý<jZd?Œç0>D´Ë>¡•=ÌsÏ> ½¡=ÂùÝ>ÀÉ“=Ìv?î} ?ƒNÚ>¨%§=à½y? É\\u001f?ÞÿØ>\\u0010…H=‰œÅ=\\fÏp?ÙöÅ>°L!=lôÎ>ÀB=NÏÇ>0ü_=Ç\\tá>`='=DXd?H`D>g›o?Ò´#?xA§=\\u000bºo?Ð³À>`b\\u0005=ÞÂR?¾F\\u0019?úÇ<dbñ>ô\\u00137?pÇw?Mç¾>@2\\u0014>þ\\\\\\\"<?6fr?*“[?\\u0003\\\\??’\\u00118? üm?­Ë5?{Àr?äH•>²öh?|q5?o%g?œx?0\\u0002?¸Þ–>ëbg?­!2?Ð¦d?ÕÑ˜>ÎÒe?Ãx/?#÷d?j¢3?à»l?œŽ¬<<õë>>û\\u0007=¸k-?_™4??w?„¾y?ê3\\u0007?ûæ3?\\u0005Þr?\\u0000èÈ>X-\\u001a>’ª8?âýt?”><?\\u0002\\u0006h?êûI?/—.?J(r?\\u001a\\u0011ö>\\u0003b<?¼…n?‡T?²q:?þ&1?÷½l?µk¯<ˆ:ù>$eÒ>œ‚\\u0011>§ì;?E{w?Û¸N=;¬I?±}2?6+y?È±z?ôÏ\\b?Ã){?˜Q\\\\\\\"?lÍŠ>á=^?Ïë.?–)n?Þœ\\u0003?\\u0010ñ\\t=|0K?0Xv?Ø/\\u0005?€0ƒ<\\r^Q?\\u001ewx?F¨n?àce>Ì¬\\u000e?`ô%=‹’\\u000b?`à\\u001e=“D\\u000f?Ä„=­wq? §Å>,\\u0000|?‚Ö\\u0018?`\\\\\\u0007? Áƒ=©ŠF?ìKu?U‹|?ÛÜ\\u0011?u\\u000e\\b? \\t+=¾M\\n?@;Ÿ<½ül?\\u0000\\u001dN>ÈCš>C\\u0019j?Å¸—>ªàl?oÔt?[²\\u0007?\\u0000è­>á=^?\\u0006Èu?„ \\u001b?-§x?¢\\u001a\\u001c?\\u0019`&?à{1=–þB?~\\u0016q?#)x?ß\\u0015\\u0010?ìèr?\\nƒ\\u001b?üÙy?MÍH?X‘s?*ÿ\\u0017?\\\\$t?\\u0000\\u0005\\u0019??z{?\\u0017öI?QÆ&?\\u0013…=îfv?e¡\\u0015?¾r?ßÃI?\\nE]?Ø€]>NŸo?›·\\u001d?ptv??iI?—õ#?€\\\\V=ƒ‰t?Þ\\u000f?:8N?#YJ?‚\\u001eL?øGN?9SG?Ú¾Q?4J?ÓšV?\\u001cXo?,b–>;¾N?f¹U?:—K?£KR?WIõ>ª}t?§\\u000eU?ÞòC?8èP?r=O?¸qT?~¦I?\\u0018Ck?ÊHO?ž\\u000eN?»\\u0004E?Ici?ü û>@ŠQ?îv>?A!e?_Ì\\u0005?L&G?9|M?¯ÆO?1\\u0014B?^f?\\u001aO\\u0002?\\u001e—G?PÄH?‚´R?vnZ?¶eu?ø\\u001dø>­\\tE?üÇ,?}H?\\u0002ëE?P\\u0005k?¼ºõ>*‘R?P•T?‚Jo?­úG?É{B?’íL?ä K?¬K#?„¬M?ÓÔ\\u001f?ÅÄK?j4A?•çf?XÝ\\u0000?³µg?°*ÿ>P~%?(œý=DÖ8?<n7>â\\nV?X Y?ÜˆZ?ü¤\\u001f?;¾s?Âb÷>\\u0003¾B?Ò\\tG?*CH?“\\u0011+?»ôn?\\u001bH\\u0006?Óªe?Ô\\u001e\\u000b?‚ív?ÄÎ±>šqn?YH\\u0002?Ó¾k?\\u0016-\\b?\\\\ri?^f\\t?ü\\u0003p?¡õ\\t?ªRk?\\u000e¬\\u0001?\\bŠk?\\u0016ÿÿ>1¡E?\\u0010Û-?Ì#n?¾÷û>0ƒh?šN\\u0004?ñ9Q?%ö%?b\\t­>D9\\u0019>øwX?\\u000e¾6?ís±>ÐJ\\f>vÝ]?jÅ9?X\\u000b£>\\bn\\\\\\\">x°¦> |\\u0018>@óW?ŠÖ0?H$8?´ø@>ŠÐS?\\u001c;$?ôW¬>T\\u001e%>>nZ?â1,?\\u0012\\u001bA?BfG?z¾K?À-)?=l…=\\\\\\\"ßm?EÐP?™Ø\\u001e?ûÎ¸>¬ú!>\\f=?hlU>*Y?\\u0015I)?Š2O?Œà0?ÖaN?z€\\\\\\\"?wí??>rJ?\\fM?šÙ%?æø¹>°•³=œò.?êÝP?‹1±>\\u0000¹Ü=Vƒ¸> M\\u000b>\\u001e2]?Pˆ<?¬ÙË>\\u0018C\\b>&\\u001bÀ>(‘Ô=mÍÓ>Ä²\\u0001>®ûÅ>Hï\\u000e>·‹Â>è•\\u0006>HqÁ> #í=gdÊ> î=IÂ+?t´\\\\?¦i¶>È2÷=ùz”>ø•5>Ü+£>$o\\u0001>Ã^Å>0¨¿=˜E.?òPV?|p>¨è(>hR¬>\\u0010Ã÷=fo„>0¥1>\\u0012í©>¸\\u0018Ü=O4o>\\u0018H%>®Ú®>(ÃÇ=<èX?,÷H>ÊœÔ>`2é=c!+?0\\u0003b?Ž”<î4ý>©Ða>zÌr?Ç\\u000eÙ>(9þ=ª\\u001fË>ÐçÈ=‘ã-?ŒFZ?%=\\r=Óå\\u0015?0\\u0007Š> Ð9>\\u0013é§>H¢å=Vx~>Ãqp?»\\u0019Þ<\\u0018EJ?êq“>\\u0019‡x?ÄU>÷lp?8×†>~1k?{©|>Å´l?x¬.?™2d?\\u0014ú3?JHc?®\\\\\\\"t>ãÃo?‰ðØ> 3è=>\\u0012,?&ôd?ÏðÆ< ×I?‘±>#'y?ë¶w?\\u0000¿3;Óöy?Š÷4?ÎâH<®—m?p‘\\u000f=îê?7?Š>\\u0018\\u0012y?3{|?@<5?§(ƒ>”Gs?.Pú:\\u0002„ô>°\\u0015ê<\\u0006¿i?ÛJt>‘^v?\\ros>ýs?ÆKŽ>¾àv?\\u0002‡ƒ>túh?89?\\nøa?{Þ\\u0003<Ôçö>C¢j>g½s?~(=?À\\tV?ñÖH?:\\t”>Lï:?&ØP?C(H?ÜÚ…>ª\\u00165?nBX?l}Ð>0)Ù=î]0?æP_?äÌA?7\\u0003X?™êF?\\u0000·Ž;éÏJ?†\\\\•>Uù’<\\u0016g\\u0016?œ\\u0001>0'J>¤®4?h?F?{Y—>ømI>Tã5? ¶F?Ö\\u00011?ÅÙB?Ü#_?øÖ$>Ÿ??$ü^?\\u0010\\u0015‰>*Sh?6¢;?ù\\u000fc?pj3?'NQ?J¿2?„ŽJ?ÆC5?™q]?,G@?\\u0000ëÁ;rRC?6\\\\_?hi#<ª2\\u0013?*A2?b·A?t5_?(ù\\r>­`5?V€I?Æ~³>\\u0000õ«=\\u0015Â.?’ÞJ?ÀF\\\\?ä\\u0013C>`Ñ5?¡–M?ª.E?°Z>pÛ¤>\\u0018‹M>\\u0012\\u00177?x\\u001cI?ÍPB?°Ûp>š¾>? eR?¿rI?À´Â<Ì¥I?À1\\\\\\\"<\\fK?LD>›ñ3<.=ì>ºC8<\\u0003ÿj?Z˜í<ÌU0?Ô?\\\\\\\"=,ç}?×l2=\\u0005-M?fQx?uþ\\\\\\\"?ü¢\\n=¸OL?\\u000bøu?\\u0000Ý§;êÇv?Òš\\\\\\\"?ž\\u000f\\u000e<X²ó>/c¾<.¿i?\\n\\\\\\\"¡<xY,?\\u001aÃí<cŒ~?t€v?\\u0000Pß:XÐx?N¹$?æw{?€k1?ÈÐ~?ß\\u0017\\u0007?\\u0006–+>ø\\u0007Û=-Ÿ#?à¦’=ä\\u0006}?~H?`ô\\u001e?àH%=C\\rF?†g? ö\\b>\\u00106¨=`»\\u001c? ¢y=8Áñ=@5ž=ª\\u0007\\u0018?0\\\\h=ÆîÛ=P\\u0010¨=àU\\u0018?¨’“=ˆ)\\u0016> Úž=ˆ\\u001f!?€\\u0005~=“Q\\u0018? \\u001a=b}J?\\u0010\\u0002b?Ö¤\\u001c?\\u0000Š\\u0016=ZŽJ?\\u0012äe?¹\\u0005\\u0013>øŸË=¼ ?`\\u0016˜=p›é=(ƒô=D µ=°jý=\\u0018‡Ë=`\\u000fç=\\n0Ð=P*\\u001c>ZL8?Ú\\u000f\\t?HtÄ=P9\\u0003>†V»=øÉ\\u000f>¢6\\u0018>´0\\r>«{C?x\\u001c\\f?5Ã›=ð´\\u0006>±\\u0006à=l¢\\u0012>Nr¸=ü‡\\\\\\\">Ü\\u00134?è®\\n?½\\n>äž\\u0016>Çó\\u0003>Ðd\\\\\\\">9Ÿ??ö\\u0003\\f?–R\\u0004>ÀÄî=ˆ?\\u0001>0A\\u000b>€_ð=|$\\u001a>§¯9>À©ø=|>{?þáF?ºÑ+>Ø¥\\u000e>¡Q}?\\u001c´a?¶µ”=P¸%>\\u000480?8X\\b?žì‘=ÔG\\u0019>;•½>È\\u0017é>Tyê=ˆí&>ÁE;?¬]\\f?pe\\u0002>p´Ì=t‚´= ûŸ<b±;>\\u0010•\\u0010>.Fv?fØ\\b?\\u0007œ{?÷p;?{Ô~?zye?\\\\\\\"\\r<>ìÚ\\u0006>¼\\u0017w?ÐTJ>Ðuy?b’D?å¼y?\\u0016ö8?\\u0000±{?\\u0010d1>\\u0006WK=ƒ¡\\u0011?È\\u0001q>˜E>>ˆ\\fp?šˆ;?\\u0018êš>\\bÕ8>½y£>°!\\r>[%`>`\\u0010)>þ’V?`Â6>žËt?r¬=?¶\\\\z>È(3>B /=–ó\\u0012?;ky>üR?>³í+=÷{\\b?\\u001eÌV>ˆ)·=X¯<ˆD\\t?Œ<>¨Ö¥=\\u0005ˆ®<vŒ\\u0012?Õ»‡>ô‹G>xÒJ=ôŽ\\u000e?*3m?\\u001cé8?ÐpT=„\\u0011\\u0007?dwk>°\\u0012Ú=‡Ëk?ÃA/?¸.?ƒñF?ÎO[?8`/>®\\u001bW?xê\\u0005>a±S?hìÕ=ŠÒx?uã-?øwV?Pb\\u001a>²â»>h\\u0002q>6xU?¨­¡={Éy?¢C'?ÚùQ?ÌÒ\\u001f>tûs?\\f\\u001d8?W)R?8,\\u0002>#¡r?¨ë.?î[\\u0000<ÃR\\u000b?\\u0016›->Ø\\u0012Ž={\\u0012»>T\\u0006>\\u0013y[?@’»=ÅÉm?\\\\?\\u001f>\\u0006Þ\\u0001?…ê]?‹ÂO? ïý<Fã\\u0006?t-_?Ûý\\u0014?iF}?¡ô\\u0017?YÞ~?­®N?°ö+=&\\u0015\\u0019?F¸?XÝN?`rž<˜§ö>@t]?J\\u0003Q?€›t<ˆ3\\u0018?\\u0003Ó{?ƒÀ\\u001e>n{y?6(é>ðia?°\\nL?\\u0000ù6;Â:\\\\\\\">\\u0018_\\u001a>¹ËC?'(\\u0010?eDz?\\u0004–\\\\?\\u001bÍ>?\\u0011\\u0015\\u0016?\\u001a3r?Pu\\\\?^\\u000e—=\\u0000§;°P<>ºor?X”w?dLe?•\\b1>Ï$q?º\\u0018v?\\u0010‰a?4|\\u001e>¥ªr?PÎ ?*\\u0011|?¯Íq?Ç‰`?ÀQC?\\u0004”\\u0013?-âv?p)]?T› ?úCy?ö ??à”\\u001a?\\u0016Äo?#^]?$¿R=€Æ*<|uJ>Z[w?6…Î>;Sb?úg\\u0017>{~t?6\\u001f?\\u0015â}?\\t¦\\t>mYt?àõ\\u001c?×f~?D=K? U¶<\\u0019à)>6ôt?Ì\\u001an?ìÔ4?ÙŒƒ> ƒâ=]Ö½>˜\\f)>’\\u0010o?Pë*?N7r?¾S4?JMt>0Çô=\\u0006Jn?×\\u0002/?I\\u0004¾>°yC>˜\\fq?Ey'?t¹\\u001a?šr|?)nK?à>ì<…\\u001b?çhy?¤ú??_ ?&]\\u001e?½\\u0001{?emB?‰E\\u001c?ÔÝ\\u0018?qjy?9ÑA?Ñ¡#?þ\\u0000\\u000b?Bf_?\\bŒ\\u0016?ˆ#z?\\u0012=B?m£%?m×7?Di\\u0015?ÜR9?\\b£!?å 4?Sæ/?{U/?m—'?Ì„4?õ„\\u0018?ßæà> pä=X¾.?^Î-?°í3?Ú\\u000f'?\\u0013,?)€\\u001a?Ç\\\\;?<ì\\u001b?Ðí1?\\fu\\u0015?±1?ÆK\\u0018?Ó\\u00020?âD\\u001b?æm2?ˆw\\u0012?@\\u00176?\\\\\\\"†!?µr1?îü\\n?…\\u001b.?\\u0003È\\u0013?Éä<?\\b±\\u000e?`¤0?Ø\\u000f?¬™,?j>\\u000e?…Ì@?²g\\u0012?Ö7<?j\\u0013\\u0013?Ø¶<?U=\\\\\\\"?¼Ä*?òú\\u001c?\\u000eÅ*?Nr\\u001f?£\\u001a:?²G\\u0016?ßu+?\\u0002`\\u0011?\\u001a4?\\\\‚\\u001d?d`Â>¾Ì:?º—â>\\bÑ\\u0005>úÆ*?Ù®)?\\u001eù8?\\u0014=\\u001e?3Q1?sI\\u001f?Ô¦À>ªì<?—q-?\\u000e\\u0006\\\\\\\"?<x6?ïû$?\\u0000+1?mí#?Æ2:?\\u00113/?®üR?x-\\u0015?\\u0006t7?ž•\\u0011?¶¨È>$ê=?¹%?mn$?Îøè>X4°=\\nS0?Ö52?§G\\\\?@ç\\u000f?²&?H­\\u001d?*\\u00014?í…2?\\u0018´W?¢H\\u0010?Fs=?Lñ%?¨[Î=V'd?9ù%?´‹\\u0019?R…=?À\\u001a*?nf\\u000e?Æz]?\\u0012ý@?«c+?\\u0002Ô6?<,?Ý!9?~(?\\u000e\\\\\\\"F?©q;?5òx<ÐBÐ=–˜\\u0012?ž‰:?È\\u001e.?å_;?ðE\\u0006?’4\\t?x—\\u0012?®é=?ö»3?Âë8?\\u0002T\\u0003?,ë\\u0012?&Ü>?pÏ6?”e\\u0002?\\u001bž\\u001b?[•G?¦e6?x¢t< Oõ=…Q\\n?š\\u0015\\u0001?=\\u000e-?\\\\¶7?o<\\u0002?ðèz?6NP?01q>øcK?\\u0010¯D>^’P?8\\\\\\\"6>À\\u0002H?H7H>\\u0004œ\\u0003?ßÝt?þP?\\u001cÊY>½}Æ>Ÿ…F?>ÐÑ>\\u000b\\u000eF?\\u0003®N?¸ã\\\\\\\">ª0G?pO:=o’I?0×\\u0001=p¤M?lC‰> >t?à\\rŒ=êú(?ø\\b\\u000e>®a>?|è/>»1+?x¿\\u0014>Y\\u0002C?Ä\\n&>Õ(H?´<T>¿G®=dõw?¿Á>–ÛJ?ŽnR?øc1>\\\\\\\"Ò¸={Å~?V=\\b? wo?ôsT?\\u0010'G>\\u00041D?\\u0000u>>¿²Ù>µÈD?¡L0?D\\u001cC>eèJ?\\u0018\\u0017\\u001d>?áJ?°¼1><DL?Ø-`>Þñ=?øÃ?>˜•Ì>Ë¬J?6üL?`.|>A©w?\\u0018r«=l¼±=\\tì{?,ÁS?´F<>‘ñP?{Lp?$O?¯­g?ï ²>Ð‘­>\\u0006\\u0005N?FÁb?„OW?¥Ün?\\u0001¯I?¤>k?\\u001c€\\u0002? ôe=u€I?F¶o?ÈšN?Øyl?´d\\u0001?ð×\\u0004=TúM?<Nq?AùQ?ÄÒj?lCZ?öp?ìèZ?Ÿ‡t?ž‘§>\\u0018\\u0013>9”V?Ôpj?cïW?&…t?”m[?=\\u0006x?'l?¬,…>\\u0006j\\u001c>€ ½<`\\u0005y?\\u0011¾\\u000e?^º!>@1à<Z Ö>€–\\u0007<ð‘x?}µ\\n?T~?è\\u0016:?lËz=`ý½<~è.>\\u0000^“<°—Æ>\\u0002fa?H~v?˜À\\r?@‡Ø<ªbX?ðx\\u0007>\\u0010°\\f=\\u000f\\tÓ>€\\u0011ñ;ª\\u0019}?5Á\\f?\\\\\\\"Œ×>\\u0000ÿ‹<#”}?L/1> \\u001f~?,Ö7?èX^=\\u0000K¨<@ÛÇ>2¨b?\\u0013”‚=\\u00001G<L\\u0006O>Ïåt?cOv?`\\u0010\\u000b?Ž9]?ègs>Þ\\u001ex?KñE?\\u000f\\fy?\\u0018sZ>°ì×<`÷V?\\u001e}ô=à\\n´<X\\u0004\\u001d?ƒõ\\r?ï\\u0016\\u0003>\\u0000¢½;¶\\b¤>`œ®=_'\\u001c?‚l\\b?Ò¯\\t>@+•<°¦*>€cÜ;\\\\Sµ> U~=@öÃ>–<_?ì\\u0017\\u0012?>\\u0015p?†Ü\\u0018?ö¡\\u001f??Ýw?¬–&>kÙ\\u0017?K¿\\u0018?ãÊ™<hœW?dô\\u001a?D\\u0014?'@\\u0006?&@'?²C\\u000b?Ø„\\u001c?ò\\b\\u0012?EÁ\\u0006?.\\u0019Ý>ÖÎŠ>T¼\\u001c?~º$?IWv?$ö$>x\\u001b\\r?7D\\u000b?76ã>8Ù~>\\u000f…\\u0018?¦A*?€%\\u0016?Êö#?²\\u001ec<è<Y?\\u0015|Í>€\\b3<ùÖ\\u001e?†¬\\u0018?‹\\u0001\\n?©C\\\\\\\"?Bg\\u000f?X#%?>Á˜>°§«=˜Õ\\u0015?È‘\\u0002?Jón<ÈŽ\\u0018>.†>x\\\\\\\"‘=;|\\u0012?b‡ý>Éåó>Ð=‘>„L\\n?\\u0017,?2s\\u0015?:n\\r?Zê\\t?œû\\u0010?ˆ”\\u000f?ÐÑ\\u0012?¢Ÿ\\u000b?Dã\\u0018?dÏ\\u0001?h ?k8M?á7?ÄYì>Ààˆ>TO\\u0012? b+?…—\\u0012?º\\u0013\\u001c?›`\\u0000?å*/?\\f[\\u0003?øø“>$¯\\u0005?\\u0017Î.?F\\rË>\\u0000«Ä<?Ä\\u001e?f\\u0018\\u001f? Çv?\\u0000·1>\\u0002G~?Ð3)>°gê<ðˆé=I\\u0001\\u0015?\\u0002•8?¨Í$=¨|\\u0012>JÂS=r(\\u0018?ôYy=Zì\\u001b?„ú|=˜Mê=¿h=ÖZ!?\\u0010¾Î>¦G\\u0005?\\u0018æú<pd\\u0005>“Ì7=À\\u0003ü=1t\\u000e=ÀãÍ=W1¼>„8\\u0002?¾Þ\\u0014?NO4?1ž,=\\u00105Ý=’ÂÂ>ý‹\\u0003?XL<œá&>òt“> <‰=\\u0013À ?\\u00153m?C??\\b™\\u0000>\\u001f•3?Œ]\\u0016>O\\u0002ä>\\u0016éH?j9?ˆ»&>uHá> \\u001fH?¯ú5?p‰->î\\u0004C? ý=?M:?$œ\\r>8†8?˜Ã\\u001a>X\\u0018A?@ø\\n>p\\u0019=?Ü[\\r>äÝì>ŽæJ?v¬??€.\\u001a>&Û>?a\\u0010\\u0002?û¡F?pAù=Döò>~ I?VxC?h¼\\u0014>¯¨,>ÌÇ9?®÷C?ÈÒÛ=h>:?ü\\u0003\\u0000>®¶2? 3\\u0000>óòß>2\\\\\\\"G?B3?¼;1>“~û>XëG?T%G?8j\\u000b>äº4?`…\\u0006>Ž`é>µ¬J?S‰;?0\\u0007\\u0019>*/7?p£\\n>>¥2?à‘Ï=52j?îG8?h¦.?0¬\\u0016>\\u0015\\u0010D?lš\\u001a>\\\\Ž.?À\\u0002,><mF?„•\\u001f>º¡,? Iß=ßSl?V1@?Z{š>\\u0000¡Œ=Tœ›>P>V=xŒ\\u001c?æÍn?>üÁ>h\\u000e[?Z.\\u0012?·ur?v?§>@Cm=î¾\\u0016?`Þm?Ýx\\u0018>Àñ\\u0000<2o±>À\\u001fœ=•™\\u001e?Éäq?¥±ø=M<z?•\\u001e\\u001f?¶üw?:>\\u0015?š\\\\r?ZÓ/=Ð·À=\\u0018%\\u0005>hJ}?Ä\\u0010?Î¯s?‡\\u001a#?«6v?¦ç¹<øÿ\\u0017?X\\u001bÁ< ¬¸=ÂÆ\\u0001=ð’#>Pî%?q±o?­?H<<=\\\\\\\"?Â ù<Àˆl=À/¥<[ÿ\\u001d?¾Z®<†ý\\u001c?Š‹È<°ë‹=`y‰<`k\\u001f=…šã<4Ú\\\\\\\"?PÛã>9R\\u000b?ß}(=@\\u00119=Ú\\\\\\\"‚>Ð\\u000b=Ñ\\u0012\\u0010?‘\\u0001z?ûÂ#?€)Ê<Þ£>= &“=žo\\u0013?´’w?ª\\u0004\\u001d=0ù\\u001a? ,N=/¸!?4¿Ö>.Ö\\t?±…õ>²õ$?’ØW?¬Íö>ÜîR?8Iø>\\u0011O?ÌÙ\\u0003?áùR?Ž\\u0001\\u0007?Ñ3L?^V\\u000f?ÀaJ?^4\\f?JïN?¢A\\t?î\\u001eI?A\\u0002\\u0006?vé>P˜n=³ï[?Ä[\\f?Ùá\\u0000?©ÝE?ªÙA?\\u0004²\\u0003?ðÉI?(Gÿ=Q\\u0011P?xC\\u000f?ñ¡K?Dê\\u0002?\\u0003.\\u0006?³OI?*èD?•/\\t?]JP?Ü\\u0010\\u0013?\\u0002V?u€\\u0005?ÄA·>õ<?ø6N?’êù>»|J?øXü>ÄgP?&ª\\u0001?ƒ5ü>#@ ?ØêY?ï¢\\u0003?¸wU?êŽ\\n?jq\\r?'\\u001a[?ãAK?¼É\\u0016?ã\\u001a\\u0010?¾[?æãA?8v.?¿ÖM?È_\\u0016?D1\\u000b?ˆ¶Q?êóF?Ïs\\u0011?\\u0019°\\u000b?HLW?ÈyJ?¯z\\u0014?è\\b?1`L?VïE?‡Y\\f?µ-\\u0002?î¼G?êËA?|„\\u0007?Áì\\t?à\\u0012V?=\\\\\\\"F?-Ç\\u0014?bÊT?J\\\\\\\"\\u0000?;êE?ò­\\u0004? Õð>`GW=J ý>´1\\u001d?rå\\\\?²é\\u0006?³çâ>úÃX?v\\u000f\\u0001?EªQ?!\\u000f\\u0005?w`O?¢ûÎ>÷rL?\\u001cìî>¸^Z?³ßì>TŸL?EÎ>?Ø×\\u001f>ðyõ>ê L?%½\\u0001?C·M?Œ;Ç>è\\\\X?ar\\t?jÜY?\\u0000×H?¬Ø\\u0016?xž\\u0001?\\u0012VY?\\u001d\\u00033>\\u0012Dy?î˜Ü>’¥_?UzÒ>Ü¾Y?rËé>è@R?0;\\u0000?úP\\\\?à\\u0003Ï>ø…U?ÚŠÅ>Ê\\u0017\\\\?&ƒù>.ßN?ÃGÇ=ƒ{s?ííÃ>þ¶R?o­\\u0014?Éów?Þð\\u0005?2sY?°òÛ>’žV?ðíã>\\u0017¶R?tiþ>Â\\u0013W?¹dÙ>cÎI?oÊú>T†R?SùÞ>ç\\u001cL? ëõ>G/X?©\\u0005\\u0006?×~T?ðŒæ>ësL?æ+<?$Ç(>B#Ñ>®DQ?\\u0000\\\\Ö>ïÌQ?B‰ä>\\u000f˜]?Q;\\u0005?\\u0000B}?NåP?˜~|>Õnw?Ð·Ò=bÌ\\u0018?à¦=\\bKq?8î¹=ÎWt? èº=oÔ\\u0018?`§´<&§#?00£=‚Ýt?ð<ý=|í\\u001c?À]¢=™[s? Àã=\\u001a/\\n?}Ÿ|?~Öx?üÀ\\u0002>€r\\u0013?èž=zÿC?€[L=ªçp?X‹¢=mGF?€\\tü<”JÕ=\\u0007Úv?´wÚ=Cò}?‘Ú\\f?Ú«m?£™ê=\\u00163u?-<\\u001a? Þw?üŒ@?ÀMÞ<é”\\u0013? ˆÍ=B6>?À\\u0003<=Ê¿i?\\bÇÌ>Ðux>\\u0000“Í;…ä\\r?Ýæz?àÝ\\u001d?àlÏ<räw?LÑ\\u0019>FSx>€“\\b=…É#?`ø\\b=£ä\\r?B´w?LÝ\\u001f?\\u0000\\u0018<<i\\u001e\\f?àTx?¸\\u000e\\u001e?€0 <&PÖ>æÇ‹>¼Ðs?è‡(>Õ^¤<Dj‡>˜Ë`?\\u0016(‰>vui?šWv?ƒ²s?tth>6Q>Pð‚=zþo?\\u0018ª6>»‡ç<v¨›>§Òd>`(…=a}n?¬@F> ,Ð<8\\u0013•>¬\\u0000q?¼&L>Ô^C>€ì=K|j?ÐÀ)>­\\u0004^?°A…>NÁu?<âU>Òïs?D‚<>Ù»×>PNw>céÒ>´eB>~ê =h—Š>P8ô>ì(\\u001a>tNp?#Ÿi?(^Ã>0)z>`hË>øtd>ä”„>\\u00107¡=/éË>´r#>jzÑ>(\\u000f\\\\\\\">þpÊ>XÀL>Ëàá>˜ÿ=>ÚÞÜ>˜X2>«uà>”Ìd>¨Îö>´Î‚>\\\\\\\"yˆ=ÌŠ¡>8ÐÞ>T\\u0010#>zàô>Èrg>?Îý>˜\\u0017R>¾ˆò>\\u0018¼A>\\u0006sì>˜ÚN>äöY=.Kù>k­\\u0001?¼Ë‚>ÐÝé>xÂ)>züé>pþn>\\u00047Í>\\u0012v‚>NsÌ>tÿ/>J7e=°¡Â>èoú>d‚)>7Í§=´.>buò>°¸*>,${>(®¹=4Œ+=ºå›>ó\\u0003>\\u0000Äg=øôu>\\bÙ’=L‡X=Nb¡>\\u0015R„>@ÿk=AMÙ>XS\\u001e>NÅ-=è<~>Õn”=\\u001c¤ª>¼Ùh?Qîm?~¿c=X¾€>\\u0004\\u0018l?¥@m?!\\b„=ÜV›>Üfá>HÜ\\u001a>X\\u0007\\u0000=4Jƒ>öÉg?þ¡s?ŒËU=zc•>…­j=–Ø>¦^\\u0017=,õŒ>r)s?p\\u0000_>\\f\\bŒ=\\u0014²>\\u001c8ì>P÷\\u0019>l/\\b?åAw?õ\\u001e\\u0005?„fw?\\u0010É\\u0007?v\\u001c{?3f\\u0005?æMz?\\u001fÐ\\u0007?o!s?xŸ\\u000b?Ö£s?;Í^?ê|r?\\u000eôb?\\nÑt?ˆTc?ÿfo?Ùú]?õ\\u0017y?“Ác?k›x?\\tÀh?Š;†>MÀ`?€éu?ºªh?$\\b{>!ð\\u001e>\\\\\\\"\\u0007m?Tíh?$u?>ë‰e?”^T>sþi?P0j>/bV?î\\\\\\\"v?ç‰l?À®t>Öój?ä\\u0011[>k\\\\d?(Ìh>æïb?\\u0018¡z>ªï\\u001a=\\u0000öÿ<¹\\fw>€\\u0006G= ¢õ>tÅ\\u0007?Hù<ÖOy?3öO>°K,=Cm\\u0002?l(ÿ>nyx>€<š<–\\u001f!?à”\\u0002=\\u0012]`=\\u00047|?\\u001cc>@ô\\u0000<Ñ\\u001aq>€ Ê;úc\\u001d?@÷\\t=$N*? ˆ¹=\\u0018\\u001d<°\\u0013¡>_˜q>a~?€\\nd?$?R?Ô©\\u0006=>¢ >âXr>R!}?b6=æX©>\\u0011\\u001cu>Õcz?€%T=zEt?Ü—õ<3^n?Á\\t\\u000e?îäã>«±\\u0012=ŒK¾>ô1\\u0017=0'l?2\\u001a\\u0010?Ž®Û>­Aj?â°ñ>æý\\u0016=ž;t?-îE>€\\bR<”=\\f?îÀó>ˆŠ’=\\u0004jo?\\u00011i?ÀÀí>¨\\u001f†=»<y?ö2&?€–É=V@¡=±cs?Š¥#?\\u00185ë=-4n?`à>CŽ<{=u?Ö‰\\u0006?êýî>çì÷;šh²>8K\\u0014?>:Ä>ü%k?lÒW?~iO<ª*ª>ó<j?›\\u0000T?ò3\\r=¤©³>a»h?àÉõ>Mq\\u001f=ºz¬>\\u000eMg? ¹ö>øh½<0Z¾>\\u0016‰\\u0011?œ\\u000eÑ>–§è<~é¦>¾P[=¤©­>Œ­v>}^x?n«e?\\u0018÷ð>`@j?”^Û>7V\\u001f?¸¢ú=\\\\\\\"Sl?l±à>Èxo>šCw?KVf?ÀÝì>3\\u0012h?\\u001c7é>Àòh?8ká>D–\\u0017?\\u0000òê==4i?lœÑ><Šî>\\u0010¦õ=Ñãô>Ð¿«=L²Ê>\\u0002Q7?Þˆí>¨¾\\u0014>ò&×>¼”/?ŸÏ\\u0000?˜Ù\\r>,!º>ìe¯>\\u0013xà>tZ/?Íä\\u0004?¤Q\\u0011>\\u0014âÂ>ªš¤>s\\\\\\\"\\u0005?\\u0000Dý=ˆ„æ>@\\u001cÛ=\\bäÏ>.u >‚º\\u0007? ”è=\\u0002#\\u0000?ÀSä=´ªï>´‰\\u0013?@J\\u0003?€\\n·=Ž<ò>Ð\\u0010’=€$\\u0000?dR\\u0018?jÔò>\\u0010hÙ=\\u0010ãö>q;\\u0017?\\f<ü>\\bXŠ=\\u0010\\u001fØ>¾²Ÿ>)3\\n?°ÑÉ=äîÞ>œÝ’>Ù4æ>Tr\\u0015?4h\\t?p\\u0004›=\\u001eÏé>\\u000bû\\u0015?æ:\\u0006?`á“=D \\u0018?\\u0000(Æ=îp\\u001c?°åã=Zöl?*FÒ>hàm?ºG×>®w!?à¤­=Ø—p?˜´\\u0002>2?\\u001a?\\u0010Å\\u0005=™\\u001b(?0JÁ=Zêé>nC=?ÍkÃ>L¤÷>r¥\\u0010?#3?|\\u000e?ªn8?\\u0006\\u0019\\u0004?ÍÏ7?Dn×>0%5?ƒÇù>\\u0014«\\u0015>‡°Ú>PÖ9?jGÞ>l·>?ÖS\\b?^Î9?¯\\u0016ú>h6<?Jy\\u0001?Â\\u001d@?Ø¹¡=\\u0012ŸB?Æ\\\\\\f?úùA?\\u0018x4?h¯A?\\u001a—¼>0_¼>MÎ½>\\u0010ÓÆ>6&ì>{30?4®Ã>\\u0006YÙ>¬•\\u0002?\\u001853?¦\\u0016ð>ó…9?9tû>ˆ8?z \\u0001?,ª:?ÿ\\u000få>ê)9?e«Ã>L\\u0000Ñ>„\\u000bü>ú\\r1?Í Ó>LÚ7?L\\tì>–¹5?ø?à>ÔÕ3?qü¶>H\\u001a)?£\\u001dÂ>hy&?ŽôÀ>ñç\\u001b??…Æ>Ï\\u0013\\u0014?\\u001es>\\u001cˆf?:| >‚æ\\t?pø“>8@:?öWÖ>\\f‡+?2c¼>\\u0007\\u0000\\u000b?ËÆ¼>.Ñ+?\\u0012Fß>×%%?\\u0010ÖÜ>˜w\\\\\\\"?“\\u000fÏ>\\u001aµ$?\\taÒ>,d(?\\u0016­æ>Ö\\u0007!?{SÄ>\\nÜ\\u001f?\\u0000¹ã>L-\\u001d?H¿ƒ>J›;?*tÇ>ò7,?lí·>šz!?€á×>æØ\\u0016?è\\u0004Î>²Ä\\u0017?JZÔ>å,\\u0014?©)í>†}—>5ƒÝ>Qu\\u001c?mÝ>2\\u001c\\u0018?Vð>\\u001c?#?˜ÎZ?4Ö÷>\\u0000¯»>\\u0018<\\u0018?\\u0017tÀ>×õ\\u000f?Æ\\t¬>œ@\\u0016?¥cª>Ú\\f\\t?›ü´>xy\\u0010?­\\u001d˜>–j(?2w²>OI\\u001d?`Íš>'\\u001b\\u001e?\\u0006O©>ô6\\u001a?P¾¹> -\\u0014?Ð{ª>šÆ ?ÅîÄ>\\u0010Ù\\\\\\\"?Q&©>s®+?ºT>\\u0003ó#?ˆî\\u0004?¤Æp?•Úí>ú^\\u001b?€6ô>Æj\\u001f?yJ]?ù\\u0006\\u0001?¬ó—>¦h&?X\\u0015¤>0¼&?°àq=§åb?nH‰>\\u001fÚ+?uÒÒ>jY\\u001f?¾\\u0017Ó>ðm\\u001b?\\u0011Âo>\\u0010‰k?•³¢>Ní\\u000e?H\\f›>Þ:-?¾è»>ø\\u0019$?w\\u001f.>ž´p?šõ>®½\\u001e?|R\\u0007?´-m?ºÁ¬>žh#?d\\u000f±>Ì\\u0012'?X ¬>9Õ\\u0011??\\u001d¶>\\u0000>\\u0006?&\\b³>êŒ\\u0002?\\u0014Q\\u0011?<¡>ˆVo?‡pf?\\u0017p8>`çn?m\\u001a>Æ#\\u001b?”$F>R\\u0007o?m†•>fR\\u0018?\\u0017\\u0005]>vKn?jñž>ÛY\\u0016?\\u0006—˜>LK\\\\\\\"?\\\\\\\"øš>QM$?!à£>R§.?æýÝ>Kª\\u0014?\\\\Íå>\\u001c&’>R6Æ>¥´\\n?w@Ê>\\u001ck\\r?_ò\\u0000?\\\\\\u0012Ÿ>¸¨Ê>ÁÑ\\u0010?Ü¥ø>’Àœ>¯˜‚>Štb?\\u000bâ¥>_ô\\u0005?†Ëk?ÿgg?f! >a\\n\\u001b?š\\u001b¶>À}7=ò„è>Å5e?rà‡> ­9=?´³>`n4=\\u0013\\u0000á>ÿ8e?Š¬z?0³\\u0004>Ô\\u00100>àåd?lNµ>\\u0000ú ;°l\\u0005?Ô±`?ð'·>\\u0000¥–<HÞù>\\u00038`?ŽâÏ<,Pd?}øì>¼\\u0002p?¶===\\f-`?&íˆ>Öá'?ý—\\u0001?7Qr?1g>=‚\\u0017e?~…Í<Ôª`?¡¸ó>ë¼p?Ÿ`ç>ÞÒ\\u0004?ê³ï>à\\u000e¤>|÷ú>RÊÓ>{@ô>h'Ì>øH\\u0004?\\u0014ƒÆ>9¬È>8G®>ÒX\\u000b?Œ@È>®äç>Àý¿>Žˆ\\u0001?\\u0018Ææ>|\\u0017\\u000b?*Ñ·>âr\\u0005?´k»>ì§Ô>¸k¾>g¹ò>\\bj¼>0ëÂ>ô¿â>§Œ\\u0007?Ü.4?mÜ>T\\u0017Á>kTó>ÂîÜ>@ªØ>`³¦>JSâ>Pþ±>6ì\\u0001?´\\u0005Ô>\\u0018~Á>ŠL¼>FVØ>Daç>$\\t\\u000f?x­>ô\\u0016n?=Ÿ`?ÆKV>PÍf=\\u001aaú>´;ø>–Üç>Te©>Ïèç>¨]ž>°\\tÇ>|¦í>X™\\f?\\u00103?¨\\u0016Ø>€\\u0015ù>Íÿ×>$æÿ>D¥ú>0€§>n(\\u0007?¤\\\\\\\"Ø>=m\\u0007?22á>F®\\u000e?ˆI¾>÷™õ>Ä¶í>eJÊ>d„Ù>ZkÍ>Z§\\u0012?\\u0001°ò>úN›>”4Ê>ªŸÅ>¾©ï>öµ²>¼[Ð>\\\\\\\"\\u001aÞ>Zæä>”Û÷>zÅÐ>\\u0010mê>ª•\\u0001?x\\r±>ˆ/Ð>\\u000e4Ò>·+è>\\\\eã>•®ý>\\u0006L½>Üsî>Fç>MÔ>È’Å>”Wà>äÞâ>BÀÐ>j[¶>WçÒ>fU\\u0001?@:á>R¥ð>&lÊ>\\u0010Ëù>Þ(\\u0007?(È¦>>¦Ù>fÈî>\\\\\\\"[ç>\\u0012S×>ãØß>Ž\\u001fÊ>ñ\\nÚ>\\u001f¥\\u0005?\\u0012è×>8ïÖ>~Áë>Ê]Ë>äÉñ><?ú>ÕjÝ>¬ÄÕ>’F½>\\u0006ô\\u0004?;ü\\u000b? Œž>Ä#%>ã\\u0004l?hV\\u0005?[(h?\\u001a=\\u0010=Þ\\u0016^?\\u001fHú>0?n?ŠÚò>5Gk?gðƒ>@§þ<ü\\u0007å>\\u0000Íi?\\\\\\\";ï>\\u001eèf?bÈ\\u0000?ü·j?®Ò(>vÑg?z™\\u0002?âre?_]ý>…_f?ê:\\\\?)¶b?Ú[`>\\u0012í^?èŠd?Ìra?ß]Q>\\u0010ôY?¸\\u0002^?Ÿýe?#ee?%šX?jÅg?¸\\u000fV?ä–\\u0014?–ë¼>Èúi?™_?\\u0013©]?â¹U?\\nÚb?ŠY[?è\\u0006^?t¡b?Ï72>¢.k?ýŠ%=r†é>å£E>Re]?î\\u0013–>øîÒ=\\u0010äV?…—g?‡•X>Šýi?ÕGR>+!f?WRB>:Hj?\\u000b\\u0000E\\u0000\\u0007\\u0000\\u0004\\u0000*\\n\\u000b\\u0000\\u0007\\u0000\\u0004\\u0000\\u000b\\u0000\\u000e\\u0000%\\u0000\\u000f\\u0000\\u0015\\u0000\\u001c\\u0000\\\\\\\"\\u0000%\\u0000(\\u0000\\u000f\\u0000\\u000e\\u0000\\u000f\\u0000\\u0010\\u0000\\u0018\\u0000\\u000e\\u0000\\u0010\\u0000\\u0018\\u0000\\u0010\\u0000\\u0011\\u0000\\u000e\\u0000&\\u0000%\\u0000\\u000f\\u0000\\f\\u0000\\u0010\\u0000\\\\\\\"\\u0000\\u0017\\u0000\\u0015\\u0000\\u001e\\u0000\\u0018\\u0000\\u0011\\u0000/\\u0000\\u0013\\u0000.\\u0000\\u0010\\u0000\\f\\u0000,\\n \\u0000\\f\\u0000\\u000f\\u0000\\u0011\\u0000\\u0010\\u0000,\\n.\\u0000\\u0017\\u0000\\\\\\\"\\u0000(\\u0000 \\u0000\\u000f\\u0000\\u0019\\u0000\\u0014\\u0000&\\u0000\\u000e\\u0000\\u0018\\u0000&\\u0000\\u0013\\u0000/\\u0000\\u0014\\u0000&\\u0000\\u0018\\u0000\\u001e\\u0000%\\u0000&\\u00000\\u0000\\u0013\\u0000\\u0019\\u0000\\u0017\\u00000\\u0000.\\u00002\\u0000\\u0019\\u0000&\\u0000\\u001e\\u0000\\u001e\\u0000\\u0017\\u0000\\u0019\\u0000.\\u0000\\\\\\\"\\u00002\\u0000\\u0014\\u0000\\u0019\\u0000\\u0013\\u0000\\u001e\\u0000\\u0015\\u0000\\u0017\\u0000\\u0014\\u0000/\\u0000.\\u00000\\u0000\\u0014\\u0000.\\u0000\\u0011\\u0000\\u0015\\u0000\\u001e\\u0000\\u0013\\u0000\\u0017\\u0000.\\u0000*\\u0000\\\\\\\"\\u0000\\u001a\\u0000\\u0014\\u00000\\u0000&\\u0000#\\u00007\\u00003\\u00008\\u0000$\\u0000-\\u0000>\\u0000D\\u0000;\\u0000@\\u00001\\u00005\\u0000<\\u00001\\u0000@\\u0000)\\u0000J\\u0000N\\u0000!\\u0000P\\u0000F\\u0000\\r\\u0000!\\u0000F\\u0000N\\u0000J\\u0000S\\u0000O\\u0000\\u001f\\u0000M\\u0000O\\u0000M\\u0000R\\u0000\\u001f\\u0000'\\u0000M\\u0000T\\u0000G\\u0000Q\\u0000V\\u0000?\\u00004\\u0000e\\u0000\\\\\\u0000Y\\u0000h\\u0000k\\u0000c\\u0000`\\u0000Y\\u0000\\\\\\u0000Y\\u0000`\\u0000c\\u0000Y\\u0000c\\u0000k\\u0000ƒ\\u0000\\u0000u\\u0000\\u0000]\\u0000[\\u0000o\\u0000w\\u0000ˆ\\u0000ˆ\\u0000\\u0000q\\u0000z\\u0000Œ\\u0000Š\\u0000w\\u0000Œ\\u0000ˆ\\u0000‰\\u0000…\\u0000‡\\u0000z\\u0000\\u0000ƒ\\u0000~\\u0000ƒ\\u0000\\u0000ƒ\\u0000~\\u0000z\\u0000Š\\u0000Œ\\u0000w\\u0000~\\u0000…\\u0000Œ\\u0000Œ\\u0000…\\u0000‰\\u0000q\\u0000\\u0000Q\\u0001n\\u0000‡\\u0000\\u0000‰\\u0000\\u0000ˆ\\u0000Œ\\u0000z\\u0000~\\u0000n\\u0000\\u0000‰\\u0000Q\\u0001\\u0000n\\u0000‡\\u0000n\\u0000‰\\u0000ˆ\\u0000q\\u0000o\\u0000~\\u0000\\u0000…\\u0000Œ\\u0000‰\\u0000ˆ\\u0000‘\\u0000\\u0000ƒ\\u0000‡\\u0000…\\u0000\\u0000[\\u0000u\\u0000\\u0000u\\u0000[\\u0000d\\u0000Š\\u0000\\u0000z\\u0000]\\u0000\\u0000Š\\u0000U\\u0000–\\u0000I\\u0000I\\u0000–\\u0000\\u0003\\u0000\\u0003\\u0000–\\u0000Ø\\u0000–\\u0000U\\u0000L\\u0000¤\\u0000—\\u0000Ä\\u00001\\u0003\\u0000­\\u0000·\\u0000®\\u0000Á\\u0000¾\\u0000­\\u0000¡\\u0000®\\u0000À\\u0000˜\\u0000²\\u0000·\\u0000¤\\u0000²\\u0000°\\u0000®\\u0000˜\\u0000£\\u0000§\\u0000¸\\u0000¼\\u0000µ\\u0000Ä\\u0000›\\u0000™\\u0000Ã\\u0000›\\u0000Ä\\u0000·\\u0000²\\u0000®\\u0000²\\u0000¤\\u0000¯\\u0000§\\u0000º\\u0000’\\u0000º\\u0000\\u0000’\\u0000¡\\u0000À\\u0000¶\\u0000£\\u0000˜\\u0000À\\u0000±\\u0000°\\u0000²\\u0000Ä\\u0000™\\u0000¤\\u0000¿\\u0000®\\u0000Ç\\u0000®\\u0000¿\\u0000À\\u0000°\\u0000Ç\\u0000®\\u0000À\\u0000Æ\\u0000³\\u0000À\\u0000¡\\u0000£\\u0000¶\\u0000³\\u0000¸\\u0000+\\u00031\\u0003­\\u0000À\\u0000¿\\u0000Æ\\u0000µ\\u0000¾\\u0000¶\\u0000¸\\u0000µ\\u0000¶\\u0000¿\\u0000Ç\\u0000Æ\\u0000¶\\u0000À\\u0000³\\u0000¾\\u0000¡\\u0000¶\\u0000’\\u0000«\\u0000—\\u0000Á\\u0000˜\\u0000—\\u0000’\\u0000˜\\u0000§\\u0000¯\\u0000±\\u0000²\\u0000Ÿ\\u0000­\\u0000\\u0000™\\u0000¯\\u0000¤\\u0000—\\u0000˜\\u0000’\\u0000Ä\\u0000—\\u0000ª\\u0000®\\u0000˜\\u0000Á\\u0000ª\\u0000Ã\\u0000Ä\\u0000¤\\u0000·\\u0000Á\\u0000—\\u0000¤\\u0000Á\\u0000Ÿ\\u0000¡\\u0000­\\u0000„\\u0000«\\u0000’\\u0000Ê\\u0000å\\u0000l\\u0000Z\\u0000l\\u0000f\\u0000é\\u0000Ê\\u0000Ì\\u0000f\\u0000l\\u0000å\\u0000v\\u0000f\\u0000å\\u0000l\\u0000Ì\\u0000Ê\\u0000l\\u0000j\\u0000Ì\\u0000Ö\\u0000Î\\u0000Í\\u0000Ú\\u0000a\\u0000_\\u0000Ý\\u0000Ö\\u0000Ú\\u0000Ð\\u0000Î\\u0000Ý\\u0000a\\u0000Ú\\u0000Ö\\u0000Ö\\u0000Í\\u0000a\\u0000Î\\u0000×\\u0000Í\\u0000Í\\u0000“\\u0000a\\u0000×\\u0000“\\u0000Í\\u0000Ý\\u0000Î\\u0000Ö\\u0000\\u0000\\u0000×\\u0000Ô\\u0000×\\u0000Î\\u0000Ð\\u0000Ô\\u0000×\\u0000Ð\\u0000à\\u0000É\\u0000ý\\u0000æ\\u0000‚\\u0000ä\\u0000‚\\u0000æ\\u0000©\\u0000©\\u0000æ\\u0000ä\\u0000à\\u0000ä\\u0000É\\u0000ä\\u0000‚\\u0000t\\u0000ã\\u0000©\\u0000ä\\u0000ä\\u0000à\\u0000ã\\u0000È\\u0000ê\\u0000\\u0000\\u0001È\\u0000è\\u0000ê\\u0000|\\u0000p\\u0000r\\u0000y\\u0000p\\u0000õ\\u0000p\\u0000ò\\u0000ñ\\u0000ï\\u0000ñ\\u0000÷\\u0000\\r\\u0001ò\\u0000|\\u0000ñ\\u0000\\r\\u0001÷\\u0000|\\u0000ò\\u0000p\\u0000ñ\\u0000ò\\u0000\\r\\u0001ñ\\u0000õ\\u0000p\\u0000ù\\u0000â\\u0000ú\\u0000ß\\u0000ç\\u0000â\\u0000Þ\\u0000û\\u0000ç\\u0000¨\\u0000â\\u0000Â\\u0000ú\\u0000â\\u0000ç\\u0000š\\u0000Â\\u0000ù\\u0000â\\u0000ù\\u0000Â\\u0000ÿ\\u0000á\\u0000þ\\u0000\\u0001\\u0001ë\\u0000\\u0003\\u0001ÿ\\u0000ü\\u0000á\\u0000\\u0003\\u0001þ\\u0000\\u0001\\u0001\\u0001\\u0001þ\\u0000Ë\\u0000ÿ\\u0000þ\\u0000\\u0004\\u0001\\u0002\\u0001þ\\u0000\\u0003\\u0001þ\\u0000\\u0002\\u0001\\u0004\\u0001‹\\u0000ô\\u0000Ü\\u0000‹\\u0000x\\u0000ô\\u0000Ü\\u0000Ù\\u0000‹\\u0000Ù\\u0000^\\u0000‹\\u0000Õ\\u0000\\b\\u0001\\u0001\\u0000R\\u0001}\\u0000s\\u0000\\f\\u0001\\u000e\\u0001}\\u0000ø\\u0000\\u000e\\u0001\\f\\u0001g\\u0001w\\u0001\\f\\u0001K\\u0000i\\u0000•\\u0000”\\u0000g\\u0000b\\u0000Ï\\u0000\\u000f\\u0001\\u0012\\u0001\\u000f\\u0001Û\\u0000ó\\u0000\\u0010\\u0001\\u000f\\u0001ó\\u0000\\u0010\\u0001ó\\u0000ð\\u0000\\u000f\\u0001Ï\\u0000Û\\u0000í\\u0000\\u0012\\u0001\\u0010\\u0001\\u0012\\u0001\\u000f\\u0001\\u0010\\u0001í\\u0000\\u0010\\u0001ð\\u0000\\u0012\\u0001Ó\\u0000Ï\\u0000,\\u0001\\u001b\\u00018\\u0001.\\u0001&\\u0001\\u001d\\u0001\\u0017\\u0001\\u0015\\u0001\\u001e\\u0001¢\\u0000.\\u0001N\\u0001&\\u0001*\\u0001\\u001d\\u0001ž\\u00009\\u0001&\\u0001\\u0017\\u0001\\u0018\\u0001\\u0015\\u0001P\\u0001>\\u0001{\\u0000*\\u00014\\u0001J\\u0001¢\\u0000 \\u0000.\\u0001P\\u0001L\\u0001>\\u0001N\\u0001.\\u0001K\\u0001\\u0013\\u0001X\\u0001\\u0014\\u0001j\\u0001`\\u0001!\\u0001M\\u0001L\\u0001P\\u0001*\\u0001;\\u00014\\u0001P\\u0001€\\u0000M\\u0001¦\\u0000¢\\u0000\\u001a\\u0001ž\\u0000&\\u0001 \\u0000$\\u0001O\\u0001[\\u00018\\u0001M\\u0001o\\u0001\\u0016\\u0001X\\u0001]\\u0001]\\u0001o\\u0001M\\u0001V\\u00012\\u0001l\\u0001]\\u0001 \\u0001\\\\\\u0001 \\u0000&\\u0001.\\u0001*\\u0001&\\u00019\\u0001\\u001d\\u0001(\\u00015\\u0001,\\u00018\\u0001o\\u0001G\\u0001v\\t!\\u0001\\u001f\\u00011\\u0001\\u001e\\u0001A\\u0001!\\bV\\u0001 \\u0001a\\u0001\\u0019\\u0001\\u0016\\u0001]\\u0001M\\u0001\\n\\u0001/\\u0001e\\u0001a\\u0001 \\u0001\\u001a\\u0001/\\u0001\\n\\u0001?\\u0001o\\u0001U\\u0001%\\u0001\\u0013\\u0001\\u0014\\u0001 \\u0001)\\u0001G\\u0001`\\u0001N\\u0001K\\u0001\\u001a\\u00019\\u0001ž\\u0000œ\\u0000M\\u0001€\\u0000\\u0016\\u0001V\\u0001_\\u0001A\\u0001i\\u0001(\\u0001J\\u0001¹\\u0000\\u0014\\u0001X\\u0001\\u001c\\u0001i\\u0001[\\u0001a\\u0001\\u001a\\u0001=\\u0001=\\u0001K\\u0001.\\u0001G\\u0001)\\u0001Y\\u0001\\u0013\\u0001]\\u0001X\\u0001]\\u0001\\u0013\\u0001 \\u0001G\\u0001Y\\u00016\\u0001\\u0016\\u0001¹\\u0000X\\u0001€\\u0000P\\u0001m\\u0000+\\u0001a\\u0001=\\u0001*\\u0001J\\u0001\\u001d\\u0001_\\u0001l\\u0001\\u001e\\u0001l\\u0001\\u0017\\u0001\\u001e\\u0001Y\\u0001l\\u00012\\u00019\\u0001;\\u0001*\\u0001i\\u0001J\\u00014\\u0001†\\u0000\\u0016\\u0001€\\u0000o\\u0001%\\u0001,\\u00019\\u0001œ\\u0000;\\u0001D\\u0001m\\u00016\\u00011\\u0001\\u001f\\u0001(\\u0001Ž\\u0000¹\\u0000†\\u0000N\\u0001\\u001a\\u0001¢\\u0000=\\u0001-\\u00015\\u0001(\\u0001\\u001c\\u00011\\u0001_\\u0001\\u001e\\u0001$\\u0001\\u0014\\u0001¹\\u0000¥\\u0000 \\u0001\\u0014\\u0001\\u001a\\u0001j\\u0001/\\u0001?\\u0001'\\u0001`\\u0001?\\u0001`\\u0001j\\u0001?\\u00011\\u0001O\\u0001\\u001e\\u0001I\\u0001'\\u0001?\\u0001_\\u0001V\\u0001l\\u0001>\\u0001?\\u0001\\n\\u0001b\\u0001\\u001f\\u0001\\u0015\\u0001b\\u0001=\\u00015\\u0001b\\u0001+\\u0001=\\u00012\\u0001D\\u00016\\u00012\\u0001V\\u0001D\\u00015\\u0001\\u001f\\u0001b\\u0001\\u0018\\u0001b\\u0001\\u0015\\u0001\\u0019\\u0001U\\u0001o\\u0001 \\u0001\\u0019\\u0001\\\\\\u0001(\\u0001\\u001d\\u0001J\\u0001.\\u0001\\u001d\\u0001-\\u0001\\u0017\\u0001Y\\u0001\\u0018\\u0001o\\u0001]\\u0001\\\\\\u0001\\u001b\\u0001L\\u0001M\\u0001\\u0019\\u0001o\\u0001\\\\\\u0001Y\\u0001)\\u0001\\u0018\\u0001M\\u00018\\u0001\\u001b\\u0001'\\u0001,\\u0001%\\u0001)\\u0001`\\u0001'\\u0001b\\u0001U\\u0001\\u0019\\u0001b\\u0001\\u0019\\u0001+\\u0001)\\u0001%\\u0001\\u0018\\u0001Y\\u0001\\u0017\\u0001l\\u0001b\\u0001\\u0018\\u0001U\\u0001U\\u0001\\u0018\\u0001%\\u0001%\\u0001)\\u0001'\\u0001,\\u0001I\\u0001\\u001b\\u0001'\\u0001I\\u0001,\\u00012\\u00016\\u0001Y\\u0001G\\u00016\\u0001c\\u0001_\\u0001$\\u0001T\\u0001=\\u0001.\\u0001-\\u0001i\\u0001\\u001c\\u0001(\\u0001L\\u0001I\\u0001>\\u0001\\n\\u0001{\\u0000>\\u0001\\u0019\\u0001a\\u0001+\\u0001\\u001a\\u0001K\\u0001=\\u0001>\\u0001I\\u0001?\\u0001†\\u0000¹\\u0000\\u0016\\u0001\\u001f\\u00015\\u0001(\\u00015\\u0001-\\u0001\\u001d\\u0001G\\u0001!\\u0001`\\u0001O\\u00011\\u0001\\u001c\\u0001\\u001b\\u0001I\\u0001L\\u0001;\\u0001œ\\u0000/\\u0003O\\u0001\\u001c\\u0001[\\u0001$\\u0001\\u001e\\u0001O\\u0001G\\u0001c\\u0001k\\t\\u001f\\u0001\\u001e\\u0001\\u0015\\u0001¦\\u0000\\u001a\\u0001\\u0014\\u0001Ò\\u0000r\\u0001\\u0005\\u0001ì\\u0000p\\u0001\\u0011\\u0001\\u0011\\u0001p\\u0001Ñ\\u0000p\\u0001ì\\u0000x\\u0001z\\u0001ö\\u0000v\\u0001\\u000b\\u0001v\\u0001ö\\u0000î\\u0000ö\\u0000z\\u0001|\\u0001{\\u0001‚\\u0001˜\\u0001\\u0001‚\\u0001²\\u0001’\\u0001€\\u0001”\\u0001–\\u0001\\u0001²\\u0001€\\u0001¡\\u0001›\\u0001}\\u0001˜\\u0001²\\u0001¡\\u0001“\\u0001‘\\u0001\\u0001}\\u0001£\\u0001™\\u0001¥\\u0001ƒ\\u0001\\u0001‘\\u0001©\\u0001\\u0014\\u0007¦\\u0001¦\\u0001§\\u0001¥\\u0001¦\\u0001¥\\u0001™\\u0001¥\\u0001§\\u0001£\\u0001¦\\u0001\\u0014\\u0007§\\u0001¬\\u0001©\\u0001¦\\u0001’\\u0001–\\u0001”\\u0001’\\u0001²\\u0001–\\u0001¦\\u0001Ÿ\\u0001±\\u0001‡\\u0001{\\u0001¯\\u0001³\\u0001¦\\u0001±\\u0001³\\u0001“\\u0001¦\\u0001¯\\u0001{\\u0001´\\u0001˜\\u0001‚\\u0001‹\\u0001\\u0001–\\u0001‘\\u0001I\\u0002¯\\u0001´\\u0001–\\u0001ƒ\\u0001‘\\u0001®\\u0001´\\u0001{\\u0001®\\u0001±\\u0001´\\u0001™\\u0001\\u0001Ÿ\\u0001±\\u0001Ÿ\\u0001´\\u0001™\\u0001Ÿ\\u0001¦\\u0001³\\u0001®\\u0001²\\u0001®\\u0001³\\u0001±\\u0001}\\u0001\\u0001˜\\u0001{\\u0001‡\\u0001‹\\u0001|\\u0001²\\u0001®\\u0001{\\u0001‹\\u0001‚\\u0001\\u0001‡\\u0001…\\u0001T\\t¶\\u0001Ž\\u0001‹\\u0001\\u0001˜\\u0001Ž\\u0001\\u0001‘\\u0001Ž\\u0001”\\u0001\\u0001™\\u0001o\\u0002\\u0001\\u0001ƒ\\u0001‚\\u0001|\\u0001‚\\u0001ƒ\\u0001{\\u0001|\\u0001®\\u0001’\\u0001”\\u0001€\\u0001™\\u0001£\\u0001o\\u0002|\\u0001ƒ\\u0001–\\u0001–\\u0001²\\u0001|\\u0001¬\\u0001“\\u0001¡\\u0001¸\\u0001‘\\u0001}\\u0001T\\t‘\\u0001¸\\u0001Ž\\u0001‘\\u0001T\\t¬\\u0001¦\\u0001“\\u0001\\u0001‹\\u0001‡\\u0001²\\u0001“\\u0001³\\u0001Ò\\u0001Ï\\u0001Á\\u0001Ï\\u0001¿\\u0001À\\u0001ä\\u0001É\\u0001ì\\u0001\\u0007\\u0002\\u0000\\u0002Ð\\u0001Ð\\u0001Ò\\u0001\\u0007\\u0002Ü\\u0001Ò\\u0001Ð\\u0001Ô\\u0001Õ\\u0001á\\u0001ø\\u0001Õ\\u0001Ô\\u0001É\\u0001ä\\u0001Á\\u0001Ó\\u0004Ô\\u0001Ù\\u0001Ó\\u0004ö\\u0001Ô\\u0001Ü\\u0001Û\\u0001Ý\\u0001Û\\u0001Ú\\u0001ß\\u0001ß\\u0001Ý\\u0001Û\\u0001Û\\u0001Ü\\u0001Ð\\u0001á\\u0001â\\u0001à\\u0001â\\u0001Ú\\u0001à\\u0001ó\\u0001î\\u0001\\u0006\\u0002È\\u0002ç\\u0001å\\u0001ß\\u0001è\\u0001Ý\\u0001þ\\u0001Ô\\u0001á\\u0001ñ\\u0001H\\u0004í\\u0001À\\u0001ñ\\u0001ì\\u0001ê\\u0001í\\u0001H\\u0004ó\\u0001ô\\u0001í\\u0001ì\\u0001í\\u0001ä\\u0001»\\u0001ñ\\u0001À\\u0001ñ\\u0001í\\u0001ì\\u0001ö\\u0001ø\\u0001Ô\\u0001\\t\\u0002Õ\\u0001¢\\u0004ø\\u0001¢\\u0004Õ\\u0001\\u0002\\u0002\\t\\u0002¢\\u0004Ã\\u0001Ò\\u0001Á\\u0001Ò\\u0001Ã\\u0001\\u0007\\u0002Ç\\u0001Ù\\u0001þ\\u0001Ô\\u0001þ\\u0001Ù\\u0001È\\u0001Ç\\u0001þ\\u0001È\\u0001î\\u0001Ë\\u0001É\\u0001À\\u0001ì\\u0001ã\\u0001Ã\\u0001ä\\u0001Ý\\u0001Ò\\u0001Ü\\u0001ù\\u0001ô\\u0001\\u0006\\u0002Å\\u0001ø\\u0001ö\\u0001þ\\u0001Ö\\u0001î\\u0001\\u0004\\u0002\\t\\u0002\\u0002\\u0002ÿ\\u0001Ð\\u0001\\u0000\\u0002Í\\u0001ù\\u0001\\u0006\\u0002á\\u0001à\\u0001þ\\u0001à\\u0001Í\\u0001Ö\\u0001Í\\u0001\\u0006\\u0002Ö\\u0001\\t\\u0002\\u0004\\u0002Ë\\u0002\\u0006\\u0002î\\u0001Ö\\u0001\\u0007\\u0002Ã\\u0001ú\\u0001ú\\u0001Ã\\u0001ã\\u0001Â\\u0001í\\u0001ô\\u0001ã\\u0001ù\\u0001ú\\u0001ù\\u0001ã\\u0001Â\\u0001\\b\\u0002â\\u0001\\t\\u0002â\\u0001Õ\\u0001\\t\\u0002\\b\\u0002\\t\\u0002Ë\\u0002ç\\u0001ß\\u0001\\b\\u0002È\\u0001þ\\u0001î\\u0001ÿ\\u0001Í\\u0001à\\u0001Ë\\u0001Ç\\u0001È\\u0001Ë\\u0002å\\u0001\\b\\u0002ç\\u0001\\b\\u0002å\\u0001ß\\u0001Ú\\u0001\\b\\u0002\\b\\u0002Ú\\u0001â\\u0001ú\\u0001ù\\u0001Í\\u0001ê\\u0001î\\u0001ó\\u0001Õ\\u0001â\\u0001á\\u0001Í\\u0001\\u0000\\u0002ú\\u0001¿\\u0001»\\u0001À\\u0001à\\u0001Ú\\u0001Ð\\u0001ÿ\\u0001à\\u0001Ð\\u0001Ú\\u0001Û\\u0001Ð\\u0001ô\\u0001ù\\u0001Â\\u0001Í\\u0001ÿ\\u0001\\u0000\\u0002ä\\u0001í\\u0001Â\\u0001À\\u0001É\\u0001Ï\\u0001Ã\\u0001Á\\u0001ä\\u0001ó\\u0001\\u0006\\u0002ô\\u0001ê\\u0001ó\\u0001í\\u0001Ý\\u0001û\\u0001Ò\\u0001ä\\u0001Â\\u0001ã\\u0001\\u0007\\u0002ú\\u0001\\u0000\\u0002Á\\u0001Ï\\u0001É\\u0001þ\\u0001à\\u0001Ö\\u0001\\u000f\\u0002\\u001b\\u0002\\n\\u0002\\u000f\\u0002\\u0015\\u0002\\u0017\\u0002\\u001f\\u0002\\u0011\\u0002\\u001e\\u0002\\u0011\\u00020\\u0002\\u001e\\u0002\\u0011\\u0002 \\u0004!\\u0002\\n\\u0002\\u001b\\u0002(\\u00020\\u0002'\\u0002$\\u0002 \\u0004\\u0011\\u0002\\u001f\\u0002(\\u0002\\u001e\\u0002\\u001a\\u0002*\\u0002-\\u0002/\\u0002\\u0013\\u0002(\\u0002\\u001a\\u0002\\u0015\\u0002/\\u0002,\\u00020\\u0002\\u0011\\u0002'\\u0002\\u0015\\u0002\\u000f\\u0002.\\u0002\\u001d\\u0002(\\u0002\\u0013\\u0002/\\u0002\\u0015\\u0002.\\u00024\\u0002\\u0019\\u0002\\u000b\\u0002\\u001d\\u0002\\f\\u0002(\\u00024\\u0002\\u0013\\u0002\\u001a\\u00020\\u00021\\u0002\\u001c\\u0002\\u001e\\u00020\\u0002\\u001a\\u0002\\u000b\\u0002\\u0013\\u00024\\u0002\\u001a\\u00020\\u00024\\u0002\\u0019\\u00024\\u00020\\u0002\\u0019\\u00020\\u0002\\u001c\\u00020\\u0002$\\u00021\\u0002\\u001c\\u00022\\u0002\\r\\u0002\\f\\u0002\\n\\u0002(\\u00025\\u0002\\u001b\\u0002\\u000f\\u0002\\u0017\\u00025\\u0002\\u000f\\u0002\\u001b\\u00025\\u0002(\\u00025\\u0002\\u001e\\u0002(\\u0002\\u001f\\u0002\\u001e\\u00025\\u0002:\\u0002r\\u0002;\\u0002F\\u0002°\\u0001J\\u0002¦\\u0002M\\u0002^\\u0002N\\u0002M\\u0002P\\u0007J\\u0002P\\u0002F\\u00027\\u0002>\\u0002Y\\u00029\\u0002’\\u0002j\\u0002¨\\u00028\\u0002[\\u0002w\\u0002v\\u0002P\\u0002Š\\u00028\\u0002\\u0002:\\u0002Œ\\u0002\\u0002\\u00029\\u0002™\\u0002¹\\u0002m\\u0002K\\u0002¬\\u0002\\\\\\u0007ˆ\\u0002e\\u0002k\\u0002v\\u0002‡\\u0002²\\u0002P\\u0007w\\u0002d\\u0002e\\u0002f\\u0002g\\u0002C\\u0002^\\u0002E\\u0002:\\u0002W\\u0002b\\u0002d\\u0002“\\u0002`\\u0002g\\u0002|\\u0002€\\u0002?\\u0002D\\u0002p\\u0006’\\u0002K\\u0002E\\u0002]\\u0002§\\u0002_\\u0002\\u0002P\\u0002v\\u0002F\\u0002w\\u0002e\\u0002v\\u0002g\\u0002\\u0002“\\u0002{\\u0002w\\u0002Ž\\u0002a\\u0002W\\u0002|\\u0002E\\u0002r\\u0002:\\u0002G\\u0002Ž\\u0002P\\u0002P\\u0002J\\u0002G\\u0002^\\u0002M\\u0002\\u0002w\\u0002P\\u0002Ž\\u0002W\\u0002\\u0002|\\u0002`\\u0002>\\u0002G\\u0002¢\\u0002Z\\u0002e\\u0002ž\\u0001C\\u0002 \\u0001>\\u0002`\\u0002‰\\u0002€\\u0002|\\u0002\\u0002Z\\u0002¢\\u0002˜\\u0004Š\\u0002®\\u0002‡\\u0002x\\u0002H\\u0002L\\u00028\\u0002Y\\u0002©\\u0002K\\u0002m\\u0002r\\u0002\\u0002S\\u0002‹\\u0002\\u0002H\\u0002€\\u0002b\\u0002›\\u0002d\\u0002¥\\u0002”\\u0004Z\\u0002^\\u0002\\u0002s\\u0002~\\u0002—\\u0002®\\u0002Q\\u0002L\\u0002°\\u0002_\\u0002§\\u0002L\\u0002\\u0002‰\\u0002“\\u0002W\\u0002{\\u0002\\u0002{\\u0002£\\u0002\\u0002§\\u0002°\\u0002L\\u0002Š\\u0002~\\u0002®\\u0002U\\u0002ª\\u0002X\\u0002Ž\\u0002£\\u0002{\\u0002§\\u0002ª\\u0002°\\u0002›\\u0002e\\u0002d\\u0002”\\u0004†\\u0001ˆ\\u0001F\\u0002h\\u0002‰\\u0001§\\u0002X\\u0002ª\\u0002\\u00028\\u0002©\\u0002L\\u0002H\\u0002_\\u0002Š\\u0002\\u0002~\\u0002”\\u0004ˆ\\u0001Š\\u0001S\\u0002U\\u0002X\\u00027\\u0002Y\\u0002·\\u0002p\\u0006ƒ\\u0002…\\u0002’\\u0002\\u0002D\\u0002N\\u0002s\\u0002\\u0002M\\u0002N\\u0002\\u0002H\\u0002x\\u0002€\\u0002¦\\u0002\\u0002‹\\u0002\\u0002™\\u0002‚\\u0002¦\\u0002^\\u0002\\u0002]\\u0002º\\u0002K\\u0002<\\u0002”\\u0002Œ\\u0002˜\\u0004¥\\u0002Z\\u0002f\\u0002p\\u0002…\\u0002D\\u0002ƒ\\u0002p\\u00069\\u0002\\u0002’\\u0002f\\u0002…\\u0002ƒ\\u0002Y\\u0002>\\u0002©\\u0002s\\u0002N\\u0002¬\\u0002·\\u0002£\\u00027\\u00029\\u0002j\\u0002•\\u0002~\\u0002\\u0002™\\u0002p\\u0002µ\\u0002…\\u0002>\\u0002‰\\u0002‚\\u0002j\\u0002—\\u0002•\\u0002s\\u0002¬\\u0002ˆ\\u0002¨\\u0002Y\\u00028\\u0002S\\u0002\\u0002”\\u0002\\u0002‚\\u0002™\\u0002‰\\u0002\\u0002‚\\u0002²\\u0002‡\\u0002®\\u0002™\\u00029\\u0002•\\u0002™\\u0002•\\u0002~\\u0002F\\u0002v\\u0002k\\u0002£\\u0002H\\u0002\\u0002\\u0002g\\u0002ƒ\\u0002\\u0002©\\u0002‚\\u0002Š\\u0001h\\u0002k\\u0002Š\\u0001k\\u0002Z\\u0002ƒ\\u0002g\\u0002f\\u0002w\\u0002{\\u0002W\\u0002w\\u0002W\\u0002d\\u0002`\\u0002“\\u0002‰\\u0002Ž\\u0002G\\u0002£\\u0002‹\\u0002X\\u0002\\u0002x\\u0002?\\u0002€\\u0002M\\u0002‡\\u0002P\\u0007¦\\u0002Š\\u0002M\\u0002‡\\u0002M\\u0002Š\\u0002C\\u0002g\\u0002`\\u0002”\\u0002<\\u0002ž\\u0002‚\\u0002©\\u0002>\\u0002‹\\u0002\\u0002¦\\u0002”\\u0004Š\\u0001Z\\u0002C\\u0002ž\\u0001f\\u0002e\\u0002›\\u0002¢\\u0002Œ\\u0002”\\u0002\\u0002E\\u0002ˆ\\u0002\\\\\\u0007Œ\\u0002;\\u0002<\\u0002G\\u0002J\\u0002`\\u0002‰\\u0001h\\u0002Š\\u0001ª\\u0004u\\u0002\\\\\\u0007E\\u0002u\\u0002]\\u0002[\\u0002¦\\u0002\\u0002X\\u0002§\\u0002\\u0002~\\u0002•\\u0002—\\u0002S\\u0002X\\u0002‹\\u0002D\\u0002\\u0002ƒ\\u0002k\\u0002h\\u0002F\\u0002x\\u0002L\\u0002Q\\u0002_\\u0002»\\u0002\\u0002Y\\u0002»\\u0002·\\u0002»\\u0002¨\\u0002\\u0002_\\u0002z\\u0002·\\u0002¦\\u0002[\\u00028\\u0002[\\u0002\\u0002¨\\u0002p\\u0002f\\u0002ž\\u0001_\\u0002·\\u0002»\\u0002¦\\u00028\\u0002Š\\u0002;\\u0002m\\u0002<\\u0002Y\\u0002¨\\u0002»\\u0002S\\u0002”\\u0002ž\\u0002£\\u0002z\\u0002H\\u0002r\\u0002m\\u0002;\\u0002z\\u0002£\\u0002·\\u0002K\\u0002r\\u0002E\\u0002ˆ\\u0002E\\u0002s\\u0002;\\u0002Œ\\u0002:\\u0002Z\\u0002k\\u0002e\\u0002\\u0002^\\u0002:\\u0002 \\u0001`\\u0002J\\u0002s\\u0002E\\u0002^\\u0002°\\u0001F\\u0002‰\\u0001u\\u0002E\\u0002\\\\\\u0007z\\u0002_\\u0002H\\u0002G\\u0002>\\u00027\\u00027\\u0002£\\u0002G\\u0002µ\\u0001 \\u0001J\\u0002`\\u0002 \\u0001C\\u0002¼\\u0002Â\\u0002ý\\u0001À\\u0002Â\\u0002Æ\\u0002À\\u0002©\\u0003Â\\u0002Æ\\u0002Â\\u0002¼\\u0002Ç\\u0002Ê\\u0002Ã\\u0002½\\u0002}\\u0002Å\\u0002æ\\u0001Ç\\u0002É\\u0002Ç\\u0002Ã\\u0002É\\u0002Ê\\u0002Ç\\u0002Ì\\u0002Ì\\u0002c\\u0002Ê\\u0002Ï\\u0002ý\\u0001Â\\u0002\\u0005\\u0002c\\u0002Ì\\u0002}\\u0002Ê\\u0002c\\u0002æ\\u0001Ì\\u0002Ç\\u0002œ\\u0002c\\u0002\\u0005\\u0002Ê\\u0002½\\u0002Ã\\u0002ý\\u0001Þ\\u0001¼\\u0002Æ\\u0002Ã\\u0002½\\u0002½\\u0002À\\u0002Æ\\u0002Å\\u0002¿\\u0002½\\u0002É\\u0002Ã\\u0002¼\\u0002½\\u0002Ê\\u0002}\\u0002Å\\u0002}\\u0002A\\u0002é\\u0001¼\\u0002Þ\\u0001Ã\\u0002Æ\\u0002¼\\u0002é\\u0001É\\u0002¼\\u0002Ö\\u0002Û\\u0002Ô\\u0002Û\\u0002Ò\\u0002Ô\\u0002ü\\u0001Ô\\u0002Ó\\u0001Ó\\u0001Ô\\u0002Ò\\u0002Ý\\u0002ü\\u0001Í\\u0002Ô\\u0002ü\\u0001Ý\\u0002Ø\\u0002ã\\u0002Ü\\u0002ã\\u0002á\\u0002Ü\\u0002ž\\u0003ã\\u0002Ù\\u0002ã\\u0002ž\\u0003ç\\u0002ç\\u0002î\\u0002ã\\u0002ê\\u0002å\\u0002è\\u0002å\\u0002ê\\u0002í\\u0002.\\u0004í\\u0002ê\\u0002ß\\u0002í\\u0002.\\u0004÷\\u0002ü\\u0002ñ\\u0002ü\\u0002þ\\u0002ñ\\u0002t\\u0004ü\\u0002÷\\u0002)\\u0002\\u0005\\u0003+\\u0002ÿ\\u0002+\\u0002\\u0005\\u0003+\\u0002ÿ\\u0002\\u0014\\u0002\\u0005\\u0003\\u0007\\u0003\\t\\u0003\\u0004\\u0003\\u0007\\u0003\\f\\u0003)\\u0002\\u0007\\u0003\\u0005\\u0003\\t\\u0003\\u0007\\u0003\\u0004\\u0003ø\\u0002õ\\u0002ô\\u0002ò\\u0002õ\\u0002ø\\u0002«\\u0002\\u000e\\u0003±\\u0002\\u000f\\u0003\\u000e\\u0003\\u0010\\u0003«\\u0002T\\u0002\\u0010\\u0003\\u0012\\u0003\\u000e\\u0003\\u0014\\u0003\\u0017\\u0003\\u000f\\u0003–\\u0003 \\u0002\\u0019\\u0003\\u000f\\u0003\\u000e\\u0003\\u0012\\u0003±\\u0002\\u000f\\u0003\\u0019\\u0003–\\u0003\\u000f\\u0003\\u0016\\u0003\\u000e\\u0003V\\u0002T\\u0002«\\u0002\\u0012\\u0003R\\u0002±\\u0002y\\u0002R\\u0002£\\u0003y\\u0002£\\u0003\\u001b\\u0003\\u0010\\u0003T\\u0002 \\u0002\\u000f\\u0003\\u0010\\u0003 \\u0002«\\u0002\\u0010\\u0003\\u000e\\u0003£\\u0003R\\u0002\\u0012\\u0003B\\u0002y\\u0002\\u001b\\u0003(\\u0003 \\u0003@\\u0003\\\\\\\"\\u00033\\u0002%\\u0002)\\u0003\\u001c\\u00039\\u0003\\\\\\\"\\u0003@\\u0003 \\u0003l\\u0003$\\u00033\\u0003(\\u0003@\\u0003!\\u0003<\\u00010\\u00038\\u0003?\\u0003<\\u0003l\\u00034\\u0003&\\u0003#\\u0003'\\u0003*\\u0003<\\u0003\\u001c\\u0003*\\u0003¬\\u0000¬\\u0000½\\u00009\\u0003\\u001f\\u0003#\\u0003&\\u00034\\u0003,\\u0003&\\u0003¬\\u00009\\u0003\\u001c\\u0003½\\u0000Å\\u0000=\\u0003½\\u0000=\\u0003)\\u0003´\\u0000Å\\u0000½\\u0000´\\u0000»\\u0000Å\\u00008\\u00030\\u0003*\\u0003,\\u0003!\\u0003\\u001d\\u0003$\\u0003<\\u0003@\\u0003.\\u00036\\u0003'\\u0003.\\u0003'\\u0003<\\u0003\\\\\\\"\\u0003:\\u00033\\u0002@\\u0003\\\\\\\"\\u0003$\\u0003<\\u0003$\\u0003l\\u0003%\\u0002$\\u0003\\\\\\\"\\u0003\\u001d\\u0003!\\u0003@\\u0003&\\u0003,\\u0003\\u001d\\u0003\\u000e\\u00023\\u0002:\\u0003*\\u0003'\\u00036\\u0003\\u001c\\u0003@\\u0003<\\u0003\\u001e\\u0003;\\u0003:\\u0003:\\u0003%\\u0003\\u001e\\u00038\\u0003*\\u00036\\u0003:\\u0003\\\\\\\"\\u0003%\\u0003;\\u0003\\u000e\\u0002:\\u00033\\u0003$\\u0003%\\u0002\\u001c\\u0003\\u001f\\u0003&\\u0003\\u001f\\u0003\\u001c\\u0003)\\u0003)\\u00039\\u0003½\\u0000*\\u0003\\u001c\\u0003<\\u0003?\\u0003.\\u0003<\\u0003,\\u0003(\\u0003!\\u0003\\u001c\\u0003&\\u0003\\u001d\\u0003%\\u0003\\\\\\\"\\u0003 \\u0003\\u001d\\u0003@\\u0003\\u001c\\u0003a\\u0003Z\\u0001n\\u0003&\\u0002W\\u0003#\\u0002a\\u0003^\\u0001S\\u0001K\\u0003Q\\u0003D\\u0003\\\\\\u0003}\\u0003D\\u0003o\\u0003K\\u0003C\\u0003j\\u0003G\\u0003t\\u0003h\\u0003Y\\u0003q\\u00032\\u0003i\\u0003k\\u00032\\u0003W\\u0003L\\u0003b\\u0003z\\u0003r\\u0003B\\u0003^\\u0003o\\u0003]\\u0003Y\\u0003h\\u0003c\\u0003f\\u0003Ó\\u0007M\\u0003J\\u0003K\\u0003S\\u0001Z\\u0001a\\u0003p\\u0003n\\u0003r\\u0003^\\u0003B\\u0003U\\u0003q\\u0003Y\\u0003`\\u0003r\\u0003n\\u0003|\\u0003{\\u0003f\\u0003c\\u0003@\\u0001^\\u0001a\\u0003W\\u0003&\\u0002U\\u0003i\\u0003S\\u0003I\\u0003K\\u0003J\\u0003Q\\u0003M\\u0003K\\u0003m\\u0003S\\u0003j\\u0003I\\u0003c\\u0003@\\u0001{\\u0003J\\u0003u\\u0003Z\\u0003o\\u0003G\\u0003B\\u0003C\\u0003K\\u0003D\\u0003O\\u0003J\\u0003M\\u0003b\\u00037\\u00035\\u0003A\\u0003z\\u0003-\\u0003I\\u0003]\\u0003y\\u0003n\\u0003p\\u0003H\\u0003C\\u0003}\\u0003o\\u0003z\\u00035\\u0003-\\u0003Y\\u0003s\\u0003`\\u0003s\\u0003~\\u0003f\\u0003X\\u0003t\\u0003\\\\\\u0003`\\u0003f\\u0003q\\u0003L\\u0003W\\u0003U\\u0003W\\u00032\\u0003#\\u0002m\\u0003€\\u0003M\\u0003q\\u0003{\\u0003H\\u0003p\\u0003z\\u0003T\\u0003Y\\u0003\\\\\\u0003s\\u0003D\\u0003~\\u0003s\\u0003S\\u0003L\\u0003j\\u0003\\\\\\u0003t\\u0003}\\u0003]\\u0003h\\u0003T\\u0003f\\u0003{\\u0003q\\u0003Z\\u0001S\\u0001#\\u0001U\\u0003B\\u0003j\\u0003j\\u0003t\\u0003I\\u0003o\\u0003m\\u0003K\\u0003D\\u0003s\\u0003\\\\\\u0003-\\u0003>\\u0003A\\u0003b\\u0003r\\u0003|\\u0003y\\u0003A\\u0003>\\u0003y\\u0003]\\u0003T\\u00033\\u0001b\\u0003|\\u0003I\\u0003X\\u0003Y\\u00032\\u0003L\\u0003S\\u0003^\\u0003m\\u0003o\\u0003Y\\u0003X\\u0003\\\\\\u00035\\u0003z\\u0003b\\u0003Y\\u0003]\\u0003I\\u0003p\\u0003r\\u0003z\\u0003`\\u0003s\\u0003f\\u00037\\u0003b\\u0003:\\u0001>\\u0003i\\u0003y\\u0003Z\\u0001|\\u0003n\\u0003\\u0010\\u0002E\\u0003&\\u0002G\\u0003o\\u0003}\\u0003{\\u0003@\\u0001a\\u0003L\\u0003U\\u0003j\\u0003}\\u0003t\\u0003G\\u0003i\\u00032\\u0003S\\u0003n\\u0003H\\u0003{\\u0003i\\u0003I\\u0003y\\u0003J\\u0003O\\u0003u\\u0003T\\u0003h\\u0003H\\u0003€\\u0003m\\u0003^\\u0003T\\u0003A\\u0003y\\u0003E\\u0003U\\u0003&\\u0002b\\u00033\\u0001:\\u0001T\\u0003H\\u0003p\\u0003Q\\u0003J\\u0003Z\\u0003k\\u0003i\\u0003>\\u0003C\\u0003D\\u0003}\\u0003q\\u0003H\\u0003h\\u0003A\\u0003T\\u0003z\\u0003~\\u0003D\\u0003Q\\u0003a\\u0003n\\u0003{\\u0003|\\u0003Z\\u0001h\\u0001X\\u0003I\\u0003t\\u00033\\u0001|\\u0003h\\u0001B\\u0003G\\u0003j\\u0003ƒ\\u0003‚\\u0003ˆ\\u0003„\\u0003‚\\u0003‰\\u0003\\u000b\\u0003„\\u0003‰\\u0003‚\\u0003†\\u0003‰\\u0003ƒ\\u0003†\\u0003‚\\u0003ˆ\\u0003ý\\u0002ƒ\\u0003ð\\u0002ý\\u0002ˆ\\u0003†\\u0003ƒ\\u0003Š\\u0003Š\\u0003ƒ\\u0003ú\\u0002\\u0003\\u0003‰\\u0003†\\u0003ƒ\\u0003ý\\u0002ú\\u0002‰\\u0003\\u0003\\u0003\\u000b\\u0003š\\u0003Þ\\u0002Œ\\u0003“\\u0003”\\u0003˜\\u0003\\u001a\\u0003¢\\u0003›\\u0003\\u0003Ž\\u0003¡\\u0003¥\\u0003Ž\\u0003Ÿ\\u0003é\\u0002¤\\u0003ì\\u0002¾\\u0002 \\u0003¨\\u0003\\u001a\\u0003Ä\\u0002@\\u0002¥\\u0003Ÿ\\u0003œ\\u0003\\u0015\\u0003\\u0003¡\\u0003¤\\u0003‘\\u00035\\u0004œ\\u0003 \\u0003¥\\u0003‘\\u0003\\u0003“\\u0003š\\u0003×\\u0002Þ\\u0002é\\u0002Ž\\u0003¤\\u0003Î\\u0002\\u0003Þ\\u0002\\u0003Á\\u0002¨\\u0003Î\\u0002Á\\u0002\\u0003×\\u0002š\\u0003\\u0003›\\u0003¥\\u0003 \\u0003\\u0003¤\\u0003Ž\\u0003œ\\u0003Ž\\u0003\\u0003é\\u0002\\u0003Ž\\u0003Œ\\u0003Þ\\u0002\\u0003æ\\u0002\\u0003é\\u0002\\u0015\\u0003\\u0013\\u0003\\r\\u0003\\u0013\\u0003¢\\u0003\\u0011\\u0003\\u0013\\u0003¡\\u0003›\\u0003\\u0003\\u0015\\u0003“\\u0003›\\u0003¾\\u0002Ä\\u0002¾\\u0002›\\u0003 \\u0003œ\\u0003Œ\\u0003¨\\u0003¡\\u0003\\u0013\\u0003\\u0015\\u0003¡\\u0003¥\\u0003›\\u0003š\\u0003Œ\\u0003\\u0003§\\u0003¤\\u00035\\u0004\\u0003Œ\\u0003œ\\u0003Õ\\u0002Þ\\u0002×\\u0002”\\u0003“\\u0003\\u0015\\u0003\\u0013\\u0003›\\u0003¢\\u0003Ž\\u0003œ\\u0003Ÿ\\u0003¨\\u0003Œ\\u0003\\u0003›\\u0003Ä\\u0002\\u001a\\u0003œ\\u0003¨\\u0003 \\u0003ì\\u0002¤\\u0003§\\u0003\\u0003‘\\u0003¤\\u0003¥\\u0003¡\\u0003Ž\\u0003¯\\u0003Ó\\u0002¬\\u0003Ñ\\u0002;\\u0004½\\u0001­\\u0003;\\u0004Ñ\\u0002½\\u0001Î\\u0001Ñ\\u0002Ñ\\u0001Ñ\\u0002Î\\u0001ï\\u0002â\\u0002ä\\u0002/\\u0004ª\\u0003à\\u0002Ú\\u0002ª\\u0003Ð\\u0002Ú\\u0002à\\u0002ª\\u0003ï\\u0001M\\u0004Ì\\u0001¹\\u0003´\\u0003µ\\u0003¹\\u0003·\\u0003´\\u0003·\\u0003¹\\u0003»\\u0003±\\u0003´\\u0003·\\u0003¾\\u0003±\\u0003·\\u0003Ì\\u0001µ\\u0003´\\u0003M\\u0004µ\\u0003Ì\\u0001Í\\u0003Ö\\u0003Ð\\u0003Å\\u0003Ã\\u0003\\b\\u0004¨\\u0005Ã\\u0003Å\\u0003Æ\\u0003Ö\\u0003¨\\u0005Å\\u0003Ì\\u0003Æ\\u0003Ô\\u0003Ð\\u0003Ö\\u0003Ö\\u0003Í\\u0003É\\u0003Ì\\u0003Å\\u0003\\u0005\\u0004Í\\u0003Ò\\u0003É\\u0003¨\\u0005Å\\u0003Æ\\u0003Ö\\u0003Æ\\u0003Ô\\u0003Ô\\u0003Æ\\u0003Ì\\u0003Ð\\u0003Ò\\u0003Í\\u0003Ú\\u0003ç\\u0003Ý\\u0003Ý\\u0003¿\\u0003è\\u0003Þ\\u0003â\\u0003è\\u0003=\\u0002n\\u0002\\u0018\\u0003Ú\\u0003Ü\\u0003å\\u0003å\\u0003ç\\u0003Ú\\u0003è\\u0003Ú\\u0003Ý\\u0003\\u0018\\u0003Ú\\u0003™\\u0003â\\u0003™\\u0003è\\u0003Þ\\u0003è\\u0003¿\\u0003Ú\\u0003è\\u0003™\\u0003=\\u0002\\u0018\\u0003Ÿ\\u0002•\\u0003\\u0018\\u0003™\\u0003Ý\\u0003ç\\u0003¿\\u0003Ü\\u0003\\u0018\\u0003n\\u0002\\u0018\\u0003Ü\\u0003Ú\\u0003ç\\u0003²\\u0003¿\\u0003å\\u0003Ü\\u0003Ø\\u0004ò\\u0003õ\\u0003ñ\\u0003î\\u0003ï\\u0003ê\\u0003û\\u0003é\\u0003ë\\u0003G\\u0004õ\\u0003é\\u0003ì\\u0003ë\\u0003ê\\u0003½\\u0003ì\\u0003à\\u0003÷\\u0003î\\u0003ê\\u0003ê\\u0003ë\\u0003é\\u0003î\\u0003ã\\u0003à\\u0003é\\u0003û\\u0003ù\\u0003î\\u0003à\\u0003ï\\u0003û\\u0003ë\\u0003ì\\u0003ù\\u0003û\\u0003R\\u0004G\\u0004é\\u0003ù\\u0003õ\\u0003ò\\u0003é\\u0003à\\u0003ì\\u0003ï\\u0003ò\\u0003ñ\\u0003ê\\u0003ê\\u0003ñ\\u0003÷\\u0003ê\\u0003ï\\u0003ì\\u0003û\\u0003ì\\u0003½\\u0003ê\\u0003é\\u0003ò\\u0003\\n\\u0004\\u000e\\u0004\\u0006\\u0004\\u0001\\u0004ü\\u0003V\\u0004\\t\\u0004ÿ\\u0003$\\u0004\\t\\u0004þ\\u0003\\r\\u0004\\t\\u0004\\r\\u0004ÿ\\u0003\\u000e\\u0004þ\\u0003\\u0003\\u0004\\u0006\\u0004\\u000e\\u0004\\u0003\\u0004\\r\\u0004þ\\u0003ü\\u0003…\\u0005\\n\\u0004\\u0006\\u0004\\r\\u0004ü\\u0003\\u0001\\u0004þ\\u0003\\u000e\\u0004ü\\u0003þ\\u0003\\u0011\\u0004\\u0003\\u0004\\u0006\\u0004\\u0003\\u0004Ä\\u0003\\n\\u0004ü\\u0003\\u000e\\u0004ÿ\\u0003\\r\\u0004\\u0001\\u0004\\u0015\\u0004ÿ\\u0003\\u0001\\u0004\\t\\u0004$\\u0004\\u000f\\u0004\\u000f\\u0004\\u0011\\u0004\\t\\u0004\\u0011\\u0004þ\\u0003\\t\\u0004\\u0018\\u0004\\u001e\\u0004\\u001d\\u0004\\u001f\\u0004\\u001d\\u0004\\u001e\\u0004%\\u0004\\u0018\\u0004\\u001d\\u0004#\\u0004\\u0019\\u0004P\\u0003&\\u0004%\\u0004\\u001d\\u0004\\u001b\\u0004P\\u0003\\u0019\\u0004!\\u0004\\u001d\\u0004\\\\\\\"\\u0002\\u0010\\u0004%\\u0004&\\u0004\\u0018\\u0004\\u001a\\u0004#\\u0004&\\u0004\\u001d\\u0004!\\u0004\\u0019\\u0004)\\u0004\\u001b\\u0004\\u001a\\u0004\\u0019\\u0004#\\u0004\\u0018\\u0004(\\u0004\\u0019\\u0004F\\u0003\\u0012\\u0002\\\\\\\"\\u0002\\u001f\\u0004\\u0003F\\u0003\\u0018\\u0004%\\u0004(\\u0004\\u0018\\u0004#\\u0004\\u001e\\u0004\\u0000\\u0004\\u0016\\u0004(\\u0004_\\u0003F\\u0003\\u0003\\u001e\\u0004\\u0003\\u001f\\u0004(\\u0004%\\u0004\\u0000\\u0004\\u0019\\u0004\\u001a\\u0004\\u0018\\u0004F\\u0003_\\u0003V\\u0003\\u001e\\u0004#\\u0004\\u0003\\u001f\\u0004\\\\\\\"\\u0002\\u001d\\u0004)\\u0004(\\u0004\\u0016\\u0004\\\\\\\"\\u0002\\u001f\\u0004F\\u0003N\\u0003\\u0003#\\u0004P\\u0003\\u001b\\u0004v\\u0003\\u0019\\u0004(\\u0004)\\u0004&\\u0004\\u0012\\u0004\\u0010\\u0004#\\u0004P\\u0003N\\u0003:\\u00042\\u0004á\\u0003ë\\u0002@\\u00040\\u00042\\u0004—\\u0003á\\u0003?\\u0004@\\u00048\\u0004>\\u0004<\\u00046\\u00043\\u0004=\\u00042\\u0004í\\u0003ö\\u0003,\\u0004\\u00032\\u0004=\\u0004ö\\u00031\\u00047\\u0004,\\u0004+\\u0004:\\u00041\\u0004ð\\u0003ó\\u00031\\u0004-\\u00047\\u0004:\\u00043\\u00042\\u0004-\\u00041\\u0004@\\u0004º\\u0001>\\u0004C\\u00043\\u0004ë\\u0002¦\\u0003A\\u00041\\u0004ó\\u0003+\\u00043\\u0004:\\u00047\\u0004,\\u0004ö\\u0003¾\\u0001>\\u0004º\\u0001¦\\u00034\\u0004=\\u0004+\\u0004-\\u00043\\u0004?\\u0004®\\u00030\\u0004®\\u00036\\u0004<\\u0004@\\u0004?\\u00040\\u0004-\\u0004@\\u00043\\u0004®\\u0003?\\u00046\\u0004=\\u00043\\u0004¦\\u0003’\\u0003—\\u00032\\u0004<\\u0004>\\u0004¾\\u00017\\u0004+\\u0004,\\u0004ö\\u0003ð\\u00031\\u00041\\u00048\\u0004@\\u0004í\\u0003,\\u0004á\\u00038\\u0004>\\u00046\\u0004=\\u00044\\u0004\\u0003-\\u0004+\\u00047\\u0004?\\u00048\\u00046\\u0004«\\u00030\\u0004®\\u0003ë\\u00023\\u0004@\\u0004\\u0003’\\u00032\\u0004C\\u0004>\\u00048\\u0004á\\u0003,\\u0004:\\u00041\\u0004A\\u00048\\u0004I\\u0004O\\u0004J\\u0004D\\u0004E\\u0004K\\u0004O\\u0004N\\u0004J\\u0004F\\u0004ø\\u0003P\\u0004I\\u0004L\\u0004E\\u0004P\\u0004E\\u0004F\\u0004E\\u0004P\\u0004I\\u0004K\\u0004E\\u0004L\\u0004I\\u0004ò\\u0001L\\u0004¸\\u0003¼\\u0003À\\u0003¼\\u0001K\\u0004ò\\u00019\\u0004B\\u0004D\\u0004ë\\u0001N\\u0004ð\\u0001O\\u0004¶\\u0003N\\u0004D\\u0004K\\u0004¼\\u0001B\\u0004ô\\u0003F\\u0004¼\\u0003Q\\u0004ú\\u0003º\\u0003Q\\u0004¼\\u0003O\\u0004º\\u0003¶\\u0003D\\u0004B\\u0004E\\u0004O\\u0004Q\\u0004º\\u0003P\\u0004Q\\u0004O\\u0004Q\\u0004P\\u0004ø\\u0003P\\u0004O\\u0004I\\u0004ß\\u0003À\\u0003¼\\u0003F\\u0004E\\u0004B\\u0004L\\u0004ò\\u0001K\\u0004ë\\u0001I\\u0004J\\u0004J\\u0004N\\u0004ë\\u0001Y\\u0004^\\u0004W\\u0004\\\\\\u0004æ\\u0007S\\u0004U\\u0004\\u001c\\u0004*\\u0004à\\u0007x\\u0003\\u001c\\u0004*\\u0004\\u0017\\u0004S\\u0004W\\u0004ý\\u0003Y\\u0004\\u0017\\u0004W\\u0004^\\u0004`\\u0004\\\\\\u0004^\\u0004W\\u0004\\u0017\\u0004\\u0002\\u0004\\\\\\u0004S\\u0004^\\u0004^\\u0004S\\u0004\\u0017\\u0004U\\u0004*\\u0004S\\u0004‰\\u0005ý\\u0003\\f\\u0004U\\u0004à\\u0007\\u001c\\u0004`\\u0004^\\u0004˜\\u0005S\\u0004æ\\u0007U\\u0004ý\\u0003‰\\u0005Y\\u0004b\\u0004£\\u0005“\\u0005b\\u0004“\\u0005f\\u0004Ó\\u0003Ê\\u0003g\\u0004i\\u0004Ó\\u0003g\\u0004Ó\\u0003i\\u0004\\n\\u0003i\\u0004\\u0000\\u0003\\n\\u0003\\u0006\\u0003\\n\\u0003\\u0000\\u0003\\u0000\\u0003i\\u0004l\\u0004Ï\\u0003Ó\\u0003\\n\\u0003q\\u0004n\\u0004ù\\u0002Ñ\\u0003o\\u0004×\\u0003Ñ\\u0003Î\\u0003u\\u0004\\u0002\\u0003…\\u0003u\\u0004Ñ\\u0003w\\u0004o\\u0004\\b\\u0003\\u0002\\u0003u\\u0004r\\u0004×\\u0003o\\u0004Ñ\\u0003u\\u0004v\\u0004Ç\\u0003Ñ\\u0003×\\u0003u\\u0004Î\\u0003\\b\\u0003…\\u0003v\\u0004u\\u0004z\\u0004h\\u0004Ë\\u0003k\\u0004h\\u0004z\\u0004z\\u0004Ë\\u0003\\u0004\\u0004\\u0004\\u0004\\u0014\\u0004z\\u0004p\\u0004x\\u0004û\\u0002‹\\u0003û\\u0002x\\u0004‹\\u0003x\\u0004‡\\u0003|\\u0004\\u0013\\u0004}\\u0004 \\u00026\\u0002\\\\\\\"\\u0004~\\u0004|\\u0004{\\u00046\\u0002{\\u0004\\\\\\\"\\u0004}\\u0004'\\u0004\\\\\\\"\\u0004y\\u0004~\\u0004j\\u0004~\\u0004y\\u0004|\\u00046\\u0002\\u0018\\u0002m\\u0004\\u0018\\u0002\\u0001\\u0003m\\u0004}\\u0004\\u0013\\u0004'\\u0004{\\u0004m\\u0004j\\u0004{\\u0004j\\u0004~\\u0004{\\u00046\\u0002m\\u0004}\\u0004\\\\\\\"\\u0004{\\u0004\\u0016\\u0002\\u0001\\u0003\\u0018\\u0002}\\u0004{\\u0004|\\u0004\\u0013\\u0004|\\u0004y\\u0004l\\u0002Î\\u0004Û\\u0003„\\u0001‡\\u0004‰\\u0004\\u0004£\\u0004Œ\\u0004Õ\\u0004ƒ\\u0004Ž\\u0004“\\u0004¤\\u0002\\u0004\\u0004\\u0004£\\u0004™\\u0004 \\u0004Ÿ\\u0004¡\\u0002™\\u0004—\\u0004¡\\u0002 \\u0004™\\u0004™\\u0004š\\u0004—\\u0004\\u0004—\\u0004š\\u0004™\\u0004¿\\u0004§\\u0004¨\\u0004°\\u0004š\\u0004™\\u0004§\\u0004š\\u0004š\\u0004°\\u0004±\\u0004š\\u0004±\\u0004\\u0004±\\u0004°\\u0004ˆ\\u0004‡\\u0004“\\u0004\\u0004ˆ\\u0004‡\\u0004±\\u0004¨\\u0004§\\u0004¶\\u0004³\\u0004¶\\u0004À\\u0004¨\\u0004¶\\u0004°\\u0004‡\\u0004\\u0004±\\u0004§\\u0004¨\\u0004š\\u0004¶\\u0004¹\\u0004°\\u0004¶\\u0004Ö\\u0004¹\\u0004¶\\u0004³\\u0004Ö\\u0004¸\\u0004¶\\u0004§\\u0004¶\\u0004¸\\u0004À\\u0004¸\\u0004¿\\u0004·\\u0004æ\\u0003¦\\u0004°\\u0003À\\u0004º\\u0004Â\\u0004\\u0004Ž\\u0004ƒ\\u0004€\\u0004¥\\u0004²\\u0004·\\u0004¿\\u0004Ÿ\\u0004¿\\u0004¸\\u0004§\\u0004¿\\u0004™\\u0004Ÿ\\u0004À\\u0004¸\\u0004º\\u0004Œ\\u0004Ù\\u0004\\u0004Â\\u0004º\\u0004Ì\\u0004¿\\b›\\u0004Ï\\u0004Ï\\u0004Õ\\u0004Ñ\\u0004Ë\\u0004æ\\u0003×\\u0004³\\u0004À\\u0004­\\u0004º\\u0004¸\\u0004·\\u0004Ò\\u0004Ì\\u0004õ\\u0001Ì\\u0004º\\u0004õ\\u0001Ò\\u0004€\\u0004Ì\\u0004Ã\\u0004À\\u0004Â\\u0004­\\u0004À\\u0004Ã\\u0004º\\u0004·\\u0004õ\\u0001õ\\u0001·\\u0004Ä\\u0001Ä\\u0001·\\u0004Ÿ\\u0004Í\\u0004Á\\u0004Î\\u0004Ÿ\\u0004¡\\u0004Ä\\u0001÷\\u0001Ä\\u0001¡\\u0004š\\u0002 \\u0004¡\\u0002¼\\u0004»\\u0004›\\u0004\\u0004„\\u0004»\\u0004š\\u0002\\u0003\\u0002\\u0001\\u0002 \\u0004š\\u0002\\u0001\\u0002Ã\\u0004²\\u0004Þ\\u0004 \\u0004\\u0001\\u0002¡\\u0004×\\u0004æ\\u0003ä\\u0003Â\\u0004Ì\\u0004²\\u0004Ù\\u0004æ\\u0003Ë\\u0004 \\u0004¡\\u0004Ÿ\\u0004\\u0004ƒ\\u0004\\u0004Ê\\u0001Ä\\u0004Æ\\u0001¦\\u0004Ä\\u0004³\\u0003„\\u0001‰\\u0004Œ\\u0001Å\\u0004Ä\\u0004£\\u0004\\u0004•\\u0004Ž\\u0004¦\\u0004£\\u0004Ä\\u0004¥\\u0004Å\\u0004Þ\\u0004¥\\u0004Þ\\u0004²\\u0004Å\\u0004¥\\u0004Æ\\u0001„\\u0001“\\u0004‡\\u0004Æ\\u0001¥\\u0004€\\u0004\\u0004Ù\\u0004ž\\u0004‘\\u0004Û\\u0004Ô\\u0004–\\u0004Ô\\u0004­\\u0004Ô\\u0004³\\u0004­\\u0004³\\u0004Ô\\u0004Ö\\u0004\\u0004–\\u0004¤\\u0004–\\u0004‘\\u0004Ô\\u0004Ú\\u0004–\\u0004­\\u0004¦\\u0004³\\u0003°\\u0003¼\\u0004³\\b\\u0004Æ\\u0001Ä\\u0004Å\\u0004Ë\\u0004×\\u0004Á\\u0004–\\u0004Ú\\u0004¤\\u0004ž\\u0004Í\\u0004•\\u0004µ\\u0004Í\\u0004Î\\u0004€\\u0004²\\u0004Ì\\u0004Ê\\u0001³\\u0003Ä\\u0004Ý\\u0004¤\\u0004Ú\\u0004Ú\\u0004Ã\\u0004à\\u0004Ý\\u0004Ú\\u0004à\\u0004µ\\u0004¸\\u0002\\\\\\u0002µ\\u0004t\\u0002´\\u0004t\\u0002µ\\u0004\\\\\\u0002ž\\u0004•\\u0004\\u0004Þ\\u0004ß\\u0004à\\u0004Ë\\u0004Á\\u0004Ù\\u0004Ù\\u0004Á\\u0004ž\\u0004Ã\\u0004Þ\\u0004à\\u0004´\\u0004Ï\\u0004Ñ\\u0004á\\u0004´\\u0004…\\u0004¦\\u0004Œ\\u0004£\\u0004\\u0004\\u0004\\u0004´\\u0004Ñ\\u0004Í\\u0004\\u0004Ý\\u0004ß\\u0004•\\u0004Í\\u0004Ñ\\u0004ß\\u0004Ý\\u0004à\\u0004á\\u0004Ï\\u0004´\\u0004„\\u0004¤\\u0004Ý\\u0004Ý\\u0004\\u0004ƒ\\u0004Ñ\\u0004Õ\\u0004Ž\\u0004×\\u0001€\\u0004Ò\\u0004Û\\u0003Î\\u0004×\\u0004Ô\\u0004Û\\u0004Ö\\u0004Û\\u0004¹\\u0004Ö\\u0004Û\\u0004­\\b¹\\u0004°\\u0004ä\\u0004ˆ\\u0004Æ\\u0001€\\u0004Ø\\u0001°\\u0004¹\\u0004ä\\u0004‰\\u0004ã\\u0004è\\u0004ã\\u0004‡\\u0004ˆ\\u0004Ï\\u0004›\\u0004Õ\\u0004ˆ\\u0004ä\\u0004å\\u0004å\\u0004ã\\u0004ˆ\\u0004\\u0004ß\\u0004Å\\u0004å\\u0004Æ\\u0004ã\\u0004¹\\u0004å\\u0004ä\\u0004‡\\u0004ã\\u0004‰\\u0004å\\u0004¹\\u0004­\\b\\u0004¤\\u0002—\\u0004…\\u0004´\\u0004t\\u0002t\\u0002©\\u0004…\\u0004„\\u0004Ý\\u0004ƒ\\u0004è\\u0004ã\\u0004Æ\\u0004è\\u0004Æ\\u0004È\\u0004Õ\\u0004»\\u0004„\\u0004Õ\\u0004„\\u0004ƒ\\u0004¼\\u0004\\u0004»\\u0004—\\u0001è\\u0004š\\u0001è\\u0004Œ\\u0001‰\\u0004Œ\\u0001è\\u0004—\\u0001Õ\\u0004›\\u0004»\\u0004Ñ\\u0004Ž\\u0004•\\u0004\\u0004•\\u0004\\u0004¸\\u0002µ\\u0004Î\\u0004Ã\\u0004Ú\\u0004­\\u0004\\u0004¤\\u0004„\\u0004Í\\u0004ž\\u0004Á\\u0004Ã\\u0004Â\\u0004²\\u0004Á\\u0004×\\u0004Î\\u0004Þ\\u0004Å\\u0004ß\\u0004Î\\u0004l\\u0002¸\\u0002æ\\u0003Ù\\u0004Œ\\u0004\\u0004Å\\u0004£\\u0004‘\\u0004–\\u0004\\u0004\\u0004Š\\u0004‘\\u0004´\\u0004Í\\u0004µ\\u0004¦\\u0004æ\\u0003Œ\\u0004ò\\u0004ô\\u0004ú\\u0004ú\\u0004\\u0000\\u0005ì\\u0004í\\u0004ù\\u0004÷\\u0004`\\u0005\\u0005\\u0005ì\\u0004ú\\u0004ì\\u0004\\u0003\\u0005í\\u0004ê\\u0004ï\\u0004\\f\\u0005ö\\u0004‚\\u0005ê\\u0004ú\\u0004\\u0003\\u0005ì\\u0004ï\\u0004\\u0003\\u0005ì\\u0004\\u0000\\u0005`\\u0005ü\\u0004\\u0002\\u0005\\u000f\\u0005ü\\u0004í\\u0004\\u0002\\u0005ü\\u0004ò\\u0004ú\\u0004ù\\u0004í\\u0004ï\\u0004þ\\u0004ò\\u0004ü\\u0004\\u0005\\u0005`\\u0005\\u0010\\u0005\\u0003\\u0005ï\\u0004ê\\u0004ú\\u0004ê\\u0004ü\\u0004÷\\u0004ö\\u0004\\f\\u0005ù\\u0004\\t\\u0005ö\\u0004ú\\u0004ô\\u0004\\u0000\\u0005ö\\u0004÷\\u0004ù\\u0004ê\\u0004í\\u0004ü\\u0004÷\\u0004\\u0002\\u0005í\\u0004÷\\u0004\\f\\u0005\\u0002\\u0005Û\\bð\\u0004\\u0012\\u0005\\r\\u0005)\\u0005\\u0017\\u0005\\u001e\\u0005\\u0012\\u0005ý\\u0004\\u001e\\u0005ý\\u0004\\u0017\\u0005\\u0014\\u0005ð\\u0004Û\\b\\u0019\\u0005\\r\\u0005\\u0001\\u0005À\\u0005\\u0019\\u0005\\u001b\\u0005ý\\u0004\\u0012\\u0005ð\\u0004\\n\\u0005\\u001b\\u0005\\u0019\\u0005\\n\\u0005\\u0019\\u0005\\u0001\\u0005û\\u0004\\r\\u0005\\u0017\\u0005û\\u0004\\u0017\\u0005ý\\u00040\\u0005\\r\\u0005\\u0019\\u0005î\\u0004ë\\u0004#\\u0005\\\\\\\"\\u0005î\\u0004#\\u0005î\\u0004\\\\\\\"\\u0005ø\\u0004&\\u0005#\\u0005\\u0004\\u0005$\\u0005#\\u0005&\\u0005\\u0004\\u0005#\\u0005ë\\u0004+\\u0005\\u0018\\u0005*\\u0005-\\u0005 \\u0005(\\u0005\\\\\\\"\\u0005+\\u0005,\\u0005\\\\\\\"\\u0005#\\u0005$\\u00051\\u0005*\\u0005\\u000e\\u0005ø\\u0004\\\\\\\"\\u0005\\u0007\\u0005(\\u0005$\\u0005-\\u0005+\\u0005(\\u0005\\u0018\\u0005c\\u0004\\u0007\\u0005,\\u0005(\\u0005+\\u0005\\\\\\\"\\u0005(\\u0005\\\\\\\"\\u0005$\\u0005*\\u0005,\\u0005+\\u0005,\\u0005*\\u0005c\\u0004\\u0007\\u0005\\\\\\\"\\u0005,\\u00051\\u0005c\\u0004*\\u0005\\u001f\\u0005\\u0018\\u0005(\\u0005L\\u0005;\\u00058\\u0005H\\u0005D\\u00054\\u0005H\\u00059\\u0005F\\u0005F\\u0005D\\u0005H\\u0005N\\u00059\\u0005A\\u0005Q\\u0005H\\u00054\\u0005F\\u0005S\\u0005D\\u0005W\\u0005N\\u0005@\\u0005S\\u0005F\\u0005W\\u0005N\\u0005A\\u0005>\\u0005@\\u0005N\\u0005>\\u0005>\\u0005A\\u0005;\\u0005I\\u0005;\\u0005L\\u00059\\u0005H\\u00058\\u00056\\u00058\\u0005H\\u0005A\\u00058\\u0005;\\u0005A\\u00059\\u00058\\u0005N\\u0005F\\u00059\\u0005N\\u0005W\\u0005F\\u0005L\\u00058\\u00056\\u0005T\\u0007e\\u0005X\\u0005W\\u0007X\\u0005Z\\u0005e\\u0005Z\\u0005X\\u0005]\\u0005^\\u0005_\\u0005ó\\u0004_\\u0005ÿ\\u0004^\\u0005e\\u0005b\\u0005e\\u0005^\\u0005f\\u0005]\\u0005_\\u0005ó\\u0004]\\u0005ó\\u0004f\\u0005^\\u0005]\\u0005f\\u0005ñ\\u0004f\\u0005ó\\u0004_\\u0005^\\u0005b\\u0005ñ\\u0004\\u0015\\u0005f\\u0005b\\u0005e\\u0005T\\u0007f\\u0005Z\\u0005e\\u0005Ø\\u0003s\\u0004h\\u0005?\\u0005h\\u0005s\\u0004h\\u0005i\\u0005Ø\\u0003:\\u0005i\\u0005h\\u0005ö\\u0002k\\u0005?\\u0005k\\u0005ö\\u0002ó\\u0002V\\u0005?\\u0005k\\u0005=\\u0005h\\u0005?\\u0005s\\u0004ö\\u0002?\\u0005=\\u0005:\\u0005h\\u0005m\\u0005'\\u0005\\u0006\\u0005a\\u0005d\\u0005p\\u0005q\\u0005l\\u0005t\\u0005a\\u0005w\\u0005\\u0011\\u0005\\u0011\\u0005w\\u0005s\\u0005p\\u0005w\\u0005a\\u0005}\\u0005w\\u0005p\\u0005%\\u0005l\\u0005q\\u0005m\\u0005\\u0006\\u0005\\u0011\\u0005q\\u0005z\\u0005%\\u0005\\u0011\\u0005s\\u0005m\\u0005m\\u0005s\\u0005l\\u0005l\\u0005%\\u0005'\\u0005%\\u0005z\\u0005/\\u0005'\\u0005m\\u0005l\\u0005\\u0005ƒ\\u0005„\\u0005ˆ\\u0005\\u0005Š\\u0005¾\\u0005Ç\\u0005¤\\u0005~\\u0005\\u0005‡\\u0005„\\u0005‡\\u0005\\u0005\\u0005~\\u0005‘\\u0005ˆ\\u0005\\u000b\\u0004†\\u0005†\\u0005Á\\u0003Œ\\u0005—\\u0005ƒ\\u0005’\\u0005†\\u0005\\u0007\\u0004Á\\u0003‘\\u0005•\\u0005¤\\u0005d\\u0004’\\u0005ƒ\\u0005’\\u0005_\\u0004—\\u0005õ\\u0004\\b\\u0005ƒ\\u0005¡\\u0005[\\u0004_\\u0004\\u000b\\u0005€\\u0005\\u001c\\u0005ƒ\\u0005\\b\\u0005d\\u0004‡\\u0005ƒ\\u0005—\\u0005\\u000b\\u0005„\\u0005€\\u0005€\\u0005™\\u0005\\u001c\\u0005’\\u0005¡\\u0005_\\u0004\\u000b\\u0005\\u0005„\\u0005õ\\u0004ƒ\\u0005\\u0005Š\\u0005\\u0005œ\\u0005Ž\\u0005¤\\u0005™\\u0005‘\\u0005~\\u0005•\\u0005ˆ\\u0005Š\\u0005~\\u0005™\\u0005€\\u0005Ž\\u0005]\\u0004~\\u0005‡\\u0005‡\\u0005—\\u0005]\\u0004¤\\u0005Ç\\u0005™\\u0005¤\\u0005Ž\\u0005‘\\u0005Ž\\u0005€\\u0005„\\u0005‡\\u0005„\\u0005ƒ\\u0005ˆ\\u0005]\\u0004X\\u0004ˆ\\u0005~\\u0005]\\u0004\\u0005‘\\u0005Ž\\u0005ˆ\\u0005†\\u0005\\u0005•\\u0005~\\u0005Š\\u0005\\u0005†\\u0005Œ\\u0005\\u0005Ž\\u0005„\\u0005ž\\u0005­\\u0005®\\u0005¬\\u0005È\\u0003Ù\\u0003\\u0005±\\u0005­\\u0005§\\u0005Õ\\u0003«\\u0005¦\\u0005ª\\u0005Õ\\u0003Õ\\u0003ª\\u0005«\\u0005\\u0005\\u0005±\\u0005¬\\u0005Õ\\u0003È\\u0003‹\\u0005°\\u0005–\\u0005§\\u0005«\\u0005\\u0005‹\\u0005®\\u0005°\\u0005®\\u0005‹\\u0005ž\\u0005ª\\u0005±\\u0005«\\u0005j\\u0005©\\u0005¦\\u0005j\\u0005K\\u0005°\\u0005¦\\u0005Õ\\u0003¬\\u0005©\\u0005j\\u0005°\\u0005©\\u0005­\\u0005¦\\u0005¬\\u0005j\\u0005¦\\u0005Â\\u0003§\\u0005\\u0005Ù\\u0003j\\u0005¬\\u0005<\\u0005K\\u0005j\\u0005®\\u0005©\\u0005°\\u0005±\\u0005\\u0005«\\u0005­\\u0005ª\\u0005¦\\u0005±\\u0005\\u0005\\u0005ª\\u0005­\\u0005±\\u0005©\\u0005®\\u0005­\\u0005´\\u0005Í\\u0005¶\\u0005a\\u0004e\\u00042\\u00057\\u0005Í\\u0005M\\u0005a\\u00042\\u0005Á\\u0005»\\u0005a\\u0004Á\\u0005¹\\u0005Å\\u0005´\\u0005\\u001d\\u0005›\\u0005Á\\u0005\\u001a\\u0005Á\\u00052\\u0005›\\u0005Æ\\u0005Á\\u0005š\\u0005È\\u0005Æ\\u0005M\\u0005Å\\u0005J\\u0005Á\\u0005Æ\\u0005»\\u0005¯\\u0005J\\u0005¥\\u0005È\\u0005¿\\u0005²\\u0005½\\u0005Ä\\u0005¹\\u0005¹\\u0005Ä\\u0005²\\u0005¥\\u0005J\\u0005Å\\u0005Ä\\u0005»\\u0005²\\u0005²\\u0005¿\\u0005¹\\u0005»\\u0005Æ\\u0005È\\u0005È\\u0005²\\u0005»\\u0005”\\u0005¯\\u0005¥\\u0005M\\u0005´\\u0005Å\\u0005M\\u0005Í\\u0005´\\u0005¹\\u0005¿\\u0005Å\\u0005»\\u0005¢\\u0005a\\u0004¥\\u0005Å\\u0005¿\\u0005É\\u0005Ë\\u0005Ï\\u0005Ó\\u0005Ñ\\u0005Î\\u0005P\\u0005Î\\u0005Ñ\\u0005Ë\\u0005Ó\\u0005Ï\\u0005Ï\\u0005Ó\\u0005Ù\\u0005Ë\\u0005Þ\\u0005Ü\\u0005Ø\\u0005µ\\u0005Ü\\u0005Ë\\u0005à\\u0005Þ\\u0005Ì\\u0005Ò\\u0005Ö\\u0005Ö\\u0005Ë\\u0005Ü\\u0005à\\u0005Ë\\u0005É\\u0005Ì\\u0005Ö\\u0005µ\\u0005G\\u0005P\\u0005Ñ\\u0005Ö\\u0005Ü\\u0005µ\\u0005â\\u0005\\u000e\\u0006Ð\\u0005Ò\\u0005Ì\\u0005Ñ\\u0005à\\u0005É\\u0005&\\u00065\\u0005Ñ\\u0005Ì\\u0005Ù\\u0005Ô\\u0005ç\\u0005Ó\\u0005Ô\\u0005Ù\\u0005Ð\\u0005Ô\\u0005Î\\u0005Ð\\u0005P\\u0005æ\\u0005æ\\u0005â\\u0005Ð\\u0005Ï\\u0005Ù\\u0005É\\u0005µ\\u0005Ø\\u0005‚\\u0006Ë\\u0005Ö\\u0005Ó\\u0005\\u000e\\u0006Ô\\u0005Ð\\u0005Ó\\u0005Î\\u0005Ô\\u0005Î\\u0005P\\u0005Ð\\u0005õ\\u0005â\\u0005æ\\u0005µ\\u0005¸\\u0005³\\u00055\\u0005G\\u0005Ñ\\u0005Ö\\u0005Ò\\u0005Ó\\u0005µ\\u0005‚\\u0006¸\\u0005Ó\\u0005Ò\\u0005Ñ\\u0005Þ\\u0005ë\\u0005Ü\\u0005ø\\u0005î\\u0005ï\\u0005ÿ\\u0005ì\\u0005\\u0003\\u0006\\u001b\\u0006\\u0005\\u0006ð\\u0005ÿ\\u0005\\u0003\\u0006\\u0002\\u0006ø\\u0005\\u0004\\u0006ý\\u0005ì\\u0005ï\\u0005ð\\u0005\\u0002\\u0006ý\\u0005\\u0004\\u0006ÿ\\u0005\\u0004\\u0006ï\\u0005ï\\u0005\\u0004\\u0006ø\\u0005\\u0002\\u0006\\u0003\\u0006\\b\\u0006ô\\u0005å\\u0005ì\\u0005ô\\u0005ì\\u0005ñ\\u0005ì\\u0005å\\u0005\\u0003\\u0006=\\u0000ð\\u0005ï\\u0005\\u001b\\u0006ð\\u00059\\u0000ì\\u0005ð\\u0005ñ\\u0005å\\u0005\\b\\u0006\\u0003\\u0006ÿ\\u0005\\u0002\\u0006\\u0004\\u0006ÿ\\u0005ï\\u0005ì\\u00059\\u0000ð\\u0005=\\u0000ñ\\u0005ð\\u0005\\u0005\\u0006\\t\\u0006\\u001d\\u0006\\r\\u0006\\u0015\\u0006%\\u0006\\u0017\\u0006\\u001d\\u0006\\t\\u0006\\u000b\\u0006C\\u0000\\u001a\\u0006:\\u0000\\u000f\\u0006\\u001f\\u0006è\\u0005\\u001e\\u0006%\\u0006\\u0015\\u0006\\u0006\\u0006\\t\\u0006\\u001f\\u0006#\\u0006\\u001e\\u0006\\u0015\\u0006\\u001a\\u0006!\\u0006\\u0010\\u0006\\u001a\\u0006\\u0006\\u0006\\u001c\\u0006”\\u0006'\\u0006\\u0018\\u0006\\u0017\\u0006%\\u0006,\\u0006,\\u0006%\\u0006)\\u0006:\\u0000\\u001a\\u0006\\u001c\\u0006Ú\\u0005è\\u0005\\u001d\\u0006%\\u0006\\u001e\\u0006)\\u0006\\t\\u0006\\u0006\\u0006\\u001a\\u0006\\u001d\\u0006)\\u0006\\u001e\\u0006\\r\\u0006è\\u0005\\u001f\\u0006\\r\\u0006\\u001f\\u0006\\t\\u0006!\\u0006\\u001a\\u0006B\\u0000\\u001a\\u0006\\u0010\\u0006\\t\\u0006Ú\\u0005\\u001d\\u0006Ê\\u0005\\u001d\\u0006'\\u0006Ê\\u0005\\u000f\\u0006è\\u0005Õ\\u0005\\r\\u0006\\u001d\\u0006è\\u0005#\\u0006\\u0018\\u0006\\u001e\\u0006\\u001d\\u0006\\u001e\\u0006'\\u0006)\\u0006\\u001d\\u0006\\u000b\\u0006\\u001f\\u0006\\u000f\\u0006ó\\u0005\\u000f\\u0006ã\\u0005ö\\u0005\\t\\u0006.\\u0006\\u000b\\u0006\\u001e\\u0006\\u0018\\u0006'\\u0006\\u000f\\u0006ö\\u0005ò\\u0005\\u0006\\u0006\\u001f\\u0006ó\\u0005B\\u0006E\\u0005T\\u0005R\\u0005í\\u00058\\u00066\\u0006R\\u00058\\u0006÷\\u00058\\u0006í\\u0005;\\u0006O\\u00053\\u0005ä\\u0005;\\u0006\\u0007\\u0006;\\u0006ä\\u0005O\\u0005\\u0007\\u0006;\\u0006\\u0000\\u00062\\u0006;\\u00063\\u00052\\u00063\\u0005B\\u00053\\u0006\\u0001\\u0006<\\u0006\\u0001\\u00063\\u0006û\\u0005A\\u0006ú\\u0005þ\\u0005U\\u00057\\u0006@\\u00067\\u0006:\\u0006@\\u0006?\\u00069\\u0006ù\\u00055\\u0006>\\u0006ü\\u0005C\\u0005=\\u00064\\u0006F\\u0006O\\u0006|\\u0005O\\u0006D\\u0006|\\u0005P\\u0006K\\u0006I\\u0006P\\u0006F\\u0006R\\u0006¯\\u0002˜\\u0002K\\u0006I\\u0006F\\u0006P\\u0006D\\u0006v\\u0005|\\u0005¯\\u0002K\\u0006³\\u0002|\\u0005n\\u0005F\\u0006F\\u0006I\\u0006O\\u0006M\\u0006K\\u0006˜\\u0002U\\u0006D\\u0006O\\u0006P\\u0006³\\u0002K\\u0006–\\u0002i\\u0002X\\u0006`\\u0006V\\u0006[\\u0006L\\u0006–\\u0002s\\u0006g\\u0006V\\u0006`\\u0006`\\u0006\\\\\\u0006Y\\u0006_\\u0006\\\\\\u0006W\\u0006f\\u0006V\\u0006g\\u0006[\\u0006X\\u0006W\\u0006a\\u0006\\\\\\u0006o\\u0006X\\u0006[\\u0006V\\u0006C\\u0006k\\u0006i\\u0006c\\u0006d\\u0006]\\u0006‘\\u0002_\\u0006i\\u0002c\\u0006]\\u0006g\\u0006`\\u0006Y\\u0006q\\u0006T\\u0006N\\u0006H\\u0006s\\u0006H\\u0006J\\u0006[\\u0006\\\\\\u0006`\\u0006k\\u0006]\\u0006´\\u0006h\\u0006g\\u0006`\\u0006\\\\\\u0006a\\u0006Y\\u0006H\\u0006s\\u0006T\\u0006u\\u0006y\\u0006k\\u0006m\\u0006o\\u0006„\\u0002J\\u0006L\\u0006s\\u0006–\\u0002X\\u0006s\\u0006i\\u0002W\\u0006X\\u0006]\\u0006k\\u0006C\\u0006C\\u0006T\\u0006]\\u0006h\\u0006d\\u0006g\\u0006`\\u0006q\\u0006h\\u0006X\\u0006V\\u0006s\\u0006s\\u0006V\\u0006f\\u0006T\\u0006f\\u0006]\\u0006s\\u0006f\\u0006T\\u0006o\\u0006\\\\\\u0006_\\u0006i\\u0002_\\u0006W\\u0006[\\u0006W\\u0006\\\\\\u0006f\\u0006g\\u0006]\\u0006k\\u0006y\\u0006i\\u0006m\\u0006a\\u0006o\\u0006o\\u0006_\\u0006‘\\u0002q\\u0006d\\u0006h\\u0006g\\u0006d\\u0006c\\u0006¼\\u0005\\u0006+\\u0006Â\\u0005¼\\u0005+\\u0006†\\u0006Ý\\u0005ß\\u0005\\u0006¼\\u0005·\\u0005ˆ\\u0006Ý\\u0005†\\u0006ˆ\\u0006ƒ\\u0006\\u0006Ý\\u0005ˆ\\u0006ê\\u0005†\\u0006ß\\u0005ƒ\\u0006ƒ\\u0006ˆ\\u0006†\\u0006×\\u0005Û\\u0005ê\\u0005\\u0016\\u0006×\\u0005\\u0014\\u0006\\u0014\\u0006ê\\u0005Ž\\u0006\\u0014\\u0006×\\u0005ê\\u0005\\u0016\\u0006+\\u0006\\u0006\\u0016\\u0006\\u0006×\\u0005‹\\u0006\\u0006‰\\u0006\\u0006‘\\u0006‰\\u0006\\u0006é\\u0005‡\\u0006\\\\\\\"\\u0006\\u0013\\u0006\\u0006¡\\u0006\\\\\\\"\\u0006‹\\u0006~\\u0006\\u0006‡\\u0006\\u0006‰\\u0006‡\\u0006\\u0006‹\\u0006\\\\\\\"\\u0006‰\\u0006\\u0006‡\\u0006\\u0006™\\u0006–\\u0006\\u0006–\\u0006Ÿ\\u0006—\\u0006–\\u0006›\\u0006$\\u0006¤\\u0006–\\u0006„\\u0006á\\u0005(\\u0006(\\u0006•\\u0006„\\u0006™\\u0006•\\u0006\\u0019\\u0006™\\u0006\\u0019\\u0006$\\u0006$\\u0006–\\u0006™\\u0006¤\\u0006›\\u0006–\\u0006\\u0006„\\u0006™\\u0006•\\u0006™\\u0006„\\u0006Ÿ\\u0006–\\u0006—\\u0006Í\\u0006Ù\\u0006­\\u0006§\\u0006­\\u0006«\\u0006³\\u0006Í\\u0006­\\u0006­\\u0006§\\u0006¯\\u0006³\\u0006­\\u0006¯\\u0006»\\u0006l\\u0006½\\u0006½\\u0006¸\\u0006À\\u0006¶\\u0006Â\\u0006l\\u0006Å\\u0006À\\u0006¸\\u0006¸\\u0006½\\u0006Â\\u0006Â\\u0006½\\u0006l\\u0006l\\u0006»\\u0006x\\u0006É\\u0006Ë\\u0006±\\u0006Î\\u0006¼\\u0006¾\\u0006É\\u0006±\\u0006Î\\u0006Î\\u0006±\\u0006I\\bÇ\\u0006Î\\u0006I\\b¾\\u0006É\\u0006Î\\u0006º\\u0006Î\\u0006Ç\\u0006º\\u0006Ç\\u0006u\\u0007Î\\u0006º\\u0006¼\\u0006…\\u0006ž\\u0006€\\u0006Ï\\u0006\\u0006€\\u0006 \\u0006Õ\\u0006Ó\\u0006Ò\\u0006 \\u0006×\\u0006×\\u0006 \\u0006˜\\u0006Ó\\u0006Õ\\u0006Ï\\u0006Õ\\u0006 \\u0006Ò\\u0006“\\u0006Ï\\u0006Õ\\u0006×\\u0006˜\\u0006œ\\u0006Ï\\u0006€\\u0006ž\\u0006“\\u0006\\u0006Ï\\u0006ž\\u0006Ó\\u0006Ï\\u0006Ó\\u0006ž\\u0006 \\u0006ª\\u0006Ø\\u0006°\\u0006Ê\\u0006¿\\u0006Ü\\u0006á\\u0006©\\u0006°\\u0006Ü\\u0006Ø\\u0006Ì\\u0006¬\\u0006Ø\\u0006ª\\u0006¿\\u0006Ã\\u0006Ü\\u0006°\\u0006Þ\\u0006á\\u0006Ü\\u0006Ú\\u0006Ø\\u0006Þ\\u0006Ø\\u0006Ú\\u0006Ê\\u0006Ü\\u0006Ì\\u0006Þ\\u0006°\\u0006Ø\\u0006ç\\u0006î\\u0006þ\\u0006µ\\u0006^\\u0006e\\u0006\\n\\u0007ã\\u0006ô\\u0006¨\\u0001ó\\u0006ý\\u0006n\\u0006ò\\u0006b\\u0006ä\\u0006þ\\u0006ñ\\u0006æ\\u0006\\u0001\\u0007é\\u0006ñ\\u0006\\u0007\\u0007ê\\u0006b\\u0006ð\\u0006\\n\\u0007ç\\u0006ã\\u0006í\\u0006\\u0002\\u0007ä\\u0006ù\\u0006ù\\u0006Ä\\u0006ì\\u0006å\\u0006é\\u0006\\u000e\\u0007õ\\u0006ö\\u0006ý\\u0006\\u0005\\u0007æ\\u0006\\u0007\\u0007Û\\u0006ù\\u0006ß\\u0006\\u001a\\u0007ä\\u0006\\u0006\\u0007÷\\u0006·\\u0006Á\\u0006\\u000e\\u0007\\u0011\\u0007å\\u0006¶\\u0002ò\\u0006n\\u0006ì\\u0006ü\\u0006ã\\u0006ý\\u0006ó\\u0006õ\\u0006ë\\u0006¨\\u0001\\u0015\\u0007Ä\\u0006·\\u0006ü\\u0006\\u0010\\u0007«\\u0001\\f\\u0007ò\\u0006õ\\u0006b\\u0006\\f\\u0007û\\u0006\\u0010\\u0007÷\\u0006ø\\u0006·\\u0006ä\\u0006ñ\\u0006\\u0006\\u0007\\u0002\\u0007ç\\u0006þ\\u0006ú\\u0006\\u0015\\u0007\\u0010\\u0007\\u0010\\u0007\\u0015\\u0007«\\u0001\\u0005\\u0007ï\\u0006ú\\u0006ö\\u0006¶\\u0002q\\u0002þ\\u0006î\\u0006ï\\u0006\\u0002\\u0007ù\\u0006ì\\u0006e\\u0006ô\\u0006÷\\u0006Ä\\u0006ù\\u0006Û\\u0006Ý\\u0006Ä\\u0006Û\\u0006\\u0003\\u0007\\u0007\\u0007ñ\\u0006û\\u0006\\u0005\\u0007ú\\u0006û\\u0006ú\\u0006\\u0010\\u0007\\u0016\\u0007\\u0013\\u0007\\u001a\\u0007ø\\u0006ã\\u0006ü\\u0006ú\\u0006ï\\u0006ë\\u0006Z\\u0006b\\u0006\\n\\u0007ô\\u0006e\\u0006r\\u0006î\\u0006ç\\u0006í\\u0006\\u0013\\u0007ä\\u0006\\u001a\\u0007\\u0006\\u0007ñ\\u0006ê\\u0006\\u0007\\u0007\\u0003\\u0007\\u0005\\u0007ð\\u0006õ\\u0006ó\\u0006¨\\u0001ý\\u0006¤\\u0001ä\\u0006\\u0002\\u0007þ\\u0006\\f\\u0007\\u0005\\u0007û\\u0006\\u0003\\u0007þ\\u0006ï\\u0006\\u0005\\u0007\\u0001\\u0007æ\\u0006ë\\u0006ï\\u0006¨\\u0001ü\\u0006ì\\u0006Ä\\u0006ô\\u0006r\\u0006\\n\\u0007å\\u0006\\u0011\\u0007\\b\\u0007\\u0003\\u0007ñ\\u0006þ\\u0006ã\\u0006ø\\u0006ô\\u0006\\n\\u0007ð\\u0006í\\u0006\\u0015\\u0007ú\\u0006ë\\u0006ö\\u0006õ\\u0006ò\\u0006e\\u0006÷\\u0006µ\\u0006ø\\u0006ü\\u0006·\\u0006í\\u0006ï\\u0006î\\u0006Z\\u0006\\n\\u0007r\\u0006ù\\u0006ä\\u0006\\u0013\\u0007µ\\u0006÷\\u0006Á\\u0006ã\\u0006\\u0002\\u0007ì\\u0006ï\\u0006ó\\u0006¨\\u0001\\u0013\\u0007\\u0016\\u0007â\\u0006ã\\u0006ç\\u0006\\u0002\\u0007ß\\u0006\\u0013\\u0007â\\u0006å\\u0006\\u0019\\u0007é\\u0006ð\\u0006ó\\u0006í\\u0006\\u0018\\u0007â\\u0006\\u0016\\u0007æ\\u0006ê\\u0006\\u0007\\u0007\\b\\u0007+\\b\\u0016\\u0007ð\\u0006b\\u0006õ\\u0006†\\u0002¶\\u0002n\\u0006\\u0016\\u0007+\\b\\u0018\\u0007\\u0019\\u0007\\b\\u0007\\u0016\\u0007ô\\u0006ø\\u0006÷\\u0006\\u0016\\u0007\\u001a\\u0007\\u0019\\u0007\\u0003\\u0007ï\\u0006\\u0005\\u0007\\u0013\\u0007ß\\u0006ù\\u0006\\u001a\\u0007ê\\u0006\\u0019\\u0007\\u001a\\u0007\\u0006\\u0007ê\\u0006\\u0019\\u0007ê\\u0006é\\u0006ö\\u0006q\\u0002ý\\u0006ó\\u0006ï\\u0006í\\u0006ý\\u0006q\\u0002¤\\u0001¶\\u0002ö\\u0006ò\\u0006\\b\\u0007\\u0019\\u0007å\\u0006ã\\u0006\\n\\u0007í\\u0006æ\\u0006é\\u0006ê\\u0006#\\u0007~\\u0001\\u001b\\u0007¥\\u0007%\\u0007\\u001b\\u0007#\\u0007¹\\u0001~\\u0001\\u001b\\u0007~\\u0001œ\\u0001œ\\u0001é\\u0004¥\\u0007é\\u0004Ê\\u0004¥\\u0007œ\\u0001¥\\u0007\\u001b\\u0007¹\\u0001!\\u0007V\\t%\\u0007#\\u0007\\u001b\\u0007#\\u0007!\\u0007¹\\u0001\\u001e\\u0007!\\u0007(\\u0007F\\u0007B\\u0007-\\u0007*\\u0006\\f\\u0006-\\u0006*\\u0007J\\u0007c\\bâ\\u0007:\\u0007ä\\u0007/\\u0007A\\u0007M\\u0007:\\u0007E\\u0007ä\\u0007:\\u0007F\\u0007E\\u0007+\\u0007/\\u0007,\\u00071\\u0006\\n\\u0006\\u0012\\u0006Ã\\u0005B\\u0007H\\u0007 \\u0005H\\u00078\\u0007,\\u0007/\\u0007M\\u0007,\\u0007>\\u00072\\u0007F\\u0007:\\u0007B\\u0007Ã\\u0005-\\u0006;\\u0007\\f\\u00065\\u0007J\\u0007\\f\\u00061\\u00065\\u0007:\\u00078\\u0007B\\u0007;\\u0007-\\u0006\\f\\u0006+\\u0007-\\u0007;\\u00072\\u0007F\\u0007,\\u0007F\\u0007+\\u0007,\\u0007G\\u0007;\\u0007J\\u0007B\\u0007Ã\\u0005;\\u0007,\\u0007M\\u0007>\\u0007/\\u0007G\\u0007*\\u0007+\\u0007G\\u0007/\\u0007;\\u0007\\f\\u0006J\\u0007G\\u0007+\\u0007;\\u0007H\\u0007º\\u0005Ã\\u0005-\\u0007+\\u0007F\\u0007H\\u0007 \\u0005º\\u0005-\\u0007B\\u0007;\\u0007F\\u00072\\u0007E\\u0007B\\u00078\\u0007H\\u0007*\\u0007G\\u0007J\\u0007X\\u0007N\\u0007Y\\u0007N\\u0007R\\u0007]\\u0007O\\u0002Q\\u0007O\\u0007o\\u0005U\\u0007G\\u0006[\\u0005N\\u0007X\\u0007­\\u0002O\\u0007Y\\u0007O\\u0002O\\u0007­\\u0002V\\u0007U\\u0007X\\u0007O\\u0007V\\u0007Y\\u0007U\\u0007o\\u0005c\\u0005V\\u0007O\\u0007S\\u0007X\\u0007U\\u0007Y\\u0005R\\u0007N\\u0007^\\u0007S\\u0006Q\\u0007Q\\u0006U\\u0007V\\u0007S\\u0007[\\u0005^\\u0007N\\u0007V\\u0007X\\u0007Y\\u0007O\\u0007Q\\u0007S\\u0006Y\\u0007N\\u0007]\\u0007R\\u0007®\\u0004«\\u0004]\\u0007R\\u0007«\\u0004´\\u0002Q\\u0006Q\\u0007S\\u0007G\\u0006U\\u0007®\\u0004R\\u0007Z\\u0007S\\u0006G\\u0006S\\u0007ß\\b^\\u0007[\\u0005S\\u0007O\\u0007S\\u0006Z\\u0007R\\u0007^\\u0007]\\u0007­\\u0002Y\\u0007e\\u0007v\\u0006v\\u0007e\\u0007v\\u0007j\\u0007e\\u0007b\\u0007n\\u0007q\\u0007w\\u0006f\\u0007|\\u0006w\\u0006q\\u0007t\\u0006¹\\u0006t\\u0007r\\u0007g\\u0007t\\u0007t\\u0007Æ\\u0006r\\u0007j\\u0006x\\u0007r\\u0005u\\u0005E\\u0006r\\u0005u\\u0005x\\u0005E\\u0006j\\u0006{\\u0006x\\u0007r\\u0005E\\u0006j\\u0006{\\u0005r\\u0005x\\u0007€\\u0007î\\u0007}\\u0007c\\u0007h\\u0007a\\u0007\\u0007î\\u0007h\\u0007l\\u0007€\\u0007{\\u0007a\\u0007î\\u0007€\\u0007l\\u0007a\\u0007€\\u0007h\\u0007î\\u0007a\\u0007{\\u0007€\\u0007}\\u0007—\\u0007¨\\u0007‹\\u0007É\\u0004Ç\\u0004Š\\u0007|\\u0007\\u0007 \\u0007\\u001f\\u0007\\\\\\\"\\u0007¡\\u0007¤\\u0007É\\u0004—\\u0007 \\u0007\\u0007¢\\u0007…\\u0007‡\\u0007¨\\u0007Š\\u0007Ç\\u0004«\\u0007Ÿ\\u0007Š\\u0007«\\u0007–\\u0007‡\\u0007…\\u0007\\u0007'\\u0007\\u001f\\u0007£\\u0007¨\\u0007‡\\u0007˜\\u0007¨\\u0007—\\u0007‡\\u0007‰\\u0007 \\u0007Ÿ\\u0007˜\\u0007Š\\u0007‹\\u0007¤\\u0007—\\u0007’\\u0007Ž\\u0007“\\u0007‡\\u0007–\\u0007‰\\u0007$\\u0007¤\\u0007£\\u0007'\\u0007\\u0007š\\u0007“\\u0007˜\\u0007§\\u0007­\\u0007–\\u0007…\\u0007\\u0007Œ\\u0007 \\u0007‹\\u0007£\\u0007¤\\u0007\\u0007 \\u0007Œ\\u0007Š\\u0007˜\\u0007—\\u0007Š\\u0007—\\u0007É\\u0004¢\\u0007\\u0007¡\\u0007Ç\\u0004æ\\u0004©\\u0007|\\u0007 \\u0007‰\\u0007¢\\u0007£\\u0007‡\\u0007¢\\u0007¡\\u0007£\\u0007˜\\u0007Ÿ\\u0007§\\u0007'\\u0007š\\u0007\\u0007“\\u0007…\\u0007¨\\u0007¡\\u0007\\\\\\\"\\u0007£\\u0007$\\u0007£\\u0007\\\\\\\"\\u0007\\u0007\\u001f\\u0007¡\\u0007¨\\u0007£\\u0007‹\\u0007§\\u0007’\\u0007“\\u0007“\\u0007Ž\\u0007…\\u0007\\u0007Œ\\u0007š\\u0007˜\\u0007“\\u0007¨\\u0007‡\\u0007 \\u0007¢\\u0007š\\u0007Œ\\u0007\\u0007°\\u0007¹\\u0007½\\u0007¸\\u0007°\\u0007&\\u0007²\\u0007µ\\u0007¹\\u0007½\\u0007¹\\u0007µ\\u0007°\\u0007½\\u0007º\\u0007¸\\u0007&\\u0007›\\u0007¸\\u0007›\\u0007²\\u0007°\\u0007\\u001c\\u0007&\\u0007²\\u0007›\\u0007¿\\u0007¹\\u0007¸\\u0007²\\u0007¸\\u0007¹\\u0007°\\u0007ú\\u0007²\\u0007¿\\u0007É\\u0007Ê\\u0007Ý\\u0007Å\\u0007Ê\\u0007Ç\\u0007Õ\\u0007Â\\u0007\\u0003Ç\\u0007Ã\\u0007Ø\\u0007Õ\\u0007\\u0003Ö\\u0007Ô\\u0007g\\u0003\\u0003Ì\\u0007Õ\\u0007É\\u0007Ã\\u0007Û\\u0007á\\u0007Ë\\u0007È\\u0007Â\\u0007Þ\\u0007Ê\\u0007É\\u0007È\\u0007Ë\\u0007Ð\\u0007Ã\\u0007Ê\\u0007Þ\\u0007Ô\\u0007Â\\u0007È\\u0007R\\u0003[\\u0003\\u0003Þ\\u0007Û\\u0007Ã\\u0007Ì\\u0007B\\bÎ\\u0007á\\u0007Ö\\u0007å\\u0007Þ\\u0007Õ\\u0007Û\\u0007Ë\\u0007Ì\\u0007Î\\u0007Â\\u0007Ô\\u0007\\u0003Ð\\u0007Ô\\u0007È\\u0007Õ\\u0007Ö\\u0007Û\\u00077\\u0007á\\u0007å\\u0007Ç\\u0007Ê\\u0007Ã\\u0007Å\\u0007^\\bÝ\\u0007ã\\u0007Ø\\u0007á\\u0007Ì\\u0007Ý\\u0007B\\b[\\u0003w\\u0003ß\\u0007Ú\\u0007Ð\\u0007Ë\\u0007á\\u0007Û\\u0007Ö\\u0007Ÿ\\u00057\\u0007Z\\u0004Ò\\u0007Ë\\u0007Î\\u0007ß\\u0007\\u0003[\\u0003É\\u0007Ý\\u0007Ì\\u0007Ð\\u0007e\\u0003Ô\\u0007Â\\u0007Ì\\u0007Ë\\u0007á\\u00077\\u00079\\u00077\\u0007å\\u0007Z\\u0004Þ\\u0007É\\u0007Õ\\u0007Ú\\u0007Ë\\u0007Ò\\u0007ß\\u0007T\\u0004å\\u0007Ö\\u0007ß\\u0007å\\u0007Â\\u0007Õ\\u0007Ì\\u0007Ý\\u0007Ê\\u0007Å\\u0007\\u0003ß\\u0007Ö\\u0007ã\\u0007D\\u0007Ø\\u0007Ø\\u0007Ã\\u0007á\\u0007Ð\\u0007Ú\\u0007\\u001a\\bè\\u0007À\\u0007ç\\u0007™\\u0007~\\u0007ç\\u0007~\\u0007ï\\u0007ì\\u0007~\\u0007ì\\u0007ç\\u0007ç\\u0007ì\\u0007è\\u0007ç\\u0007À\\u0007™\\u0007ï\\u0007‚\\u0007ì\\u0007À\\u0007œ\\u0007™\\u0007w\\bð\\u0007é\\u0007S\\bw\\bó\\u0007ò\\u0007÷\\u0007û\\u0007ò\\u0007û\\u0007ð\\u0007Á\\u0007ð\\u0007û\\u0007ó\\u0007ë\\u0007S\\bí\\u0007„\\u0007ó\\u0007ò\\u0007ð\\u0007w\\bó\\u0007w\\bé\\u0007Á\\u0007é\\u0007ð\\u0007ó\\u0007é\\u0007í\\u0007ó\\u0007„\\u0007ë\\u0007k\\u0007ˆ\\u0007”\\u0007ˆ\\u0007k\\u0007z\\u0007¯\\u0007}\\u0006p\\u0007•\\u0007¬\\u0007o\\u0007•\\u0007o\\u0007m\\u0007m\\u0007o\\u0007d\\u0007\\b\\b\\u0000\\bù\\u0007\\u0001\\bý\\u0007\\u0004\\bù\\u0007ô\\u0007\\b\\bý\\u0007\\u0000\\b\\b\\b\\u0001\\b\\u0004\\bä\\bý\\u0007\\b\\b\\u0004\\b\\n\\b¶\\u0007´\\u0007ü\\u0007\\u0002\\bþ\\u0007ø\\u0007ÿ\\u0007\\n\\bø\\u0007\\n\\b³\\u0007\\n\\bÿ\\u0007\\u0002\\b\\n\\b\\u0002\\b\\u000b\\b¶\\u0007\\n\\b\\u000b\\b4\\b8\\b\\u0019\\b0\\b)\\b,\\b2\\b\\u0013\\b\\u0015\\b.\\b\\u0013\\b2\\b\\u0010\\b\\\\\\\"\\b\\u001c\\b\\u000f\\u0007\\u0017\\b\\u0012\\u0007\\u0012\\b\\u001f\\b\\u001b\\bF\\u0001W\\u0001\\u000f\\b,\\b\\u001f\\b\\u0012\\b\\u0014\\b\\u0015\\b\\u0013\\bB\\u0001d\\u0003#\\b#\\b\\u0015\\b\\u001c\\bC\\u0001#\\b\\\\\\\"\\bd\\u0003Ï\\u0007\\u0019\\b\\\\\\\"\\b$\\b\\u000f\\b$\\b\\\\\\\"\\b\\u0010\\b\\u000f\\b$\\b7\\b\\u0014\\b'\\b\\u0011\\b \\b7\\b\\u0010\\b.\\b0\\b\\u0012\\b\\t\\u0007\\u001f\\b,\\b\\u001c\\b\\u0015\\b\\u0014\\b\\u0015\\b#\\b8\\b$\\b\\u0010\\b7\\b\\u001c\\b\\\\\\\"\\b#\\b'\\b\\u001b\\b\\u0012\\u0007\\u0015\\b8\\b\\u001e\\b\\u001f\\b\\u0012\\u0007\\u001b\\b\\u000f\\b7\\b\\u000e\\b\\u001c\\b\\u0014\\b\\u0010\\b;\\b&\\b\\u0017\\b\\t\\u0007\\u0012\\u0007\\u001f\\b€\\t\\u000e\\b&\\b\\u0017\\b&\\b'\\b\\u0019\\b8\\bd\\u00032\\b\\u0015\\b\\u001e\\b \\b\\u0010\\b\\u0011\\b7\\b&\\b\\u000e\\b\\u0012\\b0\\b,\\bW\\u0001\\\\\\\"\\b\\u000f\\b0\\b.\\b6\\bd\\u00038\\b#\\b0\\bG\\b)\\b'\\b\\u0014\\b\\u001b\\b\\u0012\\b\\u0013\\b.\\b\\u0013\\b\\u0012\\b\\u0014\\b\\u0012\\u0007\\u0017\\b'\\b\\u0010\\b\\u0014\\b\\u0011\\b \\b\\u0011\\b'\\b7\\b \\b&\\b'\\b&\\b \\b\\u001e\\b8\\b4\\b€\\t&\\b’\\t\\u000e\\bF\\u0001\\u000f\\b\\u0012\\b\\u001b\\b\\u0014\\bO\\bƒ\\u0007i\\u0007<\\bL\\bV\\b\\u001d\\bD\\b1\\bD\\bÑ\\u0007C\\b]\\bV\\bA\\bJ\\bK\\bÈ\\u0006\\\\\\bT\\b5\\bƒ\\u0007O\\bê\\u0007W\\bH\\b\\\\\\b<\\bK\\bJ\\bE\\bê\\u0007O\\b@\\b<\\ba\\b¨\\u0006T\\b¦\\u0006]\\bÄ\\u0007Æ\\u0007@\\b[\\bL\\b¦\\u0006H\\bM\\b®\\u0006M\\bH\\bH\\b[\\b®\\u0006<\\bU\\bK\\bY\\b[\\bW\\b3\\b\\u0018\\bÙ\\u0007T\\bH\\b¦\\u0006/\\b5\\bF\\bY\\bW\\b=\\bV\\bL\\bA\\b@\\bL\\b<\\ba\\b<\\bJ\\bC\\u0007X\\bZ\\ba\\b²\\u0006®\\u0006C\\u0007Z\\bÆ\\u0007P\\bA\\bY\\b\\u0017\\u0007*\\b(\\bP\\bC\\bA\\bI\\u0007X\\b1\\u0007L\\b[\\bY\\bN\\bE\\bK\\b[\\b@\\b®\\u0006N\\b_\\bE\\bZ\\b?\\b`\\bÙ\\u0007Ñ\\u0007D\\bD\\b=\\b>\\b`\\b?\\b_\\b\\u0017\\u0007(\\bà\\u0006J\\b²\\u0006a\\b¦\\u0006M\\b®\\u0006U\\b`\\bK\\bZ\\b]\\bÆ\\u0007X\\b?\\bZ\\bY\\b=\\bP\\bE\\bI\\u0007R\\b_\\bI\\u0007E\\bD\\bC\\bP\\b1\\b>\\b-\\bV\\b]\\bZ\\b<\\bV\\bU\\bO\\bi\\u0007K\\b?\\bX\\bI\\u0007`\\b_\\bN\\b?\\bI\\u0007_\\bi\\u0007s\\u0007K\\b1\\bD\\b>\\bF\\bT\\b¨\\u0006X\\bC\\u00071\\u0007-\\b\\\\\\b5\\b\\\\\\b=\\bW\\b×\\u0007C\\u0007Æ\\u0007F\\b5\\bT\\bs\\u0007È\\u0006K\\b`\\bN\\bK\\bP\\b=\\bD\\bE\\bO\\bK\\bI\\u0007=\\u0007R\\b]\\bA\\bÜ\\u0007H\\bT\\b\\\\\\bA\\bC\\bÑ\\u0007Ù\\u0007D\\b3\\b>\\b=\\b\\\\\\b=\\u0007I\\u00070\\u0007A\\bL\\bY\\bà\\u0006(\\b¨\\u0006Ñ\\u0007Í\\u0007A\\bE\\bR\\bê\\u0007\\\\\\b-\\b>\\bU\\bZ\\b`\\b[\\bH\\bW\\b@\\ba\\b®\\u00063\\bD\\b\\u001d\\b¨\\u0006(\\bF\\bV\\bZ\\bU\\bl\\bg\\bf\\bK\\u00076\\u0007g\\bj\\b\\bn\\bE\\tj\\bl\\bd\\bg\\bl\\bg\\bd\\bK\\u0007n\\bd\\bj\\bl\\bj\\bd\\b6\\u0007q\\bf\\bg\\b6\\u0007f\\bt\\bL\\u0007?\\u0007s\\bL\\u0007t\\bs\\b<\\u0007L\\u0007v\\bs\\bt\\bv\\bt\\bñ\\u0007s\\bQ\\b<\\u0007s\\bv\\bQ\\bt\\bõ\\u0007ñ\\u0007/\\u0006r\\b4\\u0007W\\u0000 \\u0006A\\u0000r\\b\\u0011\\u0006 \\u0006x\\bW\\u0000p\\br\\b \\u0006x\\bW\\u0000x\\b \\u00060\\u0006\\u0011\\u0006r\\b3\\u0007r\\bp\\bp\\br\\bx\\bz\\bp\\bW\\u0000ï\\b~\\bF\\të\\b\\b\\u0007\\bh\\bF\\t~\\bƒ\\b~\\bë\\b\\u0007\\bƒ\\bë\\b…\\b~\\bƒ\\by\\u0007z\\u0006–\\b\\b’\\b\\b\\b‡\\b”\\b†\\u0007\\u0007®\\u0007—\\b®\\u0007\\u0007‡\\b—\\b\\u0007‡\\b¥\\u0006”\\b\\b—\\b‡\\b’\\b—\\b\\b—\\b’\\b–\\bÊ\\b‹\\b’\\b–\\b’\\b‹\\b—\\b–\\bz\\u0006—\\bz\\u0006®\\u0007\\bž\\bš\\u0006£\\b¤\\b™\\b£\\b¨\\b¤\\b’\\u0004ª\\bÜ\\u0004°\\b¥\\b‘\\u0007Ä\\b¯\\bÌ\\b°\\b‘\\u0007¦\\u0007˜\\b±\\b\\u0007´\\b‹\\u0004‚\\u0004°\\b¬\\b¥\\b¡\\b²\\b™\\bž\\b˜\\b¥\\b«\\b¶\\b¯\\b‹\\u0004«\\bª\\b¦\\bç\\u0004®\\bç\\u0004¦\\bª\\u0007±\\b†\\b\\u0007£\\b¬\\b«\\b¶\\bÌ\\b¯\\bª\\b«\\b¬\\b°\\b¦\\b©\\b¬\\b©\\bª\\b™\\b¤\\b¡\\bª\\u0007¦\\bž\\u0007£\\b«\\b¯\\b´\\b›\\b¶\\b´\\b¶\\b‹\\u0004«\\b‹\\u0004¶\\bž\\u0007¦\\b¦\\u0007¯\\b¨\\b£\\b±\\b£\\u0006†\\bª\\b©\\bÜ\\u0004°\\b©\\b¬\\b¬\\b£\\b¥\\b‘\\u0007¥\\b˜\\bž\\b™\\b¢\\b˜\\bž\\b±\\b¥\\b™\\bž\\b™\\b¥\\b£\\b²\\b¢\\b™\\b‹\\u0004ª\\b’\\u0004²\\bÑ\\u0006¢\\b¦\\u0007¦\\b°\\bÖ\\u0006¢\\bÑ\\u0006Ü\\u0004©\\b¦\\bÖ\\u0006ž\\b¢\\bš\\u0006ž\\bÖ\\u0006®\\bÜ\\u0004¦\\b\\u0007‘\\u0007˜\\b \\bÑ\\u0006²\\b\\bš\\u0006£\\u0006\\b±\\bž\\b\\b£\\u0006±\\bÄ\\b¨\\b¯\\b¤\\b½\\b¡\\b¨\\b½\\b¤\\b´\\b¾\\u0004›\\bŒ\\u0006“\\b¢\\u0006¹\\bº\\b¼\\b“\\bŒ\\u0006Š\\u0006\\bŒ\\bŠ\\u0006·\\bÔ\\u0006Ð\\u0006º\\b·\\bŸ\\bÐ\\u0006Ÿ\\b·\\b\\bº\\b¹\\b’\\u0006º\\b\\b“\\bŠ\\u0006Œ\\b\\bŠ\\u0006’\\u0006Ô\\u0006·\\b’\\u0006º\\bŸ\\b¼\\bº\\b’\\u0006·\\bš\\bÁ\\bÈ\\bË\\bÇ\\bÃ\\bË\\bš\\bÈ\\b‘\\bŽ\\b¸\\b¸\\b»\\bÇ\\bÉ\\bÈ\\bÅ\\bÅ\\bÈ\\bÁ\\bÇ\\b»\\bÃ\\bÈ\\bÇ\\bË\\bÉ\\b‘\\bÇ\\bÇ\\bÈ\\bÉ\\bœ\\u0004š\\b½\\u0004Å\\bˆ\\bÉ\\b§\\bÃ\\b»\\bÅ\\bÁ\\b¾\\bÇ\\b‘\\b¸\\bµ\\bš\\bË\\bu\\bÒ\\bö\\u0007@\\u0007Ñ\\bÒ\\b@\\u0007Ò\\bu\\b‚\\b\\t\\bö\\u0007Ò\\b‚\\bö\\u0007}\\b„\\bm\\bÑ\\b@\\u0007.\\u0007.\\u0007)\\u0007Î\\bÍ\\bÎ\\bÐ\\b)\\u0007Ð\\bÎ\\bÑ\\bÍ\\bÒ\\bÎ\\bÍ\\bÑ\\b\\u0006\\b\\t\\b‚\\bm\\bÏ\\bb\\bÏ\\bÐ\\bb\\bÒ\\bÍ\\b„\\b.\\u0007Î\\bÑ\\b‚\\bÒ\\b„\\b„\\bÍ\\bÏ\\bÏ\\bm\\b„\\bÏ\\bÍ\\bÐ\\bÐ\\b)\\u0007b\\bÔ\\b×\\bŠ\\bÔ\\bŠ\\bÆ\\b†\\u0004¬\\u0004¯\\u0004œ\\b\\u0004Â\\bÖ\\bÙ\\b[\\u0007â\\u0004†\\u0004Õ\\b[\\u0007Ù\\bÓ\\b×\\bÔ\\bÙ\\b_\\u0007Ö\\b[\\u0007À\\bÐ\\u0004â\\u0004†\\u0004¯\\u0004Õ\\bÙ\\bÔ\\bÓ\\b[\\u0007Ó\\b¯\\u0004Æ\\bÕ\\bÔ\\bâ\\u0004Õ\\bÀ\\bÓ\\bÕ\\b¯\\u0004Õ\\bÓ\\bÔ\\bÆ\\bÀ\\bÕ\\b\\u0004À\\bÂ\\bá\\bÞ\\bà\\bà\\bÞ\\bÚ\\b.\\u0005Ü\\b\\u0013\\u0005\\\\\\u0005á\\bà\\bÝ\\b.\\u0005â\\by\\u0005â\\b.\\u0005Ú\\bÞ\\bâ\\bØ\\bÚ\\bã\\bw\\u0007ã\\bâ\\bâ\\bÞ\\bá\\bg\\u0005á\\b\\\\\\u0005â\\bá\\bÝ\\bg\\u0005\\u0016\\u0005á\\b\\u0016\\u0005Ý\\bá\\b•\\bã\\bw\\u0007.\\u0005\\u0013\\u0005!\\u0005y\\u0005w\\u0007â\\bÜ\\b.\\u0005\\u0016\\u0005à\\bØ\\b`\\u0007Ú\\bâ\\bã\\b‰\\bã\\b•\\bÚ\\bØ\\bà\\bÝ\\b\\u0016\\u0005.\\u0005‰\\bØ\\bã\\bè\\bê\\bí\\b€\\bê\\bè\\bå\\b\\u0005\\b€\\b€\\bè\\bå\\bè\\bí\\b\\u0000\\tî\\bê\\b|\\bè\\bæ\\tå\\b\\u001d\\tõ\\b\\u0018\\tõ\\b÷\\b\\u0018\\t\\u001d\\t+\\u0000õ\\bò\\bõ\\b+\\u0000ò\\b+\\u0000\\u001b\\u0000\\u0004\\t\\u0006\\tø\\bì\\bø\\bÿ\\bø\\bì\\b\\u0004\\t\\t\\tç\\bÿ\\bü\\bù\\bø\\bø\\bù\\bÿ\\bü\\b\\u0006\\t\\u0002\\t\\u0006\\tü\\bø\\bö\\b\\u0016\\t\\u0012\\t\\u000e\\t\\u000b\\t\\u0010\\t\\u0010\\t\\u0012\\t\\u000e\\tö\\bô\\b\\u0016\\t\\u0014\\tû\\b\\u0010\\tñ\\b\\u0016\\tô\\b\\u000b\\t\\u0014\\t\\u0010\\t\\u0017\\tö\\b\\u0012\\t\\u0016\\t\\u000e\\t\\u0012\\t\\u0016\\tñ\\b\\u000e\\t\\u001f\\t\\u001e\\t\\u0003\\tþ\\b\\u0003\\t\\u0011\\t\\b\\t\\u001c\\t\\u0003\\t\\u001a\\t\\u001c\\tC\\t6\\u0000,\\u0000\\\\\\\"\\t\\u0013\\t\\u0003\\t\\u0019\\t\\u001c\\t \\t\\u0003\\t\\u0003\\t\\u001e\\t\\u0019\\t\\u001c\\t\\u001a\\t \\t\\u001a\\tB\\t\\\\\\\"\\t,\\u0000 \\t\\\\\\\"\\t\\\\\\\"\\tX\\u00006\\u0000 \\t,\\u0000\\u001e\\t{\\bX\\u0000\\\\\\\"\\t\\u0011\\t\\u0003\\t\\u0013\\t\\u001a\\t\\\\\\\"\\t \\t\\u001f\\t \\t\\u001e\\t\\u001f\\t\\u0003\\t \\t(\\t#\\tN\\t\\r\\u0007è\\u0006.\\t(\\t+\\t-\\t6\\t#\\t1\\tN\\t#\\t&\\t-\\t0\\t1\\t-\\t1\\t(\\t4\\t\\r\\u0007$\\t\\u0000\\u0007#\\t.\\t=\\t3\\t:\\t(\\t1\\t#\\t\\u0000\\u0007.\\tè\\u00066\\t$\\t\\r\\u0007#\\t6\\t.\\t4\\t\\u0016\\b\\r\\u0007$\\t6\\t3\\t4\\t$\\t8\\t\\u0000\\u0007&\\t#\\t8\\t$\\t3\\t?\\t3\\t=\\t:\\t3\\t0\\t\\r\\u0007.\\t6\\t9\\b\\u0016\\b4\\t6\\t1\\t3\\t3\\t1\\t0\\te\\b@\\tA\\t\\u001b\\t\\u0007\\tA\\t\\u0005\\ti\\bD\\t@\\te\\bo\\b\\u0007\\te\\bA\\tD\\t\\u0007\\t\\u0005\\tG\\t\\u0005\\tð\\b@\\to\\by\\b\\u0005\\tG\\ti\\be\\bD\\tk\\be\\b\\u0007\\tD\\tA\\t@\\t!\\t@\\ty\\b!\\t·\\u0001S\\t\\u0001P\\tª\\u0001­\\u0001c\\t\\\\\\t]\\tM\\tO\\td\\t^\\t·\\u0001L\\tK\\tJ\\tÜ\\t¼\\u0007K\\t±\\u0007\\\\\\tH\\t\\u0001J\\të\\tÜ\\t*\\td\\tY\\t \\u0007K\\tQ\\t\\u0001H\\t¢\\u0001·\\u0001Q\\tL\\t \\u0007\\u001d\\u0007K\\t\\\\\\t_\\tH\\ta\\tY\\t]\\t^\\tS\\t·\\u0001•\\u0001\\u0001S\\td\\tO\\t_\\t\\u000b\\u0007%\\tÿ\\u0006 \\u0007Q\\tU\\t]\\t\\\\\\tR\\tQ\\tÜ\\tL\\t•\\u0001R\\t\\u0001R\\t\\\\\\t\\u0001P\\t_\\tO\\t_\\tc\\td\\tb\\tM\\t%\\tÿ\\u0006\\u0004\\u0007\\u000b\\u0007S\\tR\\t•\\u0001H\\t_\\tP\\tH\\tP\\t¢\\u0001U\\tQ\\t·\\u0001Ü\\tQ\\tK\\t¼\\u0007J\\tK\\t\\u001d\\u0007±\\u0007K\\tc\\tY\\td\\t^\\tR\\tS\\t'\\td\\t*\\t'\\tM\\td\\ta\\t]\\t[\\t[\\t]\\tL\\tL\\t]\\t^\\t\\u000b\\u0007P\\tb\\t]\\tY\\tc\\t%\\t\\u000b\\u0007b\\tÜ\\t[\\tL\\t¢\\u0001P\\t­\\u0001\\u000b\\u0007ª\\u0001P\\tM\\tb\\tO\\t]\\tR\\t^\\t\\\\\\tc\\t_\\tb\\tP\\tO\\t£\\tm\\t\\u000f\\nd\\u0001o\\tl\\t}\\tp\\ts\\tr\\tp\\tq\\tr\\to\\tp\\tx\\tt\\tg\\t{\\tz\\ty\\tr\\tl\\to\\t}\\ts\\tu\\tw\\tH\\u0001l\\tr\\tw\\tl\\tn\\u0001s\\to\\tn\\t\\\\\\\"\\u0001w\\ts\\tp\\to\\tp\\t—\\tq\\tm\\t…\\t‚\\t\\t‡\\tg\\tn\\te\\tk\\u0001Š\\tƒ\\t\\te\\t¡\\t\\t}\\t~\\t˜\\tŽ\\t­\\tž\\t‰\\t‹\\t‡\\t>\\t}\\tu\\t‹\\t®\\t”\\tw\\tq\\tf\\t—\\tt\\tŒ\\t˜\\tt\\t—\\tf\\tœ\\te\\tœ\\tf\\tŒ\\tf\\tn\\tw\\t‡\\t \\tx\\tq\\tŒ\\tf\\tŒ\\tq\\t—\\th\\tg\\tz\\tg\\t˜\\tz\\tr\\tq\\tw\\tŒ\\tx\\tœ\\tn\\tf\\te\\t‹\\t \\t‡\\t\\t:\\b7\\t \\t‹\\t”\\t„\\t¢\\t…\\t \\t”\\t¡\\t\\t‘\\t\\tm\\t„\\t…\\tg\\t‡\\tx\\t„\\t£\\t¤\\t>\\tu\\t\\tˆ\\t‹\\t‰\\t \\t¡\\tx\\t­\\t®\\t‹\\t2\\t\\t7\\t:\\b\\t‘\\t‚\\t…\\tŠ\\t¡\\tœ\\tx\\t}\\t>\\t~\\t:\\b5\\t7\\tž\\tˆ\\tª\\tž\\tª\\t¨\\t¢\\tƒ\\tŠ\\t%\\b:\\b‘\\tn\\u0001\\ts\\t\\tu\\ts\\t\\t\\ts\\tt\\tx\\tŒ\\t\\tE\\u0001\\r\\bn\\u0001E\\u0001\\t³\\tm\\t‚\\tŽ\\t“\\t®\\t„\\tm\\t£\\t“\\tÉ\\t†\\tÉ\\t“\\tŽ\\t~\\t>\\t<\\t°\\t~\\t<\\t~\\t°\\ty\\th\\tz\\tô\\t˜\\ty\\tz\\ty\\t˜\\t~\\t˜\\t—\\t}\\t‚\\th\\t³\\tµ\\t³\\th\\th\\tô\\tµ\\tŠ\\t…\\t¢\\t–\\t†\\tÉ\\t­\\t‹\\tˆ\\tž\\t­\\tˆ\\t\\u000f\\nm\\t²\\tk\\u0001e\\t\\t°\\t{\\ty\\t†\\t®\\t“\\t†\\t”\\t®\\tk\\u0001\\t0\\u0001\\tƒ\\t‡\\t\\u000f\\n¤\\t£\\t¸\\t„\\t¤\\t¡\\te\\tœ\\t‰\\tƒ\\t¬\\tf\\u0001–\\tu\\u0001Ž\\t®\\t­\\t¢\\t„\\tš\\t–\\tf\\u0001›\\tp\\t}\\t—\\t\\t¯\\t0\\u0001–\\t›\\t†\\tj\\tš\\t„\\tŠ\\t\\th\\tƒ\\t¢\\t¬\\t¡\\t”\\t\\td\\u00017\\u0001n\\u0001š\\t¬\\t¢\\tf\\u0001¯\\t›\\t‰\\t¬\\tº\\tn\\u0001o\\td\\u0001‰\\tº\\tˆ\\t†\\t›\\t”\\t\\t›\\t¯\\t›\\t\\t”\\t‚\\tŠ\\th\\th\\t\\tg\\tj\\t„\\t¸\\tg\\tt\\t˜\\t¬\\tª\\tº\\tª\\tˆ\\tº\\tf\\u00010\\u0001¯\\tz\\t{\\tô\\tƒ\\t‰\\t‡\\t\\t2\\t>\\tk\\u0001\\\\\\\"\\u0001n\\tÀ\\t\\u0002\\u0000\\t\\u0001\\u0002\\u0000À\\tH\\u0000\\n\\u0000H\\u0000À\\t\\b\\u0000Ä\\t\\u0006\\u0000Â\\t\\u0006\\u0000Ä\\t»\\t\\b\\u0000¾\\tÆ\\ty\\u0001È\\tÈ\\tË\\t•\\tË\\ty\\u0001t\\u0001Ì\\tÈ\\t\\u0013\\ny\\u0001Æ\\tq\\u0001•\\tË\\tt\\u0001Ë\\tÈ\\ty\\u0001È\\tÌ\\tÆ\\t½\\t\\u0006\\u0001\\u0016\\n)\\tÓ\\t,\\t\\t\\nÕ\\tÝ\\tÔ\\t\\u0015\\tñ\\tñ\\t\\u0015\\t\\f\\tï\\tð\\t\\u0015\\tð\\tÐ\\tÖ\\tó\\tø\\tü\\t±\\t;\\t9\\tÿ\\tò\\tÞ\\tÝ\\tà\\t\\u0002\\nï\\t\\u0015\\tÔ\\t|\\té\\tõ\\tì\\t\\u0007\\nú\\t×\\tä\\t\\u0006\\nÝ\\t\\u0002\\nÙ\\tÚ\\t÷\\tÕ\\tÕ\\t÷\\tà\\tØ\\t×\\tû\\tã\\t\\u000b\\nø\\tê\\tú\\tÛ\\tá\\tÒ\\tþ\\tI\\t¾\\u0007\\u0005\\ný\\b\\u0015\\tú\\bí\\t\\n\\nì\\tí\\t\\u0003\\n\\n\\ná\\tð\\tï\\t\\f\\b\\n\\n\\u0003\\nú\\bð\\t\\u0001\\t\\u0003\\n·\\u0007\\f\\bÖ\\tÐ\\tÞ\\tI\\t»\\u0007¾\\u0007\\u0005\\n·\\u0007\\u0003\\nó\\tÛ\\tø\\t\\u0001\\n\\u0004\\nÿ\\tÔ\\tÒ\\tï\\tç\\t\\r\\næ\\bø\\tÛ\\tú\\t\\u000e\\nã\\t\\u0001\\n\\f\\b\\u0003\\b\\n\\nò\\t\\r\\nç\\t\\n\\nù\\tì\\tÿ\\tù\\tò\\tù\\t\\n\\nÎ\\tò\\tù\\t\\r\\nê\\tI\\t\\u0005\\nñ\\t\\f\\t$\\n¾\\u0007·\\u0007\\u0005\\nà\\tè\\tß\\t\\u0002\\nà\\tß\\t÷\\tÚ\\tî\\tí\\tì\\t\\u0003\\n\\u000e\\n\\u000b\\nã\\t\\u0004\\n\\u0001\\nã\\tØ\\tÔ\\t×\\t\\u0006\\nû\\t×\\tÑ\\tÞ\\tÐ\\t\\t\\n\\f\\nÕ\\tú\\t\\u0007\\nã\\t¶\\tî\\t´\\tï\\tÒ\\tá\\tÞ\\tÑ\\t\\b\\nõ\\té\\tÏ\\tÙ\\t\\u0002\\nö\\t×\\tñ\\tä\\t\\u0010\\n\\u0006\\nä\\tÿ\\tÞ\\tý\\tâ\\t\\u0002\\nÓ\\tþ\\tû\\tÚ\\t\\n\\t\\u0001\\tð\\tä\\t¥\\t\\u0010\\n\\n\\tÖ\\tò\\tä\\tñ\\t$\\n´\\t\\u0006\\n\\u0010\\nú\\tã\\tø\\tû\\tî\\tÚ\\tò\\tç\\t\\n\\t\\u0005\\n\\u0003\\nì\\tÖ\\tÞ\\tò\\tØ\\tÒ\\tÔ\\tá\\tþ\\tÐ\\tZ\\tÛ\\tó\\t÷\\tè\\tà\\tÑ\\tÚ\\t\\f\\n\\b\\n\\t\\n\\u000e\\n)\\tW\\tâ\\tî\\t¶\\tÏ\\té\\t|\\t±\\tÒ\\tØ\\tþ\\tú\\b\\u0015\\tð\\tÓ\\tß\\t/\\tâ\\tX\\tö\\tÑ\\tþ\\tÚ\\tö\\t`\\tü\\tý\\t\\u0001\\nÿ\\t´\\tî\\t\\u0006\\nù\\tÿ\\t\\u0004\\n×\\tÔ\\tñ\\tó\\tü\\t`\\tü\\tø\\t\\u000b\\n\\u0000\\nü\\t\\u000b\\n\\u0000\\n\\u000b\\n\\u000e\\nð\\tÖ\\t\\n\\tç\\té\\b\\n\\t\\u000e\\n\\t\\n\\u0000\\nÝ\\tÙ\\t\\u0000\\nÙ\\tö\\t\\u0000\\né\\t±\\t9\\tÐ\\tþ\\tÑ\\t\\t\\n\\b\\n\\f\\n9\\tß\\tè\\tè\\té\\t9\\tî\\tû\\t\\u0006\\n/\\tß\\t9\\t\\u0000\\n\\t\\nÝ\\t\\f\\nÚ\\tÕ\\t\\b\\n\\u000e\\ný\\t\\u0004\\n\\u0007\\nì\\tÞ\\t\\b\\ný\\tÎ\\tæ\\b\\r\\n\\u0001\\ný\\t\\u000e\\nÏ\\té\\tè\\tæ\\bÎ\\t\\u0003\\bá\\tÐ\\tð\\tö\\tü\\t\\u0000\\nÏ\\t¶\\tõ\\t/\\t,\\tÓ\\t\\r\\nù\\tÎ\\tþ\\tØ\\tû\\tù\\t\\u0004\\nì\\tÑ\\t\\f\\n\\b\\n\\u0007\\n\\u0004\\nã\\tX\\t`\\tö\\tà\\tÝ\\tÕ\\tâ\\tö\\t\\u0002\\nú\\tê\\t\\u0005\\n`\\tZ\\tó\\t\\u0002\\nß\\tÓ\\tì\\tú\\t\\u0005\\n\\u0003\\bÎ\\t\\n\\nî\\tÏ\\t÷\\tÓ\\t)\\tâ\\tÏ\\tè\\t÷\\tÊ\\t\\t\\u0014\\n\\u0015\\n\\u0017\\nÇ\\tÇ\\t\\u0017\\n\\u0007\\u0001\\u0017\\n\\u0015\\n\\u0018\\n\\u0012\\n\\tŸ\\t\\u0019\\n\\t\\u0012\\n\\t\\u0019\\n\\u0014\\ns\\u0001Ç\\t\\u0007\\u0001\\u0014\\n\\u0015\\nÍ\\t\\u0014\\n\\u0019\\n\\u0015\\nÇ\\tÍ\\t\\u0015\\n¼\\t\\u0017\\n\\u0018\\n\\t\\u0000\\u0018\\nÅ\\t\\t\\u0000¼\\t\\u0018\\n\\u0012\\n\\u001b\\n\\u0019\\n\\u0015\\n\\u001c\\n\\u0018\\n\\u001c\\n\\u0015\\n\\u0019\\nÅ\\t\\u001b\\nÃ\\t¿\\t\\u0017\\n¼\\t\\u0018\\n\\u001c\\nÅ\\t\\u001c\\n\\u001b\\nÅ\\t\\u0019\\n\\u001b\\n\\u001c\\n%\\n¹\\tå\\t#\\n%\\n\\r\\t\\\\\\\"\\n#\\nó\\bó\\b#\\n\\u000f\\t\\u001d\\n!\\n(\\n!\\n\\u0012\\u0000-\\nó\\b&\\n'\\n&\\n\\u001d\\u0000\\u0016\\u0000&\\nó\\b\\u001d\\u0000(\\n!\\n\\u001f\\n%\\n'\\n\\u001f\\n&\\n\\u0016\\u0000(\\n\\u000f\\t#\\n\\r\\t&\\n(\\n'\\n'\\n\\\\\\\"\\nó\\b\\u0016\\u0000\\u0012\\u0000(\\n(\\n\\u0012\\u0000\\u001d\\n'\\n(\\n\\u001f\\n%\\n#\\n\\\\\\\"\\nå\\t¹\\t¦\\t%\\n\\u001f\\n¹\\t\\u001d\\n\\u0012\\u0000!\\n\\\\\\\"\\n'\\n%\\n)\\n0\\n\\u001a\\n0\\n§\\t©\\t\\u001e\\n/\\n·\\t/\\n\\u001e\\n+\\n/\\ni\\t·\\tÁ\\t0\\n/\\n/\\n.\\ni\\t«\\t™\\t.\\n.\\n™\\ti\\t.\\n/\\n0\\n©\\t«\\t.\\n§\\t\\u0011\\n\\t)\\n§\\t0\\n\\u0011\\n§\\t)\\n+\\n\\u001e\\n \\nÁ\\t+\\n\\u0005\\u0000©\\t.\\n0\\n)\\n\\u001a\\n\\u0011\\nÁ\\t\\u001a\\n0\\n+\\nÁ\\t/\\n\\u0000\\u0000\"","status":200,"headers":{"content-type":"","content-length":"102888"}},"type":2,"external":true,"timestamp":1723918436965}],"browser":{"name":"chromium","version":"119.0.6045.9"},"viewport":{"width":2000,"height":2000},"screenshot":"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","consoleMessages":[{"text":"Unrecognized Content-Security-Policy directive 'prefetch-src'.","level":"error","timestamp":1723918417153},{"text":"[.WebGL-0x77400b53800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels","level":"warning","timestamp":1723918433606},{"text":"[.WebGL-0x77400b53800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels","level":"warning","timestamp":1723918433608},{"text":"[.WebGL-0x77400b53800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels","level":"warning","timestamp":1723918433608},{"text":"[.WebGL-0x77400b53800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)","level":"warning","timestamp":1723918436965}],"screenshotDelay":10000},"timestamp":1723918416743},"created_at":"2024-08-17T18:14:13.625+00:00","updated_at":"2024-08-17T18:14:13.626+00:00"}