diff --git a/config/machines/prod-castle/ariege-home-dist/assets/index-BBdw2NZT.js b/config/machines/prod-castle/ariege-home-dist/assets/index-BBdw2NZT.js new file mode 100644 index 0000000..9f172a3 --- /dev/null +++ b/config/machines/prod-castle/ariege-home-dist/assets/index-BBdw2NZT.js @@ -0,0 +1,187 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const n of r)if(n.type==="childList")for(const l of n.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&i(l)}).observe(document,{childList:!0,subtree:!0});function s(r){const n={};return r.integrity&&(n.integrity=r.integrity),r.referrerPolicy&&(n.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?n.credentials="include":r.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(r){if(r.ep)return;r.ep=!0;const n=s(r);fetch(r.href,n)}})();/** +* @vue/shared v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Fs(t){const e=Object.create(null);for(const s of t.split(","))e[s]=1;return s=>s in e}const G={},st=[],Fe=()=>{},tn=()=>!1,Gt=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Rs=t=>t.startsWith("onUpdate:"),le=Object.assign,Os=(t,e)=>{const s=t.indexOf(e);s>-1&&t.splice(s,1)},sn=Object.prototype.hasOwnProperty,j=(t,e)=>sn.call(t,e),U=Array.isArray,pt=t=>Kt(t)==="[object Map]",rn=t=>Kt(t)==="[object Set]",B=t=>typeof t=="function",ie=t=>typeof t=="string",ot=t=>typeof t=="symbol",se=t=>t!==null&&typeof t=="object",Yi=t=>(se(t)||B(t))&&B(t.then)&&B(t.catch),nn=Object.prototype.toString,Kt=t=>nn.call(t),ln=t=>Kt(t).slice(8,-1),on=t=>Kt(t)==="[object Object]",Is=t=>ie(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,gt=Fs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yt=t=>{const e=Object.create(null);return s=>e[s]||(e[s]=t(s))},fn=/-(\w)/g,qe=Yt(t=>t.replace(fn,(e,s)=>s?s.toUpperCase():"")),cn=/\B([A-Z])/g,Je=Yt(t=>t.replace(cn,"-$1").toLowerCase()),Xi=Yt(t=>t.charAt(0).toUpperCase()+t.slice(1)),ts=Yt(t=>t?`on${Xi(t)}`:""),je=(t,e)=>!Object.is(t,e),ss=(t,...e)=>{for(let s=0;s{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:s})},an=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let si;const Xt=()=>si||(si=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ps(t){if(U(t)){const e={};for(let s=0;s{if(s){const i=s.split(un);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Ls(t){let e="";if(ie(t))e=t;else if(U(t))for(let s=0;s0&&--this._on===0&&(pe=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s0)return;if(_t){let e=_t;for(_t=void 0;e;){const s=e.next;e.next=void 0,e.flags&=-9,e=s}}let t;for(;mt;){let e=mt;for(mt=void 0;e;){const s=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=s}}if(t)throw t}function er(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function tr(t){let e,s=t.depsTail,i=s;for(;i;){const r=i.prevDep;i.version===-1?(i===s&&(s=r),Ns(i),yn(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=r}t.deps=e,t.depsTail=s}function ms(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(sr(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function sr(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Et)||(t.globalVersion=Et,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!ms(t))))return;t.flags|=2;const e=t.dep,s=Z,i=ye;Z=t,ye=!0;try{er(t);const r=t.fn(t._value);(e.version===0||je(r,t._value))&&(t.flags|=128,t._value=r,e.version++)}catch(r){throw e.version++,r}finally{Z=s,ye=i,tr(t),t.flags&=-3}}function Ns(t,e=!1){const{dep:s,prevSub:i,nextSub:r}=t;if(i&&(i.nextSub=r,t.prevSub=void 0),r&&(r.prevSub=i,t.nextSub=void 0),s.subs===t&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let n=s.computed.deps;n;n=n.nextDep)Ns(n,!0)}!e&&!--s.sc&&s.map&&s.map.delete(s.key)}function yn(t){const{prevDep:e,nextDep:s}=t;e&&(e.nextDep=s,t.prevDep=void 0),s&&(s.prevDep=e,t.nextDep=void 0)}let ye=!0;const ir=[];function De(){ir.push(ye),ye=!1}function ze(){const t=ir.pop();ye=t===void 0?!0:t}function ii(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const s=Z;Z=void 0;try{e()}finally{Z=s}}}let Et=0;class bn{constructor(e,s){this.sub=e,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Us{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!Z||!ye||Z===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Z)s=this.activeLink=new bn(Z,this),Z.deps?(s.prevDep=Z.depsTail,Z.depsTail.nextDep=s,Z.depsTail=s):Z.deps=Z.depsTail=s,rr(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=Z.depsTail,s.nextDep=void 0,Z.depsTail.nextDep=s,Z.depsTail=s,Z.deps===s&&(Z.deps=i)}return s}trigger(e){this.version++,Et++,this.notify(e)}notify(e){Ds();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{zs()}}}function rr(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)rr(i)}const s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}const _s=new WeakMap,ke=Symbol(""),xs=Symbol(""),Mt=Symbol("");function re(t,e,s){if(ye&&Z){let i=_s.get(t);i||_s.set(t,i=new Map);let r=i.get(s);r||(i.set(s,r=new Us),r.map=i,r.key=s),r.track()}}function Le(t,e,s,i,r,n){const l=_s.get(t);if(!l){Et++;return}const o=f=>{f&&f.trigger()};if(Ds(),e==="clear")l.forEach(o);else{const f=U(t),a=f&&Is(s);if(f&&s==="length"){const c=Number(i);l.forEach((u,p)=>{(p==="length"||p===Mt||!ot(p)&&p>=c)&&o(u)})}else switch((s!==void 0||l.has(void 0))&&o(l.get(s)),a&&o(l.get(Mt)),e){case"add":f?a&&o(l.get("length")):(o(l.get(ke)),pt(t)&&o(l.get(xs)));break;case"delete":f||(o(l.get(ke)),pt(t)&&o(l.get(xs)));break;case"set":pt(t)&&o(l.get(ke));break}}zs()}function et(t){const e=H(t);return e===t?e:(re(e,"iterate",Mt),be(t)?e:e.map(ce))}function Bs(t){return re(t=H(t),"iterate",Mt),t}const vn={__proto__:null,[Symbol.iterator](){return rs(this,Symbol.iterator,ce)},concat(...t){return et(this).concat(...t.map(e=>U(e)?et(e):e))},entries(){return rs(this,"entries",t=>(t[1]=ce(t[1]),t))},every(t,e){return Oe(this,"every",t,e,void 0,arguments)},filter(t,e){return Oe(this,"filter",t,e,s=>s.map(ce),arguments)},find(t,e){return Oe(this,"find",t,e,ce,arguments)},findIndex(t,e){return Oe(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Oe(this,"findLast",t,e,ce,arguments)},findLastIndex(t,e){return Oe(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Oe(this,"forEach",t,e,void 0,arguments)},includes(...t){return ns(this,"includes",t)},indexOf(...t){return ns(this,"indexOf",t)},join(t){return et(this).join(t)},lastIndexOf(...t){return ns(this,"lastIndexOf",t)},map(t,e){return Oe(this,"map",t,e,void 0,arguments)},pop(){return ht(this,"pop")},push(...t){return ht(this,"push",t)},reduce(t,...e){return ri(this,"reduce",t,e)},reduceRight(t,...e){return ri(this,"reduceRight",t,e)},shift(){return ht(this,"shift")},some(t,e){return Oe(this,"some",t,e,void 0,arguments)},splice(...t){return ht(this,"splice",t)},toReversed(){return et(this).toReversed()},toSorted(t){return et(this).toSorted(t)},toSpliced(...t){return et(this).toSpliced(...t)},unshift(...t){return ht(this,"unshift",t)},values(){return rs(this,"values",ce)}};function rs(t,e,s){const i=Bs(t),r=i[e]();return i!==t&&!be(t)&&(r._next=r.next,r.next=()=>{const n=r._next();return n.value&&(n.value=s(n.value)),n}),r}const wn=Array.prototype;function Oe(t,e,s,i,r,n){const l=Bs(t),o=l!==t&&!be(t),f=l[e];if(f!==wn[e]){const u=f.apply(t,n);return o?ce(u):u}let a=s;l!==t&&(o?a=function(u,p){return s.call(this,ce(u),p,t)}:s.length>2&&(a=function(u,p){return s.call(this,u,p,t)}));const c=f.call(l,a,i);return o&&r?r(c):c}function ri(t,e,s,i){const r=Bs(t);let n=s;return r!==t&&(be(t)?s.length>3&&(n=function(l,o,f){return s.call(this,l,o,f,t)}):n=function(l,o,f){return s.call(this,l,ce(o),f,t)}),r[e](n,...i)}function ns(t,e,s){const i=H(t);re(i,"iterate",Mt);const r=i[e](...s);return(r===-1||r===!1)&&js(s[0])?(s[0]=H(s[0]),i[e](...s)):r}function ht(t,e,s=[]){De(),Ds();const i=H(t)[e].apply(t,s);return zs(),ze(),i}const Sn=Fs("__proto__,__v_isRef,__isVue"),nr=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(ot));function En(t){ot(t)||(t=String(t));const e=H(this);return re(e,"has",t),e.hasOwnProperty(t)}class lr{constructor(e=!1,s=!1){this._isReadonly=e,this._isShallow=s}get(e,s,i){if(s==="__v_skip")return e.__v_skip;const r=this._isReadonly,n=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return n;if(s==="__v_raw")return i===(r?n?Ln:ar:n?cr:fr).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const l=U(e);if(!r){let f;if(l&&(f=vn[s]))return f;if(s==="hasOwnProperty")return En}const o=Reflect.get(e,s,ne(e)?e:i);return(ot(s)?nr.has(s):Sn(s))||(r||re(e,"get",s),n)?o:ne(o)?l&&Is(s)?o:o.value:se(o)?r?hr(o):Vs(o):o}}class or extends lr{constructor(e=!1){super(!1,e)}set(e,s,i,r){let n=e[s];if(!this._isShallow){const f=Qe(n);if(!be(i)&&!Qe(i)&&(n=H(n),i=H(i)),!U(e)&&ne(n)&&!ne(i))return f?!1:(n.value=i,!0)}const l=U(e)&&Is(s)?Number(s)t,Pt=t=>Reflect.getPrototypeOf(t);function Fn(t,e,s){return function(...i){const r=this.__v_raw,n=H(r),l=pt(n),o=t==="entries"||t===Symbol.iterator&&l,f=t==="keys"&&l,a=r[t](...i),c=s?ys:e?bs:ce;return!e&&re(n,"iterate",f?xs:ke),{next(){const{value:u,done:p}=a.next();return p?{value:u,done:p}:{value:o?[c(u[0]),c(u[1])]:c(u),done:p}},[Symbol.iterator](){return this}}}}function Lt(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Rn(t,e){const s={get(r){const n=this.__v_raw,l=H(n),o=H(r);t||(je(r,o)&&re(l,"get",r),re(l,"get",o));const{has:f}=Pt(l),a=e?ys:t?bs:ce;if(f.call(l,r))return a(n.get(r));if(f.call(l,o))return a(n.get(o));n!==l&&n.get(r)},get size(){const r=this.__v_raw;return!t&&re(H(r),"iterate",ke),Reflect.get(r,"size",r)},has(r){const n=this.__v_raw,l=H(n),o=H(r);return t||(je(r,o)&&re(l,"has",r),re(l,"has",o)),r===o?n.has(r):n.has(r)||n.has(o)},forEach(r,n){const l=this,o=l.__v_raw,f=H(o),a=e?ys:t?bs:ce;return!t&&re(f,"iterate",ke),o.forEach((c,u)=>r.call(n,a(c),a(u),l))}};return le(s,t?{add:Lt("add"),set:Lt("set"),delete:Lt("delete"),clear:Lt("clear")}:{add(r){!e&&!be(r)&&!Qe(r)&&(r=H(r));const n=H(this);return Pt(n).has.call(n,r)||(n.add(r),Le(n,"add",r,r)),this},set(r,n){!e&&!be(n)&&!Qe(n)&&(n=H(n));const l=H(this),{has:o,get:f}=Pt(l);let a=o.call(l,r);a||(r=H(r),a=o.call(l,r));const c=f.call(l,r);return l.set(r,n),a?je(n,c)&&Le(l,"set",r,n):Le(l,"add",r,n),this},delete(r){const n=H(this),{has:l,get:o}=Pt(n);let f=l.call(n,r);f||(r=H(r),f=l.call(n,r)),o&&o.call(n,r);const a=n.delete(r);return f&&Le(n,"delete",r,void 0),a},clear(){const r=H(this),n=r.size!==0,l=r.clear();return n&&Le(r,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Fn(r,t,e)}),s}function $s(t,e){const s=Rn(t,e);return(i,r,n)=>r==="__v_isReactive"?!t:r==="__v_isReadonly"?t:r==="__v_raw"?i:Reflect.get(j(s,r)&&r in i?s:i,r,n)}const On={get:$s(!1,!1)},In={get:$s(!1,!0)},Pn={get:$s(!0,!1)};const fr=new WeakMap,cr=new WeakMap,ar=new WeakMap,Ln=new WeakMap;function Dn(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function zn(t){return t.__v_skip||!Object.isExtensible(t)?0:Dn(ln(t))}function Vs(t){return Qe(t)?t:Hs(t,!1,An,On,fr)}function Nn(t){return Hs(t,!1,Tn,In,cr)}function hr(t){return Hs(t,!0,Cn,Pn,ar)}function Hs(t,e,s,i,r){if(!se(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const n=zn(t);if(n===0)return t;const l=r.get(t);if(l)return l;const o=new Proxy(t,n===2?i:s);return r.set(t,o),o}function xt(t){return Qe(t)?xt(t.__v_raw):!!(t&&t.__v_isReactive)}function Qe(t){return!!(t&&t.__v_isReadonly)}function be(t){return!!(t&&t.__v_isShallow)}function js(t){return t?!!t.__v_raw:!1}function H(t){const e=t&&t.__v_raw;return e?H(e):t}function Un(t){return!j(t,"__v_skip")&&Object.isExtensible(t)&&gs(t,"__v_skip",!0),t}const ce=t=>se(t)?Vs(t):t,bs=t=>se(t)?hr(t):t;function ne(t){return t?t.__v_isRef===!0:!1}function Bn(t){return $n(t,!0)}function $n(t,e){return ne(t)?t:new Vn(t,e)}class Vn{constructor(e,s){this.dep=new Us,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?e:H(e),this._value=s?e:ce(e),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(e){const s=this._rawValue,i=this.__v_isShallow||be(e)||Qe(e);e=i?e:H(e),je(e,s)&&(this._rawValue=e,this._value=i?e:ce(e),this.dep.trigger())}}function Hn(t){return ne(t)?t.value:t}const jn={get:(t,e,s)=>e==="__v_raw"?t:Hn(Reflect.get(t,e,s)),set:(t,e,s,i)=>{const r=t[e];return ne(r)&&!ne(s)?(r.value=s,!0):Reflect.set(t,e,s,i)}};function ur(t){return xt(t)?t:new Proxy(t,jn)}class Wn{constructor(e,s,i){this.fn=e,this.setter=s,this._value=void 0,this.dep=new Us(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Et-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&Z!==this)return Ji(this,!0),!0}get value(){const e=this.dep.track();return sr(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function qn(t,e,s=!1){let i,r;return B(t)?i=t:(i=t.get,r=t.set),new Wn(i,r,s)}const Dt={},$t=new WeakMap;let Ze;function Gn(t,e=!1,s=Ze){if(s){let i=$t.get(s);i||$t.set(s,i=[]),i.push(t)}}function Kn(t,e,s=G){const{immediate:i,deep:r,once:n,scheduler:l,augmentJob:o,call:f}=s,a=M=>r?M:be(M)||r===!1||r===0?He(M,1):He(M);let c,u,p,g,m=!1,x=!1;if(ne(t)?(u=()=>t.value,m=be(t)):xt(t)?(u=()=>a(t),m=!0):U(t)?(x=!0,m=t.some(M=>xt(M)||be(M)),u=()=>t.map(M=>{if(ne(M))return M.value;if(xt(M))return a(M);if(B(M))return f?f(M,2):M()})):B(t)?e?u=f?()=>f(t,2):t:u=()=>{if(p){De();try{p()}finally{ze()}}const M=Ze;Ze=c;try{return f?f(t,3,[g]):t(g)}finally{Ze=M}}:u=Fe,e&&r){const M=u,O=r===!0?1/0:r;u=()=>He(M(),O)}const E=xn(),S=()=>{c.stop(),E&&E.active&&Os(E.effects,c)};if(n&&e){const M=e;e=(...O)=>{M(...O),S()}}let L=x?new Array(t.length).fill(Dt):Dt;const R=M=>{if(!(!(c.flags&1)||!c.dirty&&!M))if(e){const O=c.run();if(r||m||(x?O.some((D,V)=>je(D,L[V])):je(O,L))){p&&p();const D=Ze;Ze=c;try{const V=[O,L===Dt?void 0:x&&L[0]===Dt?[]:L,g];L=O,f?f(e,3,V):e(...V)}finally{Ze=D}}}else c.run()};return o&&o(R),c=new ki(u),c.scheduler=l?()=>l(R,!1):R,g=M=>Gn(M,!1,c),p=c.onStop=()=>{const M=$t.get(c);if(M){if(f)f(M,4);else for(const O of M)O();$t.delete(c)}},e?i?R(!0):L=c.run():l?l(R.bind(null,!0),!0):c.run(),S.pause=c.pause.bind(c),S.resume=c.resume.bind(c),S.stop=S,S}function He(t,e=1/0,s){if(e<=0||!se(t)||t.__v_skip||(s=s||new Set,s.has(t)))return t;if(s.add(t),e--,ne(t))He(t.value,e,s);else if(U(t))for(let i=0;i{He(i,e,s)});else if(on(t)){for(const i in t)He(t[i],e,s);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&He(t[i],e,s)}return t}/** +* @vue/runtime-core v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ft(t,e,s,i){try{return i?t(...i):t()}catch(r){Zt(r,e,s)}}function Re(t,e,s,i){if(B(t)){const r=Ft(t,e,s,i);return r&&Yi(r)&&r.catch(n=>{Zt(n,e,s)}),r}if(U(t)){const r=[];for(let n=0;n>>1,r=ae[i],n=At(r);n=At(s)?ae.push(t):ae.splice(Zn(e),0,t),t.flags|=1,pr()}}function pr(){Vt||(Vt=dr.then(mr))}function kn(t){U(t)?it.push(...t):Be&&t.id===-1?Be.splice(tt+1,0,t):t.flags&1||(it.push(t),t.flags|=1),pr()}function ni(t,e,s=Ae+1){for(;sAt(s)-At(i));if(it.length=0,Be){Be.push(...e);return}for(Be=e,tt=0;ttt.id==null?t.flags&2?-1:1/0:t.id;function mr(t){try{for(Ae=0;Ae{i._d&&pi(-1);const n=Ht(e);let l;try{l=t(...r)}finally{Ht(n),i._d&&pi(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function Ye(t,e,s,i){const r=t.dirs,n=e&&e.dirs;for(let l=0;lt.__isTeleport;function qs(t,e){t.shapeFlag&6&&t.component?(t.transition=e,qs(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}/*! #__NO_SIDE_EFFECTS__ */function tl(t,e){return B(t)?le({name:t.name},e,{setup:t}):t}function xr(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function sl(t){const e=qr(),s=Bn(null);if(e){const r=e.refs===G?e.refs={}:e.refs;Object.defineProperty(r,t,{enumerable:!0,get:()=>s.value,set:n=>s.value=n})}return s}function yt(t,e,s,i,r=!1){if(U(t)){t.forEach((m,x)=>yt(m,e&&(U(e)?e[x]:e),s,i,r));return}if(bt(i)&&!r){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&yt(t,e,s,i.component.subTree);return}const n=i.shapeFlag&4?Zs(i.component):i.el,l=r?null:n,{i:o,r:f}=t,a=e&&e.r,c=o.refs===G?o.refs={}:o.refs,u=o.setupState,p=H(u),g=u===G?()=>!1:m=>j(p,m);if(a!=null&&a!==f&&(ie(a)?(c[a]=null,g(a)&&(u[a]=null)):ne(a)&&(a.value=null)),B(f))Ft(f,o,12,[l,c]);else{const m=ie(f),x=ne(f);if(m||x){const E=()=>{if(t.f){const S=m?g(f)?u[f]:c[f]:f.value;r?U(S)&&Os(S,n):U(S)?S.includes(n)||S.push(n):m?(c[f]=[n],g(f)&&(u[f]=c[f])):(f.value=[n],t.k&&(c[t.k]=f.value))}else m?(c[f]=l,g(f)&&(u[f]=l)):x&&(f.value=l,t.k&&(c[t.k]=l))};l?(E.id=-1,me(E,s)):E()}}}Xt().requestIdleCallback;Xt().cancelIdleCallback;const bt=t=>!!t.type.__asyncLoader,yr=t=>t.type.__isKeepAlive;function il(t,e){br(t,"a",e)}function rl(t,e){br(t,"da",e)}function br(t,e,s=he){const i=t.__wdc||(t.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return t()});if(kt(e,i,s),s){let r=s.parent;for(;r&&r.parent;)yr(r.parent.vnode)&&nl(i,e,s,r),r=r.parent}}function nl(t,e,s,i){const r=kt(e,t,i,!0);Gs(()=>{Os(i[e],r)},s)}function kt(t,e,s=he,i=!1){if(s){const r=s[t]||(s[t]=[]),n=e.__weh||(e.__weh=(...l)=>{De();const o=Rt(s),f=Re(e,s,t,l);return o(),ze(),f});return i?r.unshift(n):r.push(n),n}}const Ne=t=>(e,s=he)=>{(!Tt||t==="sp")&&kt(t,(...i)=>e(...i),s)},ll=Ne("bm"),vr=Ne("m"),ol=Ne("bu"),fl=Ne("u"),cl=Ne("bum"),Gs=Ne("um"),al=Ne("sp"),hl=Ne("rtg"),ul=Ne("rtc");function dl(t,e=he){kt("ec",t,e)}const pl=Symbol.for("v-ndc"),vs=t=>t?Gr(t)?Zs(t):vs(t.parent):null,vt=le(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>vs(t.parent),$root:t=>vs(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Sr(t),$forceUpdate:t=>t.f||(t.f=()=>{Ws(t.update)}),$nextTick:t=>t.n||(t.n=Xn.bind(t.proxy)),$watch:t=>zl.bind(t)}),ls=(t,e)=>t!==G&&!t.__isScriptSetup&&j(t,e),gl={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:s,setupState:i,data:r,props:n,accessCache:l,type:o,appContext:f}=t;let a;if(e[0]!=="$"){const g=l[e];if(g!==void 0)switch(g){case 1:return i[e];case 2:return r[e];case 4:return s[e];case 3:return n[e]}else{if(ls(i,e))return l[e]=1,i[e];if(r!==G&&j(r,e))return l[e]=2,r[e];if((a=t.propsOptions[0])&&j(a,e))return l[e]=3,n[e];if(s!==G&&j(s,e))return l[e]=4,s[e];ws&&(l[e]=0)}}const c=vt[e];let u,p;if(c)return e==="$attrs"&&re(t.attrs,"get",""),c(t);if((u=o.__cssModules)&&(u=u[e]))return u;if(s!==G&&j(s,e))return l[e]=4,s[e];if(p=f.config.globalProperties,j(p,e))return p[e]},set({_:t},e,s){const{data:i,setupState:r,ctx:n}=t;return ls(r,e)?(r[e]=s,!0):i!==G&&j(i,e)?(i[e]=s,!0):j(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(n[e]=s,!0)},has({_:{data:t,setupState:e,accessCache:s,ctx:i,appContext:r,propsOptions:n}},l){let o;return!!s[l]||t!==G&&j(t,l)||ls(e,l)||(o=n[0])&&j(o,l)||j(i,l)||j(vt,l)||j(r.config.globalProperties,l)},defineProperty(t,e,s){return s.get!=null?t._.accessCache[e]=0:j(s,"value")&&this.set(t,e,s.value,null),Reflect.defineProperty(t,e,s)}};function li(t){return U(t)?t.reduce((e,s)=>(e[s]=null,e),{}):t}let ws=!0;function ml(t){const e=Sr(t),s=t.proxy,i=t.ctx;ws=!1,e.beforeCreate&&oi(e.beforeCreate,t,"bc");const{data:r,computed:n,methods:l,watch:o,provide:f,inject:a,created:c,beforeMount:u,mounted:p,beforeUpdate:g,updated:m,activated:x,deactivated:E,beforeDestroy:S,beforeUnmount:L,destroyed:R,unmounted:M,render:O,renderTracked:D,renderTriggered:V,errorCaptured:K,serverPrefetch:ee,expose:q,inheritAttrs:Q,components:k,directives:te,filters:N}=e;if(a&&_l(a,i,null),l)for(const J in l){const Y=l[J];B(Y)&&(i[J]=Y.bind(s))}if(r){const J=r.call(s,s);se(J)&&(t.data=Vs(J))}if(ws=!0,n)for(const J in n){const Y=n[J],Ge=B(Y)?Y.bind(s,s):B(Y.get)?Y.get.bind(s,s):Fe,Ot=!B(Y)&&B(Y.set)?Y.set.bind(s):Fe,Ke=so({get:Ge,set:Ot});Object.defineProperty(i,J,{enumerable:!0,configurable:!0,get:()=>Ke.value,set:ve=>Ke.value=ve})}if(o)for(const J in o)wr(o[J],i,s,J);if(f){const J=B(f)?f.call(s):f;Reflect.ownKeys(J).forEach(Y=>{Sl(Y,J[Y])})}c&&oi(c,t,"c");function oe(J,Y){U(Y)?Y.forEach(Ge=>J(Ge.bind(s))):Y&&J(Y.bind(s))}if(oe(ll,u),oe(vr,p),oe(ol,g),oe(fl,m),oe(il,x),oe(rl,E),oe(dl,K),oe(ul,D),oe(hl,V),oe(cl,L),oe(Gs,M),oe(al,ee),U(q))if(q.length){const J=t.exposed||(t.exposed={});q.forEach(Y=>{Object.defineProperty(J,Y,{get:()=>s[Y],set:Ge=>s[Y]=Ge,enumerable:!0})})}else t.exposed||(t.exposed={});O&&t.render===Fe&&(t.render=O),Q!=null&&(t.inheritAttrs=Q),k&&(t.components=k),te&&(t.directives=te),ee&&xr(t)}function _l(t,e,s=Fe){U(t)&&(t=Ss(t));for(const i in t){const r=t[i];let n;se(r)?"default"in r?n=zt(r.from||i,r.default,!0):n=zt(r.from||i):n=zt(r),ne(n)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>n.value,set:l=>n.value=l}):e[i]=n}}function oi(t,e,s){Re(U(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,s)}function wr(t,e,s,i){let r=i.includes(".")?zr(s,i):()=>s[i];if(ie(t)){const n=e[t];B(n)&&Nt(r,n)}else if(B(t))Nt(r,t.bind(s));else if(se(t))if(U(t))t.forEach(n=>wr(n,e,s,i));else{const n=B(t.handler)?t.handler.bind(s):e[t.handler];B(n)&&Nt(r,n,t)}}function Sr(t){const e=t.type,{mixins:s,extends:i}=e,{mixins:r,optionsCache:n,config:{optionMergeStrategies:l}}=t.appContext,o=n.get(e);let f;return o?f=o:!r.length&&!s&&!i?f=e:(f={},r.length&&r.forEach(a=>jt(f,a,l,!0)),jt(f,e,l)),se(e)&&n.set(e,f),f}function jt(t,e,s,i=!1){const{mixins:r,extends:n}=e;n&&jt(t,n,s,!0),r&&r.forEach(l=>jt(t,l,s,!0));for(const l in e)if(!(i&&l==="expose")){const o=xl[l]||s&&s[l];t[l]=o?o(t[l],e[l]):e[l]}return t}const xl={data:fi,props:ci,emits:ci,methods:dt,computed:dt,beforeCreate:fe,created:fe,beforeMount:fe,mounted:fe,beforeUpdate:fe,updated:fe,beforeDestroy:fe,beforeUnmount:fe,destroyed:fe,unmounted:fe,activated:fe,deactivated:fe,errorCaptured:fe,serverPrefetch:fe,components:dt,directives:dt,watch:bl,provide:fi,inject:yl};function fi(t,e){return e?t?function(){return le(B(t)?t.call(this,this):t,B(e)?e.call(this,this):e)}:e:t}function yl(t,e){return dt(Ss(t),Ss(e))}function Ss(t){if(U(t)){const e={};for(let s=0;s1)return s&&B(e)?e.call(i&&i.proxy):e}}const Mr={},Ar=()=>Object.create(Mr),Cr=t=>Object.getPrototypeOf(t)===Mr;function El(t,e,s,i=!1){const r={},n=Ar();t.propsDefaults=Object.create(null),Tr(t,e,r,n);for(const l in t.propsOptions[0])l in r||(r[l]=void 0);s?t.props=i?r:Nn(r):t.type.props?t.props=r:t.props=n,t.attrs=n}function Ml(t,e,s,i){const{props:r,attrs:n,vnode:{patchFlag:l}}=t,o=H(r),[f]=t.propsOptions;let a=!1;if((i||l>0)&&!(l&16)){if(l&8){const c=t.vnode.dynamicProps;for(let u=0;u{f=!0;const[p,g]=Fr(u,e,!0);le(l,p),g&&o.push(...g)};!s&&e.mixins.length&&e.mixins.forEach(c),t.extends&&c(t.extends),t.mixins&&t.mixins.forEach(c)}if(!n&&!f)return se(t)&&i.set(t,st),st;if(U(n))for(let c=0;ct==="_"||t==="__"||t==="_ctx"||t==="$stable",Ys=t=>U(t)?t.map(Ce):[Ce(t)],Cl=(t,e,s)=>{if(e._n)return e;const i=Qn((...r)=>Ys(e(...r)),s);return i._c=!1,i},Rr=(t,e,s)=>{const i=t._ctx;for(const r in t){if(Ks(r))continue;const n=t[r];if(B(n))e[r]=Cl(r,n,i);else if(n!=null){const l=Ys(n);e[r]=()=>l}}},Or=(t,e)=>{const s=Ys(e);t.slots.default=()=>s},Ir=(t,e,s)=>{for(const i in e)(s||!Ks(i))&&(t[i]=e[i])},Tl=(t,e,s)=>{const i=t.slots=Ar();if(t.vnode.shapeFlag&32){const r=e.__;r&&gs(i,"__",r,!0);const n=e._;n?(Ir(i,e,s),s&&gs(i,"_",n,!0)):Rr(e,i)}else e&&Or(t,e)},Fl=(t,e,s)=>{const{vnode:i,slots:r}=t;let n=!0,l=G;if(i.shapeFlag&32){const o=e._;o?s&&o===1?n=!1:Ir(r,e,s):(n=!e.$stable,Rr(e,r)),l=e}else e&&(Or(t,e),l={default:1});if(n)for(const o in r)!Ks(o)&&l[o]==null&&delete r[o]},me=jl;function Rl(t){return Ol(t)}function Ol(t,e){const s=Xt();s.__VUE__=!0;const{insert:i,remove:r,patchProp:n,createElement:l,createText:o,createComment:f,setText:a,setElementText:c,parentNode:u,nextSibling:p,setScopeId:g=Fe,insertStaticContent:m}=t,x=(h,d,_,v=null,y=null,b=null,T=void 0,C=null,A=!!d.dynamicChildren)=>{if(h===d)return;h&&!ut(h,d)&&(v=It(h),ve(h,y,b,!0),h=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:w,ref:P,shapeFlag:F}=d;switch(w){case Jt:E(h,d,_,v);break;case nt:S(h,d,_,v);break;case fs:h==null&&L(d,_,v,T);break;case Pe:k(h,d,_,v,y,b,T,C,A);break;default:F&1?O(h,d,_,v,y,b,T,C,A):F&6?te(h,d,_,v,y,b,T,C,A):(F&64||F&128)&&w.process(h,d,_,v,y,b,T,C,A,ct)}P!=null&&y?yt(P,h&&h.ref,b,d||h,!d):P==null&&h&&h.ref!=null&&yt(h.ref,null,b,h,!0)},E=(h,d,_,v)=>{if(h==null)i(d.el=o(d.children),_,v);else{const y=d.el=h.el;d.children!==h.children&&a(y,d.children)}},S=(h,d,_,v)=>{h==null?i(d.el=f(d.children||""),_,v):d.el=h.el},L=(h,d,_,v)=>{[h.el,h.anchor]=m(h.children,d,_,v,h.el,h.anchor)},R=({el:h,anchor:d},_,v)=>{let y;for(;h&&h!==d;)y=p(h),i(h,_,v),h=y;i(d,_,v)},M=({el:h,anchor:d})=>{let _;for(;h&&h!==d;)_=p(h),r(h),h=_;r(d)},O=(h,d,_,v,y,b,T,C,A)=>{d.type==="svg"?T="svg":d.type==="math"&&(T="mathml"),h==null?D(d,_,v,y,b,T,C,A):ee(h,d,y,b,T,C,A)},D=(h,d,_,v,y,b,T,C)=>{let A,w;const{props:P,shapeFlag:F,transition:I,dirs:z}=h;if(A=h.el=l(h.type,b,P&&P.is,P),F&8?c(A,h.children):F&16&&K(h.children,A,null,v,y,os(h,b),T,C),z&&Ye(h,null,v,"created"),V(A,h,h.scopeId,T,v),P){for(const X in P)X!=="value"&&!gt(X)&&n(A,X,null,P[X],b,v);"value"in P&&n(A,"value",null,P.value,b),(w=P.onVnodeBeforeMount)&&Me(w,v,h)}z&&Ye(h,null,v,"beforeMount");const $=Il(y,I);$&&I.beforeEnter(A),i(A,d,_),((w=P&&P.onVnodeMounted)||$||z)&&me(()=>{w&&Me(w,v,h),$&&I.enter(A),z&&Ye(h,null,v,"mounted")},y)},V=(h,d,_,v,y)=>{if(_&&g(h,_),v)for(let b=0;b{for(let w=A;w{const C=d.el=h.el;let{patchFlag:A,dynamicChildren:w,dirs:P}=d;A|=h.patchFlag&16;const F=h.props||G,I=d.props||G;let z;if(_&&Xe(_,!1),(z=I.onVnodeBeforeUpdate)&&Me(z,_,d,h),P&&Ye(d,h,_,"beforeUpdate"),_&&Xe(_,!0),(F.innerHTML&&I.innerHTML==null||F.textContent&&I.textContent==null)&&c(C,""),w?q(h.dynamicChildren,w,C,_,v,os(d,y),b):T||Y(h,d,C,null,_,v,os(d,y),b,!1),A>0){if(A&16)Q(C,F,I,_,y);else if(A&2&&F.class!==I.class&&n(C,"class",null,I.class,y),A&4&&n(C,"style",F.style,I.style,y),A&8){const $=d.dynamicProps;for(let X=0;X<$.length;X++){const W=$[X],ue=F[W],de=I[W];(de!==ue||W==="value")&&n(C,W,ue,de,y,_)}}A&1&&h.children!==d.children&&c(C,d.children)}else!T&&w==null&&Q(C,F,I,_,y);((z=I.onVnodeUpdated)||P)&&me(()=>{z&&Me(z,_,d,h),P&&Ye(d,h,_,"updated")},v)},q=(h,d,_,v,y,b,T)=>{for(let C=0;C{if(d!==_){if(d!==G)for(const b in d)!gt(b)&&!(b in _)&&n(h,b,d[b],null,y,v);for(const b in _){if(gt(b))continue;const T=_[b],C=d[b];T!==C&&b!=="value"&&n(h,b,C,T,y,v)}"value"in _&&n(h,"value",d.value,_.value,y)}},k=(h,d,_,v,y,b,T,C,A)=>{const w=d.el=h?h.el:o(""),P=d.anchor=h?h.anchor:o("");let{patchFlag:F,dynamicChildren:I,slotScopeIds:z}=d;z&&(C=C?C.concat(z):z),h==null?(i(w,_,v),i(P,_,v),K(d.children||[],_,P,y,b,T,C,A)):F>0&&F&64&&I&&h.dynamicChildren?(q(h.dynamicChildren,I,_,y,b,T,C),(d.key!=null||y&&d===y.subTree)&&Pr(h,d,!0)):Y(h,d,_,P,y,b,T,C,A)},te=(h,d,_,v,y,b,T,C,A)=>{d.slotScopeIds=C,h==null?d.shapeFlag&512?y.ctx.activate(d,_,v,T,A):N(d,_,v,y,b,T,A):Ue(h,d,A)},N=(h,d,_,v,y,b,T)=>{const C=h.component=Zl(h,v,y);if(yr(h)&&(C.ctx.renderer=ct),kl(C,!1,T),C.asyncDep){if(y&&y.registerDep(C,oe,T),!h.el){const A=C.subTree=We(nt);S(null,A,d,_),h.placeholder=A.el}}else oe(C,h,d,_,y,b,T)},Ue=(h,d,_)=>{const v=d.component=h.component;if(Vl(h,d,_))if(v.asyncDep&&!v.asyncResolved){J(v,d,_);return}else v.next=d,v.update();else d.el=h.el,v.vnode=d},oe=(h,d,_,v,y,b,T)=>{const C=()=>{if(h.isMounted){let{next:F,bu:I,u:z,parent:$,vnode:X}=h;{const Se=Lr(h);if(Se){F&&(F.el=X.el,J(h,F,T)),Se.asyncDep.then(()=>{h.isUnmounted||C()});return}}let W=F,ue;Xe(h,!1),F?(F.el=X.el,J(h,F,T)):F=X,I&&ss(I),(ue=F.props&&F.props.onVnodeBeforeUpdate)&&Me(ue,$,F,X),Xe(h,!0);const de=ui(h),we=h.subTree;h.subTree=de,x(we,de,u(we.el),It(we),h,y,b),F.el=de.el,W===null&&Hl(h,de.el),z&&me(z,y),(ue=F.props&&F.props.onVnodeUpdated)&&me(()=>Me(ue,$,F,X),y)}else{let F;const{el:I,props:z}=d,{bm:$,m:X,parent:W,root:ue,type:de}=h,we=bt(d);Xe(h,!1),$&&ss($),!we&&(F=z&&z.onVnodeBeforeMount)&&Me(F,W,d),Xe(h,!0);{ue.ce&&ue.ce._def.shadowRoot!==!1&&ue.ce._injectChildStyle(de);const Se=h.subTree=ui(h);x(null,Se,_,v,h,y,b),d.el=Se.el}if(X&&me(X,y),!we&&(F=z&&z.onVnodeMounted)){const Se=d;me(()=>Me(F,W,Se),y)}(d.shapeFlag&256||W&&bt(W.vnode)&&W.vnode.shapeFlag&256)&&h.a&&me(h.a,y),h.isMounted=!0,d=_=v=null}};h.scope.on();const A=h.effect=new ki(C);h.scope.off();const w=h.update=A.run.bind(A),P=h.job=A.runIfDirty.bind(A);P.i=h,P.id=h.uid,A.scheduler=()=>Ws(P),Xe(h,!0),w()},J=(h,d,_)=>{d.component=h;const v=h.vnode.props;h.vnode=d,h.next=null,Ml(h,d.props,v,_),Fl(h,d.children,_),De(),ni(h),ze()},Y=(h,d,_,v,y,b,T,C,A=!1)=>{const w=h&&h.children,P=h?h.shapeFlag:0,F=d.children,{patchFlag:I,shapeFlag:z}=d;if(I>0){if(I&128){Ot(w,F,_,v,y,b,T,C,A);return}else if(I&256){Ge(w,F,_,v,y,b,T,C,A);return}}z&8?(P&16&&ft(w,y,b),F!==w&&c(_,F)):P&16?z&16?Ot(w,F,_,v,y,b,T,C,A):ft(w,y,b,!0):(P&8&&c(_,""),z&16&&K(F,_,v,y,b,T,C,A))},Ge=(h,d,_,v,y,b,T,C,A)=>{h=h||st,d=d||st;const w=h.length,P=d.length,F=Math.min(w,P);let I;for(I=0;IP?ft(h,y,b,!0,!1,F):K(d,_,v,y,b,T,C,A,F)},Ot=(h,d,_,v,y,b,T,C,A)=>{let w=0;const P=d.length;let F=h.length-1,I=P-1;for(;w<=F&&w<=I;){const z=h[w],$=d[w]=A?Ve(d[w]):Ce(d[w]);if(ut(z,$))x(z,$,_,null,y,b,T,C,A);else break;w++}for(;w<=F&&w<=I;){const z=h[F],$=d[I]=A?Ve(d[I]):Ce(d[I]);if(ut(z,$))x(z,$,_,null,y,b,T,C,A);else break;F--,I--}if(w>F){if(w<=I){const z=I+1,$=zI)for(;w<=F;)ve(h[w],y,b,!0),w++;else{const z=w,$=w,X=new Map;for(w=$;w<=I;w++){const ge=d[w]=A?Ve(d[w]):Ce(d[w]);ge.key!=null&&X.set(ge.key,w)}let W,ue=0;const de=I-$+1;let we=!1,Se=0;const at=new Array(de);for(w=0;w=de){ve(ge,y,b,!0);continue}let Ee;if(ge.key!=null)Ee=X.get(ge.key);else for(W=$;W<=I;W++)if(at[W-$]===0&&ut(ge,d[W])){Ee=W;break}Ee===void 0?ve(ge,y,b,!0):(at[Ee-$]=w+1,Ee>=Se?Se=Ee:we=!0,x(ge,d[Ee],_,null,y,b,T,C,A),ue++)}const Js=we?Pl(at):st;for(W=Js.length-1,w=de-1;w>=0;w--){const ge=$+w,Ee=d[ge],ei=d[ge+1],ti=ge+1{const{el:b,type:T,transition:C,children:A,shapeFlag:w}=h;if(w&6){Ke(h.component.subTree,d,_,v);return}if(w&128){h.suspense.move(d,_,v);return}if(w&64){T.move(h,d,_,ct);return}if(T===Pe){i(b,d,_);for(let F=0;FC.enter(b),y);else{const{leave:F,delayLeave:I,afterLeave:z}=C,$=()=>{h.ctx.isUnmounted?r(b):i(b,d,_)},X=()=>{F(b,()=>{$(),z&&z()})};I?I(b,$,X):X()}else i(b,d,_)},ve=(h,d,_,v=!1,y=!1)=>{const{type:b,props:T,ref:C,children:A,dynamicChildren:w,shapeFlag:P,patchFlag:F,dirs:I,cacheIndex:z}=h;if(F===-2&&(y=!1),C!=null&&(De(),yt(C,null,_,h,!0),ze()),z!=null&&(d.renderCache[z]=void 0),P&256){d.ctx.deactivate(h);return}const $=P&1&&I,X=!bt(h);let W;if(X&&(W=T&&T.onVnodeBeforeUnmount)&&Me(W,d,h),P&6)en(h.component,_,v);else{if(P&128){h.suspense.unmount(_,v);return}$&&Ye(h,null,d,"beforeUnmount"),P&64?h.type.remove(h,d,_,ct,v):w&&!w.hasOnce&&(b!==Pe||F>0&&F&64)?ft(w,d,_,!1,!0):(b===Pe&&F&384||!y&&P&16)&&ft(A,d,_),v&&ks(h)}(X&&(W=T&&T.onVnodeUnmounted)||$)&&me(()=>{W&&Me(W,d,h),$&&Ye(h,null,d,"unmounted")},_)},ks=h=>{const{type:d,el:_,anchor:v,transition:y}=h;if(d===Pe){Jr(_,v);return}if(d===fs){M(h);return}const b=()=>{r(_),y&&!y.persisted&&y.afterLeave&&y.afterLeave()};if(h.shapeFlag&1&&y&&!y.persisted){const{leave:T,delayLeave:C}=y,A=()=>T(_,b);C?C(h.el,b,A):A()}else b()},Jr=(h,d)=>{let _;for(;h!==d;)_=p(h),r(h),h=_;r(d)},en=(h,d,_)=>{const{bum:v,scope:y,job:b,subTree:T,um:C,m:A,a:w,parent:P,slots:{__:F}}=h;hi(A),hi(w),v&&ss(v),P&&U(F)&&F.forEach(I=>{P.renderCache[I]=void 0}),y.stop(),b&&(b.flags|=8,ve(T,h,d,_)),C&&me(C,d),me(()=>{h.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},ft=(h,d,_,v=!1,y=!1,b=0)=>{for(let T=b;T{if(h.shapeFlag&6)return It(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const d=p(h.anchor||h.el),_=d&&d[Jn];return _?p(_):d};let es=!1;const Qs=(h,d,_)=>{h==null?d._vnode&&ve(d._vnode,null,null,!0):x(d._vnode||null,h,d,null,null,null,_),d._vnode=h,es||(es=!0,ni(),gr(),es=!1)},ct={p:x,um:ve,m:Ke,r:ks,mt:N,mc:K,pc:Y,pbc:q,n:It,o:t};return{render:Qs,hydrate:void 0,createApp:wl(Qs)}}function os({type:t,props:e},s){return s==="svg"&&t==="foreignObject"||s==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:s}function Xe({effect:t,job:e},s){s?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Il(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Pr(t,e,s=!1){const i=t.children,r=e.children;if(U(i)&&U(r))for(let n=0;n>1,t[s[o]]0&&(e[i]=s[n-1]),s[n]=i)}}for(n=s.length,l=s[n-1];n-- >0;)s[n]=l,l=e[l];return s}function Lr(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Lr(e)}function hi(t){if(t)for(let e=0;ezt(Ll);function Nt(t,e,s){return Dr(t,e,s)}function Dr(t,e,s=G){const{immediate:i,deep:r,flush:n,once:l}=s,o=le({},s),f=e&&i||!e&&n!=="post";let a;if(Tt){if(n==="sync"){const g=Dl();a=g.__watcherHandles||(g.__watcherHandles=[])}else if(!f){const g=()=>{};return g.stop=Fe,g.resume=Fe,g.pause=Fe,g}}const c=he;o.call=(g,m,x)=>Re(g,c,m,x);let u=!1;n==="post"?o.scheduler=g=>{me(g,c&&c.suspense)}:n!=="sync"&&(u=!0,o.scheduler=(g,m)=>{m?g():Ws(g)}),o.augmentJob=g=>{e&&(g.flags|=4),u&&(g.flags|=2,c&&(g.id=c.uid,g.i=c))};const p=Kn(t,e,o);return Tt&&(a?a.push(p):f&&p()),p}function zl(t,e,s){const i=this.proxy,r=ie(t)?t.includes(".")?zr(i,t):()=>i[t]:t.bind(i,i);let n;B(e)?n=e:(n=e.handler,s=e);const l=Rt(this),o=Dr(r,n.bind(i),s);return l(),o}function zr(t,e){const s=e.split(".");return()=>{let i=t;for(let r=0;re==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${qe(e)}Modifiers`]||t[`${Je(e)}Modifiers`];function Ul(t,e,...s){if(t.isUnmounted)return;const i=t.vnode.props||G;let r=s;const n=e.startsWith("update:"),l=n&&Nl(i,e.slice(7));l&&(l.trim&&(r=s.map(c=>ie(c)?c.trim():c)),l.number&&(r=s.map(an)));let o,f=i[o=ts(e)]||i[o=ts(qe(e))];!f&&n&&(f=i[o=ts(Je(e))]),f&&Re(f,t,6,r);const a=i[o+"Once"];if(a){if(!t.emitted)t.emitted={};else if(t.emitted[o])return;t.emitted[o]=!0,Re(a,t,6,r)}}function Nr(t,e,s=!1){const i=e.emitsCache,r=i.get(t);if(r!==void 0)return r;const n=t.emits;let l={},o=!1;if(!B(t)){const f=a=>{const c=Nr(a,e,!0);c&&(o=!0,le(l,c))};!s&&e.mixins.length&&e.mixins.forEach(f),t.extends&&f(t.extends),t.mixins&&t.mixins.forEach(f)}return!n&&!o?(se(t)&&i.set(t,null),null):(U(n)?n.forEach(f=>l[f]=null):le(l,n),se(t)&&i.set(t,l),l)}function Qt(t,e){return!t||!Gt(e)?!1:(e=e.slice(2).replace(/Once$/,""),j(t,e[0].toLowerCase()+e.slice(1))||j(t,Je(e))||j(t,e))}function ui(t){const{type:e,vnode:s,proxy:i,withProxy:r,propsOptions:[n],slots:l,attrs:o,emit:f,render:a,renderCache:c,props:u,data:p,setupState:g,ctx:m,inheritAttrs:x}=t,E=Ht(t);let S,L;try{if(s.shapeFlag&4){const M=r||i,O=M;S=Ce(a.call(O,M,c,u,g,p,m)),L=o}else{const M=e;S=Ce(M.length>1?M(u,{attrs:o,slots:l,emit:f}):M(u,null)),L=e.props?o:Bl(o)}}catch(M){wt.length=0,Zt(M,t,1),S=We(nt)}let R=S;if(L&&x!==!1){const M=Object.keys(L),{shapeFlag:O}=R;M.length&&O&7&&(n&&M.some(Rs)&&(L=$l(L,n)),R=lt(R,L,!1,!0))}return s.dirs&&(R=lt(R,null,!1,!0),R.dirs=R.dirs?R.dirs.concat(s.dirs):s.dirs),s.transition&&qs(R,s.transition),S=R,Ht(E),S}const Bl=t=>{let e;for(const s in t)(s==="class"||s==="style"||Gt(s))&&((e||(e={}))[s]=t[s]);return e},$l=(t,e)=>{const s={};for(const i in t)(!Rs(i)||!(i.slice(9)in e))&&(s[i]=t[i]);return s};function Vl(t,e,s){const{props:i,children:r,component:n}=t,{props:l,children:o,patchFlag:f}=e,a=n.emitsOptions;if(e.dirs||e.transition)return!0;if(s&&f>=0){if(f&1024)return!0;if(f&16)return i?di(i,l,a):!!l;if(f&8){const c=e.dynamicProps;for(let u=0;ut.__isSuspense;function jl(t,e){e&&e.pendingBranch?U(t)?e.effects.push(...t):e.effects.push(t):kn(t)}const Pe=Symbol.for("v-fgt"),Jt=Symbol.for("v-txt"),nt=Symbol.for("v-cmt"),fs=Symbol.for("v-stc"),wt=[];let _e=null;function Br(t=!1){wt.push(_e=t?null:[])}function Wl(){wt.pop(),_e=wt[wt.length-1]||null}let Ct=1;function pi(t,e=!1){Ct+=t,t<0&&_e&&e&&(_e.hasOnce=!0)}function ql(t){return t.dynamicChildren=Ct>0?_e||st:null,Wl(),Ct>0&&_e&&_e.push(t),t}function $r(t,e,s,i,r,n){return ql($e(t,e,s,i,r,n,!0))}function Vr(t){return t?t.__v_isVNode===!0:!1}function ut(t,e){return t.type===e.type&&t.key===e.key}const Hr=({key:t})=>t??null,Ut=({ref:t,ref_key:e,ref_for:s})=>(typeof t=="number"&&(t=""+t),t!=null?ie(t)||ne(t)||B(t)?{i:Te,r:t,k:e,f:!!s}:t:null);function $e(t,e=null,s=null,i=0,r=null,n=t===Pe?0:1,l=!1,o=!1){const f={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Hr(e),ref:e&&Ut(e),scopeId:_r,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Te};return o?(Xs(f,s),n&128&&t.normalize(f)):s&&(f.shapeFlag|=ie(s)?8:16),Ct>0&&!l&&_e&&(f.patchFlag>0||n&6)&&f.patchFlag!==32&&_e.push(f),f}const We=Gl;function Gl(t,e=null,s=null,i=0,r=null,n=!1){if((!t||t===pl)&&(t=nt),Vr(t)){const o=lt(t,e,!0);return s&&Xs(o,s),Ct>0&&!n&&_e&&(o.shapeFlag&6?_e[_e.indexOf(t)]=o:_e.push(o)),o.patchFlag=-2,o}if(to(t)&&(t=t.__vccOpts),e){e=Kl(e);let{class:o,style:f}=e;o&&!ie(o)&&(e.class=Ls(o)),se(f)&&(js(f)&&!U(f)&&(f=le({},f)),e.style=Ps(f))}const l=ie(t)?1:Ur(t)?128:el(t)?64:se(t)?4:B(t)?2:0;return $e(t,e,s,i,r,l,n,!0)}function Kl(t){return t?js(t)||Cr(t)?le({},t):t:null}function lt(t,e,s=!1,i=!1){const{props:r,ref:n,patchFlag:l,children:o,transition:f}=t,a=e?Wr(r||{},e):r,c={__v_isVNode:!0,__v_skip:!0,type:t.type,props:a,key:a&&Hr(a),ref:e&&e.ref?s&&n?U(n)?n.concat(Ut(e)):[n,Ut(e)]:Ut(e):n,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Pe?l===-1?16:l|16:l,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:f,component:t.component,suspense:t.suspense,ssContent:t.ssContent&<(t.ssContent),ssFallback:t.ssFallback&<(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return f&&i&&qs(c,f.clone(c)),c}function jr(t=" ",e=0){return We(Jt,null,t,e)}function Ce(t){return t==null||typeof t=="boolean"?We(nt):U(t)?We(Pe,null,t.slice()):Vr(t)?Ve(t):We(Jt,null,String(t))}function Ve(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:lt(t)}function Xs(t,e){let s=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(U(e))s=16;else if(typeof e=="object")if(i&65){const r=e.default;r&&(r._c&&(r._d=!1),Xs(t,r()),r._c&&(r._d=!0));return}else{s=32;const r=e._;!r&&!Cr(e)?e._ctx=Te:r===3&&Te&&(Te.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else B(e)?(e={default:e,_ctx:Te},s=32):(e=String(e),i&64?(s=16,e=[jr(e)]):s=8);t.children=e,t.shapeFlag|=s}function Wr(...t){const e={};for(let s=0;she||Te;let Wt,Ms;{const t=Xt(),e=(s,i)=>{let r;return(r=t[s])||(r=t[s]=[]),r.push(i),n=>{r.length>1?r.forEach(l=>l(n)):r[0](n)}};Wt=e("__VUE_INSTANCE_SETTERS__",s=>he=s),Ms=e("__VUE_SSR_SETTERS__",s=>Tt=s)}const Rt=t=>{const e=he;return Wt(t),t.scope.on(),()=>{t.scope.off(),Wt(e)}},gi=()=>{he&&he.scope.off(),Wt(null)};function Gr(t){return t.vnode.shapeFlag&4}let Tt=!1;function kl(t,e=!1,s=!1){e&&Ms(e);const{props:i,children:r}=t.vnode,n=Gr(t);El(t,i,n,e),Tl(t,r,s||e);const l=n?Ql(t,e):void 0;return e&&Ms(!1),l}function Ql(t,e){const s=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,gl);const{setup:i}=s;if(i){De();const r=t.setupContext=i.length>1?eo(t):null,n=Rt(t),l=Ft(i,t,0,[t.props,r]),o=Yi(l);if(ze(),n(),(o||t.sp)&&!bt(t)&&xr(t),o){if(l.then(gi,gi),e)return l.then(f=>{mi(t,f)}).catch(f=>{Zt(f,t,0)});t.asyncDep=l}else mi(t,l)}else Kr(t)}function mi(t,e,s){B(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:se(e)&&(t.setupState=ur(e)),Kr(t)}function Kr(t,e,s){const i=t.type;t.render||(t.render=i.render||Fe);{const r=Rt(t);De();try{ml(t)}finally{ze(),r()}}}const Jl={get(t,e){return re(t,"get",""),t[e]}};function eo(t){const e=s=>{t.exposed=s||{}};return{attrs:new Proxy(t.attrs,Jl),slots:t.slots,emit:t.emit,expose:e}}function Zs(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(ur(Un(t.exposed)),{get(e,s){if(s in e)return e[s];if(s in vt)return vt[s](t)},has(e,s){return s in e||s in vt}})):t.proxy}function to(t){return B(t)&&"__vccOpts"in t}const so=(t,e)=>qn(t,e,Tt),io="3.5.18";/** +* @vue/runtime-dom v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let As;const _i=typeof window<"u"&&window.trustedTypes;if(_i)try{As=_i.createPolicy("vue",{createHTML:t=>t})}catch{}const Yr=As?t=>As.createHTML(t):t=>t,ro="http://www.w3.org/2000/svg",no="http://www.w3.org/1998/Math/MathML",Ie=typeof document<"u"?document:null,xi=Ie&&Ie.createElement("template"),lo={insert:(t,e,s)=>{e.insertBefore(t,s||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,s,i)=>{const r=e==="svg"?Ie.createElementNS(ro,t):e==="mathml"?Ie.createElementNS(no,t):s?Ie.createElement(t,{is:s}):Ie.createElement(t);return t==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:t=>Ie.createTextNode(t),createComment:t=>Ie.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>Ie.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,s,i,r,n){const l=s?s.previousSibling:e.lastChild;if(r&&(r===n||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),s),!(r===n||!(r=r.nextSibling)););else{xi.innerHTML=Yr(i==="svg"?`${t}`:i==="mathml"?`${t}`:t);const o=xi.content;if(i==="svg"||i==="mathml"){const f=o.firstChild;for(;f.firstChild;)o.appendChild(f.firstChild);o.removeChild(f)}e.insertBefore(o,s)}return[l?l.nextSibling:e.firstChild,s?s.previousSibling:e.lastChild]}},oo=Symbol("_vtc");function fo(t,e,s){const i=t[oo];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):s?t.setAttribute("class",e):t.className=e}const yi=Symbol("_vod"),co=Symbol("_vsh"),ao=Symbol(""),ho=/(^|;)\s*display\s*:/;function uo(t,e,s){const i=t.style,r=ie(s);let n=!1;if(s&&!r){if(e)if(ie(e))for(const l of e.split(";")){const o=l.slice(0,l.indexOf(":")).trim();s[o]==null&&Bt(i,o,"")}else for(const l in e)s[l]==null&&Bt(i,l,"");for(const l in s)l==="display"&&(n=!0),Bt(i,l,s[l])}else if(r){if(e!==s){const l=i[ao];l&&(s+=";"+l),i.cssText=s,n=ho.test(s)}}else e&&t.removeAttribute("style");yi in t&&(t[yi]=n?i.display:"",t[co]&&(i.display="none"))}const bi=/\s*!important$/;function Bt(t,e,s){if(U(s))s.forEach(i=>Bt(t,e,i));else if(s==null&&(s=""),e.startsWith("--"))t.setProperty(e,s);else{const i=po(t,e);bi.test(s)?t.setProperty(Je(i),s.replace(bi,""),"important"):t[i]=s}}const vi=["Webkit","Moz","ms"],cs={};function po(t,e){const s=cs[e];if(s)return s;let i=qe(e);if(i!=="filter"&&i in t)return cs[e]=i;i=Xi(i);for(let r=0;ras||(yo.then(()=>as=0),as=Date.now());function vo(t,e){const s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;Re(wo(i,s.value),e,5,[i])};return s.value=t,s.attached=bo(),s}function wo(t,e){if(U(e)){const s=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{s.call(t),t._stopped=!0},e.map(i=>r=>!r._stopped&&i&&i(r))}else return e}const Ci=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,So=(t,e,s,i,r,n)=>{const l=r==="svg";e==="class"?fo(t,i,l):e==="style"?uo(t,s,i):Gt(e)?Rs(e)||_o(t,e,s,i,n):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Eo(t,e,i,l))?(Ei(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Si(t,e,i,l,n,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!ie(i))?Ei(t,qe(e),i,n,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),Si(t,e,i,l))};function Eo(t,e,s,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Ci(e)&&B(s));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const r=t.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Ci(e)&&ie(s)?!1:e in t}const Mo=le({patchProp:So},lo);let Ti;function Ao(){return Ti||(Ti=Rl(Mo))}const Co=(...t)=>{const e=Ao().createApp(...t),{mount:s}=e;return e.mount=i=>{const r=Fo(i);if(!r)return;const n=e._component;!B(n)&&!n.render&&!n.template&&(n.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=s(r,!1,To(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},e};function To(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Fo(t){return ie(t)?document.querySelector(t):t}function St(t){let e=t[0],s=t[1],i=t[2];return Math.sqrt(e*e+s*s+i*i)}function Cs(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Ro(t,e,s,i){return t[0]=e,t[1]=s,t[2]=i,t}function Fi(t,e,s){return t[0]=e[0]+s[0],t[1]=e[1]+s[1],t[2]=e[2]+s[2],t}function Ri(t,e,s){return t[0]=e[0]-s[0],t[1]=e[1]-s[1],t[2]=e[2]-s[2],t}function Oo(t,e,s){return t[0]=e[0]*s[0],t[1]=e[1]*s[1],t[2]=e[2]*s[2],t}function Io(t,e,s){return t[0]=e[0]/s[0],t[1]=e[1]/s[1],t[2]=e[2]/s[2],t}function hs(t,e,s){return t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Po(t,e){let s=e[0]-t[0],i=e[1]-t[1],r=e[2]-t[2];return Math.sqrt(s*s+i*i+r*r)}function Lo(t,e){let s=e[0]-t[0],i=e[1]-t[1],r=e[2]-t[2];return s*s+i*i+r*r}function Oi(t){let e=t[0],s=t[1],i=t[2];return e*e+s*s+i*i}function Do(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function zo(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function Ts(t,e){let s=e[0],i=e[1],r=e[2],n=s*s+i*i+r*r;return n>0&&(n=1/Math.sqrt(n)),t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}function Xr(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Ii(t,e,s){let i=e[0],r=e[1],n=e[2],l=s[0],o=s[1],f=s[2];return t[0]=r*f-n*o,t[1]=n*l-i*f,t[2]=i*o-r*l,t}function No(t,e,s,i){let r=e[0],n=e[1],l=e[2];return t[0]=r+i*(s[0]-r),t[1]=n+i*(s[1]-n),t[2]=l+i*(s[2]-l),t}function Uo(t,e,s,i,r){const n=Math.exp(-i*r);let l=e[0],o=e[1],f=e[2];return t[0]=s[0]+(l-s[0])*n,t[1]=s[1]+(o-s[1])*n,t[2]=s[2]+(f-s[2])*n,t}function Bo(t,e,s){let i=e[0],r=e[1],n=e[2],l=s[3]*i+s[7]*r+s[11]*n+s[15];return l=l||1,t[0]=(s[0]*i+s[4]*r+s[8]*n+s[12])/l,t[1]=(s[1]*i+s[5]*r+s[9]*n+s[13])/l,t[2]=(s[2]*i+s[6]*r+s[10]*n+s[14])/l,t}function $o(t,e,s){let i=e[0],r=e[1],n=e[2],l=s[3]*i+s[7]*r+s[11]*n+s[15];return l=l||1,t[0]=(s[0]*i+s[4]*r+s[8]*n)/l,t[1]=(s[1]*i+s[5]*r+s[9]*n)/l,t[2]=(s[2]*i+s[6]*r+s[10]*n)/l,t}function Vo(t,e,s){let i=e[0],r=e[1],n=e[2];return t[0]=i*s[0]+r*s[3]+n*s[6],t[1]=i*s[1]+r*s[4]+n*s[7],t[2]=i*s[2]+r*s[5]+n*s[8],t}function Ho(t,e,s){let i=e[0],r=e[1],n=e[2],l=s[0],o=s[1],f=s[2],a=s[3],c=o*n-f*r,u=f*i-l*n,p=l*r-o*i,g=o*p-f*u,m=f*c-l*p,x=l*u-o*c,E=a*2;return c*=E,u*=E,p*=E,g*=2,m*=2,x*=2,t[0]=i+c+g,t[1]=r+u+m,t[2]=n+p+x,t}const jo=function(){const t=[0,0,0],e=[0,0,0];return function(s,i){Cs(t,s),Cs(e,i),Ts(t,t),Ts(e,e);let r=Xr(t,e);return r>1?0:r<-1?Math.PI:Math.acos(r)}}();function Wo(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}class xe extends Array{constructor(e=0,s=e,i=e){return super(e,s,i),this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(e){this[0]=e}set y(e){this[1]=e}set z(e){this[2]=e}set(e,s=e,i=e){return e.length?this.copy(e):(Ro(this,e,s,i),this)}copy(e){return Cs(this,e),this}add(e,s){return s?Fi(this,e,s):Fi(this,this,e),this}sub(e,s){return s?Ri(this,e,s):Ri(this,this,e),this}multiply(e){return e.length?Oo(this,this,e):hs(this,this,e),this}divide(e){return e.length?Io(this,this,e):hs(this,this,1/e),this}inverse(e=this){return zo(this,e),this}len(){return St(this)}distance(e){return e?Po(this,e):St(this)}squaredLen(){return Oi(this)}squaredDistance(e){return e?Lo(this,e):Oi(this)}negate(e=this){return Do(this,e),this}cross(e,s){return s?Ii(this,e,s):Ii(this,this,e),this}scale(e){return hs(this,this,e),this}normalize(){return Ts(this,this),this}dot(e){return Xr(this,e)}equals(e){return Wo(this,e)}applyMatrix3(e){return Vo(this,this,e),this}applyMatrix4(e){return Bo(this,this,e),this}scaleRotateMatrix4(e){return $o(this,this,e),this}applyQuaternion(e){return Ho(this,this,e),this}angle(e){return jo(this,e)}lerp(e,s){return No(this,this,e,s),this}smoothLerp(e,s,i){return Uo(this,this,e,s,i),this}clone(){return new xe(this[0],this[1],this[2])}fromArray(e,s=0){return this[0]=e[s],this[1]=e[s+1],this[2]=e[s+2],this}toArray(e=[],s=0){return e[s]=this[0],e[s+1]=this[1],e[s+2]=this[2],e}transformDirection(e){const s=this[0],i=this[1],r=this[2];return this[0]=e[0]*s+e[4]*i+e[8]*r,this[1]=e[1]*s+e[5]*i+e[9]*r,this[2]=e[2]*s+e[6]*i+e[10]*r,this.normalize()}}const Pi=new xe;let qo=1,Go=1,Li=!1;class Ko{constructor(e,s={}){e.canvas||console.error("gl not passed as first argument to Geometry"),this.gl=e,this.attributes=s,this.id=qo++,this.VAOs={},this.drawRange={start:0,count:0},this.instancedCount=0,this.gl.renderer.bindVertexArray(null),this.gl.renderer.currentGeometry=null,this.glState=this.gl.renderer.state;for(let i in s)this.addAttribute(i,s[i])}addAttribute(e,s){if(this.attributes[e]=s,s.id=Go++,s.size=s.size||1,s.type=s.type||(s.data.constructor===Float32Array?this.gl.FLOAT:s.data.constructor===Uint16Array?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT),s.target=e==="index"?this.gl.ELEMENT_ARRAY_BUFFER:this.gl.ARRAY_BUFFER,s.normalized=s.normalized||!1,s.stride=s.stride||0,s.offset=s.offset||0,s.count=s.count||(s.stride?s.data.byteLength/s.stride:s.data.length/s.size),s.divisor=s.instanced||0,s.needsUpdate=!1,s.usage=s.usage||this.gl.STATIC_DRAW,s.buffer||this.updateAttribute(s),s.divisor){if(this.isInstanced=!0,this.instancedCount&&this.instancedCount!==s.count*s.divisor)return console.warn("geometry has multiple instanced buffers of different length"),this.instancedCount=Math.min(this.instancedCount,s.count*s.divisor);this.instancedCount=s.count*s.divisor}else e==="index"?this.drawRange.count=s.count:this.attributes.index||(this.drawRange.count=Math.max(this.drawRange.count,s.count))}updateAttribute(e){const s=!e.buffer;s&&(e.buffer=this.gl.createBuffer()),this.glState.boundBuffer!==e.buffer&&(this.gl.bindBuffer(e.target,e.buffer),this.glState.boundBuffer=e.buffer),s?this.gl.bufferData(e.target,e.data,e.usage):this.gl.bufferSubData(e.target,0,e.data),e.needsUpdate=!1}setIndex(e){this.addAttribute("index",e)}setDrawRange(e,s){this.drawRange.start=e,this.drawRange.count=s}setInstancedCount(e){this.instancedCount=e}createVAO(e){this.VAOs[e.attributeOrder]=this.gl.renderer.createVertexArray(),this.gl.renderer.bindVertexArray(this.VAOs[e.attributeOrder]),this.bindAttributes(e)}bindAttributes(e){e.attributeLocations.forEach((s,{name:i,type:r})=>{if(!this.attributes[i]){console.warn(`active attribute ${i} not being supplied`);return}const n=this.attributes[i];this.gl.bindBuffer(n.target,n.buffer),this.glState.boundBuffer=n.buffer;let l=1;r===35674&&(l=2),r===35675&&(l=3),r===35676&&(l=4);const o=n.size/l,f=l===1?0:l*l*4,a=l===1?0:l*4;for(let c=0;c{const o=this.attributes[l];o.needsUpdate&&this.updateAttribute(o)});let i=2;((r=this.attributes.index)==null?void 0:r.type)===this.gl.UNSIGNED_INT&&(i=4),this.isInstanced?this.attributes.index?this.gl.renderer.drawElementsInstanced(s,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*i,this.instancedCount):this.gl.renderer.drawArraysInstanced(s,this.drawRange.start,this.drawRange.count,this.instancedCount):this.attributes.index?this.gl.drawElements(s,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*i):this.gl.drawArrays(s,this.drawRange.start,this.drawRange.count)}getPosition(){const e=this.attributes.position;if(e.data)return e;if(!Li)return console.warn("No position buffer data found to compute bounds"),Li=!0}computeBoundingBox(e){e||(e=this.getPosition());const s=e.data,i=e.size;this.bounds||(this.bounds={min:new xe,max:new xe,center:new xe,scale:new xe,radius:1/0});const r=this.bounds.min,n=this.bounds.max,l=this.bounds.center,o=this.bounds.scale;r.set(1/0),n.set(-1/0);for(let f=0,a=s.length;f{let l=this.uniforms[n.uniformName];for(const o of n.nameComponents){if(!l)break;if(o in l)l=l[o];else{if(Array.isArray(l.value))break;l=void 0;break}}if(!l)return Ni(`Active uniform ${n.name} has not been supplied`);if(l&&l.value===void 0)return Ni(`${n.name} uniform is missing a value parameter`);if(l.value.texture)return s=s+1,l.value.update(s),us(this.gl,n.type,r,s);if(l.value.length&&l.value[0].texture){const o=[];return l.value.forEach(f=>{s=s+1,f.update(s),o.push(s)}),us(this.gl,n.type,r,o)}us(this.gl,n.type,r,l.value)}),this.applyState(),e&&this.gl.renderer.setFrontFace(this.frontFace===this.gl.CCW?this.gl.CW:this.gl.CCW)}remove(){this.gl.deleteProgram(this.program)}}function us(t,e,s,i){i=i.length?Zo(i):i;const r=t.renderer.state.uniformLocations.get(s);if(i.length)if(r===void 0||r.length!==i.length)t.renderer.state.uniformLocations.set(s,i.slice(0));else{if(ko(r,i))return;r.set?r.set(i):Qo(r,i),t.renderer.state.uniformLocations.set(s,r)}else{if(r===i)return;t.renderer.state.uniformLocations.set(s,i)}switch(e){case 5126:return i.length?t.uniform1fv(s,i):t.uniform1f(s,i);case 35664:return t.uniform2fv(s,i);case 35665:return t.uniform3fv(s,i);case 35666:return t.uniform4fv(s,i);case 35670:case 5124:case 35678:case 36306:case 35680:case 36289:return i.length?t.uniform1iv(s,i):t.uniform1i(s,i);case 35671:case 35667:return t.uniform2iv(s,i);case 35672:case 35668:return t.uniform3iv(s,i);case 35673:case 35669:return t.uniform4iv(s,i);case 35674:return t.uniformMatrix2fv(s,!1,i);case 35675:return t.uniformMatrix3fv(s,!1,i);case 35676:return t.uniformMatrix4fv(s,!1,i)}}function zi(t){let e=t.split(` +`);for(let s=0;s100||(console.warn(t),ds++,ds>100&&console.warn("More than 100 program warnings - stopping logs."))}const ps=new xe;let Jo=1;class ef{constructor({canvas:e=document.createElement("canvas"),width:s=300,height:i=150,dpr:r=1,alpha:n=!1,depth:l=!0,stencil:o=!1,antialias:f=!1,premultipliedAlpha:a=!1,preserveDrawingBuffer:c=!1,powerPreference:u="default",autoClear:p=!0,webgl:g=2}={}){const m={alpha:n,depth:l,stencil:o,antialias:f,premultipliedAlpha:a,preserveDrawingBuffer:c,powerPreference:u};this.dpr=r,this.alpha=n,this.color=!0,this.depth=l,this.stencil=o,this.premultipliedAlpha=a,this.autoClear=p,this.id=Jo++,g===2&&(this.gl=e.getContext("webgl2",m)),this.isWebgl2=!!this.gl,this.gl||(this.gl=e.getContext("webgl",m)),this.gl||console.error("unable to create webgl context"),this.gl.renderer=this,this.setSize(s,i),this.state={},this.state.blendFunc={src:this.gl.ONE,dst:this.gl.ZERO},this.state.blendEquation={modeRGB:this.gl.FUNC_ADD},this.state.cullFace=!1,this.state.frontFace=this.gl.CCW,this.state.depthMask=!0,this.state.depthFunc=this.gl.LEQUAL,this.state.premultiplyAlpha=!1,this.state.flipY=!1,this.state.unpackAlignment=4,this.state.framebuffer=null,this.state.viewport={x:0,y:0,width:null,height:null},this.state.textureUnits=[],this.state.activeTextureUnit=0,this.state.boundBuffer=null,this.state.uniformLocations=new Map,this.state.currentProgram=null,this.extensions={},this.isWebgl2?(this.getExtension("EXT_color_buffer_float"),this.getExtension("OES_texture_float_linear")):(this.getExtension("OES_texture_float"),this.getExtension("OES_texture_float_linear"),this.getExtension("OES_texture_half_float"),this.getExtension("OES_texture_half_float_linear"),this.getExtension("OES_element_index_uint"),this.getExtension("OES_standard_derivatives"),this.getExtension("EXT_sRGB"),this.getExtension("WEBGL_depth_texture"),this.getExtension("WEBGL_draw_buffers")),this.getExtension("WEBGL_compressed_texture_astc"),this.getExtension("EXT_texture_compression_bptc"),this.getExtension("WEBGL_compressed_texture_s3tc"),this.getExtension("WEBGL_compressed_texture_etc1"),this.getExtension("WEBGL_compressed_texture_pvrtc"),this.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),this.vertexAttribDivisor=this.getExtension("ANGLE_instanced_arrays","vertexAttribDivisor","vertexAttribDivisorANGLE"),this.drawArraysInstanced=this.getExtension("ANGLE_instanced_arrays","drawArraysInstanced","drawArraysInstancedANGLE"),this.drawElementsInstanced=this.getExtension("ANGLE_instanced_arrays","drawElementsInstanced","drawElementsInstancedANGLE"),this.createVertexArray=this.getExtension("OES_vertex_array_object","createVertexArray","createVertexArrayOES"),this.bindVertexArray=this.getExtension("OES_vertex_array_object","bindVertexArray","bindVertexArrayOES"),this.deleteVertexArray=this.getExtension("OES_vertex_array_object","deleteVertexArray","deleteVertexArrayOES"),this.drawBuffers=this.getExtension("WEBGL_draw_buffers","drawBuffers","drawBuffersWEBGL"),this.parameters={},this.parameters.maxTextureUnits=this.gl.getParameter(this.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),this.parameters.maxAnisotropy=this.getExtension("EXT_texture_filter_anisotropic")?this.gl.getParameter(this.getExtension("EXT_texture_filter_anisotropic").MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}setSize(e,s){this.width=e,this.height=s,this.gl.canvas.width=e*this.dpr,this.gl.canvas.height=s*this.dpr,this.gl.canvas.style&&Object.assign(this.gl.canvas.style,{width:e+"px",height:s+"px"})}setViewport(e,s,i=0,r=0){this.state.viewport.width===e&&this.state.viewport.height===s||(this.state.viewport.width=e,this.state.viewport.height=s,this.state.viewport.x=i,this.state.viewport.y=r,this.gl.viewport(i,r,e,s))}setScissor(e,s,i=0,r=0){this.gl.scissor(i,r,e,s)}enable(e){this.state[e]!==!0&&(this.gl.enable(e),this.state[e]=!0)}disable(e){this.state[e]!==!1&&(this.gl.disable(e),this.state[e]=!1)}setBlendFunc(e,s,i,r){this.state.blendFunc.src===e&&this.state.blendFunc.dst===s&&this.state.blendFunc.srcAlpha===i&&this.state.blendFunc.dstAlpha===r||(this.state.blendFunc.src=e,this.state.blendFunc.dst=s,this.state.blendFunc.srcAlpha=i,this.state.blendFunc.dstAlpha=r,i!==void 0?this.gl.blendFuncSeparate(e,s,i,r):this.gl.blendFunc(e,s))}setBlendEquation(e,s){e=e||this.gl.FUNC_ADD,!(this.state.blendEquation.modeRGB===e&&this.state.blendEquation.modeAlpha===s)&&(this.state.blendEquation.modeRGB=e,this.state.blendEquation.modeAlpha=s,s!==void 0?this.gl.blendEquationSeparate(e,s):this.gl.blendEquation(e))}setCullFace(e){this.state.cullFace!==e&&(this.state.cullFace=e,this.gl.cullFace(e))}setFrontFace(e){this.state.frontFace!==e&&(this.state.frontFace=e,this.gl.frontFace(e))}setDepthMask(e){this.state.depthMask!==e&&(this.state.depthMask=e,this.gl.depthMask(e))}setDepthFunc(e){this.state.depthFunc!==e&&(this.state.depthFunc=e,this.gl.depthFunc(e))}setStencilMask(e){this.state.stencilMask!==e&&(this.state.stencilMask=e,this.gl.stencilMask(e))}setStencilFunc(e,s,i){this.state.stencilFunc===e&&this.state.stencilRef===s&&this.state.stencilFuncMask===i||(this.state.stencilFunc=e||this.gl.ALWAYS,this.state.stencilRef=s||0,this.state.stencilFuncMask=i||0,this.gl.stencilFunc(e||this.gl.ALWAYS,s||0,i||0))}setStencilOp(e,s,i){this.state.stencilFail===e&&this.state.stencilDepthFail===s&&this.state.stencilDepthPass===i||(this.state.stencilFail=e,this.state.stencilDepthFail=s,this.state.stencilDepthPass=i,this.gl.stencilOp(e,s,i))}activeTexture(e){this.state.activeTextureUnit!==e&&(this.state.activeTextureUnit=e,this.gl.activeTexture(this.gl.TEXTURE0+e))}bindFramebuffer({target:e=this.gl.FRAMEBUFFER,buffer:s=null}={}){this.state.framebuffer!==s&&(this.state.framebuffer=s,this.gl.bindFramebuffer(e,s))}getExtension(e,s,i){return s&&this.gl[s]?this.gl[s].bind(this.gl):(this.extensions[e]||(this.extensions[e]=this.gl.getExtension(e)),s?this.extensions[e]?this.extensions[e][i].bind(this.extensions[e]):null:this.extensions[e])}sortOpaque(e,s){return e.renderOrder!==s.renderOrder?e.renderOrder-s.renderOrder:e.program.id!==s.program.id?e.program.id-s.program.id:e.zDepth!==s.zDepth?e.zDepth-s.zDepth:s.id-e.id}sortTransparent(e,s){return e.renderOrder!==s.renderOrder?e.renderOrder-s.renderOrder:e.zDepth!==s.zDepth?s.zDepth-e.zDepth:s.id-e.id}sortUI(e,s){return e.renderOrder!==s.renderOrder?e.renderOrder-s.renderOrder:e.program.id!==s.program.id?e.program.id-s.program.id:s.id-e.id}getRenderList({scene:e,camera:s,frustumCull:i,sort:r}){let n=[];if(s&&i&&s.updateFrustum(),e.traverse(l=>{if(!l.visible)return!0;l.draw&&(i&&l.frustumCulled&&s&&!s.frustumIntersectsMesh(l)||n.push(l))}),r){const l=[],o=[],f=[];n.forEach(a=>{a.program.transparent?a.program.depthTest?o.push(a):f.push(a):l.push(a),a.zDepth=0,!(a.renderOrder!==0||!a.program.depthTest||!s)&&(a.worldMatrix.getTranslation(ps),ps.applyMatrix4(s.projectionViewMatrix),a.zDepth=ps.z)}),l.sort(this.sortOpaque),o.sort(this.sortTransparent),f.sort(this.sortUI),n=l.concat(o,f)}return n}render({scene:e,camera:s,target:i=null,update:r=!0,sort:n=!0,frustumCull:l=!0,clear:o}){i===null?(this.bindFramebuffer(),this.setViewport(this.width*this.dpr,this.height*this.dpr)):(this.bindFramebuffer(i),this.setViewport(i.width,i.height)),(o||this.autoClear&&o!==!1)&&(this.depth&&(!i||i.depth)&&(this.enable(this.gl.DEPTH_TEST),this.setDepthMask(!0)),(this.stencil||!i||i.stencil)&&(this.enable(this.gl.STENCIL_TEST),this.setStencilMask(255)),this.gl.clear((this.color?this.gl.COLOR_BUFFER_BIT:0)|(this.depth?this.gl.DEPTH_BUFFER_BIT:0)|(this.stencil?this.gl.STENCIL_BUFFER_BIT:0))),r&&e.updateMatrixWorld(),s&&s.updateMatrixWorld(),this.getRenderList({scene:e,camera:s,frustumCull:l,sort:n}).forEach(a=>{a.draw({camera:s})})}}function tf(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function sf(t,e,s,i,r){return t[0]=e,t[1]=s,t[2]=i,t[3]=r,t}function rf(t,e){let s=e[0],i=e[1],r=e[2],n=e[3],l=s*s+i*i+r*r+n*n;return l>0&&(l=1/Math.sqrt(l)),t[0]=s*l,t[1]=i*l,t[2]=r*l,t[3]=n*l,t}function nf(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function lf(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function of(t,e,s){s=s*.5;let i=Math.sin(s);return t[0]=i*e[0],t[1]=i*e[1],t[2]=i*e[2],t[3]=Math.cos(s),t}function Ui(t,e,s){let i=e[0],r=e[1],n=e[2],l=e[3],o=s[0],f=s[1],a=s[2],c=s[3];return t[0]=i*c+l*o+r*a-n*f,t[1]=r*c+l*f+n*o-i*a,t[2]=n*c+l*a+i*f-r*o,t[3]=l*c-i*o-r*f-n*a,t}function ff(t,e,s){s*=.5;let i=e[0],r=e[1],n=e[2],l=e[3],o=Math.sin(s),f=Math.cos(s);return t[0]=i*f+l*o,t[1]=r*f+n*o,t[2]=n*f-r*o,t[3]=l*f-i*o,t}function cf(t,e,s){s*=.5;let i=e[0],r=e[1],n=e[2],l=e[3],o=Math.sin(s),f=Math.cos(s);return t[0]=i*f-n*o,t[1]=r*f+l*o,t[2]=n*f+i*o,t[3]=l*f-r*o,t}function af(t,e,s){s*=.5;let i=e[0],r=e[1],n=e[2],l=e[3],o=Math.sin(s),f=Math.cos(s);return t[0]=i*f+r*o,t[1]=r*f-i*o,t[2]=n*f+l*o,t[3]=l*f-n*o,t}function hf(t,e,s,i){let r=e[0],n=e[1],l=e[2],o=e[3],f=s[0],a=s[1],c=s[2],u=s[3],p,g,m,x,E;return g=r*f+n*a+l*c+o*u,g<0&&(g=-g,f=-f,a=-a,c=-c,u=-u),1-g>1e-6?(p=Math.acos(g),m=Math.sin(p),x=Math.sin((1-i)*p)/m,E=Math.sin(i*p)/m):(x=1-i,E=i),t[0]=x*r+E*f,t[1]=x*n+E*a,t[2]=x*l+E*c,t[3]=x*o+E*u,t}function uf(t,e){let s=e[0],i=e[1],r=e[2],n=e[3],l=s*s+i*i+r*r+n*n,o=l?1/l:0;return t[0]=-s*o,t[1]=-i*o,t[2]=-r*o,t[3]=n*o,t}function df(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function pf(t,e){let s=e[0]+e[4]+e[8],i;if(s>0)i=Math.sqrt(s+1),t[3]=.5*i,i=.5/i,t[0]=(e[5]-e[7])*i,t[1]=(e[6]-e[2])*i,t[2]=(e[1]-e[3])*i;else{let r=0;e[4]>e[0]&&(r=1),e[8]>e[r*3+r]&&(r=2);let n=(r+1)%3,l=(r+2)%3;i=Math.sqrt(e[r*3+r]-e[n*3+n]-e[l*3+l]+1),t[r]=.5*i,i=.5/i,t[3]=(e[n*3+l]-e[l*3+n])*i,t[n]=(e[n*3+r]+e[r*3+n])*i,t[l]=(e[l*3+r]+e[r*3+l])*i}return t}function gf(t,e,s="YXZ"){let i=Math.sin(e[0]*.5),r=Math.cos(e[0]*.5),n=Math.sin(e[1]*.5),l=Math.cos(e[1]*.5),o=Math.sin(e[2]*.5),f=Math.cos(e[2]*.5);return s==="XYZ"?(t[0]=i*l*f+r*n*o,t[1]=r*n*f-i*l*o,t[2]=r*l*o+i*n*f,t[3]=r*l*f-i*n*o):s==="YXZ"?(t[0]=i*l*f+r*n*o,t[1]=r*n*f-i*l*o,t[2]=r*l*o-i*n*f,t[3]=r*l*f+i*n*o):s==="ZXY"?(t[0]=i*l*f-r*n*o,t[1]=r*n*f+i*l*o,t[2]=r*l*o+i*n*f,t[3]=r*l*f-i*n*o):s==="ZYX"?(t[0]=i*l*f-r*n*o,t[1]=r*n*f+i*l*o,t[2]=r*l*o-i*n*f,t[3]=r*l*f+i*n*o):s==="YZX"?(t[0]=i*l*f+r*n*o,t[1]=r*n*f+i*l*o,t[2]=r*l*o-i*n*f,t[3]=r*l*f-i*n*o):s==="XZY"&&(t[0]=i*l*f-r*n*o,t[1]=r*n*f-i*l*o,t[2]=r*l*o+i*n*f,t[3]=r*l*f+i*n*o),t}const mf=tf,_f=sf,xf=nf,yf=rf;class bf extends Array{constructor(e=0,s=0,i=0,r=1){super(e,s,i,r),this.onChange=()=>{},this._target=this;const n=["0","1","2","3"];return new Proxy(this,{set(l,o){const f=Reflect.set(...arguments);return f&&n.includes(o)&&l.onChange(),f}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}get w(){return this[3]}set x(e){this._target[0]=e,this.onChange()}set y(e){this._target[1]=e,this.onChange()}set z(e){this._target[2]=e,this.onChange()}set w(e){this._target[3]=e,this.onChange()}identity(){return lf(this._target),this.onChange(),this}set(e,s,i,r){return e.length?this.copy(e):(_f(this._target,e,s,i,r),this.onChange(),this)}rotateX(e){return ff(this._target,this._target,e),this.onChange(),this}rotateY(e){return cf(this._target,this._target,e),this.onChange(),this}rotateZ(e){return af(this._target,this._target,e),this.onChange(),this}inverse(e=this._target){return uf(this._target,e),this.onChange(),this}conjugate(e=this._target){return df(this._target,e),this.onChange(),this}copy(e){return mf(this._target,e),this.onChange(),this}normalize(e=this._target){return yf(this._target,e),this.onChange(),this}multiply(e,s){return s?Ui(this._target,e,s):Ui(this._target,this._target,e),this.onChange(),this}dot(e){return xf(this._target,e)}fromMatrix3(e){return pf(this._target,e),this.onChange(),this}fromEuler(e,s){return gf(this._target,e,e.order),s||this.onChange(),this}fromAxisAngle(e,s){return of(this._target,e,s),this.onChange(),this}slerp(e,s){return hf(this._target,this._target,e,s),this.onChange(),this}fromArray(e,s=0){return this._target[0]=e[s],this._target[1]=e[s+1],this._target[2]=e[s+2],this._target[3]=e[s+3],this.onChange(),this}toArray(e=[],s=0){return e[s]=this[0],e[s+1]=this[1],e[s+2]=this[2],e[s+3]=this[3],e}}const vf=1e-6;function wf(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Sf(t,e,s,i,r,n,l,o,f,a,c,u,p,g,m,x,E){return t[0]=e,t[1]=s,t[2]=i,t[3]=r,t[4]=n,t[5]=l,t[6]=o,t[7]=f,t[8]=a,t[9]=c,t[10]=u,t[11]=p,t[12]=g,t[13]=m,t[14]=x,t[15]=E,t}function Ef(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Mf(t,e){let s=e[0],i=e[1],r=e[2],n=e[3],l=e[4],o=e[5],f=e[6],a=e[7],c=e[8],u=e[9],p=e[10],g=e[11],m=e[12],x=e[13],E=e[14],S=e[15],L=s*o-i*l,R=s*f-r*l,M=s*a-n*l,O=i*f-r*o,D=i*a-n*o,V=r*a-n*f,K=c*x-u*m,ee=c*E-p*m,q=c*S-g*m,Q=u*E-p*x,k=u*S-g*x,te=p*S-g*E,N=L*te-R*k+M*Q+O*q-D*ee+V*K;return N?(N=1/N,t[0]=(o*te-f*k+a*Q)*N,t[1]=(r*k-i*te-n*Q)*N,t[2]=(x*V-E*D+S*O)*N,t[3]=(p*D-u*V-g*O)*N,t[4]=(f*q-l*te-a*ee)*N,t[5]=(s*te-r*q+n*ee)*N,t[6]=(E*M-m*V-S*R)*N,t[7]=(c*V-p*M+g*R)*N,t[8]=(l*k-o*q+a*K)*N,t[9]=(i*q-s*k-n*K)*N,t[10]=(m*D-x*M+S*L)*N,t[11]=(u*M-c*D-g*L)*N,t[12]=(o*ee-l*Q-f*K)*N,t[13]=(s*Q-i*ee+r*K)*N,t[14]=(x*R-m*O-E*L)*N,t[15]=(c*O-u*R+p*L)*N,t):null}function Zr(t){let e=t[0],s=t[1],i=t[2],r=t[3],n=t[4],l=t[5],o=t[6],f=t[7],a=t[8],c=t[9],u=t[10],p=t[11],g=t[12],m=t[13],x=t[14],E=t[15],S=e*l-s*n,L=e*o-i*n,R=e*f-r*n,M=s*o-i*l,O=s*f-r*l,D=i*f-r*o,V=a*m-c*g,K=a*x-u*g,ee=a*E-p*g,q=c*x-u*m,Q=c*E-p*m,k=u*E-p*x;return S*k-L*Q+R*q+M*ee-O*K+D*V}function Bi(t,e,s){let i=e[0],r=e[1],n=e[2],l=e[3],o=e[4],f=e[5],a=e[6],c=e[7],u=e[8],p=e[9],g=e[10],m=e[11],x=e[12],E=e[13],S=e[14],L=e[15],R=s[0],M=s[1],O=s[2],D=s[3];return t[0]=R*i+M*o+O*u+D*x,t[1]=R*r+M*f+O*p+D*E,t[2]=R*n+M*a+O*g+D*S,t[3]=R*l+M*c+O*m+D*L,R=s[4],M=s[5],O=s[6],D=s[7],t[4]=R*i+M*o+O*u+D*x,t[5]=R*r+M*f+O*p+D*E,t[6]=R*n+M*a+O*g+D*S,t[7]=R*l+M*c+O*m+D*L,R=s[8],M=s[9],O=s[10],D=s[11],t[8]=R*i+M*o+O*u+D*x,t[9]=R*r+M*f+O*p+D*E,t[10]=R*n+M*a+O*g+D*S,t[11]=R*l+M*c+O*m+D*L,R=s[12],M=s[13],O=s[14],D=s[15],t[12]=R*i+M*o+O*u+D*x,t[13]=R*r+M*f+O*p+D*E,t[14]=R*n+M*a+O*g+D*S,t[15]=R*l+M*c+O*m+D*L,t}function Af(t,e,s){let i=s[0],r=s[1],n=s[2],l,o,f,a,c,u,p,g,m,x,E,S;return e===t?(t[12]=e[0]*i+e[4]*r+e[8]*n+e[12],t[13]=e[1]*i+e[5]*r+e[9]*n+e[13],t[14]=e[2]*i+e[6]*r+e[10]*n+e[14],t[15]=e[3]*i+e[7]*r+e[11]*n+e[15]):(l=e[0],o=e[1],f=e[2],a=e[3],c=e[4],u=e[5],p=e[6],g=e[7],m=e[8],x=e[9],E=e[10],S=e[11],t[0]=l,t[1]=o,t[2]=f,t[3]=a,t[4]=c,t[5]=u,t[6]=p,t[7]=g,t[8]=m,t[9]=x,t[10]=E,t[11]=S,t[12]=l*i+c*r+m*n+e[12],t[13]=o*i+u*r+x*n+e[13],t[14]=f*i+p*r+E*n+e[14],t[15]=a*i+g*r+S*n+e[15]),t}function Cf(t,e,s){let i=s[0],r=s[1],n=s[2];return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*n,t[9]=e[9]*n,t[10]=e[10]*n,t[11]=e[11]*n,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Tf(t,e,s,i){let r=i[0],n=i[1],l=i[2],o=Math.hypot(r,n,l),f,a,c,u,p,g,m,x,E,S,L,R,M,O,D,V,K,ee,q,Q,k,te,N,Ue;return Math.abs(o)0?(S=Math.sqrt(E+1)*2,e[3]=.25*S,e[0]=(p-m)/S,e[1]=(g-a)/S,e[2]=(f-c)/S):o>u&&o>x?(S=Math.sqrt(1+o-u-x)*2,e[3]=(p-m)/S,e[0]=.25*S,e[1]=(f+c)/S,e[2]=(g+a)/S):u>x?(S=Math.sqrt(1+u-o-x)*2,e[3]=(g-a)/S,e[0]=(f+c)/S,e[1]=.25*S,e[2]=(p+m)/S):(S=Math.sqrt(1+x-o-u)*2,e[3]=(f-c)/S,e[0]=(g+a)/S,e[1]=(p+m)/S,e[2]=.25*S),e}}();function Of(t,e,s,i){let r=St([t[0],t[1],t[2]]);const n=St([t[4],t[5],t[6]]),l=St([t[8],t[9],t[10]]);Zr(t)<0&&(r=-r),s[0]=t[12],s[1]=t[13],s[2]=t[14];const f=t.slice(),a=1/r,c=1/n,u=1/l;f[0]*=a,f[1]*=a,f[2]*=a,f[4]*=c,f[5]*=c,f[6]*=c,f[8]*=u,f[9]*=u,f[10]*=u,Qr(e,f),i[0]=r,i[1]=n,i[2]=l}function If(t,e,s,i){const r=t,n=e[0],l=e[1],o=e[2],f=e[3],a=n+n,c=l+l,u=o+o,p=n*a,g=n*c,m=n*u,x=l*c,E=l*u,S=o*u,L=f*a,R=f*c,M=f*u,O=i[0],D=i[1],V=i[2];return r[0]=(1-(x+S))*O,r[1]=(g+M)*O,r[2]=(m-R)*O,r[3]=0,r[4]=(g-M)*D,r[5]=(1-(p+S))*D,r[6]=(E+L)*D,r[7]=0,r[8]=(m+R)*V,r[9]=(E-L)*V,r[10]=(1-(p+x))*V,r[11]=0,r[12]=s[0],r[13]=s[1],r[14]=s[2],r[15]=1,r}function Pf(t,e){let s=e[0],i=e[1],r=e[2],n=e[3],l=s+s,o=i+i,f=r+r,a=s*l,c=i*l,u=i*o,p=r*l,g=r*o,m=r*f,x=n*l,E=n*o,S=n*f;return t[0]=1-u-m,t[1]=c+S,t[2]=p-E,t[3]=0,t[4]=c-S,t[5]=1-a-m,t[6]=g+x,t[7]=0,t[8]=p+E,t[9]=g-x,t[10]=1-a-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Lf(t,e,s,i,r){let n=1/Math.tan(e/2),l=1/(i-r);return t[0]=n/s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(r+i)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*r*i*l,t[15]=0,t}function Df(t,e,s,i,r,n,l){let o=1/(e-s),f=1/(i-r),a=1/(n-l);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*f,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*a,t[11]=0,t[12]=(e+s)*o,t[13]=(r+i)*f,t[14]=(l+n)*a,t[15]=1,t}function zf(t,e,s,i){let r=e[0],n=e[1],l=e[2],o=i[0],f=i[1],a=i[2],c=r-s[0],u=n-s[1],p=l-s[2],g=c*c+u*u+p*p;g===0?p=1:(g=1/Math.sqrt(g),c*=g,u*=g,p*=g);let m=f*p-a*u,x=a*c-o*p,E=o*u-f*c;return g=m*m+x*x+E*E,g===0&&(a?o+=1e-6:f?a+=1e-6:f+=1e-6,m=f*p-a*u,x=a*c-o*p,E=o*u-f*c,g=m*m+x*x+E*E),g=1/Math.sqrt(g),m*=g,x*=g,E*=g,t[0]=m,t[1]=x,t[2]=E,t[3]=0,t[4]=u*E-p*x,t[5]=p*m-c*E,t[6]=c*x-u*m,t[7]=0,t[8]=c,t[9]=u,t[10]=p,t[11]=0,t[12]=r,t[13]=n,t[14]=l,t[15]=1,t}function $i(t,e,s){return t[0]=e[0]+s[0],t[1]=e[1]+s[1],t[2]=e[2]+s[2],t[3]=e[3]+s[3],t[4]=e[4]+s[4],t[5]=e[5]+s[5],t[6]=e[6]+s[6],t[7]=e[7]+s[7],t[8]=e[8]+s[8],t[9]=e[9]+s[9],t[10]=e[10]+s[10],t[11]=e[11]+s[11],t[12]=e[12]+s[12],t[13]=e[13]+s[13],t[14]=e[14]+s[14],t[15]=e[15]+s[15],t}function Vi(t,e,s){return t[0]=e[0]-s[0],t[1]=e[1]-s[1],t[2]=e[2]-s[2],t[3]=e[3]-s[3],t[4]=e[4]-s[4],t[5]=e[5]-s[5],t[6]=e[6]-s[6],t[7]=e[7]-s[7],t[8]=e[8]-s[8],t[9]=e[9]-s[9],t[10]=e[10]-s[10],t[11]=e[11]-s[11],t[12]=e[12]-s[12],t[13]=e[13]-s[13],t[14]=e[14]-s[14],t[15]=e[15]-s[15],t}function Nf(t,e,s){return t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t[3]=e[3]*s,t[4]=e[4]*s,t[5]=e[5]*s,t[6]=e[6]*s,t[7]=e[7]*s,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12]*s,t[13]=e[13]*s,t[14]=e[14]*s,t[15]=e[15]*s,t}class qt extends Array{constructor(e=1,s=0,i=0,r=0,n=0,l=1,o=0,f=0,a=0,c=0,u=1,p=0,g=0,m=0,x=0,E=1){return super(e,s,i,r,n,l,o,f,a,c,u,p,g,m,x,E),this}get x(){return this[12]}get y(){return this[13]}get z(){return this[14]}get w(){return this[15]}set x(e){this[12]=e}set y(e){this[13]=e}set z(e){this[14]=e}set w(e){this[15]=e}set(e,s,i,r,n,l,o,f,a,c,u,p,g,m,x,E){return e.length?this.copy(e):(Sf(this,e,s,i,r,n,l,o,f,a,c,u,p,g,m,x,E),this)}translate(e,s=this){return Af(this,s,e),this}rotate(e,s,i=this){return Tf(this,i,e,s),this}scale(e,s=this){return Cf(this,s,typeof e=="number"?[e,e,e]:e),this}add(e,s){return s?$i(this,e,s):$i(this,this,e),this}sub(e,s){return s?Vi(this,e,s):Vi(this,this,e),this}multiply(e,s){return e.length?s?Bi(this,e,s):Bi(this,this,e):Nf(this,this,e),this}identity(){return Ef(this),this}copy(e){return wf(this,e),this}fromPerspective({fov:e,aspect:s,near:i,far:r}={}){return Lf(this,e,s,i,r),this}fromOrthogonal({left:e,right:s,bottom:i,top:r,near:n,far:l}){return Df(this,e,s,i,r,n,l),this}fromQuaternion(e){return Pf(this,e),this}setPosition(e){return this.x=e[0],this.y=e[1],this.z=e[2],this}inverse(e=this){return Mf(this,e),this}compose(e,s,i){return If(this,e,s,i),this}decompose(e,s,i){return Of(this,e,s,i),this}getRotation(e){return Qr(e,this),this}getTranslation(e){return Ff(e,this),this}getScaling(e){return kr(e,this),this}getMaxScaleOnAxis(){return Rf(this)}lookAt(e,s,i){return zf(this,e,s,i),this}determinant(){return Zr(this)}fromArray(e,s=0){return this[0]=e[s],this[1]=e[s+1],this[2]=e[s+2],this[3]=e[s+3],this[4]=e[s+4],this[5]=e[s+5],this[6]=e[s+6],this[7]=e[s+7],this[8]=e[s+8],this[9]=e[s+9],this[10]=e[s+10],this[11]=e[s+11],this[12]=e[s+12],this[13]=e[s+13],this[14]=e[s+14],this[15]=e[s+15],this}toArray(e=[],s=0){return e[s]=this[0],e[s+1]=this[1],e[s+2]=this[2],e[s+3]=this[3],e[s+4]=this[4],e[s+5]=this[5],e[s+6]=this[6],e[s+7]=this[7],e[s+8]=this[8],e[s+9]=this[9],e[s+10]=this[10],e[s+11]=this[11],e[s+12]=this[12],e[s+13]=this[13],e[s+14]=this[14],e[s+15]=this[15],e}}function Uf(t,e,s="YXZ"){return s==="XYZ"?(t[1]=Math.asin(Math.min(Math.max(e[8],-1),1)),Math.abs(e[8])<.99999?(t[0]=Math.atan2(-e[9],e[10]),t[2]=Math.atan2(-e[4],e[0])):(t[0]=Math.atan2(e[6],e[5]),t[2]=0)):s==="YXZ"?(t[0]=Math.asin(-Math.min(Math.max(e[9],-1),1)),Math.abs(e[9])<.99999?(t[1]=Math.atan2(e[8],e[10]),t[2]=Math.atan2(e[1],e[5])):(t[1]=Math.atan2(-e[2],e[0]),t[2]=0)):s==="ZXY"?(t[0]=Math.asin(Math.min(Math.max(e[6],-1),1)),Math.abs(e[6])<.99999?(t[1]=Math.atan2(-e[2],e[10]),t[2]=Math.atan2(-e[4],e[5])):(t[1]=0,t[2]=Math.atan2(e[1],e[0]))):s==="ZYX"?(t[1]=Math.asin(-Math.min(Math.max(e[2],-1),1)),Math.abs(e[2])<.99999?(t[0]=Math.atan2(e[6],e[10]),t[2]=Math.atan2(e[1],e[0])):(t[0]=0,t[2]=Math.atan2(-e[4],e[5]))):s==="YZX"?(t[2]=Math.asin(Math.min(Math.max(e[1],-1),1)),Math.abs(e[1])<.99999?(t[0]=Math.atan2(-e[9],e[5]),t[1]=Math.atan2(-e[2],e[0])):(t[0]=0,t[1]=Math.atan2(e[8],e[10]))):s==="XZY"&&(t[2]=Math.asin(-Math.min(Math.max(e[4],-1),1)),Math.abs(e[4])<.99999?(t[0]=Math.atan2(e[6],e[5]),t[1]=Math.atan2(e[8],e[0])):(t[0]=Math.atan2(-e[9],e[10]),t[1]=0)),t}const Hi=new qt;class Bf extends Array{constructor(e=0,s=e,i=e,r="YXZ"){super(e,s,i),this.order=r,this.onChange=()=>{},this._target=this;const n=["0","1","2"];return new Proxy(this,{set(l,o){const f=Reflect.set(...arguments);return f&&n.includes(o)&&l.onChange(),f}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(e){this._target[0]=e,this.onChange()}set y(e){this._target[1]=e,this.onChange()}set z(e){this._target[2]=e,this.onChange()}set(e,s=e,i=e){return e.length?this.copy(e):(this._target[0]=e,this._target[1]=s,this._target[2]=i,this.onChange(),this)}copy(e){return this._target[0]=e[0],this._target[1]=e[1],this._target[2]=e[2],this.onChange(),this}reorder(e){return this._target.order=e,this.onChange(),this}fromRotationMatrix(e,s=this.order){return Uf(this._target,e,s),this.onChange(),this}fromQuaternion(e,s=this.order,i){return Hi.fromQuaternion(e),this._target.fromRotationMatrix(Hi,s),i||this.onChange(),this}fromArray(e,s=0){return this._target[0]=e[s],this._target[1]=e[s+1],this._target[2]=e[s+2],this}toArray(e=[],s=0){return e[s]=this[0],e[s+1]=this[1],e[s+2]=this[2],e}}class $f{constructor(){this.parent=null,this.children=[],this.visible=!0,this.matrix=new qt,this.worldMatrix=new qt,this.matrixAutoUpdate=!0,this.worldMatrixNeedsUpdate=!1,this.position=new xe,this.quaternion=new bf,this.scale=new xe(1),this.rotation=new Bf,this.up=new xe(0,1,0),this.rotation._target.onChange=()=>this.quaternion.fromEuler(this.rotation,!0),this.quaternion._target.onChange=()=>this.rotation.fromQuaternion(this.quaternion,void 0,!0)}setParent(e,s=!0){this.parent&&e!==this.parent&&this.parent.removeChild(this,!1),this.parent=e,s&&e&&e.addChild(this,!1)}addChild(e,s=!0){~this.children.indexOf(e)||this.children.push(e),s&&e.setParent(this,!1)}removeChild(e,s=!0){~this.children.indexOf(e)&&this.children.splice(this.children.indexOf(e),1),s&&e.setParent(null,!1)}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.worldMatrixNeedsUpdate||e)&&(this.parent===null?this.worldMatrix.copy(this.matrix):this.worldMatrix.multiply(this.parent.worldMatrix,this.matrix),this.worldMatrixNeedsUpdate=!1,e=!0);for(let s=0,i=this.children.length;si&&i({mesh:this,camera:e}));let s=this.program.cullFace&&this.worldMatrix.determinant()<0;this.program.use({flipFaces:s}),this.geometry.draw({mode:this.mode,program:this.program}),this.afterRenderCallbacks.forEach(i=>i&&i({mesh:this,camera:e}))}}const Wi={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#00ff00",blue:"#0000ff",fuchsia:"#ff00ff",cyan:"#00ffff",yellow:"#ffff00",orange:"#ff8000"};function qi(t){t.length===4&&(t=t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]);const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e||console.warn(`Unable to convert hex string ${t} to rgb values`),[parseInt(e[1],16)/255,parseInt(e[2],16)/255,parseInt(e[3],16)/255]}function ec(t){return t=parseInt(t),[(t>>16&255)/255,(t>>8&255)/255,(t&255)/255]}function Gi(t){return t===void 0?[0,0,0]:arguments.length===3?arguments:isNaN(t)?t[0]==="#"?qi(t):Wi[t.toLowerCase()]?qi(Wi[t.toLowerCase()]):(console.warn("Color format not recognised"),[0,0,0]):ec(t)}class Ki extends Array{constructor(e){return Array.isArray(e)?super(...e):super(...Gi(...arguments))}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}set r(e){this[0]=e}set g(e){this[1]=e}set b(e){this[2]=e}set(e){return Array.isArray(e)?this.copy(e):this.copy(Gi(...arguments))}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this}}class tc extends Ko{constructor(e,{attributes:s={}}={}){Object.assign(s,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(e,s)}}const sc=` +attribute vec2 uv; +attribute vec2 position; + +varying vec2 vUv; + +void main() { + vUv = uv; + gl_Position = vec4(position, 0, 1); +} +`,ic=` +precision highp float; + +uniform float uTime; +uniform vec3 uResolution; +uniform vec2 uFocal; +uniform vec2 uRotation; +uniform float uStarSpeed; +uniform float uDensity; +uniform float uHueShift; +uniform float uSpeed; +uniform vec2 uMouse; +uniform float uGlowIntensity; +uniform float uSaturation; +uniform bool uMouseRepulsion; +uniform float uTwinkleIntensity; +uniform float uRotationSpeed; +uniform float uRepulsionStrength; +uniform float uMouseActiveFactor; +uniform float uAutoCenterRepulsion; +uniform bool uTransparent; + +varying vec2 vUv; + +#define NUM_LAYER 4.0 +#define STAR_COLOR_CUTOFF 0.2 +#define MAT45 mat2(0.7071, -0.7071, 0.7071, 0.7071) +#define PERIOD 3.0 + +float Hash21(vec2 p) { + p = fract(p * vec2(123.34, 456.21)); + p += dot(p, p + 45.32); + return fract(p.x * p.y); +} + +float tri(float x) { + return abs(fract(x) * 2.0 - 1.0); +} + +float tris(float x) { + float t = fract(x); + return 1.0 - smoothstep(0.0, 1.0, abs(2.0 * t - 1.0)); +} + +float trisn(float x) { + float t = fract(x); + return 2.0 * (1.0 - smoothstep(0.0, 1.0, abs(2.0 * t - 1.0))) - 1.0; +} + +vec3 hsv2rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} + +float Star(vec2 uv, float flare) { + float d = length(uv); + float m = (0.05 * uGlowIntensity) / d; + float rays = smoothstep(0.0, 1.0, 1.0 - abs(uv.x * uv.y * 1000.0)); + m += rays * flare * uGlowIntensity; + uv *= MAT45; + rays = smoothstep(0.0, 1.0, 1.0 - abs(uv.x * uv.y * 1000.0)); + m += rays * 0.3 * flare * uGlowIntensity; + m *= smoothstep(1.0, 0.2, d); + return m; +} + +vec3 StarLayer(vec2 uv) { + vec3 col = vec3(0.0); + + vec2 gv = fract(uv) - 0.5; + vec2 id = floor(uv); + + for (int y = -1; y <= 1; y++) { + for (int x = -1; x <= 1; x++) { + vec2 offset = vec2(float(x), float(y)); + vec2 si = id + vec2(float(x), float(y)); + float seed = Hash21(si); + float size = fract(seed * 345.32); + float glossLocal = tri(uStarSpeed / (PERIOD * seed + 1.0)); + float flareSize = smoothstep(0.9, 1.0, size) * glossLocal; + + float red = smoothstep(STAR_COLOR_CUTOFF, 1.0, Hash21(si + 1.0)) + STAR_COLOR_CUTOFF; + float blu = smoothstep(STAR_COLOR_CUTOFF, 1.0, Hash21(si + 3.0)) + STAR_COLOR_CUTOFF; + float grn = min(red, blu) * seed; + vec3 base = vec3(red, grn, blu); + + float hue = atan(base.g - base.r, base.b - base.r) / (2.0 * 3.14159) + 0.5; + hue = fract(hue + uHueShift / 360.0); + float sat = length(base - vec3(dot(base, vec3(0.299, 0.587, 0.114)))) * uSaturation; + float val = max(max(base.r, base.g), base.b); + base = hsv2rgb(vec3(hue, sat, val)); + + vec2 pad = vec2(tris(seed * 34.0 + uTime * uSpeed / 10.0), tris(seed * 38.0 + uTime * uSpeed / 30.0)) - 0.5; + + float star = Star(gv - offset - pad, flareSize); + vec3 color = base; + + float twinkle = trisn(uTime * uSpeed + seed * 6.2831) * 0.5 + 1.0; + twinkle = mix(1.0, twinkle, uTwinkleIntensity); + star *= twinkle; + + col += star * size * color; + } + } + + return col; +} + +void main() { + vec2 focalPx = uFocal * uResolution.xy; + vec2 uv = (vUv * uResolution.xy - focalPx) / uResolution.y; + + vec2 mouseNorm = uMouse - vec2(0.5); + + if (uAutoCenterRepulsion > 0.0) { + vec2 centerUV = vec2(0.0, 0.0); // Center in UV space + float centerDist = length(uv - centerUV); + vec2 repulsion = normalize(uv - centerUV) * (uAutoCenterRepulsion / (centerDist + 0.1)); + uv += repulsion * 0.05; + } else if (uMouseRepulsion) { + vec2 mousePosUV = (uMouse * uResolution.xy - focalPx) / uResolution.y; + float mouseDist = length(uv - mousePosUV); + vec2 repulsion = normalize(uv - mousePosUV) * (uRepulsionStrength / (mouseDist + 0.1)); + uv += repulsion * 0.05 * uMouseActiveFactor; + } else { + vec2 mouseOffset = mouseNorm * 0.1 * uMouseActiveFactor; + uv += mouseOffset; + } + + float autoRotAngle = uTime * uRotationSpeed; + mat2 autoRot = mat2(cos(autoRotAngle), -sin(autoRotAngle), sin(autoRotAngle), cos(autoRotAngle)); + uv = autoRot * uv; + + uv = mat2(uRotation.x, -uRotation.y, uRotation.y, uRotation.x) * uv; + + vec3 col = vec3(0.0); + + for (float i = 0.0; i < 1.0; i += 1.0 / NUM_LAYER) { + float depth = fract(i + uStarSpeed * uSpeed); + float scale = mix(20.0 * uDensity, 0.5 * uDensity, depth); + float fade = depth * smoothstep(1.0, 0.9, depth); + col += StarLayer(uv * scale + i * 453.32) * fade; + } + + if (uTransparent) { + float alpha = length(col); + alpha = smoothstep(0.0, 0.3, alpha); // Enhance contrast + alpha = min(alpha, 1.0); // Clamp to maximum 1.0 + gl_FragColor = vec4(col, alpha); + } else { + gl_FragColor = vec4(col, 1.0); + } +} +`,rc=tl({__name:"Galaxy",props:{focal:{default:()=>[.5,.5]},rotation:{default:()=>[1,0]},starSpeed:{default:.5},density:{default:1},hueShift:{default:140},disableAnimation:{type:Boolean,default:!1},speed:{default:1},glowIntensity:{default:.3},saturation:{default:0},twinkleIntensity:{default:.3},rotationSpeed:{default:.1},transparent:{type:Boolean,default:!1}},setup(t){const e=t,s=sl("ctnDom");let i=null;const r=()=>{if(!s.value)return;const n=s.value,l=new ef({alpha:e.transparent,premultipliedAlpha:!1}),o=l.gl;e.transparent?(o.enable(o.BLEND),o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),o.clearColor(0,0,0,0)):o.clearColor(0,0,0,1);let f;function a(){l.setSize(n.offsetWidth*1,n.offsetHeight*1),f&&(f.uniforms.uResolution.value=new Ki(o.canvas.width,o.canvas.height,o.canvas.width/o.canvas.height))}window.addEventListener("resize",a,!1),a();const c=new tc(o);f=new Xo(o,{vertex:sc,fragment:ic,uniforms:{uTime:{value:0},uResolution:{value:new Ki(o.canvas.width,o.canvas.height,o.canvas.width/o.canvas.height)},uFocal:{value:new Float32Array(e.focal)},uRotation:{value:new Float32Array(e.rotation)},uStarSpeed:{value:e.starSpeed},uDensity:{value:e.density},uHueShift:{value:e.hueShift},uSpeed:{value:e.speed},uMouse:{value:new Float32Array([.5,.5])},uGlowIntensity:{value:e.glowIntensity},uSaturation:{value:e.saturation},uMouseRepulsion:{value:!1},uTwinkleIntensity:{value:e.twinkleIntensity},uRotationSpeed:{value:e.rotationSpeed},uRepulsionStrength:{value:0},uMouseActiveFactor:{value:0},uAutoCenterRepulsion:{value:0},uTransparent:{value:e.transparent}}});const u=new Jf(o,{geometry:c,program:f});let p;function g(m){p=requestAnimationFrame(g),e.disableAnimation||(f.uniforms.uTime.value=m*.001,f.uniforms.uStarSpeed.value=m*.001*e.starSpeed/10),l.render({scene:u})}p=requestAnimationFrame(g),n.appendChild(o.canvas),i=()=>{var m;cancelAnimationFrame(p),window.removeEventListener("resize",a),n.removeChild(o.canvas),(m=o.getExtension("WEBGL_lose_context"))==null||m.loseContext()}};return vr(()=>{i==null||i(),r()}),Gs(()=>{i==null||i()}),Nt(()=>e,()=>{i==null||i(),r()},{deep:!0}),(n,l)=>(Br(),$r("div",Wr({ref_key:"ctnDom",ref:s,class:"relative w-full h-full"},n.$attrs),null,16))}}),nc={class:"app"},lc={__name:"App",setup(t){return(e,s)=>(Br(),$r("div",nc,[We(rc,{class:"galaxy-background",density:1.5,"glow-intensity":.5,saturation:.8,"hue-shift":240}),s[0]||(s[0]=$e("div",{class:"content"},[$e("h1",null,"Coming Soon"),$e("p",null,"Ariege.io")],-1)),s[1]||(s[1]=$e("footer",{class:"footer"},[$e("p",null,[jr("Galaxy background by "),$e("a",{href:"https://vue-bits.dev",target:"_blank",rel:"noopener"},"Vue Bits")])],-1))]))}};Co(lc).mount("#app"); diff --git a/config/machines/prod-castle/ariege-home-dist/assets/index-DsYavE7Z.css b/config/machines/prod-castle/ariege-home-dist/assets/index-DsYavE7Z.css new file mode 100644 index 0000000..ea0a1ae --- /dev/null +++ b/config/machines/prod-castle/ariege-home-dist/assets/index-DsYavE7Z.css @@ -0,0 +1 @@ +*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden}.app{position:relative;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center}.galaxy-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1}.content{text-align:center;color:#fff;z-index:1}.content h1{font-size:4rem;font-weight:300;margin-bottom:1rem;background:linear-gradient(45deg,#fff,#a8edea);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:glow 2s ease-in-out infinite alternate}.content p{font-size:1.5rem;font-weight:200;opacity:.8;letter-spacing:2px}@keyframes glow{0%{text-shadow:0 0 20px rgba(168,237,234,.3)}to{text-shadow:0 0 30px rgba(168,237,234,.6)}}.footer{position:fixed;bottom:20px;left:20px;z-index:1}.footer p{font-size:.8rem;opacity:.6;color:#fff;margin:0}.footer a{color:#a8edeacc;text-decoration:none;transition:opacity .3s ease}.footer a:hover{opacity:1;text-decoration:underline}@media (max-width: 768px){.content h1{font-size:2.5rem}.content p{font-size:1.2rem}.footer{bottom:10px;left:10px}.footer p{font-size:.7rem}} diff --git a/config/machines/prod-castle/ariege-home-dist/index.html b/config/machines/prod-castle/ariege-home-dist/index.html new file mode 100644 index 0000000..5ed4853 --- /dev/null +++ b/config/machines/prod-castle/ariege-home-dist/index.html @@ -0,0 +1,23 @@ + + + + + + + Ariege.io - Coming Soon + + + + + +
+ + \ No newline at end of file diff --git a/config/machines/prod-castle/ario-home.nix b/config/machines/prod-castle/ario-home.nix new file mode 100644 index 0000000..92fced6 --- /dev/null +++ b/config/machines/prod-castle/ario-home.nix @@ -0,0 +1,19 @@ +{ config, pkgs, domain, ... }: + +{ + services.nginx.virtualHosts = { + # Web-app service + "${domain}" = { + forceSSL = true; + enableACME = true; + root = "/var/src/config-machine/ariege-home-dist"; + locations."/" = { + index = "index.html"; + tryFiles = "$uri $uri/ /index.html"; + }; + locations."~^/.well-known/lnurlp/" = { + return = "301 https://lnbits.demo.${domain}$request_uri"; + }; + }; + }; +} diff --git a/config/machines/prod-castle/boot.nix b/config/machines/prod-castle/boot.nix new file mode 100644 index 0000000..82f8345 --- /dev/null +++ b/config/machines/prod-castle/boot.nix @@ -0,0 +1,5 @@ +{ + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; +} diff --git a/config/machines/prod-castle/borg-lnbits.nix b/config/machines/prod-castle/borg-lnbits.nix new file mode 100644 index 0000000..1d45824 --- /dev/null +++ b/config/machines/prod-castle/borg-lnbits.nix @@ -0,0 +1,36 @@ +{ config, pkgs, ... }: + +{ + imports = [ + ./modules/lnbits-backup.nix # Add this line + ]; + + # Enable LNbits Borg backup + services.lnbits-backup = { + enable = true; + + # Repository path - update with your actual path + # Option 1: Traditional format + # repository = "borg@192.168.1.100:/mnt/my_ssd/borg-backups/lnbits"; + + # Option 2: Full SSH URL format (note double slash for absolute path) + # Note this ip is fixed on unifi + repository = "ssh://borg@192.168.0.194//mnt/borg-backups/lnbits-ario"; + + # Backup schedule + schedule = "*:0/15"; # Backup schedule (hourly, daily, or systemd timer format) + + # Compression with auto-detection + # "auto" skips compression for already-compressed files (images, videos, etc.) + compression = "auto,lz4"; # For Raspberry Pi (faster) + # compression = "auto,zstd"; # For RockPro64 (better compression) + + # Retention policy, leave all of these + retention = { + hourly = 24; # Last 24 hours + daily = 7; # Last 7 days + weekly = 4; # Last 4 weeks + monthly = 6; # Last 6 months + }; + }; +} diff --git a/config/machines/prod-castle/configuration.nix b/config/machines/prod-castle/configuration.nix new file mode 100644 index 0000000..ef4aff8 --- /dev/null +++ b/config/machines/prod-castle/configuration.nix @@ -0,0 +1,23 @@ +{ config, pkgs, ... }: +let + domain = "ariege.io"; +in +{ + imports = [ + { _module.args = { inherit domain; }; } # Uses the let binding + (import /var/src/config-shared { + inherit config pkgs domain; # Uses the let binding + }) + ./hardware-configuration.nix + ./boot.nix + ./wireguard.nix + ./ario-home.nix + ./jellyfin.nix + + # BORG backup + # read docs/lnbits-borg-backup-guide.md + ./borg-lnbits.nix + + ]; + # networking.hostName = "castle-prod"; # TODO: test this out before uncommenting +} diff --git a/config/machines/prod-castle/hardware-configuration.nix b/config/machines/prod-castle/hardware-configuration.nix new file mode 100644 index 0000000..56d021d --- /dev/null +++ b/config/machines/prod-castle/hardware-configuration.nix @@ -0,0 +1,41 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/7886f40d-f016-42db-a787-218530f3464e"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/09EB-1B4F"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/2c629168-62a8-4b48-9135-f933e513286b"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/config/machines/prod-castle/jellyfin.nix b/config/machines/prod-castle/jellyfin.nix new file mode 100644 index 0000000..30b3e87 --- /dev/null +++ b/config/machines/prod-castle/jellyfin.nix @@ -0,0 +1,24 @@ +{ config, pkgs, ... }: +{ + services.jellyfin = { + enable = true; + openFirewall = true; + }; + + environment.systemPackages = [ + pkgs.jellyfin + pkgs.jellyfin-web + pkgs.jellyfin-ffmpeg + ]; + + services.nginx.virtualHosts."media.castle" = { + # Listen on HTTP + listen = [ { addr = "0.0.0.0"; port = 80; } ]; + + # Pass traffic to Jellyfin’s default port + locations."/" = { + proxyPass = "http://127.0.0.1:8096"; + proxyWebsockets = true; # Jellyfin needs this! + }; + }; +} diff --git a/config/machines/prod-castle/modules/lnbits-backup.nix b/config/machines/prod-castle/modules/lnbits-backup.nix new file mode 100644 index 0000000..ffd5054 --- /dev/null +++ b/config/machines/prod-castle/modules/lnbits-backup.nix @@ -0,0 +1,177 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.lnbits-backup; + +in { + options.services.lnbits-backup = { + enable = mkEnableOption "LNbits Borg Backup Service"; + + dataPath = mkOption { + type = types.path; + default = "/var/lib/lnbits/data"; + description = "Path to LNbits data directory"; + }; + + repository = mkOption { + type = types.str; + example = "ssh://borg@192.168.1.100//mnt/my_ssd/borg-backups/lnbits"; + description = "Borg repository location (SSH URL or user@host:/path format)"; + }; + + schedule = mkOption { + type = types.str; + default = "hourly"; + description = "Backup schedule (hourly, daily, or systemd timer format)"; + }; + + compression = mkOption { + type = types.str; + default = "auto,lz4"; + description = "Compression: auto,lz4 (Pi), auto,zstd (RockPro64). 'auto' skips already-compressed files."; + }; + + passphraseFile = mkOption { + type = types.path; + default = "/root/secrets/borg-passphrase"; + description = "Path to Borg passphrase file"; + }; + + sshKeyFile = mkOption { + type = types.path; + default = "/root/.ssh/borg_backup_key"; + description = "SSH private key for repository access"; + }; + + retention = { + hourly = mkOption { type = types.int; default = 24; }; + daily = mkOption { type = types.int; default = 7; }; + weekly = mkOption { type = types.int; default = 4; }; + monthly = mkOption { type = types.int; default = 6; }; + }; + + alertEmail = mkOption { + type = types.nullOr types.str; + default = null; + description = "Email for alerts (optional)"; + }; + }; + + config = mkIf cfg.enable { + services.borgbackup.jobs.lnbits = { + paths = [ + cfg.dataPath + "/tmp/lnbits-snapshot.sqlite3" + ]; + + exclude = [ "*.log" "*.pyc" "__pycache__" "*.tmp" ]; + repo = cfg.repository; + + encryption = { + mode = "repokey-blake2"; + passCommand = "cat ${cfg.passphraseFile}"; + }; + + compression = cfg.compression; + startAt = cfg.schedule; + persistentTimer = true; # Run missed backups after reboots + + prune.keep = { + inherit (cfg.retention) hourly daily weekly monthly; + }; + + preHook = '' + echo "=== LNbits Backup Starting: $(date) ===" + + if [ -f "${cfg.dataPath}/database.sqlite3" ]; then + echo "Creating SQLite snapshot..." + ${pkgs.sqlite}/bin/sqlite3 "${cfg.dataPath}/database.sqlite3" \ + ".backup '/tmp/lnbits-snapshot.sqlite3'" + + SIZE=$(stat -c%s "/tmp/lnbits-snapshot.sqlite3") + echo "Snapshot created: $SIZE bytes" + + if [ "$SIZE" -lt 1000 ]; then + echo "ERROR: Snapshot too small!" + rm -f /tmp/lnbits-snapshot.sqlite3 + exit 1 + fi + else + echo "ERROR: Database not found!" + exit 1 + fi + ''; + + postHook = '' + rm -f /tmp/lnbits-snapshot.sqlite3 + + # Weekly integrity check (Sundays) + if [ $(date +%u) -eq 7 ]; then + echo "Running weekly integrity check..." + ${pkgs.borgbackup}/bin/borg check --repository-only ${cfg.repository} + fi + + echo "=== Backup Complete: $(date) ===" + ''; + + environment = { + BORG_RSH = "ssh -i ${cfg.sshKeyFile} -o StrictHostKeyChecking=accept-new"; + }; + }; + + # Install required packages and helper commands + environment.systemPackages = with pkgs; [ + borgbackup + sqlite + + (writeShellScriptBin "lnbits-borg-list" '' + export BORG_PASSPHRASE=$(cat ${cfg.passphraseFile}) + export BORG_RSH="ssh -i ${cfg.sshKeyFile}" + ${borgbackup}/bin/borg list ${cfg.repository} "$@" + '') + + (writeShellScriptBin "lnbits-borg-info" '' + export BORG_PASSPHRASE=$(cat ${cfg.passphraseFile}) + export BORG_RSH="ssh -i ${cfg.sshKeyFile}" + ${borgbackup}/bin/borg info ${cfg.repository} "$@" + '') + + (writeShellScriptBin "lnbits-borg-restore" '' + if [ $# -lt 1 ]; then + echo "Usage: lnbits-borg-restore [destination]" + echo "" + echo "Available archives:" + lnbits-borg-list + exit 1 + fi + + ARCHIVE="$1" + DEST="''${2:-/tmp/lnbits-restore}" + + export BORG_PASSPHRASE=$(cat ${cfg.passphraseFile}) + export BORG_RSH="ssh -i ${cfg.sshKeyFile}" + + mkdir -p "$DEST" + cd "$DEST" + echo "Restoring to: $DEST" + ${borgbackup}/bin/borg extract ${cfg.repository}::$ARCHIVE + echo "Done! Restored files in: $DEST" + '') + + (writeShellScriptBin "lnbits-borg-mount" '' + MOUNT="''${1:-/mnt/borg-browse}" + + export BORG_PASSPHRASE=$(cat ${cfg.passphraseFile}) + export BORG_RSH="ssh -i ${cfg.sshKeyFile}" + + mkdir -p "$MOUNT" + ${borgbackup}/bin/borg mount ${cfg.repository} "$MOUNT" + echo "Mounted at: $MOUNT" + echo "Unmount: borg umount $MOUNT" + '') + ]; + }; +} + diff --git a/config/machines/prod-castle/wireguard.nix b/config/machines/prod-castle/wireguard.nix new file mode 100644 index 0000000..eba814e --- /dev/null +++ b/config/machines/prod-castle/wireguard.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + wireguard-tools + ]; + + # Enable WireGuard with WebSocket-optimized settings + networking.wireguard.interfaces = { + wg0 = { + # Generate with: wg genkey | tee privatekey | wg pubkey > publickey + privateKeyFile = "/etc/wireguard/privatekey"; + + ips = [ "10.0.0.2/24" ]; + + peers = [ + { + publicKey = "R6uB4o5ELEKEHCvK+llRYbzdkZGDHegVmS0f08aRtWM="; + allowedIPs = [ "10.0.0.1/32" ]; + endpoint = "170.75.161.21:51820"; + persistentKeepalive = 15; + } + ]; + }; + }; + + # Systemd service optimization for WireGuard + systemd.services."wireguard-wg0".serviceConfig = { + # Restart the service if it fails + Restart = "on-failure"; + RestartSec = "5s"; + }; +} diff --git a/config/modules/forgejo-vue3-app.nix b/config/modules/forgejo-vue3-app.nix new file mode 120000 index 0000000..4e960bc --- /dev/null +++ b/config/modules/forgejo-vue3-app.nix @@ -0,0 +1 @@ +/home/padreug/projects/NixOS/vue3-pwa/forgejo-vue3-app.nix \ No newline at end of file diff --git a/config/modules/lnbits-backup.nix b/config/modules/lnbits-backup.nix new file mode 120000 index 0000000..79ddf8c --- /dev/null +++ b/config/modules/lnbits-backup.nix @@ -0,0 +1 @@ +/home/padreug/repos/NixOS/modules/lnbits-backup.nix \ No newline at end of file diff --git a/machine-specific/prod-castle/env/.env b/machine-specific/prod-castle/env/.env new file mode 100644 index 0000000..a41ed0c --- /dev/null +++ b/machine-specific/prod-castle/env/.env @@ -0,0 +1,31 @@ +# App Branding +VITE_APP_NAME=Ariège + +LNBITS_CUSTOM_FRONTEND_URL=https://app.ariege.io + +VITE_PICTRS_BASE_URL=https://img.ariege.io + +# Lightning Address Domain (optional) +# Override the domain used for Lightning Addresses +# If not set, domain will be extracted from VITE_LNBITS_BASE_URL +# Example: mydomain.com will show addresses as username@mydomain.com +VITE_LIGHTNING_DOMAIN=ariege.io + +# VITE_NOSTR_RELAYS=["wss://relay.damus.io","wss://nos.lol"] +VITE_NOSTR_RELAYS=["wss://lnbits.ariege.io/nostrrelay/castle"] + +VITE_LNBITS_BASE_URL=https://lnbits.ariege.io +# Invoice/Read Key below +VITE_API_KEY=8d21ba88c4bb4c04a05809bd25b997dc + +VITE_ADMIN_PUBKEYS=["24076f99c21dfed5201087e99d9e51a6c4927b7ec7101181bb0186718bdf6c4e"] + +# Push Notifications +VITE_VAPID_PUBLIC_KEY=BOJWlTx0YGI9vIMYmNOZEupe2QY7-7yt0YfzZcCEfk5Kz20tzCB5wzdU7AwfyI5D5vDUQV_mqTch4_9jMQnYMfU +VITE_PUSH_NOTIFICATIONS_ENABLED=true + +# Market Configuration +VITE_MARKET_NADDR=naddr1qqjxxcejx9jnvdfc95exyc3j956rxet9943xxcty943x2ve4xqcrsct9v5ukxqg4waehxw309aex2mrp0yhxzunfv4nk2tnfduqjvamn8ghj7vfjxuhrqt3s9ccn5dfsxqmz7mn0wd68yun9d3shjtmdv95ku6r4vgqjwamnwvaz7tmvde3xjarn9eshy6t9vajju6t09ahx7um5wfex2mrp0yhkyetwv93sygrslyar9s2wle09chkhcye4rh2nmcm8wqwaqrw3pg0cj2qv03vx65psgqqqw4ps0ur9cw +# VITE_MARKET_RELAYS=["wss://lnbits.demo.ariege.io/nostrrelay/benac"] +VITE_LIGHTNING_ENABLED=true +VITE_MARKET_DEFAULT_CURRENCY=sat diff --git a/machine-specific/prod-castle/images/apple-touch-icon.png b/machine-specific/prod-castle/images/apple-touch-icon.png new file mode 100644 index 0000000..ba8df07 Binary files /dev/null and b/machine-specific/prod-castle/images/apple-touch-icon.png differ diff --git a/machine-specific/prod-castle/images/favicon.ico b/machine-specific/prod-castle/images/favicon.ico new file mode 100644 index 0000000..84495b0 Binary files /dev/null and b/machine-specific/prod-castle/images/favicon.ico differ diff --git a/machine-specific/prod-castle/images/icon-192.png b/machine-specific/prod-castle/images/icon-192.png new file mode 100644 index 0000000..17abda4 Binary files /dev/null and b/machine-specific/prod-castle/images/icon-192.png differ diff --git a/machine-specific/prod-castle/images/icon-512.png b/machine-specific/prod-castle/images/icon-512.png new file mode 100644 index 0000000..3819dee Binary files /dev/null and b/machine-specific/prod-castle/images/icon-512.png differ diff --git a/machine-specific/prod-castle/images/icon-maskable-192.png b/machine-specific/prod-castle/images/icon-maskable-192.png new file mode 100644 index 0000000..b280cd5 Binary files /dev/null and b/machine-specific/prod-castle/images/icon-maskable-192.png differ diff --git a/machine-specific/prod-castle/images/icon-maskable-512.png b/machine-specific/prod-castle/images/icon-maskable-512.png new file mode 100644 index 0000000..bdd4754 Binary files /dev/null and b/machine-specific/prod-castle/images/icon-maskable-512.png differ diff --git a/machine-specific/prod-castle/images/logo.png b/machine-specific/prod-castle/images/logo.png new file mode 100644 index 0000000..489be52 Binary files /dev/null and b/machine-specific/prod-castle/images/logo.png differ diff --git a/machine-specific/prod-castle/images/mask-icon.svg b/machine-specific/prod-castle/images/mask-icon.svg new file mode 100644 index 0000000..6bcfe91 --- /dev/null +++ b/machine-specific/prod-castle/images/mask-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file