PageSourceSearch

https://cubictofeetcalculator.cc/_next/static/chunks/2318.34bd4927a6805c0c.js

js cubictofeetcalculator.cc collected 2026-10-05 20:43:07 UTC 85,305 bytes, 174 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2318],{125:(e,t,r)=>{var n=r(2115),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=n.useState,o=n.useEffect,s=n.useLayoutEffect,l=n.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!a(e,r)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=i({inst:{value:r,getSnapshot:t}}),a=n[0].inst,u=n[1];return s(function(){a.value=r,a.getSnapshot=t,c(a)&&u({inst:a})},[e,r,t]),o(function(){return c(a)&&u({inst:a}),e(function(){c(a)&&u({inst:a})})},[e]),l(r),r};t.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:u},258:(e,t,r)=>{r.d(t,{Hl:()=>d});var n=r(264),a=r(2115),i=r(7548);function o(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}let s=["x","y","top","bottom","left","right","width","height"];var l=r(4735),c=r(5155);function u({ref:e,children:t,fallback:r,resize:l,style:u,gl:d,events:f=n.f,eventSource:h,eventPrefix:p,shadows:m,linear:g,flat:v,legacy:w,orthographic:y,frameloop:b,dpr:E,performance:x,raycaster:M,camera:_,scene:P,onPointerMissed:S,onCreated:O,...C}){a.useMemo(()=>(0,n.e)(i),[]);let T=(0,n.u)(),[A,k]=function({debounce:e,scroll:t,polyfill:r,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){var i,l,c;let u=r||("undefined"==typeof window?class{}:window.ResizeObserver);if(!u)throw Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[d,f]=(0,a.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),h=(0,a.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:d,orientationHandler:null}),p=e?"number"==typeof e?e:e.scroll:null,m=e?"number"==typeof e?e:e.resize:null,g=(0,a.useRef)(!1);(0,a.useEffect)(()=>(g.current=!0,()=>void(g.current=!1)));let[v,w,y]=(0,a.useMemo)(()=>{let e=()=>{let e,t;if(!h.current.element)return;let{left:r,top:a,width:i,height:o,bottom:l,right:c,x:u,y:d}=h.current.element.getBoundingClientRect(),p={left:r,top:a,width:i,height:o,bottom:l,right:c,x:u,y:d};h.current.element instanceof HTMLElement&&n&&(p.height=h.current.element.offsetHeight,p.width=h.current.element.offsetWidth),Object.freeze(p),g.current&&(e=h.current.lastBounds,t=p,!s.every(r=>e[r]===t[r]))&&f(h.current.lastBounds=p)};return[e,m?o(e,m):e,p?o(e,p):e]},[f,n,p,m]);function b(){h.current.scrollContainers&&(h.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",y,!0)),h.current.scrollContainers=null),h.current.resizeObserver&&(h.current.resizeObserver.disconnect(),h.current.resizeObserver=null),h.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",h.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",h.current.orientationHandler))}function E(){h.current.element&&(h.current.resizeObserver=new u(y),h.current.resizeObserver.observe(h.current.element),t&&h.current.scrollContainers&&h.current.scrollContainers.forEach(e=>e.addEventListener("scroll",y,{capture:!0,passive:!0})),h.current.orientationHandler=()=>{y()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",h.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",h.current.orientationHandler))}return i=y,l=!!t,(0,a.useEffect)(()=>{if(l)return window.addEventListener("scroll",i,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",i,!0)},[i,l]),c=w,(0,a.useEffect)(()=>(window.addEventListener("resize",c),()=>void window.removeEventListener("resize",c)),[c]),(0,a.useEffect)(()=>{b(),E()},[t,y,w]),(0,a.useEffect)(()=>b,[]),[e=>{e&&e!==h.current.element&&(b(),h.current.element=e,h.current.scrollContainers=function e(t){let r=[];if(!t||t===document.body)return r;let{overflow:n,overflowX:a,overflowY:i}=window.getComputedStyle(t);return[n,a,i].some(e=>"auto"===e||"scroll"===e)&&r.push(t),[...r,...e(t.parentElement)]}(e),E())},d,v]}({scroll:!0,debounce:{scroll:50,resize:0},...l}),I=a.useRef(null),R=a.useRef(null);a.useImperativeHandle(e,()=>I.current);
1let U=(0,n.a)(S),[j,F]=a.useState(!1),[L,z]=a.useState(!1);if(j)throw j;if(L)throw L;let D=a.useRef(null);(0,n.b)(()=>{let e=I.current;k.width>0&&k.height>0&&e&&(D.current||(D.current=(0,n.c)(e)),async function(){await D.current.configure({gl:d,scene:P,events:f,shadows:m,linear:g,flat:v,legacy:w,orthographic:y,frameloop:b,dpr:E,performance:x,raycaster:M,camera:_,size:k,onPointerMissed:(...e)=>null==U.current?void 0:U.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(h?(0,n.i)(h)?h.current:h:R.current),p&&e.setEvents({compute:(e,t)=>{let r=e[p+"X"],n=e[p+"Y"];t.pointer.set(r/t.size.width*2-1,-(2*(n/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==O||O(e)}}),D.current.render((0,c.jsx)(T,{children:(0,c.jsx)(n.E,{set:z,children:(0,c.jsx)(a.Suspense,{fallback:(0,c.jsx)(n.B,{set:F}),children:null!=t?t:null})})}))}())}),a.useEffect(()=>{let e=I.current;if(e)return()=>(0,n.d)(e)},[]);let N=h?"none":"auto";return(0,c.jsx)("div",{ref:R,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:N,...u},...C,children:(0,c.jsx)("div",{ref:A,style:{width:"100%",height:"100%"},children:(0,c.jsx)("canvas",{ref:I,style:{display:"block"},children:r})})})}function d(e){return(0,c.jsx)(l.Af,{children:(0,c.jsx)(u,{...e})})}r(7533)},490:(e,t,r)=>{r.d(t,{y:()=>a});let n=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,i={setState:n,getState:a,getInitialState:()=>o,subscribe:e=>(r.add(e),()=>r.delete(e))},o=t=e(n,a,i);return i},a=e=>e?n(e):n},950:(e,t,r)=>{let n;r.d(t,{OH:()=>ey});var a=r(8945),i=r(2115),o=r(264),s=r(5339);let l=parseInt(s.sPf.replace(/\D+/g,""));class c extends s.eaF{constructor(e,t){var r,n;let a=(e=>e&&e.isCubeTexture)(e),i=Math.floor(Math.log2((null!=(n=a?null==(r=e.image[0])?void 0:r.width:e.image.width)?n:1024)/4)),o=Math.pow(2,i),c=3*Math.max(o,112),u=`
2        varying vec3 vWorldPosition;
3        void main() 
4        {
5            vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) );
6            vWorldPosition = worldPosition.xyz;
7            
8            gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
9        }
10        `,d=[a?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/c}`,`#define CUBEUV_TEXEL_HEIGHT ${1/(4*o)}`,`#define CUBEUV_MAX_MIP ${i}.0`].join("\n")+`
11        #define ENVMAP_TYPE_CUBE_UV
12        varying vec3 vWorldPosition;
13        uniform float radius;
14        uniform float height;
15        uniform float angle;
16        #ifdef ENVMAP_TYPE_CUBE
17            uniform samplerCube map;
18        #else
19            uniform sampler2D map;
20        #endif
21        // From: https://www.shadertoy.com/view/4tsBD7
22        float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) 
23        {
24            float d = dot ( rd, n );
25            
26            if( d > 0.0 ) { return 1e6; }
27            
28            vec3  o = ro - c;
29            float t = - dot( n, o ) / d;
30            vec3  q = o + rd * t;
31            
32            return ( dot( q, q ) < r * r ) ? t : 1e6;
33        }
34        // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm
35        float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) 
36        {
37            vec3 oc = ro - ce;
38            float b = dot( oc, rd );
39            float c = dot( oc, oc ) - ra * ra;
40            float h = b * b - c;
41            
42            if( h < 0.0 ) { return -1.0; }
43            
44            h = sqrt( h );
45            
46            return - b + h;
47        }
48        vec3 project() 
49        {
50            vec3 p = normalize( vWorldPosition );
51            vec3 camPos = cameraPosition;
52            camPos.y -= height;
53            float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius );
54            if( intersection > 0.0 ) {
55                
56                vec3 h = vec3( 0.0, - height, 0.0 );
57                float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius );
58                p = ( camPos + min( intersection, intersection2 ) * p ) / radius;
59            } else {
60                p = vec3( 0.0, 1.0, 0.0 );
61            }
62            return p;
63        }
64        #include <common>
65        #include <cube_uv_reflection_fragment>
66        void main() 
67        {
68            vec3 projectedWorldPosition = project();
69            
70            #ifdef ENVMAP_TYPE_CUBE
71                vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb;
72            #else
73                vec3 direction = normalize( projectedWorldPosition );
74                vec2 uv = equirectUv( direction );
75                vec3 outcolor = texture2D( map, uv ).rgb;
76            #endif
77            gl_FragColor = vec4( outcolor, 1.0 );
78            #include <tonemapping_fragment>
79            #include <${l>=154?"colorspace_fragment":"encodings_fragment"}>
80        }
81        `,f={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new s.WBB(1,16),new s.BKk({uniforms:f,fragmentShader:d,vertexShader:u,side:s.$EB}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}class u extends s.BRH{constructor(e){super(e),this.type=s.ix0}parse(e){let t,r,n,a=function(e,t){switch(e){case 1:throw Error("THREE.RGBELoader: Read Error: "+(t||""));case 2:throw Error("THREE.RGBELoader: Write Error: "+(t||""));case 3:throw Error("THREE.RGBELoader: Bad File Format: "+(t||""));default:throw Error("THREE.RGBELoader: Memory Error: "+(t||""))}},i=function(e,t,r){t=t||1024;let n=e.pos,a=-1,i=0,o="",s=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(a=s.indexOf("\n"))&&i<t&&n<e.byteLength;)o+=s,i+=s.length,n+=128,s+=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));return -1<a&&(!1!==r&&(e.pos+=i+a+1),o+s.slice(0,a))},o=new Uint8Array(e);o.pos=0;let l=function(e){let t,r,n=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,o=/^\s*EXPOSURE\s*=\s
81*(\d+(\.\d+)?)\s*$/,s=/^\s*FORMAT=(\S+)\s*$/,l=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,c={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};for(!(e.pos>=e.byteLength)&&(t=i(e))||a(1,"no header found"),(r=t.match(/^#\?(\S+)/))||a(3,"bad initial token"),c.valid|=1,c.programtype=r[1],c.string+=t+"\n";!1!==(t=i(e));){if(c.string+=t+"\n","#"===t.charAt(0)){c.comments+=t+"\n";continue}if((r=t.match(n))&&(c.gamma=parseFloat(r[1])),(r=t.match(o))&&(c.exposure=parseFloat(r[1])),(r=t.match(s))&&(c.valid|=2,c.format=r[1]),(r=t.match(l))&&(c.valid|=4,c.height=parseInt(r[1],10),c.width=parseInt(r[2],10)),2&c.valid&&4&c.valid)break}return 2&c.valid||a(3,"missing format specifier"),4&c.valid||a(3,"missing image size specifier"),c}(o),c=l.width,u=l.height,d=function(e,t,r){if(t<8||t>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);t!==(e[2]<<8|e[3])&&a(3,"wrong scanline width");let n=new Uint8Array(4*t*r);n.length||a(4,"unable to allocate buffer space");let i=0,o=0,s=4*t,l=new Uint8Array(4),c=new Uint8Array(s),u=r;for(;u>0&&o<e.byteLength;){o+4>e.byteLength&&a(1),l[0]=e[o++],l[1]=e[o++],l[2]=e[o++],l[3]=e[o++],(2!=l[0]||2!=l[1]||(l[2]<<8|l[3])!=t)&&a(3,"bad rgbe scanline format");let r=0,d;for(;r<s&&o<e.byteLength;){let t=(d=e[o++])>128;if(t&&(d-=128),(0===d||r+d>s)&&a(3,"bad scanline data"),t){let t=e[o++];for(let e=0;e<d;e++)c[r++]=t}else c.set(e.subarray(o,o+d),r),r+=d,o+=d}for(let e=0;e<t;e++){let r=0;n[i]=c[e+r],r+=t,n[i+1]=c[e+r],r+=t,n[i+2]=c[e+r],r+=t,n[i+3]=c[e+r],i+=4}u--}return n}(o.subarray(o.pos),c,u);switch(this.type){case s.RQf:let f=new Float32Array(4*(n=d.length/4));for(let e=0;e<n;e++)!function(e,t,r,n){let a=Math.pow(2,e[t+3]-128)/255;r[n+0]=e[t+0]*a,r[n+1]=e[t+1]*a,r[n+2]=e[t+2]*a,r[n+3]=1}(d,4*e,f,4*e);t=f,r=s.RQf;break;case s.ix0:let h=new Uint16Array(4*(n=d.length/4));for(let e=0;e<n;e++)!function(e,t,r,n){let a=Math.pow(2,e[t+3]-128)/255;r[n+0]=s.GxU.toHalfFloat(Math.min(e[t+0]*a,65504)),r[n+1]=s.GxU.toHalfFloat(Math.min(e[t+1]*a,65504)),r[n+2]=s.GxU.toHalfFloat(Math.min(e[t+2]*a,65504)),r[n+3]=s.GxU.toHalfFloat(1)}(d,4*e,h,4*e);t=h,r=s.ix0;break;default:throw Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:c,height:u,data:t,header:l.string,gamma:l.gamma,exposure:l.exposure,type:r}}setDataType(e){return this.type=e,this}load(e,t,r,n){return super.load(e,function(e,r){switch(e.type){case s.RQf:case s.ix0:"colorSpace"in e?e.colorSpace="srgb-linear":e.encoding=3e3,e.minFilter=s.k6q,e.magFilter=s.k6q,e.generateMipmaps=!1,e.flipY=!0}t&&t(e,r)},r,n)}}var d=Uint8Array,f=Uint16Array,h=Uint32Array,p=new d([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),m=new d([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),g=new d([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),v=function(e,t){for(var r=new f(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var a=new h(r[30]),n=1;n<30;++n)for(var i=r[n];i<r[n+1];++i)a[i]=i-r[n]<<5|n;return[r,a]},w=v(p,2),y=w[0],b=w[1];y[28]=258,b[258]=28;var E=v(m,0),x=E[0];E[1];for(var M=new f(32768),_=0;_<32768;++_){var P=(43690&_)>>>1|(21845&_)<<1;P=(61680&(P=(52428&P)>>>2|(13107&P)<<2))>>>4|(3855&P)<<4,M[_]=((65280&P)>>>8|(255&P)<<8)>>>1}for(var S=function(e,t,r){for(var n,a=e.length,i=0,o=new f(t);i<a;++i)++o[e[i]-1];var s=new f(t);for(i=0;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;if(r){n=new f(1<<t);var l=15-t;for(i=0;i<a;++i)if(e[i])for(var c=i<<4|e[i],u=t-e[i],d=s[e[i]-1]++<<u,h=d|(1<<u)-1;d<=h;++d)n[M[d]>>>l]=c}else for(i=0,n=new f(a);i<a;++i)e[i]&&(n[i]=M[s[e[i]-1]++]>>>15-e[i]);return n},O=new d(288),_=0;_<144;++_)O[_]=8;for(var _=144;_<256;++_)O[_]=9;for(var _=256;_<280;++_)O[_]=7;for(var _=280;_<288;++_)O[_]=8;for(var C=new d(32),_=0;_<32;++_)C[_]=5;var T=S(O,9,1),A=S(C,5,1),k=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},I=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},R=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},U=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof f?f:e instanceof h?h:d)(r-t);return n.set(e.subarray(t,r)),n},j=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new d(0);var a=!t||r,i=!r||r.i;r||(r={}),t||(t=new d(3*n));var o=function(e){var r=t.length;if(e>r){var n=new d(Math.max(2*r,e));n.set(t),t=n}},s=r.f||0,l=r.p||0,c=r.b||0,u=r.l,f=r.d,h=r.m,v=r.n,w=8*n;do{if(!u){r.f=s=I(e,l,1);var b=I(e,l+1,3);
81if(l+=3,b)if(1==b)u=T,f=A,h=9,v=5;else if(2==b){var E=I(e,l,31)+257,M=I(e,l+10,15)+4,_=E+I(e,l+5,31)+1;l+=14;for(var P=new d(_),O=new d(19),C=0;C<M;++C)O[g[C]]=I(e,l+3*C,7);l+=3*M;for(var j=k(O),F=(1<<j)-1,L=S(O,j,1),C=0;C<_;){var z=L[I(e,l,F)];l+=15&z;var D=z>>>4;if(D<16)P[C++]=D;else{var N=0,H=0;for(16==D?(H=3+I(e,l,3),l+=2,N=P[C-1]):17==D?(H=3+I(e,l,7),l+=3):18==D&&(H=11+I(e,l,127),l+=7);H--;)P[C++]=N}}var B=P.subarray(0,E),Y=P.subarray(E);h=k(B),v=k(Y),u=S(B,h,1),f=S(Y,v,1)}else throw"invalid block type";else{var q,D=((q=l)/8|0)+(7&q&&1)+4,W=e[D-4]|e[D-3]<<8,G=D+W;if(G>n){if(i)throw"unexpected EOF";break}a&&o(c+W),t.set(e.subarray(D,G),c),r.b=c+=W,r.p=l=8*G;continue}if(l>w){if(i)throw"unexpected EOF";break}}a&&o(c+131072);for(var V=(1<<h)-1,X=(1<<v)-1,Z=l;;Z=l){var N=u[R(e,l)&V],$=N>>>4;if((l+=15&N)>w){if(i)throw"unexpected EOF";break}if(!N)throw"invalid length/literal";if($<256)t[c++]=$;else if(256==$){Z=l,u=null;break}else{var K=$-254;if($>264){var C=$-257,Q=p[C];K=I(e,l,(1<<Q)-1)+y[C],l+=Q}var J=f[R(e,l)&X],ee=J>>>4;if(!J)throw"invalid distance";l+=15&J;var Y=x[ee];if(ee>3){var Q=m[ee];Y+=R(e,l)&(1<<Q)-1,l+=Q}if(l>w){if(i)throw"unexpected EOF";break}a&&o(c+131072);for(var et=c+K;c<et;c+=4)t[c]=t[c-Y],t[c+1]=t[c+1-Y],t[c+2]=t[c+2-Y],t[c+3]=t[c+3-Y];c=et}}r.l=u,r.p=Z,r.b=c,u&&(s=1,r.m=h,r.d=f,r.n=v)}while(!s);return c==t.length?t:U(t,0,c)},F=new d(0),L=function(e){if((15&e[0])!=8||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function z(e,t){return j((L(e),e.subarray(2,-4)),t)}var D="undefined"!=typeof TextDecoder&&new TextDecoder;try{D.decode(F,{stream:!0})}catch(e){}let N=l>=152;class H extends s.BRH{constructor(e){super(e),this.type=s.ix0}parse(e){let t={l:0,c:0,lc:0};function r(e,r,n,a,i){for(;n<e;)r=r<<8|S(a,i),n+=8;t.l=r>>(n-=e)&(1<<e)-1,t.c=r,t.lc=n}let n=Array(59),a={c:0,lc:0};function i(e,t,r,n){e=e<<8|S(r,n),t+=8,a.c=e,a.lc=t}let o={c:0,lc:0};function l(e,t,r,n,s,l,c,u,d,f){if(e==t){n<8&&(i(r,n,s,c),r=a.c,n=a.lc);var h=r>>(n-=8),h=new Uint8Array([h])[0];if(d.value+h>f)return!1;for(var p=u[d.value-1];h-- >0;)u[d.value++]=p}else{if(!(d.value<f))return!1;u[d.value++]=e}o.c=r,o.lc=n}function c(e){var t=65535&e;return t>32767?t-65536:t}let u={a:0,b:0};function d(e,t){var r=c(e),n=c(t),a=r+(1&n)+(n>>1),i=a-n;u.a=a,u.b=i}function f(e,t){var r=65535&t,n=(65535&e)-(r>>1)&65535;u.a=r+n-32768&65535,u.b=n}function h(e,s,c,u,d,f){var h=c.value,p=P(s,c),m=P(s,c);c.value+=4;var g=P(s,c);if(c.value+=4,p<0||p>=65537||m<0||m>=65537)throw"Something wrong with HUF_ENCSIZE";for(var v=Array(65537),w=Array(16384),y=0;y<16384;y++)w[y]={},w[y].len=0,w[y].lit=0,w[y].p=null;var b=u-(c.value-h);if(!function(e,a,i,o,s,l,c){for(var u=0,d=0;s<=l;s++){if(i.value-i.value>o)return!1;r(6,u,d,e,i);var f=t.l;if(u=t.c,d=t.lc,c[s]=f,63==f){if(i.value-i.value>o)throw"Something wrong with hufUnpackEncTable";r(8,u,d,e,i);var h=t.l+6;if(u=t.c,d=t.lc,s+h>l+1)throw"Something wrong with hufUnpackEncTable";for(;h--;)c[s++]=0;s--}else if(f>=59){var h=f-59+2;if(s+h>l+1)throw"Something wrong with hufUnpackEncTable";for(;h--;)c[s++]=0;s--}}!function(e){for(var t=0;t<=58;++t)n[t]=0;for(var t=0;t<65537;++t)n[e[t]]+=1;for(var r=0,t=58;t>0;--t){var a=r+n[t]>>1;n[t]=r,r=a}for(var t=0;t<65537;++t){var i=e[t];i>0&&(e[t]=i|n[i]++<<6)}}(c)}(e,0,c,b,p,m,v),g>8*(u-(c.value-h)))throw"Something wrong with hufUncompress";!function(e,t,r,n){for(;t<=r;t++){var a=e[t]>>6,i=63&e[t];if(a>>i)throw"Invalid table entry";if(i>14){var o=n[a>>i-14];if(o.len)throw"Invalid table entry";if(o.lit++,o.p){var s=o.p;o.p=Array(o.lit);for(var l=0;l<o.lit-1;++l)o.p[l]=s[l]}else o.p=[,];o.p[o.lit-1]=t}else if(i)for(var c=0,l=1<<14-i;l>0;l--){var o=n[(a<<14-i)+c];if(o.len||o.p)throw"Invalid table entry";o.len=i,o.lit=t,c++}}}(v,p,m,w),function(e,t,r,n,s,c,u,d,f,h){for(var p=0,m=0,g=Math.trunc(s.value+(c+7)/8);s.value<g;)for(i(p,m,r,s),p=a.c,m=a.lc;m>=14;){var v=t[p>>m-14&16383];if(v.len)m-=v.len,l(v.lit,u,p,m,r,n,s,f,h,d),p=o.c,m=o.lc;else{if(!v.p)throw"hufDecode issues";for(w=0;w<v.lit;w++){for(var w,y=63&e[v.p[w]];m<y&&s.value<g;)i(p,m,r,s),p=a.c,m=a.lc;if(m>=y&&e[v.p[w]]>>6==(p>>m-y&(1<<y)-1)){m-=y,l(v.p[w],u,p,m,r,n,s,f,h,d),p=o.c,m=o.lc;break}}if(w==v.lit)throw"hufDecode issues"}}var b=8-c&7;for(p>>=b,m-=b;m>0;){var v=t[p<<14-m&16383];if(v.len)m-=v.len,l(v.lit,u,p,m,r,n,s,f,h,d),p=o.c,m=o.lc;else throw"hufDecode issues"}}(v,w,e,s,c,g,m,f,d,{value:0})}function p(e){for(var t=1;t<e.length;t++){var r=e[t-1]+e[t]-128;e[t]=r}}function m(e,t){for(var r=0,n=Math.floor((e.length+1)/2),a=0,i=e.length-1;!(a>i)&&(t[a++]=e[r++],!(a>i));){;t[a++]=e[n++]}}function g(e){for(var t=e.byteLength,r=[],n=0,a=new DataView(e);t>0;){var i=a.getInt8(n++);if(i<0){var o=-i;t-=o+1;for(var s=0;s<o;s++)r.push(a.getUint8(n++))}else{var o=i;t-=2;for(var l=a.getUint8(n++),s=0;s<o+1;s++)r.push(l)}}return r}function v(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function w(e){var t=new Uint8Array(g(e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size))),r=new 
81Uint8Array(t.length);return p(t),m(t,r),new DataView(r.buffer)}function y(e){var t=z(e.array.slice(e.offset.value,e.offset.value+e.size)),r=new Uint8Array(t.length);return p(t),m(t,r),new DataView(r.buffer)}function b(e){for(var t=e.viewer,r={value:e.offset.value},n=new Uint16Array(e.width*e.scanlineBlockSize*(e.channels*e.type)),a=new Uint8Array(8192),i=0,o=Array(e.channels),s=0;s<e.channels;s++)o[s]={},o[s].start=i,o[s].end=o[s].start,o[s].nx=e.width,o[s].ny=e.lines,o[s].size=e.type,i+=o[s].nx*o[s].ny*o[s].size;var l=I(t,r),c=I(t,r);if(c>=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(l<=c)for(var s=0;s<c-l+1;s++)a[s+l]=O(t,r);var p=new Uint16Array(65536),m=function(e,t){for(var r=0,n=0;n<65536;++n)(0==n||e[n>>3]&1<<(7&n))&&(t[r++]=n);for(var a=r-1;r<65536;)t[r++]=0;return a}(a,p),g=P(t,r);h(e.array,t,r,g,n,i);for(var s=0;s<e.channels;++s)for(var v=o[s],w=0;w<o[s].size;++w)!function(e,t,r,n,a,i,o){for(var s=o<16384,l=r>a?a:r,c=1;c<=l;)c<<=1;for(c>>=1,h=c,c>>=1;c>=1;){for(var h,p,m,g,v,w=0,y=0+i*(a-h),b=i*c,E=i*h,x=n*c,M=n*h;w<=y;w+=E){for(var _=w,P=w+n*(r-h);_<=P;_+=M){var S=_+x,O=_+b,C=O+x;s?(d(e[_+t],e[O+t]),p=u.a,g=u.b,d(e[S+t],e[C+t]),m=u.a,v=u.b,d(p,m),e[_+t]=u.a,e[S+t]=u.b,d(g,v)):(f(e[_+t],e[O+t]),p=u.a,g=u.b,f(e[S+t],e[C+t]),m=u.a,v=u.b,f(p,m),e[_+t]=u.a,e[S+t]=u.b,f(g,v)),e[O+t]=u.a,e[C+t]=u.b}if(r&c){var O=_+b;s?d(e[_+t],e[O+t]):f(e[_+t],e[O+t]),p=u.a,e[O+t]=u.b,e[_+t]=p}}if(a&c)for(var _=w,P=w+n*(r-h);_<=P;_+=M){var S=_+x;s?d(e[_+t],e[S+t]):f(e[_+t],e[S+t]),p=u.a,e[S+t]=u.b,e[_+t]=p}h=c,c>>=1}}(n,v.start+w,v.nx,v.size,v.ny,v.nx*v.size,m);for(var y=i,b=0;b<y;++b)n[b]=p[n[b]];for(var E=0,x=new Uint8Array(n.buffer.byteLength),M=0;M<e.lines;M++)for(var _=0;_<e.channels;_++){var v=o[_],S=v.nx*v.size,C=new Uint8Array(n.buffer,2*v.end,2*S);x.set(C,E),E+=2*S,v.end+=S}return new DataView(x.buffer)}function E(e){var t=z(e.array.slice(e.offset.value,e.offset.value+e.size));let r=e.lines*e.channels*e.width,n=1==e.type?new Uint16Array(r):new Uint32Array(r),a=0,i=0,o=[,,,,];for(let r=0;r<e.lines;r++)for(let r=0;r<e.channels;r++){let r=0;switch(e.type){case 1:o[0]=a,o[1]=o[0]+e.width,a=o[1]+e.width;for(let a=0;a<e.width;++a)r+=t[o[0]++]<<8|t[o[1]++],n[i]=r,i++;break;case 2:o[0]=a,o[1]=o[0]+e.width,o[2]=o[1]+e.width,a=o[2]+e.width;for(let a=0;a<e.width;++a)r+=t[o[0]++]<<24|t[o[1]++]<<16|t[o[2]++]<<8,n[i]=r,i++}}return new DataView(n.buffer)}function x(e){var t=e.viewer,r={value:e.offset.value},n=new Uint8Array(e.width*e.lines*(e.channels*e.type*2)),a={version:C(t,r),unknownUncompressedSize:C(t,r),unknownCompressedSize:C(t,r),acCompressedSize:C(t,r),dcCompressedSize:C(t,r),rleCompressedSize:C(t,r),rleUncompressedSize:C(t,r),rleRawSize:C(t,r),totalAcUncompressedCount:C(t,r),totalDcUncompressedCount:C(t,r),acCompression:C(t,r)};if(a.version<2)throw"EXRLoader.parse: "+L.compression+" version "+a.version+" is unsupported";for(var i=[],o=I(t,r)-2;o>0;){var l=M(t.buffer,r),c=O(t,r),u=c>>2&3,d=new Int8Array([(c>>4)-1])[0],f=O(t,r);i.push({name:l,index:d,type:f,compression:u}),o-=l.length+3}for(var p=L.channels,m=Array(e.channels),v=0;v<e.channels;++v){var w=m[v]={},b=p[v];w.name=b.name,w.compression=0,w.decoded=!1,w.type=b.pixelType,w.pLinear=b.pLinear,w.width=e.width,w.height=e.lines}for(var E={idx:[,,,]},x=0;x<e.channels;++x)for(var w=m[x],v=0;v<i.length;++v){var _=i[v];w.name==_.name&&(w.compression=_.compression,_.index>=0&&(E.idx[_.index]=x),w.offset=x)}if(a.acCompressedSize>0)switch(a.acCompression){case 0:var P=new Uint16Array(a.totalAcUncompressedCount);h(e.array,t,r,a.acCompressedSize,P,a.totalAcUncompressedCount);break;case 1:var S=e.array.slice(r.value,r.value+a.totalAcUncompressedCount),T=z(S),P=new Uint16Array(T.buffer);r.value+=a.totalAcUncompressedCount}if(a.dcCompressedSize>0){var A=new Uint16Array(y({array:e.array,offset:r,size:a.dcCompressedSize}).buffer);r.value+=a.dcCompressedSize}if(a.rleRawSize>0){var S=e.array.slice(r.value,r.value+a.rleCompressedSize),T=z(S),R=g(T.buffer);r.value+=a.rleCompressedSize}for(var U=0,j=Array(m.length),v=0;v<j.length;++v)j[v]=[];for(var F=0;F<e.lines;++F)for(var D=0;D<m.length;++D)j[D].push(U),U+=m[D].width*e.type*2;!function(e,t,r,n,a,i){var o=new DataView(i.buffer),l=r[e.idx[0]].width,c=r[e.idx[0]].height,u=Math.floor(l/8),d=Math.ceil(l/8),f=Math.ceil(c/8),h=l-(d-1)*8,p=c-(f-1)*8,m={value:0},g=[,,,],v=[,,,],w=[,,,],y=[,,,],b=[,,,];for(let r=0;r<3;++r)b[r]=t[e.idx[r]],g[r]=r<1?0:g[r-1]+d*f,v[r]=new Float32Array(64),w[r]=new Uint16Array(64),y[r]=new Uint16Array(64*d);for(let t=0;t<f;++t){var E,x,M=8;t==f-1&&(M=p);var _=8;for(let e=0;e<d;++e){e==d-1&&(_=h);for(let e=0;e<3;++e){w[e].fill(0),w[e][0]=a[g[e]++],function(e,t,r){for(var n,a=1;a<64;)65280==(n=t[e.value])?a=64:n>>8==255?a+=255&n:(r[a]=n,a++),e.value++}(m,n,w[e]),E=w[e],(x=v[e])[0]=k(E[0]),x[1]=k(E[1]),x[2]=k(E[5]),x[3]=k(E[6]),x[4]=k(E[14]),x[5]=k(E[15]),x[6]=k(E[27]),x[7]=k(E[28]),x[8]=k(E[2]),x[9]=k(E[4]),x[10]=k(E[7]),x[11]=k(E[13]),x[12]=k(E[16]),x[13]=k(E[26]),x[14]=k(E[29]),x[15]=k(E[42]),x[16]=k(E[3]),x[17]=k(E[8]),x[18]=k(E[12]),x[19]=k(E[17]),x[20]=k(E[25]),x[21]=k(E[30]),x[22]=k(E[41]),x[23]=k(E[43]),x[24]=k(E[9]),x[25]=k(E[11]),x[26]=k(E[18]),x[27]=k(E[24]),x[28]=k(E[31]),x[29]=k(E[40]),x[30]=k(E[44]),x[31]=k(E[53]),x[32]=k(E[10]),x[33]=k(E[19]),x[34]=k(E[23]),x[35]=k(E[32]),x[36]=k(E[39]),x[37]=k(E[45]),x[38]=k(E[52]),x[39]=k(E[54]),x[40]=k(E[20]),x[41]=k(E[22]),x[42]=k(E[33]),x[43]=k(E[38]),x[44]=k(E[46]),x[45]=k(E[51]),x[46]=k(E[55]),x[47]=k(E[60]),x[48]=k(E[21]),x[49]=k(E[34]),x[50]=k(E[37]),x[51]=k(E[47]),x[52]=k(E[50]),x[53]=k(E[56]),x[54]=k(E[59]),x[55]=k(E[61]),x[56]=k(E[35]),x[57]=k(E[36]),x[58]=k(E[48]),x[59]=k(E[49]),x[60]=k(E[57]),x[61]=k(E[58]),x[62]=k(E[62]),x[63]=k(E[63]),function(e){let t=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),n=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(3*3.14159/8);for(var i=[,,,,],o=[,,,,],s=[,,,,],l=[,,,,],c=0;c<8;++c){var u=8*c;i[0]=r*e[u+2],i[1]=a*e[u+2],i[2]=r*e[u+6],i[3]=a*e[u+6],o[0]=t*e[u+1]+n*e[u+3]+.2777854612564676*e[u+5]+.09754573032714427*e[u+7],o[1]=n*e[u+1]-.09754573032714427*e[u+3]-t*e[u+5]-.2777854612564676*e[u+7],o[2]=.2777854612564676*e[u+1]-t*e[u+3]+.09754573032714427*e[u+5]+n*e[u+7],o[3]=.09754573032714427*e[u+1]-.2777854612564676*e[u+3]+n*e[u+5]-t*e[u+7],s[0]=.35355362513961314*(e[u+0]+e[u+4]),s[3]=.35355362513961314*(e[u+0]-e[u+4]),s[1]=i[0]+i[3],s[2]=i[1]-i[2],l[0]=s[0]+s[1],l[1]=s[3]+s[2],l[2]=s[3]-s[2],l[3]=s[0]-s[1],e[u+0]=l[0]+o[0],e[u+1]=l[1]+o[1],e[u+2]=l[2]+o[2],e[u+3]=l[3]+o[3],e[u+4]=l[3]-o[3],e[u+5]=l[2]-o[2],e[u+6]=l[1]-o[1],e[u+7]=l[0]-o[0]}for(var d=0;d<8;++d)i[0]=r*e[16+d],i[1]=a*e[16+d],i[2]=r*e[48+d],i[3]=a*e[48+d],o[0]=t*e[8+d]+n*e[24+d]+.2777854612564676*e[40+d]+.09754573032714427*e[56+d],o[1]=n*e[8+d]-.09754573032714427*e[24+d]-t*e[40+d]-.2777854612564676*e[56+d],o[2]=.2777854612564676*e[8+d]-t*e[24+d]+.09754573032714427*e[40+d]+n*e[56+d],o[3]=.09754573032714427*e[8+d]-.2777854612564676*e[24+d]+n*e[40+d]-t*e[56+d],s[0]=.35355362513961314*(e[d]+e[32+d]),s[3]=.35355362513961314*(e[d]-e[32+d]),s[1]=i[0]+i[3],s[2]=i[1]-i[2],l[0]=s[0]+s[1],l[1]=s[3]+s[2],l[2]=s[3]-s[2],l[3]=s[0]-s[1],e[0+d]=l[0]+o[0],e[8+d]=l[1]+o[1],e[16+d]=l[2]+o[2],e[24+d]=l[3]+o[3],e[32+d]=l[3]-o[3],e[40+d]=l[2]-o[2],e[48+d]=l[1]-o[1],e[56+d]=l[0]-o[0]}(v[e])}for(var P=v,S=0;S<64;++S){var O=P[0][S],C=P[1][S],T=P[2][S];P[0][S]=O+1.5747*T,P[1][S]=O-.1873*C-.4682*T,P[2][S]=O+1.8556*C}for(let t=0;t<3;++t)!function(e,t,r){for(var n,a=0;a<64;++a){t[r+a]=s.GxU.toHalfFloat((n=e[a])<=1?Math.sign(n)*Math.pow(Math.abs(n),2.2):Math.sign(n)*Math.pow(9.025013291561939,Math.abs(n)-1))}}(v[t],y[t],64*e)}let i=0;for(let n=0;n<3;++n){let a=r[e.idx[n]].type;for(let e=8*t;e<8*t+M;++e){i=b[n][e];for(let t=0;t<u;++t){let r=64*t+(7&e)*8;o.setUint16(i+0*a,y[n][r+0],!0),o.setUint16(i+2*a,y[n][r+1],!0),o.setUint16(i+4*a,y[n][r+2],!0),o.setUint16(i+6*a,y[n][r+3],!0),o.setUint16(i+8*a,y[n][r+4],!0),o.setUint16(i+10*a,y[n][r+5],!0),o.setUint16(i+12*a,y[n][r+6],!0),o.setUint16(i+14*a,y[n][r+7],!0),i+=16*a}}if(u!=d)for(let e=8*t;e<8*t+M;++e){let t=b[n][e]+8*u*2*a,r=64*u+(7&e)*8;for(let e=0;e<_;++e)o.setUint16(t+2*e*a,y[n][r+e],!0)}}}for(var A=new Uint16Array(l),o=new DataView(i.buffer),I=0;I<3;
81++I){r[e.idx[I]].decoded=!0;var R=r[e.idx[I]].type;if(2==r[I].type)for(var U=0;U<c;++U){let e=b[I][U];for(var j=0;j<l;++j)A[j]=o.getUint16(e+2*j*R,!0);for(var j=0;j<l;++j)o.setFloat32(e+2*j*R,k(A[j]),!0)}}}(E,j,m,P,A,n);for(var v=0;v<m.length;++v){var w=m[v];if(!w.decoded)if(2===w.compression)for(var N=0,H=0,F=0;F<e.lines;++F){for(var B=j[v][N],Y=0;Y<w.width;++Y){for(var q=0;q<2*w.type;++q)n[B++]=R[H+q*w.width*w.height];H++}N++}else throw"EXRLoader.parse: unsupported channel compression"}return new DataView(n.buffer)}function M(e,t){for(var r=new Uint8Array(e),n=0;0!=r[t.value+n];)n+=1;var a=new TextDecoder().decode(r.slice(t.value,t.value+n));return t.value=t.value+n+1,a}function _(e,t){var r=e.getInt32(t.value,!0);return t.value=t.value+4,r}function P(e,t){var r=e.getUint32(t.value,!0);return t.value=t.value+4,r}function S(e,t){var r=e[t.value];return t.value=t.value+1,r}function O(e,t){var r=e.getUint8(t.value);return t.value=t.value+1,r}let C=function(e,t){let r;return r="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,r};function T(e,t){var r=e.getFloat32(t.value,!0);return t.value+=4,r}function A(e,t){return s.GxU.toHalfFloat(T(e,t))}function k(e){var t=(31744&e)>>10,r=1023&e;return(e>>15?-1:1)*(t?31===t?r?NaN:1/0:Math.pow(2,t-15)*(1+r/1024):r/1024*6103515625e-14)}function I(e,t){var r=e.getUint16(t.value,!0);return t.value+=2,r}function R(e,t){return k(I(e,t))}let U=new DataView(e),j=new Uint8Array(e),F={value:0},L=function(e,t,r){let n={};if(0x1312f76!=e.getUint32(0,!0))throw"THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";n.version=e.getUint8(4);let a=e.getUint8(5);n.spec={singleTile:!!(2&a),longName:!!(4&a),deepFormat:!!(8&a),multiPart:!!(16&a)},r.value=8;for(var i=!0;i;){var o=M(t,r);if(0==o)i=!1;else{var s=M(t,r),l=P(e,r),c=function(e,t,r,n,a){var i,o,s,l,c,u,d;if("string"===n||"stringvector"===n||"iccProfile"===n)return i=new TextDecoder().decode(new Uint8Array(t).slice(r.value,r.value+a)),r.value=r.value+a,i;if("chlist"===n)return function(e,t,r,n){for(var a=r.value,i=[];r.value<a+n-1;){var o=M(t,r),s=_(e,r),l=O(e,r);r.value+=3;var c=_(e,r),u=_(e,r);i.push({name:o,pixelType:s,pLinear:l,xSampling:c,ySampling:u})}return r.value+=1,i}(e,t,r,a);if("chromaticities"===n)return o=T(e,r),s=T(e,r),l=T(e,r),c=T(e,r),u=T(e,r),{redX:o,redY:s,greenX:l,greenY:c,blueX:u,blueY:T(e,r),whiteX:T(e,r),whiteY:T(e,r)};if("compression"===n)return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][O(e,r)];if("box2i"===n)return d=P(e,r),{xMin:d,yMin:P(e,r),xMax:P(e,r),yMax:P(e,r)};else if("lineOrder"===n)return["INCREASING_Y"][O(e,r)];else if("float"===n)return T(e,r);else if("v2f"===n)return[T(e,r),T(e,r)];else if("v3f"===n)return[T(e,r),T(e,r),T(e,r)];else if("int"===n)return _(e,r);else if("rational"===n)return[_(e,r),P(e,r)];else if("timecode"===n)return[P(e,r),P(e,r)];else return"preview"===n?(r.value+=a,"skipped"):(r.value+=a,void 0)}(e,t,r,s,l);void 0===c?console.warn(`EXRLoader.parse: skipped unknown header attribute type '${s}'.`):n[o]=c}}if((-5&a)!=0)throw console.error("EXRHeader:",n),"THREE.EXRLoader: provided file is currently unsupported.";return n}(U,e,F),D=function(e,t,r,n,a){let i={size:0,viewer:t,array:r,offset:n,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,channels:e.channels.length,bytesPerLine:null,lines:null,inputSize:null,type:e.channels[0].pixelType,uncompress:null,getter:null,format:null,[N?"colorSpace":"encoding"]:null};switch(e.compression){case"NO_COMPRESSION":i.lines=1,i.uncompress=v;break;case"RLE_COMPRESSION":i.lines=1,i.uncompress=w;break;case"ZIPS_COMPRESSION":i.lines=1,i.uncompress=y;break;case"ZIP_COMPRESSION":i.lines=16,i.uncompress=y;break;case"PIZ_COMPRESSION":i.lines=32,i.uncompress=b;break;case"PXR24_COMPRESSION":i.lines=16,i.uncompress=E;break;case"DWAA_COMPRESSION":i.lines=32,i.uncompress=x;break;case"DWAB_COMPRESSION":i.lines=256,i.uncompress=x;break;default:throw"EXRLoader.parse: "+e.compression+" is unsupported"}if(i.scanlineBlockSize=i.lines,1==i.type)switch(a){case s.RQf:i.getter=R,i.inputSize=2;break;case s.ix0:i.getter=I,i.inputSize=2}else if(2==i.type)switch(a){case s.RQf:i.getter=T,i.inputSize=4;break;case s.ix0:i.getter=A,i.inputSize=4}else throw"EXRLoader.parse: unsupported pixelType "+i.type+" for "+e.compression+".";i.blockCount=(e.dataWindow.yMax+1)/i.scanlineBlockSize;for(var o=0;o<i.blockCount;o++)C(t,n);i.outputChannels=3==i.channels?4:i.channels;let l=i.width*i.height*i.outputChannels;switch(a){case s.RQf:i.byteArray=new Float32Array(l),i.channels<i.outputChannels&&i.byteArray.fill(1,0,l);break;case s.ix0:i.byteArray=new Uint16Array(l),i.channels<i.outputChannels&&i.byteArray.fill(15360,0,l);break;default:console.error("THREE.EXRLoader: unsupported type: ",a)}
81return i.bytesPerLine=i.width*i.inputSize*i.channels,4==i.outputChannels?i.format=s.GWd:i.format=s.VT0,N?i.colorSpace="srgb-linear":i.encoding=3e3,i}(L,U,j,F,this.type),H={value:0},B={R:0,G:1,B:2,A:3,Y:0};for(let e=0;e<D.height/D.scanlineBlockSize;e++){let t=P(U,F);D.size=P(U,F),D.lines=t+D.scanlineBlockSize>D.height?D.height-t:D.scanlineBlockSize;let r=D.size<D.lines*D.bytesPerLine?D.uncompress(D):v(D);F.value+=D.size;for(let t=0;t<D.scanlineBlockSize;t++){let n=t+e*D.scanlineBlockSize;if(n>=D.height)break;for(let e=0;e<D.channels;e++){let a=B[L.channels[e].name];for(let i=0;i<D.width;i++){H.value=(t*(D.channels*D.width)+e*D.width+i)*D.inputSize;let o=(D.height-1-n)*(D.width*D.outputChannels)+i*D.outputChannels+a;D.byteArray[o]=D.getter(r,H)}}}}return{header:L,width:D.width,height:D.height,data:D.byteArray,format:D.format,[N?"colorSpace":"encoding"]:D[N?"colorSpace":"encoding"],type:this.type}}setDataType(e){return this.type=e,this}load(e,t,r,n){return super.load(e,function(e,r){N?e.colorSpace=r.colorSpace:e.encoding=r.encoding,e.minFilter=s.k6q,e.magFilter=s.k6q,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,r)},r,n)}}var B=r(7548);let Y=(e,t,r)=>{let n;switch(e){case s.OUM:n=new Uint8ClampedArray(t*r*4);break;case s.ix0:n=new Uint16Array(t*r*4);break;case s.bkx:n=new Uint32Array(t*r*4);break;case s.tJf:n=new Int8Array(t*r*4);break;case s.fBL:n=new Int16Array(t*r*4);break;case s.Yuy:n=new Int32Array(t*r*4);break;case s.RQf:n=new Float32Array(t*r*4);break;default:throw Error("Unsupported data type")}return n};class q{_renderer;_rendererIsDisposable=!1;_material;_scene;_camera;_quad;_renderTarget;_width;_height;_type;_colorSpace;_supportsReadPixels=!0;constructor(e){this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace
81=e.colorSpace;let t={format:s.GWd,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:e.renderTargetOptions?.anisotropy!==void 0?e.renderTargetOptions?.anisotropy:1,generateMipmaps:e.renderTargetOptions?.generateMipmaps!==void 0&&e.renderTargetOptions?.generateMipmaps,magFilter:e.renderTargetOptions?.magFilter!==void 0?e.renderTargetOptions?.magFilter:s.k6q,minFilter:e.renderTargetOptions?.minFilter!==void 0?e.renderTargetOptions?.minFilter:s.k6q,samples:e.renderTargetOptions?.samples!==void 0?e.renderTargetOptions?.samples:void 0,wrapS:e.renderTargetOptions?.wrapS!==void 0?e.renderTargetOptions?.wrapS:s.ghU,wrapT:e.renderTargetOptions?.wrapT!==void 0?e.renderTargetOptions?.wrapT:s.ghU};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=q.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new s.Z58,this._camera=new s.qUd,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!((e,t,r,a)=>{if(void 0!==n)return n;let i=new s.nWS(1,1,a);t.setRenderTarget(i);let o=new s.eaF(new s.bdM,new s.V9B({color:0xffffff}));t.render(o,r),t.setRenderTarget(null);let l=Y(e,i.width,i.height);return t.readRenderTargetPixels(i,0,0,i.width,i.height,l),i.dispose(),o.geometry.dispose(),o.material.dispose(),n=0!==l[0]})(this._type,this._renderer,this._camera,t)){let e;this._type===s.ix0&&(e=this._renderer.extensions.has("EXT_color_buffer_float")?s.RQf:void 0),void 0!==e?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${s.RQf}`),this._type=e):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new s.eaF(new s.bdM,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new s.nWS(this.width,this.height,t),this._renderTarget.texture.mapping=e.renderTargetOptions?.mapping!==void 0?e.renderTargetOptions?.mapping:s.UTZ}static instantiateRenderer(){let e=new B.WebGLRenderer;return e.setSize(128,128),e}render=()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)};toArray(){if(!this._supportsReadPixels)throw Error("Can't read pixels in this browser");let e=Y(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){let t=new s.GYF(this.toArray(),this.width,this.height,s.GWd,this._type,e?.mapping||s.UTZ,e?.wrapS||s.ghU,e?.wrapT||s.ghU,e?.magFilter||s.k6q,e?.minFilter||s.k6q,e?.anisotropy||1,s.Zr2);return t.generateMipmaps=e?.generateMipmaps!==void 0&&e?.generateMipmaps,t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof s.BKk&&Object.values(this.material.uniforms).forEach(e=>{e.value instanceof s.gPd&&e.value.dispose()}),Object.values(this.material).forEach(e=>{e instanceof s.gPd&&e.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}class W extends Error{}class G extends Error{}let V=(e,t,r)=>{let n=RegExp(`${t}="([^"]*)"`,"i").exec(e);if(n)return n[1];let a=RegExp(`<${t}[^>]*>([\\s\\S]*?)</${t}>`,"i").exec(e);if(a){let e=a[1].match(/<rdf:li>([^<]*)<\/rdf:li>/g);return e&&3===e.length?e.map(e=>e.replace(/<\/?rdf:li>/g,"")):a[1].trim()}if(void 0!==r)return r;throw Error(`Can't find ${t} in gainmap metadata`)};class X{options;constructor(e){this.options={debug:!!e&&void 0!==e.debug&&e.debug,extractFII:!e||void 0===e.extractFII||e.extractFII,extractNonFII:!e||void 0===e.extractNonFII||e.extractNonFII}}extract(e){return new Promise((t,r)=>{let n,a=this.options.debug,i=new DataView(e.buffer);if(65496!==i.getUint16(0))return void r(Error("Not a valid jpeg"));let o=i.byteLength,s=2,l=0;for(;s<o;){if(++l>250)return void r(Error(`Found no marker after ${l} loops 😵`));if(255!==i.getUint8(s))return void r(Error(`Not a valid marker at offset 0x${s.toString(16)}, found: 0x${i.getUint8(s).toString(16)}`));if(n=i.getUint8(s+1),a&&console.log(`Marker: ${n.toString(16)}`),226===n){a&&console.log("Found APP2 marker (0xffe2)");let e=s+4;if(0x4d504600===i.getUint32(e)){let n,a=e+4;if(18761===i.getUint16(a))n=!1;else{if(19789!==i.getUint16(a))return void r(Error("No valid endianness marker found in TIFF header"));n=!0}if(42!==i.getUint16(a+2,!n))return void r(Error("Not valid TIFF data! (no 0x002A marker)"));let o=i.getUint32(a+4,!n);if(o<8)return void r(Error("Not valid TIFF data! (First offset less than 8)"));let s=a+o,l=i.getUint16(s,!n),c=s+2,u=0;for(let e=c;e<c+12*l;e+=12)45057===i.getUint16(e,!n)&&(u=i.getUint32(e+8,!n));let d=s+2+12*l+4,f=[];for(let e=d;e<d+16*u;e+=16){let t={MPType:i.getUint32(e,!n),size:i.getUint32(e+4,!n),dataOffset:i.getUint32(e+8,!n),dependantImages:i.getUint32(e+12,!n),start:-1,end:-1,isFII:!1};t.dataOffset?(t.start=a+t.dataOffset,t.isFII=!1):(t.start=0,t.isFII=!0),t.end=t.start+t.size,f.push(t)}if(this.options.extractNonFII&&f.length){let e=new Blob([i]),r=[];for(let t of f){if(t.isFII&&!this.options.extractFII)continue;let n=e.slice(t.start,t.end+1,"image/jpeg");r.push(n)}t(r)}}}s+=2+i.getUint16(s+2)}})}}let Z=async e=>{let t=(e=>{let t,r=(t="undefined"!=typeof TextDecoder?new TextDecoder().decode(e):e.toString()).indexOf("<x:xmpmeta");for(;-1!==r;){let e=t.indexOf("x:xmpmeta>",r),n=t.slice(r,e+10);try{let e=V(n,"hdrgm:GainMapMin","0"),t=V(n,"hdrgm:GainMapMax"),r=V(n,"hdrgm:Gamma","1"),a=V(n,"hdrgm:OffsetSDR","0.015625"),i=V(n,"hdrgm:OffsetHDR","0.015625"),o=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(n),s=o?o[1]:"0",l=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(n);if(!l)throw Error("Incomplete gainmap metadata");let c=l[1];return{gainMapMin:Array.isArray(e)?e.map(e=>parseFloat(e)):[parseFloat(e),parseFloat(e),parseFloat(e)],gainMapMax:Array.isArray(t)?t.map(e=>parseFloat(e)):[parseFloat(t),parseFloat(t),parseFloat(t)],gamma:Array.isArray(r)?r.map(e=>parseFloat(e)):[parseFloat(r),parseFloat(r),parseFloat(r)],offsetSdr:Array.isArray(a)?a.map(e=>parseFloat(e)):[parseFloat(a),parseFloat(a),parseFloat(a)],offsetHdr:Array.isArray(i)?i.map(e=>parseFloat(e)):[parseFloat(i),parseFloat(i),parseFloat(i)],hdrCapacityMin:parseFloat(s),hdrCapacityMax:p
81arseFloat(c)}}catch(e){}r=t.indexOf("<x:xmpmeta",e)}})(e);if(!t)throw new G("Gain map XMP metadata not found");let r=new X({extractFII:!0,extractNonFII:!0}),n=await r.extract(e);if(2!==n.length)throw new W("Gain map recovery image not found");return{sdr:new Uint8Array(await n[0].arrayBuffer()),gainMap:new Uint8Array(await n[1].arrayBuffer()),metadata:t}},$=e=>new Promise((t,r)=>{let n=document.createElement("img");n.onload=()=>{t(n)},n.onerror=e=>{r(e)},n.src=URL.createObjectURL(e)});class K extends s.aHM{_renderer;_renderTargetOptions;_internalLoadingManager;_config;constructor(e,t){super(t),this._config=e,e.renderer&&(this._renderer=e.renderer),this._internalLoadingManager=new s.KPJ}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: A Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");let e=this._config.createMaterial({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new s.gPd,sdr:new s.gPd});return this._config.createQuadRenderer({width:16,height:16,type:s.ix0,colorSpace:s.Zr2,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async processImages(e,t,r){let n,a,i=t?new Blob([t],{type:"image/jpeg"}):void 0,o=new Blob([e],{type:"image/jpeg"}),s=!1;if("undefined"==typeof createImageBitmap){let e=await Promise.all([i?$(i):Promise.resolve(void 0),$(o)]);a=e[0],n=e[1],s="flipY"===r}else{let e=await Promise.all([i?createImageBitmap(i,{imageOrientation:r||"flipY"}):Promise.resolve(void 0),createImageBitmap(o,{imageOrientation:r||"flipY"})]);a=e[0],n=e[1]}return{sdrImage:n,gainMapImage:a,needsFlip:s}}createTextures(e,t,r){let n=new s.gPd(t||new ImageData(2,2),s.UTZ,s.ghU,s.ghU,s.k6q,s.NZq,s.GWd,s.OUM,1,s.Zr2);n.flipY=r,n.needsUpdate=!0;let a=new s.gPd(e,s.UTZ,s.ghU,s.ghU,s.k6q,s.NZq,s.GWd,s.OUM,1,s.er$);return a.flipY=r,a.needsUpdate=!0,{gainMap:n,sdr:a}}updateQuadRenderer(e,t,r,n,a){e.width=t.width,e.height=t.height,e.material.gainMap=r,e.material.sdr=n,e.material.gainMapMin=a.gainMapMin,e.material.gainMapMax=a.gainMapMax,e.material.offsetHdr=a.offsetHdr,e.material.offsetSdr=a.offsetSdr,e.material.gamma=a.gamma,e.material.hdrCapacityMin=a.hdrCapacityMin,e.material.hdrCapacityMax=a.hdrCapacityMax,e.material.maxDisplayBoost=Math.pow(2,a.hdrCapacityMax),e.material.needsUpdate=!0}}let Q=`
82varying vec2 vUv;
83
84void main() {
85  vUv = uv;
86  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
87}
88`,J=`
89// min half float value
90#define HALF_FLOAT_MIN vec3( -65504, -65504, -65504 )
91// max half float value
92#define HALF_FLOAT_MAX vec3( 65504, 65504, 65504 )
93
94uniform sampler2D sdr;
95uniform sampler2D gainMap;
96uniform vec3 gamma;
97uniform vec3 offsetHdr;
98uniform vec3 offsetSdr;
99uniform vec3 gainMapMin;
100uniform vec3 gainMapMax;
101uniform float weightFactor;
102
103varying vec2 vUv;
104
105void main() {
106  vec3 rgb = texture2D( sdr, vUv ).rgb;
107  vec3 recovery = texture2D( gainMap, vUv ).rgb;
108  vec3 logRecovery = pow( recovery, gamma );
109  vec3 logBoost = gainMapMin * ( 1.0 - logRecovery ) + gainMapMax * logRecovery;
110  vec3 hdrColor = (rgb + offsetSdr) * exp2( logBoost * weightFactor ) - offsetHdr;
111  vec3 clampedHdrColor = max( HALF_FLOAT_MIN, min( HALF_FLOAT_MAX, hdrColor ));
112  gl_FragColor = vec4( clampedHdrColor , 1.0 );
113}
114`;class ee extends s.BKk{_maxDisplayBoost;_hdrCapacityMin;_hdrCapacityMax;constructor({gamma:e,offsetHdr:t,offsetSdr:r,gainMapMin:n,gainMapMax:a,maxDisplayBoost:i,hdrCapacityMin:o,hdrCapacityMax:l,sdr:c,gainMap:u}){super({name:"GainMapDecoderMaterial",vertexShader:Q,fragmentShader:J,uniforms:{sdr:{value:c},gainMap:{value:u},gamma:{value:new s.Pq0(1/e[0],1/e[1],1/e[2])},offsetHdr:{value:new s.Pq0().fromArray(t)},offsetSdr:{value:new s.Pq0().fromArray(r)},gainMapMin:{value:new s.Pq0().fromArray(n)},gainMapMax:{value:new s.Pq0().fromArray(a)},weightFactor:{value:(Math.log2(i)-o)/(l-o)}},blending:s.XIg,depthTest:!1,depthWrite:!1}),this._maxDisplayBoost=i,this._hdrCapacityMin=o,this._hdrCapacityMax=l,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(e){this.uniforms.sdr.value=e}get gainMap(){return this.uniforms.gainMap.value}set gainMap(e){this.uniforms.gainMap.value=e}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(e){this.uniforms.offsetHdr.value.fromArray(e)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(e){this.uniforms.offsetSdr.value.fromArray(e)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(e){this.uniforms.gainMapMin.value.fromArray(e)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(e){this.uniforms.gainMapMax.value.fromArray(e)}get gamma(){let e=this.uniforms.gamma.value;return[1/e.x,1/e.y,1/e.z]}set gamma(e){let t=this.uniforms.gamma.value;t.x=1/e[0],t.y=1/e[1],t.z=1/e[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(e){this._hdrCapacityMin=e,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(e){this._hdrCapacityMax=e,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(e){this._maxDisplayBoost=Math.max(1,Math.min(65504,e)),this.calculateWeight()}calculateWeight(){let e=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,e))}}!B.WebGLRenderer;class et extends K{constructor(e,t){super({renderer:e,createMaterial:e=>new ee(e),createQuadRenderer:e=>new q(e)},t)}async render(e,t,r,n){let{sdrImage:a,gainMapImage:i,needsFlip:o}=await this.processImages(r,n,"flipY"),{gainMap:s,sdr:l}=this.createTextures(a,i,o);this.updateQuadRenderer(e,a,s,l,t),e.render()}}class er extends et{load([e,t,r],n,a,i){let o,l,c,u=this.prepareQuadRenderer(),d=async()=>
114{if(o&&l&&c){try{await this.render(u,c,o,l)}catch(n){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(r),"function"==typeof i&&i(n),u.disposeOnDemandRenderer();return}"function"==typeof n&&n(u),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(r),u.disposeOnDemandRenderer()}},f=!0,h=0,p=0,m=!0,g=0,v=0,w=!0,y=0,b=0,E=()=>{"function"==typeof a&&a(new ProgressEvent("progress",{lengthComputable:f&&m&&w,loaded:p+v+b,total:h+g+y}))};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(r);let x=new s.Y9S(this._internalLoadingManager);x.setResponseType("arraybuffer"),x.setRequestHeader(this.requestHeader),x.setPath(this.path),x.setWithCredentials(this.withCredentials),x.load(e,async e=>{if("string"==typeof e)throw Error("Invalid sdr buffer");o=e,await d()},e=>{f=e.lengthComputable,p=e.loaded,h=e.total,E()},t=>{this.manager.itemError(e),"function"==typeof i&&i(t)});let M=new s.Y9S(this._internalLoadingManager);M.setResponseType("arraybuffer"),M.setRequestHeader(this.requestHeader),M.setPath(this.path),M.setWithCredentials(this.withCredentials),M.load(t,async e=>{if("string"==typeof e)throw Error("Invalid gainmap buffer");l=e,await d()},e=>{m=e.lengthComputable,v=e.loaded,g=e.total,E()},e=>{this.manager.itemError(t),"function"==typeof i&&i(e)});let _=new s.Y9S(this._internalLoadingManager);return _.setRequestHeader(this.requestHeader),_.setPath(this.path),_.setWithCredentials(this.withCredentials),_.load(r,async e=>{if("string"!=typeof e)throw Error("Invalid metadata string");c=JSON.parse(e),await d()},e=>{w=e.lengthComputable,b=e.loaded,y=e.total,E()},e=>{this.manager.itemError(r),"function"==typeof i&&i(e)}),u}}class en extends et{load(e,t,r,n){let a=this.prepareQuadRenderer(),i=new s.Y9S(this._internalLoadingManager);return i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setPath(this.path),i.setWithCredentials(this.withCredentials),this.manager.itemStart(e),i.load(e,async r=>{let i,o,s;if("string"==typeof r)throw Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");let l=new Uint8Array(r);try{let e=await Z(l);i=e.sdr,o=e.gainMap,s=e.metadata}catch(t){if(t instanceof G||t instanceof W)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),s={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},i=l;else throw t}try{await this.render(a,s,i.buffer,o?.buffer)}catch(t){this.manager.itemError(e),"function"==typeof n&&n(t),a.disposeOnDemandRenderer();return}"function"==typeof t&&t(a),this.manager.itemEnd(e),a.disposeOnDemandRenderer()},r,t=>{this.manager.itemError(e),"function"==typeof n&&n(t)}),a}}let ea={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},ei="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",eo=e=>Array.isArray(e),es=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"];function el({files:e=es,path:t="",preset:r,colorSpace:n,extensions:a}={}){r&&(ed(r),e=ea[r],t=ei);let l=eo(e),{extension:c,isCubemap:u}=ef(e),d=eh(c);if(!d)throw Error("useEnvironment: Unrecognized file extension: "+e);let f=(0,o.C)(e=>e.gl);(0,i.useLayoutEffect)(()=>{("webp"===c||"jpg"===c||"jpeg"===c)&&f.domElement.addEventListener("webglcontextlost",function(){o.G.clear(d,l?[e]:e)},{once:!0})},[e,f.domElement]);let h=(0,o.G)(d,l?[e]:e,e=>{("webp"===c||"jpg"===c||"jpeg"===c)&&e.setRenderer(f),null==e.setPath||e.setPath(t),a&&a(e)}),p=l?h[0]:h;if("jpg"===c||"jpeg"===c||"webp"===c){var m;p=null==(m=p.renderTarget)?void 0:m.texture}return p.mapping=u?s.hy7:s.wfO,p.colorSpace=null!=n?n:u?"srgb":"srgb-linear",p}let ec={files:es,path:"",preset:void 0,extensions:void 0};el.preload=e=>{let t={...ec,...e},{files:r,path:n=""}=t,{preset:a,extensions:i}=t;a&&(ed(a),r=ea[a],n=ei);let{extension:s}=ef(r);if("webp"===s||"jpg"===s||"jpeg"===s)throw Error("useEnvironment: Preloading gainmaps is not supported");let l=eh(s);if(!l)throw Error("useEnvironment: Unrecognized file extension: "+r);o.G.preload(l,eo(r)?[r]:r,e=>{null==e.setPath||e.setPath(n),i&&i(e)})};let eu={files:es,preset:void 0};function ed(e){if(!(e in ea))throw Error("Preset must be one of: "+Object.keys(ea).join(", "))}function ef(e){var t;let r=eo(e)&&6===e.length,n=eo(e)&&3===e.length&&e.some(e=>e.endsWith("json")),a=eo(e)?e[0]:e;return{extension:r?"cube":n?"webp":a.startsWith("data:application/exr")?"exr":a.startsWith("data:application/hdr")?"hdr":a.startsWith("data:image/jpeg")?"jpg":null==(t=a.split(".").pop())||null==(t=t.split("?"))||null==(t=t.shift())?void 0:t.toLowerCase(),isCubemap:r,isGainmap:n}}function eh(e){return"cube"===e?s.ScU:"hdr"===e?u:"exr"===e?H:"jpg"===e||"jpeg"===e?en:"webp"===e?er:null}function ep(e,t,r,n,a={}){var i,s,l,c;let u,d;a={backgroundBlurriness:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...a};let f=(d=u=t||r).current&&d.current.isScene?u.current:u,h=f.background,p=f.environment,m={backgroundBlurriness:f.backgroundBlurriness,backgroundIntensity:f.backgroundIntensity,backgroundRotation:null!=(i=null==(s=f.backgroundRotation)||null==s.clone?void 0:s.clone())?i:[0,0,0],environmentIntensity:f.environmentIntensity,environmentRotation:null!=(l=null==(c=f.environmentRotation)||null==c.clone?void 0:c.clone())?l:[0,0,0]};return"only"!==e&&(f.environment=n),e&&(f.background=n),(0,o.s)(f,a),()=>{"only"!==e&&(f.environment=p),e&&(f.background=h),(0,o.s)(f,m)}}function em({scene:e,background:t=!1,map:r,...n}){let a=(0,o.C)(e=>e.scene);return i.useLayoutEffect(()=>{if(r)return ep(t,e,a,r,n)}),null}function eg({background:e=!1,scene:t,blur:r,backgroundBlurriness:n,backgroundIntensity:a,backgroundRotation:s,environmentIntensity:l,environmentRotation:c,...u}){let d=el(u),f=(0,o.C)(e=>e.scene);return i.useLayoutEffect(()=>ep(e,t,f,d,{backgroundBlurriness:null!=r?r:n,backgroundIntensity:a,backgroundRotation:s,environmentIntensity:l,environmentRotation:c})),i.useEffect(()=>()=>{d.dispose()},[d]),null}function ev({children:e,near:t=.1,far:r=1e3,resolution:n=256,frames:a=1,map:l,background:c=!1,blur:u,backgroundBlurriness:d,backgroundIntensity:f,backgroundRotation:h,environmentIntensity:p,environmentRotation:m,scene:g,files:v,path:w,preset
114:y,extensions:b}){let E=(0,o.C)(e=>e.gl),x=(0,o.C)(e=>e.scene),M=i.useRef(null),[_]=i.useState(()=>new s.Z58),P=i.useMemo(()=>{let e=new s.o6l(n);return e.texture.type=s.ix0,e},[n]);i.useEffect(()=>()=>{P.dispose()},[P]),i.useLayoutEffect(()=>{if(1===a){let e=E.autoClear;E.autoClear=!0,M.current.update(E,_),E.autoClear=e}return ep(c,g,x,P.texture,{backgroundBlurriness:null!=u?u:d,backgroundIntensity:f,backgroundRotation:h,environmentIntensity:p,environmentRotation:m})},[e,_,P.texture,g,x,c,a,E]);let S=1;return(0,o.D)(()=>{if(a===1/0||S<a){let e=E.autoClear;E.autoClear=!0,M.current.update(E,_),E.autoClear=e,S++}}),i.createElement(i.Fragment,null,(0,o.o)(i.createElement(i.Fragment,null,e,i.createElement("cubeCamera",{ref:M,args:[t,r,P]}),v||y?i.createElement(eg,{background:!0,files:v,preset:y,path:w,extensions:b}):l?i.createElement(em,{background:!0,map:l,extensions:b}):null),_))}function ew(e){var t,r,n,s;let l=el(e),u=e.map||l;i.useMemo(()=>(0,o.e)({GroundProjectedEnvImpl:c}),[]),i.useEffect(()=>()=>{l.dispose()},[l]);let d=i.useMemo(()=>[u],[u]),f=null==(t=e.ground)?void 0:t.height,h=null==(r=e.ground)?void 0:r.radius,p=null!=(n=null==(s=e.ground)?void 0:s.scale)?n:1e3;return i.createElement(i.Fragment,null,i.createElement(em,(0,a.A)({},e,{map:u})),i.createElement("groundProjectedEnvImpl",{args:d,scale:p,height:f,radius:h}))}function ey(e){return e.ground?i.createElement(ew,e):e.map?i.createElement(em,e):e.children?i.createElement(ev,e):i.createElement(eg,e)}el.clear=e=>{let t={...eu,...e},{files:r}=t,{preset:n}=t;n&&(ed(n),r=ea[n]);let{extension:a}=ef(r),i=eh(a);if(!i)throw Error("useEnvironment: Unrecognized file extension: "+r);o.G.clear(i,eo(r)?[r]:r)}},1138:(e,t,r)=>{r.d(t,{v:()=>o});var n=r(2115),a=r(490);let i=e=>{let t=(0,a.y)(e),r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},o=e=>e?i(e):i},3279:(e,t,r)=>{r.d(t,{x:()=>c});var n=r(8945),a=r(2115),i=r(5339),o=r(264);let s=parseInt(i.sPf.replace(/\D+/g,"")),l=function(e,t,r,n){var a;return(a=class extends i.BKk{constructor(n){for(let a in super({vertexShader:t,fragmentShader:r,...n}),e)this.uniforms[a]=new i.nc$(e[a]),Object.defineProperty(this,a,{get(){return this.uniforms[a].value},set(e){this.uniforms[a].value=e}});this.uniforms=i.LlO.clone(this.uniforms)}}).key=i.cj9.generateUUID(),a}({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,fadeFrom:1,cellThickness:.5,sectionThickness:1,cellColor:new i.Q1f,sectionColor:new i.Q1f,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new i.Pq0,worldPlanePosition:new i.Pq0},`
115    varying vec3 localPosition;
116    varying vec4 worldPosition;
117
118    uniform vec3 worldCamProjPosition;
119    uniform vec3 worldPlanePosition;
120    uniform float fadeDistance;
121    uniform bool infiniteGrid;
122    uniform bool followCamera;
123
124    void main() {
125      localPosition = position.xzy;
126      if (infiniteGrid) localPosition *= 1.0 + fadeDistance;
127      
128      worldPosition = modelMatrix * vec4(localPosition, 1.0);
129      if (followCamera) {
130        worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);
131        localPosition = (inverse(modelMatrix) * worldPosition).xyz;
132      }
133
134      gl_Position = projectionMatrix * viewMatrix * worldPosition;
135    }
136  `,`
137    varying vec3 localPosition;
138    varying vec4 worldPosition;
139
140    uniform vec3 worldCamProjPosition;
141    uniform float cellSize;
142    uniform float sectionSize;
143    uniform vec3 cellColor;
144    uniform vec3 sectionColor;
145    uniform float fadeDistance;
146    uniform float fadeStrength;
147    uniform float fadeFrom;
148    uniform float cellThickness;
149    uniform float sectionThickness;
150
151    float getGrid(float size, float thickness) {
152      vec2 r = localPosition.xz / size;
153      vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
154      float line = min(grid.x, grid.y) + 1.0 - thickness;
155      return 1.0 - min(line, 1.0);
156    }
157
158    void main() {
159      float g1 = getGrid(cellSize, cellThickness);
160      float g2 = getGrid(sectionSize, sectionThickness);
161
162      vec3 from = worldCamProjPosition*vec3(fadeFrom);
163      float dist = distance(from, worldPosition.xyz);
164      float d = 1.0 - min(dist / fadeDistance, 1.0);
165      vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));
166
167      gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));
168      gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);
169      if (gl_FragColor.a <= 0.0) discard;
170
171      #include <tonemapping_fragment>
172      #include <${s>=154?"colorspace_fragment":"encodings_fragment"}>
173    }
174  `),c=a.forwardRef(({args:e,cellColor:t="#000000",sectionColor:r="#2080ff",cellSize:s=.5,sectionSize:c=1,followCamera:u=!1,infiniteGrid:d=!1,fadeDistance:f=100,fadeStrength:h=1,fadeFrom:p=1,cellThickness:m=.5,sectionThickness:g=1,side:v=i.hsX,...w},y)=>{(0,o.e)({GridMaterial:l});let b=a.useRef(null);a.useImperativeHandle(y,()=>b.current,[]);let E=new i.Zcv,x=new i.Pq0(0,1,0),M=new i.Pq0(0,0,0);return(0,o.D)(e=>{E.setFromNormalAndCoplanarPoint(x,M).applyMatrix4(b.current.matrixWorld);let t=b.current.material,r=t.uniforms.worldCamProjPosition,n=t.uniforms.worldPlanePosition;E.projectPoint(e.camera.position,r.value),n.value.set(0,0,0).applyMatrix4(b.current.matrixWorld)}),a.createElement("mesh",(0,n.A)({ref:b,frustumCulled:!1},w),a.createElement("gridMaterial",(0,n.A)({transparent:!0,"extensions-derivatives":!0,side:v},{cellSize:s,sectionSize:c,cellColor:t,sectionColor:r,cellThickness:m,sectionThickness:g},{fadeDistance:f,fadeStrength:h,fadeFrom:p,infiniteGrid:d,followCamera:u})),a.createElement("planeGeometry",{args:e}))})},3580:(e,t,r)=>{r.d(t,{h:()=>l});var n=r(2115),a=r(8828),i=r(490);let{useSyncExternalStoreWithSelector:o}=a,s=(e,t)=>{let r=(0,i.y)(e),a=(e,a=t)=>(function(e,t=e=>e,r){let a=o(e.subscribe,e.getState,e.getInitialState,t,r);return n.useDebugValue(a),a})(r,e,a);return Object.assign(a,r),a},l=(e,t)=>
174e?s(e,t):s},3654:(e,t,r)=>{var n=r(2115),a=r(4806),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=a.useSyncExternalStore,s=n.useRef,l=n.useEffect,c=n.useMemo,u=n.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var d=s(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var h=o(e,(d=c(function(){function e(e){if(!l){if(l=!0,o=e,e=n(e),void 0!==a&&f.hasValue){var t=f.value;if(a(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var r=n(e);return void 0!==a&&a(t,r)?(o=e,t):(o=e,s=r)}var o,s,l=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,n,a]))[0],d[1]);return l(function(){f.hasValue=!0,f.value=h},[h]),u(h),h}},3689:(e,t,r)=>{r.d(t,{DY:()=>o,IU:()=>l,uv:()=>s});let n=[];function a(e,t,r=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let n=e.length;if(t.length!==n)return!1;for(let a=0;a<n;a++)if(!r(e[a],t[a]))return!1;return!0}function i(e,t=null,r=!1,o={}){for(let i of(null===t&&(t=[e]),n))if(a(t,i.keys,i.equal)){if(r)return;if(Object.prototype.hasOwnProperty.call(i,"error"))throw i.error;if(Object.prototype.hasOwnProperty.call(i,"response"))return o.lifespan&&o.lifespan>0&&(i.timeout&&clearTimeout(i.timeout),i.timeout=setTimeout(i.remove,o.lifespan)),i.response;if(!r)throw i.promise}let s={keys:t,equal:o.equal,remove:()=>{let e=n.indexOf(s);-1!==e&&n.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{s.response=e,o.lifespan&&o.lifespan>0&&(s.timeout=setTimeout(s.remove,o.lifespan))}).catch(e=>s.error=e)};if(n.push(s),!r)throw s.promise}let o=(e,t,r)=>i(e,t,!1,r),s=(e,t,r)=>void i(e,t,!0,r),l=e=>{if(void 0===e||0===e.length)n.splice(0,n.length);else{let t=n.find(t=>a(e,t.keys,t.equal));t&&t.remove()}}},4735:(e,t,r)=>{r.d(t,{Af:()=>s,Nz:()=>a,u5:()=>l,y3:()=>d});var n=r(2115);function a(e,t,r){if(!e)return;if(!0===r(e))return e;let n=t?e.return:e.child;for(;n;){let e=a(n,t,r);if(e)return e;n=t?null:n.sibling}}function i(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}(()=>{var e,t;return"undefined"!=typeof window&&((null==(e=window.document)?void 0:e.createElement)||(null==(t=window.navigator)?void 0:t.product)==="ReactNative")})()?n.useLayoutEffect:n.useEffect;let o=i(n.createContext(null));class s extends n.Component{render(){return n.createElement(o.Provider,{value:this._reactInternals},this.props.children)}}function l(){let e=n.useContext(o);if(null===e)throw Error("its-fine: useFiber must be called within a <FiberProvider />!");let t=n.useId();return n.useMemo(()=>{for(let r of[e,null==e?void 0:e.alternate]){if(!r)continue;let e=a(r,!1,e=>{let r=e.memoizedState;for(;r;){if(r.memoizedState===t)return!0;r=r.next}});if(e)return e}},[e,t])}let c=Symbol.for("react.context"),u=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===c;function d(){let e=function(){let e=l(),[t]=n.useState(()=>new Map);t.clear();let r=e;for(;r;){let e=r.type;u(e)&&e!==o&&!t.has(e)&&t.set(e,n.use(i(e))),r=r.return}return t}();return n.useMemo(()=>Array.from(e.keys()).reduce((t,r)=>a=>n.createElement(t,null,n.createElement(r.Provider,{...a,value:e.get(r)})),e=>n.createElement(s,{...e})),[e])}},4806:(e,t,r)=>{e.exports=r(125)},6451:(e,t)=>{function r(e,t){var r=e.length;for(e.push(t);0<r;){var n=r-1>>>1,a=e[n];if(0<i(a,t))e[n]=t,e[r]=a,r=n;else break}}function n(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],r=e.pop();if(r!==t){e[0]=r;for(var n=0,a=e.length,o=a>>>1;n<o;){var s=2*(n+1)-1,l=e[s],c=s+1,u=e[c];if(0>i(l,r))c<a&&0>i(u,l)?(e[n]=u,e[c]=r,n=c):(e[n]=l,e[s]=r,n=s);else if(c<a&&0>i(u,r))e[n]=u,e[c]=r,n=c;else break}}return t}function i(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,s=performance;t.unstable_now=function(){return s.now()}}else{var l=Date,c=l.now();t.unstable_now=function(){return l.now()-c}}var u=[],d=[],f=1,h=null,p=3,m=!1,g=!1,v=!1,w=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,E="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=n(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,r(u,t);else break;t=n(d)}}function M(e){if(v=!1,x(e),!g)if(null!==n(u))g=!0,_||(_=!0,o());else{var t=n(d);null!==t&&I(M,t.startTime-e)}}var _=!1,P=-1,S=5,O=-1;function C(){return!!w||!(t.unstable_now()-O<S)}function T(){if(w=!1,_){var e=t.unstable_now();O=e;var r=!0;try{e:{g=!1,v&&(v=!1,b(P),P=-1),m=!0;var i=p;try{t:{for(x(e),h=n(u);null!==h&&!(h.expirationTime>e&&C());){var s=h.callback;if("function"==typeof s){h.callback=null,p=h.priorityLevel;var l=s(h.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof l){h.callback=l,x(e),r=!0;break t}h===n(u)&&a(u),x(e)}else a(u);h=n(u)}if(null!==h)r=!0;else{var c=n(d);null!==c&&I(M,c.startTime-e),r=!1}}break e}finally{h=null,p=i,m=!1}}}finally{r?o():_=!1}}}if("function"==typeof E)o=function(){E(T)};else if("undefined"!=typeof MessageChannel){var A=new MessageChannel,k=A.port2;A.port1.onmessage=T,o=function(){k.postMessage(null)}}else o=function(){y(T,0)};function I(e,r){P=y(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):S=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}
174var r=p;p=t;try{return e()}finally{p=r}},t.unstable_requestPaint=function(){w=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=p;p=e;try{return t()}finally{p=r}},t.unstable_scheduleCallback=function(e,a,i){var s=t.unstable_now();switch(i="object"==typeof i&&null!==i&&"number"==typeof(i=i.delay)&&0<i?s+i:s,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=0x3fffffff;break;case 4:l=1e4;break;default:l=5e3}return l=i+l,e={id:f++,callback:a,priorityLevel:e,startTime:i,expirationTime:l,sortIndex:-1},i>s?(e.sortIndex=i,r(d,e),null===n(u)&&e===n(d)&&(v?(b(P),P=-1):v=!0,I(M,i-s))):(e.sortIndex=l,r(u,e),g||m||(g=!0,_||(_=!0,o()))),e},t.unstable_shouldYield=C,t.unstable_wrapCallback=function(e){var t=p;return function(){var r=p;p=t;try{return e.apply(this,arguments)}finally{p=r}}}},6750:(e,t,r)=>{r.d(t,{N:()=>g});var n=r(8945),a=r(264),i=r(2115),o=r(5339),s=Object.defineProperty;class l{constructor(){((e,t,r)=>((e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r))(this,"_listeners")}addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let r=this._listeners[e];if(void 0!==r){let e=r.indexOf(t);-1!==e&&r.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let r=t.slice(0);for(let t=0,n=r.length;t<n;t++)r[t].call(this,e);e.target=null}}}var c=Object.defineProperty,u=(e,t,r)=>(((e,t,r)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r),r);let d=new o.RlV,f=new o.Zcv,h=Math.cos(Math.PI/180*70),p=(e,t)=>(e%t+t)%t;class m extends l{constructor(e,t){super(),u(this,"object"),u(this,"domElement"),u(this,"enabled",!0),u(this,"target",new o.Pq0),u(this,"minDistance",0),u(this,"maxDistance",1/0),u(this,"minZoom",0),u(this,"maxZoom",1/0),u(this,"minPolarAngle",0),u(this,"maxPolarAngle",Math.PI),u(this,"minAzimuthAngle",-1/0),u(this,"maxAzimuthAngle",1/0),u(this,"enableDamping",!1),u(this,"dampingFactor",.05),u(this,"enableZoom",!0),u(this,"zoomSpeed",1),u(this,"enableRotate",!0),u(this,"rotateSpeed",1),u(this,"enablePan",!0),u(this,"panSpeed",1),u(this,"screenSpacePanning",!0),u(this,"keyPanSpeed",7),u(this,"zoomToCursor",!1),u(this,"autoRotate",!1),u(this,"autoRotateSpeed",2),u(this,"reverseOrbit",!1),u(this,"reverseHorizontalOrbit",!1),u(this,"reverseVerticalOrbit",!1),u(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),u(this,"mouseButtons",{LEFT:o.kBv.ROTATE,MIDDLE:o.kBv.DOLLY,RIGHT:o.kBv.PAN}),u(this,"touches",{ONE:o.wtR.ROTATE,TWO:o.wtR.DOLLY_PAN}),u(this,"target0"),u(this,"position0"),u(this,"zoom0"),u(this,"_domElementKeyEvents",null),u(this,"getPolarAngle"),u(this,"getAzimuthalAngle"),u(this,"setPolarAngle"),u(this,"setAzimuthalAngle"),u(this,"getDistance"),u(this,"getZoomScale"),u(this,"listenToKeyEvents"),u(this,"stopListenToKeyEvents"),u(this,"saveState"),u(this,"reset"),u(this,"update"),u(this,"connect"),u(this,"dispose"),u(this,"dollyIn"),u(this,"dollyOut"),u(this,"getScale"),u(this,"setScale"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>m.phi,this.getAzimuthalAngle=()=>m.theta,this.setPolarAngle=e=>{let t=p(e,2*Math.PI),n=m.phi;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let a=Math.abs(t-n);2*Math.PI-a<a&&(t<n?t+=2*Math.PI:n+=2*Math.PI),g.phi=t-n,r.update(
174)},this.setAzimuthalAngle=e=>{let t=p(e,2*Math.PI),n=m.theta;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let a=Math.abs(t-n);2*Math.PI-a<a&&(t<n?t+=2*Math.PI:n+=2*Math.PI),g.theta=t-n,r.update()},this.getDistance=()=>r.object.position.distanceTo(r.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",ee),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",ee),this._domElementKeyEvents=null},this.saveState=()=>{r.target0.copy(r.target),r.position0.copy(r.object.position),r.zoom0=r.object.zoom},this.reset=()=>{r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.zoom=r.zoom0,r.object.updateProjectionMatrix(),r.dispatchEvent(n),r.update(),l=s.NONE},this.update=(()=>{let t=new o.Pq0,a=new o.Pq0(0,1,0),i=new o.PTz().setFromUnitVectors(e.up,a),u=i.clone().invert(),p=new o.Pq0,y=new o.PTz,b=2*Math.PI;return function(){let E=r.object.position;i.setFromUnitVectors(e.up,a),u.copy(i).invert(),t.copy(E).sub(r.target),t.applyQuaternion(i),m.setFromVector3(t),r.autoRotate&&l===s.NONE&&U(2*Math.PI/60/60*r.autoRotateSpeed),r.enableDamping?(m.theta+=g.theta*r.dampingFactor,m.phi+=g.phi*r.dampingFactor):(m.theta+=g.theta,m.phi+=g.phi);let x=r.minAzimuthAngle,M=r.maxAzimuthAngle;isFinite(x)&&isFinite(M)&&(x<-Math.PI?x+=b:x>Math.PI&&(x-=b),M<-Math.PI?M+=b:M>Math.PI&&(M-=b),x<=M?m.theta=Math.max(x,Math.min(M,m.theta)):m.theta=m.theta>(x+M)/2?Math.max(x,m.theta):Math.min(M,m.theta)),m.phi=Math.max(r.minPolarAngle,Math.min(r.maxPolarAngle,m.phi)),m.makeSafe(),!0===r.enableDamping?r.target.addScaledVector(w,r.dampingFactor):r.target.add(w),r.zoomToCursor&&A||r.object.isOrthographicCamera?m.radius=H(m.radius):m.radius=H(m.radius*v),t.setFromSpherical(m),t.applyQuaternion(u),E.copy(r.target).add(t),r.object.matrixAutoUpdate||r.object.updateMatrix(),r.object.lookAt(r.target),!0===r.enableDamping?(g.theta*=1-r.dampingFactor,g.phi*=1-r.dampingFactor,w.multiplyScalar(1-r.dampingFactor)):(g.set(0,0,0),w.set(0,0,0));let _=!1;if(r.zoomToCursor&&A){let n=null;if(r.object instanceof o.ubm&&r.object.isPerspectiveCamera){let e=t.length();n=H(e*v);let a=e-n;r.object.position.addScaledVector(C,a),r.object.updateMatrixWorld()}else if(r.object.isOrthographicCamera){let e=new o.Pq0(T.x,T.y,0);e.unproject(r.object),r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/v)),r.object.updateProjectionMatrix(),_=!0;let a=new o.Pq0(T.x,T.y,0);a.unproject(r.object),r.object.position.sub(a).add(e),r.object.updateMatrixWorld(),n=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),r.zoomToCursor=!1;null!==n&&(r.screenSpacePanning?r.target.set(0,0,-1).transformDirection(r.object.matrix).multiplyScalar(n).add(r.object.position):(d.origin.copy(r.object.position),d.direction.set(0,0,-1).transformDirection(r.object.matrix),Math.abs(r.object.up.dot(d.direction))<h?e.lookAt(r.target):(f.setFromNormalAndCoplanarPoint(r.object.up,r.target),d.intersectPlane(f,r.target))))}else r.object instanceof o.qUd&&r.object.isOrthographicCamera&&(_=1!==v)&&(r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/v)),r.object.updateProjectionMatrix());return v=1,A=!1,!!(_||p.distanceToSquared(r.object.position)>c||8*(1-y.dot(r.object.quaternion))>c)&&(r.dispatchEvent(n),p.copy(r.object.position),y.copy(r.object.quaternion),_=!1,!0)}})(),this.connect=e=>{r.domElement=e,r.domElement.style.touchAction="none",r.domElement.addEventListener("contextmenu",et),r.domElement.addEventListener("pointerdown",$),r.domElement.addEventListener("pointercancel",Q),r.domElement.addEventListener("wheel",J)},this.dispose=()=>{var e,t,n,a,i,o;r.domElement&&(r.domElement.style.touchAction="auto"),null==(e=r.domElement)||e.removeEventListener("contextmenu",et),null==(t=r.domElement)||t.removeEventListener("pointerdown",$),null==(n=r.domElement)||n.removeEventListener("pointercancel",Q),null==(a=r.domElement)||a.removeEventListener("wheel",J),null==(i=r.domElement)||i.ownerDocument.removeEventListener("pointermove",K),null==(o=r.domElement)||o.ownerDocument.removeEventListener("pointerup",Q),null!==r._domElementKeyEvents&&r._domElementKeyEvents.removeEventListener("keydown",ee)};let r=this,n={type:"change"},a={type:"start"},i={type:"end"},s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6}
174,l=s.NONE,c=1e-6,m=new o.YHV,g=new o.YHV,v=1,w=new o.Pq0,y=new o.I9Y,b=new o.I9Y,E=new o.I9Y,x=new o.I9Y,M=new o.I9Y,_=new o.I9Y,P=new o.I9Y,S=new o.I9Y,O=new o.I9Y,C=new o.Pq0,T=new o.I9Y,A=!1,k=[],I={};function R(){return Math.pow(.95,r.zoomSpeed)}function U(e){r.reverseOrbit||r.reverseHorizontalOrbit?g.theta+=e:g.theta-=e}function j(e){r.reverseOrbit||r.reverseVerticalOrbit?g.phi+=e:g.phi-=e}let F=(()=>{let e=new o.Pq0;return function(t,r){e.setFromMatrixColumn(r,0),e.multiplyScalar(-t),w.add(e)}})(),L=(()=>{let e=new o.Pq0;return function(t,n){!0===r.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(r.object.up,e)),e.multiplyScalar(t),w.add(e)}})(),z=(()=>{let e=new o.Pq0;return function(t,n){let a=r.domElement;if(a&&r.object instanceof o.ubm&&r.object.isPerspectiveCamera){let i=r.object.position;e.copy(i).sub(r.target);let o=e.length();F(2*t*(o*=Math.tan(r.object.fov/2*Math.PI/180))/a.clientHeight,r.object.matrix),L(2*n*o/a.clientHeight,r.object.matrix)}else a&&r.object instanceof o.qUd&&r.object.isOrthographicCamera?(F(t*(r.object.right-r.object.left)/r.object.zoom/a.clientWidth,r.object.matrix),L(n*(r.object.top-r.object.bottom)/r.object.zoom/a.clientHeight,r.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}})();function D(e){r.object instanceof o.ubm&&r.object.isPerspectiveCamera||r.object instanceof o.qUd&&r.object.isOrthographicCamera?v=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function N(e){if(!r.zoomToCursor||!r.domElement)return;A=!0;let t=r.domElement.getBoundingClientRect(),n=e.clientX-t.left,a=e.clientY-t.top,i=t.width,o=t.height;T.x=n/i*2-1,T.y=-(a/o*2)+1,C.set(T.x,T.y,1).unproject(r.object).sub(r.object.position).normalize()}function H(e){return Math.max(r.minDistance,Math.min(r.maxDistance,e))}function B(e){y.set(e.clientX,e.clientY)}function Y(e){x.set(e.clientX,e.clientY)}function q(){if(1==k.length)y.set(k[0].pageX,k[0].pageY);else{let e=.5*(k[0].pageX+k[1].pageX),t=.5*(k[0].pageY+k[1].pageY);y.set(e,t)}}function W(){if(1==k.length)x.set(k[0].pageX,k[0].pageY);else{let e=.5*(k[0].pageX+k[1].pageX),t=.5*(k[0].pageY+k[1].pageY);x.set(e,t)}}function G(){let e=k[0].pageX-k[1].pageX,t=k[0].pageY-k[1].pageY,r=Math.sqrt(e*e+t*t);P.set(0,r)}function V(e){if(1==k.length)b.set(e.pageX,e.pageY);else{let t=en(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);b.set(r,n)}E.subVectors(b,y).multiplyScalar(r.rotateSpeed);let t=r.domElement;t&&(U(2*Math.PI*E.x/t.clientHeight),j(2*Math.PI*E.y/t.clientHeight)),y.copy(b)}function X(e){if(1==k.length)M.set(e.pageX,e.pageY);else{let t=en(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);M.set(r,n)}_.subVectors(M,x).multiplyScalar(r.panSpeed),z(_.x,_.y),x.copy(M)}function Z(e){var t;let n=en(e),a=e.pageX-n.x,i=e.pageY-n.y,o=Math.sqrt(a*a+i*i);S.set(0,o),O.set(0,Math.pow(S.y/P.y,r.zoomSpeed)),t=O.y,D(v/t),P.copy(S)}function $(e){var t,n,i;!1!==r.enabled&&(0===k.length&&(null==(t=r.domElement)||t.ownerDocument.addEventListener("pointermove",K),null==(n=r.domElement)||n.ownerDocument.addEventListener("pointerup",Q)),i=e,k.push(i),"touch"===e.pointerType?function(e){switch(er(e),k.length){case 1:switch(r.touches.ONE){case o.wtR.ROTATE:if(!1===r.enableRotate)return;q(),l=s.TOUCH_ROTATE;break;case o.wtR.PAN:if(!1===r.enablePan)return;W(),l=s.TOUCH_PAN;break;default:l=s.NONE}break;case 2:switch(r.touches.TWO){case o.wtR.DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&G(),r.enablePan&&W(),l=s.TOUCH_DOLLY_PAN;break;case o.wtR.DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&G(),r.enableRotate&&q(),l=s.TOUCH_DOLLY_ROTATE;break;default:l=s.NONE}break;default:l=s.NONE}l!==s.NONE&&r.dispatchEvent(a)}(e):function(e){let t;switch(e.button){case 0:t=r.mouseButtons.LEFT;break;case 1:t=r.mouseButtons.MIDDLE;break;case 2:t=r.mouseButtons.RIGHT;break;default:t=-1}switch(t){case o.kBv.DOLLY:if(!1===r.enableZoom)return;N(e),P.set(e.clientX,e.clientY),l=s.DOLLY;break;case o.kBv.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enablePan)return;Y(e),l=s.PAN}else{if(!1===r.enableRotate)return;B(e),l=s.ROTATE}break;case o.kBv.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enableRotate)return;B(e),l=s.ROTATE}else{if(!1===r.enablePan)return;Y(e),l=s.PAN}break;default:l=s.NONE}l!==s.NONE&&r.dispatchEvent(a)}(e))}function K(e){!1!==r.enabled&&("touch"===e.pointerType?function(e){switch(er(e),l){case s.TOUCH_ROTATE:if(!1===r.enableRotate)return;
174V(e),r.update();break;case s.TOUCH_PAN:if(!1===r.enablePan)return;X(e),r.update();break;case s.TOUCH_DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&Z(e),r.enablePan&&X(e),r.update();break;case s.TOUCH_DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&Z(e),r.enableRotate&&V(e),r.update();break;default:l=s.NONE}}(e):function(e){if(!1!==r.enabled)switch(l){case s.ROTATE:if(!1===r.enableRotate)return;b.set(e.clientX,e.clientY),E.subVectors(b,y).multiplyScalar(r.rotateSpeed);let t=r.domElement;t&&(U(2*Math.PI*E.x/t.clientHeight),j(2*Math.PI*E.y/t.clientHeight)),y.copy(b),r.update();break;case s.DOLLY:var n,a;if(!1===r.enableZoom)return;(S.set(e.clientX,e.clientY),O.subVectors(S,P),O.y>0)?(n=R(),D(v/n)):O.y<0&&(a=R(),D(v*a)),P.copy(S),r.update();break;case s.PAN:if(!1===r.enablePan)return;M.set(e.clientX,e.clientY),_.subVectors(M,x).multiplyScalar(r.panSpeed),z(_.x,_.y),x.copy(M),r.update()}}(e))}function Q(e){var t,n,a;(function(e){delete I[e.pointerId];for(let t=0;t<k.length;t++)if(k[t].pointerId==e.pointerId)return void k.splice(t,1)})(e),0===k.length&&(null==(t=r.domElement)||t.releasePointerCapture(e.pointerId),null==(n=r.domElement)||n.ownerDocument.removeEventListener("pointermove",K),null==(a=r.domElement)||a.ownerDocument.removeEventListener("pointerup",Q)),r.dispatchEvent(i),l=s.NONE}function J(e){if(!1!==r.enabled&&!1!==r.enableZoom&&(l===s.NONE||l===s.ROTATE)){var t,n;e.preventDefault(),r.dispatchEvent(a),(N(e),e.deltaY<0)?(t=R(),D(v*t)):e.deltaY>0&&(n=R(),D(v/n)),r.update(),r.dispatchEvent(i)}}function ee(e){if(!1!==r.enabled&&!1!==r.enablePan){let t=!1;switch(e.code){case r.keys.UP:z(0,r.keyPanSpeed),t=!0;break;case r.keys.BOTTOM:z(0,-r.keyPanSpeed),t=!0;break;case r.keys.LEFT:z(r.keyPanSpeed,0),t=!0;break;case r.keys.RIGHT:z(-r.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),r.update())}}function et(e){!1!==r.enabled&&e.preventDefault()}function er(e){let t=I[e.pointerId];void 0===t&&(t=new o.I9Y,I[e.pointerId]=t),t.set(e.pageX,e.pageY)}function en(e){return I[(e.pointerId===k[0].pointerId?k[1]:k[0]).pointerId]}this.dollyIn=(e=R())=>{D(v*e),r.update()},this.dollyOut=(e=R())=>{D(v/e),r.update()},this.getScale=()=>v,this.setScale=e=>{D(e),r.update()},this.getZoomScale=()=>R(),void 0!==t&&this.connect(t),this.update()}}let g=i.forwardRef(({makeDefault:e,camera:t,regress:r,domElement:o,enableDamping:s=!0,keyEvents:l=!1,onChange:c,onStart:u,onEnd:d,...f},h)=>{let p=(0,a.C)(e=>e.invalidate),g=(0,a.C)(e=>e.camera),v=(0,a.C)(e=>e.gl),w=(0,a.C)(e=>e.events),y=(0,a.C)(e=>e.setEvents),b=(0,a.C)(e=>e.set),E=(0,a.C)(e=>e.get),x=(0,a.C)(e=>e.performance),M=t||g,_=o||w.connected||v.domElement,P=i.useMemo(()=>new m(M),[M]);return(0,a.D)(()=>{P.enabled&&P.update()},-1),i.useEffect(()=>(l&&P.connect(!0===l?_:l),P.connect(_),()=>void P.dispose()),[l,_,r,P,p]),i.useEffect(()=>{let e=e=>{p(),r&&x.regress(),c&&c(e)},t=e=>{u&&u(e)},n=e=>{d&&d(e)};return P.addEventListener("change",e),P.addEventListener("start",t),P.addEventListener("end",n),()=>{P.removeEventListener("start",t),P.removeEventListener("end",n),P.removeEventListener("change",e)}},[c,u,d,P,p,y]),i.useEffect(()=>{if(e){let e=E().controls;return b({controls:P}),()=>b({controls:e})}},[e,P]),i.createElement("primitive",(0,n.A)({ref:h,object:P,enableDamping:s},f))})},7533:(e,t,r)=>{e.exports=r(6451)},8828:(e,t,r)=>{e.exports=r(3654)},8945:(e,t,r)=>{r.d(t,{A:()=>n});function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}},9863:(e,t,r)=>{r.d(t,{Zr:()=>a});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},a=(e,t)=>(r,a,i)=>{let o,s={storage:function(e,t){let r;try{r=e()}catch(e){return}return{getItem:e=>{var t;let n=e=>null===e?null:JSON.parse(e,void 0),a=null!=(t=r.getItem(e))?t:null;return a instanceof Promise?a.then(n):n(a)},setItem:(e,t)=>r.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>r.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>
174({...t,...e}),...t},l=!1,c=0,u=new Set,d=new Set,f=s.storage;if(!f)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,i);let h=()=>{let e=s.partialize({...a()});return f.setItem(s.name,{state:e,version:s.version})},p=i.setState;i.setState=(e,t)=>(p(e,t),h());let m=e((...e)=>(r(...e),h()),a,i);i.getInitialState=()=>m;let g=()=>{var e,t;if(!f)return;let i=++c;l=!1,u.forEach(e=>{var t;return e(null!=(t=a())?t:m)});let p=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:m))||void 0;return n(f.getItem.bind(f))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(i!==c)return;let[n,l]=e;if(r(o=s.merge(l,null!=(t=a())?t:m),!0),n)return h()}).then(()=>{i===c&&(null==p||p(o,void 0),o=a(),l=!0,d.forEach(e=>e(o)))}).catch(e=>{i===c&&(null==p||p(void 0,e))})};return i.persist={setOptions:e=>{s={...s,...e},e.storage&&(f=e.storage)},clearStorage:()=>{null==f||f.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>g(),hasHydrated:()=>l,onHydrate:e=>(u.add(e),()=>{u.delete(e)}),onFinishHydration:e=>(d.add(e),()=>{d.delete(e)})},s.skipHydration||g(),o||m}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.