PageSourceSearch

https://portfolio-production-ed03.up.railway.app/assets/index-Dd5WB7jw.js

js portfolio-production-ed03.up.railway.app collected 2026-10-03 12:13:22 UTC 1,012,060 bytes, 4,178 lines download raw bytes

vendor: 8,435 bytes, lines 1-25
1var DS=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var zL=DS(nc=>{(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function t(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function a(o){if(o.ep)return;o.ep=!0;const l=t(o);fetch(o.href,l)}})();var kh={exports:{}},Pl={};/**
2 * @license React
3 * react-jsx-runtime.production.js
4 *
5 * Copyright (c) Meta Platforms, Inc. and affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var Cv;function US(){if(Cv)return Pl;Cv=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function t(a,o,l){var u=null;if(l!==void 0&&(u=""+l),o.key!==void 0&&(u=""+o.key),"key"in o){l={};for(var f in o)f!=="key"&&(l[f]=o[f])}else l=o;return o=l.ref,{$$typeof:n,type:a,key:u,ref:o!==void 0?o:null,props:l}}return Pl.Fragment=e,Pl.jsx=t,Pl.jsxs=t,Pl}var Av;function PS(){return Av||(Av=1,kh.exports=US()),kh.exports}var m=PS(),Gh={exports:{}},Ol={},Wh={exports:{}},Xh={};/**
10 * @license React
11 * scheduler.production.js
12 *
13 * Copyright (c) Meta Platforms, Inc. and affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var Rv;function OS(){return Rv||(Rv=1,(function(n){function e(j,Z){var Y=j.length;j.push(Z);e:for(;0<Y;){var he=Y-1>>>1,O=j[he];if(0<o(O,Z))j[he]=Z,j[Y]=O,Y=he;else break e}}function t(j){return j.length===0?null:j[0]}function a(j){if(j.length===0)return null;var Z=j[0],Y=j.pop();if(Y!==Z){j[0]=Y;e:for(var he=0,O=j.length,ee=O>>>1;he<ee;){var Me=2*(he+1)-1,be=j[Me],te=Me+1,xe=j[te];if(0>o(be,Y))te<O&&0>o(xe,be)?(j[he]=xe,j[te]=Y,he=te):(j[he]=be,j[Me]=Y,he=Me);else if(te<O&&0>o(xe,Y))j[he]=xe,j[te]=Y,he=te;else break e}}return Z}function o(j,Z){var Y=j.sortIndex-Z.sortIndex;return Y!==0?Y:j.id-Z.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var l=performance;n.unstable_now=function(){return l.now()}}else{var u=Date,f=u.now();n.unstable_now=function(){return u.now()-f}}var d=[],h=[],g=1,v=null,x=3,y=!1,b=!1,w=!1,M=!1,S=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,T=typeof setImmediate<"u"?setImmediate:null;function R(j){for(var Z=t(h);Z!==null;){if(Z.callback===null)a(h);else if(Z.startTime<=j)a(h),Z.sortIndex=Z.expirationTime,e(d,Z);else break;Z=t(h)}}function P(j){if(w=!1,R(j),!b)if(t(d)!==null)b=!0,I||(I=!0,ce());else{var Z=t(h);Z!==null&&me(P,Z.startTime-j)}}var I=!1,F=-1,V=5,U=-1;function L(){return M?!0:!(n.unstable_now()-U<V)}function z(){if(M=!1,I){var j=n.unstable_now();U=j;var Z=!0;try{e:{b=!1,w&&(w=!1,N(F),F=-1),y=!0;var Y=x;try{t:{for(R(j),v=t(d);v!==null&&!(v.expirationTime>j&&L());){var he=v.callback;if(typeof he=="function"){v.callback=null,x=v.priorityLevel;var O=he(v.expirationTime<=j);if(j=n.unstable_now(),typeof O=="function"){v.callback=O,R(j),Z=!0;break t}v===t(d)&&a(d),R(j)}else a(d);v=t(d)}if(v!==null)Z=!0;else{var ee=t(h);ee!==null&&me(P,ee.startTime-j),Z=!1}}break e}finally{v=null,x=Y,y=!1}Z=void 0}}finally{Z?ce():I=!1}}}var ce;if(typeof T=="function")ce=function(){T(z)};else if(typeof MessageChannel<"u"){var ue=new MessageChannel,ge=ue.port2;ue.port1.onmessage=z,ce=function(){ge.postMessage(null)}}else ce=function(){S(z,0)};function me(j,Z){F=S(function(){j(n.unstable_now())},Z)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(j){j.callback=null},n.unstable_forceFrameRate=function(j){0>j||125<j?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):V=0<j?Math.floor(1e3/j):5},n.unstable_getCurrentPriorityLevel=function(){return x},n.unstable_next=function(j){switch(x){case 1:case 2:case 3:var Z=3;break;default:Z=x}var Y=x;x=Z;try{return j()}finally{x=Y}},n.unstable_requestPaint=function(){M=!0},n.unstable_runWithPriority=function(j,Z){switch(j){case 1:case 2:case 3:case 4:case 5:break;default:j=3}var Y=x;x=j;try{return Z()}finally{x=Y}},n.unstable_scheduleCallback=function(j,Z,Y){var he=n.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?he+Y:he):Y=he,j){case 1:var O=-1;break;case 2:O=250;break;case 5:O=1073741823;break;case 4:O=1e4;break;default:O=5e3}return O=Y+O,j={id:g++,callback:Z,priorityLevel:j,startTime:Y,expirationTime:O,sortIndex:-1},Y>he?(j.sortIndex=Y,e(h,j),t(d)===null&&j===t(h)&&(w?(N(F),F=-1):w=!0,me(P,Y-he))):(j.sortIndex=O,e(d,j),b||y||(b=!0,I||(I=!0,ce()))),j},n.unstable_shouldYield=L,n.unstable_wrapCallback=function(j){var Z=x;return function(){var Y=x;x=Z;try{return j.apply(this,arguments)}finally{x=Y}}}})(Xh)),Xh}var Nv;function IS(){return Nv||(Nv=1,Wh.exports=OS()),Wh.exports}var qh={exports:{}},dt={};/**
18 * @license React
19 * react.production.js
20 *
21 * Copyright (c) Meta Platforms, Inc. and affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */var Lv;function BS(){if(Lv)return dt;Lv=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),u=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.iterator;function x(O){return O===null||typeof O!="object"?null:(O=v&&O[v]||O["@@iterator"],typeof O=="function"?O:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,w={};function M(O,ee,Me){this.props=O,this.context=ee,this.refs=w,this.updater=Me||y}M.prototype.isReactComponent={},M.prototype.setState=function(O,ee){if(typeof O!="object"&&typeof O!="function"&&O!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,O,ee,"setState")},M.prototype.forceUpdate=function(O){this.updater.enqueueForceUpdate(this,O,"forceUpdate")};function S(){}S.prototype=M.prototype;function N(O,ee,Me){this.props=O,this.context=ee,this.refs=w,this.updater=Me||y}var T=N.prototype=new S;T.constructor=N,b(T,M.prototype),T.isPureReactComponent=!0;var R=Array.isArray,P={H:null,A:null,T:null,S:null,V:null},I=Object.prototype.hasOwnProperty;function F(O,ee,Me,be,te,xe){return Me=xe.ref,{$$typeof:n,type:O,key:ee,ref:Me!==void 0?Me:null,props:xe}}function V(O,ee){return F(O.type,ee,void 0,void 0,void 0,O.props)}function U(O){return typeof O=="object"&&O!==null&&O.$$typeof===n}function L(O){var ee={"=":"=0",":":"=2"};return"$"+O.replace(/[=:]/g,function(Me){return ee[Me]})}var z=/\/+/g;function ce(O,ee){return typeof O=="object"&&O!==null&&O.key!=null?L(""+O.key):ee.toString(36)}function ue(){}function ge(O){switch(O.status){case"fulfilled":return O.value;case"rejected":throw O.reason;default:switch(typeof O.status=="string"?O.then(ue,ue):(O.status="pending",O.then(function(ee){O.status==="pending"&&(O.status="fulfilled",O.value=ee)},function(ee){O.status==="pending"&&(O.status="rejected",O.reason=ee)})),O.status){case"fulfilled":return O.value;case"rejected":throw O.reason}}throw O}function me(O,ee,Me,be,te){var xe=typeof O;(xe==="undefined"||xe==="boolean")&&(O=null);var Ee=!1;if(O===null)Ee=!0;else switch(xe){case"bigint":case"string":case"number":Ee=!0;break;case"object":switch(O.$$typeof){case n:case e:Ee=!0;break;case g:return Ee=O._init,me(Ee(O._payload),ee,Me,be,te)}}if(Ee)return te=te(O),Ee=be===""?"."+ce(O,0):be,R(te)?(Me="",Ee!=null&&(Me=Ee.replace(z,"$&/")+"/"),me(te,ee,Me,"",function(ut){return ut}
vendor: 5,143 bytes, line 25
25)):te!=null&&(U(te)&&(te=V(te,Me+(te.key==null||O&&O.key===te.key?"":(""+te.key).replace(z,"$&/")+"/")+Ee)),ee.push(te)),1;Ee=0;var Te=be===""?".":be+":";if(R(O))for(var Ue=0;Ue<O.length;Ue++)be=O[Ue],xe=Te+ce(be,Ue),Ee+=me(be,ee,Me,xe,te);else if(Ue=x(O),typeof Ue=="function")for(O=Ue.call(O),Ue=0;!(be=O.next()).done;)be=be.value,xe=Te+ce(be,Ue++),Ee+=me(be,ee,Me,xe,te);else if(xe==="object"){if(typeof O.then=="function")return me(ge(O),ee,Me,be,te);throw ee=String(O),Error("Objects are not valid as a React child (found: "+(ee==="[object Object]"?"object with keys {"+Object.keys(O).join(", ")+"}":ee)+"). If you meant to render a collection of children, use an array instead.")}return Ee}function j(O,ee,Me){if(O==null)return O;var be=[],te=0;return me(O,be,"","",function(xe){return ee.call(Me,xe,te++)}),be}function Z(O){if(O._status===-1){var ee=O._result;ee=ee(),ee.then(function(Me){(O._status===0||O._status===-1)&&(O._status=1,O._result=Me)},function(Me){(O._status===0||O._status===-1)&&(O._status=2,O._result=Me)}),O._status===-1&&(O._status=0,O._result=ee)}if(O._status===1)return O._result.default;throw O._result}var Y=typeof reportError=="function"?reportError:function(O){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var ee=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof O=="object"&&O!==null&&typeof O.message=="string"?String(O.message):String(O),error:O});if(!window.dispatchEvent(ee))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",O);return}console.error(O)};function he(){}return dt.Children={map:j,forEach:function(O,ee,Me){j(O,function(){ee.apply(this,arguments)},Me)},count:function(O){var ee=0;return j(O,function(){ee++}),ee},toArray:function(O){return j(O,function(ee){return ee})||[]},only:function(O){if(!U(O))throw Error("React.Children.only expected to receive a single React element child.");return O}},dt.Component=M,dt.Fragment=t,dt.Profiler=o,dt.PureComponent=N,dt.StrictMode=a,dt.Suspense=d,dt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=P,dt.__COMPILER_RUNTIME={__proto__:null,c:function(O){return P.H.useMemoCache(O)}},dt.cache=function(O){return function(){return O.apply(null,arguments)}},dt.cloneElement=function(O,ee,Me){if(O==null)throw Error("The argument must be a React element, but you passed "+O+".");var be=b({},O.props),te=O.key,xe=void 0;if(ee!=null)for(Ee in ee.ref!==void 0&&(xe=void 0),ee.key!==void 0&&(te=""+ee.key),ee)!I.call(ee,Ee)||Ee==="key"||Ee==="__self"||Ee==="__source"||Ee==="ref"&&ee.ref===void 0||(be[Ee]=ee[Ee]);var Ee=arguments.length-2;if(Ee===1)be.children=Me;else if(1<Ee){for(var Te=Array(Ee),Ue=0;Ue<Ee;Ue++)Te[Ue]=arguments[Ue+2];be.children=Te}return F(O.type,te,void 0,void 0,xe,be)},dt.createContext=function(O){return O={$$typeof:u,_currentValue:O,_currentValue2:O,_threadCount:0,Provider:null,Consumer:null},O.Provider=O,O.Consumer={$$typeof:l,_context:O},O},dt.createElement=function(O,ee,Me){var be,te={},xe=null;if(ee!=null)for(be in ee.key!==void 0&&(xe=""+ee.key),ee)I.call(ee,be)&&be!=="key"&&be!=="__self"&&be!=="__source"&&(te[be]=ee[be]);var Ee=arguments.length-2;if(Ee===1)te.children=Me;else if(1<Ee){for(var Te=Array(Ee),Ue=0;Ue<Ee;Ue++)Te[Ue]=arguments[Ue+2];te.children=Te}if(O&&O.defaultProps)for(be in Ee=O.defaultProps,Ee)te[be]===void 0&&(te[be]=Ee[be]);return F(O,xe,void 0,void 0,null,te)},dt.createRef=function(){return{current:null}},dt.forwardRef=function(O){return{$$typeof:f,render:O}},dt.isValidElement=U,dt.lazy=function(O){return{$$typeof:g,_payload:{_status:-1,_result:O},_init:Z}},dt.memo=function(O,ee){return{$$typeof:h,type:O,compare:ee===void 0?null:ee}},dt.startTransition=function(O){var ee=P.T,Me={};P.T=Me;try{var be=O(),te=P.S;te!==null&&te(Me,be),typeof be=="object"&&be!==null&&typeof be.then=="function"&&be.then(he,Y)}catch(xe){Y(xe)}finally{P.T=ee}},dt.unstable_useCacheRefresh=function(){return P.H.useCacheRefresh()},dt.use=function(O){return P.H.use(O)},dt.useActionState=function(O,ee,Me){return P.H.useActionState(O,ee,Me)},dt.useCallback=function(O,ee){return P.H.useCallback(O,ee)},dt.useContext=function(O){return P.H.useContext(O)},dt.useDebugValue=function(){},dt.useDeferredValue=function(O,ee){return P.H.useDeferredValue(O,ee)},dt.useEffect=function(O,ee,Me){var be=P.H;if(typeof Me=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return be.useEffect(O,ee)},dt.useId=function(){return P.H.useId()},dt.useImperativeHandle=function(O,ee,Me){return P.H.useImperativeHandle(O,ee,Me)},dt.useInsertionEffect=function(O,ee){return P.H.useInsertionEffect(O,ee)},dt.useLayoutEffect=function(O,ee){return P.H.useLayoutEffect(O,ee)},dt.useMemo=function(O,ee){return P.H.useMemo(O,ee)},dt.useOptimistic=function(O,ee){return P.H.useOptimistic(O,ee)},dt.useReducer=function(O,ee,Me){return P.H.useReducer(O,ee,Me)},dt.useRef=function(O){return P.H.useRef(O)},dt.useState=function(O){return P.H.useState(O)},dt.useSyncExternalStore=function(O,ee,Me){return P.H.useSyncExternalStore(O,ee,Me)},dt.useTransition=function(){return P.H.useTransition()}
vendor: 5,094 bytes, lines 25-41
25,dt.version="19.1.1",dt}var Dv;function Bs(){return Dv||(Dv=1,qh.exports=BS()),qh.exports}var Yh={exports:{}},Fn={};/**
26 * @license React
27 * react-dom.production.js
28 *
29 * Copyright (c) Meta Platforms, Inc. and affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var Uv;function FS(){if(Uv)return Fn;Uv=1;var n=Bs();function e(d){var h="https://react.dev/errors/"+d;if(1<arguments.length){h+="?args[]="+encodeURIComponent(arguments[1]);for(var g=2;g<arguments.length;g++)h+="&args[]="+encodeURIComponent(arguments[g])}return"Minified React error #"+d+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function t(){}var a={d:{f:t,r:function(){throw Error(e(522))},D:t,C:t,L:t,m:t,X:t,S:t,M:t},p:0,findDOMNode:null},o=Symbol.for("react.portal");function l(d,h,g){var v=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:v==null?null:""+v,children:d,containerInfo:h,implementation:g}}var u=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(d,h){if(d==="font")return"";if(typeof h=="string")return h==="use-credentials"?h:""}return Fn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,Fn.createPortal=function(d,h){var g=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!h||h.nodeType!==1&&h.nodeType!==9&&h.nodeType!==11)throw Error(e(299));return l(d,h,null,g)},Fn.flushSync=function(d){var h=u.T,g=a.p;try{if(u.T=null,a.p=2,d)return d()}finally{u.T=h,a.p=g,a.d.f()}},Fn.preconnect=function(d,h){typeof d=="string"&&(h?(h=h.crossOrigin,h=typeof h=="string"?h==="use-credentials"?h:"":void 0):h=null,a.d.C(d,h))},Fn.prefetchDNS=function(d){typeof d=="string"&&a.d.D(d)},Fn.preinit=function(d,h){if(typeof d=="string"&&h&&typeof h.as=="string"){var g=h.as,v=f(g,h.crossOrigin),x=typeof h.integrity=="string"?h.integrity:void 0,y=typeof h.fetchPriority=="string"?h.fetchPriority:void 0;g==="style"?a.d.S(d,typeof h.precedence=="string"?h.precedence:void 0,{crossOrigin:v,integrity:x,fetchPriority:y}):g==="script"&&a.d.X(d,{crossOrigin:v,integrity:x,fetchPriority:y,nonce:typeof h.nonce=="string"?h.nonce:void 0})}},Fn.preinitModule=function(d,h){if(typeof d=="string")if(typeof h=="object"&&h!==null){if(h.as==null||h.as==="script"){var g=f(h.as,h.crossOrigin);a.d.M(d,{crossOrigin:g,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0})}}else h==null&&a.d.M(d)},Fn.preload=function(d,h){if(typeof d=="string"&&typeof h=="object"&&h!==null&&typeof h.as=="string"){var g=h.as,v=f(g,h.crossOrigin);a.d.L(d,g,{crossOrigin:v,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,type:typeof h.type=="string"?h.type:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0,referrerPolicy:typeof h.referrerPolicy=="string"?h.referrerPolicy:void 0,imageSrcSet:typeof h.imageSrcSet=="string"?h.imageSrcSet:void 0,imageSizes:typeof h.imageSizes=="string"?h.imageSizes:void 0,media:typeof h.media=="string"?h.media:void 0})}},Fn.preloadModule=function(d,h){if(typeof d=="string")if(h){var g=f(h.as,h.crossOrigin);a.d.m(d,{as:typeof h.as=="string"&&h.as!=="script"?h.as:void 0,crossOrigin:g,integrity:typeof h.integrity=="string"?h.integrity:void 0})}else a.d.m(d)},Fn.requestFormReset=function(d){a.d.r(d)},Fn.unstable_batchedUpdates=function(d,h){return d(h)},Fn.useFormState=function(d,h,g){return u.H.useFormState(d,h,g)},Fn.useFormStatus=function(){return u.H.useHostTransitionStatus()},Fn.version="19.1.1",Fn}var Pv;function zS(){if(Pv)return Yh.exports;Pv=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Yh.exports=FS(),Yh.exports}/**
34 * @license React
35 * react-dom-client.production.js
36 *
37 * Copyright (c) Meta Platforms, Inc. and affiliates.
38 *
39 * This source code is licensed under the MIT license found in the
40 * LICENSE file in the root directory of this source tree.
41 */var Ov;function VS(){if(Ov)return Ol;Ov=1;var n=IS(),e=Bs(),t=zS();function a(i){var s="https://react.dev/errors/"+i;if(1<arguments.length){s+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)s+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+i+"; visit "+s+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11)}function l(i){var s=i,r=i;if(i.alternate)for(;s.return;)s=s.return;else{i=s;do s=i,(s.flags&4098)!==0&&(r=s.return),i=s.return;while(i)}return s.tag===3?r:null}function u(i){if(i.tag===13){var s=i.memoizedState;if(s===null&&(i=i.alternate,i!==null&&(s=i.memoizedState)),s!==null)return s.dehydrated}return null}function f(i){if(l(i)!==i)throw Error(a(188))}function d(i){var s=i.alternate;
vendor: 18,848 bytes, lines 41-48
41if(!s){if(s=l(i),s===null)throw Error(a(188));return s!==i?null:i}for(var r=i,c=s;;){var p=r.return;if(p===null)break;var _=p.alternate;if(_===null){if(c=p.return,c!==null){r=c;continue}break}if(p.child===_.child){for(_=p.child;_;){if(_===r)return f(p),i;if(_===c)return f(p),s;_=_.sibling}throw Error(a(188))}if(r.return!==c.return)r=p,c=_;else{for(var E=!1,A=p.child;A;){if(A===r){E=!0,r=p,c=_;break}if(A===c){E=!0,c=p,r=_;break}A=A.sibling}if(!E){for(A=_.child;A;){if(A===r){E=!0,r=_,c=p;break}if(A===c){E=!0,c=_,r=p;break}A=A.sibling}if(!E)throw Error(a(189))}}if(r.alternate!==c)throw Error(a(190))}if(r.tag!==3)throw Error(a(188));return r.stateNode.current===r?i:s}function h(i){var s=i.tag;if(s===5||s===26||s===27||s===6)return i;for(i=i.child;i!==null;){if(s=h(i),s!==null)return s;i=i.sibling}return null}var g=Object.assign,v=Symbol.for("react.element"),x=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),S=Symbol.for("react.provider"),N=Symbol.for("react.consumer"),T=Symbol.for("react.context"),R=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),I=Symbol.for("react.suspense_list"),F=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),U=Symbol.for("react.activity"),L=Symbol.for("react.memo_cache_sentinel"),z=Symbol.iterator;function ce(i){return i===null||typeof i!="object"?null:(i=z&&i[z]||i["@@iterator"],typeof i=="function"?i:null)}var ue=Symbol.for("react.client.reference");function ge(i){if(i==null)return null;if(typeof i=="function")return i.$$typeof===ue?null:i.displayName||i.name||null;if(typeof i=="string")return i;switch(i){case b:return"Fragment";case M:return"Profiler";case w:return"StrictMode";case P:return"Suspense";case I:return"SuspenseList";case U:return"Activity"}if(typeof i=="object")switch(i.$$typeof){case y:return"Portal";case T:return(i.displayName||"Context")+".Provider";case N:return(i._context.displayName||"Context")+".Consumer";case R:var s=i.render;return i=i.displayName,i||(i=s.displayName||s.name||"",i=i!==""?"ForwardRef("+i+")":"ForwardRef"),i;case F:return s=i.displayName||null,s!==null?s:ge(i.type)||"Memo";case V:s=i._payload,i=i._init;try{return ge(i(s))}catch{}}return null}var me=Array.isArray,j=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Z=t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={pending:!1,data:null,method:null,action:null},he=[],O=-1;function ee(i){return{current:i}}function Me(i){0>O||(i.current=he[O],he[O]=null,O--)}function be(i,s){O++,he[O]=i.current,i.current=s}var te=ee(null),xe=ee(null),Ee=ee(null),Te=ee(null);function Ue(i,s){switch(be(Ee,s),be(xe,i),be(te,null),s.nodeType){case 9:case 11:i=(i=s.documentElement)&&(i=i.namespaceURI)?tv(i):0;break;default:if(i=s.tagName,s=s.namespaceURI)s=tv(s),i=nv(s,i);else switch(i){case"svg":i=1;break;case"math":i=2;break;default:i=0}}Me(te),be(te,i)}function ut(){Me(te),Me(xe),Me(Ee)}function Qe(i){i.memoizedState!==null&&be(Te,i);var s=te.current,r=nv(s,i.type);s!==r&&(be(xe,i),be(te,r))}function Et(i){xe.current===i&&(Me(te),Me(xe)),Te.current===i&&(Me(Te),Rl._currentValue=Y)}var Ut=Object.prototype.hasOwnProperty,gt=n.unstable_scheduleCallback,k=n.unstable_cancelCallback,Xt=n.unstable_shouldYield,ft=n.unstable_requestPaint,rt=n.unstable_now,He=n.unstable_getCurrentPriorityLevel,vt=n.unstable_ImmediatePriority,Ke=n.unstable_UserBlockingPriority,ot=n.unstable_NormalPriority,$t=n.unstable_LowPriority,B=n.unstable_IdlePriority,C=n.log,J=n.unstable_setDisableYieldValue,de=null,fe=null;function q(i){if(typeof C=="function"&&J(i),fe&&typeof fe.setStrictMode=="function")try{fe.setStrictMode(de,i)}catch{}}var Ae=Math.clz32?Math.clz32:Ge,Le=Math.log,ze=Math.LN2;function Ge(i){return i>>>=0,i===0?32:31-(Le(i)/ze|0)|0}var _e=256,Re=4194304;function Be(i){var s=i&42;if(s!==0)return s;switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function We(i,s,r){var c=i.pendingLanes;if(c===0)return 0;var p=0,_=i.suspendedLanes,E=i.pingedLanes;i=i.warmLanes;var A=c&134217727;return A!==0?(c=A&~_,c!==0?p=Be(c):(E&=A,E!==0?p=Be(E):r||(r=A&~i,r!==0&&(p=Be(r))))):(A=c&~_,A!==0?p=Be(A):E!==0?p=Be(E):r||(r=c&~i,r!==0&&(p=Be(r)))),p===0?0:s!==0&&s!==p&&(s&_)===0&&(_=p&-p,r=s&-s,_>=r||_===32&&(r&4194048)!==0)?s:p}function De(i,s){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&s)===0}function tt(i,s){switch(i){case 1:case 2:case 4:case 8:case 64:return s+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function W(){var i=_e;return _e<<=1,(_e&4194048)===0&&(_e=256),i}function Pe(){var i=Re;return Re<<=1,(Re&62914560)===0&&(Re=4194304),i}function we(i){for(var s=[],r=0;31>r;r++)s.push(i);return s}function Ve(i,s){i.pendingLanes|=s,s!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function Ce(i,s,r,c,p,_){var E=i.pendingLanes;i.pendingLanes=r,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=r,i.entangledLanes&=r,i.errorRecoveryDisabledLanes&=r,i.shellSuspendCounter=0;var A=i.entanglements,H=i.expirationTimes,ie=i.hiddenUpdates;for(r=E&~r;0<r;){var pe=31-Ae(r),ye=1<<pe;A[pe]=0,H[pe]=-1;var se=ie[pe];if(se!==null)for(ie[pe]=null,pe=0;pe<se.length;pe++){var ae=se[pe];ae!==null&&(ae.lane&=-536870913)}r&=~ye}c!==0&&Se(i,c,0),_!==0&&p===0&&i.tag!==0&&(i.suspendedLanes|=_&~(E&~s))}function Se(i,s,r){i.pendingLanes|=s,i.suspendedLanes&=~s;var c=31-Ae(s);i.entangledLanes|=s,i.entanglements[c]=i.entanglements[c]|1073741824|r&4194090}function Xe(i,s){var r=i.entangledLanes|=s;for(i=i.entanglements;r;){var c=31-Ae(r),p=1<<c;p&s|i[c]&s&&(i[c]|=s),r&=~p}}function lt(i){switch(i){case 2:i=1;break;case 8:i=4;break;case 32:i=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:i=128;break;case 268435456:i=134217728;break;default:i=0}return i}function It(i){return i&=-i,2<i?8<i?(i&134217727)!==0?32:268435456:8:2}function Rt(){var i=Z.p;return i!==0?i:(i=window.event,i===void 0?32:Sv(i.type))}function ni(i,s){var r=Z.p;try{return Z.p=i,s()}finally{Z.p=r}}var bn=Math.random().toString(36).slice(2),vn="__reactFiber$"+bn,Nn="__reactProps$"+bn,Xn="__reactContainer$"+bn,Ia="__reactEvents$"+bn,Cc="__reactListeners$"+bn,Ac="__reactHandles$"+bn,Ba="__reactResources$"+bn,qs="__reactMarker$"+bn;function Ys(i){delete i[vn],delete i[Nn],delete i[Ia],delete i[Cc],delete i[Ac]}function ns(i){var s=i[vn];if(s)return s;for(var r=i.parentNode;r;){if(s=r[Xn]||r[vn]){if(r=s.alternate,s.child!==null||r!==null&&r.child!==null)for(i=rv(i);i!==null;){if(r=i[vn])return r;i=rv(i)}return s}i=r,r=i.parentNode}return null}function is(i){if(i=i[vn]||i[Xn]){var s=i.tag;if(s===5||s===6||s===13||s===26||s===27||s===3)return i}return null}function Fa(i){var s=i.tag;if(s===5||s===26||s===27||s===6)return i.stateNode;throw Error(a(33))}function Zs(i){var s=i[Ba];return s||(s=i[Ba]={hoistableStyles:new Map,hoistableScripts:new Map}),s}function un(i){i[qs]=!0}var Rc=new Set,Nc={};function ss(i,s){D(i,s),D(i+"Capture",s)}function D(i,s){for(Nc[i]=s,i=0;i<s.length;i++)Rc.add(s[i])}var Q=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),re={},oe={};function $(i){return Ut.call(oe,i)?!0:Ut.call(re,i)?!1:Q.test(i)?oe[i]=!0:(re[i]=!0,!1)}function Ne(i,s,r){if($(s))if(r===null)i.removeAttribute(s);else{switch(typeof r){case"undefined":case"function":case"symbol":i.removeAttribute(s);return;case"boolean":var c=s.toLowerCase().slice(0,5);if(c!=="data-"&&c!=="aria-"){i.removeAttribute(s);return}}i.setAttribute(s,""+r)}}function Oe(i,s,r){if(r===null)i.removeAttribute(s);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(s);return}i.setAttribute(s,""+r)}}function je(i,s,r,c){if(c===null)i.removeAttribute(r);else{switch(typeof c){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(r);return}i.setAttributeNS(s,r,""+c)}}var ke,it;function Je(i){if(ke===void 0)try{throw Error()}catch(r){var s=r.stack.trim().match(/\n( *(at )?)/);ke=s&&s[1]||"",it=-1<r.stack.indexOf(`
42    at`)?" (<anonymous>)":-1<r.stack.indexOf("@")?"@unknown:0:0":""}return`
43`+ke+i+it}var Ye=!1;function pt(i,s){if(!i||Ye)return"";Ye=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var c={DetermineComponentFrameRoot:function(){try{if(s){var ye=function(){throw Error()};if(Object.defineProperty(ye.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ye,[])}catch(ae){var se=ae}Reflect.construct(i,[],ye)}else{try{ye.call()}catch(ae){se=ae}i.call(ye.prototype)}}else{try{throw Error()}catch(ae){se=ae}(ye=i())&&typeof ye.catch=="function"&&ye.catch(function(){})}}catch(ae){if(ae&&se&&typeof ae.stack=="string")return[ae.stack,se.stack]}return[null,null]}};c.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var p=Object.getOwnPropertyDescriptor(c.DetermineComponentFrameRoot,"name");p&&p.configurable&&Object.defineProperty(c.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var _=c.DetermineComponentFrameRoot(),E=_[0],A=_[1];if(E&&A){var H=E.split(`
44`),ie=A.split(`
45`);for(p=c=0;c<H.length&&!H[c].includes("DetermineComponentFrameRoot");)c++;for(;p<ie.length&&!ie[p].includes("DetermineComponentFrameRoot");)p++;if(c===H.length||p===ie.length)for(c=H.length-1,p=ie.length-1;1<=c&&0<=p&&H[c]!==ie[p];)p--;for(;1<=c&&0<=p;c--,p--)if(H[c]!==ie[p]){if(c!==1||p!==1)do if(c--,p--,0>p||H[c]!==ie[p]){var pe=`
46`+H[c].replace(" at new "," at ");return i.displayName&&pe.includes("<anonymous>")&&(pe=pe.replace("<anonymous>",i.displayName)),pe}while(1<=c&&0<=p);break}}}finally{Ye=!1,Error.prepareStackTrace=r}return(r=i?i.displayName||i.name:"")?Je(r):""}function Pt(i){switch(i.tag){case 26:case 27:case 5:return Je(i.type);case 16:return Je("Lazy");case 13:return Je("Suspense");case 19:return Je("SuspenseList");case 0:case 15:return pt(i.type,!1);case 11:return pt(i.type.render,!1);case 1:return pt(i.type,!0);case 31:return Je("Activity");default:return""}}function Zt(i){try{var s="";do s+=Pt(i),i=i.return;while(i);return s}catch(r){return`
47Error generating stack: `+r.message+`
48`+r.stack}}function _t(i){switch(typeof i){case"bigint":case"boolean":case"number":case"string":case"undefined":return i;case"object":return i;default:return""}}function Ot(i){var s=i.type;return(i=i.nodeName)&&i.toLowerCase()==="input"&&(s==="checkbox"||s==="radio")}function $e(i){var s=Ot(i)?"checked":"value",r=Object.getOwnPropertyDescriptor(i.constructor.prototype,s),c=""+i[s];if(!i.hasOwnProperty(s)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var p=r.get,_=r.set;return Object.defineProperty(i,s,{configurable:!0,get:function(){return p.call(this)},set:function(E){c=""+E,_.call(this,E)}}),Object.defineProperty(i,s,{enumerable:r.enumerable}),{getValue:function(){return c},setValue:function(E){c=""+E},stopTracking:function(){i._valueTracker=null,delete i[s]}}}}function zt(i){i._valueTracker||(i._valueTracker=$e(i))}function wt(i){if(!i)return!1;var s=i._valueTracker;if(!s)return!0;var r=s.getValue(),c="";return i&&(c=Ot(i)?i.checked?"true":"false":i.value),i=c,i!==r?(s.setValue(i),!0):!1}function En(i){if(i=i||(typeof document<"u"?document:void 0),typeof i>"u")return null;try{return i.activeElement||i.body}catch{return i.body}}var Ks=/[\n"\\]/g;function qt(i){return i.replace(Ks,function(s){return"\\"+s.charCodeAt(0).toString(16)+" "})}function as(i,s,r,c,p,_,E,A){i.name="",E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"?i.type=E:i.removeAttribute("type"),s!=null?E==="number"?(s===0&&i.value===""||i.value!=s)&&(i.value=""+_t(s)):i.value!==""+_t(s)&&(i.value=""+_t(s)):E!=="submit"&&E!=="reset"||i.removeAttribute("value"),s!=null?In(i,E,_t(s)):r!=null?In(i,E,_t(r)):c!=null&&i.removeAttribute("value"),p==null&&_!=null&&(i.defaultChecked=!!_),p!=null&&(i.checked=p&&typeof p!="function"&&typeof p!="symbol"),A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"?i.name=""+_t(A):i.removeAttribute("name")}function Gt(i,s,r,c,p,_,E,A){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(i.type=_),s!=null||r!=null){if(!(_!=="submit"&&_!=="reset"||s!=null))return;r=r!=null?""+_t(r):"",s=s!=null?""+_t(s):r,A||s===i.value||(i.value=s),i.defaultValue=s}c=c??p,c=typeof c!="function"&&typeof c!="symbol"&&!!c,i.checked=A?i.checked:!!c,i.defaultChecked=!!c,E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(i.name=E)}function In(i,s,r){s==="number"&&En(i.ownerDocument)===i||i.defaultValue===""+r||(i.defaultValue=""+r)}function xn(i,s,r,c){if(i=i.options,s){s={};for(var p=0;p<r.length;p++)s["$"+r[p]]=!0;for(r=0;r<i.length;r++)p=s.hasOwnProperty("$"+i[r].value),i[r].selected!==p&&(i[r].selected=p),p&&c&&(i[r].defaultSelected=!0)}else{for(r=""+_t(r),s=null,p=0;p<i.length;p++){if(i[p].value===r){i[p].selected=!0,c&&(i[p].defaultSelected=!0);return}s!==null||i[p].disabled||(s=i[p])}s!==null&&(s.selected=!0)}}function wn(i,s,r){if(s!=null&&(s=""+_t(s),s!==i.value&&(i.value=s),r==null)){i.defaultValue!==s&&(i.defaultValue=s);return}i.defaultValue=r!=null?""+_t(r):""}function Ln(i,s,r,c){if(s==null){if(c!=null){if(r!=null)throw Error(a(92));if(me(c)){if(1<c.length)throw Error(a(93));c=c[0]}r=c}r==null&&(r=""),s=r}r=_t(s),i.defaultValue=r,c=i.textContent,c===r&&c!==""&&c!==null&&(i.value=c)}function Fi(i,s){if(s){var r=i.firstChild;if(r&&r===i.lastChild&&r.nodeType===3){r.nodeValue=s;return}}i.textContent=s}var rs=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function t2(i,s,r){var c=s.indexOf("--")===0;r==null||typeof r=="boolean"||r===""?c?i.setProperty(s,""):s==="float"?i.cssFloat="":i[s]="":c?i.setProperty(s,r):typeof r!="number"||r===0||rs.has(s)?s==="float"?i.cssFloat=r:i[s]=(""+r).trim():i[s]=r+"px"}function n2(i,s,r){if(s!=null&&typeof s!="object")throw Error(a(62));if(i=i.style,r!=null){for(var c in r)!r.hasOwnProperty(c)||s!=null&&s.hasOwnProperty(c)||(c.indexOf("--")===0?i.setProperty(c,""):c==="float"?i.cssFloat="":i[c]="");for(var p in s)c=s[p],s.hasOwnProperty(p)&&r[p]!==c&&t2(i,p,c)}else for(var _ in s)s.hasOwnProperty(_)&&t2(i,_,s[_])}function Hf(i){if(i.indexOf("-")===-1)return!1;switch(i){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ny=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode
48-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Ly=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Lc(i){return Ly.test(""+i)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":i}var kf=null;function Gf(i){return i=i.target||i.srcElement||window,i.correspondingUseElement&&(i=i.correspondingUseElement),i.nodeType===3?i.parentNode:i}var br=null,Er=null;function i2(i){var s=is(i);if(s&&(i=s.stateNode)){var r=i[Nn]||null;e:switch(i=s.stateNode,s.type){case"input":if(as(i,r.value,r.defaultValue,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name),s=r.name,r.type==="radio"&&s!=null){for(r=i;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll('input[name="'+qt(""+s)+'"][type="radio"]'),s=0;s<r.length;s++){var c=r[s];if(c!==i&&c.form===i.form){var p=c[Nn]||null;if(!p)throw Error(a(90));as(c,p.value,p.defaultValue,p.defaultValue,p.checked,p.defaultChecked,p.type,p.name)}}for(s=0;s<r.length;s++)c=r[s],c.form===i.form&&wt(c)}break e;case"textarea":wn(i,r.value,r.defaultValue);break e;case"select":s=r.value,s!=null&&xn(i,!!r.multiple,s,!1)}}}var Wf=!1;function s2(i,s,r){if(Wf)return i(s,r);Wf=!0;try{var c=i(s);return c}finally{if(Wf=!1,(br!==null||Er!==null)&&(gu(),br&&(s=br,i=Er,Er=br=null,i2(s),i)))for(s=0;s<i.length;s++)i2(i[s])}}function Ho(i,s){var r=i.stateNode;if(r===null)return null;var c=r[Nn]||null;if(c===null)return null;r=c[s];e:switch(s){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(c=!c.disabled)||(i=i.type,c=!(i==="button"||i==="input"||i==="select"||i==="textarea")),i=!c;break e;default:i=!1}if(i)return null;if(r&&typeof r!="function")throw Error(a(231,s,typeof r));return r}var os=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Xf=!1;if(os)try{var ko={};Object.defineProperty(ko,"passive",{get:function(){Xf=!0}}),window.addEventListener("test",ko,ko),window.removeEventListener("test",ko,ko)}catch{Xf=!1}var Qs=null,qf=null,Dc=null;function a2(){if(Dc)return Dc;var i,s=qf,r=s.length,c,p="value"in Qs?Qs.value:Qs.textContent,_=p.length;for(i=0;i<r&&s[i]===p[i];i++);var E=r-i;for(c=1;c<=E&&s[r-c]===p[_-c];c++);return Dc=p.slice(i,1<c?1-c:void 0)}function Uc(i){var s=i.keyCode;return"charCode"in i?(i=i.charCode,i===0&&s===13&&(i=13)):i=s,i===10&&(i=13),32<=i||i===13?i:0}function Pc(){return!0}function r2(){return!1}function qn(i){function s(r,c,p,_,E){this._reactName=r,this._targetInst=p,this.type=c,this.nativeEvent=_,this.target=E,this.currentTarget=null;for(var A in i)i.hasOwnProperty(A)&&(r=i[A],this[A]=r?r(_):_[A]);return this.isDefaultPrevented=(_.defaultPrevented!=null?_.defaultPrevented:_.returnValue===!1)?Pc:r2,this.isPropagationStopped=r2,this}return g(s.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=Pc)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=Pc)},persist:function(){},isPersistent:Pc}),s}var za={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(i){return i.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Oc=qn(za),Go=g({},za,{view:0,detail:0}),Dy=qn(Go),Yf,Zf,Wo,Ic=g({},Go,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Qf,button:0,buttons:0,relatedTarget:function(i){return i.relatedTarget===void 0?i.fromElement===i.srcElement?i.toElement:i.fromElement:i.relatedTarget},movementX:function(i){return"movementX"in i?i.movementX:(i!==Wo&&(Wo&&i.type==="mousemove"?(Yf=i.screenX-Wo.screenX,Zf=i.screenY-Wo.screenY):Zf=Yf=0,Wo=i),Yf)},movementY:function(i){return"movementY"in i?i.movementY:Zf}}),o2=qn(Ic),Uy=g({},Ic,{dataTransfer:0}),Py=qn(Uy),Oy=g({},Go,{relatedTarget:0}),Kf=qn(Oy),Iy=g({},za,{animationName:0,elapsedTime:0,pseudoElement:0}),By=qn(Iy),Fy=g({},za,{clipboardData:function(i){return"clipboardData"in i?i.clipboardData:window.clipboardData}}),zy=qn(Fy),Vy=g({},za,{data:0}),l2=qn(Vy),jy={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Hy={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},ky={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Gy(i){var s=this.nativeEvent;return s.getModifierState?s.getModifierState(i):(i=ky[i])?!!s[i]:!1}function Qf(){return Gy}var Wy=g({},Go,{key:function(i){if(i.key){var s=jy[i.key]||i.key;if(s!=="Unidentified")return s}
vendor: 4,180 bytes, line 48
48return i.type==="keypress"?(i=Uc(i),i===13?"Enter":String.fromCharCode(i)):i.type==="keydown"||i.type==="keyup"?Hy[i.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Qf,charCode:function(i){return i.type==="keypress"?Uc(i):0},keyCode:function(i){return i.type==="keydown"||i.type==="keyup"?i.keyCode:0},which:function(i){return i.type==="keypress"?Uc(i):i.type==="keydown"||i.type==="keyup"?i.keyCode:0}}),Xy=qn(Wy),qy=g({},Ic,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),c2=qn(qy),Yy=g({},Go,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Qf}),Zy=qn(Yy),Ky=g({},za,{propertyName:0,elapsedTime:0,pseudoElement:0}),Qy=qn(Ky),$y=g({},Ic,{deltaX:function(i){return"deltaX"in i?i.deltaX:"wheelDeltaX"in i?-i.wheelDeltaX:0},deltaY:function(i){return"deltaY"in i?i.deltaY:"wheelDeltaY"in i?-i.wheelDeltaY:"wheelDelta"in i?-i.wheelDelta:0},deltaZ:0,deltaMode:0}),Jy=qn($y),e5=g({},za,{newState:0,oldState:0}),t5=qn(e5),n5=[9,13,27,32],$f=os&&"CompositionEvent"in window,Xo=null;os&&"documentMode"in document&&(Xo=document.documentMode);var i5=os&&"TextEvent"in window&&!Xo,u2=os&&(!$f||Xo&&8<Xo&&11>=Xo),f2=" ",d2=!1;function h2(i,s){switch(i){case"keyup":return n5.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function p2(i){return i=i.detail,typeof i=="object"&&"data"in i?i.data:null}var wr=!1;function s5(i,s){switch(i){case"compositionend":return p2(s);case"keypress":return s.which!==32?null:(d2=!0,f2);case"textInput":return i=s.data,i===f2&&d2?null:i;default:return null}}function a5(i,s){if(wr)return i==="compositionend"||!$f&&h2(i,s)?(i=a2(),Dc=qf=Qs=null,wr=!1,i):null;switch(i){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1<s.char.length)return s.char;if(s.which)return String.fromCharCode(s.which)}return null;case"compositionend":return u2&&s.locale!=="ko"?null:s.data;default:return null}}var r5={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function m2(i){var s=i&&i.nodeName&&i.nodeName.toLowerCase();return s==="input"?!!r5[i.type]:s==="textarea"}function g2(i,s,r,c){br?Er?Er.push(c):Er=[c]:br=c,s=Mu(s,"onChange"),0<s.length&&(r=new Oc("onChange","change",null,r,c),i.push({event:r,listeners:s}))}var qo=null,Yo=null;function o5(i){Kg(i,0)}function Bc(i){var s=Fa(i);if(wt(s))return i}function v2(i,s){if(i==="change")return s}var x2=!1;if(os){var Jf;if(os){var ed="oninput"in document;if(!ed){var _2=document.createElement("div");_2.setAttribute("oninput","return;"),ed=typeof _2.oninput=="function"}Jf=ed}else Jf=!1;x2=Jf&&(!document.documentMode||9<document.documentMode)}function y2(){qo&&(qo.detachEvent("onpropertychange",S2),Yo=qo=null)}function S2(i){if(i.propertyName==="value"&&Bc(Yo)){var s=[];g2(s,Yo,i,Gf(i)),s2(o5,s)}}function l5(i,s,r){i==="focusin"?(y2(),qo=s,Yo=r,qo.attachEvent("onpropertychange",S2)):i==="focusout"&&y2()}function c5(i){if(i==="selectionchange"||i==="keyup"||i==="keydown")return Bc(Yo)}function u5(i,s){if(i==="click")return Bc(s)}function f5(i,s){if(i==="input"||i==="change")return Bc(s)}function d5(i,s){return i===s&&(i!==0||1/i===1/s)||i!==i&&s!==s}var ii=typeof Object.is=="function"?Object.is:d5;function Zo(i,s){if(ii(i,s))return!0;if(typeof i!="object"||i===null||typeof s!="object"||s===null)return!1;var r=Object.keys(i),c=Object.keys(s);if(r.length!==c.length)return!1;for(c=0;c<r.length;c++){var p=r[c];if(!Ut.call(s,p)||!ii(i[p],s[p]))return!1}return!0}function M2(i){for(;i&&i.firstChild;)i=i.firstChild;return i}function b2(i,s){var r=M2(i);i=0;for(var c;r;){if(r.nodeType===3){if(c=i+r.textContent.length,i<=s&&c>=s)return{node:r,offset:s-i};i=c}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=M2(r)}}function E2(i,s){return i&&s?i===s?!0:i&&i.nodeType===3?!1:s&&s.nodeType===3?E2(i,s.parentNode):"contains"in i?i.contains(s):i.
vendor: 14,545 bytes, line 48
48compareDocumentPosition?!!(i.compareDocumentPosition(s)&16):!1:!1}function w2(i){i=i!=null&&i.ownerDocument!=null&&i.ownerDocument.defaultView!=null?i.ownerDocument.defaultView:window;for(var s=En(i.document);s instanceof i.HTMLIFrameElement;){try{var r=typeof s.contentWindow.location.href=="string"}catch{r=!1}if(r)i=s.contentWindow;else break;s=En(i.document)}return s}function td(i){var s=i&&i.nodeName&&i.nodeName.toLowerCase();return s&&(s==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||s==="textarea"||i.contentEditable==="true")}var h5=os&&"documentMode"in document&&11>=document.documentMode,Tr=null,nd=null,Ko=null,id=!1;function T2(i,s,r){var c=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;id||Tr==null||Tr!==En(c)||(c=Tr,"selectionStart"in c&&td(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),Ko&&Zo(Ko,c)||(Ko=c,c=Mu(nd,"onSelect"),0<c.length&&(s=new Oc("onSelect","select",null,s,r),i.push({event:s,listeners:c}),s.target=Tr)))}function Va(i,s){var r={};return r[i.toLowerCase()]=s.toLowerCase(),r["Webkit"+i]="webkit"+s,r["Moz"+i]="moz"+s,r}var Cr={animationend:Va("Animation","AnimationEnd"),animationiteration:Va("Animation","AnimationIteration"),animationstart:Va("Animation","AnimationStart"),transitionrun:Va("Transition","TransitionRun"),transitionstart:Va("Transition","TransitionStart"),transitioncancel:Va("Transition","TransitionCancel"),transitionend:Va("Transition","TransitionEnd")},sd={},C2={};os&&(C2=document.createElement("div").style,"AnimationEvent"in window||(delete Cr.animationend.animation,delete Cr.animationiteration.animation,delete Cr.animationstart.animation),"TransitionEvent"in window||delete Cr.transitionend.transition);function ja(i){if(sd[i])return sd[i];if(!Cr[i])return i;var s=Cr[i],r;for(r in s)if(s.hasOwnProperty(r)&&r in C2)return sd[i]=s[r];return i}var A2=ja("animationend"),R2=ja("animationiteration"),N2=ja("animationstart"),p5=ja("transitionrun"),m5=ja("transitionstart"),g5=ja("transitioncancel"),L2=ja("transitionend"),D2=new Map,ad="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");ad.push("scrollEnd");function Ti(i,s){D2.set(i,s),ss(s,[i])}var U2=new WeakMap;function mi(i,s){if(typeof i=="object"&&i!==null){var r=U2.get(i);return r!==void 0?r:(s={value:i,source:s,stack:Zt(s)},U2.set(i,s),s)}return{value:i,source:s,stack:Zt(s)}}var gi=[],Ar=0,rd=0;function Fc(){for(var i=Ar,s=rd=Ar=0;s<i;){var r=gi[s];gi[s++]=null;var c=gi[s];gi[s++]=null;var p=gi[s];gi[s++]=null;var _=gi[s];if(gi[s++]=null,c!==null&&p!==null){var E=c.pending;E===null?p.next=p:(p.next=E.next,E.next=p),c.pending=p}_!==0&&P2(r,p,_)}}function zc(i,s,r,c){gi[Ar++]=i,gi[Ar++]=s,gi[Ar++]=r,gi[Ar++]=c,rd|=c,i.lanes|=c,i=i.alternate,i!==null&&(i.lanes|=c)}function od(i,s,r,c){return zc(i,s,r,c),Vc(i)}function Rr(i,s){return zc(i,null,null,s),Vc(i)}function P2(i,s,r){i.lanes|=r;var c=i.alternate;c!==null&&(c.lanes|=r);for(var p=!1,_=i.return;_!==null;)_.childLanes|=r,c=_.alternate,c!==null&&(c.childLanes|=r),_.tag===22&&(i=_.stateNode,i===null||i._visibility&1||(p=!0)),i=_,_=_.return;return i.tag===3?(_=i.stateNode,p&&s!==null&&(p=31-Ae(r),i=_.hiddenUpdates,c=i[p],c===null?i[p]=[s]:c.push(s),s.lane=r|536870912),_):null}function Vc(i){if(50<Sl)throw Sl=0,hh=null,Error(a(185));for(var s=i.return;s!==null;)i=s,s=i.return;return i.tag===3?i.stateNode:null}var Nr={};function v5(i,s,r,c){this.tag=i,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=s,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function si(i,s,r,c){return new v5(i,s,r,c)}function ld(i){return i=i.prototype,!(!i||!i.isReactComponent)}function ls(i,s){var r=i.alternate;return r===null?(r=si(i.tag,s,i.key,i.mode),r.elementType=i.elementType,r.type=i.type,r.stateNode=i.stateNode,r.alternate=i,i.alternate=r):(r.pendingProps=s,r.type=i.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=i.flags&65011712,r.childLanes=i.childLanes,r.lanes=i.lanes,r.child=i.child,r.memoizedProps=i.memoizedProps,r.memoizedState=i.memoizedState,r.updateQueue=i.updateQueue,s=i.dependencies,r.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext},r.sibling=i.sibling,r.index=i.index,r.ref=i.ref,r.refCleanup=i.refCleanup,r}function O2(i,s){i.flags&=65011714;var r=i.alternate;return r===null?(i.childLanes=0,i.lanes=s,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=r.childLanes,i.lanes=r.lanes,i.child=r.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=r.memoizedProps,i.memoizedState=r.memoizedState,i.updateQueue=r.updateQueue,i.type=r.type,s=r.dependencies,i.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext}),i}function jc(i,s,r,c,p,_){var E=0;if(c=i,typeof i=="function")ld(i)&&(E=1);else if(typeof i=="string")E=_S(i,r,te.current)?26:i==="html"||i==="head"||i==="body"?27:5;else e:switch(i){case U:return i=si(31,r,s,p),i.elementType=U,i.lanes=_,i;case b:return Ha(r.children,p,_,s);case w:E=8,p|=24;break;case M:return i=si(12,r,s,p|2),i.elementType=M,i.lanes=_,i;case P:return i=si(13,r,s,p),i.elementType=P,i.lanes=_,i;case I:return i=si(19,r,s,p),i.elementType=I,i.lanes=_,i;default:if(typeof i=="object"&&i!==null)switch(i.$$typeof){case S:case T:E=10;break e;case N:E=9;break e;case R:E=11;break e;case F:E=14;break e;case V:E=16,c=null;break e}E=29,r=Error(a(130,i===null?"null":typeof i,"")),c=null}return s=si(E,r,s,p),s.elementType=i,s.type=c,s.lanes=_,s}function Ha(i,s,r,c){return i=si(7,i,c,s),i.lanes=r,i}function cd(i,s,r){return i=si(6,i,null,s),i.lanes=r,i}function ud(i,s,r){return s=si(4,i.children!==null?i.children:[],i.key,s),s.lanes=r,s.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},s}var Lr=[],Dr=0,Hc=null,kc=0,vi=[],xi=0,ka=null,cs=1,us="";function Ga(i,s){Lr[Dr++]=kc,Lr[Dr++]=Hc,Hc=i,kc=s}function I2(i,s,r){vi[xi++]=cs,vi[xi++]=us,vi[xi++]=ka,ka=i;var c=cs;i=us;var p=32-Ae(c)-1;c&=~(1<<p),r+=1;var _=32-Ae(s)+p;if(30<_){var E=p-p%5;_=(c&(1<<E)-1).toString(32),c>>=E,p-=E,cs=1<<32-Ae(s)+p|r<<p|c,us=_+i}else cs=1<<_|r<<p|c,us=i}function fd(i){i.return!==null&&(Ga(i,1),I2(i,1,0))}function dd(i){for(;i===Hc;)Hc=Lr[--Dr],Lr[Dr]=null,kc=Lr[--Dr],Lr[Dr]=null;for(;i===ka;)ka=vi[--xi],vi[xi]=null,us=vi[--xi],vi[xi]=null,cs=vi[--xi],vi[xi]=null}var Hn=null,nn=null,Dt=!1,Wa=null,zi=!1,hd=Error(a(519));function Xa(i){var s=Error(a(418,""));throw Jo(mi(s,i)),hd}function B2(i){var s=i.stateNode,r=i.type,c=i.memoizedProps;switch(s[vn]=i,s[Nn]=c,r){case"dialog":bt("cancel",s),bt("close",s);break;case"iframe":case"object":case"embed":bt("load",s);break;case"video":case"audio":for(r=0;r<bl.length;r++)bt(bl[r],s);break;case"source":bt("error",s);break;case"img":case"image":case"link":bt("error",s),bt("load",s);break;case"details":bt("toggle",s);break;case"input":bt("invalid",s),Gt(s,c.value,c.defaultValue,c.checked,c.defaultChecked,c.type,c.name,!0),zt(s);break;case"select":bt("invalid",s);break;case"textarea":bt("invalid",s),Ln(s,c.value,c.defaultValue,c.children),zt(s)}r=c.children,typeof r!="string"&&typeof r!="number"&&typeof r!="bigint"||s.textContent===""+r||c.suppressHydrationWarning===!0||ev(s.textContent,r)?(c.popover!=null&&(bt("beforetoggle",s),bt("toggle",s)),c.onScroll!=null&&bt("scroll",s),c.onScrollEnd!=null&&bt("scrollend",s),c.onClick!=null&&(s.onclick=bu),s=!0):s=!1,s||Xa(i)}function F2(i){for(Hn=i.return;Hn;)switch(Hn.tag){case 5:case 13:zi=!1;return;case 27:case 3:zi=!0;return;default:Hn=Hn.return}}function Qo(i){if(i!==Hn)return!1;if(!Dt)return F2(i),Dt=!0,!1;var s=i.tag,r;if((r=s!==3&&s!==27)&&((r=s===5)&&(r=i.type,r=!(r!=="form"&&r!=="button")||Rh(i.type,i.memoizedProps)),r=!r),r&&nn&&Xa(i),F2(i),s===13){if(i=i.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(a(317));e:{for(i=i.nextSibling,s=0;i;){if(i.nodeType===8)if(r=i.data,r==="/$"){if(s===0){nn=Ai(i.nextSibling);break e}s--}else r!=="$"&&r!=="$!"&&r!=="$?"||s++;i=i.nextSibling}nn=null}}else s===27?(s=nn,ha(i.type)?(i=Uh,Uh=null,nn=i):nn=s):nn=Hn?Ai(i.stateNode.nextSibling):null;return!0}function $o(){nn=Hn=null,Dt=!1}function z2(){var i=Wa;return i!==null&&(Kn===null?Kn=i:Kn.push.apply(Kn,i),Wa=null),i}function Jo(i){Wa===null?Wa=[i]:Wa.push(i)}var pd=ee(null),qa=null,fs=null;function $s(i,s,r){be(pd,s._currentValue),s._currentValue=r}function ds(i){i._currentValue=pd.current,Me(pd)}function md(i,s,r){for(;i!==null;){var c=i.alternate;if((i.childLanes&s)!==s?(i.childLanes|=s,c!==null&&(c.childLanes|=s)):c!==null&&(c.childLanes&s)!==s&&(c.childLanes|=s),i===r)break;i=i.return}}function gd(i,s,r,c){var p=i.child;for(p!==null&&(p.return=i);p!==null;){var _=p.dependencies;if(_!==null){var E=p.child;_=_.firstContext;e:for(;_!==null;){var A=_;_=p;for(var H=0;H<s.length;H++)if(A.context===s[H]){_.lanes|=r,A=_.alternate,A!==null&&(A.lanes|=r),md(_.return,r,i),c||(E=null);break e}_=A.next}}else if(p.tag===18){if(E=p.return,E===null)throw Error(a(341));E.lanes|=r,_=E.alternate,_!==null&&(_.lanes|=r),md(E,r,i),E=null}else E=p.child;if(E!==null)E.return=p;else for(E=p;E!==null;){if(E===i){E=null;break}if(p=E.sibling,p!==null){p.return=E.return,E=p;break}E=E.return}p=E}}function el(i,s,r,c){i=null;for(var p=s,_=!1;p!==null;){if(!_){if((p.flags&524288)!==0)_=!0;else if((p.flags&262144)!==0)break}if(p.tag===10){var E=p.alternate;if(E===null)throw Error(a(387));if(E=E.memoizedProps,E!==null){var A=p.type;ii(p.pendingProps.value,E.value)||(i!==null?i.push(A):i=[A])}}else if(p===Te.current){if(E=p.alternate,E===null)throw Error(a(387));E.memoizedState.memoizedState!==p.memoizedState.memoizedState&&(i!==null?i.push(Rl):i=[Rl])}p=p.return}i!==null&&gd(s,i,r,c),s.flags|=262144}function Gc(i){for(i=i.firstContext;i!==null;){if(!ii(i.context._currentValue,i.memoizedValue))return!0;i=i.next}return!1}function Ya(i){qa=i,fs=null,i=i.dependencies,i!==null&&(i.firstContext=null)}function Bn(i){return V2(qa,i)}function Wc(i,s){return qa===null&&Ya(i),V2(i,s)}function V2(i,s){var r=s._currentValue;if(s={context:s,memoizedValue:r,next:null},fs===null){if(i===null)throw Error(a(308));fs=s,i.dependencies={lanes:0,firstContext:s},i.flags|=524288}else fs=fs.next=s;return r}var x5=typeof AbortController<"u"?AbortController:function(){var i=[],s=this.signal={aborted:!1,addEventListener:function(r,c){i.push(c)}};this.abort=function(){s.aborted=!0,i.forEach(function(r){return r()})}},_5=n.unstable_scheduleCallback,y5=n.unstable_NormalPriority,_n={$$typeof:T,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function vd(){return{controller:new x5,data:new Map,refCount:0}}function tl(i){i.refCount--,i.refCount===0&&_5(y5,function(){i.controller.abort()})}var nl=null,xd=0,Ur=0,Pr=null;function S5(i,s){if(nl===null){var r=nl=[];xd=0,Ur=yh(),Pr={status:"pending",value:void 0,then:function(c){r.push(c)}}}return xd++,s.then(j2,j2),s}function j2(){if(--xd===0&&nl!==null){Pr!==null&&(Pr.status="fulfilled");var i=nl;nl=null,Ur=0,Pr=null;for(var s=0;s<i.length;s++)(0,i[s])()}}function M5(i,s){var r=[],c={status:"pending",value:null,reason:null,then:function(p){r.push(p)}};return i.then(function(){c.status="fulfilled",c.value=s;for(var p=0;p<r.length;p++)(0,r[p])(s)},function(p){for(c.status="rejected",c.reason=p,p=0;p<r.length;p++)(0,r[p])(void 0)}),c}var H2=j.S;j.S=function(i,s){typeof s=="object"&&s!==null&&typeof s.then=="function"&&S5(i,s),H2!==null&&H2(i,s)};var Za=ee(null);function _d(){var i=Za.current;return i!==null?i:Yt.pooledCache}function Xc(i,s){s===null?be(Za,Za.current):be(Za,s.pool)}function k2(){var i=_d();return i===null?null:{parent:_n._currentValue,pool:i}}var il=Error(a(460)),G2=Error(a(474)),qc=Error(a(542)),yd={then:function(){}};function W2(i){return i=i.status,i==="fulfilled"||i==="rejected"}function Yc(){}function X2(i,s,r){switch(r=i[r],r===void 0?i.push(s):r!==s&&(s.then(Yc,Yc),s=r),s.status){case"fulfilled":return s.value;case"rejected":throw i=s.reason,Y2(i),i;default:if(typeof s.status=="string")s.then(Yc,Yc);else{if(i=Yt,i!==null&&100<i.shellSuspendCounter)throw Error(a(482));i=s,i.status="pending",i.then(function(c){if(s.status==="pending"){var p=s;p.status="fulfilled",p.value=c}},function(c){if(s.status==="pending"){var p=s;p.status="rejected",p.reason=c}})}switch(s.status){case"fulfilled":return s.value;case"rejected":throw i=s.reason,Y2(i),i}throw sl=s,il}}var sl=null;function q2(){if(sl===null)throw Error(a(459));var i=sl;return sl=null,i}function Y2(i){if(i===il||i===qc)throw Error(a(483))}var Js=!1;function Sd(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Md(i,s){i=i.updateQueue,s.updateQueue===i&&(s.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,callbacks:null})}function ea(i){return{lane:i,tag:0,payload:null,callback:null,next:null}}function ta(i,s,r){var c=i.updateQueue;if(c===null)return null;if(c=c.shared,(Bt&2)!==0){var p=c.pending;return p===null?s.next=s:(s.next=p.next,p.next=s),c.pending=s,s=Vc(i),P2(i,null,r),s}return zc(i,c,s,r),Vc(i)}function al(i,s,r){if(s=s.updateQueue,s!==null&&(s=s.shared,(r&4194048)!==0)){var c=s.lanes;c&=i.pendingLanes,r|=c,s.lanes=r,Xe(i,r)}}function bd(i,s){var r=i.updateQueue,c=i.alternate;if(c!==null&&(c=c.updateQueue,r===c)){var p=null,_=null;if(r=r.firstBaseUpdate,r!==null){do{var E={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};_===null?p=_=E:_=_.next=E,r=r.next}
vendor: 1,707 bytes, line 48
48while(r!==null);_===null?p=_=s:_=_.next=s}else p=_=s;r={baseState:c.baseState,firstBaseUpdate:p,lastBaseUpdate:_,shared:c.shared,callbacks:c.callbacks},i.updateQueue=r;return}i=r.lastBaseUpdate,i===null?r.firstBaseUpdate=s:i.next=s,r.lastBaseUpdate=s}var Ed=!1;function rl(){if(Ed){var i=Pr;if(i!==null)throw i}}function ol(i,s,r,c){Ed=!1;var p=i.updateQueue;Js=!1;var _=p.firstBaseUpdate,E=p.lastBaseUpdate,A=p.shared.pending;if(A!==null){p.shared.pending=null;var H=A,ie=H.next;H.next=null,E===null?_=ie:E.next=ie,E=H;var pe=i.alternate;pe!==null&&(pe=pe.updateQueue,A=pe.lastBaseUpdate,A!==E&&(A===null?pe.firstBaseUpdate=ie:A.next=ie,pe.lastBaseUpdate=H))}if(_!==null){var ye=p.baseState;E=0,pe=ie=H=null,A=_;do{var se=A.lane&-536870913,ae=se!==A.lane;if(ae?(Ct&se)===se:(c&se)===se){se!==0&&se===Ur&&(Ed=!0),pe!==null&&(pe=pe.next={lane:0,tag:A.tag,payload:A.payload,callback:null,next:null});e:{var st=i,et=A;se=s;var Ht=r;switch(et.tag){case 1:if(st=et.payload,typeof st=="function"){ye=st.call(Ht,ye,se);break e}ye=st;break e;case 3:st.flags=st.flags&-65537|128;case 0:if(st=et.payload,se=typeof st=="function"?st.call(Ht,ye,se):st,se==null)break e;ye=g({},ye,se);break e;case 2:Js=!0}}se=A.callback,se!==null&&(i.flags|=64,ae&&(i.flags|=8192),ae=p.callbacks,ae===null?p.callbacks=[se]:ae.push(se))}else ae={lane:se,tag:A.tag,payload:A.payload,callback:A.callback,next:null},pe===null?(ie=pe=ae,H=ye):pe=pe.next=ae,E|=se;if(A=A.next,A===null){if(A=p.shared.pending,A===null)break;ae=A,A=ae.next,ae.next=null,p.lastBaseUpdate=ae,p.shared.pending=null}}while(!0);pe===null&&(H=ye),p.baseState=H,p.firstBaseUpdate=ie,p.lastBaseUpdate=pe,_===null&&(p.shared.lanes=0),ca|=E,i.lanes=E,i.memoizedState=ye}}
vendor: 41,233 bytes, line 48
48function Z2(i,s){if(typeof i!="function")throw Error(a(191,i));i.call(s)}function K2(i,s){var r=i.callbacks;if(r!==null)for(i.callbacks=null,i=0;i<r.length;i++)Z2(r[i],s)}var Or=ee(null),Zc=ee(0);function Q2(i,s){i=_s,be(Zc,i),be(Or,s),_s=i|s.baseLanes}function wd(){be(Zc,_s),be(Or,Or.current)}function Td(){_s=Zc.current,Me(Or),Me(Zc)}var na=0,xt=null,Vt=null,fn=null,Kc=!1,Ir=!1,Ka=!1,Qc=0,ll=0,Br=null,b5=0;function rn(){throw Error(a(321))}function Cd(i,s){if(s===null)return!1;for(var r=0;r<s.length&&r<i.length;r++)if(!ii(i[r],s[r]))return!1;return!0}function Ad(i,s,r,c,p,_){return na=_,xt=s,s.memoizedState=null,s.updateQueue=null,s.lanes=0,j.H=i===null||i.memoizedState===null?P1:O1,Ka=!1,_=r(c,p),Ka=!1,Ir&&(_=J2(s,r,c,p)),$2(i),_}function $2(i){j.H=iu;var s=Vt!==null&&Vt.next!==null;if(na=0,fn=Vt=xt=null,Kc=!1,ll=0,Br=null,s)throw Error(a(300));i===null||Tn||(i=i.dependencies,i!==null&&Gc(i)&&(Tn=!0))}function J2(i,s,r,c){xt=i;var p=0;do{if(Ir&&(Br=null),ll=0,Ir=!1,25<=p)throw Error(a(301));if(p+=1,fn=Vt=null,i.updateQueue!=null){var _=i.updateQueue;_.lastEffect=null,_.events=null,_.stores=null,_.memoCache!=null&&(_.memoCache.index=0)}j.H=N5,_=s(r,c)}while(Ir);return _}function E5(){var i=j.H,s=i.useState()[0];return s=typeof s.then=="function"?cl(s):s,i=i.useState()[0],(Vt!==null?Vt.memoizedState:null)!==i&&(xt.flags|=1024),s}function Rd(){var i=Qc!==0;return Qc=0,i}function Nd(i,s,r){s.updateQueue=i.updateQueue,s.flags&=-2053,i.lanes&=~r}function Ld(i){if(Kc){for(i=i.memoizedState;i!==null;){var s=i.queue;s!==null&&(s.pending=null),i=i.next}Kc=!1}na=0,fn=Vt=xt=null,Ir=!1,ll=Qc=0,Br=null}function Yn(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return fn===null?xt.memoizedState=fn=i:fn=fn.next=i,fn}function dn(){if(Vt===null){var i=xt.alternate;i=i!==null?i.memoizedState:null}else i=Vt.next;var s=fn===null?xt.memoizedState:fn.next;if(s!==null)fn=s,Vt=i;else{if(i===null)throw xt.alternate===null?Error(a(467)):Error(a(310));Vt=i,i={memoizedState:Vt.memoizedState,baseState:Vt.baseState,baseQueue:Vt.baseQueue,queue:Vt.queue,next:null},fn===null?xt.memoizedState=fn=i:fn=fn.next=i}return fn}function Dd(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function cl(i){var s=ll;return ll+=1,Br===null&&(Br=[]),i=X2(Br,i,s),s=xt,(fn===null?s.memoizedState:fn.next)===null&&(s=s.alternate,j.H=s===null||s.memoizedState===null?P1:O1),i}function $c(i){if(i!==null&&typeof i=="object"){if(typeof i.then=="function")return cl(i);if(i.$$typeof===T)return Bn(i)}throw Error(a(438,String(i)))}function Ud(i){var s=null,r=xt.updateQueue;if(r!==null&&(s=r.memoCache),s==null){var c=xt.alternate;c!==null&&(c=c.updateQueue,c!==null&&(c=c.memoCache,c!=null&&(s={data:c.data.map(function(p){return p.slice()}),index:0})))}if(s==null&&(s={data:[],index:0}),r===null&&(r=Dd(),xt.updateQueue=r),r.memoCache=s,r=s.data[s.index],r===void 0)for(r=s.data[s.index]=Array(i),c=0;c<i;c++)r[c]=L;return s.index++,r}function hs(i,s){return typeof s=="function"?s(i):s}function Jc(i){var s=dn();return Pd(s,Vt,i)}function Pd(i,s,r){var c=i.queue;if(c===null)throw Error(a(311));c.lastRenderedReducer=r;var p=i.baseQueue,_=c.pending;if(_!==null){if(p!==null){var E=p.next;p.next=_.next,_.next=E}s.baseQueue=p=_,c.pending=null}if(_=i.baseState,p===null)i.memoizedState=_;else{s=p.next;var A=E=null,H=null,ie=s,pe=!1;do{var ye=ie.lane&-536870913;if(ye!==ie.lane?(Ct&ye)===ye:(na&ye)===ye){var se=ie.revertLane;if(se===0)H!==null&&(H=H.next={lane:0,revertLane:0,action:ie.action,hasEagerState:ie.hasEagerState,eagerState:ie.eagerState,next:null}),ye===Ur&&(pe=!0);else if((na&se)===se){ie=ie.next,se===Ur&&(pe=!0);continue}else ye={lane:0,revertLane:ie.revertLane,action:ie.action,hasEagerState:ie.hasEagerState,eagerState:ie.eagerState,next:null},H===null?(A=H=ye,E=_):H=H.next=ye,xt.lanes|=se,ca|=se;ye=ie.action,Ka&&r(_,ye),_=ie.hasEagerState?ie.eagerState:r(_,ye)}else se={lane:ye,revertLane:ie.revertLane,action:ie.action,hasEagerState:ie.hasEagerState,eagerState:ie.eagerState,next:null},H===null?(A=H=se,E=_):H=H.next=se,xt.lanes|=ye,ca|=ye;ie=ie.next}while(ie!==null&&ie!==s);if(H===null?E=_:H.next=A,!ii(_,i.memoizedState)&&(Tn=!0,pe&&(r=Pr,r!==null)))throw r;i.memoizedState=_,i.baseState=E,i.baseQueue=H,c.lastRenderedState=_}return p===null&&(c.lanes=0),[i.memoizedState,c.dispatch]}function Od(i){var s=dn(),r=s.queue;if(r===null)throw Error(a(311));r.lastRenderedReducer=i;var c=r.dispatch,p=r.pending,_=s.memoizedState;if(p!==null){r.pending=null;var E=p=p.next;do _=i(_,E.action),E=E.next;while(E!==p);ii(_,s.memoizedState)||(Tn=!0),s.memoizedState=_,s.baseQueue===null&&(s.baseState=_),r.lastRenderedState=_}return[_,c]}function e1(i,s,r){var c=xt,p=dn(),_=Dt;if(_){if(r===void 0)throw Error(a(407));r=r()}else r=s();var E=!ii((Vt||p).memoizedState,r);E&&(p.memoizedState=r,Tn=!0),p=p.queue;var A=i1.bind(null,c,p,i);if(ul(2048,8,A,[i]),p.getSnapshot!==s||E||fn!==null&&fn.memoizedState.tag&1){if(c.flags|=2048,Fr(9,eu(),n1.bind(null,c,p,r,s),null),Yt===null)throw Error(a(349));_||(na&124)!==0||t1(c,s,r)}return r}function t1(i,s,r){i.flags|=16384,i={getSnapshot:s,value:r},s=xt.updateQueue,s===null?(s=Dd(),xt.updateQueue=s,s.stores=[i]):(r=s.stores,r===null?s.stores=[i]:r.push(i))}function n1(i,s,r,c){s.value=r,s.getSnapshot=c,s1(s)&&a1(i)}function i1(i,s,r){return r(function(){s1(s)&&a1(i)})}function s1(i){var s=i.getSnapshot;i=i.value;try{var r=s();return!ii(i,r)}catch{return!0}}function a1(i){var s=Rr(i,2);s!==null&&ci(s,i,2)}function Id(i){var s=Yn();if(typeof i=="function"){var r=i;if(i=r(),Ka){q(!0);try{r()}finally{q(!1)}}}return s.memoizedState=s.baseState=i,s.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:hs,lastRenderedState:i},s}function r1(i,s,r,c){return i.baseState=r,Pd(i,Vt,typeof c=="function"?c:hs)}function w5(i,s,r,c,p){if(nu(i))throw Error(a(485));if(i=s.action,i!==null){var _={payload:p,action:i,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(E){_.listeners.push(E)}};j.T!==null?r(!0):_.isTransition=!1,c(_),r=s.pending,r===null?(_.next=s.pending=_,o1(s,_)):(_.next=r.next,s.pending=r.next=_)}}function o1(i,s){var r=s.action,c=s.payload,p=i.state;if(s.isTransition){var _=j.T,E={};j.T=E;try{var A=r(p,c),H=j.S;H!==null&&H(E,A),l1(i,s,A)}catch(ie){Bd(i,s,ie)}finally{j.T=_}}else try{_=r(p,c),l1(i,s,_)}catch(ie){Bd(i,s,ie)}}function l1(i,s,r){r!==null&&typeof r=="object"&&typeof r.then=="function"?r.then(function(c){c1(i,s,c)},function(c){return Bd(i,s,c)}):c1(i,s,r)}function c1(i,s,r){s.status="fulfilled",s.value=r,u1(s),i.state=r,s=i.pending,s!==null&&(r=s.next,r===s?i.pending=null:(r=r.next,s.next=r,o1(i,r)))}function Bd(i,s,r){var c=i.pending;if(i.pending=null,c!==null){c=c.next;do s.status="rejected",s.reason=r,u1(s),s=s.next;while(s!==c)}i.action=null}function u1(i){i=i.listeners;for(var s=0;s<i.length;s++)(0,i[s])()}function f1(i,s){return s}function d1(i,s){if(Dt){var r=Yt.formState;if(r!==null){e:{var c=xt;if(Dt){if(nn){t:{for(var p=nn,_=zi;p.nodeType!==8;){if(!_){p=null;break t}if(p=Ai(p.nextSibling),p===null){p=null;break t}}_=p.data,p=_==="F!"||_==="F"?p:null}if(p){nn=Ai(p.nextSibling),c=p.data==="F!";break e}}Xa(c)}c=!1}c&&(s=r[0])}}return r=Yn(),r.memoizedState=r.baseState=s,c={pending:null,lanes:0,dispatch:null,lastRenderedReducer:f1,lastRenderedState:s},r.queue=c,r=L1.bind(null,xt,c),c.dispatch=r,c=Id(!1),_=Hd.bind(null,xt,!1,c.queue),c=Yn(),p={state:s,dispatch:null,action:i,pending:null},c.queue=p,r=w5.bind(null,xt,p,_,r),p.dispatch=r,c.memoizedState=i,[s,r,!1]}function h1(i){var s=dn();return p1(s,Vt,i)}function p1(i,s,r){if(s=Pd(i,s,f1)[0],i=Jc(hs)[0],typeof s=="object"&&s!==null&&typeof s.then=="function")try{var c=cl(s)}catch(E){throw E===il?qc:E}else c=s;s=dn();var p=s.queue,_=p.dispatch;return r!==s.memoizedState&&(xt.flags|=2048,Fr(9,eu(),T5.bind(null,p,r),null)),[c,_,i]}function T5(i,s){i.action=s}function m1(i){var s=dn(),r=Vt;if(r!==null)return p1(s,r,i);dn(),s=s.memoizedState,r=dn();var c=r.queue.dispatch;return r.memoizedState=i,[s,c,!1]}function Fr(i,s,r,c){return i={tag:i,create:r,deps:c,inst:s,next:null},s=xt.updateQueue,s===null&&(s=Dd(),xt.updateQueue=s),r=s.lastEffect,r===null?s.lastEffect=i.next=i:(c=r.next,r.next=i,i.next=c,s.lastEffect=i),i}function eu(){return{destroy:void 0,resource:void 0}}function g1(){return dn().memoizedState}function tu(i,s,r,c){var p=Yn();c=c===void 0?null:c,xt.flags|=i,p.memoizedState=Fr(1|s,eu(),r,c)}function ul(i,s,r,c){var p=dn();c=c===void 0?null:c;var _=p.memoizedState.inst;Vt!==null&&c!==null&&Cd(c,Vt.memoizedState.deps)?p.memoizedState=Fr(s,_,r,c):(xt.flags|=i,p.memoizedState=Fr(1|s,_,r,c))}function v1(i,s){tu(8390656,8,i,s)}function x1(i,s){ul(2048,8,i,s)}function _1(i,s){return ul(4,2,i,s)}function y1(i,s){return ul(4,4,i,s)}function S1(i,s){if(typeof s=="function"){i=i();var r=s(i);return function(){typeof r=="function"?r():s(null)}}if(s!=null)return i=i(),s.current=i,function(){s.current=null}}function M1(i,s,r){r=r!=null?r.concat([i]):null,ul(4,4,S1.bind(null,s,i),r)}function Fd(){}function b1(i,s){var r=dn();s=s===void 0?null:s;var c=r.memoizedState;return s!==null&&Cd(s,c[1])?c[0]:(r.memoizedState=[i,s],i)}function E1(i,s){var r=dn();s=s===void 0?null:s;var c=r.memoizedState;if(s!==null&&Cd(s,c[1]))return c[0];if(c=i(),Ka){q(!0);try{i()}finally{q(!1)}}return r.memoizedState=[c,s],c}function zd(i,s,r){return r===void 0||(na&1073741824)!==0?i.memoizedState=s:(i.memoizedState=r,i=Cg(),xt.lanes|=i,ca|=i,r)}function w1(i,s,r,c){return ii(r,s)?r:Or.current!==null?(i=zd(i,r,c),ii(i,s)||(Tn=!0),i):(na&42)===0?(Tn=!0,i.memoizedState=r):(i=Cg(),xt.lanes|=i,ca|=i,s)}function T1(i,s,r,c,p){var _=Z.p;Z.p=_!==0&&8>_?_:8;var E=j.T,A={};j.T=A,Hd(i,!1,s,r);try{var H=p(),ie=j.S;if(ie!==null&&ie(A,H),H!==null&&typeof H=="object"&&typeof H.then=="function"){var pe=M5(H,c);fl(i,s,pe,li(i))}else fl(i,s,c,li(i))}catch(ye){fl(i,s,{then:function(){},status:"rejected",reason:ye},li())}finally{Z.p=_,j.T=E}}function C5(){}function Vd(i,s,r,c){if(i.tag!==5)throw Error(a(476));var p=C1(i).queue;T1(i,p,s,Y,r===null?C5:function(){return A1(i),r(c)})}function C1(i){var s=i.memoizedState;if(s!==null)return s;s={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hs,lastRenderedState:Y},next:null};var r={};return s.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hs,lastRenderedState:r},next:null},i.memoizedState=s,i=i.alternate,i!==null&&(i.memoizedState=s),s}function A1(i){var s=C1(i).next.queue;fl(i,s,{},li())}function jd(){return Bn(Rl)}function R1(){return dn().memoizedState}function N1(){return dn().memoizedState}function A5(i){for(var s=i.return;s!==null;){switch(s.tag){case 24:case 3:var r=li();i=ea(r);var c=ta(s,i,r);c!==null&&(ci(c,s,r),al(c,s,r)),s={cache:vd()},i.payload=s;return}s=s.return}}function R5(i,s,r){var c=li();r={lane:c,revertLane:0,action:r,hasEagerState:!1,eagerState:null,next:null},nu(i)?D1(s,r):(r=od(i,s,r,c),r!==null&&(ci(r,i,c),U1(r,s,c)))}function L1(i,s,r){var c=li();fl(i,s,r,c)}function fl(i,s,r,c){var p={lane:c,revertLane:0,action:r,hasEagerState:!1,eagerState:null,next:null};if(nu(i))D1(s,p);else{var _=i.alternate;if(i.lanes===0&&(_===null||_.lanes===0)&&(_=s.lastRenderedReducer,_!==null))try{var E=s.lastRenderedState,A=_(E,r);if(p.hasEagerState=!0,p.eagerState=A,ii(A,E))return zc(i,s,p,0),Yt===null&&Fc(),!1}catch{}finally{}if(r=od(i,s,p,c),r!==null)return ci(r,i,c),U1(r,s,c),!0}return!1}function Hd(i,s,r,c){if(c={lane:2,revertLane:yh(),action:c,hasEagerState:!1,eagerState:null,next:null},nu(i)){if(s)throw Error(a(479))}else s=od(i,r,c,2),s!==null&&ci(s,i,2)}function nu(i){var s=i.alternate;return i===xt||s!==null&&s===xt}function D1(i,s){Ir=Kc=!0;var r=i.pending;r===null?s.next=s:(s.next=r.next,r.next=s),i.pending=s}function U1(i,s,r){if((r&4194048)!==0){var c=s.lanes;c&=i.pendingLanes,r|=c,s.lanes=r,Xe(i,r)}}var iu={readContext:Bn,use:$c,useCallback:rn,useContext:rn,useEffect:rn,useImperativeHandle:rn,useLayoutEffect:rn,useInsertionEffect:rn,useMemo:rn,useReducer:rn,useRef:rn,useState:rn,useDebugValue:rn,useDeferredValue:rn,useTransition:rn,useSyncExternalStore:rn,useId:rn,useHostTransitionStatus:rn,useFormState:rn,useActionState:rn,useOptimistic:rn,useMemoCache:rn,useCacheRefresh:rn},P1={readContext:Bn,use:$c,useCallback:function(i,s){return Yn().memoizedState=[i,s===void 0?null:s],i},useContext:Bn,useEffect:v1,useImperativeHandle:function(i,s,r){r=r!=null?r.concat([i]):null,tu(4194308,4,S1.bind(null,s,i),r)},useLayoutEffect:function(i,s){return tu(4194308,4,i,s)},useInsertionEffect:function(i,s){tu(4,2,i,s)},useMemo:function(i,s){var r=Yn();s=s===void 0?null:s;var c=i();if(Ka){q(!0);try{i()}finally{q(!1)}}return r.memoizedState=[c,s],c},useReducer:function(i,s,r){var c=Yn();if(r!==void 0){var p=r(s);if(Ka){q(!0);try{r(s)}finally{q(!1)}}}else p=s;return c.memoizedState=c.baseState=p,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:p},c.queue=i,i=i.dispatch=R5.bind(null,xt,i),[c.memoizedState,i]},useRef:function(i){var s=Yn();return i={current:i},s.memoizedState=i},useState:function(i){i=Id(i);var s=i.queue,r=L1.bind(null,xt,s);return s.dispatch=r,[i.memoizedState,r]},useDebugValue:Fd,useDeferredValue:function(i,s){var r=Yn();return zd(r,i,s)},useTransition:function(){var i=Id(!1);return i=T1.bind(null,xt,i.queue,!0,!1),Yn().memoizedState=i,[!1,i]},useSyncExternalStore:function(i,s,r){var c=xt,p=Yn();if(Dt){if(r===void 0)throw Error(a(407));r=r()}else{if(r=s(),Yt===null)throw Error(a(349));(Ct&124)!==0||t1(c,s,r)}p.memoizedState=r;var _={value:r,getSnapshot:s};return p.queue=_,v1(i1.bind(null,c,_,i),[i]),c.flags|=2048,Fr(9,eu(),n1.bind(null,c,_,r,s),null),r},useId:function(){var i=Yn(),s=Yt.identifierPrefix;if(Dt){var r=us,c=cs;r=(c&~(1<<32-Ae(c)-1)).toString(32)+r,s="«"+s+"R"+r,r=Qc++,0<r&&(s+="H"+r.toString(32)),s+="»"}else r=b5++,s="«"+s+"r"+r.toString(32)+"»";return i.memoizedState=s},useHostTransitionStatus:jd,useFormState:d1,useActionState:d1,useOptimistic:function(i){var s=Yn();s.memoizedState=s.baseState=i;var r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return s.queue=r,s=Hd.bind(null,xt,!0,r),r.dispatch=s,[i,s]},useMemoCache:Ud,useCacheRefresh:function(){return Yn().memoizedState=A5.bind(null,xt)}},O1={readContext:Bn,use:$c,useCallback:b1,useContext:Bn,useEffect:x1,useImperativeHandle:M1,useInsertionEffect:_1,useLayoutEffect:y1,useMemo:E1,useReducer:Jc,useRef:g1,useState:function(){return Jc(hs)},useDebugValue:Fd,useDeferredValue:function(i,s){var r=dn();return w1(r,Vt.memoizedState,i,s)},useTransition:function(){var i=Jc(hs)[0],s=dn().memoizedState;return[typeof i=="boolean"?i:cl(i),s]},useSyncExternalStore:e1,useId:R1,useHostTransitionStatus:jd,useFormState:h1,useActionState:h1,useOptimistic:function(i,s){var r=dn();return r1(r,Vt,i,s)},useMemoCache:Ud,useCacheRefresh:N1},N5={readContext:Bn,use:$c,useCallback:b1,useContext:Bn,useEffect:x1,useImperativeHandle:M1,useInsertionEffect:_1,useLayoutEffect:y1,useMemo:E1,useReducer:Od,useRef:g1,useState:function(){return Od(hs)},useDebugValue:Fd,useDeferredValue:function(i,s){var r=dn();return Vt===null?zd(r,i,s):w1(r,Vt.memoizedState,i,s)},useTransition:function(){var i=Od(hs)[0],s=dn().memoizedState;return[typeof i=="boolean"?i:cl(i),s]},useSyncExternalStore:e1,useId:R1,useHostTransitionStatus:jd,useFormState:m1,useActionState:m1,useOptimistic:function(i,s){var r=dn();return Vt!==null?r1(r,Vt,i,s):(r.baseState=i,[i,r.queue.dispatch])},useMemoCache:Ud,useCacheRefresh:N1},zr=null,dl=0;function su(i){var s=dl;return dl+=1,zr===null&&(zr=[]),X2(zr,i,s)}function hl(i,s){s=s.props.ref,i.ref=s!==void 0?s:null}function au(i,s){throw s.$$typeof===v?Error(a(525)):(i=Object.prototype.toString.call(s),Error(a(31,i==="[object Object]"?"object with keys {"+Object.keys(s).join(", ")+"}":i)))}function I1(i){var s=i._init;return s(i._payload)}function B1(i){function s(K,X){if(i){var ne=K.deletions;ne===null?(K.deletions=[X],K.flags|=16):ne.push(X)}}function r(K,X){if(!i)return null;for(;X!==null;)s(K,X),X=X.sibling;return null}function c(K){for(var X=new Map;K!==null;)K.key!==null?X.set(K.key,K):X.set(K.index,K),K=K.sibling;return X}function p(K,X){return K=ls(K,X),K.index=0,K.sibling=null,K}function _(K,X,ne){return K.index=ne,i?(ne=K.alternate,ne!==null?(ne=ne.index,ne<X?(K.flags|=67108866,X):ne):(K.flags|=67108866,X)):(K.flags|=1048576,X)}function E(K){return i&&K.alternate===null&&(K.flags|=67108866),K}function A(K,X,ne,ve){return X===null||X.tag!==6?(X=cd(ne,K.mode,ve),X.return=K,X):(X=p(X,ne),X.return=K,X)}function H(K,X,ne,ve){var qe=ne.type;return qe===b?pe(K,X,ne.props.children,ve,ne.key):X!==null&&(X.elementType===qe||typeof qe=="object"&&qe!==null&&qe.$$typeof===V&&I1(qe)===X.type)?(X=p(X,ne.props),hl(X,ne),X.return=K,X):(X=jc(ne.type,ne.key,ne.props,null,K.mode,ve),hl(X,ne),X.return=K,X)}function ie(K,X,ne,ve){return X===null||X.tag!==4||X.stateNode.containerInfo!==ne.containerInfo||X.stateNode.implementation!==ne.implementation?(X=ud(ne,K.mode,ve),X.return=K,X):(X=p(X,ne.children||[]),X.return=K,X)}function pe(K,X,ne,ve,qe){return X===null||X.tag!==7?(X=Ha(ne,K.mode,ve,qe),X.return=K,X):(X=p(X,ne),X.return=K,X)}function ye(K,X,ne){if(typeof X=="string"&&X!==""||typeof X=="number"||typeof X=="bigint")return X=cd(""+X,K.mode,ne),X.return=K,X;if(typeof X=="object"&&X!==null){switch(X.$$typeof){case x:return ne=jc(X.type,X.key,X.props,null,K.mode,ne),hl(ne,X),ne.return=K,ne;case y:return X=ud(X,K.mode,ne),X.return=K,X;case V:var ve=X._init;return X=ve(X._payload),ye(K,X,ne)}if(me(X)||ce(X))return X=Ha(X,K.mode,ne,null),X.return=K,X;if(typeof X.then=="function")return ye(K,su(X),ne);if(X.$$typeof===T)return ye(K,Wc(K,X),ne);au(K,X)}return null}function se(K,X,ne,ve){var qe=X!==null?X.key:null;if(typeof ne=="string"&&ne!==""||typeof ne=="number"||typeof ne=="bigint")return qe!==null?null:A(K,X,""+ne,ve);if(typeof ne=="object"&&ne!==null){switch(ne.$$typeof){case x:return ne.key===qe?H(K,X,ne,ve):null;case y:return ne.key===qe?ie(K,X,ne,ve):null;case V:return qe=ne._init,ne=qe(ne._payload),se(K,X,ne,ve)}if(me(ne)||ce(ne))return qe!==null?null:pe(K,X,ne,ve,null);if(typeof ne.then=="function")return se(K,X,su(ne),ve);if(ne.$$typeof===T)return se(K,X,Wc(K,ne),ve);au(K,ne)}return null}function ae(K,X,ne,ve,qe){if(typeof ve=="string"&&ve!==""||typeof ve=="number"||typeof ve=="bigint")return K=K.get(ne)||null,A(X,K,""+ve,qe);if(typeof ve=="object"&&ve!==null){switch(ve.$$typeof){case x:return K=K.get(ve.key===null?ne:ve.key)||null,H(X,K,ve,qe);case y:return K=K.get(ve.key===null?ne:ve.key)||null,ie(X,K,ve,qe);case V:var yt=ve._init;return ve=yt(ve._payload),ae(K,X,ne,ve,qe)}if(me(ve)||ce(ve))return K=K.get(ne)||null,pe(X,K,ve,qe,null);if(typeof ve.then=="function")return ae(K,X,ne,su(ve),qe);if(ve.$$typeof===T)return ae(K,X,ne,Wc(X,ve),qe);au(X,ve)}return null}function st(K,X,ne,ve){for(var qe=null,yt=null,Ze=X,nt=X=0,An=null;Ze!==null&&nt<ne.length;nt++){Ze.index>nt?(An=Ze,Ze=null):An=Ze.sibling;var Nt=se(K,Ze,ne[nt],ve);if(Nt===null){Ze===null&&(Ze=An);break}i&&Ze&&Nt.alternate===null&&s(K,Ze),X=_(Nt,X,nt),yt===null?qe=Nt:yt.sibling=Nt,yt=Nt,Ze=An}if(nt===ne.length)return r(K,Ze),Dt&&Ga(K,nt),qe;if(Ze===null){for(;nt<ne.length;nt++)Ze=ye(K,ne[nt],ve),Ze!==null&&(X=_(Ze,X,nt),yt===null?qe=Ze:yt.sibling=Ze,yt=Ze);return Dt&&Ga(K,nt),qe}for(Ze=c(Ze);nt<ne.length;nt++)An=ae(Ze,K,nt,ne[nt],ve),An!==null&&(i&&An.alternate!==null&&Ze.delete(An.key===null?nt:An.key),X=_(An,X,nt),yt===null?qe=An:yt.sibling=An,yt=An);return i&&Ze.forEach(function(xa){return s(K,xa)}),Dt&&Ga(K,nt),qe}function et(K,X,ne,ve){if(ne==null)throw Error(a(151));for(var qe=null,yt=null,Ze=X,nt=X=0,An=null,Nt=ne.next();Ze!==null&&!Nt.done;nt++,Nt=ne.next()){Ze.index>nt?(An=Ze,Ze=null):An=Ze.sibling;var xa=se(K,Ze,Nt.value,ve);if(xa===null){Ze===null&&(Ze=An);break}i&&Ze&&xa.alternate===null&&s(K,Ze),X=_(xa,X,nt),yt===null?qe=xa:yt.sibling=xa,yt=xa,Ze=An}if(Nt.done)return r(K,Ze),Dt&&Ga(K,nt),qe;if(Ze===null){for(;!Nt.done;nt++,Nt=ne.next())Nt=ye(K,Nt.value,ve),Nt!==null&&(X=_(Nt,X,nt),yt===null?qe=Nt:yt.sibling=Nt,yt=Nt);return Dt&&Ga(K,nt),qe}for(Ze=c(Ze);!Nt.done;nt++,Nt=ne.next())Nt=ae(Ze,K,nt,Nt.value,ve),Nt!==null&&(i&&Nt.alternate!==null&&Ze.delete(Nt.key===null?nt:Nt.key),X=_(Nt,X,nt),yt===null?qe=Nt:yt.sibling=Nt,yt=Nt);return i&&Ze.forEach(function(LS){return s(K,LS)}),Dt&&Ga(K,nt),qe}function Ht(K,X,ne,ve){if(typeof ne=="object"&&ne!==null&&ne.type===b&&ne.key===null&&(ne=ne.props.children),typeof ne=="object"&&ne!==null){switch(ne.$$typeof){case x:e:{for(var qe=ne.key;X!==null;){if(X.key===qe){if(qe=ne.type,qe===b){if(X.tag===7){r(K,X.sibling),ve=p(X,ne.props.children),ve.return=K,K=ve;break e}}else if(X.elementType===qe||typeof qe=="object"&&qe!==null&&qe.$$typeof===V&&I1(qe)===X.type){r(K,X.sibling),ve=p(X,ne.props),hl(ve,ne),ve.return=K,K=ve;break e}r(K,X);break}else s(K,X);X=X.sibling}ne.type===b?(ve=Ha(ne.props.children,K.mode,ve,ne.key),ve.return=K,K=ve):(ve=jc(ne.type,ne.key,ne.props,null,K.mode,ve),hl(ve,ne),ve.return=K,K=ve)}return E(K);case y:e:{for(qe=ne.key;X!==null;){if(X.key===qe)if(X.tag===4&&X.stateNode.containerInfo===ne.containerInfo&&X.stateNode.implementation===ne.implementation){r(K,X.sibling),ve=p(X,ne.children||[]),ve.return=K,K=ve;break e}else{r(K,X);break}else s(K,X);X=X.sibling}ve=ud(ne,K.mode,ve),ve.return=K,K=ve}return E(K);case V:return qe=ne._init,ne=qe(ne._payload),Ht(K,X,ne,ve)}if(me(ne))return st(K,X,ne,ve);if(ce(ne)){if(qe=ce(ne),typeof qe!="function")throw Error(a(150));return ne=qe.call(ne),et(K,X,ne,ve)}if(typeof ne.then=="function")return Ht(K,X,su(ne),ve);if(ne.$$typeof===T)return Ht(K,X,Wc(K,ne),ve);au(K,ne)}return typeof ne=="string"&&ne!==""||typeof ne=="number"||typeof ne=="bigint"?(ne=""+ne,X!==null&&X.tag===6?(r(K,X.sibling),ve=p(X,ne),ve.return=K,K=ve):(r(K,X),ve=cd(ne,K.mode,ve),ve.return=K,K=ve),E(K)):r(K,X)}return function(K,X,ne,ve){try{dl=0;var qe=Ht(K,X,ne,ve);return zr=null,qe}catch(Ze){if(Ze===il||Ze===qc)throw Ze;var yt=si(29,Ze,null,K.mode);return yt.lanes=ve,yt.return=K,yt}finally{}}}var Vr=B1(!0),F1=B1(!1),_i=ee(null),Vi=null;function ia(i){var s=i.alternate;be(yn,yn.current&1),be(_i,i),Vi===null&&(s===null||Or.current!==null||s.memoizedState!==null)&&(Vi=i)}function z1(i){if(i.tag===22){if(be(yn,yn.current),be(_i,i),Vi===null){var s=i.alternate;s!==null&&s.memoizedState!==null&&(Vi=i)}}else sa()}function sa(){be(yn,yn.current),be(_i,_i.current)}function ps(i){Me(_i),Vi===i&&(Vi=null),Me(yn)}var yn=ee(0);function ru(i){for(var s=i;s!==null;){if(s.tag===13){var r=s.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||Dh(r)))return s}else if(s.tag===19&&s.memoizedProps.revealOrder!==void 0){if((s.flags&128)!==0)return s}else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===i)break;for(;s.sibling===null;){if(s.return===null||s.return===i)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}function kd(i,s,r,c){s=i.memoizedState,r=r(c,s),r=r==null?s:g({},s,r),i.memoizedState=r,i.lanes===0&&(i.updateQueue.baseState=r)}var Gd={enqueueSetState:function(i,s,r){i=i._reactInternals;var c=li(),p=ea(c);p.payload=s,r!=null&&(p.callback=r),s=ta(i,p,c),s!==null&&(ci(s,i,c),al(s,i,c))},enqueueReplaceState:function(i,s,r){i=i._reactInternals;var c=li(),p=ea(c);p.tag=1,p.payload=s,r!=null&&(p.callback=r),s=ta(i,p,c),s!==null&&(ci(s,i,c),al(s,i,c))},enqueueForceUpdate:function(i,s){i=i._reactInternals;var r=li(),c=ea(r);c.tag=2,s!=null&&(c.callback=s),s=ta(i,c,r),s!==null&&(ci(s,i,r),al(s,i,r))}};function V1(i,s,r,c,p,_,E){return i=i.stateNode,typeof i.shouldComponentUpdate=="function"?i.shouldComponentUpdate(c,_,E):s.prototype&&s.prototype.isPureReactComponent?!Zo(r,c)||!Zo(p,_):!0}function j1(i,s,r,c){i=s.state,typeof s.componentWillReceiveProps=="function"&&s.componentWillReceiveProps(r,c),typeof s.UNSAFE_componentWillReceiveProps=="function"&&s.UNSAFE_componentWillReceiveProps(r,c),s.state!==i&&Gd.enqueueReplaceState(s,s.state,null)}function Qa(i,s){var r=s;if("ref"in s){r={};for(var c in s)c!=="ref"&&(r[c]=s[c])}if(i=i.defaultProps){r===s&&(r=g({},r));for(var p in i)r[p]===void 0&&(r[p]=i[p])}return r}var ou=typeof reportError=="function"?reportError:function(i){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var s=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof i=="object"&&i!==null&&typeof i.message=="string"?String(i.message):String(i),error:i});if(!window.dispatchEvent(s))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",i);return}console.error(i)};function H1(i){ou(i)}function k1(i){console.error(i)}function G1(i){ou(i)}function lu(i,s){try{var r=i.onUncaughtError;r(s.value,{componentStack:s.stack})}catch(c){setTimeout(function(){throw c})}}function W1(i,s,r){try{var c=i.onCaughtError;c(r.value,{componentStack:r.stack,errorBoundary:s.tag===1?s.stateNode:null})}catch(p){setTimeout(function(){throw p})}}function Wd(i,s,r){return r=ea(r),r.tag=3,r.payload={element:null},r.callback=function(){lu(i,s)},r}function X1(i){return i=ea(i),i.tag=3,i}function q1(i,s,r,c){var p=r.type.getDerivedStateFromError;if(typeof p=="function"){var _=c.value;i.payload=function(){return p(_)},i.callback=function(){W1(s,r,c)}}var E=r.stateNode;E!==null&&typeof E.componentDidCatch=="function"&&(i.callback=function(){W1(s,r,c),typeof p!="function"&&(ua===null?ua=new Set([this]):ua.add(this));var A=c.stack;this.componentDidCatch(c.value,{componentStack:A!==null?A:""})})}function L5(i,s,r,c,p){if(r.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){if(s=r.alternate,s!==null&&el(s,r,p,!0),r=_i.current,r!==null){switch(r.tag){case 13:return Vi===null?mh():r.alternate===null&&sn===0&&(sn=3),r.flags&=-257,r.flags|=65536,r.lanes=p,c===yd?r.flags|=16384:(s=r.updateQueue,s===null?r.updateQueue=new Set([c]):s.add(c),vh(i,c,p)),!1;case 22:return r.flags|=65536,c===yd?r.flags|=16384:(s=r.updateQueue,s===null?(s={transitions:null,markerInstances:null,retryQueue:new Set([c])},r.updateQueue=s):(r=s.retryQueue,r===null?s.retryQueue=new Set([c]):r.add(c)),vh(i,c,p)),!1}throw Error(a(435,r.tag))}return vh(i,c,p),mh(),!1}if(Dt)return s=_i.current,s!==null?((s.flags&65536)===0&&(s.flags|=256),s.flags|=65536,s.lanes=p,c!==hd&&(i=Error(a(422),{cause:c}),Jo(mi(i,r)))):(c!==hd&&(s=Error(a(423),{cause:c}),Jo(mi(s,r))),i=i.current.alternate,i.flags|=65536,p&=-p,i.lanes|=p,c=mi(c,r),p=Wd(i.stateNode,c,p),bd(i,p),sn!==4&&(sn=2)),!1;var _=Error(a(520),{cause:c});if(_=mi(_,r),yl===null?yl=[_]:yl.push(_),sn!==4&&(sn=2),s===null)return!0;c=mi(c,r),r=s;do{switch(r.tag){case 3:return r.flags|=65536,i=p&-p,r.lanes|=i,i=Wd(r.stateNode,c,i),bd(r,i),!1;case 1:if(s=r.type,_=r.stateNode,(r.flags&128)===0&&(typeof s.getDerivedStateFromError=="function"||_!==null&&typeof _.componentDidCatch=="function"&&(ua===null||!ua.has(_))))return r.flags|=65536,p&=-p,r.lanes|=p,p=X1(p),q1(p,i,r,c),bd(r,p),!1}r=r.return}while(r!==null);return!1}var Y1=Error(a(461)),Tn=!1;function Dn(i,s,r,c){s.child=i===null?F1(s,null,r,c):Vr(s,i.child,r,c)}function Z1(i,s,r,c,p){r=r.render;var _=s.ref;if("ref"in c){var E={};for(var A in c)A!=="ref"&&(E[A]=c[A])}else E=c;return Ya(s),c=Ad(i,s,r,E,_,p),A=Rd(),i!==null&&!Tn?(Nd(i,s,p),ms(i,s,p)):(Dt&&A&&fd(s),s.flags|=1,Dn(i,s,c,p),s.child)}function K1(i,s,r,c,p){if(i===null){var _=r.type;return typeof _=="function"&&!ld(_)&&_.defaultProps===void 0&&r.compare===null?(s.tag=15,s.type=_,Q1(i,s,_,c,p)):(i=jc(r.type,null,c,s,s.mode,p),i.ref=s.ref,i.return=s,s.child=i)}if(_=i.child,!Jd(i,p)){var E=_.memoizedProps;if(r=r.compare,r=r!==null?r:Zo,r(E,c)&&i.ref===s.ref)return ms(i,s,p)}return s.flags|=1,i=ls(_,c),i.ref=s.ref,i.return=s,s.child=i}function Q1(i,s,r,c,p){if(i!==null){var _=i.memoizedProps;if(Zo(_,c)&&i.ref===s.ref)if(Tn=!1,s.pendingProps=c=_,Jd(i,p))(i.flags&131072)!==0&&(Tn=!0);else return s.lanes=i.lanes,ms(i,s,p)}return Xd(i,s,r,c,p)}function $1(i,s,r){var c=s.pendingProps,p=c.children,_=i!==null?i.memoizedState:null;if(c.mode==="hidden"){if((s.flags&128)!==0){if(c=_!==null?_.baseLanes|r:r,i!==null){for(p=s.child=i.child,_=0;p!==null;)_=_|p.lanes|p.childLanes,p=p.sibling;s.childLanes=_&~c}else s.childLanes=0,s.child=null;return J1(i,s,c,r)}if((r&536870912)!==0)s.memoizedState={baseLanes:0,cachePool:null},i!==null&&Xc(s,_!==null?_.cachePool:null),_!==null?Q2(s,_):wd(),z1(s);else return s.lanes=s.childLanes=536870912,J1(i,s,_!==null?_.baseLanes|r:r,r)}else _!==null?(Xc(s,_.cachePool),Q2(s,_),sa(),s.memoizedState=null):(i!==null&&Xc(s,null),wd(),sa());return Dn(i,s,p,r),s.child}function J1(i,s,r,c){var p=_d();return p=p===null?null:{parent:_n._currentValue,pool:p},s.memoizedState={baseLanes:r,cachePool:p},i!==null&&Xc(s,null),wd(),z1(s),i!==null&&el(i,s,c,!0),null}function cu(i,s){var r=s.ref;if(r===null)i!==null&&i.ref!==null&&(s.flags|=4194816);else{if(typeof r!="function"&&typeof r!="object")throw Error(a(284));(i===null||i.ref!==r)&&(s.flags|=4194816)}}function Xd(i,s,r,c,p){return Ya(s),r=Ad(i,s,r,c,void 0,p),c=Rd(),i!==null&&!Tn?(Nd(i,s,p),ms(i,s,p)):(Dt&&c&&fd(s),s.flags|=1,Dn(i,s,r,p),s.child)}function eg(i,s,r,c,p,_){return Ya(s),s.updateQueue=null,r=J2(s,c,r,p),$2(i),c=Rd(),i!==null&&!Tn?(Nd(i,s,_),ms(i,s,_)):(Dt&&c&&fd(s),s.flags|=1,Dn(i,s,r,_),s.child)}function tg(i,s,r,c,p){if(Ya(s),s.stateNode===null){var _=Nr,E=r.contextType;typeof E=="object"&&E!==null&&(_=Bn(E)),_=new r(c,_),s.memoizedState=_.state!==null&&_.state!==void 0?_.state:null,_.updater=Gd,s.stateNode=_,_._reactInternals=s,_=s.stateNode,_.props=c,_.state=s.memoizedState,_.refs={},Sd(s),E=r.contextType,_.context=typeof E=="object"&&E!==null?Bn(E):Nr,_.state=s.memoizedState,E=r.getDerivedStateFromProps,typeof E=="function"&&(kd(s,r,E,c),_.state=s.memoizedState),typeof r.getDerivedStateFromProps=="function"||typeof _.getSnapshotBeforeUpdate=="function"||typeof _.UNSAFE_componentWillMount!="function"&&typeof _.componentWillMount!="function"||(E=_.state,typeof _.componentWillMount=="function"&&_.componentWillMount(),typeof _.UNSAFE_componentWillMount=="function"&&_.UNSAFE_componentWillMount(),E!==_.state&&Gd.enqueueReplaceState(_,_.state,null),ol(s,c,_,p),rl(),_.state=s.memoizedState),typeof _.componentDidMount=="function"&&(s.flags|=4194308),c=!0}else if(i===null){_=s.stateNode;var A=s.memoizedProps,H=Qa(r,A);_.props=H;var ie=_.context,pe=r.contextType;E=Nr,typeof pe=="object"&&pe!==null&&(E=Bn(pe));var ye=r.getDerivedStateFromProps;pe=typeof ye=="function"||typeof _.getSnapshotBeforeUpdate=="function",A=s.pendingProps!==A,pe||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(A||ie!==E)&&j1(s,_,c,E),Js=!1;var se=s.memoizedState;_.state=se,ol(s,c,_,p),rl(),ie=s.memoizedState,A||se!==ie||Js?(typeof ye=="function"&&(kd(s,r,ye,c),ie=s.memoizedState),(H=Js||V1(s,r,H,c,se,ie,E))?(pe||typeof _.UNSAFE_componentWillMount!="function"&&typeof _.componentWillMount!="function"||(typeof _.componentWillMount=="function"&&_.componentWillMount(),typeof _.UNSAFE_componentWillMount=="function"&&_.UNSAFE_componentWillMount()),typeof _.componentDidMount=="function"&&(s.flags|=4194308)):(typeof _.componentDidMount=="function"&&(s.flags|=4194308),s.memoizedProps=c,s.memoizedState=ie),_.props=c,_.state=ie,_.context=E,c=H):(typeof _.componentDidMount=="function"&&(s.flags|=4194308),c=!1)}else{_=s.stateNode,Md(i,s),E=s.memoizedProps,pe=Qa(r,E),_.props=pe,ye=s.pendingProps,se=_.context,ie=r.contextType,H=Nr,typeof ie=="object"&&ie!==null&&(H=Bn(ie)),A=r.getDerivedStateFromProps,(ie=typeof A=="function"||typeof _.getSnapshotBeforeUpdate=="function")||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(E!==ye||se!==H)&&j1(s,_,c,H),Js=!1,se=s.memoizedState,_.state=se,ol(s,c,_,p),rl();var ae=s.memoizedState;E!==ye||se!==ae||Js||i!==null&&i.dependencies!==null&&Gc(i.dependencies)?(typeof A=="function"&&(kd(s,r,A,c),ae=s.memoizedState),(pe=Js||V1(s,r,pe,c,se,ae,H)||i!==null&&i.dependencies!==null&&Gc(i.dependencies))?(ie||typeof _.UNSAFE_componentWillUpdate!="function"&&typeof _.componentWillUpdate!="function"||(typeof _.componentWillUpdate=="function"&&_.componentWillUpdate(c,ae,H),typeof _.UNSAFE_componentWillUpdate=="function"&&_.UNSAFE_componentWillUpdate(c,ae,H)),typeof _.componentDidUpdate=="function"&&(s.flags|=4),typeof _.getSnapshotBeforeUpdate=="function"&&(s.flags|=1024)):(typeof _.componentDidUpdate!="function"||E===i.memoizedProps&&se===i.memoizedState||(s.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||E===i.memoizedProps&&se===i.memoizedState||(s.flags|=1024),s.memoizedProps=c,s.memoizedState=ae),_.props=c,_.state=ae,_.context=H,c=pe):(typeof _.componentDidUpdate!="function"||E===i.memoizedProps&&se===i.memoizedState||(s.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||E===i.memoizedProps&&se===i.memoizedState||(s.flags|=1024),c=!1)}return _=c,cu(i,s),c=(s.flags&128)!==0,_||c?(_=s.stateNode,r=c&&typeof r.getDerivedStateFromError!="function"?null:_.render(),s.flags|=1,i!==null&&c?(s.child=Vr(s,i.child,null,p),s.child=Vr(s,null,r,p)):Dn(i,s,r,p),s.memoizedState=_.state,i=s.child):i=ms(i,s,p),i}function ng(i,s,r,c){return $o(),s.flags|=256,Dn(i,s,r,c),s.child}var qd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Yd(i){return{baseLanes:i,cachePool:k2()}}function Zd(i,s,r){return i=i!==null?i.childLanes&~r:0,s&&(i|=yi),i}function ig(i,s,r){var c=s.pendingProps,p=!1,_=(s.flags&128)!==0,E;if((E=_)||(E=i!==null&&i.memoizedState===null?!1:(yn.current&2)!==0),E&&(p=!0,s.flags&=-129),E=(s.flags&32)!==0,s.flags&=-33,i===null){if(Dt){if(p?ia(s):sa(),Dt){var A=nn,H;if(H=A){e:{for(H=A,A=zi;H.nodeType!==8;){if(!A){A=null;break e}if(H=Ai(H.nextSibling),H===null){A=null;break e}}A=H}A!==null?(s.memoizedState={dehydrated:A,treeContext:ka!==null?{id:cs,overflow:us}:null,retryLane:536870912,hydrationErrors:null},H=si(18,null,null,0),H.stateNode=A,H.return=s,s.child=H,Hn=s,nn=null,H=!0):H=!1}H||Xa(s)}if(A=s.memoizedState,A!==null&&(A=A.dehydrated,A!==null))return Dh(A)?s.lanes=32:s.lanes=536870912,null;ps(s)}return A=c.children,c=c.fallback,p?(sa(),p=s.mode,A=uu({mode:"hidden",children:A},p),c=Ha(c,p,r,null),A.return=s,c.return=s,A.sibling=c,s.child=A,p=s.child,p.memoizedState=Yd(r),p.childLanes=Zd(i,E,r),s.memoizedState=qd,c):(ia(s),Kd(s,A))}if(H=i.memoizedState,H!==null&&(A=H.dehydrated,A!==null)){if(_)s.flags&256?(ia(s),s.flags&=-257,s=Qd(i,s,r)):s.memoizedState!==null?(sa(),s.child=i.child,s.flags|=128,s=null):(sa(),p=c.fallback,A=s.mode,c=uu({mode:"visible",children:c.children},A),p=Ha(p,A,r,null),p.flags|=2,c.return=s,p.return=s,c.sibling=p,s.child=c,Vr(s,i.child,null,r),c=s.child,c.memoizedState=Yd(r),c.childLanes=Zd(i,E,r),s.memoizedState=qd,s=p);else if(ia(s),Dh(A)){if(E=A.nextSibling&&A.nextSibling.dataset,E)var ie=E.dgst;E=ie,c=Error(a(419)),c.stack="",c.digest=E,Jo({value:c,source:null,stack:null}),s=Qd(i,s,r)}else if(Tn||el(i,s,r,!1),E=(r&i.childLanes)!==0,Tn||E){if(E=Yt,E!==null&&(c=r&-r,c=(c&42)!==0?1:lt(c),c=(c&(E.suspendedLanes|r))!==0?0:c,c!==0&&c!==H.retryLane))throw H.retryLane=c,Rr(i,c),ci(E,i,c),Y1;A.data==="$?"||mh(),s=Qd(i,s,r)}else A.data==="$?"?(s.flags|=192,s.child=i.child,s=null):(i=H.treeContext,nn=Ai(A.nextSibling),Hn=s,Dt=!0,Wa=null,zi=!1,i!==null&&(vi[xi++]=cs,vi[xi++]=us,vi[xi++]=ka,cs=i.id,us=i.overflow,ka=s),s=Kd(s,c.children),s.flags|=4096);return s}return p?(sa(),p=c.fallback,A=s.mode,H=i.child,ie=H.sibling,c=ls(H,{mode:"hidden",children:c.children}),c.subtreeFlags=H.subtreeFlags&65011712,ie!==null?p=ls(ie,p):(p=Ha(p,A,r,null),p.flags|=2),p.return=s,c.return=s,c.sibling=p,s.child=c,c=p,p=s.child,A=i.child.memoizedState,A===null?A=Yd(r):(H=A.cachePool,H!==null?(ie=_n._currentValue,H=H.parent!==ie?{parent:ie,pool:ie}:H):H=k2(),A={baseLanes:A.baseLanes|r,cachePool:H}),p.memoizedState=A,p.childLanes=Zd(i,E,r),s.memoizedState=qd,c):(ia(s),r=i.child,i=r.sibling,r=ls(r,{mode:"visible",children:c.children}),r.return=s,r.sibling=null,i!==null&&(E=s.deletions,E===null?(s.deletions=[i],s.flags|=16):E.push(i)),s.child=r,s.memoizedState=null,r)}function Kd(i,s){return s=uu({mode:"visible",children:s},i.mode),s.return=i,i.child=s}function uu(i,s){return i=si(22,i,null,s),i.lanes=0,i.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},i}function Qd(i,s,r){return Vr(s,i.child,null,r),i=Kd(s,s.pendingProps.children),i.flags|=2,s.memoizedState=null,i}function sg(i,s,r){i.lanes|=s;var c=i.alternate;c!==null&&(c.lanes|=s),md(i.return,s,r)}function $d(i,s,r,c,p){var _=i.memoizedState;_===null?i.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:c,tail:r,tailMode:p}:(_.isBackwards=s,_.rendering=null,_.renderingStartTime=0,_.last=c,_.tail=r,_.tailMode=p)}function ag(i,s,r){var c=s.pendingProps,p=c.revealOrder,_=c.tail;if(Dn(i,s,c.children,r),c=yn.current,(c&2)!==0)c=c&1|2,s.flags|=128;else{if(i!==null&&(i.flags&128)!==0)e:for(i=s.child;i!==null;){if(i.tag===13)i.memoizedState!==null&&sg(i,r,s);else if(i.tag===19)sg(i,r,s);else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===s)break e;for(;i.sibling===null;){if(i.return===null||i.return===s)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}c&=1}switch(be(yn,c),p){case"forwards":for(r=s.child,p=null;r!==null;)i=r.alternate,i!==null&&ru(i)===null&&(p=r),r=r.sibling;r=p,r===null?(p=s.child,s.child=null):(p=r.sibling,r.sibling=null),$d(s,!1,p,r,_);break;case"backwards":for(r=null,p=s.child,s.child=null;p!==null;){if(i=p.alternate,i!==null&&ru(i)===null){s.child=p;break}i=p.sibling,p.sibling=r,r=p,p=i}$d(s,!0,r,null,_);break;case"together":$d(s,!1,null,null,void 0);break;default:s.memoizedState=null}return s.child}function ms(i,s,r){if(i!==null&&(s.dependencies=i.dependencies),ca|=s.lanes,(r&s.childLanes)===0)if(i!==null){if(el(i,s,r,!1),(r&s.childLanes)===0)return null}else return null;if(i!==null&&s.child!==i.child)throw Error(a(153));if(s.child!==null){for(i=s.child,r=ls(i,i.pendingProps),s.child=r,r.return=s;i.sibling!==null;)i=i.sibling,r=r.sibling=ls(i,i.pendingProps),r.return=s;r.sibling=null}return s.child}function Jd(i,s){return(i.lanes&s)!==0?!0:(i=i.dependencies,!!(i!==null&&Gc(i)))}function D5(i,s,r){switch(s.tag){case 3:Ue(s,s.stateNode.containerInfo),$s(s,_n,i.memoizedState.cache),$o();break;case 27:case 5:Qe(s);break;case 4:Ue(s,s.stateNode.containerInfo);break;case 10:$s(s,s.type,s.memoizedProps.value);break;case 13:var c=s.memoizedState;if(c!==null)return c.dehydrated!==null?(ia(s),s.flags|=128,null):(r&s.child.childLanes)!==0?ig(i,s,r):(ia(s),i=ms(i,s,r),i!==null?i.sibling:null);ia(s);break;case 19:var p=(i.flags&128)!==0;if(c=(r&s.childLanes)!==0,c||(el(i,s,r,!1),c=(r&s.childLanes)!==0),p){if(c)return ag(i,s,r);s.flags|=128}if(p=s.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),be(yn,yn.current),c)break;return null;case 22:case 23:return s.lanes=0,$1(i,s,r);case 24:$s(s,_n,i.memoizedState.cache)}return ms(i,s,r)}function rg(i,s,r){if(i!==null)if(i.memoizedProps!==s.pendingProps)Tn=!0;else{if(!Jd(i,r)&&(s.flags&128)===0)return Tn=!1,D5(i,s,r);Tn=(i.flags&131072)!==0}else Tn=!1,Dt&&(s.flags&1048576)!==0&&I2(s,kc,s.index);switch(s.lanes=0,s.tag){case 16:e:{i=s.pendingProps;var c=s.elementType,p=c._init;if(c=p(c._payload),s.type=c,typeof c=="function")ld(c)?(i=Qa(c,i),s.tag=1,s=tg(null,s,c,i,r)):(s.tag=0,s=Xd(null,s,c,i,r));else{if(c!=null){if(p=c.$$typeof,p===R){s.tag=11,s=Z1(null,s,c,i,r);break e}else if(p===F){s.tag=14,s=K1(null,s,c,i,r);break e}}throw s=ge(c)||c,Error(a(306,s,""))}}return s;case 0:return Xd(i,s,s.type,s.pendingProps,r);case 1:return c=s.type,p=Qa(c,s.pendingProps),tg(i,s,c,p,r);case 3:e:{if(Ue(s,s.stateNode.containerInfo),i===null)throw Error(a(387));c=s.pendingProps;var _=s.memoizedState;p=_.element,Md(i,s),ol(s,c,null,r);var E=s.memoizedState;if(c=E.cache,$s(s,_n,c),c!==_.cache&&gd(s,[_n],r,!0),rl(),c=E.element,_.isDehydrated)if(_={element:c,isDehydrated:!1,cache:E.cache},s.updateQueue.baseState=_,s.memoizedState=_,s.flags&256){s=ng(i,s,c,r);break e}else if(c!==p){p=mi(Error(a(424)),s),Jo(p),s=ng(i,s,c,r);break e}else{switch(i=s.stateNode.containerInfo,i.nodeType){case 9:i=i.body;break;default:i=i.nodeName==="HTML"?i.ownerDocument.body:i}for(nn=Ai(i.firstChild),Hn=s,Dt=!0,Wa=null,zi=!0,r=F1(s,null,c,r),s.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling}else{if($o(),c===p){s=ms(i,s,r);break e}Dn(i,s,c,r)}s=s.child}return s;case 26:return cu(i,s),i===null?(r=uv(s.type,null,s.pendingProps,null))?s.memoizedState=r:Dt||(r=s.type,i=s.pendingProps,c=Eu(Ee.current).createElement(r),c[vn]=s,c[Nn]=i,Pn(c,r,i),un(c),s.stateNode=c):s.memoizedState=uv(s.type,i.memoizedProps,s.pendingProps,i.memoizedState),null;case 27:return Qe(s),i===null&&Dt&&(c=s.stateNode=ov(s.type,s.pendingProps,Ee.current),Hn=s,zi=!0,p=nn,ha(s.type)?(Uh=p,nn=Ai(c.firstChild)):nn=p),Dn(i,s,s.pendingProps.children,r),cu(i,s),i===null&&(s.flags|=4194304),s.child;case 5:return i===null&&Dt&&((p=c=nn)&&(c=rS(c,s.type,s.pendingProps,zi),c!==null?(s.stateNode=c,Hn=s,nn=Ai(c.firstChild),zi=!1,p=!0):p=!1),p||Xa(s)),Qe(s),p=s.t
vendor: 1,668 bytes, line 48
48ype,_=s.pendingProps,E=i!==null?i.memoizedProps:null,c=_.children,Rh(p,_)?c=null:E!==null&&Rh(p,E)&&(s.flags|=32),s.memoizedState!==null&&(p=Ad(i,s,E5,null,null,r),Rl._currentValue=p),cu(i,s),Dn(i,s,c,r),s.child;case 6:return i===null&&Dt&&((i=r=nn)&&(r=oS(r,s.pendingProps,zi),r!==null?(s.stateNode=r,Hn=s,nn=null,i=!0):i=!1),i||Xa(s)),null;case 13:return ig(i,s,r);case 4:return Ue(s,s.stateNode.containerInfo),c=s.pendingProps,i===null?s.child=Vr(s,null,c,r):Dn(i,s,c,r),s.child;case 11:return Z1(i,s,s.type,s.pendingProps,r);case 7:return Dn(i,s,s.pendingProps,r),s.child;case 8:return Dn(i,s,s.pendingProps.children,r),s.child;case 12:return Dn(i,s,s.pendingProps.children,r),s.child;case 10:return c=s.pendingProps,$s(s,s.type,c.value),Dn(i,s,c.children,r),s.child;case 9:return p=s.type._context,c=s.pendingProps.children,Ya(s),p=Bn(p),c=c(p),s.flags|=1,Dn(i,s,c,r),s.child;case 14:return K1(i,s,s.type,s.pendingProps,r);case 15:return Q1(i,s,s.type,s.pendingProps,r);case 19:return ag(i,s,r);case 31:return c=s.pendingProps,r=s.mode,c={mode:c.mode,children:c.children},i===null?(r=uu(c,r),r.ref=s.ref,s.child=r,r.return=s,s=r):(r=ls(i.child,c),r.ref=s.ref,s.child=r,r.return=s,s=r),s;case 22:return $1(i,s,r);case 24:return Ya(s),c=Bn(_n),i===null?(p=_d(),p===null&&(p=Yt,_=vd(),p.pooledCache=_,_.refCount++,_!==null&&(p.pooledCacheLanes|=r),p=_),s.memoizedState={parent:c,cache:p},Sd(s),$s(s,_n,p)):((i.lanes&r)!==0&&(Md(i,s),ol(s,null,null,r),rl()),p=i.memoizedState,_=s.memoizedState,p.parent!==c?(p={parent:c,cache:c},s.memoizedState=p,s.lanes===0&&(s.memoizedState=s.updateQueue.baseState=p),$s(s,_n,c)):(c=_.cache,$s(s,_n,c),c!==p.cache&&gd(s,[_n],r,!0))
vendor: 50,479 bytes, lines 48-49
48),Dn(i,s,s.pendingProps.children,r),s.child;case 29:throw s.pendingProps}throw Error(a(156,s.tag))}function gs(i){i.flags|=4}function og(i,s){if(s.type!=="stylesheet"||(s.state.loading&4)!==0)i.flags&=-16777217;else if(i.flags|=16777216,!mv(s)){if(s=_i.current,s!==null&&((Ct&4194048)===Ct?Vi!==null:(Ct&62914560)!==Ct&&(Ct&536870912)===0||s!==Vi))throw sl=yd,G2;i.flags|=8192}}function fu(i,s){s!==null&&(i.flags|=4),i.flags&16384&&(s=i.tag!==22?Pe():536870912,i.lanes|=s,Gr|=s)}function pl(i,s){if(!Dt)switch(i.tailMode){case"hidden":s=i.tail;for(var r=null;s!==null;)s.alternate!==null&&(r=s),s=s.sibling;r===null?i.tail=null:r.sibling=null;break;case"collapsed":r=i.tail;for(var c=null;r!==null;)r.alternate!==null&&(c=r),r=r.sibling;c===null?s||i.tail===null?i.tail=null:i.tail.sibling=null:c.sibling=null}}function Jt(i){var s=i.alternate!==null&&i.alternate.child===i.child,r=0,c=0;if(s)for(var p=i.child;p!==null;)r|=p.lanes|p.childLanes,c|=p.subtreeFlags&65011712,c|=p.flags&65011712,p.return=i,p=p.sibling;else for(p=i.child;p!==null;)r|=p.lanes|p.childLanes,c|=p.subtreeFlags,c|=p.flags,p.return=i,p=p.sibling;return i.subtreeFlags|=c,i.childLanes=r,s}function U5(i,s,r){var c=s.pendingProps;switch(dd(s),s.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Jt(s),null;case 1:return Jt(s),null;case 3:return r=s.stateNode,c=null,i!==null&&(c=i.memoizedState.cache),s.memoizedState.cache!==c&&(s.flags|=2048),ds(_n),ut(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(i===null||i.child===null)&&(Qo(s)?gs(s):i===null||i.memoizedState.isDehydrated&&(s.flags&256)===0||(s.flags|=1024,z2())),Jt(s),null;case 26:return r=s.memoizedState,i===null?(gs(s),r!==null?(Jt(s),og(s,r)):(Jt(s),s.flags&=-16777217)):r?r!==i.memoizedState?(gs(s),Jt(s),og(s,r)):(Jt(s),s.flags&=-16777217):(i.memoizedProps!==c&&gs(s),Jt(s),s.flags&=-16777217),null;case 27:Et(s),r=Ee.current;var p=s.type;if(i!==null&&s.stateNode!=null)i.memoizedProps!==c&&gs(s);else{if(!c){if(s.stateNode===null)throw Error(a(166));return Jt(s),null}i=te.current,Qo(s)?B2(s):(i=ov(p,c,r),s.stateNode=i,gs(s))}return Jt(s),null;case 5:if(Et(s),r=s.type,i!==null&&s.stateNode!=null)i.memoizedProps!==c&&gs(s);else{if(!c){if(s.stateNode===null)throw Error(a(166));return Jt(s),null}if(i=te.current,Qo(s))B2(s);else{switch(p=Eu(Ee.current),i){case 1:i=p.createElementNS("http://www.w3.org/2000/svg",r);break;case 2:i=p.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;default:switch(r){case"svg":i=p.createElementNS("http://www.w3.org/2000/svg",r);break;case"math":i=p.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;case"script":i=p.createElement("div"),i.innerHTML="<script><\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof c.is=="string"?p.createElement("select",{is:c.is}):p.createElement("select"),c.multiple?i.multiple=!0:c.size&&(i.size=c.size);break;default:i=typeof c.is=="string"?p.createElement(r,{is:c.is}):p.createElement(r)}}i[vn]=s,i[Nn]=c;e:for(p=s.child;p!==null;){if(p.tag===5||p.tag===6)i.appendChild(p.stateNode);else if(p.tag!==4&&p.tag!==27&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===s)break e;for(;p.sibling===null;){if(p.return===null||p.return===s)break e;p=p.return}p.sibling.return=p.return,p=p.sibling}s.stateNode=i;e:switch(Pn(i,r,c),r){case"button":case"input":case"select":case"textarea":i=!!c.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&gs(s)}}return Jt(s),s.flags&=-16777217,null;case 6:if(i&&s.stateNode!=null)i.memoizedProps!==c&&gs(s);else{if(typeof c!="string"&&s.stateNode===null)throw Error(a(166));if(i=Ee.current,Qo(s)){if(i=s.stateNode,r=s.memoizedProps,c=null,p=Hn,p!==null)switch(p.tag){case 27:case 5:c=p.memoizedProps}i[vn]=s,i=!!(i.nodeValue===r||c!==null&&c.suppressHydrationWarning===!0||ev(i.nodeValue,r)),i||Xa(s)}else i=Eu(i).createTextNode(c),i[vn]=s,s.stateNode=i}return Jt(s),null;case 13:if(c=s.memoizedState,i===null||i.memoizedState!==null&&i.memoizedState.dehydrated!==null){if(p=Qo(s),c!==null&&c.dehydrated!==null){if(i===null){if(!p)throw Error(a(318));if(p=s.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(a(317));p[vn]=s}else $o(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;Jt(s),p=!1}else p=z2(),i!==null&&i.memoizedState!==null&&(i.memoizedState.hydrationErrors=p),p=!0;if(!p)return s.flags&256?(ps(s),s):(ps(s),null)}if(ps(s),(s.flags&128)!==0)return s.lanes=r,s;if(r=c!==null,i=i!==null&&i.memoizedState!==null,r){c=s.child,p=null,c.alternate!==null&&c.alternate.memoizedState!==null&&c.alternate.memoizedState.cachePool!==null&&(p=c.alternate.memoizedState.cachePool.pool);var _=null;c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(_=c.memoizedState.cachePool.pool),_!==p&&(c.flags|=2048)}return r!==i&&r&&(s.child.flags|=8192),fu(s,s.updateQueue),Jt(s),null;case 4:return ut(),i===null&&Eh(s.stateNode.containerInfo),Jt(s),null;case 10:return ds(s.type),Jt(s),null;case 19:if(Me(yn),p=s.memoizedState,p===null)return Jt(s),null;if(c=(s.flags&128)!==0,_=p.rendering,_===null)if(c)pl(p,!1);else{if(sn!==0||i!==null&&(i.flags&128)!==0)for(i=s.child;i!==null;){if(_=ru(i),_!==null){for(s.flags|=128,pl(p,!1),i=_.updateQueue,s.updateQueue=i,fu(s,i),s.subtreeFlags=0,i=r,r=s.child;r!==null;)O2(r,i),r=r.sibling;return be(yn,yn.current&1|2),s.child}i=i.sibling}p.tail!==null&&rt()>pu&&(s.flags|=128,c=!0,pl(p,!1),s.lanes=4194304)}else{if(!c)if(i=ru(_),i!==null){if(s.flags|=128,c=!0,i=i.updateQueue,s.updateQueue=i,fu(s,i),pl(p,!0),p.tail===null&&p.tailMode==="hidden"&&!_.alternate&&!Dt)return Jt(s),null}else 2*rt()-p.renderingStartTime>pu&&r!==536870912&&(s.flags|=128,c=!0,pl(p,!1),s.lanes=4194304);p.isBackwards?(_.sibling=s.child,s.child=_):(i=p.last,i!==null?i.sibling=_:s.child=_,p.last=_)}return p.tail!==null?(s=p.tail,p.rendering=s,p.tail=s.sibling,p.renderingStartTime=rt(),s.sibling=null,i=yn.current,be(yn,c?i&1|2:i&1),s):(Jt(s),null);case 22:case 23:return ps(s),Td(),c=s.memoizedState!==null,i!==null?i.memoizedState!==null!==c&&(s.flags|=8192):c&&(s.flags|=8192),c?(r&536870912)!==0&&(s.flags&128)===0&&(Jt(s),s.subtreeFlags&6&&(s.flags|=8192)):Jt(s),r=s.updateQueue,r!==null&&fu(s,r.retryQueue),r=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(r=i.memoizedState.cachePool.pool),c=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(c=s.memoizedState.cachePool.pool),c!==r&&(s.flags|=2048),i!==null&&Me(Za),null;case 24:return r=null,i!==null&&(r=i.memoizedState.cache),s.memoizedState.cache!==r&&(s.flags|=2048),ds(_n),Jt(s),null;case 25:return null;case 30:return null}throw Error(a(156,s.tag))}function P5(i,s){switch(dd(s),s.tag){case 1:return i=s.flags,i&65536?(s.flags=i&-65537|128,s):null;case 3:return ds(_n),ut(),i=s.flags,(i&65536)!==0&&(i&128)===0?(s.flags=i&-65537|128,s):null;case 26:case 27:case 5:return Et(s),null;case 13:if(ps(s),i=s.memoizedState,i!==null&&i.dehydrated!==null){if(s.alternate===null)throw Error(a(340));$o()}return i=s.flags,i&65536?(s.flags=i&-65537|128,s):null;case 19:return Me(yn),null;case 4:return ut(),null;case 10:return ds(s.type),null;case 22:case 23:return ps(s),Td(),i!==null&&Me(Za),i=s.flags,i&65536?(s.flags=i&-65537|128,s):null;case 24:return ds(_n),null;case 25:return null;default:return null}}function lg(i,s){switch(dd(s),s.tag){case 3:ds(_n),ut();break;case 26:case 27:case 5:Et(s);break;case 4:ut();break;case 13:ps(s);break;case 19:Me(yn);break;case 10:ds(s.type);break;case 22:case 23:ps(s),Td(),i!==null&&Me(Za);break;case 24:ds(_n)}}function ml(i,s){try{var r=s.updateQueue,c=r!==null?r.lastEffect:null;if(c!==null){var p=c.next;r=p;do{if((r.tag&i)===i){c=void 0;var _=r.create,E=r.inst;c=_(),E.destroy=c}r=r.next}while(r!==p)}}catch(A){Wt(s,s.return,A)}}function aa(i,s,r){try{var c=s.updateQueue,p=c!==null?c.lastEffect:null;if(p!==null){var _=p.next;c=_;do{if((c.tag&i)===i){var E=c.inst,A=E.destroy;if(A!==void 0){E.destroy=void 0,p=s;var H=r,ie=A;try{ie()}catch(pe){Wt(p,H,pe)}}}c=c.next}while(c!==_)}}catch(pe){Wt(s,s.return,pe)}}function cg(i){var s=i.updateQueue;if(s!==null){var r=i.stateNode;try{K2(s,r)}catch(c){Wt(i,i.return,c)}}}function ug(i,s,r){r.props=Qa(i.type,i.memoizedProps),r.state=i.memoizedState;try{r.componentWillUnmount()}catch(c){Wt(i,s,c)}}function gl(i,s){try{var r=i.ref;if(r!==null){switch(i.tag){case 26:case 27:case 5:var c=i.stateNode;break;case 30:c=i.stateNode;break;default:c=i.stateNode}typeof r=="function"?i.refCleanup=r(c):r.current=c}}catch(p){Wt(i,s,p)}}function ji(i,s){var r=i.ref,c=i.refCleanup;if(r!==null)if(typeof c=="function")try{c()}catch(p){Wt(i,s,p)}finally{i.refCleanup=null,i=i.alternate,i!=null&&(i.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(p){Wt(i,s,p)}else r.current=null}function fg(i){var s=i.type,r=i.memoizedProps,c=i.stateNode;try{e:switch(s){case"button":case"input":case"select":case"textarea":r.autoFocus&&c.focus();break e;case"img":r.src?c.src=r.src:r.srcSet&&(c.srcset=r.srcSet)}}catch(p){Wt(i,i.return,p)}}function eh(i,s,r){try{var c=i.stateNode;tS(c,i.type,r,s),c[Nn]=s}catch(p){Wt(i,i.return,p)}}function dg(i){return i.tag===5||i.tag===3||i.tag===26||i.tag===27&&ha(i.type)||i.tag===4}function th(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||dg(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(i.tag===27&&ha(i.type)||i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function nh(i,s,r){var c=i.tag;if(c===5||c===6)i=i.stateNode,s?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(i,s):(s=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,s.appendChild(i),r=r._reactRootContainer,r!=null||s.onclick!==null||(s.onclick=bu));else if(c!==4&&(c===27&&ha(i.type)&&(r=i.stateNode,s=null),i=i.child,i!==null))for(nh(i,s,r),i=i.sibling;i!==null;)nh(i,s,r),i=i.sibling}function du(i,s,r){var c=i.tag;if(c===5||c===6)i=i.stateNode,s?r.insertBefore(i,s):r.appendChild(i);else if(c!==4&&(c===27&&ha(i.type)&&(r=i.stateNode),i=i.child,i!==null))for(du(i,s,r),i=i.sibling;i!==null;)du(i,s,r),i=i.sibling}function hg(i){var s=i.stateNode,r=i.memoizedProps;try{for(var c=i.type,p=s.attributes;p.length;)s.removeAttributeNode(p[0]);Pn(s,c,r),s[vn]=i,s[Nn]=r}catch(_){Wt(i,i.return,_)}}var vs=!1,on=!1,ih=!1,pg=typeof WeakSet=="function"?WeakSet:Set,Cn=null;function O5(i,s){if(i=i.containerInfo,Ch=Nu,i=w2(i),td(i)){if("selectionStart"in i)var r={start:i.selectionStart,end:i.selectionEnd};else e:{r=(r=i.ownerDocument)&&r.defaultView||window;var c=r.getSelection&&r.getSelection();if(c&&c.rangeCount!==0){r=c.anchorNode;var p=c.anchorOffset,_=c.focusNode;c=c.focusOffset;try{r.nodeType,_.nodeType}catch{r=null;break e}var E=0,A=-1,H=-1,ie=0,pe=0,ye=i,se=null;t:for(;;){for(var ae;ye!==r||p!==0&&ye.nodeType!==3||(A=E+p),ye!==_||c!==0&&ye.nodeType!==3||(H=E+c),ye.nodeType===3&&(E+=ye.nodeValue.length),(ae=ye.firstChild)!==null;)se=ye,ye=ae;for(;;){if(ye===i)break t;if(se===r&&++ie===p&&(A=E),se===_&&++pe===c&&(H=E),(ae=ye.nextSibling)!==null)break;ye=se,se=ye.parentNode}ye=ae}r=A===-1||H===-1?null:{start:A,end:H}}else r=null}r=r||{start:0,end:0}}else r=null;for(Ah={focusedElem:i,selectionRange:r},Nu=!1,Cn=s;Cn!==null;)if(s=Cn,i=s.child,(s.subtreeFlags&1024)!==0&&i!==null)i.return=s,Cn=i;else for(;Cn!==null;){switch(s=Cn,_=s.alternate,i=s.flags,s.tag){case 0:break;case 11:case 15:break;case 1:if((i&1024)!==0&&_!==null){i=void 0,r=s,p=_.memoizedProps,_=_.memoizedState,c=r.stateNode;try{var st=Qa(r.type,p,r.elementType===r.type);i=c.getSnapshotBeforeUpdate(st,_),c.__reactInternalSnapshotBeforeUpdate=i}catch(et){Wt(r,r.return,et)}}break;case 3:if((i&1024)!==0){if(i=s.stateNode.containerInfo,r=i.nodeType,r===9)Lh(i);else if(r===1)switch(i.nodeName){case"HEAD":case"HTML":case"BODY":Lh(i);break;default:i.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((i&1024)!==0)throw Error(a(163))}if(i=s.sibling,i!==null){i.return=s.return,Cn=i;break}Cn=s.return}}function mg(i,s,r){var c=r.flags;switch(r.tag){case 0:case 11:case 15:ra(i,r),c&4&&ml(5,r);break;case 1:if(ra(i,r),c&4)if(i=r.stateNode,s===null)try{i.componentDidMount()}catch(E){Wt(r,r.return,E)}else{var p=Qa(r.type,s.memoizedProps);s=s.memoizedState;try{i.componentDidUpdate(p,s,i.__reactInternalSnapshotBeforeUpdate)}catch(E){Wt(r,r.return,E)}}c&64&&cg(r),c&512&&gl(r,r.return);break;case 3:if(ra(i,r),c&64&&(i=r.updateQueue,i!==null)){if(s=null,r.child!==null)switch(r.child.tag){case 27:case 5:s=r.child.stateNode;break;case 1:s=r.child.stateNode}try{K2(i,s)}catch(E){Wt(r,r.return,E)}}break;case 27:s===null&&c&4&&hg(r);case 26:case 5:ra(i,r),s===null&&c&4&&fg(r),c&512&&gl(r,r.return);break;case 12:ra(i,r);break;case 13:ra(i,r),c&4&&xg(i,r),c&64&&(i=r.memoizedState,i!==null&&(i=i.dehydrated,i!==null&&(r=G5.bind(null,r),lS(i,r))));break;case 22:if(c=r.memoizedState!==null||vs,!c){s=s!==null&&s.memoizedState!==null||on,p=vs;var _=on;vs=c,(on=s)&&!_?oa(i,r,(r.subtreeFlags&8772)!==0):ra(i,r),vs=p,on=_}break;case 30:break;default:ra(i,r)}}function gg(i){var s=i.alternate;s!==null&&(i.alternate=null,gg(s)),i.child=null,i.deletions=null,i.sibling=null,i.tag===5&&(s=i.stateNode,s!==null&&Ys(s)),i.stateNode=null,i.return=null,i.dependencies=null,i.memoizedProps=null,i.memoizedState=null,i.pendingProps=null,i.stateNode=null,i.updateQueue=null}var Kt=null,Zn=!1;function xs(i,s,r){for(r=r.child;r!==null;)vg(i,s,r),r=r.sibling}function vg(i,s,r){if(fe&&typeof fe.onCommitFiberUnmount=="function")try{fe.onCommitFiberUnmount(de,r)}catch{}switch(r.tag){case 26:on||ji(r,s),xs(i,s,r),r.memoizedState?r.memoizedState.count--:r.stateNode&&(r=r.stateNode,r.parentNode.removeChild(r));break;case 27:on||ji(r,s);var c=Kt,p=Zn;ha(r.type)&&(Kt=r.stateNode,Zn=!1),xs(i,s,r),wl(r.stateNode),Kt=c,Zn=p;break;case 5:on||ji(r,s);case 6:if(c=Kt,p=Zn,Kt=null,xs(i,s,r),Kt=c,Zn=p,Kt!==null)if(Zn)try{(Kt.nodeType===9?Kt.body:Kt.nodeName==="HTML"?Kt.ownerDocument.body:Kt).removeChild(r.stateNode)}catch(_){Wt(r,s,_)}else try{Kt.removeChild(r.stateNode)}catch(_){Wt(r,s,_)}break;case 18:Kt!==null&&(Zn?(i=Kt,av(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,r.stateNode),Ul(i)):av(Kt,r.stateNode));break;case 4:c=Kt,p=Zn,Kt=r.stateNode.containerInfo,Zn=!0,xs(i,s,r),Kt=c,Zn=p;break;case 0:case 11:case 14:case 15:on||aa(2,r,s),on||aa(4,r,s),xs(i,s,r);break;case 1:on||(ji(r,s),c=r.stateNode,typeof c.componentWillUnmount=="function"&&ug(r,s,c)),xs(i,s,r);break;case 21:xs(i,s,r);break;case 22:on=(c=on)||r.memoizedState!==null,xs(i,s,r),on=c;break;default:xs(i,s,r)}}function xg(i,s){if(s.memoizedState===null&&(i=s.alternate,i!==null&&(i=i.memoizedState,i!==null&&(i=i.dehydrated,i!==null))))try{Ul(i)}catch(r){Wt(s,s.return,r)}}function I5(i){switch(i.tag){case 13:case 19:var s=i.stateNode;return s===null&&(s=i.stateNode=new pg),s;case 22:return i=i.stateNode,s=i._retryCache,s===null&&(s=i._retryCache=new pg),s;default:throw Error(a(435,i.tag))}}function sh(i,s){var r=I5(i);s.forEach(function(c){var p=W5.bind(null,i,c);r.has(c)||(r.add(c),c.then(p,p))})}function ai(i,s){var r=s.deletions;if(r!==null)for(var c=0;c<r.length;c++){var p=r[c],_=i,E=s,A=E;e:for(;A!==null;){switch(A.tag){case 27:if(ha(A.type)){Kt=A.stateNode,Zn=!1;break e}break;case 5:Kt=A.stateNode,Zn=!1;break e;case 3:case 4:Kt=A.stateNode.containerInfo,Zn=!0;break e}A=A.return}if(Kt===null)throw Error(a(160));vg(_,E,p),Kt=null,Zn=!1,_=p.alternate,_!==null&&(_.return=null),p.return=null}if(s.subtreeFlags&13878)for(s=s.child;s!==null;)_g(s,i),s=s.sibling}var Ci=null;function _g(i,s){var r=i.alternate,c=i.flags;switch(i.tag){case 0:case 11:case 14:case 15:ai(s,i),ri(i),c&4&&(aa(3,i,i.return),ml(3,i),aa(5,i,i.return));break;case 1:ai(s,i),ri(i),c&512&&(on||r===null||ji(r,r.return)),c&64&&vs&&(i=i.updateQueue,i!==null&&(c=i.callbacks,c!==null&&(r=i.shared.hiddenCallbacks,i.shared.hiddenCallbacks=r===null?c:r.concat(c))));break;case 26:var p=Ci;if(ai(s,i),ri(i),c&512&&(on||r===null||ji(r,r.return)),c&4){var _=r!==null?r.memoizedState:null;if(c=i.memoizedState,r===null)if(c===null)if(i.stateNode===null){e:{c=i.type,r=i.memoizedProps,p=p.ownerDocument||p;t:switch(c){case"title":_=p.getElementsByTagName("title")[0],(!_||_[qs]||_[vn]||_.namespaceURI==="http://www.w3.org/2000/svg"||_.hasAttribute("itemprop"))&&(_=p.createElement(c),p.head.insertBefore(_,p.querySelector("head > title"))),Pn(_,c,r),_[vn]=i,un(_),c=_;break e;case"link":var E=hv("link","href",p).get(c+(r.href||""));if(E){for(var A=0;A<E.length;A++)if(_=E[A],_.getAttribute("href")===(r.href==null||r.href===""?null:r.href)&&_.getAttribute("rel")===(r.rel==null?null:r.rel)&&_.getAttribute("title")===(r.title==null?null:r.title)&&_.getAttribute("crossorigin")===(r.crossOrigin==null?null:r.crossOrigin)){E.splice(A,1);break t}}_=p.createElement(c),Pn(_,c,r),p.head.appendChild(_);break;case"meta":if(E=hv("meta","content",p).get(c+(r.content||""))){for(A=0;A<E.length;A++)if(_=E[A],_.getAttribute("content")===(r.content==null?null:""+r.content)&&_.getAttribute("name")===(r.name==null?null:r.name)&&_.getAttribute("property")===(r.property==null?null:r.property)&&_.getAttribute("http-equiv")===(r.httpEquiv==null?null:r.httpEquiv)&&_.getAttribute("charset")===(r.charSet==null?null:r.charSet)){E.splice(A,1);break t}}_=p.createElement(c),Pn(_,c,r),p.head.appendChild(_);break;default:throw Error(a(468,c))}_[vn]=i,un(_),c=_}i.stateNode=c}else pv(p,i.type,i.stateNode);else i.stateNode=dv(p,c,i.memoizedProps);else _!==c?(_===null?r.stateNode!==null&&(r=r.stateNode,r.parentNode.removeChild(r)):_.count--,c===null?pv(p,i.type,i.stateNode):dv(p,c,i.memoizedProps)):c===null&&i.stateNode!==null&&eh(i,i.memoizedProps,r.memoizedProps)}break;case 27:ai(s,i),ri(i),c&512&&(on||r===null||ji(r,r.return)),r!==null&&c&4&&eh(i,i.memoizedProps,r.memoizedProps);break;case 5:if(ai(s,i),ri(i),c&512&&(on||r===null||ji(r,r.return)),i.flags&32){p=i.stateNode;try{Fi(p,"")}catch(ae){Wt(i,i.return,ae)}}c&4&&i.stateNode!=null&&(p=i.memoizedProps,eh(i,p,r!==null?r.memoizedProps:p)),c&1024&&(ih=!0);break;case 6:if(ai(s,i),ri(i),c&4){if(i.stateNode===null)throw Error(a(162));c=i.memoizedProps,r=i.stateNode;try{r.nodeValue=c}catch(ae){Wt(i,i.return,ae)}}break;case 3:if(Cu=null,p=Ci,Ci=wu(s.containerInfo),ai(s,i),Ci=p,ri(i),c&4&&r!==null&&r.memoizedState.isDehydrated)try{Ul(s.containerInfo)}catch(ae){Wt(i,i.return,ae)}ih&&(ih=!1,yg(i));break;case 4:c=Ci,Ci=wu(i.stateNode.containerInfo),ai(s,i),ri(i),Ci=c;break;case 12:ai(s,i),ri(i);break;case 13:ai(s,i),ri(i),i.child.flags&8192&&i.memoizedState!==null!=(r!==null&&r.memoizedState!==null)&&(uh=rt()),c&4&&(c=i.updateQueue,c!==null&&(i.updateQueue=null,sh(i,c)));break;case 22:p=i.memoizedState!==null;var H=r!==null&&r.memoizedState!==null,ie=vs,pe=on;if(vs=ie||p,on=pe||H,ai(s,i),on=pe,vs=ie,ri(i),c&8192)e:for(s=i.stateNode,s._visibility=p?s._visibility&-2:s._visibility|1,p&&(r===null||H||vs||on||$a(i)),r=null,s=i;;){if(s.tag===5||s.tag===26){if(r===null){H=r=s;try{if(_=H.stateNode,p)E=_.style,typeof E.setProperty=="function"?E.setProperty("display","none","important"):E.display="none";else{A=H.stateNode;var ye=H.memoizedProps.style,se=ye!=null&&ye.hasOwnProperty("display")?ye.display:null;A.style.display=se==null||typeof se=="boolean"?"":(""+se).trim()}}catch(ae){Wt(H,H.return,ae)}}}else if(s.tag===6){if(r===null){H=s;try{H.stateNode.nodeValue=p?"":H.memoizedProps}catch(ae){Wt(H,H.return,ae)}}}else if((s.tag!==22&&s.tag!==23||s.memoizedState===null||s===i)&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===i)break e;for(;s.sibling===null;){if(s.return===null||s.return===i)break e;r===s&&(r=null),s=s.return}r===s&&(r=null),s.sibling.return=s.return,s=s.sibling}c&4&&(c=i.updateQueue,c!==null&&(r=c.retryQueue,r!==null&&(c.retryQueue=null,sh(i,r))));break;case 19:ai(s,i),ri(i),c&4&&(c=i.updateQueue,c!==null&&(i.updateQueue=null,sh(i,c)));break;case 30:break;case 21:break;default:ai(s,i),ri(i)}}function ri(i){var s=i.flags;if(s&2){try{for(var r,c=i.return;c!==null;){if(dg(c)){r=c;break}c=c.return}if(r==null)throw Error(a(160));switch(r.tag){case 27:var p=r.stateNode,_=th(i);du(i,_,p);break;case 5:var E=r.stateNode;r.flags&32&&(Fi(E,""),r.flags&=-33);var A=th(i);du(i,A,E);break;case 3:case 4:var H=r.stateNode.containerInfo,ie=th(i);nh(i,ie,H);break;default:throw Error(a(161))}}catch(pe){Wt(i,i.return,pe)}i.flags&=-3}s&4096&&(i.flags&=-4097)}function yg(i){if(i.subtreeFlags&1024)for(i=i.child;i!==null;){var s=i;yg(s),s.tag===5&&s.flags&1024&&s.stateNode.reset(),i=i.sibling}}function ra(i,s){if(s.subtreeFlags&8772)for(s=s.child;s!==null;)mg(i,s.alternate,s),s=s.sibling}function $a(i){for(i=i.child;i!==null;){var s=i;switch(s.tag){case 0:case 11:case 14:case 15:aa(4,s,s.return),$a(s);break;case 1:ji(s,s.return);var r=s.stateNode;typeof r.componentWillUnmount=="function"&&ug(s,s.return,r),$a(s);break;case 27:wl(s.stateNode);case 26:case 5:ji(s,s.return),$a(s);break;case 22:s.memoizedState===null&&$a(s);break;case 30:$a(s);break;default:$a(s)}i=i.sibling}}function oa(i,s,r){for(r=r&&(s.subtreeFlags&8772)!==0,s=s.child;s!==null;){var c=s.alternate,p=i,_=s,E=_.flags;switch(_.tag){case 0:case 11:case 15:oa(p,_,r),ml(4,_);break;case 1:if(oa(p,_,r),c=_,p=c.stateNode,typeof p.componentDidMount=="function")try{p.componentDidMount()}catch(ie){Wt(c,c.return,ie)}if(c=_,p=c.updateQueue,p!==null){var A=c.stateNode;try{var H=p.shared.hiddenCallbacks;if(H!==null)for(p.shared.hiddenCallbacks=null,p=0;p<H.length;p++)Z2(H[p],A)}catch(ie){Wt(c,c.return,ie)}}r&&E&64&&cg(_),gl(_,_.return);break;case 27:hg(_);case 26:case 5:oa(p,_,r),r&&c===null&&E&4&&fg(_),gl(_,_.return);break;case 12:oa(p,_,r);break;case 13:oa(p,_,r),r&&E&4&&xg(p,_);break;case 22:_.memoizedState===null&&oa(p,_,r),gl(_,_.return);break;case 30:break;default:oa(p,_,r)}s=s.sibling}}function ah(i,s){var r=null;i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(r=i.memoizedState.cachePool.pool),i=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(i=s.memoizedState.cachePool.pool),i!==r&&(i!=null&&i.refCount++,r!=null&&tl(r))}function rh(i,s){i=null,s.alternate!==null&&(i=s.alternate.memoizedState.cache),s=s.memoizedState.cache,s!==i&&(s.refCount++,i!=null&&tl(i))}function Hi(i,s,r,c){if(s.subtreeFlags&10256)for(s=s.child;s!==null;)Sg(i,s,r,c),s=s.sibling}function Sg(i,s,r,c){var p=s.flags;switch(s.tag){case 0:case 11:case 15:Hi(i,s,r,c),p&2048&&ml(9,s);break;case 1:Hi(i,s,r,c);break;case 3:Hi(i,s,r,c),p&2048&&(i=null,s.alternate!==null&&(i=s.alternate.memoizedState.cache),s=s.memoizedState.cache,s!==i&&(s.refCount++,i!=null&&tl(i)));break;case 12:if(p&2048){Hi(i,s,r,c),i=s.stateNode;try{var _=s.memoizedProps,E=_.id,A=_.onPostCommit;typeof A=="function"&&A(E,s.alternate===null?"mount":"update",i.passiveEffectDuration,-0)}catch(H){Wt(s,s.return,H)}}else Hi(i,s,r,c);break;case 13:Hi(i,s,r,c);break;case 23:break;case 22:_=s.stateNode,E=s.alternate,s.memoizedState!==null?_._visibility&2?Hi(i,s,r,c):vl(i,s):_._visibility&2?Hi(i,s,r,c):(_._visibility|=2,jr(i,s,r,c,(s.subtreeFlags&10256)!==0)),p&2048&&ah(E,s);break;case 24:Hi(i,s,r,c),p&2048&&rh(s.alternate,s);break;default:Hi(i,s,r,c)}}function jr(i,s,r,c,p){for(p=p&&(s.subtreeFlags&10256)!==0,s=s.child;s!==null;){var _=i,E=s,A=r,H=c,ie=E.flags;switch(E.tag){case 0:case 11:case 15:jr(_,E,A,H,p),ml(8,E);break;case 23:break;case 22:var pe=E.stateNode;E.memoizedState!==null?pe._visibility&2?jr(_,E,A,H,p):vl(_,E):(pe._visibility|=2,jr(_,E,A,H,p)),p&&ie&2048&&ah(E.alternate,E);break;case 24:jr(_,E,A,H,p),p&&ie&2048&&rh(E.alternate,E);break;default:jr(_,E,A,H,p)}s=s.sibling}}function vl(i,s){if(s.subtreeFlags&10256)for(s=s.child;s!==null;){var r=i,c=s,p=c.flags;switch(c.tag){case 22:vl(r,c),p&2048&&ah(c.alternate,c);break;case 24:vl(r,c),p&2048&&rh(c.alternate,c);break;default:vl(r,c)}s=s.sibling}}var xl=8192;function Hr(i){if(i.subtreeFlags&xl)for(i=i.child;i!==null;)Mg(i),i=i.sibling}function Mg(i){switch(i.tag){case 26:Hr(i),i.flags&xl&&i.memoizedState!==null&&SS(Ci,i.memoizedState,i.memoizedProps);break;case 5:Hr(i);break;case 3:case 4:var s=Ci;Ci=wu(i.stateNode.containerInfo),Hr(i),Ci=s;break;case 22:i.memoizedState===null&&(s=i.alternate,s!==null&&s.memoizedState!==null?(s=xl,xl=16777216,Hr(i),xl=s):Hr(i));break;default:Hr(i)}}function bg(i){var s=i.alternate;if(s!==null&&(i=s.child,i!==null)){s.child=null;do s=i.sibling,i.sibling=null,i=s;while(i!==null)}}function _l(i){var s=i.deletions;if((i.flags&16)!==0){if(s!==null)for(var r=0;r<s.length;r++){var c=s[r];Cn=c,wg(c,i)}bg(i)}if(i.subtreeFlags&10256)for(i=i.child;i!==null;)Eg(i),i=i.sibling}function Eg(i){switch(i.tag){case 0:case 11:case 15:_l(i),i.flags&2048&&aa(9,i,i.return);break;case 3:_l(i);break;case 12:_l(i);break;case 22:var s=i.stateNode;i.memoizedState!==null&&s._visibility&2&&(i.return===null||i.return.tag!==13)?(s._visibility&=-3,hu(i)):_l(i);break;default:_l(i)}}function hu(i){var s=i.deletions;if((i.flags&16)!==0){if(s!==null)for(var r=0;r<s.length;r++){var c=s[r];Cn=c,wg(c,i)}bg(i)}for(i=i.child;i!==null;){switch(s=i,s.tag){case 0:case 11:case 15:aa(8,s,s.return),hu(s);break;case 22:r=s.stateNode,r._visibility&2&&(r._visibility&=-3,hu(s));break;default:hu(s)}i=i.sibling}}function wg(i,s){for(;Cn!==null;){var r=Cn;switch(r.tag){case 0:case 11:case 15:aa(8,r,s);break;case 23:case 22:if(r.memoizedState!==null&&r.memoizedState.cachePool!==null){var c=r.memoizedState.cachePool.pool;c!=null&&c.refCount++}break;case 24:tl(r.memoizedState.cache)}if(c=r.child,c!==null)c.return=r,Cn=c;else e:for(r=i;Cn!==null;){c=Cn;var p=c.sibling,_=c.return;if(gg(c),c===r){Cn=null;break e}if(p!==null){p.return=_,Cn=p;break e}Cn=_}}}var B5={getCacheForType:function(i){var s=Bn(_n),r=s.data.get(i);return r===void 0&&(r=i(),s.data.set(i,r)),r}},F5=typeof WeakMap=="function"?WeakMap:Map,Bt=0,Yt=null,Mt=null,Ct=0,Ft=0,oi=null,la=!1,kr=!1,oh=!1,_s=0,sn=0,ca=0,Ja=0,lh=0,yi=0,Gr=0,yl=null,Kn=null,ch=!1,uh=0,pu=1/0,mu=null,ua=null,Un=0,fa=null,Wr=null,Xr=0,fh=0,dh=null,Tg=null,Sl=0,hh=null;function li(){if((Bt&2)!==0&&Ct!==0)return Ct&-Ct;if(j.T!==null){var i=Ur;return i!==0?i:yh()}return Rt()}function Cg(){yi===0&&(yi=(Ct&536870912)===0||Dt?W():536870912);var i=_i.current;return i!==null&&(i.flags|=32),yi}function ci(i,s,r){(i===Yt&&(Ft===2||Ft===9)||i.cancelPendingCommit!==null)&&(qr(i,0),da(i,Ct,yi,!1)),Ve(i,r),((Bt&2)===0||i!==Yt)&&(i===Yt&&((Bt&2)===0&&(Ja|=r),sn===4&&da(i,Ct,yi,!1)),ki(i))}function Ag(i,s,r){if((Bt&6)!==0)throw Error(a(327));var c=!r&&(s&124)===0&&(s&i.expiredLanes)===0||De(i,s),p=c?j5(i,s):gh(i,s,!0),_=c;do{if(p===0){kr&&!c&&da(i,s,0,!1);break}else{if(r=i.current.alternate,_&&!z5(r)){p=gh(i,s,!1),_=!1;continue}if(p===2){if(_=s,i.errorRecoveryDisabledLanes&_)var E=0;else E=i.pendingLanes&-536870913,E=E!==0?E:E&536870912?536870912:0;if(E!==0){s=E;e:{var A=i;p=yl;var H=A.current.memoizedState.isDehydrated;if(H&&(qr(A,E).flags|=256),E=gh(A,E,!1),E!==2){if(oh&&!H){A.errorRecoveryDisabledLanes|=_,Ja|=_,p=4;break e}_=Kn,Kn=p,_!==null&&(Kn===null?Kn=_:Kn.push.apply(Kn,_))}p=E}if(_=!1,p!==2)continue}}if(p===1){qr(i,0),da(i,s,0,!0);break}e:{switch(c=i,_=p,_){case 0:case 1:throw Error(a(345));case 4:if((s&4194048)!==s)break;case 6:da(c,s,yi,!la);break e;case 2:Kn=null;break;case 3:case 5:break;default:throw Error(a(329))}if((s&62914560)===s&&(p=uh+300-rt(),10<p)){if(da(c,s,yi,!la),We(c,0,!0)!==0)break e;c.timeoutHandle=iv(Rg.bind(null,c,r,Kn,mu,ch,s,yi,Ja,Gr,la,_,2,-0,0),p);break e}Rg(c,r,Kn,mu,ch,s,yi,Ja,Gr,la,_,0,-0,0)}}break}while(!0);ki(i)}function Rg(i,s,r,c,p,_,E,A,H,ie,pe,ye,se,ae){if(i.timeoutHandle=-1,ye=s.subtreeFlags,(ye&8192||(ye&16785408)===16785408)&&(Al={stylesheets:null,count:0,unsuspend:yS},Mg(s),ye=MS(),ye!==null)){i.cancelPendingCommit=ye(Ig.bind(null,i,s,_,r,c,p,E,A,H,pe,1,se,ae)),da(i,_,E,!ie);return}Ig(i,s,_,r,c,p,E,A,H)}function z5(i){for(var s=i;;){var r=s.tag;if((r===0||r===11||r===15)&&s.flags&16384&&(r=s.updateQueue,r!==null&&(r=r.stores,r!==null)))for(var c=0;c<r.length;c++){var p=r[c],_=p.getSnapshot;p=p.value;try{if(!ii(_(),p))return!1}catch{return!1}}if(r=s.child,s.subtreeFlags&16384&&r!==null)r.return=s,s=r;else{if(s===i)break;for(;s.sibling===null;){if(s.return===null||s.return===i)return!0;s=s.return}s.sibling.return=s.return,s=s.sibling}}return!0}function da(i,s,r,c){s&=~lh,s&=~Ja,i.suspendedLanes|=s,i.pingedLanes&=~s,c&&(i.warmLanes|=s),c=i.expirationTimes;for(var p=s;0<p;){var _=31-Ae(p),E=1<<_;c[_]=-1,p&=~E}r!==0&&Se(i,r,s)}function gu(){return(Bt&6)===0?(Ml(0),!1):!0}function ph(){if(Mt!==null){if(Ft===0)var i=Mt.return;else i=Mt,fs=qa=null,Ld(i),zr=null,dl=0,i=Mt;for(;i!==null;)lg(i.alternate,i),i=i.return;Mt=null}}function qr(i,s){var r=i.timeoutHandle;r!==-1&&(i.timeoutHandle=-1,iS(r)),r=i.cancelPendingCommit,r!==null&&(i.cancelPendingCommit=null,r()),ph(),Yt=i,Mt=r=ls(i.current,null),Ct=s,Ft=0,oi=null,la=!1,kr=De(i,s),oh=!1,Gr=yi=lh=Ja=ca=sn=0,Kn=yl=null,ch=!1,(s&8)!==0&&(s|=s&32);var c=i.entangledLanes;if(c!==0)for(i=i.entanglements,c&=s;0<c;){var p=31-Ae(c),_=1<<p;s|=i[p],c&=~_}return _s=s,Fc(),r}function Ng(i,s){xt=null,j.H=iu,s===il||s===qc?(s=q2(),Ft=3):s===G2?(s=q2(),Ft=4):Ft=s===Y1?8:s!==null&&typeof s=="object"&&typeof s.then=="function"?6:1,oi=s,Mt===null&&(sn=1,lu(i,mi(s,i.current)))}function Lg(){var i=j.H;return j.H=iu,i===null?iu:i}function Dg(){var i=j.A;return j.A=B5,i}function mh(){sn=4,la||(Ct&4194048)!==Ct&&_i.current!==null||(kr=!0),(ca&134217727)===0&&(Ja&134217727)===0||Yt===null||da(Yt,Ct,yi,!1)}function gh(i,s,r){var c=Bt;Bt|=2;var p=Lg(),_=Dg();(Yt!==i||Ct!==s)&&(mu=null,qr(i,s)),s=!1;var E=sn;e:do try{if(Ft!==0&&Mt!==null){var A=Mt,H=oi;switch(Ft){case 8:ph(),E=6;break e;case 3:case 2:case 9:case 6:_i.current===null&&(s=!0);var ie=Ft;if(Ft=0,oi=null,Yr(i,A,H,ie),r&&kr){E=0;break e}break;default:ie=Ft,Ft=0,oi=null,Yr(i,A,H,ie)}}V5(),E=sn;break}catch(pe){Ng(i,pe)}while(!0);return s&&i.shellSuspendCounter++,fs=qa=null,Bt=c,j.H=p,j.A=_,Mt===null&&(Yt=null,Ct=0,Fc()),E}function V5(){for(;Mt!==null;)Ug(Mt)}function j5(i,s){var r=Bt;Bt|=2;var c=Lg(),p=Dg();Yt!==i||Ct!==s?(mu=null,pu=rt()+500,qr(i,s)):kr=De(i,s);e:do try{if(Ft!==0&&Mt!==null){s=Mt;var _=oi;t:switch(Ft){case 1:Ft=0,oi=null,Yr(i,s,_,1);break;case 2:case 9:if(W2(_)){Ft=0,oi=null,Pg(s);break}s=function(){Ft!==2&&Ft!==9||Yt!==i||(Ft=7),ki(i)},_.then(s,s);break e;case 3:Ft=7;break e;case 4:Ft=5;break e;case 7:W2(_)?(Ft=0,oi=null,Pg(s)):(Ft=0,oi=null,Yr(i,s,_,7));break;case 5:var E=null;switch(Mt.tag){case 26:E=Mt.memoizedState;case 5:case 27:var A=Mt;if(!E||mv(E)){Ft=0,oi=null;var H=A.sibling;if(H!==null)Mt=H;else{var ie=A.return;ie!==null?(Mt=ie,vu(ie)):Mt=null}break t}}Ft=0,oi=null,Yr(i,s,_,5);break;case 6:Ft=0,oi=null,Yr(i,s,_,6);break;case 8:ph(),sn=6;break e;default:throw Error(a(462))}}H5();break}catch(pe){Ng(i,pe)}while(!0);return fs=qa=null,j.H=c,j.A=p,Bt=r,Mt!==null?0:(Yt=null,Ct=0,Fc(),sn)}function H5(){for(;Mt!==null&&!Xt();)Ug(Mt)}function Ug(i){var s=rg(i.alternate,i,_s);i.memoizedProps=i.pendingProps,s===null?vu(i):Mt=s}function Pg(i){var s=i,r=s.alternate;switch(s.tag){case 15:case 0:s=eg(r,s,s.pendingProps,s.type,void 0,Ct);break;case 11:s=eg(r,s,s.pendingProps,s.type.render,s.ref,Ct);break;case 5:Ld(s);default:lg(r,s),s=Mt=O2(s,_s),s=rg(r,s,_s)}i.memoizedProps=i.pendingProps,s===null?vu(i):Mt=s}function Yr(i,s,r,c){fs=qa=null,Ld(s),zr=null,dl=0;var p=s.return;try{if(L5(i,p,s,r,Ct)){sn=1,lu(i,mi(r,i.current)),Mt=null;return}}catch(_){if(p!==null)throw Mt=p,_;sn=1,lu(i,mi(r,i.current)),Mt=null;return}s.flags&32768?(Dt||c===1?i=!0:kr||(Ct&536870912)!==0?i=!1:(la=i=!0,(c===2||c===9||c===3||c===6)&&(c=_i.current,c!==null&&c.tag===13&&(c.flags|=16384))),Og(s,i)):vu(s)}function vu(i){var s=i;do{if((s.flags&32768)!==0){Og(s,la);return}i=s.return;var r=U5(s.alternate,s,_s);if(r!==null){Mt=r;return}if(s=s.sibling,s!==null){Mt=s;return}Mt=s=i}while(s!==null);sn===0&&(sn=5)}function Og(i,s){do{var r=P5(i.alternate,i);if(r!==null){r.flags&=32767,Mt=r;return}if(r=i.return,r!==null&&(r.flags|=32768,r.subtreeFlags=0,r.deletions=null),!s&&(i=i.sibling,i!==null)){Mt=i;return}Mt=i=r}while(i!==null);sn=6,Mt=null}function Ig(i,s,r,c,p,_,E,A,H){i.cancelPendingCommit=null;do xu();while(Un!==0);if((Bt&6)!==0)throw Error(a(327));if(s!==null){if(s===i.current)throw Error(a(177));if(_=s.lanes|s.childLanes,_|=rd,Ce(i,r,_,E,A,H),i===Yt&&(Mt=Yt=null,Ct=0),Wr=s,fa=i,Xr=r,fh=_,dh=p,Tg=c,(s.subtreeFlags&10256)!==0||(s.flags&10256)!==0?(i.callbackNode=null,i.callbackPriority=0,X5(ot,function(){return jg(),null})):(i.callbackNode=null,i.callbackPriority=0),c=(s.flags&13878)!==0,(s.subtreeFlags&13878)!==0||c){c=j.T,j.T=null,p=Z.p,Z.p=2,E=Bt,Bt|=4;try{O5(i,s,r)}finally{Bt=E,Z.p=p,j.T=c}}Un=1,Bg(),Fg(),zg()}}function Bg(){if(Un===1){Un=0;var i=fa,s=Wr,r=(s.flags&13878)!==0;if((s.subtreeFlags&13878)!==0||r){r=j.T,j.T=null;var c=Z.p;Z.p=2;var p=Bt;Bt|=4;try{_g(s,i);var _=Ah,E=w2(i.containerInfo),A=_.focusedElem,H=_.selectionRange;if(E!==A&&A&&A.ownerDocument&&E2(A.ownerDocument.documentElement,A)){if(H!==null&&td(A)){var ie=H.start,pe=H.end;if(pe===void 0&&(pe=ie),"selectionStart"in A)A.selectionStart=ie,A.selectionEnd=Math.min(pe,A.value.length);else{var ye=A.ownerDocument||document,se=ye&&ye.defaultView||window;if(se.getSelection){var ae=se.getSelection(),st=A.textContent.length,et=Math.min(H.start,st),Ht=H.end===void 0?et:Math.min(H.end,st);!ae.extend&&et>Ht&&(E=Ht,Ht=et,et=E);var K=b2(A,et),X=b2(A,Ht);if(K&&X&&(ae.rangeCount!==1||ae.anchorNode!==K.node||ae.anchorOffset!==K.offset||ae.focusNode!==X.node||ae.focusOffset!==X.offset)){var ne=ye.createRange();ne.setStart(K.node,K.offset),ae.removeAllRanges(),et>Ht?(ae.addRange(ne),ae.extend(X.node,X.offset)):(ne.setEnd(X.node,X.offset),ae.addRange(ne))}}}}for(ye=[],ae=A;ae=ae.parentNode;)ae.nodeType===1&&ye.push({element:ae,left:ae.scrollLeft,top:ae.scrollTop});for(typeof A.focus=="function"&&A.focus(),A=0;A<ye.length;A++){var ve=ye[A];ve.element.scrollLeft=ve.left,ve.element.scrollTop=ve.top}}Nu=!!Ch,Ah=Ch=null}finally{Bt=p,Z.p=c,j.T=r}}i.current=s,Un=2}}function Fg(){if(Un===2){Un=0;var i=fa,s=Wr,r=(s.flags&8772)!==0;if((s.subtreeFlags&8772)!==0||r){r=j.T,j.T=null;var c=Z.p;Z.p=2;var p=Bt;Bt|=4;try{mg(i,s.alternate,s)}finally{Bt=p,Z.p=c,j.T=r}}Un=3}}function zg(){if(Un===4||Un===3){Un=0,ft();var i=fa,s=Wr,r=Xr,c=Tg;(s.subtreeFlags&10256)!==0||(s.flags&10256)!==0?Un=5:(Un=0,Wr=fa=null,Vg(i,i.pendingLanes));var p=i.pendingLanes;if(p===0&&(ua=null),It(r),s=s.stateNode,fe&&typeof fe.onCommitFiberRoot=="function")try{fe.onCommitFiberRoot(de,s,void 0,(s.current.flags&128)===128)}catch{}if(c!==null){s=j.T,p=Z.p,Z.p=2,j.T=null;try{for(var _=i.onRecoverableError,E=0;E<c.length;E++){var A=c[E];_(A.value,{componentStack:A.stack})}}finally{j.T=s,Z.p=p}}(Xr&3)!==0&&xu(),ki(i),p=i.pendingLanes,(r&4194090)!==0&&(p&42)!==0?i===hh?Sl++:(Sl=0,hh=i):Sl=0,Ml(0)}}function Vg(i,s){(i.pooledCacheLanes&=s)===0&&(s=i.pooledCache,s!=null&&(i.pooledCache=null,tl(s)))}function xu(i){return Bg(),Fg(),zg(),jg()}function jg(){if(Un!==5)return!1;var i=fa,s=fh;fh=0;var r=It(Xr),c=j.T,p=Z.p;try{Z.p=32>r?32:r,j.T=null,r=dh,dh=null;var _=fa,E=Xr;if(Un=0,Wr=fa=null,Xr=0,(Bt&6)!==0)throw Error(a(331));var A=Bt;if(Bt|=4,Eg(_.current),Sg(_,_.current,E,r),Bt=A,Ml(0,!1),fe&&typeof fe.onPostCommitFiberRoot=="function")try{fe.onPostCommitFiberRoot(de,_)}catch{}return!0}finally{Z.p=p,j.T=c,Vg(i,s)}}function Hg(i,s,r){s=mi(r,s),s=Wd(i.stateNode,s,2),i=ta(i,s,2),i!==null&&(Ve(i,2),ki(i))}function Wt(i,s,r){if(i.tag===3)Hg(i,i,r);else for(;s!==null;){if(s.tag===3){Hg(s,i,r);break}else if(s.tag===1){var c=s.stateNode;if(typeof s.type.getDerivedStateFromError=="function"||typeof c.componentDidCatch=="function"&&(ua===null||!ua.has(c))){i=mi(r,i),r=X1(2),c=ta(s,r,2),c!==null&&(q1(r,c,s,i),Ve(c,2),ki(c));break}}s=s.return}}function vh(i,s,r){var c=i.pingCache;if(c===null){c=i.pingCache=new F5;var p=new Set;c.set(s,p)}else p=c.get(s),p===void 0&&(p=new Set,c.set(s,p));p.has(r)||(oh=!0,p.add(r),i=k5.bind(null,i,s,r),s.then(i,i))}function k5(i,s,r){var c=i.pingCache;c!==null&&c.delete(s),i.pingedLanes|=i.suspendedLanes&r,i.warmLanes&=~r,Yt===i&&(Ct&r)===r&&(sn===4||sn===3&&(Ct&62914560)===Ct&&300>rt()-uh?(Bt&2)===0&&qr(i,0):lh|=r,Gr===Ct&&(Gr=0)),ki(i)}function kg(i,s){s===0&&(s=Pe()),i=Rr(i,s),i!==null&&(Ve(i,s),ki(i))}function G5(i){var s=i.memoizedState,r=0;s!==null&&(r=s.retryLane),kg(i,r)}function W5(i,s){var r=0;switch(i.tag){case 13:var c=i.stateNode,p=i.memoizedState;p!==null&&(r=p.retryLane);break;case 19:c=i.stateNode;break;case 22:c=i.stateNode._retryCache;break;default:throw Error(a(314))}c!==null&&c.delete(s),kg(i,r)}function X5(i,s){return gt(i,s)}var _u=null,Zr=null,xh=!1,yu=!1,_h=!1,er=0;function ki(i){i!==Zr&&i.next===null&&(Zr===null?_u=Zr=i:Zr=Zr.next=i),yu=!0,xh||(xh=!0,Y5())}function Ml(i,s){if(!_h&&yu){_h=!0;do for(var r=!1,c=_u;c!==null;){if(i!==0){var p=c.pendingLanes;if(p===0)var _=0;else{var E=c.suspendedLanes,A=c.pingedLanes;_=(1<<31-Ae(42|i)+1)-1,_&=p&~(E&~A),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(r=!0,qg(c,_))}else _=Ct,_=We(c,c===Yt?_:0,c.cancelPendingCommit!==null||c.timeoutHandle!==-1),(_&3)===0||De(c,_)||(r=!0,qg(c,_));c=c.next}while(r);_h=!1}}function q5(){Gg()}function Gg(){yu=xh=!1;var i=0;er!==0&&(nS()&&(i=er),er=0);for(var s=rt(),r=null,c=_u;c!==null;){var p=c.next,_=Wg(c,s);_===0?(c.next=null,r===null?_u=p:r.next=p,p===null&&(Zr=r)):(r=c,(i!==0||(_&3)!==0)&&(yu=!0)),c=p}Ml(i)}function Wg(i,s){for(var r=i.suspendedLanes,c=i.pingedLanes,p=i.expirationTimes,_=i.pendingLanes&-62914561;0<_;){var E=31-Ae(_),A=1<<E,H=p[E];H===-1?((A&r)===0||(A&c)!==0)&&(p[E]=tt(A,s)):H<=s&&(i.expiredLanes|=A),_&=~A}if(s=Yt,r=Ct,r=We(i,i===s?r:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),c=i.callbackNode,r===0||i===s&&(Ft===2||Ft===9)||i.cancelPendingCommit!==null)return c!==null&&c!==null&&k(c),i.callbackNode=null,i.callbackPriority=0;if((r&3)===0||De(i,r)){if(s=r&-r,s===i.callbackPriority)return s;switch(c!==null&&k(c),It(r)){case 2:case 8:r=Ke;break;case 32:r=ot;break;case 268435456:r=B;break;default:r=ot}return c=Xg.bind(null,i),r=gt(r,c),i.callbackPriority=s,i.callbackNode=r,s}return c!==null&&c!==null&&k(c),i.callbackPriority=2,i.callbackNode=null,2}function Xg(i,s){if(Un!==0&&Un!==5)return i.callbackNode=null,i.callbackPriority=0,null;var r=i.callbackNode;if(xu()&&i.callbackNode!==r)return null;var c=Ct;return c=We(i,i===Yt?c:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),c===0?null:(Ag(i,c,s),Wg(i,rt()),i.callbackNode!=null&&i.callbackNode===r?Xg.bind(null,i):null)}function qg(i,s){if(xu())return null;Ag(i,s,!0)}function Y5(){sS(function(){(Bt&6)!==0?gt(vt,q5):Gg()})}function yh(){return er===0&&(er=W()),er}function Yg(i){return i==null||typeof i=="symbol"||typeof i=="boolean"?null:typeof i=="function"?i:Lc(""+i)}function Zg(i,s){var r=s.ownerDocument.createElement("input");return r.name=s.name,r.value=s.value,i.id&&r.setAttribute("form",i.id),s.parentNode.insertBefore(r,s),i=new FormData(i),r.parentNode.removeChild(r),i}function Z5(i,s,r,c,p){if(s==="submit"&&r&&r.stateNode===p){var _=Yg((p[Nn]||null).action),E=c.submitter;E&&(s=(s=E[Nn]||null)?Yg(s.formAction):E.getAttribute("formAction"),s!==null&&(_=s,E=null));var A=new Oc("action","action",null,c,p);i.push({event:A,listeners:[{instance:null,listener:function(){if(c.defaultPrevented){if(er!==0){var H=E?Zg(p,E):new FormData(p);Vd(r,{pending:!0,data:H,method:p.method,action:_},null,H)}}else typeof _=="function"&&(A.preventDefault(),H=E?Zg(p,E):new FormData(p),Vd(r,{pending:!0,data:H,method:p.method,action:_},_,H))},currentTarget:p}]})}}for(var Sh=0;Sh<ad.length;Sh++){var Mh=ad[Sh],K5=Mh.toLowerCase(),Q5=Mh[0].toUpperCase()+Mh.slice(1);Ti(K5,"on"+Q5)}Ti(A2,"onAnimationEnd"),Ti(R2,"onAnimationIteration"),Ti(N2,"onAnimationStart"),Ti("dblclick","onDoubleClick"),Ti("focusin","onFocus"),Ti("focusout","onBlur"),Ti(p5,"onTransitionRun"),Ti(m5,"onTransitionStart"),Ti(g5,"onTransitionCancel"),Ti(L2,"onTransitionEnd"),D("onMouseEnter",["mouseout","mouseover"]),D("onMouseLeave",["mouseout","mouseover"]),D("onPointerEnter",["pointerout","pointerover"]),D("onPointerLeave",["pointerout","pointerover"]),ss("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ss("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ss("onBeforeInput",["compositionend","keypress","textInput","paste"]),ss("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ss("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ss("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var bl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),$5=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(bl));function Kg(i,s){s=(s&4)!==0;for(var r=0;r<i.length;r++){var c=i[r],p=c.event;c=c.listeners;e:{var _=void 0;if(s)for(var E=c.length-1;0<=E;E--){var A=c[E],H=A.instance,ie=A.currentTarget;if(A=A.listener,H!==_&&p.isPropagationStopped())break e;_=A,p.currentTarget=ie;try{_(p)}catch(pe){ou(pe)}p.currentTarget=null,_=H}else for(E=0;E<c.length;E++){if(A=c[E],H=A.instance,ie=A.currentTarget,A=A.listener,H!==_&&p.isPropagationStopped())break e;_=A,p.currentTarget=ie;try{_(p)}catch(pe){ou(pe)}p.currentTarget=null,_=H}}}}function bt(i,s){var r=s[Ia];r===void 0&&(r=s[Ia]=new Set);var c=i+"__bubble";r.has(c)||(Qg(s,i,2,!1),r.add(c))}function bh(i,s,r){var c=0;s&&(c|=4),Qg(r,i,c,s)}var Su="_reactListening"+Math.random().toString(36).slice(2);function Eh(i){if(!i[Su]){i[Su]=!0,Rc.forEach(function(r){r!=="selectionchange"&&($5.has(r)||bh(r,!1,i),bh(r,!0,i))});var s=i.nodeType===9?i:i.ownerDocument;s===null||s[Su]||(s[Su]=!0,bh("selectionchange",!1,s))}}function Qg(i,s,r,c){switch(Sv(s)){case 2:var p=wS;break;case 8:p=TS;break;default:p=Fh}r=p.bind(null,s,r,i),p=void 0,!Xf||s!=="touchstart"&&s!=="touchmove"&&s!=="wheel"||(p=!0),c?p!==void 0?i.addEventListener(s,r,{capture:!0,passive:p}):i.addEventListener(s,r,!0):p!==void 0?i.addEventListener(s,r,{passive:p}):i.addEventListener(s,r,!1)}function wh(i,s,r,c,p){var _=c;if((s&1)===0&&(s&2)===0&&c!==null)e:for(;;){if(c===null)return;var E=c.tag;if(E===3||E===4){var A=c.stateNode.containerInfo;if(A===p)break;if(E===4)for(E=c.return;E!==null;){var H=E.tag;if((H===3||H===4)&&E.stateNode.containerInfo===p)return;E=E.return}for(;A!==null;){if(E=ns(A),E===null)return;if(H=E.tag,H===5||H===6||H===26||H===27){c=_=E;continue e}A=A.parentNode}}c=c.return}s2(function(){var ie=_,pe=Gf(r),ye=[];e:{var se=D2.get(i);if(se!==void 0){var ae=Oc,st=i;switch(i){case"keypress":if(Uc(r)===0)break e;case"keydown":case"keyup":ae=Xy;break;case"focusin":st="focus",ae=Kf;break;case"focusout":st="blur",ae=Kf;break;case"beforeblur":case"afterblur":ae=Kf;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ae=o2;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ae=Py;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ae=Zy;break;case A2:case R2:case N2:ae=By;break;case L2:ae=Qy;break;case"scroll":case"scrollend":ae=Dy;break;case"wheel":ae=Jy;break;case"copy":case"cut":case"paste":ae=zy;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ae=c2;break;case"toggle":case"beforetoggle":ae=t5}var et=(s&4)!==0,Ht=!et&&(i==="scroll"||i==="scrollend"),K=et?se!==null?se+"Capture":null:se;et=[];for(var X=ie,ne;X!==null;){var ve=X;if(ne=ve.stateNode,ve=ve.tag,ve!==5&&ve!==26&&ve!==27||ne===null||K===null||(ve=Ho(X,K),ve!=null&&et.push(El(X,ve,ne))),Ht)break;X=X.return}0<et.length&&(se=new ae(se,st,null,r,pe),ye.push({event:se,listeners:et}))}}if((s&7)===0){e:{if(se=i==="mouseover"||i==="pointerover",ae=i==="mouseout"||i==="pointerout",se&&r!==kf&&(st=r.relatedTarget||r.fromElement)&&(ns(st)||st[Xn]))break e;if((ae||se)&&(se=pe.window===pe?pe:(se=pe.ownerDocument)?se.defaultView||se.parentWindow:window,ae?(st=r.relatedTarget||r.toElement,ae=ie,st=st?ns(st):null,st!==null&&(Ht=l(st),et=st.tag,st!==Ht||et!==5&&et!==27&&et!==6)&&(st=null)):(ae=null,st=ie),ae!==st)){if(et=o2,ve="onMouseLeave",K="onMouseEnter",X="mouse",(i==="pointerout"||i==="pointerover")&&(et=c2,ve="onPointerLeave",K="onPointerEnter",X="pointer"),Ht=ae==null?se:Fa(ae),ne=st==null?se:Fa(st),se=new et(ve,X+"leave",ae,r,pe),se.target=Ht,se.relatedTarget=ne,ve=null,ns(pe)===ie&&(et=new et(K,X+"enter",st,r,pe),et.target=ne,et.relatedTarget=Ht,ve=et),Ht=ve,ae&&st)t:{for(et=ae,K=st,X=0,ne=et;ne;ne=Kr(ne))X++;for(ne=0,ve=K;ve;ve=Kr(ve))ne++;for(;0<X-ne;)et=Kr(et),X--;for(;0<ne-X;)K=Kr(K),ne--;for(;X--;){if(et===K||K!==null&&et===K.alternate)break t;et=Kr(et),K=Kr(K)}et=null}else et=null;ae!==null&&$g(ye,se,ae,et,!1),st!==null&&Ht!==null&&$g(ye,Ht,st,et,!0)}}e:{if(se=ie?Fa(ie):window,ae=se.nodeName&&se.nodeName.toLowerCase(),ae==="select"||ae==="input"&&se.type==="file")var qe=v2;else if(m2(se))if(x2)qe=f5;else{qe=c5;var yt=l5}else ae=se.nodeName,!ae||ae.toLowerCase()!=="input"||se.type!=="checkbox"&&se.type!=="radio"?ie&&Hf(ie.elementType)&&(qe=v2):qe=u5;if(qe&&(qe=qe(i,ie))){g2(ye,qe,r,pe);break e}yt&&yt(i,se,ie),i==="focusout"&&ie&&se.type==="number"&&ie.memoizedProps.value!=null&&In(se,"number",se.value)}switch(yt=ie?Fa(ie):window,i){case"focusin":(m2(yt)||yt.contentEditable==="true")&&(Tr=yt,nd=ie,Ko=null);break;case"focusout":Ko=nd=Tr=null;break;case"mousedown":id=!0;break;case"contextmenu":case"mouseup":case"dragend":id=!1,T2(ye,r,pe);break;case"selectionchange":if(h5)break;case"keydown":case"keyup":T2(ye,r,pe)}var Ze;if($f)e:{switch(i){case"compositionstart":var nt="onCompositionStart";break e;case"compositionend":nt="onCompositionEnd";break e;case"compositionupdate":nt="onCompositionUpdate";break e}nt=void 0}else wr?h2(i,r)&&(nt="onCompositionEnd"):i==="keydown"&&r.keyCode===229&&(nt="onCompositionStart");nt&&(u2&&r.locale!=="ko"&&(wr||nt!=="onCompositionStart"?nt==="onCompositionEnd"&&wr&&(Ze=a2()):(Qs=pe,qf="value"in Qs?Qs.value:Qs.textContent,wr=!0)),yt=Mu(ie,nt),0<yt.length&&(nt=new l2(nt,i,null,r,pe),ye.push({event:nt,listeners:yt}),Ze?nt.data=Ze:(Ze=p2(r),Ze!==null&&(nt.data=Ze)))),(Ze=i5?s5(i,r):a5(i,r))&&(nt=Mu(ie,"onBeforeInput"),0<nt.length&&(yt=new l2("onBeforeInput","beforeinput",null,r,pe),ye.push({event:yt,listeners:nt}),yt.data=Ze)),Z5(ye,i,ie,r,pe)}Kg(ye,s)})}function El(i,s,r){return{instance:i,listener:s,currentTarget:r}}function Mu(i,s){for(var r=s+"Capture",c=[];i!==null;){var p=i,_=p.stateNode;if(p=p.tag,p!==5&&p!==26&&p!==27||_===null||(p=Ho(i,r),p!=null&&c.unshift(El(i,p,_)),p=Ho(i,s),p!=null&&c.push(El(i,p,_))),i.tag===3)return c;i=i.return}return[]}function Kr(i){if(i===null)return null;do i=i.return;while(i&&i.tag!==5&&i.tag!==27);return i||null}function $g(i,s,r,c,p){for(var _=s._reactName,E=[];r!==null&&r!==c;){var A=r,H=A.alternate,ie=A.stateNode;if(A=A.tag,H!==null&&H===c)break;A!==5&&A!==26&&A!==27||ie===null||(H=ie,p?(ie=Ho(r,_),ie!=null&&E.unshift(El(r,ie,H))):p||(ie=Ho(r,_),ie!=null&&E.push(El(r,ie,H)))),r=r.return}E.length!==0&&i.push({event:s,listeners:E})}var J5=/\r\n?/g,eS=/\u0000|\uFFFD/g;function Jg(i){return(typeof i=="string"?i:""+i).replace(J5,`
49`).replace(eS,"")}function ev(i,s){return s=Jg(s),Jg(i)===s}function bu(){}function jt(i,s,r,c,p,_){switch(r){case"children":typeof c=="string"?s==="body"||s==="textarea"&&c===""||Fi(i,c):(typeof c=="number"||typeof c=="bigint")&&s!=="body"&&Fi(i,""+c);break;case"className":Oe(i,"class",c);break;case"tabIndex":Oe(i,"tabindex",c);break;case"dir":case"role":case"viewBox":case"width":case"height":Oe(i,r,c);break;case"style":n2(i,c,_);break;case"data":if(s!=="object"){Oe(i,"data",c);break}case"src":case"href":if(c===""&&(s!=="a"||r!=="href")){i.removeAttribute(r);break}if(c==null||typeof c=="function"||typeof c=="symbol"||typeof c=="boolean"){i.removeAttribute(r);break}c=Lc(""+c),i.setAttribute(r,c);break;case"action":case"formAction":if(typeof c=="function"){i.setAttribute(r,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof _=="function"&&(r==="formAction"?(s!=="input"&&jt(i,s,"name",p.name,p,null),jt(i,s,"formEncType",p.formEncType,p,null),jt(i,s,"formMethod",p.formMethod,p,null),jt(i,s,"formTarget",p.formTarget,p,null)):(jt(i,s,"encType",p.encType,p,null),jt(i,s,"method",p.method,p,null),jt(i,s,"target",p.target,p,null)));if(c==null||typeof c=="symbol"||typeof c=="boolean"){i.removeAttribute(r);break}c=Lc(""+c),i.setAttribute(r,c);break;case"onClick":c!=null&&(i.onclick=bu);break;case"onScroll":c!=null&&bt("scroll",i);break;case"onScrollEnd":c!=null&&bt("scrollend",i);break;case"dangerouslySetInnerHTML":if(c!=null){if(typeof c!="object"||!("__html"in c))throw Error(a(61));if(r=c.__html,r!=null){if(p.children!=null)throw Error(a(60));i.innerHTML=r}}break;case"multiple":i.multiple=c&&typeof c!="function"&&typeof c!="symbol";break;case"muted":i.muted=c&&typeof c!="function"&&typeof c!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(c==null||typeof c=="function"||typeof c=="boolean"||typeof c=="symbol"){i.removeAttribute("xlink:href");break}r=Lc(""+c),i.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":c!=null&&typeof c!="function"&&typeof c!="symbol"?i.setAttribute(r,""+c):i.removeAttribute(r);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInl
49ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":c&&typeof c!="function"&&typeof c!="symbol"?i.setAttribute(r,""):i.removeAttribute(r);break;case"capture":case"download":c===!0?i.setAttribute(r,""):c!==!1&&c!=null&&typeof c!="function"&&typeof c!="symbol"?i.setAttribute(r,c):i.removeAttribute(r);break;case"cols":case"rows":case"size":case"span":c!=null&&typeof c!="function"&&typeof c!="symbol"&&!isNaN(c)&&1<=c?i.setAttribute(r,c):i.removeAttribute(r);break;case"rowSpan":case"start":c==null||typeof c=="function"||typeof c=="symbol"||isNaN(c)?i.removeAttribute(r):i.setAttribute(r,c);break;case"popover":bt("beforetoggle",i),bt("toggle",i),Ne(i,"popover",c);break;case"xlinkActuate":je(i,"http://www.w3.org/1999/xlink","xlink:actuate",c);break;case"xlinkArcrole":je(i,"http://www.w3.org/1999/xlink","xlink:arcrole",c);break;case"xlinkRole":je(i,"http://www.w3.org/1999/xlink","xlink:role",c);break;case"xlinkShow":je(i,"http://www.w3.org/1999/xlink","xlink:show",c);break;case"xlinkTitle":je(i,"http://www.w3.org/1999/xlink","xlink:title",c);break;case"xlinkType":je(i,"http://www.w3.org/1999/xlink","xlink:type",c);break;case"xmlBase":je(i,"http://www.w3.org/XML/1998/namespace","xml:base",c);break;case"xmlLang":je(i,"http://www.w3.org/XML/1998/namespace","xml:lang",c);break;case"xmlSpace":je(i,"http://www.w3.org/XML/1998/namespace","xml:space",c);break;case"is":Ne(i,"is",c);break;case"innerText":case"textContent":break;default:(!(2<r.length)||r[0]!=="o"&&r[0]!=="O"||r[1]!=="n"&&r[1]!=="N")&&(r=Ny.get(r)||r,Ne(i,r,c))}}function Th(i,s,r,c,p,_){switch(r){case"style":n2(i,c,_);break;case"dangerouslySetInnerHTML":if(c!=null){if(typeof c!="object"||!("__html"in c))throw Error(a(61));if(r=c.__html,r!=null){if(p.children!=null)throw Error(a(60));i.innerHTML=r}}break;case"children":typeof c=="string"?Fi(i,c):(typeof c=="number"||typeof c=="bigint")&&Fi(i,""+c);break;case"onScroll":c!=null&&bt("scroll",i);break;case"onScrollEnd":c!=null&&bt("scrollend",i);break;case"onClick":c!=null&&(i.onclick=bu);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Nc.hasOwnProperty(r))e:{if(r[0]==="o"&&r[1]==="n"&&(p=r.endsWith("Capture"),s=r.slice(2,p?r.length-7:void 0),_=i[Nn]||null,_=_!=null?_[r]:null,typeof _=="function"&&i.removeEventListener(s,_,p),typeof c=="function")){typeof _!="function"&&_!==null&&(r in i?i[r]=null:i.hasAttribute(r)&&i.removeAttribute(r)),i.addEventListener(s,c,p);break e}r in i?i[r]=c:c===!0?i.setAttribute(r,""):Ne(i,r,c)}}}function Pn(i,s,r){switch(s){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":bt("error",i),bt("load",i);var c=!1,p=!1,_;for(_ in r)if(r.hasOwnProperty(_)){var E=r[_];if(E!=null)switch(_){case"src":c=!0;break;case"srcSet":p=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,s));default:jt(i,s,_,E,r,null)}}p&&jt(i,s,"srcSet",r.srcSet,r,null),c&&jt(i,s,"src",r.src,r,null);return;case"input":bt("invalid",i);var A=_=E=p=null,H=null,ie=null;for(c in r)if(r.hasOwnProperty(c)){var pe=r[c];if(pe!=null)switch(c){case"name":p=pe;break;case"type":E=pe;break;case"checked":H=pe;break;case"defaultChecked":ie=pe;break;case"value":_=pe;break;case"defaultValue":A=pe;break;case"children":case"dangerouslySetInnerHTML":if(pe!=null)throw Error(a(137,s));break;default:jt(i,s,c,pe,r,null)}}Gt(i,_,A,H,ie,E,p,!1),zt(i);return;case"select":bt("invalid",i),c=E=_=null;for(p in r)if(r.hasOwnProperty(p)&&(A=r[p],A!=null))switch(p){case"value":_=A;break;case"defaultValue":E=A;break;case"multiple":c=A;default:jt(i,s,p,A,r,null)}s=_,r=E,i.multiple=!!c,s!=null?xn(i,!!c,s,!1):r!=null&&xn(i,!!c,r,!0);return;case"textarea":bt("invalid",i),_=p=c=null;for(E in r)if(r.hasOwnProperty(E)&&(A=r[E],A!=null))switch(E){case"value":c=A;break;case"defaultValue":p=A;break;case"children":_=A;break;case"dangerouslySetInnerHTML":if(A!=null)throw Error(a(91));break;default:jt(i,s,E,A,r,null)}Ln(i,c,p,_),zt(i);return;case"option":for(H in r)if(r.hasOwnProperty(H)&&(c=r[H],c!=null))switch(H){case"selected":i.selected=c&&typeof c!="function"&&typeof c!="symbol";break;default:jt(i,s,H,c,r,null)}return;case"dialog":bt("beforetoggle",i),bt("toggle",i),bt("cancel",i),bt("close",i);break;case"iframe":case"object":bt("load",i);break;case"video":case"audio":for(c=0;c<bl.length;c++)bt(bl[c],i);break;case"image":bt("error",i),bt("load",i);break;case"details":bt("toggle",i);break;case"embed":case"source":case"link":bt("error",i),bt("load",i);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ie in r)if(r.hasOwnProperty(ie)&&(c=r[ie],c!=null))switch(ie){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,s));default:jt(i,s,ie,c,r,null)}return;default:if(Hf(s)){for(pe in r)r.hasOwnProperty(pe)&&(c=r[pe],c!==void 0&&Th(i,s,pe,c,r,void 0));return}}for(A in r)r.hasOwnProperty(A)&&(c=r[A],c!=null&&jt(i,s,A,c,r,null))}function tS(i,s,r,c){switch(s){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var p=null,_=null,E=null,A=null,H=null,ie=null,pe=null;for(ae in r){var ye=r[ae];if(r.hasOwnProperty(ae)&&ye!=null)switch(ae){case"checked":break;case"value":break;case"defaultValue":H=ye;default:c.hasOwnProperty(ae)||jt(i,s,ae,null,c,ye)}}for(var se in c){var ae=c[se];if(ye=r[se],c.hasOwnProperty(se)&&(ae!=null||ye!=null))switch(se){case"type":_=ae;break;case"name":p=ae;break;case"checked":ie=ae;break;case"defaultChecked":pe=ae;break;case"value":E=ae;break;case"defaultValue":A=ae;break;case"children":case"dangerouslySetInnerHTML":if(ae!=null)throw Error(a(137,s));break;default:ae!==ye&&jt(i,s,se,ae,c,ye)}}as(i,E,A,H,ie,pe,_,p);return;case"select":ae=E=A=se=null;for(_ in r)if(H=r[_],r.hasOwnProperty(_)&&H!=null)switch(_){case"value":break;case"multiple":ae=H;default:c.hasOwnProperty(_)||jt(i,s,_,null,c,H)}for(p in c)if(_=c[p],H=r[p],c.hasOwnProperty(p)&&(_!=null||H!=null))switch(p){case"value":se=_;break;case"defaultValue":A=_;break;case"multiple":E=_;default:_!==H&&jt(i,s,p,_,c,H)}s=A,r=E,c=ae,se!=null?xn(i,!!r,se,!1):!!c!=!!r&&(s!=null?xn(i,!!r,s,!0):xn(i,!!r,r?[]:"",!1));return;case"textarea":ae=se=null;for(A in r)if(p=r[A],r.hasOwnProperty(A)&&p!=null&&!c.hasOwnProperty(A))switch(A){case"value":break;case"children":break;default:jt(i,s,A,null,c,p)}for(E in c)if(p=c[E],_=r[E],c.hasOwnProperty(E)&&(p!=null||_!=null))switch(E){case"value":se=p;break;case"defaultValue":ae=p;break;case"children":break;case"dangerouslySetInnerHTML":if(p!=null)throw Error(a(91));break;default:p!==_&&jt(i,s,E,p,c,_)}wn(i,se,ae);return;case"option":for(var st in r)if(se=r[st],r.hasOwnProperty(st)&&se!=null&&!c.hasOwnProperty(st))switch(st){case"selected":i.selected=!1;break;default:jt(i,s,st,null,c,se)}for(H in c)if(se=c[H],ae=r[H],c.hasOwnProperty(H)&&se!==ae&&(se!=null||ae!=null))switch(H){case"selected":i.selected=se&&typeof se!="function"&&typeof se!="symbol";break;default:jt(i,s,H,se,c,ae)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var et in r)se=r[et],r.hasOwnProperty(et)&&se!=null&&!c.hasOwnProperty(et)&&jt(i,s,et,null,c,se);for(ie in c)if(se=c[ie],ae=r[ie],c.hasOwnProperty(ie)&&se!==ae&&(se!=null||ae!=null))switch(ie){case"children":case"dangerouslySetInnerHTML":if(se!=null)throw Error(a(137,s));break;default:jt(i,s,ie,se,c,ae)}return;default:if(Hf(s)){for(var Ht in r)se=r[Ht],r.hasOwnProperty(Ht)&&se!==void 0&&!c.hasOwnProperty(Ht)&&Th(i,s,Ht,void 0,c,se);for(pe in c)se=c[pe],ae=r[pe],!c.hasOwnProperty(pe)||se===ae||se===void 0&&ae===void 0||Th(i,s,pe,se,c,ae);return}}for(var K in r)se=r[K],r.hasOwnProperty(K)&&se!=null&&!c.hasOwnProperty(K)&&jt(i,s,K,null,c,se);for(ye in c)se=c[ye],ae=r[ye],!c.hasOwnProperty(ye)||se===ae||se==null&&ae==null||jt(i,s,ye,se,c,ae)}var Ch=null,Ah=null;function Eu(i){return i.nodeType===9?i:i.ownerDocument}function tv(i){switch(i){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}
vendor: 4,825 bytes, line 49
49function nv(i,s){if(i===0)switch(s){case"svg":return 1;case"math":return 2;default:return 0}return i===1&&s==="foreignObject"?0:i}function Rh(i,s){return i==="textarea"||i==="noscript"||typeof s.children=="string"||typeof s.children=="number"||typeof s.children=="bigint"||typeof s.dangerouslySetInnerHTML=="object"&&s.dangerouslySetInnerHTML!==null&&s.dangerouslySetInnerHTML.__html!=null}var Nh=null;function nS(){var i=window.event;return i&&i.type==="popstate"?i===Nh?!1:(Nh=i,!0):(Nh=null,!1)}var iv=typeof setTimeout=="function"?setTimeout:void 0,iS=typeof clearTimeout=="function"?clearTimeout:void 0,sv=typeof Promise=="function"?Promise:void 0,sS=typeof queueMicrotask=="function"?queueMicrotask:typeof sv<"u"?function(i){return sv.resolve(null).then(i).catch(aS)}:iv;function aS(i){setTimeout(function(){throw i})}function ha(i){return i==="head"}function av(i,s){var r=s,c=0,p=0;do{var _=r.nextSibling;if(i.removeChild(r),_&&_.nodeType===8)if(r=_.data,r==="/$"){if(0<c&&8>c){r=c;var E=i.ownerDocument;if(r&1&&wl(E.documentElement),r&2&&wl(E.body),r&4)for(r=E.head,wl(r),E=r.firstChild;E;){var A=E.nextSibling,H=E.nodeName;E[qs]||H==="SCRIPT"||H==="STYLE"||H==="LINK"&&E.rel.toLowerCase()==="stylesheet"||r.removeChild(E),E=A}}if(p===0){i.removeChild(_),Ul(s);return}p--}else r==="$"||r==="$?"||r==="$!"?p++:c=r.charCodeAt(0)-48;else c=0;r=_}while(r);Ul(s)}function Lh(i){var s=i.firstChild;for(s&&s.nodeType===10&&(s=s.nextSibling);s;){var r=s;switch(s=s.nextSibling,r.nodeName){case"HTML":case"HEAD":case"BODY":Lh(r),Ys(r);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(r.rel.toLowerCase()==="stylesheet")continue}i.removeChild(r)}}function rS(i,s,r,c){for(;i.nodeType===1;){var p=r;if(i.nodeName.toLowerCase()!==s.toLowerCase()){if(!c&&(i.nodeName!=="INPUT"||i.type!=="hidden"))break}else if(c){if(!i[qs])switch(s){case"meta":if(!i.hasAttribute("itemprop"))break;return i;case"link":if(_=i.getAttribute("rel"),_==="stylesheet"&&i.hasAttribute("data-precedence"))break;if(_!==p.rel||i.getAttribute("href")!==(p.href==null||p.href===""?null:p.href)||i.getAttribute("crossorigin")!==(p.crossOrigin==null?null:p.crossOrigin)||i.getAttribute("title")!==(p.title==null?null:p.title))break;return i;case"style":if(i.hasAttribute("data-precedence"))break;return i;case"script":if(_=i.getAttribute("src"),(_!==(p.src==null?null:p.src)||i.getAttribute("type")!==(p.type==null?null:p.type)||i.getAttribute("crossorigin")!==(p.crossOrigin==null?null:p.crossOrigin))&&_&&i.hasAttribute("async")&&!i.hasAttribute("itemprop"))break;return i;default:return i}}else if(s==="input"&&i.type==="hidden"){var _=p.name==null?null:""+p.name;if(p.type==="hidden"&&i.getAttribute("name")===_)return i}else return i;if(i=Ai(i.nextSibling),i===null)break}return null}function oS(i,s,r){if(s==="")return null;for(;i.nodeType!==3;)if((i.nodeType!==1||i.nodeName!=="INPUT"||i.type!=="hidden")&&!r||(i=Ai(i.nextSibling),i===null))return null;return i}function Dh(i){return i.data==="$!"||i.data==="$?"&&i.ownerDocument.readyState==="complete"}function lS(i,s){var r=i.ownerDocument;if(i.data!=="$?"||r.readyState==="complete")s();else{var c=function(){s(),r.removeEventListener("DOMContentLoaded",c)};r.addEventListener("DOMContentLoaded",c),i._reactRetry=c}}function Ai(i){for(;i!=null;i=i.nextSibling){var s=i.nodeType;if(s===1||s===3)break;if(s===8){if(s=i.data,s==="$"||s==="$!"||s==="$?"||s==="F!"||s==="F")break;if(s==="/$")return null}}return i}var Uh=null;function rv(i){i=i.previousSibling;for(var s=0;i;){if(i.nodeType===8){var r=i.data;if(r==="$"||r==="$!"||r==="$?"){if(s===0)return i;s--}else r==="/$"&&s++}i=i.previousSibling}return null}function ov(i,s,r){switch(s=Eu(r),i){case"html":if(i=s.documentElement,!i)throw Error(a(452));return i;case"head":if(i=s.head,!i)throw Error(a(453));return i;case"body":if(i=s.body,!i)throw Error(a(454));return i;default:throw Error(a(451))}}function wl(i){for(var s=i.attributes;s.length;)i.removeAttributeNode(s[0]);Ys(i)}var Si=new Map,lv=new Set;function wu(i){return typeof i.getRootNode=="function"?i.getRootNode():i.nodeType===9?i:i.ownerDocument}var ys=Z.d;Z.d={f:cS,r:uS,D:fS,C:dS,L:hS,m:pS,X:gS,S:mS,M:vS};function cS(){var i=ys.f(),s=gu();return i||s}function uS(i){var s=is(i);s!==null&&s.tag===5&&s.type==="form"?A1(s):ys.r(i)}var Qr=typeof document>"u"?null:document;function cv(i,s,r){var c=Qr;if(c&&typeof s=="string"&&s){var p=qt(s);p='link[rel="'+i+'"][href="'+p+'"]',typeof r=="string"&&(p+='[crossorigin="'+r+'"]'),lv.has(p)||(lv.add(p),i={rel:i,crossOrigin:r,href:s},c.querySelector(p)===null&&(s=c.createElement("link"),Pn(s,"link",i),un(s),c.head.appendChild(s)))}}function fS(i){ys.D(i),cv("dns-prefetch",i,null)}function dS(i,s){ys.C(i,s),cv("preconnect",i,s)}function hS(i,s,r){ys.L(i,s,r);var c=Qr;if(c&&i&&s){var p='link[rel="preload"][as="'+qt(s)+'"]';
vendor: 4,555 bytes, line 49
49s==="image"&&r&&r.imageSrcSet?(p+='[imagesrcset="'+qt(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(p+='[imagesizes="'+qt(r.imageSizes)+'"]')):p+='[href="'+qt(i)+'"]';var _=p;switch(s){case"style":_=$r(i);break;case"script":_=Jr(i)}Si.has(_)||(i=g({rel:"preload",href:s==="image"&&r&&r.imageSrcSet?void 0:i,as:s},r),Si.set(_,i),c.querySelector(p)!==null||s==="style"&&c.querySelector(Tl(_))||s==="script"&&c.querySelector(Cl(_))||(s=c.createElement("link"),Pn(s,"link",i),un(s),c.head.appendChild(s)))}}function pS(i,s){ys.m(i,s);var r=Qr;if(r&&i){var c=s&&typeof s.as=="string"?s.as:"script",p='link[rel="modulepreload"][as="'+qt(c)+'"][href="'+qt(i)+'"]',_=p;switch(c){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=Jr(i)}if(!Si.has(_)&&(i=g({rel:"modulepreload",href:i},s),Si.set(_,i),r.querySelector(p)===null)){switch(c){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(Cl(_)))return}c=r.createElement("link"),Pn(c,"link",i),un(c),r.head.appendChild(c)}}}function mS(i,s,r){ys.S(i,s,r);var c=Qr;if(c&&i){var p=Zs(c).hoistableStyles,_=$r(i);s=s||"default";var E=p.get(_);if(!E){var A={loading:0,preload:null};if(E=c.querySelector(Tl(_)))A.loading=5;else{i=g({rel:"stylesheet",href:i,"data-precedence":s},r),(r=Si.get(_))&&Ph(i,r);var H=E=c.createElement("link");un(H),Pn(H,"link",i),H._p=new Promise(function(ie,pe){H.onload=ie,H.onerror=pe}),H.addEventListener("load",function(){A.loading|=1}),H.addEventListener("error",function(){A.loading|=2}),A.loading|=4,Tu(E,s,c)}E={type:"stylesheet",instance:E,count:1,state:A},p.set(_,E)}}}function gS(i,s){ys.X(i,s);var r=Qr;if(r&&i){var c=Zs(r).hoistableScripts,p=Jr(i),_=c.get(p);_||(_=r.querySelector(Cl(p)),_||(i=g({src:i,async:!0},s),(s=Si.get(p))&&Oh(i,s),_=r.createElement("script"),un(_),Pn(_,"link",i),r.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},c.set(p,_))}}function vS(i,s){ys.M(i,s);var r=Qr;if(r&&i){var c=Zs(r).hoistableScripts,p=Jr(i),_=c.get(p);_||(_=r.querySelector(Cl(p)),_||(i=g({src:i,async:!0,type:"module"},s),(s=Si.get(p))&&Oh(i,s),_=r.createElement("script"),un(_),Pn(_,"link",i),r.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},c.set(p,_))}}function uv(i,s,r,c){var p=(p=Ee.current)?wu(p):null;if(!p)throw Error(a(446));switch(i){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(s=$r(r.href),r=Zs(p).hoistableStyles,c=r.get(s),c||(c={type:"style",instance:null,count:0,state:null},r.set(s,c)),c):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){i=$r(r.href);var _=Zs(p).hoistableStyles,E=_.get(i);if(E||(p=p.ownerDocument||p,E={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(i,E),(_=p.querySelector(Tl(i)))&&!_._p&&(E.instance=_,E.state.loading=5),Si.has(i)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},Si.set(i,r),_||xS(p,i,r,E.state))),s&&c===null)throw Error(a(528,""));return E}if(s&&c!==null)throw Error(a(529,""));return null;case"script":return s=r.async,r=r.src,typeof r=="string"&&s&&typeof s!="function"&&typeof s!="symbol"?(s=Jr(r),r=Zs(p).hoistableScripts,c=r.get(s),c||(c={type:"script",instance:null,count:0,state:null},r.set(s,c)),c):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,i))}}function $r(i){return'href="'+qt(i)+'"'}function Tl(i){return'link[rel="stylesheet"]['+i+"]"}function fv(i){return g({},i,{"data-precedence":i.precedence,precedence:null})}function xS(i,s,r,c){i.querySelector('link[rel="preload"][as="style"]['+s+"]")?c.loading=1:(s=i.createElement("link"),c.preload=s,s.addEventListener("load",function(){return c.loading|=1}),s.addEventListener("error",function(){return c.loading|=2}),Pn(s,"link",r),un(s),i.head.appendChild(s))}function Jr(i){return'[src="'+qt(i)+'"]'}function Cl(i){return"script[async]"+i}function dv(i,s,r){if(s.count++,s.instance===null)switch(s.type){case"style":var c=i.querySelector('style[data-href~="'+qt(r.href)+'"]');if(c)return s.instance=c,un(c),c;var p=g({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return c=(i.ownerDocument||i).createElement("style"),un(c),Pn(c,"style",p),Tu(c,r.precedence,i),s.instance=c;case"stylesheet":p=$r(r.href);var _=i.querySelector(Tl(p));
vendor: 12,739 bytes, line 49
49if(_)return s.state.loading|=4,s.instance=_,un(_),_;c=fv(r),(p=Si.get(p))&&Ph(c,p),_=(i.ownerDocument||i).createElement("link"),un(_);var E=_;return E._p=new Promise(function(A,H){E.onload=A,E.onerror=H}),Pn(_,"link",c),s.state.loading|=4,Tu(_,r.precedence,i),s.instance=_;case"script":return _=Jr(r.src),(p=i.querySelector(Cl(_)))?(s.instance=p,un(p),p):(c=r,(p=Si.get(_))&&(c=g({},r),Oh(c,p)),i=i.ownerDocument||i,p=i.createElement("script"),un(p),Pn(p,"link",c),i.head.appendChild(p),s.instance=p);case"void":return null;default:throw Error(a(443,s.type))}else s.type==="stylesheet"&&(s.state.loading&4)===0&&(c=s.instance,s.state.loading|=4,Tu(c,r.precedence,i));return s.instance}function Tu(i,s,r){for(var c=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),p=c.length?c[c.length-1]:null,_=p,E=0;E<c.length;E++){var A=c[E];if(A.dataset.precedence===s)_=A;else if(_!==p)break}_?_.parentNode.insertBefore(i,_.nextSibling):(s=r.nodeType===9?r.head:r,s.insertBefore(i,s.firstChild))}function Ph(i,s){i.crossOrigin==null&&(i.crossOrigin=s.crossOrigin),i.referrerPolicy==null&&(i.referrerPolicy=s.referrerPolicy),i.title==null&&(i.title=s.title)}function Oh(i,s){i.crossOrigin==null&&(i.crossOrigin=s.crossOrigin),i.referrerPolicy==null&&(i.referrerPolicy=s.referrerPolicy),i.integrity==null&&(i.integrity=s.integrity)}var Cu=null;function hv(i,s,r){if(Cu===null){var c=new Map,p=Cu=new Map;p.set(r,c)}else p=Cu,c=p.get(r),c||(c=new Map,p.set(r,c));if(c.has(i))return c;for(c.set(i,null),r=r.getElementsByTagName(i),p=0;p<r.length;p++){var _=r[p];if(!(_[qs]||_[vn]||i==="link"&&_.getAttribute("rel")==="stylesheet")&&_.namespaceURI!=="http://www.w3.org/2000/svg"){var E=_.getAttribute(s)||"";E=i+E;var A=c.get(E);A?A.push(_):c.set(E,[_])}}return c}function pv(i,s,r){i=i.ownerDocument||i,i.head.insertBefore(r,s==="title"?i.querySelector("head > title"):null)}function _S(i,s,r){if(r===1||s.itemProp!=null)return!1;switch(i){case"meta":case"title":return!0;case"style":if(typeof s.precedence!="string"||typeof s.href!="string"||s.href==="")break;return!0;case"link":if(typeof s.rel!="string"||typeof s.href!="string"||s.href===""||s.onLoad||s.onError)break;switch(s.rel){case"stylesheet":return i=s.disabled,typeof s.precedence=="string"&&i==null;default:return!0}case"script":if(s.async&&typeof s.async!="function"&&typeof s.async!="symbol"&&!s.onLoad&&!s.onError&&s.src&&typeof s.src=="string")return!0}return!1}function mv(i){return!(i.type==="stylesheet"&&(i.state.loading&3)===0)}var Al=null;function yS(){}function SS(i,s,r){if(Al===null)throw Error(a(475));var c=Al;if(s.type==="stylesheet"&&(typeof r.media!="string"||matchMedia(r.media).matches!==!1)&&(s.state.loading&4)===0){if(s.instance===null){var p=$r(r.href),_=i.querySelector(Tl(p));if(_){i=_._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(c.count++,c=Au.bind(c),i.then(c,c)),s.state.loading|=4,s.instance=_,un(_);return}_=i.ownerDocument||i,r=fv(r),(p=Si.get(p))&&Ph(r,p),_=_.createElement("link"),un(_);var E=_;E._p=new Promise(function(A,H){E.onload=A,E.onerror=H}),Pn(_,"link",r),s.instance=_}c.stylesheets===null&&(c.stylesheets=new Map),c.stylesheets.set(s,i),(i=s.state.preload)&&(s.state.loading&3)===0&&(c.count++,s=Au.bind(c),i.addEventListener("load",s),i.addEventListener("error",s))}}function MS(){if(Al===null)throw Error(a(475));var i=Al;return i.stylesheets&&i.count===0&&Ih(i,i.stylesheets),0<i.count?function(s){var r=setTimeout(function(){if(i.stylesheets&&Ih(i,i.stylesheets),i.unsuspend){var c=i.unsuspend;i.unsuspend=null,c()}},6e4);return i.unsuspend=s,function(){i.unsuspend=null,clearTimeout(r)}}:null}function Au(){if(this.count--,this.count===0){if(this.stylesheets)Ih(this,this.stylesheets);else if(this.unsuspend){var i=this.unsuspend;this.unsuspend=null,i()}}}var Ru=null;function Ih(i,s){i.stylesheets=null,i.unsuspend!==null&&(i.count++,Ru=new Map,s.forEach(bS,i),Ru=null,Au.call(i))}function bS(i,s){if(!(s.state.loading&4)){var r=Ru.get(i);if(r)var c=r.get(null);else{r=new Map,Ru.set(i,r);for(var p=i.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_<p.length;_++){var E=p[_];(E.nodeName==="LINK"||E.getAttribute("media")!=="not all")&&(r.set(E.dataset.precedence,E),c=E)}c&&r.set(null,c)}p=s.instance,E=p.getAttribute("data-precedence"),_=r.get(E)||c,_===c&&r.set(null,p),r.set(E,p),this.count++,c=Au.bind(this),p.addEventListener("load",c),p.addEventListener("error",c),_?_.parentNode.insertBefore(p,_.nextSibling):(i=i.nodeType===9?i.head:i,i.insertBefore(p,i.firstChild)),s.state.loading|=4}}var Rl={$$typeof:T,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function ES(i,s,r,c,p,_,E,A){this.tag=1,this.containerInfo=i,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=we(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=we(0),this.hiddenUpdates=we(null),this.identifierPrefix=c,this.onUncaughtError=p,this.onCaughtError=_,this.onRecoverableError=E,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=A,this.incompleteTransitions=new Map}function gv(i,s,r,c,p,_,E,A,H,ie,pe,ye){return i=new ES(i,s,r,E,A,H,ie,ye),s=1,_===!0&&(s|=24),_=si(3,null,null,s),i.current=_,_.stateNode=i,s=vd(),s.refCount++,i.pooledCache=s,s.refCount++,_.memoizedState={element:c,isDehydrated:r,cache:s},Sd(_),i}function vv(i){return i?(i=Nr,i):Nr}function xv(i,s,r,c,p,_){p=vv(p),c.context===null?c.context=p:c.pendingContext=p,c=ea(s),c.payload={element:r},_=_===void 0?null:_,_!==null&&(c.callback=_),r=ta(i,c,s),r!==null&&(ci(r,i,s),al(r,i,s))}function _v(i,s){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var r=i.retryLane;i.retryLane=r!==0&&r<s?r:s}}function Bh(i,s){_v(i,s),(i=i.alternate)&&_v(i,s)}function yv(i){if(i.tag===13){var s=Rr(i,67108864);s!==null&&ci(s,i,67108864),Bh(i,67108864)}}var Nu=!0;function wS(i,s,r,c){var p=j.T;j.T=null;var _=Z.p;try{Z.p=2,Fh(i,s,r,c)}finally{Z.p=_,j.T=p}}function TS(i,s,r,c){var p=j.T;j.T=null;var _=Z.p;try{Z.p=8,Fh(i,s,r,c)}finally{Z.p=_,j.T=p}}function Fh(i,s,r,c){if(Nu){var p=zh(c);if(p===null)wh(i,s,c,Lu,r),Mv(i,c);else if(AS(p,i,s,r,c))c.stopPropagation();else if(Mv(i,c),s&4&&-1<CS.indexOf(i)){for(;p!==null;){var _=is(p);if(_!==null)switch(_.tag){case 3:if(_=_.stateNode,_.current.memoizedState.isDehydrated){var E=Be(_.pendingLanes);if(E!==0){var A=_;for(A.pendingLanes|=2,A.entangledLanes|=2;E;){var H=1<<31-Ae(E);A.entanglements[1]|=H,E&=~H}ki(_),(Bt&6)===0&&(pu=rt()+500,Ml(0))}}break;case 13:A=Rr(_,2),A!==null&&ci(A,_,2),gu(),Bh(_,2)}if(_=zh(c),_===null&&wh(i,s,c,Lu,r),_===p)break;p=_}p!==null&&c.stopPropagation()}else wh(i,s,c,null,r)}}function zh(i){return i=Gf(i),Vh(i)}var Lu=null;function Vh(i){if(Lu=null,i=ns(i),i!==null){var s=l(i);if(s===null)i=null;else{var r=s.tag;if(r===13){if(i=u(s),i!==null)return i;i=null}else if(r===3){if(s.stateNode.current.memoizedState.isDehydrated)return s.tag===3?s.stateNode.containerInfo:null;i=null}else s!==i&&(i=null)}}return Lu=i,null}function Sv(i){switch(i){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(He()){case vt:return 2;case Ke:return 8;case ot:case $t:return 32;case B:return 268435456;default:return 32}default:return 32}}var jh=!1,pa=null,ma=null,ga=null,Nl=new Map,Ll=new Map,va=[],CS="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Mv(i,s){switch(i){case"focusin":case"focusout":pa=null;break;case"dragenter":case"dragleave":ma=null;break;case"mouseover":case"mouseout":ga=null;break;case"pointerover":case"pointerout":Nl.delete(s.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ll.delete(s.pointerId)}}function Dl(i,s,r,c,p,_){return i===null||i.nativeEvent!==_?(i={blockedOn:s,domEventName:r,eventSystemFlags:c,nativeEvent:_,targetContainers:[p]},s!==null&&(s=is(s),s!==null&&yv(s)),i):(i.eventSystemFlags|=c,s=i.targetContainers,p!==null&&s.indexOf(p)===-1&&s.push(p),i)}function AS(i,s,r,c,p){switch(s){case"focusin":return pa=Dl(pa,i,s,r,c,p),!0;case"dragenter":return ma=Dl(ma,i,s,r,c,p),!0;case"mouseover":return ga=Dl(ga,i,s,r,c,p),!0;case"pointerover":var _=p.pointerId;return Nl.set(_,Dl(Nl.get(_)||null,i,s,r,c,p)),!0;case"gotpointercapture":return _=p.pointerId,Ll.set(_,Dl(Ll.get(_)||null,i,s,r,c,p)),!0}return!1}function bv(i){var s=ns(i.target);if(s!==null){var r=l(s);if(r!==null){if(s=r.tag,s===13){if(s=u(r),s!==null){i.blockedOn=s,ni(i.priority,function(){if(r.tag===13){var c=li();c=lt(c);var p=Rr(r,c);p!==null&&ci(p,r,c),Bh(r,c)}});return}}else if(s===3&&r.stateNode.current.memoizedState.isDehydrated){i.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}i.blockedOn=null}function Du(i){if(i.blockedOn!==null)return!1;for(var s=i.targetContainers;0<s.length;){var r=zh(i.nativeEvent);if(r===null){r=i.nativeEvent;var c=new r.constructor(r.type,r);kf=c,r.target.dispatchEvent(c),kf=null}else return s=is(r),s!==null&&yv(s),i.blockedOn=r,!1;s.shift()}return!0}function Ev(i,s,r){Du(i)&&r.delete(s)}function RS(){jh=!1,pa!==null&&Du(pa)&&(pa=null),ma!==null&&Du(ma)&&(ma=null),ga!==null&&Du(ga)&&(ga=null),Nl.forEach(Ev),Ll.forEach(Ev)}function Uu(i,s){i.blockedOn===s&&(i.blockedOn=null,jh||(jh=!0,n.unstable_scheduleCallback(n.unstable_NormalPriority,RS)))}var Pu=null;function wv(i){Pu!==i&&(Pu=i,n.unstable_scheduleCallback(n.unstable_NormalPriority,function(){Pu===i&&(Pu=null);for(var s=0;s<i.length;s+=3){var r=i[s],c=i[s+1],p=i[s+2];if(typeof c!="function"){if(Vh(c||r)===null)continue;break}var _=is(r);_!==null&&(i.splice(s,3),s-=3,Vd(_,{pending:!0,data:p,method:r.method,action:c},c,p))}}))}function Ul(i){function s(H){return Uu(H,i)}pa!==null&&Uu(pa,i),ma!==null&&Uu(ma,i),ga!==null&&Uu(ga,i),Nl.forEach(s),Ll.forEach(s);for(var r=0;r<va.length;r++){var c=va[r];c.blockedOn===i&&(c.blockedOn=null)}for(;0<va.length&&(r=va[0],r.blockedOn===null);)bv(r),r.blockedOn===null&&va.shift();if(r=(i.ownerDocument||i).$$reactFormReplay,r!=null)for(c=0;c<r.length;c+=3){var p=r[c],_=r[c+1],E=p[Nn]||null;if(typeof _=="function")E||wv(r);else if(E){var A=null;if(_&&_.hasAttribute("formAction")){if(p=_,E=_[Nn]||null)A=E.formAction;else if(Vh(p)!==null)continue}else A=E.action;typeof A=="function"?r[c+1]=A:(r.splice(c,3),c-=3),wv(r)}}}function Hh(i){this._internalRoot=i}Ou.prototype.render=Hh.prototype.render=function(i){var s=this._internalRoot;if(s===null)throw Error(a(409));var r=s.current,c=li();xv(r,c,i,s,null,null)},Ou.prototype.unmount=Hh.prototype.unmount=function(){var i=this._internalRoot;if(i!==null){this._internalRoot=null;var s=i.containerInfo;xv(i.current,2,null,i,null,null),gu(),s[Xn]=null}};function Ou(i){this._internalRoot=i}Ou.prototype.unstable_scheduleHydration=function(i){if(i){var s=Rt();i={blockedOn:null,target:i,priority:s};for(var r=0;r<va.length&&s!==0&&s<va[r].priority;r++);va.splice(r,0,i),r===0&&bv(i)}};var Tv=e.version;if(Tv!=="19.1.1")throw Error(a(527,Tv,"19.1.1"));Z.findDOMNode=function(i){var s=i._reactInternals;if(s===void 0)throw typeof i.render=="function"?Error(a(188)):(i=Object.keys(i).join(","),Error(a(268,i)));return i=d(s),i=i!==null?h(i):null,i=i===null?null:i.stateNode,i};var NS={bundleType:0,version:"19.1.1",rendererPackageName:"react-dom",currentDispatcherRef:j,reconcilerVersion:"19.1.1"};
49if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Iu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Iu.isDisabled&&Iu.supportsFiber)try{de=Iu.inject(NS),fe=Iu}catch{}}return Ol.createRoot=function(i,s){if(!o(i))throw Error(a(299));var r=!1,c="",p=H1,_=k1,E=G1,A=null;return s!=null&&(s.unstable_strictMode===!0&&(r=!0),s.identifierPrefix!==void 0&&(c=s.identifierPrefix),s.onUncaughtError!==void 0&&(p=s.onUncaughtError),s.onCaughtError!==void 0&&(_=s.onCaughtError),s.onRecoverableError!==void 0&&(E=s.onRecoverableError),s.unstable_transitionCallbacks!==void 0&&(A=s.unstable_transitionCallbacks)),s=gv(i,1,!1,null,null,r,c,p,_,E,A,null),i[Xn]=s.current,Eh(i),new Hh(s)},Ol.hydrateRoot=function(i,s,r){if(!o(i))throw Error(a(299));var c=!1,p="",_=H1,E=k1,A=G1,H=null,ie=null;return r!=null&&(r.unstable_strictMode===!0&&(c=!0),r.identifierPrefix!==void 0&&(p=r.identifierPrefix),r.onUncaughtError!==void 0&&(_=r.onUncaughtError),r.onCaughtError!==void 0&&(E=r.onCaughtError),r.onRecoverableError!==void 0&&(A=r.onRecoverableError),r.unstable_transitionCallbacks!==void 0&&(H=r.unstable_transitionCallbacks),r.formState!==void 0&&(ie=r.formState)),s=gv(i,1,!0,s,r??null,c,p,_,E,A,H,ie),s.context=vv(null),r=s.current,c=li(),c=lt(c),p=ea(c),p.callback=null,ta(r,p,c),r=c,s.current.lanes=r,Ve(s,r),ki(s),i[Xn]=s.current,Eh(i),new Ou(s)},Ol.version="19.1.1",Ol}var Iv;function jS(){if(Iv)return Gh.exports;Iv=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Gh.exports=VS(),Gh.exports}var HS=jS(),G=Bs();/**
50 * react-router v7.8.2
51 *
52 * Copyright (c) Remix Software Inc.
53 *
54 * This source code is licensed under the MIT license found in the
55 * LICENSE.md file in the root directory of this source tree.
56 *
57 * @license MIT
58 */var Bv="popstate";function kS(n={}){function e(a,o){let{pathname:l,search:u,hash:f}=a.location;return G0("",{pathname:l,search:u,hash:f},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function t(a,o){return typeof o=="string"?o:ic(o)}return WS(e,t,null,n)}function tn(n,e){if(n===!1||n===null||typeof n>"u")throw new Error(e)}function $i(n,e){if(!n){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function GS(){return Math.random().toString(36).substring(2,10)}function Fv(n,e){return{usr:n.state,key:n.key,idx:e}}function G0(n,e,t=null,a){return{pathname:typeof n=="string"?n:n.pathname,search:"",hash:"",...typeof e=="string"?Po(e):e,state:t,key:e&&e.key||a||GS()}}function ic({pathname:n="/",search:e="",hash:t=""}){return e&&e!=="?"&&(n+=e.charAt(0)==="?"?e:"?"+e),t&&t!=="#"&&(n+=t.charAt(0)==="#"?t:"#"+t),n}function Po(n){let e={};if(n){let t=n.indexOf("#");t>=0&&(e.hash=n.substring(t),n=n.substring(0,t));let a=n.indexOf("?");a>=0&&(e.search=n.substring(a),n=n.substring(0,a)),n&&(e.pathname=n)}return e}function WS(n,e,t,a={}){let{window:o=document.defaultView,v5Compat:l=!1}=a,u=o.history,f="POP",d=null,h=g();h==null&&(h=0,u.replaceState({...u.state,idx:h},""));function g(){return(u.state||{idx:null}).idx}function v(){f="POP";let M=g(),S=M==null?null:M-h;h=M,d&&d({action:f,location:w.location,delta:S})}function x(M,S){f="PUSH";let N=G0(w.location,M,S);h=g()+1;let T=Fv(N,h),R=w.createHref(N);try{u.pushState(T,"",R)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;o.location.assign(R)}l&&d&&d({action:f,location:w.location,delta:1})}function y(M,S){f="REPLACE";let N=G0(w.location,M,S);h=g();let T=Fv(N,h),R=w.createHref(N);u.replaceState(T,"",R),l&&d&&d({action:f,location:w.location,delta:0})}function b(M){return XS(M)}let w={get action(){return f},get location(){return n(o,u)},listen(M){if(d)throw new Error("A history only accepts one active listener");return o.addEventListener(Bv,v),d=M,()=>{o.removeEventListener(Bv,v),d=null}},createHref(M){return e(o,M)},createURL:b,encodeLocation(M){let S=b(M);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:x,replace:y,go(M){return u.go(M)}};return w}function XS(n,e=!1){let t="http://localhost";
58typeof window<"u"&&(t=window.location.origin!=="null"?window.location.origin:window.location.href),tn(t,"No window.location.(origin|href) available to create URL");let a=typeof n=="string"?n:ic(n);return a=a.replace(/ $/,"%20"),!e&&a.startsWith("//")&&(a=t+a),new URL(a,t)}function s_(n,e,t="/"){return qS(n,e,t,!1)}function qS(n,e,t,a){let o=typeof e=="string"?Po(e):e,l=Ds(o.pathname||"/",t);if(l==null)return null;let u=a_(n);YS(u);let f=null;for(let d=0;f==null&&d<u.length;++d){let h=aM(l);f=iM(u[d],h,a)}return f}function a_(n,e=[],t=[],a="",o=!1){let l=(u,f,d=o,h)=>{let g={relativePath:h===void 0?u.path||"":h,caseSensitive:u.caseSensitive===!0,childrenIndex:f,route:u};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(a)&&d)return;tn(g.relativePath.startsWith(a),`Absolute route path "${g.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),g.relativePath=g.relativePath.slice(a.length)}let v=Ns([a,g.relativePath]),x=t.concat(g);u.children&&u.children.length>0&&(tn(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${v}".`),a_(u.children,e,x,v,d)),!(u.path==null&&!u.index)&&e.push({path:v,score:tM(v,u.index),routesMeta:x})};return n.forEach((u,f)=>{if(u.path===""||!u.path?.includes("?"))l(u,f);else for(let d of r_(u.path))l(u,f,!0,d)}),e}function r_(n){let e=n.split("/");if(e.length===0)return[];let[t,...a]=e,o=t.endsWith("?"),l=t.replace(/\?$/,"");if(a.length===0)return o?[l,""]:[l];let u=r_(a.join("/")),f=[];return f.push(...u.map(d=>d===""?l:[l,d].join("/"))),o&&f.push(...u),f.map(d=>n.startsWith("/")&&d===""?"/":d)}function YS(n){n.sort((e,t)=>e.score!==t.score?t.score-e.score:nM(e.routesMeta.map(a=>a.childrenIndex),t.routesMeta.map(a=>a.childrenIndex)))}var ZS=/^:[\w-]+$/,KS=3,QS=2,$S=1,JS=10,eM=-2,zv=n=>n==="*";function tM(n,e){let t=n.split("/"),a=t.length;return t.some(zv)&&(a+=eM),e&&(a+=QS),t.filter(o=>!zv(o)).reduce((o,l)=>o+(ZS.test(l)?KS:l===""?$S:JS),a)}function nM(n,e){return n.length===e.length&&n.slice(0,-1).every((a,o)=>a===e[o])?n[n.length-1]-e[e.length-1]:0}function iM(n,e,t=!1){let{routesMeta:a}=n,o={},l="/",u=[];for(let f=0;f<a.length;++f){let d=a[f],h=f===a.length-1,g=l==="/"?e:e.slice(l.length)||"/",v=Mf({path:d.relativePath,caseSensitive:d.caseSensitive,end:h},g),x=d.route;if(!v&&h&&t&&!a[a.length-1].route.index&&(v=Mf({path:d.relativePath,caseSensitive:d.caseSensitive,end:!1},g)),!v)return null;
58Object.assign(o,v.params),u.push({params:o,pathname:Ns([l,v.pathname]),pathnameBase:cM(Ns([l,v.pathnameBase])),route:x}),v.pathnameBase!=="/"&&(l=Ns([l,v.pathnameBase]))}return u}function Mf(n,e){typeof n=="string"&&(n={path:n,caseSensitive:!1,end:!0});let[t,a]=sM(n.path,n.caseSensitive,n.end),o=e.match(t);if(!o)return null;let l=o[0],u=l.replace(/(.)\/+$/,"$1"),f=o.slice(1);return{params:a.reduce((h,{paramName:g,isOptional:v},x)=>{if(g==="*"){let b=f[x]||"";u=l.slice(0,l.length-b.length).replace(/(.)\/+$/,"$1")}const y=f[x];return v&&!y?h[g]=void 0:h[g]=(y||"").replace(/%2F/g,"/"),h},{}),pathname:l,pathnameBase:u,pattern:n}}function sM(n,e=!1,t=!0){$i(n==="*"||!n.endsWith("*")||n.endsWith("/*"),`Route path "${n}" will be treated as if it were "${n.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${n.replace(/\*$/,"/*")}".`);let a=[],o="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,f,d)=>(a.push({paramName:f,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return n.endsWith("*")?(a.push({paramName:"*"}),o+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?o+="\\/*$":n!==""&&n!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,e?void 0:"i"),a]}function aM(n){try{return n.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return $i(!1,`The URL path "${n}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),n}}function Ds(n,e){if(e==="/")return n;if(!n.toLowerCase().startsWith(e.toLowerCase()))return null;let t=e.endsWith("/")?e.length-1:e.length,a=n.charAt(t);return a&&a!=="/"?null:n.slice(t)||"/"}function rM(n,e="/"){let{pathname:t,search:a="",hash:o=""}=typeof n=="string"?Po(n):n;return{pathname:t?t.startsWith("/")?t:oM(t,e):e,search:uM(a),hash:fM(o)}}function oM(n,e){let t=e.replace(/\/+$/,"").split("/");return n.split("/").forEach(o=>{o===".."?t.length>1&&t.pop():o!=="."&&t.push(o)}),t.length>1?t.join("/"):"/"}function Zh(n,e,t,a){return`Cannot include a '${n}' character in a manually specified \`to.${e}\` field [${JSON.stringify(a)}].  Please separate it out to the \`to.${t}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function lM(n){return n.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function o_(n){let e=lM(n);return e.map((t,a)=>a===e.length-1?t.pathname:t.pathnameBase)}function l_(n,e,t,a=!1){let o;typeof n=="string"?o=Po(n):(o={...n},tn(!o.pathname||!o.pathname.includes("?"),Zh("?","pathname","search",o)),tn(!o.pathname||!o.pathname.includes("#"),Zh("#","pathname","hash",o)),tn(!o.search||!o.search.includes("#"),Zh("#","search","hash",o)));let l=n===""||o.pathname==="",u=l?"/":o.pathname,f;if(u==null)f=t;else{let v=e.length-1;if(!a&&u.startsWith("..")){let x=u.split("/");for(;x[0]==="..";)x.shift(),v-=1;o.pathname=x.join("/")}f=v>=0?e[v]:"/"}let d=rM(o,f),h=u&&u!=="/"&&u.endsWith("/"),g=(l||u===".")&&t.endsWith("/");return!d.pathname.endsWith("/")&&(h||g)&&(d.pathname+="/"),d}var Ns=n=>n.join("/").replace(/\/\/+/g,"/"),cM=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),uM=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,fM=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n;function dM(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}var c_=["POST","PUT","PATCH","DELETE"];new Set(c_);var hM=["GET",...c_];new Set(hM);var Oo=G.createContext(null);Oo.displayName="DataRouter";var Uf=G.createContext(null);Uf.displayName="DataRouterState";G.createContext(!1);var u_=G.createContext({isTransitioning:!1});u_.displayName="ViewTransition";var pM=G.createContext(new Map);pM.displayName="Fetchers";var mM=G.createContext(null);mM.displayName="Await";var Ji=G.createContext(null);Ji.displayName="Navigation";var mc=G.createContext(null);mc.displayName="Location";var Fs=G.createContext({outlet:null,matches:[],isDataRoute:!1});Fs.displayName="Route";var rm=G.createContext(null);rm.displayName="RouteError";function gM(n,{relative:e}={}){tn(gc(),"useHref() may be used only in the context of a <Router> component.");let{basename:t,navigator:a}=G.useContext(Ji),{hash:o,pathname:l,search:u}=vc(n,{relative:e}),f=l;return t!=="/"&&(f=l==="/"?t:Ns([t,l])),a.createHref({pathname:f,search:u,hash:o})}function gc(){return G.useContext(mc)!=null}function es(){return tn(gc(),"useLocation() may be used only in the context of a <Router> component."),G.useContext(mc).location}var f_="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function d_(n){G.useContext(Ji).static||G.useLayoutEffect(n)}function ts(){let{isDataRoute:n}=G.useContext(Fs);return n?RM():vM()}function vM(){tn(gc(),"useNavigate() may be used only in the context of a <Router> component.");let n=G.useContext(Oo),{basename:e,navigator:t}=G.useContext(Ji),{matches:a}=G.useContext(Fs),{pathname:o}=es(),l=JSON.stringify(o_(a)),u=G.useRef(!1);return d_(()=>{u.current=!0}),G.useCallback((d,h={})=>
58{if($i(u.current,f_),!u.current)return;if(typeof d=="number"){t.go(d);return}let g=l_(d,JSON.parse(l),o,h.relative==="path");n==null&&e!=="/"&&(g.pathname=g.pathname==="/"?e:Ns([e,g.pathname])),(h.replace?t.replace:t.push)(g,h.state,h)},[e,t,l,o,n])}G.createContext(null);function vc(n,{relative:e}={}){let{matches:t}=G.useContext(Fs),{pathname:a}=es(),o=JSON.stringify(o_(t));return G.useMemo(()=>l_(n,JSON.parse(o),a,e==="path"),[n,o,a,e])}function xM(n,e){return h_(n,e)}function h_(n,e,t,a,o){tn(gc(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:l}=G.useContext(Ji),{matches:u}=G.useContext(Fs),f=u[u.length-1],d=f?f.params:{},h=f?f.pathname:"/",g=f?f.pathnameBase:"/",v=f&&f.route;{let N=v&&v.path||"";p_(h,!v||N.endsWith("*")||N.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${h}" (under <Route path="${N}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
59
60Please change the parent <Route path="${N}"> to <Route path="${N==="/"?"*":`${N}/*`}">.`)}let x=es(),y;if(e){let N=typeof e=="string"?Po(e):e;tn(g==="/"||N.pathname?.startsWith(g),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${g}" but pathname "${N.pathname}" was given in the \`location\` prop.`),y=N}else y=x;let b=y.pathname||"/",w=b;if(g!=="/"){let N=g.replace(/^\//,"").split("/");w="/"+b.replace(/^\//,"").split("/").slice(N.length).join("/")}let M=s_(n,{pathname:w});$i(v||M!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),$i(M==null||M[M.length-1].route.element!==void 0||M[M.length-1].route.Component!==void 0||M[M.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let S=bM(M&&M.map(N=>Object.assign({},N,{params:Object.assign({},d,N.params),pathname:Ns([g,l.encodeLocation?l.encodeLocation(N.pathname).pathname:N.pathname]),pathnameBase:N.pathnameBase==="/"?g:Ns([g,l.encodeLocation?l.encodeLocation(N.pathnameBase).pathname:N.pathnameBase])})),u,t,a,o);return e&&S?G.createElement(mc.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...y},navigationType:"POP"}},S):S}function _M(){let n=AM(),e=dM(n)?`${n.status} ${n.statusText}`:n instanceof Error?n.message:JSON.stringify(n),t=n instanceof Error?n.stack:null,a="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:a},l={padding:"2px 4px",backgroundColor:a},u=null;return console.error("Error handled by React Router default ErrorBoundary:",n),u=G.createElement(G.Fragment,null,G.createElement("p",null,"💿 Hey developer 👋"),G.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",G.createElement("code",{style:l},"ErrorBoundary")," or"," ",G.createElement("code",{style:l},"errorElement")," prop on your route.")),G.createElement(G.Fragment,null,G.createElement("h2",null,"Unexpected Application Error!"),G.createElement("h3",{style:{fontStyle:"italic"}},e),t?G.createElement("pre",{style:o},t):null,u)}var yM=G.createElement(_M,null),SM=class extends G.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,e){return e.location!==n.location||e.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:e.error,location:e.location,revalidation:n.revalidation||e.revalidation}}componentDidCatch(n,e){this.props.unstable_onError?this.props.unstable_onError(n,e):console.error("React Router caught the following error during render",n)}render(){return this.state.error!==void 0?G.createElement(Fs.Provider,{value:this.props.routeContext},G.createElement(rm.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function MM({routeContext:n,match:e,children:t}){let a=G.useContext(Oo);return a&&a.static&&a.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=e.route.id),G.createElement(Fs.Provider,{value:n},t)}function bM(n,e=[],t=null,a=null,o=null){if(n==null){if(!t)return null;if(t.errors)n=t.matches;else if(e.length===0&&!t.initialized&&t.matches.length>0)n=t.matches;else return null}let l=n,u=t?.errors;if(u!=null){let h=l.findIndex(g=>g.route.id&&u?.[g.route.id]!==void 0);tn(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(u).join(",")}`),l=l.slice(0,Math.min(l.length,h+1))}let f=!1,d=-1;if(t)for(let h=0;h<l.length;h++){let g=l[h];if((g.route.HydrateFallback||g.route.hydrateFallbackElement)&&(d=h),g.route.id){let{loaderData:v,errors:x}
60=t,y=g.route.loader&&!v.hasOwnProperty(g.route.id)&&(!x||x[g.route.id]===void 0);if(g.route.lazy||y){f=!0,d>=0?l=l.slice(0,d+1):l=[l[0]];break}}}return l.reduceRight((h,g,v)=>{let x,y=!1,b=null,w=null;t&&(x=u&&g.route.id?u[g.route.id]:void 0,b=g.route.errorElement||yM,f&&(d<0&&v===0?(p_("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),y=!0,w=null):d===v&&(y=!0,w=g.route.hydrateFallbackElement||null)));let M=e.concat(l.slice(0,v+1)),S=()=>{let N;return x?N=b:y?N=w:g.route.Component?N=G.createElement(g.route.Component,null):g.route.element?N=g.route.element:N=h,G.createElement(MM,{match:g,routeContext:{outlet:h,matches:M,isDataRoute:t!=null},children:N})};return t&&(g.route.ErrorBoundary||g.route.errorElement||v===0)?G.createElement(SM,{location:t.location,revalidation:t.revalidation,component:b,error:x,children:S(),routeContext:{outlet:null,matches:M,isDataRoute:!0},unstable_onError:a}):S()},null)}function om(n){return`${n} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function EM(n){let e=G.useContext(Oo);return tn(e,om(n)),e}function wM(n){let e=G.useContext(Uf);return tn(e,om(n)),e}function TM(n){let e=G.useContext(Fs);return tn(e,om(n)),e}function lm(n){let e=TM(n),t=e.matches[e.matches.length-1];return tn(t.route.id,`${n} can only be used on routes that contain a unique "id"`),t.route.id}function CM(){return lm("useRouteId")}function AM(){let n=G.useContext(rm),e=wM("useRouteError"),t=lm("useRouteError");return n!==void 0?n:e.errors?.[t]}function RM(){let{router:n}=EM("useNavigate"),e=lm("useNavigate"),t=G.useRef(!1);return d_(()=>{t.current=!0}),G.useCallback(async(o,l={})=>{$i(t.current,f_),t.current&&(typeof o=="number"?n.navigate(o):await n.navigate(o,{fromRouteId:e,...l}))},[n,e])}var Vv={};function p_(n,e,t){!e&&!Vv[n]&&(Vv[n]=!0,$i(!1,t))}G.memo(NM);function NM({routes:n,future:e,state:t,unstable_onError:a}){return h_(n,void 0,t,a,e)}function Gi(n){tn(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function LM({basename:n="/",children:e=null,location:t,navigationType:a="POP",navigator:o,static:l=!1}){tn(!gc(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let u=n.replace(/^\/*/,"/"),f=G.useMemo(()=>({basename:u,navigator:o,static:l,future:{}}),[u,o,l]);typeof t=="string"&&(t=Po(t));let{pathname:d="/",search:h="",hash:g="",state:v=null,key:x="default"}=t,y=G.useMemo(()=>{let b=Ds(d,u);return b==null?null:{location:{pathname:b,search:h,hash:g,state:v,key:x},navigationType:a}},[u,d,h,g,v,x,a]);return $i(y!=null,`<Router basename="${u}"> is not able to match the URL "${d}${h}${g}" because it does not start with the basename, so the <Router> won't render anything.`),y==null?null:G.createElement(Ji.Provider,{value:f},G.createElement(mc.Provider,{children:e,value:y}))}function DM({children:n,location:e}){return xM(W0(n),e)}function W0(n,e=[]){let t=[];return G.Children.forEach(n,(a,o)=>{if(!G.isValidElement(a))return;let l=[...e,o];if(a.type===G.Fragment){t.push.apply(t,W0(a.props.children,l));return}tn(a.type===Gi,`[${typeof a.type=="string"?a.type:a.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),tn(!a.props.index||!a.props.children,"An index route cannot have child routes.");let u={id:a.props.id||l.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,loader:a.props.loader,action:a.props.action,hydrateFallbackElement:a.props.hydrateFallbackElement,HydrateFallback:a.props.HydrateFallback,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.hasErrorBoundary===!0||a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(u.children=W0(a.props.children,l)),t.push(u)}),t}var uf="get",ff="application/x-www-form-urlencoded";function Pf(n){return n!=null&&typeof n.tagName=="string"}function UM(n){return Pf(n)&&n.tagName.toLowerCase()==="button"}function PM(n){return Pf(n)&&n.tagName.toLowerCase()==="form"}function OM(n){return Pf(n)&&n.tagName.toLowerCase()==="input"}function IM(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function BM(n,e){return n.button===0&&(!e||e==="_self")&&!IM(n)}var Bu=null;function FM(){if(Bu===null)try{new FormData(document.createElement("form"),0),Bu=!1}catch{Bu=!0}return Bu}var zM=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Kh(n){return n!=null&&!zM.has(n)?($i(!1,`"${n}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${ff}"`),null):n}
60function VM(n,e){let t,a,o,l,u;if(PM(n)){let f=n.getAttribute("action");a=f?Ds(f,e):null,t=n.getAttribute("method")||uf,o=Kh(n.getAttribute("enctype"))||ff,l=new FormData(n)}else if(UM(n)||OM(n)&&(n.type==="submit"||n.type==="image")){let f=n.form;if(f==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let d=n.getAttribute("formaction")||f.getAttribute("action");if(a=d?Ds(d,e):null,t=n.getAttribute("formmethod")||f.getAttribute("method")||uf,o=Kh(n.getAttribute("formenctype"))||Kh(f.getAttribute("enctype"))||ff,l=new FormData(f,n),!FM()){let{name:h,type:g,value:v}=n;if(g==="image"){let x=h?`${h}.`:"";l.append(`${x}x`,"0"),l.append(`${x}y`,"0")}else h&&l.append(h,v)}}else{if(Pf(n))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');t=uf,a=null,o=ff,u=n}return l&&o==="text/plain"&&(u=l,l=void 0),{action:a,method:t.toLowerCase(),encType:o,formData:l,body:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function cm(n,e){if(n===!1||n===null||typeof n>"u")throw new Error(e)}function jM(n,e,t){let a=typeof n=="string"?new URL(n,typeof window>"u"?"server://singlefetch/":window.location.origin):n;return a.pathname==="/"?a.pathname=`_root.${t}`:e&&Ds(a.pathname,e)==="/"?a.pathname=`${e.replace(/\/$/,"")}/_root.${t}`:a.pathname=`${a.pathname.replace(/\/$/,"")}.${t}`,a}async function HM(n,e){if(n.id in e)return e[n.id];try{let t=await import(n.module);return e[n.id]=t,t}catch(t){return console.error(`Error loading route module \`${n.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function kM(n){return n==null?!1:n.href==null?n.rel==="preload"&&typeof n.imageSrcSet=="string"&&typeof n.imageSizes=="string":typeof n.rel=="string"&&typeof n.href=="string"}async function GM(n,e,t){let a=await Promise.all(n.map(async o=>{let l=e.routes[o.route.id];if(l){let u=await HM(l,t);return u.links?u.links():[]}return[]}));return YM(a.flat(1).filter(kM).filter(o=>o.rel==="stylesheet"||o.rel==="preload").map(o=>o.rel==="stylesheet"?{...o,rel:"prefetch",as:"style"}:{...o,rel:"prefetch"}))}function jv(n,e,t,a,o,l){let u=(d,h)=>t[h]?d.route.id!==t[h].route.id:!0,f=(d,h)=>t[h].pathname!==d.pathname||t[h].route.path?.endsWith("*")&&t[h].params["*"]!==d.params["*"];return l==="assets"?e.filter((d,h)=>u(d,h)||f(d,h)):l==="data"?e.filter((d,h)=>{let g=a.routes[d.route.id];if(!g||!g.hasLoader)return!1;if(u(d,h)||f(d,h))return!0;if(d.route.shouldRevalidate){let v=d.route.shouldRevalidate({currentUrl:new URL(o.pathname+o.search+o.hash,window.origin),currentParams:t[0]?.params||{},nextUrl:new URL(n,window.origin),nextParams:d.params,defaultShouldRevalidate:!0});if(typeof v=="boolean")return v}return!0}):[]}function WM(n,e,{includeHydrateFallback:t}={}){return XM(n.map(a=>{let o=e.routes[a.route.id];if(!o)return[];let l=[o.module];return o.clientActionModule&&(l=l.concat(o.clientActionModule)),o.clientLoaderModule&&(l=l.concat(o.clientLoaderModule)),t&&o.hydrateFallbackModule&&(l=l.concat(o.hydrateFallbackModule)),o.imports&&(l=l.concat(o.imports)),l}).flat(1))}function XM(n){return[...new Set(n)]}function qM(n){let e={},t=Object.keys(n).sort();for(let a of t)e[a]=n[a];return e}function YM(n,e){let t=new Set;return new Set(e),n.reduce((a,o)=>{let l=JSON.stringify(qM(o));return t.has(l)||(t.add(l),a.push({key:l,link:o})),a},[])}function m_(){let n=G.useContext(Oo);return cm(n,"You must render this element inside a <DataRouterContext.Provider> element"),n}function ZM(){let n=G.useContext(Uf);return cm(n,"You must render this element inside a <DataRouterStateContext.Provider> element"),n}var um=G.createContext(void 0);um.displayName="FrameworkContext";function g_(){let n=G.useContext(um);return cm(n,"You must render this element inside a <HydratedRouter> element"),n}function KM(n,e){let t=G.useContext(um),[a,o]=G.useState(!1),[l,u]=G.useState(!1),{onFocus:f,onBlur:d,onMouseEnter:h,onMouseLeave:g,onTouchStart:v}=e,x=G.useRef(null);G.useEffect(()=>{if(n==="render"&&u(!0),n==="viewport"){let w=S=>
60{S.forEach(N=>{u(N.isIntersecting)})},M=new IntersectionObserver(w,{threshold:.5});return x.current&&M.observe(x.current),()=>{M.disconnect()}}},[n]),G.useEffect(()=>{if(a){let w=setTimeout(()=>{u(!0)},100);return()=>{clearTimeout(w)}}},[a]);let y=()=>{o(!0)},b=()=>{o(!1),u(!1)};return t?n!=="intent"?[l,x,{}]:[l,x,{onFocus:Il(f,y),onBlur:Il(d,b),onMouseEnter:Il(h,y),onMouseLeave:Il(g,b),onTouchStart:Il(v,y)}]:[!1,x,{}]}function Il(n,e){return t=>{n&&n(t),t.defaultPrevented||e(t)}}function QM({page:n,...e}){let{router:t}=m_(),a=G.useMemo(()=>s_(t.routes,n,t.basename),[t.routes,n,t.basename]);return a?G.createElement(JM,{page:n,matches:a,...e}):null}function $M(n){let{manifest:e,routeModules:t}=g_(),[a,o]=G.useState([]);return G.useEffect(()=>{let l=!1;return GM(n,e,t).then(u=>{l||o(u)}),()=>{l=!0}},[n,e,t]),a}function JM({page:n,matches:e,...t}){let a=es(),{manifest:o,routeModules:l}=g_(),{basename:u}=m_(),{loaderData:f,matches:d}=ZM(),h=G.useMemo(()=>jv(n,e,d,o,a,"data"),[n,e,d,o,a]),g=G.useMemo(()=>jv(n,e,d,o,a,"assets"),[n,e,d,o,a]),v=G.useMemo(()=>{if(n===a.pathname+a.search+a.hash)return[];let b=new Set,w=!1;if(e.forEach(S=>{let N=o.routes[S.route.id];!N||!N.hasLoader||(!h.some(T=>T.route.id===S.route.id)&&S.route.id in f&&l[S.route.id]?.shouldRevalidate||N.hasClientLoader?w=!0:b.add(S.route.id))}),b.size===0)return[];let M=jM(n,u,"data");return w&&b.size>0&&M.searchParams.set("_routes",e.filter(S=>b.has(S.route.id)).map(S=>S.route.id).join(",")),[M.pathname+M.search]},[u,f,a,o,h,e,n,l]),x=G.useMemo(()=>WM(g,o),[g,o]),y=$M(g);return G.createElement(G.Fragment,null,v.map(b=>G.createElement("link",{key:b,rel:"prefetch",as:"fetch",href:b,...t})),x.map(b=>G.createElement("link",{key:b,rel:"modulepreload",href:b,...t})),y.map(({key:b,link:w})=>G.createElement("link",{key:b,nonce:t.nonce,...w})))}function e6(...n){return e=>{n.forEach(t=>{typeof t=="function"?t(e):t!=null&&(t.current=e)})}}var v_=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{v_&&(window.__reactRouterVersion="7.8.2")}catch{}function t6({basename:n,children:e,window:t}){let a=G.useRef();a.current==null&&(a.current=kS({window:t,v5Compat:!0}));let o=a.current,[l,u]=G.useState({action:o.action,location:o.location}),f=G.useCallback(d=>{G.startTransition(()=>u(d))},[u]);return G.useLayoutEffect(()=>o.listen(f),[o,f]),G.createElement(LM,{basename:n,children:e,location:l.location,navigationType:l.action,navigator:o})}var x_=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,$n=G.forwardRef(function({onClick:e,discover:t="render",prefetch:a="none",relative:o,reloadDocument:l,replace:u,state:f,target:d,to:h,preventScrollReset:g,viewTransition:v,...x},y){let{basename:b}=G.useContext(Ji),w=typeof h=="string"&&x_.test(h),M,S=!1;if(typeof h=="string"&&w&&(M=h,v_))try{let U=new URL(window.location.href),L=h.startsWith("//")?new URL(U.protocol+h):new URL(h),z=Ds(L.pathname,b);L.origin===U.origin&&z!=null?h=z+L.search+L.hash:S=!0}catch{$i(!1,`<Link to="${h}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let N=gM(h,{relative:o}),[T,R,P]=KM(a,x),I=a6(h,{replace:u,state:f,target:d,preventScrollReset:g,relative:o,viewTransition:v});function F(U){e&&e(U),U.defaultPrevented||I(U)}let V=G.createElement("a",{...x,...P,href:M||N,onClick:S||l?e:F,ref:e6(y,R),target:d,"data-discover":!w&&t==="render"?"true":void 0});return T&&!w?G.createElement(G.Fragment,null,V,G.createElement(QM,{page:N})):V});$n.displayName="Link";var n6=G.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:a="",end:o=!1,style:l,to:u,viewTransition:f,children:d,...h},g){let v=vc(u,{relative:h.relative}),x=es(),y=G.useContext(Uf),{navigator:b,basename:w}=G.useContext(Ji),M=y!=null&&u6(v)&&f===!0,S=b.encodeLocation?b.encodeLocation(v).pathname:v.pathname,N=x.pathname,T=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;t||(N=N.toLowerCase(),T=T?T.toLowerCase():null,S=S.toLowerCase()),T&&w&&(T=Ds(T,w)||T);const R=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let P=N===S||!o&&N.startsWith(S)&&N.charAt(R)==="/",I=T!=null&&(T===S||!o&&T.startsWith(S)&&T.charAt(S.length)==="/"),F={isActive:P,isPending:I,isTransitioning:M},V=P?e:void 0,U;typeof a=="function"?U=a(F):U=[a,P?"active":null,I?"pending":null,M?"transitioning":null].filter(
60Boolean).join(" ");let L=typeof l=="function"?l(F):l;return G.createElement($n,{...h,"aria-current":V,className:U,ref:g,style:L,to:u,viewTransition:f},typeof d=="function"?d(F):d)});n6.displayName="NavLink";var i6=G.forwardRef(({discover:n="render",fetcherKey:e,navigate:t,reloadDocument:a,replace:o,state:l,method:u=uf,action:f,onSubmit:d,relative:h,preventScrollReset:g,viewTransition:v,...x},y)=>{let b=l6(),w=c6(f,{relative:h}),M=u.toLowerCase()==="get"?"get":"post",S=typeof f=="string"&&x_.test(f),N=T=>{if(d&&d(T),T.defaultPrevented)return;T.preventDefault();let R=T.nativeEvent.submitter,P=R?.getAttribute("formmethod")||u;b(R||T.currentTarget,{fetcherKey:e,method:P,navigate:t,replace:o,state:l,relative:h,preventScrollReset:g,viewTransition:v})};return G.createElement("form",{ref:y,method:M,action:w,onSubmit:a?d:N,...x,"data-discover":!S&&n==="render"?"true":void 0})});i6.displayName="Form";function s6(n){return`${n} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function __(n){let e=G.useContext(Oo);return tn(e,s6(n)),e}function a6(n,{target:e,replace:t,state:a,preventScrollReset:o,relative:l,viewTransition:u}={}){let f=ts(),d=es(),h=vc(n,{relative:l});return G.useCallback(g=>{if(BM(g,e)){g.preventDefault();let v=t!==void 0?t:ic(d)===ic(h);f(n,{replace:v,state:a,preventScrollReset:o,relative:l,viewTransition:u})}},[d,f,h,t,a,e,n,o,l,u])}var r6=0,o6=()=>`__${String(++r6)}__`;function l6(){let{router:n}=__("useSubmit"),{basename:e}=G.useContext(Ji),t=CM();return G.useCallback(async(a,o={})=>{let{action:l,method:u,encType:f,formData:d,body:h}=VM(a,e);if(o.navigate===!1){let g=o.fetcherKey||o6();await n.fetch(g,t,o.action||l,{preventScrollReset:o.preventScrollReset,formData:d,body:h,formMethod:o.method||u,formEncType:o.encType||f,flushSync:o.flushSync})}else await n.navigate(o.action||l,{preventScrollReset:o.preventScrollReset,formData:d,body:h,formMethod:o.method||u,formEncType:o.encType||f,replace:o.replace,state:o.state,fromRouteId:t,flushSync:o.flushSync,viewTransition:o.viewTransition})},[n,e,t])}function c6(n,{relative:e}={}){let{basename:t}=G.useContext(Ji),a=G.useContext(Fs);tn(a,"useFormAction must be used inside a RouteContext");let[o]=a.matches.slice(-1),l={...vc(n||".",{relative:e})},u=es();if(n==null){l.search=u.search;let f=new URLSearchParams(l.search),d=f.getAll("index");if(d.some(g=>g==="")){f.delete("index"),d.filter(v=>v).forEach(v=>f.append("index",v));let g=f.toString();l.search=g?`?${g}`:""}}return(!n||n===".")&&o.route.index&&(l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index"),t!=="/"&&(l.pathname=l.pathname==="/"?t:Ns([t,l.pathname])),ic(l)}function u6(n,{relative:e}={}){let t=G.useContext(u_);tn(t!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`.  Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=__("useViewTransitionState"),o=vc(n,{relative:e});if(!t.isTransitioning)return!1;let l=Ds(t.currentLocation.pathname,a)||t.currentLocation.pathname,u=Ds(t.nextLocation.pathname,a)||t.nextLocation.pathname;return Mf(o.pathname,u)!=null||Mf(o.pathname,l)!=null}const f6="data:image/svg+xml,%3csvg%20height='2002'%20viewBox='.1%2016.7%202472.8%201996.5'%20width='2500'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m2006.5%201485.6c-98.8%20100.8-237%20157.8-386.7%20158-149.8.3-288.1-56.3-386.9-156.8-48.3-49-83.7-105.2-105.7-165.3-21.5-59-29.7-122.1-24.2-184.6%205.3-61%2023.3-120.3%2053-173.9%2028.9-52.4%2068.6-99.7%20117.6-139.7%2096-78.3%20218.2-120.6%20346.2-120.8s250.1%2041.9%20346.2%20119.8c48.9%2039.9%2088.6%2087%20117.4%20139.3%2029.7%2053.6%2047.8%20112.8%2053.1%20173.8%205.5%2062.6-2.8%20125.6-24.3%20184.7-22%2060-57.5%20116.3-105.7%20165.5z'%20fill='%23fff'/%3e%3cpath%20d='m1300.4%201143.3c4.5-81.5%2044.5-153.4%20104.7-204.3%2059.1-50.1%20138.7-80.6%20225.4-80.6%2086.8.1%20166.3%2030.6%20225.4%2080.6%2060.2%2051%20100.2%20122.8%20104.8%20204.3%204.6%2083.8-29.1%20161.7-88.2%20219.4-60.2%2058.7-146%2095.6-242%2095.6s-181.9-36.9-242.1-95.6c-59-57.7-92.6-135.6-88-219.4z'%20fill='%23005385'/%3e%3cpath%20d='m774.5%201308.3c.6%2031.8%2010.8%2093.8%2026%20142.3%2032.1%20102.5%2086.5%20197.4%20162.3%20281%2077.8%2085.9%20173.4%20154.9%20284%20203.8%20116.3%2051.5%20242.2%2077.8%20372.9%2077.5%20130.7-.2%20256.6-26.9%20372.8-78.8%20110.5-49.5%20206.1-118.7%20283.8-204.8%2075.7-84%20130-179%20162.1-281.5%2016-51.1%2026.3-103.8%2030.5-157.1%204-52%202.3-104.4-5-156.1-14.4-101.4-49.5-196.5-103.5-283.2-49.5-79.6-113.1-149.4-188.8-208.2l.1-.1-763.8-586.4c-.6-.5-1.3-1.1-1.9-1.6-50.3-38.4-134.5-38.3-189.6.3-55.8%2039-62.1%20103.5-12.6%20144.2l-.2.1%20318.6%20259.2-971.3%201h-1.3c-80.2.1-157.4%2052.8-172.7%20119.3-15.6%2067.8%2038.9%20124%20122.4%20124.4l-.1.3%20492.3-1-878.5%20674.3c-1.1.9-2.3%201.7-3.3%202.5-82.8%2063.4-109.6%20169-57.5%20235.8%2053%2067.9%20165.6%2068%20249.4.3l479.4-392.3s-7%2053-6.5%2084.8zm1232%20177.3c-98.8%20100.8-237%20157.8-386.7%20158-149.8.3-288.1-56.3-386.9-156.8-48.3-49-83.7-105.2-105.7-165.3-21.5-59-29.7-122.1-24.2-184.6%205.3-61%2023.3-120.3%2053-173.9%2028.9-52.4%2068.6-99.7%20117.6-139.7%2096-78.3%20218.2-120.6%20346.2-120.8s250.1%2041.9%20346.2%20119.8c48.9%2039.9%2088.6%2087%20117.4%20139.3%2029.7%2053.6%2047.8%20112.8%2053.1%20173.8%205.5%2062.6-2.8%20125.6-24.3%20184.7-22%2060-57.5%20116.3-105.7%20165.5z'%20fill='%23ff7021'/%3e%3c/svg%3e",d6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='c++'%3e%3cg%20id='c++_2'%3e%3cpath%20id='Vector'%20d='M94.7304%2029.3208C94.7297%2027.6439%2094.371%2026.1621%2093.6458%2024.8903C92.9333%2023.6398%2091.8664%2022.5916%2090.4353%2021.7629C78.6222%2014.9514%2066.7977%208.16076%2054.9885%201.34236C51.8048%20-0.495653%2048.7179%20-0.428645%2045.5578%201.43575C40.8559%204.20873%2017.3148%2017.6959%2010.2999%2021.759C7.41097%2023.4314%206.00521%2025.9909%206.00451%2029.3176C6%2043.0159%206.00451%2056.7138%206%2070.4125C6.00069%2072.0526%206.34406%2073.5055%207.0374%2074.7582C7.75017%2076.0466%208.83201%2077.1236%2010.2961%2077.9711C17.3114%2082.0342%2040.8555%2095.5203%2045.5565%2098.294C48.7179%20100.159%2051.8048%20100.226%2054.9895%2098.3874C66.7991%2091.5687%2078.6243%2084.7784%2090.4391%2077.9669C91.9032%2077.1198%2092.985%2076.0421%2093.6978%2074.7547C94.39
6001%2073.5021%2094.7342%2072.0491%2094.7349%2070.4086C94.7349%2070.4086%2094.7349%2043.0194%2094.7304%2029.3208Z'%20fill='%235C8DBC'/%3e%3cpath%20id='Vector_2'%20d='M50.5032%2049.7317L7.03735%2074.7584C7.75013%2076.0468%208.83197%2077.1237%2010.2961%2077.9712C17.3113%2082.0344%2040.8555%2095.5205%2045.5565%2098.2942C48.7179%20100.16%2051.8048%20100.226%2054.9895%2098.3876C66.7991%2091.5688%2078.6244%2084.7785%2090.4392%2077.9671C91.9033%2077.1199%2092.9851%2076.0422%2093.6979%2074.7549L50.5032%2049.7317Z'%20fill='%231A4674'/%3e%3cpath%20id='Vector_3'%20d='M37.629%2057.1448C40.1583%2061.5603%2044.913%2064.5384%2050.3673%2064.5384C55.8553%2064.5384%2060.6371%2061.5224%2063.1536%2057.0597L50.5031%2049.7317L37.629%2057.1448Z'%20fill='%231A4674'/%3e%3cpath%20id='Vector_4'%20d='M94.7303%2029.3211C94.7296%2027.6442%2094.371%2026.1624%2093.6457%2024.8906L50.5032%2049.7319L93.6978%2074.7551C94.3901%2073.5025%2094.7342%2072.0495%2094.7349%2070.409C94.7349%2070.409%2094.7349%2043.0197%2094.7303%2029.3211Z'%20fill='%231B598E'/%3e%3cpath%20id='Vector_5'%20d='M92.3551%2051.5204H88.9798V54.8964H85.6037V51.5204H82.2287V48.1454H85.6037V44.77H88.9798V48.1454H92.3551V51.5204ZM80.0387%2051.5204H76.6637V54.8964H73.2883V51.5204H69.913V48.1454H73.2883V44.77H76.6637V48.1454H80.0387V51.5204Z'%20fill='white'/%3e%3cpath%20id='Vector_6'%20d='M63.1537%2057.0599C60.6373%2061.5227%2055.8554%2064.5387%2050.3675%2064.5387C44.9131%2064.5387%2040.1584%2061.5605%2037.6291%2057.145C36.3586%2054.9293%2035.6913%2052.4192%2035.6939%2049.8651C35.6939%2041.7614%2042.2637%2035.192%2050.3675%2035.192C55.7867%2035.192%2060.5164%2038.133%2063.0582%2042.5034L75.8837%2035.118C70.7859%2026.3182%2061.2685%2020.3979%2050.3675%2020.3979C34.0927%2020.3979%2020.8999%2033.5911%2020.8999%2049.8651C20.8999%2055.2042%2022.3202%2060.211%2024.8026%2064.5296C29.8875%2073.376%2039.4321%2079.3327%2050.3675%2079.3327C61.323%2079.3327%2070.8824%2073.352%2075.96%2064.4797L63.1537%2057.0599Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",h6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='css3'%3e%3cg%20id='css3_2'%3e%3cpath%20id='polygon2989'%20d='M94.1749%200L86.142%2089.9895L50.0335%20100L14.0245%2090.0036L6%200H94.1749Z'%20fill='%23264DE4'/%3e%3cpath%20id='polygon2991'%20d='M79.2648%2084.2593L86.1295%207.35913H50.0874V92.3484L79.2648%2084.2593Z'%20fill='%232965F1'/%3e%3cpath%20id='polygon2993'%20d='M24.396%2040.7402L25.3854%2051.7787H50.0876V40.7402H24.396Z'%20fill='%23EBEBEB'/%3e%3cpath%20id='polygon2995'%20d='M50.0875%2018.3977H50.0493H22.408L23.4114%2029.4364H50.0875V18.3977Z'%20fill='%23EBEBEB'/%3e%3cpath%20id='polygon2997'%20d='M50.0874%2080.8931V69.4083L50.039%2069.4212L37.7453%2066.1016L36.9594%2057.2979H30.9856H25.8784L27.4249%2074.63L50.0366%2080.9072L50.0874%2080.8931Z'%20fill='%23EBEBEB'/%3e%3cpath%20id='polygon3005'%20d='M63.6421%2051.7785L62.3608%2066.0947L50.0493%2069.4177V80.9019L72.679%2074.6301L72.845%2072.7652L75.439%2043.7042L75.7083%2040.7401L77.7011%2018.3977H50.0493V29.4364H65.6038L64.5994%2040.7401H50.0493V51.7785H63.6421Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",p6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='docker'%3e%3cg%20id='docker_2'%3e%3cpath%20id='Vector'%20d='M99.014%2041.0882C98.7428%2040.8728%2096.211%2038.9611%2090.8716%2038.9611C89.4617%2038.9673%2088.0548%2039.0882%2086.6646%2039.3227C85.6312%2032.2396%2079.7751%2028.7862%2079.5125%2028.6313L78.0788%2027.8044L77.1358%2029.1652C75.9549%2030.9931%2075.0928%2033.0081%2074.5867%2035.1245C73.6307%2039.1678%2074.2121%2042.9655%2076.266%2046.2122C73.7858%2047.5944%2069.8072%2047.9346%2069.002%2047.9647H3.13051C1.40996%2047.967%200.0138216%2049.3574%200.00444499%2051.0778C-0.0723876%2056.8485%200.905303%2062.5848%202.88937%2068.0042C5.15852%2073.955%208.5344%2078.3384%2012.9264%2081.021C17.8481%2084.0351%2025.8441%2085.7574%2034.908%2085.7574C39.0026%2085.7703%2043.0896%2085.3997%2047.1152%2084.6509C52.7113%2083.6233%2058.0961%2081.6674%2063.047%2078.8637C67.1264%2076.5013%2070.7979%2073.496%2073.9194%2069.9634C79.1382%2064.0557%2082.2472%2057.4762%2084.5593%2051.629H85.4807C91.1946%2051.629%2094.7083%2049.3425%2096.6459%2047.4264C97.9336%2046.2044%2098.9389%2044.7157%2099.5912%2043.0646L100%2041.8676L99.014%2041.0882Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_2'%20d='M9.23628%2046.0357H18.0633C18.4891%2046.0357%2018.8341%2045.6906%2018.8341%2045.265V37.4024C18.8364%2036.9766%2018.4933
60%2036.6297%2018.0677%2036.6273C18.0663%2036.6273%2018.0647%2036.6273%2018.0633%2036.6273H9.23628C8.81055%2036.6273%208.46558%2036.9724%208.46558%2037.398V37.4024V45.2649C8.46558%2045.6906%208.81055%2046.0357%209.23628%2046.0357Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_3'%20d='M21.4004%2046.0357H30.2275C30.6532%2046.0357%2030.9982%2045.6906%2030.9982%2045.265V37.4024C31.0006%2036.9766%2030.6574%2036.6297%2030.2317%2036.6273C30.2303%2036.6273%2030.2288%2036.6273%2030.2274%2036.6273H21.4003C20.9722%2036.6273%2020.6252%2036.9743%2020.6252%2037.4024V45.2649C20.6278%2045.6913%2020.974%2046.0357%2021.4004%2046.0357Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_4'%20d='M33.7496%2046.0357H42.5767C43.0024%2046.0357%2043.3474%2045.6906%2043.3474%2045.265V37.4024C43.3498%2036.9766%2043.0066%2036.6297%2042.5809%2036.6273C42.5795%2036.6273%2042.5779%2036.6273%2042.5765%2036.6273H33.7495C33.3237%2036.6273%2032.9788%2036.9724%2032.9788%2037.398V37.4024V45.2649C32.9789%2045.6906%2033.324%2046.0357%2033.7496%2046.0357Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_5'%20d='M45.9526%2046.0357H54.7797C55.2061%2046.0357%2055.5523%2045.6915%2055.5547%2045.265V37.4024C55.5547%2036.9743%2055.2078%2036.6273%2054.7797%2036.6273H45.9526C45.5269%2036.6273%2045.1819%2036.9724%2045.1819%2037.398V37.4024V45.2649C45.1819%2045.6906%2045.527%2046.0357%2045.9526%2046.0357Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_6'%20d='M21.4004%2034.7242H30.2275C30.6538%2034.7218%2030.9982%2034.3754%2030.9982%2033.9492V26.0866C30.9982%2025.6609%2030.6531%2025.3159%2030.2275%2025.3159H21.4004C20.9741%2025.3159%2020.6277%2025.6602%2020.6254%2026.0866V33.9492C20.6277%2034.3763%2020.9733%2034.7218%2021.4004%2034.7242Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_7'%20d='M33.7496%2034.7242H42.5767C43.0029%2034.7218%2043.3474%2034.3754%2043.3474%2033.9492V26.0866C43.3474%2025.6609%2043.0022%2025.3159%2042.5767%2025.3159H33.7496C33.3239%2025.3159%2032.9789%2025.661%2032.9789%2026.0866V33.9492C32.9789%2034.3754%2033.3233%2034.7218%2033.7496%2034.7242Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_8'%20d='M45.9526%2034.7242H54.7797C55.2068%2034.7218%2055.5523%2034.3763%2055.5547%2033.9492V26.0866C55.5523%2025.6602%2055.2061%2025.3159%2054.7797%2025.3159H45.9526C45.5269%2025.3159%2045.1819%2025.661%2045.1819%2026.0866V33.9492C45.1819%2034.3754%2045.5263%2034.7218%2045.9526%2034.7242Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_9'%20d='M45.9526%2023.4084H54.7797C55.2061%2023.4084%2055.5523%2023.064%2055.5547%2022.6377V14.7707C55.5523%2014.3443%2055.2061%2014%2054.7797%2014H45.9526C45.5269%2014%2045.1819%2014.345%2045.1819%2014.7707V22.6376C45.1819%2023.0633%2045.527%2023.4084%2045.9526%2023.4084Z'%20fill='%232496ED'/%3e%3cpath%20id='Vector_10'%20d='M58.2631%2046.0357H67.0902C67.5166%2046.0357%2067.8629%2045.6915%2067.8652%2045.265V37.4024C67.8652%2036.9743%2067.5183%2036.6273%2067.0902%2036.6273H58.2631C57.8376%2036.6273%2057.4924%2036.9724%2057.4924%2037.398V37.4024V45.2649C57.4924%2045.6906%2057.8376%2046.0357%2058.2631%2046.0357Z'%20fill='%232496ED'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",m6="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20role='img'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eExpo%20icon%3c/title%3e%3cpath%20d='M0%2020.084c.043.53.23%201.063.718%201.778.58.849%201.576%201.315%202.303.567.49-.505%205.794-9.776%208.35-13.29a.761.761%200%20011.248%200c2.556%203.514%207.86%2012.785%208.35%2013.29.727.748%201.723.282%202.303-.567.57-.835.728-1.42.728-2.046%200-.426-8.26-15.798-9.092-17.078-.8-1.23-1.044-1.498-2.397-1.542h-1.032c-1.353.044-1.597.311-2.398%201.542C8.267%203.991.33%2018.758%200%2019.77Z'/%3e%3c/svg%3e",g6="/assets/flask-DFvFqRYQ.svg",v6="data:image/svg+xml,%3csvg%20height='2500'%20viewBox='3.7%203.7%2043.6%2043.6'%20width='2500'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m47.3%203.7v21.8l-10.9%2010.9-10.9%2010.9-10.9-10.9%2010.9-10.9v.1-.1z'%20fill='%2359529d'/%3e%3cpath%20d='m47.3%2025.5v21.8l-10.9-10.9z'%20fill='%235271b4'/%3e%3cpath%20d='m25.5%2025.5-10.9%2010.9-10.9%2010.9v-43.6l10.9%2010.9z'%20fill='%23bb4b96'/%3e%3c/svg%3e",x6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='framer'%3e%3cg%20id='framer_2'%3e%3cpath%20id='Vector'%20d='M80.8222%2064.8214C81.8722%2065.8714%2081.1278%2067.6659%2079.6444%2067.6659H52C51.0778%206
607.6659%2050.3333%2068.4103%2050.3333%2069.3325V96.977C50.3333%2098.4603%2048.5389%2099.2047%2047.4889%2098.1547L17.65%2068.3158C17.2333%2067.8992%2017%2067.3325%2017%2066.7436V35.9992C17%2035.077%2017.7444%2034.3325%2018.6667%2034.3325H50.3333L80.8222%2064.8214Z'%20fill='black'/%3e%3cpath%20id='Vector_2'%20d='M50.3333%2034.3325L19.8444%203.84359C18.7944%202.79359%2019.5389%200.999146%2021.0222%200.999146H82C82.9222%200.999146%2083.6666%201.74359%2083.6666%202.66581V32.6658C83.6666%2033.588%2082.9222%2034.3325%2082%2034.3325H50.3333Z'%20fill='black'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",_6="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%20256%20256'%20xmlns='http://www.w3.org/2000/svg'%20preserveAspectRatio='xMinYMin%20meet'%3e%3cpath%20d='M251.172%20116.594L139.4%204.828c-6.433-6.437-16.873-6.437-23.314%200l-23.21%2023.21%2029.443%2029.443c6.842-2.312%2014.688-.761%2020.142%204.693%205.48%205.489%207.02%2013.402%204.652%2020.266l28.375%2028.376c6.865-2.365%2014.786-.835%2020.269%204.657%207.663%207.66%207.663%2020.075%200%2027.74-7.665%207.666-20.08%207.666-27.749%200-5.764-5.77-7.188-14.235-4.27-21.336l-26.462-26.462-.003%2069.637a19.82%2019.82%200%200%201%205.188%203.71c7.663%207.66%207.663%2020.076%200%2027.747-7.665%207.662-20.086%207.662-27.74%200-7.663-7.671-7.663-20.086%200-27.746a19.654%2019.654%200%200%201%206.421-4.281V94.196a19.378%2019.378%200%200%201-6.421-4.281c-5.806-5.798-7.202-14.317-4.227-21.446L81.47%2039.442l-76.64%2076.635c-6.44%206.443-6.44%2016.884%200%2023.322l111.774%20111.768c6.435%206.438%2016.873%206.438%2023.316%200l111.251-111.249c6.438-6.44%206.438-16.887%200-23.324'%20fill='%23DE4C36'/%3e%3c/svg%3e",y6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='github'%3e%3cg%20id='github_2'%3e%3cpath%20id='Vector'%20d='M50.0002%201C22.3894%201%200%2023.3855%200%2051.0002C0%2073.092%2014.3266%2091.834%2034.1933%2098.4456C36.692%2098.9083%2037.6096%2097.3609%2037.6096%2096.0402C37.6096%2094.848%2037.563%2090.909%2037.5418%2086.7311C23.6313%2089.7557%2020.6961%2080.8317%2020.6961%2080.8317C18.4217%2075.0523%2015.1446%2073.5159%2015.1446%2073.5159C10.6083%2070.4124%2015.4865%2070.476%2015.4865%2070.476C20.5075%2070.8289%2023.1513%2075.6287%2023.1513%2075.6287C27.6108%2083.2728%2034.8482%2081.0627%2037.7014%2079.7854C38.15%2076.5534%2039.4461%2074.348%2040.8758%2073.0994C29.7703%2071.8347%2018.0954%2067.5474%2018.0954%2048.3889C18.0954%2042.9303%2020.0487%2038.4697%2023.2474%2034.9682C22.7282%2033.7086%2021.0169%2028.6233%2023.7317%2021.7361C23.7317%2021.7361%2027.9304%2020.3923%2037.4853%2026.8614C41.4734%2025.7532%2045.7509%2025.198%2050.0002%2025.1791C54.2495%2025.198%2058.5301%2025.7532%2062.526%2026.8614C72.0696%2020.3923%2076.2624%2021.7361%2076.2624%2021.7361C78.9839%2028.6233%2077.2718%2033.7086%2076.7526%2034.9682C79.9584%2038.4697%2081.8983%2042.9299%2081.8983%2
60048.3889C81.8983%2067.5929%2070.2014%2071.8218%2059.0677%2073.0594C60.861%2074.6111%2062.459%2077.6541%2062.459%2082.3187C62.459%2089.0086%2062.4009%2094.3932%2062.4009%2096.0402C62.4009%2097.3707%2063.3009%2098.9299%2065.8357%2098.4389C85.6915%2091.8199%20100%2073.0845%20100%2051.0002C100%2023.3855%2077.6137%201%2050.0002%201Z'%20fill='%23161614'/%3e%3cpath%20id='Vector_2'%20d='M18.7266%2072.2265C18.6168%2072.4748%2018.2255%2072.5493%2017.8698%2072.3791C17.5071%2072.2159%2017.3032%2071.8771%2017.4208%2071.6277C17.5286%2071.3721%2017.92%2071.3007%2018.282%2071.4724C18.6455%2071.6352%2018.8525%2071.9771%2018.7266%2072.2265ZM21.1862%2074.421C20.9477%2074.6421%2020.4815%2074.5394%2020.165%2074.19C19.838%2073.8414%2019.7768%2073.3755%2020.0188%2073.1508C20.2646%2072.93%2020.7168%2073.0332%2021.0446%2073.3822C21.3717%2073.7347%2021.4352%2074.1978%2021.1858%2074.4214L21.1862%2074.421ZM22.8736%2077.2287C22.5669%2077.4416%2022.0657%2077.242%2021.7563%2076.7974C21.4501%2076.3531%2021.4501%2075.8197%2021.763%2075.606C22.0736%2075.3923%2022.5669%2075.5845%2022.8806%2076.0256C23.1865%2076.4778%2023.1865%2077.0111%2022.8732%2077.2291L22.8736%2077.2287ZM25.7268%2080.4808C25.4527%2080.7827%2024.8692%2080.7019%2024.4417%2080.2894C24.0049%2079.8863%2023.8829%2079.3141%2024.1578%2079.0118C24.4351%2078.709%2025.0221%2078.7941%2025.4527%2079.2032C25.8868%2079.6055%2026.0193%2080.1819%2025.7272%2080.4808H25.7268ZM29.4145%2081.5788C29.2941%2081.9701%2028.7318%2082.1481%2028.1655%2081.9819C27.6001%2081.8105%2027.2299%2081.3517%2027.344%2080.956C27.4616%2080.5619%2028.0263%2080.3764%2028.5969%2080.5545C29.1616%2080.7251%2029.5326%2081.1803%2029.4149%2081.5788H29.4145ZM33.612%2082.0442C33.6261%2082.4568%2033.1458%2082.7987%2032.5513%2082.8062C31.9533%2082.8191%2031.4697%2082.4854%2031.4635%2082.0799C31.4635%2081.6635%2031.9329%2081.3246%2032.5305%2081.3148C33.125%2081.3031%2033.612%2081.6344%2033.612%2082.0442ZM37.735%2081.8862C37.8064%2082.2885%2037.3931%2082.7019%2036.8029%2082.8117C36.2225%2082.9175%2035.6853%2082.6693%2035.6112%2082.2705C35.539%2081.858%2035.9602%2081.445%2036.5394%2081.338C37.1307%2081.2352%2037.6597%2081.4772%2037.735%2081.8862Z'%20fill='%23161614'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",S6="/assets/gsap-CPWT-giO.svg",M6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='html5'%3e%3cg%20id='html5_2'%3e%3cpath%20id='Vector'%20d='M14.0214%2090.034L6%200H94.1867L86.1653%2089.9854L50.0204%20100'%20fill='%23E44D26'/%3e%3cpath%20id='Vector_2'%20d='M50.093%2092.344V7.39014H86.1407L79.2617%2084.201'%20fill='%23F16529'/%3e%3cpath%20id='Vector_3'%20d='M22.3831%2018.4009H50.0933V29.4364H34.4881L35.509%2040.7392H50.0933V51.7504H25.3972L22.3831%2018.4009ZM25.8833%2057.2925H36.9674L37.7452%2066.116L50.0933%2069.4218V80.9434L27.439%2074.6235'%20fill='%23EBEBEB'/%3e%3cpath%20id='Vector_4'%20d='M77.7058%2018.4009H50.0442V29.4364H76.6849L77.7058%2018.4009ZM75.6883%2040.7392H50.0442V51.7747H63.6562L62.368%2066.116L50.0442%2069.4218V80.8948L72.6499%2074.6235'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",b6="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%20256%20256'%20xmlns='http://www.w3.org/2000/svg'%20preserveAspectRatio='xMinYMin%20meet'%3e%3cpath%20d='M0%200h256v256H0V0z'%20fill='%23F7DF1E'/%3e%3cpath%20d='M67.312%20213.932l19.59-11.856c3.78%206.701%207.218%2012.371%2015.465%2012.371%207.905%200%2012.89-3.092%2012.89-15.12v-81.798h24.057v82.138c0%2024.917-14.606%2036.259-35.916%2036.259-19.245%200-30.416-9.967-36.087-21.996M152.381%20211.354l19.588-11.341c5.157%208.421%2011.859%2014.607%2023.715%2014.607%209.969%200%2016.325-4.984%2016.325-11.858%200-8.248-6.53-11.17-17.528-15.98l-6.013-2.58c-17.357-7.387-28.87-16.667-28.87-36.257%200-18.044%2013.747-31.792%2035.228-31.792%2015.294%200%2026.292%205.328%2034.196%2019.247L210.29%20147.43c-4.125-7.389-8.591-10.31-15.465-10.31-7.046%200-11.514%204.468-11.514%2010.31%200%207.217%204.468%2010.14%2014.778%2014.608l6.014%202.577c20.45%208.765%2031.963%2017.7%2031.9
6063%2037.804%200%2021.654-17.012%2033.51-39.867%2033.51-22.339%200-36.774-10.654-43.819-24.574'/%3e%3c/svg%3e",E6="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20128%20128'%3e%3cdefs%3e%3clinearGradient%20id='matlab-original-a'%20gradientUnits='userSpaceOnUse'%20x1='16.803'%20y1='16.631'%20x2='15.013'%20y2='22.411'%20gradientTransform='matrix(4%200%200%20-4%200%20128)'%3e%3cstop%20offset='0'%20stop-color='%23512'/%3e%3cstop%20offset='.23'%20stop-color='%23523'/%3e%3cstop%20offset='.36'%20stop-color='%23534'/%3e%3cstop%20offset='.51'%20stop-color='%23645'/%3e%3cstop%20offset='.66'%20stop-color='%23568'/%3e%3cstop%20offset='.84'%20stop-color='%2329d'/%3e%3c/linearGradient%3e%3clinearGradient%20id='matlab-original-b'%20gradientUnits='userSpaceOnUse'%20x1='29.71'%20y1='18.983'%20x2='11.71'%20y2='14.563'%20gradientTransform='scale(4)'%3e%3cstop%20offset='.081'%20stop-color='%23c33'/%3e%3cstop%20offset='.189'%20stop-color='%23de5239'/%3e%3cstop%20offset='.313'%20stop-color='%23f06e3e'/%3e%3cstop%20offset='.421'%20stop-color='%23fa8042'/%3e%3cstop%20offset='.5'%20stop-color='%23fe8643'/%3e%3cstop%20offset='.58'%20stop-color='%23fa7f42'/%3e%3cstop%20offset='.696'%20stop-color='%23ef6c3e'/%3e%3cstop%20offset='.833'%20stop-color='%23dc4c37'/%3e%3cstop%20offset='.916'%20stop-color='%23cf3633'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M8%2070.2l31.879-12.88a82.62%2082.62%200%200110.883-11.8c2.636-1.399%207.597-.641%2016.68-11.918%208.796-11%2011.597-20.403%2015.718-20.403%206.52%200%2011.32%2014.082%2018.602%2035.403A461.75%20461.75%200%2000120%2096.48c-7.602-7.082-14.078-14.718-21.48-14.52-6.88.161-14.52%208.321-22.88%2018.802C69%20109.16%2060.2%20114.922%2056.763%20114.8c0%200-8.883-25.121-16.32-29.2a10.563%2010.563%200%2000-9.563.797L8%2070.16zm0%200'%20fill='%2349d'/%3e%3cpath%20d='M79.2%2016.078c-2.68%203.602-5.92%2010.203-11.76%2017.524-9.082%2011.277-14%2010.52-16.68%2011.918a78.673%2078.673%200%2000-10.882%2011.8l13.2%209.64C64.28%2051.68%2070.28%2035.122%2074.96%2024.399a54.649%2054.649%200%20014.238-8.32zm0%200'%20fill='url(%23matlab-original-a)'/%3e%3cpath%20d='M83.2%2013.2c-8.72%200-14.68%2045.921-46.88%2071.562%209.04-1.48%2016.88%2020.957%2020.48%2030.039%2016-2.723%2028.802-33.32%2041.72-32.84%207.402.277%2013.878%207.437%2021.48%2014.52C102.64%2060%2094.52%2013.198%2083.2%2013.198zm0%200'%20fill='url(%23matlab-original-b)'/%3e%3c/svg%3e",w6="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%20256%20256'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='xMidYMid'%3e%3cg%3e%3cpath%20d='M119.616813,0.0688905149%20C119.066276,0.118932037%20117.314565,0.294077364%20115.738025,0.419181169%20C79.3775171,3.69690087%2045.3192571,23.3131775%2023.7481916,53.4631946%20C11.7364614,70.2271045%204.05395894,89.2428829%201.15112414,109.384595%20C0.12512219,116.415429%200,118.492153%200,128.025062%20C0,137.557972%200.12512219,139.634696%201.15112414,146.665529%20C8.10791789,194.730411%2042.3163245,235.11392%2088.7116325,250.076335%20C97.0197458,252.753556%20105.778299,254.580072%20115.738025,255.680985%20C119.616813,256.106338%20136.383187,256.106338%20140.261975,255.680985%20C157.453763,253.779407%20172.017986,249.525878%20186.382014,242.194795%20C188.584164,241.068861%20189.00958,240.768612%20188.709286,240.518404%20C188.509091,240.36828%20179.124927,227.782837%20167.86393,212.570214%20L147.393939,184.922273%20L121.743891,146.965779%20C107.630108,126.098464%2096.0187683,109.034305%2095.9186706,109.034305%20C95.8185728,109.009284%2095.7184751,125.873277%2095.6684262,146.465363%20C95.5933529,182.52028%2095.5683284,183.971484%2095.1178886,184.82219%20C94.4672532,186.048207%2093.9667644,186.548623%2092.915738,187.099079%20C92.114956,187.499411%2091.4142717,187.574474%2087.6355816,187.574474%20L83.3063539,187.574474%20L82.1552297,186.848872%20C81.4044966,186.373477%2080.8539589,185.747958%2080.4785924,185.022356%20L79.9530792,183.896422%20L80.0031281,133.729796%20L80.0782014,83.5381493%20L80.8539589,82.5623397%20C81.25435,82.0369037%2082.1051808,81.3613431%2082.7057674,81.0360732%20C83.7317693,80.535658%2084.1321603,80.4856165%2088.4613881,80.4856165%20C93.5663734,80.4856165%2094.4172043,80.6857826%2095.7434995,82.1369867%20C96.1188661,82.5373189%20110.007429,103.454675%20126.623656,128.650581%20C143.239883,153.846488%20165.962072,188.250034%20177.122972,205.139048%20L197.392766,235.839522%20L198.418768,235.163961%20C207.502639,229.259062%20217.112023,220.852086%20224.719453,212.09482%20C240.910264,193.504394%20251.345455,170.835585%20254.848876,146.665529%20C255.874878,139.634696%20256,137.557972%20256,128.025062%2
600C256,118.492153%20255.874878,116.415429%20254.848876,109.384595%20C247.892082,61.3197135%20213.683675,20.9362052%20167.288368,5.97379012%20C159.105376,3.32158945%20150.396872,1.49507389%20140.637341,0.394160408%20C138.234995,0.143952798%20121.693842,-0.131275573%20119.616813,0.0688905149%20L119.616813,0.0688905149%20Z%20M172.017986,77.4831252%20C173.219159,78.0836234%20174.195112,79.2345784%20174.545455,80.435575%20C174.74565,81.0861148%20174.795699,94.9976579%20174.74565,126.348671%20L174.670577,171.336%20L166.73783,159.17591%20L158.780059,147.01582%20L158.780059,114.313685%20C158.780059,93.1711423%20158.880156,81.2862808%20159.030303,80.7108033%20C159.430694,79.3096407%20160.306549,78.2087272%20161.507722,77.5581875%20C162.533724,77.0327515%20162.909091,76.98271%20166.837928,76.98271%20C170.541544,76.98271%20171.19218,77.0327515%20172.017986,77.4831252%20Z'%20fill='%23000000'%3e%3c/path%3e%3c/g%3e%3c/svg%3e",T6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='nodejs'%3e%3cg%20id='nodejs_2'%3e%3cpath%20id='Vector'%20d='M46.2785%201.06686C48.758%20-0.352413%2051.9876%20-0.358823%2054.465%201.06686C66.9286%208.10944%2079.3961%2015.141%2091.8576%2022.1878C94.2014%2023.5081%2095.7692%2026.1166%2095.7454%2028.8173V71.1881C95.7628%2074.0007%2094.0401%2076.6715%2091.5673%2077.9618C79.1447%2084.9656%2066.7285%2091.9779%2054.308%2098.9816C51.7772%20100.429%2048.4827%20100.317%2046.031%2098.7516C42.3067%2096.5926%2038.576%2094.4443%2034.8513%2092.2874C34.0902%2091.8336%2033.2322%2091.4725%2032.6948%2090.7346C33.1699%2090.0942%2034.0193%2090.0144%2034.7096%2089.7348C36.2642%2089.2405%2037.692%2088.447%2039.1202%2087.677C39.4813%2087.4298%2039.9222%2087.5246%2040.2684%2087.7457C43.4531%2089.5717%2046.6097%2091.4508%2049.8051%2093.2593C50.4868%2093.6529%2051.177%2093.1304%2051.7597%2092.8056C63.9501%2085.9158%2076.1555%2079.052%2088.3438%2
60072.1601C88.7954%2071.9428%2089.0451%2071.4634%2089.0084%2070.9688C89.0169%2056.9915%2089.0105%2043.0118%2089.0126%2029.0345C89.0643%2028.4732%2088.7395%2027.9572%2088.232%2027.7274C75.8524%2020.7557%2063.4793%2013.7733%2051.1019%206.79986C50.8874%206.65243%2050.6334%206.57333%2050.3732%206.57295C50.1129%206.57257%2049.8587%206.65093%2049.6438%206.79773C37.2664%2013.7733%2024.8954%2020.7621%2012.518%2027.7335C12.0123%2027.9636%2011.6728%2028.4711%2011.733%2029.0345C11.7352%2043.0118%2011.733%2056.9915%2011.733%2070.9709C11.7116%2071.2123%2011.7646%2071.4544%2011.8849%2071.6647C12.0053%2071.8751%2012.1872%2072.0435%2012.4062%2072.1473C15.7091%2074.0203%2019.0164%2075.8801%2022.3215%2077.7467C24.1834%2078.7489%2026.4696%2079.3444%2028.521%2078.5765C30.3314%2077.9273%2031.6003%2076.0799%2031.5658%2074.1577C31.5829%2060.2621%2031.5573%2046.3642%2031.5786%2032.4707C31.5334%2031.8538%2032.1185%2031.3442%2032.7183%2031.4022C34.3053%2031.3916%2035.8945%2031.3809%2037.4815%2031.4065C38.144%2031.3916%2038.5998%2032.0558%2038.5179%2032.6773C38.5115%2046.6609%2038.535%2060.6449%2038.5072%2074.6286C38.5115%2078.3554%2036.9804%2082.4105%2033.5332%2084.234C29.2864%2086.434%2024.0374%2085.9674%2019.8419%2083.8579C16.2099%2082.0451%2012.7438%2079.9057%209.17621%2077.9636C6.69702%2076.6804%204.98286%2073.9989%205.00031%2071.1885V28.8173C4.97431%2026.0606%206.60442%2023.4048%209.02128%2022.1038C21.4418%2015.0943%2033.8601%208.07952%2046.2785%201.06686Z'%20fill='%238CC84B'/%3e%3cpath%20id='Vector_2'%20d='M57.1141%2030.4174C62.5312%2030.0687%2068.3304%2030.2108%2073.2051%2032.8795C76.9793%2034.9245%2079.0717%2039.2165%2079.1383%2043.4095C79.0329%2043.9751%2078.4416%2044.2871%2077.9017%2044.2483C76.33%2044.2461%2074.7579%2044.2696%2073.1862%2044.2376C72.5195%2044.2632%2072.132%2043.6485%2072.0483%2043.0591C71.5967%2041.0529%2070.5026%2039.0659%2068.6143%2038.0982C65.7156%2036.6469%2062.3545%2036.7199%2059.1937%2036.7502C56.8862%2036.8727%2054.4048%2037.0725%2052.4499%2038.4294C50.9491%2039.4573%2050.4932%2041.5322%2051.0289%2043.2033C51.5339%2044.4032%2052.919%2044.7903%2054.0522%2045.1472C60.5805%2046.8546%2067.4985%2046.6847%2073.9021%2048.9317C76.5533%2049.8477%2079.1468%2051.6285%2080.0543%2054.4043C81.2414%2058.1247%2080.721%2062.5717%2078.0741%2065.5584C75.9276%2068.0162%2072.8012%2069.3539%2069.6831%2070.0804C65.535%2071.0054%2061.2302%2071.0289%2057.0176%2070.6182C53.0564%2070.1666%2048.9343%2069.1259%2045.8764%2066.427C43.2615%2064.1565%2041.9843%2060.6189%2042.1111%2057.2044C42.1414%2056.6278%2042.7155%2056.2257%2043.2679%2056.2731C44.8507%2056.2603%2046.4334%2056.256%2048.0162%2056.2752C48.6483%2056.23%2049.117%2056.7763%2049.1494%2057.3722C49.4415%2059.2837%2050.1598%2061.2899%2051.8266%2062.4231C55.0434%2064.4984%2059.0797%2064.3563%2062.7631%2064.4144C65.8146%2064.2791%2069.2401%2064.2381%2071.7303%2062.2212C73.0441%2061.0708%2073.4334%2059.1462%2073.0783%2057.4904C72.6937%2056.0925%2071.2313%2055.4411%2069.9755%2055.0151C63.5309%2052.9765%2056.5357%2053.7163%2050.1534%2051.4109C47.5624%2050.4952%2045.0569%2048.7639%2044.0614%2046.1021C42.6724%2042.3347%2043.3089%2037.6747%2046.2333%2034.7888C49.0846%2031.9182%2053.2007%2030.8127%2057.1141%2030.4171V30.4174Z'%20fill='%238CC84B'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",C6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='npm'%3e%3cg%20id='npm_2'%3e%3cpath%20id='Vector'%20d='M0%200H100V100H0V0Z'%20fill='%23CC0000'/%3e%3cpath%20id='Vector_2'%20d='M49.66%2010.74H10.74V89.256H49.656V30.54H69.456V89.256H89.256V10.74H49.66Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",A6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='python'%3e%3cg%20id='python_2'%3e%3cpath%20id='Vector'%20d='M49.6397%200C24.2535%200%2025.8385%2011.009%2025.8385%2011.009L25.8667%2022.4146H50.0924V25.8389H16.2447C16.2447%2025.8389%200%2023.9966%200%2049.6111C0%2075.2264%2014.1788%2074.318%2014.1788%2074.318H22.6406V62.4315C22.6406%2062.4315%2022.1844%2048.2528%2036.593%2048.2528H60.6205C60.6205%2048.2528%2074.1199%2048.4709%2074.1199%2035.206V13.2734C74.1199%2013.2734%2076.1702%200%2049.6397%200
60ZM36.2817%207.67007C36.8542%207.66955%2037.4211%207.78193%2037.9501%208.00076C38.4791%208.2196%2038.9598%208.5406%2039.3646%208.9454C39.7693%209.35019%2040.0903%209.83084%2040.3092%2010.3598C40.528%2010.8888%2040.6404%2011.4558%2040.6399%2012.0282C40.6404%2012.6007%2040.528%2013.1677%2040.3092%2013.6967C40.0903%2014.2256%2039.7693%2014.7063%2039.3646%2015.1111C38.9598%2015.5159%2038.4791%2015.8369%2037.9501%2016.0557C37.4211%2016.2746%2036.8542%2016.3869%2036.2817%2016.3864C35.7092%2016.3869%2035.1423%2016.2746%2034.6133%2016.0557C34.0843%2015.8369%2033.6037%2015.5159%2033.1989%2015.1111C32.7941%2014.7063%2032.4731%2014.2256%2032.2542%2013.6967C32.0354%2013.1677%2031.923%2012.6007%2031.9235%2012.0282C31.923%2011.4558%2032.0354%2010.8888%2032.2542%2010.3598C32.4731%209.83084%2032.7941%209.35019%2033.1989%208.9454C33.6037%208.5406%2034.0843%208.2196%2034.6133%208.00076C35.1423%207.78193%2035.7092%207.66955%2036.2817%207.67007Z'%20fill='url(%23paint0_linear_790_3246)'/%3e%3cpath%20id='Vector_2'%20d='M50.3607%2099.4801C75.747%2099.4801%2074.1619%2088.4711%2074.1619%2088.4711L74.1337%2077.0658H49.9076V73.6415H83.7553C83.7553%2073.6415%20100%2075.4838%20100%2049.8685C100%2024.2535%2085.8213%2025.1619%2085.8213%2025.1619H77.3594V37.0481C77.3594%2037.0481%2077.8156%2051.2268%2063.407%2051.2268H39.3795C39.3795%2051.2268%2025.8801%2051.0087%2025.8801%2064.274V86.207C25.8801%2086.207%2023.8302%2099.4801%2050.3603%2099.4801H50.3607ZM63.7187%2091.8108C63.1462%2091.8113%2062.5793%2091.6989%2062.0503%2091.4801C61.5213%2091.2612%2061.0407%2090.9402%2060.6359%2090.5354C60.2311%2090.1306%2059.9101%2089.65%2059.6912%2089.121C59.4724%2088.592%2059.36%2088.0251%2059.3605%2087.4526C59.36%2086.8801%2059.4723%2086.3131%2059.6911%2085.784C59.9099%2085.255%2060.2309%2084.7743%2060.6357%2084.3695C61.0405%2083.9646%2061.5212%2083.6436%2062.0502%2083.4247C62.5792%2083.2059%2063.1462%2083.0935%2063.7187%2083.094C64.2912%2083.0935%2064.8581%2083.2059%2065.3871%2083.4247C65.9161%2083.6435%2066.3968%2083.9645%2066.8015%2084.3693C67.2063%2084.7741%2067.5273%2085.2548%2067.7462%2085.7838C67.965%2086.3128%2068.0774%2086.8797%2068.0769%2087.4522C68.0774%2088.0247%2067.965%2088.5916%2067.7462%2089.1206C67.5273%2089.6496%2067.2063%2090.1302%2066.8015%2090.535C66.3968%2090.9398%2065.9161%2091.2608%2065.3871%2091.4797C64.8581%2091.6985%2064.2912%2091.8109%2063.7187%2091.8104V91.8108Z'%20fill='url(%23paint1_linear_790_3246)'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_790_3246'%20x1='9.60996'%20y1='8.94762'%20x2='59.1669'%20y2='58.0102'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23387EB8'/%3e%3cstop%20offset='1'%20stop-color='%23366994'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_790_3246'%20x1='40.0281'%20y1='40.4527'%20x2='93.2466'%20y2='90.7618'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23FFE052'/%3e%3cstop%20offset='1'%20stop-color='%23FFC331'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e",R6="data:image/svg+xml,%3csvg%20width='101'%20height='100'%20viewBox='0%200%20101%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='react'%3e%3cg%20id='react_2'%3e%3cpath%20id='Vector'%20d='M50.3067%2058.8163C55.1758%2058.8163%2059.1229%2054.8691%2059.1229%2050.0001C59.1229%2045.131%2055.1758%2041.1838%2050.3067%2041.1838C45.4376%2041.1838%2041.4905%2045.131%2041.4905%2050.0001C41.4905%2054.8691%2045.4376%2058.8163%2050.3067%2058.8163Z'%20fill='%2361DAFB'/%3e%3cpath%20id='Vector_2'%20d='M50.3066%2068.0626C76.4333%2068.0626%2097.6132%2059.9757%2097.6132%2050C97.6132%2040.0244%2076.4333%2031.9375%2050.3066%2031.9375C24.1799%2031.9375%203%2040.0244%203%2050C3%2059.9757%2024.1799%2068.0626%2050.3066%2068.0626Z'%20stroke='%2361DAFB'%20stroke-width='5'/%3e%3cpath%20id='Vector_3'%20d='M34.664%2059.0313C47.7274%2081.6577%2065.3207%2095.9566%2073.9599%2090.9687C82.5991%2085.9809%2079.0126%2063.5951%2065.9492%2040.9687C52.8858%2018.3423%2035.2925%204.04343%2026.6533%209.03126C18.0141%2014.0191%2021.6006%2036.4049%2034.664%2059.0313Z'%20stroke='%2361DAFB'%20stroke-width='5'/%3e%3cpath%20id='Vector_4'%20d='M34.664%2040.9687C21.6007%2063.5951%2018.0141%2085.9809%2026.6533%2090.9687C35.2925%2095.9565%2052.8859%2081.6576%2065.9492%2059.0312C79.0126%2036.4048%2082.5991%2014.0191%2073.9599%209.03124C65.3208%204.04341%2047.7274%2018.3423%2034.664%2040.9687Z'%20stroke='%2361DAFB'%20stroke-width='5'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",N6="/assets/reactquery-BqNxIJub.svg",L6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='reactrouter'%3e%3cg%20id='reactrouter_2'%3e%3cpath%20id='Vector'%20d='M30.6361%2059.339C25.6683%2059.339%2021.619%2055.2576%2021.619%2050.254C21.619%2045.2504%2025.6683%2041.1689%2030.6361%2041.1689C35.604%2041.1689%2039.6533%2045.2504%2039.6533%2050.254C39.6533%2055.254%2035.6004%2059.339%2030.6361%2059.339ZM8.98501%2077.3769C4.02433%2077.3662%20-0.0142581%2073.2668%203.7837e-05%2068.2632C0.00287096%2065.8634%200.956959%2063.5626%202.65321%2061.865C4.34947%2060.1674%206.64953%2059.2115%209.04934%2059.2068C14.0136%2059.2175%2018.0522%2063.3169%2018.0343%2068.324C18.0296%2070.7229%2017.0748%2073.0223%2015.3788%2074.7189C13.6829%2076.4155%2011.3839%2077.3712%208.98501%2077.3769ZM91.0506%2077.3769C88.6511%2077.3816%2086.3474%2076.4354%2084.644%2074.7454C82.9405%2073.0554%2081.9762%2070.7593%2081.962%2068.3597C81.937%2063.349%2085.9577%2059.2354%2090.9148%2059.2104C93.3131%2059.2065%2095.6153%2060.1527%2097.3179%2061.8418C99.0204%2063.531%2099.9847%2065.8257%2099.9998%2068.2239C100.028%2073.2311%2096.0041%2077.3483%2091.0506%2077.3769Z'%20fill='black'/%3e%3cpath%20id='Vector_2'%20d='M74.1492%2041.6978C71.6975%2040.933%2069.0777%2040.6149%2066.508%2040.3362C62.5338%2039.9073%2060.9505%2038.3562%2060.2786%2034.3748C59.8998%2032.1518%2059.3708%2029.8716%2058.4094%2027.8523C56.576%2024.0102%2052.2801%2022.2876%2047.9663%2023.2704C44.3208%2024.1032%2041.2937%2027.7307%2041.1257%2031.4548C40.9327%2035.7007%2043.363%2039.3283%2047.5374%2040.5792C49.521%2041.176%2051.6296%2041.4727%2053.6989%2041.6264C57.4981%2041.9016%2058.7668%2043.0345%2059.7926%2044.7643C60.443%2045.8579%2061.0685%2046.9337%2061.0685%2050.186C61.0685%2053.4419%2060.4359%2054.5177%2059.7926%2055.6077C58.7668%2057.3375%2057.4981%2058.4669%2053.6989%2058.7493C51.626%2058.8994%2049.5174
60%2059.1996%2047.5374%2059.7964C43.363%2061.0509%2040.9327%2064.6713%2041.1257%2068.9244C41.2937%2072.6449%2044.3244%2076.2725%2047.9663%2077.1052C52.2801%2078.0916%2056.576%2076.3654%2058.4094%2072.5234C59.3744%2070.5076%2059.8998%2068.2239%2060.2786%2066.0009C60.9541%2062.0195%2062.5374%2060.4719%2066.508%2060.0395C69.0813%2059.7607%2071.6975%2059.439%2074.1492%2058.6742C77.8697%2057.5127%2080.107%2054.0423%2080.107%2050.186C80.107%2046.3333%2077.8697%2042.8665%2074.1492%2041.6978Z'%20fill='%23F44250'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",D6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='tailwindcss'%3e%3cg%20id='tailwindcss_2'%3e%3cpath%20id='Vector'%20d='M50.0002%2020C36.6665%2020%2028.3334%2026.665%2024.9996%2039.9937C30.0002%2033.3287%2035.8337%2030.8303%2042.4999%2032.4959C46.3039%2033.4463%2049.0224%2036.206%2052.0323%2039.2597C56.9341%2044.234%2062.6075%2049.9912%2075.0009%2049.9912C88.3334%2049.9912%2096.6677%2043.3262%20100%2029.9962C95.0009%2036.6612%2089.1674%2039.1609%2082.4999%2037.4953C78.6973%2036.5449%2075.9787%2033.7851%2072.9689%2030.7315C68.067%2025.7571%2062.3924%2020%2050.0002%2020ZM24.9996%2049.9912C11.6671%2049.9912%203.33274%2056.6562%200.000244141%2069.9862C4.99962%2063.3212%2010.8331%2060.8215%2017.5006%2062.4884C21.3032%2063.44%2024.0218%2066.1985%2027.0316%2069.2509C31.9335%2074.2252%2037.6081%2079.9836%2050.0002%2079.9836C63.334%2079.9836%2071.6671%2073.3187%2075.0009%2059.9887C70.0002%2066.6537%2064.1668%2069.1534%2057.5006%2067.4865C53.6966%2066.5374%2050.9781%2063.7763%2047.9682%2060.724C43.0664%2055.7496%2037.393%2049.9912%2024.9996%2049.9912Z'%20fill='%2306B6D4'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",U6="data:image/svg+xml,%3csvg%20width='103'%20height='104'%20viewBox='0%200%20103%20104'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='threejs'%3e%3cg%20id='threejs_2'%3e%3cpath%20id='Vector'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M26.7016%20102L2%202L101.023%2030.5092L26.7016%20102Z'%20stroke='black'%20stroke-width='2.2865'%20stroke-miterlimit='10'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_2'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M51.4929%2016.2573L63.8349%2066.2722L14.3511%2052.013L51.4929%2016.2573Z'%20stroke='black'%20stroke-width='2.2865'%20stroke-miterlimit='10'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_3'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M39.2145%2058.7966L33.0844%2033.9509L57.6688%2041.0082L39.2145%2058.7966Z'%20stroke='black'%20stroke-width='2.2865'%20stroke-miterlimit='10'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_4'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M26.952%209.13574L33.0821%2033.9814L8.49768%2026.9241L26.952%209.13574Z'%20stroke='black'%20stroke-width='2.2865'%20stroke-miterlimit='10'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_5'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M76.1186%2023.2988L82.2487%2048.1445L57.6643%2041.0872L76.1186%2023.2988Z'%20stroke='black'%20stroke-width='2.2865'%20stroke-miterlimit='10'%20stroke-linejoin='round'/%3e%3cpath%20id='Vector_6'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M39.2173%2058.8137L45.3474%2083.6594L20.7629%2076.6021L39.2173%2058.8137Z'%20stroke='black'%20stroke-width='2.2865'%20stroke-miterlimit='10'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",P6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='typescript'%3e%3cg%20id='typescript_2'%3e%3cpath%20id='Vector'%20d='M0%200H100V100H0V0Z'%20fill='%23017ACB'/%3e%3cpath%20id='Vector_2'%20d='M48.0157%2037.0312H52.8126V45.3125H39.8438V82.1562L39.5%2082.25C39.0313%2082.375%2032.8594%2082.375%2031.5313%2082.2344L30.4688%2082.1406V45.3125H17.5V37.0312L21.6094%2036.9844C23.8594%2036.9531%2029.6406%2036.9531%2034.4532%2036.9844C39.2657%2037.0156%2045.3594%2037.0312%2048.0157%2037.0312ZM84.6251%2078.25C82.7189%2080.2656%2080.672%2081.3906%2077.2657%2082.3125C75.7813%2082.7187%2075.5313%2082.7344%2072.1876%2082.7188C68.8438%2
60082.7031%2068.5782%2082.7031%2066.9532%2082.2812C62.7501%2081.2031%2059.3594%2079.0937%2057.0469%2076.1094C56.3907%2075.2656%2055.3126%2073.5156%2055.3126%2073.2969C55.3126%2073.2344%2055.4688%2073.0937%2055.6719%2073C55.8751%2072.9062%2056.2969%2072.6406%2056.6407%2072.4375C56.9844%2072.2344%2057.6094%2071.8594%2058.0313%2071.6406C58.4532%2071.4219%2059.6719%2070.7031%2060.7345%2070.0625C61.797%2069.4219%2062.7657%2068.9062%2062.8751%2068.9062C62.9845%2068.9062%2063.1876%2069.125%2063.3438%2069.3906C64.2813%2070.9687%2066.4688%2072.9844%2068.0157%2073.6719C68.9688%2074.0781%2071.0782%2074.5312%2072.0938%2074.5312C73.0313%2074.5312%2074.7501%2074.125%2075.672%2073.7031C76.6563%2073.25%2077.1564%2072.7969%2077.7501%2071.8906C78.1564%2071.25%2078.2032%2071.0781%2078.1876%2069.8594C78.1876%2068.7344%2078.1251%2068.4219%2077.8126%2067.9062C76.9376%2066.4687%2075.7501%2065.7187%2070.9376%2063.5937C65.9688%2061.3906%2063.7345%2060.0781%2061.9219%2058.3125C60.5782%2057%2060.3126%2056.6406%2059.4688%2055C58.3751%2052.8906%2058.2344%2052.2031%2058.2188%2049.0625C58.2032%2046.8594%2058.2501%2046.1406%2058.4844%2045.3906C58.8126%2044.2656%2059.8751%2042.0937%2060.3594%2041.5469C61.3594%2040.375%2061.7188%2040.0156%2062.422%2039.4375C64.547%2037.6875%2067.8595%2036.5312%2071.0313%2036.4219C71.3907%2036.4219%2072.5782%2036.4844%2073.6876%2036.5625C76.8751%2036.8281%2079.047%2037.6094%2081.1407%2039.2812C82.7189%2040.5312%2085.1095%2043.4688%2084.8751%2043.8594C84.7189%2044.0938%2078.4845%2048.25%2078.0782%2048.375C77.8282%2048.4531%2077.6564%2048.3594%2077.3126%2047.9531C75.1876%2045.4062%2074.3282%2044.8594%2072.2657%2044.7344C70.797%2044.6406%2070.0157%2044.8125%2069.0313%2045.4687C68.0001%2046.1562%2067.5001%2047.2031%2067.5001%2048.6562C67.5157%2050.7812%2068.3282%2051.7812%2071.3282%2053.2656C73.2657%2054.2187%2074.922%2055%2075.047%2055C75.2345%2055%2079.2501%2057%2080.297%2057.625C85.172%2060.4844%2087.1564%2063.4219%2087.672%2068.4844C88.047%2072.2969%2086.9689%2075.7812%2084.6251%2078.25Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",O6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='vitejs'%3e%3cg%20id='vitejs_2'%3e%3cpath%20id='Vector'%20d='M98.848%2014.8011L52.7313%2098.6948C51.779%20100.427%2049.3328%20100.437%2048.3664%2098.7135L1.33543%2014.8089C0.28237%2012.9308%201.86119%2010.6555%203.9535%2011.0363L50.1197%2019.4308C50.4142%2019.4843%2050.7158%2019.4838%2051.0102%2019.4292L96.2107%2011.048C98.2961%2010.6614%2099.8822%2012.9191%2098.848%2014.8011Z'%20fill='url(%23paint0_linear_790_3556)'/%3e%3cpath%20id='Vector_2'%20d='M72.111%200.0246207L37.9836%206.8278C37.7109%206.88215%2037.4637%207.02714%2037.2809%207.23999C37.098%207.45285%2036.9899%207.72148%2036.9735%208.00367L34.8743%2044.074C34.8627%2044.2718%2034.8967%2044.4697%2034.9734%2044.6518C35.0502%2044.834%2035.1676%2044.9954%2035.3164%2045.1233C35.4651%2045.2513%2035.6412%2045.3421%2035.8305%2045.3888C36.0199%2045.4354%2036.2173%2045.4364%2036.4071%2045.3919L45.9088%2043.1611C46.7977%2042.9524%2047.6011%2043.749%2047.4182%2044.6584L44.5953%2058.7216C44.4055%2059.6681%2045.2787%2060.4772%2046.1872%2060.1964L52.0561%2058.3826C52.9657%2058.1017%2053.8401%2058.9132%2053.6476%2059.8604L49.1615%2081.9503C48.8808%2083.3321%2050.6874%2084.0855%2051.4406%2082.901L51.9441%2082.1098L79.7532%2025.6495C80.2191%2024.7042%2079.4157%2023.6262%2078.3956%2023.8268L68.6147%2025.747C67.6959%2025.9273%2066.914%2025.0565%2067.1732%2024.142L73.5568%201.62925C73.8164%200.712429%2073.0314%20-0.158743%2072.1114%200.0246207H72.111Z'%20fill='url(%23paint1_linear_790_3556)'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_790_3556'%20x1='0.187129'%20y1='17.8049'%20x2='51.0375'%20y2='85.6877'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2341D1FF'/%3e%3cstop%20offset='1'%20stop-color='%23BD34FE'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_790_3556'%20x1='54.3985'%20y1='1.87182'%20x2='64.9804'%20y2='73.2241'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23FFEA83'/%3e%3cstop%20offset='0.083'%20stop-color='%23FFDD35'/%3e%3cstop%20offset='1'%20stop-color='%23FFA800'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e",I6="data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='vscode'%3e%3cg%20id='vscode_2'%3e%3cpath%20id='Vector'%20d='M0.951416%2035.4984C0.951416%2035.4984%20-1.48421%2033.7427%201.43854%2031.3984L8.24814%2025.3093C8.24814%2025.3093%2010.1966%2023.2593%2012.2568%2025.0455L75.0959%2072.6214V95.4351C75.0959%2095.4351%2075.0655%2099.0175%2070.4682%2098.6217L0.951416%2035.4984Z'%2
vendor: 6,270 bytes, lines 60-64
600fill='%232489CA'/%3e%3cpath%20id='Vector_2'%20d='M17.1484%2050.2036L0.95144%2064.929C0.95144%2064.929%20-0.712906%2066.1671%200.95144%2068.3795L8.47144%2075.2195C8.47144%2075.2195%2010.2576%2077.1376%2012.8962%2074.9556L30.0673%2061.9352L17.1484%2050.2036Z'%20fill='%231070B3'/%3e%3cpath%20id='Vector_3'%20d='M45.5843%2050.3253L75.2888%2027.6435L75.096%204.95149C75.096%204.95149%2073.8275%20-0.000959277%2069.5956%202.57675L30.0673%2038.5531L45.5843%2050.3253Z'%20fill='%230877B9'/%3e%3cpath%20id='Vector_4'%20d='M70.4683%2098.6524C72.1936%20100.418%2074.2842%2099.8397%2074.2842%2099.8397L97.4327%2088.4329C100.396%2086.4133%2099.98%2083.9067%2099.98%2083.9067V15.7902C99.98%2012.7964%2096.9152%2011.7613%2096.9152%2011.7613L76.8517%202.08978C72.4676%20-0.619855%2069.5956%202.57691%2069.5956%202.57691C69.5956%202.57691%2073.2896%20-0.081986%2075.096%204.95165V95.0192C75.096%2095.6383%2074.9641%2096.2472%2074.7002%2096.7952C74.1725%2097.8608%2073.0258%2098.8553%2070.2755%2098.4392L70.4683%2098.6524Z'%20fill='%233C99D4'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e";/**
61 * @license
62 * Copyright 2010-2025 Three.js Authors
63 * SPDX-License-Identifier: MIT
64 */const fm="178",B6=0,Hv=1,F6=2,y_=1,z6=2,Cs=3,Na=0,ei=1,Ui=2,Aa=0,Mo=1,X0=2,kv=3,Gv=4,V6=5,dr=100,j6=101,H6=102,k6=103,G6=104,W6=200,X6=201,q6=202,Y6=203,q0=204,Y0=205,Z6=206,K6=207,Q6=208,$6=209,J6=210,eb=211,tb=212,nb=213,ib=214,Z0=0,K0=1,Q0=2,To=3,$0=4,J0=5,ep=6,tp=7,S_=0,sb=1,ab=2,Ra=0,rb=1,ob=2,lb=3,cb=4,ub=5,fb=6,db=7,M_=300,Co=301,Ao=302,np=303,ip=304,Of=306,sp=1e3,mr=1001,ap=1002,Ii=1003,hb=1004,Fu=1005,Xi=1006,Qh=1007,gr=1008,Us=1009,b_=1010,E_=1011,sc=1012,dm=1013,Sr=1014,As=1015,xc=1016,hm=1017,pm=1018,ac=1020,w_=35902,T_=1021,C_=1022,Oi=1023,rc=1026,oc=1027,A_=1028,mm=1029,R_=1030,gm=1031,vm=1033,df=33776,hf=33777,pf=33778,mf=33779,rp=35840,op=35841,lp=35842,cp=35843,up=36196,fp=37492,dp=37496,hp=37808,pp=37809,mp=37810,gp=37811,vp=37812,xp=37813,_p=37814,yp=37815,Sp=37816,Mp=37817,bp=37818,Ep=37819,wp=37820,Tp=37821,gf=36492,Cp=36494,Ap=36495,N_=36283,Rp=36284,Np=36285,Lp=36286,pb=3200,mb=3201,gb=0,vb=1,Ca="",hi="srgb",Ro="srgb-linear",bf="linear",kt="srgb",eo=7680,Wv=519,xb=512,_b=513,yb=514,L_=515,Sb=516,Mb=517,bb=518,Eb=519,Xv=35044,qv="300 es",Rs=2e3,Ef=2001;class Io{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const a=this._listeners;a[e]===void 0&&(a[e]=[]),a[e].indexOf(t)===-1&&a[e].push(t)}hasEventListener(e,t){const a=this._listeners;return a===void 0?!1:a[e]!==void 0&&a[e].indexOf(t)!==-1}removeEventListener(e,t){const a=this._listeners;if(a===void 0)return;const o=a[e];if(o!==void 0){const l=o.indexOf(t);l!==-1&&o.splice(l,1)}}dispatchEvent(e){const t=this._listeners;if(t===void 0)return;const a=t[e.type];if(a!==void 0){e.target=this;const o=a.slice(0);for(let l=0,u=o.length;l<u;l++)o[l].call(this,e);e.target=null}}}const zn=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],$h=Math.PI/180,Dp=180/Math.PI;function _c(){const n=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,a=Math.random()*4294967295|0;return(zn[n&255]+zn[n>>8&255]+zn[n>>16&255]+zn[n>>24&255]+"-"+zn[e&255]+zn[e>>8&255]+"-"+zn[e>>16&15|64]+zn[e>>24&255]+"-"+zn[t&63|128]+zn[t>>8&255]+"-"+zn[t>>16&255]+zn[t>>24&255]+zn[a&255]+zn[a>>8&255]+zn[a>>16&255]+zn[a>>24&255]).toLowerCase()}function Tt(n,e,t){return Math.max(e,Math.min(t,n))}function wb(n,e){return(n%e+e)%e}function Jh(n,e,t){return(1-t)*n+t*e}function Bl(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Qn(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}class St{constructor(e=0,t=0){St.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}
vendor: 11,626 bytes, line 64
64sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,a=this.y,o=e.elements;return this.x=o[0]*t+o[3]*a+o[6],this.y=o[1]*t+o[4]*a+o[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Tt(this.x,e.x,t.x),this.y=Tt(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=Tt(this.x,e,t),this.y=Tt(this.y,e,t),this}clampLength(e,t){const a=this.length();return this.divideScalar(a||1).multiplyScalar(Tt(a,e,t))}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=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.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}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const a=this.dot(e)/t;return Math.acos(Tt(a,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,a=this.y-e.y;return t*t+a*a}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,a){return this.x=e.x+(t.x-e.x)*a,this.y=e.y+(t.y-e.y)*a,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const a=Math.cos(t),o=Math.sin(t),l=this.x-e.x,u=this.y-e.y;return this.x=l*a-u*o+e.x,this.y=l*o+u*a+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class yc{constructor(e=0,t=0,a=0,o=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=a,this._w=o}static slerpFlat(e,t,a,o,l,u,f){let d=a[o+0],h=a[o+1],g=a[o+2],v=a[o+3];const x=l[u+0],y=l[u+1],b=l[u+2],w=l[u+3];if(f===0){e[t+0]=d,e[t+1]=h,e[t+2]=g,e[t+3]=v;return}if(f===1){e[t+0]=x,e[t+1]=y,e[t+2]=b,e[t+3]=w;return}if(v!==w||d!==x||h!==y||g!==b){let M=1-f;const S=d*x+h*y+g*b+v*w,N=S>=0?1:-1,T=1-S*S;if(T>Number.EPSILON){const P=Math.sqrt(T),I=Math.atan2(P,S*N);M=Math.sin(M*I)/P,f=Math.sin(f*I)/P}const R=f*N;if(d=d*M+x*R,h=h*M+y*R,g=g*M+b*R,v=v*M+w*R,M===1-f){const P=1/Math.sqrt(d*d+h*h+g*g+v*v);d*=P,h*=P,g*=P,v*=P}}e[t]=d,e[t+1]=h,e[t+2]=g,e[t+3]=v}static multiplyQuaternionsFlat(e,t,a,o,l,u){const f=a[o],d=a[o+1],h=a[o+2],g=a[o+3],v=l[u],x=l[u+1],y=l[u+2],b=l[u+3];return e[t]=f*b+g*v+d*y-h*x,e[t+1]=d*b+g*x+h*v-f*y,e[t+2]=h*b+g*y+f*x-d*v,e[t+3]=g*b-f*v-d*x-h*y,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,a,o){return this._x=e,this._y=t,this._z=a,this._w=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const a=e._x,o=e._y,l=e._z,u=e._order,f=Math.cos,d=Math.sin,h=f(a/2),g=f(o/2),v=f(l/2),x=d(a/2),y=d(o/2),b=d(l/2);switch(u){case"XYZ":this._x=x*g*v+h*y*b,this._y=h*y*v-x*g*b,this._z=h*g*b+x*y*v,this._w=h*g*v-x*y*b;break;case"YXZ":this._x=x*g*v+h*y*b,this._y=h*y*v-x*g*b,this._z=h*g*b-x*y*v,this._w=h*g*v+x*y*b;break;case"ZXY":this._x=x*g*v-h*y*b,this._y=h*y*v+x*g*b,this._z=h*g*b+x*y*v,this._w=h*g*v-x*y*b;break;case"ZYX":this._x=x*g*v-h*y*b,this._y=h*y*v+x*g*b,this._z=h*g*b-x*y*v,this._w=h*g*v+x*y*b;break;case"YZX":this._x=x*g*v+h*y*b,this._y=h*y*v+x*g*b,this._z=h*g*b-x*y*v,this._w=h*g*v-x*y*b;break;case"XZY":this._x=x*g*v-h*y*b,this._y=h*y*v-x*g*b,this._z=h*g*b+x*y*v,this._w=h*g*v+x*y*b;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+u)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const a=t/2,o=Math.sin(a);return this._x=e.x*o,this._y=e.y*o,this._z=e.z*o,this._w=Math.cos(a),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,a=t[0],o=t[4],l=t[8],u=t[1],f=t[5],d=t[9],h=t[2],g=t[6],v=t[10],x=a+f+v;if(x>0){const y=.5/Math.sqrt(x+1);this._w=.25/y,this._x=(g-d)*y,this._y=(l-h)*y,this._z=(u-o)*y}else if(a>f&&a>v){const y=2*Math.sqrt(1+a-f-v);this._w=(g-d)/y,this._x=.25*y,this._y=(o+u)/y,this._z=(l+h)/y}else if(f>v){const y=2*Math.sqrt(1+f-a-v);this._w=(l-h)/y,this._x=(o+u)/y,this._y=.25*y,this._z=(d+g)/y}else{const y=2*Math.sqrt(1+v-a-f);this._w=(u-o)/y,this._x=(l+h)/y,this._y=(d+g)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let a=e.dot(t)+1;return a<1e-8?(a=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=a):(this._x=0,this._y=-e.z,this._z=e.y,this._w=a)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=a),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Tt(this.dot(e),-1,1)))}rotateTowards(e,t){const a=this.angleTo(e);if(a===0)return this;const o=Math.min(1,t/a);return this.slerp(e,o),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(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._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 e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const a=e._x,o=e._y,l=e._z,u=e._w,f=t._x,d=t._y,h=t._z,g=t._w;return this._x=a*g+u*f+o*h-l*d,this._y=o*g+u*d+l*f-a*h,this._z=l*g+u*h+a*d-o*f,this._w=u*g-a*f-o*d-l*h,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const a=this._x,o=this._y,l=this._z,u=this._w;let f=u*e._w+a*e._x+o*e._y+l*e._z;if(f<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,f=-f):this.copy(e),f>=1)return this._w=u,this._x=a,this._y=o,this._z=l,this;const d=1-f*f;if(d<=Number.EPSILON){const y=1-t;return this._w=y*u+t*this._w,this._x=y*a+t*this._x,this._y=y*o+t*this._y,this._z=y*l+t*this._z,this.normalize(),this}const h=Math.sqrt(d),g=Math.atan2(h,f),v=Math.sin((1-t)*g)/h,x=Math.sin(t*g)/h;return this._w=u*v+this._w*x,this._x=a*v+this._x*x,this._y=o*v+this._y*x,this._z=l*v+this._z*x,this._onChangeCallback(),this}slerpQuaternions(e,t,a){return this.copy(e).slerp(t,a)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),a=Math.random(),o=Math.sqrt(1-a),l=Math.sqrt(a);return this.set(o*Math.sin(e),o*Math.cos(e),l*Math.sin(t),l*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class le{constructor(e=0,t=0,a=0){le.prototype.isVector3=!0,this.x=e,this.y=t,this.z=a}set(e,t,a){return a===void 0&&(a=this.z),this.x=e,this.y=t,this.z=a,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Yv.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Yv.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,a=this.y,o=this.z,l=e.elements;return this.x=l[0]*t+l[3]*a+l[6]*o,this.y=l[1]*t+l[4]*a+l[7]*o,this.z=l[2]*t+l[5]*a+l[8]*o,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,a=this.y,o=this.z,l=e.elements,u=1/(l[3]*t+l[7]*a+l[11]*o+l[15]);return this.x=(l[0]*t+l[4]*a+l[8]*o+l[12])*u,this.y=(l[1]*t+l[5]*a+l[9]*o+l[13])*u,this.z=(l[2]*t+l[6]*a+l[10]*o+l[14])*u,this}applyQuaternion(e){const t=this.x,a=this.y,o=this.z,l=e.x,u=e.y,f=e.z,d=e.w,h=2*(u*o-f*a),g=2*(f*t-l*o),v=2*(l*a-u*t);return this.x=t+d*h+u*v-f*g,this.y=a+d*g+f*h-l*v,this.z=o+d*v+l*g-u*h,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,a=this.y,o=this.z,l=e.elements;return this.x=l[0]*t+l[4]*a+l[8]*o,this.y=l[1]*t+l[5]*a+l[9]*o,this.z=l[2]*t+l[6]*a+l[10]*o,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Tt(this.x,e.x,t.x),this.y=Tt(this.y,e.y,t.y),this.z=Tt(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=Tt(this.x,e,t),this.y=Tt(this.y,e,t),this.z=Tt(this.z,e,t),this}clampLength(e,t){const a=this.length();return this.divideScalar(a||1).multiplyScalar(Tt(a,e,t))}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}
vendor: 4,865 bytes, line 64
64round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,a){return this.x=e.x+(t.x-e.x)*a,this.y=e.y+(t.y-e.y)*a,this.z=e.z+(t.z-e.z)*a,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const a=e.x,o=e.y,l=e.z,u=t.x,f=t.y,d=t.z;return this.x=o*d-l*f,this.y=l*u-a*d,this.z=a*f-o*u,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const a=e.dot(this)/t;return this.copy(e).multiplyScalar(a)}projectOnPlane(e){return e0.copy(this).projectOnVector(e),this.sub(e0)}reflect(e){return this.sub(e0.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const a=this.dot(e)/t;return Math.acos(Tt(a,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,a=this.y-e.y,o=this.z-e.z;return t*t+a*a+o*o}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,a){const o=Math.sin(t)*e;return this.x=o*Math.sin(a),this.y=Math.cos(t)*e,this.z=o*Math.cos(a),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,a){return this.x=e*Math.sin(t),this.y=a,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),a=this.setFromMatrixColumn(e,1).length(),o=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=a,this.z=o,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,t=Math.random()*2-1,a=Math.sqrt(1-t*t);return this.x=a*Math.cos(e),this.y=t,this.z=a*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const e0=new le,Yv=new yc;class ht{constructor(e,t,a,o,l,u,f,d,h){ht.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,a,o,l,u,f,d,h)}set(e,t,a,o,l,u,f,d,h){const g=this.elements;return g[0]=e,g[1]=o,g[2]=f,g[3]=t,g[4]=l,g[5]=d,g[6]=a,g[7]=u,g[8]=h,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,a=e.elements;return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],this}extractBasis(e,t,a){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),a.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const a=e.elements,o=t.elements,l=this.elements,u=a[0],f=a[3],d=a[6],h=a[1],g=a[4],v=a[7],x=a[2],y=a[5],b=a[8],w=o[0],M=o[3],S=o[6],N=o[1],T=o[4],R=o[7],P=o[2],I=o[5],F=o[8];return l[0]=u*w+f*N+d*P,l[3]=u*M+f*T+d*I,l[6]=u*S+f*R+d*F,l[1]=h*w+g*N+v*P,l[4]=h*M+g*T+v*I,l[7]=h*S+g*R+v*F,l[2]=x*w+y*N+b*P,l[5]=x*M+y*T+b*I,l[8]=x*S+y*R+b*F,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],a=e[1],o=e[2],l=e[3],u=e[4],f=e[5],d=e[6],h=e[7],g=e[8];return t*u*g-t*f*h-a*l*g+a*f*d+o*l*h-o*u*d}invert(){const e=this.elements,t=e[0],a=e[1],o=e[2],l=e[3],u=e[4],f=e[5],d=e[6],h=e[7],g=e[8],v=g*u-f*h,x=f*d-g*l,y=h*l-u*d,b=t*v+a*x+o*y;if(b===0)return this.set(0,0,0,0,0,0,0,0,0);const w=1/b;return e[0]=v*w,e[1]=(o*h-g*a)*w,e[2]=(f*a-o*u)*w,e[3]=x*w,e[4]=(g*t-o*d)*w,e[5]=(o*l-f*t)*w,e[6]=y*w,e[7]=(a
vendor: 4,346 bytes, line 64
64*d-h*t)*w,e[8]=(u*t-a*l)*w,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,a,o,l,u,f){const d=Math.cos(l),h=Math.sin(l);return this.set(a*d,a*h,-a*(d*u+h*f)+u+e,-o*h,o*d,-o*(-h*u+d*f)+f+t,0,0,1),this}scale(e,t){return this.premultiply(t0.makeScale(e,t)),this}rotate(e){return this.premultiply(t0.makeRotation(-e)),this}translate(e,t){return this.premultiply(t0.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),a=Math.sin(e);return this.set(t,-a,0,a,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,a=e.elements;for(let o=0;o<9;o++)if(t[o]!==a[o])return!1;return!0}fromArray(e,t=0){for(let a=0;a<9;a++)this.elements[a]=e[a+t];return this}toArray(e=[],t=0){const a=this.elements;return e[t]=a[0],e[t+1]=a[1],e[t+2]=a[2],e[t+3]=a[3],e[t+4]=a[4],e[t+5]=a[5],e[t+6]=a[6],e[t+7]=a[7],e[t+8]=a[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const t0=new ht;function D_(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}function lc(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function Tb(){const n=lc("canvas");return n.style.display="block",n}const Zv={};function bo(n){n in Zv||(Zv[n]=!0,console.warn(n))}function Cb(n,e,t){return new Promise(function(a,o){function l(){switch(n.clientWaitSync(e,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:o();break;case n.TIMEOUT_EXPIRED:setTimeout(l,t);break;default:a()}}setTimeout(l,t)})}function Ab(n){const e=n.elements;e[2]=.5*e[2]+.5*e[3],e[6]=.5*e[6]+.5*e[7],e[10]=.5*e[10]+.5*e[11],e[14]=.5*e[14]+.5*e[15]}function Rb(n){const e=n.elements;e[11]===-1?(e[10]=-e[10]-1,e[14]=-e[14]):(e[10]=-e[10],e[14]=-e[14]+1)}const Kv=new ht().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Qv=new ht().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Nb(){const n={enabled:!0,workingColorSpace:Ro,spaces:{},convert:function(o,l,u){return this.enabled===!1||l===u||!l||!u||(this.spaces[l].transfer===kt&&(o.r=Ls(o.r),o.g=Ls(o.g),o.b=Ls(o.b)),this.spaces[l].primaries!==this.spaces[u].primaries&&(o.applyMatrix3(this.spaces[l].toXYZ),o.applyMatrix3(this.spaces[u].fromXYZ)),this.spaces[u].transfer===kt&&(o.r=Eo(o.r),o.g=Eo(o.g),o.b=Eo(o.b))),o},workingToColorSpace:function(o,l){return this.convert(o,this.workingColorSpace,l)},colorSpaceToWorking:function(o,l){return this.convert(o,l,this.workingColorSpace)},getPrimaries:function(o){return this.spaces[o].primaries},getTransfer:function(o){return o===Ca?bf:this.spaces[o].transfer},getLuminanceCoefficients:function(o,l=this.workingColorSpace){return o.fromArray(this.spaces[l].luminanceCoefficients)},define:function(o){Object.assign(this.spaces,o)},_getMatrix:function(o,l,u){return o.copy(this.spaces[l].toXYZ).multiply(this.spaces[u].fromXYZ)},_getDrawingBufferColorSpace:function(o){return this.spaces[o].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(o=this.workingColorSpace){return this.spaces[o].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(o,l){return bo("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),n.workingToColorSpace(o,l)},toWorkingColorSpace:function(o,l){return bo("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),n.colorSpaceToWorking(o,l)}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],a=[.3127,.329];return n.define({[Ro]:{primaries:e,whitePoint:a,transfer:bf,toXYZ:Kv,fromXYZ:Qv,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:hi},outputColorSpaceConfig:{drawingBufferColorSpace:hi}},[hi]:{primaries:e,whitePoint:a,transfer:kt,toXYZ:Kv,fromXYZ:Qv,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:hi}}}),n}const Lt=Nb();function Ls(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}
vendor: 28,760 bytes, line 64
64function Eo(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let to;class Lb{static getDataURL(e,t="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let a;if(e instanceof HTMLCanvasElement)a=e;else{to===void 0&&(to=lc("canvas")),to.width=e.width,to.height=e.height;const o=to.getContext("2d");e instanceof ImageData?o.putImageData(e,0,0):o.drawImage(e,0,0,e.width,e.height),a=to}return a.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=lc("canvas");t.width=e.width,t.height=e.height;const a=t.getContext("2d");a.drawImage(e,0,0,e.width,e.height);const o=a.getImageData(0,0,e.width,e.height),l=o.data;for(let u=0;u<l.length;u++)l[u]=Ls(l[u]/255)*255;return a.putImageData(o,0,0),t}else if(e.data){const t=e.data.slice(0);for(let a=0;a<t.length;a++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[a]=Math.floor(Ls(t[a]/255)*255):t[a]=Ls(t[a]);return{data:t,width:e.width,height:e.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}}let Db=0;class xm{constructor(e=null){this.isSource=!0,Object.defineProperty(this,"id",{value:Db++}),this.uuid=_c(),this.data=e,this.dataReady=!0,this.version=0}getSize(e){const t=this.data;return t instanceof HTMLVideoElement?e.set(t.videoWidth,t.videoHeight):t!==null?e.set(t.width,t.height,t.depth||0):e.set(0,0,0),e}set needsUpdate(e){e===!0&&this.version++}toJSON(e){const t=e===void 0||typeof e=="string";if(!t&&e.images[this.uuid]!==void 0)return e.images[this.uuid];const a={uuid:this.uuid,url:""},o=this.data;if(o!==null){let l;if(Array.isArray(o)){l=[];for(let u=0,f=o.length;u<f;u++)o[u].isDataTexture?l.push(n0(o[u].image)):l.push(n0(o[u]))}else l=n0(o);a.url=l}return t||(e.images[this.uuid]=a),a}}function n0(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&n instanceof ImageBitmap?Lb.getDataURL(n):n.data?{data:Array.from(n.data),width:n.width,height:n.height,type:n.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let Ub=0;const i0=new le;class Wn extends Io{constructor(e=Wn.DEFAULT_IMAGE,t=Wn.DEFAULT_MAPPING,a=mr,o=mr,l=Xi,u=gr,f=Oi,d=Us,h=Wn.DEFAULT_ANISOTROPY,g=Ca){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:Ub++}),this.uuid=_c(),this.name="",this.source=new xm(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=a,this.wrapT=o,this.magFilter=l,this.minFilter=u,this.anisotropy=h,this.format=f,this.internalFormat=null,this.type=d,this.offset=new St(0,0),this.repeat=new St(1,1),this.center=new St(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new ht,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=g,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(e&&e.depth&&e.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(i0).x}get height(){return this.source.getSize(i0).y}get depth(){return this.source.getSize(i0).z}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(const t in e){const a=e[t];if(a===void 0){console.warn(`THREE.Texture.setValues(): parameter '${t}' has value of undefined.`);continue}const o=this[t];if(o===void 0){console.warn(`THREE.Texture.setValues(): property '${t}' does not exist.`);continue}o&&a&&o.isVector2&&a.isVector2||o&&a&&o.isVector3&&a.isVector3||o&&a&&o.isMatrix3&&a.isMatrix3?o.copy(a):this[t]=a}}toJSON(e){const t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const a={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(a.userData=this.userData),t||(e.textures[this.uuid]=a),a}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==M_)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case sp:e.x=e.x-Math.floor(e.x);break;case mr:e.x=e.x<0?0:1;break;case ap:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case sp:e.y=e.y-Math.floor(e.y);break;case mr:e.y=e.y<0?0:1;break;case ap:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}}Wn.DEFAULT_IMAGE=null;Wn.DEFAULT_MAPPING=M_;Wn.DEFAULT_ANISOTROPY=1;class cn{constructor(e=0,t=0,a=0,o=1){cn.prototype.isVector4=!0,this.x=e,this.y=t,this.z=a,this.w=o}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,a,o){return this.x=e,this.y=t,this.z=a,this.w=o,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,a=this.y,o=this.z,l=this.w,u=e.elements;return this.x=u[0]*t+u[4]*a+u[8]*o+u[12]*l,this.y=u[1]*t+u[5]*a+u[9]*o+u[13]*l,this.z=u[2]*t+u[6]*a+u[10]*o+u[14]*l,this.w=u[3]*t+u[7]*a+u[11]*o+u[15]*l,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,a,o,l;const d=e.elements,h=d[0],g=d[4],v=d[8],x=d[1],y=d[5],b=d[9],w=d[2],M=d[6],S=d[10];if(Math.abs(g-x)<.01&&Math.abs(v-w)<.01&&Math.abs(b-M)<.01){if(Math.abs(g+x)<.1&&Math.abs(v+w)<.1&&Math.abs(b+M)<.1&&Math.abs(h+y+S-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const T=(h+1)/2,R=(y+1)/2,P=(S+1)/2,I=(g+x)/4,F=(v+w)/4,V=(b+M)/4;return T>R&&T>P?T<.01?(a=0,o=.707106781,l=.707106781):(a=Math.sqrt(T),o=I/a,l=F/a):R>P?R<.01?(a=.707106781,o=0,l=.707106781):(o=Math.sqrt(R),a=I/o,l=V/o):P<.01?(a=.707106781,o=.707106781,l=0):(l=Math.sqrt(P),a=F/l,o=V/l),this.set(a,o,l,t),this}let N=Math.sqrt((M-b)*(M-b)+(v-w)*(v-w)+(x-g)*(x-g));return Math.abs(N)<.001&&(N=1),this.x=(M-b)/N,this.y=(v-w)/N,this.z=(x-g)/N,this.w=Math.acos((h+y+S-1)/2),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Tt(this.x,e.x,t.x),this.y=Tt(this.y,e.y,t.y),this.z=Tt(this.z,e.z,t.z),this.w=Tt(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=Tt(this.x,e,t),this.y=Tt(this.y,e,t),this.z=Tt(this.z,e,t),this.w=Tt(this.w,e,t),this}clampLength(e,t){const a=this.length();return this.divideScalar(a||1).multiplyScalar(Tt(a,e,t))}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=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,a){return this.x=e.x+(t.x-e.x)*a,this.y=e.y+(t.y-e.y)*a,this.z=e.z+(t.z-e.z)*a,this.w=e.w+(t.w-e.w)*a,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),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}}class Pb extends Io{constructor(e=1,t=1,a={}){super(),a=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Xi,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},a),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=a.depth,this.scissor=new cn(0,0,e,t),this.scissorTest=!1,this.viewport=new cn(0,0,e,t);const o={width:e,height:t,depth:a.depth},l=new Wn(o);this.textures=[];const u=a.count;for(let f=0;f<u;f++)this.textures[f]=l.clone(),this.textures[f].isRenderTargetTexture=!0,this.textures[f].renderTarget=this;this._setTextureOptions(a),this.depthBuffer=a.depthBuffer,this.stencilBuffer=a.stencilBuffer,this.resolveDepthBuffer=a.resolveDepthBuffer,this.resolveStencilBuffer=a.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=a.depthTexture,this.samples=a.samples,this.multiview=a.multiview}_setTextureOptions(e={}){const t={minFilter:Xi,generateMipmaps:!1,flipY:!1,internalFormat:null};e.mapping!==void 0&&(t.mapping=e.mapping),e.wrapS!==void 0&&(t.wrapS=e.wrapS),e.wrapT!==void 0&&(t.wrapT=e.wrapT),e.wrapR!==void 0&&(t.wrapR=e.wrapR),e.magFilter!==void 0&&(t.magFilter=e.magFilter),e.minFilter!==void 0&&(t.minFilter=e.minFilter),e.format!==void 0&&(t.format=e.format),e.type!==void 0&&(t.type=e.type),e.anisotropy!==void 0&&(t.anisotropy=e.anisotropy),e.colorSpace!==void 0&&(t.colorSpace=e.colorSpace),e.flipY!==void 0&&(t.flipY=e.flipY),e.generateMipmaps!==void 0&&(t.generateMipmaps=e.generateMipmaps),e.internalFormat!==void 0&&(t.internalFormat=e.internalFormat);for(let a=0;a<this.textures.length;a++)this.textures[a].setValues(t)}get texture(){return this.textures[0]}set texture(e){this.textures[0]=e}set depthTexture(e){this._depthTexture!==null&&(this._depthTexture.renderTarget=null),e!==null&&(e.renderTarget=this),this._depthTexture=e}get depthTexture(){return this._depthTexture}setSize(e,t,a=1){if(this.width!==e||this.height!==t||this.depth!==a){this.width=e,this.height=t,this.depth=a;for(let o=0,l=this.textures.length;o<l;o++)this.textures[o].image.width=e,this.textures[o].image.height=t,this.textures[o].image.depth=a,this.textures[o].isArrayTexture=this.textures[o].image.depth>1;this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,a=e.textures.length;t<a;t++){this.textures[t]=e.textures[t].clone(),this.textures[t].isRenderTargetTexture=!0,this.textures[t].renderTarget=this;const o=Object.assign({},e.textures[t].image);this.textures[t].source=new xm(o)}return this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.resolveDepthBuffer=e.resolveDepthBuffer,this.resolveStencilBuffer=e.resolveStencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Mr extends Pb{constructor(e=1,t=1,a={}){super(e,t,a),this.isWebGLRenderTarget=!0}}class U_ extends Wn{constructor(e=null,t=1,a=1,o=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:a,depth:o},this.magFilter=Ii,this.minFilter=Ii,this.wrapR=mr,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class Ob extends Wn{constructor(e=null,t=1,a=1,o=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:a,depth:o},this.magFilter=Ii,this.minFilter=Ii,this.wrapR=mr,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Sc{constructor(e=new le(1/0,1/0,1/0),t=new le(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,a=e.length;t<a;t+=3)this.expandByPoint(Ri.fromArray(e,t));return this}setFromBufferAttribute(e){this.makeEmpty();for(let t=0,a=e.count;t<a;t++)this.expandByPoint(Ri.fromBufferAttribute(e,t));return this}setFromPoints(e){this.makeEmpty();for(let t=0,a=e.length;t<a;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const a=Ri.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(a),this.max.copy(e).add(a),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.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(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,t=!1){e.updateWorldMatrix(!1,!1);const a=e.geometry;if(a!==void 0){const l=a.getAttribute("position");if(t===!0&&l!==void 0&&e.isInstancedMesh!==!0)for(let u=0,f=l.count;u<f;u++)e.isMesh===!0?e.getVertexPosition(u,Ri):Ri.fromBufferAttribute(l,u),Ri.applyMatrix4(e.matrixWorld),this.expandByPoint(Ri);else e.boundingBox!==void 0?(e.boundingBox===null&&e.computeBoundingBox(),zu.copy(e.boundingBox)):(a.boundingBox===null&&a.computeBoundingBox(),zu.copy(a.boundingBox)),zu.applyMatrix4(e.matrixWorld),this.union(zu)}const o=e.children;for(let l=0,u=o.length;l<u;l++)this.expandByObject(o[l],t);return this}containsPoint(e){return e.x>=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,Ri),Ri.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,a;return e.normal.x>0?(t=e.normal.x*this.min.x,a=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,a=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,a+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,a+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,a+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,a+=e.normal.z*this.min.z),t<=-e.constant&&a>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Fl),Vu.subVectors(this.max,Fl),no.subVectors(e.a,Fl),io.subVectors(e.b,Fl),so.subVectors(e.c,Fl),_a.subVectors(io,no),ya.subVectors(so,io),tr.subVectors(no,so);let t=[0,-_a.z,_a.y,0,-ya.z,ya.y,0,-tr.z,tr.y,_a.z,0,-_a.x,ya.z,0,-ya.x,tr.z,0,-tr.x,-_a.y,_a.x,0,-ya.y,ya.x,0,-tr.y,tr.x,0];return!s0(t,no,io,so,Vu)||(t=[1,0,0,0,1,0,0,0,1],!s0(t,no,io,so,Vu))?!1:(ju.crossVectors(_a,ya),t=[ju.x,ju.y,ju.z],s0(t,no,io,so,Vu))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Ri).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Ri).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Ss[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Ss[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Ss[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Ss[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Ss[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Ss[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Ss[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Ss[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Ss),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}}const Ss=[new le,new le,new le,new le,new le,new le,new le,new le],Ri=new le,zu=new Sc,no=new le,io=new le,so=new le,_a=new le,ya=new le,tr=new le,Fl=new le,Vu=new le,ju=new le,nr=new le;function s0(n,e,t,a,o){for(let l=0,u=n.length-3;l<=u;l+=3){nr.fromArray(n,l);const f=o.x*Math.abs(nr.x)+o.y*Math.abs(nr.y)+o.z*Math.abs(nr.z),d=e.dot(nr),h=t.dot(nr),g=a.dot(nr);if(Math.max(-Math.max(d,h,g),Math.min(d,h,g))>f)return!1}return!0}const Ib=new Sc,zl=new le,a0=new le;class _m{constructor(e=new le,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const a=this.center;t!==void 0?a.copy(t):Ib.setFromPoints(e).getCenter(a);let o=0;for(let l=0,u=e.length;l<u;l++)o=Math.max(o,a.distanceToSquared(e[l]));return this.radius=Math.sqrt(o),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){const a=this.center.distanceToSquared(e);return t.copy(e),a>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;zl.subVectors(e,this.center);const t=zl.lengthSq();if(t>this.radius*this.radius){const a=Math.sqrt(t),o=(a-this.radius)*.5;this.center.addScaledVector(zl,o/a),this.radius+=o}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(a0.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(zl.copy(e.center).add(a0)),this.expandByPoint(zl.copy(e.center).sub(a0))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}}const Ms=new le,r0=new le,Hu=new le,Sa=new le,o0=new le,ku=new le,l0=new le;class Bb{constructor(e=new le,t=new le(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Ms)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const a=t.dot(this.direction);return a<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,a)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Ms.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Ms.copy(this.origin).addScaledVector(this.direction,t),Ms.distanceToSquared(e))}distanceSqToSegment(e,t,a,o){r0.copy(e).add(t).multiplyScalar(.5),Hu.copy(t).sub(e).normalize(),Sa.copy(this.origin).sub(r0);const l=e.distanceTo(t)*.5,u=-this.direction.dot(Hu),f=Sa.dot(this.direction),d=-Sa.dot(Hu),h=Sa.lengthSq(),g=Math.abs(1-u*u);let v,x,y,b;if(g>0)if(v=u*d-f,x=u*f-d,b=l*g,v>=0)if(x>=-b)if(x<=b){const w=1/g;v*=w,x*=w,y=v*(v+u*x+2*f)+x*(u*v+x+2*d)+h}else x=l,v=Math.max(0,-(u*x+f)),y=-v*v+x*(x+2*d)+h;else x=-l,v=Math.max(0,-(u*x+f)),y=-v*v+x*(x+2*d)+h;else x<=-b?(v=Math.max(0,-(-u*l+f)),x=v>0?-l:Math.min(Math.max(-l,-d),l),y=-v*v+x*(x+2*d)+h):x<=b?(v=0,x=Math.min(Math.max(-l,-d),l),y=x*(x+2*d)+h):(v=Math.max(0,-(u*l+f)),x=v>0?l:Math.min(Math.max(-l,-d),l),y=-v*v+x*(x+2*d)+h);else x=u>0?-l:l,v=Math.max(0,-(u*x+f)),y=-v*v+x*(x+2*d)+h;return a&&a.copy(this.origin).addScaledVector(this.direction,v),o&&o.copy(r0).addScaledVector(Hu,x),y}intersectSphere(e,t){Ms.subVectors(e.center,this.origin);const a=Ms.dot(this.direction),o=Ms.dot(Ms)-a*a,l=e.radius*e.radius;if(o>l)return null;const u=Math.sqrt(l-o),f=a-u,d=a+u;return d<0?null:f<0?this.at(d,t):this.at(f,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const a=-(this.origin.dot(e.normal)+e.constant)/t;return a>=0?a:null}intersectPlane(e,t){const a=this.distanceToPlane(e);return a===null?null:this.at(a,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let a,o,l,u,f,d;const h=1/this.direction.x,g=1/this.direction.y,v=1/this.direction.z,x=this.origin;return h>=0?(a=(e.min.x-x.x)*h,o=(e.max.x-x.x)*h):(a=(e.max.x-x.x)*h,o=(e.min.x-x.x)*h),g>=0?(l=(e.min.y-x.y)*g,u=(e.max.y-x.y)*g):(l=(e.max.y-x.y)*g,u=(e.min.y-x.y)*g),a>u||l>o||((l>a||isNaN(a))&&(a=l),(u<o||isNaN(o))&&(o=u),v>=0?(f=(e.min.z-x.z)*v,d=(e.max.z-x.z)*v):(f=(e.max.z-x.z)*v,d=(e.min.z-x.z)*v),a>d||f>o)||((f>a||a!==a)&&(a=f),(d<o||o!==o)&&(o=d),o<0)?null:this.at(a>=0?a:o,t)}intersectsBox(e){return this.intersectBox(e,Ms)!==null}intersectTriangle(e,t,a,o,l){o0.subVectors(t,e),ku.subVectors(a,e),l0.crossVectors(o0,ku);let u=this.direction.dot(l0),f;if(u>0){if(o)return null;f=1}else if(u<0)f=-1,u=-u;else return null;Sa.subVectors(this.origin,e);const d=f*this.direction.dot(ku.crossVectors(Sa,ku));if(d<0)return null;const h=f*this.direction.dot(o0.cross(Sa));if(h<0||d+h>u)return null;const g=-f*Sa.dot(l0);return g<0?null:this.at(g/u,l)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class gn{constructor(e,t,a,o,l,u,f,d,h,g,v,x,y,b,w,M){gn.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,a,o,l,u,f,d,h,g,v,x,y,b,w,M)}set(e,t,a,o,l,u,f,d,h,g,v,x,y,b,w,M){const S=this.elements;return S[0]=e,S[4]=t,S[8]=a,S[12]=o,S[1]=l,S[5]=u,S[9]=f,S[13]=d,S[2]=h,S[6]=g,S[10]=v,S[14]=x,S[3]=y,S[7]=b,S[11]=w,S[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 gn().fromArray(this.elements)}copy(e){const t=this.elements,a=e.elements;return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],this}copyPosition(e){const t=this.elements,a=e.elements;return t[12]=a[12],t[13]=a[13],t[14]=a[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,a){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),a.setFromMatrixColumn(this,2),this}makeBasis(e,t,a){return this.set(e.x,t.x,a.x,0,e.y,t.y,a.y,0,e.z,t.z,a.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,a=e.elements,o=1/ao.setFromMatrixColumn(e,0).length(),l=1/ao.setFromMatrixColumn(e,1).length(),u=1/ao.setFromMatrixColumn(e,2).length();return t[0]=a[0]*o,t[1]=a[1]*o,t[2]=a[2]*o,t[3]=0,t[4]=a[4]*l,t[5]=a[5]*l,t[6]=a[6]*l,t[7]=0,t[8]=a[8]*u,t[9]=a[9]*u,t[10]=a[10]*u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,a=e.x,o=e.y,l=e.z,u=Math.cos(a),f=Math.sin(a),d=Math.cos(o),h=Math.sin(o),g=Math.cos(l),v=Math.sin(l);if(e.order==="XYZ"){const x=u*g,y=u*v,b=f*g,w=f*v;t[0]=d*g,t[4]=-d*v,t[8]=h,t[1]=y+b*h,t[5]=x-w*h,t[9]=-f*d,t[2]=w-x*h,t[6]=b+y*h,t[10]=u*d}else if(e.order==="YXZ"){const x=d*g,y=d*v,b=h*g,w=h*v;t[0]=x+w*f,t[4]=b*f-y,t[8]=u*h,t[1]=u*v,t[5]=u*g,t[9]=-f,t[2]=y*f-b,t[6]=w+x*f,t[10]=u*d}else if(e.order==="ZXY"){const x=d*g,y=d*v,b=h*g,w=h*v;
vendor: 11,543 bytes, line 64
64t[0]=x-w*f,t[4]=-u*v,t[8]=b+y*f,t[1]=y+b*f,t[5]=u*g,t[9]=w-x*f,t[2]=-u*h,t[6]=f,t[10]=u*d}else if(e.order==="ZYX"){const x=u*g,y=u*v,b=f*g,w=f*v;t[0]=d*g,t[4]=b*h-y,t[8]=x*h+w,t[1]=d*v,t[5]=w*h+x,t[9]=y*h-b,t[2]=-h,t[6]=f*d,t[10]=u*d}else if(e.order==="YZX"){const x=u*d,y=u*h,b=f*d,w=f*h;t[0]=d*g,t[4]=w-x*v,t[8]=b*v+y,t[1]=v,t[5]=u*g,t[9]=-f*g,t[2]=-h*g,t[6]=y*v+b,t[10]=x-w*v}else if(e.order==="XZY"){const x=u*d,y=u*h,b=f*d,w=f*h;t[0]=d*g,t[4]=-v,t[8]=h*g,t[1]=x*v+w,t[5]=u*g,t[9]=y*v-b,t[2]=b*v-y,t[6]=f*g,t[10]=w*v+x}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(Fb,e,zb)}lookAt(e,t,a){const o=this.elements;return ui.subVectors(e,t),ui.lengthSq()===0&&(ui.z=1),ui.normalize(),Ma.crossVectors(a,ui),Ma.lengthSq()===0&&(Math.abs(a.z)===1?ui.x+=1e-4:ui.z+=1e-4,ui.normalize(),Ma.crossVectors(a,ui)),Ma.normalize(),Gu.crossVectors(ui,Ma),o[0]=Ma.x,o[4]=Gu.x,o[8]=ui.x,o[1]=Ma.y,o[5]=Gu.y,o[9]=ui.y,o[2]=Ma.z,o[6]=Gu.z,o[10]=ui.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const a=e.elements,o=t.elements,l=this.elements,u=a[0],f=a[4],d=a[8],h=a[12],g=a[1],v=a[5],x=a[9],y=a[13],b=a[2],w=a[6],M=a[10],S=a[14],N=a[3],T=a[7],R=a[11],P=a[15],I=o[0],F=o[4],V=o[8],U=o[12],L=o[1],z=o[5],ce=o[9],ue=o[13],ge=o[2],me=o[6],j=o[10],Z=o[14],Y=o[3],he=o[7],O=o[11],ee=o[15];return l[0]=u*I+f*L+d*ge+h*Y,l[4]=u*F+f*z+d*me+h*he,l[8]=u*V+f*ce+d*j+h*O,l[12]=u*U+f*ue+d*Z+h*ee,l[1]=g*I+v*L+x*ge+y*Y,l[5]=g*F+v*z+x*me+y*he,l[9]=g*V+v*ce+x*j+y*O,l[13]=g*U+v*ue+x*Z+y*ee,l[2]=b*I+w*L+M*ge+S*Y,l[6]=b*F+w*z+M*me+S*he,l[10]=b*V+w*ce+M*j+S*O,l[14]=b*U+w*ue+M*Z+S*ee,l[3]=N*I+T*L+R*ge+P*Y,l[7]=N*F+T*z+R*me+P*he,l[11]=N*V+T*ce+R*j+P*O,l[15]=N*U+T*ue+R*Z+P*ee,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],a=e[4],o=e[8],l=e[12],u=e[1],f=e[5],d=e[9],h=e[13],g=e[2],v=e[6],x=e[10],y=e[14],b=e[3],w=e[7],M=e[11],S=e[15];return b*(+l*d*v-o*h*v-l*f*x+a*h*x+o*f*y-a*d*y)+w*(+t*d*y-t*h*x+l*u*x-o*u*y+o*h*g-l*d*g)+M*(+t*h*v-t*f*y-l*u*v+a*u*y+l*f*g-a*h*g)+S*(-o*f*g-t*d*v+t*f*x+o*u*v-a*u*x+a*d*g)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,a){const o=this.elements;return e.isVector3?(o[12]=e.x,o[13]=e.y,o[14]=e.z):(o[12]=e,o[13]=t,o[14]=a),this}invert(){const e=this.elements,t=e[0],a=e[1],o=e[2],l=e[3],u=e[4],f=e[5],d=e[6],h=e[7],g=e[8],v=e[9],x=e[10],y=e[11],b=e[12],w=e[13],M=e[14],S=e[15],N=v*M*h-w*x*h+w*d*y-f*M*y-v*d*S+f*x*S,T=b*x*h-g*M*h-b*d*y+u*M*y+g*d*S-u*x*S,R=g*w*h-b*v*h+b*f*y-u*w*y-g*f*S+u*v*S,P=b*v*d-g*w*d-b*f*x+u*w*x+g*f*M-u*v*M,I=t*N+a*T+o*R+l*P;if(I===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const F=1/I;return e[0]=N*F,e[1]=(w*x*l-v*M*l-w*o*y+a*M*y+v*o*S-a*x*S)*F,e[2]=(f*M*l-w*d*l+w*o*h-a*M*h-f*o*S+a*d*S)*F,e[3]=(v*d*l-f*x*l-v*o*h+a*x*h+f*o*y-a*d*y)*F,e[4]=T*F,e[5]=(g*M*l-b*x*l+b*o*y-t*M*y-g*o*S+t*x*S)*F,e[6]=(b*d*l-u*M*l-b*o*h+t*M*h+u*o*S-t*d*S)*F,e[7]=(u*x*l-g*d*l+g*o*h-t*x*h-u*o*y+t*d*y)*F,e[8]=R*F,e[9]=(b*v*l-g*w*l-b*a*y+t*w*y+g*a*S-t*v*S)*F,e[10]=(u*w*l-b*f*l+b*a*h-t*w*h-u*a*S+t*f*S)*F,e[11]=(g*f*l-u*v*l-g*a*h+t*v*h+u*a*y-t*f*y)*F,e[12]=P*F,e[13]=(g*w*o-b*v*o+b*a*x-t*w*x-g*a*M+t*v*M)*F,e[14]=(b*f*o-u*w*o-b*a*d+t*w*d+u*a*M-t*f*M)*F,e[15]=(u*v*o-g*f*o+g*a*d-t*v*d-u*a*x+t*f*x)*F,this}scale(e){const t=this.elements,a=e.x,o=e.y,l=e.z;return t[0]*=a,t[4]*=o,t[8]*=l,t[1]*=a,t[5]*=o,t[9]*=l,t[2]*=a,t[6]*=o,t[10]*=l,t[3]*=a,t[7]*=o,t[11]*=l,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],a=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],o=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,a,o))}makeTranslation(e,t,a){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,a,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),a=Math.sin(e);return this.set(1,0,0,0,0,t,-a,0,0,a,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),a=Math.sin(e);return this.set(t,0,a,0,0,1,0,0,-a,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),a=Math.sin(e);return this.set(t,-a,0,0,a,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const a=Math.cos(t),o=Math.sin(t),l=1-a,u=e.x,f=e.y,d=e.z,h=l*u,g=l*f;return this.set(h*u+a,h*f-o*d,h*d+o*f,0,h*f+o*d,g*f+a,g*d-o*u,0,h*d-o*f,g*d+o*u,l*d*d+a,0,0,0,0,1),this}makeScale(e,t,a){return this.set(e,0,0,0,0,t,0,0,0,0,a,0,0,0,0,1),this}makeShear(e,t,a,o,l,u){return this.set(1,a,l,0,e,1,u,0,t,o,1,0,0,0,0,1),this}compose(e,t,a){const o=this.elements,l=t._x,u=t._y,f=t._z,d=t._w,h=l+l,g=u+u,v=f+f,x=l*h,y=l*g,b=l*v,w=u*g,M=u*v,S=f*v,N=d*h,T=d*g,R=d*v,P=a.x,I=a.y,F=a.z;return o[0]=(1-(w+S))*P,o[1]=(y+R)*P,o[2]=(b-T)*P,o[3]=0,o[4]=(y-R)*I,o[5]=(1-(x+S))*I,o[6]=(M+N)*I,o[7]=0,o[8]=(b+T)*F,o[9]=(M-N)*F,o[10]=(1-(x+w))*F,o[11]=0,o[12]=e.x,o[13]=e.y,o[14]=e.z,o[15]=1,this}decompose(e,t,a){const o=this.elements;let l=ao.set(o[0],o[1],o[2]).length();const u=ao.set(o[4],o[5],o[6]).length(),f=ao.set(o[8],o[9],o[10]).length();this.determinant()<0&&(l=-l),e.x=o[12],e.y=o[13],e.z=o[14],Ni.copy(this);const h=1/l,g=1/u,v=1/f;return Ni.elements[0]*=h,Ni.elements[1]*=h,Ni.elements[2]*=h,Ni.elements[4]*=g,Ni.elements[5]*=g,Ni.elements[6]*=g,Ni.elements[8]*=v,Ni.elements[9]*=v,Ni.elements[10]*=v,t.setFromRotationMatrix(Ni),a.x=l,a.y=u,a.z=f,this}makePerspective(e,t,a,o,l,u,f=Rs){const d=this.elements,h=2*l/(t-e),g=2*l/(a-o),v=(t+e)/(t-e),x=(a+o)/(a-o);let y,b;if(f===Rs)y=-(u+l)/(u-l),b=-2*u*l/(u-l);else if(f===Ef)y=-u/(u-l),b=-u*l/(u-l);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+f);return d[0]=h,d[4]=0,d[8]=v,d[12]=0,d[1]=0,d[5]=g,d[9]=x,d[13]=0,d[2]=0,d[6]=0,d[10]=y,d[14]=b,d[3]=0,d[7]=0,d[11]=-1,d[15]=0,this}makeOrthographic(e,t,a,o,l,u,f=Rs){const d=this.elements,h=1/(t-e),g=1/(a-o),v=1/(u-l),x=(t+e)*h,y=(a+o)*g;let b,w;if(f===Rs)b=(u+l)*v,w=-2*v;else if(f===Ef)b=l*v,w=-1*v;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+f);return d[0]=2*h,d[4]=0,d[8]=0,d[12]=-x,d[1]=0,d[5]=2*g,d[9]=0,d[13]=-y,d[2]=0,d[6]=0,d[10]=w,d[14]=-b,d[3]=0,d[7]=0,d[11]=0,d[15]=1,this}equals(e){const t=this.elements,a=e.elements;for(let o=0;o<16;o++)if(t[o]!==a[o])return!1;return!0}fromArray(e,t=0){for(let a=0;a<16;a++)this.elements[a]=e[a+t];return this}toArray(e=[],t=0){const a=this.elements;return e[t]=a[0],e[t+1]=a[1],e[t+2]=a[2],e[t+3]=a[3],e[t+4]=a[4],e[t+5]=a[5],e[t+6]=a[6],e[t+7]=a[7],e[t+8]=a[8],e[t+9]=a[9],e[t+10]=a[10],e[t+11]=a[11],e[t+12]=a[12],e[t+13]=a[13],e[t+14]=a[14],e[t+15]=a[15],e}}const ao=new le,Ni=new gn,Fb=new le(0,0,0),zb=new le(1,1,1),Ma=new le,Gu=new le,ui=new le,$v=new gn,Jv=new yc;class Ps{constructor(e=0,t=0,a=0,o=Ps.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=a,this._order=o}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,a,o=this._order){return this._x=e,this._y=t,this._z=a,this._order=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,a=!0){const o=e.elements,l=o[0],u=o[4],f=o[8],d=o[1],h=o[5],g=o[9],v=o[2],x=o[6],y=o[10];switch(t){case"XYZ":this._y=Math.asin(Tt(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(-g,y),this._z=Math.atan2(-u,l)):(this._x=Math.atan2(x,h),this._z=0);break;case"YXZ":this._x=Math.asin(-Tt(g,-1,1)),Math.abs(g)<.9999999?(this._y=Math.atan2(f,y),this._z=Math.atan2(d,h)):(this._y=Math.atan2(-v,l),this._z=0);break;case"ZXY":this._x=Math.asin(Tt(x,-1,1)),Math.abs(x)<.9999999?(this._y=Math.atan2(-v,y),this._z=Math.atan2(-u,h)):(this._y=0,this._z=Math.atan2(d,l));break;case"ZYX":this._y=Math.asin(-Tt(v,-1,1)),Math.abs(v)<.9999999?(this._x=Math.atan2(x,y),this._z=Math.atan2(d,l)):(this._x=0,this._z=Math.atan2(-u,h));break;case"YZX":this._z=Math.asin(Tt(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(-g,h),this._y=Math.atan2(-v,l)):(this._x=0,this._y=Math.atan2(f,y));break;case"XZY":this._z=Math.asin(-Tt(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(x,h),this._y=Math.atan2(f,l)):(this._x=Math.atan2(-g,y),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,a===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,a){return $v.makeRotationFromQuaternion(e),this.setFromRotationMatrix($v,t,a)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Jv.setFromEuler(this),this.setFromQuaternion(Jv,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Ps.DEFAULT_ORDER="XYZ";class P_{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}}let Vb=0;const e3=new le,ro=new yc,bs=new gn,Wu=new le,Vl=new le,jb=new le,Hb=new yc,t3=new le(1,0,0),n3=new le(0,1,0),i3=new le(0,0,1),s3={type:"added"},kb={type:"removed"},oo={type:"childadded",child:null},c0={type:"childremoved",child:null};class ti extends Io{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:Vb++}),this.uuid=_c(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=ti.DEFAULT_UP.clone();const e=new le,t=new Ps,a=new yc,o=new le(1,1,1);function l(){a.setFromEuler(t,!1)}function u(){t.setFromQuaternion(a,void 0,!1)}t._onChange(l),a._onChange(u),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:a},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new gn},normalMatrix:{value:new ht}}),this.matrix=new gn,this.matrixWorld=new gn,this.matrixAutoUpdate=ti.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=ti.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new P_,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}
vendor: 4,289 bytes, line 64
64setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return ro.setFromAxisAngle(e,t),this.quaternion.multiply(ro),this}rotateOnWorldAxis(e,t){return ro.setFromAxisAngle(e,t),this.quaternion.premultiply(ro),this}rotateX(e){return this.rotateOnAxis(t3,e)}rotateY(e){return this.rotateOnAxis(n3,e)}rotateZ(e){return this.rotateOnAxis(i3,e)}translateOnAxis(e,t){return e3.copy(e).applyQuaternion(this.quaternion),this.position.add(e3.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(t3,e)}translateY(e){return this.translateOnAxis(n3,e)}translateZ(e){return this.translateOnAxis(i3,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(bs.copy(this.matrixWorld).invert())}lookAt(e,t,a){e.isVector3?Wu.copy(e):Wu.set(e,t,a);const o=this.parent;this.updateWorldMatrix(!0,!1),Vl.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?bs.lookAt(Vl,Wu,this.up):bs.lookAt(Wu,Vl,this.up),this.quaternion.setFromRotationMatrix(bs),o&&(bs.extractRotation(o.matrixWorld),ro.setFromRotationMatrix(bs),this.quaternion.premultiply(ro.invert()))}add(e){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.removeFromParent(),e.parent=this,this.children.push(e),e.dispatchEvent(s3),oo.child=e,this.dispatchEvent(oo),oo.child=null):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let a=0;a<arguments.length;a++)this.remove(arguments[a]);return this}const t=this.children.indexOf(e);return t!==-1&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(kb),c0.child=e,this.dispatchEvent(c0),c0.child=null),this}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}clear(){return this.remove(...this.children)}attach(e){return this.updateWorldMatrix(!0,!1),bs.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),bs.multiply(e.parent.matrixWorld)),e.applyMatrix4(bs),e.removeFromParent(),e.parent=this,this.children.push(e),e.updateWorldMatrix(!1,!0),e.dispatchEvent(s3),oo.child=e,this.dispatchEvent(oo),oo.child=null,this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let a=0,o=this.children.length;a<o;a++){const u=this.children[a].getObjectByProperty(e,t);if(u!==void 0)return u}}getObjectsByProperty(e,t,a=[]){this[e]===t&&a.push(this);const o=this.children;for(let l=0,u=o.length;l<u;l++)o[l].getObjectsByProperty(e,t,a);return a}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Vl,e,jb),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Vl,Hb,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let a=0,o=t.length;a<o;a++)t[a].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);const t=this.children;for(let a=0,o=t.length;a<o;a++)t[a].traverseVisible(e)}traverseAncestors(e){const t=this.parent;t!==null&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,e=!0);const t=this.children;for(let a=0,o=t.length;a<o;a++)t[a].updateMatrixWorld(e)}updateWorldMatrix(e,t){const a=this.parent;if(e===!0&&a!==null&&a.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix
vendor: 5,435 bytes, line 64
64):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),t===!0){const o=this.children;for(let l=0,u=o.length;l<u;l++)o[l].updateWorldMatrix(!1,!0)}}toJSON(e){const t=e===void 0||typeof e=="string",a={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},a.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});const o={};o.uuid=this.uuid,o.type=this.type,this.name!==""&&(o.name=this.name),this.castShadow===!0&&(o.castShadow=!0),this.receiveShadow===!0&&(o.receiveShadow=!0),this.visible===!1&&(o.visible=!1),this.frustumCulled===!1&&(o.frustumCulled=!1),this.renderOrder!==0&&(o.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(o.userData=this.userData),o.layers=this.layers.mask,o.matrix=this.matrix.toArray(),o.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(o.matrixAutoUpdate=!1),this.isInstancedMesh&&(o.type="InstancedMesh",o.count=this.count,o.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(o.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(o.type="BatchedMesh",o.perObjectFrustumCulled=this.perObjectFrustumCulled,o.sortObjects=this.sortObjects,o.drawRanges=this._drawRanges,o.reservedRanges=this._reservedRanges,o.geometryInfo=this._geometryInfo.map(f=>({...f,boundingBox:f.boundingBox?f.boundingBox.toJSON():void 0,boundingSphere:f.boundingSphere?f.boundingSphere.toJSON():void 0})),o.instanceInfo=this._instanceInfo.map(f=>({...f})),o.availableInstanceIds=this._availableInstanceIds.slice(),o.availableGeometryIds=this._availableGeometryIds.slice(),o.nextIndexStart=this._nextIndexStart,o.nextVertexStart=this._nextVertexStart,o.geometryCount=this._geometryCount,o.maxInstanceCount=this._maxInstanceCount,o.maxVertexCount=this._maxVertexCount,o.maxIndexCount=this._maxIndexCount,o.geometryInitialized=this._geometryInitialized,o.matricesTexture=this._matricesTexture.toJSON(e),o.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(o.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(o.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(o.boundingBox=this.boundingBox.toJSON()));function l(f,d){return f[d.uuid]===void 0&&(f[d.uuid]=d.toJSON(e)),d.uuid}if(this.isScene)this.background&&(this.background.isColor?o.background=this.background.toJSON():this.background.isTexture&&(o.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(o.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){o.geometry=l(e.geometries,this.geometry);const f=this.geometry.parameters;if(f!==void 0&&f.shapes!==void 0){const d=f.shapes;if(Array.isArray(d))for(let h=0,g=d.length;h<g;h++){const v=d[h];l(e.shapes,v)}else l(e.shapes,d)}}if(this.isSkinnedMesh&&(o.bindMode=this.bindMode,o.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(l(e.skeletons,this.skeleton),o.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const f=[];for(let d=0,h=this.material.length;d<h;d++)f.push(l(e.materials,this.material[d]));o.material=f}else o.material=l(e.materials,this.material);if(this.children.length>0){o.children=[];for(let f=0;f<this.children.length;f++)o.children.push(this.children[f].toJSON(e).object)}if(this.animations.length>0){o.animations=[];for(let f=0;f<this.animations.length;f++){const d=this.animations[f];o.animations.push(l(e.animations,d))}}if(t){const f=u(e.geometries),d=u(e.materials),h=u(e.textures),g=u(e.images),v=u(e.shapes),x=u(e.skeletons),y=u(e.animations),b=u(e.nodes);f.length>0&&(a.geometries=f),d.length>0&&(a.materials=d),h.length>0&&(a.textures=h),g.length>0&&(a.images=g),v.length>0&&(a.shapes=v),x.length>0&&(a.skeletons=x),y.length>0&&(a.animations=y),b.length>0&&(a.nodes=b)}return a.object=o,a;function u(f){const d=[];for(const h in f){const g=f[h];delete g.metadata,d.push(g)}return d}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let a=0;a<e.children.length;a++){const o=e.children[a];this.add(o.clone())}return this}}ti.DEFAULT_UP=new le(0,1,0);ti.DEFAULT_MATRIX_AUTO_UPDATE=!0;ti.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const Li=new le,Es=new le,u0=new le,ws=new le,lo=new le,co=new le,a3=new le,f0=new le,d0=new le,h0=new le,p0=new cn,m0=new cn,g0=new cn;class Pi{constructor(e=new le,t=new le,a=new le){this.a=e,this.b=t,this.c=a}static getNormal(e,t,a,o){o.subVectors(a,t),Li.subVectors(e,t),o.cross(Li);const l=o.lengthSq();return l>0?o.multiplyScalar(1/Math.sqrt(l)):o.set(0,0,0)}static getBarycoord(e,t,a,o,l){Li.subVectors(o,t),Es.subVectors(a,t),u0.subVectors(e,t);const u=Li.dot(Li),f=Li.dot(Es),d=Li.dot(u0),h=Es.dot(Es),g=Es.dot(u0),v=u*
vendor: 5,757 bytes, line 64
64h-f*f;if(v===0)return l.set(0,0,0),null;const x=1/v,y=(h*d-f*g)*x,b=(u*g-f*d)*x;return l.set(1-y-b,b,y)}static containsPoint(e,t,a,o){return this.getBarycoord(e,t,a,o,ws)===null?!1:ws.x>=0&&ws.y>=0&&ws.x+ws.y<=1}static getInterpolation(e,t,a,o,l,u,f,d){return this.getBarycoord(e,t,a,o,ws)===null?(d.x=0,d.y=0,"z"in d&&(d.z=0),"w"in d&&(d.w=0),null):(d.setScalar(0),d.addScaledVector(l,ws.x),d.addScaledVector(u,ws.y),d.addScaledVector(f,ws.z),d)}static getInterpolatedAttribute(e,t,a,o,l,u){return p0.setScalar(0),m0.setScalar(0),g0.setScalar(0),p0.fromBufferAttribute(e,t),m0.fromBufferAttribute(e,a),g0.fromBufferAttribute(e,o),u.setScalar(0),u.addScaledVector(p0,l.x),u.addScaledVector(m0,l.y),u.addScaledVector(g0,l.z),u}static isFrontFacing(e,t,a,o){return Li.subVectors(a,t),Es.subVectors(e,t),Li.cross(Es).dot(o)<0}set(e,t,a){return this.a.copy(e),this.b.copy(t),this.c.copy(a),this}setFromPointsAndIndices(e,t,a,o){return this.a.copy(e[t]),this.b.copy(e[a]),this.c.copy(e[o]),this}setFromAttributeAndIndices(e,t,a,o){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,a),this.c.fromBufferAttribute(e,o),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Li.subVectors(this.c,this.b),Es.subVectors(this.a,this.b),Li.cross(Es).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Pi.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Pi.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,a,o,l){return Pi.getInterpolation(e,this.a,this.b,this.c,t,a,o,l)}containsPoint(e){return Pi.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Pi.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const a=this.a,o=this.b,l=this.c;let u,f;lo.subVectors(o,a),co.subVectors(l,a),f0.subVectors(e,a);const d=lo.dot(f0),h=co.dot(f0);if(d<=0&&h<=0)return t.copy(a);d0.subVectors(e,o);const g=lo.dot(d0),v=co.dot(d0);if(g>=0&&v<=g)return t.copy(o);const x=d*v-g*h;if(x<=0&&d>=0&&g<=0)return u=d/(d-g),t.copy(a).addScaledVector(lo,u);h0.subVectors(e,l);const y=lo.dot(h0),b=co.dot(h0);if(b>=0&&y<=b)return t.copy(l);const w=y*h-d*b;if(w<=0&&h>=0&&b<=0)return f=h/(h-b),t.copy(a).addScaledVector(co,f);const M=g*b-y*v;if(M<=0&&v-g>=0&&y-b>=0)return a3.subVectors(l,o),f=(v-g)/(v-g+(y-b)),t.copy(o).addScaledVector(a3,f);const S=1/(M+w+x);return u=w*S,f=x*S,t.copy(a).addScaledVector(lo,u).addScaledVector(co,f)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const O_={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},ba={h:0,s:0,l:0},Xu={h:0,s:0,l:0};function v0(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}class Fe{constructor(e,t,a){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,a)}set(e,t,a){if(t===void 0&&a===void 0){const o=e;o&&o.isColor?this.copy(o):typeof o=="number"?this.setHex(o):typeof o=="str
64ing"&&this.setStyle(o)}else this.setRGB(e,t,a);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=hi){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Lt.colorSpaceToWorking(this,t),this}setRGB(e,t,a,o=Lt.workingColorSpace){return this.r=e,this.g=t,this.b=a,Lt.colorSpaceToWorking(this,o),this}setHSL(e,t,a,o=Lt.workingColorSpace){if(e=wb(e,1),t=Tt(t,0,1),a=Tt(a,0,1),t===0)this.r=this.g=this.b=a;else{const l=a<=.5?a*(1+t):a+t-a*t,u=2*a-l;this.r=v0(u,l,e+1/3),this.g=v0(u,l,e),this.b=v0(u,l,e-1/3)}return Lt.colorSpaceToWorking(this,o),this}setStyle(e,t=hi){function a(l){l!==void 0&&parseFloat(l)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let o;if(o=/^(\w+)\(([^\)]*)\)/.exec(e)){let l;const u=o[1],f=o[2];switch(u){case"rgb":case"rgba":if(l=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(f))return a(l[4]),this.setRGB(Math.min(255,parseInt(l[1],10))/255,Math.min(255,parseInt(l[2],10))/255,Math.min(255,parseInt(l[3],10))/255,t);if(l=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(f))return a(l[4]),this.setRGB(Math.min(100,parseInt(l[1],10))/100,Math.min(100,parseInt(l[2],10))/100,Math.min(100,parseInt(l[3],10))/100,t);break;case"hsl":case"hsla":if(l=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(f))return a(l[4]),this.setHSL(parseFloat(l[1])/360,parseFloat(l[2])/100,parseFloat(l[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(o=/^\#([A-Fa-f\d]+)$/.exec(e)){const l=o[1],u=l.length;if(u===3)return this.setRGB(parseInt(l.charAt(0),16)/15,parseInt(l.charAt(1),16)/15,parseInt(l.charAt(2),16)/15,t);if(u===6)return this.setHex(parseInt(l,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=hi){const a=O_[e.toLowerCase()];return a!==void 0?this.setHex(a,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Ls(e.r),this.g=Ls(e.g),this.b=Ls(e.b),this}copyLinearToSRGB(e){return this.r=Eo(e.r),this.g=Eo(e.g),this.b=Eo(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=hi){return Lt.workingToColorSpace(Vn.copy(this),e),Math.round(Tt(Vn.r*255,0,255))*65536+Math.round(Tt(Vn.g*255,0,255))*256+Math.round(Tt(Vn.b*255,0,255))}getHexString(e=hi){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Lt.workingColorSpace){Lt.workingToColorSpace(Vn.copy(this),t);const a=Vn.r,o=Vn.g,l=Vn.b,u=Math.max(a,o,l),f=Math.min(a,o,l);let d,h;const g=(f+u)/2;if(f===u)d=0,h=0;else{const v=u-f;switch(h=g<=.5?v/(u+f):v/(2-u-f),u){case a:d=(o-l)/v+(o<l?6:0);break;case o:d=(l-a)/v+2;break;case l:d=(a-o)/v+4;break}d/=6}return e.h=d,e.s=h,e.l=g,e}getRGB(e,t=Lt.workingColorSpace){return Lt.workingToColorSpace(Vn.copy(this),t),e.r=Vn.r,e.g=Vn.g,e.b=Vn.b,e}getStyle(e=hi){Lt.workingToColorSpace(Vn.copy(this),e);const t=Vn.r,a=Vn.g,o=Vn.b;return e!==hi?`color(${e} ${t.toFixed(3)} ${a.toFixed(3)} ${o.toFixed(3)})`:`rgb(${Math.round(t*255)},${Math.round(a*255)},${Math.round(o*255)})`}offsetHSL(e,t,a){return this.getHSL(ba),this.setHSL(ba.h+e,ba.s+t,ba.l+a)}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,a){return this.r=e.r+(t.r-e.r)*a,this.g=e.g+(t.g-e.g)*a,this.b=e.b+(t.b-e.b)*a,this}lerpHSL(e,t){this.getHSL(ba),e.getHSL(Xu);const a=Jh(ba.h,Xu.h,t),o=Jh(ba.s,Xu.s,t),l=Jh(ba.l,Xu.l,t);return this.setHSL(a,o,l),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){const t=this.r,a=this.g,o=this.b,l=e.elements;return this.r=l[0]*t+l[3]*a+l[6]*o,this.g=l[1]*t+l[4]*a+l[7]*o,this.b=l[2]*t+l[5]*a+l[8]*o,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const Vn=new Fe;Fe.NAMES=O_;let Gb=0;class If extends Io{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Gb++}),this.uuid=_c(),this.name="",this.type="Material",this.blending=Mo,this.side=Na,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=q0,this.blendDst=Y0,this.blendEquation=dr,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Fe(0,0,0),this.blendAlpha=0,this.depthFunc=To,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Wv,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=eo,this.stencilZFail=eo,this.stencilZPass=eo,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.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const a=e[t];if(a===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const o=this[t];if(o===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}o&&o.isColor?o.set(a):o&&o.isVector3&&a&&a.isVector3?o.copy(a):this[t]=a}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const a={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};
vendor: 6,463 bytes, line 64
64a.uuid=this.uuid,a.type=this.type,this.name!==""&&(a.name=this.name),this.color&&this.color.isColor&&(a.color=this.color.getHex()),this.roughness!==void 0&&(a.roughness=this.roughness),this.metalness!==void 0&&(a.metalness=this.metalness),this.sheen!==void 0&&(a.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(a.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(a.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(a.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(a.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(a.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(a.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(a.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(a.shininess=this.shininess),this.clearcoat!==void 0&&(a.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(a.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(a.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(a.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(a.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,a.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(a.dispersion=this.dispersion),this.iridescence!==void 0&&(a.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(a.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(a.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(a.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(a.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(a.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(a.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(a.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(a.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(a.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(a.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(a.lightMap=this.lightMap.toJSON(e).uuid,a.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(a.aoMap=this.aoMap.toJSON(e).uuid,a.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(a.bumpMap=this.bumpMap.toJSON(e).uuid,a.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(a.normalMap=this.normalMap.toJSON(e).uuid,a.normalMapType=this.normalMapType,a.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(a.displacementMap=this.displacementMap.toJSON(e).uuid,a.displacementScale=this.displacementScale,a.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(a.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(a.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(a.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(a.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(a.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(a.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(a.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(a.combine=this.combine)),this.envMapRotation!==void 0&&(a.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(a.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(a.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(a.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(a.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(a.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(a.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(a.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(a.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(a.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(a.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(a.size=this.size),this.shadowSide!==null&&(a.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(a.sizeAttenuation=this.sizeAttenuation),this.blending!==Mo&&(a.blending=this.blending),this.side!==Na&&(a.side=this.side),this.vertexColors===!0&&(a.vertexColors=!0),this.opacity<1&&(a.opacity=this.opacity),this.transparent===!0&&(a.transparent=!0),this.blendSrc!==q0&&(a.blendSrc=this.blendSrc),this.blendDst!==Y0&&(a.blendDst=this.blendDst),this.blendEquation!==dr&&(a.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(a.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(a.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(a.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(a.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(a.blendAlpha=this.blendAlpha),this.depthFunc!==To&&(a.depthFunc=this.depthFunc),this.depthTest===!1&&(a.depthTest=this.depthTest),this.depthWrite===!1&&(a.depthWrite=this.depthWrite),this.colorWrite===!1&&(a.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(a.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Wv&&(a.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(a.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(a.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==eo&&(a.stencilFail=this.stencilFail),this.stencilZFail!==eo&&(a.stencilZFail=this.stencilZFail),this.stencilZPass!==eo&&(a.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(a.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(a.rotation=this.rotation),this.polygonOffset===!0&&(a.pol
vendor: 9,781 bytes, line 64
64ygonOffset=!0),this.polygonOffsetFactor!==0&&(a.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(a.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(a.linewidth=this.linewidth),this.dashSize!==void 0&&(a.dashSize=this.dashSize),this.gapSize!==void 0&&(a.gapSize=this.gapSize),this.scale!==void 0&&(a.scale=this.scale),this.dithering===!0&&(a.dithering=!0),this.alphaTest>0&&(a.alphaTest=this.alphaTest),this.alphaHash===!0&&(a.alphaHash=!0),this.alphaToCoverage===!0&&(a.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(a.premultipliedAlpha=!0),this.forceSinglePass===!0&&(a.forceSinglePass=!0),this.wireframe===!0&&(a.wireframe=!0),this.wireframeLinewidth>1&&(a.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(a.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(a.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(a.flatShading=!0),this.visible===!1&&(a.visible=!1),this.toneMapped===!1&&(a.toneMapped=!1),this.fog===!1&&(a.fog=!1),Object.keys(this.userData).length>0&&(a.userData=this.userData);function o(l){const u=[];for(const f in l){const d=l[f];delete d.metadata,u.push(d)}return u}if(t){const l=o(e.textures),u=o(e.images);l.length>0&&(a.textures=l),u.length>0&&(a.images=u)}return a}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let a=null;if(t!==null){const o=t.length;a=new Array(o);for(let l=0;l!==o;++l)a[l]=t[l].clone()}return this.clippingPlanes=a,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class ym extends If{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Fe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Ps,this.combine=S_,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const hn=new le,qu=new St;let Wb=0;class qi{constructor(e,t,a=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:Wb++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=a,this.usage=Xv,this.updateRanges=[],this.gpuType=As,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,a){e*=this.itemSize,a*=t.itemSize;for(let o=0,l=this.itemSize;o<l;o++)this.array[e+o]=t.array[a+o];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let t=0,a=this.count;t<a;t++)qu.fromBufferAttribute(this,t),qu.applyMatrix3(e),this.setXY(t,qu.x,qu.y);else if(this.itemSize===3)for(let t=0,a=this.count;t<a;t++)hn.fromBufferAttribute(this,t),hn.applyMatrix3(e),this.setXYZ(t,hn.x,hn.y,hn.z);return this}applyMatrix4(e){for(let t=0,a=this.count;t<a;t++)hn.fromBufferAttribute(this,t),hn.applyMatrix4(e),this.setXYZ(t,hn.x,hn.y,hn.z);return this}applyNormalMatrix(e){for(let t=0,a=this.count;t<a;t++)hn.fromBufferAttribute(this,t),hn.applyNormalMatrix(e),this.setXYZ(t,hn.x,hn.y,hn.z);return this}transformDirection(e){for(let t=0,a=this.count;t<a;t++)hn.fromBufferAttribute(this,t),hn.transformDirection(e),this.setXYZ(t,hn.x,hn.y,hn.z);return this}set(e,t=0){return this.array.set(e,t),this}getComponent(e,t){let a=this.array[e*this.itemSize+t];return this.normalized&&(a=Bl(a,this.array)),a}setComponent(e,t,a){return this.normalized&&(a=Qn(a,this.array)),this.array[e*this.itemSize+t]=a,this}getX(e){let t=this.array[e*this.itemSize];return this.normalized&&(t=Bl(t,this.array)),t}setX(e,t){return this.normalized&&(t=Qn(t,this.array)),this.array[e*this.itemSize]=t,this}getY(e){let t=this.array[e*this.itemSize+1];return this.normalized&&(t=Bl(t,this.array)),t}setY(e,t){return this.normalized&&(t=Qn(t,this.array)),this.array[e*this.itemSize+1]=t,this}getZ(e){let t=this.array[e*this.itemSize+2];return this.normalized&&(t=Bl(t,this.array)),t}setZ(e,t){return this.normalized&&(t=Qn(t,this.array)),this.array[e*this.itemSize+2]=t,this}getW(e){let t=this.array[e*this.itemSize+3];return this.normalized&&(t=Bl(t,this.array)),t}setW(e,t){return this.normalized&&(t=Qn(t,this.array)),this.array[e*this.itemSize+3]=t,this}setXY(e,t,a){return e*=this.itemSize,this.normalized&&(t=Qn(t,this.array),a=Qn(a,this.array)),this.array[e+0]=t,this.array[e+1]=a,this}setXYZ(e,t,a,o){return e*=this.itemSize,this.normalized&&(t=Qn(t,this.array),a=Qn(a,this.array),o=Qn(o,this.array)),this.array[e+0]=t,this.array[e+1]=a,this.array[e+2]=o,this}setXYZW(e,t,a,o,l){return e*=this.itemSize,this.normalized&&(t=Qn(t,this.array),a=Qn(a,this.array),o=Qn(o,this.array),l=Qn(l,this.array)),this.array[e+0]=t,this.array[e+1]=a,this.array[e+2]=o,this.array[e+3]=l,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==Xv&&(e.usage=this.usage),e}}class I_ extends qi{constructor(e,t,a){super(new Uint16Array(e),t,a)}}class B_ extends qi{constructor(e,t,a){super(new Uint32Array(e),t,a)}}class Yi extends qi{constructor(e,t,a){super(new Float32Array(e),t,a)}}let Xb=0;const Mi=new gn,x0=new ti,uo=new le,fi=new Sc,jl=new Sc,Rn=new le;class Ua extends Io{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:Xb++}),this.uuid=_c(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=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(e){return Array.isArray(e)?this.index=new(D_(e)?B_:I_)(e,1):this.index=e,this}setIndirect(e){return this.indirect=e,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,a=0){this.groups.push({start:e,count:t,materialIndex:a})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){const t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);const a=this.attributes.normal;if(a!==void 0){const l=new ht().getNormalMatrix(e);a.applyNormalMatrix(l),a.needsUpdate=!0}const o=this.attributes.tangent;return o!==void 0&&(o.transformDirection(e),o.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return Mi.makeRotationFromQuaternion(e),this.applyMatrix4(Mi),this}rotateX(e){return Mi.makeRotationX(e),this.applyMatrix4(Mi),this}rotateY(e){return Mi.makeRotationY(e),this.applyMatrix4(Mi),this}rotateZ(e){return Mi.makeRotationZ(e),this.applyMatrix4(Mi),this}translate(e,t,a){return Mi.makeTranslation(e,t,a),this.applyMatrix4(Mi),this}scale(e,t,a){return Mi.makeScale(e,t,a),this.applyMatrix4(Mi),this}lookAt(e){return x0.lookAt(e),x0.updateMatrix(),this.applyMatrix4(x0.matrix
vendor: 4,742 bytes, line 64
64),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(uo).negate(),this.translate(uo.x,uo.y,uo.z),this}setFromPoints(e){const t=this.getAttribute("position");if(t===void 0){const a=[];for(let o=0,l=e.length;o<l;o++){const u=e[o];a.push(u.x,u.y,u.z||0)}this.setAttribute("position",new Yi(a,3))}else{const a=Math.min(e.length,t.count);for(let o=0;o<a;o++){const l=e[o];t.setXYZ(o,l.x,l.y,l.z||0)}e.length>t.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Sc);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new le(-1/0,-1/0,-1/0),new le(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let a=0,o=t.length;a<o;a++){const l=t[a];fi.setFromBufferAttribute(l),this.morphTargetsRelative?(Rn.addVectors(this.boundingBox.min,fi.min),this.boundingBox.expandByPoint(Rn),Rn.addVectors(this.boundingBox.max,fi.max),this.boundingBox.expandByPoint(Rn)):(this.boundingBox.expandByPoint(fi.min),this.boundingBox.expandByPoint(fi.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new _m);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),this.boundingSphere.set(new le,1/0);return}if(e){const a=this.boundingSphere.center;if(fi.setFromBufferAttribute(e),t)for(let l=0,u=t.length;l<u;l++){const f=t[l];jl.setFromBufferAttribute(f),this.morphTargetsRelative?(Rn.addVectors(fi.min,jl.min),fi.expandByPoint(Rn),Rn.addVectors(fi.max,jl.max),fi.expandByPoint(Rn)):(fi.expandByPoint(jl.min),fi.expandByPoint(jl.max))}fi.getCenter(a);let o=0;for(let l=0,u=e.count;l<u;l++)Rn.fromBufferAttribute(e,l),o=Math.max(o,a.distanceToSquared(Rn));if(t)for(let l=0,u=t.length;l<u;l++){const f=t[l],d=this.morphTargetsRelative;for(let h=0,g=f.count;h<g;h++)Rn.fromBufferAttribute(f,h),d&&(uo.fromBufferAttribute(e,h),Rn.add(uo)),o=Math.max(o,a.distanceToSquared(Rn))}this.boundingSphere.radius=Math.sqrt(o),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 e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const a=t.position,o=t.normal,l=t.uv;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new qi(new Float32Array(4*a.count),4));const u=this.getAttribute("tangent"),f=[],d=[];for(let V=0;V<a.count;V++)f[V]=new le,d[V]=new le;const h=new le,g=new le,v=new le,x=new St,y=new St,b=new St,w=new le,M=new le;function S(V,U,L){h.fromBufferAttribute(a,V),g.fromBufferAttribute(a,U),v.fromBufferAttribute(a,L),x.fromBufferAttribute(l,V),y.fromBufferAttribute(l,U),b.fromBufferAttribute(l,L),g.sub(h),v.sub(h),y.sub(x),b.sub(x);const z=1/(y.x*b.y-b.x*y.y);isFinite(z)&&(w.copy(g).multiplyScalar(b.y).addScaledVector(v,-y.y).multiplyScalar(z),M.copy(v).multiplyScalar(y.x).addScaledVector(g,-b.x).multiplyScalar(z),f[V].add(w),f[U].add(w),f[L].add(w),d[V].add(M),d[U].add(M),d[L].add(M))}let N=this.groups;N.length===0&&(N=[{start:0,count:e.count}]);for(let V=0,U=N.length;V<U;++V){const L=N[V],z=L.start,ce=L.count;for(let ue=z,ge=z+ce;ue<ge;ue+=3)S(e.getX(ue+0),e.getX(ue+1),e.getX(ue+2))}const T=new le,R=new le,P=new le,I=new le;function F(V){P.fromBufferAttribute(o,V),I.copy(P);const U=f[V];T.copy(U),T.sub(P.multiplyScalar(P.dot(U))).normalize(),R.crossVectors(I,U);const z=R.dot(d[V])<0?-1:1;u.setXYZW(V,T.x,T.y,T.z,z)}for(let V=0,U=N.length;V<U;++V){const L=N[V],z=L.start,ce=L.count;for(let ue=z,ge=z+ce;ue<ge;ue+=3)F(e.getX(ue+0)),F(e.getX(ue+1)),F(e.getX(ue+2))}}computeVertexNormals(){const e=this.index,t=this.getAttribute("position");if(t!==void 0){let a=this.getAttribute("normal");if(a===void 0)a=new qi(new Float32Array(t.count*3),3),this.setAttribute("normal",a);else for(let x=0,y=a.count;x<y;x++)a.setXYZ(x,0,0,0);
vendor: 6,299 bytes, line 64
64const o=new le,l=new le,u=new le,f=new le,d=new le,h=new le,g=new le,v=new le;if(e)for(let x=0,y=e.count;x<y;x+=3){const b=e.getX(x+0),w=e.getX(x+1),M=e.getX(x+2);o.fromBufferAttribute(t,b),l.fromBufferAttribute(t,w),u.fromBufferAttribute(t,M),g.subVectors(u,l),v.subVectors(o,l),g.cross(v),f.fromBufferAttribute(a,b),d.fromBufferAttribute(a,w),h.fromBufferAttribute(a,M),f.add(g),d.add(g),h.add(g),a.setXYZ(b,f.x,f.y,f.z),a.setXYZ(w,d.x,d.y,d.z),a.setXYZ(M,h.x,h.y,h.z)}else for(let x=0,y=t.count;x<y;x+=3)o.fromBufferAttribute(t,x+0),l.fromBufferAttribute(t,x+1),u.fromBufferAttribute(t,x+2),g.subVectors(u,l),v.subVectors(o,l),g.cross(v),a.setXYZ(x+0,g.x,g.y,g.z),a.setXYZ(x+1,g.x,g.y,g.z),a.setXYZ(x+2,g.x,g.y,g.z);this.normalizeNormals(),a.needsUpdate=!0}}normalizeNormals(){const e=this.attributes.normal;for(let t=0,a=e.count;t<a;t++)Rn.fromBufferAttribute(e,t),Rn.normalize(),e.setXYZ(t,Rn.x,Rn.y,Rn.z)}toNonIndexed(){function e(f,d){const h=f.array,g=f.itemSize,v=f.normalized,x=new h.constructor(d.length*g);let y=0,b=0;for(let w=0,M=d.length;w<M;w++){f.isInterleavedBufferAttribute?y=d[w]*f.data.stride+f.offset:y=d[w]*g;for(let S=0;S<g;S++)x[b++]=h[y++]}return new qi(x,g,v)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const t=new Ua,a=this.index.array,o=this.attributes;for(const f in o){const d=o[f],h=e(d,a);t.setAttribute(f,h)}const l=this.morphAttributes;for(const f in l){const d=[],h=l[f];for(let g=0,v=h.length;g<v;g++){const x=h[g],y=e(x,a);d.push(y)}t.morphAttributes[f]=d}t.morphTargetsRelative=this.morphTargetsRelative;const u=this.groups;for(let f=0,d=u.length;f<d;f++){const h=u[f];t.addGroup(h.start,h.count,h.materialIndex)}return t}toJSON(){const e={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){const d=this.parameters;for(const h in d)d[h]!==void 0&&(e[h]=d[h]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const a=this.attributes;for(const d in a){const h=a[d];e.data.attributes[d]=h.toJSON(e.data)}const o={};let l=!1;for(const d in this.morphAttributes){const h=this.morphAttributes[d],g=[];for(let v=0,x=h.length;v<x;v++){const y=h[v];g.push(y.toJSON(e.data))}g.length>0&&(o[d]=g,l=!0)}l&&(e.data.morphAttributes=o,e.data.morphTargetsRelative=this.morphTargetsRelative);const u=this.groups;u.length>0&&(e.data.groups=JSON.parse(JSON.stringify(u)));const f=this.boundingSphere;return f!==null&&(e.data.boundingSphere=f.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const a=e.index;a!==null&&this.setIndex(a.clone());const o=e.attributes;for(const h in o){const g=o[h];this.setAttribute(h,g.clone(t))}const l=e.morphAttributes;for(const h in l){const g=[],v=l[h];for(let x=0,y=v.length;x<y;x++)g.push(v[x].clone(t));this.morphAttributes[h]=g}this.morphTargetsRelative=e.morphTargetsRelative;const u=e.groups;for(let h=0,g=u.length;h<g;h++){const v=u[h];this.addGroup(v.start,v.count,v.materialIndex)}const f=e.boundingBox;f!==null&&(this.boundingBox=f.clone());const d=e.boundingSphere;return d!==null&&(this.boundingSphere=d.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const r3=new gn,ir=new Bb,Yu=new _m,o3=new le,Zu=new le,Ku=new le,Qu=new le,_0=new le,$u=new le,l3=new le,Ju=new le;class pi extends ti{constructor(e=new Ua,t=new ym){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){const t=this.geometry.morphAttributes,a=Object.keys(t);if(a.length>0){const o=t[a[0]];if(o!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let l=0,u=o.length;l<u;l++){const f=o[l].name||String(l);this.morphTargetInfluences.push(0),this.morphTargetDictionary[f]=l}}}}getVertexPosition(e,t){const a=this.geometry,o=a.attributes.position,l=a.morphAttributes.position,u=a.morphTargetsRelative;t.fromBufferAttribute(o,e);const f=this.morphTargetInfluences;if(l&&f){$u.set(0,0,0);for(let d=0,h=l.length;d<h;d++){const g=f[d],v=l[d];g!==0&&(_0.fromBufferAttribute(v,e),u?$u.addScaledVector(_0,g):$u.addScaledVector(_0.sub(t),g))}t.add($u)}return t}raycast(e,t){const a=this.geometry,o=this.material,l=this.matrixWorld;o!==void 0&&(a.boundingSphere===null&&a.computeBoundingSphere(),Yu.copy(a.boundingSphere),Yu.applyMatrix4(l),ir.copy(e.ray).recast(e.near),!(Yu.containsPoint(ir.origin)===!1&&(ir.intersectSphere(Yu,o3)===null||ir.origin.distanceToSquared(o3)>(e.far-e.near)**2))&&(r3.copy(l).invert(),ir.copy(e.ray).applyMatrix4(r3),!(a.boundingBox!==null&&ir.intersectsBox(a.boundingBox)===!1)&&this._computeIntersections(e,t,ir)))}_computeIntersections(e,t,a){let o;const l=this.geometry,u=this.material,f=l.index,d=l.attributes.position,h=l.attributes.uv,g=l.attributes.uv1,v=l.attributes.normal,x=l.groups,y=l.drawRange;if(f!==null)if(Array.isArray(u))for(let b=0,w=x.length;b<w;b++){const M=x[b],S=u[M.materialIndex],N=Math.max(M.start,y.start),T=Math.min(f.count,Math.min(M.start+M.count,y.start+y.count));for(let R=N,P=T;R<P;R+=3){const I=f.getX(R),F=f.getX(R+1),V=f.getX(R+2);o=ef(this,S,e,a,h,g,v,I,F,V),o&&(o.faceIndex=Math.floor(R/3),o.face.materialIndex=M.materialIndex,t.push(o))}}else{const b=Math.max(0,y.start),w=Math.min(f.count,y.start+y.count);for(let M=b,S=w;M<S;M+=3){const N=f.getX(M),T=f.getX(M+1),R=f.getX(M+2);o=ef(this,u,e,a,h,g,v,N,T,R),o&&(o.faceIndex=Math.floor(M/3),t.pu
vendor: 7,038 bytes, lines 64-68
64sh(o))}}else if(d!==void 0)if(Array.isArray(u))for(let b=0,w=x.length;b<w;b++){const M=x[b],S=u[M.materialIndex],N=Math.max(M.start,y.start),T=Math.min(d.count,Math.min(M.start+M.count,y.start+y.count));for(let R=N,P=T;R<P;R+=3){const I=R,F=R+1,V=R+2;o=ef(this,S,e,a,h,g,v,I,F,V),o&&(o.faceIndex=Math.floor(R/3),o.face.materialIndex=M.materialIndex,t.push(o))}}else{const b=Math.max(0,y.start),w=Math.min(d.count,y.start+y.count);for(let M=b,S=w;M<S;M+=3){const N=M,T=M+1,R=M+2;o=ef(this,u,e,a,h,g,v,N,T,R),o&&(o.faceIndex=Math.floor(M/3),t.push(o))}}}}function qb(n,e,t,a,o,l,u,f){let d;if(e.side===ei?d=a.intersectTriangle(u,l,o,!0,f):d=a.intersectTriangle(o,l,u,e.side===Na,f),d===null)return null;Ju.copy(f),Ju.applyMatrix4(n.matrixWorld);const h=t.ray.origin.distanceTo(Ju);return h<t.near||h>t.far?null:{distance:h,point:Ju.clone(),object:n}}function ef(n,e,t,a,o,l,u,f,d,h){n.getVertexPosition(f,Zu),n.getVertexPosition(d,Ku),n.getVertexPosition(h,Qu);const g=qb(n,e,t,a,Zu,Ku,Qu,l3);if(g){const v=new le;Pi.getBarycoord(l3,Zu,Ku,Qu,v),o&&(g.uv=Pi.getInterpolatedAttribute(o,f,d,h,v,new St)),l&&(g.uv1=Pi.getInterpolatedAttribute(l,f,d,h,v,new St)),u&&(g.normal=Pi.getInterpolatedAttribute(u,f,d,h,v,new le),g.normal.dot(a.direction)>0&&g.normal.multiplyScalar(-1));const x={a:f,b:d,c:h,normal:new le,materialIndex:0};Pi.getNormal(Zu,Ku,Qu,x.normal),g.face=x,g.barycoord=v}return g}class Mc extends Ua{constructor(e=1,t=1,a=1,o=1,l=1,u=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:a,widthSegments:o,heightSegments:l,depthSegments:u};const f=this;o=Math.floor(o),l=Math.floor(l),u=Math.floor(u);const d=[],h=[],g=[],v=[];let x=0,y=0;b("z","y","x",-1,-1,a,t,e,u,l,0),b("z","y","x",1,-1,a,t,-e,u,l,1),b("x","z","y",1,1,e,a,t,o,u,2),b("x","z","y",1,-1,e,a,-t,o,u,3),b("x","y","z",1,-1,e,t,a,o,l,4),b("x","y","z",-1,-1,e,t,-a,o,l,5),this.setIndex(d),this.setAttribute("position",new Yi(h,3)),this.setAttribute("normal",new Yi(g,3)),this.setAttribute("uv",new Yi(v,2));function b(w,M,S,N,T,R,P,I,F,V,U){const L=R/F,z=P/V,ce=R/2,ue=P/2,ge=I/2,me=F+1,j=V+1;let Z=0,Y=0;const he=new le;for(let O=0;O<j;O++){const ee=O*z-ue;for(let Me=0;Me<me;Me++){const be=Me*L-ce;he[w]=be*N,he[M]=ee*T,he[S]=ge,h.push(he.x,he.y,he.z),he[w]=0,he[M]=0,he[S]=I>0?1:-1,g.push(he.x,he.y,he.z),v.push(Me/F),v.push(1-O/V),Z+=1}}for(let O=0;O<V;O++)for(let ee=0;ee<F;ee++){const Me=x+ee+me*O,be=x+ee+me*(O+1),te=x+(ee+1)+me*(O+1),xe=x+(ee+1)+me*O;d.push(Me,be,xe),d.push(be,te,xe),Y+=6}f.addGroup(y,Y,U),y+=Y,x+=Z}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Mc(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}function No(n){const e={};for(const t in n){e[t]={};for(const a in n[t]){const o=n[t][a];o&&(o.isColor||o.isMatrix3||o.isMatrix4||o.isVector2||o.isVector3||o.isVector4||o.isTexture||o.isQuaternion)?o.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[t][a]=null):e[t][a]=o.clone():Array.isArray(o)?e[t][a]=o.slice():e[t][a]=o}}return e}function kn(n){const e={};for(let t=0;t<n.length;t++){const a=No(n[t]);for(const o in a)e[o]=a[o]}return e}function Yb(n){const e=[];for(let t=0;t<n.length;t++)e.push(n[t].clone());return e}function F_(n){const e=n.getRenderTarget();return e===null?n.outputColorSpace:e.isXRRenderTarget===!0?e.texture.colorSpace:Lt.workingColorSpace}const Zb={clone:No,merge:kn};var Kb=`void main() {
65	gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
66}`,Qb=`void main() {
67	gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
68}`;class Bi extends If{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=Kb,this.fragmentShader=Qb,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=No(e.uniforms),this.uniformsGroups=Yb(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(const o in this.uniforms){const u=this.uniforms[o].value;u&&u.isTexture?t.uniforms[o]={type:"t",value:u.toJSON(e).uuid}:u&&u.isColor?t.uniforms[o]={type:"c",value:u.getHex()}:u&&u.isVector2?t.uniforms[o]={type:"v2",value:u.toArray()}:u&&u.isVector3?t.uniforms[o]={type:"v3",value:u.toArray()}:u&&u.isVector4?t.uniforms[o]={type:"v4",value:u.toArray()}:u&&u.isMatrix3?t.uniforms[o]={type:"m3",value:u.toArray()}:u&&u.isMatrix4?t.uniforms[o]={type:"m4",value:u.toArray()}:t.uniforms[o]={value:u}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const a={};for(const o in this.extensions)this.extensions[o]===!0&&(a[o]=!0);return Object.keys(a).length>0&&(t.extensions=a),t}}class z_ extends ti{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new gn,this.projectionMatrix=new gn,this.projectionMatrixInverse=new gn,this.coordinateSystem=Rs}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Ea=new le,c3=new St,u3=new St;class mn extends z_{constructor(e=50,t=1,a=.1,o=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=a,this.far=o,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Dp*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan($h*.5*this.fov);return .5*this.getFilmHeight()/e}
vendor: 4,156 bytes, line 68
68getEffectiveFOV(){return Dp*2*Math.atan(Math.tan($h*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,a){Ea.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Ea.x,Ea.y).multiplyScalar(-e/Ea.z),Ea.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),a.set(Ea.x,Ea.y).multiplyScalar(-e/Ea.z)}getViewSize(e,t){return this.getViewBounds(e,c3,u3),t.subVectors(u3,c3)}setViewOffset(e,t,a,o,l,u){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=a,this.view.offsetY=o,this.view.width=l,this.view.height=u,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan($h*.5*this.fov)/this.zoom,a=2*t,o=this.aspect*a,l=-.5*o;const u=this.view;if(this.view!==null&&this.view.enabled){const d=u.fullWidth,h=u.fullHeight;l+=u.offsetX*o/d,t-=u.offsetY*a/h,o*=u.width/d,a*=u.height/h}const f=this.filmOffset;f!==0&&(l+=e*f/this.getFilmWidth()),this.projectionMatrix.makePerspective(l,l+o,t,t-a,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const fo=-90,ho=1;class $b extends ti{constructor(e,t,a){super(),this.type="CubeCamera",this.renderTarget=a,this.coordinateSystem=null,this.activeMipmapLevel=0;const o=new mn(fo,ho,e,t);o.layers=this.layers,this.add(o);const l=new mn(fo,ho,e,t);l.layers=this.layers,this.add(l);const u=new mn(fo,ho,e,t);u.layers=this.layers,this.add(u);const f=new mn(fo,ho,e,t);f.layers=this.layers,this.add(f);const d=new mn(fo,ho,e,t);d.layers=this.layers,this.add(d);const h=new mn(fo,ho,e,t);h.layers=this.layers,this.add(h)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[a,o,l,u,f,d]=t;for(const h of t)this.remove(h);if(e===Rs)a.up.set(0,1,0),a.lookAt(1,0,0),o.up.set(0,1,0),o.lookAt(-1,0,0),l.up.set(0,0,-1),l.lookAt(0,1,0),u.up.set(0,0,1),u.lookAt(0,-1,0),f.up.set(0,1,0),f.lookAt(0,0,1),d.up.set(0,1,0),d.lookAt(0,0,-1);else if(e===Ef)a.up.set(0,-1,0),a.lookAt(-1,0,0),o.up.set(0,-1,0),o.lookAt(1,0,0),l.up.set(0,0,1),l.lookAt(0,1,0),u.up.set(0,0,-1),u.lookAt(0,-1,0),f.up.set(0,-1,0),f.lookAt(0,0,1),d.up.set(0,-1,0),d.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const h of t)this.add(h),h.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:a,activeMipmapLevel:o}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[l,u,f,d,h,g]=this.children,v=e.getRenderTarget(),x=e.getActiveCubeFace(),y=e.getActiveMipmapLevel(),b=e.xr.enabled;e.xr.enabled=!1;const w=a.texture.generateMipmaps;a.texture.generateMipmaps=!1,e.setRenderTarget(a,0,o),e.render(t,l),e.setRenderTarget(a,1,o),e.render(t,u),e.setRenderTarget(a,2,o),e.render(t,f),e.setRenderTarget(a,3,o),e.render(t,d),e.setRenderTarget(a,4,o),e.render(t,h),a.texture.generateMipmaps=w,e.setRenderTarget(a,5,o),e.render(t,g),e.setRenderTarget(v,x,y),e.xr.enabled=b,a.texture.needsPMREMUpdate=!0}}class Sm extends Wn{constructor(e=[],t=Co,a,o,l,u,f,d,h,g){super(e,t,a,o,l,u,f,d,h,g),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class Jb extends Mr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const a={width:e,height:e,depth:1},o=[a,a,a,a,a,a];this.texture=new Sm(o),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace
vendor: 7,226 bytes, lines 68-103
68=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const a={uniforms:{tEquirect:{value:null}},vertexShader:`
69
70				varying vec3 vWorldDirection;
71
72				vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
73
74					return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
75
76				}
77
78				void main() {
79
80					vWorldDirection = transformDirection( position, modelMatrix );
81
82					#include <begin_vertex>
83					#include <project_vertex>
84
85				}
86			`,fragmentShader:`
87
88				uniform sampler2D tEquirect;
89
90				varying vec3 vWorldDirection;
91
92				#include <common>
93
94				void main() {
95
96					vec3 direction = normalize( vWorldDirection );
97
98					vec2 sampleUV = equirectUv( direction );
99
100					gl_FragColor = texture2D( tEquirect, sampleUV );
101
102				}
103			`},o=new Mc(5,5,5),l=new Bi({name:"CubemapFromEquirect",uniforms:No(a.uniforms),vertexShader:a.vertexShader,fragmentShader:a.fragmentShader,side:ei,blending:Aa});l.uniforms.tEquirect.value=t;const u=new pi(o,l),f=t.minFilter;return t.minFilter===gr&&(t.minFilter=Xi),new $b(1,10,this).update(e,u),t.minFilter=f,u.geometry.dispose(),u.material.dispose(),this}clear(e,t=!0,a=!0,o=!0){const l=e.getRenderTarget();for(let u=0;u<6;u++)e.setRenderTarget(this,u),e.clear(t,a,o);e.setRenderTarget(l)}}class Yl extends ti{constructor(){super(),this.isGroup=!0,this.type="Group"}}const eE={type:"move"};class y0{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Yl,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Yl,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new le,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new le),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Yl,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new le,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new le),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const a of e.hand.values())this._getHandJoint(t,a)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,a){let o=null,l=null,u=null;const f=this._targetRay,d=this._grip,h=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(h&&e.hand){u=!0;for(const w of e.hand.values()){const M=t.getJointPose(w,a),S=this._getHandJoint(h,w);M!==null&&(S.matrix.fromArray(M.transform.matrix),S.matrix.decompose(S.position,S.rotation,S.scale),S.matrixWorldNeedsUpdate=!0,S.jointRadius=M.radius),S.visible=M!==null}const g=h.joints["index-finger-tip"],v=h.joints["thumb-tip"],x=g.position.distanceTo(v.position),y=.02,b=.005;h.inputState.pinching&&x>y+b?(h.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!h.inputState.pinching&&x<=y-b&&(h.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else d!==null&&e.gripSpace&&(l=t.getPose(e.gripSpace,a),l!==null&&(d.matrix.fromArray(l.transform.matrix),d.matrix.decompose(d.position,d.rotation,d.scale),d.matrixWorldNeedsUpdate=!0,l.linearVelocity?(d.hasLinearVelocity=!0,d.linearVelocity.copy(l.linearVelocity)):d.hasLinearVelocity=!1,l.angularVelocity?(d.hasAngularVelocity=!0,d.angularVelocity.copy(l.angularVelocity)):d.hasAngularVelocity=!1));f!==null&&(o=t.getPose(e.targetRaySpace,a),o===null&&l!==null&&(o=l),o!==null&&(f.matrix.fromArray(o.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,o.linearVelocity?(f.hasLinearVelocity=!0,f.linearVelocity.copy(o.linearVelocity)):f.hasLinearVelocity=!1,o.angularVelocity?(f.hasAngularVelocity=!0,f.angularVelocity.copy(o.angularVelocity)):f.hasAngularVelocity=!1,this.dispatchEvent(eE)))}return f!==null&&(f.visible=o!==null),d!==null&&(d.visible=l!==null),h!==null&&(h.visible=u!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const a=new Yl;a.matrixAutoUpdate=!1,a.visible=!1,e.joints[t.jointName]=a,e.add(a)}return e.joints[t.jointName]}}class zs extends ti{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Ps,this.environmentIntensity=1,this.environmentRotation=new Ps,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}const S0=new le,tE=new le,nE=new ht;class cr{constructor(e=new le(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,a,o){return this.normal.set(e,t,a),this.constant=o,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,a){const o=S0.subVectors(a,t).cross(tE.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(o,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const a=e.delta(S0),o=this.normal.dot(a);if(o===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;
vendor: 8,994 bytes, line 103
103const l=-(e.start.dot(this.normal)+this.constant)/o;return l<0||l>1?null:t.copy(e.start).addScaledVector(a,l)}intersectsLine(e){const t=this.distanceToPoint(e.start),a=this.distanceToPoint(e.end);return t<0&&a>0||a<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const a=t||nE.getNormalMatrix(e),o=this.coplanarPoint(S0).applyMatrix4(e),l=this.normal.applyMatrix3(a).normalize();return this.constant=-o.dot(l),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const sr=new _m,iE=new St(.5,.5),tf=new le;class V_{constructor(e=new cr,t=new cr,a=new cr,o=new cr,l=new cr,u=new cr){this.planes=[e,t,a,o,l,u]}set(e,t,a,o,l,u){const f=this.planes;return f[0].copy(e),f[1].copy(t),f[2].copy(a),f[3].copy(o),f[4].copy(l),f[5].copy(u),this}copy(e){const t=this.planes;for(let a=0;a<6;a++)t[a].copy(e.planes[a]);return this}setFromProjectionMatrix(e,t=Rs){const a=this.planes,o=e.elements,l=o[0],u=o[1],f=o[2],d=o[3],h=o[4],g=o[5],v=o[6],x=o[7],y=o[8],b=o[9],w=o[10],M=o[11],S=o[12],N=o[13],T=o[14],R=o[15];if(a[0].setComponents(d-l,x-h,M-y,R-S).normalize(),a[1].setComponents(d+l,x+h,M+y,R+S).normalize(),a[2].setComponents(d+u,x+g,M+b,R+N).normalize(),a[3].setComponents(d-u,x-g,M-b,R-N).normalize(),a[4].setComponents(d-f,x-v,M-w,R-T).normalize(),t===Rs)a[5].setComponents(d+f,x+v,M+w,R+T).normalize();else if(t===Ef)a[5].setComponents(f,v,w,T).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),sr.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),sr.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(sr)}intersectsSprite(e){sr.center.set(0,0,0);const t=iE.distanceTo(e.center);return sr.radius=.7071067811865476+t,sr.applyMatrix4(e.matrixWorld),this.intersectsSphere(sr)}intersectsSphere(e){const t=this.planes,a=e.center,o=-e.radius;for(let l=0;l<6;l++)if(t[l].distanceToPoint(a)<o)return!1;return!0}intersectsBox(e){const t=this.planes;for(let a=0;a<6;a++){const o=t[a];if(tf.x=o.normal.x>0?e.max.x:e.min.x,tf.y=o.normal.y>0?e.max.y:e.min.y,tf.z=o.normal.z>0?e.max.z:e.min.z,o.distanceToPoint(tf)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let a=0;a<6;a++)if(t[a].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}class j_ extends Wn{constructor(e,t,a=Sr,o,l,u,f=Ii,d=Ii,h,g=rc,v=1){if(g!==rc&&g!==oc)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const x={width:e,height:t,depth:v};super(x,o,l,u,f,d,g,a,h),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new xm(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}}class Bo extends Ua{constructor(e=1,t=1,a=1,o=1){super(),this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:a,heightSegments:o};const l=e/2,u=t/2,f=Math.floor(a),d=Math.floor(o),h=f+1,g=d+1,v=e/f,x=t/d,y=[],b=[],w=[],M=[];for(let S=0;S<g;S++){const N=S*x-u;for(let T=0;T<h;T++){const R=T*v-l;b.push(R,-N,0),w.push(0,0,1),M.push(T/f),M.push(1-S/d)}}for(let S=0;S<d;S++)for(let N=0;N<f;N++){const T=N+h*S,R=N+h*(S+1),P=N+1+h*(S+1),I=N+1+h*S;y.push(T,R,I),y.push(R,P,I)}this.setIndex(y),this.setAttribute("position",new Yi(b,3)),this.setAttribute("normal",new Yi(w,3)),this.setAttribute("uv",new Yi(M,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Bo(e.width,e.height,e.widthSegments,e.heightSegments)}}class wf extends Ua{constructor(e=1,t=32,a=16,o=0,l=Math.PI*2,u=0,f=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:a,phiStart:o,phiLength:l,thetaStart:u,thetaLength:f},t=Math.max(3,Math.floor(t)),a=Math.max(2,Math.floor(a));const d=Math.min(u+f,Math.PI);let h=0;const g=[],v=new le,x=new le,y=[],b=[],w=[],M=[];for(let S=0;S<=a;S++){const N=[],T=S/a;let R=0;S===0&&u===0?R=.5/t:S===a&&d===Math.PI&&(R=-.5/t);for(let P=0;P<=t;P++){const I=P/t;v.x=-e*Math.cos(o+I*l)*Math.sin(u+T*f),v.y=e*Math.cos(u+T*f),v.z=e*Math.sin(o+I*l)*Math.sin(u+T*f),b.push(v.x,v.y,v.z),x.copy(v).normalize(),w.push(x.x,x.y,x.z),M.push(I+R,1-T),N.push(h++)}g.push(N)}for(let S=0;S<a;S++)for(let N=0;N<t;N++){const T=g[S][N+1],R=g[S][N],P=g[S+1][N],I=g[S+1][N+1];(S!==0||u>0)&&y.push(T,R,I),(S!==a-1||d<Math.PI)&&y.push(R,P,I)}this.setIndex(y),this.setAttribute("position",new Yi(b,3)),this.setAttribute("normal",new Yi(w,3)),this.setAttribute("uv",new Yi(M,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new wf(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}}class sE extends If{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=pb,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class aE extends If{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const M0={enabled:!1,files:{},add:function(n,e){this.enabled!==!1&&(this.files[n]=e)},get:function(n){if(this.enabled!==!1)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}};class rE{constructor(e,t,a){const o=this;let l=!1,u=0,f=0,d;const h=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=a,this.itemStart=function(g){f++,l===!1&&o.onStart!==void 0&&o.onStart(g,u,f),l=!0},this.itemEnd=function(g){u++,o.onProgress!==void 0&&o.onProgress(g,u,f),u===f&&(l=!1,o.onLoad!==void 0&&o.onLoad())},this.itemError=function(g){o.onError!==void 0&&o.onError(g)},this.resolveURL=function(g){return d?d(g):g},this.setURLModifier=function(g){return d=g,this},this.addHandler=function(g,v){return h.push(g,v),this},this.removeHandler=function(g){const v=h.indexOf(g);return v!==-1&&h.splice(v,2),this},this.getHandler=function(g){for(let v=0,x=h.length;v<x;v+=2){const y=h[v],b=h[v+1];if(y.global&&(y.lastIndex=0),y.test(g))return b}return null}}}const oE=new rE;class Bf{constructor(e){this.manager=e!==void 0?e:oE,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){const a=this;return new Promise(function(o,l){a.load(e,o,t,l)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}Bf.DEFAULT_MATERIAL_NAME="__DEFAULT";const po=new WeakMap;class H_ extends Bf{constructor(e){super(e)}load(e,t,a,o){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const l=this,u=M0.get(`image:${e}`);if(u!==void 0){if(u.complete===!0)l.manager.itemStart(e),setTimeout(function(){t&&t(u),l.manager.itemEnd(e)},0);else{let v=po.get(u);v===void 0&&(v=[],po.set(u,v)),v.push({onLoad:t,onError:o})}return u}const f=lc("img");function d(){g(),t&&t(this);const v=po.get(this)||[];for(let x=0;x<v.length;x++){const y=v[x];y.onLoad&&y.onLoad(this)}po.delete(this),l.manager.itemEnd(e)}function h(v){g(),o&&o(v),M0.remove(`image:${e}`);const x=po.get(this)||[];for(let y=0;y<x.length;y++){const b=x[y];b.onError&&b.onError(v)}po.delete(this),l.manager.itemError(e),l.manager.itemEnd(e)}function g(){f.removeEventListener("load",d,!1),f.removeEventListener("error",h,!1)}return f.addEventListener("load",d,!1),f.addEventListener("error",h,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(f.crossOrigin=this.crossOrigin),M0.add(`image:${e}`,f),l.manager.itemStart(e),f.src=e,f}}class Vs extends Bf{constructor(e){super(e)}load(e,t,a,o){const l=new Sm;
vendor: 6,207 bytes, line 103
103l.colorSpace=hi;const u=new H_(this.manager);u.setCrossOrigin(this.crossOrigin),u.setPath(this.path);let f=0;function d(h){u.load(e[h],function(g){l.images[h]=g,f++,f===6&&(l.needsUpdate=!0,t&&t(l))},void 0,o)}for(let h=0;h<e.length;++h)d(h);return l}}class js extends Bf{constructor(e){super(e)}load(e,t,a,o){const l=new Wn,u=new H_(this.manager);return u.setCrossOrigin(this.crossOrigin),u.setPath(this.path),u.load(e,function(f){l.image=f,l.needsUpdate=!0,t!==void 0&&t(l)},a,o),l}}class lE extends ti{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Fe(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),this.target!==void 0&&(t.object.target=this.target.uuid),t}}class cE extends z_{constructor(e=-1,t=1,a=1,o=-1,l=.1,u=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=a,this.bottom=o,this.near=l,this.far=u,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,a,o,l,u){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=a,this.view.offsetY=o,this.view.width=l,this.view.height=u,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),a=(this.right+this.left)/2,o=(this.top+this.bottom)/2;let l=a-e,u=a+e,f=o+t,d=o-t;if(this.view!==null&&this.view.enabled){const h=(this.right-this.left)/this.view.fullWidth/this.zoom,g=(this.top-this.bottom)/this.view.fullHeight/this.zoom;l+=h*this.view.offsetX,u=l+h*this.view.width,f-=g*this.view.offsetY,d=f-g*this.view.height}this.projectionMatrix.makeOrthographic(l,u,f,d,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}class Hs extends lE{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}}class uE extends mn{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}}class ks{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=performance.now(),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 e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=performance.now();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}class hr{constructor(e){this.value=e}clone(){return new hr(this.value.clone===void 0?this.value:this.value.clone())}}function f3(n,e,t,a){const o=fE(a);switch(t){case T_:return n*e;case A_:return n*e/o.components*o.byteLength;case mm:return n*e/o.components*o.byteLength;case R_:return n*e*2/o.components*o.byteLength;case gm:return n*e*2/o.components*o.byteLength;case C_:return n*e*3/o.components*o.byteLength;case Oi:return n*e*4/o.components*o.byteLength;case vm:return n*e*4/o.components*o.byteLength;case df:case hf:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case pf:case mf:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case op:case cp:return Math.max(n,16)*Math.max(e,8)/4;case rp:case lp:return Math.max(n,8)*Math.max(e,8)/2;case up:case fp:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case dp:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case hp:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case pp:return Math.floor((n+4)/5)*Math.floor((e+3)/4)*16;case mp:return Math.floor((n+4)/5)*Math.floor((e+4)/5)*16;case gp:return Math.floor((n+5)/6)*Math.floor((e+4)/5)*16;case vp:return Math.floor((n+5)/6)*Math.floor((e+5)/6)*16;case xp:return Math.floor((n+7)/8)*Math.floor((e+4)/5)*16;case _p:return Math.floor((n+7)/8)*Math.floor((e+5)/6)*16;case yp:return Math.floor((n+7)/8)*Math.floor((e+7)/8)*16;case Sp:return Math.floor((n+9)/10)*Math.floor((e+4)/5)*16;case Mp:return Math.floor((n+9)/10)*Math.floor((e+5)/6)*16;case bp:return Math.floor((n+9)/10)*Math.floor((e+7)/8)*16;case Ep:return Math.floor((n+9)/10)*Math.floor((e+9)/10)*16;case wp:return Math.floor((n+11)/12)*Math.floor((e+9)/10)*16;case Tp:return Math.floor((n+11)/12)*Math.floor((e+11)/12)*16;case gf:case Cp:case Ap:return Math.ceil(n/4)*Math.ceil(e/4)*16;case N_:case Rp:return Math.ceil(n/4)*Math.ceil(e/4)*8;case Np:case Lp:return Math.ceil(n/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${t} format.`)}function fE(n){switch(n){case Us:case b_:return{byteLength:1,components:1};case sc:case E_:case xc:return{byteLength:2,components:1};case hm:case pm:return{byteLength:2,components:4};case Sr:case dm:case As:return{byteLength:4,components:1};case w_:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${n}.`)}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:fm}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=fm);
vendor: 4,581 bytes, lines 103-166
103/**
104 * @license
105 * Copyright 2010-2025 Three.js Authors
106 * SPDX-License-Identifier: MIT
107 */function k_(){let n=null,e=!1,t=null,a=null;function o(l,u){t(l,u),a=n.requestAnimationFrame(o)}return{start:function(){e!==!0&&t!==null&&(a=n.requestAnimationFrame(o),e=!0)},stop:function(){n.cancelAnimationFrame(a),e=!1},setAnimationLoop:function(l){t=l},setContext:function(l){n=l}}}function dE(n){const e=new WeakMap;function t(f,d){const h=f.array,g=f.usage,v=h.byteLength,x=n.createBuffer();n.bindBuffer(d,x),n.bufferData(d,h,g),f.onUploadCallback();let y;if(h instanceof Float32Array)y=n.FLOAT;else if(typeof Float16Array<"u"&&h instanceof Float16Array)y=n.HALF_FLOAT;else if(h instanceof Uint16Array)f.isFloat16BufferAttribute?y=n.HALF_FLOAT:y=n.UNSIGNED_SHORT;else if(h instanceof Int16Array)y=n.SHORT;else if(h instanceof Uint32Array)y=n.UNSIGNED_INT;else if(h instanceof Int32Array)y=n.INT;else if(h instanceof Int8Array)y=n.BYTE;else if(h instanceof Uint8Array)y=n.UNSIGNED_BYTE;else if(h instanceof Uint8ClampedArray)y=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+h);return{buffer:x,type:y,bytesPerElement:h.BYTES_PER_ELEMENT,version:f.version,size:v}}function a(f,d,h){const g=d.array,v=d.updateRanges;if(n.bindBuffer(h,f),v.length===0)n.bufferSubData(h,0,g);else{v.sort((y,b)=>y.start-b.start);let x=0;for(let y=1;y<v.length;y++){const b=v[x],w=v[y];w.start<=b.start+b.count+1?b.count=Math.max(b.count,w.start+w.count-b.start):(++x,v[x]=w)}v.length=x+1;for(let y=0,b=v.length;y<b;y++){const w=v[y];n.bufferSubData(h,w.start*g.BYTES_PER_ELEMENT,g,w.start,w.count)}d.clearUpdateRanges()}d.onUploadCallback()}function o(f){return f.isInterleavedBufferAttribute&&(f=f.data),e.get(f)}function l(f){f.isInterleavedBufferAttribute&&(f=f.data);const d=e.get(f);d&&(n.deleteBuffer(d.buffer),e.delete(f))}function u(f,d){if(f.isInterleavedBufferAttribute&&(f=f.data),f.isGLBufferAttribute){const g=e.get(f);(!g||g.version<f.version)&&e.set(f,{buffer:f.buffer,type:f.type,bytesPerElement:f.elementSize,version:f.version});return}const h=e.get(f);if(h===void 0)e.set(f,t(f,d));else if(h.version<f.version){if(h.size!==f.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");a(h.buffer,f,d),h.version=f.version}}return{get:o,remove:l,update:u}}var hE=`#ifdef USE_ALPHAHASH
108	if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;
109#endif`,pE=`#ifdef USE_ALPHAHASH
110	const float ALPHA_HASH_SCALE = 0.05;
111	float hash2D( vec2 value ) {
112		return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );
113	}
114	float hash3D( vec3 value ) {
115		return hash2D( vec2( hash2D( value.xy ), value.z ) );
116	}
117	float getAlphaHashThreshold( vec3 position ) {
118		float maxDeriv = max(
119			length( dFdx( position.xyz ) ),
120			length( dFdy( position.xyz ) )
121		);
122		float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );
123		vec2 pixScales = vec2(
124			exp2( floor( log2( pixScale ) ) ),
125			exp2( ceil( log2( pixScale ) ) )
126		);
127		vec2 alpha = vec2(
128			hash3D( floor( pixScales.x * position.xyz ) ),
129			hash3D( floor( pixScales.y * position.xyz ) )
130		);
131		float lerpFactor = fract( log2( pixScale ) );
132		float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;
133		float a = min( lerpFactor, 1.0 - lerpFactor );
134		vec3 cases = vec3(
135			x * x / ( 2.0 * a * ( 1.0 - a ) ),
136			( x - 0.5 * a ) / ( 1.0 - a ),
137			1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )
138		);
139		float threshold = ( x < ( 1.0 - a ) )
140			? ( ( x < a ) ? cases.x : cases.y )
141			: cases.z;
142		return clamp( threshold , 1.0e-6, 1.0 );
143	}
144#endif`,mE=`#ifdef USE_ALPHAMAP
145	diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;
146#endif`,gE=`#ifdef USE_ALPHAMAP
147	uniform sampler2D alphaMap;
148#endif`,vE=`#ifdef USE_ALPHATEST
149	#ifdef ALPHA_TO_COVERAGE
150	diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );
151	if ( diffuseColor.a == 0.0 ) discard;
152	#else
153	if ( diffuseColor.a < alphaTest ) discard;
154	#endif
155#endif`,xE=`#ifdef USE_ALPHATEST
156	uniform float alphaTest;
157#endif`,_E=`#ifdef USE_AOMAP
158	float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;
159	reflectedLight.indirectDiffuse *= ambientOcclusion;
160	#if defined( USE_CLEARCOAT ) 
161		clearcoatSpecularIndirect *= ambientOcclusion;
162	#endif
163	#if defined( USE_SHEEN ) 
164		sheenSpecularIndirect *= ambientOcclusion;
165	#endif
166	#if defined( USE_ENVMAP ) && defined( STANDARD )
167		float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );
168		reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );
169	#endif
170#endif`,yE=`#ifdef USE_AOMAP
171	uniform sampler2D aoMap;
172	uniform float aoMapIntensity;
173#endif`,SE=`#ifdef USE_BATCHING
174	#if ! defined( GL_ANGLE_multi_draw )
175	#define gl_DrawID _gl_DrawID
176	uniform int _gl_DrawID;
177	#endif
178	uniform highp sampler2D batchingTexture;
179	uniform highp usampler2D batchingIdTexture;
180	mat4 getBatchingMatrix( const in float i ) {
181		int size = textureSize( batchingTexture, 0 ).x;
182		int j = int( i ) * 4;
183		int x = j % size;
184		int y = j / size;
185		vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );
186		vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );
187		vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );
188		vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );
189		return mat4( v1, v2, v3, v4 );
190	}
191	float getIndirectIndex( const in int i ) {
192		int size = textureSize( batchingIdTexture, 0 ).x;
193		int x = i % size;
194		int y = i / size;
195		return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );
196	}
197#endif
198#ifdef USE_BATCHING_COLOR
199	uniform sampler2D batchingColorTexture;
200	vec3 getBatchingColor( const in float i ) {
201		int size = textureSize( batchingColorTexture, 0 ).x;
202		int j = int( i );
203		int x = j % size;
204		int y = j / size;
205		return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;
206	}
207#endif`,ME=`#ifdef USE_BATCHING
208	mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );
209#endif`,bE=`vec3 transformed = vec3( position );
210#ifdef USE_ALPHAHASH
211	vPosition = vec3( position );
212#endif`,EE=`vec3 objectNormal = vec3( normal );
213#ifdef USE_TANGENT
214	vec3 objectTangent = vec3( tangent.xyz );
215#endif`,wE=`float G_BlinnPhong_Implicit( ) {
216	return 0.25;
217}
218float D_BlinnPhong( const in float shininess, const in float dotNH ) {
219	return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
220}
221vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {
222	vec3 halfDir = normalize( lightDir + viewDir );
223	float dotNH = saturate( dot( normal, halfDir ) );
224	float dotVH = saturate( dot( viewDir, halfDir ) );
225	vec3 F = F_Schlick( specularColor, 1.0, dotVH );
226	float G = G_BlinnPhong_Implicit( );
227	float D = D_BlinnPhong( shininess, dotNH );
228	return F * ( G * D );
229} // validated`,TE=`#ifdef USE_IRIDESCENCE
230	const mat3 XYZ_TO_REC709 = mat3(
231		 3.2404542, -0.9692660,  0.0556434,
232		-1.5371385,  1.8760108, -0.2040259,
233		-0.4985314,  0.0415560,  1.0572252
234	);
235	vec3 Fresnel0ToIor( vec3 fresnel0 ) {
236		vec3 sqrtF0 = sqrt( fresnel0 );
237		return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );
238	}
239	vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {
240		return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );
241	}
242	float IorToFresnel0( float transmittedIor, float incidentIor ) {
243		return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));
244	}
245	vec3 evalSensitivity( float OPD, vec3 shift ) {
246		float phase = 2.0 * PI * OPD * 1.0e-9;
247		vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );
248		vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );
249		vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );
250		vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );
251		xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );
252		xyz /= 1.0685e-7;
253		vec3 rgb = XYZ_TO_REC709 * xyz;
254		return rgb;
255	}
256	vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {
257		vec3 I;
258		float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );
259		float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );
260		float cosTheta2Sq = 1.0 - sinTheta2Sq;
261		if ( cosTheta2Sq < 0.0 ) {
262			return vec3( 1.0 );
263		}
264		float cosTheta2 = sqrt( cosTheta2Sq );
265		float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );
266		float R12 = F_Schlick( R0, 1.0, cosTheta1 );
267		float T121 = 1.0 - R12;
268		float phi12 = 0.0;
269		if ( iridescenceIOR < outsideIOR ) phi12 = PI;
270		float phi21 = PI - phi12;
271		vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );		vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
272		vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );
273		vec3 phi23 = vec3( 0.0 );
274		if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;
275		if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;
276		if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;
277		float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;
278		vec3 phi = vec3( phi21 ) + phi23;
279		vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );
280		vec3 r123 = sqrt( R123 );
281		vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );
282		vec3 C0 = R12 + Rs;
283		I = C0;
284		vec3 Cm = Rs - T121;
285		for ( int m = 1; m <= 2; ++ m ) {
286			Cm *= r123;
287			vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );
288			I += Cm * Sm;
289		}
290		return max( I, vec3( 0.0 ) );
291	}
292#endif`,CE=`#ifdef USE_BUMPMAP
293	uniform sampler2D bumpMap;
294	uniform float bumpScale;
295	vec2 dHdxy_fwd() {
296		vec2 dSTdx = dFdx( vBumpMapUv );
297		vec2 dSTdy = dFdy( vBumpMapUv );
298		float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;
299		float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;
300		float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;
301		return vec2( dBx, dBy );
302	}
303	vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
304		vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );
305		vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );
306		vec3 vN = surf_norm;
307		vec3 R1 = cross( vSigmaY, vN );
308		vec3 R2 = cross( vN, vSigmaX );
309		float fDet = dot( vSigmaX, R1 ) * faceDirection;
310		vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
311		return normalize( abs( fDet ) * surf_norm - vGrad );
312	}
313#endif`,AE=`#if NUM_CLIPPING_PLANES > 0
314	vec4 plane;
315	#ifdef ALPHA_TO_COVERAGE
316		float distanceToPlane, distanceGradient;
317		float clipOpacity = 1.0;
318		#pragma unroll_loop_start
319		for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
320			plane = clippingPlanes[ i ];
321			distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
322			distanceGradient = fwidth( distanceToPlane ) / 2.0;
323			clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
324			if ( clipOpacity == 0.0 ) discard;
325		}
326		#pragma unroll_loop_end
327		#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
328			float unionClipOpacity = 1.0;
329			#pragma unroll_loop_start
330			for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
331				plane = clippingPlanes[ i ];
332				distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
333				distanceGradient = fwidth( distanceToPlane ) / 2.0;
334				unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
335			}
336			#pragma unroll_loop_end
337			clipOpacity *= 1.0 - unionClipOpacity;
338		#endif
339		diffuseColor.a *= clipOpacity;
340		if ( diffuseColor.a == 0.0 ) discard;
341	#else
342		#pragma unroll_loop_start
343		for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
344			plane = clippingPlanes[ i ];
345			if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
346		}
347		#pragma unroll_loop_end
348		#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
349			bool clipped = true;
350			#pragma unroll_loop_start
351			for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
352				plane = clippingPlanes[ i ];
353				clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
354			}
355			#pragma unroll_loop_end
356			if ( clipped ) discard;
357		#endif
358	#endif
359#endif`,RE=`#if NUM_CLIPPING_PLANES > 0
360	varying vec3 vClipPosition;
361	uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
362#endif`,NE=`#if NUM_CLIPPING_PLANES > 0
363	varying vec3 vClipPosition;
364#endif`,LE=`#if NUM_CLIPPING_PLANES > 0
365	vClipPosition = - mvPosition.xyz;
366#endif`,DE=`#if defined( USE_COLOR_ALPHA )
367	diffuseColor *= vColor;
368#elif defined( USE_COLOR )
369	diffuseColor.rgb *= vColor;
370#endif`,UE=`#if defined( USE_COLOR_ALPHA )
371	varying vec4 vColor;
372#elif defined( USE_COLOR )
373	varying vec3 vColor;
374#endif`,PE=`#if defined( USE_COLOR_ALPHA )
375	varying vec4 vColor;
376#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
377	varying vec3 vColor;
378#endif`,OE=`#if defined( USE_COLOR_ALPHA )
379	vColor = vec4( 1.0 );
380#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
381	vColor = vec3( 1.0 );
382#endif
383#ifdef USE_COLOR
384	vColor *= color;
385#endif
386#ifdef USE_INSTANCING_COLOR
387	vColor.xyz *= instanceColor.xyz;
388#endif
389#ifdef USE_BATCHING_COLOR
390	vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );
391	vColor.xyz *= batchingColor.xyz;
392#endif`,IE=`#define PI 3.141592653589793
393#define PI2 6.283185307179586
394#define PI_HALF 1.5707963267948966
395#define RECIPROCAL_PI 0.3183098861837907
396#define RECIPROCAL_PI2 0.15915494309189535
397#define EPSILON 1e-6
398#ifndef saturate
399#define saturate( a ) clamp( a, 0.0, 1.0 )
400#endif
401#define whiteComplement( a ) ( 1.0 - saturate( a ) )
402float pow2( const in float x ) { return x*x; }
403vec3 pow2( const in vec3 x ) { return x*x; }
404float pow3( const in float x ) { return x*x*x; }
405float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
406float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
407float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
408highp float rand( const in vec2 uv ) {
409	const highp float a = 12.9898, b = 78.233, c = 43758.5453;
410	highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
411	return fract( sin( sn ) * c );
412}
413#ifdef HIGH_PRECISION
414	float precisionSafeLength( vec3 v ) { return length( v ); }
415#else
416	float precisionSafeLength( vec3 v ) {
417		float maxComponent = max3( abs( v ) );
418		return length( v / maxComponent ) * maxComponent;
419	}
420#endif
421struct IncidentLight {
422	vec3 color;
423	vec3 direction;
424	bool visible;
425};
426struct ReflectedLight {
427	vec3 directDiffuse;
428	vec3 directSpecular;
429	vec3 indirectDiffuse;
430	vec3 indirectSpecular;
431};
432#ifdef USE_ALPHAHASH
433	varying vec3 vPosition;
434#endif
435vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
436	return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
437}
438vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
439	return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
440}
441mat3 transposeMat3( const in mat3 m ) {
442	mat3 tmp;
443	tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );
444	tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );
445	tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );
446	return tmp;
447}
448bool isPerspectiveMatrix( mat4 m ) {
449	return m[ 2 ][ 3 ] == - 1.0;
450}
451vec2 equirectUv( in vec3 dir ) {
452	float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
453	float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
454	return vec2( u, v );
455}
456vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
457	return RECIPROCAL_PI * diffuseColor;
458}
459vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
460	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
461	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
462}
463float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
464	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
465	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
466} // validated`,BE=`#ifdef ENVMAP_TYPE_CUBE_UV
467	#define cubeUV_minMipLevel 4.0
468	#define cubeUV_minTileSize 16.0
469	float getFace( vec3 direction ) {
470		vec3 absDirection = abs( direction );
471		float face = - 1.0;
472		if ( absDirection.x > absDirection.z ) {
473			if ( absDirection.x > absDirection.y )
474				face = direction.x > 0.0 ? 0.0 : 3.0;
475			else
476				face = direction.y > 0.0 ? 1.0 : 4.0;
477		} else {
478			if ( absDirection.z > absDirection.y )
479				face = direction.z > 0.0 ? 2.0 : 5.0;
480			else
481				face = direction.y > 0.0 ? 1.0 : 4.0;
482		}
483		return face;
484	}
485	vec2 getUV( vec3 direction, float face ) {
486		vec2 uv;
487		if ( face == 0.0 ) {
488			uv = vec2( direction.z, direction.y ) / abs( direction.x );
489		} else if ( face == 1.0 ) {
490			uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
491		} else if ( face == 2.0 ) {
492			uv = vec2( - direction.x, direction.y ) / abs( direction.z );
493		} else if ( face == 3.0 ) {
494			uv = vec2( - direction.z, direction.y ) / abs( direction.x );
495		} else if ( face == 4.0 ) {
496			uv = vec2( - direction.x, direction.z ) / abs( direction.y );
497		} else {
498			uv = vec2( direction.x, direction.y ) / abs( direction.z );
499		}
500		return 0.5 * ( uv + 1.0 );
501	}
502	vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
503		float face = getFace( direction );
504		float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
505		mipInt = max( mipInt, cubeUV_minMipLevel );
506		float faceSize = exp2( mipInt );
507		highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
508		if ( face > 2.0 ) {
509			uv.y += faceSize;
510			face -= 3.0;
511		}
512		uv.x += face * faceSize;
513		uv.x += filterInt * 3.0 * cubeUV_minTileSize;
514		uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
515		uv.x *= CUBEUV_TEXEL_WIDTH;
516		uv.y *= CUBEUV_TEXEL_HEIGHT;
517		#ifdef texture2DGradEXT
518			return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
519		#else
520			return texture2D( envMap, uv ).rgb;
521		#endif
522	}
523	#define cubeUV_r0 1.0
524	#define cubeUV_m0 - 2.0
525	#define cubeUV_r1 0.8
526	#define cubeUV_m1 - 1.0
527	#define cubeUV_r4 0.4
528	#define cubeUV_m4 2.0
529	#define cubeUV_r5 0.305
530	#define cubeUV_m5 3.0
531	#define cubeUV_r6 0.21
532	#define cubeUV_m6 4.0
533	float roughnessToMip( float roughness ) {
534		float mip = 0.0;
535		if ( roughness >= cubeUV_r1 ) {
536			mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
537		} else if ( roughness >= cubeUV_r4 ) {
538			mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
539		} else if ( roughness >= cubeUV_r5 ) {
540			mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
541		} else if ( roughness >= cubeUV_r6 ) {
542			mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
543		} else {
544			mip = - 2.0 * log2( 1.16 * roughness );		}
545		return mip;
546	}
547	vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
548		float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
549		float mipF = fract( mip );
550		float mipInt = floor( mip );
551		vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
552		if ( mipF == 0.0 ) {
553			return vec4( color0, 1.0 );
554		} else {
555			vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
556			return vec4( mix( color0, color1, mipF ), 1.0 );
557		}
558	}
559#endif`,FE=`vec3 transformedNormal = objectNormal;
560#ifdef USE_TANGENT
561	vec3 transformedTangent = objectTangent;
562#endif
563#ifdef USE_BATCHING
564	mat3 bm = mat3( batchingMatrix );
565	transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
566	transformedNormal = bm * transformedNormal;
567	#ifdef USE_TANGENT
568		transformedTangent = bm * transformedTangent;
569	#endif
570#endif
571#ifdef USE_INSTANCING
572	mat3 im = mat3( instanceMatrix );
573	transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
574	transformedNormal = im * transformedNormal;
575	#ifdef USE_TANGENT
576		transformedTangent = im * transformedTangent;
577	#endif
578#endif
579transformedNormal = normalMatrix * transformedNormal;
580#ifdef FLIP_SIDED
581	transformedNormal = - transformedNormal;
582#endif
583#ifdef USE_TANGENT
584	transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
585	#ifdef FLIP_SIDED
586		transformedTangent = - transformedTangent;
587	#endif
588#endif`,zE=`#ifdef USE_DISPLACEMENTMAP
589	uniform sampler2D displacementMap;
590	uniform float displacementScale;
591	uniform float displacementBias;
592#endif`,VE=`#ifdef USE_DISPLACEMENTMAP
593	transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + dis
593placementBias );
594#endif`,jE=`#ifdef USE_EMISSIVEMAP
595	vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
596	#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE
597		emissiveColor = sRGBTransferEOTF( emissiveColor );
598	#endif
599	totalEmissiveRadiance *= emissiveColor.rgb;
600#endif`,HE=`#ifdef USE_EMISSIVEMAP
601	uniform sampler2D emissiveMap;
602#endif`,kE="gl_FragColor = linearToOutputTexel( gl_FragColor );",GE=`vec4 LinearTransferOETF( in vec4 value ) {
603	return value;
604}
605vec4 sRGBTransferEOTF( in vec4 value ) {
606	return 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 );
607}
608vec4 sRGBTransferOETF( in vec4 value ) {
609	return 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 );
610}`,WE=`#ifdef USE_ENVMAP
611	#ifdef ENV_WORLDPOS
612		vec3 cameraToFrag;
613		if ( isOrthographic ) {
614			cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
615		} else {
616			cameraToFrag = normalize( vWorldPosition - cameraPosition );
617		}
618		vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
619		#ifdef ENVMAP_MODE_REFLECTION
620			vec3 reflectVec = reflect( cameraToFrag, worldNormal );
621		#else
622			vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
623		#endif
624	#else
625		vec3 reflectVec = vReflect;
626	#endif
627	#ifdef ENVMAP_TYPE_CUBE
628		vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
629	#else
630		vec4 envColor = vec4( 0.0 );
631	#endif
632	#ifdef ENVMAP_BLENDING_MULTIPLY
633		outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
634	#elif defined( ENVMAP_BLENDING_MIX )
635		outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
636	#elif defined( ENVMAP_BLENDING_ADD )
637		outgoingLight += envColor.xyz * specularStrength * reflectivity;
638	#endif
639#endif`,XE=`#ifdef USE_ENVMAP
640	uniform float envMapIntensity;
641	uniform float flipEnvMap;
642	uniform mat3 envMapRotation;
643	#ifdef ENVMAP_TYPE_CUBE
644		uniform samplerCube envMap;
645	#else
646		uniform sampler2D envMap;
647	#endif
648	
649#endif`,qE=`#ifdef USE_ENVMAP
650	uniform float reflectivity;
651	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
652		#define ENV_WORLDPOS
653	#endif
654	#ifdef ENV_WORLDPOS
655		varying vec3 vWorldPosition;
656		uniform float refractionRatio;
657	#else
658		varying vec3 vReflect;
659	#endif
660#endif`,YE=`#ifdef USE_ENVMAP
661	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
662		#define ENV_WORLDPOS
663	#endif
664	#ifdef ENV_WORLDPOS
665		
666		varying vec3 vWorldPosition;
667	#else
668		varying vec3 vReflect;
669		uniform float refractionRatio;
670	#endif
671#endif`,ZE=`#ifdef USE_ENVMAP
672	#ifdef ENV_WORLDPOS
673		vWorldPosition = worldPosition.xyz;
674	#else
675		vec3 cameraToVertex;
676		if ( isOrthographic ) {
677			cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
678		} else {
679			cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
680		}
681		vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
682		#ifdef ENVMAP_MODE_REFLECTION
683			vReflect = reflect( cameraToVertex, worldNormal );
684		#else
685			vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
686		#endif
687	#endif
688#endif`,KE=`#ifdef USE_FOG
689	vFogDepth = - mvPosition.z;
690#endif`,QE=`#ifdef USE_FOG
691	varying float vFogDepth;
692#endif`,$E=`#ifdef USE_FOG
693	#ifdef FOG_EXP2
694		float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
695	#else
696		float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
697	#endif
698	gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
699#endif`,JE=`#ifdef USE_FOG
700	uniform vec3 fogColor;
701	varying float vFogDepth;
702	#ifdef FOG_EXP2
703		uniform float fogDensity;
704	#else
705		uniform float fogNear;
706		uniform float fogFar;
707	#endif
708#endif`,ew=`#ifdef USE_GRADIENTMAP
709	uniform sampler2D gradientMap;
710#endif
711vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
712	float dotNL = dot( normal, lightDirection );
713	vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
714	#ifdef USE_GRADIENTMAP
715		return vec3( texture2D( gradientMap, coord ).r );
716	#else
717		vec2 fw = fwidth( coord ) * 0.5;
718		return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
719	#endif
720}`,tw=`#ifdef USE_LIGHTMAP
721	uniform sampler2D lightMap;
722	uniform float lightMapIntensity;
723#endif`,nw=`LambertMaterial material;
724material.diffuseColor = diffuseColor.rgb;
725material.specularStrength = specularStrength;`,iw=`varying vec3 vViewPosition;
726struct LambertMaterial {
727	vec3 diffuseColor;
728	float specularStrength;
729};
730void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
731	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
732	vec3 irradiance = dotNL * directLight.color;
733	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
734}
735void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
736	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
737}
738#define RE_Direct				RE_Direct_Lambert
739#define RE_IndirectDiffuse		RE_IndirectDiffuse_Lambert`,sw=`uniform bool receiveShadow;
740uniform vec3 ambientLightColor;
741#if defined( USE_LIGHT_PROBES )
742	uniform vec3 lightProbe[ 9 ];
743#endif
744vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
745	float x = normal.x, y = normal.y, z = normal.z;
746	vec3 result = shCoefficients[ 0 ] * 0.886227;
747	result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
748	result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
749	result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
750	result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
751	result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
752	result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
753	result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
754	result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
755	return result;
756}
757vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
758	vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
759	vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
760	return irradiance;
761}
762vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
763	vec3 irradiance = ambientLightColor;
764	return irradiance;
765}
766float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
767	float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
768	if ( cutoffDistance > 0.0 ) {
769		distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
770	}
771	return distanceFalloff;
772}
773float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
774	return smoothstep( coneCosine, penumbraCosine, angleCosine );
775}
776#if NUM_DIR_LIGHTS > 0
777	struct DirectionalLight {
778		vec3 direction;
779		vec3 color;
780	};
781	uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
782	void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
783		light.color = directionalLight.color;
784		light.direction = directionalLight.direction;
785		light.visible = true;
786	}
787#endif
788#if NUM_POINT_LIGHTS > 0
789	struct PointLight {
790		vec3 position;
791		vec3 color;
792		float distance;
793		float decay;
794	};
795	uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
796	void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
797		vec3 lVector = pointLight.position - geometryPosition;
798		light.direction = normalize( lVector );
799		float lightDistance = length( lVector );
800		light.color = pointLight.color;
801		light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
802		light.visible = ( light.color != vec3( 0.0 ) );
803	}
804#endif
805#if NUM_SPOT_LIGHTS > 0
806	struct SpotLight {
807		vec3 position;
808		vec3 direction;
809		vec3 color;
810		float distance;
811		float decay;
812		float coneCos;
813		float penumbraCos;
814	};
815	uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
816	void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
817		vec3 lVector = spotLight.position - geometryPosition;
818		light.direction = normalize( lVector );
819		float angleCos = dot( light.direction, spotLight.direction );
820		float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
821		if ( spotAttenuation > 0.0 ) {
822			float lightDistance = length( lVector );
823			light.color = spotLight.color * spotAttenuation;
824			light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
825			light.visible = ( light.color != vec3( 0.0 ) );
826		} else {
827			light.color = vec3( 0.0 );
828			light.visible = false;
829		}
830	}
831#endif
832#if NUM_RECT_AREA_LIGHTS > 0
833	struct RectAreaLight {
834		vec3 color;
835		vec3 position;
836		vec3 halfWidth;
837		vec3 halfHeight;
838	};
839	uniform sampler2D ltc_1;	uniform sampler2D ltc_2;
840	uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
841#endif
842#if NUM_HEMI_LIGHTS > 0
843	struct HemisphereLight {
844		vec3 direction;
845		vec3 skyColor;
846		vec3 groundColor;
847	};
848	uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
849	vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
850		float dotNL = dot( normal, hemiLight.direction );
851		float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
852		vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
853		return irradiance;
854	}
855#endif`,aw=`#ifdef USE_ENVMAP
856	vec3 getIBLIrradiance( const in vec3 normal ) {
857		#ifdef ENVMAP_TYPE_CUBE_UV
858			vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
859			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
860			return PI * envMapColor.rgb * envMapIntensity;
861		#else
862			return vec3( 0.0 );
863		#endif
864	}
865	vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
866		#ifdef ENVMAP_TYPE_CUBE_UV
867			vec3 reflectVec = reflect( - viewDir, normal );
868			reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );
869			reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
870			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
871			return envMapColor.rgb * envMapIntensity;
872		#else
873			return vec3( 0.0 );
874		#endif
875	}
876	#ifdef USE_ANISOTROPY
877		vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
878			#ifdef ENVMAP_TYPE_CUBE_UV
879				vec3 bentNormal = cross( bitangent, viewDir );
880				bentNormal = normalize( cross( bentNormal, bitangent ) );
881				bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
882				return getIBLRadiance( viewDir, bentNormal, roughness );
883			#else
884				return vec3( 0.0 );
885			#endif
886		}
887	#endif
888#endif`,rw=`ToonMaterial material;
889material.diffuseColor = diffuseColor.rgb;`,ow=`varying vec3 vViewPosition;
890struct ToonMaterial {
891	vec3 diffuseColor;
892};
893void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
894	vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
895	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
896}
897void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
898	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
899}
900#define RE_Direct				RE_Direct_Toon
901#define RE_IndirectDiffuse		RE_IndirectDiffuse_Toon`,lw=`BlinnPhongMaterial material;
902material.diffuseColor = diffuseColor.rgb;
903material.specularColor = specular;
904material.specularShininess = shininess;
905material.specularStrength = specularStrength;`,cw=`varying vec3 vViewPosition;
906struct BlinnPhongMaterial {
907	vec3 diffuseColor;
908	vec3 specularColor;
909	float specularShininess;
910	float specularStrength;
911};
912void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
913	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
914	vec3 irradiance = dotNL * directLight.color;
915	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
916	reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
917}
918void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
919	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
920}
921#define RE_Direct				RE_Direct_BlinnPhong
922#define RE_IndirectDiffuse		RE_IndirectDiffuse_BlinnPhong`,uw=`PhysicalMaterial material;
923material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
924vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
925float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
926material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
927material.roughness = min( material.roughness, 1.0 );
928#ifdef IOR
929	material.ior = ior;
930	#ifdef USE_SPECULAR
931		float specularIntensityFactor = specularIntensity;
932		vec3 specularColorFactor = specularColor;
933		#ifdef USE_SPECULAR_COLORMAP
934			specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
935		#endif
936		#ifdef USE_SPECULAR_INTENSITYMAP
937			specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
938		#endif
939		material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
940	#else
941		float specularIntensityFactor = 1.0;
942		vec3 specularColorFactor = vec3( 1.0 );
943		material.specularF90 = 1.0;
944	#endif
945	material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
946#else
947	material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );
948	material.specularF90 = 1.0;
949#endif
950#ifdef USE_CLEARCOAT
951	material.clearcoat = clearcoat;
952	material.clearcoatRoughness = clearcoatRoughness;
953	material.clearcoatF0 = vec3( 0.04 );
954	material.clearcoatF90 = 1.0;
955	#ifdef USE_CLEARCOATMAP
956		material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
957	#endif
958	#ifdef USE_CLEARCOAT_ROUGHNESSMAP
959		material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
960	#endif
961	material.clearcoat = saturate( material.clearcoat );	material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
962	material.clearcoatRoughness += geometryRoughness;
963	material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
964#endif
965#ifdef USE_DISPERSION
966	material.dispersion = dispersion;
967#endif
968#ifdef USE_IRIDESCENCE
969	material.iridescence = iridescence;
970	material.iridescenceIOR = iridescenceIOR;
971	#ifdef USE_IRIDESCENCEMAP
972		material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
973	#endif
974	#ifdef USE_IRIDESCENCE_THICKNESSMAP
975		material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
976	#else
977		material.iridescenceThickness = iridescenceThicknessMaximum;
978	#endif
979#endif
980#ifdef USE_SHEEN
981	material.sheenColor = sheenColor;
982	#ifdef USE_SHEEN_COLORMAP
983		material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
984	#endif
985	material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
986	#ifdef USE_SHEEN_ROUGHNESSMAP
987		material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
988	#endif
989#endif
990#ifdef USE_ANISOTROPY
991	#ifdef USE_ANISOTROPYMAP
992		mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
993		vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
994		vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
995	#else
996		vec2 anisotropyV = anisotropyVector;
997	#endif
998	material.anisotropy = length( anisotropyV );
999	if( material.anisotropy == 0.0 ) {
1000		anisotropyV = vec2( 1.0, 0.0 );
1001	} else {
1002		anisotropyV /= material.anisotropy;
1003		material.anisotropy = saturate( material.anisotropy );
1004	}
1005	material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
1006	material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
1007	material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
1008#endif`,fw
vendor: 14,687 bytes, lines 1008-1309
1008=`struct PhysicalMaterial {
1009	vec3 diffuseColor;
1010	float roughness;
1011	vec3 specularColor;
1012	float specularF90;
1013	float dispersion;
1014	#ifdef USE_CLEARCOAT
1015		float clearcoat;
1016		float clearcoatRoughness;
1017		vec3 clearcoatF0;
1018		float clearcoatF90;
1019	#endif
1020	#ifdef USE_IRIDESCENCE
1021		float iridescence;
1022		float iridescenceIOR;
1023		float iridescenceThickness;
1024		vec3 iridescenceFresnel;
1025		vec3 iridescenceF0;
1026	#endif
1027	#ifdef USE_SHEEN
1028		vec3 sheenColor;
1029		float sheenRoughness;
1030	#endif
1031	#ifdef IOR
1032		float ior;
1033	#endif
1034	#ifdef USE_TRANSMISSION
1035		float transmission;
1036		float transmissionAlpha;
1037		float thickness;
1038		float attenuationDistance;
1039		vec3 attenuationColor;
1040	#endif
1041	#ifdef USE_ANISOTROPY
1042		float anisotropy;
1043		float alphaT;
1044		vec3 anisotropyT;
1045		vec3 anisotropyB;
1046	#endif
1047};
1048vec3 clearcoatSpecularDirect = vec3( 0.0 );
1049vec3 clearcoatSpecularIndirect = vec3( 0.0 );
1050vec3 sheenSpecularDirect = vec3( 0.0 );
1051vec3 sheenSpecularIndirect = vec3(0.0 );
1052vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
1053    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
1054    float x2 = x * x;
1055    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
1056    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
1057}
1058float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
1059	float a2 = pow2( alpha );
1060	float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
1061	float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
1062	return 0.5 / max( gv + gl, EPSILON );
1063}
1064float D_GGX( const in float alpha, const in float dotNH ) {
1065	float a2 = pow2( alpha );
1066	float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
1067	return RECIPROCAL_PI * a2 / pow2( denom );
1068}
1069#ifdef USE_ANISOTROPY
1070	float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
1071		float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
1072		float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
1073		float v = 0.5 / ( gv + gl );
1074		return saturate(v);
1075	}
1076	float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
1077		float a2 = alphaT * alphaB;
1078		highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
1079		highp float v2 = dot( v, v );
1080		float w2 = a2 / v2;
1081		return RECIPROCAL_PI * a2 * pow2 ( w2 );
1082	}
1083#endif
1084#ifdef USE_CLEARCOAT
1085	vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
1086		vec3 f0 = material.clearcoatF0;
1087		float f90 = material.clearcoatF90;
1088		float roughness = material.clearcoatRoughness;
1089		float alpha = pow2( roughness );
1090		vec3 halfDir = normalize( lightDir + viewDir );
1091		float dotNL = saturate( dot( normal, lightDir ) );
1092		float dotNV = saturate( dot( normal, viewDir ) );
1093		float dotNH = saturate( dot( normal, halfDir ) );
1094		float dotVH = saturate( dot( viewDir, halfDir ) );
1095		vec3 F = F_Schlick( f0, f90, dotVH );
1096		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
1097		float D = D_GGX( alpha, dotNH );
1098		return F * ( V * D );
1099	}
1100#endif
1101vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
1102	vec3 f0 = material.specularColor;
1103	float f90 = material.specularF90;
1104	float roughness = material.roughness;
1105	float alpha = pow2( roughness );
1106	vec3 halfDir = normalize( lightDir + viewDir );
1107	float dotNL = saturate( dot( normal, lightDir ) );
1108	float dotNV = saturate( dot( normal, viewDir ) );
1109	float dotNH = saturate( dot( normal, halfDir ) );
1110	float dotVH = saturate( dot( viewDir, halfDir ) );
1111	vec3 F = F_Schlick( f0, f90, dotVH );
1112	#ifdef USE_IRIDESCENCE
1113		F = mix( F, material.iridescenceFresnel, material.iridescence );
1114	#endif
1115	#ifdef USE_ANISOTROPY
1116		float dotTL = dot( material.anisotropyT, lightDir );
1117		float dotTV = dot( material.anisotropyT, viewDir );
1118		float dotTH = dot( material.anisotropyT, halfDir );
1119		float dotBL = dot( material.anisotropyB, lightDir );
1120		float dotBV = dot( material.anisotropyB, viewDir );
1121		float dotBH = dot( material.anisotropyB, halfDir );
1122		float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
1123		float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
1124	#else
1125		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
1126		float D = D_GGX( alpha, dotNH );
1127	#endif
1128	return F * ( V * D );
1129}
1130vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
1131	const float LUT_SIZE = 64.0;
1132	const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
1133	const float LUT_BIAS = 0.5 / LUT_SIZE;
1134	float dotNV = saturate( dot( N, V ) );
1135	vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
1136	uv = uv * LUT_SCALE + LUT_BIAS;
1137	return uv;
1138}
1139float LTC_ClippedSphereFormFactor( const in vec3 f ) {
1140	float l = length( f );
1141	return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
1142}
1143vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
1144	float x = dot( v1, v2 );
1145	float y = abs( x );
1146	float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
1147	float b = 3.4175940 + ( 4.1616724 + y ) * y;
1148	float v = a / b;
1149	float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
1150	return cross( v1, v2 ) * theta_sintheta;
1151}
1152vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
1153	vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
1154	vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
1155	vec3 lightNormal = cross( v1, v2 );
1156	if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
1157	vec3 T1, T2;
1158	T1 = normalize( V - N * dot( V, N ) );
1159	T2 = - cross( N, T1 );
1160	mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );
1161	vec3 coords[ 4 ];
1162	coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
1163	coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
1164	coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
1165	coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
1166	coords[ 0 ] = normalize( coords[ 0 ] );
1167	coords[ 1 ] = normalize( coords[ 1 ] );
1168	coords[ 2 ] = normalize( coords[ 2 ] );
1169	coords[ 3 ] = normalize( coords[ 3 ] );
1170	vec3 vectorFormFactor = vec3( 0.0 );
1171	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
1172	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
1173	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
1174	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
1175	float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
1176	return vec3( result );
1177}
1178#if defined( USE_SHEEN )
1179float D_Charlie( float roughness, float dotNH ) {
1180	float alpha = pow2( roughness );
1181	float invAlpha = 1.0 / alpha;
1182	float cos2h = dotNH * dotNH;
1183	float sin2h = max( 1.0 - cos2h, 0.0078125 );
1184	return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
1185}
1186float V_Neubelt( float dotNV, float dotNL ) {
1187	return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
1188}
1189vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
1190	vec3 halfDir = normalize( lightDir + viewDir );
1191	float dotNL = saturate( dot( normal, lightDir ) );
1192	float dotNV = saturate( dot( normal, viewDir ) );
1193	float dotNH = saturate( dot( normal, halfDir ) );
1194	float D = D_Charlie( sheenRoughness, dotNH );
1195	float V = V_Neubelt( dotNV, dotNL );
1196	return sheenColor * ( D * V );
1197}
1198#endif
1199float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
1200	float dotNV = saturate( dot( normal, viewDir ) );
1201	float r2 = roughness * roughness;
1202	float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
1203	float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
1204	float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
1205	return saturate( DG * RECIPROCAL_PI );
1206}
1207vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
1208	float dotNV = saturate( dot( normal, viewDir ) );
1209	const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
1210	const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
1211	vec4 r = roughness * c0 + c1;
1212	float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
1213	vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;
1214	return fab;
1215}
1216vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
1217	vec2 fab = DFGApprox( normal, viewDir, roughness );
1218	return specularColor * fab.x + specularF90 * fab.y;
1219}
1220#ifdef USE_IRIDESCENCE
1221void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
1222#else
1223void 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 ) {
1224#endif
1225	vec2 fab = DFGApprox( normal, viewDir, roughness );
1226	#ifdef USE_IRIDESCENCE
1227		vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
1228	#else
1229		vec3 Fr = specularColor;
1230	#endif
1231	vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
1232	float Ess = fab.x + fab.y;
1233	float Ems = 1.0 - Ess;
1234	vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;	vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
1235	singleScatter += FssEss;
1236	multiScatter += Fms * Ems;
1237}
1238#if NUM_RECT_AREA_LIGHTS > 0
1239	void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
1240		vec3 normal = geometryNormal;
1241		vec3 viewDir = geometryViewDir;
1242		vec3 position = geometryPosition;
1243		vec3 lightPos = rectAreaLight.position;
1244		vec3 halfWidth = rectAreaLight.halfWidth;
1245		vec3 halfHeight = rectAreaLight.halfHeight;
1246		vec3 lightColor = rectAreaLight.color;
1247		float roughness = material.roughness;
1248		vec3 rectCoords[ 4 ];
1249		rectCoords[ 0 ] = lightPos + halfWidth - halfHeight;		rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
1250		rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
1251		rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
1252		vec2 uv = LTC_Uv( normal, viewDir, roughness );
1253		vec4 t1 = texture2D( ltc_1, uv );
1254		vec4 t2 = texture2D( ltc_2, uv );
1255		mat3 mInv = mat3(
1256			vec3( t1.x, 0, t1.y ),
1257			vec3(    0, 1,    0 ),
1258			vec3( t1.z, 0, t1.w )
1259		);
1260		vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
1261		reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
1262		reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
1263	}
1264#endif
1265void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
1266	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
1267	vec3 irradiance = dotNL * directLight.color;
1268	#ifdef USE_CLEARCOAT
1269		float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
1270		vec3 ccIrradiance = dotNLcc * directLight.color;
1271		clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
1272	#endif
1273	#ifdef USE_SHEEN
1274		sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
1275	#endif
1276	reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
1277	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
1278}
1279void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
1280	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
1281}
1282void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
1283	#ifdef USE_CLEARCOAT
1284		clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
1285	#endif
1286	#ifdef USE_SHEEN
1287		sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
1288	#endif
1289	vec3 singleScattering = vec3( 0.0 );
1290	vec3 multiScattering = vec3( 0.0 );
1291	vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
1292	#ifdef USE_IRIDESCENCE
1293		computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );
1294	#else
1295		computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );
1296	#endif
1297	vec3 totalScattering = singleScattering + multiScattering;
1298	vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
1299	reflectedLight.indirectSpecular += radiance * singleScattering;
1300	reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
1301	reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
1302}
1303#define RE_Direct				RE_Direct_Physical
1304#define RE_Direct_RectArea		RE_Direct_RectArea_Physical
1305#define RE_IndirectDiffuse		RE_IndirectDiffuse_Physical
1306#define RE_IndirectSpecular		RE_IndirectSpecular_Physical
1307float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
1308	return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
1309}`,
1309dw=`
1310vec3 geometryPosition = - vViewPosition;
1311vec3 geometryNormal = normal;
1312vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
1313vec3 geometryClearcoatNormal = vec3( 0.0 );
1314#ifdef USE_CLEARCOAT
1315	geometryClearcoatNormal = clearcoatNormal;
1316#endif
1317#ifdef USE_IRIDESCENCE
1318	float dotNVi = saturate( dot( normal, geometryViewDir ) );
1319	if ( material.iridescenceThickness == 0.0 ) {
1320		material.iridescence = 0.0;
1321	} else {
1322		material.iridescence = saturate( material.iridescence );
1323	}
1324	if ( material.iridescence > 0.0 ) {
1325		material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
1326		material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );
1327	}
1328#endif
1329IncidentLight directLight;
1330#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
1331	PointLight pointLight;
1332	#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
1333	PointLightShadow pointLightShadow;
1334	#endif
1335	#pragma unroll_loop_start
1336	for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
1337		pointLight = pointLights[ i ];
1338		getPointLightInfo( pointLight, geometryPosition, directLight );
1339		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
1340		pointLightShadow = pointLightShadows[ i ];
1341		directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
1342		#endif
1343		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
1344	}
1345	#pragma unroll_loop_end
1346#endif
1347#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
1348	SpotLight spotLight;
1349	vec4 spotColor;
1350	vec3 spotLightCoord;
1351	bool inSpotLightMap;
1352	#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
1353	SpotLightShadow spotLightShadow;
1354	#endif
1355	#pragma unroll_loop_start
1356	for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
1357		spotLight = spotLights[ i ];
1358		getSpotLightInfo( spotLight, geometryPosition, directLight );
1359		#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
1360		#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
1361		#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
1362		#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
1363		#else
1364		#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
1365		#endif
1366		#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )
1367			spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
1368			inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
1369			spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
1370			directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
1371		#endif
1372		#undef SPOT_LIGHT_MAP_INDEX
1373		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
1374		spotLightShadow = spotLightShadows[ i ];
1375		directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
1376		#endif
1377		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
1378	}
1379	#pragma unroll_loop_end
1380#endif
1381#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
1382	DirectionalLight directionalLight;
1383	#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
1384	DirectionalLightShadow directionalLightShadow;
1385	#endif
1386	#pragma unroll_loop_start
1387	for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
1388		directionalLight = directionalLights[ i ];
1389		getDirectionalLightInfo( directionalLight, directLight );
1390		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
1391		directionalLightShadow = directionalLightShadows[ i ];
1392		directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
1393		#endif
1394		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
1395	}
1396	#pragma unroll_loop_end
1397#endif
1398#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
1399	RectAreaLight rectAreaLight;
1400	#pragma unroll_loop_start
1401	for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
1402		rectAreaLight = rectAreaLights[ i ];
1403		RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
1404	}
1405	#pragma unroll_loop_end
1406#endif
1407#if defined( RE_IndirectDiffuse )
1408	vec3 iblIrradiance = vec3( 0.0 );
1409	vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
1410	#if defined( USE_LIGHT_PROBES )
1411		irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
1412	#endif
1413	#if ( NUM_HEMI_LIGHTS > 0 )
1414		#pragma unroll_loop_start
1415		for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
1416			irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
1417		}
1418		#pragma unroll_loop_end
1419	#endif
1420#endif
1421#if defined( RE_IndirectSpecular )
1422	vec3 radiance = vec3( 0.0 );
1423	vec3 clearcoatRadiance = vec3( 0.0 );
1424#endif`,hw=`#if defined( RE_IndirectDiffuse )
1425	#ifdef USE_LIGHTMAP
1426		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
1427		vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
1428		irradiance += lightMapIrradiance;
1429	#endif
1430	#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )
1431		iblIrradiance += getIBLIrradiance( geometryNormal );
1432	#endif
1433#endif
1434#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
1435	#ifdef USE_ANISOTROPY
1436		radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
1437	#else
1438		radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
1439	#endif
1440	#ifdef USE_CLEARCOAT
1441		clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
1442	#endif
1443#endif`,pw=`#if defined( RE_IndirectDiffuse )
1444	RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
1445#endif
1446#if defined( RE_IndirectSpecular )
1447	RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
1448#endif`,mw=`#if defined( USE_LOGDEPTHBUF )
1449	gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
1450#endif`,gw=`#if defined( USE_LOGDEPTHBUF )
1451	uniform float logDepthBufFC;
1452	varying float vFragDepth;
1453	varying float vIsPerspective;
1454#endif`,vw=`#ifdef USE_LOGDEPTHBUF
1455	varying float vFragDepth;
1456	varying float vIsPerspective;
1457#endif`,xw=`#ifdef USE_LOGDEPTHBUF
1458	vFragDepth = 1.0 + gl_Position.w;
1459	vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
1460#endif`,_w=`#ifdef USE_MAP
1461	vec4 sampledDiffuseColor = texture2D( map, vMapUv );
1462	#ifdef DECODE_VIDEO_TEXTURE
1463		sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );
1464	#endif
1465	diffuseColor *= sampledDiffuseColor;
1466#endif`,yw=`#ifdef USE_MAP
1467	uniform sampler2D map;
1468#endif`,Sw=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
1469	#if defined( USE_POINTS_UV )
1470		vec2 uv = vUv;
1471	#else
1472		vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
1473	#endif
1474#endif
1475#ifdef USE_MAP
1476	diffuseColor *= texture2D( map, uv );
1477#endif
1478#ifdef USE_ALPHAMAP
1479	diffuseColor.a *= texture2D( alphaMap, uv ).g;
1480#endif`,Mw=`#if defined( USE_POINTS_UV )
1481	varying vec2 vUv;
1482#else
1483	#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
1484		uniform mat3 uvTransform;
1485	#endif
1486#endif
1487#ifdef USE_MAP
1488	uniform sampler2D map;
1489#endif
1490#ifdef USE_ALPHAMAP
1491	uniform sampler2D alphaMap;
1492#endif`,bw=`float metalnessFactor = metalness;
1493#ifdef USE_METALNESSMAP
1494	vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
1495	metalnessFactor *= texelMetalness.b;
1496#endif`,Ew=`#ifdef USE_METALNESSMAP
1497	uniform sampler2D metalnessMap;
1498#endif`,ww=`#ifdef USE_INSTANCING_MORPH
1499	float morphTargetInfluences[ MORPHTARGETS_COUNT ];
1500	float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;
1501	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
1502		morphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;
1503	}
1504#endif`,Tw=`#if defined( USE_MORPHCOLORS )
1505	vColor *= morphTargetBaseInfluence;
1506	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
1507		#if defined( USE_COLOR_ALPHA )
1508			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
1509		#elif defined( USE_COLOR )
1510			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
1511		#endif
1512	}
1513#endif`,Cw=`#ifdef USE_MORPHNORMALS
1514	objectNormal *= morphTargetBaseInfluence;
1515	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
1516		if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
1517	}
1518#endif`,Aw=`#ifdef USE_MORPHTARGETS
1519	#ifndef USE_INSTANCING_MORPH
1520		uniform float morphTargetBaseInfluence;
1521		uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
1522	#endif
1523	uniform sampler2DArray morphTargetsTexture;
1524	uniform ivec2 morphTargetsTextureSize;
1525	vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
1526		int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
1527		int y = texelIndex / morphTargetsTextureSize.x;
1528		int x = texelIndex - y * morphTargetsTextureSize.x;
1529		ivec3 morphUV = ivec3( x, y, morphTargetIndex );
1530		return texelFetch( morphTargetsTexture, morphUV, 0 );
1531	}
1532#endif`,Rw=`#ifdef USE_MORPHTARGETS
1533	transformed *= morphTargetBaseInfluence;
1534	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
1535		if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
1536	}
1537#endif`,Nw=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
1538#ifdef FLAT_SHADED
1539	vec3 fdx = dFdx( vViewPosition );
1540	vec3 fdy = dFdy( vViewPosition );
1541	vec3 normal = normalize( cross( fdx, fdy ) );
1542#else
1543	vec3 normal = normalize( vNormal );
1544	#ifdef DOUBLE_SIDED
1545		normal *= faceDirection;
1546	#endif
1547#endif
1548#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
1549	#ifdef USE_TANGENT
1550		mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
1551	#else
1552		mat3 tbn = getTangentFrame( - vViewPosition, normal,
1553		#if defined( USE_NORMALMAP )
1554			vNormalMapUv
1555		#elif defined( USE_CLEARCOAT_NORMALMAP )
1556			vClearcoatNormalMapUv
1557		#else
1558			vUv
1559		#endif
1560		);
1561	#endif
1562	#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
1563		tbn[0] *= faceDirection;
1564		tbn[1] *= faceDirection;
1565	#endif
1566#endif
1567#ifdef USE_CLEARCOAT_NORMALMAP
1568	#ifdef USE_TANGENT
1569		mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
1570	#else
1571		mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
1572	#endif
1573	#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
1574		tbn2[0] *= faceDirection;
1575		tbn2[1] *= faceDirection;
1576	#endif
1577#endif
1578vec3 nonPerturbedNormal = normal;`,Lw=`#ifdef USE_NORMALMAP_OBJECTSPACE
1579	normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
1580	#ifdef FLIP_SIDED
1581		normal = - normal;
1582	#endif
1583	#ifdef DOUBLE_SIDED
1584		normal = normal * faceDirection;
1585	#endif
1586	normal = normalize( normalMatrix * normal );
1587#elif defined( USE_NORMALMAP_TANGENTSPACE )
1588	vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
1589	mapN.xy *= normalScale;
1590	normal = normalize( tbn * mapN );
1591#elif defined( USE_BUMPMAP )
1592	normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
1593#endif`,Dw=`#ifndef FLAT_SHADED
1594	varying vec3 vNormal;
1595	#ifdef USE_TANGENT
1596		varying vec3 vTangent;
1597		varying vec3 vBitangent;
1598	#endif
1599#endif`,Uw=`#ifndef FLAT_SHADED
1600	varying vec3 vNormal;
1601	#ifdef USE_TANGENT
1602		varying vec3 vTangent;
1603		varying vec3 vBitangent;
1604	#endif
1605#endif`,Pw=`#ifndef FLAT_SHADED
1606	vNormal = normalize( transformedNormal );
1607	#ifdef USE_TANGENT
1608		vTangent = normalize( transformedTangent );
1609		vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
1610	#endif
1611#endif`,Ow=`#ifdef USE_NORMALMAP
1612	uniform sampler2D normalMap;
1613	uniform vec2 normalScale;
1614#endif
1615#ifdef USE_NORMALMAP_OBJECTSPACE
1616	uniform mat3 normalMatrix;
1617#endif
1618#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
1619	mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
1620		vec3 q0 = dFdx( eye_pos.xyz );
1621		vec3 q1 = dFdy( eye_pos.xyz );
1622		vec2 st0 = dFdx( uv.st );
1623		vec2 st1 = dFdy( uv.st );
1624		vec3 N = surf_norm;
1625		vec3 q1perp = cross( q1, N );
1626		vec3 q0perp = cross( N, q0 );
1627		vec3 T = q1perp * st0.x + q0perp * st1.x;
1628		vec3 B = q1perp * st0.y + q0perp * st1.y;
1629		float det = max( dot( T, T ), dot( B, B ) );
1630		float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
1631		return mat3( T * scale, B * scale, N );
1632	}
1633#endif`,Iw=`#ifdef USE_CLEARCOAT
1634	vec3 clearcoatNormal = nonPerturbedNormal;
1635#endif`,Bw=`#ifdef USE_CLEARCOAT_NORMALMAP
1636	vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
1637	clearcoatMapN.xy *= clearcoatNormalScale;
1638	clearcoatNormal = normalize( tbn2 * clearcoatMapN );
1639#endif`,Fw=`#ifdef USE_CLEARCOATMAP
1640	uniform sampler2D clearcoatMap;
1641#endif
1642#ifdef USE_CLEARCOAT_NORMALMAP
1643	uniform sampler2D clearcoatNormalMap;
1644	uniform vec2 clearcoatNormalScale;
1645#endif
1646#ifdef USE_CLEARCOAT_ROUGHNESSMAP
1647	uniform sampler2D clearcoatRoughnessMap;
1648#endif`,zw=`#ifdef USE_IRIDESCENCEMAP
1649	uniform sampler2D iridescenceMap;
1650#endif
1651#ifdef USE_IRIDESCENCE_THICKNESSMAP
1652	uniform sampler2D iridescenceThicknessMap;
1653#endif`,Vw=`#ifdef OPAQUE
1654diffuseColor.a = 1.0;
1655#endif
1656#ifdef USE_TRANSMISSION
1657diffuseColor.a *= material.transmissionAlpha;
1658#endif
1659gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,jw=`vec3 packNormalToRGB( const in vec3 normal ) {
1660	return normalize( normal ) * 0.5 + 0.5;
1661}
1662vec3 unpackRGBToNormal( const in vec3 rgb ) {
1663	return 2.0 * rgb.xyz - 1.0;
1664}
1665const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;
1666const float Inv255 = 1. / 255.;
1667const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );
1668const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );
1669const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );
1670const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );
1671vec4 packDepthToRGBA( const in float v ) {
1672	if( v <= 0.0 )
1673		return vec4( 0., 0., 0., 0. );
1674	if( v >= 1.0 )
1675		return vec4( 1., 1., 1., 1. );
1676	float vuf;
1677	float af = modf( v * PackFactors.a, vuf );
1678	float bf = modf( vuf * ShiftRight8, vuf );
1679	float gf = modf( vuf * ShiftRight8, vuf );
1680	return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );
1681}
1682vec3 packDepthToRGB( const in float v ) {
1683	if( v <= 0.0 )
1684		return vec3( 0., 0., 0. );
1685	if( v >= 1.0 )
1686		return vec3( 1., 1., 1. );
1687	float vuf;
1688	float bf = modf( v * PackFactors.b, vuf );
1689	float gf = modf( vuf * ShiftRight8, vuf );
1690	return vec3( vuf * Inv255, gf * PackUpscale, bf );
1691}
1692vec2 packDepthToRG( const in float v ) {
1693	if( v <= 0.0 )
1694		return vec2( 0., 0. );
1695	if( v >= 1.0 )
1696		return vec2( 1., 1. );
1697	float vuf;
1698	float gf = modf( v * 256., vuf );
1699	return vec2( vuf * Inv255, gf );
1700}
1701float unpackRGBAToDepth( const in vec4 v ) {
1702	return dot( v, UnpackFactors4 );
1703}
1704float unpackRGBToDepth( const in vec3 v ) {
1705	return dot( v, UnpackFactors3 );
1706}
1707float unpackRGToDepth( const in vec2 v ) {
1708	return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;
1709}
1710vec4 pack2HalfToRGBA( const in vec2 v ) {
1711	vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
1712	return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
1713}
1714vec2 unpackRGBATo2Half( const in vec4 v ) {
1715	return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
1716}
1717float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
1718	return ( viewZ + near ) / ( near - far );
1719}
1720float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
1721	return depth * ( near - far ) - near;
1722}
1723float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
1724	return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
1725}
1726float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
1727	return ( near * far ) / ( ( far - near ) * depth - far );
1728}`,Hw=`#ifdef PREMULTIPLIED_ALPHA
1729	gl_FragColor.rgb *= gl_FragColor.a;
1730#endif`,kw=`vec4 mvPosition = vec4( transformed, 1.0 );
1731#ifdef USE_BATCHING
1732	mvPosition = batchingMatrix * mvPosition;
1733#endif
1734#ifdef USE_INSTANCING
1735	mvPosition = instanceMatrix * mvPosition;
1736#endif
1737mvPosition = modelViewMatrix * mvPosition;
1738gl_Position = projectionMatrix * mvPosition;`,Gw=`#ifdef DITHERING
1739	gl_FragColor.rgb = dithering( gl_FragColor.rgb );
1740#endif`,Ww=`#ifdef DITHERING
1741	vec3 dithering( vec3 color ) {
1742		float grid_position = rand( gl_FragCoord.xy );
1743		vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
1744		dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
1745		return color + dither_shift_RGB;
1746	}
1747#endif`,Xw=`float roughnessFactor = roughness;
1748#ifdef USE_ROUGHNESSMAP
1749	vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
1750	roughnessFactor *= texelRoughness.g;
1751#endif`,qw=`#ifdef USE_ROUGHNESSMAP
1752	uniform sampler2D roughnessMap;
1753#endif`,Yw=
vendor: 8,887 bytes, lines 1753-1939
1753`#if NUM_SPOT_LIGHT_COORDS > 0
1754	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
1755#endif
1756#if NUM_SPOT_LIGHT_MAPS > 0
1757	uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
1758#endif
1759#ifdef USE_SHADOWMAP
1760	#if NUM_DIR_LIGHT_SHADOWS > 0
1761		uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
1762		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
1763		struct DirectionalLightShadow {
1764			float shadowIntensity;
1765			float shadowBias;
1766			float shadowNormalBias;
1767			float shadowRadius;
1768			vec2 shadowMapSize;
1769		};
1770		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
1771	#endif
1772	#if NUM_SPOT_LIGHT_SHADOWS > 0
1773		uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
1774		struct SpotLightShadow {
1775			float shadowIntensity;
1776			float shadowBias;
1777			float shadowNormalBias;
1778			float shadowRadius;
1779			vec2 shadowMapSize;
1780		};
1781		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
1782	#endif
1783	#if NUM_POINT_LIGHT_SHADOWS > 0
1784		uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
1785		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
1786		struct PointLightShadow {
1787			float shadowIntensity;
1788			float shadowBias;
1789			float shadowNormalBias;
1790			float shadowRadius;
1791			vec2 shadowMapSize;
1792			float shadowCameraNear;
1793			float shadowCameraFar;
1794		};
1795		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
1796	#endif
1797	float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
1798		return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );
1799	}
1800	vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
1801		return unpackRGBATo2Half( texture2D( shadow, uv ) );
1802	}
1803	float VSMShadow (sampler2D shadow, vec2 uv, float compare ){
1804		float occlusion = 1.0;
1805		vec2 distribution = texture2DDistribution( shadow, uv );
1806		float hard_shadow = step( compare , distribution.x );
1807		if (hard_shadow != 1.0 ) {
1808			float distance = compare - distribution.x ;
1809			float variance = max( 0.00000, distribution.y * distribution.y );
1810			float softness_probability = variance / (variance + distance * distance );			softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );			occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
1811		}
1812		return occlusion;
1813	}
1814	float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
1815		float shadow = 1.0;
1816		shadowCoord.xyz /= shadowCoord.w;
1817		shadowCoord.z += shadowBias;
1818		bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
1819		bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
1820		if ( frustumTest ) {
1821		#if defined( SHADOWMAP_TYPE_PCF )
1822			vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
1823			float dx0 = - texelSize.x * shadowRadius;
1824			float dy0 = - texelSize.y * shadowRadius;
1825			float dx1 = + texelSize.x * shadowRadius;
1826			float dy1 = + texelSize.y * shadowRadius;
1827			float dx2 = dx0 / 2.0;
1828			float dy2 = dy0 / 2.0;
1829			float dx3 = dx1 / 2.0;
1830			float dy3 = dy1 / 2.0;
1831			shadow = (
1832				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
1833				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
1834				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
1835				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
1836				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
1837				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
1838				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
1839				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
1840				texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
1841				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
1842				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
1843				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
1844				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
1845				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
1846				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
1847				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
1848				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
1849			) * ( 1.0 / 17.0 );
1850		#elif defined( SHADOWMAP_TYPE_PCF_SOFT )
1851			vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
1852			float dx = texelSize.x;
1853			float dy = texelSize.y;
1854			vec2 uv = shadowCoord.xy;
1855			vec2 f = fract( uv * shadowMapSize + 0.5 );
1856			uv -= f * texelSize;
1857			shadow = (
1858				texture2DCompare( shadowMap, uv, shadowCoord.z ) +
1859				texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
1860				texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
1861				texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
1862				mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
1863					 texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
1864					 f.x ) +
1865				mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
1866					 texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
1867					 f.x ) +
1868				mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
1869					 texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
1870					 f.y ) +
1871				mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
1872					 texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
1873					 f.y ) +
1874				mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
1875						  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
1876						  f.x ),
1877					 mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
1878						  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
1879						  f.x ),
1880					 f.y )
1881			) * ( 1.0 / 9.0 );
1882		#elif defined( SHADOWMAP_TYPE_VSM )
1883			shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
1884		#else
1885			shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
1886		#endif
1887		}
1888		return mix( 1.0, shadow, shadowIntensity );
1889	}
1890	vec2 cubeToUV( vec3 v, float texelSizeY ) {
1891		vec3 absV = abs( v );
1892		float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
1893		absV *= scaleToCube;
1894		v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
1895		vec2 planar = v.xy;
1896		float almostATexel = 1.5 * texelSizeY;
1897		float almostOne = 1.0 - almostATexel;
1898		if ( absV.z >= almostOne ) {
1899			if ( v.z > 0.0 )
1900				planar.x = 4.0 - v.x;
1901		} else if ( absV.x >= almostOne ) {
1902			float signX = sign( v.x );
1903			planar.x = v.z * signX + 2.0 * signX;
1904		} else if ( absV.y >= almostOne ) {
1905			float signY = sign( v.y );
1906			planar.x = v.x + 2.0 * signY + 2.0;
1907			planar.y = v.z * signY - 2.0;
1908		}
1909		return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
1910	}
1911	float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
1912		float shadow = 1.0;
1913		vec3 lightToPosition = shadowCoord.xyz;
1914		
1915		float lightToPositionLength = length( lightToPosition );
1916		if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {
1917			float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );			dp += shadowBias;
1918			vec3 bd3D = normalize( lightToPosition );
1919			vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
1920			#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
1921				vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
1922				shadow = (
1923					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
1924					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
1925					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
1926					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
1927					texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
1928					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
1929					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
1930					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
1931					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
1932				) * ( 1.0 / 9.0 );
1933			#else
1934				shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
1935			#endif
1936		}
1937		return mix( 1.0, shadow, shadowIntensity );
1938	}
1939#endif`,
1939Zw=`#if NUM_SPOT_LIGHT_COORDS > 0
1940	uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
1941	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
1942#endif
1943#ifdef USE_SHADOWMAP
1944	#if NUM_DIR_LIGHT_SHADOWS > 0
1945		uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
1946		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
1947		struct DirectionalLightShadow {
1948			float shadowIntensity;
1949			float shadowBias;
1950			float shadowNormalBias;
1951			float shadowRadius;
1952			vec2 shadowMapSize;
1953		};
1954		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
1955	#endif
1956	#if NUM_SPOT_LIGHT_SHADOWS > 0
1957		struct SpotLightShadow {
1958			float shadowIntensity;
1959			float shadowBias;
1960			float shadowNormalBias;
1961			float shadowRadius;
1962			vec2 shadowMapSize;
1963		};
1964		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
1965	#endif
1966	#if NUM_POINT_LIGHT_SHADOWS > 0
1967		uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
1968		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
1969		struct PointLightShadow {
1970			float shadowIntensity;
1971			float shadowBias;
1972			float shadowNormalBias;
1973			float shadowRadius;
1974			vec2 shadowMapSize;
1975			float shadowCameraNear;
1976			float shadowCameraFar;
1977		};
1978		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
1979	#endif
1980#endif`,Kw=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )
1981	vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
1982	vec4 shadowWorldPosition;
1983#endif
1984#if defined( USE_SHADOWMAP )
1985	#if NUM_DIR_LIGHT_SHADOWS > 0
1986		#pragma unroll_loop_start
1987		for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
1988			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
1989			vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
1990		}
1991		#pragma unroll_loop_end
1992	#endif
1993	#if NUM_POINT_LIGHT_SHADOWS > 0
1994		#pragma unroll_loop_start
1995		for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
1996			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
1997			vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
1998		}
1999		#pragma unroll_loop_end
2000	#endif
2001#endif
2002#if NUM_SPOT_LIGHT_COORDS > 0
2003	#pragma unroll_loop_start
2004	for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {
2005		shadowWorldPosition = worldPosition;
2006		#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
2007			shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
2008		#endif
2009		vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
2010	}
2011	#pragma unroll_loop_end
2012#endif`,Qw=`float getShadowMask() {
2013	float shadow = 1.0;
2014	#ifdef USE_SHADOWMAP
2015	#if NUM_DIR_LIGHT_SHADOWS > 0
2016	DirectionalLightShadow directionalLight;
2017	#pragma unroll_loop_start
2018	for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
2019		directionalLight = directionalLightShadows[ i ];
2020		shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
2021	}
2022	#pragma unroll_loop_end
2023	#endif
2024	#if NUM_SPOT_LIGHT_SHADOWS > 0
2025	SpotLightShadow spotLight;
2026	#pragma unroll_loop_start
2027	for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
2028		spotLight = spotLightShadows[ i ];
2029		shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
2030	}
2031	#pragma unroll_loop_end
2032	#endif
2033	#if NUM_POINT_LIGHT_SHADOWS > 0
2034	PointLightShadow pointLight;
2035	#pragma unroll_loop_start
2036	for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
2037		pointLight = pointLightShadows[ i ];
2038		shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
2039	}
2040	#pragma unroll_loop_end
2041	#endif
2042	#endif
2043	return shadow;
2044}`,$w=`#ifdef USE_SKINNING
2045	mat4 boneMatX = getBoneMatrix( skinIndex.x );
2046	mat4 boneMatY = getBoneMatrix( skinIndex.y );
2047	mat4 boneMatZ = getBoneMatrix( skinIndex.z );
2048	mat4 boneMatW = getBoneMatrix( skinIndex.w );
2049#endif`,Jw=`#ifdef USE_SKINNING
2050	uniform mat4 bindMatrix;
2051	uniform mat4 bindMatrixInverse;
2052	uniform highp sampler2D boneTexture;
2053	mat4 getBoneMatrix( const in float i ) {
2054		int size = textureSize( boneTexture, 0 ).x;
2055		int j = int( i ) * 4;
2056		int x = j % size;
2057		int y = j / size;
2058		vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
2059		vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
2060		vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
2061		vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
2062		return mat4( v1, v2, v3, v4 );
2063	}
2064#endif`,e8=`#ifdef USE_SKINNING
2065	vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
2066	vec4 skinned = vec4( 0.0 );
2067	skinned += boneMatX * skinVertex * skinWeight.x;
2068	skinned += boneMatY * skinVertex * skinWeight.y;
2069	skinned += boneMatZ * skinVertex * skinWeight.z;
2070	skinned += boneMatW * skinVertex * skinWeight.w;
2071	transformed = ( bindMatrixInverse * skinned ).xyz;
2072#endif`,t8=`#ifdef USE_SKINNING
2073	mat4 skinMatrix = mat4( 0.0 );
2074	skinMatrix += skinWeight.x * boneMatX;
2075	skinMatrix += skinWeight.y * boneMatY;
2076	skinMatrix += skinWeight.z * boneMatZ;
2077	skinMatrix += skinWeight.w * boneMatW;
2078	skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
2079	objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
2080	#ifdef USE_TANGENT
2081		objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
2082	#endif
2083#endif`,n8=`float specularStrength;
2084#ifdef USE_SPECULARMAP
2085	vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
2086	specularStrength = texelSpecular.r;
2087#else
2088	specularStrength = 1.0;
2089#endif`,i8=`#ifdef USE_SPECULARMAP
2090	uniform sampler2D specularMap;
2091#endif`,s8=`#if defined( TONE_MAPPING )
2092	gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
2093#endif`,a8=`#ifndef saturate
2094#define saturate( a ) clamp( a, 0.0, 1.0 )
2095#endif
2096uniform float toneMappingExposure;
2097vec3 LinearToneMapping( vec3 color ) {
2098	return saturate( toneMappingExposure * color );
2099}
2100vec3 ReinhardToneMapping( vec3 color ) {
2101	color *= toneMappingExposure;
2102	return saturate( color / ( vec3( 1.0 ) + color ) );
2103}
2104vec3 CineonToneMapping( vec3 color ) {
2105	color *= toneMappingExposure;
2106	color = max( vec3( 0.0 ), color - 0.004 );
2107	return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
2108}
2109vec3 RRTAndODTFit( vec3 v ) {
2110	vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
2111	vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
2112	return a / b;
2113}
2114vec3 ACESFilmicToneMapping( vec3 color ) {
2115	const mat3 ACESInputMat = mat3(
2116		vec3( 0.59719, 0.07600, 0.02840 ),		vec3( 0.35458, 0.90834, 0.13383 ),
2117		vec3( 0.04823, 0.01566, 0.83777 )
2118	);
2119	const mat3 ACESOutputMat = mat3(
2120		vec3(  1.60475, -0.10208, -0.00327 ),		vec3( -0.53108,  1.10813, -0.07276 ),
2121		vec3( -0.07367, -0.00605,  1.07602 )
2122	);
2123	color *= toneMappingExposure / 0.6;
2124	color = ACESInputMat * color;
2125	color = RRTAndODTFit( color );
2126	color = ACESOutputMat * color;
2127	return saturate( color );
2128}
2129const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(
2130	vec3( 1.6605, - 0.1246, - 0.0182 ),
2131	vec3( - 0.5876, 1.1329, - 0.1006 ),
2132	vec3( - 0.0728, - 0.0083, 1.1187 )
2133);
2134const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(
2135	vec3( 0.6274, 0.0691, 0.0164 ),
2136	vec3( 0.3293, 0.9195, 0.0880 ),
2137	vec3( 0.0433, 0.0113, 0.8956 )
2138);
2139vec3 agxDefaultContrastApprox( vec3 x ) {
2140	vec3 x2 = x * x;
2141	vec3 x4 = x2 * x2;
2142	return + 15.5 * x4 * x2
2143		- 40.14 * x4 * x
2144		+ 31.96 * x4
2145		- 6.868 * x2 * x
2146		+ 0.4298 * x2
2147		+ 0.1191 * x
2148		- 0.00232;
2149}
2150vec3 AgXToneMapping( vec3 color ) {
2151	const mat3 AgXInsetMatrix = mat3(
2152		vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
2153		vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
2154		vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
2155	);
2156	const mat3 AgXOutsetMatrix = mat3(
2157		vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
2158		vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
2159		vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
2160	);
2161	const float AgxMinEv = - 12.47393;	const float AgxMaxEv = 4.026069;
2162	color *= toneMappingExposure;
2163	color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;
2164	color = AgXInsetMatrix * color;
2165	color = max( color, 1e-10 );	color = log2( color );
2166	color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
2167	color = clamp( color, 0.0, 1.0 );
2168	color = agxDefaultContrastApprox( color );
2169	color = AgXOutsetMatrix * color;
2170	color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
2171	color = LINEAR_REC2020_TO_LINEAR_SRGB * color;
2172	color = clamp( color, 0.0, 1.0 );
2173	return color;
2174}
2175vec3 NeutralToneMapping( vec3 color ) {
2176	const float StartCompression = 0.8 - 0.04;
2177	const float Desaturation = 0.15;
2178	color *= toneMappingExposure;
2179	float x = min( color.r, min( color.g, color.b ) );
2180	float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;
2181	color -= offset;
2182	float peak = max( color.r, max( color.g, color.b ) );
2183	if ( peak < StartCompression ) return color;
2184	float d = 1. - StartCompression;
2185	float newPeak = 1. - d * d / ( peak + d - StartCompression );
2186	color *= newPeak / peak;
2187	float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );
2188	return mix( color, vec3( newPeak ), g );
2189}
2190vec3 CustomToneMapping( vec3 color ) { return color; }`,r8=`#ifdef USE_TRANSMISSION
2191	material.transmission = transmission;
2192	material.transmissionAlpha = 1.0;
2193	material.thickness = thickness;
2194	material.attenuationDistance = attenuationDistance;
2195	material.attenuationColor = attenuationColor;
2196	#ifdef USE_TRANSMISSIONMAP
2197		material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
2198	#endif
2199	#ifdef USE_THICKNESSMAP
2200		material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
2201	#endif
2202	vec3 pos = vWorldPosition;
2203	vec3 v = normalize( cameraPosition - pos );
2204	vec3 n = inverseTransformDirection( normal, viewMatrix );
2205	vec4 transmitted = getIBLVolumeRefraction(
2206		n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
2207		pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,
2208		material.attenuationColor, material.attenuationDistance );
2209	material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
2210	totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
2211#endif`,o8=`#ifdef USE_TRANSMISSION
2212	uniform float transmission;
2213	uniform float thickness;
2214	uniform float attenuationDistance;
2215	uniform vec3 attenuationColor;
2216	#ifdef USE_TRANSMISSIONMAP
2217		uniform sampler2D transmissionMap;
2218	#endif
2219	#ifdef USE_THICKNESSMAP
2220		uniform sampler2D thicknessMap;
2221	#endif
2222	uniform vec2 transmissionSamplerSize;
2223	uniform sampler2D transmissionSamplerMap;
2224	uniform mat4 modelMatrix;
2225	uniform mat4 projectionMatrix;
2226	varying vec3 vWorldPosition;
2227	float w0( float a ) {
2228		return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
2229	}
2230	float w1( float a ) {
2231		return ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );
2232	}
2233	float w2( float a ){
2234		return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
2235	}
2236	float w3( float a ) {
2237		return ( 1.0 / 6.0 ) * ( a * a * a );
2238	}
2239	float g0( float a ) {
2240		return w0( a ) + w1( a );
2241	}
2242	float g1( float a ) {
2243		return w2( a ) + w3( a );
2244	}
2245	float h0( float a ) {
2246		return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
2247	}
2248	float h1( float a ) {
2249		return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
2250	}
2251	vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
2252		uv = uv * texelSize.zw + 0.5;
2253		vec2 iuv = floor( uv );
2254		vec2 fuv = fract( uv );
2255		float g0x = g0( fuv.x );
2256		float g1x = g1( fuv.x );
2257		float h0x = h0( fuv.x );
2258		float h1x = h1( fuv.x );
2259		float h0y = h0( fuv.y );
2260		float h1y = h1( fuv.y );
2261		vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
2262		vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
2263		vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
2264		vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
2265		return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
2266			g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
2267	}
2268	vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
2269		vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
2270		vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
2271		vec2 fLodSizeInv = 1.0 / fLodSize;
2272		vec2 cLodSizeInv = 1.0 / cLodSize;
2273		vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
2274		vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
2275		return mix( fSample, cSample, fract( lod ) );
2276	}
2277	vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
2278		vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
2279		vec3 modelScale;
2280		modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
2281		modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
2282		modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
2283		return normalize( refractionVector ) * thickness * modelScale;
2284	}
2285	float applyIorToRoughness( const in float roughness, const in float ior ) {
2286		return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
2287	}
2288	vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
2289		float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
2290		return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
2291	}
2292	vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
2293		if ( isinf( attenuationDistance ) ) {
2294			return vec3( 1.0 );
2295		} else {
2296			vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
2297			vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );			return transmittance;
2298		}
2299	}
2300	vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
2301		const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
2302		const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,
2303		const in vec3 attenuationColor, const in float attenuationDistance ) {
2304		vec4 transmittedLight;
2305		vec3 transmittance;
2306		#ifdef USE_DISPERSION
2307			float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;
2308			vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );
2309			for ( int i = 0; i < 3; i ++ ) {
2310				vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );
2311				vec3 refractedRayExit = position + transmissionRay;
2312				vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
2313				vec2 refractionCoords = ndcPos.xy / ndcPos.w;
2314				refractionCoords += 1.0;
2315				refractionCoords /= 2.0;
2316				vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );
2317				transmittedLight[ i ] = transmissionSample[ i ];
2318				transmittedLight.a += transmissionSample.a;
2319				transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];
2320			}
2321			transmittedLight.a /= 3.0;
2322		#else
2323			vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
2324			vec3 refractedRayExit = position + transmissionRay;
2325			vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
2326			vec2 refractionCoords = ndcPos.xy / ndcPos.w;
2327			refractionCoords += 1.0;
2328			refractionCoords /= 2.0;
2329			transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
2330			transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
2331		#endif
2332		vec3 attenuatedColor = transmittance * transmittedLight.rgb;
2333		vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
2334		float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
2335		return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
2336	}
2337#endif`,l8=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
2338	varying vec2 vUv;
2339#endif
2340#ifdef USE_MAP
2341	varying vec2 vMapUv;
2342#endif
2343#ifdef USE_ALPHAMAP
2344	varying vec2 vAlphaMapUv;
2345#endif
2346#ifdef USE_LIGHTMAP
2347	varying vec2 vLightMapUv;
2348#endif
2349#ifdef USE_AOMAP
2350	varying vec2 vAoMapUv;
2351#endif
2352#ifdef USE_BUMPMAP
2353	varying vec2 vBumpMapUv;
2354#endif
2355#ifdef USE_NORMALMAP
2356	varying vec2 vNormalMapUv;
2357#endif
2358#ifdef USE_EMISSIVEMAP
2359	varying vec2 vEmissiveMapUv;
2360#endif
2361#ifdef USE_METALNESSMAP
2362	varying vec2 vMetalnessMapUv;
2363#endif
2364#ifdef USE_ROUGHNESSMAP
2365	varying vec2 vRoughnessMapUv;
2366#endif
2367#ifdef USE_ANISOTROPYMAP
2368	varying vec2 vAnisotropyMapUv;
2369#endif
2370#ifdef USE_CLEARCOATMAP
2371	varying vec2 vClearcoatMapUv;
2372#endif
2373#ifdef USE_CLEARCOAT_NORMALMAP
2374	varying vec2 vClearcoatNormalMapUv;
2375#endif
2376#ifdef USE_CLEARCOAT_ROUGHNESSMAP
2377	varying vec2 vClearcoatRoughnessMapUv;
2378#endif
2379#ifdef USE_IRIDESCENCEMAP
2380	varying vec2 vIridescenceMapUv;
2381#endif
2382#ifdef USE_IRIDESCENCE_THICKNESSMAP
2383	varying vec2 vIridescenceThicknessMapUv;
2384#endif
2385#ifdef USE_SHEEN_COLORMAP
2386	varying vec2 vSheenColorMapUv;
2387#endif
2388#ifdef USE_SHEEN_ROUGHNESSMAP
2389	varying vec2 vSheenRoughnessMapUv;
2390#endif
2391#ifdef USE_SPECULARMAP
2392	varying vec2 vSpecularMapUv;
2393#endif
2394#ifdef USE_SPECULAR_COLORMAP
2395	varying vec2 vSpecularColorMapUv;
2396#endif
2397#ifdef USE_SPECULAR_INTENSITYMAP
2398	varying vec2 vSpecularIntensityMapUv;
2399#endif
2400#ifdef USE_TRANSMISSIONMAP
2401	uniform mat3 transmissionMapTransform;
2402	varying vec2 vTransmissionMapUv;
2403#endif
2404#ifdef USE_THICKNESSMAP
2405	uniform mat3 thicknessMapTransform;
2406	varying vec2 vThicknessMapUv;
2407#endif`,c8=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
2408	varying vec2 vUv;
2409#endif
2410#ifdef USE_MAP
2411	uniform mat3 mapTransform;
2412	varying vec2 vMapUv;
2413#endif
2414#ifdef USE_ALPHAMAP
2415	uniform mat3 alphaMapTransform;
2416	varying vec2 vAlphaMapUv;
2417#endif
2418#ifdef USE_LIGHTMAP
2419	uniform mat3 lightMapTransform;
2420	varying vec2 vLightMapUv;
2421#endif
2422#ifdef USE_AOMAP
2423	uniform mat3 aoMapTransform;
2424	varying vec2 vAoMapUv;
2425#endif
2426#ifdef USE_BUMPMAP
2427	uniform mat3 bumpMapTransform;
2428	varying vec2 vBumpMapUv;
2429#endif
2430#ifdef USE_NORMALMAP
2431	uniform mat3 normalMapTransform;
2432	varying vec2 vNormalMapUv;
2433#endif
2434#ifdef USE_DISPLACEMENTMAP
2435	uniform mat3 displacementMapTransform;
2436	varying vec2 vDisplacementMapUv;
2437#endif
2438#ifdef USE_EMISSIVEMAP
2439	uniform mat3 emissiveMapTransform;
2440	varying vec2 vEmissiveMapUv;
2441#endif
2442#ifdef USE_METALNESSMAP
2443	uniform mat3 metalnessMapTransform;
2444	varying vec2 vMetalnessMapUv;
2445#endif
2446#ifdef USE_ROUGHNESSMAP
2447	uniform mat3 roughnessMapTransform;
2448	varying vec2 vRoughnessMapUv;
2449#endif
2450#ifdef USE_ANISOTROPYMAP
2451	uniform mat3 anisotropyMapTransform;
2452	varying vec2 vAnisotropyMapUv;
2453#endif
2454#ifdef USE_CLEARCOATMAP
2455	uniform mat3 clearcoatMapTransform;
2456	varying vec2 vClearcoatMapUv;
2457#endif
2458#ifdef USE_CLEARCOAT_NORMALMAP
2459	uniform mat3 clearcoatNormalMapTransform;
2460	varying vec2 vClearcoatNormalMapUv;
2461#endif
2462#ifdef USE_CLEARCOAT_ROUGHNESSMAP
2463	uniform mat3 clearcoatRoughnessMapTransform;
2464	varying vec2 vClearcoatRoughnessMapUv;
2465#endif
2466#ifdef USE_SHEEN_COLORMAP
2467	uniform mat3 sheenColorMapTransform;
2468	varying vec2 vSheenColorMapUv;
2469#endif
2470#ifdef USE_SHEEN_ROUGHNESSMAP
2471	uniform mat3 sheenRoughnessMapTransform;
2472	varying vec2 vSheenRoughnessMapUv;
2473#endif
2474#ifdef USE_IRIDESCENCEMAP
2475	uniform mat3 iridescenceMapTransform;
2476	varying vec2 vIridescenceMapUv;
2477#endif
2478#ifdef USE_IRIDESCENCE_THICKNESSMAP
2479	uniform mat3 iridescenceThicknessMapTransform;
2480	varying vec2 vIridescenceThicknessMapUv;
2481#endif
2482#ifdef USE_SPECULARMAP
2483	uniform mat3 specularMapTransform;
2484	varying vec2 vSpecularMapUv;
2485#endif
2486#ifdef USE_SPECULAR_COLORMAP
2487	uniform mat3 specularColorMapTransform;
2488	varying vec2 vSpecularColorMapUv;
2489#endif
2490#ifdef USE_SPECULAR_INTENSITYMAP
2491	uniform mat3 specularIntensityMapTransform;
2492	varying vec2 vSpecularIntensityMapUv;
2493#endif
2494#ifdef USE_TRANSMISSIONMAP
2495	uniform mat3 transmissionMapTransform;
2496	varying vec2 vTransmissionMapUv;
2497#endif
2498#ifdef USE_THICKNESSMAP
2499	uniform mat3 thicknessMapTransform;
2500	varying vec2 vThicknessMapUv;
2501#endif`,u8=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
2502	vUv = vec3( uv, 1 ).xy;
2503#endif
2504#ifdef USE_MAP
2505	vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
2506#endif
2507#ifdef USE_ALPHAMAP
2508	vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
2509#endif
2510#ifdef USE_LIGHTMAP
2511	vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
2512#endif
2513#ifdef USE_AOMAP
2514	vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
2515#endif
2516#ifdef USE_BUMPMAP
2517	vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
2518#endif
2519#ifdef USE_NORMALMAP
2520	vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
2521#endif
2522#ifdef USE_DISPLACEMENTMAP
2523	vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
2524#endif
2525#ifdef USE_EMISSIVEMAP
2526	vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
2527#endif
2528#ifdef USE_METALNESSMAP
2529	vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
2530#endif
2531#ifdef USE_ROUGHNESSMAP
2532	vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
2533#endif
2534#ifdef USE_ANISOTROPYMAP
2535	vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
2536#endif
2537#ifdef USE_CLEARCOATMAP
2538	vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
2539#endif
2540#ifdef USE_CLEARCOAT_NORMALMAP
2541	vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
2542#endif
2543#ifdef USE_CLEARCOAT_ROUGHNESSMAP
2544	vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
2545#endif
2546#ifdef USE_IRIDESCENCEMAP
2547	vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
2548#endif
2549#ifdef USE_IRIDESCENCE_THICKNESSMAP
2550	vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
2551#endif
2552#ifdef USE_SHEEN_COLORMAP
2553	vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
2554#endif
2555#ifdef USE_SHEEN_ROUGHNESSMAP
2556	vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
2557#endif
2558#ifdef USE_SPECULARMAP
2559	vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
2560#endif
2561#ifdef USE_SPECULAR_COLORMAP
2562	vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
2563#endif
2564#ifdef USE_SPECULAR_INTENSITYMAP
2565	vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
2566#endif
2567#ifdef USE_TRANSMISSIONMAP
2568	vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
2569#endif
2570#ifdef USE_THICKNESSMAP
2571	vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
2572#endif`,f8=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
2573	vec4 worldPosition = vec4( transformed, 1.0 );
2574	#ifdef USE_BATCHING
2575		worldPosition = batchingMatrix * worldPosition;
2576	#endif
2577	#ifdef USE_INSTANCING
2578		worldPosition = instanceMatrix * worldPosition;
2579	#endif
2580	worldPosition = modelMatrix * worldPosition;
2581#endif`;const d8=`varying vec2 vUv;
2582uniform mat3 uvTransform;
2583void main() {
2584	vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
2585	gl_Position = vec4( position.xy, 1.0, 1.0 );
2586}`,h8=`uniform sampler2D t2D;
2587uniform float backgroundIntensity;
2588varying vec2 vUv;
2589void main() {
2590	vec4 texColor = texture2D( t2D, vUv );
2591	#ifdef DECODE_VIDEO_TEXTURE
2592		texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
2593	#endif
2594	texColor.rgb *= backgroundIntensity;
2595	gl_FragColor = texColor;
2596	#include <tonemapping_fragment>
2597	#include <colorspace_fragment>
2598}`,p8=`varying vec3 vWorldDirection;
2599#include <common>
2600void main() {
2601	vWorldDirection = transformDirection( position, modelMatrix );
2602	#include <begin_vertex>
2603	#include <project_vertex>
2604	gl_Position.z = gl_Position.w;
2605}`,m8=`#ifdef ENVMAP_TYPE_CUBE
2606	uniform samplerCube envMap;
2607#elif defined( ENVMAP_TYPE_CUBE_UV )
2608	uniform sampler2D envMap;
2609#endif
2610uniform float flipEnvMap;
2611uniform float backgroundBlurriness;
2612uniform float backgroundIntensity;
2613uniform mat3 backgroundRotation;
2614varying vec3 vWorldDirection;
2615#include <cube_uv_reflection_fragment>
2616void main() {
2617	#ifdef ENVMAP_TYPE_CUBE
2618		vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
2619	#elif defined( ENVMAP_TYPE_CUBE_UV )
2620		vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
2621	#else
2622		vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
2623	#endif
2624	texColor.rgb *= backgroundIntensity;
2625	gl_FragColor = texColor;
2626	#include <tonemapping_fragment>
2627	#include <colorspace_fragment>
2628}`,g8=`varying vec3 vWorldDirection;
2629#include <common>
2630void main() {
2631	vWorldDirection = transformDirection( position, modelMatrix );
2632	#include <begin_vertex>
2633	#include <project_vertex>
2634	gl_Position.z = gl_Position.w;
2635}`,v8=`uniform samplerCube tCube;
2636uniform float tFlip;
2637uniform float opacity;
2638varying vec3 vWorldDirection;
2639void main() {
2640	vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
2641	gl_FragColor = texColor;
2642	gl_FragColor.a *= opacity;
2643	#include <tonemapping_fragment>
2644	#include <colorspace_fragment>
2645}`,x8=`#include <common>
2646#include <batching_pars_vertex>
2647#include <uv_pars_vertex>
2648#include <displacementmap_pars_vertex>
2649#include <morphtarget_pars_vertex>
2650#include <skinning_pars_vertex>
2651#include <logdepthbuf_pars_vertex>
2652#include <clipping_planes_pars_vertex>
2653varying vec2 vHighPrecisionZW;
2654void main() {
2655	#include <uv_vertex>
2656	#include <batching_vertex>
2657	#include <skinbase_vertex>
2658	#include <morphinstance_vertex>
2659	#ifdef USE_DISPLACEMENTMAP
2660		#include <beginnormal_vertex>
2661		#include <morphnormal_vertex>
2662		#include <skinnormal_vertex>
2663	#endif
2664	#include <begin_vertex>
2665	#include <morphtarget_vertex>
2666	#include <skinning_vertex>
2667	#include <displacementmap_vertex>
2668	#include <project_vertex>
2669	#include <logdepthbuf_vertex>
2670	#include <clipping_planes_vertex>
2671	vHighPrecisionZW = gl_Position.zw;
2672}`,_8=`#if DEPTH_PACKING == 3200
2673	uniform float opacity;
2674#endif
2675#include <common>
2676#include <packing>
2677#include <uv_pars_fragment>
2678#include <map_pars_fragment>
2679#include <alphamap_pars_fragment>
2680#include <alphatest_pars_fragment>
2681#include <alphahash_pars_fragment>
2682#include <logdepthbuf_pars_fragment>
2683#include <clipping_planes_pars_fragment>
2684varying vec2 vHighPrecisionZW;
2685void main() {
2686	vec4 diffuseColor = vec4( 1.0 );
2687	#include <clipping_planes_fragment>
2688	#if DEPTH_PACKING == 3200
2689		diffuseColor.a = opacity;
2690	#endif
2691	#include <map_fragment>
2692	#include <alphamap_fragment>
2693	#include <alphatest_fragment>
2694	#include <alphahash_fragment>
2695	#include <logdepthbuf_fragment>
2696	float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;
2697	#if DEPTH_PACKING == 3200
2698		gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
2699	#elif DEPTH_PACKING == 3201
2700		gl_FragColor = packDepthToRGBA( fragCoordZ );
2701	#elif DEPTH_PACKING == 3202
2702		gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );
2703	#elif DEPTH_PACKING == 3203
2704		gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );
2705	#endif
2706}`,y8=`#define DISTANCE
2707varying vec3 vWorldPosition;
2708#include <common>
2709#include <batching_pars_vertex>
2710#include <uv_pars_vertex>
2711#include <displacementmap_pars_vertex>
2712#include <morphtarget_pars_vertex>
2713#include <skinning_pars_vertex>
2714#include <clipping_planes_pars_vertex>
2715void main() {
2716	#include <uv_vertex>
2717	#include <batching_vertex>
2718	#include <skinbase_vertex>
2719	#include <morphinstance_vertex>
2720	#ifdef USE_DISPLACEMENTMAP
2721		#include <beginnormal_vertex>
2722		#include <morphnormal_vertex>
2723		#include <skinnormal_vertex>
2724	#endif
2725	#include <begin_vertex>
2726	#include <morphtarget_vertex>
2727	#include <skinning_vertex>
2728	#include <displacementmap_vertex>
2729	#include <project_vertex>
2730	#include <worldpos_vertex>
2731	#include <clipping_planes_vertex>
2732	vWorldPosition = worldPosition.xyz;
2733}`,S8=`#define DISTANCE
2734uniform vec3 referencePosition;
2735uniform float nearDistance;
2736uniform float farDistance;
2737varying vec3 vWorldPosition;
2738#include <common>
2739#include <packing>
2740#include <uv_pars_fragment>
2741#include <map_pars_fragment>
2742#include <alphamap_pars_fragment>
2743#include <alphatest_pars_fragment>
2744#include <alphahash_pars_fragment>
2745#include <clipping_planes_pars_fragment>
2746void main () {
2747	vec4 diffuseColor = vec4( 1.0 );
2748	#include <clipping_planes_fragment>
2749	#include <map_fragment>
2750	#include <alphamap_fragment>
2751	#include <alphatest_fragment>
2752	#include <alphahash_fragment>
2753	float dist = length( vWorldPosition - referencePosition );
2754	dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
2755	dist = saturate( dist );
2756	gl_FragColor = packDepthToRGBA( dist );
2757}`,M8=`varying vec3 vWorldDirection;
2758#include <common>
2759void main() {
2760	vWorldDirection = transformDirection( position, modelMatrix );
2761	#include <begin_vertex>
2762	#include <project_vertex>
2763}`,b8=`uniform sampler2D tEquirect;
2764varying vec3 vWorldDirection;
2765#include <common>
2766void main() {
2767	vec3 direction = normalize( vWorldDirection );
2768	vec2 sampleUV = equirectUv( direction );
2769	gl_FragColor = texture2D( tEquirect, sampleUV );
2770	#include <tonemapping_fragment>
2771	#include <colorspace_fragment>
2772}`,E8=`uniform float scale;
2773attribute float lineDistance;
2774varying float vLineDistance;
2775#include <common>
2776#include <uv_pars_vertex>
2777#include <color_pars_vertex>
2778#include <fog_pars_vertex>
2779#include <morphtarget_pars_vertex>
2780#include <logdepthbuf_pars_vertex>
2781#include <clipping_planes_pars_vertex>
2782void main() {
2783	vLineDistance = scale * lineDistance;
2784	#include <uv_vertex>
2785	#include <color_vertex>
2786	#include <morphinstance_vertex>
2787	#include <morphcolor_vertex>
2788	#include <begin_vertex>
2789	#include <morphtarget_vertex>
2790	#include <project_vertex>
2791	#include <logdepthbuf_vertex>
2792	#include <clipping_planes_vertex>
2793	#include <fog_vertex>
2794}`,w8=`uniform vec3 diffuse;
2795uniform float opacity;
2796uniform float dashSize;
2797uniform float totalSize;
2798varying float vLineDistance;
2799#include <common>
2800#include <color_pars_fragment>
2801#include <uv_pars_fragment>
2802#include <map_pars_fragment>
2803#include <fog_pars_fragment>
2804#include <logdepthbuf_pars_fragment>
2805#include <clipping_planes_pars_fragment>
2806void main() {
2807	vec4 diffuseColor = vec4( diffuse, opacity );
2808	#include <clipping_planes_fragment>
2809	if ( mod( vLineDistance, totalSize ) > dashSize ) {
2810		discard;
2811	}
2812	vec3 outgoingLight = vec3( 0.0 );
2813	#include <logdepthbuf_fragment>
2814	#include <map_fragment>
2815	#include <color_fragment>
2816	outgoingLight = diffuseColor.rgb;
2817	#include <opaque_fragment>
2818	#include <tonemapping_fragment>
2819	#include <colorspace_fragment>
2820	#include <fog_fragment>
2821	#include <premultiplied_alpha_fragment>
2822}`,T8=`#include <common>
2823#include <batching_pars_vertex>
2824#include <uv_pars_vertex>
2825#include <envmap_pars_vertex>
2826#include <color_pars_vertex>
2827#include <fog_pars_vertex>
2828#include <morphtarget_pars_vertex>
2829#include <skinning_pars_vertex>
2830#include <logdepthbuf_pars_vertex>
2831#include <clipping_planes_pars_vertex>
2832void main() {
2833	#include <uv_vertex>
2834	#include <color_vertex>
2835	#include <morphinstance_vertex>
2836	#include <morphcolor_vertex>
2837	#include <batching_vertex>
2838	#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
2839		#include <beginnormal_vertex>
2840		#include <morphnormal_vertex>
2841		#include <skinbase_vertex>
2842		#include <skinnormal_vertex>
2843		#include <defaultnormal_vertex>
2844	#endif
2845	#include <begin_vertex>
2846	#include <morphtarget_vertex>
2847	#include <skinning_vertex>
2848	#include <project_vertex>
2849	#include <logdepthbuf_vertex>
2850	#include <clipping_planes_vertex>
2851	#include <worldpos_vertex>
2852	#include <envmap_vertex>
2853	#include <fog_vertex>
2854}`,C8=`uniform vec3 diffuse;
2855uniform float opacity;
2856#ifndef FLAT_SHADED
2857	varying vec3 vNormal;
2858#endif
2859#include <common>
2860#include <dithering_pars_fragment>
2861#include <color_pars_fragment>
2862#include <uv_pars_fragment>
2863#include <map_pars_fragment>
2864#include <alphamap_pars_fragment>
2865#include <alphatest_pars_fragment>
2866#include <alphahash_pars_fragment>
2867#include <aomap_pars_fragment>
2868#include <lightmap_pars_fragment>
2869#include <envmap_common_pars_fragment>
2870#include <envmap_pars_fragment>
2871#include <fog_pars_fragment>
2872#include <specularmap_pars_fragment>
2873#include <logdepthbuf_pars_fragment>
2874#include <clipping_planes_pars_fragment>
2875void main() {
2876	vec4 diffuseColor = vec4( diffuse, opacity );
2877	#include <clipping_planes_fragment>
2878	#include <logdepthbuf_fragment>
2879	#include <map_fragment>
2880	#include <color_fragment>
2881	#include <alphamap_fragment>
2882	#include <alphatest_fragment>
2883	#include <alphahash_fragment>
2884	#include <specularmap_fragment>
2885	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
2886	#ifdef USE_LIGHTMAP
2887		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
2888		reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
2889	#else
2890		reflectedLight.indirectDiffuse += vec3( 1.0 );
2891	#endif
2892	#include <aomap_fragment>
2893	reflectedLight.indirectDiffuse *= diffuseColor.rgb;
2894	vec3 outgoingLight = reflectedLight.indirectDiffuse;
2895	#include <envmap_fragment>
2896	#include <opaque_fragment>
2897	#include <tonemapping_fragment>
2898	#include <colorspace_fragment>
2899	#include <fog_fragment>
2900	#include <premultiplied_alpha_fragment>
2901	#include <dithering_fragment>
2902}`,A8=`#define LAMBERT
2903varying vec3 vViewPosition;
2904#include <common>
2905#include <batching_pars_vertex>
2906#include <uv_pars_vertex>
2907#include <displacementmap_pars_vertex>
2908#include <envmap_pars_vertex>
2909#include <color_pars_vertex>
2910#include <fog_pars_vertex>
2911#include <normal_pars_vertex>
2912#include <morphtarget_pars_vertex>
2913#include <skinning_pars_vertex>
2914#include <shadowmap_pars_vertex>
2915#include <logdepthbuf_pars_vertex>
2916#include <clipping_planes_pars_vertex>
2917void main() {
2918	#include <uv_vertex>
2919	#include <color_vertex>
2920	#include <morphinstance_vertex>
2921	#include <morphcolor_vertex>
2922	#include <batching_vertex>
2923	#include <beginnormal_vertex>
2924	#include <morphnormal_vertex>
2925	#include <skinbase_vertex>
2926	#include <skinnormal_vertex>
2927	#include <defaultnormal_vertex>
2928	#include <normal_vertex>
2929	#include <begin_vertex>
2930	#include <morphtarget_vertex>
2931	#include <skinning_vertex>
2932	#include <displacementmap_vertex>
2933	#include <project_vertex>
2934	#include <logdepthbuf_vertex>
2935	#include <clipping_planes_vertex>
2936	vViewPosition = - mvPosition.xyz;
2937	#include <worldpos_vertex>
2938	#include <envmap_vertex>
2939	#include <shadowmap_vertex>
2940	#include <fog_vertex>
2941}`,R8=`#define LAMBERT
2942uniform vec3 diffuse;
2943uniform vec3 emissive;
2944uniform float opacity;
2945#include <common>
2946#include <packing>
2947#include <dithering_pars_fragment>
2948#include <color_pars_fragment>
2949#include <uv_pars_fragment>
2950#include <map_pars_fragment>
2951#include <alphamap_pars_fragment>
2952#include <alphatest_pars_fragment>
2953#include <alphahash_pars_fragment>
2954#include <aomap_pars_fragment>
2955#include <lightmap_pars_fragment>
2956#include <emissivemap_pars_fragment>
2957#include <envmap_common_pars_fragment>
2958#include <envmap_pars_fragment>
2959#include <fog_pars_fragment>
2960#include <bsdfs>
2961#include <lights_pars_begin>
2962#include <normal_pars_fragment>
2963#include <lights_lambert_pars_fragment>
2964#include <shadowmap_pars_fragment>
2965#include <bumpmap_pars_fragment>
2966#include <normalmap_pars_fragment>
2967#include <specularmap_pars_fragment>
2968#include <logdepthbuf_pars_fragment>
2969#include <clipping_planes_pars_fragment>
2970void main() {
2971	vec4 diffuseColor = vec4( diffuse, opacity );
2972	#include <clipping_planes_fragment>
2973	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
2974	vec3 totalEmissiveRadiance = emissive;
2975	#include <logdepthbuf_fragment>
2976	#include <map_fragment>
2977	#include <color_fragment>
2978	#include <alphamap_fragment>
2979	#include <alphatest_fragment>
2980	#include <alphahash_fragment>
2981	#include <specularmap_fragment>
2982	#include <normal_fragment_begin>
2983	#include <normal_fragment_maps>
2984	#include <emissivemap_fragment>
2985	#include <lights_lambert_fragment>
2986	#include <lights_fragment_begin>
2987	#include <lights_fragment_maps>
2988	#include <lights_fragment_end>
2989	#include <aomap_fragment>
2990	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
2991	#include <envmap_fragment>
2992	#include <opaque_fragment>
2993	#include <tonemapping_fragment>
2994	#include <colorspace_fragment>
2995	#include <fog_fragment>
2996	#include <premultiplied_alpha_fragment>
2997	#include <dithering_fragment>
2998}`,N8=`#define MATCAP
2999varying vec3 vViewPosition;
3000#include <common>
3001#include <batching_pars_vertex>
3002#include <uv_pars_vertex>
3003#include <color_pars_vertex>
3004#include <displacementmap_pars_vertex>
3005#include <fog_pars_vertex>
3006#include <normal_pars_vertex>
3007#include <morphtarget_pars_vertex>
3008#include <skinning_pars_vertex>
3009#include <logdepthbuf_pars_vertex>
3010#include <clipping_planes_pars_vertex>
3011void main() {
3012	#include <uv_vertex>
3013	#include <color_vertex>
3014	#include <morphinstance_vertex>
3015	#include <morphcolor_vertex>
3016	#include <batching_vertex>
3017	#include <beginnormal_vertex>
3018	#include <morphnormal_vertex>
3019	#include <skinbase_vertex>
3020	#include <skinnormal_vertex>
3021	#include <defaultnormal_vertex>
3022	#include <normal_vertex>
3023	#include <begin_vertex>
3024	#include <morphtarget_vertex>
3025	#include <skinning_vertex>
3026	#include <displacementmap_vertex>
3027	#include <project_vertex>
3028	#include <logdepthbuf_vertex>
3029	#include <clipping_planes_vertex>
3030	#include <fog_vertex>
3031	vViewPosition = - mvPosition.xyz;
3032}`,L8=`#define MATCAP
3033uniform vec3 diffuse;
3034uniform float opacity;
3035uniform sampler2D matcap;
3036varying vec3 vViewPosition;
3037#include <common>
3038#include <dithering_pars_fragment>
3039#include <color_pars_fragment>
3040#include <uv_pars_fragment>
3041#include <map_pars_fragment>
3042#include <alphamap_pars_fragment>
3043#include <alphatest_pars_fragment>
3044#include <alphahash_pars_fragment>
3045#include <fog_pars_fragment>
3046#include <normal_pars_fragment>
3047#include <bumpmap_pars_fragment>
3048#include <normalmap_pars_fragment>
3049#include <logdepthbuf_pars_fragment>
3050#include <clipping_planes_pars_fragment>
3051void main() {
3052	ve
3052c4 diffuseColor = vec4( diffuse, opacity );
3053	#include <clipping_planes_fragment>
3054	#include <logdepthbuf_fragment>
3055	#include <map_fragment>
3056	#include <color_fragment>
3057	#include <alphamap_fragment>
3058	#include <alphatest_fragment>
3059	#include <alphahash_fragment>
3060	#include <normal_fragment_begin>
3061	#include <normal_fragment_maps>
3062	vec3 viewDir = normalize( vViewPosition );
3063	vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
3064	vec3 y = cross( viewDir, x );
3065	vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
3066	#ifdef USE_MATCAP
3067		vec4 matcapColor = texture2D( matcap, uv );
3068	#else
3069		vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
3070	#endif
3071	vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
3072	#include <opaque_fragment>
3073	#include <tonemapping_fragment>
3074	#include <colorspace_fragment>
3075	#include <fog_fragment>
3076	#include <premultiplied_alpha_fragment>
3077	#include <dithering_fragment>
3078}`,D8=`#define NORMAL
3079#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
3080	varying vec3 vViewPosition;
3081#endif
3082#include <common>
3083#include <batching_pars_vertex>
3084#include <uv_pars_vertex>
3085#include <displacementmap_pars_vertex>
3086#include <normal_pars_vertex>
3087#include <morphtarget_pars_vertex>
3088#include <skinning_pars_vertex>
3089#include <logdepthbuf_pars_vertex>
3090#include <clipping_planes_pars_vertex>
3091void main() {
3092	#include <uv_vertex>
3093	#include <batching_vertex>
3094	#include <beginnormal_vertex>
3095	#include <morphinstance_vertex>
3096	#include <morphnormal_vertex>
3097	#include <skinbase_vertex>
3098	#include <skinnormal_vertex>
3099	#include <defaultnormal_vertex>
3100	#include <normal_vertex>
3101	#include <begin_vertex>
3102	#include <morphtarget_vertex>
3103	#include <skinning_vertex>
3104	#include <displacementmap_vertex>
3105	#include <project_vertex>
3106	#include <logdepthbuf_vertex>
3107	#include <clipping_planes_vertex>
3108#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
3109	vViewPosition = - mvPosition.xyz;
3110#endif
3111}`,U8=`#define NORMAL
3112uniform float opacity;
3113#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
3114	varying vec3 vViewPosition;
3115#endif
3116#include <packing>
3117#include <uv_pars_fragment>
3118#include <normal_pars_fragment>
3119#include <bumpmap_pars_fragment>
3120#include <normalmap_pars_fragment>
3121#include <logdepthbuf_pars_fragment>
3122#include <clipping_planes_pars_fragment>
3123void main() {
3124	vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
3125	#include <clipping_planes_fragment>
3126	#include <logdepthbuf_fragment>
3127	#include <normal_fragment_begin>
3128	#include <normal_fragment_maps>
3129	gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );
3130	#ifdef OPAQUE
3131		gl_FragColor.a = 1.0;
3132	#endif
3133}`,P8=`#define PHONG
3134varying vec3 vViewPosition;
3135#include <common>
3136#include <batching_pars_vertex>
3137#include <uv_pars_vertex>
3138#include <displacementmap_pars_vertex>
3139#include <envmap_pars_vertex>
3140#include <color_pars_vertex>
3141#include <fog_pars_vertex>
3142#include <normal_pars_vertex>
3143#include <morphtarget_pars_vertex>
3144#include <skinning_pars_vertex>
3145#include <shadowmap_pars_vertex>
3146#include <logdepthbuf_pars_vertex>
3147#include <clipping_planes_pars_vertex>
3148void main() {
3149	#include <uv_vertex>
3150	#include <color_vertex>
3151	#include <morphcolor_vertex>
3152	#include <batching_vertex>
3153	#include <beginnormal_vertex>
3154	#include <morphinstance_vertex>
3155	#include <morphnormal_vertex>
3156	#include <skinbase_vertex>
3157	#include <skinnormal_vertex>
3158	#include <defaultnormal_vertex>
3159	#include <normal_vertex>
3160	#include <begin_vertex>
3161	#include <morphtarget_vertex>
3162	#include <skinning_vertex>
3163	#include <displacementmap_vertex>
3164	#include <project_vertex>
3165	#include <logdepthbuf_vertex>
3166	#include <clipping_planes_vertex>
3167	vViewPosition = - mvPosition.xyz;
3168	#include <worldpos_vertex>
3169	#include <envmap_vertex>
3170	#include <shadowmap_vertex>
3171	#include <fog_vertex>
3172}`,O8=`#define PHONG
3173uniform vec3 diffuse;
3174uniform vec3 emissive;
3175uniform vec3 specular;
3176uniform float shininess;
3177uniform float opacity;
3178#include <common>
3179#include <packing>
3180#include <dithering_pars_fragment>
3181#include <color_pars_fragment>
3182#include <uv_pars_fragment>
3183#include <map_pars_fragment>
3184#include <alphamap_pars_fragment>
3185#include <alphatest_pars_fragment>
3186#include <alphahash_pars_fragment>
3187#include <aomap_pars_fragment>
3188#include <lightmap_pars_fragment>
3189#include <emissivemap_pars_fragment>
3190#include <envmap_common_pars_fragment>
3191#include <envmap_pars_fragment>
3192#include <fog_pars_fragment>
3193#include <bsdfs>
3194#include <lights_pars_begin>
3195#include <normal_pars_fragment>
3196#include <lights_phong_pars_fragment>
3197#include <shadowmap_pars_fragment>
3198#include <bumpmap_pars_fragment>
3199#include <normalmap_pars_fragment>
3200#include <specularmap_pars_fragment>
3201#include <logdepthbuf_pars_fragment>
3202#include <clipping_planes_pars_fragment>
3203void main() {
3204	vec4 diffuseColor = vec4( diffuse, opacity );
3205	#include <clipping_planes_fragment>
3206	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
3207	vec3 totalEmissiveRadiance = emissive;
3208	#include <logdepthbuf_fragment>
3209	#include <map_fragment>
3210	#include <color_fragment>
3211	#include <alphamap_fragment>
3212	#include <alphatest_fragment>
3213	#include <alphahash_fragment>
3214	#include <specularmap_fragment>
3215	#include <normal_fragment_begin>
3216	#include <normal_fragment_maps>
3217	#include <emissivemap_fragment>
3218	#include <lights_phong_fragment>
3219	#include <lights_fragment_begin>
3220	#include <lights_fragment_maps>
3221	#include <lights_fragment_end>
3222	#include <aomap_fragment>
3223	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
3224	#include <envmap_fragment>
3225	#include <opaque_fragment>
3226	#include <tonemapping_fragment>
3227	#include <colorspace_fragment>
3228	#include <fog_fragment>
3229	#include <premultiplied_alpha_fragment>
3230	#include <dithering_fragment>
3231}`,I8=`#define STANDARD
3232varying vec3 vViewPosition;
3233#ifdef USE_TRANSMISSION
3234	varying vec3 vWorldPosition;
3235#endif
3236#include <common>
3237#include <batching_pars_vertex>
3238#include <uv_pars_vertex>
3239#include <displacementmap_pars_vertex>
3240#include <color_pars_vertex>
3241#include <fog_pars_vertex>
3242#include <normal_pars_vertex>
3243#include <morphtarget_pars_vertex>
3244#include <skinning_pars_vertex>
3245#include <shadowmap_pars_vertex>
3246#include <logdepthbuf_pars_vertex>
3247#include <clipping_planes_pars_vertex>
3248void main() {
3249	#include <uv_vertex>
3250	#include <color_vertex>
3251	#include <morphinstance_vertex>
3252	#include <morphcolor_vertex>
3253	#include <batching_vertex>
3254	#include <beginnormal_vertex>
3255	#include <morphnormal_vertex>
3256	#include <skinbase_vertex>
3257	#include <skinnormal_vertex>
3258	#include <defaultnormal_vertex>
3259	#include <normal_vertex>
3260	#include <begin_vertex>
3261	#include <morphtarget_vertex>
3262	#include <skinning_vertex>
3263	#include <displacementmap_vertex>
3264	#include <project_vertex>
3265	#include <logdepthbuf_vertex>
3266	#include <clipping_planes_vertex>
3267	vViewPosition = - mvPosition.xyz;
3268	#include <worldpos_vertex>
3269	#include <shadowmap_vertex>
3270	#include <fog_vertex>
3271#ifdef USE_TRANSMISSION
3272	vWorldPosition = worldPosition.xyz;
3273#endif
3274}`,B8=`#define STANDARD
3275#ifdef PHYSICAL
3276	#define IOR
3277	#define USE_SPECULAR
3278#endif
3279uniform vec3 diffuse;
3280uniform vec3 emissive;
3281uniform float roughness;
3282uniform float metalness;
3283uniform float opacity;
3284#ifdef IOR
3285	uniform float ior;
3286#endif
3287#ifdef USE_SPECULAR
3288	uniform float specularIntensity;
3289	uniform vec3 specularColor;
3290	#ifdef USE_SPECULAR_COLORMAP
3291		uniform sampler2D specularColorMap;
3292	#endif
3293	#ifdef USE_SPECULAR_INTENSITYMAP
3294		uniform sampler2D specularIntensityMap;
3295	#endif
3296#endif
3297#ifdef USE_CLEARCOAT
3298	uniform float clearcoat;
3299	uniform float clearcoatRoughness;
3300#endif
3301#ifdef USE_DISPERSION
3302	uniform float dispersion;
3303#endif
3304#ifdef USE_IRIDESCENCE
3305	uniform float iridescence;
3306	uniform float iridescenceIOR;
3307	uniform float iridescenceThicknessMinimum;
3308	uniform float iridescenceThicknessMaximum;
3309#endif
3310#ifdef USE_SHEEN
3311	uniform vec3 sheenColor;
3312	uniform float sheenRoughness;
3313	#ifdef USE_SHEEN_COLORMAP
3314		uniform sampler2D sheenColorMap;
3315	#endif
3316	#ifdef USE_SHEEN_ROUGHNESSMAP
3317		uniform sampler2D sheenRoughnessMap;
3318	#endif
3319#endif
3320#ifdef USE_ANISOTROPY
3321	uniform vec2 anisotropyVector;
3322	#ifdef USE_ANISOTROPYMAP
3323		uniform sampler2D anisotropyMap;
3324	#endif
3325#endif
3326varying vec3 vViewPosition;
3327#include <common>
3328#include <packing>
3329#include <dithering_pars_fragment>
3330#include <color_pars_fragment>
3331#include <uv_pars_fragment>
3332#include <map_pars_fragment>
3333#include <alphamap_pars_fragment>
3334#include <alphatest_pars_fragment>
3335#include <alphahash_pars_fragment>
3336#include <aomap_pars_fragment>
3337#include <lightmap_pars_fragment>
3338#include <emissivemap_pars_fragment>
3339#include <iridescence_fragment>
3340#include <cube_uv_reflection_fragment>
3341#include <envmap_common_pars_fragment>
3342#include <envmap_physical_pars_fragment>
3343#include <fog_pars_fragment>
3344#include <lights_pars_begin>
3345#include <normal_pars_fragment>
3346#include <lights_physical_pars_fragment>
3347#include <transmission_pars_fragment>
3348#include <shadowmap_pars_fragment>
3349#include <bumpmap_pars_fragment>
3350#include <normalmap_pars_fragment>
3351#include <clearcoat_pars_fragment>
3352#include <iridescence_pars_fragment>
3353#include <roughnessmap_pars_fragment>
3354#include <metalnessmap_pars_fragment>
3355#include <logdepthbuf_pars_fragment>
3356#include <clipping_planes_pars_fragment>
3357void main() {
3358	vec4 diffuseColor = vec4( diffuse, opacity );
3359	#include <clipping_planes_fragment>
3360	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
3361	vec3 totalEmissiveRadiance = emissive;
3362	#include <logdepthbuf_fragment>
3363	#include <map_fragment>
3364	#include <color_fragment>
3365	#include <alphamap_fragment>
3366	#include <alphatest_fragment>
3367	#include <alphahash_fragment>
3368	#include <roughnessmap_fragment>
3369	#include <metalnessmap_fragment>
3370	#include <normal_fragment_begin>
3371	#include <normal_fragment_maps>
3372	#include <clearcoat_normal_fragment_begin>
3373	#include <clearcoat_normal_fragment_maps>
3374	#include <emissivemap_fragment>
3375	#include <lights_physical_fragment>
3376	#include <lights_fragment_begin>
3377	#include <lights_fragment_maps>
3378	#include <lights_fragment_end>
3379	#include <aomap_fragment>
3380	vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
3381	vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
3382	#include <transmission_fragment>
3383	vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
3384	#ifdef USE_SHEEN
3385		float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
3386		outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
3387	#endif
3388	#ifdef USE_CLEARCOAT
3389		float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
3390		vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
3391		outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
3392	#endif
3393	#include <opaque_fragment>
3394	#include <tonemapping_fragment>
3395	#include <colorspace_fragment>
3396	#include <fog_fragment>
3397	#include <premultiplied_alpha_fragment>
3398	#include <dithering_fragment>
3399}`,F8=`#define TOON
3400varying vec3 vViewPosition;
3401#include <common>
3402#include <batching_pars_vertex>
3403#include <uv_pars_vertex>
3404#include <displacementmap_pars_vertex>
3405#include <color_pars_vertex>
3406#include <fog_pars_vertex>
3407#include <normal_pars_vertex>
3408#include <morphtarget_pars_vertex>
3409#include <skinning_pars_vertex>
3410#include <shadowmap_pars_vertex>
3411#include <logdepthbuf_pars_vertex>
3412#include <clipping_planes_pars_vertex>
3413void main() {
3414	#include <uv_vertex>
3415	#include <color_vertex>
3416	#include <morphinstance_vertex>
3417	#include <morphcolor_vertex>
3418	#include <batching_vertex>
3419	#include <beginnormal_vertex>
3420	#include <morphnormal_vertex>
3421	#include <skinbase_vertex>
3422	#include <skinnormal_vertex>
3423	#include <defaultnormal_vertex>
3424	#include <normal_vertex>
3425	#include <begin_vertex>
3426	#include <morphtarget_vertex>
3427	#include <skinning_vertex>
3428	#include <displacementmap_vertex>
3429	#include <project_vertex>
3430	#include <logdepthbuf_vertex>
3431	#include <clipping_planes_vertex>
3432	vViewPosition = - mvPosition.xyz;
3433	#include <worldpos_vertex>
3434	#include <shadowmap_vertex>
3435	#include <fog_vertex>
3436}`,z8=`#define TOON
3437uniform vec3 diffuse;
3438uniform vec3 emissive;
3439uniform float opacity;
3440#include <common>
3441#include <packing>
3442#include <dithering_pars_fragment>
3443#include <color_pars_fragment>
3444#include <uv_pars_fragment>
3445#include <map_pars_fragment>
3446#include <alphamap_pars_fragment>
3447#include <alphatest_pars_fragment>
3448#include <alphahash_pars_fragment>
3449#include <aomap_pars_fragment>
3450#include <lightmap_pars_fragment>
3451#include <emissivemap_pars_fragment>
3452#include <gradientmap_pars_fragment>
3453#include <fog_pars_fragment>
3454#include <bsdfs>
3455#include <lights_pars_begin>
3456#include <normal_pars_fragment>
3457#include <lights_toon_pars_fragment>
3458#include <shadowmap_pars_fragment>
3459#include <bumpmap_pars_fragment>
3460#include <normalmap_pars_fragment>
3461#include <logdepthbuf_pars_fragment>
3462#include <clipping_planes_pars_fragment>
3463void main() {
3464	vec4 diffuseColor = vec4( diffuse, opacity );
3465	#include <clipping_planes_fragment>
3466	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
3467	vec3 totalEmissiveRadiance = emissive;
3468	#include <logdepthbuf_fragment>
3469	#include <map_fragment>
3470	#include <color_fragment>
3471	#include <alphamap_fragment>
3472	#include <alphatest_fragment>
3473	#include <alphahash_fragment>
3474	#include <normal_fragment_begin>
3475	#include <normal_fragment_maps>
3476	#include <emissivemap_fragment>
3477	#include <lights_toon_fragment>
3478	#include <lights_fragment_begin>
3479	#include <lights_fragment_maps>
3480	#include <lights_fragment_end>
3481	#include <aomap_fragment>
3482	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
3483	#include <opaque_fragment>
3484	#include <tonemapping_fragment>
3485	#include <colorspace_fragment>
3486	#include <fog_fragment>
3487	#include <premultiplied_alpha_fragment>
3488	#include <dithering_fragment>
3489}`,V8=`uniform float size;
3490uniform float scale;
3491#include <common>
3492#include <color_pars_vertex>
3493#include <fog_pars_vertex>
3494#include <morphtarget_pars_vertex>
3495#include <logdepthbuf_pars_vertex>
3496#include <clipping_planes_pars_vertex>
3497#ifdef USE_POINTS_UV
3498	varying vec2 vUv;
3499	uniform mat3 uvTransform;
3500#endif
3501void main() {
3502	#ifdef USE_POINTS_UV
3503		vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
3504	#endif
3505	#include <color_vertex>
3506	#include <morphinstance_vertex>
3507	#include <morphcolor_vertex>
3508	#include <begin_vertex>
3509	#include <morphtarget_vertex>
3510	#include <project_vertex>
3511	gl_PointSize = size;
3512	#ifdef USE_SIZEATTENUATION
3513		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
3514		if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
3515	#endif
3516	#include <logdepthbuf_vertex>
3517	#include <clipping_planes_vertex>
3518	#include <worldpos_vertex>
3519	#include <fog_vertex>
3520}`,j8=`uniform vec3 diffuse;
3521uniform float opacity;
3522#include <common>
3523#include <color_pars_fragment>
3524#include <map_particle_pars_fragment>
3525#include <alphatest_pars_fragment>
3526#include <alphahash_pars_fragment>
3527#include <fog_pars_fragment>
3528#include <logdepthbuf_pars_fragment>
3529#include <clipping_planes_pars_fragment>
3530void main() {
3531	vec4 diffuseColor = vec4( diffuse, opacity );
3532	#include <clipping_planes_fragment>
3533	vec3 outgoingLight = vec3( 0.0 );
3534	#include <logdepthbuf_fragment>
3535	#include <map_particle_fragment>
3536	#include <color_fragment>
3537	#include <alphatest_fragment>
3538	#include <alphahash_fragment>
3539	outgoingLight = diffuseColor.rgb;
3540	#include <opaque_fragment>
3541	#include <tonemapping_fragment>
3542	#include <colorspace_fragment>
3543	#include <fog_fragment>
3544	#include <premultiplied_alpha_fragment>
3545}`,H8=`#include <common>
3546#include <batching_pars_vertex>
3547#include <fog_pars_vertex>
3548#include <morphtarget_pars_vertex>
3549#include <skinning_pars_vertex>
3550#include <logdepthbuf_pars_vertex>
3551#include <shadowmap_pars_vertex>
3552void main() {
3553	#include <batching_vertex>
3554	#include <beginnormal_vertex>
3555	#include <morphinstance_vertex>
3556	#include <morphnormal_vertex>
3557	#include <skinbase_vertex>
3558	#include <skinnormal_vertex>
3559	#include <defaultnormal_vertex>
3560	#include <begin_vertex>
3561	#include <morphtarget_vertex>
3562	#include <skinning_vertex>
3563	#include <project_vertex>
3564	#include <logdepthbuf_vertex>
3565	#include <worldpos_vertex>
3566	#include <shadowmap_vertex>
3567	#include <fog_vertex>
3568}`,k8=`uniform vec3 color;
3569uniform float opacity;
3570#include <common>
3571#include <packing>
3572#include <fog_pars_fragment>
3573#include <bsdfs>
3574#include <lights_pars_begin>
3575#include <logdepthbuf_pars_fragment>
3576#include <shadowmap_pars_fragment>
3577#include <shadowmask_pars_fragment>
3578void main() {
3579	#include <logdepthbuf_fragment>
3580	gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
3581	#include <tonemapping_fragment>
3582	#include <colorspace_fragment>
3583	#include <fog_fragment>
3584}`,G8=`uniform float rotation;
3585uniform vec2 center;
3586#include <common>
3587#include <uv_pars_vertex>
3588#include <fog_pars_vertex>
3589#include <logdepthbuf_pars_vertex>
3590#include <clipping_planes_pars_vertex>
3591void main() {
3592	#include <uv_vertex>
3593	vec4 mvPosition = modelViewMatrix[ 3 ];
3594	vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );
3595	#ifndef USE_SIZEATTENUATION
3596		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
3597		if ( isPerspective ) scale *= - mvPosition.z;
3598	#endif
3599	vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
3600	vec2 rotatedPosition;
3601	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
3602	rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
3603	mvPosition.xy += rotatedPosition;
3604	gl_Position = projectionMatrix * mvPosition;
3605	#include <logdepthbuf_vertex>
3606	#include <clipping_planes_vertex>
3607	#include <fog_vertex>
3608}`,W8=`uniform vec3 diffuse;
3609uniform float opacity;
3610#include <common>
3611#include <uv_pars_fragment>
3612#include <map_pars_fragment>
3613#include <alphamap_pars_fragment>
3614#include <alphatest_pars_fragment>
3615#include <alphahash_pars_fragment>
3616#include <fog_pars_fragment>
3617#include <logdepthbuf_pars_fragment>
3618#include <clipping_planes_pars_fragment>
3619void main() {
3620	vec4 diffuseColor = vec4( diffuse, opacity );
3621	#include <clipping_planes_fragment>
3622	vec3 outgoingLight = vec3( 0.0 );
3623	#include <logdepthbuf_fragment>
3624	#include <map_fragment>
3625	#include <alphamap_fragment>
3626	#include <alphatest_fragment>
3627	#include <alphahash_fragment>
3628	outgoingLight = diffuseColor.rgb;
3629	#include <opaque_fragment>
3630	#include <tonemapping_fragment>
3631	#include <colorspace_fragment>
3632	#include <fog_fragment>
3633}`,mt={alphahash_fragment:hE,alphahash_pars_fragment:pE,alphamap_fragment:mE,alphamap_pars_fragment:gE,alphatest_fragment:vE,alphatest_pars_fragment:xE,aomap_fragment:_E,aomap_pars_fragment:yE,batching_pars_vertex:SE,batching_vertex:ME,begin_vertex:bE,beginnormal_vertex:EE,bsdfs:wE,iridescence_fragment:TE,bumpmap_pars_fragment:CE,clipping_planes_fragment:AE,clipping_planes_pars_fragment:RE,clipping_planes_pars_vertex:NE,clipping_planes_vertex:LE,color_fragment:DE,color_pars_fragment:UE,color_pars_vertex:PE,color_vertex:OE,common:IE,cube_uv_reflection_fragment:BE,defaultnormal_vertex:FE,displacementmap_pars_vertex:zE,displacementmap_vertex:VE,emissivemap_fragment:jE,emissivemap_pars_fragment:HE,colorspace_fragment:kE,colorspace_pars_fragment:GE,envmap_fragment:WE,envmap_common_pars_fragment:XE,envmap_pars_fragment:q
vendor: 6,580 bytes, line 3633
3633E,envmap_pars_vertex:YE,envmap_physical_pars_fragment:aw,envmap_vertex:ZE,fog_vertex:KE,fog_pars_vertex:QE,fog_fragment:$E,fog_pars_fragment:JE,gradientmap_pars_fragment:ew,lightmap_pars_fragment:tw,lights_lambert_fragment:nw,lights_lambert_pars_fragment:iw,lights_pars_begin:sw,lights_toon_fragment:rw,lights_toon_pars_fragment:ow,lights_phong_fragment:lw,lights_phong_pars_fragment:cw,lights_physical_fragment:uw,lights_physical_pars_fragment:fw,lights_fragment_begin:dw,lights_fragment_maps:hw,lights_fragment_end:pw,logdepthbuf_fragment:mw,logdepthbuf_pars_fragment:gw,logdepthbuf_pars_vertex:vw,logdepthbuf_vertex:xw,map_fragment:_w,map_pars_fragment:yw,map_particle_fragment:Sw,map_particle_pars_fragment:Mw,metalnessmap_fragment:bw,metalnessmap_pars_fragment:Ew,morphinstance_vertex:ww,morphcolor_vertex:Tw,morphnormal_vertex:Cw,morphtarget_pars_vertex:Aw,morphtarget_vertex:Rw,normal_fragment_begin:Nw,normal_fragment_maps:Lw,normal_pars_fragment:Dw,normal_pars_vertex:Uw,normal_vertex:Pw,normalmap_pars_fragment:Ow,clearcoat_normal_fragment_begin:Iw,clearcoat_normal_fragment_maps:Bw,clearcoat_pars_fragment:Fw,iridescence_pars_fragment:zw,opaque_fragment:Vw,packing:jw,premultiplied_alpha_fragment:Hw,project_vertex:kw,dithering_fragment:Gw,dithering_pars_fragment:Ww,roughnessmap_fragment:Xw,roughnessmap_pars_fragment:qw,shadowmap_pars_fragment:Yw,shadowmap_pars_vertex:Zw,shadowmap_vertex:Kw,shadowmask_pars_fragment:Qw,skinbase_vertex:$w,skinning_pars_vertex:Jw,skinning_vertex:e8,skinnormal_vertex:t8,specularmap_fragment:n8,specularmap_pars_fragment:i8,tonemapping_fragment:s8,tonemapping_pars_fragment:a8,transmission_fragment:r8,transmission_pars_fragment:o8,uv_pars_fragment:l8,uv_pars_vertex:c8,uv_vertex:u8,worldpos_vertex:f8,background_vert:d8,background_frag:h8,backgroundCube_vert:p8,backgroundCube_frag:m8,cube_vert:g8,cube_frag:v8,depth_vert:x8,depth_frag:_8,distanceRGBA_vert:y8,distanceRGBA_frag:S8,equirect_vert:M8,equirect_frag:b8,linedashed_vert:E8,linedashed_frag:w8,meshbasic_vert:T8,meshbasic_frag:C8,meshlambert_vert:A8,meshlambert_frag:R8,meshmatcap_vert:N8,meshmatcap_frag:L8,meshnormal_vert:D8,meshnormal_frag:U8,meshphong_vert:P8,meshphong_frag:O8,meshphysical_vert:I8,meshphysical_frag:B8,meshtoon_vert:F8,meshtoon_frag:z8,points_vert:V8,points_frag:j8,shadow_vert:H8,shadow_frag:k8,sprite_vert:G8,sprite_frag:W8},Ie={common:{diffuse:{value:new Fe(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new ht},alphaMap:{value:null},alphaMapTransform:{value:new ht},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new ht}},envmap:{envMap:{value:null},envMapRotation:{value:new ht},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new ht}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new ht}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new ht},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new ht},normalScale:{value:new St(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new ht},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new ht}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new ht}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new ht}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Fe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Fe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new ht},alphaTest:{value:0},uvTransform:{value:new ht}},sprite:{diffuse:{value:new Fe(16777215)},opacity:{value:1},center:{value:new St(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new ht},alphaMap:{value:null},alphaMapTransform:{value:new ht},alphaTest:{value:0}}},Wi={basic:{uniforms:kn([Ie.common,Ie.specularmap,Ie.envmap,Ie.aomap,Ie.lightmap,Ie.fog]),vertexShader:mt.meshbasic_vert,fragmentShader:mt.meshbasic_frag},lambert:{uniforms:kn([Ie.common,Ie.specularmap,Ie.envmap,Ie.aomap,Ie.lightmap,Ie.emissivemap,Ie.bumpmap,Ie.normalmap,Ie.displacementmap,Ie.fog,Ie.lights,{emissive:{value:new Fe(0)}}]),vertexShader:mt.meshlambert_vert,fragmentShader:mt.meshlambert_frag},phong:{uniforms:kn([Ie.common,Ie.specularmap,Ie.envmap,Ie.aomap,Ie.lightmap,Ie.emissivemap,Ie.bumpmap,Ie.normalmap,Ie.displacementmap,Ie.fog,Ie.lights,{emissive:{value:new Fe(0)},specular:{value:new Fe(1118481)},shininess:{value:30}}]),vertexShader:mt.meshphong_vert,fragmentShader:mt.meshphong_frag},standard:{uniforms:kn([Ie.common,Ie.envmap,Ie.aomap,Ie.lightmap,Ie.emissivemap,Ie.bumpmap,Ie.normalmap,Ie.displacementmap,Ie.roughnessmap,Ie.metalnessmap,Ie.fog,Ie.lights,{emissive:{value:new Fe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:mt.meshphysical_vert,fragmentShader:mt.meshphysical_frag},toon:{uniforms:kn([Ie.common,Ie.aomap,Ie.lightmap,Ie.emissivemap,Ie.bumpmap,Ie.normalmap,Ie.displacementmap,Ie.gradientmap,Ie.fog,Ie.lights,{emissive:{value:new Fe(0)}}]),vertexShader:mt.meshtoon_vert,fragmentShader:mt.meshtoon_frag},matcap:{uniforms:kn([Ie.common,Ie.bumpmap,Ie.normalmap,Ie.displacementmap,Ie.fog,{matc
vendor: 5,281 bytes, line 3633
3633ap:{value:null}}]),vertexShader:mt.meshmatcap_vert,fragmentShader:mt.meshmatcap_frag},points:{uniforms:kn([Ie.points,Ie.fog]),vertexShader:mt.points_vert,fragmentShader:mt.points_frag},dashed:{uniforms:kn([Ie.common,Ie.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:mt.linedashed_vert,fragmentShader:mt.linedashed_frag},depth:{uniforms:kn([Ie.common,Ie.displacementmap]),vertexShader:mt.depth_vert,fragmentShader:mt.depth_frag},normal:{uniforms:kn([Ie.common,Ie.bumpmap,Ie.normalmap,Ie.displacementmap,{opacity:{value:1}}]),vertexShader:mt.meshnormal_vert,fragmentShader:mt.meshnormal_frag},sprite:{uniforms:kn([Ie.sprite,Ie.fog]),vertexShader:mt.sprite_vert,fragmentShader:mt.sprite_frag},background:{uniforms:{uvTransform:{value:new ht},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:mt.background_vert,fragmentShader:mt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new ht}},vertexShader:mt.backgroundCube_vert,fragmentShader:mt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:mt.cube_vert,fragmentShader:mt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:mt.equirect_vert,fragmentShader:mt.equirect_frag},distanceRGBA:{uniforms:kn([Ie.common,Ie.displacementmap,{referencePosition:{value:new le},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:mt.distanceRGBA_vert,fragmentShader:mt.distanceRGBA_frag},shadow:{uniforms:kn([Ie.lights,Ie.fog,{color:{value:new Fe(0)},opacity:{value:1}}]),vertexShader:mt.shadow_vert,fragmentShader:mt.shadow_frag}};Wi.physical={uniforms:kn([Wi.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new ht},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new ht},clearcoatNormalScale:{value:new St(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new ht},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new ht},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new ht},sheen:{value:0},sheenColor:{value:new Fe(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new ht},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new ht},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new ht},transmissionSamplerSize:{value:new St},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new ht},attenuationDistance:{value:0},attenuationColor:{value:new Fe(0)},specularColor:{value:new Fe(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new ht},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new ht},anisotropyVector:{value:new St},anisotropyMap:{value:null},anisotropyMapTransform:{value:new ht}}]),vertexShader:mt.meshphysical_vert,fragmentShader:mt.meshphysical_frag};const nf={r:0,b:0,g:0},ar=new Ps,X8=new gn;function q8(n,e,t,a,o,l,u){const f=new Fe(0);let d=l===!0?0:1,h,g,v=null,x=0,y=null;function b(T){let R=T.isScene===!0?T.background:null;return R&&R.isTexture&&(R=(T.backgroundBlurriness>0?t:e).get(R)),R}function w(T){let R=!1;const P=b(T);P===null?S(f,d):P&&P.isColor&&(S(P,1),R=!0);const I=n.xr.getEnvironmentBlendMode();I==="additive"?a.buffers.color.setClear(0,0,0,1,u):I==="alpha-blend"&&a.buffers.color.setClear(0,0,0,0,u),(n.autoClear||R)&&(a.buffers.depth.setTest(!0),a.buffers.depth.setMask(!0),a.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))}function M(T,R){const P=b(R);P&&(P.isCubeTexture||P.mapping===Of)?(g===void 0&&(g=new pi(new Mc(1,1,1),new Bi({name:"BackgroundCubeMaterial",uniforms:No(Wi.backgroundCube.uniforms),vertexShader:Wi.backgroundCube.vertexShader,fragmentShader:Wi.backgroundCube.fragmentShader,side:ei,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),g.geometry.deleteAttribute("normal"),g.geometry.deleteAttribute("uv"),g.onBeforeRender=function(I,F,V){this.matrixWorld.copyPosition(V.matrixWorld)},Object.defineProperty(g.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),o.update(g)),ar.copy(R.backgroundRotation),ar.x*=-1,ar.y*=-1,ar.z*=-1,P.isCubeTexture&&P.isRenderTargetTexture===!1&&(ar.y*=-1,ar.z*=-1),g.material.uniforms.envMap.value=P,g.material.uniforms.flipEnvMap.value=P.isCubeTexture&&P.isRenderTargetTexture===!1?-1:1,g.material.uniforms.backgroundBlurriness.value=R.backgroundBlurriness,g.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,g.material.uniforms.backgroundRotation.value.setFromMatrix4(X8.makeRotationFromEuler(ar)),g.material.toneMapped=Lt.getTransfer(P.colorSpace)!==kt,(v!==P||x!==P.version||y!==n.toneMapping)&&(g.material.needsUpdate=!0,v=P,x=P.version,y=n.toneMapping),g.layers.enableAll(),T.unshift(g,g.geometry,g.material,0,0,null)):P&&P.isTexture&&(h===void 0&&(h=new pi(new Bo(2,2),new Bi({name:"Backgroun
3633dMaterial",uniforms:No(Wi.background.uniforms),vertexShader:Wi.background.vertexShader,fragmentShader:Wi.background.fragmentShader,side:Na,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),o.update(h)),h.material.uniforms.t2D.value=P,h.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,h.material.toneMapped=Lt.getTransfer(P.colorSpace)!==kt,P.matrixAutoUpdate===!0&&P.updateMatrix(),h.material.uniforms.uvTransform.value.copy(P.matrix),(v!==P||x!==P.version||y!==n.toneMapping)&&(h.material.needsUpdate=!0,v=P,x=P.version,y=n.toneMapping),h.layers.enableAll(),T.unshift(h,h.geometry,h.material,0,0,null))}function S(T,R){T.getRGB(nf,F_(n)),a.buffers.color.setClear(nf.r,nf.g,nf.b,R,u)}function N(){g!==void 0&&(g.geometry.dispose(),g.material.dispose(),g=void 0),h!==void 0&&(h.geometry.dispose(),h.material.dispose(),h=void 0)}return{getClearColor:function(){return f},setClearColor:function(T,R=1){f.set(T),d=R,S(f,d)},getClearAlpha:function(){return d},setClearAlpha:function(T){d=T,S(f,d)},render:w,addToRenderList:M,dispose:N}}function Y8(n,e){const t=n.getParameter(n.MAX_VERTEX_ATTRIBS),a={},o=x(null);let l=o,u=!1;function f(L,z,ce,ue,ge){let me=!1;const j=v(ue,ce,z);l!==j&&(l=j,h(l.object)),me=y(L,ue,ce,ge),me&&b(L,ue,ce,ge),ge!==null&&e.update(ge,n.ELEMENT_ARRAY_BUFFER),(me||u)&&(u=!1,R(L,z,ce,ue),ge!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.get(ge).buffer))}function d(){return n.createVertexArray()}function h(L){return n.bindVertexArray(L)}function g(L){return n.deleteVertexArray(L)}function v(L,z,ce){const ue=ce.wireframe===!0;let ge=a[L.id];ge===void 0&&(ge={},a[L.id]=ge);let me=ge[z.id];me===void 0&&(me={},ge[z.id]=me);let j=me[ue];return j===void 0&&(j=x(d()),me[ue]=j),j}function x(L){const z=[],ce=[],ue=[];for(let ge=0;ge<t;ge++)z[ge]=0,ce[ge]=0,ue[ge]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:z,enabledAttributes:ce,attributeDivisors:ue,object:L,attributes:{},index:null}}function y(L,z,ce,ue){const ge=l.attributes,me=z.attributes;let j=0;const Z=ce.getAttributes();for(const Y in Z)if(Z[Y].location>=0){const O=ge[Y];let ee=me[Y];if(ee===void 0&&(Y==="instanceMatrix"&&L.instanceMatrix&&(ee=L.instanceMatrix),Y==="instanceColor"&&L.instanceColor&&(ee=L.instanceColor)),O===void 0||O.attribute!==ee||ee&&O.data!==ee.data)return!0;j++}return l.attributesNum!==j||l.index!==ue}function b(L,z,ce,ue){const ge={},me=z.attributes;let j=0;const Z=ce.getAttributes();for(const Y in Z)if(Z[Y].location>=0){let O=me[Y];O===void 0&&(Y==="instanceMatrix"&&L.instanceMatrix&&(O=L.instanceMatrix),Y==="instanceColor"&&L.instanceColor&&(O=L.instanceColor));const ee={};ee.attribute=O,O&&O.data&&(ee.data=O.data),ge[Y]=ee,j++}l.attributes=ge,l.attributesNum=j,l.index=ue}function w(){const L=l.newAttributes;for(let z=0,ce=L.length;z<ce;z++)L[z]=0}function M(L){S(L,0)}function S(L,z){const ce=l.newAttributes,ue=l.enabledAttributes,ge=l.attributeDivisors;ce[L]=1,ue[L]===0&&(n.enableVertexAttribArray(L),ue[L]=1),ge[L]!==z&&(n.vertexAttribDivisor(L,z),ge[L]=z)}function N(){const L=l.newAttributes,z=l.enabledAttributes;for(let ce=0,ue=z.length;ce<ue;ce++)z[ce]!==L[ce]&&(n.disableVertexAttribArray(ce),z[ce]=0)}function T(L,z,ce,ue,ge,me,j){j===!0?n.vertexAttribIPointer(L,z,ce,ge,me):n.vertexAttribPointer(L,z,ce,ue,ge,me)}function R(L,z,ce,ue){w();const ge=ue.attributes,me=ce.getAttributes(),j=z.defaultAttributeValues;for(const Z in me){const Y=me[Z];if(Y.location>=0){let he=ge[Z];if(he===void 0&&(Z==="instanceMatrix"&&L.instanceMatrix&&(he=L.instanceMatrix),Z==="instanceColor"&&L.instanceColor&&(he=L.instanceColor)),he!==void 0){const O=he.normalized,ee=he.itemSize,Me=e.get(he);if(Me===void 0)continue;const be=Me.buffer,te=Me.type,xe=Me.bytesPerElement,Ee=te===n.INT||te===n.UNSIGNED_INT||he.gpuType===dm;if(he.isInterleavedBufferAttribute){const Te=he.data,Ue=Te.stride,ut=he.offset;if(Te.isInstancedInterleavedBuffer){for(let Qe=0;Qe<Y.locationSize;Qe++)S(Y.location+Qe,Te.meshPerAttribute);L.isInstancedMesh!==!0&&ue._maxInstanceCount===void 0&&(ue._maxInstanceCount=Te.meshPerAttribute*Te.count)}else for(let Qe=0;Qe<Y.locationSize;
vendor: 2,035 bytes, line 3633
3633Qe++)M(Y.location+Qe);n.bindBuffer(n.ARRAY_BUFFER,be);for(let Qe=0;Qe<Y.locationSize;Qe++)T(Y.location+Qe,ee/Y.locationSize,te,O,Ue*xe,(ut+ee/Y.locationSize*Qe)*xe,Ee)}else{if(he.isInstancedBufferAttribute){for(let Te=0;Te<Y.locationSize;Te++)S(Y.location+Te,he.meshPerAttribute);L.isInstancedMesh!==!0&&ue._maxInstanceCount===void 0&&(ue._maxInstanceCount=he.meshPerAttribute*he.count)}else for(let Te=0;Te<Y.locationSize;Te++)M(Y.location+Te);n.bindBuffer(n.ARRAY_BUFFER,be);for(let Te=0;Te<Y.locationSize;Te++)T(Y.location+Te,ee/Y.locationSize,te,O,ee*xe,ee/Y.locationSize*Te*xe,Ee)}}else if(j!==void 0){const O=j[Z];if(O!==void 0)switch(O.length){case 2:n.vertexAttrib2fv(Y.location,O);break;case 3:n.vertexAttrib3fv(Y.location,O);break;case 4:n.vertexAttrib4fv(Y.location,O);break;default:n.vertexAttrib1fv(Y.location,O)}}}}N()}function P(){V();for(const L in a){const z=a[L];for(const ce in z){const ue=z[ce];for(const ge in ue)g(ue[ge].object),delete ue[ge];delete z[ce]}delete a[L]}}function I(L){if(a[L.id]===void 0)return;const z=a[L.id];for(const ce in z){const ue=z[ce];for(const ge in ue)g(ue[ge].object),delete ue[ge];delete z[ce]}delete a[L.id]}function F(L){for(const z in a){const ce=a[z];if(ce[L.id]===void 0)continue;const ue=ce[L.id];for(const ge in ue)g(ue[ge].object),delete ue[ge];delete ce[L.id]}}function V(){U(),u=!0,l!==o&&(l=o,h(l.object))}function U(){o.geometry=null,o.program=null,o.wireframe=!1}return{setup:f,reset:V,resetDefaultState:U,dispose:P,releaseStatesOfGeometry:I,releaseStatesOfProgram:F,initAttributes:w,enableAttribute:M,disableUnusedAttributes:N}}function Z8(n,e,t){let a;function o(h){a=h}function l(h,g){n.drawArrays(a,h,g),t.update(g,a,1)}function u(h,g,v){v!==0&&(n.drawArraysInstanced(a,h,g,v),t.update(g,a,v))}function f(h,g,v){if(v===0)return;e.get("WEBGL_multi_draw").multiDrawArraysWEBGL(a,h,0,g,0,v);let y=0;for(let b=0;b<v;b++)y+=g[b];t.update(y,a,1)}function d(h,g,v,x){if(v===0)return;const y=e.get("WEBGL_multi_draw");if(y===null)for(let b=0;b<h.length;b++)u(h[b],g[b],x[b]);
vendor: 12,579 bytes, lines 3633-3708
3633else{y.multiDrawArraysInstancedWEBGL(a,h,0,g,0,x,0,v);let b=0;for(let w=0;w<v;w++)b+=g[w]*x[w];t.update(b,a,1)}}this.setMode=o,this.render=l,this.renderInstances=u,this.renderMultiDraw=f,this.renderMultiDrawInstances=d}function K8(n,e,t,a){let o;function l(){if(o!==void 0)return o;if(e.has("EXT_texture_filter_anisotropic")===!0){const F=e.get("EXT_texture_filter_anisotropic");o=n.getParameter(F.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else o=0;return o}function u(F){return!(F!==Oi&&a.convert(F)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))}function f(F){const V=F===xc&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(F!==Us&&a.convert(F)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE)&&F!==As&&!V)}function d(F){if(F==="highp"){if(n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";F="mediump"}return F==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let h=t.precision!==void 0?t.precision:"highp";const g=d(h);g!==h&&(console.warn("THREE.WebGLRenderer:",h,"not supported, using",g,"instead."),h=g);const v=t.logarithmicDepthBuffer===!0,x=t.reverseDepthBuffer===!0&&e.has("EXT_clip_control"),y=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),b=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),w=n.getParameter(n.MAX_TEXTURE_SIZE),M=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),S=n.getParameter(n.MAX_VERTEX_ATTRIBS),N=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),T=n.getParameter(n.MAX_VARYING_VECTORS),R=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),P=b>0,I=n.getParameter(n.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:l,getMaxPrecision:d,textureFormatReadable:u,textureTypeReadable:f,precision:h,logarithmicDepthBuffer:v,reverseDepthBuffer:x,maxTextures:y,maxVertexTextures:b,maxTextureSize:w,maxCubemapSize:M,maxAttributes:S,maxVertexUniforms:N,maxVaryings:T,maxFragmentUniforms:R,vertexTextures:P,maxSamples:I}}function Q8(n){const e=this;let t=null,a=0,o=!1,l=!1;const u=new cr,f=new ht,d={value:null,needsUpdate:!1};this.uniform=d,this.numPlanes=0,this.numIntersection=0,this.init=function(v,x){const y=v.length!==0||x||a!==0||o;return o=x,a=v.length,y},this.beginShadows=function(){l=!0,g(null)},this.endShadows=function(){l=!1},this.setGlobalState=function(v,x){t=g(v,x,0)},this.setState=function(v,x,y){const b=v.clippingPlanes,w=v.clipIntersection,M=v.clipShadows,S=n.get(v);if(!o||b===null||b.length===0||l&&!M)l?g(null):h();else{const N=l?0:a,T=N*4;let R=S.clippingState||null;d.value=R,R=g(b,x,T,y);for(let P=0;P!==T;++P)R[P]=t[P];S.clippingState=R,this.numIntersection=w?this.numPlanes:0,this.numPlanes+=N}};function h(){d.value!==t&&(d.value=t,d.needsUpdate=a>0),e.numPlanes=a,e.numIntersection=0}function g(v,x,y,b){const w=v!==null?v.length:0;let M=null;if(w!==0){if(M=d.value,b!==!0||M===null){const S=y+w*4,N=x.matrixWorldInverse;f.getNormalMatrix(N),(M===null||M.length<S)&&(M=new Float32Array(S));for(let T=0,R=y;T!==w;++T,R+=4)u.copy(v[T]).applyMatrix4(N,f),u.normal.toArray(M,R),M[R+3]=u.constant}d.value=M,d.needsUpdate=!0}return e.numPlanes=w,e.numIntersection=0,M}}function $8(n){let e=new WeakMap;function t(u,f){return f===np?u.mapping=Co:f===ip&&(u.mapping=Ao),u}function a(u){if(u&&u.isTexture){const f=u.mapping;if(f===np||f===ip)if(e.has(u)){const d=e.get(u).texture;return t(d,u.mapping)}else{const d=u.image;if(d&&d.height>0){const h=new Jb(d.height);return h.fromEquirectangularTexture(n,u),e.set(u,h),u.addEventListener("dispose",o),t(h.texture,u.mapping)}else return null}}return u}function o(u){const f=u.target;f.removeEventListener("dispose",o);const d=e.get(f);d!==void 0&&(e.delete(f),d.dispose())}function l(){e=new WeakMap}return{get:a,dispose:l}}const go=4,d3=[.125,.215,.35,.446,.526,.582],pr=20,b0=new cE,h3=new Fe;let E0=null,w0=0,T0=0,C0=!1;const ur=(1+Math.sqrt(5))/2,mo=1/ur,p3=[new le(-ur,mo,0),new le(ur,mo,0),new le(-mo,0,ur),new le(mo,0,ur),new le(0,ur,-mo),new le(0,ur,mo),new le(-1,1,-1),new le(1,1,-1),new le(-1,1,1),new le(1,1,1)],J8=new le;class m3{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,a=.1,o=100,l={}){const{size:u=256,position:f=J8}=l;E0=this._renderer.getRenderTarget(),w0=this._renderer.getActiveCubeFace(),T0=this._renderer.getActiveMipmapLevel(),C0=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(u);const d=this._allocateTargets();return d.depthBuffer=!0,this._sceneToCubeUV(e,a,o,d,f),t>0&&this._blur(d,0,0,t),this._applyPMREM(d),this._cleanup(d),d}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=x3(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=v3(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(E0,w0,T0),this._renderer.xr.enabled=C0,e.scissorTest=!1,sf(e,0,0,e.width,e.height)}_fromTexture(e,t){e.mapping===Co||e.mapping===Ao?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),E0=this._renderer.getRenderTarget(),w0=this._renderer.getActiveCubeFace(),T0=this._renderer.getActiveMipmapLevel(),C0=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const a=t||this._allocateTargets();return this._textureToCubeUV(e,a),this._applyPMREM(a),this._cleanup(a),a}_allocateTargets(){const e=3*Math.max(this._cubeSize,112),t=4*this._cubeSize,a={magFilter:Xi,minFilter:Xi,generateMipmaps:!1,type:xc,format:Oi,colorSpace:Ro,depthBuffer:!1},o=g3(e,t,a);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==t){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=g3(e,t,a);const{_lodMax:l}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=eT(l)),this._blurMaterial=tT(l,e,t)}return o}_compileMaterial(e){const t=new pi(this._lodPlanes[0],e);this._renderer.compile(t,b0)}_sceneToCubeUV(e,t,a,o,l){const d=new mn(90,1,t,a),h=[1,-1,1,1,1,1],g=[1,1,1,-1,-1,-1],v=this._renderer,x=v.autoClear,y=v.toneMapping;v.getClearColor(h3),v.toneMapping=Ra,v.autoClear=!1;const b=new ym({name:"PMREM.Background",side:ei,depthWrite:!1,depthTest:!1}),w=new pi(new Mc,b);let M=!1;const S=e.background;S?S.isColor&&(b.color.copy(S),e.background=null,M=!0):(b.color.copy(h3),M=!0);for(let N=0;N<6;N++){const T=N%3;T===0?(d.up.set(0,h[N],0),d.position.set(l.x,l.y,l.z),d.lookAt(l.x+g[N],l.y,l.z)):T===1?(d.up.set(0,0,h[N]),d.position.set(l.x,l.y,l.z),d.lookAt(l.x,l.y+g[N],l.z)):(d.up.set(0,h[N],0),d.position.set(l.x,l.y,l.z),d.lookAt(l.x,l.y,l.z+g[N]));const R=this._cubeSize;sf(o,T*R,N>2?R:0,R,R),v.setRenderTarget(o),M&&v.render(w,d),v.render(e,d)}w.geometry.dispose(),w.material.dispose(),v.toneMapping=y,v.autoClear=x,e.background=S}_textureToCubeUV(e,t){const a=this._renderer,o=e.mapping===Co||e.mapping===Ao;o?(this._cubemapMaterial===null&&(this._cubemapMaterial=x3()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=v3());const l=o?this._cubemapMaterial:this._equirectMaterial,u=new pi(this._lodPlanes[0],l),f=l.uniforms;f.envMap.value=e;const d=this._cubeSize;sf(t,0,0,3*d,2*d),a.setRenderTarget(t),a.render(u,b0)}_applyPMREM(e){const t=this._renderer,a=t.autoClear;t.autoClear=!1;const o=this._lodPlanes.length;for(let l=1;l<o;l++){const u=Math.sqrt(this._sigmas[l]*this._sigmas[l]-this._sigmas[l-1]*this._sigmas[l-1]),f=p3[(o-l-1)%p3.length];this._blur(e,l-1,l,u,f)}t.autoClear=a}_blur(e,t,a,o,l){const u=this._pingPongRenderTarget;this._halfBlur(e,u,t,a,o,"latitudinal",l),this._halfBlur(u,e,a,a,o,"longitudinal",l)}_halfBlur(e,t,a,o,l,u,f){const d=this._renderer,h=this._blurMaterial;u!=="latitudinal"&&u!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const g=3,v=new pi(this._lodPlanes[o],h),x=h.uniforms,y=this._sizeLods[a]-1,b=isFinite(l)?Math.PI/(2*y):2*Math.PI/(2*pr-1),w=l/b,M=isFinite(l)?1+Math.floor(g*w):pr;M>pr&&console.warn(`sigmaRadians, ${l}, is too large and will clip, as it requested ${M} samples when the maximum is set to ${pr}`);const S=[];let N=0;for(let F=0;F<pr;++F){const V=F/w,U=Math.exp(-V*V/2);S.push(U),F===0?N+=U:F<M&&(N+=2*U)}for(let F=0;F<S.length;F++)S[F]=S[F]/N;x.envMap.value=e.texture,x.samples.value=M,x.weights.value=S,x.latitudinal.value=u==="latitudinal",f&&(x.poleAxis.value=f);const{_lodMax:T}=this;x.dTheta.value=b,x.mipInt.value=T-a;const R=this._sizeLods[o],P=3*R*(o>T-go?o-T+go:0),I=4*(this._cubeSize-R);sf(t,P,I,3*R,2*R),d.setRenderTarget(t),d.render(v,b0)}}function eT(n){const e=[],t=[],a=[];let o=n;const l=n-go+1+d3.length;for(let u=0;u<l;u++){const f=Math.pow(2,o);t.push(f);let d=1/f;u>n-go?d=d3[u-n+go-1]:u===0&&(d=0),a.push(d);const h=1/(f-2),g=-h,v=1+h,x=[g,g,v,g,v,v,g,g,v,v,g,v],y=6,b=6,w=3,M=2,S=1,N=new Float32Array(w*b*y),T=new Float32Array(M*b*y),R=new Float32Array(S*b*y);for(let I=0;I<y;I++){const F=I%3*2/3-1,V=I>2?0:-1,U=[F,V,0,F+2/3,V,0,F+2/3,V+1,0,F,V,0,F+2/3,V+1,0,F,V+1,0];N.set(U,w*b*I),T.set(x,M*b*I);const L=[I,I,I,I,I,I];R.set(L,S*b*I)}const P=new Ua;P.setAttribute("position",new qi(N,w)),P.setAttribute("uv",new qi(T,M)),P.setAttribute("faceIndex",new qi(R,S)),e.push(P),o>go&&o--}return{lodPlanes:e,sizeLods:t,sigmas:a}}function g3(n,e,t){const a=new Mr(n,e,t);return a.texture.mapping=Of,a.texture.name="PMREM.cubeUv",a.scissorTest=!0,a}function sf(n,e,t,a,o){n.viewport.set(e,t,a,o),n.scissor.set(e,t,a,o)}function tT(n,e,t){const a=new Float32Array(pr),o=new le(0,1,0);return new Bi({name:"SphericalGaussianBlur",defines:{n:pr,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:a},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:o}},vertexShader:Mm(),fragmentShader:`
3634
3635			precision mediump float;
3636			precision mediump int;
3637
3638			varying vec3 vOutputDirection;
3639
3640			uniform sampler2D envMap;
3641			uniform int samples;
3642			uniform float weights[ n ];
3643			uniform bool latitudinal;
3644			uniform float dTheta;
3645			uniform float mipInt;
3646			uniform vec3 poleAxis;
3647
3648			#define ENVMAP_TYPE_CUBE_UV
3649			#include <cube_uv_reflection_fragment>
3650
3651			vec3 getSample( float theta, vec3 axis ) {
3652
3653				float cosTheta = cos( theta );
3654				// Rodrigues' axis-angle rotation
3655				vec3 sampleDirection = vOutputDirection * cosTheta
3656					+ cross( axis, vOutputDirection ) * sin( theta )
3657					+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );
3658
3659				return bilinearCubeUV( envMap, sampleDirection, mipInt );
3660
3661			}
3662
3663			void main() {
3664
3665				vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );
3666
3667				if ( all( equal( axis, vec3( 0.0 ) ) ) ) {
3668
3669					axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );
3670
3671				}
3672
3673				axis = normalize( axis );
3674
3675				gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
3676				gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );
3677
3678				for ( int i = 1; i < n; i++ ) {
3679
3680					if ( i >= samples ) {
3681
3682						break;
3683
3684					}
3685
3686					float theta = dTheta * float( i );
3687					gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
3688					gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );
3689
3690				}
3691
3692			}
3693		`,blending:Aa,depthTest:!1,depthWrite:!1})}function v3(){return new Bi({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Mm(),fragmentShader:`
3694
3695			precision mediump float;
3696			precision mediump int;
3697
3698			varying vec3 vOutputDirection;
3699
3700			uniform sampler2D envMap;
3701
3702			#include <common>
3703
3704			void main() {
3705
3706				vec3 outputDirection = normalize( vOutputDirection );
3707				vec2 uv = equirectUv( outputDirection );
3708
3709				gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
3710
3711			}
3712		`,blending:Aa,depthTest:!1,depthWrite:!1})}function x3(){return new Bi({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Mm(),fragmentShader:`
3713
3714			precision mediump float;
3715			precision mediump int;
3716
3717			uniform float flipEnvMap;
3718
3719			varying vec3 vOutputDirection;
3720
3721			uniform samplerCube envMap;
3722
3723			void main() {
3724
3725				gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );
3726
3727			}
3728		`,blending:Aa,depthTest:!1,depthWrite:!1})}function Mm(){return`
3729
3730		precision mediump float;
3731		precision mediump int;
3732
3733		attribute float faceIndex;
3734
3735		varying vec3 vOutputDirection;
3736
3737		// RH coordinate system; PMREM face-indexing convention
3738		vec3 getDirection( vec2 uv, float face ) {
3739
3740			uv = 2.0 * uv - 1.0;
3741
3742			vec3 direction = vec3( uv, 1.0 );
3743
3744			if ( face == 0.0 ) {
3745
3746				direction = direction.zyx; // ( 1, v, u ) pos x
3747
3748			} else if ( face == 1.0 ) {
3749
3750				direction = direction.xzy;
3751				direction.xz *= -1.0; // ( -u, 1, -v ) pos y
3752
3753			} else if ( face == 2.0 ) {
3754
3755				direction.x *= -1.0; // ( -u, v, 1 ) pos z
3756
3757			} else if ( face == 3.0 ) {
3758
3759				direction = direction.zyx;
3760				direction.xz *= -1.0; // ( -1, v, -u ) neg x
3761
3762			} else if ( face == 4.0 ) {
3763
3764				direction = direction.xzy;
3765				direction.xy *= -1.0; // ( -u, -1, v ) neg y
3766
3767			} else if ( face == 5.0 ) {
3768
3769				direction.z *= -1.0; // ( u, v, -1 ) neg z
3770
3771			}
3772
3773			return direction;
3774
3775		}
3776
3777		void main() {
3778
3779			vOutputDirection = getDirection( uv, faceIndex );
3780			gl_Position = vec4( position, 1.0 );
3781
3782		}
3783	`}function nT(n){let e=new WeakMap,t=null;function a(f){if(f&&f.isTexture){const d=f.mapping,h=d===np||d===ip,g=d===Co||d===Ao;if(h||g){let v=e.get(f);const x=v!==void 0?v.texture.pmremVersion:0;if(f.isRenderTargetTexture&&f.pmremVersion!==x)return t===null&&(t=new m3(n)),v=h?t.fromEquirectangular(f,v):t.fromCubemap(f,v),v.texture.pmremVersion=f.pmremVersion,e.set(f,v),v.texture;if(v!==void 0)return v.texture;{const y=f.image;return h&&y&&y.height>0||g&&y&&o(y)?(t===null&&(t=new m3(n)),v=h?t.fromEquirectangular(f):t.fromCubemap(f),v.texture.pmremVersion=f.pmremVersion,e.set(f,v),f.addEventListener("dispose",l),v.texture):null}}}return f}function o(f){let d=0;const h=6;for(let g=0;g<h;g++)f[g]!==void 0&&d++;return d===h}function l(f){const d=f.target;d.removeEventListener("dispose",l);const h=e.get(d);h!==void 0&&(e.delete(d),h.dispose())}function u(){e=new WeakMap,t!==null&&(t.dispose(),t=null)}return{get:a,dispose:u}}function iT(n){const e={};function t(a){if(e[a]!==void 0)return e[a];let o;switch(a){case"WEBGL_depth_texture":o=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":o=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":o=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":o=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:o=n.getExtension(a)}return e[a]=o,o}return{has:function(a){return t(a)!==null},init:function(){t("EXT_color_buffer_float"),t("WEBGL_clip_cull_distance"),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture"),t("WEBGL_render_shared_exponent")},get:function(a){const o=t(a);return o===null&&bo("THREE.WebGLRenderer: "+a+" extension not supported."),o}}}function sT(n,e,t,a){const o={},l=new WeakMap;function u(v){const x=v.target;x.index!==null&&e.remove(x.index);for(const b in x.attributes)e.remove(x.attributes[b]);x.removeEventListener("dispose",u),delete o[x.id];const y=l.get(x);y&&(e.remove(y),l.delete(x)),a.releaseStatesOfGeometry(x),x.isInstancedBufferGeometry===!0&&delete x._maxInstanceCount,t.memory.geometries--}function f(v,x){return o[x.id]===!0||(x.addEventListener("dispose",u),o[x.id]=!0,t.memory.geometries++),x}function d(v){const x=v.attributes;for(const y in x)e.update(x[y],n.ARRAY_BUFFER)}function h(v){const x=[],y=v.index,b=v.attributes.position;let w=0;if(y!==null){const N=y.array;w=y.version;for(let T=0,R=N.length;T<R;T+=3){const P=N[T+0],I=N[T+1],F=N[T+2];x.push(P,I,I,F,F,P)}}else if(b!==void 0){const N=b.array;w=b.version;for(let T=0,R=N.length/3-1;T<R;T+=3){const P=T+0,I=T+1,F=T+2;x.push(P,I,I,F,F,P)}}else return;const M=new(D_(x)?B_:I_)(x,1);M.version=w;const S=l.get(v);S&&e.remove(S),l.set(v,M)}function g(v){const x=l.get(v);if(x){const y=v.index;y!==null&&x.version<y.version&&h(v)}else h(v);return l.get(v)}return{get:f,update:d,getWireframeAttribute:g}}function aT(n,e,t){let a;function o(x){a=x}let l,u;function f(x){l=x.type,u=x.bytesPerElement}function d(x,y){n.drawElements(a,y,l,x*u),t.update(y,a,1)}function h(x,y,b){b!==0&&(n.drawElementsInstanced(a,y,l,x*u,b),t.update(y,a,b))}function g(x,y,b){if(b===0)return;e.get("WEBGL_multi_draw").multiDrawElementsWEBGL(a,y,0,l,x,0,b);let M=0;for(let S=0;S<b;S++)M+=y[S];t.update(M,a,1)}function v(x,y,b,w){if(b===0)return;const M=e.get("WEBGL_multi_draw");if(M===null)for(let S=0;S<x.length;S++)h(x[S]/u,y[S],w[S]);
vendor: 17,444 bytes, lines 3783-3818
3783else{M.multiDrawElementsInstancedWEBGL(a,y,0,l,x,0,w,0,b);let S=0;for(let N=0;N<b;N++)S+=y[N]*w[N];t.update(S,a,1)}}this.setMode=o,this.setIndex=f,this.render=d,this.renderInstances=h,this.renderMultiDraw=g,this.renderMultiDrawInstances=v}function rT(n){const e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function a(l,u,f){switch(t.calls++,u){case n.TRIANGLES:t.triangles+=f*(l/3);break;case n.LINES:t.lines+=f*(l/2);break;case n.LINE_STRIP:t.lines+=f*(l-1);break;case n.LINE_LOOP:t.lines+=f*l;break;case n.POINTS:t.points+=f*l;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",u);break}}function o(){t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:e,render:t,programs:null,autoReset:!0,reset:o,update:a}}function oT(n,e,t){const a=new WeakMap,o=new cn;function l(u,f,d){const h=u.morphTargetInfluences,g=f.morphAttributes.position||f.morphAttributes.normal||f.morphAttributes.color,v=g!==void 0?g.length:0;let x=a.get(f);if(x===void 0||x.count!==v){let L=function(){V.dispose(),a.delete(f),f.removeEventListener("dispose",L)};var y=L;x!==void 0&&x.texture.dispose();const b=f.morphAttributes.position!==void 0,w=f.morphAttributes.normal!==void 0,M=f.morphAttributes.color!==void 0,S=f.morphAttributes.position||[],N=f.morphAttributes.normal||[],T=f.morphAttributes.color||[];let R=0;b===!0&&(R=1),w===!0&&(R=2),M===!0&&(R=3);let P=f.attributes.position.count*R,I=1;P>e.maxTextureSize&&(I=Math.ceil(P/e.maxTextureSize),P=e.maxTextureSize);const F=new Float32Array(P*I*4*v),V=new U_(F,P,I,v);V.type=As,V.needsUpdate=!0;const U=R*4;for(let z=0;z<v;z++){const ce=S[z],ue=N[z],ge=T[z],me=P*I*4*z;for(let j=0;j<ce.count;j++){const Z=j*U;b===!0&&(o.fromBufferAttribute(ce,j),F[me+Z+0]=o.x,F[me+Z+1]=o.y,F[me+Z+2]=o.z,F[me+Z+3]=0),w===!0&&(o.fromBufferAttribute(ue,j),F[me+Z+4]=o.x,F[me+Z+5]=o.y,F[me+Z+6]=o.z,F[me+Z+7]=0),M===!0&&(o.fromBufferAttribute(ge,j),F[me+Z+8]=o.x,F[me+Z+9]=o.y,F[me+Z+10]=o.z,F[me+Z+11]=ge.itemSize===4?o.w:1)}}x={count:v,texture:V,size:new St(P,I)},a.set(f,x),f.addEventListener("dispose",L)}if(u.isInstancedMesh===!0&&u.morphTexture!==null)d.getUniforms().setValue(n,"morphTexture",u.morphTexture,t);else{let b=0;for(let M=0;M<h.length;M++)b+=h[M];const w=f.morphTargetsRelative?1:1-b;d.getUniforms().setValue(n,"morphTargetBaseInfluence",w),d.getUniforms().setValue(n,"morphTargetInfluences",h)}d.getUniforms().setValue(n,"morphTargetsTexture",x.texture,t),d.getUniforms().setValue(n,"morphTargetsTextureSize",x.size)}return{update:l}}function lT(n,e,t,a){let o=new WeakMap;function l(d){const h=a.render.frame,g=d.geometry,v=e.get(d,g);if(o.get(v)!==h&&(e.update(v),o.set(v,h)),d.isInstancedMesh&&(d.hasEventListener("dispose",f)===!1&&d.addEventListener("dispose",f),o.get(d)!==h&&(t.update(d.instanceMatrix,n.ARRAY_BUFFER),d.instanceColor!==null&&t.update(d.instanceColor,n.ARRAY_BUFFER),o.set(d,h))),d.isSkinnedMesh){const x=d.skeleton;o.get(x)!==h&&(x.update(),o.set(x,h))}return v}function u(){o=new WeakMap}function f(d){const h=d.target;h.removeEventListener("dispose",f),t.remove(h.instanceMatrix),h.instanceColor!==null&&t.remove(h.instanceColor)}return{update:l,dispose:u}}const G_=new Wn,_3=new j_(1,1),W_=new U_,X_=new Ob,q_=new Sm,y3=[],S3=[],M3=new Float32Array(16),b3=new Float32Array(9),E3=new Float32Array(4);function Fo(n,e,t){const a=n[0];if(a<=0||a>0)return n;const o=e*t;let l=y3[o];if(l===void 0&&(l=new Float32Array(o),y3[o]=l),e!==0){a.toArray(l,0);for(let u=1,f=0;u!==e;++u)f+=t,n[u].toArray(l,f)}return l}function Sn(n,e){if(n.length!==e.length)return!1;for(let t=0,a=n.length;t<a;t++)if(n[t]!==e[t])return!1;return!0}function Mn(n,e){for(let t=0,a=e.length;t<a;t++)n[t]=e[t]}function Ff(n,e){let t=S3[e];t===void 0&&(t=new Int32Array(e),S3[e]=t);for(let a=0;a!==e;++a)t[a]=n.allocateTextureUnit();return t}function cT(n,e){const t=this.cache;t[0]!==e&&(n.uniform1f(this.addr,e),t[0]=e)}function uT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(Sn(t,e))return;n.uniform2fv(this.addr,e),Mn(t,e)}}function fT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else if(e.r!==void 0)(t[0]!==e.r||t[1]!==e.g||t[2]!==e.b)&&(n.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b);else{if(Sn(t,e))return;n.uniform3fv(this.addr,e),Mn(t,e)}}function dT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(Sn(t,e))return;n.uniform4fv(this.addr,e),Mn(t,e)}}function hT(n,e){const t=this.cache,a=e.elements;if(a===void 0){if(Sn(t,e))return;n.uniformMatrix2fv(this.addr,!1,e),Mn(t,e)}else{if(Sn(t,a))return;E3.set(a),n.uniformMatrix2fv(this.addr,!1,E3),Mn(t,a)}}function pT(n,e){const t=this.cache,a=e.elements;if(a===void 0){if(Sn(t,e))return;n.uniformMatrix3fv(this.addr,!1,e),Mn(t,e)}else{if(Sn(t,a))return;b3.set(a),n.uniformMatrix3fv(this.addr,!1,b3),Mn(t,a)}}function mT(n,e){const t=this.cache,a=e.elements;if(a===void 0){if(Sn(t,e))return;n.uniformMatrix4fv(this.addr,!1,e),Mn(t,e)}else{if(Sn(t,a))return;M3.set(a),n.uniformMatrix4fv(this.addr,!1,M3),Mn(t,a)}}function gT(n,e){const t=this.cache;t[0]!==e&&(n.uniform1i(this.addr,e),t[0]=e)}function vT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2i(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(Sn(t,e))return;n.uniform2iv(this.addr,e),Mn(t,e)}}function xT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3i(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(Sn(t,e))return;n.uniform3iv(this.addr,e),Mn(t,e)}}function _T(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4i(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(Sn(t,e))return;n.uniform4iv(this.addr,e),Mn(t,e)}}function yT(n,e){const t=this.cache;t[0]!==e&&(n.uniform1ui(this.addr,e),t[0]=e)}function ST(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2ui(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(Sn(t,e))return;n.uniform2uiv(this.addr,e),Mn(t,e)}}function MT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3ui(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(Sn(t,e))return;n.uniform3uiv(this.addr,e),Mn(t,e)}}function bT(n,e){const t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4ui(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(Sn(t,e))return;n.uniform4uiv(this.addr,e),Mn(t,e)}}function ET(n,e,t){const a=this.cache,o=t.allocateTextureUnit();a[0]!==o&&(n.uniform1i(this.addr,o),a[0]=o);let l;this.type===n.SAMPLER_2D_SHADOW?(_3.compareFunction=L_,l=_3):l=G_,t.setTexture2D(e||l,o)}function wT(n,e,t){const a=this.cache,o=t.allocateTextureUnit();a[0]!==o&&(n.uniform1i(this.addr,o),a[0]=o),t.setTexture3D(e||X_,o)}function TT(n,e,t){const a=this.cache,o=t.allocateTextureUnit();a[0]!==o&&(n.uniform1i(this.addr,o),a[0]=o),t.setTextureCube(e||q_,o)}function CT(n,e,t){const a=this.cache,o=t.allocateTextureUnit();a[0]!==o&&(n.uniform1i(this.addr,o),a[0]=o),t.setTexture2DArray(e||W_,o)}function AT(n){switch(n){case 5126:return cT;case 35664:return uT;case 35665:return fT;case 35666:return dT;case 35674:return hT;case 35675:return pT;case 35676:return mT;case 5124:case 35670:return gT;case 35667:case 35671:return vT;case 35668:case 35672:return xT;case 35669:case 35673:return _T;case 5125:return yT;case 36294:return ST;case 36295:return MT;case 36296:return bT;case 35678:case 36198:case 36298:case 36306:case 35682:return ET;case 35679:case 36299:case 36307:return wT;case 35680:case 36300:case 36308:case 36293:return TT;case 36289:case 36303:case 36311:case 36292:return CT}}function RT(n,e){n.uniform1fv(this.addr,e)}function NT(n,e){const t=Fo(e,this.size,2);n.uniform2fv(this.addr,t)}function LT(n,e){const t=Fo(e,this.size,3);n.uniform3fv(this.addr,t)}function DT(n,e){const t=Fo(e,this.size,4);n.uniform4fv(this.addr,t)}function UT(n,e){const t=Fo(e,this.size,4);n.uniformMatrix2fv(this.addr,!1,t)}function PT(n,e){const t=Fo(e,this.size,9);n.uniformMatrix3fv(this.addr,!1,t)}function OT(n,e){const t=Fo(e,this.size,16);n.uniformMatrix4fv(this.addr,!1,t)}function IT(n,e){n.uniform1iv(this.addr,e)}function BT(n,e){n.uniform2iv(this.addr,e)}function FT(n,e){n.uniform3iv(this.addr,e)}function zT(n,e){n.uniform4iv(this.addr,e)}function VT(n,e){n.uniform1uiv(this.addr,e)}function jT(n,e){n.uniform2uiv(this.addr,e)}function HT(n,e){n.uniform3uiv(this.addr,e)}function kT(n,e){n.uniform4uiv(this.addr,e)}function GT(n,e,t){const a=this.cache,o=e.length,l=Ff(t,o);Sn(a,l)||(n.uniform1iv(this.addr,l),Mn(a,l));for(let u=0;u!==o;++u)t.setTexture2D(e[u]||G_,l[u])}function WT(n,e,t){const a=this.cache,o=e.length,l=Ff(t,o);Sn(a,l)||(n.uniform1iv(this.addr,l),Mn(a,l));for(let u=0;u!==o;++u)t.setTexture3D(e[u]||X_,l[u])}function XT(n,e,t){const a=this.cache,o=e.length,l=Ff(t,o);Sn(a,l)||(n.uniform1iv(this.addr,l),Mn(a,l));for(let u=0;u!==o;++u)t.setTextureCube(e[u]||q_,l[u])}function qT(n,e,t){const a=this.cache,o=e.length,l=Ff(t,o);Sn(a,l)||(n.uniform1iv(this.addr,l),Mn(a,l));for(let u=0;u!==o;++u)t.setTexture2DArray(e[u]||W_,l[u])}function YT(n){switch(n){case 5126:return RT;case 35664:return NT;case 35665:return LT;case 35666:return DT;case 35674:return UT;case 35675:return PT;case 35676:return OT;case 5124:case 35670:return IT;case 35667:case 35671:return BT;case 35668:case 35672:return FT;case 35669:case 35673:return zT;case 5125:return VT;case 36294:return jT;case 36295:return HT;case 36296:return kT;case 35678:case 36198:case 36298:case 36306:case 35682:return GT;case 35679:case 36299:case 36307:return WT;case 35680:case 36300:case 36308:case 36293:return XT;case 36289:case 36303:case 36311:case 36292:return qT}}class ZT{constructor(e,t,a){this.id=e,this.addr=a,this.cache=[],this.type=t.type,this.setValue=AT(t.type)}}class KT{constructor(e,t,a){this.id=e,this.addr=a,this.cache=[],this.type=t.type,this.size=t.size,this.setValue=YT(t.type)}}class QT{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,t,a){const o=this.seq;for(let l=0,u=o.length;l!==u;++l){const f=o[l];f.setValue(e,t[f.id],a)}}}const A0=/(\w+)(\])?(\[|\.)?/g;function w3(n,e){n.seq.push(e),n.map[e.id]=e}function $T(n,e,t){const a=n.name,o=a.length;for(A0.lastIndex=0;;){const l=A0.exec(a),u=A0.lastIndex;let f=l[1];const d=l[2]==="]",h=l[3];if(d&&(f=f|0),h===void 0||h==="["&&u+2===o){w3(t,h===void 0?new ZT(f,n,e):new KT(f,n,e));break}else{let v=t.map[f];v===void 0&&(v=new QT(f),w3(t,v)),t=v}}}class vf{constructor(e,t){this.seq=[],this.map={};const a=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let o=0;o<a;++o){const l=e.getActiveUniform(t,o),u=e.getUniformLocation(t,l.name);$T(l,u,this)}}setValue(e,t,a,o){const l=this.map[t];l!==void 0&&l.setValue(e,a,o)}setOptional(e,t,a){const o=t[a];o!==void 0&&this.setValue(e,a,o)}static upload(e,t,a,o){for(let l=0,u=t.length;l!==u;++l){const f=t[l],d=a[f.id];d.needsUpdate!==!1&&f.setValue(e,d.value,o)}}static seqWithValue(e,t){const a=[];for(let o=0,l=e.length;o!==l;++o){const u=e[o];u.id in t&&a.push(u)}return a}}function T3(n,e,t){const a=n.createShader(e);return n.shaderSource(a,t),n.compileShader(a),a}const JT=37297;let e7=0;function t7(n,e){const t=n.split(`
3784`),a=[],o=Math.max(e-6,0),l=Math.min(e+6,t.length);for(let u=o;u<l;u++){const f=u+1;a.push(`${f===e?">":" "} ${f}: ${t[u]}`)}return a.join(`
3785`)}const C3=new ht;function n7(n){Lt._getMatrix(C3,Lt.workingColorSpace,n);const e=`mat3( ${C3.elements.map(t=>t.toFixed(4))} )`;switch(Lt.getTransfer(n)){case bf:return[e,"LinearTransferOETF"];case kt:return[e,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",n),[e,"LinearTransferOETF"]}}function A3(n,e,t){const a=n.getShaderParameter(e,n.COMPILE_STATUS),o=n.getShaderInfoLog(e).trim();if(a&&o==="")return"";const l=/ERROR: 0:(\d+)/.exec(o);if(l){const u=parseInt(l[1]);return t.toUpperCase()+`
3786
3787`+o+`
3788
3789`+t7(n.getShaderSource(e),u)}else return o}function i7(n,e){const t=n7(e);return[`vec4 ${n}( vec4 value ) {`,`	return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(`
3790`)}function s7(n,e){let t;switch(e){case rb:t="Linear";break;case ob:t="Reinhard";break;case lb:t="Cineon";break;case cb:t="ACESFilmic";break;case fb:t="AgX";break;case db:t="Neutral";break;case ub:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}const af=new le;function a7(){Lt.getLuminanceCoefficients(af);const n=af.x.toFixed(4),e=af.y.toFixed(4),t=af.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",`	const vec3 weights = vec3( ${n}, ${e}, ${t} );`,"	return dot( weights, rgb );","}"].join(`
3791`)}function r7(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Zl).join(`
3792`)}function o7(n){const e=[];for(const t in n){const a=n[t];a!==!1&&e.push("#define "+t+" "+a)}return e.join(`
3793`)}function l7(n,e){const t={},a=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let o=0;o<a;o++){const l=n.getActiveAttrib(e,o),u=l.name;let f=1;l.type===n.FLOAT_MAT2&&(f=2),l.type===n.FLOAT_MAT3&&(f=3),l.type===n.FLOAT_MAT4&&(f=4),t[u]={type:l.type,location:n.getAttribLocation(e,u),locationSize:f}}return t}function Zl(n){return n!==""}function R3(n,e){const t=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,t).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function N3(n,e){return n.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const c7=/^[ \t]*#include +<([\w\d./]+)>/gm;function Up(n){return n.replace(c7,f7)}const u7=new Map;function f7(n,e){let t=mt[e];if(t===void 0){const a=u7.get(e);if(a!==void 0)t=mt[a],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,a);else throw new Error("Can not resolve #include <"+e+">")}return Up(t)}const d7=/#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 L3(n){return n.replace(d7,h7)}function h7(n,e,t,a){let o="";for(let l=parseInt(e);l<parseInt(t);l++)o+=a.replace(/\[\s*i\s*\]/g,"[ "+l+" ]").replace(/UNROLLED_LOOP_INDEX/g,l);return o}function D3(n){let e=`precision ${n.precision} float;
3794	precision ${n.precision} int;
3795	precision ${n.precision} sampler2D;
3796	precision ${n.precision} samplerCube;
3797	precision ${n.precision} sampler3D;
3798	precision ${n.precision} sampler2DArray;
3799	precision ${n.precision} sampler2DShadow;
3800	precision ${n.precision} samplerCubeShadow;
3801	precision ${n.precision} sampler2DArrayShadow;
3802	precision ${n.precision} isampler2D;
3803	precision ${n.precision} isampler3D;
3804	precision ${n.precision} isamplerCube;
3805	precision ${n.precision} isampler2DArray;
3806	precision ${n.precision} usampler2D;
3807	precision ${n.precision} usampler3D;
3808	precision ${n.precision} usamplerCube;
3809	precision ${n.precision} usampler2DArray;
3810	`;return n.precision==="highp"?e+=`
3811#define HIGH_PRECISION`:n.precision==="mediump"?e+=`
3812#define MEDIUM_PRECISION`:n.precision==="lowp"&&(e+=`
3813#define LOW_PRECISION`),e}function p7(n){let e="SHADOWMAP_TYPE_BASIC";return n.shadowMapType===y_?e="SHADOWMAP_TYPE_PCF":n.shadowMapType===z6?e="SHADOWMAP_TYPE_PCF_SOFT":n.shadowMapType===Cs&&(e="SHADOWMAP_TYPE_VSM"),e}function m7(n){let e="ENVMAP_TYPE_CUBE";if(n.envMap)switch(n.envMapMode){case Co:case Ao:e="ENVMAP_TYPE_CUBE";break;case Of:e="ENVMAP_TYPE_CUBE_UV";break}return e}function g7(n){let e="ENVMAP_MODE_REFLECTION";if(n.envMap)switch(n.envMapMode){case Ao:e="ENVMAP_MODE_REFRACTION";break}return e}function v7(n){let e="ENVMAP_BLENDING_NONE";if(n.envMap)switch(n.combine){case S_:e="ENVMAP_BLENDING_MULTIPLY";break;case sb:e="ENVMAP_BLENDING_MIX";break;case ab:e="ENVMAP_BLENDING_ADD";break}return e}function x7(n){const e=n.envMapCubeUVHeight;if(e===null)return null;const t=Math.log2(e)-2,a=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,t),112)),texelHeight:a,maxMip:t}}function _7(n,e,t,a){const o=n.getContext(),l=t.defines;let u=t.vertexShader,f=t.fragmentShader;const d=p7(t),h=m7(t),g=g7(t),v=v7(t),x=x7(t),y=r7(t),b=o7(l),w=o.createProgram();let M,S,N=t.glslVersion?"#version "+t.glslVersion+`
3814`:"";t.isRawShaderMaterial?(M=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,b].filter(Zl).join(`
3815`),M.length>0&&(M+=`
3816`),S=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,b].filter(Zl).join(`
3817`),S.length>0&&(S+=`
3818`)):(M=[D3(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,b,t.extensionCl
vendor: 6,454 bytes, lines 3818-3820
3818ipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+g:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+d:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","	attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","	attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","	uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","	attribute vec2 uv1;","#endif","#ifdef USE_UV2","	attribute vec2 uv2;","#endif","#ifdef USE_UV3","	attribute vec2 uv3;","#endif","#ifdef USE_TANGENT","	attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","	attribute vec4 color;","#elif defined( USE_COLOR )","	attribute vec3 color;","#endif","#ifdef USE_SKINNING","	attribute vec4 skinIndex;","	attribute vec4 skinWeight;","#endif",`
3819`].filter(Zl).join(`
3820`),S=[D3(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,b,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.envMap?"#define "+g:"",t.envMap?"#define "+v:"",x?"#define CUBEUV_TEXEL_WIDTH "+x.texelWidth:"",x?"#define CUBEUV_TEXEL_HEIGHT "+x.texelHeight:"",x?"#define CUBEUV_MAX_MIP "+x.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.iridescence?"#define USE_IR
3820IDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor||t.batchingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+d:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ra?"#define TONE_MAPPING":"",t.toneMapping!==Ra?mt.tonemapping_pars_fragment:"",t.toneMapping!==Ra?s7("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",mt.colorspace_pars_fragment,i7("linearToOutputTexel",t.outputColorSpace),a7(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",`
3821`].filter(Zl).join(`
3822`)),u=Up(u),u=R3(u,t),u=N3(u,t),f=Up(f),f=R3(f,t),f=N3(f,t),u=L3(u),f=L3(f),t.isRawShaderMaterial!==!0&&(N=`#version 300 es
3823`,M=[y,"#define attribute in","#define varying out","#define texture2D texture"].join(`
3824`)+`
3825`+M,S=["#define varying in",t.glslVersion===qv?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===qv?"":"#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(`
3826`)+`
3827`+S);const T=N+M+u,R=N+S+f,P=T3(o,o.VERTEX_SHADER,T),I=T3(o,o.FRAGMENT_SHADER,R);o.attachShader(w,P),o.attachShader(w,I),t.index0AttributeName!==void 0?o.bindAttribLocation(w,0,t.index0AttributeName):t.morphTargets===!0&&o.bindAttribLocation(w,0,"position"),o.linkProgram(w);function F(z){if(n.debug.checkShaderErrors){const ce=o.getProgramInfoLog(w).trim(),ue=o.getShaderInfoLog(P).trim(),ge=o.getShaderInfoLog(I).trim();let me=!0,j=!0;if(o.getProgramParameter(w,o.LINK_STATUS)===!1)if(me=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(o,w,P,I);else{const Z=A3(o,P,"vertex"),Y=A3(o,I,"fragment");console.error("THREE.WebGLProgram: Shader Error "+o.getError()+" - VALIDATE_STATUS "+o.getProgramParameter(w,o.VALIDATE_STATUS)+`
3828
3829Material Name: `+z.name+`
3830Material Type: `+z.type+`
3831
3832Program Info Log: `+ce+`
3833`+Z+`
3834`+Y)}else ce!==""?console.warn("THREE.WebGLProgram: Program Info Log:",ce):(ue===""||ge==="")&&(j=!1);j&&(z.diagnostics={runnable:me,programLog:ce,vertexShader:{log:ue,prefix:M},fragmentShader:{log:ge,prefix:S}})}o.deleteShader(P),o.deleteShader(I),V=new vf(o,w),U=l7(o,w)}let V;this.getUniforms=function(){return V===void 0&&F(this),V};let U;this.getAttributes=function(){return U===void 0&&F(this),U};let L=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return L===!1&&(L=o.getProgramParameter(w,JT)),L},this.destroy=function(){a.releaseStatesOfProgram(this),o.deleteProgram(w),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=e7++,this.cacheKey=e,this.usedTimes=1,this.program=w,this.vertexShader=P,this.fragmentShader=I,this}let y7=0;class S7{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,a=e.fragmentShader,o=this._getShaderStage(t),l=this._getShaderStage(a),u=this._getShaderCacheForMaterial(e);return u.has(o)===!1&&(u.add(o),o.usedTimes++),u.has(l)===!1&&(u.add(l),l.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const a of t)a.usedTimes--,a.usedTimes===0&&this.shaderCache.delete(a.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let a=t.get(e);return a===void 0&&(a=new Set,t.set(e,a)),a}_getShaderStage(e){const t=this.shaderCache;let a=t.get(e);return a===void 0&&(a=new M7(e),t.set(e,a)),a}}class M7{constructor(e){this.id=y7++,this.code=e,this.usedTimes=0}}function b7(n,e,t,a,o,l,u){const f=new P_,d=new S7,h=new Set,g=[],v=o.logarithmicDepthBuffer,x=o.vertexTextures;let y=o.precision;const b={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function w(U){return h.add(U),U===0?"uv":`uv${U}`}function M(U,L,z,ce,ue){const ge=ce.fog,me=ue.geometry,j=U.isMeshStandardMaterial?ce.environment:null,Z=(U.isMeshStandardMaterial?t:e).get(U.envMap||j),Y=Z&&Z.mapping===Of?Z.image.height:null,he=b[U.type];U.precision!==null&&(y=o.getMaxPrecision(U.precision),y!==U.precision&&console.warn("THREE.WebGLProgram.getParameters:",U.precision,"not supported, using",y,"instead."));const O=me.morphAttributes.position||me.morphAttributes.normal||me.morphAttributes.color,ee=O!==void 0?O.length:0;let Me=0;me.morphAttributes.position!==void 0&&(Me=1),me.morphAttributes.normal!==void 0&&(Me=2),me.morphAttributes.color!==void 0&&(Me=3);let be,te,xe,Ee;if(he){const Rt=Wi[he];be=Rt.vertexShader,te=Rt.fragmentShader}else be=U.vertexShader,te=U.fragmentShader,d.update(U),xe=d.getVertexShaderID(U),Ee=d.getFragmentShaderID(U);const Te=n.getRenderTarget(),Ue=n.state.buffers.depth.getReversed(),ut=ue.isInstancedMesh===!0,Qe=ue.isBatchedMesh===!0,Et=!!U.map,Ut=!!U.matcap,gt=!!Z,k=!!U.aoMap,Xt=!!U.lightMap,ft
vendor: 10,217 bytes, line 3834
3834=!!U.bumpMap,rt=!!U.normalMap,He=!!U.displacementMap,vt=!!U.emissiveMap,Ke=!!U.metalnessMap,ot=!!U.roughnessMap,$t=U.anisotropy>0,B=U.clearcoat>0,C=U.dispersion>0,J=U.iridescence>0,de=U.sheen>0,fe=U.transmission>0,q=$t&&!!U.anisotropyMap,Ae=B&&!!U.clearcoatMap,Le=B&&!!U.clearcoatNormalMap,ze=B&&!!U.clearcoatRoughnessMap,Ge=J&&!!U.iridescenceMap,_e=J&&!!U.iridescenceThicknessMap,Re=de&&!!U.sheenColorMap,Be=de&&!!U.sheenRoughnessMap,We=!!U.specularMap,De=!!U.specularColorMap,tt=!!U.specularIntensityMap,W=fe&&!!U.transmissionMap,Pe=fe&&!!U.thicknessMap,we=!!U.gradientMap,Ve=!!U.alphaMap,Ce=U.alphaTest>0,Se=!!U.alphaHash,Xe=!!U.extensions;let lt=Ra;U.toneMapped&&(Te===null||Te.isXRRenderTarget===!0)&&(lt=n.toneMapping);const It={shaderID:he,shaderType:U.type,shaderName:U.name,vertexShader:be,fragmentShader:te,defines:U.defines,customVertexShaderID:xe,customFragmentShaderID:Ee,isRawShaderMaterial:U.isRawShaderMaterial===!0,glslVersion:U.glslVersion,precision:y,batching:Qe,batchingColor:Qe&&ue._colorsTexture!==null,instancing:ut,instancingColor:ut&&ue.instanceColor!==null,instancingMorph:ut&&ue.morphTexture!==null,supportsVertexTextures:x,outputColorSpace:Te===null?n.outputColorSpace:Te.isXRRenderTarget===!0?Te.texture.colorSpace:Ro,alphaToCoverage:!!U.alphaToCoverage,map:Et,matcap:Ut,envMap:gt,envMapMode:gt&&Z.mapping,envMapCubeUVHeight:Y,aoMap:k,lightMap:Xt,bumpMap:ft,normalMap:rt,displacementMap:x&&He,emissiveMap:vt,normalMapObjectSpace:rt&&U.normalMapType===vb,normalMapTangentSpace:rt&&U.normalMapType===gb,metalnessMap:Ke,roughnessMap:ot,anisotropy:$t,anisotropyMap:q,clearcoat:B,clearcoatMap:Ae,clearcoatNormalMap:Le,clearcoatRoughnessMap:ze,dispersion:C,iridescence:J,iridescenceMap:Ge,iridescenceThicknessMap:_e,sheen:de,sheenColorMap:Re,sheenRoughnessMap:Be,specularMap:We,specularColorMap:De,specularIntensityMap:tt,transmission:fe,transmissionMap:W,thicknessMap:Pe,gradientMap:we,opaque:U.transparent===!1&&U.blending===Mo&&U.alphaToCoverage===!1,alphaMap:Ve,alphaTest:Ce,alphaHash:Se,combine:U.combine,mapUv:Et&&w(U.map.channel),aoMapUv:k&&w(U.aoMap.channel),lightMapUv:Xt&&w(U.lightMap.channel),bumpMapUv:ft&&w(U.bumpMap.channel),normalMapUv:rt&&w(U.normalMap.channel),displacementMapUv:He&&w(U.displacementMap.channel),emissiveMapUv:vt&&w(U.emissiveMap.channel),metalnessMapUv:Ke&&w(U.metalnessMap.channel),roughnessMapUv:ot&&w(U.roughnessMap.channel),anisotropyMapUv:q&&w(U.anisotropyMap.channel),clearcoatMapUv:Ae&&w(U.clearcoatMap.channel),clearcoatNormalMapUv:Le&&w(U.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ze&&w(U.clearcoatRoughnessMap.channel),iridescenceMapUv:Ge&&w(U.iridescenceMap.channel),iridescenceThicknessMapUv:_e&&w(U.iridescenceThicknessMap.channel),sheenColorMapUv:Re&&w(U.sheenColorMap.channel),sheenRoughnessMapUv:Be&&w(U.sheenRoughnessMap.channel),specularMapUv:We&&w(U.specularMap.channel),specularColorMapUv:De&&w(U.specularColorMap.channel),specularIntensityMapUv:tt&&w(U.specularIntensityMap.channel),transmissionMapUv:W&&w(U.transmissionMap.channel),thicknessMapUv:Pe&&w(U.thicknessMap.channel),alphaMapUv:Ve&&w(U.alphaMap.channel),vertexTangents:!!me.attributes.tangent&&(rt||$t),vertexColors:U.vertexColors,vertexAlphas:U.vertexColors===!0&&!!me.attributes.color&&me.attributes.color.itemSize===4,pointsUvs:ue.isPoints===!0&&!!me.attributes.uv&&(Et||Ve),fog:!!ge,useFog:U.fog===!0,fogExp2:!!ge&&ge.isFogExp2,flatShading:U.flatShading===!0&&U.wireframe===!1,sizeAttenuation:U.sizeAttenuation===!0,logarithmicDepthBuffer:v,reverseDepthBuffer:Ue,skinning:ue.isSkinnedMesh===!0,morphTargets:me.morphAttributes.position!==void 0,morphNormals:me.morphAttributes.normal!==void 0,morphColors:me.morphAttributes.color!==void 0,morphTargetsCount:ee,morphTextureStride:Me,numDirLights:L.directional.length,numPointLights:L.point.length,numSpotLights:L.spot.length,numSpotLightMaps:L.spotLightMap.length,numRectAreaLights:L.rectArea.length,numHemiLights:L.hemi.length,numDirLightShadows:L.directionalShadowMap.length,numPointLightShadows:L.pointShadowMap.length,numSpotLightShadows:L.spotShadowMap.length,numSpotLightShadowsWithMaps:L.numSpotLightShadowsWithMaps,numLightProbes:L.numLightProbes,numClippingPlanes:u.numPlanes,numClipIntersection:u.numIntersection,dithering:U.dithering,shadowMapEnabled:n.shadowMap.enabled&&z.length>0,shadowMapType:n.shadowMap.type,toneMapping:lt,decodeVideoTexture:Et&&U.map.isVideoTexture===!0&&Lt.getTransfer(U.map.colorSpace)===kt,decodeVideoTextureEmissive:vt&&U.emissiveMap.isVideoTexture===!0&&Lt.getTransfer(U.emissiveMap.colorSpace)===kt,premultipliedAlpha:U.premultipliedAlpha,doubleSided:U.side===Ui,flipSided:U.side===ei,useDepthPacking:U.depthPacking>=0,depthPacking:U.depthPacking||0,index0AttributeName:U.index0AttributeName,extensionClipCullDistance:Xe&&U.extensions.clipCullDistance===!0&&a.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Xe&&U.extensions.multiDraw===!0||Qe)&&a.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:a.has("KHR_parallel_shader_compile"),customProgramCacheKey:U.customProgramCacheKey()};return It.vertexUv1s=h.has(1),It.vertexUv2s=h.has(2),It.vertexUv3s=h.has(3),h.clear(),It}function S(U){const L=[];if(U.shaderID?L.push(U.shaderID):(L.push(U.customVertexShaderID),L.push(U.customFragmentShaderID)),U.defines!==void 0)for(const z in U.defines)L.push(z),L.push(U.defines[z]);return U.isRawShaderMaterial===!1&&(N(L,U),T(L,U),L.push(n.outputColorSpace)),L.push(U.customProgramCacheKey),L.join()}function N(U,L){U.push(L.precision),U.push(L.outputColorSpace),U.push(L.envMapMode),U.push(L.envMapCubeUVHeight),U.push(L.mapUv),U.push(L.alphaMapUv),U.push(L.lightMapUv),U.push(L.aoMapUv),U.push(L.bumpMapUv),U.push(L.normalMapUv),U.push(L.displacementMapUv),U.push(L.emissiveMapUv),U.push(L.metalnessMapUv),U.push(L.roughnessMapUv),U.push(L.anisotropyMapUv),U.push(L.clearcoatMapUv),U.push(L.clearcoatNormalMapUv),U.push(L.clearcoatRoughnessMapUv),U.push(L.iridescenceMapUv),U.push(L.iridescenceThicknessMapUv),U.push(L.sheenColorMapUv),U.push(L.sheenRoughnessMapUv),U.push(L.specularMapUv),U.push(L.specularColorMapUv),U.push(L.specularIntensityMapUv),U.push(L.transmissionMapUv),U.push(L.thicknessMapUv),U.push(L.combine),U.push(L.fogExp2),U.push(L.sizeAttenuation),U.push(L.morphTargetsCount),U.push(L.morphAttributeCount),U.push(L.numDirLights),U.push(L.numPointLights),U.push(L.numSpotLights),U.push(L.numSpotLightMaps),U.push(L.numHemiLights),U.push(L.numRectAreaLights),U.push(L.numDirLightShadows),U.push(L.numPointLightShadows),U.push(L.numSpotLightShadows),U.push(L.numSpotLightShadowsWithMaps),U.push(L.numLightProbes),U.push(L.shadowMapType),U.push(L.toneMapping),U.push(L.numClippingPlanes),U.push(L.numClipIntersection),U.push(L.depthPacking)}function T(U,L){f.disableAll(),L.supportsVertexTextures&&f.enable(0),L.instancing&&f.enable(1),L.instancingColor&&f.enable(2),L.instancingMorph&&f.enable(3),L.matcap&&f.enable(4),L.envMap&&f.enable(5),L.normalMapObjectSpace&&f.enable(6),L.normalMapTangentSpace&&f.enable(7),L.clearcoat&&f.enable(8),L.iridescence&&f.enable(9),L.alphaTest&&f.enable(10),L.vertexColors&&f.enable(11),L.vertexAlphas&&f.enable(12),L.vertexUv1s&&f.enable(13),L.vertexUv2s&&f.enable(14),L.vertexUv3s&&f.enable(15),L.vertexTangents&&f.enable(16),L.anisotropy&&f.enable(17),L.alphaHash&&f.enable(18),L.batching&&f.enable(19),L.dispersion&&f.enable(20),L.batchingColor&&f.enable(21),L.gradientMap&&f.enable(22),U.push(f.mask),f.disableAll(),L.fog&&f.enable(0),L.useFog&&f.enable(1),L.flatShading&&f.enable(2),L.logarithmicDepthBuffer&&f.enable(3),L.reverseDepthBuffer&&f.enable(4),L.skinning&&f.enable(5),L.morphTargets&&f.enable(6),L.morphNormals&&f.enable(7),L.morphColors&&f.enable(8),L.premultipliedAlpha&&f.enable(9),L.shadowMapEnabled&&f.enable(10),L.doubleSided&&f.enable(11),L.flipSided&&f.enable(12),L.useDepthPacking&&f.enable(13),L.dithering&&f.enable(14),L.transmission&&f.enable(15),L.sheen&&f.enable(16),L.opaque&&f.enable(17),L.pointsUvs&&f.enable(18),L.decodeVideoTexture&&f.enable(19),L.decodeVideoTextureEmissive&&f.enable(20),L.alphaToCoverage&&f.enable(21),U.push(f.mask)}function R(U){const L=b[U.type];let z;if(L){const ce=Wi[L];z=Zb.clone(ce.uniforms)}else z=U.uniforms;return z}function P(U,L){let z;for(let ce=0,ue=g.length;ce<ue;ce++){const ge=g[ce];if(ge.cacheKey===L){z=ge,++z.usedTimes;break}}return z===void 0&&(z=new _7(n,L,U,l),g.push(z)),z}function I(U){if(--U.usedTimes===0){const L=g.indexOf(U);g[L]=g[g.length-1],g.pop(),U.destroy()}}function F(U){d.remove(U)}function V(){d.dispose()}return{getParameters:M,getProgramCacheKey:S,getUniforms:R,acquireProgram:P,releaseProgram:I,releaseShaderCache:F,programs:g,dispose:V}}function E7(){let n=new WeakMap;function e(u){return n.has(u)}function t(u){let f=n.get(u);return f===void 0&&(f={},n.set(u,f)),f}function a(u){n.delete(u)}function o(u,f,d){n.get(u)[f]=d}function l(){n=new WeakMap}return{has:e,get:t,remove:a,update:o,dispose:l}}function w7(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.material.id!==e.material.id?n.material.id-e.material.id:n.z!==e.z?n.z-e.z:n.id-e.id}function U3(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.z!==e.z?e.z-n.z:n.id-e.id}function P3(){const n=[];let e=0;const t=[],a=[],o=[];function l(){e=0,t.length=0,a.length=0,o.length=0}function u(v,x,y,b,w,M){let S=n[e];return S===void 0?(S={id:v.id,object:v,geometry:x,material:y,groupOrder:b,renderOrder:v.renderOrder,z:w,group:M},n[e]=S):(S.id=v.id,S.object=v,S.geometry=x,S.material=y,S.groupOrder=b,S.renderOrder=v.renderOrder,S.z=w,S.group=M),e++,S}function f(v,x,y,b,w,M){const S=u(v,x,y,b,w,M);y.transmission>0?a.push(S):y.transparent===!0?o.push(S):t.push(S)}function d(v,x,y,b,w,M){const S=u(v,x,y,b,w,M);y.transmission>0?a.unshift(S):y.transparent===!0?o.unshift(S):t.unshift(S)}function h(v,x){t.length>1&&t.sort(v||w7),a.length>1&&a.sort(x||U3),o.length>1&&o.sort(x||U3)}function g(){for(let v=e,x=n.length;v<x;v++){const y=n[v];if(y.id===null)break;y.id=null,y.object=null,y.geometry=null,y.material=null,y.group=null}}return{opaque:t,transmissive:a,transparent:o,init:l,push:f,unshift:d,finish:g,
vendor: 1,287 bytes, line 3834
3834sort:h}}function T7(){let n=new WeakMap;function e(a,o){const l=n.get(a);let u;return l===void 0?(u=new P3,n.set(a,[u])):o>=l.length?(u=new P3,l.push(u)):u=l[o],u}function t(){n=new WeakMap}return{get:e,dispose:t}}function C7(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new le,color:new Fe};break;case"SpotLight":t={position:new le,direction:new le,color:new Fe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new le,color:new Fe,distance:0,decay:0};break;case"HemisphereLight":t={direction:new le,skyColor:new Fe,groundColor:new Fe};break;case"RectAreaLight":t={color:new Fe,position:new le,halfWidth:new le,halfHeight:new le};break}return n[e.id]=t,t}}}function A7(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let R7=0;
vendor: 5,970 bytes, lines 3834-3840
3834function N7(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function L7(n){const e=new C7,t=A7(),a={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h<9;h++)a.probe.push(new le);const o=new le,l=new gn,u=new gn;function f(h){let g=0,v=0,x=0;for(let U=0;U<9;U++)a.probe[U].set(0,0,0);let y=0,b=0,w=0,M=0,S=0,N=0,T=0,R=0,P=0,I=0,F=0;h.sort(N7);for(let U=0,L=h.length;U<L;U++){const z=h[U],ce=z.color,ue=z.intensity,ge=z.distance,me=z.shadow&&z.shadow.map?z.shadow.map.texture:null;if(z.isAmbientLight)g+=ce.r*ue,v+=ce.g*ue,x+=ce.b*ue;else if(z.isLightProbe){for(let j=0;j<9;j++)a.probe[j].addScaledVector(z.sh.coefficients[j],ue);F++}else if(z.isDirectionalLight){const j=e.get(z);if(j.color.copy(z.color).multiplyScalar(z.intensity),z.castShadow){const Z=z.shadow,Y=t.get(z);Y.shadowIntensity=Z.intensity,Y.shadowBias=Z.bias,Y.shadowNormalBias=Z.normalBias,Y.shadowRadius=Z.radius,Y.shadowMapSize=Z.mapSize,a.directionalShadow[y]=Y,a.directionalShadowMap[y]=me,a.directionalShadowMatrix[y]=z.shadow.matrix,N++}a.directional[y]=j,y++}else if(z.isSpotLight){const j=e.get(z);j.position.setFromMatrixPosition(z.matrixWorld),j.color.copy(ce).multiplyScalar(ue),j.distance=ge,j.coneCos=Math.cos(z.angle),j.penumbraCos=Math.cos(z.angle*(1-z.penumbra)),j.decay=z.decay,a.spot[w]=j;const Z=z.shadow;if(z.map&&(a.spotLightMap[P]=z.map,P++,Z.updateMatrices(z),z.castShadow&&I++),a.spotLightMatrix[w]=Z.matrix,z.castShadow){const Y=t.get(z);Y.shadowIntensity=Z.intensity,Y.shadowBias=Z.bias,Y.shadowNormalBias=Z.normalBias,Y.shadowRadius=Z.radius,Y.shadowMapSize=Z.mapSize,a.spotShadow[w]=Y,a.spotShadowMap[w]=me,R++}w++}else if(z.isRectAreaLight){const j=e.get(z);j.color.copy(ce).multiplyScalar(ue),j.halfWidth.set(z.width*.5,0,0),j.halfHeight.set(0,z.height*.5,0),a.rectArea[M]=j,M++}else if(z.isPointLight){const j=e.get(z);if(j.color.copy(z.color).multiplyScalar(z.intensity),j.distance=z.distance,j.decay=z.decay,z.castShadow){const Z=z.shadow,Y=t.get(z);Y.shadowIntensity=Z.intensity,Y.shadowBias=Z.bias,Y.shadowNormalBias=Z.normalBias,Y.shadowRadius=Z.radius,Y.shadowMapSize=Z.mapSize,Y.shadowCameraNear=Z.camera.near,Y.shadowCameraFar=Z.camera.far,a.pointShadow[b]=Y,a.pointShadowMap[b]=me,a.pointShadowMatrix[b]=z.shadow.matrix,T++}a.point[b]=j,b++}else if(z.isHemisphereLight){const j=e.get(z);j.skyColor.copy(z.color).multiplyScalar(ue),j.groundColor.copy(z.groundColor).multiplyScalar(ue),a.hemi[S]=j,S++}}M>0&&(n.has("OES_texture_float_linear")===!0?(a.rectAreaLTC1=Ie.LTC_FLOAT_1,a.rectAreaLTC2=Ie.LTC_FLOAT_2):(a.rectAreaLTC1=Ie.LTC_HALF_1,a.rectAreaLTC2=Ie.LTC_HALF_2)),a.ambient[0]=g,a.ambient[1]=v,a.ambient[2]=x;const V=a.hash;(V.directionalLength!==y||V.pointLength!==b||V.spotLength!==w||V.rectAreaLength!==M||V.hemiLength!==S||V.numDirectionalShadows!==N||V.numPointShadows!==T||V.numSpotShadows!==R||V.numSpotMaps!==P||V.numLightProbes!==F)&&(a.directional.length=y,a.spot.length=w,a.rectArea.length=M,a.point.length=b,a.hemi.length=S,a.directionalShadow.length=N,a.directionalShadowMap.length=N,a.pointShadow.length=T,a.pointShadowMap.length=T,a.spotShadow.length=R,a.spotShadowMap.length=R,a.directionalShadowMatrix.length=N,a.pointShadowMatrix.length=T,a.spotLightMatrix.length=R+P-I,a.spotLightMap.length=P,a.numSpotLightShadowsWithMaps=I,a.numLightProbes=F,V.directionalLength=y,V.pointLength=b,V.spotLength=w,V.rectAreaLength=M,V.hemiLength=S,V.numDirectionalShadows=N,V.numPointShadows=T,V.numSpotShadows=R,V.numSpotMaps=P,V.numLightProbes=F,a.version=R7++)}function d(h,g){let v=0,x=0,y=0,b=0,w=0;const M=g.matrixWorldInverse;for(let S=0,N=h.length;S<N;S++){const T=h[S];if(T.isDirectionalLight){const R=a.directional[v];R.direction.setFromMatrixPosition(T.matrixWorld),o.setFromMatrixPosition(T.target.matrixWorld),R.direction.sub(o),R.direction.transformDirection(M),v++}else if(T.isSpotLight){const R=a.spot[y];R.position.setFromMatrixPosition(T.matrixWorld),R.position.applyMatrix4(M),R.direction.setFromMatrixPosition(T.matrixWorld),o.setFromMatrixPosition(T.target.matrixWorld),R.direction.sub(o),R.direction.transformDirection(M),y++}else if(T.isRectAreaLight){const R=a.rectArea[b];R.position.setFromMatrixPosition(T.matrixWorld),R.position.applyMatrix4(M),u.identity(),l.copy(T.matrixWorld),l.premultiply(M),u.extractRotation(l),R.halfWidth.set(T.width*.5,0,0),R.halfHeight.set(0,T.height*.5,0),R.halfWidth.applyMatrix4(u),R.halfHeight.applyMatrix4(u),b++}else if(T.isPointLight){const R=a.point[x];R.position.setFromMatrixPosition(T.matrixWorld),R.position.applyMatrix4(M),x++}else if(T.isHemisphereLight){const R=a.hemi[w];R.direction.setFromMatrixPosition(T.matrixWorld),R.direction.transformDirection(M),w++}}}return{setup:f,setupView:d,state:a}}function O3(n){const e=new L7(n),t=[],a=[];function o(g){h.camera=g,t.length=0,a.length=0}function l(g){t.push(g)}function u(g){a.push(g)}function f(){e.setup(t)}function d(g){e.setupView(t,g)}const h={lightsArray:t,shadowsArray:a,camera:null,lights:e,transmissionRenderTarget:{}};return{init:o,state:h,setupLights:f,setupLightsView:d,pushLight:l,pushShadow:u}}function D7(n){let e=new WeakMap;function t(o,l=0){const u=e.get(o);let f;return u===void 0?(f=new O3(n),e.set(o,[f])):l>=u.length?(f=new O3(n),u.push(f)):f=u[l],f}function a(){e=new WeakMap}return{get:t,dispose:a}}const U7=`void main() {
3835	gl_Position = vec4( position, 1.0 );
3836}`,P7=`uniform sampler2D shadow_pass;
3837uniform vec2 resolution;
3838uniform float radius;
3839#include <packing>
3840void main() {
3841	const float samples = float( VSM_SAMPLES );
3842	float mean = 0.0;
3843	float squared_mean = 0.0;
3844	float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
3845	float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
3846	for ( float i = 0.0; i < samples; i ++ ) {
3847		float uvOffset = uvStart + i * uvStride;
3848		#ifdef HORIZONTAL_PASS
3849			vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
3850			mean += distribution.x;
3851			squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
3852		#else
3853			float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
3854			mean += depth;
3855			squared_mean += depth * depth;
3856		#endif
3857	}
3858	mean = mean / samples;
3859	squared_mean = squared_mean / samples;
3860	float std_dev = sqrt( squared_mean - mean * mean );
3861	gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
3862}`;function O7(n,e,t){let a=new V_;const o=new St,l=new St,u=new cn,f=new sE({depthPacking:mb}),d=new aE,h={},g=t.maxTextureSize,v={[Na]:ei,[ei]:Na,[Ui]:Ui},x=new Bi({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new St},radius:{value:4}},vertexShader:U7,fragmentShader:P7}),y=x.clone();y.defines.HORIZONTAL_PASS=1;const b=new Ua;b.setAttribute("position",new qi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const w=new pi(b,x),M=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=y_;let S=this.type;this.render=function(I,F,V){if(M.enabled===!1||M.autoUpdate===!1&&M.needsUpdate===!1||I.length===0)return;const U=n.getRenderTarget(),L=n.getActiveCubeFace(),z=n.getActiveMipmapLevel(),ce=n.state;ce.setBlending(Aa),ce.buffers.color.setClear(1,1,1,1),ce.buffers.depth.setTest(!0),ce.setScissorTest(!1);const ue=S!==Cs&&this.type===Cs,ge=S===Cs&&this.type!==Cs;for(let me=0,j=I.length;me<j;me++){const Z=I[me],Y=Z.shadow;if(Y===void 0){console.warn("THREE.WebGLShadowMap:",Z,"has no shadow.");continue}if(Y.autoUpdate===!1&&Y.needsUpdate===!1)continue;o.copy(Y.mapSize);const he=Y.getFrameExtents();if(o.multiply(he),l.copy(Y.mapSize),(o.x>g||o.y>g)&&(o.x>g&&(l.x=Math.floor(g/he.x),o.x=l.x*he.x,Y.mapSize.x=l.x),o.y>g&&(l.y=Math.floor(g/he.y),o.y=l.y*he.y,Y.mapSize.y=l.y)),Y.map===null||ue===!0||ge===!0){const ee=this.type!==Cs?{minFilter:Ii,magFilter:Ii}:{};Y.map!==null&&Y.map.dispose(),Y.map=new Mr(o.x,o.y,ee),Y.map.texture.name=Z.name+".shadowMap",Y.camera.updateProjectionMatrix()}n.setRenderTarget(Y.map),n.clear();const O=Y.getViewportCount();for(let ee=0;ee<O;ee++){const Me=Y.getViewport(ee);u.set(l.x*Me.x,l.y*Me.y,l.x*Me.z,l.y*Me.w),ce.viewport(u),Y.updateMatrices(Z,ee),a=Y.getFrustum(),R(F,V,Y.camera,Z,this.type)}Y.isPointLightShadow!==!0&&this.type===Cs&&N(Y,V),Y.needsUpdate=!1}S=this.type,M.needsUpdate=!1,n.setRenderTarget(U,L,z)};function N(I,F){const V=e.update(w);
vendor: 4,341 bytes, line 3862
3862x.defines.VSM_SAMPLES!==I.blurSamples&&(x.defines.VSM_SAMPLES=I.blurSamples,y.defines.VSM_SAMPLES=I.blurSamples,x.needsUpdate=!0,y.needsUpdate=!0),I.mapPass===null&&(I.mapPass=new Mr(o.x,o.y)),x.uniforms.shadow_pass.value=I.map.texture,x.uniforms.resolution.value=I.mapSize,x.uniforms.radius.value=I.radius,n.setRenderTarget(I.mapPass),n.clear(),n.renderBufferDirect(F,null,V,x,w,null),y.uniforms.shadow_pass.value=I.mapPass.texture,y.uniforms.resolution.value=I.mapSize,y.uniforms.radius.value=I.radius,n.setRenderTarget(I.map),n.clear(),n.renderBufferDirect(F,null,V,y,w,null)}function T(I,F,V,U){let L=null;const z=V.isPointLight===!0?I.customDistanceMaterial:I.customDepthMaterial;if(z!==void 0)L=z;else if(L=V.isPointLight===!0?d:f,n.localClippingEnabled&&F.clipShadows===!0&&Array.isArray(F.clippingPlanes)&&F.clippingPlanes.length!==0||F.displacementMap&&F.displacementScale!==0||F.alphaMap&&F.alphaTest>0||F.map&&F.alphaTest>0||F.alphaToCoverage===!0){const ce=L.uuid,ue=F.uuid;let ge=h[ce];ge===void 0&&(ge={},h[ce]=ge);let me=ge[ue];me===void 0&&(me=L.clone(),ge[ue]=me,F.addEventListener("dispose",P)),L=me}if(L.visible=F.visible,L.wireframe=F.wireframe,U===Cs?L.side=F.shadowSide!==null?F.shadowSide:F.side:L.side=F.shadowSide!==null?F.shadowSide:v[F.side],L.alphaMap=F.alphaMap,L.alphaTest=F.alphaToCoverage===!0?.5:F.alphaTest,L.map=F.map,L.clipShadows=F.clipShadows,L.clippingPlanes=F.clippingPlanes,L.clipIntersection=F.clipIntersection,L.displacementMap=F.displacementMap,L.displacementScale=F.displacementScale,L.displacementBias=F.displacementBias,L.wireframeLinewidth=F.wireframeLinewidth,L.linewidth=F.linewidth,V.isPointLight===!0&&L.isMeshDistanceMaterial===!0){const ce=n.properties.get(L);ce.light=V}return L}function R(I,F,V,U,L){if(I.visible===!1)return;if(I.layers.test(F.layers)&&(I.isMesh||I.isLine||I.isPoints)&&(I.castShadow||I.receiveShadow&&L===Cs)&&(!I.frustumCulled||a.intersectsObject(I))){I.modelViewMatrix.multiplyMatrices(V.matrixWorldInverse,I.matrixWorld);const ue=e.update(I),ge=I.material;if(Array.isArray(ge)){const me=ue.groups;for(let j=0,Z=me.length;j<Z;j++){const Y=me[j],he=ge[Y.materialIndex];if(he&&he.visible){const O=T(I,he,U,L);I.onBeforeShadow(n,I,F,V,ue,O,Y),n.renderBufferDirect(V,null,ue,O,I,Y),I.onAfterShadow(n,I,F,V,ue,O,Y)}}}else if(ge.visible){const me=T(I,ge,U,L);I.onBeforeShadow(n,I,F,V,ue,me,null),n.renderBufferDirect(V,null,ue,me,I,null),I.onAfterShadow(n,I,F,V,ue,me,null)}}const ce=I.children;for(let ue=0,ge=ce.length;ue<ge;ue++)R(ce[ue],F,V,U,L)}function P(I){I.target.removeEventListener("dispose",P);for(const V in h){const U=h[V],L=I.target.uuid;L in U&&(U[L].dispose(),delete U[L])}}}const I7={[Z0]:K0,[Q0]:ep,[$0]:tp,[To]:J0,[K0]:Z0,[ep]:Q0,[tp]:$0,[J0]:To};function B7(n,e){function t(){let W=!1;const Pe=new cn;let we=null;const Ve=new cn(0,0,0,0);return{setMask:function(Ce){we!==Ce&&!W&&(n.colorMask(Ce,Ce,Ce,Ce),we=Ce)},setLocked:function(Ce){W=Ce},setClear:function(Ce,Se,Xe,lt,It){It===!0&&(Ce*=lt,Se*=lt,Xe*=lt),Pe.set(Ce,Se,Xe,lt),Ve.equals(Pe)===!1&&(n.clearColor(Ce,Se,Xe,lt),Ve.copy(Pe))},reset:function(){W=!1,we=null,Ve.set(-1,0,0,0)}}}function a(){let W=!1,Pe=!1,we=null,Ve=null,Ce=null;return{setReversed:function(Se){if(Pe!==Se){const Xe=e.get("EXT_clip_control");Se?Xe.clipControlEXT(Xe.LOWER_LEFT_EXT,Xe.ZERO_TO_ONE_EXT):Xe.clipControlEXT(Xe.LOWER_LEFT_EXT,Xe.NEGATIVE_ONE_TO_ONE_EXT),Pe=Se;const lt=Ce;Ce=null,this.setClear(lt)}},getReversed:function(){return Pe},setTest:function(Se){Se?Te(n.DEPTH_TEST):Ue(n.DEPTH_TEST)},setMask:function(Se){we!==Se&&!W&&(n.depthMask(Se),we=Se)},setFunc:function(Se){if(Pe&&(Se=I7[Se]),Ve!==Se){switch(Se){case Z0:n.depthFunc(n.NEVER);break;case K0:n.depthFunc(n.ALWAYS);break;case Q0:n.depthFunc(n.LESS);break;case To:n.depthFunc(n.LEQUAL);break;case $0:n.depthFunc(n.EQUAL);break;case J0:n.depthFunc(n.GEQUAL);break;case ep:n.depthFunc(n.GREATER);break;case tp:n.depthFunc(n.NOTEQUAL);break;default:n.depthFunc(n.LEQUAL)}Ve=Se}},setLocked:function(Se){W=Se},setClear:function(Se){Ce!==Se&&(Pe&&(Se=1-Se),n.clearDepth(Se),Ce=Se)},reset:function(){W=!1,we=null,Ve=null,Ce=null,Pe=!1}}}function o(){let W=!1,Pe=null,we=null,Ve=null,Ce=null,Se=null,Xe=null,lt=null,It=null;return{setTest:function(Rt){W||(Rt?Te(n.STENCIL_TEST):Ue(n.STENCIL_TEST))},setMask:function(Rt){Pe!==Rt&&!W&&(n.stencilMask(Rt),Pe=Rt)}
vendor: 4,189 bytes, line 3862
3862,setFunc:function(Rt,ni,bn){(we!==Rt||Ve!==ni||Ce!==bn)&&(n.stencilFunc(Rt,ni,bn),we=Rt,Ve=ni,Ce=bn)},setOp:function(Rt,ni,bn){(Se!==Rt||Xe!==ni||lt!==bn)&&(n.stencilOp(Rt,ni,bn),Se=Rt,Xe=ni,lt=bn)},setLocked:function(Rt){W=Rt},setClear:function(Rt){It!==Rt&&(n.clearStencil(Rt),It=Rt)},reset:function(){W=!1,Pe=null,we=null,Ve=null,Ce=null,Se=null,Xe=null,lt=null,It=null}}}const l=new t,u=new a,f=new o,d=new WeakMap,h=new WeakMap;let g={},v={},x=new WeakMap,y=[],b=null,w=!1,M=null,S=null,N=null,T=null,R=null,P=null,I=null,F=new Fe(0,0,0),V=0,U=!1,L=null,z=null,ce=null,ue=null,ge=null;const me=n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let j=!1,Z=0;const Y=n.getParameter(n.VERSION);Y.indexOf("WebGL")!==-1?(Z=parseFloat(/^WebGL (\d)/.exec(Y)[1]),j=Z>=1):Y.indexOf("OpenGL ES")!==-1&&(Z=parseFloat(/^OpenGL ES (\d)/.exec(Y)[1]),j=Z>=2);let he=null,O={};const ee=n.getParameter(n.SCISSOR_BOX),Me=n.getParameter(n.VIEWPORT),be=new cn().fromArray(ee),te=new cn().fromArray(Me);function xe(W,Pe,we,Ve){const Ce=new Uint8Array(4),Se=n.createTexture();n.bindTexture(W,Se),n.texParameteri(W,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(W,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Xe=0;Xe<we;Xe++)W===n.TEXTURE_3D||W===n.TEXTURE_2D_ARRAY?n.texImage3D(Pe,0,n.RGBA,1,1,Ve,0,n.RGBA,n.UNSIGNED_BYTE,Ce):n.texImage2D(Pe+Xe,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,Ce);return Se}const Ee={};Ee[n.TEXTURE_2D]=xe(n.TEXTURE_2D,n.TEXTURE_2D,1),Ee[n.TEXTURE_CUBE_MAP]=xe(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),Ee[n.TEXTURE_2D_ARRAY]=xe(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),Ee[n.TEXTURE_3D]=xe(n.TEXTURE_3D,n.TEXTURE_3D,1,1),l.setClear(0,0,0,1),u.setClear(1),f.setClear(0),Te(n.DEPTH_TEST),u.setFunc(To),ft(!1),rt(Hv),Te(n.CULL_FACE),k(Aa);function Te(W){g[W]!==!0&&(n.enable(W),g[W]=!0)}function Ue(W){g[W]!==!1&&(n.disable(W),g[W]=!1)}function ut(W,Pe){return v[W]!==Pe?(n.bindFramebuffer(W,Pe),v[W]=Pe,W===n.DRAW_FRAMEBUFFER&&(v[n.FRAMEBUFFER]=Pe),W===n.FRAMEBUFFER&&(v[n.DRAW_FRAMEBUFFER]=Pe),!0):!1}function Qe(W,Pe){let we=y,Ve=!1;if(W){we=x.get(Pe),we===void 0&&(we=[],x.set(Pe,we));const Ce=W.textures;if(we.length!==Ce.length||we[0]!==n.COLOR_ATTACHMENT0){for(let Se=0,Xe=Ce.length;Se<Xe;Se++)we[Se]=n.COLOR_ATTACHMENT0+Se;we.length=Ce.length,Ve=!0}}else we[0]!==n.BACK&&(we[0]=n.BACK,Ve=!0);Ve&&n.drawBuffers(we)}function Et(W){return b!==W?(n.useProgram(W),b=W,!0):!1}const Ut={[dr]:n.FUNC_ADD,[j6]:n.FUNC_SUBTRACT,[H6]:n.FUNC_REVERSE_SUBTRACT};Ut[k6]=n.MIN,Ut[G6]=n.MAX;const gt={[W6]:n.ZERO,[X6]:n.ONE,[q6]:n.SRC_COLOR,[q0]:n.SRC_ALPHA,[J6]:n.SRC_ALPHA_SATURATE,[Q6]:n.DST_COLOR,[Z6]:n.DST_ALPHA,[Y6]:n.ONE_MINUS_SRC_COLOR,[Y0]:n.ONE_MINUS_SRC_ALPHA,[$6]:n.ONE_MINUS_DST_COLOR,[K6]:n.ONE_MINUS_DST_ALPHA,[eb]:n.CONSTANT_COLOR,[tb]:n.ONE_MINUS_CONSTANT_COLOR,[nb]:n.CONSTANT_ALPHA,[ib]:n.ONE_MINUS_CONSTANT_ALPHA};function k(W,Pe,we,Ve,Ce,Se,Xe,lt,It,Rt){if(W===Aa){w===!0&&(Ue(n.BLEND),w=!1);return}if(w===!1&&(Te(n.BLEND),w=!0),W!==V6){if(W!==M||Rt!==U){if((S!==dr||R!==dr)&&(n.blendEquation(n.FUNC_ADD),S=dr,R=dr),Rt)switch(W){case Mo:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case X0:n.blendFunc(n.ONE,n.ONE);break;case kv:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case Gv:n.blendFuncSeparate(n.DST_COLOR,n.ONE_MINUS_SRC_ALPHA,n.ZERO,n.ONE);break;default:console.error("THREE.WebGLState: Invalid blending: ",W);break}else switch(W){case Mo:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case X0:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE,n.ONE,n.ONE);break;case kv:console.error("THREE.WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true");break;case Gv:console.error("THREE.WebGLState: MultiplyBlending requires material.premultipliedAlpha = true");break;default:console.error("THREE.WebGLState: Invalid blending: ",W);break}N=null,T=null,P=null,I=null,F.set(0,0,0),V=0,M=W,U=Rt}return}Ce=Ce||Pe,Se=Se||we,Xe=Xe||Ve,(Pe!==S||Ce!==R)&&(n.blendEquationSeparate(Ut[Pe],Ut[Ce]),S=Pe,R=Ce),(we!==N||Ve!==T||Se!==P||Xe!==I)&&(n.blendFuncSeparate(gt[we],gt[Ve],gt[Se],gt[Xe]),N=we,T=Ve,P=Se,I=Xe),(lt.equals(F)===!1||It!==V)&&(n.blendColor
vendor: 3,404 bytes, line 3862
3862(lt.r,lt.g,lt.b,It),F.copy(lt),V=It),M=W,U=!1}function Xt(W,Pe){W.side===Ui?Ue(n.CULL_FACE):Te(n.CULL_FACE);let we=W.side===ei;Pe&&(we=!we),ft(we),W.blending===Mo&&W.transparent===!1?k(Aa):k(W.blending,W.blendEquation,W.blendSrc,W.blendDst,W.blendEquationAlpha,W.blendSrcAlpha,W.blendDstAlpha,W.blendColor,W.blendAlpha,W.premultipliedAlpha),u.setFunc(W.depthFunc),u.setTest(W.depthTest),u.setMask(W.depthWrite),l.setMask(W.colorWrite);const Ve=W.stencilWrite;f.setTest(Ve),Ve&&(f.setMask(W.stencilWriteMask),f.setFunc(W.stencilFunc,W.stencilRef,W.stencilFuncMask),f.setOp(W.stencilFail,W.stencilZFail,W.stencilZPass)),vt(W.polygonOffset,W.polygonOffsetFactor,W.polygonOffsetUnits),W.alphaToCoverage===!0?Te(n.SAMPLE_ALPHA_TO_COVERAGE):Ue(n.SAMPLE_ALPHA_TO_COVERAGE)}function ft(W){L!==W&&(W?n.frontFace(n.CW):n.frontFace(n.CCW),L=W)}function rt(W){W!==B6?(Te(n.CULL_FACE),W!==z&&(W===Hv?n.cullFace(n.BACK):W===F6?n.cullFace(n.FRONT):n.cullFace(n.FRONT_AND_BACK))):Ue(n.CULL_FACE),z=W}function He(W){W!==ce&&(j&&n.lineWidth(W),ce=W)}function vt(W,Pe,we){W?(Te(n.POLYGON_OFFSET_FILL),(ue!==Pe||ge!==we)&&(n.polygonOffset(Pe,we),ue=Pe,ge=we)):Ue(n.POLYGON_OFFSET_FILL)}function Ke(W){W?Te(n.SCISSOR_TEST):Ue(n.SCISSOR_TEST)}function ot(W){W===void 0&&(W=n.TEXTURE0+me-1),he!==W&&(n.activeTexture(W),he=W)}function $t(W,Pe,we){we===void 0&&(he===null?we=n.TEXTURE0+me-1:we=he);let Ve=O[we];Ve===void 0&&(Ve={type:void 0,texture:void 0},O[we]=Ve),(Ve.type!==W||Ve.texture!==Pe)&&(he!==we&&(n.activeTexture(we),he=we),n.bindTexture(W,Pe||Ee[W]),Ve.type=W,Ve.texture=Pe)}function B(){const W=O[he];W!==void 0&&W.type!==void 0&&(n.bindTexture(W.type,null),W.type=void 0,W.texture=void 0)}function C(){try{n.compressedTexImage2D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function J(){try{n.compressedTexImage3D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function de(){try{n.texSubImage2D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function fe(){try{n.texSubImage3D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function q(){try{n.compressedTexSubImage2D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function Ae(){try{n.compressedTexSubImage3D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function Le(){try{n.texStorage2D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function ze(){try{n.texStorage3D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function Ge(){try{n.texImage2D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function _e(){try{n.texImage3D(...arguments)}catch(W){console.error("THREE.WebGLState:",W)}}function Re(W){be.equals(W)===!1&&(n.scissor(W.x,W.y,W.z,W.w),be.copy(W))}function Be(W){te.equals(W)===!1&&(n.viewport(W.x,W.y,W.z,W.w),te.copy(W))}function We(W,Pe){let we=h.get(Pe);we===void 0&&(we=new WeakMap,h.set(Pe,we));let Ve=we.get(W);Ve===void 0&&(Ve=n.getUniformBlockIndex(Pe,W.name),we.set(W,Ve))}function De(W,Pe){const Ve=h.get(Pe).get(W);d.get(Pe)!==Ve&&(n.uniformBlockBinding(Pe,Ve,W.__bindingPointIndex),d.set(Pe,Ve))}function tt(){n.disable(n.BLEND),n.disable(n.CULL_FACE),n.disable(n.DEPTH_TEST),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SCISSOR_TEST),n.disable(n.STENCIL_TEST),n.disable(n.SAMPLE_ALPHA_TO_COVERAGE),n.blendEquation(n.FUNC_ADD),n.blendFunc(n.ONE,n.ZERO),n.blendFuncSeparate(n.ONE,n.ZERO,n.ONE,n.ZERO),n.blendColor
vendor: 5,301 bytes, line 3862
3862(0,0,0,0),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(n.LESS),u.setReversed(!1),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(n.ALWAYS,0,4294967295),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),n.clearStencil(0),n.cullFace(n.BACK),n.frontFace(n.CCW),n.polygonOffset(0,0),n.activeTexture(n.TEXTURE0),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.useProgram(null),n.lineWidth(1),n.scissor(0,0,n.canvas.width,n.canvas.height),n.viewport(0,0,n.canvas.width,n.canvas.height),g={},he=null,O={},v={},x=new WeakMap,y=[],b=null,w=!1,M=null,S=null,N=null,T=null,R=null,P=null,I=null,F=new Fe(0,0,0),V=0,U=!1,L=null,z=null,ce=null,ue=null,ge=null,be.set(0,0,n.canvas.width,n.canvas.height),te.set(0,0,n.canvas.width,n.canvas.height),l.reset(),u.reset(),f.reset()}return{buffers:{color:l,depth:u,stencil:f},enable:Te,disable:Ue,bindFramebuffer:ut,drawBuffers:Qe,useProgram:Et,setBlending:k,setMaterial:Xt,setFlipSided:ft,setCullFace:rt,setLineWidth:He,setPolygonOffset:vt,setScissorTest:Ke,activeTexture:ot,bindTexture:$t,unbindTexture:B,compressedTexImage2D:C,compressedTexImage3D:J,texImage2D:Ge,texImage3D:_e,updateUBOMapping:We,uniformBlockBinding:De,texStorage2D:Le,texStorage3D:ze,texSubImage2D:de,texSubImage3D:fe,compressedTexSubImage2D:q,compressedTexSubImage3D:Ae,scissor:Re,viewport:Be,reset:tt}}function F7(n,e,t,a,o,l,u){const f=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,d=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),h=new St,g=new WeakMap;let v;const x=new WeakMap;let y=!1;try{y=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function b(B,C){return y?new OffscreenCanvas(B,C):lc("canvas")}function w(B,C,J){let de=1;const fe=$t(B);if((fe.width>J||fe.height>J)&&(de=J/Math.max(fe.width,fe.height)),de<1)if(typeof HTMLImageElement<"u"&&B instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&B instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&B instanceof ImageBitmap||typeof VideoFrame<"u"&&B instanceof VideoFrame){const q=Math.floor(de*fe.width),Ae=Math.floor(de*fe.height);v===void 0&&(v=b(q,Ae));const Le=C?b(q,Ae):v;return Le.width=q,Le.height=Ae,Le.getContext("2d").drawImage(B,0,0,q,Ae),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+fe.width+"x"+fe.height+") to ("+q+"x"+Ae+")."),Le}else return"data"in B&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+fe.width+"x"+fe.height+")."),B;return B}function M(B){return B.generateMipmaps}function S(B){n.generateMipmap(B)}function N(B){return B.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:B.isWebGL3DRenderTarget?n.TEXTURE_3D:B.isWebGLArrayRenderTarget||B.isCompressedArrayTexture?n.TEXTURE_2D_ARRAY:n.TEXTURE_2D}function T(B,C,J,de,fe=!1){if(B!==null){if(n[B]!==void 0)return n[B];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+B+"'")}let q=C;if(C===n.RED&&(J===n.FLOAT&&(q=n.R32F),J===n.HALF_FLOAT&&(q=n.R16F),J===n.UNSIGNED_BYTE&&(q=n.R8)),C===n.RED_INTEGER&&(J===n.UNSIGNED_BYTE&&(q=n.R8UI),J===n.UNSIGNED_SHORT&&(q=n.R16UI),J===n.UNSIGNED_INT&&(q=n.R32UI),J===n.BYTE&&(q=n.R8I),J===n.SHORT&&(q=n.R16I),J===n.INT&&(q=n.R32I)),C===n.RG&&(J===n.FLOAT&&(q=n.RG32F),J===n.HALF_FLOAT&&(q=n.RG16F),J===n.UNSIGNED_BYTE&&(q=n.RG8)),C===n.RG_INTEGER&&(J===n.UNSIGNED_BYTE&&(q=n.RG8UI),J===n.UNSIGNED_SHORT&&(q=n.RG16UI),J===n.UNSIGNED_INT&&(q=n.RG32UI),J===n.BYTE&&(q=n.RG8I),J===n.SHORT&&(q=n.RG16I),J===n.INT&&(q=n.RG32I)),C===n.RGB_INTEGER&&(J===n.UNSIGNED_BYTE&&(q=n.RGB8UI),J===n.UNSIGNED_SHORT&&(q=n.RGB16UI),J===n.UNSIGNED_INT&&(q=n.RGB32UI),J===n.BYTE&&(q=n.RGB8I),J===n.SHORT&&(q=n.RGB16I),J===n.INT&&(q=n.RGB32I)),C===n.RGBA_INTEGER&&(J===n.UNSIGNED_BYTE&&(q=n.RGBA8UI),J===n.UNSIGNED_SHORT&&(q=n.RGBA16UI),J===n.UNSIGNED_INT&&(q=n.RGBA32UI),J===n.BYTE&&(q=n.RGBA8I),J===n.SHORT&&(q=n.RGBA16I),J===n.INT&&(q=n.RGBA32I)),C===n.RGB&&J===n.UNSIGNED_INT_5_9_9_9_REV&&(q=n.RGB9_E5),C===n.RGBA){const Ae=fe?bf:Lt.getTransfer(de);J===n.FLOAT&&(q=n.RGBA32F),J===n.HALF_FLOAT&&(q=n.RGBA16F),J===n.UNSIGNED_BYTE&&(q=Ae===kt?n.SRGB8_ALPHA8:n.RGBA8),J===n.UNSIGNED_SHORT_4_4_4_4&&(q=n.RGBA4),J===n.UNSIGNED_SHORT_5_5_5_1&&(q=n.RGB5_A1)}return(q===n.R16F||q===n.R32F||q===n.RG16F||q===n.RG32F||q===n.RGBA16F||q===n.RGBA32F)&&e.get("EXT_color_buffer_float"),q}function R(B,C){let J;return B?C===null||C===Sr||C===ac?J=n.DEPTH24_STENCIL8:C===As?J=n.DEPTH32F_STENCIL8:C===sc&&(J=n.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):C===null||C===Sr||C===ac?J=n.DEPTH_COMPONENT24:C===As?J=n.DEPTH_COMPONENT32F:C===sc&&(J=n.DEPTH_COMPONENT16),J}function P(B,C){return M(B)===!0||B.isFramebufferTexture&&B.minFilter!==Ii&&B.minFilter!==Xi?Math.log2(Math.max(C.width,C.height))+1:B.mipmaps!==void 0&&B.mipmaps.length>0?B.mipmaps.length:B.isCompressedTexture&&Array.isArray(B.image)?C.mipmaps.length:1}function I(B){const C=B.target;C.removeEventListener("dispose",I),V(C),C.isVideoTexture&&g.delete(C)}function F(B){const C=B.target;C.removeEventListener("dispose",F),L(C)}function V(B){const C=a.get(B);if(C.__webglInit===void 0)return;const J=B.source,de=x.get(J);
vendor: 5,697 bytes, line 3862
3862if(de){const fe=de[C.__cacheKey];fe.usedTimes--,fe.usedTimes===0&&U(B),Object.keys(de).length===0&&x.delete(J)}a.remove(B)}function U(B){const C=a.get(B);n.deleteTexture(C.__webglTexture);const J=B.source,de=x.get(J);delete de[C.__cacheKey],u.memory.textures--}function L(B){const C=a.get(B);if(B.depthTexture&&(B.depthTexture.dispose(),a.remove(B.depthTexture)),B.isWebGLCubeRenderTarget)for(let de=0;de<6;de++){if(Array.isArray(C.__webglFramebuffer[de]))for(let fe=0;fe<C.__webglFramebuffer[de].length;fe++)n.deleteFramebuffer(C.__webglFramebuffer[de][fe]);else n.deleteFramebuffer(C.__webglFramebuffer[de]);C.__webglDepthbuffer&&n.deleteRenderbuffer(C.__webglDepthbuffer[de])}else{if(Array.isArray(C.__webglFramebuffer))for(let de=0;de<C.__webglFramebuffer.length;de++)n.deleteFramebuffer(C.__webglFramebuffer[de]);else n.deleteFramebuffer(C.__webglFramebuffer);if(C.__webglDepthbuffer&&n.deleteRenderbuffer(C.__webglDepthbuffer),C.__webglMultisampledFramebuffer&&n.deleteFramebuffer(C.__webglMultisampledFramebuffer),C.__webglColorRenderbuffer)for(let de=0;de<C.__webglColorRenderbuffer.length;de++)C.__webglColorRenderbuffer[de]&&n.deleteRenderbuffer(C.__webglColorRenderbuffer[de]);C.__webglDepthRenderbuffer&&n.deleteRenderbuffer(C.__webglDepthRenderbuffer)}const J=B.textures;for(let de=0,fe=J.length;de<fe;de++){const q=a.get(J[de]);q.__webglTexture&&(n.deleteTexture(q.__webglTexture),u.memory.textures--),a.remove(J[de])}a.remove(B)}let z=0;function ce(){z=0}function ue(){const B=z;return B>=o.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+B+" texture units while this GPU supports only "+o.maxTextures),z+=1,B}function ge(B){const C=[];return C.push(B.wrapS),C.push(B.wrapT),C.push(B.wrapR||0),C.push(B.magFilter),C.push(B.minFilter),C.push(B.anisotropy),C.push(B.internalFormat),C.push(B.format),C.push(B.type),C.push(B.generateMipmaps),C.push(B.premultiplyAlpha),C.push(B.flipY),C.push(B.unpackAlignment),C.push(B.colorSpace),C.join()}function me(B,C){const J=a.get(B);if(B.isVideoTexture&&Ke(B),B.isRenderTargetTexture===!1&&B.version>0&&J.__version!==B.version){const de=B.image;if(de===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(de.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Ee(J,B,C);return}}t.bindTexture(n.TEXTURE_2D,J.__webglTexture,n.TEXTURE0+C)}function j(B,C){const J=a.get(B);if(B.version>0&&J.__version!==B.version){Ee(J,B,C);return}t.bindTexture(n.TEXTURE_2D_ARRAY,J.__webglTexture,n.TEXTURE0+C)}function Z(B,C){const J=a.get(B);if(B.version>0&&J.__version!==B.version){Ee(J,B,C);return}t.bindTexture(n.TEXTURE_3D,J.__webglTexture,n.TEXTURE0+C)}function Y(B,C){const J=a.get(B);if(B.version>0&&J.__version!==B.version){Te(J,B,C);return}t.bindTexture(n.TEXTURE_CUBE_MAP,J.__webglTexture,n.TEXTURE0+C)}const he={[sp]:n.REPEAT,[mr]:n.CLAMP_TO_EDGE,[ap]:n.MIRRORED_REPEAT},O={[Ii]:n.NEAREST,[hb]:n.NEAREST_MIPMAP_NEAREST,[Fu]:n.NEAREST_MIPMAP_LINEAR,[Xi]:n.LINEAR,[Qh]:n.LINEAR_MIPMAP_NEAREST,[gr]:n.LINEAR_MIPMAP_LINEAR},ee={[xb]:n.NEVER,[Eb]:n.ALWAYS,[_b]:n.LESS,[L_]:n.LEQUAL,[yb]:n.EQUAL,[bb]:n.GEQUAL,[Sb]:n.GREATER,[Mb]:n.NOTEQUAL};function Me(B,C){if(C.type===As&&e.has("OES_texture_float_linear")===!1&&(C.magFilter===Xi||C.magFilter===Qh||C.magFilter===Fu||C.magFilter===gr||C.minFilter===Xi||C.minFilter===Qh||C.minFilter===Fu||C.minFilter===gr)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(B,n.TEXTURE_WRAP_S,he[C.wrapS]),n.texParameteri(B,n.TEXTURE_WRAP_T,he[C.wrapT]),(B===n.TEXTURE_3D||B===n.TEXTURE_2D_ARRAY)&&n.texParameteri(B,n.TEXTURE_WRAP_R,he[C.wrapR]),n.texParameteri(B,n.TEXTURE_MAG_FILTER,O[C.magFilter]),n.texParameteri(B,n.TEXTURE_MIN_FILTER,O[C.minFilter]),C.compareFunction&&(n.texParameteri(B,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(B,n.TEXTURE_COMPARE_FUNC,ee[C.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(C.magFilter===Ii||C.minFilter!==Fu&&C.minFilter!==gr||C.type===As&&e.has("OES_texture_float_linear")===!1)return;if(C.anisotropy>1||a.get(C).__currentAnisotropy){const J=e.get("EXT_texture_filter_anisotropic");n.texParameterf(B,J.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(C.anisotropy,o.getMaxAnisotropy())),a.get(C).__currentAnisotropy=C.anisotropy}}}function be(B,C){let J=!1;B.__webglInit===void 0&&(B.__webglInit=!0,C.addEventListener("dispose",I));const de=C.source;let fe=x.get(de);fe===void 0&&(fe={},x.set(de,fe));const q=ge(C);if(q!==B.__cacheKey){fe[q]===void 0&&(fe[q]={texture:n.createTexture(),usedTimes:0},u.memory.textures++,J=!0),fe[q].usedTimes++;const Ae=fe[B.__cacheKey];Ae!==void 0&&(fe[B.__cacheKey].usedTimes--,Ae.usedTimes===0&&U(C)),B.__cacheKey=q,B.__webglTexture=fe[q].texture}return J}function te(B,C,J){return Math.floor(Math.floor(B/J)/C)}function xe(B,C,J,de){const q=B.updateRanges;if(q.length===0)t.texSubImage2D(n.TEXTURE_2D,0,0,0,C.width,C.height,J,de,C.data);else{q.sort((_e,Re)=>_e.start-Re.start);let Ae=0;for(let _e=1;_e<q.length;_e++){const Re=q[Ae],Be=q[_e],We=Re.start+Re.count,De=te(Be.start,C.width,4),tt=te(Re.start,C.width,4);Be.start<=We+1&&De===tt&&te(Be.start+Be.count-1,C.width,4)===De?Re.count=Math.max(Re.count,Be.start+Be.count-Re.start):(++Ae,q[Ae]=Be)}q.length=Ae+1;const Le=n.getParameter(n.UNPACK_ROW_LENGTH),ze=n.getParameter(n.UNPACK_SKIP_PIXELS),Ge=n.getParameter(n.UNPACK_SKIP_ROWS);n.pixelStorei(n.UNPACK_ROW_LENGTH,C.width);for(let _e=0,Re=q.length;_e<Re;_e++){const Be=q[_e],We=Math.floor(Be.start/4),De=Math.ceil(Be.count/4),tt=We%C.width,W=Math.floor(We/C.width),Pe=
vendor: 22,656 bytes, line 3862
3862De,we=1;n.pixelStorei(n.UNPACK_SKIP_PIXELS,tt),n.pixelStorei(n.UNPACK_SKIP_ROWS,W),t.texSubImage2D(n.TEXTURE_2D,0,tt,W,Pe,we,J,de,C.data)}B.clearUpdateRanges(),n.pixelStorei(n.UNPACK_ROW_LENGTH,Le),n.pixelStorei(n.UNPACK_SKIP_PIXELS,ze),n.pixelStorei(n.UNPACK_SKIP_ROWS,Ge)}}function Ee(B,C,J){let de=n.TEXTURE_2D;(C.isDataArrayTexture||C.isCompressedArrayTexture)&&(de=n.TEXTURE_2D_ARRAY),C.isData3DTexture&&(de=n.TEXTURE_3D);const fe=be(B,C),q=C.source;t.bindTexture(de,B.__webglTexture,n.TEXTURE0+J);const Ae=a.get(q);if(q.version!==Ae.__version||fe===!0){t.activeTexture(n.TEXTURE0+J);const Le=Lt.getPrimaries(Lt.workingColorSpace),ze=C.colorSpace===Ca?null:Lt.getPrimaries(C.colorSpace),Ge=C.colorSpace===Ca||Le===ze?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,C.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,C.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,C.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ge);let _e=w(C.image,!1,o.maxTextureSize);_e=ot(C,_e);const Re=l.convert(C.format,C.colorSpace),Be=l.convert(C.type);let We=T(C.internalFormat,Re,Be,C.colorSpace,C.isVideoTexture);Me(de,C);let De;const tt=C.mipmaps,W=C.isVideoTexture!==!0,Pe=Ae.__version===void 0||fe===!0,we=q.dataReady,Ve=P(C,_e);if(C.isDepthTexture)We=R(C.format===oc,C.type),Pe&&(W?t.texStorage2D(n.TEXTURE_2D,1,We,_e.width,_e.height):t.texImage2D(n.TEXTURE_2D,0,We,_e.width,_e.height,0,Re,Be,null));else if(C.isDataTexture)if(tt.length>0){W&&Pe&&t.texStorage2D(n.TEXTURE_2D,Ve,We,tt[0].width,tt[0].height);for(let Ce=0,Se=tt.length;Ce<Se;Ce++)De=tt[Ce],W?we&&t.texSubImage2D(n.TEXTURE_2D,Ce,0,0,De.width,De.height,Re,Be,De.data):t.texImage2D(n.TEXTURE_2D,Ce,We,De.width,De.height,0,Re,Be,De.data);C.generateMipmaps=!1}else W?(Pe&&t.texStorage2D(n.TEXTURE_2D,Ve,We,_e.width,_e.height),we&&xe(C,_e,Re,Be)):t.texImage2D(n.TEXTURE_2D,0,We,_e.width,_e.height,0,Re,Be,_e.data);else if(C.isCompressedTexture)if(C.isCompressedArrayTexture){W&&Pe&&t.texStorage3D(n.TEXTURE_2D_ARRAY,Ve,We,tt[0].width,tt[0].height,_e.depth);for(let Ce=0,Se=tt.length;Ce<Se;Ce++)if(De=tt[Ce],C.format!==Oi)if(Re!==null)if(W){if(we)if(C.layerUpdates.size>0){const Xe=f3(De.width,De.height,C.format,C.type);for(const lt of C.layerUpdates){const It=De.data.subarray(lt*Xe/De.data.BYTES_PER_ELEMENT,(lt+1)*Xe/De.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,Ce,0,0,lt,De.width,De.height,1,Re,It)}C.clearLayerUpdates()}else t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,Ce,0,0,0,De.width,De.height,_e.depth,Re,De.data)}else t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,Ce,We,De.width,De.height,_e.depth,0,De.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else W?we&&t.texSubImage3D(n.TEXTURE_2D_ARRAY,Ce,0,0,0,De.width,De.height,_e.depth,Re,Be,De.data):t.texImage3D(n.TEXTURE_2D_ARRAY,Ce,We,De.width,De.height,_e.depth,0,Re,Be,De.data)}else{W&&Pe&&t.texStorage2D(n.TEXTURE_2D,Ve,We,tt[0].width,tt[0].height);for(let Ce=0,Se=tt.length;Ce<Se;Ce++)De=tt[Ce],C.format!==Oi?Re!==null?W?we&&t.compressedTexSubImage2D(n.TEXTURE_2D,Ce,0,0,De.width,De.height,Re,De.data):t.compressedTexImage2D(n.TEXTURE_2D,Ce,We,De.width,De.height,0,De.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):W?we&&t.texSubImage2D(n.TEXTURE_2D,Ce,0,0,De.width,De.height,Re,Be,De.data):t.texImage2D(n.TEXTURE_2D,Ce,We,De.width,De.height,0,Re,Be,De.data)}else if(C.isDataArrayTexture)if(W){if(Pe&&t.texStorage3D(n.TEXTURE_2D_ARRAY,Ve,We,_e.width,_e.height,_e.depth),we)if(C.layerUpdates.size>0){const Ce=f3(_e.width,_e.height,C.format,C.type);for(const Se of C.layerUpdates){const Xe=_e.data.subarray(Se*Ce/_e.data.BYTES_PER_ELEMENT,(Se+1)*Ce/_e.data.BYTES_PER_ELEMENT);t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,Se,_e.width,_e.height,1,Re,Be,Xe)}C.clearLayerUpdates()}else t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,_e.width,_e.height,_e.depth,Re,Be,_e.data)}else t.texImage3D(n.TEXTURE_2D_ARRAY,0,We,_e.width,_e.height,_e.depth,0,Re,Be,_e.data);else if(C.isData3DTexture)W?(Pe&&t.texStorage3D(n.TEXTURE_3D,Ve,We,_e.width,_e.height,_e.depth),we&&t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,_e.width,_e.height,_e.depth,Re,Be,_e.data)):t.texImage3D(n.TEXTURE_3D,0,We,_e.width,_e.height,_e.depth,0,Re,Be,_e.data);else if(C.isFramebufferTexture){if(Pe)if(W)t.texStorage2D(n.TEXTURE_2D,Ve,We,_e.width,_e.height);else{let Ce=_e.width,Se=_e.height;for(let Xe=0;Xe<Ve;Xe++)t.texImage2D(n.TEXTURE_2D,Xe,We,Ce,Se,0,Re,Be,null),Ce>>=1,Se>>=1}}else if(tt.length>0){if(W&&Pe){const Ce=$t(tt[0]);t.texStorage2D(n.TEXTURE_2D,Ve,We,Ce.width,Ce.height)}for(let Ce=0,Se=tt.length;Ce<Se;Ce++)De=tt[Ce],W?we&&t.texSubImage2D(n.TEXTURE_2D,Ce,0,0,Re,Be,De):t.texImage2D(n.TEXTURE_2D,Ce,We,Re,Be,De);C.generateMipmaps=!1}else if(W){if(Pe){const Ce=$t(_e);t.texStorage2D(n.TEXTURE_2D,Ve,We,Ce.width,Ce.height)}we&&t.texSubImage2D(n.TEXTURE_2D,0,0,0,Re,Be,_e)}else t.texImage2D(n.TEXTURE_2D,0,We,Re,Be,_e);M(C)&&S(de),Ae.__version=q.version,C.onUpdate&&C.onUpdate(C)}B.__version=C.version}function Te(B,C,J){if(C.image.length!==6)return;const de=be(B,C),fe=C.source;t.bindTexture(n.TEXTURE_CUBE_MAP,B.__webglTexture,n.TEXTURE0+J);const q=a.get(fe);if(fe.version!==q.__version||de===!0){t.activeTexture(n.TEXTURE0+J);const Ae=Lt.getPrimaries(Lt.workingColorSpace),Le=C.colorSpace===Ca?null:Lt.getPrimaries(C.colorSpace),ze=C.colorSpace===Ca||Ae===Le?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,C.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,C.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,C.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,ze);const Ge=C.isCompressedTexture||C.image[0].isCompressedTexture,_e=C.image[0]&&C.image[0].isDataTexture,Re=[];for(let Se=0;Se<6;Se++)!Ge&&!_e?Re[Se]=w(C.image[Se],!0,o.maxCubemapSize):Re[Se]=_e?C.image[Se].image:C.image[Se],Re[Se]=ot(C,Re[Se]);const Be=Re[0],We=l.convert(C.format,C.colorSpace),De=l.convert(C.type),tt=T(C.internalFormat,We,De,C.colorSpace),W=C.isVideoTexture!==!0,Pe=q.__version===void 0||de===!0,we=fe.dataReady;let Ve=P(C,Be);Me(n.TEXTURE_CUBE_MAP,C);let Ce;if(Ge){W&&Pe&&t.texStorage2D(n.TEXTURE_CUBE_MAP,Ve,tt,Be.width,Be.height);for(let Se=0;Se<6;Se++){Ce=Re[Se].mipmaps;for(let Xe=0;Xe<Ce.length;Xe++){const lt=Ce[Xe];C.format!==Oi?We!==null?W?we&&t.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe,0,0,lt.width,lt.height,We,lt.data):t.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe,tt,lt.width,lt.height,0,lt.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):W?we&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe,0,0,lt.width,lt.height,We,De,lt.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe,tt,lt.width,lt.height,0,We,De,lt.data)}}}else{if(Ce=C.mipmaps,W&&Pe){Ce.length>0&&Ve++;const Se=$t(Re[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,Ve,tt,Se.width,Se.height)}for(let Se=0;Se<6;Se++)if(_e){W?we&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,0,0,0,Re[Se].width,Re[Se].height,We,De,Re[Se].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,0,tt,Re[Se].width,Re[Se].height,0,We,De,Re[Se].data);for(let Xe=0;Xe<Ce.length;Xe++){const It=Ce[Xe].image[Se].image;W?we&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe+1,0,0,It.width,It.height,We,De,It.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe+1,tt,It.width,It.height,0,We,De,It.data)}}else{W?we&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,0,0,0,We,De,Re[Se]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,0,tt,We,De,Re[Se]);for(let Xe=0;Xe<Ce.length;Xe++){const lt=Ce[Xe];W?we&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe+1,0,0,We,De,lt.image[Se]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Se,Xe+1,tt,We,De,lt.image[Se])}}}M(C)&&S(n.TEXTURE_CUBE_MAP),q.__version=fe.version,C.onUpdate&&C.onUpdate(C)}B.__version=C.version}function Ue(B,C,J,de,fe,q){const Ae=l.convert(J.format,J.colorSpace),Le=l.convert(J.type),ze=T(J.internalFormat,Ae,Le,J.colorSpace),Ge=a.get(C),_e=a.get(J);if(_e.__renderTarget=C,!Ge.__hasExternalTextures){const Re=Math.max(1,C.width>>q),Be=Math.max(1,C.height>>q);fe===n.TEXTURE_3D||fe===n.TEXTURE_2D_ARRAY?t.texImage3D(fe,q,ze,Re,Be,C.depth,0,Ae,Le,null):t.texImage2D(fe,q,ze,Re,Be,0,Ae,Le,null)}t.bindFramebuffer(n.FRAMEBUFFER,B),vt(C)?f.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,de,fe,_e.__webglTexture,0,He(C)):(fe===n.TEXTURE_2D||fe>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&fe<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,de,fe,_e.__webglTexture,q),t.bindFramebuffer(n.FRAMEBUFFER,null)}function ut(B,C,J){if(n.bindRenderbuffer(n.RENDERBUFFER,B),C.depthBuffer){const de=C.depthTexture,fe=de&&de.isDepthTexture?de.type:null,q=R(C.stencilBuffer,fe),Ae=C.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Le=He(C);vt(C)?f.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Le,q,C.width,C.height):J?n.renderbufferStorageMultisample(n.RENDERBUFFER,Le,q,C.width,C.height):n.renderbufferStorage(n.RENDERBUFFER,q,C.width,C.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ae,n.RENDERBUFFER,B)}else{const de=C.textures;for(let fe=0;fe<de.length;fe++){const q=de[fe],Ae=l.convert(q.format,q.colorSpace),Le=l.convert(q.type),ze=T(q.internalFormat,Ae,Le,q.colorSpace),Ge=He(C);J&&vt(C)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,Ge,ze,C.width,C.height):vt(C)?f.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Ge,ze,C.width,C.height):n.renderbufferStorage(n.RENDERBUFFER,ze,C.width,C.height)}}n.bindRenderbuffer(n.RENDERBUFFER,null)}function Qe(B,C){if(C&&C.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(n.FRAMEBUFFER,B),!(C.depthTexture&&C.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");const de=a.get(C.depthTexture);de.__renderTarget=C,(!de.__webglTexture||C.depthTexture.image.width!==C.width||C.depthTexture.image.height!==C.height)&&(C.depthTexture.image.width=C.width,C.depthTexture.image.height=C.height,C.depthTexture.needsUpdate=!0),me(C.depthTexture,0);const fe=de.__webglTexture,q=He(C);if(C.depthTexture.format===rc)vt(C)?f.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,fe,0,q):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,fe,0);else if(C.depthTexture.format===oc)vt(C)?f.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,fe,0,q):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,fe,0);else throw new Error("Unknown depthTexture format")}function Et(B){const C=a.get(B),J=B.isWebGLCubeRenderTarget===!0;if(C.__boundDepthTexture!==B.depthTexture){const de=B.depthTexture;if(C.__depthDisposeCallback&&C.__depthDisposeCallback(),de){const fe=()=>{delete C.__boundDepthTexture,delete C.__depthDisposeCallback,de.removeEventListener("dispose",fe)};de.addEventListener("dispose",fe),C.__depthDisposeCallback=fe}C.__boundDepthTexture=de}if(B.depthTexture&&!C.__autoAllocateDepthBuffer){if(J)throw new Error("target.depthTexture not supported in Cube render targets");const de=B.texture.mipmaps;de&&de.length>0?Qe(C.__webglFramebuffer[0],B):Qe(C.__webglFramebuffer,B)}else if(J){C.__webglDepthbuffer=[];for(let de=0;de<6;de++)if(t.bindFramebuffer(n.FRAMEBUFFER,C.__webglFramebuffer[de]),C.__webglDepthbuffer[de]===void 0)C.__webglDepthbuffer[de]=n.createRenderbuffer(),ut(C.__webglDepthbuffer[de],B,!1);else{const fe=B.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,q=C.__webglDepthbuffer[de];n.bindRenderbuffer(n.RENDERBUFFER,q),n.framebufferRenderbuffer(n.FRAMEBUFFER,fe,n.RENDERBUFFER,q)}}else{const de=B.texture.mipmaps;if(de&&de.length>0?t.bindFramebuffer(n.FRAMEBUFFER,C.__webglFramebuffer[0]):t.bindFramebuffer(n.FRAMEBUFFER,C.__webglFramebuffer),C.__webglDepthbuffer===void 0)C.__webglDepthbuffer=n.createRenderbuffer(),ut(C.__webglDepthbuffer,B,!1);else{const fe=B.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,q=C.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,q),n.framebufferRenderbuffer(n.FRAMEBUFFER,fe,n.RENDERBUFFER,q)}}t.bindFramebuffer(n.FRAMEBUFFER,null)}function Ut(B,C,J){const de=a.get(B);C!==void 0&&Ue(de.__webglFramebuffer,B,B.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),J!==void 0&&Et(B)}function gt(B){const C=B.texture,J=a.get(B),de=a.get(C);B.addEventListener("dispose",F);const fe=B.textures,q=B.isWebGLCubeRenderTarget===!0,Ae=fe.length>1;if(Ae||(de.__webglTexture===void 0&&(de.__webglTexture=n.createTexture()),de.__version=C.version,u.memory.textures++),q){J.__webglFramebuffer=[];for(let Le=0;Le<6;Le++)if(C.mipmaps&&C.mipmaps.length>0){J.__webglFramebuffer[Le]=[];for(let ze=0;ze<C.mipmaps.length;ze++)J.__webglFramebuffer[Le][ze]=n.createFramebuffer()}else J.__webglFramebuffer[Le]=n.createFramebuffer()}else{if(C.mipmaps&&C.mipmaps.length>0){J.__webglFramebuffer=[];for(let Le=0;Le<C.mipmaps.length;Le++)J.__webglFramebuffer[Le]=n.createFramebuffer()}else J.__webglFramebuffer=n.createFramebuffer();if(Ae)for(let Le=0,ze=fe.length;Le<ze;Le++){const Ge=a.get(fe[Le]);Ge.__webglTexture===void 0&&(Ge.__webglTexture=n.createTexture(),u.memory.textures++)}if(B.samples>0&&vt(B)===!1){J.__webglMultisampledFramebuffer=n.createFramebuffer(),J.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,J.__webglMultisampledFramebuffer);for(let Le=0;Le<fe.length;Le++){const ze=fe[Le];J.__webglColorRenderbuffer[Le]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,J.__webglColorRenderbuffer[Le]);const Ge=l.convert(ze.format,ze.colorSpace),_e=l.convert(ze.type),Re=T(ze.internalFormat,Ge,_e,ze.colorSpace,B.isXRRenderTarget===!0),Be=He(B);n.renderbufferStorageMultisample(n.RENDERBUFFER,Be,Re,B.width,B.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Le,n.RENDERBUFFER,J.__webglColorRenderbuffer[Le])}n.bindRenderbuffer(n.RENDERBUFFER,null),B.depthBuffer&&(J.__webglDepthRenderbuffer=n.createRenderbuffer(),ut(J.__webglDepthRenderbuffer,B,!0)),t.bindFramebuffer(n.FRAMEBUFFER,null)}}if(q){t.bindTexture(n.TEXTURE_CUBE_MAP,de.__webglTexture),Me(n.TEXTURE_CUBE_MAP,C);for(let Le=0;Le<6;Le++)if(C.mipmaps&&C.mipmaps.length>0)for(let ze=0;ze<C.mipmaps.length;ze++)Ue(J.__webglFramebuffer[Le][ze],B,C,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+Le,ze);else Ue(J.__webglFramebuffer[Le],B,C,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+Le,0);M(C)&&S(n.TEXTURE_CUBE_MAP),t.unbindTexture()}else if(Ae){for(let Le=0,ze=fe.length;Le<ze;Le++){const Ge=fe[Le],_e=a.get(Ge);t.bindTexture(n.TEXTURE_2D,_e.__webglTexture),Me(n.TEXTURE_2D,Ge),Ue(J.__webglFramebuffer,B,Ge,n.COLOR_ATTACHMENT0+Le,n.TEXTURE_2D,0),M(Ge)&&S(n.TEXTURE_2D)}t.unbindTexture()}else{let Le=n.TEXTURE_2D;if((B.isWebGL3DRenderTarget||B.isWebGLArrayRenderTarget)&&(Le=B.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY),t.bindTexture(Le,de.__webglTexture),Me(Le,C),C.mipmaps&&C.mipmaps.length>0)for(let ze=0;ze<C.mipmaps.length;ze++)Ue(J.__webglFramebuffer[ze],B,C,n.COLOR_ATTACHMENT0,Le,ze);else Ue(J.__webglFramebuffer,B,C,n.COLOR_ATTACHMENT0,Le,0);M(C)&&S(Le),t.unbindTexture()}B.depthBuffer&&Et(B)}function k(B){const C=B.textures;for(let J=0,de=C.length;J<de;J++){const fe=C[J];if(M(fe)){const q=N(B),Ae=a.get(fe).__webglTexture;t.bindTexture(q,Ae),S(q),t.unbindTexture()}}}const Xt=[],ft=[];function rt(B){if(B.samples>0){if(vt(B)===!1){const C=B.textures,J=B.width,de=B.height;let fe=n.COLOR_BUFFER_BIT;const q=B.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Ae=a.get(B),Le=C.length>1;if(Le)for(let Ge=0;Ge<C.length;Ge++)t.bindFramebuffer(n.FRAMEBUFFER,Ae.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ge,n.RENDERBUFFER,null),t.bindFramebuffer(n.FRAMEBUFFER,Ae.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ge,n.TEXTURE_2D,null,0);t.bindFramebuffer(n.READ_FRAMEBUFFER,Ae.__webglMultisampledFramebuffer);const ze=B.texture.mipmaps;ze&&ze.length>0?t.bindFramebuffer(n.DRAW_FRAMEBUFFER,Ae.__webglFramebuffer[0]):t.bindFramebuffer(n.DRAW_FRAMEBUFFER,Ae.__webglFramebuffer);for(let Ge=0;Ge<C.length;Ge++){if(B.resolveDepthBuffer&&(B.depthBuffer&&(fe|=n.DEPTH_BUFFER_BIT),B.stencilBuffer&&B.resolveStencilBuffer&&(fe|=n.STENCIL_BUFFER_BIT)),Le){n.framebufferRenderbuffer(n.READ_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.RENDERBUFFER,Ae.__webglColorRenderbuffer[Ge]);const _e=a.get(C[Ge]).__webglTexture;n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,_e,0)}n.blitFramebuffer(0,0,J,de,0,0,J,de,fe,n.NEAREST),d===!0&&(Xt.length=0,ft.length=0,Xt.push(n.COLOR_ATTACHMENT0+Ge),B.depthBuffer&&B.resolveDepthBuffer===!1&&(Xt.push(q),ft.push(q),n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,ft)),n.invalidateFramebuffer(n.READ_FRAMEBUFFER,Xt))}if(t.bindFramebuffer(n.READ_FRAMEBUFFER,null),t.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),Le)for(let Ge=0;Ge<C.length;Ge++){t.bindFramebuffer(n.FRAMEBUFFER,Ae.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ge,n.RENDERBUFFER,Ae.__webglColorRenderbuffer[Ge]);const _e=a.get(C[Ge]).__webglTexture;t.bindFramebuffer(n.FRAMEBUFFER,Ae.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ge,n.TEXTURE_2D,_e,0)}t.bindFramebuffer(n.DRAW_FRAMEBUFFER,Ae.__webglMultisampledFramebuffer)}else if(B.depthBuffer&&B.resolveDepthBuffer===!1&&d){const C=B.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT;n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,[C])}}}function He(B){return Math.min(o.maxSamples,B.samples)}function vt(B){const C=a.get(B);return B.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&C.__useRenderToTexture!==!1}function Ke(B){const C=u.render.frame;g.get(B)!==C&&(g.set(B,C),B.update())}function ot(B,C){const J=B.colorSpace,de=B.format,fe=B.type;return B.isCompressedTexture===!0||B.isVideoTexture===!0||J!==Ro&&J!==Ca&&(Lt.getTransfer(J)===kt?(de!==Oi||fe!==Us)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",J)),C}function $t(B){return typeof HTMLImageElement<"u"&&B instanceof HTMLImageElement?(h.width=B.naturalWidth||B.width,h.height=B.naturalHeight||B.height):typeof VideoFrame<"u"&&B instanceof VideoFrame?(h.width=B.displayWidth,h.height=B.displayHeight):(h.width=B.width,h.height=B.height),h}this.allocateTextureUnit=ue,this.resetTextureUnits=ce,this.setTexture2D=me,this.setTexture2DArray=j,this.setTexture3D=Z,this.setTextureCube=Y,this.rebindTextures=Ut,this.setupRenderTarget=gt,this.updateRenderTargetMipmap=k,this.updateMultisampleRenderTarget=rt,this.setupDepthRenderbuffer=Et,this.setupFrameBufferTexture=Ue,this.useMultisampledRTT=vt}function z7(n,e){function t(a,o=Ca){let l;const u=Lt.getTransfer(o);if(a===Us)return n.UNSIGNED_BYTE;if(a===hm)return n.UNSIGNED_SHORT_4_4_4_4;if(a===pm)return n.UNSIGNED_SHORT_5_5_5_1;if(a===w_)return n.UNSIGNED_INT_5_9_9_9_REV;if(a===b_)return n.BYTE;if(a===E_)return n.SHORT;if(a===sc)return n.UNSIGNED_SHORT;if(a===dm)return n.INT;if(a===Sr)return n.UNSIGNED_INT;if(a===As)return n.FLOAT;if(a===xc)return n.HALF_FLOAT;if(a===T_)return n.ALPHA;if(a===C_)return n.RGB;if(a===Oi)return n.RGBA;if(a===rc)return n.DEPTH_COMPONENT;if(a===oc)return n.DEPTH_STENCIL;if(a===A_)return n.RED;if(a===mm)return n.RED_INTEGER;if(a===R_)return n.RG;if(a===gm)return n.RG_INTEGER;if(a===vm)return n.RGBA_INTEGER;if(a===df||a===hf||a===pf||a===mf)if(u===kt)if(l=e.get("WEBGL_compressed_texture_s3tc_srgb"),l!==null){if(a===df)return l.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(a===hf)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(a===pf)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(a===mf)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(l=e.get("WEBGL_compressed_texture_s3tc"),l!==null){if(a===df)return l.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===hf)return l.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===pf)return l.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===mf)return l.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(a===rp||a===op||a===lp||a===cp)if(l=e.get("WEBGL_compressed_texture_pvrtc"),l!==null){if(a===rp)return l.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(a===op)return l.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(a===lp)return l.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(a===cp)return l.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(a===up||a===fp||a===dp)if(l=e.get("WEBGL_compressed_texture_etc"),l!==null){if(a===up||a===fp)return u===kt?l.COMPRESSED_SRGB8_ETC2:l.COMPRESSED_RGB8_ETC2;if(a===dp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:l.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(a===hp||a===pp||a===mp||a===gp||a===vp||a===xp||a===_p||a===yp||a===Sp||a===Mp||a===bp||a===Ep||a===wp||a===Tp)if(l=e.get("WEBGL_compressed_texture_astc"),l!==null){if(a===hp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:l.COMPRESSED_RGBA_ASTC_4x4_KHR;if(a===pp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:l.COMPRESSED_RGBA_ASTC_5x4_KHR;if(a===mp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:l.COMPRESSED_RGBA_ASTC_5x5_KHR;if(a===gp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:l.COMPRESSED_RGBA_ASTC_6x5_KHR;if(a===vp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:l.COMPRESSED_RGBA_ASTC_6x6_KHR;if(a===xp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:l.COMPRESSED_RGBA_ASTC_8x5_KHR;if(a===_p)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:l.COMPRESSED_RGBA_ASTC_8x6_KHR;if(a===yp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:l.COMPRESSED_RGBA_ASTC_8x8_KHR;if(a===Sp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:l.COMPRESSED_RGBA_ASTC_10x5_KHR;if(a===Mp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:l.COMPRESSED_RGBA_ASTC_10x6_KHR;if(a===bp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:l.COMPRESSED_RGBA_ASTC_10x8_KHR;if(a===Ep)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:l.COMPRESSED_RGBA_ASTC_10x10_KHR;if(a===wp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:l.COMPRESSED_RGBA_ASTC_12x10_KHR;if(a===Tp)return u===kt?l.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:l.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(a===gf||a===Cp||a===Ap)if(l=e.get("EXT_texture_compression_bptc"),l!==null){if(a===gf)return u===kt?l.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:l.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(a===Cp)return l.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(a===Ap)return l.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(a===N_||a===Rp||a===Np||a===Lp)if(l=e.get("EXT_texture_compression_rgtc"),l!==null){if(a===gf)return l.COMPRESSED_RED_RGT
vendor: 7,447 bytes, lines 3862-3886
3862C1_EXT;if(a===Rp)return l.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(a===Np)return l.COMPRESSED_RED_GREEN_RGTC2_EXT;if(a===Lp)return l.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return a===ac?n.UNSIGNED_INT_24_8:n[a]!==void 0?n[a]:null}return{convert:t}}const V7=`
3863void main() {
3864
3865	gl_Position = vec4( position, 1.0 );
3866
3867}`,j7=`
3868uniform sampler2DArray depthColor;
3869uniform float depthWidth;
3870uniform float depthHeight;
3871
3872void main() {
3873
3874	vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );
3875
3876	if ( coord.x >= 1.0 ) {
3877
3878		gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;
3879
3880	} else {
3881
3882		gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;
3883
3884	}
3885
3886}`;class H7{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,a){if(this.texture===null){const o=new Wn,l=e.properties.get(o);l.__webglTexture=t.texture,(t.depthNear!==a.depthNear||t.depthFar!==a.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=o}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,a=new Bi({vertexShader:V7,fragmentShader:j7,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new pi(new Bo(20,20),a)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class k7 extends Io{constructor(e,t){super();const a=this;let o=null,l=1,u=null,f="local-floor",d=1,h=null,g=null,v=null,x=null,y=null,b=null;const w=new H7,M=t.getContextAttributes();let S=null,N=null;const T=[],R=[],P=new St;let I=null;const F=new mn;F.viewport=new cn;const V=new mn;V.viewport=new cn;const U=[F,V],L=new uE;let z=null,ce=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(te){let xe=T[te];return xe===void 0&&(xe=new y0,T[te]=xe),xe.getTargetRaySpace()},this.getControllerGrip=function(te){let xe=T[te];return xe===void 0&&(xe=new y0,T[te]=xe),xe.getGripSpace()},this.getHand=function(te){let xe=T[te];return xe===void 0&&(xe=new y0,T[te]=xe),xe.getHandSpace()};function ue(te){const xe=R.indexOf(te.inputSource);if(xe===-1)return;const Ee=T[xe];Ee!==void 0&&(Ee.update(te.inputSource,te.frame,h||u),Ee.dispatchEvent({type:te.type,data:te.inputSource}))}function ge(){o.removeEventListener("select",ue),o.removeEventListener("selectstart",ue),o.removeEventListener("selectend",ue),o.removeEventListener("squeeze",ue),o.removeEventListener("squeezestart",ue),o.removeEventListener("squeezeend",ue),o.removeEventListener("end",ge),o.removeEventListener("inputsourceschange",me);for(let te=0;te<T.length;te++){const xe=R[te];xe!==null&&(R[te]=null,T[te].disconnect(xe))}z=null,ce=null,w.reset(),e.setRenderTarget(S),y=null,x=null,v=null,o=null,N=null,be.stop(),a.isPresenting=!1,e.setPixelRatio(I),e.setSize(P.width,P.height,!1),a.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(te){l=te,a.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(te){f=te,a.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return h||u},this.setReferenceSpace=function(te){h=te},this.getBaseLayer=function(){return x!==null?x:y},this.getBinding=function(){return v},this.getFrame=function(){return b},this.getSession=function(){return o},this.setSession=async function(te){if(o=te,o!==null){if(S=e.getRenderTarget(),o.addEventListener("select",ue),o.addEventListener("selectstart",ue),o.addEventListener("selectend",ue),o.addEventListener("squeeze",ue),o.addEventListener("squeezestart",ue),o.addEventListener("squeezeend",ue),o.addEventListener("end",ge),o.addEventListener("inputsourceschange",me),M.xrCompatible!==!0&&await t.makeXRCompatible(),I=e.getPixelRatio(),e.getSize(P),typeof XRWebGLBinding<"u"&&"createProjectionLayer"in XRWebGLBinding.prototype){let Ee=null,Te=null,Ue=null;M.depth&&(Ue=M.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,Ee=M.stencil?oc:rc,Te=M.stencil?ac:Sr);const ut={colorFormat:t.RGBA8,depthFormat:Ue,scaleFactor:l};v=new XRWebGLBinding(o,t),x=v.createProjectionLayer(ut),o.updateRenderState({layers:[x]}),e.setPixelRatio(1),e.setSize(x.textureWidth,x.textureHeight,!1),N=new Mr(x.textureWidth,x.textureHeight,{format:Oi,type:Us,depthTexture:new j_(x.textureWidth,x.textureHeight,Te,void 0,void 0,void 0,void 0,void 0,void 0,Ee),stencilBuffer:M.stencil,colorSpace:e.outputColorSpace,samples:M.antialias?4:0,resolveDepthBuffer:x.ignoreDepthValues===!1,resolveStencilBuffer:x.ignoreDepthValues===!1})}else{const Ee={antialias:M.antialias,alpha:!0,depth:M.depth,stencil:M.stencil,framebufferScaleFactor:l};y=new XRWebGLLayer(o,t,Ee),o.updateRenderState({baseLayer:y}),e.setPixelRatio(1),e.setSize(y.framebufferWidth,y.framebufferHeight,!1),N=new Mr(y.framebufferWidth,y.framebufferHeight,{format:Oi,type:Us,colorSpace:e.outputColorSpace,stencilBuffer:M.stencil,resolveDepthBuffer:y.ignoreDepthValues===!1,resolveStencilBuffer:y.ignoreDepthValues===!1})}N.isXRRenderTarget=!0,this.setFoveation(d),h=null,u=await o.requestReferenceSpace(f),be.setContext(o),be.start(),a.isPresenting=!0,a.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(o!==null)return o.environmentBlendMode},this.getDepthTexture=function(){return w.getDepthTexture()};function me(te){for(let xe=0;xe<te.removed.length;xe++){const Ee=te.removed[xe],Te=R.indexOf(Ee);Te>=0&&(R[Te]=null,T[Te].disconnect(Ee))}for(let xe=0;xe<te.added.length;xe++){const Ee=te.added[xe];let Te=R.indexOf(Ee);if(Te===-1){for(let ut=0;ut<T.length;ut++)if(ut>=R.length){R.push(Ee),Te=ut;break}else if(R[ut]===null){R[ut]=Ee,Te=ut;break}if(Te===-1)break}const Ue=T[Te];Ue&&Ue.connect(Ee)}}const j=new le,Z=new le;function Y(te,xe,Ee){j.setFromMatrixPosition(xe.matrixWorld),Z.setFromMatrixPosition(Ee.matrixWorld);const Te=j.distanceTo(Z),Ue=xe.projectionMatrix.elements,ut=Ee.projectionMatrix.elements,Qe=Ue[14]/(Ue[10]-1),Et=Ue[14]/(Ue[10]+1),Ut=(Ue[9]+1)/Ue[5],gt=(Ue[9]-1)/Ue[5],k=(Ue[8]-1)/Ue[0],Xt=(ut[8]+1)/ut[0],ft=Qe*k,rt=Qe*Xt,He=Te/(-k+Xt),vt=He*-k;if(xe.matrixWorld.decompose(te.position,te.quaternion,te.scale),te.translateX(vt),te.translateZ(He),te.matrixWorld.compose(te.position,te.quaternion,te.scale),te.matrixWorldInverse.copy(te.matrixWorld).invert(),Ue[10]===-1)te.projectionMatrix.copy(xe.projectionMatrix),te.projectionMatrixInverse.copy(xe.projectionMatrixInverse);else{const Ke=Qe+He,ot=Et+He,$t=ft-vt,B=rt+(Te-vt),C=Ut*Et/ot*Ke,J=gt*Et/ot*Ke;te.projectionMatrix.makePerspective($t,B,C,J,Ke,ot),te.projectionMatrixInverse.copy(te.projectionMatrix).invert()}}function he(te,xe){xe===null?te.matrixWorld.copy(te.matrix):te.matrixWorld.multiplyMatrices(xe.matrixWorld,te.matrix),te.matrixWorldInverse.copy(te.matrixWorld).invert()}this.updateCamera=function(te){if(o===null)return;let xe=te.near,Ee=te.far;w.texture!==null&&(w.depthNear>0&&(xe=w.depthNear),w.depthFar>0&&(Ee=w.depthFar)),L.near=V.near=F.near=xe,L.far=V.far=F.far=Ee,(z!==L.near||ce!==L.far)&&(o.updateRenderState({depthNear:L.near,depthFar:L.far}),z=L.near,ce=L.far),F.layers.mask=te.layers.mask|2,V.layers.mask=te.layers.mask|4,L.layers.mask=F.layers.mask|V.layers.mask;const Te=te.parent,Ue=L.cameras;he(L,Te);for(let ut=0;ut<Ue.length;ut++)he(Ue[ut],Te);Ue.length===2?Y(L,F,V):L.projectionMatrix.copy(F.projectionMatrix),O(te,
vendor: 1,108 bytes, line 3886
3886L,Te)};function O(te,xe,Ee){Ee===null?te.matrix.copy(xe.matrixWorld):(te.matrix.copy(Ee.matrixWorld),te.matrix.invert(),te.matrix.multiply(xe.matrixWorld)),te.matrix.decompose(te.position,te.quaternion,te.scale),te.updateMatrixWorld(!0),te.projectionMatrix.copy(xe.projectionMatrix),te.projectionMatrixInverse.copy(xe.projectionMatrixInverse),te.isPerspectiveCamera&&(te.fov=Dp*2*Math.atan(1/te.projectionMatrix.elements[5]),te.zoom=1)}this.getCamera=function(){return L},this.getFoveation=function(){if(!(x===null&&y===null))return d},this.setFoveation=function(te){d=te,x!==null&&(x.fixedFoveation=te),y!==null&&y.fixedFoveation!==void 0&&(y.fixedFoveation=te)},this.hasDepthSensing=function(){return w.texture!==null},this.getDepthSensingMesh=function(){return w.getMesh(L)};let ee=null;function Me(te,xe){if(g=xe.getViewerPose(h||u),b=xe,g!==null){const Ee=g.views;y!==null&&(e.setRenderTargetFramebuffer(N,y.framebuffer),e.setRenderTarget(N));let Te=!1;Ee.length!==L.cameras.length&&(L.cameras.length=0,Te=!0);for(let Qe=0;Qe<Ee.length;Qe++){const Et=Ee[Qe];let Ut=null;if(y!==null)Ut=y.getViewport(Et);
vendor: 4,114 bytes, line 3886
3886else{const k=v.getViewSubImage(x,Et);Ut=k.viewport,Qe===0&&(e.setRenderTargetTextures(N,k.colorTexture,k.depthStencilTexture),e.setRenderTarget(N))}let gt=U[Qe];gt===void 0&&(gt=new mn,gt.layers.enable(Qe),gt.viewport=new cn,U[Qe]=gt),gt.matrix.fromArray(Et.transform.matrix),gt.matrix.decompose(gt.position,gt.quaternion,gt.scale),gt.projectionMatrix.fromArray(Et.projectionMatrix),gt.projectionMatrixInverse.copy(gt.projectionMatrix).invert(),gt.viewport.set(Ut.x,Ut.y,Ut.width,Ut.height),Qe===0&&(L.matrix.copy(gt.matrix),L.matrix.decompose(L.position,L.quaternion,L.scale)),Te===!0&&L.cameras.push(gt)}const Ue=o.enabledFeatures;if(Ue&&Ue.includes("depth-sensing")&&o.depthUsage=="gpu-optimized"&&v){const Qe=v.getDepthInformation(Ee[0]);Qe&&Qe.isValid&&Qe.texture&&w.init(e,Qe,o.renderState)}}for(let Ee=0;Ee<T.length;Ee++){const Te=R[Ee],Ue=T[Ee];Te!==null&&Ue!==void 0&&Ue.update(Te,xe,h||u)}ee&&ee(te,xe),xe.detectedPlanes&&a.dispatchEvent({type:"planesdetected",data:xe}),b=null}const be=new k_;be.setAnimationLoop(Me),this.setAnimationLoop=function(te){ee=te},this.dispose=function(){}}}const rr=new Ps,G7=new gn;function W7(n,e){function t(M,S){M.matrixAutoUpdate===!0&&M.updateMatrix(),S.value.copy(M.matrix)}function a(M,S){S.color.getRGB(M.fogColor.value,F_(n)),S.isFog?(M.fogNear.value=S.near,M.fogFar.value=S.far):S.isFogExp2&&(M.fogDensity.value=S.density)}function o(M,S,N,T,R){S.isMeshBasicMaterial||S.isMeshLambertMaterial?l(M,S):S.isMeshToonMaterial?(l(M,S),v(M,S)):S.isMeshPhongMaterial?(l(M,S),g(M,S)):S.isMeshStandardMaterial?(l(M,S),x(M,S),S.isMeshPhysicalMaterial&&y(M,S,R)):S.isMeshMatcapMaterial?(l(M,S),b(M,S)):S.isMeshDepthMaterial?l(M,S):S.isMeshDistanceMaterial?(l(M,S),w(M,S)):S.isMeshNormalMaterial?l(M,S):S.isLineBasicMaterial?(u(M,S),S.isLineDashedMaterial&&f(M,S)):S.isPointsMaterial?d(M,S,N,T):S.isSpriteMaterial?h(M,S):S.isShadowMaterial?(M.color.value.copy(S.color),M.opacity.value=S.opacity):S.isShaderMaterial&&(S.uniformsNeedUpdate=!1)}function l(M,S){M.opacity.value=S.opacity,S.color&&M.diffuse.value.copy(S.color),S.emissive&&M.emissive.value.copy(S.emissive).multiplyScalar(S.emissiveIntensity),S.map&&(M.map.value=S.map,t(S.map,M.mapTransform)),S.alphaMap&&(M.alphaMap.value=S.alphaMap,t(S.alphaMap,M.alphaMapTransform)),S.bumpMap&&(M.bumpMap.value=S.bumpMap,t(S.bumpMap,M.bumpMapTransform),M.bumpScale.value=S.bumpScale,S.side===ei&&(M.bumpScale.value*=-1)),S.normalMap&&(M.normalMap.value=S.normalMap,t(S.normalMap,M.normalMapTransform),M.normalScale.value.copy(S.normalScale),S.side===ei&&M.normalScale.value.negate()),S.displacementMap&&(M.displacementMap.value=S.displacementMap,t(S.displacementMap,M.displacementMapTransform),M.displacementScale.value=S.displacementScale,M.displacementBias.value=S.displacementBias),S.emissiveMap&&(M.emissiveMap.value=S.emissiveMap,t(S.emissiveMap,M.emissiveMapTransform)),S.specularMap&&(M.specularMap.value=S.specularMap,t(S.specularMap,M.specularMapTransform)),S.alphaTest>0&&(M.alphaTest.value=S.alphaTest);const N=e.get(S),T=N.envMap,R=N.envMapRotation;T&&(M.envMap.value=T,rr.copy(R),rr.x*=-1,rr.y*=-1,rr.z*=-1,T.isCubeTexture&&T.isRenderTargetTexture===!1&&(rr.y*=-1,rr.z*=-1),M.envMapRotation.value.setFromMatrix4(G7.makeRotationFromEuler(rr)),M.flipEnvMap.value=T.isCubeTexture&&T.isRenderTargetTexture===!1?-1:1,M.reflectivity.value=S.reflectivity,M.ior.value=S.ior,M.refractionRatio.value=S.refractionRatio),S.lightMap&&(M.lightMap.value=S.lightMap,M.lightMapIntensity.value=S.lightMapIntensity,t(S.lightMap,M.lightMapTransform)),S.aoMap&&(M.aoMap.value=S.aoMap,M.aoMapIntensity.value=S.aoMapIntensity,t(S.aoMap,M.aoMapTransform))}function u(M,S){M.diffuse.value.copy(S.color),M.opacity.value=S.opacity,S.map&&(M.map.value=S.map,t(S.map,M.mapTransform))}function f(M,S){M.dashSize.value=S.dashSize,M.totalSize.value=S.dashSize+S.gapSize,M.scale.value=S.scale}function d(M,S,N,T){M.diffuse.value.copy(S.color),M.opacity.value=S.opacity,M.size.value=S.size*N,M.scale.value=T*.5,S.map&&(M.map.value=S.map,t(S.map,M.uvTransform)),S.alphaMap&&(M.alphaMap.value=S.alphaMap,t(S.alphaMap,M.alphaMapTransform)),S.alphaTest>
vendor: 10,767 bytes, line 3886
38860&&(M.alphaTest.value=S.alphaTest)}function h(M,S){M.diffuse.value.copy(S.color),M.opacity.value=S.opacity,M.rotation.value=S.rotation,S.map&&(M.map.value=S.map,t(S.map,M.mapTransform)),S.alphaMap&&(M.alphaMap.value=S.alphaMap,t(S.alphaMap,M.alphaMapTransform)),S.alphaTest>0&&(M.alphaTest.value=S.alphaTest)}function g(M,S){M.specular.value.copy(S.specular),M.shininess.value=Math.max(S.shininess,1e-4)}function v(M,S){S.gradientMap&&(M.gradientMap.value=S.gradientMap)}function x(M,S){M.metalness.value=S.metalness,S.metalnessMap&&(M.metalnessMap.value=S.metalnessMap,t(S.metalnessMap,M.metalnessMapTransform)),M.roughness.value=S.roughness,S.roughnessMap&&(M.roughnessMap.value=S.roughnessMap,t(S.roughnessMap,M.roughnessMapTransform)),S.envMap&&(M.envMapIntensity.value=S.envMapIntensity)}function y(M,S,N){M.ior.value=S.ior,S.sheen>0&&(M.sheenColor.value.copy(S.sheenColor).multiplyScalar(S.sheen),M.sheenRoughness.value=S.sheenRoughness,S.sheenColorMap&&(M.sheenColorMap.value=S.sheenColorMap,t(S.sheenColorMap,M.sheenColorMapTransform)),S.sheenRoughnessMap&&(M.sheenRoughnessMap.value=S.sheenRoughnessMap,t(S.sheenRoughnessMap,M.sheenRoughnessMapTransform))),S.clearcoat>0&&(M.clearcoat.value=S.clearcoat,M.clearcoatRoughness.value=S.clearcoatRoughness,S.clearcoatMap&&(M.clearcoatMap.value=S.clearcoatMap,t(S.clearcoatMap,M.clearcoatMapTransform)),S.clearcoatRoughnessMap&&(M.clearcoatRoughnessMap.value=S.clearcoatRoughnessMap,t(S.clearcoatRoughnessMap,M.clearcoatRoughnessMapTransform)),S.clearcoatNormalMap&&(M.clearcoatNormalMap.value=S.clearcoatNormalMap,t(S.clearcoatNormalMap,M.clearcoatNormalMapTransform),M.clearcoatNormalScale.value.copy(S.clearcoatNormalScale),S.side===ei&&M.clearcoatNormalScale.value.negate())),S.dispersion>0&&(M.dispersion.value=S.dispersion),S.iridescence>0&&(M.iridescence.value=S.iridescence,M.iridescenceIOR.value=S.iridescenceIOR,M.iridescenceThicknessMinimum.value=S.iridescenceThicknessRange[0],M.iridescenceThicknessMaximum.value=S.iridescenceThicknessRange[1],S.iridescenceMap&&(M.iridescenceMap.value=S.iridescenceMap,t(S.iridescenceMap,M.iridescenceMapTransform)),S.iridescenceThicknessMap&&(M.iridescenceThicknessMap.value=S.iridescenceThicknessMap,t(S.iridescenceThicknessMap,M.iridescenceThicknessMapTransform))),S.transmission>0&&(M.transmission.value=S.transmission,M.transmissionSamplerMap.value=N.texture,M.transmissionSamplerSize.value.set(N.width,N.height),S.transmissionMap&&(M.transmissionMap.value=S.transmissionMap,t(S.transmissionMap,M.transmissionMapTransform)),M.thickness.value=S.thickness,S.thicknessMap&&(M.thicknessMap.value=S.thicknessMap,t(S.thicknessMap,M.thicknessMapTransform)),M.attenuationDistance.value=S.attenuationDistance,M.attenuationColor.value.copy(S.attenuationColor)),S.anisotropy>0&&(M.anisotropyVector.value.set(S.anisotropy*Math.cos(S.anisotropyRotation),S.anisotropy*Math.sin(S.anisotropyRotation)),S.anisotropyMap&&(M.anisotropyMap.value=S.anisotropyMap,t(S.anisotropyMap,M.anisotropyMapTransform))),M.specularIntensity.value=S.specularIntensity,M.specularColor.value.copy(S.specularColor),S.specularColorMap&&(M.specularColorMap.value=S.specularColorMap,t(S.specularColorMap,M.specularColorMapTransform)),S.specularIntensityMap&&(M.specularIntensityMap.value=S.specularIntensityMap,t(S.specularIntensityMap,M.specularIntensityMapTransform))}function b(M,S){S.matcap&&(M.matcap.value=S.matcap)}function w(M,S){const N=e.get(S).light;M.referencePosition.value.setFromMatrixPosition(N.matrixWorld),M.nearDistance.value=N.shadow.camera.near,M.farDistance.value=N.shadow.camera.far}return{refreshFogUniforms:a,refreshMaterialUniforms:o}}function X7(n,e,t,a){let o={},l={},u=[];const f=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function d(N,T){const R=T.program;a.uniformBlockBinding(N,R)}function h(N,T){let R=o[N.id];R===void 0&&(b(N),R=g(N),o[N.id]=R,N.addEventListener("dispose",M));const P=T.program;a.updateUBOMapping(N,P);const I=e.render.frame;l[N.id]!==I&&(x(N),l[N.id]=I)}function g(N){const T=v();N.__bindingPointIndex=T;const R=n.createBuffer(),P=N.__size,I=N.usage;return n.bindBuffer(n.UNIFORM_BUFFER,R),n.bufferData(n.UNIFORM_BUFFER,P,I),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,T,R),R}function v(){for(let N=0;N<f;N++)if(u.indexOf(N)===-1)return u.push(N),N;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function x(N){const T=o[N.id],R=N.uniforms,P=N.__cache;n.bindBuffer(n.UNIFORM_BUFFER,T);for(let I=0,F=R.length;I<F;I++){const V=Array.isArray(R[I])?R[I]:[R[I]];for(let U=0,L=V.length;U<L;U++){const z=V[U];if(y(z,I,U,P)===!0){const ce=z.__offset,ue=Array.isArray(z.value)?z.value:[z.value];let ge=0;for(let me=0;me<ue.length;me++){const j=ue[me],Z=w(j);typeof j=="number"||typeof j=="boolean"?(z.__data[0]=j,n.bufferSubData(n.UNIFORM_BUFFER,ce+ge,z.__data)):j.isMatrix3?(z.__data[0]=j.elements[0],z.__data[1]=j.elements[1],z.__data[2]=j.elements[2],z.__data[3]=0,z.__data[4]=j.elements[3],z.__data[5]=j.elements[4],z.__data[6]=j.elements[5],z.__data[7]=0,z.__data[8]=j.elements[6],z.__data[9]=j.elements[7],z.__data[10]=j.elements[8],z.__data[11]=0):(j.toArray(z.__data,ge),ge+=Z.storage/Float32Array.BYTES_PER_ELEMENT)}n.bufferSubData(n.UNIFORM_BUFFER,ce,z.__data)}}}n.bindBuffer(n.UNIFORM_BUFFER,null)}function y(N,T,R,P){const I=N.value,F=T+"_"+R;if(P[F]===void 0)return typeof I=="number"||typeof I=="boolean"?P[F]=I:P[F]=I.clone(),!0;{const V=P[F];if(typeof I=="number"||typeof I=="boolean"){if(V!==I)return P[F]=I,!0}else if(V.equals(I)===!1)return V.copy(I),!0}return!1}function b(N){const T=N.uniforms;let R=0;const P=16;for(let F=0,V=T.length;F<V;F++){const U=Array.isArray(T[F])?T[F]:[T[F]];for(let L=0,z=U.length;L<z;L++){const ce=U[L],ue=Array.isArray(ce.value)?ce.value:[ce.value];for(let ge=0,me=ue.length;ge<me;ge++){const j=ue[ge],Z=w(j),Y=R%P,he=Y%Z.boundary,O=Y+he;R+=he,O!==0&&P-O<Z.storage&&(R+=P-O),ce.__data=new Float32Array(Z.storage/Float32Array.BYTES_PER_ELEMENT),ce.__offset=R,R+=Z.storage}}}const I=R%P;return I>0&&(R+=P-I),N.__size=R,N.__cache={},this}function w(N){const T={boundary:0,storage:0};return typeof N=="number"||typeof N=="boolean"?(T.boundary=4,T.storage=4):N.isVector2?(T.boundary=8,T.storage=8):N.isVector3||N.isColor?(T.boundary=16,T.storage=12):N.isVector4?(T.boundary=16,T.storage=16):N.isMatrix3?(T.boundary=48,T.storage=48):N.isMatrix4?(T.boundary=64,T.storage=64):N.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",N),T}function M(N){const T=N.target;T.removeEventListener("dispose",M);const R=u.indexOf(T.__bindingPointIndex);u.splice(R,1),n.deleteBuffer(o[T.id]),delete o[T.id],delete l[T.id]}function S(){for(const N in o)n.deleteBuffer(o[N]);u=[],o={},l={}}return{bind:d,update:h,dispose:S}}class Gs{constructor(e={}){const{canvas:t=Tb(),context:a=null,depth:o=!0,stencil:l=!1,alpha:u=!1,antialias:f=!1,premultipliedAlpha:d=!0,preserveDrawingBuffer:h=!1,powerPreference:g="default",failIfMajorPerformanceCaveat:v=!1,reverseDepthBuffer:x=!1}=e;this.isWebGLRenderer=!0;let y;if(a!==null){if(typeof WebGLRenderingContext<"u"&&a instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");y=a.getContextAttributes().alpha}else y=u;const b=new Uint32Array(4),w=new Int32Array(4);let M=null,S=null;const N=[],T=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=Ra,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const R=this;let P=!1;this._outputColorSpace=hi;let I=0,F=0,V=null,U=-1,L=null;const z=new cn,ce=new cn;let ue=null;const ge=new Fe(0);let me=0,j=t.width,Z=t.height,Y=1,he=null,O=null;const ee=new cn(0,0,j,Z),Me=new cn(0,0,j,Z);let be=!1;const te=new V_;let xe=!1,Ee=!1;const Te=new gn,Ue=new gn,ut=new le,Qe=new cn,Et={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let Ut=!1;function gt(){return V===null?Y:1}let k=a;function Xt(D,Q){return t.getContext(D,Q)}try{const D={alpha:!0,depth:o,stencil:l,antialias:f,premultipliedAlpha:d,preserveDrawingBuffer:h,powerPreference:g,failIfMajorPerformanceCaveat:v};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${fm}`),t.addEventListener("webglcontextlost",Ve,!1),t.addEventListener("webglcontextrestored",Ce,!1),t.addEventListener("webglcontextcreationerror",Se,!1),k===null){const Q="webgl2";if(k=Xt(Q,D),k===null)throw Xt(Q)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(D){throw console.error("THREE.WebGLRenderer: "+D.message),D}let ft,rt,He,vt,Ke,ot,$t,B,C,J,de,fe,q,Ae,Le,ze,Ge,_e,Re,Be,We,De,tt,W;function Pe(){ft=new iT(k),ft.init(),De=new z7(k,ft),rt=new K8(k,ft,e,De),He=new B7(k,ft),rt.reverseDepthBuffer&&x&&He.buffers.depth.setReversed(!0),vt=new rT(k),Ke=new E7,ot=new F7(k,ft,He,Ke,rt,De,vt),$t=new $8(R),B=new nT(R),C=new dE(k),tt=new Y8(k,C),J=new sT(k,C,vt,tt),de=new lT(k,J,C,vt),Re=new oT(k,rt,ot),ze=new Q8(Ke),fe=new b7(R,$t,B,ft,rt,tt,ze),q=new W7(R,Ke),Ae=new T7,Le=new D7(ft),_e=new q8(R,$t,B,He,de,y,d),Ge=new O7(R,de,rt),W=new X7(k,vt,rt,He),Be=new Z8(k,ft,vt),We=new aT(k,ft,vt),vt.programs=fe.programs,R.capabilities=rt,R.extensions=ft,R.properties=Ke,R.renderLists=Ae,R.shadowMap=Ge,R.state=He,R.info=vt}Pe();const we=new k7(R,k);this.xr=we,this.getContext=function(){return k},this.getContextAttributes=function(){return k.getContextAttributes()},this.forceContextLoss=function(){const D=ft.get("WEBGL_lose_context");D&&D.loseContext()},this.forceContextRestore=function(){const D=ft.get("WEBGL_lose_context");D&&D.restoreContext()},this.getPixelRatio=function(){return Y},this.setPixelRatio=function(D){D!==void 0&&(Y=D,this.setSize(j,Z,!1))},this.getSize=function(D){return D.set(j,Z)},this.setSize=function(D,Q,re=!0){if(we.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}j=D,Z=Q,t.width=Math.floor(D*Y),t.height=Math.floor(Q*Y),re===!0&&(t.style.width=D+"px",t.style.height=Q+"px"),this.setViewport(0,0,D,Q)},this.getDrawingBufferSize=function(D){return D.set(j*Y,Z*Y).floor()},this.setDrawingBufferSize=function(D,Q,re){j=D,Z=Q,Y=re,t.width=Math.floor(D*re),t.height=Math.floor(Q*re),this.setViewport(0,0,D,Q)},this.getCurrentViewport=function(D){return D.copy(z)},this.getViewport=function(D){return D.copy(ee)},this.setViewport=function(D,Q,re,oe){D.isVector4?ee.set(D.x,D.y,D.z,D.w):ee.set(D,Q,re,oe),He.viewport(z.copy(ee).multiplyScalar(Y).round())}
vendor: 8,305 bytes, line 3886
3886,this.getScissor=function(D){return D.copy(Me)},this.setScissor=function(D,Q,re,oe){D.isVector4?Me.set(D.x,D.y,D.z,D.w):Me.set(D,Q,re,oe),He.scissor(ce.copy(Me).multiplyScalar(Y).round())},this.getScissorTest=function(){return be},this.setScissorTest=function(D){He.setScissorTest(be=D)},this.setOpaqueSort=function(D){he=D},this.setTransparentSort=function(D){O=D},this.getClearColor=function(D){return D.copy(_e.getClearColor())},this.setClearColor=function(){_e.setClearColor(...arguments)},this.getClearAlpha=function(){return _e.getClearAlpha()},this.setClearAlpha=function(){_e.setClearAlpha(...arguments)},this.clear=function(D=!0,Q=!0,re=!0){let oe=0;if(D){let $=!1;if(V!==null){const Ne=V.texture.format;$=Ne===vm||Ne===gm||Ne===mm}if($){const Ne=V.texture.type,Oe=Ne===Us||Ne===Sr||Ne===sc||Ne===ac||Ne===hm||Ne===pm,je=_e.getClearColor(),ke=_e.getClearAlpha(),it=je.r,Je=je.g,Ye=je.b;Oe?(b[0]=it,b[1]=Je,b[2]=Ye,b[3]=ke,k.clearBufferuiv(k.COLOR,0,b)):(w[0]=it,w[1]=Je,w[2]=Ye,w[3]=ke,k.clearBufferiv(k.COLOR,0,w))}else oe|=k.COLOR_BUFFER_BIT}Q&&(oe|=k.DEPTH_BUFFER_BIT),re&&(oe|=k.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),k.clear(oe)},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(){t.removeEventListener("webglcontextlost",Ve,!1),t.removeEventListener("webglcontextrestored",Ce,!1),t.removeEventListener("webglcontextcreationerror",Se,!1),_e.dispose(),Ae.dispose(),Le.dispose(),Ke.dispose(),$t.dispose(),B.dispose(),de.dispose(),tt.dispose(),W.dispose(),fe.dispose(),we.dispose(),we.removeEventListener("sessionstart",vn),we.removeEventListener("sessionend",Nn),Xn.stop()};function Ve(D){D.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),P=!0}function Ce(){console.log("THREE.WebGLRenderer: Context Restored."),P=!1;const D=vt.autoReset,Q=Ge.enabled,re=Ge.autoUpdate,oe=Ge.needsUpdate,$=Ge.type;Pe(),vt.autoReset=D,Ge.enabled=Q,Ge.autoUpdate=re,Ge.needsUpdate=oe,Ge.type=$}function Se(D){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",D.statusMessage)}function Xe(D){const Q=D.target;Q.removeEventListener("dispose",Xe),lt(Q)}function lt(D){It(D),Ke.remove(D)}function It(D){const Q=Ke.get(D).programs;Q!==void 0&&(Q.forEach(function(re){fe.releaseProgram(re)}),D.isShaderMaterial&&fe.releaseShaderCache(D))}this.renderBufferDirect=function(D,Q,re,oe,$,Ne){Q===null&&(Q=Et);const Oe=$.isMesh&&$.matrixWorld.determinant()<0,je=Fa(D,Q,re,oe,$);He.setMaterial(oe,Oe);let ke=re.index,it=1;if(oe.wireframe===!0){if(ke=J.getWireframeAttribute(re),ke===void 0)return;it=2}const Je=re.drawRange,Ye=re.attributes.position;let pt=Je.start*it,Pt=(Je.start+Je.count)*it;Ne!==null&&(pt=Math.max(pt,Ne.start*it),Pt=Math.min(Pt,(Ne.start+Ne.count)*it)),ke!==null?(pt=Math.max(pt,0),Pt=Math.min(Pt,ke.count)):Ye!=null&&(pt=Math.max(pt,0),Pt=Math.min(Pt,Ye.count));const Zt=Pt-pt;if(Zt<0||Zt===1/0)return;tt.setup($,oe,je,re,ke);let _t,Ot=Be;if(ke!==null&&(_t=C.get(ke),Ot=We,Ot.setIndex(_t)),$.isMesh)oe.wireframe===!0?(He.setLineWidth(oe.wireframeLinewidth*gt()),Ot.setMode(k.LINES)):Ot.setMode(k.TRIANGLES);else if($.isLine){let $e=oe.linewidth;$e===void 0&&($e=1),He.setLineWidth($e*gt()),$.isLineSegments?Ot.setMode(k.LINES):$.isLineLoop?Ot.setMode(k.LINE_LOOP):Ot.setMode(k.LINE_STRIP)}else $.isPoints?Ot.setMode(k.POINTS):$.isSprite&&Ot.setMode(k.TRIANGLES);if($.isBatchedMesh)if($._multiDrawInstances!==null)bo("THREE.WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),Ot.renderMultiDrawInstances($._multiDrawStarts,$._multiDrawCounts,$._multiDrawCount,$._multiDrawInstances);else if(ft.get("WEBGL_multi_draw"))Ot.renderMultiDraw($._multiDrawStarts,$._multiDrawCounts,$._multiDrawCount);else{const $e=$._multiDrawStarts,zt=$._multiDrawCounts,wt=$._multiDrawCount,En=ke?C.get(ke).bytesPerElement:1,Ks=Ke.get(oe).currentProgram.getUniforms();for(let qt=0;qt<wt;qt++)Ks.setValue(k,"_gl_DrawID",qt),Ot.render($e[qt]/En,zt[qt])}else if($.isInstancedMesh)Ot.renderInstances(pt,Zt,$.count);else if(re.isInstancedBufferGeometry){const $e=re._maxInstanceCount!==void 0?re._maxInstanceCount:1/0,zt=Math.min(re.instanceCount,$e);Ot.renderInstances(pt,Zt,zt)}else Ot.render(pt,Zt)};function Rt(D,Q,re){D.transparent===!0&&D.side===Ui&&D.forceSinglePass===!1?(D.side=ei,D.needsUpdate=!0,Ys(D,Q,re),D.side=Na,D.needsUpdate=!0,Ys(D,Q,re),D.side=Ui):Ys(D,Q,re)}this.compile=function(D,Q,re=null){re===null&&(re=D),S=Le.get(re),S.init(Q),T.push(S),re.traverseVisible(function($){$.isLight&&$.layers.test(Q.layers)&&(S.pushLight($),$.castShadow&&S.pushShadow($))}),D!==re&&D.traverseVisible(function($){$.isLight&&$.layers.test(Q.layers)&&(S.pushLight($),$.castShadow&&S.pushShadow($))}),S.setupLights();const oe=new Set;return D.traverse(function($){if(!($.isMesh||$.isPoints||$.isLine||$.isSprite))return;const Ne=$.material;if(Ne)if(Array.isArray(Ne))for(let Oe=0;Oe<Ne.length;Oe++){const je=Ne[Oe];Rt(je,re,$),oe.add(je)}else Rt(Ne,re,$),oe.add(Ne)}),S=T.pop(),oe},this.compileAsync=function(D,Q,re=null){const oe=this.compile(D,Q,re);return new Promise($=>{function Ne(){if(oe.forEach(function(Oe){Ke.get(Oe).currentProgram.isReady()&&oe.delete(Oe)}),oe.size===0){$(D);return}setTimeout(Ne,10)}ft.get("KHR_parallel_shader_compile")!==null?Ne():setTimeout(Ne,10)})};let ni=null;function bn(D){ni&&ni(D)}function vn(){Xn.stop()}function Nn(){Xn.start()}const Xn=new k_;Xn.setAnimationLoop(bn),typeof self<"u"&&Xn.setContext(self),this.setAnimationLoop=function(D){ni=D,we.setAnimationLoop(D),D===null?Xn.stop():Xn.start()},we.addEventListener("sessionstart",vn),we.addEventListener("sessionend",Nn),this.render=function(D,Q){if(Q!==void 0&&Q.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(P===!0)return;if(D.matrixWorldAutoUpdate===!0&&D.updateMatrixWorld(),Q.parent===null&&Q.matrixWorldAutoUpdate===!0&&Q.updateMatrixWorld(),we.enabled===!0&&we.isPresenting===!0&&(we.cameraAutoUpdate===!0&&we.updateCamera(Q),Q=we.getCamera()),D.isScene===!0&&D.onBeforeRender(R,D,Q,V),S=Le.get(D,T.length),S.init(Q),T.push(S),Ue.multiplyMatrices(Q.projectionMatrix,Q.matrixWorldInverse),te.setFromProjectionMatrix(Ue),Ee=this.localClippingEnabled,xe=ze.init(this.clippingPlanes,Ee),M=Ae.get(D,N.length),M.init(),N.push(M),we.enabled===!0&&we.isPresenting===!0){const Ne=R.xr.getDepthSensingMesh();Ne!==null&&Ia(Ne,Q,-1/0,R.sortObjects)}Ia(D,Q,0,R.sortObjects),M.finish(),R.sortObjects===!0&&M.sort(he,O),Ut=we.enabled===!1||we.isPresenting===!1||we.hasDepthSensing()===!1,Ut&&_e.addToRenderList(M,D),this.info.render.frame++,xe===!0&&ze.beginShadows();const re=S.state.shadowsArray;Ge.render(re,D,Q),xe===!0&&ze.endShadows(),this.info.autoReset===!0&&this.info.reset();const oe=M.opaque,$=M.transmissive;if(S.setupLights(),Q.isArrayCamera){const Ne=Q.cameras;if($.length>0)for(let Oe=0,je=Ne.length;Oe<je;Oe++){const ke=Ne[Oe];Ac(oe,$,D,ke)}Ut&&_e.render(D);for(let Oe=0,je=Ne.length;Oe<je;Oe++){const ke=Ne[Oe];Cc(M,D,ke,ke.viewport)}}else $.length>0&&Ac(oe,$,D,Q),Ut&&_e.render(D),Cc(M,D,Q);V!==null&&F===0&&(ot.updateMultisampleRenderTarget(V),ot.updateRenderTargetMipmap(V)),D.isScene===!0&&D.onAfterRender(R,D,Q),tt.resetDefaultState(),U=-1,L=null,T.pop(),T.length>0?(S=T[T.length-1],xe===!0&&ze.setGlobalState(R.clippingPlanes,S.state.camera)):S=null,N.pop(),N.length>0?M=N[N.length-1]:M=null};function Ia(D,Q,re,oe){if(D.visible===!1)return;if(D.layers.test(Q.layers)){if(D.isGroup)re=D.renderOrder;else if(D.isLOD)D.autoUpdate===!0&&D.update(Q);else if(D.isLight)S.pushLight(D),D.castShadow&&S.pushShadow(D);else if(D.isSprite){if(!D.frustumCulled||te.intersectsSprite(D)){oe&&Qe.setFromMatrixPosition(D.matrixWorld).applyMatrix4(Ue);const Oe=de.update(D),je=D.material;je.visible&&M.push(D,Oe,je,re,Qe.z,null)}}else if((D.isMesh||D.isLine||D.isPoints)&&(!D.frustumCulled||te.intersectsObject(D))){const Oe=de.update(D),je=D.material;if(oe&&(D.boundingSphere!==void 0?(D.boundingSphere===null&&D.computeBoundingSphere(),Qe.copy(D.boundingSphere.center)):(Oe.boundingSphere===null&&Oe.computeBoundingSphere(),Qe.copy(Oe.boundingSphere.center)),Qe.applyM
vendor: 11,310 bytes, line 3886
3886atrix4(D.matrixWorld).applyMatrix4(Ue)),Array.isArray(je)){const ke=Oe.groups;for(let it=0,Je=ke.length;it<Je;it++){const Ye=ke[it],pt=je[Ye.materialIndex];pt&&pt.visible&&M.push(D,Oe,pt,re,Qe.z,Ye)}}else je.visible&&M.push(D,Oe,je,re,Qe.z,null)}}const Ne=D.children;for(let Oe=0,je=Ne.length;Oe<je;Oe++)Ia(Ne[Oe],Q,re,oe)}function Cc(D,Q,re,oe){const $=D.opaque,Ne=D.transmissive,Oe=D.transparent;S.setupLightsView(re),xe===!0&&ze.setGlobalState(R.clippingPlanes,re),oe&&He.viewport(z.copy(oe)),$.length>0&&Ba($,Q,re),Ne.length>0&&Ba(Ne,Q,re),Oe.length>0&&Ba(Oe,Q,re),He.buffers.depth.setTest(!0),He.buffers.depth.setMask(!0),He.buffers.color.setMask(!0),He.setPolygonOffset(!1)}function Ac(D,Q,re,oe){if((re.isScene===!0?re.overrideMaterial:null)!==null)return;S.state.transmissionRenderTarget[oe.id]===void 0&&(S.state.transmissionRenderTarget[oe.id]=new Mr(1,1,{generateMipmaps:!0,type:ft.has("EXT_color_buffer_half_float")||ft.has("EXT_color_buffer_float")?xc:Us,minFilter:gr,samples:4,stencilBuffer:l,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Lt.workingColorSpace}));const Ne=S.state.transmissionRenderTarget[oe.id],Oe=oe.viewport||z;Ne.setSize(Oe.z*R.transmissionResolutionScale,Oe.w*R.transmissionResolutionScale);const je=R.getRenderTarget(),ke=R.getActiveCubeFace(),it=R.getActiveMipmapLevel();R.setRenderTarget(Ne),R.getClearColor(ge),me=R.getClearAlpha(),me<1&&R.setClearColor(16777215,.5),R.clear(),Ut&&_e.render(re);const Je=R.toneMapping;R.toneMapping=Ra;const Ye=oe.viewport;if(oe.viewport!==void 0&&(oe.viewport=void 0),S.setupLightsView(oe),xe===!0&&ze.setGlobalState(R.clippingPlanes,oe),Ba(D,re,oe),ot.updateMultisampleRenderTarget(Ne),ot.updateRenderTargetMipmap(Ne),ft.has("WEBGL_multisampled_render_to_texture")===!1){let pt=!1;for(let Pt=0,Zt=Q.length;Pt<Zt;Pt++){const _t=Q[Pt],Ot=_t.object,$e=_t.geometry,zt=_t.material,wt=_t.group;if(zt.side===Ui&&Ot.layers.test(oe.layers)){const En=zt.side;zt.side=ei,zt.needsUpdate=!0,qs(Ot,re,oe,$e,zt,wt),zt.side=En,zt.needsUpdate=!0,pt=!0}}pt===!0&&(ot.updateMultisampleRenderTarget(Ne),ot.updateRenderTargetMipmap(Ne))}R.setRenderTarget(je,ke,it),R.setClearColor(ge,me),Ye!==void 0&&(oe.viewport=Ye),R.toneMapping=Je}function Ba(D,Q,re){const oe=Q.isScene===!0?Q.overrideMaterial:null;for(let $=0,Ne=D.length;$<Ne;$++){const Oe=D[$],je=Oe.object,ke=Oe.geometry,it=Oe.group;let Je=Oe.material;Je.allowOverride===!0&&oe!==null&&(Je=oe),je.layers.test(re.layers)&&qs(je,Q,re,ke,Je,it)}}function qs(D,Q,re,oe,$,Ne){D.onBeforeRender(R,Q,re,oe,$,Ne),D.modelViewMatrix.multiplyMatrices(re.matrixWorldInverse,D.matrixWorld),D.normalMatrix.getNormalMatrix(D.modelViewMatrix),$.onBeforeRender(R,Q,re,oe,D,Ne),$.transparent===!0&&$.side===Ui&&$.forceSinglePass===!1?($.side=ei,$.needsUpdate=!0,R.renderBufferDirect(re,Q,oe,$,D,Ne),$.side=Na,$.needsUpdate=!0,R.renderBufferDirect(re,Q,oe,$,D,Ne),$.side=Ui):R.renderBufferDirect(re,Q,oe,$,D,Ne),D.onAfterRender(R,Q,re,oe,$,Ne)}function Ys(D,Q,re){Q.isScene!==!0&&(Q=Et);const oe=Ke.get(D),$=S.state.lights,Ne=S.state.shadowsArray,Oe=$.state.version,je=fe.getParameters(D,$.state,Ne,Q,re),ke=fe.getProgramCacheKey(je);let it=oe.programs;oe.environment=D.isMeshStandardMaterial?Q.environment:null,oe.fog=Q.fog,oe.envMap=(D.isMeshStandardMaterial?B:$t).get(D.envMap||oe.environment),oe.envMapRotation=oe.environment!==null&&D.envMap===null?Q.environmentRotation:D.envMapRotation,it===void 0&&(D.addEventListener("dispose",Xe),it=new Map,oe.programs=it);let Je=it.get(ke);if(Je!==void 0){if(oe.currentProgram===Je&&oe.lightsStateVersion===Oe)return is(D,je),Je}else je.uniforms=fe.getUniforms(D),D.onBeforeCompile(je,R),Je=fe.acquireProgram(je,ke),it.set(ke,Je),oe.uniforms=je.uniforms;const Ye=oe.uniforms;return(!D.isShaderMaterial&&!D.isRawShaderMaterial||D.clipping===!0)&&(Ye.clippingPlanes=ze.uniform),is(D,je),oe.needsLights=un(D),oe.lightsStateVersion=Oe,oe.needsLights&&(Ye.ambientLightColor.value=$.state.ambient,Ye.lightProbe.value=$.state.probe,Ye.directionalLights.value=$.state.directional,Ye.directionalLightShadows.value=$.state.directionalShadow,Ye.spotLights.value=$.state.spot,Ye.spotLightShadows.value=$.state.spotShadow,Ye.rectAreaLights.value=$.state.rectArea,Ye.ltc_1.value=$.state.rectAreaLTC1,Ye.ltc_2.value=$.state.rectAreaLTC2,Ye.pointLights.value=$.state.point,Ye.pointLightShadows.value=$.state.pointShadow,Ye.hemisphereLights.value=$.state.hemi,Ye.directionalShadowMap.value=$.state.directionalShadowMap,Ye.directionalShadowMatrix.value=$.state.directionalShadowMatrix,Ye.spotShadowMap.value=$.state.spotShadowMap,Ye.spotLightMatrix.value=$.state.spotLightMatrix,Ye.spotLightMap.value=$.state.spotLightMap,Ye.pointShadowMap.value=$.state.pointShadowMap,Ye.pointShadowMatrix.value=$.state.pointShadowMatrix),oe.currentProgram=Je,oe.uniformsList=null,Je}function ns(D){if(D.uniformsList===null){const Q=D.currentProgram.getUniforms();D.uniformsList=vf.seqWithValue(Q.seq,D.uniforms)}return D.uniformsList}function is(D,Q){const re=Ke.get(D);re.outputColorSpace=Q.outputColorSpace,re.batching=Q.batching,re.batchingColor=Q.batchingColor,re.instancing=Q.instancing,re.instancingColor=Q.instancingColor,re.instancingMorph=Q.instancingMorph,re.skinning=Q.skinning,re.morphTargets=Q.morphTargets,re.morphNormals=Q.morphNormals,re.morphColors=Q.morphColors,re.morphTargetsCount=Q.morphTargetsCount,re.numClippingPlanes=Q.numClippingPlanes,re.numIntersection=Q.numClipIntersection,re.vertexAlphas=Q.vertexAlphas,re.vertexTangents=Q.vertexTangents,re.toneMapping=Q.toneMapping}function Fa(D,Q,re,oe,$){Q.isScene!==!0&&(Q=Et),ot.resetTextureUnits();const Ne=Q.fog,Oe=oe.isMeshStandardMaterial?Q.environment:null,je=V===null?R.outputColorSpace:V.isXRRenderTarget===!0?V.texture.colorSpace:Ro,ke=(oe.isMeshStandardMaterial?B:$t).get(oe.envMap||Oe),it=oe.vertexColors===!0&&!!re.attributes.color&&re.attributes.color.itemSize===4,Je=!!re.attributes.tangent&&(!!oe.normalMap||oe.anisotropy>0),Ye=!!re.morphAttributes.position,pt=!!re.morphAttributes.normal,Pt=!!re.morphAttributes.color;let Zt=Ra;oe.toneMapped&&(V===null||V.isXRRenderTarget===!0)&&(Zt=R.toneMapping);const _t=re.morphAttributes.position||re.morphAttributes.normal||re.morphAttributes.color,Ot=_t!==void 0?_t.length:0,$e=Ke.get(oe),zt=S.state.lights;if(xe===!0&&(Ee===!0||D!==L)){const wn=D===L&&oe.id===U;ze.setState(oe,D,wn)}let wt=!1;oe.version===$e.__version?($e.needsLights&&$e.lightsStateVersion!==zt.state.version||$e.outputColorSpace!==je||$.isBatchedMesh&&$e.batching===!1||!$.isBatchedMesh&&$e.batching===!0||$.isBatchedMesh&&$e.batchingColor===!0&&$.colorTexture===null||$.isBatchedMesh&&$e.batchingColor===!1&&$.colorTexture!==null||$.isInstancedMesh&&$e.instancing===!1||!$.isInstancedMesh&&$e.instancing===!0||$.isSkinnedMesh&&$e.skinning===!1||!$.isSkinnedMesh&&$e.skinning===!0||$.isInstancedMesh&&$e.instancingColor===!0&&$.instanceColor===null||$.isInstancedMesh&&$e.instancingColor===!1&&$.instanceColor!==null||$.isInstancedMesh&&$e.instancingMorph===!0&&$.morphTexture===null||$.isInstancedMesh&&$e.instancingMorph===!1&&$.morphTexture!==null||$e.envMap!==ke||oe.fog===!0&&$e.fog!==Ne||$e.numClippingPlanes!==void 0&&($e.numClippingPlanes!==ze.numPlanes||$e.numIntersection!==ze.numIntersection)||$e.vertexAlphas!==it||$e.vertexTangents!==Je||$e.morphTargets!==Ye||$e.morphNormals!==pt||$e.morphColors!==Pt||$e.toneMapping!==Zt||$e.morphTargetsCount!==Ot)&&(wt=!0):(wt=!0,$e.__version=oe.version);let En=$e.currentProgram;wt===!0&&(En=Ys(oe,Q,$));let Ks=!1,qt=!1,as=!1;const Gt=En.getUniforms(),In=$e.uniforms;if(He.useProgram(En.program)&&(Ks=!0,qt=!0,as=!0),oe.id!==U&&(U=oe.id,qt=!0),Ks||L!==D){He.buffers.depth.getReversed()?(Te.copy(D.projectionMatrix),Ab(Te),Rb(Te),Gt.setValue(k,"projectionMatrix",Te)):Gt.setValue(k,"projectionMatrix",D.projectionMatrix),Gt.setValue(k,"viewMatrix",D.matrixWorldInverse);const Ln=Gt.map.cameraPosition;Ln!==void 0&&Ln.setValue(k,ut.setFromMatrixPosition(D.matrixWorld)),rt.logarithmicDepthBuffer&&Gt.setValue(k,"logDepthBufFC",2/(Math.log(D.far+1)/Math.LN2)),(oe.isMeshPhongMaterial||oe.isMeshToonMaterial||oe.isMeshLambertMaterial||oe.isMeshBasicMaterial||oe.isMeshStandardMaterial||oe.isShaderMaterial)&&Gt.setValue(k,"isOrthographic",D.isOrthographicCamera===!0),L!==D&&(L=D,qt=!0,as=!0)}if($.isSkinnedMesh){Gt.setOptional(k,$,"bindMatrix"),Gt.setOptional(k,$,"bindMatrixInverse");const wn=$.skeleton;wn&&(wn.boneTexture===null&&wn.computeBoneTexture(),Gt.setValue(k,"boneTexture",wn.boneTexture,ot))}$.isBatchedMesh&&(Gt.setOptional(k,$,"batchingTexture"),Gt.setValue(k,"batchingTexture",$._matricesTexture,ot),Gt.setOptional(k,$,"batchingIdTexture"),Gt.setValue(k,"batchingIdTexture",$._indirectTexture,ot),Gt.setOptional(k,$,"batchingColorTexture"),$._colorsTexture!==null&&Gt.setValue(k,"batchingColorTexture",$._colorsTexture,ot));const xn=re.morphAttributes;if((xn.position!==void 0||xn.normal!==void 0||xn.color!==void 0)&&Re.update($,re,En),(qt||$e.receiveShadow!==$.receiveShadow)&&($e.receiveShadow=$.receiveShadow,Gt.setValue(k,"receiveShadow",$.receiveShadow)),oe.isMeshGouraudMaterial&&oe.envMap!==null&&(In.envMap.value=ke,In.flipEnvMap.value=ke.isCubeTexture&&ke.isRenderTargetTexture===!1?-1:1),oe.isMeshStandardMaterial&&oe.envMap===null&&Q.environment!==null&&(In.envMapIntensity.value=Q.environmentIntensity),qt&&(Gt.setValue(k,"toneMappingExposure",R.toneMappingExposure),$e.needsLights&&Zs(In,as),Ne&&oe.fog===!0&&q.refreshFogUniforms(In,Ne),q.refreshMaterialUniforms(In,oe,Y,Z,S.state.transmissionRenderTarget[D.id]),vf.upload(k,ns($e),In,ot)),oe.isShaderMaterial&&oe.uniformsNeedUpdate===!0&&(vf.upload(k,ns($e),In,ot),oe.uniformsNeedUpdate=!1),oe.isSpriteMaterial&&Gt.setValue(k,"center",$.center),Gt.setValue(k,"modelViewMatrix",$.modelViewMatrix),Gt.setValue(k,"normalMatrix",$.normalMatrix),Gt.setValue(k,"modelMatrix",$.matrixWorld),oe.isShaderMaterial||oe.isRawShaderMaterial){const wn=oe.uniformsGroups;for(let Ln=0,Fi=wn.length;Ln<Fi;Ln++){const rs=wn[Ln];W.update(rs,En),W.bind(rs,En)}}return En}function Zs(D,Q){D.ambientLightColor.needsUpdate=Q,D.lightProbe.needsUpdate=Q,D.directionalLights.needsUpdate=Q,D.directionalLightShadows.needsUpdate=Q,D.pointLights.needsUpdate=Q,D.pointLightShadows.needsUpdate=Q,D.spotLights.needsUpdate=Q,D.spotLightShadows.needsUpdate=Q,D.rectAreaLights.needsUpdate=Q,D.hemisphereLights.needsUpdate=Q}function un(D){return D.isMeshLambertMaterial||D.isMeshToonMaterial||D.isMeshPhongMaterial||D.isMeshStandardMaterial||D.isShadowMaterial||D.isShaderMaterial&&D.lights===!0}this.getActiveCubeFace=function(){return I},this.getActiveMipmapLevel=function(){return F},this.getRenderTarget=function(){return V},this.setRenderTargetTextures=function(D,Q,re){const oe=Ke.get(D);oe.__autoAllocateDepthBuffer=D.resolveDepthBuffer===!1,oe.__autoAllocateDepthBuffer===!1&&(oe.__useRenderToTexture=!1),Ke.get(D.texture).__webglTexture=Q,Ke.get(D.depthTexture).__webglTexture=oe.__autoAllocateDepthBuffer?void 0:re,oe.__hasExternalTextures=!0},this.setRenderTargetFramebuffer=function(D,Q){const re=Ke.get(D);re.__webglFramebuffer=Q,re.__useDefaultFramebuffer=Q===void 0};const Rc=k.createFramebuffer();this.setRenderTarget=function(D,Q=0,re=0){V=D,I=Q,F=re;let oe=!0,$=null,Ne=!1,Oe=!1;if(D){const ke=Ke.get(D);if(ke.__useDefaultFramebuffer!==void 0)He.bindFramebuffer(k.FRAMEBUFFER,null),oe=!1;
vendor: 4,536 bytes, line 3886
3886else if(ke.__webglFramebuffer===void 0)ot.setupRenderTarget(D);else if(ke.__hasExternalTextures)ot.rebindTextures(D,Ke.get(D.texture).__webglTexture,Ke.get(D.depthTexture).__webglTexture);else if(D.depthBuffer){const Ye=D.depthTexture;if(ke.__boundDepthTexture!==Ye){if(Ye!==null&&Ke.has(Ye)&&(D.width!==Ye.image.width||D.height!==Ye.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");ot.setupDepthRenderbuffer(D)}}const it=D.texture;(it.isData3DTexture||it.isDataArrayTexture||it.isCompressedArrayTexture)&&(Oe=!0);const Je=Ke.get(D).__webglFramebuffer;D.isWebGLCubeRenderTarget?(Array.isArray(Je[Q])?$=Je[Q][re]:$=Je[Q],Ne=!0):D.samples>0&&ot.useMultisampledRTT(D)===!1?$=Ke.get(D).__webglMultisampledFramebuffer:Array.isArray(Je)?$=Je[re]:$=Je,z.copy(D.viewport),ce.copy(D.scissor),ue=D.scissorTest}else z.copy(ee).multiplyScalar(Y).floor(),ce.copy(Me).multiplyScalar(Y).floor(),ue=be;if(re!==0&&($=Rc),He.bindFramebuffer(k.FRAMEBUFFER,$)&&oe&&He.drawBuffers(D,$),He.viewport(z),He.scissor(ce),He.setScissorTest(ue),Ne){const ke=Ke.get(D.texture);k.framebufferTexture2D(k.FRAMEBUFFER,k.COLOR_ATTACHMENT0,k.TEXTURE_CUBE_MAP_POSITIVE_X+Q,ke.__webglTexture,re)}else if(Oe){const ke=Ke.get(D.texture),it=Q;k.framebufferTextureLayer(k.FRAMEBUFFER,k.COLOR_ATTACHMENT0,ke.__webglTexture,re,it)}else if(D!==null&&re!==0){const ke=Ke.get(D.texture);k.framebufferTexture2D(k.FRAMEBUFFER,k.COLOR_ATTACHMENT0,k.TEXTURE_2D,ke.__webglTexture,re)}U=-1},this.readRenderTargetPixels=function(D,Q,re,oe,$,Ne,Oe,je=0){if(!(D&&D.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let ke=Ke.get(D).__webglFramebuffer;if(D.isWebGLCubeRenderTarget&&Oe!==void 0&&(ke=ke[Oe]),ke){He.bindFramebuffer(k.FRAMEBUFFER,ke);try{const it=D.textures[je],Je=it.format,Ye=it.type;if(!rt.textureFormatReadable(Je)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!rt.textureTypeReadable(Ye)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}Q>=0&&Q<=D.width-oe&&re>=0&&re<=D.height-$&&(D.textures.length>1&&k.readBuffer(k.COLOR_ATTACHMENT0+je),k.readPixels(Q,re,oe,$,De.convert(Je),De.convert(Ye),Ne))}finally{const it=V!==null?Ke.get(V).__webglFramebuffer:null;He.bindFramebuffer(k.FRAMEBUFFER,it)}}},this.readRenderTargetPixelsAsync=async function(D,Q,re,oe,$,Ne,Oe,je=0){if(!(D&&D.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let ke=Ke.get(D).__webglFramebuffer;if(D.isWebGLCubeRenderTarget&&Oe!==void 0&&(ke=ke[Oe]),ke)if(Q>=0&&Q<=D.width-oe&&re>=0&&re<=D.height-$){He.bindFramebuffer(k.FRAMEBUFFER,ke);const it=D.textures[je],Je=it.format,Ye=it.type;if(!rt.textureFormatReadable(Je))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!rt.textureTypeReadable(Ye))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const pt=k.createBuffer();k.bindBuffer(k.PIXEL_PACK_BUFFER,pt),k.bufferData(k.PIXEL_PACK_BUFFER,Ne.byteLength,k.STREAM_READ),D.textures.length>1&&k.readBuffer(k.COLOR_ATTACHMENT0+je),k.readPixels(Q,re,oe,$,De.convert(Je),De.convert(Ye),0);const Pt=V!==null?Ke.get(V).__webglFramebuffer:null;He.bindFramebuffer(k.FRAMEBUFFER,Pt);const Zt=k.fenceSync(k.SYNC_GPU_COMMANDS_COMPLETE,0);return k.flush(),await Cb(k,Zt,4),k.bindBuffer(k.PIXEL_PACK_BUFFER,pt),k.getBufferSubData(k.PIXEL_PACK_BUFFER,0,Ne),k.deleteBuffer(pt),k.deleteSync(Zt),Ne}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(D,Q=null,re=0){const oe=Math.pow(2,-re),$=Math.floor(D.image.width*oe),Ne=Math.floor(D.image.height*oe),Oe=Q!==null?Q.x:0,je=Q!==null?Q.y:0;ot.setTexture2D(D,0),k.copyTexSubImage2D(k.TEXTURE_2D,re,0,0,Oe,je,$,Ne),He.unbindTexture()};const Nc=k.createFramebuffer(),ss=k.createFramebuffer();this.copyTextureToTexture=function(D,Q,re=null,oe=null,$=0,Ne=null){Ne===null&&($!==0?(bo("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),Ne=$,$=0):Ne=0);let Oe,je,ke,it,Je,Ye,pt,Pt,Zt;const _t=D.isCompressedTexture?D.mipmaps[Ne]:D.image;
vendor: 4,278 bytes, line 3886
3886if(re!==null)Oe=re.max.x-re.min.x,je=re.max.y-re.min.y,ke=re.isBox3?re.max.z-re.min.z:1,it=re.min.x,Je=re.min.y,Ye=re.isBox3?re.min.z:0;else{const xn=Math.pow(2,-$);Oe=Math.floor(_t.width*xn),je=Math.floor(_t.height*xn),D.isDataArrayTexture?ke=_t.depth:D.isData3DTexture?ke=Math.floor(_t.depth*xn):ke=1,it=0,Je=0,Ye=0}oe!==null?(pt=oe.x,Pt=oe.y,Zt=oe.z):(pt=0,Pt=0,Zt=0);const Ot=De.convert(Q.format),$e=De.convert(Q.type);let zt;Q.isData3DTexture?(ot.setTexture3D(Q,0),zt=k.TEXTURE_3D):Q.isDataArrayTexture||Q.isCompressedArrayTexture?(ot.setTexture2DArray(Q,0),zt=k.TEXTURE_2D_ARRAY):(ot.setTexture2D(Q,0),zt=k.TEXTURE_2D),k.pixelStorei(k.UNPACK_FLIP_Y_WEBGL,Q.flipY),k.pixelStorei(k.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Q.premultiplyAlpha),k.pixelStorei(k.UNPACK_ALIGNMENT,Q.unpackAlignment);const wt=k.getParameter(k.UNPACK_ROW_LENGTH),En=k.getParameter(k.UNPACK_IMAGE_HEIGHT),Ks=k.getParameter(k.UNPACK_SKIP_PIXELS),qt=k.getParameter(k.UNPACK_SKIP_ROWS),as=k.getParameter(k.UNPACK_SKIP_IMAGES);k.pixelStorei(k.UNPACK_ROW_LENGTH,_t.width),k.pixelStorei(k.UNPACK_IMAGE_HEIGHT,_t.height),k.pixelStorei(k.UNPACK_SKIP_PIXELS,it),k.pixelStorei(k.UNPACK_SKIP_ROWS,Je),k.pixelStorei(k.UNPACK_SKIP_IMAGES,Ye);const Gt=D.isDataArrayTexture||D.isData3DTexture,In=Q.isDataArrayTexture||Q.isData3DTexture;if(D.isDepthTexture){const xn=Ke.get(D),wn=Ke.get(Q),Ln=Ke.get(xn.__renderTarget),Fi=Ke.get(wn.__renderTarget);He.bindFramebuffer(k.READ_FRAMEBUFFER,Ln.__webglFramebuffer),He.bindFramebuffer(k.DRAW_FRAMEBUFFER,Fi.__webglFramebuffer);for(let rs=0;rs<ke;rs++)Gt&&(k.framebufferTextureLayer(k.READ_FRAMEBUFFER,k.COLOR_ATTACHMENT0,Ke.get(D).__webglTexture,$,Ye+rs),k.framebufferTextureLayer(k.DRAW_FRAMEBUFFER,k.COLOR_ATTACHMENT0,Ke.get(Q).__webglTexture,Ne,Zt+rs)),k.blitFramebuffer(it,Je,Oe,je,pt,Pt,Oe,je,k.DEPTH_BUFFER_BIT,k.NEAREST);He.bindFramebuffer(k.READ_FRAMEBUFFER,null),He.bindFramebuffer(k.DRAW_FRAMEBUFFER,null)}else if($!==0||D.isRenderTargetTexture||Ke.has(D)){const xn=Ke.get(D),wn=Ke.get(Q);He.bindFramebuffer(k.READ_FRAMEBUFFER,Nc),He.bindFramebuffer(k.DRAW_FRAMEBUFFER,ss);for(let Ln=0;Ln<ke;Ln++)Gt?k.framebufferTextureLayer(k.READ_FRAMEBUFFER,k.COLOR_ATTACHMENT0,xn.__webglTexture,$,Ye+Ln):k.framebufferTexture2D(k.READ_FRAMEBUFFER,k.COLOR_ATTACHMENT0,k.TEXTURE_2D,xn.__webglTexture,$),In?k.framebufferTextureLayer(k.DRAW_FRAMEBUFFER,k.COLOR_ATTACHMENT0,wn.__webglTexture,Ne,Zt+Ln):k.framebufferTexture2D(k.DRAW_FRAMEBUFFER,k.COLOR_ATTACHMENT0,k.TEXTURE_2D,wn.__webglTexture,Ne),$!==0?k.blitFramebuffer(it,Je,Oe,je,pt,Pt,Oe,je,k.COLOR_BUFFER_BIT,k.NEAREST):In?k.copyTexSubImage3D(zt,Ne,pt,Pt,Zt+Ln,it,Je,Oe,je):k.copyTexSubImage2D(zt,Ne,pt,Pt,it,Je,Oe,je);He.bindFramebuffer(k.READ_FRAMEBUFFER,null),He.bindFramebuffer(k.DRAW_FRAMEBUFFER,null)}else In?D.isDataTexture||D.isData3DTexture?k.texSubImage3D(zt,Ne,pt,Pt,Zt,Oe,je,ke,Ot,$e,_t.data):Q.isCompressedArrayTexture?k.compressedTexSubImage3D(zt,Ne,pt,Pt,Zt,Oe,je,ke,Ot,_t.data):k.texSubImage3D(zt,Ne,pt,Pt,Zt,Oe,je,ke,Ot,$e,_t):D.isDataTexture?k.texSubImage2D(k.TEXTURE_2D,Ne,pt,Pt,Oe,je,Ot,$e,_t.data):D.isCompressedTexture?k.compressedTexSubImage2D(k.TEXTURE_2D,Ne,pt,Pt,_t.width,_t.height,Ot,_t.data):k.texSubImage2D(k.TEXTURE_2D,Ne,pt,Pt,Oe,je,Ot,$e,_t);k.pixelStorei(k.UNPACK_ROW_LENGTH,wt),k.pixelStorei(k.UNPACK_IMAGE_HEIGHT,En),k.pixelStorei(k.UNPACK_SKIP_PIXELS,Ks),k.pixelStorei(k.UNPACK_SKIP_ROWS,qt),k.pixelStorei(k.UNPACK_SKIP_IMAGES,as),Ne===0&&Q.generateMipmaps&&k.generateMipmap(zt),He.unbindTexture()},this.copyTextureToTexture3D=function(D,Q,re=null,oe=null,$=0){return bo('WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use "copyTextureToTexture" instead.'),this.copyTextureToTexture(D,Q,re,oe,$)},this.initRenderTarget=function(D){Ke.get(D).__webglFramebuffer===void 0&&ot.setupRenderTarget(D)},this.initTexture=function(D){D.isCubeTexture?ot.setTextureCube(D,0):D.isData3DTexture?ot.setTexture3D(D,0):D.isDataArrayTexture||D.isCompressedArrayTexture?ot.setTexture2DArray(D,0):ot.setTexture2D(D,0),He.unbindTexture()},this.resetState=function(){I=0,F=0,V=null,He.reset(),tt.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Rs}get outputColorSpace(){return this._outputColorSpace}
3886set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=Lt._getDrawingBufferColorSpace(e),t.unpackColorSpace=Lt._getUnpackColorSpace()}}const q7=`precision highp float;
3887
3888uniform float uTime;
3889
3890uniform float uWavesAmplitude;
3891uniform float uWavesSpeed;
3892uniform float uWavesFrequency;
3893uniform float uWavesPersistence;
3894uniform float uWavesLacunarity;
3895uniform float uWavesIterations;
3896
3897varying vec3 vNormal;
3898varying vec3 vWorldPosition;
3899
3900//	Simplex 3D Noise 
3901//	by Ian McEwan, Stefan Gustavson (https://github.com/stegu/webgl-noise)
3902//
3903vec4 permute(vec4 x) {
3904  return mod(((x * 34.0) + 1.0) * x, 289.0);
3905}
3906vec4 taylorInvSqrt(vec4 r) {
3907  return 1.79284291400159 - 0.85373472095314 * r;
3908}
3909
3910// Simplex 2D noise
3911//
3912vec3 permute(vec3 x) {
3913  return mod(((x * 34.0) + 1.0) * x, 289.0);
3914}
3915
3916float snoise(vec2 v) {
3917  const vec4 C = vec4(0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439);
3918  vec2 i = floor(v + dot(v, C.yy));
3919  vec2 x0 = v - i + dot(i, C.xx);
3920  vec2 i1;
3921  i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
3922  vec4 x12 = x0.xyxy + C.xxzz;
3923  x12.xy -= i1;
3924  i = mod(i, 289.0);
3925  vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));
3926  vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0);
3927  m = m * m;
3928  m = m * m;
3929  vec3 x = 2.0 * fract(p * C.www) - 1.0;
3930  vec3 h = abs(x) - 0.5;
3931  vec3 ox = floor(x + 0.5);
3932  vec3 a0 = x - ox;
3933  m *= 1.79284291400159 - 0.85373472095314 * (a0 * a0 + h * h);
3934  vec3 g;
3935  g.x = a0.x * x0.x + h.x * x0.y;
3936  g.yz = a0.yz * x12.xz + h.yz * x12.yw;
3937  return 130.0 * dot(m, g);
3938}
3939
3940// Helper function to calculate elevation at any point
3941float getElevation(float x, float z) {
3942  vec2 pos = vec2(x, z);
3943
3944  float elevation = 0.0;
3945  float amplitude = 1.0;
3946  float frequency = uWavesFrequency;
3947  vec2 p = pos.xy;
3948
3949  for(float i = 0.0; i < uWavesIterations; i++) {
3950    float noiseValue = snoise(p * frequency + uTime * uWavesSpeed);
3951    elevation += amplitude * noiseValue;
3952    amplitude *= uWavesPersistence;
3953    frequency *= uWavesLacunarity;
3954  }
3955
3956  elevation *= uWavesAmplitude;
3957
3958  return elevation;
3959}
3960
3961void main() {
3962  vec4 modelPosition = modelMatrix * vec4(position, 1.0);
3963
3964  float elevation = getElevation(modelPosition.x, modelPosition.z);
3965  modelPosition.y += elevation;
3966
3967  // Calculate normal using partial derivatives
3968  float eps = 0.001;
3969  vec3 tangent = normalize(vec3(eps, getElevation(modelPosition.x - eps, modelPosition.z) - elevation, 0.0));
3970  vec3 bitangent = normalize(vec3(0.0, getElevation(modelPosition.x, modelPosition.z - eps) - elevation, eps));
3971  vec3 objectNormal = normalize(cross(tangent, bitangent));
3972
3973  vNormal = objectNormal;
3974  vWorldPosition = modelPosition.xyz;
3975
3976  gl_Position = projectionMatrix * viewMatrix * modelPosition;
3977}`,Y7=`precision highp float;
3978
3979uniform float uOpacity;
3980
3981uniform vec3 uTroughColor;
3982uniform vec3 uSurfaceColor;
3983uniform vec3 uPeakColor;
3984
3985uniform float uPeakThreshold;
3986uniform float uPeakTransition;
3987uniform float uTroughThreshold;
3988uniform float uTroughTransition;
3989
3990uniform float uFresnelScale;
3991uniform float uFresnelPower;
3992
3993varying vec3 vNormal;
3994varying vec3 vWorldPosition;
3995
3996uniform samplerCube uEnvironmentMap;
3997
3998void main() {
3999  // Calculate vector from camera to the vertex
4000  vec3 viewDirection = normalize(vWorldPosition - cameraPosition);
4001  vec3 reflectedDirection = reflect(viewDirection, vNormal);
4002  reflectedDirection.x = -reflectedDirection.x;
4003
4004  // Sample environment map to get the reflected color
4005  vec4 reflectionColor = textureCube(uEnvironmentMap, reflectedDirection);
4006
4007  // Calculate fresnel effect
4008  float fresnel = uFresnelScale * pow(1.0 - clamp(dot(viewDirection, vNormal), 0.0, 1.0), uFresnelPower);
4009
4010  // Calculate elevation-based color
4011  float elevation = vWorldPosition.y;
4012
4013  // Calculate transition factors using smoothstep
4014  float peakFactor = smoothstep(uPeakThreshold - uPeakTransition, uPeakThreshold + uPeakTransition, elevation);
4015  float troughFactor = smoothstep(uTroughThreshold - uTroughTransition, uTroughThreshold + uTroughTransition, elevation);
4016
4017  // Mix between trough and surface colors based on trough transition
4018  vec3 mixedColor1 = mix(uTroughColor, uSurfaceColor, troughFactor);
4019
4020  // Mix between surface and peak colors based on peak transition 
4021  vec3 mixedColor2 = mix(mixedColor1, uPeakColor, peakFactor);
4022
4023  // Mix the final color with the reflection color
4024  vec3 finalColor = mix(mixedColor2, reflectionColor.rgb, fresnel);
4025
4026  gl_FragColor = vec4(finalColor, uOpacity);
4027}
4028`;class Ws extends pi{constructor(e={}){super(),this.material=new Bi({vertexShader:q7,fragmentShader:Y7,uniforms:{uTime:{value:0},uOpacity:{value:.8},uEnvironmentMap:{value:e.environmentMap},uWavesAmplitude:{value:.025},uWavesFrequency:{value:1.07},uWavesPersistence:{value:.3},uWavesLacunarity:{value:2.18},uWavesIterations:{value:8},uWavesSpeed:{value:.4},uTroughColor:{value:new Fe("#186691")},uSurfaceColor:{value:new Fe("#9bd8c0")},uPeakColor:{value:new Fe("#bbd8e0")},uPeakThreshold:{value:.08},uPeakTransition:{value:.05},uTroughThreshold:{value:-.01},uTroughTransition:{value:.15},uFresnelScale:{value:.8},uFresnelPower:{value:.5}},transparent:!0,depthTest:!0,side:Ui}),this.geometry=new Bo(6,6,e.resolution||512,e.resolution||512),this.rotation.x=Math.PI*.5,this.position.y=0}update(e){this.material.uniforms.uTime.value=e}}const Z7=`varying vec2 vUv;
4029
4030void main() {
4031  vUv = uv;
4032  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
4033}`,K7=`uniform float uTime;
4034uniform sampler2D uTexture;
4035uniform vec3 uCausticsColor;
4036uniform float uCausticsIntensity;
4037uniform float uCausticsOffset;
4038uniform float uCausticsScale;
4039uniform float uCausticsSpeed;
4040uniform float uCausticsThickness;
4041
4042varying vec2 vUv;
4043
4044//	Simplex 3D Noise 
4045//	by Ian McEwan, Stefan Gustavson (https://github.com/stegu/webgl-noise)
4046//
4047vec4 permute(vec4 x) {
4048  return mod(((x * 34.0) + 1.0) * x, 289.0);
4049}
4050vec4 taylorInvSqrt(vec4 r) {
4051  return 1.79284291400159 - 0.85373472095314 * r;
4052}
4053
4054float snoise(vec3 v) {
4055  const vec2 C = vec2(1.0 / 6.0, 1.0 / 3.0);
4056  const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
4057
4058// First corner
4059  vec3 i = floor(v + dot(v, C.yyy));
4060  vec3 x0 = v - i + dot(i, C.xxx);
4061
4062// Other corners
4063  vec3 g = step(x0.yzx, x0.xyz);
4064  vec3 l = 1.0 - g;
4065  vec3 i1 = min(g.xyz, l.zxy);
4066  vec3 i2 = max(g.xyz, l.zxy);
4067
4068  //  x0 = x0 - 0. + 0.0 * C 
4069  vec3 x1 = x0 - i1 + 1.0 * C.xxx;
4070  vec3 x2 = x0 - i2 + 2.0 * C.xxx;
4071  vec3 x3 = x0 - 1. + 3.0 * C.xxx;
4072
4073// Permutations
4074  i = mod(i, 289.0);
4075  vec4 p = permute(permute(permute(i.z + vec4(0.0, i1.z, i2.z, 1.0)) + i.y + vec4(0.0, i1.y, i2.y, 1.0)) + i.x + vec4(0.0, i1.x, i2.x, 1.0));
4076
4077// Gradients
4078// ( N*N points uniformly over a square, mapped onto an octahedron.)
4079  float n_ = 1.0 / 7.0; // N=7
4080  vec3 ns = n_ * D.wyz - D.xzx;
4081
4082  vec4 j = p - 49.0 * floor(p * ns.z * ns.z);  //  mod(p,N*N)
4083
4084  vec4 x_ = floor(j * ns.z);
4085  vec4 y_ = floor(j - 7.0 * x_);    // mod(j,N)
4086
4087  vec4 x = x_ * ns.x + ns.yyyy;
4088  vec4 y = y_ * ns.x + ns.yyyy;
4089  vec4 h = 1.0 - abs(x) - abs(y);
4090
4091  vec4 b0 = vec4(x.xy, y.xy);
4092  vec4 b1 = vec4(x.zw, y.zw);
4093
4094  vec4 s0 = floor(b0) * 2.0 + 1.0;
4095  vec4 s1 = floor(b1) * 2.0 + 1.0;
4096  vec4 sh = -step(h, vec4(0.0));
4097
4098  vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;
4099  vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww;
4100
4101  vec3 p0 = vec3(a0.xy, h.x);
4102  vec3 p1 = vec3(a0.zw, h.y);
4103  vec3 p2 = vec3(a1.xy, h.z);
4104  vec3 p3 = vec3(a1.zw, h.w);
4105
4106//Normalise gradients
4107  vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
4108  p0 *= norm.x;
4109  p1 *= norm.y;
4110  p2 *= norm.z;
4111  p3 *= norm.w;
4112
4113// Mix final noise value
4114  vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);
4115  m = m * m;
4116  return 42.0 * dot(m * m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
4117}
4118
4119void main() {
4120  vec4 texColor = texture2D(uTexture, vUv);
4121
4122  float caustics = 0.0;
4123
4124  // Layer multiple caustic patterns
4125  caustics += uCausticsIntensity * (uCausticsOffset - abs(snoise(vec3(vUv.xy * uCausticsScale, uTime * uCausticsSpeed))));
4126  caustics += uCausticsIntensity * (uCausticsOffset - abs(snoise(vec3(vUv.yx * uCausticsScale, -uTime * uCausticsSpeed))));
4127
4128  // Shape the caustics
4129  caustics = smoothstep(0.5 - uCausticsThickness, 0.5 + uCausticsThickness, caustics);
4130
4131  vec3 finalColor = texColor.rgb + caustics * uCausticsColor;
4132
4133  gl_FragColor = vec4(finalColor, 1.0);
4134}`;class Xs extends pi{constructor(e={}){super(),this.material=new Bi({vertexShader:Z7,fragmentShader:K7,uniforms:{uTexture:{value:e.texture},uTime:{value:0},uCausticsColor:{value:new Fe("#ffffff")},uCausticsIntensity:{value:.2},uCausticsScale:{value:20},uCausticsSpeed:{value:1},uCausticsThickness:{value:.4},uCausticsOffset:{value:.75}}}),this.geometry=new Bo(7,7),this.rotation.x=-Math.PI*.5,this.position.y=-.12}update(e){this.material.uniforms.uTime.value=e}}class Q7 extends Bi{constructor(e={}){super(),this.vertexShader=`
4135      varying vec3 vPosition;
4136      varying vec3 vNormal;
4137
4138      void main() {
4139        vec4 modelPosition = modelMatrix * vec4(position, 1.0);
4140        gl_Position = projectionMatrix * viewMatrix * modelPosition;
4141        vec4 modelNormal = modelMatrix * vec4(normal, 0.0);
4142        vPosition = modelPosition.xyz;
4143        vNormal = modelNormal.xyz;
4144
4145      }
4146    `,this.fragmentShader=`
4147      uniform vec3 glowColor;
4148      uniform float falloff;
4149      uniform float glowSharpness;
4150      uniform float glowInternalRadius;
4151      uniform float opacity;
4152
4153      varying vec3 vPosition;
4154      varying vec3 vNormal;
4155
4156      void main()
4157      {
4158        // Normal
4159        vec3 normal = normalize(vNormal);
4160        if(!gl_FrontFacing)
4161            normal *= - 1.0;
4162        vec3 viewDirection = normalize(cameraPosition - vPosition);
4163        float fresnel = dot(viewDirection, normal);
4164        fresnel = pow(fresnel, glowInternalRadius + 0.1);
4165        float falloff = smoothstep(0., falloff, fresnel);
4166        float fakeGlow = fresnel;
4167        fakeGlow += fresnel * glowSharpness;
4168        fakeGlow *= falloff;
4169        gl_FragColor = vec4(clamp(glowColor * fresnel, 0., 1.0), clamp(fakeGlow, 0., opacity));
4170
4171        #include <tonemapping_fragment>
4172        #include <colorspace_fragment>
4173      } 
4174      `,this.uniforms={opacity:new hr(e.opacity!==void 0?e.opacity:1),glowInternalRadius:new hr(e.glowInternalRadius!==void 0?e.glowInternalRadius:6),glowSharpness:new hr(e.glowSharpness!==void 0?e.glowSharpness:.5),falloff:new hr(e.falloff!==void 0?e.falloff:.1),glowColor:new hr(e.glowColor!==void 0?new Fe(e.glowColor):new Fe("#00d5ff"))},this.setValues(e),this.depthTest=e.depthTest!==void 0?e.depthTest:!1,this.blending=e.blendMode!==void 0?e.blendMode:X0,this.transparent=!0,this.side=e.side!==void 0?e.side:Ui}}const Pp="/assets/homepage-D44vaZmS.png",Op="/assets/homepage-DT1KF3WZ.png",Ip="/assets/start-6P8hs6yG.png",Y_="/assets/Resume-ChMNJ77_.pdf",Z_=G.createContext({});function $7(n){const e=G.useRef(null);return e.current===null&&(e.current=n()),e.current}const bm=typeof window<"u",J7=bm?G.useLayoutEffect:G.useEffect,Em=G.createContext(null);function wm(n,e){n.indexOf(e)===-1&&n.push(e)}function Tm(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}const Os=(n,e,t)=>t>e?e:t<n?n:t;let Cm=()=>{};const Is={},K_=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n);function Q_(n){return typeof n=="object"&&n!==null}const $_=n=>/^0[^.\s]+$/u.test(n);function Am(n){let e;return()=>(e===void 0&&(e=n()),e)}const wi=n=>n,eC=(n,e)=>t=>e(n(t)),bc=(...n)=>n.reduce(eC),cc=(n,e,t)=>{const a=e-n;return a===0?1:(t-n)/a};class Rm{constructor(){this.subscriptions=[]}add(e){return wm(this.subscriptions,e),()=>Tm(this.subscriptions,e)}notify(e,t,a){const o=this.subscriptions.length;if(o)if(o===1)this.subscriptions[0](e,t,a);else for(let l=0;l<o;l++){const u=this.subscriptions[l];u&&u(e,t,a)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const Zi=n=>n*1e3,Ki=n=>n/1e3;function J_(n,e){return e?n*(1e3/e):0}const e4=(n,e,t)=>(((1-3*t+3*e)*n+(3*t-6*e))*n+3*e)*n,tC=1e-7,nC=12;function iC(n,e,t,a,o){let l,u,f=0;do u=e+(t-e)/2,l=e4(u,a,o)-n,l>0?t=u:e=u;while(Math.abs(l)>tC&&++f<nC);return u}function Ec(n,e,t,a){if(n===e&&t===a)return wi;const o=l=>iC(l,0,1,n,t);return l=>l===0||l===1?l:e4(o(l),e,a)}const t4=n=>e=>e<=.5?n(2*e)/2:(2-n(2*(1-e)))/2,n4=n=>e=>1-n(1-e),i4=Ec(.33,1.53,.69,.99),Nm=n4(i4),s4=t4(Nm),a4=n=>(n*=2)<1?.5*Nm(n):.5*(2-Math.pow(2,-10*(n-1))),Lm=n=>1-Math.sin(Math.acos(n)),r4=n4(Lm),o4=t4(Lm),sC=Ec(.42,0,1,1),aC=Ec(0,0,.58,1),l4=Ec(.42,0,.58,1),rC=n=>Array.isArray(n)&&typeof n[0]!="number",c4=n=>Array.isArray(n)&&typeof n[0]=="number",oC={linear:wi,easeIn:sC,easeInOut:l4,easeOut:aC,circIn:Lm,circInOut:o4,circOut:r4,backIn:Nm,backInOut:s4,backOut:i4,anticipate:a4},lC=n=>typeof n=="string",I3=n=>{if(c4(n)){Cm(n.length===4);const[e,t,a,o]=n;return Ec(e,t,a,o)}else if(lC(n))return oC[n];return n},rf=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function cC(n,e){let t=new Set,a=new Set,o=!1,l=!1;const u=new WeakSet;let f={delta:0,timestamp:0,isProcessing:!1};function d(g){u.has(g)&&(h.schedule(g),n()),g(f)}const h={schedule:(g,v=!1,x=!1)=>{const b=x&&o?t:a;return v&&u.add(g),b.has(g)||b.add(g),g},cancel:g=>{a.delete(g),u.delete(g)},process:g=>{if(f=g,o){l=!0;return}o=!0,[t,a]=[a,t],t.forEach(d),t.clear(),o=!1,l&&(l=!1,h.process(g))}};return h}const uC=40;function u4(n,e){let t=!1,a=!0;const o={delta:0,timestamp:0,isProcessing:!1},l=()=>t=!0,u=rf.reduce((T,R)=>(T[R]=cC(l),T),{}),{setup:f,read:d,resolveKeyframes:h,preUpdate:g,update:v,preRender:x,render:y,postRender:b}=u,w=()=>{const T=Is.useManualTiming?o.timestamp:performance.now();t=!1,Is.useManualTiming||(o.delta=a?1e3/60:Math.max(Math.min(T-o.timestamp,uC),1)),o.timestamp=T,o.isProcessing=!0,f.process(o),d.process(o),h.process(o),g.process(o),v.process(o),x.process(o),y.process(o),b.process(o),o.isProcessing=!1,t&&e&&(a=!1,n(w))},M=()=>{t=!0,a=!0,o.isProcessing||n(w)};return{schedule:rf.reduce((T,R)=>{const P=u[R];return T[R]=(I,F=!1,V=!1)=>(t||M(),P.schedule(I,F,V)),T},{}),cancel:T=>{for(let R=0;R<rf.length;R++)u[rf[R]].cancel(T)},state:o,steps:u}}const{schedule:Qt,cancel:La,state:On,steps:R0}=u4(typeof requestAnimationFrame<"u"?requestAnimationFrame:wi,!0);let xf;function fC(){xf=void 0}const Jn={now:()=>
vendor: 33,859 bytes, line 4174
4174(xf===void 0&&Jn.set(On.isProcessing||Is.useManualTiming?On.timestamp:performance.now()),xf),set:n=>{xf=n,queueMicrotask(fC)}},f4=n=>e=>typeof e=="string"&&e.startsWith(n),Dm=f4("--"),dC=f4("var(--"),Um=n=>dC(n)?hC.test(n.split("/*")[0].trim()):!1,hC=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,zo={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},uc={...zo,transform:n=>Os(0,1,n)},of={...zo,default:1},Ql=n=>Math.round(n*1e5)/1e5,Pm=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function pC(n){return n==null}const mC=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Om=(n,e)=>t=>!!(typeof t=="string"&&mC.test(t)&&t.startsWith(n)||e&&!pC(t)&&Object.prototype.hasOwnProperty.call(t,e)),d4=(n,e,t)=>a=>{if(typeof a!="string")return a;const[o,l,u,f]=a.match(Pm);return{[n]:parseFloat(o),[e]:parseFloat(l),[t]:parseFloat(u),alpha:f!==void 0?parseFloat(f):1}},gC=n=>Os(0,255,n),N0={...zo,transform:n=>Math.round(gC(n))},vr={test:Om("rgb","red"),parse:d4("red","green","blue"),transform:({red:n,green:e,blue:t,alpha:a=1})=>"rgba("+N0.transform(n)+", "+N0.transform(e)+", "+N0.transform(t)+", "+Ql(uc.transform(a))+")"};function vC(n){let e="",t="",a="",o="";return n.length>5?(e=n.substring(1,3),t=n.substring(3,5),a=n.substring(5,7),o=n.substring(7,9)):(e=n.substring(1,2),t=n.substring(2,3),a=n.substring(3,4),o=n.substring(4,5),e+=e,t+=t,a+=a,o+=o),{red:parseInt(e,16),green:parseInt(t,16),blue:parseInt(a,16),alpha:o?parseInt(o,16)/255:1}}const Bp={test:Om("#"),parse:vC,transform:vr.transform},wc=n=>({test:e=>typeof e=="string"&&e.endsWith(n)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${n}`}),Ta=wc("deg"),Qi=wc("%"),at=wc("px"),xC=wc("vh"),_C=wc("vw"),B3={...Qi,parse:n=>Qi.parse(n)/100,transform:n=>Qi.transform(n*100)},vo={test:Om("hsl","hue"),parse:d4("hue","saturation","lightness"),transform:({hue:n,saturation:e,lightness:t,alpha:a=1})=>"hsla("+Math.round(n)+", "+Qi.transform(Ql(e))+", "+Qi.transform(Ql(t))+", "+Ql(uc.transform(a))+")"},pn={test:n=>vr.test(n)||Bp.test(n)||vo.test(n),parse:n=>vr.test(n)?vr.parse(n):vo.test(n)?vo.parse(n):Bp.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?vr.transform(n):vo.transform(n),getAnimatableNone:n=>{const e=pn.parse(n);return e.alpha=0,pn.transform(e)}},yC=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function SC(n){return isNaN(n)&&typeof n=="string"&&(n.match(Pm)?.length||0)+(n.match(yC)?.length||0)>0}const h4="number",p4="color",MC="var",bC="var(",F3="${}",EC=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function fc(n){const e=n.toString(),t=[],a={color:[],number:[],var:[]},o=[];let l=0;const f=e.replace(EC,d=>(pn.test(d)?(a.color.push(l),o.push(p4),t.push(pn.parse(d))):d.startsWith(bC)?(a.var.push(l),o.push(MC),t.push(d)):(a.number.push(l),o.push(h4),t.push(parseFloat(d))),++l,F3)).split(F3);return{values:t,split:f,indexes:a,types:o}}function m4(n){return fc(n).values}function g4(n){const{split:e,types:t}=fc(n),a=e.length;return o=>{let l="";for(let u=0;u<a;u++)if(l+=e[u],o[u]!==void 0){const f=t[u];f===h4?l+=Ql(o[u]):f===p4?l+=pn.transform(o[u]):l+=o[u]}return l}}const wC=n=>typeof n=="number"?0:pn.test(n)?pn.getAnimatableNone(n):n;function TC(n){const e=m4(n);return g4(n)(e.map(wC))}const Da={test:SC,parse:m4,createTransformer:g4,getAnimatableNone:TC};function L0(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*(2/3-t)*6:n}function CC({hue:n,saturation:e,lightness:t,alpha:a}){n/=360,e/=100,t/=100;let o=0,l=0,u=0;if(!e)o=l=u=t;else{const f=t<.5?t*(1+e):t+e-t*e,d=2*t-f;o=L0(d,f,n+1/3),l=L0(d,f,n),u=L0(d,f,n-1/3)}return{red:Math.round(o*255),green:Math.round(l*255),blue:Math.round(u*255),alpha:a}}function Tf(n,e){return t=>t>0?e:n}const en=(n,e,t)=>n+(e-n)*t,D0=(n,e,t)=>{const a=n*n,o=t*(e*e-a)+a;return o<0?0:Math.sqrt(o)},AC=[Bp,vr,vo],RC=n=>AC.find(e=>e.test(n));function z3(n){const e=RC(n);if(!e)return!1;let t=e.parse(n);return e===vo&&(t=CC(t)),t}const V3=(n,e)=>{const t=z3(n),a=z3(e);if(!t||!a)return Tf(n,e);const o={...t};return l=>(o.red=D0(t.red,a.red,l),o.green=D0(t.green,a.green,l),o.blue=D0(t.blue,a.blue,l),o.alpha=en(t.alpha,a.alpha,l),vr.transform(o))},Fp=new Set(["none","hidden"]);function NC(n,e){return Fp.has(n)?t=>t<=0?n:e:t=>t>=1?e:n}function LC(n,e){return t=>en(n,e,t)}function Im(n){return typeof n=="number"?LC:typeof n=="string"?Um(n)?Tf:pn.test(n)?V3:PC:Array.isArray(n)?v4:typeof n=="object"?pn.test(n)?V3:DC:Tf}function v4(n,e){const t=[...n],a=t.length,o=n.map((l,u)=>Im(l)(l,e[u]));return l=>{for(let u=0;u<a;u++)t[u]=o[u](l);return t}}function DC(n,e){const t={...n,...e},a={};for(const o in t)n[o]!==void 0&&e[o]!==void 0&&(a[o]=Im(n[o])(n[o],e[o]));return o=>{for(const l in a)t[l]=a[l](o);return t}}function UC(n,e){const t=[],a={color:0,var:0,number:0};for(let o=0;o<e.values.length;o++){const l=e.types[o],u=n.indexes[l][a[l]],f=n.values[u]??0;t[o]=f,a[l]++}return t}const PC=(n,e)=>{const t=Da.createTransformer(e),a=fc(n),o=fc(e);return a.indexes.var.length===o.indexes.var.length&&a.indexes.color.length===o.indexes.color.length&&a.indexes.number.length>=o.indexes.number.length?Fp.has(n)&&!o.values.length||Fp.has(e)&&!a.values.length?NC(n,e):bc(v4(UC(a,o),o.values),t):Tf(n,e)};function x4(n,e,t){return typeof n=="number"&&typeof e=="number"&&typeof t=="number"?en(n,e,t):Im(n)(n,e)}const OC=n=>{const e=({timestamp:t})=>n(t);return{start:(t=!0)=>Qt.update(e,t),stop:()=>La(e),now:()=>On.isProcessing?On.timestamp:Jn.now()}},_4=(n,e,t=10)=>{let a="";const o=Math.max(Math.round(e/t),2);for(let l=0;l<o;l++)a+=Math.round(n(l/(o-1))*1e4)/1e4+", ";return`linear(${a.substring(0,a.length-2)})`},Cf=2e4;function Bm(n){let e=0;const t=50;let a=n.next(e);for(;!a.done&&e<Cf;)e+=t,a=n.next(e);return e>=Cf?1/0:e}function IC(n,e=100,t){const a=t({...n,keyframes:[0,e]}),o=Math.min(Bm(a),Cf);return{type:"keyframes",ease:l=>a.next(o*l).value/e,duration:Ki(o)}}const BC=5;function y4(n,e,t){const a=Math.max(e-BC,0);return J_(t-n(a),e-a)}const an={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},U0=.001;function FC({duration:n=an.duration,bounce:e=an.bounce,velocity:t=an.velocity,mass:a=an.mass}){let o,l,u=1-e;u=Os(an.minDamping,an.maxDamping,u),n=Os(an.minDuration,an.maxDuration,Ki(n)),u<1?(o=h=>{const g=h*u,v=g*n,x=g-t,y=zp(h,u),b=Math.exp(-v);return U0-x/y*b},l=h=>{const v=h*u*n,x=v*t+t,y=Math.pow(u,2)*Math.pow(h,2)*n,b=Math.exp(-v),w=zp(Math.pow(h,2),u);return(-o(h)+U0>0?-1:1)*((x-y)*b)/w}):(o=h=>{const g=Math.exp(-h*n),v=(h-t)*n+1;return-U0+g*v},l=h=>{const g=Math.exp(-h*n),v=(t-h)*(n*n);return g*v});const f=5/n,d=VC(o,l,f);if(n=Zi(n),isNaN(d))return{stiffness:an.stiffness,damping:an.damping,duration:n};{const h=Math.pow(d,2)*a;return{stiffness:h,damping:u*2*Math.sqrt(a*h),duration:n}}}const zC=12;function VC(n,e,t){let a=t;for(let o=1;o<zC;o++)a=a-n(a)/e(a);return a}function zp(n,e){return n*Math.sqrt(1-e*e)}const jC=["duration","bounce"],HC=["stiffness","damping","mass"];function j3(n,e){return e.some(t=>n[t]!==void 0)}function kC(n){let e={velocity:an.velocity,stiffness:an.stiffness,damping:an.damping,mass:an.mass,isResolvedFromDuration:!1,...n};if(!j3(n,HC)&&j3(n,jC))if(n.visualDuration){const t=n.visualDuration,a=2*Math.PI/(t*1.2),o=a*a,l=2*Os(.05,1,1-(n.bounce||0))*Math.sqrt(o);e={...e,mass:an.mass,stiffness:o,damping:l}}else{const t=FC(n);e={...e,...t,mass:an.mass},e.isResolvedFromDuration=!0}return e}function Af(n=an.visualDuration,e=an.bounce){const t=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:e}:n;let{restSpeed:a,restDelta:o}=t;const l=t.keyframes[0],u=t.keyframes[t.keyframes.length-1],f={done:!1,value:l},{stiffness:d,damping:h,mass:g,duration:v,velocity:x,isResolvedFromDuration:y}=kC({...t,velocity:-Ki(t.velocity||0)}),b=x||0,w=h/(2*Math.sqrt(d*g)),M=u-l,S=Ki(Math.sqrt(d/g)),N=Math.abs(M)<5;a||(a=N?an.restSpeed.granular:an.restSpeed.default),o||(o=N?an.restDelta.granular:an.restDelta.default);let T;if(w<1){const P=zp(S,w);T=I=>{const F=Math.exp(-w*S*I);return u-F*((b+w*S*M)/P*Math.sin(P*I)+M*Math.cos(P*I))}}else if(w===1)T=P=>u-Math.exp(-S*P)*(M+(b+S*M)*P);else{const P=S*Math.sqrt(w*w-1);T=I=>{const F=Math.exp(-w*S*I),V=Math.min(P*I,300);return u-F*((b+w*S*M)*Math.sinh(V)+P*M*Math.cosh(V))/P}}const R={calculatedDuration:y&&v||null,next:P=>{const I=T(P);if(y)f.done=P>=v;else{let F=P===0?b:0;w<1&&(F=P===0?Zi(b):y4(T,P,I));const V=Math.abs(F)<=a,U=Math.abs(u-I)<=o;f.done=V&&U}return f.value=f.done?u:I,f},toString:()=>{const P=Math.min(Bm(R),Cf),I=_4(F=>R.next(P*F).value,P,30);return P+"ms "+I},toTransition:()=>{}};return R}Af.applyToOptions=n=>{const e=IC(n,100,Af);return n.ease=e.ease,n.duration=Zi(e.duration),n.type="keyframes",n};function Vp({keyframes:n,velocity:e=0,power:t=.8,timeConstant:a=325,bounceDamping:o=10,bounceStiffness:l=500,modifyTarget:u,min:f,max:d,restDelta:h=.5,restSpeed:g}){const v=n[0],x={done:!1,value:v},y=V=>f!==void 0&&V<f||d!==void 0&&V>d,b=V=>f===void 0?d:d===void 0||Math.abs(f-V)<Math.abs(d-V)?f:d;let w=t*e;const M=v+w,S=u===void 0?M:u(M);S!==M&&(w=S-v);const N=V=>-w*Math.exp(-V/a),T=V=>S+N(V),R=V=>{const U=N(V),L=T(V);x.done=Math.abs(U)<=h,x.value=x.done?S:L};let P,I;const F=V=>{y(x.value)&&(P=V,I=Af({keyframes:[x.value,b(x.value)],velocity:y4(T,V,x.value),damping:o,stiffness:l,restDelta:h,restSpeed:g}))};return F(0),{calculatedDuration:null,next:V=>{let U=!1;return!I&&P===void 0&&(U=!0,R(V),F(V)),P!==void 0&&V>=P?I.next(V-P):(!U&&R(V),x)}}}function GC(n,e,t){const a=[],o=t||Is.mix||x4,l=n.length-1;for(let u=0;u<l;u++){let f=o(n[u],n[u+1]);if(e){const d=Array.isArray(e)?e[u]||wi:e;f=bc(d,f)}a.push(f)}return a}function WC(n,e,{clamp:t=!0,ease:a,mixer:o}={}){const l=n.length;if(Cm(l===e.length),l===1)return()=>e[0];if(l===2&&e[0]===e[1])return()=>e[1];const u=n[0]===n[1];n[0]>n[l-1]&&(n=[...n].reverse(),e=[...e].reverse());const f=GC(e,a,o),d=f.length,h=g=>{if(u&&g<n[0])return e[0];let v=0;if(d>1)for(;v<n.length-2&&!(g<n[v+1]);v++);const x=cc(n[v],n[v+1],g);return f[v](x)};return t?g=>h(Os(n[0],n[l-1],g)):h}function XC(n,e){const t=n[n.length-1];for(let a=1;a<=e;a++){const o=cc(0,e,a);n.push(en(t,1,o))}}function qC(n){const e=[0];return XC(e,n.length-1),e}function YC(n,e){return n.map(t=>t*e)}function ZC(n,e){return n.map(()=>e||l4).splice(0,n.length-1)}function $l({duration:n=300,keyframes:e,times:t,ease:a="easeInOut"}){const o=rC(a)?a.map(I3):I3(a),l={done:!1,value:e[0]},u=YC(t&&t.length===e.length?t:qC(e),n),f=WC(u,e,{ease:Array.isArray(o)?o:ZC(e,o)});return{calculatedDuration:n,next:d=>(l.value=f(d),l.done=d>=n,l)}}const KC=n=>n!==null;function Fm(n,{repeat:e,repeatType:t="loop"},a,o=1){const l=n.filter(KC),f=o<0||e&&t!=="loop"&&e%2===1?0:l.length-1;return!f||a===void 0?l[f]:a}const QC={decay:Vp,inertia:Vp,tween:$l,keyframes:$l,spring:Af};function S4(n){typeof n.type=="string"&&(n.type=QC[n.type])}class zm{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}}const $C=n=>n/100;class Vm extends zm{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:t}=this.options;t&&t.updatedAt!==Jn.now()&&this.tick(Jn.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){const{options:e}=this;S4(e);const{type:t=$l,repeat:a=0,repeatDelay:o=0,repeatType:l,velocity:u=0}=e;let{keyframes:f}=e;const d=t||$l;d!==$l&&typeof f[0]!="number"&&(this.mixKeyframes=bc($C,x4(f[0],f[1])),f=[0,100]);const h=d({...e,keyframes:f});l==="mirror"&&(this.mirroredGenerator=d({...e,keyframes:[...f].reverse(),velocity:-u})),h.calculatedDuration===null&&(h.calculatedDuration=Bm(h));const{calculatedDuration:g}=h;this.calculatedDuration=g,this.resolvedDuration=g+o,this.totalDuration=this.resolvedDuration*(a+1)-o,this.generator=h}updateTime(e){const t=Math.round(e-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=t}tick(e,t=!1){const{generator:a,totalDuration:o,mixKeyframes:l,mirroredGenerator:u,resolvedDuration:f,calculatedDuration:d}=this;if(this.startTime===null)return a.next(0);const{delay:h=0,keyframes:g,repeat:v,repeatType:x,repeatDelay:y,type:b,onUpdate:w,finalKeyframe:M}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-o/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);const S=this.currentTime-h*(this.playbackSpeed>=0?1:-1),N=this.playbackSpeed>=0?S<0:S>o;this.currentTime=Math.max(S,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=o);let T=this.currentTime,R=a;if(v){const V=Math.min(this.currentTime,o)/f;let U=Math.floor(V),L=V%1;!L&&V>=1&&(L=1),L===1&&U--,U=Math.min(U,v+1),!!(U%2)&&(x==="reverse"?(L=1-L,y&&(L-=y/f)):x==="mirror"&&(R=u)),T=Os(0,1,L)*f}const P=N?{done:!1,value:g[0]}:R.next(T);l&&(P.value=l(P.value));let{done:I}=P;!N&&d!==null&&(I=this.playbackSpeed>=0?this.currentTime>=o:this.currentTime<=0);const F=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&I);return F&&b!==Vp&&(P.value=Fm(g,this.options,M,this.speed)),w&&w(P.value),F&&this.finish(),P}then(e,t){return this.finished.then(e,t)}get duration(){return Ki(this.calculatedDuration)}get time(){return Ki(this.currentTime)}set time(e){e=Zi(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(e){this.updateTime(Jn.now());const t=this.playbackSpeed!==e;this.playbackSpeed=e,t&&(this.time=Ki(this.currentTime))}play(){if(this.isStopped)return;const{driver:e=OC,startTime:t}=this.options;this.driver||(this.driver=e(o=>this.tick(o))),this.options.onPlay?.();const a=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=a):this.holdTime!==null?this.startTime=a-this.holdTime:this.startTime||(this.startTime=t??a),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Jn.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}function JC(n){for(let e=1;e<n.length;e++)n[e]??(n[e]=n[e-1])}const xr=n=>n*180/Math.PI,jp=n=>{const e=xr(Math.atan2(n[1],n[0]));return Hp(e)},e9={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:n=>(Math.abs(n[0])+Math.abs(n[3]))/2,rotate:jp,rotateZ:jp,skewX:n=>xr(Math.atan(n[1])),skewY:n=>xr(Math.atan(n[2])),skew:n=>(Math.abs(n[1])+Math.abs(n[2]))/2},Hp=n=>(n=n%360,n<0&&(n+=360),n),H3=jp,k3=n=>Math.sqrt(n[0]*n[0]+n[1]*n[1]),G3=n=>Math.sqrt(n[4]*n[4]+n[5]*n[5]),t9={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:k3,scaleY:G3,scale:n=>(k3(n)+G3(n))/2,rotateX:n=>Hp(xr(Math.atan2(n[6],n[5]))),rotateY:n=>Hp(xr(Math.atan2(-n[2],n[0]))),rotateZ:H3,rotate:H3,skewX:n=>xr(Math.atan(n[4])),skewY:n=>xr(Math.atan(n[1])),skew:n=>(Math.abs(n[1])+Math.abs(n[4]))/2};function kp(n){return n.includes("scale")?1:0}function Gp(n,e){if(!n||n==="none")return kp(e);const t=n.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let a,o;if(t)a=t9,o=t;else{const f=n.match(/^matrix\(([-\d.e\s,]+)\)$/u);a=e9,o=f}if(!o)return kp(e);const l=a[e],u=o[1].split(",").map(i9);return typeof l=="function"?l(u):u[l]}const n9=(n,e)=>{const{transform:t="none"}=getComputedStyle(n);return Gp(t,e)};function i9(n){return parseFloat(n.trim())}const Vo=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],jo=new Set(Vo),W3=n=>n===zo||n===at,s9=new Set(["x","y","z"]),a9=Vo.filter(n=>!s9.has(n));function r9(n){const e=[];return a9.forEach(t=>{const a=n.getValue(t);a!==void 0&&(e.push([t,a.get()]),a.set(t.startsWith("scale")?1:0))}),e}const _r={width:({x:n},{paddingLeft:e="0",paddingRight:t="0"})=>n.max-n.min-parseFloat(e)-parseFloat(t),height:({y:n},{paddingTop:e="0",paddingBottom:t="0"})=>n.max-n.min-parseFloat(e)-parseFloat(t),top:(n,{top:e})=>parseFloat(e),left:(n,{left:e})=>parseFloat(e),bottom:({y:n},{top:e})=>parseFloat(e)+(n.max-n.min),right:({x:n},{left:e})=>parseFloat(e)+(n.max-n.min),x:(n,{transform:e})=>Gp(e,"x"),y:(n,{transform:e})=>Gp(e,"y")};_r.translateX=_r.x;_r.translateY=_r.y;const yr=new Set;let Wp=!1,Xp=!1,qp=!1;function M4(){if(Xp){const n=Array.from(yr).filter(a=>a.needsMeasurement),e=new Set(n.map(a=>a.element)),t=new Map;e.forEach(a=>{const o=r9(a);o.length&&(t.set(a,o),a.render())}),n.forEach(a=>a.measureInitialState()),e.forEach(a=>{a.render();const o=t.get(a);o&&o.forEach(([l,u])=>{a.getValue(l)?.set(u)})}),n.forEach(a=>a.measureEndState()),n.forEach(a=>{a.suspendedScrollY!==void 0&&window.scrollTo(0,a.suspendedScrollY)})}Xp=!1,Wp=!1,yr.forEach(n=>n.complete(qp)),yr.clear()}function b4(){yr.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(Xp=!0)})}function o9(){qp=!0,b4(),M4(),qp=!1}class jm{constructor(e,t,a,o,l,u=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=a,this.motionValue=o,this.element=l,this.isAsync=u}scheduleResolve(){this.state="scheduled",this.isAsync?(yr.add(this),Wp||(Wp=!0,Qt.read(b4),Qt.resolveKeyframes(M4))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:t,element:a,motionValue:o}=this;if(e[0]===null){const l=o?.get(),u=e[e.length-1];if(l!==void 0)e[0]=l;else if(a&&t){const f=a.readValue(t,u);f!=null&&(e[0]=f)}e[0]===void 0&&(e[0]=u),o&&l===void 0&&o.set(e[0])}JC(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),yr.delete(this)}cancel(){this.state==="scheduled"&&(yr.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const l9=n=>n.startsWith("--");function c9(n,e,t){l9(e)?n.style.setProperty(e,t):n.style[e]=t}const u9=Am(()=>window.ScrollTimeline!==void 0),f9={};function d9(n,e){const t=Am(n);return()=>f9[e]??t()}const E4=d9(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Kl=([n,e,t,a])=>`cubic-bezier(${n}, ${e}, ${t}, ${a})`,X3={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Kl([0,.65,.55,1]),circOut:Kl([.55,0,1,.45]),backIn:Kl([.31,.01,.66,-.59]),backOut:Kl([.33,1.53,.69,.99])};function w4(n,e){if(n)return typeof n=="function"?E4()?_4(n,e):"ease-out":c4(n)?Kl(n):Array.isArray(n)?n.map(t=>w4(t,e)||X3.easeOut):X3[n]}function h9(n,e,t,{delay:a=0,duration:o=300,repeat:l=0,repeatType:u="loop",ease:f="easeOut",times:d}={},h=void 0){const g={[e]:t};d&&(g.offset=d);const v=w4(f,o);Array.isArray(v)&&(g.easing=v);const x={delay:a,duration:o,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:l+1,direction:u==="reverse"?"alternate":"normal"};return h&&(x.pseudoElement=h),n.animate(g,x)}function T4(n){return typeof n=="function"&&"applyToOptions"in n}function p9({type:n,...e}){return T4(n)&&E4()?n.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class m9 extends zm{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,!e)return;const{element:t,name:a,keyframes:o,pseudoElement:l,allowFlatten:u=!1,finalKeyframe:f,onComplete:d}=e;this.isPseudoElement=!!l,this.allowFlatten=u,this.options=e,Cm(typeof e.type!="string");const h=p9(e);this.animation=h9(t,a,o,h,l),h.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!l){const g=Fm(o,this.options,f,this.speed);this.updateMotionValue?this.updateMotionValue(g):c9(t,a,g),this.animation.cancel()}d?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){const e=this.animation.effect?.getComputedTiming?.().duration||0;return Ki(Number(e))}get time(){return Ki(Number(this.animation.currentTime)||0)}set time(e){this.finishedTime=null,this.animation.currentTime=Zi(e)}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(e){this.animation.startTime=e}attachTimeline({timeline:e,observe:t}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&u9()?(this.animation.timeline=e,wi):t(this)}}const C4={anticipate:a4,backInOut:s4,circInOut:o4};function g9(n){return n in C4}function v9(n){typeof n.ease=="string"&&g9(n.ease)&&(n.ease=C4[n.ease])}const q3=10;class x9 extends m9{constructor(e){v9(e),S4(e),super(e),e.startTime&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){const{motionValue:t,onUpdate:a,onComplete:o,element:l,...u}=this.options;if(!t)return;if(e!==void 0){t.set(e);return}const f=new Vm({...u,autoplay:!1}),d=Zi(this.finishedTime??this.time);t.setWithVelocity(f.sample(d-q3).value,f.sample(d).value,q3),f.stop()}}const Y3=(n,e)=>e==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(Da.test(n)||n==="0")&&!n.startsWith("url("));function _9(n){const e=n[0];if(n.length===1)return!0;for(let t=0;t<n.length;t++)if(n[t]!==e)return!0}function y9(n,e,t,a){const o=n[0];if(o===null)return!1;if(e==="display"||e==="visibility")return!0;const l=n[n.length-1],u=Y3(o,e),f=Y3(l,e);return!u||!f?!1:_9(n)||(t==="spring"||T4(t))&&a}function Yp(n){n.duration=0,n.type}const S9=new Set(["opacity","clipPath","filter","transform"]),M9=Am(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function b9(n){const{motionValue:e,name:t,repeatDelay:a,repeatType:o,damping:l,type:u}=n;if(!(e?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:d,transformTemplate:h}=e.owner.getProps();return M9()&&t&&S9.has(t)&&(t!=="transform"||!h)&&!d&&!a&&o!=="mirror"&&l!==0&&u!=="inertia"}const E9=40;class w9 extends zm{constructor({autoplay:e=!0,delay:t=0,type:a="keyframes",repeat:o=0,repeatDelay:l=0,repeatType:u="loop",keyframes:f,name:d,motionValue:h,element:g,...v}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Jn.now();const x={autoplay:e,delay:t,type:a,repeat:o,repeatDelay:l,repeatType:u,name:d,motionValue:h,element:g,...v},y=g?.KeyframeResolver||jm;this.keyframeResolver=new y(f,(b,w,M)=>this.onKeyframesResolved(b,w,x,!M),d,h,g),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,a,o){this.keyframeResolver=void 0;const{name:l,type:u,velocity:f,delay:d,isHandoff:h,onUpdate:g}=a;this.resolvedAt=Jn.now(),y9(e,l,u,f)||((Is.instantAnimations||!d)&&g?.(Fm(e,a,t)),e[0]=e[e.length-1],Yp(a),a.repeat=0);const x={startTime:o?this.resolvedAt?this.resolvedAt-this.createdAt>E9?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:t,...a,keyframes:e},y=!h&&b9(x)?new x9({...x,element:x.motionValue.owner.current}):new Vm(x);y.finished.then(()=>this.notifyFinished()).catch(wi),this.pendingTimeline&&(this.stopTimeline=y.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=y}get finished(){return this._animation?this.animation.finished:this._finished}then(e,t){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),o9()),this._animation}get duration(){return this.animation.duration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}const T9=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function C9(n){const e=T9.exec(n);if(!e)return[,];const[,t,a,o]=e;return[`--${t??a}`,o]}function A4(n,e,t=1){const[a,o]=C9(n);if(!a)return;const l=window.getComputedStyle(e).getPropertyValue(a);if(l){const u=l.trim();return K_(u)?parseFloat(u):u}return Um(o)?A4(o,e,t+1):o}function Hm(n,e){return n?.[e]??n?.default??n}const R4=new Set(["width","height","top","left","right","bottom",...Vo]),A9={test:n=>n==="auto",parse:n=>n},N4=n=>e=>e.test(n),L4=[zo,at,Qi,Ta,_C,xC,A9],Z3=n=>L4.find(N4(n));function R9(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||$_(n):!0}const N9=new Set(["brightness","contrast","saturate","opacity"]);function L9(n){const[e,t]=n.slice(0,-1).split("(");if(e==="drop-shadow")return n;const[a]=t.match(Pm)||[];if(!a)return n;const o=t.replace(a,"");let l=N9.has(e)?1:0;return a!==t&&(l*=100),e+"("+l+o+")"}const D9=/\b([a-z-]*)\(.*?\)/gu,Zp={...Da,getAnimatableNone:n=>{const e=n.match(D9);return e?e.map(L9).join(" "):n}},K3={...zo,transform:Math.round},U9={rotate:Ta,rotateX:Ta,rotateY:Ta,rotateZ:Ta,scale:of,scaleX:of,scaleY:of,scaleZ:of,skew:Ta,skewX:Ta,skewY:Ta,distance:at,translateX:at,translateY:at,translateZ:at,x:at,y:at,z:at,perspective:at,transformPerspective:at,opacity:uc,originX:B3,originY:B3,originZ:at},km={borderWidth:at,borderTopWidth:at,borderRightWidth:at,borderBottomWidth:at,borderLeftWidth:at,borderRadius:at,radius:at,borderTopLeftRadius:at,borderTopRightRadius:at,borderBottomRightRadius:at,borderBottomLeftRadius:at,width:at,maxWidth:at,height:at,maxHeight:at,top:at,right:at,bottom:at,left:at,padding:at,paddingTop:at,paddingRight:at,paddingBottom:at,paddingLeft:at,margin:at,marginTop:at,marginRight:at,marginBottom:at,marginLeft:at,backgroundPositionX:at,backgroundPositionY:at,...U9,zIndex:K3,fillOpacity:uc,strokeOpacity:uc,numOctaves:K3},P9={...km,color:pn,backgroundColor:pn,outlineColor:pn,fill:pn,stroke:pn,borderColor:pn,borderTopColor:pn,borderRightColor:pn,borderBottomColor:pn,borderLeftColor:pn,filter:Zp,WebkitFilter:Zp},D4=n=>P9[n];function U4(n,e){let t=D4(n);return t!==Zp&&(t=Da),t.getAnimatableNone?t.getAnimatableNone(e):void 0}const O9=new Set(["auto","none","0"]);function I9(n,e,t){let a=0,o;for(;a<n.length&&!o;){const l=n[a];typeof l=="string"&&!O9.has(l)&&fc(l).values.length&&(o=n[a]),a++}if(o&&t)for(const l of e)n[l]=U4(t,o)}class B9 extends jm{constructor(e,t,a,o,l){super(e,t,a,o,l,!0)}readKeyframes(){const{unresolvedKeyframes:e,element:t,name:a}=this;if(!t||!t.current)return;super.readKeyframes();for(let d=0;d<e.length;d++){let h=e[d];if(typeof h=="string"&&(h=h.trim(),Um(h))){const g=A4(h,t.current);g!==void 0&&(e[d]=g),d===e.length-1&&(this.finalKeyframe=h)}}if(this.resolveNoneKeyframes(),!R4.has(a)||e.length!==2)return;const[o,l]=e,u=Z3(o),f=Z3(l);if(u!==f)if(W3(u)&&W3(f))for(let d=0;d<e.length;d++){const h=e[d];typeof h=="string"&&(e[d]=parseFloat(h))}else _r[a]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:e,name:t}=this,a=[];for(let o=0;o<e.length;o++)(e[o]===null||R9(e[o]))&&a.push(o);a.length&&I9(e,a,t)}measureInitialState(){const{element:e,unresolvedKeyframes:t,name:a}=this;if(!e||!e.current)return;a==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=_r[a](e.measureViewportBox(),window.getComputedStyle(e.current)),t[0]=this.measuredOrigin;const o=t[t.length-1];o!==void 0&&e.getValue(a,o).jump(o,!1)}measureEndState(){const{element:e,name:t,unresolvedKeyframes:a}=this;if(!e||!e.current)return;const o=e.getValue(t);o&&o.jump(this.measuredOrigin,!1);const l=a.length-1,u=a[l];a[l]=_r[t](e.measureViewportBox(),window.getComputedStyle(e.current)),u!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=u),this.removedTransforms?.length&&this.removedTransforms.forEach(([f,d])=>{e.getValue(f).set(d)}),this.resolveNoneKeyframes()}}function P4(n,e,t){if(n instanceof EventTarget)return[n];if(typeof n=="string"){const o=document.querySelectorAll(n);return o?Array.from(o):[]}return Array.from(n)}const O4=(n,e)=>e&&typeof n=="number"?e.transform(n):n;function F9(n){return Q_(n)&&"offsetHeight"in n}const Q3=30,z9=n=>!isNaN(parseFloat(n));class V9{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{const o=Jn.now();if(this.updatedAt!==o&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const l of this.dependents)l.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=Jn.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=z9(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,t){this.events[e]||(this.events[e]=new Rm);const a=this.events[e].add(t);return e==="change"?()=>{a(),Qt.read(()=>{this.events.change.getSize()||this.stop()})}:a}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,a){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-a}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const e=Jn.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>Q3)return 0;const t=Math.min(this.updatedAt-this.prevUpdatedAt,Q3);return J_(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Lo(n,e){return new V9(n,e)}const{schedule:Gm}=u4(queueMicrotask,!1),Di={x:!1,y:!1};function I4(){return Di.x||Di.y}function j9(n){return n==="x"||n==="y"?Di[n]?null:(Di[n]=!0,()=>{Di[n]=!1}):Di.x||Di.y?null:(Di.x=Di.y=!0,()=>{Di.x=Di.y=!1})}function B4(n,e){const t=P4(n),a=new AbortController,o={passive:!0,...e,signal:a.signal};return[t,o,()=>a.abort()]}function $3(n){return!(n.pointerType==="touch"||I4())}function H9(n,e,t={}){const[a,o,l]=B4(n,t),u=f=>{if(!$3(f))return;const{target:d}=f,h=e(d,f);if(typeof h!="function"||!d)return;const g=v=>{$3(v)&&(h(v),d.removeEventListener("pointerleave",g))};d.addEventListener("pointerleave",g,o)};return a.forEach(f=>{f.addEventListener("pointerenter",u,o)}),l}const F4=(n,e)=>e?n===e?!0:F4(n,e.parentElement):!1,Wm=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1,k9=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function G9(n){return k9.has(n.tagName)||n.tabIndex!==-1}const _f=new WeakSet;function J3(n){return e=>{e.key==="Enter"&&n(e)}}function P0(n,e){n.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}const W9=(n,e)=>{const t=n.currentTarget;if(!t)return;const a=J3(()=>{if(_f.has(t))return;P0(t,"down");const o=J3(()=>{P0(t,"up")}),l=()=>P0(t,"cancel");t.addEventListener("keyup",o,e),t.addEventListener("blur",l,e)});t.addEventListener("keydown",a,e),t.addEventListener("blur",()=>t.removeEventListener("keydown",a),e)};
vendor: 4,727 bytes, line 4174
4174function ex(n){return Wm(n)&&!I4()}function X9(n,e,t={}){const[a,o,l]=B4(n,t),u=f=>{const d=f.currentTarget;if(!ex(f))return;_f.add(d);const h=e(d,f),g=(y,b)=>{window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",x),_f.has(d)&&_f.delete(d),ex(y)&&typeof h=="function"&&h(y,{success:b})},v=y=>{g(y,d===window||d===document||t.useGlobalTarget||F4(d,y.target))},x=y=>{g(y,!1)};window.addEventListener("pointerup",v,o),window.addEventListener("pointercancel",x,o)};return a.forEach(f=>{(t.useGlobalTarget?window:f).addEventListener("pointerdown",u,o),F9(f)&&(f.addEventListener("focus",h=>W9(h,o)),!G9(f)&&!f.hasAttribute("tabindex")&&(f.tabIndex=0))}),l}function z4(n){return Q_(n)&&"ownerSVGElement"in n}function q9(n){return z4(n)&&n.tagName==="svg"}const jn=n=>!!(n&&n.getVelocity),Y9=[...L4,pn,Da],Z9=n=>Y9.find(N4(n)),V4=G.createContext({transformPagePoint:n=>n,isStatic:!1,reducedMotion:"never"});function K9(n=!0){const e=G.useContext(Em);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:a,register:o}=e,l=G.useId();G.useEffect(()=>{if(n)return o(l)},[n]);const u=G.useCallback(()=>n&&a&&a(l),[l,a,n]);return!t&&a?[!1,u]:[!0]}const j4=G.createContext({strict:!1}),tx={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Do={};for(const n in tx)Do[n]={isEnabled:e=>tx[n].some(t=>!!e[t])};function Q9(n){for(const e in n)Do[e]={...Do[e],...n[e]}}const $9=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Rf(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||$9.has(n)}let H4=n=>!Rf(n);function J9(n){typeof n=="function"&&(H4=e=>e.startsWith("on")?!Rf(e):n(e))}try{J9(require("@emotion/is-prop-valid").default)}catch{}function eA(n,e,t){const a={};for(const o in n)o==="values"&&typeof n.values=="object"||(H4(o)||t===!0&&Rf(o)||!e&&!Rf(o)||n.draggable&&o.startsWith("onDrag"))&&(a[o]=n[o]);return a}const zf=G.createContext({});function Vf(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}function dc(n){return typeof n=="string"||Array.isArray(n)}const Xm=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],qm=["initial",...Xm];function jf(n){return Vf(n.animate)||qm.some(e=>dc(n[e]))}function k4(n){return!!(jf(n)||n.variants)}function tA(n,e){if(jf(n)){const{initial:t,animate:a}=n;return{initial:t===!1||dc(t)?t:void 0,animate:dc(a)?a:void 0}}return n.inherit!==!1?e:{}}function nA(n){const{initial:e,animate:t}=tA(n,G.useContext(zf));return G.useMemo(()=>({initial:e,animate:t}),[nx(e),nx(t)])}function nx(n){return Array.isArray(n)?n.join(" "):n}const hc={};function iA(n){for(const e in n)hc[e]=n[e],Dm(e)&&(hc[e].isCSSVariable=!0)}function G4(n,{layout:e,layoutId:t}){return jo.has(n)||n.startsWith("origin")||(e||t!==void 0)&&(!!hc[n]||n==="opacity")}const sA={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},aA=Vo.length;function rA(n,e,t){let a="",o=!0;for(let l=0;l<aA;l++){const u=Vo[l],f=n[u];if(f===void 0)continue;let d=!0;if(typeof f=="number"?d=f===(u.startsWith("scale")?1:0):d=parseFloat(f)===0,!d||t){const h=O4(f,km[u]);if(!d){o=!1;const g=sA[u]||u;a+=`${g}(${h}) `}t&&(e[u]=h)}}return a=a.trim(),t?a=t(e,o?"":a):o&&(a="none"),a}function Ym(n,e,t){const{style:a,vars:o,transformOrigin:l}=n;let u=!1,f=!1;for(const d in e){const h=e[d];if(jo.has(d)){u=!0;continue}else if(Dm(d)){o[d]=h;continue}else{const g=O4(h,km[d]);d.startsWith("origin")?(f=!0,l[d]=g):a[d]=g}}if(e.transform||(u||t?a.transform=rA(e,n.transform,t):a.transform&&(a.transform="none")),f){const{originX:d="50%",originY:h="50%",originZ:g=0}=l;a.transformOrigin=`${d} ${h} ${g}`}}const Zm=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function W4(n,e,t){for(const a in e)!jn(e[a])&&!G4(a,t)&&(n[a]=e[a])}function oA({transformTemplate:n},e){return G.useMemo(()=>{const t=Zm();return Ym(t,e,n),Object.assign({},t.vars,t.style)}
vendor: 41,007 bytes, line 4174
4174,[e])}function lA(n,e){const t=n.style||{},a={};return W4(a,t,n),Object.assign(a,oA(n,e)),a}function cA(n,e){const t={},a=lA(n,e);return n.drag&&n.dragListener!==!1&&(t.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(t.tabIndex=0),t.style=a,t}const uA={offset:"stroke-dashoffset",array:"stroke-dasharray"},fA={offset:"strokeDashoffset",array:"strokeDasharray"};function dA(n,e,t=1,a=0,o=!0){n.pathLength=1;const l=o?uA:fA;n[l.offset]=at.transform(-a);const u=at.transform(e),f=at.transform(t);n[l.array]=`${u} ${f}`}function X4(n,{attrX:e,attrY:t,attrScale:a,pathLength:o,pathSpacing:l=1,pathOffset:u=0,...f},d,h,g){if(Ym(n,f,h),d){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:v,style:x}=n;v.transform&&(x.transform=v.transform,delete v.transform),(x.transform||v.transformOrigin)&&(x.transformOrigin=v.transformOrigin??"50% 50%",delete v.transformOrigin),x.transform&&(x.transformBox=g?.transformBox??"fill-box",delete v.transformBox),e!==void 0&&(v.x=e),t!==void 0&&(v.y=t),a!==void 0&&(v.scale=a),o!==void 0&&dA(v,o,l,u,!1)}const q4=()=>({...Zm(),attrs:{}}),Y4=n=>typeof n=="string"&&n.toLowerCase()==="svg";function hA(n,e,t,a){const o=G.useMemo(()=>{const l=q4();return X4(l,e,Y4(a),n.transformTemplate,n.style),{...l.attrs,style:{...l.style}}},[e]);if(n.style){const l={};W4(l,n.style,n),o.style={...l,...o.style}}return o}const pA=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Km(n){return typeof n!="string"||n.includes("-")?!1:!!(pA.indexOf(n)>-1||/[A-Z]/u.test(n))}function mA(n,e,t,{latestValues:a},o,l=!1){const f=(Km(n)?hA:cA)(e,a,o,n),d=eA(e,typeof n=="string",l),h=n!==G.Fragment?{...d,...f,ref:t}:{},{children:g}=e,v=G.useMemo(()=>jn(g)?g.get():g,[g]);return G.createElement(n,{...h,children:v})}function ix(n){const e=[{},{}];return n?.values.forEach((t,a)=>{e[0][a]=t.get(),e[1][a]=t.getVelocity()}),e}function Qm(n,e,t,a){if(typeof e=="function"){const[o,l]=ix(a);e=e(t!==void 0?t:n.custom,o,l)}if(typeof e=="string"&&(e=n.variants&&n.variants[e]),typeof e=="function"){const[o,l]=ix(a);e=e(t!==void 0?t:n.custom,o,l)}return e}function yf(n){return jn(n)?n.get():n}function gA({scrapeMotionValuesFromProps:n,createRenderState:e},t,a,o){return{latestValues:vA(t,a,o,n),renderState:e()}}function vA(n,e,t,a){const o={},l=a(n,{});for(const x in l)o[x]=yf(l[x]);let{initial:u,animate:f}=n;const d=jf(n),h=k4(n);e&&h&&!d&&n.inherit!==!1&&(u===void 0&&(u=e.initial),f===void 0&&(f=e.animate));let g=t?t.initial===!1:!1;g=g||u===!1;const v=g?f:u;if(v&&typeof v!="boolean"&&!Vf(v)){const x=Array.isArray(v)?v:[v];for(let y=0;y<x.length;y++){const b=Qm(n,x[y]);if(b){const{transitionEnd:w,transition:M,...S}=b;for(const N in S){let T=S[N];if(Array.isArray(T)){const R=g?T.length-1:0;T=T[R]}T!==null&&(o[N]=T)}for(const N in w)o[N]=w[N]}}}return o}const Z4=n=>(e,t)=>{const a=G.useContext(zf),o=G.useContext(Em),l=()=>gA(n,e,a,o);return t?l():$7(l)};function $m(n,e,t){const{style:a}=n,o={};for(const l in a)(jn(a[l])||e.style&&jn(e.style[l])||G4(l,n)||t?.getValue(l)?.liveStyle!==void 0)&&(o[l]=a[l]);return o}const xA=Z4({scrapeMotionValuesFromProps:$m,createRenderState:Zm});function K4(n,e,t){const a=$m(n,e,t);for(const o in n)if(jn(n[o])||jn(e[o])){const l=Vo.indexOf(o)!==-1?"attr"+o.charAt(0).toUpperCase()+o.substring(1):o;a[l]=n[o]}return a}const _A=Z4({scrapeMotionValuesFromProps:K4,createRenderState:q4}),yA=Symbol.for("motionComponentSymbol");function xo(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function SA(n,e,t){return G.useCallback(a=>{a&&n.onMount&&n.onMount(a),e&&(a?e.mount(a):e.unmount()),t&&(typeof t=="function"?t(a):xo(t)&&(t.current=a))},[e])}const Jm=n=>n.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),MA="framerAppearId",Q4="data-"+Jm(MA),$4=G.createContext({});function bA(n,e,t,a,o){const{visualElement:l}=G.useContext(zf),u=G.useContext(j4),f=G.useContext(Em),d=G.useContext(V4).reducedMotion,h=G.useRef(null);a=a||u.renderer,!h.current&&a&&(h.current=a(n,{visualState:e,parent:l,props:t,presenceContext:f,blockInitialAnimation:f?f.initial===!1:!1,reducedMotionConfig:d}));const g=h.current,v=G.useContext($4);g&&!g.projection&&o&&(g.type==="html"||g.type==="svg")&&EA(h.current,t,o,v);const x=G.useRef(!1);G.useInsertionEffect(()=>{g&&x.current&&g.update(t,f)});const y=t[Q4],b=G.useRef(!!y&&!window.MotionHandoffIsComplete?.(y)&&window.MotionHasOptimisedAnimation?.(y));return J7(()=>{g&&(x.current=!0,window.MotionIsMounted=!0,g.updateFeatures(),g.scheduleRenderMicrotask(),b.current&&g.animationState&&g.animationState.animateChanges())}),G.useEffect(()=>{g&&(!b.current&&g.animationState&&g.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(y)}),b.current=!1),g.enteringChildren=void 0)}),g}function EA(n,e,t,a){const{layoutId:o,layout:l,drag:u,dragConstraints:f,layoutScroll:d,layoutRoot:h,layoutCrossfade:g}=e;n.projection=new t(n.latestValues,e["data-framer-portal-id"]?void 0:J4(n.parent)),n.projection.setOptions({layoutId:o,layout:l,alwaysMeasureLayout:!!u||f&&xo(f),visualElement:n,animationType:typeof l=="string"?l:"both",initialPromotionConfig:a,crossfade:g,layoutScroll:d,layoutRoot:h})}function J4(n){if(n)return n.options.allowProjection!==!1?n.projection:J4(n.parent)}function O0(n,{forwardMotionProps:e=!1}={},t,a){t&&Q9(t);const o=Km(n)?_A:xA;function l(f,d){let h;const g={...G.useContext(V4),...f,layoutId:wA(f)},{isStatic:v}=g,x=nA(f),y=o(f,v);if(!v&&bm){TA();const b=CA(g);h=b.MeasureLayout,x.visualElement=bA(n,y,g,a,b.ProjectionNode)}return m.jsxs(zf.Provider,{value:x,children:[h&&x.visualElement?m.jsx(h,{visualElement:x.visualElement,...g}):null,mA(n,f,SA(y,x.visualElement,d),y,v,e)]})}l.displayName=`motion.${typeof n=="string"?n:`create(${n.displayName??n.name??""})`}`;const u=G.forwardRef(l);return u[yA]=n,u}function wA({layoutId:n}){const e=G.useContext(Z_).id;return e&&n!==void 0?e+"-"+n:n}function TA(n,e){G.useContext(j4).strict}function CA(n){const{drag:e,layout:t}=Do;if(!e&&!t)return{};const a={...e,...t};return{MeasureLayout:e?.isEnabled(n)||t?.isEnabled(n)?a.MeasureLayout:void 0,ProjectionNode:a.ProjectionNode}}function AA(n,e){if(typeof Proxy>"u")return O0;const t=new Map,a=(l,u)=>O0(l,u,n,e),o=(l,u)=>a(l,u);return new Proxy(o,{get:(l,u)=>u==="create"?a:(t.has(u)||t.set(u,O0(u,void 0,n,e)),t.get(u))})}function ey({top:n,left:e,right:t,bottom:a}){return{x:{min:e,max:t},y:{min:n,max:a}}}function RA({x:n,y:e}){return{top:e.min,right:n.max,bottom:e.max,left:n.min}}function NA(n,e){if(!e)return n;const t=e({x:n.left,y:n.top}),a=e({x:n.right,y:n.bottom});return{top:t.y,left:t.x,bottom:a.y,right:a.x}}function I0(n){return n===void 0||n===1}function Kp({scale:n,scaleX:e,scaleY:t}){return!I0(n)||!I0(e)||!I0(t)}function fr(n){return Kp(n)||ty(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function ty(n){return sx(n.x)||sx(n.y)}function sx(n){return n&&n!=="0%"}function Nf(n,e,t){const a=n-t,o=e*a;return t+o}function ax(n,e,t,a,o){return o!==void 0&&(n=Nf(n,o,a)),Nf(n,t,a)+e}function Qp(n,e=0,t=1,a,o){n.min=ax(n.min,e,t,a,o),n.max=ax(n.max,e,t,a,o)}function ny(n,{x:e,y:t}){Qp(n.x,e.translate,e.scale,e.originPoint),Qp(n.y,t.translate,t.scale,t.originPoint)}const rx=.999999999999,ox=1.0000000000001;function LA(n,e,t,a=!1){const o=t.length;if(!o)return;e.x=e.y=1;let l,u;for(let f=0;f<o;f++){l=t[f],u=l.projectionDelta;const{visualElement:d}=l.options;d&&d.props.style&&d.props.style.display==="contents"||(a&&l.options.layoutScroll&&l.scroll&&l!==l.root&&yo(n,{x:-l.scroll.offset.x,y:-l.scroll.offset.y}),u&&(e.x*=u.x.scale,e.y*=u.y.scale,ny(n,u)),a&&fr(l.latestValues)&&yo(n,l.latestValues))}e.x<ox&&e.x>rx&&(e.x=1),e.y<ox&&e.y>rx&&(e.y=1)}function _o(n,e){n.min=n.min+e,n.max=n.max+e}function lx(n,e,t,a,o=.5){const l=en(n.min,n.max,o);Qp(n,e,t,l,a)}function yo(n,e){lx(n.x,e.x,e.scaleX,e.scale,e.originX),lx(n.y,e.y,e.scaleY,e.scale,e.originY)}function iy(n,e){return ey(NA(n.getBoundingClientRect(),e))}function DA(n,e,t){const a=iy(n,t),{scroll:o}=e;return o&&(_o(a.x,o.offset.x),_o(a.y,o.offset.y)),a}const cx=()=>({translate:0,scale:1,origin:0,originPoint:0}),So=()=>({x:cx(),y:cx()}),ux=()=>({min:0,max:0}),ln=()=>({x:ux(),y:ux()}),$p={current:null},sy={current:!1};function UA(){if(sy.current=!0,!!bm)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),e=()=>$p.current=n.matches;n.addEventListener("change",e),e()}else $p.current=!1}const PA=new WeakMap;function OA(n,e,t){for(const a in e){const o=e[a],l=t[a];if(jn(o))n.addValue(a,o);else if(jn(l))n.addValue(a,Lo(o,{owner:n}));else if(l!==o)if(n.hasValue(a)){const u=n.getValue(a);u.liveStyle===!0?u.jump(o):u.hasAnimated||u.set(o)}else{const u=n.getStaticValue(a);n.addValue(a,Lo(u!==void 0?u:o,{owner:n}))}}for(const a in t)e[a]===void 0&&n.removeValue(a);return e}const fx=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class IA{scrapeMotionValuesFromProps(e,t,a){return{}}constructor({parent:e,props:t,presenceContext:a,reducedMotionConfig:o,blockInitialAnimation:l,visualState:u},f={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=jm,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const x=Jn.now();this.renderScheduledAt<x&&(this.renderScheduledAt=x,Qt.render(this.render,!1,!0))};const{latestValues:d,renderState:h}=u;this.latestValues=d,this.baseTarget={...d},this.initialValues=t.initial?{...d}:{},this.renderState=h,this.parent=e,this.props=t,this.presenceContext=a,this.depth=e?e.depth+1:0,this.reducedMotionConfig=o,this.options=f,this.blockInitialAnimation=!!l,this.isControllingVariants=jf(t),this.isVariantNode=k4(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:g,...v}=this.scrapeMotionValuesFromProps(t,{},this);for(const x in v){const y=v[x];d[x]!==void 0&&jn(y)&&y.set(d[x])}}mount(e){this.current=e,PA.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((t,a)=>this.bindToMotionValue(a,t)),sy.current||UA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:$p.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),La(this.notifyUpdate),La(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const e in this.events)this.events[e].clear();for(const e in this.features){const t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)();const a=jo.has(e);a&&this.onBindTransform&&this.onBindTransform();const o=t.on("change",u=>{this.latestValues[e]=u,this.props.onUpdate&&Qt.preRender(this.notifyUpdate),a&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let l;window.MotionCheckAppearSync&&(l=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{o(),l&&l(),t.owner&&t.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e="animation";for(e in Do){const t=Do[e];if(!t)continue;const{isEnabled:a,Feature:o}=t;if(!this.features[e]&&o&&a(this.props)&&(this.features[e]=new o(this)),this.features[e]){const l=this.features[e];l.isMounted?l.update():(l.mount(),l.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):ln()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let a=0;a<fx.length;a++){const o=fx[a];this.propEventSubscriptions[o]&&(this.propEventSubscriptions[o](),delete this.propEventSubscriptions[o]);const l="on"+o,u=e[l];u&&(this.propEventSubscriptions[o]=this.on(o,u))}this.prevMotionValues=OA(this,this.scrapeMotionValuesFromProps(e,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(e){const t=this.getClosestVariantNode();if(t)return t.variantChildren&&t.variantChildren.add(e),()=>t.variantChildren.delete(e)}addValue(e,t){const a=this.values.get(e);t!==a&&(a&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t),this.latestValues[e]=t.get())}removeValue(e){this.values.delete(e);const t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let a=this.values.get(e);return a===void 0&&t!==void 0&&(a=Lo(t===null?void 0:t,{owner:this}),this.addValue(e,a)),a}readValue(e,t){let a=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return a!=null&&(typeof a=="string"&&(K_(a)||$_(a))?a=parseFloat(a):!Z9(a)&&Da.test(t)&&(a=U4(e,t)),this.setBaseTarget(e,jn(a)?a.get():a)),jn(a)?a.get():a}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){const{initial:t}=this.props;let a;if(typeof t=="string"||typeof t=="object"){const l=Qm(this.props,t,this.presenceContext?.custom);l&&(a=l[e])}if(t&&a!==void 0)return a;const o=this.getBaseTargetFromProps(this.props,e);return o!==void 0&&!jn(o)?o:this.initialValues[e]!==void 0&&a===void 0?void 0:this.baseTarget[e]}on(e,t){return this.events[e]||(this.events[e]=new Rm),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}scheduleRenderMicrotask(){Gm.render(this.render)}}class ay extends IA{constructor(){super(...arguments),this.KeyframeResolver=B9}sortInstanceNodePosition(e,t){return e.compareDocumentPosition(t)&2?1:-1}getBaseTargetFromProps(e,t){return e.style?e.style[t]:void 0}removeValueFromRenderState(e,{vars:t,style:a}){delete t[e],delete a[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;jn(e)&&(this.childSubscription=e.on("change",t=>{this.current&&(this.current.textContent=`${t}`)}))}}function ry(n,{style:e,vars:t},a,o){const l=n.style;let u;for(u in e)l[u]=e[u];o?.applyProjectionStyles(l,a);for(u in t)l.setProperty(u,t[u])}function BA(n){return window.getComputedStyle(n)}class FA extends ay{constructor(){super(...arguments),this.type="html",this.renderInstance=ry}readValueFromInstance(e,t){if(jo.has(t))return this.projection?.isProjecting?kp(t):n9(e,t);{const a=BA(e),o=(Dm(t)?a.getPropertyValue(t):a[t])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(e,{transformPagePoint:t}){return iy(e,t)}build(e,t,a){Ym(e,t,a.transformTemplate)}scrapeMotionValuesFromProps(e,t,a){return $m(e,t,a)}}const oy=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function zA(n,e,t,a){ry(n,e,void 0,a);for(const o in e.attrs)n.setAttribute(oy.has(o)?o:Jm(o),e.attrs[o])}class VA extends ay{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=ln}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(jo.has(t)){const a=D4(t);return a&&a.default||0}return t=oy.has(t)?t:Jm(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,a){return K4(e,t,a)}build(e,t,a){X4(e,t,this.isSVGTag,a.transformTemplate,a.style)}renderInstance(e,t,a,o){zA(e,t,a,o)}mount(e){this.isSVGTag=Y4(e.tagName),super.mount(e)}}const jA=(n,e)=>Km(n)?new VA(e):new FA(e,{allowProjection:n!==G.Fragment});function wo(n,e,t){const a=n.getProps();return Qm(a,e,t!==void 0?t:a.custom,n)}const Jp=n=>Array.isArray(n);function HA(n,e,t){n.hasValue(e)?n.getValue(e).set(t):n.addValue(e,Lo(t))}function kA(n){return Jp(n)?n[n.length-1]||0:n}function GA(n,e){const t=wo(n,e);let{transitionEnd:a={},transition:o={},...l}=t||{};l={...l,...a};for(const u in l){const f=kA(l[u]);HA(n,u,f)}}function WA(n){return!!(jn(n)&&n.add)}function em(n,e){const t=n.getValue("willChange");if(WA(t))return t.add(e);if(!t&&Is.WillChange){const a=new Is.WillChange("auto");n.addValue("willChange",a),a.add(e)}}function ly(n){return n.props[Q4]}const XA=n=>n!==null;function qA(n,{repeat:e,repeatType:t="loop"},a){const o=n.filter(XA),l=e&&t!=="loop"&&e%2===1?0:o.length-1;return o[l]}const YA={type:"spring",stiffness:500,damping:25,restSpeed:10},ZA=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),KA={type:"keyframes",duration:.8},QA={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},$A=(n,{keyframes:e})=>e.length>2?KA:jo.has(n)?n.startsWith("scale")?ZA(e[1]):YA:QA;function JA({when:n,delay:e,delayChildren:t,staggerChildren:a,staggerDirection:o,repeat:l,repeatType:u,repeatDelay:f,from:d,elapsed:h,...g}){return!!Object.keys(g).length}const e2=(n,e,t,a={},o,l)=>u=>{const f=Hm(a,n)||{},d=f.delay||a.delay||0;let{elapsed:h=0}=a;h=h-Zi(d);const g={keyframes:Array.isArray(t)?t:[null,t],ease:"easeOut",velocity:e.getVelocity(),...f,delay:-h,onUpdate:x=>{e.set(x),f.onUpdate&&f.onUpdate(x)},onComplete:()=>{u(),f.onComplete&&f.onComplete()},name:n,motionValue:e,element:l?void 0:o};JA(f)||Object.assign(g,$A(n,g)),g.duration&&(g.duration=Zi(g.duration)),g.repeatDelay&&(g.repeatDelay=Zi(g.repeatDelay)),g.from!==void 0&&(g.keyframes[0]=g.from);let v=!1;if((g.type===!1||g.duration===0&&!g.repeatDelay)&&(Yp(g),g.delay===0&&(v=!0)),(Is.instantAnimations||Is.skipAnimations)&&(v=!0,Yp(g),g.delay=0),g.allowFlatten=!f.type&&!f.ease,v&&!l&&e.get()!==void 0){const x=qA(g.keyframes,f);if(x!==void 0){Qt.update(()=>{g.onUpdate(x),g.onComplete()});return}}return f.isSync?new Vm(g):new w9(g)};function eR({protectedKeys:n,needsAnimating:e},t){const a=n.hasOwnProperty(t)&&e[t]!==!0;return e[t]=!1,a}function cy(n,e,{delay:t=0,transitionOverride:a,type:o}={}){let{transition:l=n.getDefaultTransition(),transitionEnd:u,...f}=e;a&&(l=a);const d=[],h=o&&n.animationState&&n.animationState.getState()[o];for(const g in f){const v=n.getValue(g,n.latestValues[g]??null),x=f[g];if(x===void 0||h&&eR(h,g))continue;const y={delay:t,...Hm(l||{},g)},b=v.get();if(b!==void 0&&!v.isAnimating&&!Array.isArray(x)&&x===b&&!y.velocity)continue;let w=!1;if(window.MotionHandoffAnimation){const S=ly(n);if(S){const N=window.MotionHandoffAnimation(S,g,Qt);N!==null&&(y.startTime=N,w=!0)}}em(n,g),v.start(e2(g,v,x,n.shouldReduceMotion&&R4.has(g)?{type:!1}:y,n,w));const M=v.animation;M&&d.push(M)}return u&&Promise.all(d).then(()=>{Qt.update(()=>{u&&GA(n,u)})}),d}function uy(n,e,t,a=0,o=1){const l=Array.from(n).sort((h,g)=>h.sortNodePosition(g)).indexOf(e),u=n.size,f=(u-1)*a;return typeof t=="function"?t(l,u):o===1?l*a:f-l*a}function tm(n,e,t={}){const a=wo(n,e,t.type==="exit"?n.presenceContext?.custom:void 0);let{transition:o=n.getDefaultTransition()||{}}=a||{};t.transitionOverride&&(o=t.transitionOverride);const l=a?()=>Promise.all(cy(n,a,t)):()=>Promise.resolve(),u=n.variantChildren&&n.variantChildren.size?(d=0)=>{const{delayChildren:h=0,staggerChildren:g,staggerDirection:v}=o;return tR(n,e,d,h,g,v,t)}:()=>Promise.resolve(),{when:f}=o;if(f){const[d,h]=f==="beforeChildren"?[l,u]:[u,l];return d().then(()=>h())}else return Promise.all([l(),u(t.delay)])}function tR(n,e,t=0,a=0,o=0,l=1,u){const f=[];for(const d of n.variantChildren)d.notify("AnimationStart",e),f.push(tm(d,e,{...u,delay:t+(typeof a=="function"?0:a)+uy(n.variantChildren,d,a,o,l)}).then(()=>d.notify("AnimationComplete",e)));return Promise.all(f)}function nR(n,e,t={}){n.notify("AnimationStart",e);let a;if(Array.isArray(e)){const o=e.map(l=>tm(n,l,t));a=Promise.all(o)}else if(typeof e=="string")a=tm(n,e,t);else{const o=typeof e=="function"?wo(n,e,t.custom):e;a=Promise.all(cy(n,o,t))}return a.then(()=>{n.notify("AnimationComplete",e)})}function fy(n,e){if(!Array.isArray(e))return!1;const t=e.length;if(t!==n.length)return!1;for(let a=0;a<t;a++)if(e[a]!==n[a])return!1;return!0}const iR=qm.length;function dy(n){if(!n)return;if(!n.isControllingVariants){const t=n.parent?dy(n.parent)||{}:{};return n.props.initial!==void 0&&(t.initial=n.props.initial),t}const e={};for(let t=0;t<iR;t++){const a=qm[t],o=n.props[a];(dc(o)||o===!1)&&(e[a]=o)}return e}const sR=[...Xm].reverse(),aR=Xm.length;function rR(n){return e=>Promise.all(e.map(({animation:t,options:a})=>nR(n,t,a)))}function oR(n){let e=rR(n),t=dx(),a=!0;const o=d=>(h,g)=>{const v=wo(n,g,d==="exit"?n.presenceContext?.custom:void 0);if(v){const{transition:x,transitionEnd:y,...b}=v;h={...h,...b,...y}}return h};function l(d){e=d(n)}function u(d){const{props:h}=n,g=dy(n.parent)||{},v=[],x=new Set;let y={},b=1/0;for(let M=0;M<aR;M++){const S=sR[M],N=t[S],T=h[S]!==void 0?h[S]:g[S],R=dc(T),P=S===d?N.isActive:null;P===!1&&(b=M);let I=T===g[S]&&T!==h[S]&&R;if(I&&a&&n.manuallyAnimateOnMount&&(I=!1),N.protectedKeys={...y},!N.isActive&&P===null||!T&&!N.prevProp||Vf(T)||typeof T=="boolean")continue;const F=lR(N.prevProp,T);let V=F||S===d&&N.isActive&&!I&&R||M>b&&R,U=!1;const L=Array.isArray(T)?T:[T];let z=L.reduce(o(S),{});P===!1&&(z={});const{prevResolvedValues:ce={}}=N,ue={...ce,...z},ge=Z=>{V=!0,x.has(Z)&&(U=!0,x.delete(Z)),N.needsAnimating[Z]=!0;const Y=n.getValue(Z);Y&&(Y.liveStyle=!1)};for(const Z in ue){const Y=z[Z],he=ce[Z];if(y.hasOwnProperty(Z))continue;let O=!1;Jp(Y)&&Jp(he)?O=!fy(Y,he):O=Y!==he,O?Y!=null?ge(Z):x.add(Z):Y!==void 0&&x.has(Z)?ge(Z):N.protectedKeys[Z]=!0}N.prevProp=T,N.prevResolvedValues=z,N.isActive&&(y={...y,...z}),a&&n.blockInitialAnimation&&(V=!1);const me=I&&F;V&&(!me||U)&&v.push(...L.map(Z=>{const Y={type:S};if(typeof Z=="string"&&a&&!me&&n.manuallyAnimateOnMount&&n.parent){const{parent:he}=n,O=wo(he,Z);if(he.enteringChildren&&O){const{delayChildren:ee}=O.transition||{};Y.delay=uy(he.enteringChildren,n,ee)}}return{animation:Z,options:Y}}))}if(x.size){const M={};if(typeof h.initial!="boolean"){const S=wo(n,Array.isArray(h.initial)?h.initial[0]:h.initial);S&&S.transition&&(M.transition=S.transition)}x.forEach(S=>{const N=n.getBaseTarget(S),T=n.getValue(S);T&&(T.liveStyle=!0),M[S]=N??null}),v.push({animation:M})}let w=!!v.length;return a&&(h.initial===!1||h.initial===h.animate)&&!n.manuallyAnimateOnMount&&(w=!1),a=!1,w?e(v):Promise.resolve()}function f(d,h){if(t[d].isActive===h)return Promise.resolve();n.variantChildren?.forEach(v=>v.animationState?.setActive(d,h)),t[d].isActive=h;const g=u(d);for(const v in t)t[v].protectedKeys={};return g}return{animateChanges:u,setActive:f,setAnimateFunction:l,getState:()=>t,reset:()=>{t=dx(),a=!0}}}function lR(n,e){return typeof e=="string"?e!==n:Array.isArray(e)?!fy(e,n):!1}function or(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function dx(){return{animate:or(!0),whileInView:or(),whileHover:or(),whileTap:or(),whileDrag:or(),whileFocus:or(),exit:or()}}class Pa{constructor(e){this.isMounted=!1,this.node=e}update(){}}class cR extends Pa{constructor(e){super(e),e.animationState||(e.animationState=oR(e))}updateAnimationControlsSubscription(){const{animate:e}=this.node.getProps();Vf(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let uR=0;class fR extends Pa{constructor(){super(...arguments),this.id=uR++}update(){if(!this.node.presenceContext)return;const{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===a)return;const o=this.node.animationState.setActive("exit",!e);t&&!e&&o.then(()=>{t(this.id)})}mount(){const{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}const dR={animation:{Feature:cR},exit:{Feature:fR}};function pc(n,e,t,a={passive:!0}){return n.addEventListener(e,t,a),()=>n.removeEventListener(e,t)}function Tc(n){return{point:{x:n.pageX,y:n.pageY}}}const hR=n=>e=>Wm(e)&&n(e,Tc(e));function Jl(n,e,t,a){return pc(n,e,hR(t),a)}const hy=1e-4,pR=1-hy,mR=1+hy,py=.01,gR=0-py,vR=0+py;function Gn(n){return n.max-n.min}function xR(n,e,t){return Math.abs(n-e)<=t}function hx(n,e,t,a=.5){n.origin=a,n.originPoint=en(e.min,e.max,n.origin),n.scale=Gn(t)/Gn(e),n.translate=en(t.min,t.max,n.origin)-n.originPoint,(n.scale>=pR&&n.scale<=mR||isNaN(n.scale))&&(n.scale=1),(n.translate>=gR&&n.translate<=vR||isNaN(n.translate))&&(n.translate=0)}function ec(n,e,t,a){hx(n.x,e.x,t.x,a?a.originX:void 0),hx(n.y,e.y,t.y,a?a.originY:void 0)}function px(n,e,t){n.min=t.min+e.min,n.max=n.min+Gn(e)}function _R(n,e,t){px(n.x,e.x,t.x),px(n.y,e.y,t.y)}function mx(n,e,t){n.min=e.min-t.min,n.max=n.min+Gn(e)}function tc(n,e,t){mx(n.x,e.x,t.x),mx(n.y,e.y,t.y)}function Ei(n){return[n("x"),n("y")]}const my=({current:n})=>n?n.ownerDocument.defaultView:null,gx=(n,e)=>Math.abs(n-e);function yR(n,e){const t=gx(n.x,e.x),a=gx(n.y,e.y);return Math.sqrt(t**2+a**2)}class gy{constructor(e,t,{transformPagePoint:a,contextWindow:o=window,dragSnapToOrigin:l=!1,distanceThreshold:u=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=F0(this.lastMoveEventInfo,this.history),y=this.startEvent!==null,b=yR(x.offset,{x:0,y:0})>=this.distanceThreshold;if(!y&&!b)return;const{point:w}=x,{timestamp:M}=On;this.history.push({...w,timestamp:M});const{onStart:S,onMove:N}=this.handlers;y||(S&&S(this.lastMoveEvent,x),this.startEvent=this.lastMoveEvent),N&&N(this.lastMoveEvent,x)},this.handlePointerMove=(x,y)=>{this.lastMoveEvent=x,this.lastMoveEventInfo=B0(y,this.transformPagePoint),Qt.update(this.updatePoint,!0)},this.handlePointerUp=(x,y)=>{this.end();const{onEnd:b,onSessionEnd:w,resumeAnimation:M}=this.handlers;if(this.dragSnapToOrigin&&M&&M(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const S=F0(x.type==="pointercancel"?this.lastMoveEventInfo:B0(y,this.transformPagePoint),this.history);this.startEvent&&b&&b(x,S),w&&w(x,S)},!Wm(e))return;this.dragSnapToOrigin=l,this.handlers=t,this.transformPagePoint=a,this.distanceThreshold=u,this.contextWindow=o||window;const f=Tc(e),d=B0(f,this.transformPagePoint),{point:h}=d,{timestamp:g}=On;this.history=[{...h,timestamp:g}];const{onSessionStart:v}=t;v&&v(e,F0(d,this.history)),this.removeListeners=bc(Jl(this.contextWindow,"pointermove",this.handlePointerMove),Jl(this.contextWindow,"pointerup",this.handlePointerUp),Jl(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),La(this.updatePoint)}}function B0(n,e){return e?{point:e(n.point)}:n}function vx(n,e){return{x:n.x-e.x,y:n.y-e.y}}function F0({point:n},e){return{point:n,delta:vx(n,vy(e)),offset:vx(n,SR(e)),velocity:MR(e,.1)}}function SR(n){return n[0]}function vy(n){return n[n.length-1]}function MR(n,e){if(n.length<2)return{x:0,y:0};let t=n.length-1,a=null;const o=vy(n);for(;t>=0&&(a=n[t],!(o.timestamp-a.timestamp>Zi(e)));)t--;if(!a)return{x:0,y:0};const l=Ki(o.timestamp-a.timestamp);if(l===0)return{x:0,y:0};const u={x:(o.x-a.x)/l,y:(o.y-a.y)/l};return u.x===1/0&&(u.x=0),u.y===1/0&&(u.y=0),u}function bR(n,{min:e,max:t},a){return e!==void 0&&n<e?n=a?en(e,n,a.min):Math.max(n,e):t!==void 0&&n>t&&(n=a?en(t,n,a.max):Math.min(n,t)),n}function xx(n,e,t){return{min:e!==void 0?n.min+e:void 0,max:t!==void 0?n.max+t-(n.max-n.min):void 0}}function ER(n,{top:e,left:t,bottom:a,right:o}){return{x:xx(n.x,t,o),y:xx(n.y,e,a)}}function _x(n,e){let t=e.min-n.min,a=e.max-n.max;return e.max-e.min<n.max-n.min&&([t,a]=[a,t]),{min:t,max:a}}function wR(n,e){return{x:_x(n.x,e.x),y:_x(n.y,e.y)}}function TR(n,e){let t=.5;const a=Gn(n),o=Gn(e);return o>a?t=cc(e.min,e.max-a,n.min):a>o&&(t=cc(n.min,n.max-o,e.min)),Os(0,1,t)}function CR(n,e){const t={};return e.min!==void 0&&(t.min=e.min-n.min),e.max!==void 0&&(t.max=e.max-n.min),t}const nm=.35;function AR(n=nm){return n===!1?n=0:n===!0&&(n=nm),{x:yx(n,"left","right"),y:yx(n,"top","bottom")}}function yx(n,e,t){return{min:Sx(n,e),max:Sx(n,t)}}function Sx(n,e){return typeof n=="number"?n:n[e]||0}const RR=new WeakMap;class NR{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=ln(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:a}={}){const{presenceContext:o}=this.visualElement;if(o&&o.isPresent===!1)return;const l=v=>{const{dragSnapToOrigin:x}=this.getProps();x?this.pauseAnimation():this.stopAnimation(),t&&this.snapToCursor(Tc(v).point)},u=(v,x)=>{const{drag:y,dragPropagation:b,onDragStart:w}=this.getProps();if(y&&!b&&(this.openDragLock&&this.openDragLock(),this.openDragLock=j9(y),!this.openDragLock))return;this.latestPointerEvent=v,this.latestPanInfo=x,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ei(S=>{let N=this.getAxisMotionValue(S).get()||0;if(Qi.test(N)){const{projection:T}=this.visualElement;if(T&&T.layout){const R=T.layout.layoutBox[S];R&&(N=Gn(R)*(parseFloat(N)/100))}}this.originPoint[S]=N}),w&&Qt.postRender(()=>w(v,x)),em(this.visualElement,"transform");const{animationState:M}=this.visualElement;M&&M.setActive("whileDrag",!0)},f=(v,x)=>{this.latestPointerEvent=v,this.latestPanInfo=x;const{dragPropagation:y,dragDirectionLock:b,onDirectionLock:w,onDrag:M}=this.getProps();if(!y&&!this.openDragLock)return;const{offset:S}=x;if(b&&this.currentDirection===null){this.currentDirection=LR(S),this.currentDirection!==null&&w&&w(this.currentDirection);return}this.updateAxis("x",x.point,S),this.updateAxis("y",x.point,S),this.visualElement.render(),M&&M(v,x)},d=(v,x)=>{this.latestPointerEvent=v,this.latestPanInfo=x,this.stop(v,x),this.latestPointerEvent=null,this.latestPanInfo=null},h=()=>Ei(v=>this.getAnimationState(v)==="paused"&&this.getAxisMotionValue(v).animation?.play()),{dragSnapToOrigin:g}=this.getProps();this.panSession=new gy(e,{onSessionStart:l,onStart:u,onMove:f,onSessionEnd:d,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,distanceThreshold:a,contextWindow:my(this.visualElement)})}stop(e,t){const a=e||this.latestPointerEvent,o=t||this.latestPanInfo,l=this.isDragging;if(this.cancel(),!l||!o||!a)return;const{velocity:u}=o;this.startAnimation(u);const{onDragEnd:f}=this.getProps();f&&Qt.postRender(()=>f(a,o))}cancel(){this.isDragging=!1;const{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive("whileDrag",!1)}updateAxis(e,t,a){const{drag:o}=this.getProps();if(!a||!lf(e,o,this.currentDirection))return;const l=this.getAxisMotionValue(e);let u=this.originPoint[e]+a[e];this.constraints&&this.constraints[e]&&(u=bR(u,this.constraints[e],this.elastic[e])),l.set(u)}resolveConstraints(){const{dragConstraints:e,dragElastic:t}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,o=this.constraints;e&&xo(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&a?this.constraints=ER(a.layoutBox,e):this.constraints=!1,this.elastic=AR(t),o!==this.constraints&&a&&this.constraints&&!this.hasMutatedConstraints&&Ei(l=>{this.constraints!==!1&&this.getAxisMotionValue(l)&&(this.constraints[l]=CR(a.layoutBox[l],this.constraints[l]))})}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!xo(e))return!1;const a=e.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const l=DA(a,o.root,this.visualElement.getTransformPagePoint());let u=wR(o.layout.layoutBox,l);if(t){const f=t(RA(u));this.hasMutatedConstraints=!!f,f&&(u=ey(f))}return u}startAnimation(e){const{drag:t,dragMomentum:a,dragElastic:o,dragTransition:l,dragSnapToOrigin:u,onDragTransitionEnd:f}=this.getProps(),d=this.constraints||{},h=Ei(g=>{if(!lf(g,t,this.currentDirection))return;let v=d&&d[g]||{};u&&(v={min:0,max:0});const x=o?200:1e6,y=o?40:1e7,b={type:"inertia",velocity:a?e[g]:0,bounceStiffness:x,bounceDamping:y,timeConstant:750,restDelta:1,restSpeed:10,...l,...v};return this.startAxisValueAnimation(g,b)});return Promise.all(h).then(f)}startAxisValueAnimation(e,t){const a=this.getAxisMotionValue(e);return em(this.visualElement,e),a.start(e2(e,a,0,t,this.visualElement,!1))}stopAnimation(){Ei(e=>this.getAxisMotionValue(e).stop())}pauseAnimation(){Ei(e=>this.getAxisMotionValue(e).animation?.pause())}getAnimationState(e){return this.getAxisMotionValue(e).animation?.state}getAxisMotionValue(e){const t=`_drag${e.toUpperCase()}`,a=this.visualElement.getProps(),o=a[t];return o||this.visualElement.getValue(e,(a.initial?a.initial[e]:void 0)||0)}snapToCursor(e){Ei(t=>{const{drag:a}=this.getProps();if(!lf(t,a,this.currentDirection))return;const{projection:o}=this.visualElement,l=this.getAxisMotionValue(t);if(o&&o.layout){const{min:u,max:f}=o.layout.layoutBox[t];l.set(e[t]-en(u,f,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:t}=this.getProps(),{projection:a}=this.visualElement;if(!xo(t)||!a||!this.constraints)return;this.stopAnimation();const o={x:0,y:0};Ei(u=>{const f=this.getAxisMotionValue(u);if(f&&this.constraints!==!1){const d=f.get();o[u]=TR({min:d,max:d},this.constraints[u])}});const{transformTemplate:l}=this.visualElement.getProps();this.visualElement.current.style.transform=l?l({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.resolveConstraints(),Ei(u=>{if(!lf(u,e,null))return;const f=this.getAxisMotionValue(u),{min:d,max:h}=this.constraints[u];f.set(en(d,h,o[u]))})}addListeners(){if(!this.visualElement.current)return;RR.set(this.visualElement,this);const e=this.visualElement.current,t=Jl(e,"pointerdown",d=>{const{drag:h,dragListener:g=!0}=this.getProps();h&&g&&this.start(d)}),a=()=>{const{dragConstraints:d}=this.getProps();xo(d)&&d.current&&(this.constraints=this.resolveRefConstraints())},{projection:o}=this.visualElement,l=o.addEventListener("measure",a);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),Qt.read(a);const u=pc(window,"resize",()=>this.scalePositionWithinConstraints()),f=o.addEventListener("didUpdate",(({delta:d,hasLayoutChanged:h})=>{this.isDragging&&h&&(Ei(g=>{const v=this.getAxisMotionValue(g);v&&(this.originPoint[g]+=d[g].translate,v.set(v.get()+d[g].translate))}),this.visualElement.render())}));return()=>{u(),t(),l(),f&&f()}}getProps(){const e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:a=!1,dragPropagation:o=!1,dragConstraints:l=!1,dragElastic:u=nm,dragMomentum:f=!0}=e;return{...e,drag:t,dragDirectionLock:a,dragPropagation:o,dragConstraints:l,dragElastic:u,dragMomentum:f}}}function lf(n,e,t){return(e===!0||e===n)&&(t===null||t===n)}function LR(n,e=10){let t=null;return Math.abs(n.y)>e?t="y":Math.abs(n.x)>e&&(t="x"),t}class DR extends Pa{constructor(e){super(e),this.removeGroupControls=wi,this.removeListeners=wi,this.controls=new NR(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||wi}unmount(){this.removeGroupControls(),this.removeListeners()}}const Mx=n=>(e,t)=>{n&&Qt.postRender(()=>n(e,t))};class UR extends Pa{constructor(){super(...arguments),this.removePointerDownListener=wi}onPointerDown(e){this.session=new gy(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:my(this.node)})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:t,onPan:a,onPanEnd:o}=this.node.getProps();return{onSessionStart:Mx(e),onStart:Mx(t),onMove:a,onEnd:(l,u)=>{delete this.session,o&&Qt.postRender(()=>o(l,u))}}}mount(){this.removePointerDownListener=Jl(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Sf={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function bx(n,e){return e.max===e.min?0:n/(e.max-e.min)*100}const Hl={correct:(n,e)=>{if(!e.target)return n;if(typeof n=="string")if(at.test(n))n=parseFloat(n);else return n;const t=bx(n,e.target.x),a=bx(n,e.target.y);return`${t}% ${a}%`}},PR={correct:(n,{treeScale:e,projectionDelta:t})=>{const a=n,o=Da.parse(n);if(o.length>5)return a;const l=Da.createTransformer(n),u=typeof o[0]!="number"?1:0,f=t.x.scale*e.x,d=t.y.scale*e.y;o[0+u]/=f,o[1+u]/=d;const h=en(f,d,.5);return typeof o[2+u]=="number"&&(o[2+u]/=h),typeof o[3+u]=="number"&&(o[3+u]/=h),l(o)}};let z0=!1;class OR extends G.Component{componentDidMount(){const{visualElement:e,layoutGroup:t,switchLayoutGroup:a,layoutId:o}=this.props,{projection:l}=e;iA(IR),l&&(t.group&&t.group.add(l),a&&a.register&&o&&a.register(l),z0&&l.root.didUpdate(),l.addEventListener("animationComplete",()=>{this.safeToRemove()}),l.setOptions({...l.options,onExitComplete:()=>this.safeToRemove()})),Sf.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:t,visualElement:a,drag:o,isPresent:l}=this.props,{projection:u}=a;return u&&(u.isPresent=l,z0=!0,o||e.layoutDependency!==t||t===void 0||e.isPresent!==l?u.willUpdate():this.safeToRemove(),e.isPresent!==l&&(l?u.promote():u.relegate()||Qt.postRender(()=>{const f=u.getStack();(!f||!f.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),Gm.postRender(()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:e,layoutGroup:t,switchLayoutGroup:a}=this.props,{projection:o}=e;z0=!0,o&&(o.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(o),a&&a.deregister&&a.deregister(o))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function xy(n){const[e,t]=K9(),a=G.useContext(Z_);return m.jsx(OR,{...n,layoutGroup:a,switchLayoutGroup:G.useContext($4),isPresent:e,safeToRemove:t})}const IR={borderRadius:{...Hl,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Hl,borderTopRightRadius:Hl,borderBottomLeftRadius:Hl,borderBottomRightRadius:Hl,boxShadow:PR};function BR(n,e,t){const a=jn(n)?n:Lo(n);return a.start(e2("",a,e,t)),a.animation}const FR=(n,e)=>n.depth-e.depth;class zR{constructor(){this.children=[],this.isDirty=!1}add(e){wm(this.children,e),this.isDirty=!0}remove(e){Tm(this.children,e),this.isDirty=!0}
vendor: 5,157 bytes, line 4174
4174forEach(e){this.isDirty&&this.children.sort(FR),this.isDirty=!1,this.children.forEach(e)}}function VR(n,e){const t=Jn.now(),a=({timestamp:o})=>{const l=o-t;l>=e&&(La(a),n(l-e))};return Qt.setup(a,!0),()=>La(a)}const _y=["TopLeft","TopRight","BottomLeft","BottomRight"],jR=_y.length,Ex=n=>typeof n=="string"?parseFloat(n):n,wx=n=>typeof n=="number"||at.test(n);function HR(n,e,t,a,o,l){o?(n.opacity=en(0,t.opacity??1,kR(a)),n.opacityExit=en(e.opacity??1,0,GR(a))):l&&(n.opacity=en(e.opacity??1,t.opacity??1,a));for(let u=0;u<jR;u++){const f=`border${_y[u]}Radius`;let d=Tx(e,f),h=Tx(t,f);if(d===void 0&&h===void 0)continue;d||(d=0),h||(h=0),d===0||h===0||wx(d)===wx(h)?(n[f]=Math.max(en(Ex(d),Ex(h),a),0),(Qi.test(h)||Qi.test(d))&&(n[f]+="%")):n[f]=h}(e.rotate||t.rotate)&&(n.rotate=en(e.rotate||0,t.rotate||0,a))}function Tx(n,e){return n[e]!==void 0?n[e]:n.borderRadius}const kR=yy(0,.5,r4),GR=yy(.5,.95,wi);function yy(n,e,t){return a=>a<n?0:a>e?1:t(cc(n,e,a))}function Cx(n,e){n.min=e.min,n.max=e.max}function bi(n,e){Cx(n.x,e.x),Cx(n.y,e.y)}function Ax(n,e){n.translate=e.translate,n.scale=e.scale,n.originPoint=e.originPoint,n.origin=e.origin}function Rx(n,e,t,a,o){return n-=e,n=Nf(n,1/t,a),o!==void 0&&(n=Nf(n,1/o,a)),n}function WR(n,e=0,t=1,a=.5,o,l=n,u=n){if(Qi.test(e)&&(e=parseFloat(e),e=en(u.min,u.max,e/100)-u.min),typeof e!="number")return;let f=en(l.min,l.max,a);n===l&&(f-=e),n.min=Rx(n.min,e,t,f,o),n.max=Rx(n.max,e,t,f,o)}function Nx(n,e,[t,a,o],l,u){WR(n,e[t],e[a],e[o],e.scale,l,u)}const XR=["x","scaleX","originX"],qR=["y","scaleY","originY"];function Lx(n,e,t,a){Nx(n.x,e,XR,t?t.x:void 0,a?a.x:void 0),Nx(n.y,e,qR,t?t.y:void 0,a?a.y:void 0)}function Dx(n){return n.translate===0&&n.scale===1}function Sy(n){return Dx(n.x)&&Dx(n.y)}function Ux(n,e){return n.min===e.min&&n.max===e.max}function YR(n,e){return Ux(n.x,e.x)&&Ux(n.y,e.y)}function Px(n,e){return Math.round(n.min)===Math.round(e.min)&&Math.round(n.max)===Math.round(e.max)}function My(n,e){return Px(n.x,e.x)&&Px(n.y,e.y)}function Ox(n){return Gn(n.x)/Gn(n.y)}function Ix(n,e){return n.translate===e.translate&&n.scale===e.scale&&n.originPoint===e.originPoint}class ZR{constructor(){this.members=[]}add(e){wm(this.members,e),e.scheduleRender()}remove(e){if(Tm(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const t=this.members[this.members.length-1];t&&this.promote(t)}}relegate(e){const t=this.members.findIndex(o=>e===o);if(t===0)return!1;let a;for(let o=t;o>=0;o--){const l=this.members[o];if(l.isPresent!==!1){a=l;break}}return a?(this.promote(a),!0):!1}promote(e,t){const a=this.lead;if(e!==a&&(this.prevLead=a,this.lead=e,e.show(),a)){a.instance&&a.scheduleRender(),e.scheduleRender(),e.resumeFrom=a,t&&(e.resumeFrom.preserveOpacity=!0),a.snapshot&&(e.snapshot=a.snapshot,e.snapshot.latestValues=a.animationValues||a.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);const{crossfade:o}=e.options;o===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(e=>{const{options:t,resumingFrom:a}=e;t.onExitComplete&&t.onExitComplete(),a&&a.options.onExitComplete&&a.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function KR(n,e,t){let a="";const o=n.x.translate/e.x,l=n.y.translate/e.y,u=t?.z||0;if((o||l||u)&&(a=`translate3d(${o}px, ${l}px, ${u}px) `),(e.x!==1||e.y!==1)&&(a+=`scale(${1/e.x}, ${1/e.y}) `),t){const{transformPerspective:h,rotate:g,rotateX:v,rotateY:x,skewX:y,skewY:b}=t;h&&(a=`perspective(${h}px) ${a}`),g&&(a+=`rotate(${g}deg) `),v&&(a+=`rotateX(${v}deg) `),x&&(a+=`rotateY(${x}deg) `),y&&(a+=`skewX(${y}deg) `),b&&(a+=`skewY(${b}deg) `)}const f=n.x.scale*e.x,d=n.y.scale*e.y;return(f!==1||d!==1)&&(a+=`scale(${f}, ${d})`),a||"none"}const V0=["","X","Y","Z"],QR=1e3;let $R=0;function j0(n,e,t,a){const{latestValues:o}=e;o[n]&&(t[n]=o[n],e.setStaticValue(n,0),a&&(a[n]=0))}function by(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:e}=n.options;if(!e)return;const t=ly(e);if(window.MotionHasOptimisedAnimation(t,"transform")){const{layout:o,layoutId:l}=n.options;window.MotionCancelOptimisedAnimation(t,"transform",Qt,!(o||l))}const{parent:a}=n;a&&!a.hasCheckedOptimisedAppear&&by(a)}function Ey({attachResizeListener:n,defaultParent:e,measureScroll:t,checkIsScrollRoot:a,resetTransform:o}){return class{constructor(u={},f=e?.()){this.id=$R++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>
vendor: 4,304 bytes, line 4174
4174{this.projectionUpdateScheduled=!1,this.nodes.forEach(tN),this.nodes.forEach(aN),this.nodes.forEach(rN),this.nodes.forEach(nN)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=u,this.root=f?f.root||f:this,this.path=f?[...f.path,f]:[],this.parent=f,this.depth=f?f.depth+1:0;for(let d=0;d<this.path.length;d++)this.path[d].shouldResetTransform=!0;this.root===this&&(this.nodes=new zR)}addEventListener(u,f){return this.eventHandlers.has(u)||this.eventHandlers.set(u,new Rm),this.eventHandlers.get(u).add(f)}notifyListeners(u,...f){const d=this.eventHandlers.get(u);d&&d.notify(...f)}hasListeners(u){return this.eventHandlers.has(u)}mount(u){if(this.instance)return;this.isSVG=z4(u)&&!q9(u),this.instance=u;const{layoutId:f,layout:d,visualElement:h}=this.options;if(h&&!h.current&&h.mount(u),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(d||f)&&(this.isLayoutDirty=!0),n){let g,v=0;const x=()=>this.root.updateBlockedByResize=!1;Qt.read(()=>{v=window.innerWidth}),n(u,()=>{const y=window.innerWidth;y!==v&&(v=y,this.root.updateBlockedByResize=!0,g&&g(),g=VR(x,250),Sf.hasAnimatedSinceResize&&(Sf.hasAnimatedSinceResize=!1,this.nodes.forEach(zx)))})}f&&this.root.registerSharedNode(f,this),this.options.animate!==!1&&h&&(f||d)&&this.addEventListener("didUpdate",({delta:g,hasLayoutChanged:v,hasRelativeLayoutChanged:x,layout:y})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||h.getDefaultTransition()||fN,{onLayoutAnimationStart:w,onLayoutAnimationComplete:M}=h.getProps(),S=!this.targetLayout||!My(this.targetLayout,y),N=!v&&x;if(this.options.layoutRoot||this.resumeFrom||N||v&&(S||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const T={...Hm(b,"layout"),onPlay:w,onComplete:M};(h.shouldReduceMotion||this.options.layoutRoot)&&(T.delay=0,T.type=!1),this.startAnimation(T),this.setAnimationOrigin(g,N)}else v||zx(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=y})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const u=this.getStack();u&&u.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),La(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(oN),this.animationId++)}getTransformTemplate(){const{visualElement:u}=this.options;return u&&u.getProps().transformTemplate}willUpdate(u=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&by(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let g=0;g<this.path.length;g++){const v=this.path[g];v.shouldResetTransform=!0,v.updateScroll("snapshot"),v.options.layoutRoot&&v.willUpdate(!1)}const{layoutId:f,layout:d}=this.options;if(f===void 0&&!d)return;const h=this.getTransformTemplate();this.prevTransformTemplateValue=h?h(this.latestValues,""):void 0,this.updateSnapshot(),u&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Bx);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Fx);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(sN),this.nodes.forEach(JR),this.nodes.forEach(eN)):this.nodes.forEach(Fx),this.clearAllSnapshots();const f=Jn.now();On.delta=Os(0,1e3/60,f-On.timestamp),On.timestamp=f,On.isProcessing=!0,R0.update.process(On),R0.preRender.process(On),R0.render.process(On),On.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Gm.read(this.scheduleUpdate))}
vendor: 6,064 bytes, line 4174
4174clearAllSnapshots(){this.nodes.forEach(iN),this.sharedNodes.forEach(lN)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Qt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Qt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Gn(this.snapshot.measuredBox.x)&&!Gn(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let d=0;d<this.path.length;d++)this.path[d].updateScroll();const u=this.layout;this.layout=this.measure(!1),this.layoutCorrected=ln(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:f}=this.options;f&&f.notify("LayoutMeasure",this.layout.layoutBox,u?u.layoutBox:void 0)}updateScroll(u="measure"){let f=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===u&&(f=!1),f&&this.instance){const d=a(this.instance);this.scroll={animationId:this.root.animationId,phase:u,isRoot:d,offset:t(this.instance),wasRoot:this.scroll?this.scroll.isRoot:d}}}resetTransform(){if(!o)return;const u=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,f=this.projectionDelta&&!Sy(this.projectionDelta),d=this.getTransformTemplate(),h=d?d(this.latestValues,""):void 0,g=h!==this.prevTransformTemplateValue;u&&this.instance&&(f||fr(this.latestValues)||g)&&(o(this.instance,h),this.shouldResetTransform=!1,this.scheduleRender())}measure(u=!0){const f=this.measurePageBox();let d=this.removeElementScroll(f);return u&&(d=this.removeTransform(d)),dN(d),{animationId:this.root.animationId,measuredBox:f,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:u}=this.options;if(!u)return ln();const f=u.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(hN))){const{scroll:h}=this.root;h&&(_o(f.x,h.offset.x),_o(f.y,h.offset.y))}return f}removeElementScroll(u){const f=ln();if(bi(f,u),this.scroll?.wasRoot)return f;for(let d=0;d<this.path.length;d++){const h=this.path[d],{scroll:g,options:v}=h;h!==this.root&&g&&v.layoutScroll&&(g.wasRoot&&bi(f,u),_o(f.x,g.offset.x),_o(f.y,g.offset.y))}return f}applyTransform(u,f=!1){const d=ln();bi(d,u);for(let h=0;h<this.path.length;h++){const g=this.path[h];!f&&g.options.layoutScroll&&g.scroll&&g!==g.root&&yo(d,{x:-g.scroll.offset.x,y:-g.scroll.offset.y}),fr(g.latestValues)&&yo(d,g.latestValues)}return fr(this.latestValues)&&yo(d,this.latestValues),d}removeTransform(u){const f=ln();bi(f,u);for(let d=0;d<this.path.length;d++){const h=this.path[d];if(!h.instance||!fr(h.latestValues))continue;Kp(h.latestValues)&&h.updateSnapshot();const g=ln(),v=h.measurePageBox();bi(g,v),Lx(f,h.latestValues,h.snapshot?h.snapshot.layoutBox:void 0,g)}return fr(this.latestValues)&&Lx(f,this.latestValues),f}setTargetDelta(u){this.targetDelta=u,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(u){this.options={...this.options,...u,crossfade:u.crossfade!==void 0?u.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==On.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(u=!1){const f=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=f.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=f.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=f.isSharedProjectionDirty);const d=!!this.resumingFrom||this!==f;if(!(u||d&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:g,layoutId:v}=this.options;if(!(!this.layout||!(g||v))){if(this.resolvedRelativeTargetAt=On.timestamp,!this.targetDelta&&!this.relativeTarget){const x=this.getClosestProjectingParent();x&&x.layout&&this.animationProgress!==1?(this.relativeParent=x,this.forceRelativeParentToResolveTarget(),this.relativeTarget=ln(),this.relativeTargetOrigin=ln(),tc(this.relativeTargetOrigin,this.layout.layoutBox,x.layout.layoutBox),bi(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=ln(),this.targetWithTransforms=ln()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),_R(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):bi(this.target,this.layout.layoutBox),ny(this.target,this.targetDelta)):bi(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget)){this.attemptToResolveRelativeTarget=!1;const x=this.getClosestProjectingParent();x&&!!x.resumingFrom==!!this.resumingFrom&&!x.options.layoutScroll&&x.target&&this.animationProgress!==1?(this.relativeParent=x,this.forceRelativeParentToResolveTarget(),this.relativeTarget=ln(),this.relativeTargetOrigin=ln(),tc(this.relativeTargetOrigin,this.target,x.target),bi(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}}}getClosestProjectingParent(){if(!(!this.parent||Kp(this.parent.latestValues)||ty(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){const u=this.getLead(),f=!!this.resumingFrom||this!==u;let d=!0;
vendor: 13,990 bytes, line 4174
4174if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(d=!1),f&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(d=!1),this.resolvedRelativeTargetAt===On.timestamp&&(d=!1),d)return;const{layout:h,layoutId:g}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(h||g))return;bi(this.layoutCorrected,this.layout.layoutBox);const v=this.treeScale.x,x=this.treeScale.y;LA(this.layoutCorrected,this.treeScale,this.path,f),u.layout&&!u.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(u.target=u.layout.layoutBox,u.targetWithTransforms=ln());const{target:y}=u;if(!y){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Ax(this.prevProjectionDelta.x,this.projectionDelta.x),Ax(this.prevProjectionDelta.y,this.projectionDelta.y)),ec(this.projectionDelta,this.layoutCorrected,y,this.latestValues),(this.treeScale.x!==v||this.treeScale.y!==x||!Ix(this.projectionDelta.x,this.prevProjectionDelta.x)||!Ix(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",y))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(u=!0){if(this.options.visualElement?.scheduleRender(),u){const f=this.getStack();f&&f.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=So(),this.projectionDelta=So(),this.projectionDeltaWithTransform=So()}setAnimationOrigin(u,f=!1){const d=this.snapshot,h=d?d.latestValues:{},g={...this.latestValues},v=So();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!f;const x=ln(),y=d?d.source:void 0,b=this.layout?this.layout.source:void 0,w=y!==b,M=this.getStack(),S=!M||M.members.length<=1,N=!!(w&&!S&&this.options.crossfade===!0&&!this.path.some(uN));this.animationProgress=0;let T;this.mixTargetDelta=R=>{const P=R/1e3;Vx(v.x,u.x,P),Vx(v.y,u.y,P),this.setTargetDelta(v),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(tc(x,this.layout.layoutBox,this.relativeParent.layout.layoutBox),cN(this.relativeTarget,this.relativeTargetOrigin,x,P),T&&YR(this.relativeTarget,T)&&(this.isProjectionDirty=!1),T||(T=ln()),bi(T,this.relativeTarget)),w&&(this.animationValues=g,HR(g,h,this.latestValues,P,N,S)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=P},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(u){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(La(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Qt.update(()=>{Sf.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Lo(0)),this.currentAnimation=BR(this.motionValue,[0,1e3],{...u,velocity:0,isSync:!0,onUpdate:f=>{this.mixTargetDelta(f),u.onUpdate&&u.onUpdate(f)},onStop:()=>{},onComplete:()=>{u.onComplete&&u.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const u=this.getStack();u&&u.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(QR),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const u=this.getLead();let{targetWithTransforms:f,target:d,layout:h,latestValues:g}=u;if(!(!f||!d||!h)){if(this!==u&&this.layout&&h&&wy(this.options.animationType,this.layout.layoutBox,h.layoutBox)){d=this.target||ln();const v=Gn(this.layout.layoutBox.x);d.x.min=u.target.x.min,d.x.max=d.x.min+v;const x=Gn(this.layout.layoutBox.y);d.y.min=u.target.y.min,d.y.max=d.y.min+x}bi(f,d),yo(f,g),ec(this.projectionDeltaWithTransform,this.layoutCorrected,f,g)}}registerSharedNode(u,f){this.sharedNodes.has(u)||this.sharedNodes.set(u,new ZR),this.sharedNodes.get(u).add(f);const h=f.options.initialPromotionConfig;f.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(f):void 0})}isLead(){const u=this.getStack();return u?u.lead===this:!0}getLead(){const{layoutId:u}=this.options;return u?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:u}=this.options;return u?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:u}=this.options;if(u)return this.root.sharedNodes.get(u)}promote({needsReset:u,transition:f,preserveFollowOpacity:d}={}){const h=this.getStack();h&&h.promote(this,d),u&&(this.projectionDelta=void 0,this.needsReset=!0),f&&this.setOptions({transition:f})}relegate(){const u=this.getStack();return u?u.relegate(this):!1}resetSkewAndRotation(){const{visualElement:u}=this.options;if(!u)return;let f=!1;const{latestValues:d}=u;if((d.z||d.rotate||d.rotateX||d.rotateY||d.rotateZ||d.skewX||d.skewY)&&(f=!0),!f)return;const h={};d.z&&j0("z",u,h,this.animationValues);for(let g=0;g<V0.length;g++)j0(`rotate${V0[g]}`,u,h,this.animationValues),j0(`skew${V0[g]}`,u,h,this.animationValues);u.render();for(const g in h)u.setStaticValue(g,h[g]),this.animationValues&&(this.animationValues[g]=h[g]);u.scheduleRender()}applyProjectionStyles(u,f){if(!this.instance||this.isSVG)return;if(!this.isVisible){u.visibility="hidden";return}const d=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,u.visibility="",u.opacity="",u.pointerEvents=yf(f?.pointerEvents)||"",u.transform=d?d(this.latestValues,""):"none";return}const h=this.getLead();if(!this.projectionDelta||!this.layout||!h.target){this.options.layoutId&&(u.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,u.pointerEvents=yf(f?.pointerEvents)||""),this.hasProjected&&!fr(this.latestValues)&&(u.transform=d?d({},""):"none",this.hasProjected=!1);return}u.visibility="";const g=h.animationValues||h.latestValues;this.applyTransformsToTarget();let v=KR(this.projectionDeltaWithTransform,this.treeScale,g);d&&(v=d(g,v)),u.transform=v;const{x,y}=this.projectionDelta;u.transformOrigin=`${x.origin*100}% ${y.origin*100}% 0`,h.animationValues?u.opacity=h===this?g.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:g.opacityExit:u.opacity=h===this?g.opacity!==void 0?g.opacity:"":g.opacityExit!==void 0?g.opacityExit:0;for(const b in hc){if(g[b]===void 0)continue;const{correct:w,applyTo:M,isCSSVariable:S}=hc[b],N=v==="none"?g[b]:w(g[b],h);if(M){const T=M.length;for(let R=0;R<T;R++)u[M[R]]=N}else S?this.options.visualElement.renderState.vars[b]=N:u[b]=N}this.options.layoutId&&(u.pointerEvents=h===this?yf(f?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(u=>u.currentAnimation?.stop()),this.root.nodes.forEach(Bx),this.root.sharedNodes.clear()}}}function JR(n){n.updateLayout()}function eN(n){const e=n.resumeFrom?.snapshot||n.snapshot;if(n.isLead()&&n.layout&&e&&n.hasListeners("didUpdate")){const{layoutBox:t,measuredBox:a}=n.layout,{animationType:o}=n.options,l=e.source!==n.layout.source;o==="size"?Ei(g=>{const v=l?e.measuredBox[g]:e.layoutBox[g],x=Gn(v);v.min=t[g].min,v.max=v.min+x}):wy(o,e.layoutBox,t)&&Ei(g=>{const v=l?e.measuredBox[g]:e.layoutBox[g],x=Gn(t[g]);v.max=v.min+x,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[g].max=n.relativeTarget[g].min+x)});const u=So();ec(u,t,e.layoutBox);const f=So();l?ec(f,n.applyTransform(a,!0),e.measuredBox):ec(f,t,e.layoutBox);const d=!Sy(u);let h=!1;if(!n.resumeFrom){const g=n.getClosestProjectingParent();if(g&&!g.resumeFrom){const{snapshot:v,layout:x}=g;if(v&&x){const y=ln();tc(y,e.layoutBox,v.layoutBox);const b=ln();tc(b,t,x.layoutBox),My(y,b)||(h=!0),g.options.layoutRoot&&(n.relativeTarget=b,n.relativeTargetOrigin=y,n.relativeParent=g)}}}n.notifyListeners("didUpdate",{layout:t,snapshot:e,delta:f,layoutDelta:u,hasLayoutChanged:d,hasRelativeLayoutChanged:h})}else if(n.isLead()){const{onExitComplete:t}=n.options;t&&t()}n.options.transition=void 0}function tN(n){n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function nN(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function iN(n){n.clearSnapshot()}function Bx(n){n.clearMeasurements()}function Fx(n){n.isLayoutDirty=!1}function sN(n){const{visualElement:e}=n.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),n.resetTransform()}function zx(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function aN(n){n.resolveTargetDelta()}function rN(n){n.calcProjection()}function oN(n){n.resetSkewAndRotation()}function lN(n){n.removeLeadSnapshot()}function Vx(n,e,t){n.translate=en(e.translate,0,t),n.scale=en(e.scale,1,t),n.origin=e.origin,n.originPoint=e.originPoint}function jx(n,e,t,a){n.min=en(e.min,t.min,a),n.max=en(e.max,t.max,a)}function cN(n,e,t,a){jx(n.x,e.x,t.x,a),jx(n.y,e.y,t.y,a)}function uN(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const fN={duration:.45,ease:[.4,0,.1,1]},Hx=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),kx=Hx("applewebkit/")&&!Hx("chrome/")?Math.round:wi;function Gx(n){n.min=kx(n.min),n.max=kx(n.max)}function dN(n){Gx(n.x),Gx(n.y)}function wy(n,e,t){return n==="position"||n==="preserve-aspect"&&!xR(Ox(e),Ox(t),.2)}function hN(n){return n!==n.root&&n.scroll?.wasRoot}const pN=Ey({attachResizeListener:(n,e)=>pc(n,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),H0={current:void 0},Ty=Ey({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!H0.current){const n=new pN({});n.mount(window),n.setOptions({layoutScroll:!0}),H0.current=n}return H0.current},resetTransform:(n,e)=>{n.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),mN={pan:{Feature:UR},drag:{Feature:DR,ProjectionNode:Ty,MeasureLayout:xy}};function Wx(n,e,t){const{props:a}=n;n.animationState&&a.whileHover&&n.animationState.setActive("whileHover",t==="Start");const o="onHover"+t,l=a[o];l&&Qt.postRender(()=>l(e,Tc(e)))}class gN extends Pa{mount(){const{current:e}=this.node;e&&(this.unmount=H9(e,(t,a)=>(Wx(this.node,a,"Start"),o=>Wx(this.node,o,"End"))))}unmount(){}}class vN extends Pa{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch{e=!0}!e||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=bc(pc(this.node.current,"focus",()=>this.onFocus()),pc(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xx(n,e,t){const{props:a}=n;if(n.current instanceof HTMLButtonElement&&n.current.disabled)return;n.animationState&&a.whileTap&&n.animationState.setActive("whileTap",t==="Start");const o="onTap"+(t==="End"?"":t),l=a[o];l&&Qt.postRender(()=>l(e,Tc(e)))}class xN extends Pa{mount(){const{current:e}=this.node;e&&(this.unmount=X9(e,(t,a)=>(Xx(this.node,a,"Start"),(o,{success:l})=>Xx(this.node,o,l?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const im=new WeakMap,k0=new WeakMap,_N=n=>{const e=im.get(n.target);e&&e(n)},yN=n=>{n.forEach(_N)};function SN({root:n,...e}){const t=n||document;k0.has(t)||k0.set(t,{});const a=k0.get(t),o=JSON.stringify(e);return a[o]||(a[o]=new IntersectionObserver(yN,{root:n,...e})),a[o]}function MN(n,e,t){const a=SN(e);return im.set(n,t),a.observe(n),()=>{im.delete(n),a.unobserve(n)}}const bN={some:0,all:1};class EN extends Pa{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:e={}}=this.node.getProps(),{root:t,margin:a,amount:o="some",once:l}=e,u={root:t?t.current:void 0,rootMargin:a,threshold:typeof o=="number"?o:bN[o]},f=d=>{const{isIntersecting:h}=d;if(this.isInView===h||(this.isInView=h,l&&!h&&this.hasEnteredView))return;h&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",h);const{onViewportEnter:g,onViewportLeave:v}=this.node.getProps(),x=h?g:v;x&&x(d)};return MN(this.node.current,u,f)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:e,prevProps:t}=this.node;["amount","margin","root"].some(wN(e,t))&&this.startObserver()}unmount(){}}function wN({viewport:n={}},{viewport:e={}}={}){return t=>n[t]!==e[t]}const TN={inView:{Feature:EN},tap:{Feature:xN},focus:{Feature:vN},hover:{Feature:gN}},CN={layout:{ProjectionNode:Ty,MeasureLayout:xy}},AN={...dR,...TN,...mN,...CN},ct=AA(AN,jA),RN={some:0,all:1};function NN(n,e,{root:t,margin:a,amount:o="some"}={}){const l=P4(n),u=new WeakMap,f=h=>{h.forEach(g=>{const v=u.get(g.target);if(g.isIntersecting!==!!v)if(g.isIntersecting){const x=e(g.target,g);typeof x=="function"?u.set(g.target,x):d.unobserve(g.target)}else typeof v=="function"&&(v(g),u.delete(g.target))})},d=new IntersectionObserver(f,{root:t,rootMargin:a,threshold:typeof o=="number"?o:RN[o]});return l.forEach(h=>
4174d.observe(h)),()=>d.disconnect()}function LN(n,{root:e,margin:t,amount:a,once:o=!1,initial:l=!1}={}){const[u,f]=G.useState(l);return G.useEffect(()=>{if(!n.current||o&&u)return;const d=()=>(f(!0),o?void 0:()=>f(!1)),h={root:e&&e.current||void 0,margin:t,amount:a};return NN(n.current,d,h)},[e,n,t,o,a]),u}const qx="/assets/mtrf11-C98J4FX4.png",Lf="/assets/hero-DFkW7PeT.png",sm="/assets/homepage-Dirqj5Be.png",Df="/assets/level3-D1cpfgcA.png",am="/assets/village-DbkXmjX3.png",At={hidden:{opacity:0,y:40},visible:{opacity:1,y:0,transition:{duration:.7,ease:"easeOut"}}},cf={visible:{transition:{staggerChildren:.18,delayChildren:.15}}},DN=Object.assign({"/src/assets/tech_icons/blender.svg":f6,"/src/assets/tech_icons/c++.svg":d6,"/src/assets/tech_icons/css.svg":h6,"/src/assets/tech_icons/docker.svg":p6,"/src/assets/tech_icons/expo.svg":m6,"/src/assets/tech_icons/flask.svg":g6,"/src/assets/tech_icons/framer-motion.svg":v6,"/src/assets/tech_icons/framer.svg":x6,"/src/assets/tech_icons/git.svg":_6,"/src/assets/tech_icons/github.svg":y6,"/src/assets/tech_icons/gsap.svg":S6,"/src/assets/tech_icons/html.svg":M6,"/src/assets/tech_icons/javascript.svg":b6,"/src/assets/tech_icons/matlab.svg":E6,"/src/assets/tech_icons/next.svg":w6,"/src/assets/tech_icons/nodejs.svg":T6,"/src/assets/tech_icons/npm.svg":C6,"/src/assets/tech_icons/python.svg":A6,"/src/assets/tech_icons/react.svg":R6,"/src/assets/tech_icons/reactquery.svg":N6,"/src/assets/tech_icons/reactrouter.svg":L6,"/src/assets/tech_icons/tailwindcss.svg":D6,"/src/assets/tech_icons/threejs.svg":U6,"/src/assets/tech_icons/typescript.svg":P6,"/src/assets/tech_icons/vitejs.svg":O6,"/src/assets/tech_icons/vscode.svg":I6});function di({name:n,src:e}){const t="/src/assets/tech_icons/"+e+".svg",a=DN[t];return m.jsxs("div",{className:"flex items-center rounded-lg group gap-2 relative my-auto mt-4",children:[m.jsx("img",{className:"rounded-lg w-10 h-10 object-cover",src:a}),m.jsx("p",{className:"text-xl tracking-tight ",children:n})]})}function UN({sidebarOpen:n,fishFollowCursor:e}){const t=G.useRef(null),a=LN(t,{amount:.5,margin:"-10% 0% -10% 0%"}),o=ts(),l=G.useRef(null),u=G.useRef(e);G.useEffect(()=>{u.current=e},[e]),G.useEffect(()=>{const he=new zs,O=new Gs({antialias:!0});O.setPixelRatio(window.devicePixelRatio),O.setSize(window.innerWidth,window.innerHeight),l.current&&!l.current.contains(O.domElement)&&l.current.appendChild(O.domElement);const ee=new mn(60,window.innerWidth/window.innerHeight,.1,100);ee.position.set(0,2,0),ee.lookAt(0,0,0);const Me=new ks,be=new Vs;be.setPath("/threejs-water-shader/");const te=be.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),xe=new js().load("/threejs-water-shader/ocean_floor.png");he.background=te,he.environment=te;const Ee={size:512},Te=new Ws({environmentMap:te,resolution:Ee.size});he.add(Te);const Ue=new Xs({texture:xe});he.add(Ue),Te.material.uniforms.uWavesAmplitude.value=.06,Te.material.uniforms.uWavesFrequency.value=.04,Te.material.uniforms.uWavesIterations.value=1,Te.material.uniforms.uWavesSpeed.value=.1,Te.material.uniforms.uTroughColor.value=new Fe(793917),Te.material.uniforms.uSurfaceColor.value=new Fe(2839444),Te.material.uniforms.uPeakColor.value=new Fe(7643122),Te.material.uniforms.uOpacity.value=.6,Te.material.uniforms.uFresnelPower.value=.3,Te.material.uniforms.uFresnelScale.value=.9,Te.material.uniforms.uTroughTransition.value=.4,Ue.material.uniforms.uCausticsColor.value=new Fe(14148348),Ue.material.uniforms.uCausticsScale.value=6,Ue.material.uniforms.uCausticsSpeed.value=.2,he.add(new Hs(16777215,.9));function ut(C){setFishFollowCursor(J=>!J)}window.addEventListener("dblclick",ut);const Qe=50,Et=5,Ut=.08,gt=.14,k=.2,Xt=1.8,ft=.9;let rt=new St(0,0);window.addEventListener("mousemove",C=>{const J=C.clientX/window.innerWidth*2-1,de=-(C.clientY/window.innerHeight*2-1),fe=new le(J,de,.5);fe.unproject(ee);const q=fe.clone().sub(ee.position).normalize();if(Math.abs(q.y)>1e-4){const Ae=(k-ee.position.y)/q.y;rt.set(ee.position.x+q.x*Ae,ee.position.z+q.z*Ae)}});const He=[];for(let C=0;C<Qe;C++){const J=new Yl;let de=.2;const fe=(Math.random()-.5)*de,q=(Math.random()-.5)*de,Ae=Math.random()*Math.PI*2,Le=.7+Math.random()*.8,ze=(.023+Math.random()*.05)/10;let Ge=Math.max(-Xt,Math.min(Xt,Math.cos(Ae)*Le+fe)),_e=Math.max(-ft,Math.min(ft,Math.sin(Ae)*Le+q));J.position.set(Ge,k,_e),J.scale.set(gt,gt,gt),He.push({group:J,velocity:new St(Math.cos(Ae)*.02,Math.sin(Ae)*.02),speed:ze,scatterBias:new St(fe,q),repulse:new St(0,0),ignoreMouse:C<Qe,randVec:new St((Math.random()-.5)*.013,(Math.random()-.5)*.013),circleAngle:Math.random()*Math.PI*4,orbitDirection:Math.random()<.5?1:-1,orbitRadius:.5+Math.random()*4});for(let Re=0;Re<Et;
4174Re++){const Be=Re/(Et-1),We=.08*(1-.68*Be),De=.93*(1-.75*Be)*.4,tt=new ym({color:new Fe().setHSL(0,0,.2),transparent:!0,opacity:De,depthWrite:!1}),W=new wf(We,14,8),Pe=new pi(W,tt);Pe.position.set(0,0,0);const we=new Q7({transparent:!0,opacity:.15}),Ve=new wf(We*1.8,14,8),Ce=new pi(Ve,we);Ce.position.copy(Pe.position),Pe.add(Ce),Pe.userData.glowMesh=Ce,J.add(Pe)}he.add(J)}let vt=0;const Ke=3;function ot(C){const J=new St(rt.x-C.group.position.x+C.scatterBias.x*.13,rt.y-C.group.position.z+C.scatterBias.y*.13);return J.lengthSq()>1e-6?J.clone().normalize():new St(1,0)}function $t(C,J){rt.x<-Xt||rt.x>Xt||rt.z<-ft||rt.z>ft?vt+=J:vt=0;for(let fe=0;fe<He.length;fe++){const q=He[fe];for(let Ae=0;Ae<Et;Ae++){const Le=Ae/(Et-1),ze=(C*.1+fe*.17+Le*.25)%1,Ge=.7+.3*Math.sin(C+fe),_e=.5+.15*Math.cos(C+Ae*.2+fe);q.group.children[Ae].material.color.setHSL(ze,Ge,_e),q.ignoreMouse=!u.current;const Re=q.group.children[Ae],Be=Re.userData&&Re.userData.glowMesh;if(Be&&Be.material&&Be.material.uniforms){const We=Re.material.color.clone();We.offsetHSL(0,0,.001),Be.material.uniforms.glowColor.value.copy(We)}}}const de=.07;for(let fe=0;fe<He.length;fe++){const q=He[fe];q.repulse.set(0,0);for(let Ae=0;Ae<He.length;Ae++){if(fe===Ae)continue;const Le=He[Ae],ze=q.group.position.x-Le.group.position.x,Ge=q.group.position.z-Le.group.position.z,_e=ze*ze+Ge*Ge;if(_e<de*de&&_e>1e-5){const Re=Math.sqrt(_e),Be=.035*(1-Re/de);q.repulse.x+=ze/Re*Be,q.repulse.y+=Ge/Re*Be}}}for(let fe=0;fe<He.length;fe++){const q=He[fe];fe>=Qe&&(q.ignoreMouse=vt>Ke);let Ae;if(q.ignoreMouse){const Re=q.orbitRadius;q.circleAngle+=J*.32*q.orbitDirection;const Be=Math.cos(q.circleAngle)*Re*2.5,We=Math.sin(q.circleAngle)*Re*1.5;Ae=new St(Be-q.group.position.x,We-q.group.position.z).normalize().multiplyScalar(q.speed*.6)}else{const Re=new St(rt.x-q.group.position.x+q.scatterBias.x*.13,rt.y-q.group.position.z+q.scatterBias.y*.13),Be=Re.length();Ae=Re.length()>.001?Re.clone().normalize().multiplyScalar(q.speed*Math.min(Be,1.3)*1.7):new St(0,0)}Ae.add(q.repulse),q.velocity.lerp(Ae,.08),q.velocity.length()>q.speed&&q.velocity.setLength(q.speed),q.group.position.x+=q.velocity.x,q.group.position.z+=q.velocity.y,q.group.position.x<-Xt&&(q.group.position.x=-Xt,q.velocity.x*=-.67),q.group.position.x>Xt&&(q.group.position.x=Xt,q.velocity.x*=-.67),q.group.position.z<-ft&&(q.group.position.z=-ft,q.velocity.y*=-.67),q.group.position.z>ft&&(q.group.position.z=ft,q.velocity.y*=-.67);const Le=q.velocity.length()>.001?q.velocity.clone().normalize():ot(q),ze=new le(Le.x,0,Le.y),_e=q.group.position.clone().clone().add(ze.clone().negate().multiplyScalar(Ut*(Et-1)));q.group.position.y=k,q.group.lookAt(_e.x,k,_e.z),q.group.rotateY(Math.PI/2);for(let Re=0;Re<Et;Re++){const Be=Re/(Et-1),We=-Re*Ut,De=1-Math.pow(1-Be,3)/2,tt=C*7-Be*2.4+fe*.25,W=Math.sin(tt)*.17*De;q.group.children[Re].position.set(We,0,W)}}}function B(){const C=Me.getDelta(),J=Me.getElapsedTime();$t(J,C),Te.update(J),Ue.update(J),O.render(he,ee),requestAnimationFrame(B)}return B(),window.addEventListener("resize",()=>{ee.aspect=window.innerWidth/window.innerHeight,ee.updateProjectionMatrix(),O.setSize(window.innerWidth,window.innerHeight)}),()=>{O&&(O.dispose(),l.current&&l.current.removeChild(O.domElement),window.removeEventListener("dblclick",ut))}},[]);const[f,d]=G.useState(!1),[h,g]=G.useState(!1),[v,x]=G.useState(!1),[y,b]=G.useState(!1),[w,M]=G.useState(!1),[S,N]=G.useState(!1),[T,R]=G.useState(!1),[P,I]=G.useState(!1),[F,V]=G.useState(!1);function U(){navigator.clipboard.writeText("[email protected]").then(()=>{V(!0),setTimeout(()=>V(!1),1500)})}const L="rounded-3xl ring-1 ring-white/10 bg-gradient-to-br from-indigo-500/10 via-teal-400/5 to-indigo-600/10 backdrop-blur-sm shadow-[0_10px_30px_-10px_rgba(0,0,0,0.4)]",z="inline-flex items-center rounded-full text-indigo-100 ring-1 ring-inset ring-indigo-400/30 px-4 py-2 text-sm font-semibold bg-gradient-to-br from-indigo-500/40 via-blue-400/5 to-indigo-600/40 backdrop-blur-sm shadow-[0_10px_30px_-10px_rgba(0,0,0,0.4)]",ce="inline-flex items-center rounded-full  text-gray-100 ring-1 ring-inset ring-white/15 px-4 py-2 text-sm font-semibold bg-gradient-to-br from-red-400/30 via-white/2 to-red-500/30 backdrop-blur-sm shadow-[0_10px_30px_-10px_rgba(0,0,0,0.4)]",ue="text-gray-100 font-shree-bold ring-1 ring-inset ring-indigo-400/50 px-4 py-2 rounded-lg text-gray-100 mt-5 hover:bg-[#3b82f6] transition-colors duration-300 bg-gradient-to-br from-indigo-500/40 via-bg-white/5 to-red-400/40 backdrop-blur-sm shadow-[0_10px_30px_-10px_rgba(0,0,0,0.6)]",ge={hidden:{opacity:0,x:-40},visible:{opacity:1,x:0}},me={hidden:{opacity:0,x:40},visible:{opacity:1,x:0}},[j,Z]=G.useState(!1);G.useEffect(()=>{const he=window.matchMedia("(min-width: 768px)");Z(he.matches);const O=ee=>{Z(ee.matches)};return he.addEventListener("change",O),()=>he.removeEventListener("change",O)},[]);const Y=es();return G.useEffect(()=>{if(Y.state?.scrollToProjects){const he=document.getElementById("projects");he&&he.scrollIntoView({behavior:"smooth"}),window.history.replaceState({},document.title,window.location.pathname)}},[Y.state]),m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:l,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`scroll-smooth pond-text-content font-shree w-full h-full transition-opacity duration-300 ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("section",{id:"home",children:m.jsxs(ct.article,{variants:ge,initial:"hidden",
4174whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"},className:"flex w-full h-[100vh] items-center",children:[m.jsxs("div",{className:"pl-[5vw] md:pl-[15vw] w-[80vw] md:w-[50vw] ",children:[m.jsx(ct.h1,{className:"text-7xl mb-4 font-shree text-gray-100",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:"Emma Zhang"}),m.jsxs("p",{className:" text-gray-200 w-120 text-xl",children:["Hi There! I'm a ",m.jsx("span",{className:"font-shree-bold text-gray-100",children:"Software Engineer"})," with background in ",m.jsx("span",{className:"font-shree-bold text-gray-100",children:"sensory neuroscience"}),". I design interfaces for brain-computer interactions."]}),m.jsxs("div",{className:"flex gap-5",children:[m.jsx("button",{onClick:()=>window.open(Y_,"_blank"),className:`${ue}`,children:m.jsx("span",{children:"Resume"})}),m.jsxs("div",{className:"flex gap-5 mt-5 text-gray-200",children:[m.jsx("button",{onClick:()=>window.location.href="https://github.com/zhijingz",className:"hover:text-[#3b82f6] transition-color duration-400",children:m.jsxs("svg",{width:"35",height:"35",className:"mt-1",viewBox:"0 0 44 44",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsx("path",{d:"M18 39.135C11.1429 41.4496 5.42858 39.135 2 32",stroke:"currentColoe","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M18 42V35.5158C18 34.3192 18.3678 33.2792 18.9608 32.3398C19.3676 31.6952 19.089 30.7808 18.3542 30.5788C12.2679 28.9056 8 26.2154 8 17.2921C8 14.9722 8.7601 12.7911 10.0962 10.8928C10.4287 10.4204 10.595 10.1842 10.635 9.9702C10.6749 9.75626 10.6054 9.47704 10.4664 8.91864C9.90076 6.64584 9.93742 4.23238 10.7864 2.05646C10.7864 2.05646 12.5408 1.48484 16.534 3.97938C17.4456 4.54894 17.9015 4.83372 18.303 4.89742C18.7044 4.96112 19.2412 4.82768 20.3146 4.56082C21.7826 4.1959 23.2952 4 25 4C26.7048 4 28.2174 4.1959 29.6854 4.56082C30.7588 4.82768 31.2956 4.96112 31.697 4.89742C32.0986 4.83372 32.5544 4.54894 33.466 3.97938C37.4592 1.48484 39.2136 2.05646 39.2136 2.05646C40.0626 4.23238 40.0992 6.64584 39.5336 8.91864C39.3946 9.47704 39.325 9.75626 39.365 9.9702C39.405 10.1841 39.5712 10.4204 39.9038 10.8928C41.2398 12.7911 42 14.9722 42 17.2921C42 26.2154 37.7322 28.9056 31.6458 30.5788C30.911 30.7808 30.6324 31.6952 31.0392 32.3398C31.6322 33.2792 32 34.3192 32 35.5158V42",stroke:"currentColor","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"})]})}),m.jsx("button",{onClick:()=>window.location.href="https://www.linkedin.com/in/emma-zhang-0547982a2/",className:"hover:text-[#3b82f6] transition-color duration-400",children:m.jsxs("svg",{width:"38",height:"38",className:"mt-0.5",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsx("path",{d:"M9 19H8C6.11438 19 5.17158 19 4.58578 19.5858C4 20.1716 4 21.1144 4 23V40C4 41.8856 4 42.8284 4.58578 43.4142C5.17158 44 6.11438 44 8 44H9C10.8856 44 11.8284 44 12.4142 43.4142C13 42.8284 13 41.8856 13 40V23C13 21.1144 13 20.1716 12.4142 19.5858C11.8284 19 10.8856 19 9 19Z",stroke:"currentColor","stroke-width":"1"}),m.jsx("path",{d:"M13 8.5C13 10.9853 10.9853 13 8.5 13C6.01472 13 4 10.9853 4 8.5C4 6.01472 6.01472 4 8.5 4C10.9853 4 13 6.01472 13 8.5Z",stroke:"currentColor","stroke-width":"1"}),m.jsx("path",{d:"M24.652 19H23C21.1144 19 20.1716 19 19.5858 19.5858C19 20.1716 19 21.1144 19 23V40C19 41.8856 19 42.8284 19.5858 43.4142C20.1716 44 21.1144 44 23 44H24C25.8856 44 26.8284 44 27.4142 43.4142C28 42.8284 28 41.8856 28 40L28.0002 33.0002C28.0002 29.6866 29.0562 27.0002 32.1758 27.0002C33.7354 27.0002 35 28.3434 35 30.0002V39.0002C35 40.8858 35 41.8286 35.5858 42.4144C36.1714 43.0002 37.1144 43.0002 39 43.0002H39.9974C41.8826 43.0002 42.8252 43.0002 43.411 42.4146C43.9968 41.829 43.997 40.8864 43.9974 39.0012L44.0002 28.0004C44.0002 23.03 39.2728 19.0005 34.5936 19.0005C31.9298 19.0005 29.5534 20.3062 28.0002 22.348C28 21.0878 28 20.4578 27.7264 19.99C27.553 19.6937 27.3062 19.4471 27.01 19.2737C26.5422 19 25.9122 19 24.652 19Z",stroke:"currentColor","stroke-width":"1","stroke-linejoin":"round"})]})}),m.jsx("button",{type:"button",onClick:U,children:m.jsx("svg",{width:"34",height:"34",className:`mt-2 ${F?"text-[#3b82f6]":"text-gray-200"}`,viewBox:"0 0 28 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{d:"M27 3V17C27 18.1046 26.1046 19 25 19H3C1.89543 19 1 18.1046 1 17V3M27 3C27 1.89543 26.1046 1 25 1H3C1.89543 1 1 1.89543 1 3M27 3L15.1384 11.2119C14.4535 11.686 13.5465 11.686 12.8616 11.2119L1 3",stroke:"currentColor",strokeWidth:"0.7","stroke-linecap":"round","stroke-linejoin":"round"})})})]})]})]}
4174),m.jsxs(ct.article,{variants:ge,initial:"hidden",whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"},className:"mt-[80vh] ml-[13vw] text-xl text-gray-100 font-shree-bold",children:[m.jsx("span",{className:"text-gray-300 font-shree",children:"<hint>"}),"  try double clicking  ",m.jsx("span",{className:"text-gray-300 font-shree",children:"</hint>"})]})]})}),m.jsxs("section",{id:"focus",className:"w-full max-w-[1200px]  mx-auto px-6 py-8",children:[m.jsx(ct.article,{className:"text-gray-200 text-3xl font-medium text-center",children:"My Focus"}),m.jsxs("div",{className:"grid sm:grid-cols-1 md:grid-cols-2 gap-8 mx-20 mt-6 ",children:[m.jsxs(ct.article,{variants:ge,initial:"hidden",whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"},className:`${L} p-8`,children:[m.jsxs("header",{className:"mb-6",children:[m.jsx("h3",{className:"text-2xl md:text-4xl text-gray-100",children:"Neuroscience & BCI"}),m.jsx("p",{className:"text-gray-300 mt-2",children:"Research and building at the interface of neural signals and interactive systems."})]}),m.jsxs("div",{className:"flex flex-wrap gap-3",children:[m.jsx("span",{className:ce,children:"ECoG analysis"}),m.jsx("span",{className:ce,children:"Signal Processing"}),m.jsx("span",{className:ce,children:"MATLAB"}),m.jsx("span",{className:ce,children:"Python"}),m.jsx("span",{className:ce,children:"Speech neuroscience"}),m.jsx("span",{className:z,children:"High-Gamma Band-Pass Filter"}),m.jsx("span",{className:z,children:"mTRF"}),m.jsx("span",{className:z,children:"Principal Component Analysis"}),m.jsx("span",{className:z,children:"fMRI segmentation"})]})]}),m.jsxs(ct.article,{variants:me,initial:"hidden",whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"},className:`${L} p-8`,children:[m.jsxs("header",{className:"mb-6",children:[m.jsx("h3",{className:"text-4xl md:text-4xl text-gray-100",children:"Full-Stack Development"}),m.jsx("p",{className:"text-gray-300 mt-2",children:"Shipping responsive, performant, and engaging web interfaces and tools."})]}),m.jsxs("div",{className:"flex flex-wrap gap-3",children:[m.jsx("span",{className:ce,children:"Unity"}),m.jsx("span",{className:ce,children:"React"}),m.jsx("span",{className:z,children:"Tailwindcss"}),m.jsx("span",{className:ce,children:"Three.js"}),m.jsx("span",{className:z,children:"Custom fragment/vertex shaders"}),m.jsx("span",{className:z,children:"Framer Motion"}),m.jsx("span",{className:z,children:"3D Animations"}),m.jsx("span",{className:ce,children:"LLM Groq/Ollama Model Integration"}),m.jsx("span",{className:z,children:"Multi-agent AI-powered"})]})]})]}),m.jsxs(ct.article,{variants:ge,initial:"hidden",whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"},className:`${L} p-8 m-8 mx-20 text-xl text-center text-gray-300`,children:["I believe the future of web applications lies in bringing ",m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"direct brain stimulation"})," and ",m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"augumented reality"})," into the loop of human-computer interactions.",m.jsx("span",{children:" "}),m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"I strive to build this next generation of recreational brain-computer interfaces (BCI)"}),"."]})]}),m.jsx("section",{id:"projects",className:"mt-80 md:mt-30",children:m.jsxs("div",{id:"projects",className:"grid grid-cols-1 md:grid-cols-2 gap-x-10 m-0 p-10 md:p-0",children:[m.jsxs(ct.article,{className:"flex flex-col ",...j?{variants:ge,initial:"hidden",whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"}}:{},children:[m.jsx("div",{className:"text-right text-2xl mb-8 text-gray-200  ",children:m.jsx(ct.p,{initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:"NEURAL Projects"})}),m.jsxs(ct.div,{className:"mb-10 ",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{className:"w-full",children:m.jsxs("div",{onMouseEnter:()=>b(!0),onMouseLeave:()=>b(!1),children:[m.jsxs("div",{className:"flex justify-end gap-5 text-gray-100 hover:text-[#3b82f6] transition-color duration-400 ",children:[m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${y?"o
4174pacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx($n,{to:"/mtrf",className:"text-5xl text-right ",children:"mTRF & PSI"})]}),m.jsxs("div",{className:"flex gap-5 text-gray-200 justify-end mt-2",children:[m.jsx("span",{className:z,children:"MATLAB"}),m.jsx("span",{className:z,children:"mTRF"}),m.jsx("span",{className:z,children:"ECoG processing"}),m.jsx("span",{className:z,children:"band-pass filter"})]})]})}),m.jsx("div",{onClick:()=>o("/mtrf"),className:"md:hidden cursor-pointer mt-5 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:qx,className:"w-full h-full object-cover "})})]}),m.jsxs(ct.div,{className:"mb-10 ",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{className:"text-right",children:m.jsx("div",{onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!1),children:m.jsxs("div",{className:"flex justify-end gap-5 text-gray-100 hover:text-[#3b82f6] transition-color duration-400 ",children:[m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${w?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx($n,{to:"/viseme",className:"text-5xl  ",children:"Phoneme-to-Viseme"})]})})}),m.jsxs("div",{className:"flex gap-5 text-gray-200 justify-end mt-2",children:[m.jsx("span",{className:z,children:"MATLAB"}),m.jsx("span",{className:z,children:"PCA"}),m.jsx("span",{className:z,children:"Dimensionality Reduction"})]}),m.jsx("div",{onClick:()=>o("/viseme"),className:"md:hidden cursor-pointer mt-5 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:Lf,className:"w-full h-full object-cover "})})]})]}),m.jsxs("div",{className:"relative md:mr-auto md:ml-0 w-0 md:w-[40vw] max-w-160 overflow-hidden rounded-[30px] grid",children:[m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 ${y?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:qx,className:"w-full h-full  object-cover "})}),m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 ${w?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:Lf,className:"w-full h-full object-cover "})})]}),m.jsxs("div",{className:"relative md:ml-auto md:mr-0 w-0 md:w-[40vw] max-w-160 overflow-hidden rounded-[30px] grid flex items-center justify-center",children:[m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 h-6/8 w-full ${f?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:Pp,className:"w-full h-full object-cover rounded-[30px]"})}),m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 h-6/8 w-full ${h?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:Op,className:"w-full h-full object-cover rounded-[30px]"})}),m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 h-6/8 w-full ${v?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:Ip,className:"w-full h-full object-cover rounded-[30px]"})})]}),m.jsxs(ct.article,{className:"mt-10 md:mt-5 flex flex-col justify-start",...j?{variants:ge,initial:"hidden",
4174whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"}}:{},children:[m.jsx("div",{className:"text-2xl mb-5 text-gray-200 ",children:m.jsx(ct.p,{initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:"FULL-STACK Projects"})}),m.jsxs(ct.div,{className:"mb-10 ",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:m.jsxs("div",{className:"flex gap-5 hover:text-[#3b82f6] transition-color duration-400",children:[m.jsx("div",{className:"",children:m.jsx($n,{to:"/tripsmart",className:"text-5xl ",children:"TripSmart AI"})}),m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${f?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})})]})}),m.jsxs("div",{className:"flex gap-5 mt-2",children:[m.jsx("span",{className:z,children:"Python"}),m.jsx("span",{className:z,children:"React"}),m.jsx("span",{className:z,children:"Flask"}),m.jsx("span",{className:z,children:"Ollama Embeddings"}),m.jsx("span",{className:z,children:"LangChain"})]}),m.jsx("div",{onClick:()=>o("/tripsmart"),className:"md:hidden cursor-pointer mt-5 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:Pp,className:"w-full h-full object-cover rounded-[30px]"})})]}),m.jsxs(ct.div,{className:"mb-10",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:m.jsxs("div",{variants:At,initial:"hidden",whileInView:"visible",className:"flex gap-5 hover:text-[#3b82f6] transition-color duration-400",children:[m.jsx($n,{to:"/uaem",className:"text-5xl ",children:"UAEM-UM Website"}),m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${h?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})})]})}),m.jsxs("div",{className:"flex gap-5 mt-2",children:[m.jsx("span",{className:z,children:"React"}),m.jsx("span",{className:z,children:"React-Router"}),m.jsx("span",{className:z,children:"Framer Motion"}),m.jsx("span",{className:z,children:"Javascript"})]}),m.jsx("div",{onClick:()=>o("/uaem"),className:"md:hidden mt-7 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:Op,className:"w-full h-full object-cover rounded-[30px]"})})]}
4174),m.jsxs(ct.div,{className:"mb-10",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),children:m.jsxs("div",{className:"flex gap-5 hover:text-[#3b82f6] transition-color duration-400",children:[m.jsx($n,{to:"/naturewalk",className:"text-5xl ",children:"Nature Walk"}),m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${v?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})})]})}),m.jsxs("div",{className:"flex gap-5 mt-2",children:[m.jsx("span",{className:z,children:"THREE.js"}),m.jsx("span",{className:z,children:"WebGL"}),m.jsx("span",{className:z,children:"Custom Shaders"}),m.jsx("span",{className:z,children:"Javascript"})]}),m.jsx("div",{onClick:()=>o("/naturewalk"),className:" md:hidden mt-7 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:Ip,className:"w-full h-full object-cover rounded-[30px]"})})]})]}),m.jsxs(ct.article,{className:"flex flex-col ",...j?{variants:ge,initial:"hidden",whileInView:"visible",viewport:{amount:.6,margin:"-8% 0% -8% 0%"},transition:{duration:.6,ease:"easeOut"}}:{},children:[m.jsx("div",{className:"text-right text-2xl mb-8 text-gray-200  ",children:m.jsx(ct.p,{initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:"GAME Projects"})}),m.jsxs(ct.div,{className:"mb-10 ",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{onMouseEnter:()=>I(!0),onMouseLeave:()=>I(!1),children:m.jsxs("div",{className:"flex justify-end gap-5 text-gray-100 hover:text-[#3b82f6] transition-color duration-400 ",children:[m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${P?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx("div",{className:"",children:m.jsx($n,{to:"/villagerim",className:"text-5xl ",children:"VillageRim"})})]})}),m.jsxs("div",{className:"flex gap-5 justify-end mt-2",children:[m.jsx("span",{className:z,children:"Unity"}),m.jsx("span",{className:z,children:"C#"})]}),m.jsx("div",{onClick:()=>o("/villagerim"),className:"md:hidden cursor-pointer mt-5 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:am,className:"w-full h-full object-cover rounded-[30px]"})})]}
4174),m.jsxs(ct.div,{className:"mb-10 ",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:m.jsxs("div",{className:"flex justify-end gap-5 text-gray-100 hover:text-[#3b82f6] transition-color duration-400 ",children:[m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${S?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx("div",{className:"",children:m.jsx($n,{to:"/metroid",className:"text-5xl ",children:"Metroid Remake"})})]})}),m.jsxs("div",{className:"flex gap-5 justify-end mt-2",children:[m.jsx("span",{className:z,children:"Unity"}),m.jsx("span",{className:z,children:"C#"})]}),m.jsx("div",{onClick:()=>o("/metroid"),className:"md:hidden cursor-pointer mt-5 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:sm,className:"w-full h-full object-cover rounded-[30px]"})})]}),m.jsxs(ct.div,{className:"mb-10 ",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:At,children:[m.jsx("div",{onMouseEnter:()=>R(!0),onMouseLeave:()=>R(!1),children:m.jsxs("div",{className:"flex justify-end gap-5 text-gray-100 hover:text-[#3b82f6] transition-color duration-400 ",children:[m.jsx("button",{className:`mb-1 transition-opacity duration-400 text-[#edf7fd] ${T?"opacity-100":"opacity-0"}`,onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:" hover:text-gray-100-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx("div",{className:"",children:m.jsx($n,{to:"/flipped",className:"text-5xl ",children:"Flipped"})})]})}),m.jsxs("div",{className:"flex gap-5 justify-end mt-2",children:[m.jsx("span",{className:z,children:"Unity"}),m.jsx("span",{className:z,children:"C#"})]}),m.jsx("div",{onClick:()=>o("/flipped"),className:"md:hidden cursor-pointer mt-5 w-full mx-auto rounded-[30px] overflow-hidden",children:m.jsx("img",{src:Df,className:"w-full h-full object-cover rounded-[30px]"})})]})]}),m.jsxs("div",{className:"relative md:mr-auto md:ml-0 w-0 md:w-[40vw] max-w-160 overflow-hidden rounded-[30px] grid flex items-center justify-center",children:[m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 h-6/8 w-full ${S?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:sm,className:"w-full h-full object-cover rounded-[30px]"})}),m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 h-6/8 w-full ${T?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:Df,className:"w-full h-full object-cover rounded-[30px]"})}),m.jsx("div",{className:`hidden md:block col-start-1 row-start-1 transition-opacity duration-400 h-6/8 w-full ${P?"opacity-100":"opacity-0"}`,children:m.jsx("img",{src:am,className:"w-full h-full object-cover rounded-[30px]"})})]})]})}),m.jsxs("section",{id:"stack",className:"mt-80 mb-60 md:w-[90vw] max-w-280 mx-auto px-25",children:[m.jsx("p",{className:"text-2xl mb-5 ",children:"My Stack"}),m.jsxs(ct.div,{className:"grid grid-cols-1 md:grid-cols-2 gap-x-5 gap-y-3 mb-10 items-center",initial:"hidden",
4174whileInView:"visible",animate:a?"visible":"hidden",variants:cf,children:[m.jsx(ct.p,{variants:At,className:"text-5xl",children:"Frontend"}),m.jsxs("div",{className:"flex flex-wrap gap-x-10 text-xl md:w-8/9 max-w-150",children:[m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"Javascript",src:"javascript"})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"HTML",src:"html"})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"CSS",src:"css"})}),m.jsx(ct.div,{variants:At,children:m.jsxs("div",{className:"flex items-center rounded-lg group gap-2 relative mt-2",children:[m.jsx("svg",{width:"40",height:"40",className:"text-white mt-4",viewBox:"0 0 103 104",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("g",{id:"threejs",children:m.jsxs("g",{id:"threejs_2",children:[m.jsx("path",{id:"Vector","fill-rule":"evenodd","clip-rule":"evenodd",d:"M26.7016 102L2 2L101.023 30.5092L26.7016 102Z",stroke:"currentColor","stroke-width":"2.2865","stroke-miterlimit":"10","stroke-linejoin":"round"}),m.jsx("path",{id:"Vector_2","fill-rule":"evenodd","clip-rule":"evenodd",d:"M51.4929 16.2573L63.8349 66.2722L14.3511 52.013L51.4929 16.2573Z",stroke:"currentColor","stroke-width":"2.2865","stroke-miterlimit":"10","stroke-linejoin":"round"}),m.jsx("path",{id:"Vector_3","fill-rule":"evenodd","clip-rule":"evenodd",d:"M39.2145 58.7966L33.0844 33.9509L57.6688 41.0082L39.2145 58.7966Z",stroke:"currentColor","stroke-width":"2.2865","stroke-miterlimit":"10","stroke-linejoin":"round"}),m.jsx("path",{id:"Vector_4","fill-rule":"evenodd","clip-rule":"evenodd",d:"M26.952 9.13574L33.0821 33.9814L8.49768 26.9241L26.952 9.13574Z",stroke:"currentColor","stroke-width":"2.2865","stroke-miterlimit":"10","stroke-linejoin":"round"}),m.jsx("path",{id:"Vector_5","fill-rule":"evenodd","clip-rule":"evenodd",d:"M76.1186 23.2988L82.2487 48.1445L57.6643 41.0872L76.1186 23.2988Z",stroke:"currentColor","stroke-width":"2.2865","stroke-miterlimit":"10","stroke-linejoin":"round"}),m.jsx("path",{id:"Vector_6","fill-rule":"evenodd","clip-rule":"evenodd",d:"M39.2173 58.8137L45.3474 83.6594L20.7629 76.6021L39.2173 58.8137Z",stroke:"currentColor","stroke-width":"2.2865","stroke-miterlimit":"10","stroke-linejoin":"round"})]})})}),m.jsx("p",{className:"text-xl tracking-tight mt-4",children:"THREE.js"})]})}),m.jsx(ct.div,{className:"mt-2",variants:At,children:m.jsx(di,{name:"TailwindCSS",src:"tailwindcss"})}),m.jsx(ct.div,{className:"mt-2",variants:At,children:m.jsx(di,{name:"React",src:"react"})}),m.jsx(ct.div,{className:"mt-1",variants:At,children:m.jsx(di,{name:"Typescript",src:"typescript"})})]})]}),m.jsxs(ct.div,{className:"grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-3 mb-10 items-center",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:cf,children:[m.jsx(ct.p,{variants:At,className:"text-5xl",children:"Backend"}),m.jsxs("div",{className:"flex flex-wrap gap-x-10 text-xl md:w-7/8 max-w-150",children:[m.jsx(ct.div,{variants:At,children:m.jsxs("div",{className:"flex items-center rounded-lg group gap-2 relative mt-2",children:[m.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 640",className:"text-white w-14 h-14",fill:"currentColor",children:m.jsx("path",{d:"M339.6 155.6L419.7 202.4C422.6 204 422.7 208.6 419.7 210.2L324.5 265.8C321.6 267.5 318.2 267.4 315.5 265.8L220.3 210.2C217.4 208.6 217.3 203.9 220.3 202.4L300.4 155.6L300.4 64L96 183.4L96 422.2L174.4 376.4L174.4 282.8C174.3 279.5 178.2 277.1 181.1 278.9L276.3 334.5C279.2 336.2 280.8 339.2 280.8 342.3L280.8 453.5C280.9 456.8 277 459.2 274.1 457.4L194 410.8L115.6 456.6L320 576L524.4 456.6L446 410.8L365.9 457.6C363.1 459.3 359.1 457.1 359.2 453.7L359.2 342.5C359.2 339.2 361 336.2 363.7 334.7L458.9 279C461.7 277.3 465.7 279.5 465.6 282.9L465.6 376.5L544 422.3L544 183.5L339.6 64.1L339.6 155.7z"})}),m.jsx("p",{className:"text-xl tracking-tight mt-0",children:"Unity"})]})}),m.jsx(ct.div,{variants:At,className:"",children:m.jsx(di,{name:"Python",src:"python"})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"MATLAB",src:"matlab"})})]})]}),m.jsxs(ct.div,{className:"grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-3 mb-10 items-center",initial:"hidden",
4174whileInView:"visible",animate:a?"visible":"hidden",variants:cf,children:[m.jsx(ct.p,{variants:At,className:"text-5xl",children:"Tools"}),m.jsxs("div",{className:"flex flex-wrap gap-x-10 text-xl md:w-7/8 max-w-150",children:[m.jsx(ct.div,{variants:At,children:m.jsxs("div",{className:"flex items-center rounded-lg group gap-2 relative mt-2",children:[m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-13 h-13",viewBox:"0 0 128 128",children:[m.jsxs("defs",{children:[m.jsxs("linearGradient",{id:"jira-original-a",gradientUnits:"userSpaceOnUse",x1:"22.034",y1:"9.773",x2:"17.118",y2:"14.842",gradientTransform:"scale(4)",children:[m.jsx("stop",{offset:".176","stop-color":"#0052cc"}),m.jsx("stop",{offset:"1","stop-color":"#2684ff"})]}),m.jsxs("linearGradient",{id:"jira-original-b",gradientUnits:"userSpaceOnUse",x1:"16.641",y1:"15.564",x2:"10.957",y2:"21.094",gradientTransform:"scale(4)",children:[m.jsx("stop",{offset:".176","stop-color":"#0052cc"}),m.jsx("stop",{offset:"1","stop-color":"#2684ff"})]})]}),m.jsx("path",{d:"M108.023 16H61.805c0 11.52 9.324 20.848 20.847 20.848h8.5v8.226c0 11.52 9.328 20.848 20.848 20.848V19.977A3.98 3.98 0 00108.023 16zm0 0",fill:"#2684ff"}),m.jsx("path",{d:"M85.121 39.04H38.902c0 11.519 9.325 20.847 20.844 20.847h8.504v8.226c0 11.52 9.328 20.848 20.848 20.848V43.016a3.983 3.983 0 00-3.977-3.977zm0 0",fill:"url(#jira-original-a)"}),m.jsx("path",{d:"M62.219 62.078H16c0 11.524 9.324 20.848 20.848 20.848h8.5v8.23c0 11.52 9.328 20.844 20.847 20.844V66.059a3.984 3.984 0 00-3.976-3.98zm0 0",fill:"url(#jira-original-b)"})]}),m.jsx("p",{className:"text-xl tracking-tight mt-0",children:"Jira"})]})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"Git",src:"git"})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"VSCODE",src:"vscode"})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"NPM",src:"npm"})})]})]}),m.jsxs(ct.div,{className:"grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-3 mb-10 items-center",initial:"hidden",whileInView:"visible",animate:a?"visible":"hidden",variants:cf,children:[m.jsx(ct.p,{variants:At,className:"text-5xl ",children:"Studying"}),m.jsxs("div",{className:"flex flex-wrap gap-x-10 text-xl md:w-7/8 max-w-150",children:[m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"Framer Motion",src:"framer-motion"})}),m.jsx(ct.div,{variants:At,children:m.jsx(di,{name:"React Native",src:"react"})}),m.jsx(ct.div,{variants:At,children:m.jsxs("div",{className:"flex items-center rounded-lg group gap-2 relative mt-2",children:[m.jsxs("svg",{height:"40",viewBox:".1 16.7 2472.8 1996.5",width:"45",className:"mt-2",xmlns:"http://www.w3.org/2000/svg",children:[m.jsx("path",{d:"m2006.5 1485.6c-98.8 100.8-237 157.8-386.7 158-149.8.3-288.1-56.3-386.9-156.8-48.3-49-83.7-105.2-105.7-165.3-21.5-59-29.7-122.1-24.2-184.6 5.3-61 23.3-120.3 53-173.9 28.9-52.4 68.6-99.7 117.6-139.7 96-78.3 218.2-120.6 346.2-120.8s250.1 41.9 346.2 119.8c48.9 39.9 88.6 87 117.4 139.3 29.7 53.6 47.8 112.8 53.1 173.8 5.5 62.6-2.8 125.6-24.3 184.7-22 60-57.5 116.3-105.7 165.5z",fill:"#fff"}),m.jsx("path",{d:"m1300.4 1143.3c4.5-81.5 44.5-153.4 104.7-204.3 59.1-50.1 138.7-80.6 225.4-80.6 86.8.1 166.3 30.6 225.4 80.6 60.2 51 100.2 122.8 104.8 204.3 4.6 83.8-29.1 161.7-88.2 219.4-60.2 58.7-146 95.6-242 95.6s-181.9-36.9-242.1-95.6c-59-57.7-92.6-135.6-88-219.4z",fill:"#005385"}),m.jsx("path",{d:"m774.5 1308.3c.6 31.8 10.8 93.8 26 142.3 32.1 102.5 86.5 197.4 162.3 281 77.8 85.9 173.4 154.9 284 203.8 116.3 51.5 242.2 77.8 372.9 77.5 130.7-.2 256.6-26.9 372.8-78.8 110.5-49.5 206.1-118.7 283.8-204.8 75.7-84 130-179 162.1-281.5 16-51.1 26.3-103.8 30.5-157.1 4-52 2.3-104.4-5-156.1-14.4-101.4-49.5-196.5-103.5-283.2-49.5-79.6-113.1-149.4-188.8-208.2l.1-.1-763.8-586.4c-.6-.5-1.3-1.1-1.9-1.6-50.3-38.4-134.5-38.3-189.6.3-55.8 39-62.1 103.5-12.6 144.2l-.2.1 318.6 259.2-971.3 1h-1.3c-80.2.1-157.4 52.8-172.7 119.3-15.6 67.8 38.9 124 122.4 124.4l-.1.3 492.3-1-878.5 674.3c-1.1.9-2.3 1.7-3.3 2.5-82.8 63.4-109.6 169-57.5 235.8 53 67.9 165.6 68 249.4.3l479.4-392.3s-7 53-6.5 84.8zm1232 177.3c-98.8 100.8-237 157.8-386.7 158-149.8.3-288.1-56.3-386.9-156.8-48.3-49-83.7-105.2-105.7-165.3-21.5-59-29.7-122.1-24.2-184.6 5.3-61 23.3-120.3 53-173.9 28.9-52.4 68.6-99.7 117.6-139.7 96-78.3 218.2-120.6 346.2-120.8s250.1 41.9 346.2 119.8c48.9 39.9 88.6 87 117.4 139.3 29.7 53.6 47.8 112.8 53.1 173.8 5.5 62.6-2.8 125.6-24.3 184.7-22 60-57.5 116.3-105.7 165.5z",fill:"#ff7021"})]}),m.jsx("p",{className:"text-xl tracking-tight mt-4",children:"Blender"})]})})]})]})]}),m.jsxs("section",{id:"contact",className:"flex flex-col items-center mb-10",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm mb-7",children:"Built by emma "})]})]})]})}function PN({sidebarOpen:n,setSidebarOpen:e}){const[t,a]=G.useState(!1),[o,l]=G.useState(!1);let u=90;return n?u=0:u=90,m.jsxs(m.Fragment,{children:[m.jsx("button",{onClick:()=>e(!n),onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),className:"fixed top-10 right-5 z-60 md:right-12 p-3 text-white rounded-md focus:outline-none",children:m.jsx("svg",{width:"52",height:"19",viewBox:"0 0 58 25",className:"text-gray-200 hover:text-indigo-400 transition-transform duration-300",style:{transform:`rotate(${u}deg)`},fill:"none",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{d:"M11.9111 12.7155L11.4111 12.7155L11.4111 12.7155L11.9111 12.7155ZM13.9463 15.0163L13.9462 15.5163L13.9463 15.5163L13.9463 15.0163ZM15.9824 12.7155L16.4824 12.7155L16.4824 12.7155L15.9824 12.7155ZM13.9463 10.4157L13.9463 9.91573L13.9462 9.91573L13.9463 10.4157ZM0.953679 13.026L0.513278 13.2628L0.953679 13.026ZM56.6769 22.4632L56.2065 22.6327L56.6769 22.4632ZM55.1679 23.3496L54.821 23.7097L55.1679 23.3496ZM51.3548 11.6536L51.7404 11.9719L51.3548 11.6536ZM51.3721 13.121L51.7449 12.7878L51.3721 13.121ZM41.9629 12.321L42.2671 12.7178C46.7633 9.27149 51.1462 5.3052
41746 55.1951 1.22192L54.84 0.869872L54.485 0.51782C50.4608 4.57627 46.1118 8.51092 41.6587 11.9242L41.9629 12.321ZM56.4102 1.81843L55.9412 1.64497C54.7028 4.993 52.9171 8.9755 50.9692 11.3354L51.3548 11.6536L51.7404 11.9719C53.8039 9.47206 55.6369 5.3503 56.8791 1.99188L56.4102 1.81843ZM51.3721 13.121L50.9993 13.4543C53.4154 16.157 55.1537 19.7108 56.2065 22.6327L56.6769 22.4632L57.1473 22.2937C56.0704 19.3048 54.2776 15.6211 51.7449 12.7878L51.3721 13.121ZM55.1679 23.3496L55.5149 22.9896C51.3644 18.9898 46.8713 15.5186 42.2706 11.9269L41.9629 12.321L41.6552 12.7151C46.2667 16.3152 50.7153 19.7531 54.821 23.7097L55.1679 23.3496ZM0.943233 12.1138L1.38923 12.3398C3.60183 7.97411 6.26646 5.10444 9.22791 3.41448C12.187 1.72589 15.4833 1.19167 19.0027 1.56605C26.0693 2.31775 33.9863 6.72819 41.6552 12.7151L41.9629 12.321L42.2706 11.9269C34.5629 5.90972 26.4618 1.35387 19.1085 0.57166C15.418 0.179086 11.904 0.735996 8.73228 2.54595C5.56294 4.35454 2.77634 7.39083 0.497241 11.8878L0.943233 12.1138ZM41.9629 12.321L41.6587 11.9242C33.9955 17.798 26.0791 22.0852 19.0094 22.8631C15.4864 23.2507 12.1868 22.7657 9.22646 21.1837C6.26536 19.6014 3.60397 16.9003 1.39408 12.7893L0.953679 13.026L0.513278 13.2628C2.79632 17.5098 5.58625 20.3723 8.75515 22.0657C11.9248 23.7595 15.4339 24.2625 19.1187 23.8571C26.4645 23.0488 34.5598 18.6255 42.2671 12.7178L41.9629 12.321ZM11.9111 12.7155L11.4111 12.7155C11.4111 14.2026 12.49 15.5162 13.9462 15.5163L13.9463 15.0163L13.9463 14.5163C13.1542 14.5162 12.4111 13.7692 12.4111 12.7155L11.9111 12.7155ZM13.9463 15.0163L13.9463 15.5163C15.4024 15.5163 16.4824 14.203 16.4824 12.7155L15.9824 12.7155L15.4824 12.7155C15.4824 13.769 14.7388 14.5163 13.9463 14.5163L13.9463 15.0163ZM15.9824 12.7155L16.4824 12.7155C16.4824 11.2279 15.4021 9.91573 13.9463 9.91573L13.9463 10.4157L13.9463 10.9157C14.739 10.9157 15.4824 11.6624 15.4824 12.7156L15.9824 12.7155ZM13.9463 10.4157L13.9462 9.91573C12.4903 9.9159 11.4112 11.2282 11.4111 12.7155L11.9111 12.7155L12.4111 12.7156C12.4112 11.6622 13.1539 10.9158 13.9463 10.9157L13.9463 10.4157ZM0.943233 12.1138L0.497241 11.8878C0.280687 12.3151 0.285814 12.8396 0.513278 13.2628L0.953679 13.026L1.39408 12.7893C1.32215 12.6555 1.31993 12.4766 1.38923 12.3398L0.943233 12.1138ZM56.6769 22.4632L56.2065 22.6327C56.2552 22.7678 56.2438 22.8634 56.2201 22.9265C56.1951 22.9933 56.1453 23.0526 56.0739 23.0939C55.9362 23.1736 55.7172 23.1846 55.5149 22.9896L55.1679 23.3496L54.821 23.7097C55.3473 24.2168 56.0543 24.2606 56.5747 23.9595C57.1066 23.6517 57.4033 23.0042 57.1473 22.2937L56.6769 22.4632ZM51.3548 11.6536L50.9692 11.3354C50.4666 11.9442 50.4601 12.8511 50.9993 13.4543L51.3721 13.121L51.7449 12.7878C51.5479 12.5675 51.5398 12.2149 51.7404 11.9719L51.3548 11.6536ZM54.84 0.869872L55.1951 1.22192C55.3929 1.0224 55.6214 1.02832 55.7816 1.12437C55.9362 1.21704 56.0338 1.39457 55.9412 1.64497L56.4102 1.81843L56.8791 1.99188C57.1506 1.25793 56.8326 0.58855 56.2959 0.266715C55.7647 -0.0517405 55.0261 -0.0279256 54.485 0.51782L54.84 0.869872Z",stroke:"currentColor"})})}),n&&m.jsx("div",{className:"fixed inset-0  z-50",onClick:()=>e(!1)}),m.jsx("nav",{className:`
4175         fixed top-9 md:right-[8vw] font-shree bg-transparent z-50
4176          transform transition-all duration-300 ease-in-out overflow-hidden h-[6vh] items-center w-[100vw] md:w-[40vw]
4177          ${n?"ml-42":"ml-[100vw] opacity-0 "}
4178        `,children:m.jsxs("ul",{className:"menu menu-horizontal text-lg gap-x-4 ",children:[m.jsx("li",{className:"",children:m.jsx($n,{to:"/#home",className:"hover:bg-indigo-600",onClick:()=>e(!1),children:"Home"})}),m.jsx("li",{children:m.jsx($n,{to:"/#focus",className:"hover:bg-indigo-600",onClick:()=>e(!1),children:"Focus"})}),m.jsx("li",{children:m.jsx($n,{to:"/#projects",className:"hover:bg-indigo-600",onClick:()=>e(!1),children:"Projects"})}),m.jsx("li",{children:m.jsx($n,{to:"/#stack",className:"hover:bg-indigo-600",onClick:()=>e(!1),children:"Stack"})}),m.jsx("li",{children:m.jsx("button",{className:"hover:bg-indigo-600",onClick:()=>window.open(Y_,"_blank"),children:"Resume"})})]})})]})}const ON="/assets/destination1-BqwCfdPV.png",IN="/assets/destination2-D0D7pHf_.png",BN="/assets/itinerary1-DmVDfe7f.png",FN="/assets/itinerary2-B2NHDiAa.png",zN="/assets/itinerary3-ByWzQyyy.png";function Oa(){const{pathname:n}=es();return G.useEffect(()=>{window.scrollTo(0,0)},[n]),null}function VN({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const o=new zs,l=new Gs({antialias:!0});l.setPixelRatio(window.devicePixelRatio),l.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(l.domElement)&&e.current.appendChild(l.domElement);const u=new mn(60,window.innerWidth/window.innerHeight,.1,100);u.position.set(0,2,0),u.lookAt(0,0,0);const f=new ks,d=new Vs;d.setPath("/threejs-water-shader/");const h=d.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),g=new js().load("/threejs-water-shader/ocean_floor.png");o.background=h,o.environment=h;const v={size:512},x=new Ws({environmentMap:h,resolution:v.size});o.add(x);const y=new Xs({texture:g});o.add(y),x.material.uniforms.uWavesAmplitude.value=.06,x.material.uniforms.uWavesFrequency.value=.04,x.material.uniforms.uWavesIterations.value=1,x.material.uniforms.uWavesSpeed.value=.1,x.material.uniforms.uTroughColor.value=new Fe(793917),x.material.uniforms.uSurfaceColor.value=new Fe(2839444),x.material.uniforms.uPeakColor.value=new Fe(7643122),x.material.uniforms.uOpacity.value=.6,x.material.uniforms.uFresnelPower.value=.3,x.material.uniforms.uFresnelScale.value=.9,x.material.uniforms.uTroughTransition.value=.4,y.material.uniforms.uCausticsColor.value=new Fe(14148348),y.material.uniforms.uCausticsScale.value=6,y.material.uniforms.uCausticsSpeed.value=.2,o.add(new Hs(16777215,.9));function b(){const w=f.getElapsedTime();x.update(w),y.update(w),l.render(o,u),requestAnimationFrame(b)}return b(),window.addEventListener("resize",()=>{u.aspect=window.innerWidth/window.innerHeight,u.updateProjectionMatrix(),l.setSize(window.innerWidth,window.innerHeight)}),()=>
4178{l&&(l.dispose(),e.current&&e.current.removeChild(l.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})};return m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"w-[88vw] md:w-[60vw]  mx-auto mb-8 overflow-hidden rounded-b-[30px] rounded-t-[30px] md:rounded-b-[30px] md:rounded-t-[0px]",children:m.jsx("img",{src:Pp,className:"w-full h-full object-cover ",alt:"Homepage"})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"TripSmart AI"}),m.jsxs("div",{className:"flex gap-5 mt-1",children:[m.jsx("button",{className:"mb-5",onClick:()=>window.location.href="https://travel-agent-ai-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:"text-gray-400 hover:text-blue-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx("button",{className:"mb-5",onClick:()=>window.location.href="",children:m.jsxs("svg",{width:"30",height:"30",className:"text-gray-400 hover:text-blue-300",viewBox:"0 0 51 51",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsx("path",{d:"M20.6 46.4904C12.2 49.3258 5.2 46.4904 1 37.75",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M20.5996 50V42.0568C20.5996 40.5911 21.0503 39.3171 21.7766 38.1662C22.2749 37.3767 21.9336 36.2564 21.0335 36.009C13.5778 33.9595 8.34961 30.6639 8.34961 19.7328C8.34961 16.891 9.28074 14.2191 10.9175 11.8937C11.3248 11.3149 11.5285 11.0256 11.5774 10.7635C11.6264 10.5014 11.5413 10.1594 11.371 9.47533C10.678 6.69114 10.723 3.73466 11.763 1.06916C11.763 1.06916 13.9121 0.368929 18.8037 3.42475C19.9205 4.12245 20.4789 4.4713 20.9707 4.54933C21.4625 4.62737 22.12 4.46392 23.4351 4.13701C25.2334 3.68998 27.0862 3.45 29.1746 3.45C31.263 3.45 33.1159 3.68998 34.9141 4.13701C36.2292 4.46392 36.8867 4.62737 37.3785 4.54933C37.8703 4.4713 38.4287 4.12245 39.5455 3.42475C44.4371 0.368929 46.5862 1.06916 46.5862 1.06916C47.6263 3.73466 47.6712 6.69114 46.9782 9.47533C46.808 10.1594 46.7228 10.5014 46.7718 10.7635C46.8207 11.0256 47.0244 11.315 47.4317 11.8937C49.0685 14.2191 49.9996 16.891 49.9996 19.7328C49.9996 30.6639 44.7715 33.9595 37.3157 36.009C36.4156 36.2564 36.0744 37.3767 36.5726 38.1662C37.299 39.3171 37.7496 40.5911 37.7496 42.0568V50",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]})})]})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"Python, React, React Router, TailwindCSS, LangChain, Groq Model, ChromaDB, Ollama Embeddings, Axios, Git, Markdown, JSPDF"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsx("p",{className:"whitespace-pre-line leading-relaxed",children:"A passion project - My dad is a tour guide so I know how valuable travel expert opinion can be when planning a trip. But not everyone wants a tour guide on their trip, so why not build an easily accessible AI agent but with the same knowledge and capabilities?"}),m.jsx("br",{}),m.jsx("p",{children:"This is an AI-powered travel planning website designed to assist 1) provide insights on dream destinations 2) plan your travel itinerary based on yor unique preferences."}),m.jsx("br",{}),m.jsx("p",{children:'I used a Groq Model ("llama-3.3-70b-versatile") here because of its small size and relatively fast response time.'})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"FRONTEND"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:[m.jsx("span",{className:"font-semibold",children:"DestinationExpert:"})," responsive chatbot",m.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[m.jsx("li",{children:"Chat interface with markdown + custom streaming AI response"}),m.jsx("li",{children:"Map-based geolocation feature via Leaflet and fly-to-location animations"})]})]}),m.jsxs("li",{children:[m.jsx("span",{className:"font-semibold",children:"ItineraryPlanner:"})," a clean itinerary planning form with AI-powered response",m.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[m.jsx("li",{children:"simple design for user to input desired trip info: dates, pace, content, number of locations"}),m.jsx("li",{children:"handles multi-city trip selection with transportation and cost estimates"})]})]}),m.jsx("li",{children:"PDF generation for downloaded itineraries/destination details using JSPDF"})]})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"BACKEND"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsx("li",{children:"Base AI agent is Groq's llama-based large language model – used for both DestinationExpert + ItineraryPlanner"}),m.jsxs("li",{children:[m.jsx("span",{className:"font-semibold",children:"DestinationExpert:"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[m.jsx("li",{children:"LangChain pipeline: uses embedding storage and similarity search with ChromaDB, augmented by OllamaEmbeddingFunction for high-quality embeddings of local documents"}),m.jsx("li",{children:m.jsx("span",{className:"block ml-2",children:"documents from a real Europe-based tour guide!"})}),m.jsx("li",{children:"Handles follow-up question and conversational context awareness – via storing and updating/reformatting chat history"})]})]}),m.jsx("li",{children:"Multi AI agent integration via agent child classes"}),m.jsx("li",{children:"Axios for reliable HTTP communication with Flask backend API"})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"DESTINATION AGENT"}),m.jsx("img",{src:ON,className:"mb-4"}),m.jsx("img",{src:IN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"ITINERARY PLANNER"}),m.jsx("img",{src:BN,className:"mb-4"}),m.jsxs("div",{className:"flex",children:[m.jsx("div",{className:"w-[50vw] h-[40vh] md:w-[30vw] md:h-[50vh] mx-auto overflow-hidden",children:m.jsx("img",{src:FN,
4178className:"w-full h-full object-cover"})}),m.jsx("div",{className:"w-[50vw] h-[40vh] md:w-[30vw] md:h-[50vh] mx-auto overflow-hidden",children:m.jsx("img",{src:zN,className:"w-full h-full object-cover"})})]})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}const jN="/assets/grass-HYG7kCXK.png",HN="/assets/koipond-DqmyxjYE.png",kN="/assets/star-uAgQk8LU.png",GN="/assets/fire-He4e0lnB.png";function WN({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const o=new zs,l=new Gs({antialias:!0});l.setPixelRatio(window.devicePixelRatio),l.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(l.domElement)&&e.current.appendChild(l.domElement);const u=new mn(60,window.innerWidth/window.innerHeight,.1,100);u.position.set(0,2,0),u.lookAt(0,0,0);const f=new ks,d=new Vs;d.setPath("/threejs-water-shader/");const h=d.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),g=new js().load("/threejs-water-shader/ocean_floor.png");o.background=h,o.environment=h;const v={size:512},x=new Ws({environmentMap:h,resolution:v.size});o.add(x);const y=new Xs({texture:g});o.add(y),x.material.uniforms.uWavesAmplitude.value=.06,x.material.uniforms.uWavesFrequency.value=.04,x.material.uniforms.uWavesIterations.value=1,x.material.uniforms.uWavesSpeed.value=.1,x.material.uniforms.uTroughColor.value=new Fe(793917),x.material.uniforms.uSurfaceColor.value=new Fe(2839444),x.material.uniforms.uPeakColor.value=new Fe(7643122),x.material.uniforms.uOpacity.value=.6,x.material.uniforms.uFresnelPower.value=.3,x.material.uniforms.uFresnelScale.value=.9,x.material.uniforms.uTroughTransition.value=.4,y.material.uniforms.uCausticsColor.value=new Fe(14148348),y.material.uniforms.uCausticsScale.value=6,y.material.uniforms.uCausticsSpeed.value=.2,o.add(new Hs(16777215,.9));function b(){const w=f.getElapsedTime();x.update(w),y.update(w),l.render(o,u),requestAnimationFrame(b)}return b(),window.addEventListener("resize",()=>{u.aspect=window.innerWidth/window.innerHeight,u.updateProjectionMatrix(),l.setSize(window.innerWidth,window.innerHeight)}),()=>{l&&(l.dispose(),e.current&&e.current.removeChild(l.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})};return m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"w-[88vw] md:w-[60vw] mx-auto mb-8 overflow-hidden rounded-b-[30px] rounded-t-[30px] md:rounded-b-[30px] md:rounded-t-[0px]",children:m.jsx("a",{href:"https://immersive-production.up.railway.app",children:m.jsx("img",{src:Ip,className:"w-full h-full object-cover ",alt:"Homepage"})})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"Nature Walk"}),m.jsxs("div",{className:"flex gap-5 mt-1",children:[m.jsx("button",{className:"mb-5",onClick:()=>window.location.href="https://immersive-production.up.railway.app/",children:m.jsxs("svg",{width:"30",height:"30",className:"text-gray-400 hover:text-blue-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.28
41786 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})}),m.jsx("button",{className:"mb-5",onClick:()=>window.location.href="https://github.com/zhijingz/immersive",children:m.jsxs("svg",{width:"30",height:"30",className:"text-gray-400 hover:text-blue-300",viewBox:"0 0 51 51",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsx("path",{d:"M20.6 46.4904C12.2 49.3258 5.2 46.4904 1 37.75",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M20.5996 50V42.0568C20.5996 40.5911 21.0503 39.3171 21.7766 38.1662C22.2749 37.3767 21.9336 36.2564 21.0335 36.009C13.5778 33.9595 8.34961 30.6639 8.34961 19.7328C8.34961 16.891 9.28074 14.2191 10.9175 11.8937C11.3248 11.3149 11.5285 11.0256 11.5774 10.7635C11.6264 10.5014 11.5413 10.1594 11.371 9.47533C10.678 6.69114 10.723 3.73466 11.763 1.06916C11.763 1.06916 13.9121 0.368929 18.8037 3.42475C19.9205 4.12245 20.4789 4.4713 20.9707 4.54933C21.4625 4.62737 22.12 4.46392 23.4351 4.13701C25.2334 3.68998 27.0862 3.45 29.1746 3.45C31.263 3.45 33.1159 3.68998 34.9141 4.13701C36.2292 4.46392 36.8867 4.62737 37.3785 4.54933C37.8703 4.4713 38.4287 4.12245 39.5455 3.42475C44.4371 0.368929 46.5862 1.06916 46.5862 1.06916C47.6263 3.73466 47.6712 6.69114 46.9782 9.47533C46.808 10.1594 46.7228 10.5014 46.7718 10.7635C46.8207 11.0256 47.0244 11.315 47.4317 11.8937C49.0685 14.2191 49.9996 16.891 49.9996 19.7328C49.9996 30.6639 44.7715 33.9595 37.3157 36.009C36.4156 36.2564 36.0744 37.3767 36.5726 38.1662C37.299 39.3171 37.7496 40.5911 37.7496 42.0568V50",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]})})]})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"Three.js, Custom Fragment & Vertex Shaders, WebGL, React, Javascript"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsx("p",{className:"whitespace-pre-line leading-relaxed",children:"This is my first project in Three.js. I'm in the process of designing it for a VR viewing! This site guides the user through four distinct, interactive 3D environments: Night Meadow, Koi Pond, Starlit Cosmos, and Fireside Glow. The piece is actually used as animated background of a nature-awareness conference hosted in my university!        "})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"KEY FEATURES"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsx("li",{children:"Real-time mouse interaction: spawning fireflies, guide flame direction, attract fish movement"}),m.jsx("li",{children:"Extensive custom vertex- and fragment- shaders for texture of dynamic grass lighting, water surface, fire particles, and star glow"}),m.jsx("li",{children:"Original 3D animation of grass movement in wind, fish swim style, shooting stars, flame particle rising trajectory"}),m.jsx("li",{children:"DEVELOPING: VR viewing of scenery and interaction with hand waving/joystick"})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"NIGHT MEADOW"}),m.jsx("img",{src:jN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"KOI POND"}),m.jsx("img",{src:HN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"COSMOS"}),m.jsx("img",{src:kN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"FIRELIGHT"}),m.jsx("img",{src:GN,className:"w-full h-full object-cover"})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}const XN="/assets/about-CZcerlck.png",qN="/assets/about2-B29HOG5V.png",YN="/assets/aap1-BFa2cTmQ.png",ZN="/assets/aap2-CTSFo5yT.png",KN="/assets/outreach-DeqApBHT.png",QN="/assets/members1-C4WrXOcY.png",$N="/assets/contact-BgwJVhIT.png";function JN({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const o=new zs,l=new Gs({antialias:!0});l.setPixelRatio(window.devicePixelRatio),l.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(l.domElement)&&e.current.appendChild(l.domElement);const u=new mn(60,window.innerWidth/window.innerHeight,.1,100);u.position.set(0,2,0),u.lookAt(0,0,0);const f=new ks,d=new Vs;d.setPath("/threejs-water-shader/");const h=d.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),g=new js().load("/threejs-water-shader/ocean_floor.png");o.background=h,o.environment=h;const v={size:512},x=new Ws({environmentMap:h,resolution:v.size});o.add(x);const y=new Xs({texture:g});o.add(y),x.material.uniforms.uWavesAmplitude.value=.06,x.material.uniforms.uWavesFrequency.value=.04,x.material.uniforms.uWavesIterations.value=1,x.material.uniforms.uWavesSpeed.value=.1,x.material.uniforms.uTroughColor.value=new Fe(793917),x.material.uniforms.uSurfaceColor.value=new Fe(2839444),x.material.uniforms.uPeakColor.value=new Fe(7643122),x.material.uniforms.uOpacity.value=.6,x.material.uniforms.uFresnelPower.value=.3,x.material.uniforms.uFresnelScale.value=.9,x.material.uniforms.uTroughTransition.value=.4,y.material.uniforms.uCausticsColor.value=new Fe(14148348),y.material.uniforms.uCausticsScale.value=6,y.material.uniforms.uCausticsSpeed.value=.2,o.add(new Hs(16777215,.9));function b(){const w=f.getElapsedTime();x.update(w),y.update(w),l.render(o,u),requestAnimationFrame(b)}return b(),window.addEventListener("resize",()=>{u.aspect=window.innerWidth/window.innerHeight,u.updateProjectionMatrix(),l.setSize(window.innerWidth,window.innerHeight)}),()=>
4178{l&&(l.dispose(),e.current&&e.current.removeChild(l.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})};return m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`scroll-smooth pond-text-content w-full h-full m-0 p-0 font-shree transition-opacity duration-200 ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"w-[88vw] md:w-[60vw]  mx-auto mb-8 overflow-hidden rounded-b-[30px] rounded-t-[30px] md:rounded-b-[30px] md:rounded-t-[0px]",children:m.jsx("img",{src:Op,className:"w-full h-full object-cover ",alt:"Homepage"})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"UAEM-UM Website"}),m.jsx("div",{className:"flex gap-5 mt-1",children:m.jsx("button",{className:"mb-5",onClick:()=>window.location.href="https://public.websites.umich.edu/~uaem/",children:m.jsxs("svg",{width:"30",height:"30",className:"text-gray-400 hover:text-blue-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{clipPath:"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.286 5.57143V13",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})})})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"React, React Router, Framer Motion, JavaScript, React Intersection Observer, TailwindCSS"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsx("p",{className:"whitespace-pre-line leading-relaxed",children:"As the web developer and the club vice president, this is the website I designed for my health advocacy club (UAEM) at my university that showcases the club’s mission, history, members, projects, and contact resources"})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"KEY FEATURES"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsx("li",{children:"Project timelines with tooltip interaction"}),m.jsx("li",{children:"Use Framer Motion to provide smooth entrance effects such as fade-ins and bottom-up animations"}),m.jsx("li",{children:"Trigger animations on content entering viewport and staggered animation sequences to avoid content clutter"})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"ABOUT PAGE"}),m.jsx("img",{src:XN,className:"mb-4"}),m.jsx("img",{src:qN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"PROJECTS - AAP"}),m.jsx("img",{src:YN,className:"mb-4"}),m.jsx("img",{src:ZN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"PROJECTS - OUTREACH"}),m.jsx("img",{src:KN,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"MEMBERS PAGE"}),m.jsx("img",{src:QN,className:"w-full h-full object-cover"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"CONTACT PAGE"}),m.jsx("img",{src:$N})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}const eL="/assets/mtrf1-dwU9cVx4.png",tL="/assets/mtrf2-CNnFy_1S.png",nL="/assets/mtrf3-BSdUJw6h.png",iL="/assets/mtrf4-GRBXC9Dj.png",sL="/assets/mtrf5-D0htohvi.png",aL="/assets/mtrf6-D3gBePVn.png";function rL({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const o=new zs,l=new Gs({antialias:!0});l.setPixelRatio(window.devicePixelRatio),l.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(l.domElement)&&e.current.appendChild(l.domElement);const u=new mn(60,window.innerWidth/window.innerHeight,.1,100);u.position.set(0,2,0),u.lookAt(0,0,0);const f=new ks,d=new Vs;d.setPath("/threejs-water-shader/");const h=d.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),g=new js().load("/threejs-water-shader/ocean_floor.png");o.background=h,o.environment=h;const v={size:512},x=new Ws({environmentMap:h,resolution:v.size});o.add(x);const y=new Xs({texture:g});o.add(y),x.material.uniforms.uWavesAmplitude.value=.06,x.material.uniforms.uWavesFrequency.value=.04,x.material.uniforms.uWavesIterations.value=1,x.material.uniforms.uWavesSpeed.value=.1,x.material.uniforms.uTroughColor.value=new Fe(793917),x.material.uniforms.uSurfaceColor.value=new Fe(2839444),x.material.uniforms.uPeakColor.value=new Fe(7643122),x.material.uniforms.uOpacity.value=.6,x.material.uniforms.uFresnelPower.value=.3,x.material.uniforms.uFresnelScale.value=.9,x.material.uniforms.uTroughTransition.value=.4,y.material.uniforms.uCausticsColor.value=new Fe(14148348),y.material.uniforms.uCausticsScale.value=6,y.material.uniforms.uCausticsSpeed.value=.2,o.add(new Hs(16777215,.9));function b(){const w=f.getElapsedTime();x.update(w),y.update(w),l.render(o,u),requestAnimationFrame(b)}return b(),window.addEventListener("resize",()=>{u.aspect=window.innerWidth/window.innerHeight,u.updateProjectionMatrix(),l.setSize(window.innerWidth,window.innerHeight)}),()=>
4178{l&&(l.dispose(),e.current&&e.current.removeChild(l.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})};return m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"w-[88vw] md:w-[60vw]  mx-auto mb-8 overflow-hidden rounded-b-[30px] rounded-t-[30px] md:rounded-b-[30px] md:rounded-t-[0px]",children:m.jsx("img",{src:eL,className:"w-full h-full object-cover ",alt:"Homepage"})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"mTRF with PSI"}),m.jsx("div",{className:"flex gap-5 mt-1"})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"MATLAB, mTRF, ECoG signal processing, band-pass filter"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsxs("p",{className:"whitespace-pre-line leading-relaxed",children:["Modeling neural responses to speech with mTRF analysis and phoneme selectivity measures to reveal how the brain encodes distinct speech sounds.",m.jsx("br",{})," My work as a research intern in Flinker Lab at New York University."]})]}),m.jsx("img",{src:tL,className:"w-[40vw] mx-auto"}),m.jsx("div",{className:"flex justify-center items-center ",children:m.jsx("svg",{width:"40",height:"46",viewBox:"0 0 124 46",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("g",{transform:"rotate(90, 62, 23)",children:m.jsx("path",{d:"M3 20C1.34315 20 0 21.3431 0 23C0 24.6569 1.34315 26 3 26V23V20ZM123.121 25.1213C124.293 23.9497 124.293 22.0503 123.121 20.8787L104.029 1.7868C102.858 0.615224 100.958 0.615224 99.7868 1.7868C98.6152 2.95837 98.6152 4.85786 99.7868 6.02944L116.757 23L99.7868 39.9706C98.6152 41.1421 98.6152 43.0416 99.7868 44.2132C100.958 45.3848 102.858 45.3848 104.029 44.2132L123.121 25.1213ZM3 23V26H121V23V20H3V23Z",fill:"white"})})})}),m.jsx("img",{src:nL,className:"mt-1 w-[40vw] mx-auto"}),m.jsxs("section",{className:"my-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"WHY THIS MATTERS"}),m.jsx("p",{className:"whitespace-pre-line leading-relaxed",children:"Characterizing how distinct brain areas respond to different phonemes (smallest unit of speech e.g. b, a, g) is essential for building accurate speech synthesizers  that translate neural signal directly into speech for those with impaired speech."})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"DATASET"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Source:"})," Auditory Repetition Task ECoG recording from single patient."]}),m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Content:"})," 107 unique words heard and verbally repeated by patient"]}),m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Neural Model:"})," Common Average Referenced and high-band pass (70-150) filtered electrodes."]}),m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Stimulus Model:"})," Phoneme timing extracted using MFA."]})]})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"METHODS & FINDINGS"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:[m.jsx("span",{children:"Conducted Multivariate Temporal Response Function (mTRF) analysis using MFA-extracted phoneme timing and preprocessed neural signal"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:["mTRF identifies ",m.
4178jsx("span",{className:"text-gray-100 font-shree-bold",children:"how well actual neural signals can be predicted by stimulus model (phoneme/word occurrence)"})]}),m.jsx("li",{children:"used regularization to find optimal parameters for mTRF"})]})]}),m.jsx("li",{children:"Map mTRF r-value (higher=better predicted) from mTRF results onto T1 + MNI brain for visualization"}),m.jsxs("li",{children:[m.jsxs("span",{children:["Developed ",m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"phoneme-based neural response matrix from actual neural signals + generated phoneme selectivity index"})," based on this paper"]}),m.jsx("ul",{className:"list-disc pl-6 space-y-2 ",children:m.jsxs("li",{children:["these insights are ",m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"important for tuning speech synthesizers for live and accurate neural-to-speech transcription"})]})})]})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"mTRF WEIGHTS"}),m.jsxs("div",{className:"flex gap-4 w-full",children:[m.jsx("img",{src:iL,className:"w-3/5 mb-4"}),m.jsx("img",{src:sL,className:"w-2/5 mb-4"})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"NEURAL RESPONSE MATRIX"}),m.jsx("img",{src:aL,className:"mb-4"})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}const oL="/assets/viseme1-Cu4NzIUl.png",lL="/assets/viseme2-kALTyGxW.png",cL="/assets/viseme3-CsUMWJcw.png",uL="/assets/viseme4-cRgF97tD.png",fL="/assets/viseme5-BY0x1A3R.png",dL="/assets/viseme6-5SyAcwkv.png";function hL({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const o=new zs,l=new Gs({antialias:!0});l.setPixelRatio(window.devicePixelRatio),l.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(l.domElement)&&e.current.appendChild(l.domElement);const u=new mn(60,window.innerWidth/window.innerHeight,.1,100);u.position.set(0,2,0),u.lookAt(0,0,0);const f=new ks,d=new Vs;d.setPath("/threejs-water-shader/");const h=d.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),g=new js().load("/threejs-water-shader/ocean_floor.png");o.background=h,o.environment=h;const v={size:512},x=new Ws({environmentMap:h,resolution:v.size});o.add(x);const y=new Xs({texture:g});o.add(y),x.material.uniforms.uWavesAmplitude.value=.06,x.material.uniforms.uWavesFrequency.value=.04,x.material.uniforms.uWavesIterations.value=1,x.material.uniforms.uWavesSpeed.value=.1,x.material.uniforms.uTroughColor.value=new Fe(793917),x.material.uniforms.uSurfaceColor.value=new Fe(2839444),x.material.uniforms.uPeakColor.value=new Fe(7643122),x.material.uniforms.uOpacity.value=.6,x.material.uniforms.uFresnelPower.value=.3,x.material.uniforms.uFresnelScale.value=.9,x.material.uniforms.uTroughTransition.value=.4,y.material.uniforms.uCausticsColor.value=new Fe(14148348),y.material.uniforms.uCausticsScale.value=6,y.material.uniforms.uCausticsSpeed.value=.2,o.add(new Hs(16777215,.9));function b(){const w=f.getElapsedTime();x.update(w),y.update(w),l.render(o,u),requestAnimationFrame(b)}return b(),window.addEventListener("resize",()=>{u.aspect=window.innerWidth/window.innerHeight,u.updateProjectionMatrix(),l.setSize(window.innerWidth,window.innerHeight)}),()=>{l&&(l.dispose(),e.current&&e.current.removeChild(l.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})};return m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"w-[88vw] md:w-[60vw]  mx-auto mb-8 overflow-hidden rounded-b-[30px] rounded-t-[30px] md:rounded-b-[30px] md:rounded-t-[0px]",children:m.jsx("img",{src:Lf,className:"w-full h-full object-cover ",alt:"Homepage"})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"Phoneme-to-Viseme"}),m.jsx("div",{className:"flex gap-5 mt-1",children:m.jsx("button",{className:"mb-5",onClick:()=>window.location.href="https://docs.google.com/presentation/d/1rjI4psxyUApx-X_cnuuoOcEVVErRv_wNh0ukSAGtwfY/edit?usp=sharing/",children:m.jsxs("svg",{width:"30",height:"30",className:"text-gray-400 hover:text-blue-300",viewBox:"0 0 52 52",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[m.jsxs("g",{"clip-path":"url(#clip0_95_44)",children:[m.jsx("path",{d:"M35.286 39V46.4286C35.286 47.4137 34.8947 48.3584 34.1981 49.055C33.5015 49.7515 32.5568 50.1429 31.5717 50.1429H5.57171C4.58662 50.1429 3.64187 49.7515 2.94531 49.055C2.24875 48.3584 1.85742 47.4137 1.85742 46.4286V5.57143C1.85742 4.58634 2.24875 3.64159 2.94531 2.94503C3.64187 2.24847 4.58662 1.85714 5.57171 1.85714H31.5717C32.5568 1.85714 33.5015 2.24847 34.1981 2.94503C34.8947 3.64159 35.286 4.58634 35.28
41786 5.57143V13",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M24.1436 26H50.1436",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"}),m.jsx("path",{d:"M42.7148 18.5714L50.1434 26L42.7148 33.4286",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"})]}),m.jsx("defs",{children:m.jsx("clipPath",{id:"clip0_95_44",children:m.jsx("rect",{width:"52",height:"52",fill:"white"})})})]})})})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2023-2024"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"MATLAB, PCA, UMAP, seqNMF"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsxs("p",{className:"whitespace-pre-line leading-relaxed",children:["A data-driven phoneme-to-viseme mapping using lip landmark data and dimensionality reduction techniques .",m.jsx("br",{})," My work as a research assistant in the Multisensory Perception Lab at University of Michigan."]})]}),m.jsxs("div",{className:"flex",children:[m.jsx("img",{src:oL,className:"w-[20vw] mx-auto"}),m.jsx("div",{className:"flex justify-center items-center ",children:m.jsx("svg",{width:"40",height:"46",viewBox:"0 0 124 46",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{d:"M3 20C1.34315 20 0 21.3431 0 23C0 24.6569 1.34315 26 3 26V23V20ZM123.121 25.1213C124.293 23.9497 124.293 22.0503 123.121 20.8787L104.029 1.7868C102.858 0.615224 100.958 0.615224 99.7868 1.7868C98.6152 2.95837 98.6152 4.85786 99.7868 6.02944L116.757 23L99.7868 39.9706C98.6152 41.1421 98.6152 43.0416 99.7868 44.2132C100.958 45.3848 102.858 45.3848 104.029 44.2132L123.121 25.1213ZM3 23V26H121V23V20H3V23Z",fill:"white"})})}),m.jsx("img",{src:lL,className:"mt-1 w-[20vw] mx-auto"})]}),m.jsxs("section",{className:"my-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"WHY THIS MATTERS"}),m.jsx("p",{className:"whitespace-pre-line leading-relaxed",children:"Understanding how phonemes (sounds) map to visemes (lip shapes when speaking) ensures higher performance in natural speech recognition and decoding for BCI and human-computer interfaces."})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"DATASET"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Source:"})," TCD-TIMIT audiovisual speech corpus."]}),m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Content:"})," 378 unique sentences per speaker, recorded in separate videos"]}),m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Data Extraction:"})," OpenFace used to detect facial landmarks."]}),m.jsxs("li",{children:[m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"Focus:"})," 20 lip landmarks (points 48–67)."]})]})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"METHODS & FINDINGS"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:["Conducted Principle Component Analysis (PCA) to ",m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"simplify continuous lip movement into a series of discrete trajectories"})]}),m.jsx("li",{children:"Identified what series of discrete lip trajectories occur when pronouncing each phoneme"}),m.jsxs("li",{children:[m.jsxs("span",{children:["Developed ",m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"a mapping from phoneme (audio) to visual lip movements"})," with distinct parameters"]}),m.jsx("ul",{className:"list-disc pl-6 space-y-2 ",children:m.jsx("li",{children:m.jsx("span",{className:"text-gray-100 font-shree-bold",children:"inputting these parameters allows for better performance in lip reading and speech decoding ML"})})})]})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"SIMPLIFIED LIP TRAJECTORY"}),m.jsx("img",{src:cL,className:" mb-4 mx-auto"}),m.jsx("img",{src:uL,className:"w-[40vw] mb-4 mx-auto"})]}),m.jsxs("div",{className:"mb-5 ",children:[m.jsx("p",{className:"text-center mb-4",children:"PCA SPACE"}),m.jsxs("div",{className:"flex w-full gap-10 mx-auto",children:[m.jsx("img",{src:fL,className:"w-1/2  mb-4"}),m.jsx("img",{src:dL,className:"w-2/5 h-1/5 mb-4"})]}),m.jsx("img",{src:Lf,className:"mb-4 "})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}var nc={},Ts={},kl={},Yx;function pL(){if(Yx)return kl;
4178Yx=1,Object.defineProperty(kl,"__esModule",{value:!0}),kl.useCanvasIdentifier=void 0;var n=Bs(),e=0,t="react-unity-webgl-canvas",a=function(o){var l=(0,n.useState)(0),u=l[0],f=l[1],d=(0,n.useCallback)(function(){f(function(g){return g+1})},[]);if(o!==void 0)return[o,d];var h=(0,n.useMemo)(function(){return[t,e].join("-")},[u]);return[h,d]};return kl.useCanvasIdentifier=a,kl}var Gl={},Wl={},Zx;function Cy(){return Zx||(Zx=1,Object.defineProperty(Wl,"__esModule",{value:!0}),Wl.isBrowserEnvironment=void 0,Wl.isBrowserEnvironment=typeof window<"u"&&typeof document<"u"),Wl}var Kx;function mL(){if(Kx)return Gl;Kx=1,Object.defineProperty(Gl,"__esModule",{value:!0}),Gl.useUnityLoader=void 0;var n=Bs(),e=Cy(),t=function(a){var o=(0,n.useState)("Loading"),l=o[0],u=o[1];return(0,n.useEffect)(function(){if(e.isBrowserEnvironment!==!1){if(a===null){u("Idle");return}var f=window.document.querySelector('script[src="'.concat(a,'"]'));f===null?(f=window.document.createElement("script"),f.type="text/javascript",f.src=a,f.async=!0,f.setAttribute("data-status","loading"),window.document.body.appendChild(f),f.addEventListener("load",function(){return f?.setAttribute("data-status","loaded")}),f.addEventListener("error",function(){return f?.setAttribute("data-status","error")})):u(f.getAttribute("data-status")==="loaded"?"Loaded":"Error");var d=function(h){return u(h.type==="load"?"Loaded":"Error")};return f.addEventListener("load",d),f.addEventListener("error",d),function(){f!==null&&(f.removeEventListener("load",d),f.removeEventListener("error",d),f.remove())}}},[a]),l};return Gl.useUnityLoader=t,Gl}var Qx;function gL(){if(Qx)return Ts;Qx=1;var n=Ts&&Ts.__awaiter||function(u,f,d,h){function g(v){return v instanceof d?v:new d(function(x){x(v)})}return new(d||(d=Promise))(function(v,x){function y(M){try{w(h.next(M))}catch(S){x(S)}}function b(M){try{w(h.throw(M))}catch(S){x(S)}}function w(M){M.done?v(M.value):g(M.value).then(y,b)}w((h=h.apply(u,f||[])).next())})},e=Ts&&Ts.__generator||function(u,f){var d={label:0,sent:function(){if(v[0]&1)throw v[1];return v[1]},trys:[],ops:[]},h,g,v,x=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return x.next=y(0),x.throw=y(1),x.return=y(2),typeof Symbol=="function"&&(x[Symbol.iterator]=function(){return this}),x;function y(w){return function(M){return b([w,M])}}function b(w){if(h)throw new TypeError("Generator is already executing.");for(;x&&(x=0,w[0]&&(d=0)),d;)try{if(h=1,g&&(v=w[0]&2?g.return:w[0]?g.throw||((v=g.return)&&v.call(g),0):g.next)&&!(v=v.call(g,w[1])).done)return v;switch(g=0,v&&(w=[w[0]&2,v.value]),w[0]){case 0:case 1:v=w;break;case 4:return d.label++,{value:w[1],done:!1};case 5:d.label++,g=w[1],w=[0];continue;case 7:w=d.ops.pop(),d.trys.pop();continue;default:if(v=d.trys,!(v=v.length>0&&v[v.length-1])&&(w[0]===6||w[0]===2)){d=0;continue}if(w[0]===3&&(!v||w[1]>v[0]&&w[1]<v[3])){d.label=w[1];break}if(w[0]===6&&d.label<v[1]){d.label=v[1],v=w;break}if(v&&d.label<v[2]){d.label=v[2],d.ops.push(w);break}v[2]&&d.ops.pop(),d.trys.pop();continue}w=f.call(u,d)}catch(M){w=[6,M],g=0}finally{h=v=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}};Object.defineProperty(Ts,"__esModule",{value:!0}),Ts.Unity=void 0;var t=Bs(),a=pL(),o=mL(),l=(0,t.forwardRef)(function(u,f){var d=(0,t.useState)(null),h=d[0],g=d[1],v=(0,t.useState)(null),x=v[0],y=v[1],b=(0,a.useCanvasIdentifier)(u.id),w=b[0],M=b[1],S=(0,o.useUnityLoader)(u.unityProvider.loaderUrl),N=(0,t.useCallback)(function(T){u.unityProvider.setLoadingProgression(T),T===1&&u.unityProvider.setIsLoaded(!0)},[u.unityProvider]);return(0,t.useEffect)(function(){var T=function(){return n(void 0,void 0,void 0,function(){var P,I,F,V,U;return e(this,function(L){switch(L.label){case 0:if(!h||x||S!=="Loaded")return[2];console.log("React Unity WebGL: Initializing Unity instance..."),u.unityProvider.setUnityInstance(null),y(null),u.unityProvider.setLoadingProgression(0),(U=(V=u.unityProvider).setIsLoaded)===null||U===void 0||U.call(V,!1),u.unityProvider.setInitialisationError(void 0),M(),P={companyName:u.unityProvider.companyName,productName:u.unityProvider.productName,productVersion:u.unityProvider.productVersion,dataUrl:u.unityProvider.dataUrl,frameworkUrl:u.unityProvider.frameworkUrl,code
4178Url:u.unityProvider.codeUrl,workerUrl:u.unityProvider.workerUrl,memoryUrl:u.unityProvider.memoryUrl,symbolsUrl:u.unityProvider.symbolsUrl,streamingAssetsUrl:u.unityProvider.streamingAssetsUrl,devicePixelRatio:u.devicePixelRatio,webglContextAttributes:u.unityProvider.webglContextAttributes,cacheControl:u.unityProvider.cacheControl,autoSyncPersistentDataPath:u.unityProvider.autoSyncPersistentDataPath,matchWebGLToCanvasSize:u.matchWebGLToCanvasSize,disabledCanvasEvents:u.disabledCanvasEvents},Object.keys(P).forEach(function(z){(P[z]===null||P[z]===void 0)&&delete P[z]}),L.label=1;case 1:return L.trys.push([1,3,,4]),[4,window.createUnityInstance(h,P,N)];case 2:return I=L.sent(),y(I),u.unityProvider.setUnityInstance(I),[3,4];case 3:return F=L.sent(),console.error("React Unity WebGL: Error initializing Unity instance:",F),u.unityProvider.setInitialisationError(F),[3,4];case 4:return[2]}})})},R=function(){return n(void 0,void 0,void 0,function(){var P,I,F;return e(this,function(V){switch(V.label){case 0:return!x||!h?[2]:(console.log("React Unity WebGL: Detaching Unity instance..."),u.unityProvider.setUnityInstance(null),y(null),u.unityProvider.setLoadingProgression(0),(F=(I=u.unityProvider).setIsLoaded)===null||F===void 0||F.call(I,!1),u.unityProvider.setInitialisationError(void 0),P=document.createElement("canvas"),P.id=h.id,P.setAttribute("react-unity-webgl-role","cleanup"),P.style.display="none",document.body.appendChild(P),x.Module.canvas=P,y(null),[4,x.Quit()]);case 1:return V.sent(),document.body.removeChild(P),[2]}})})};return T(),function(){R()}},[h,x,S,u.unityProvider]),(0,t.useImperativeHandle)(f,function(){return h}),(0,t.createElement)("canvas",{ref:g,id:w,style:u.style,className:u.className,tabIndex:u.tabIndex})});return Ts.Unity=l,Ts}var Xl={},lr={},$x;function vL(){if($x)return lr;$x=1;var n=lr&&lr.__spreadArray||function(u,f,d){if(d||arguments.length===2)for(var h=0,g=f.length,v;h<g;h++)(v||!(h in f))&&(v||(v=Array.prototype.slice.call(f,0,h)),v[h]=f[h]);return u.concat(v||Array.prototype.slice.call(f))};Object.defineProperty(lr,"__esModule",{value:!0}),lr.useEventSystem=void 0;var e=Bs(),t=Cy(),a=[],o=function(u){for(var f=[],d=1;d<arguments.length;d++)f[d-1]=arguments[d];var h=void 0;return a.forEach(function(g){h=g.apply(void 0,n([u],f,!1))}),h};t.isBrowserEnvironment===!0&&(window.dispatchReactUnityEvent=o);var l=function(){var u=(0,e.useRef)([]),f=(0,e.useCallback)(function(g,v){u.current=n(n([],u.current,!0),[{eventName:g,callback:v}],!1)},[u]),d=(0,e.useCallback)(function(g,v){u.current=u.current.filter(function(x){return x.eventName!==g&&x.callback!==v})},[u]),h=(0,e.useCallback)(function(g){for(var v=[],x=1;x<arguments.length;x++)v[x-1]=arguments[x];var y=u.current.find(function(b){return b.eventName===g});if(!(typeof y>"u"))return y.callback.apply(y,v)},[u]);return(0,e.useEffect)(function(){return a.push(h),function(){a.splice(a.indexOf(h),1)}},[h]),{addEventListener:f,removeEventListener:d}};return lr.useEventSystem=l,lr}var Jx;function xL(){if(Jx)return Xl;Jx=1,Object.defineProperty(Xl,"__esModule",{value:!0}),Xl.useUnityContext=void 0;var n=Bs(),e=vL(),t=function(a){var o=(0,n.useState)(null),l=o[0],u=o[1],f=(0,n.useState)(0),d=f[0],h=f[1],g=(0,n.useState)(!1),v=g[0],x=g[1],y=(0,n.useState)(),b=y[0],w=y[1],M=(0,e.useEventSystem)(),S=(0,n.useRef)({companyName:a.companyName,productName:a.productName,productVersion:a.productVersion,codeUrl:a.codeUrl,dataUrl:a.dataUrl,frameworkUrl:a.frameworkUrl,loaderUrl:a.loaderUrl,memoryUrl:a.memoryUrl,symbolsUrl:a.symbolsUrl,streamingAssetsUrl:a.streamingAssetsUrl,workerUrl:a.workerUrl,webglContextAttributes:a.webglContextAttributes,cacheControl:a.cacheControl,autoSyncPersistentDataPath:a.autoSyncPersistentDataPath,setUnityInstance:u,setLoadingProgression:h,setIsLoaded:x,setInitialisationError:w}),N=(0,n.useCallback)(function(V){return l?.SetFullscreen(V?1:0)},[l]),T=(0,n.useCallback)(function(){var V;return(V=l?.Module.canvas)===null||V===void 0?void 0:V.requestPointerLock()},[l]),R=(0,n.useCallback)(function(V,U,L){return l?.SendMessage(V,U,L)},[l]),P=(0,n.useCallback)(function(V,U){var L;return(L=l?.Module.canvas)===null||L===void 0?void 0:L.toDataURL(V,U)},[l]),I=(0,n.useCallback)(function(){var V;return(V=l?.Quit())!==null&&V!==void 0?V:Promise.reject()},[l]),F=(0,n.useCallback)(function(){var V;return(V=l?.GetMetricsInfo)===null||V===void 0?void 0:V.call(l)},[l]);return{unityProvider:S.current,loadingProgression:d,isLoaded:v,initialisationError:b,requestFullscreen:N,requestPointerLock:T,sendMessage:R,takeScreenshot:P,unload:I,getMetricsInfo:F,addEventListener:M.addEventListener,removeEventListener:M.removeEventListener,UNSAFE__unityInstance:l}};return Xl.useUnityContext=t,Xl}var ql={},e_;function _L(){if(e_)return ql;
4178e_=1,Object.defineProperty(ql,"__esModule",{value:!0}),ql.useUnityMetricsInfo=void 0;var n=Bs(),e=function(t,a){var o=(0,n.useState)({}),l=o[0],u=o[1];return(0,n.useEffect)(function(){var f=setInterval(function(){var d=t();typeof d>"u"||u(d)},a.interval||1e3);return function(){clearInterval(f)}},[t,a.interval]),l};return ql.useUnityMetricsInfo=e,ql}var t_;function yL(){return t_||(t_=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.useUnityMetricsInfo=n.useUnityContext=n.Unity=void 0;var e=gL();Object.defineProperty(n,"Unity",{enumerable:!0,get:function(){return e.Unity}});var t=xL();Object.defineProperty(n,"useUnityContext",{enumerable:!0,get:function(){return t.useUnityContext}});var a=_L();Object.defineProperty(n,"useUnityMetricsInfo",{enumerable:!0,get:function(){return a.useUnityMetricsInfo}})})(nc)),nc}var Uo=yL();const SL="/assets/pic1-J0FDUeRp.png",ML="/assets/pic2-BOd6tm2g.png",bL="/assets/pic3-DGHIxDmy.png";function EL({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const v=new zs,x=new Gs({antialias:!0});x.setPixelRatio(window.devicePixelRatio),x.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(x.domElement)&&e.current.appendChild(x.domElement);const y=new mn(60,window.innerWidth/window.innerHeight,.1,100);y.position.set(0,2,0),y.lookAt(0,0,0);const b=new ks,w=new Vs;w.setPath("/threejs-water-shader/");const M=w.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),S=new js().load("/threejs-water-shader/ocean_floor.png");v.background=M,v.environment=M;const N={size:512},T=new Ws({environmentMap:M,resolution:N.size});v.add(T);const R=new Xs({texture:S});v.add(R),T.material.uniforms.uWavesAmplitude.value=.06,T.material.uniforms.uWavesFrequency.value=.04,T.material.uniforms.uWavesIterations.value=1,T.material.uniforms.uWavesSpeed.value=.1,T.material.uniforms.uTroughColor.value=new Fe(793917),T.material.uniforms.uSurfaceColor.value=new Fe(2839444),T.material.uniforms.uPeakColor.value=new Fe(7643122),T.material.uniforms.uOpacity.value=.6,T.material.uniforms.uFresnelPower.value=.3,T.material.uniforms.uFresnelScale.value=.9,T.material.uniforms.uTroughTransition.value=.4,R.material.uniforms.uCausticsColor.value=new Fe(14148348),R.material.uniforms.uCausticsScale.value=6,R.material.uniforms.uCausticsSpeed.value=.2,v.add(new Hs(16777215,.9));function P(){const I=b.getElapsedTime();T.update(I),R.update(I),x.render(v,y),requestAnimationFrame(P)}return P(),window.addEventListener("resize",()=>{y.aspect=window.innerWidth/window.innerHeight,y.updateProjectionMatrix(),x.setSize(window.innerWidth,window.innerHeight)}),()=>{x&&(x.dispose(),e.current&&e.current.removeChild(x.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})},{unityProvider:o}=Uo.useUnityContext({loaderUrl:"/metroid/Build/metroid.loader.js",dataUrl:"metroid/Build/metroid.data",frameworkUrl:"/metroid/Build/metroid.framework.js",codeUrl:"metroid/Build/metroid.wasm"}),[l,u]=G.useState(!1),[f,d]=G.useState(!1),h=G.useRef(null),g=()=>{h.current&&(f?(document.exitFullscreen?.().catch(()=>{}),d(!1)):(h.current.requestFullscreen?.().catch(()=>{}),d(!0)))};return G.useEffect(()=>{const v=y=>{y.key==="Escape"&&f&&(document.exitFullscreen?.().catch(()=>{}),d(!1))},x=()=>{document.fullscreenElement||d(!1)};return document.addEventListener("keydown",v),document.addEventListener("fullscreenchange",x),()=>{document.removeEventListener("keydown",v),document.removeEventListener("fullscreenchange",x)}},[f]),m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"unity-container",children:l?m.jsx(m.Fragment,{children:m.jsxs("div",{ref:h,className:`${f?"fixed inset-0 z-[999]":"mx-auto w-[78vw] md:w-[60vw] rounded-[30px] mb-8 md:rounded-b-[30px] md:rounded-t-[0px]"} relative`,children:[m.jsx(Uo.Unity,{unityProvider:o,className:`w-full h-full ${f?"":"rounded-[30px] md:rounded-b-[30px] md:rounded-t-[0px]"}`}),m.jsx("button",{onClick:g,className:`absolute p-2 bg-black bg-opacity-60 hover:bg-opacity-80 text-white rounded transition ${f?"bottom-6 right-6":"bottom-4 right-4"}`,title:f?"Exit Fullscreen":"Toggle Fullscreen",children:m.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"})})})]})}):m.jsxs("div",{className:"start-screen mt-0 pt-0 relative flex items-center justify-center mx-auto w-[78vw] md:w-[60vw] h-[48vw] md:h-[30vw] rounded-[30px] mb-8 md:rounded-b-[30px] md:rounded-t-[0px] cursor-pointer overflow-hidden",onClick:()=>
4178u(!0),children:[m.jsx("img",{src:sm,alt:"Homepage Background",className:"absolute inset-0 w-full h-full object-cover brightness-50","aria-hidden":"true"}),m.jsx("div",{className:"relative z-10 flex flex-col items-center",children:m.jsx("button",{className:" cursor-pointer px-6 py-2 mx-auto my-auto border rounded-lg border-white text-white hover:bg-white hover:text-black font-semibold transition mb-2",children:"Start"})})]})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"Metroid NES Remake"}),m.jsx("div",{className:"flex gap-5 mt-1"})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"Unity, C#"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsxs("p",{className:"whitespace-pre-line leading-relaxed",children:["My first full project in Unity! A remake of the original Metroid NES game with an additional custom feature of inverting gravity.",m.jsx("br",{}),"I worked in a team of three and was responsible for building the player movements, shooting mechanics, collectables, and some of the enemie mechanics."]})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"KEY FEATURES"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsx("li",{children:"Implemented smooth and responsive player movement mechanics"}),m.jsx("li",{children:"Designed collectibles including power-ups and health items to enhance gameplay"}),m.jsx("li",{children:"Programmed enemy behaviors and attack patterns for dynamic challenge"}),m.jsx("li",{children:"Integrated gravity inversion feature to add a unique twist to traditional platforming"})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"SKREE ENEMY"}),m.jsx("img",{src:ML,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"INVERT GRAVITY"}),m.jsx("img",{src:bL,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"ROOM TRANSITION"}),m.jsx("img",{src:SL,className:"mb-4"})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}const wL="/assets/level2-lXaLnAF_.png",TL="/assets/level4-CvCW3pdE.png";function CL({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const v=new zs,x=new Gs({antialias:!0});x.setPixelRatio(window.devicePixelRatio),x.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(x.domElement)&&e.current.appendChild(x.domElement);const y=new mn(60,window.innerWidth/window.innerHeight,.1,100);y.position.set(0,2,0),y.lookAt(0,0,0);const b=new ks,w=new Vs;w.setPath("/threejs-water-shader/");const M=w.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),S=new js().load("/threejs-water-shader/ocean_floor.png");v.background=M,v.environment=M;const N={size:512},T=new Ws({environmentMap:M,resolution:N.size});v.add(T);const R=new Xs({texture:S});v.add(R),T.material.uniforms.uWavesAmplitude.value=.06,T.material.uniforms.uWavesFrequency.value=.04,T.material.uniforms.uWavesIterations.value=1,T.material.uniforms.uWavesSpeed.value=.1,T.material.uniforms.uTroughColor.value=new Fe(793917),T.material.uniforms.uSurfaceColor.value=new Fe(2839444),T.material.uniforms.uPeakColor.value=new Fe(7643122),T.material.uniforms.uOpacity.value=.6,T.material.uniforms.uFresnelPower.value=.3,T.material.uniforms.uFresnelScale.value=.9,T.material.uniforms.uTroughTransition.value=.4,R.material.uniforms.uCausticsColor.value=new Fe(14148348),R.material.uniforms.uCausticsScale.value=6,R.material.uniforms.uCausticsSpeed.value=.2,v.add(new Hs(16777215,.9));function P(){const I=b.getElapsedTime();T.update(I),R.update(I),x.render(v,y),requestAnimationFrame(P)}return P(),window.addEventListener("resize",()=>{y.aspect=window.innerWidth/window.innerHeight,y.updateProjectionMatrix(),x.setSize(window.innerWidth,window.innerHeight)}),()=>{x&&(x.dispose(),e.current&&e.current.removeChild(x.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})},{unityProvider:o}=Uo.useUnityContext({loaderUrl:"/Flipped/Build/Flipped.loader.js",dataUrl:"Flipped/Build/Flipped.data",frameworkUrl:"/Flipped/Build/Flipped.framework.js",code
4178Url:"Flipped/Build/Flipped.wasm"}),[l,u]=G.useState(!1),[f,d]=G.useState(!1),h=G.useRef(null),g=()=>{h.current&&(f?(document.exitFullscreen?.().catch(()=>{}),d(!1)):(h.current.requestFullscreen?.().catch(()=>{}),d(!0)))};return G.useEffect(()=>{const v=y=>{y.key==="Escape"&&f&&(document.exitFullscreen?.().catch(()=>{}),d(!1))},x=()=>{document.fullscreenElement||d(!1)};return document.addEventListener("keydown",v),document.addEventListener("fullscreenchange",x),()=>{document.removeEventListener("keydown",v),document.removeEventListener("fullscreenchange",x)}},[f]),m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"unity-container",children:l?m.jsx(m.Fragment,{children:m.jsxs("div",{ref:h,className:`${f?"fixed inset-0 z-[999]":"mx-auto w-[78vw] md:w-[60vw] rounded-[30px] mb-8 md:rounded-b-[30px] md:rounded-t-[0px]"} relative`,children:[m.jsx(Uo.Unity,{unityProvider:o,className:`w-full h-full ${f?"":"rounded-[30px] md:rounded-b-[30px] md:rounded-t-[0px]"}`}),m.jsx("button",{onClick:g,className:`absolute p-2 bg-black bg-opacity-60 hover:bg-opacity-80 text-white rounded transition ${f?"bottom-6 right-6":"bottom-4 right-4"}`,title:f?"Exit Fullscreen":"Toggle Fullscreen",children:m.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"})})})]})}):m.jsxs("div",{className:"start-screen mt-0 pt-0 relative flex items-center justify-center mx-auto w-[78vw] md:w-[60vw] h-[48vw] md:h-[30vw] rounded-[30px] mb-8 md:rounded-b-[30px] md:rounded-t-[0px] cursor-pointer overflow-hidden",onClick:()=>u(!0),children:[m.jsx("img",{src:Df,alt:"Homepage Background",className:"absolute inset-0 w-full h-full object-cover brightness-50","aria-hidden":"true"}),m.jsx("div",{className:"relative z-10 flex flex-col items-center",children:m.jsx("button",{className:" cursor-pointer px-6 py-2 mx-auto my-auto border rounded-lg border-white text-white hover:bg-white hover:text-black font-semibold transition mb-2",children:"Start"})})]})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"Flipped - Original game"}),m.jsx("div",{className:"flex gap-5 mt-1"})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"Unity, C#"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsx("p",{className:"whitespace-pre-line leading-relaxed",children:"A two-player collaborative platformer!"})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"KEY FEATURES"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsx("li",{children:"Innovative level designs"}),m.jsx("li",{children:"Intuitive player controls and gameplay"}),m.jsx("li",{children:"Composed original game music"})]})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"LEVEL 2"}),m.jsx("img",{src:wL,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"LEVEL 3"}),m.jsx("img",{src:Df,className:"mb-4"})]}),m.jsxs("div",{className:"mb-5",children:[m.jsx("p",{className:"text-center mb-4",children:"LEVEL 4"}),m.jsx("img",{src:TL,className:"mb-4"})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}function AL({sidebarOpen:n}){const e=G.useRef(null);G.useEffect(()=>{const v=new zs,x=new Gs({antialias:!0});x.setPixelRatio(window.devicePixelRatio),x.setSize(window.innerWidth,window.innerHeight),e.current&&!e.current.contains(x.domElement)&&e.current.appendChild(x.domElement);const y=new mn(60,window.innerWidth/window.innerHeight,.1,100);y.position.set(0,2,0),y.lookAt(0,0,0);const b=new ks,w=new Vs;w.setPath("/threejs-water-shader/");const M=w.load(["px.png","nx.png","py.png","ny.png","pz.png","nz.png"]),S=new js().load("/threejs-water-shader/ocean_floor.png");v.background=M,v.environment=M;const N={size:512},T=new Ws({environmentMap:M,resolution:N.size});v.add(T);const R=new Xs({texture:S});v.add(R),T.material.uniforms.uWavesAmplitude.value=.06,T.material.uniforms.uWavesFrequency.value=.04,T.material.uniforms.uWavesIterations.value=1,T.material.uniforms.uWavesSpeed.value=.1,T.material.uniforms.uTroughColor.value=new Fe(793917),T.material.uniforms.uSurfaceColor.value=new Fe(2839444),T.material.uniforms.uPeakColor.value=new Fe(7643122),T.material.uniforms.uOpacity.value=.6,T.material.uniforms.uFresnelPower.value=.3,T.material.uniforms.uFresnelScale.value=.9,T.material.uniforms.uTroughTransition.value=.4,R.material.uniforms.uCausticsColor.value=new Fe(14148348),R.material.uniforms.uCausticsScale.value=6,R.material.uniforms.uCausticsSpeed.value=.2,v.add(new Hs(16777215,.9));function P(){const I=b.getElapsedTime();T.update(I),R.update(I),x.render(v,y),requestAnimationFrame(P)}return P(),window.addEventListener("resize",()=>{y.aspect=window.innerWidth/window.innerHeight,y.updateProjectionMatrix(),x.setSize(window.innerWidth,window.innerHeight)}),()=>{x&&(x.dispose(),e.current&&e.current.removeChild(x.domElement))}},[]);const t=ts(),a=()=>{t("/",{state:{scrollToProjects:!0}})},{unityProvider:o}=Uo.useUnityContext({loaderUrl:"/VillageRim/Build/VillageRim.loader.js",dataUrl:"VillageRim/Build/VillageRim.data",frameworkUrl:"/VillageRim/Build/VillageRim.framework.js",code
4178Url:"VillageRim/Build/VillageRim.wasm"}),[l,u]=G.useState(!1),[f,d]=G.useState(!1),h=G.useRef(null),g=()=>{h.current&&(f?(document.exitFullscreen?.().catch(()=>{}),d(!1)):(h.current.requestFullscreen?.().catch(()=>{}),d(!0)))};return G.useEffect(()=>{const v=y=>{y.key==="Escape"&&f&&(document.exitFullscreen?.().catch(()=>{}),d(!1))},x=()=>{document.fullscreenElement||d(!1)};return document.addEventListener("keydown",v),document.addEventListener("fullscreenchange",x),()=>{document.removeEventListener("keydown",v),document.removeEventListener("fullscreenchange",x)}},[f]),m.jsxs(m.Fragment,{children:[m.jsx(Oa,{}),m.jsx("div",{className:"fixed inset-0 -z-10",children:m.jsx("div",{ref:e,className:"w-full h-full ",style:{touchAction:"none",background:"transparent"}})}),m.jsxs("div",{className:`bg-transparent text-white m-0 p-0 font-shree ${n?"opacity-40":"opacity-100"}`,children:[m.jsx("div",{className:"fixed left-5 top-12 md:left-16 md:top-10 z-50",children:m.jsx("button",{type:"button",className:"flex items-center text-xl hover:text-blue-300",onClick:a,children:m.jsx("svg",{className:"h-8 w-8 mr-2",fill:"none",stroke:"currentColor",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:m.jsx("path",{d:"M15 18l-6-6 6-6"})})})}),m.jsx("div",{className:"pt-[15vh] md:pt-0",children:m.jsx("div",{className:"unity-container",children:l?m.jsx(m.Fragment,{children:m.jsxs("div",{ref:h,className:`${f?"fixed inset-0 z-[999]":"mx-auto w-[78vw] md:w-[60vw] rounded-[30px] mb-8 md:rounded-b-[30px] md:rounded-t-[0px]"} relative`,children:[m.jsx(Uo.Unity,{unityProvider:o,className:`w-full h-full ${f?"":"rounded-[30px] md:rounded-b-[30px] md:rounded-t-[0px]"}`}),m.jsx("button",{onClick:g,className:`absolute p-2 bg-black bg-opacity-60 hover:bg-opacity-80 text-white rounded transition ${f?"bottom-6 right-6":"bottom-4 right-4"}`,title:f?"Exit Fullscreen":"Toggle Fullscreen",children:m.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"})})})]})}):m.jsxs("div",{className:"start-screen mt-0 pt-0 relative flex items-center justify-center mx-auto w-[78vw] md:w-[60vw] h-[48vw] md:h-[30vw] rounded-[30px] mb-8 md:rounded-b-[30px] md:rounded-t-[0px] cursor-pointer overflow-hidden",onClick:()=>u(!0),children:[m.jsx("img",{src:am,alt:"Homepage Background",className:"absolute inset-0 w-full h-full object-cover brightness-50","aria-hidden":"true"}),m.jsx("div",{className:"relative z-10 flex flex-col items-center",children:m.jsx("button",{className:" cursor-pointer px-6 py-2 mx-auto my-auto border rounded-lg border-white text-white hover:bg-white hover:text-black font-semibold transition mb-2",children:"Start"})})]})})}),m.jsxs("div",{className:"px-[6vw] md:px-[20vw] pb-[15vh]",children:[m.jsxs("div",{className:"flex gap-10",children:[m.jsx("h1",{className:"text-5xl mb-2",children:"Village Rim - Original Game"}),m.jsx("div",{className:"flex gap-5 mt-1"})]}),m.jsx("hr",{className:"border-t border-gray-400 mb-6"}),m.jsxs("div",{className:"flex gap-40 mb-5",children:[m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"YEAR"}),m.jsx("p",{children:"2025"})]}),m.jsxs("div",{children:[m.jsx("h2",{className:"font-bold text-xl mb-2",children:"TECH & TECHNIQUES"}),m.jsx("p",{className:"md:w-[25vw]",children:"Unity, C#"})]})]}),m.jsxs("section",{className:"mb-8",children:[m.jsx("h2",{className:"font-bold text-2xl mb-2",children:"DESCRIPTION"}),m.jsxs("p",{className:"whitespace-pre-line leading-relaxed mb-6",children:["A 2D open-world action RPG featuring exploration, combat, elemental mechanics, farming, and a fully persistent game world built with scalable Unity systems. ",m.jsx("br",{}),"Please see our amazing trailer here!"]}),m.jsx("div",{className:"relative w-full",style:{paddingBottom:"56.25%"},children:m.jsx("iframe",{className:"absolute top-0 left-0 w-full h-full rounded-lg",src:"https://www.youtube.com/embed/sUJh4b26NqM",title:"Village Rim Trailer",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})]}),m.jsxs("section",{className:"mb-10",children:[m.jsx("h2",{className:"text-2xl font-bold mb-3",children:"KEY FEATURES"}),m.jsxs("ul",{className:"list-disc pl-6 space-y-2",children:[m.jsxs("li",{children:[m.jsx("strong",{children:"OPEN-WORLD EXPLORATION:"})," Multi-island 2D environments with seamless scene transitions, above-ground and underground biomes, and dynamic world-state management."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"MODULAR COMBAT SYSTEM:"})," Melee attacks, hit detection, cooldowns, damage types, and responsive enemy feedback loops."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"ELEMENTAL INTERACTIONS:"})," Fire/water mechanics enabling burn, extinguish, and environment-dependent effects across players, enemies, and props."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"ADVANCED ENEMY & BOSS BEHAVIOR:"})," State machines, unique attack patterns, pathfinding, melee/ranged variants, and telegraphed boss mechanics."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"PLAYER SYSTEMS:"})," Movement, dodge, health/stamina, equipment, and interactions with world objects."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"INVENTORY MANAGEMENT:"})," Loot pickup, hotbar shortcuts, drag-and-drop UI, and JSON-based save/load support."]}
vendor: 7,167 bytes, line 4178
4178),m.jsxs("li",{children:[m.jsx("strong",{children:"NPC INTERACTIONS:"})," Proximity triggers, branching dialogue, quest hooks, and persistent narrative flags."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"SAVE SYSTEM:"})," Structured JSON serialization for player state, inventory, world progress, NPCs, and environment data."]}),m.jsxs("li",{children:[m.jsx("strong",{children:"VISUAL POLISH:"})," Particle effects, shaders, tilemaps, and Cinemachine-based camera behavior."]})]})]})]}),m.jsxs("div",{className:"flex flex-col items-center mb-4",children:[m.jsx("p",{className:"text-1xl mb-4",children:"You know how to find me"}),m.jsx("p",{className:"text-3xl mb-4",children:"[email protected]"}),m.jsx("p",{className:"text-sm ",children:"Built by emma "})]})]})]})}var RL="1.3.10";function Ay(n,e,t){return Math.max(n,Math.min(e,t))}function NL(n,e,t){return(1-t)*n+t*e}function LL(n,e,t,a){return NL(n,e,1-Math.exp(-t*a))}function DL(n,e){return(n%e+e)%e}var UL=class{isRunning=!1;value=0;from=0;to=0;currentTime=0;lerp;duration;easing;onUpdate;advance(n){if(!this.isRunning)return;let e=!1;if(this.duration&&this.easing){this.currentTime+=n;const t=Ay(0,this.currentTime/this.duration,1);e=t>=1;const a=e?1:this.easing(t);this.value=this.from+(this.to-this.from)*a}else this.lerp?(this.value=LL(this.value,this.to,this.lerp*60,n),Math.round(this.value)===this.to&&(this.value=this.to,e=!0)):(this.value=this.to,e=!0);e&&this.stop(),this.onUpdate?.(this.value,e)}stop(){this.isRunning=!1}fromTo(n,e,{lerp:t,duration:a,easing:o,onStart:l,onUpdate:u}){this.from=this.value=n,this.to=e,this.lerp=t,this.duration=a,this.easing=o,this.currentTime=0,this.isRunning=!0,l?.(),this.onUpdate=u}};function PL(n,e){let t;return function(...a){let o=this;clearTimeout(t),t=setTimeout(()=>{t=void 0,n.apply(o,a)},e)}}var OL=class{constructor(n,e,{autoResize:t=!0,debounce:a=250}={}){this.wrapper=n,this.content=e,t&&(this.debouncedResize=PL(this.resize,a),this.wrapper instanceof Window?window.addEventListener("resize",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}width=0;height=0;scrollHeight=0;scrollWidth=0;debouncedResize;wrapperResizeObserver;contentResizeObserver;destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),this.wrapper===window&&this.debouncedResize&&window.removeEventListener("resize",this.debouncedResize,!1)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper instanceof Window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper instanceof Window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}},Ry=class{events={};emit(n,...e){let t=this.events[n]||[];for(let a=0,o=t.length;a<o;a++)t[a]?.(...e)}on(n,e){return this.events[n]?.push(e)||(this.events[n]=[e]),()=>{this.events[n]=this.events[n]?.filter(t=>e!==t)}}off(n,e){this.events[n]=this.events[n]?.filter(t=>e!==t)}destroy(){this.events={}}},n_=100/6,wa={passive:!1},IL=class{constructor(n,e={wheelMultiplier:1,touchMultiplier:1}){this.element=n,this.options=e,window.addEventListener("resize",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener("wheel",this.onWheel,wa),this.element.addEventListener("touchstart",this.onTouchStart,wa),this.element.addEventListener("touchmove",this.onTouchMove,wa),this.element.addEventListener("touchend",this.onTouchEnd,wa)}touchStart={x:0,y:0};lastDelta={x:0,y:0};window={width:0,height:0};emitter=new Ry;on(n,e){return this.emitter.on(n,e)}destroy(){this.emitter.destroy(),window.removeEventListener("resize",this.onWindowResize,!1),this.element.removeEventListener("wheel",this.onWheel,wa),this.element.removeEventListener("touchstart",this.onTouchStart,wa),this.element.removeEventListener("touchmove",this.onTouchMove,wa),this.element.removeEventListener("touchend",this.onTouchEnd,wa)}onTouchStart=n=>{const{clientX:e,clientY:t}=n.targetTouches?n.targetTouches[0]:n;this.touchStart.x=e,this.touchStart.y=t,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:n})};onTouchMove=n=>{const{clientX:e,clientY:t}=n.targetTouches?n.targetTouches[0]:n,a=-(e-this.touchStart.x)*this.options.touchMultiplier,o=-(t-this.touchStart.y)*this.options.touchMultiplier;this.touchStart.x=e,this.touchStart.y=t,this.lastDelta={x:a,y:o},this.emitter.emit("scroll",{deltaX:a,deltaY:o,event:n})};onTouchEnd=n=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:n})};onWheel=n=>{let{deltaX:e,deltaY:t,deltaMode:a}=n;const o=a===1?n_:a===2?this.window.width:1,l=a===1?n_:a===2?this.window.height:1;e*=o,t*=l,e*=this.options.wheelMultiplier,t*=this.options.wheelMultiplier,this.emitter.emit("scroll",{deltaX:e,deltaY:t,event:n})};onWindowResize=()=>{this.window={width:window.innerWidth,height:window.innerHeight}}},i_=n=>Math.min(1,1.001-Math.pow(2,-10*n)),BL=class{_isScrolling=!1;_isStopped=!1;_isLocked=!1;_preventNextNativeScrollEvent=!1;_resetVelocityTimeout=null;__rafID=null;isTouching;time=0;userData={};lastVelocity=0;velocity=0;direction=0;options;targetScroll;animatedScroll;animate=new UL;emitter=new Ry;dimensions;virtualScroll;constructor({wrapper:n=window,content:e=document.documentElement,eventsTarget:t=n,smoothWheel:a=!0,syncTouch:o=!1,syncTouchLerp:l=.075,touchInertiaExponent:u=1.7,duration:f,easing:d,lerp:h=.1,infinite:g=!1,orientation:v="vertical",gestureOrientation:x=v==="horizontal"?"both":"vertical",touchMultiplier:y=1,wheelMultiplier:b=1,autoResize:w=!0,prevent:M,virtualScroll:S,overscroll:N=!0,autoRaf:T=!1,anchors:R=!1,autoToggle:P=!1,allowNestedScroll:I=!1,__experimental__naiveDimensions:F=!1}={}){window.lenisVersion=RL,(!n||n===document.documentElement)&&(n=window),typeof f=="number"&&typeof d!="function"?d=i_:typeof d=="function"&&typeof f!="number"&&(f=1),this.options={wrapper:n,content:e,eventsTarget:t,smoothWheel:a,syncTouch:o,syncTouchLerp:l,touchInertiaExponent:u,duration:f,easing:d,lerp:h,infinite:g,gestureOrientation:x,orientation:v,touchMultiplier:y,wheelMultiplier:b,autoResize:w,prevent:M,virtualScroll:S,overscroll:N,autoRaf:T,anchors:R,autoToggle:P,allowNestedScroll:I,__experimental__naiveDimensions:F},this.dimensions=new OL(n,e,{autoResize:w}),this.updateClassName(),this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll,!1),this.options.wrapper.addEventListener("scrollend",this.onScrollEnd,{capture:!0}),this.options.anchors&&this.options.wrapper===window&&this.options.wrapper.addEventListener("click",this.onClick,!1),this.options.wrapper.addEventListener("pointerdown",this.onPointerDown,!1),this.virtualScroll=ne
4178w IL(t,{touchMultiplier:y,wheelMultiplier:b}),this.virtualScroll.on("scroll",this.onVirtualScroll),this.options.autoToggle&&this.rootElement.addEventListener("transitionend",this.onTransitionEnd,{passive:!0}),this.options.autoRaf&&(this.__rafID=requestAnimationFrame(this.raf))}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll,!1),this.options.wrapper.removeEventListener("scrollend",this.onScrollEnd,{capture:!0}),this.options.wrapper.removeEventListener("pointerdown",this.onPointerDown,!1),this.options.anchors&&this.options.wrapper===window&&this.options.wrapper.removeEventListener("click",this.onClick,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName(),this.__rafID&&cancelAnimationFrame(this.__rafID)}on(n,e){return this.emitter.on(n,e)}off(n,e){return this.emitter.off(n,e)}onScrollEnd=n=>{n instanceof CustomEvent||(this.isScrolling==="smooth"||this.isScrolling===!1)&&n.stopPropagation()};dispatchScrollendEvent=()=>{this.options.wrapper.dispatchEvent(new CustomEvent("scrollend",{bubbles:this.options.wrapper===window,detail:{lenisScrollEnd:!0}}))};onTransitionEnd=n=>{if(n.propertyName.includes("overflow")){const e=this.isHorizontal?"overflow-x":"overflow-y",t=getComputedStyle(this.rootElement)[e];["hidden","clip"].includes(t)?this.internalStop():this.internalStart()}};setScroll(n){this.isHorizontal?this.options.wrapper.scrollTo({left:n,behavior:"instant"}):this.options.wrapper.scrollTo({top:n,behavior:"instant"})}onClick=n=>{const t=n.composedPath().find(a=>a instanceof HTMLAnchorElement&&(a.getAttribute("href")?.startsWith("#")||a.getAttribute("href")?.startsWith("/#")||a.getAttribute("href")?.startsWith("./#")));if(t){const a=t.getAttribute("href");if(a){const o=typeof this.options.anchors=="object"&&this.options.anchors?this.options.anchors:void 0;let l=`#${a.split("#")[1]}`;["#","/#","./#","#top","/#top","./#top"].includes(a)&&(l=0),this.scrollTo(l,o)}}};onPointerDown=n=>{n.button===1&&this.reset()};onVirtualScroll=n=>{if(typeof this.options.virtualScroll=="function"&&this.options.virtualScroll(n)===!1)return;const{deltaX:e,deltaY:t,event:a}=n;if(this.emitter.emit("virtual-scroll",{deltaX:e,deltaY:t,event:a}),a.ctrlKey||a.lenisStopPropagation)return;const o=a.type.includes("touch"),l=a.type.includes("wheel");this.isTouching=a.type==="touchstart"||a.type==="touchmove";const u=e===0&&t===0;if(this.options.syncTouch&&o&&a.type==="touchstart"&&u&&!this.isStopped&&!this.isLocked){this.reset();return}const d=this.options.gestureOrientation==="vertical"&&t===0||this.options.gestureOrientation==="horizontal"&&e===0;if(u||d)return;let h=a.composedPath();h=h.slice(0,h.indexOf(this.rootElement));const g=this.options.prevent;if(h.find(M=>M instanceof HTMLElement&&(typeof g=="function"&&g?.(M)||M.hasAttribute?.("data-lenis-prevent")||o&&M.hasAttribute?.("data-lenis-prevent-touch")||l&&M.hasAttribute?.("data-lenis-prevent-wheel")||this.options.allowNestedScroll&&this.checkNestedScroll(M,{deltaX:e,deltaY:t}))))return;if(this.isStopped||this.isLocked){a.cancelable&&a.preventDefault();return}if(!(this.options.syncTouch&&o||this.options.smoothWheel&&l)){this.isScrolling="native",this.animate.stop(),a.lenisStopPropagation=!0;return}let x=t;this.options.gestureOrientation==="both"?x=Math.abs(t)>Math.abs(e)?t:e:this.options.gestureOrientation==="horizontal"&&(x=e),(!this.options.overscroll||this.options.infinite||this.options.wrapper!==window&&(this.animatedScroll>0&&this.animatedScroll<this.limit||this.animatedScroll===0&&t>0||this.animatedScroll===this.limit&&t<0))&&(a.lenisStopPropagation=!0),a.cancelable&&a.preventDefault();const y=o&&this.options.syncTouch,w=o&&a.type==="touchend";w&&(x=Math.sign(this.velocity)*Math.pow(Math.abs(this.velocity),this.options.touchInertiaExponent)),this.scrollTo(this.targetScroll+x,{programmatic:!1,...y?{lerp:w?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}})};resize(){this.dimensions.resize(),this.animatedScroll=this.targetScroll=this.actualScroll,this.emit
4178()}emit(){this.emitter.emit("scroll",this)}onNativeScroll=()=>{if(this._resetVelocityTimeout!==null&&(clearTimeout(this._resetVelocityTimeout),this._resetVelocityTimeout=null),this._preventNextNativeScrollEvent){this._preventNextNativeScrollEvent=!1;return}if(this.isScrolling===!1||this.isScrolling==="native"){const n=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-n,this.direction=Math.sign(this.animatedScroll-n),this.isStopped||(this.isScrolling="native"),this.emit(),this.velocity!==0&&(this._resetVelocityTimeout=setTimeout(()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()},400))}};reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){if(this.isStopped){if(this.options.autoToggle){this.rootElement.style.removeProperty("overflow");return}this.internalStart()}}internalStart(){this.isStopped&&(this.reset(),this.isStopped=!1,this.emit())}stop(){if(!this.isStopped){if(this.options.autoToggle){this.rootElement.style.setProperty("overflow","clip");return}this.internalStop()}}internalStop(){this.isStopped||(this.reset(),this.isStopped=!0,this.emit())}raf=n=>{const e=n-(this.time||n);this.time=n,this.animate.advance(e*.001),this.options.autoRaf&&(this.__rafID=requestAnimationFrame(this.raf))};scrollTo(n,{offset:e=0,immediate:t=!1,lock:a=!1,duration:o=this.options.duration,easing:l=this.options.easing,lerp:u=this.options.lerp,onStart:f,onComplete:d,force:h=!1,programmatic:g=!0,userData:v}={}){if(!((this.isStopped||this.isLocked)&&!h)){if(typeof n=="string"&&["top","left","start"].includes(n))n=0;else if(typeof n=="string"&&["bottom","right","end"].includes(n))n=this.limit;else{let x;if(typeof n=="string"?x=document.querySelector(n):n instanceof HTMLElement&&n?.nodeType&&(x=n),x){if(this.options.wrapper!==window){const b=this.rootElement.getBoundingClientRect();e-=this.isHorizontal?b.left:b.top}const y=x.getBoundingClientRect();n=(this.isHorizontal?y.left:y.top)+this.animatedScroll}}if(typeof n=="number"){if(n+=e,n=Math.round(n),this.options.infinite){if(g){this.targetScroll=this.animatedScroll=this.scroll;const x=n-this.animatedScroll;x>this.limit/2?n=n-this.limit:x<-this.limit/2&&(n=n+this.limit)}}else n=Ay(0,n,this.limit);if(n===this.targetScroll){f?.(this),d?.(this);return}if(this.userData=v??{},t){this.animatedScroll=this.targetScroll=n,this.setScroll(this.scroll),this.reset(),this.preventNextNativeScrollEvent(),this.emit(),d?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()});return}g||(this.targetScroll=n),typeof o=="number"&&typeof l!="function"?l=i_:typeof l=="function"&&typeof o!="number"&&(o=1),this.animate.fromTo(this.animatedScroll,n,{duration:o,easing:l,lerp:u,onStart:()=>{a&&(this.isLocked=!0),this.isScrolling="smooth",f?.(this)},onUpdate:(x,y)=>{this.isScrolling="smooth",this.lastVelocity=this.velocity,this.velocity=x-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=x,this.setScroll(this.scroll),g&&(this.targetScroll=x),y||this.emit(),y&&(this.reset(),this.emit(),d?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()}),this.preventNextNativeScrollEvent())}})}}}preventNextNativeScrollEvent(){this._preventNextNativeScrollEvent=!0,requestAnimationFrame(()=>{this._preventNextNativeScrollEvent=!1})}checkNestedScroll(n,{deltaX:e,deltaY:t}){const a=Date.now(),o=n._lenis??={};let l,u,f,d,h,g,v,x;const y=this.options.gestureOrientation;if(a-(o.time??0)>2e3){o.time=Date.now();const P=window.getComputedStyle(n);o.computedStyle=P;const I=P.overflowX,F=P.overflowY;if(l=["auto","overlay","scroll"].includes(I),u=["auto","overlay","scroll"].includes(F),o.hasOverflowX=l,o.hasOverflowY=u,!l&&!u||y==="vertical"&&!u||y==="horizontal"&&!l)return!1;h=n.scrollWidth,g=n.scrollHeight,v=n.clientWidth,x=n.clientHeight,f=h>v,d=g>x,o.isScrollableX=f,o.isScrollableY=d,o.scrollWidth=h,o.scrollHeight=g,o.clientWidth=v,o.clientHeight=x}else f=o.isScrollableX,d=o.isScrollableY,l=o.hasOverflowX,u=o.hasOverflowY,h=o.scrollWidth,g=o.scrollHeight,v=o.clientWidth,x=o.clientHeight;if(!l&&!u||!f&&!d||y==="vertical"&&(!u||!d)||y==="horizontal"&&(!l||!f))return!1;let b;if(y==="horizontal")b="x";else if(y==="vertical")b="y";else{const P=e!==0,I=t!==0;P&&l&&f&&(b="x"),I&&u&&d&&(b="y")}
4178if(!b)return!1;let w,M,S,N,T;if(b==="x")w=n.scrollLeft,M=h-v,S=e,N=l,T=f;else if(b==="y")w=n.scrollTop,M=g-x,S=t,N=u,T=d;else return!1;return(S>0?w<M:w>0)&&N&&T}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?"x":"y"]}get isHorizontal(){return this.options.orientation==="horizontal"}get actualScroll(){const n=this.options.wrapper;return this.isHorizontal?n.scrollX??n.scrollLeft:n.scrollY??n.scrollTop}get scroll(){return this.options.infinite?DL(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return this.limit===0?1:this.scroll/this.limit}get isScrolling(){return this._isScrolling}set isScrolling(n){this._isScrolling!==n&&(this._isScrolling=n,this.updateClassName())}get isStopped(){return this._isStopped}set isStopped(n){this._isStopped!==n&&(this._isStopped=n,this.updateClassName())}get isLocked(){return this._isLocked}set isLocked(n){this._isLocked!==n&&(this._isLocked=n,this.updateClassName())}get isSmooth(){return this.isScrolling==="smooth"}get className(){let n="lenis";return this.options.autoToggle&&(n+=" lenis-autoToggle"),this.isStopped&&(n+=" lenis-stopped"),this.isLocked&&(n+=" lenis-locked"),this.isScrolling&&(n+=" lenis-scrolling"),this.isScrolling==="smooth"&&(n+=" lenis-smooth"),n}updateClassName(){this.cleanUpClassName(),this.rootElement.className=`${this.rootElement.className} ${this.className}`.trim()}cleanUpClassName(){this.rootElement.className=this.rootElement.className.replace(/lenis(-\w+)?/g,"").trim()}};function FL(){G.useRef(null),G.useRef(null);const[n,e]=G.useState(!1),[t,a]=G.useState(!1);return es(),G.useEffect(()=>{const o=()=>{a(l=>!l)};return window.addEventListener("dblclick",o),()=>{window.removeEventListener("dblclick",o)}},[]),G.useEffect(()=>{const o=new BL;function l(u){o.raf(u),requestAnimationFrame(l)}requestAnimationFrame(l)},[]),m.jsxs(m.Fragment,{children:[m.jsx(PN,{sidebarOpen:n,setSidebarOpen:e}),m.jsxs(DM,{children:[m.jsx(Gi,{path:"/",element:m.jsx(UN,{sidebarOpen:n,fishFollowCursor:t})}),m.jsx(Gi,{path:"/tripsmart",element:m.jsx(VN,{sidebarOpen:n})}),m.jsx(Gi,{path:"/uaem",element:m.jsx(JN,{sidebarOpen:n})}),m.jsx(Gi,{path:"/naturewalk",element:m.jsx(WN,{sidebarOpen:n})}),m.jsx(Gi,{path:"/mtrf",element:m.jsx(rL,{sidebarOpen:n})}),m.jsx(Gi,{path:"/viseme",element:m.jsx(hL,{sidebarOpen:n})}),m.jsx(Gi,{path:"/metroid",element:m.jsx(EL,{sidebarOpen:n})}),m.jsx(Gi,{path:"/flipped",element:m.jsx(CL,{sidebarOpen:n})}),m.jsx(Gi,{path:"/villagerim",element:m.jsx(AL,{sidebarOpen:n})})]})]})}HS.createRoot(document.getElementById("root")).render(m.jsx(t6,{children:m.jsx(FL,{})}))});export default zL();

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.