{"version":3,"file":"shared-lib.CeavjVWH.mjs","names":["t","e","V","U","D","Z","scale","r","n","o","s","c","l","a","u","i","b","h","d","g","p","ft","f","lt","ut","at","m","y","dt","gt","pt","mt","At","yt","wt","w","k","C","v","vt","_","N","M","x","_t","A","Nt","$","Mt","E","j","q","L","O","P","xt","B","Ct","kt","distance","G","R","Y","S","z","X","F","I","K","H","J","Q","T","W","tt","et","rt","nt","ot","st","ct","multiply","it","bt","ht","$t","Et","r","e","t","o","n","s","a","c","i","u","f","l","m","d","y","p","b","g","A","h","x","F","T","S","P","E","w","I","v","B","C","k","_","z","U","V","M","R","O","D","L","N","G","W","j","$","X","Y","lerp","tr","tt","to","q","H","Q","Z","K","J","te","ue","pe","tn","c","n","a","i","s","l","v","u","d","e","p","o","r.createProgramInfo","m","r.createBufferInfoFromArrays","g","t","f","x","MeshGradientComponent","fonts","css","className","fonts","css","className","v","t","I","e","b","T","n","r","x","N","A","R","P","q","i","D","s","a","o","C","J","V","W","H","u","l","h","c","d","g","p","U","S","L","B","F","y","c","e","u","m","t","a","f","l","d","p","n","o","r","i","fonts","css","className","fonts","css","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","SVG","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","SVG","AnimatedArrowBtn","WatchIcon","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","className","RichText","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts"],"sources":["https:/ga.jspm.io/npm:chroma-js@2.6.0/index.js","https:/ga.jspm.io/npm:twgl.js@4.24.0/dist/4.x/twgl-full.module.js","https:/ga.jspm.io/npm:mesh-gradient@1.0.0/dist/meshgradient.js","https:/framerusercontent.com/modules/1KI6LsDD7tGlV5jyRU9H/zao6qM56M7Btd308DfhE/MeshGradient.js","https:/framerusercontent.com/modules/YEuOQ8drct6GDtm1bppw/EJOJd1JXqZW3AfRsVEa7/Va4vzXXno.js","https:/framerusercontent.com/modules/9pfVypIfUAczLgip4sps/q63avl467R6txWZGgNVm/VHAixQe_s.js","https:/framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v-0.js","https:/framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v-1.js","https:/framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js","https:/framerusercontent.com/modules/uAweu5N4lti6lvETib5W/1FpyBnDLkjpPvO81jNWF/beG6djMXw.js","https:/framerusercontent.com/modules/AcBzTUpxFDj19bXy52eh/5wxypHwCghbsh9ijI8Z0/ro7OPezbn.js","https:/framerusercontent.com/modules/0eUFfTGEHpx6xBSQb0BY/8EeuXqItirFGp5o24ogk/IZANoJeBS.js","https:/framerusercontent.com/modules/yXiwKRHULqgQ6yq40ppL/BZt1kuGVDiP3z77vrKjp/VvCMTUFh2.js","https:/framerusercontent.com/modules/DBnkRyhZLxS5IsYqiPQu/JYRCGWM5o1OptyMKgWCK/S574DveTT.js","https:/framerusercontent.com/modules/XB0gTr2kpLIA5LA3XKOf/xeRJe2atz7dosc6lueKU/udxfNRK6F.js"],"sourcesContent":["var limit=(t,e=0,o=1)=>r(n(e,t),o);var clip_rgb=t=>{t._clipped=false;t._unclipped=t.slice(0);for(let e=0;e<=3;e++)if(e<3){(t[e]<0||t[e]>255)&&(t._clipped=true);t[e]=limit(t[e],0,255)}else e===3&&(t[e]=limit(t[e],0,1));return t};const t={};for(let e of[\"Boolean\",\"Number\",\"String\",\"Function\",\"Array\",\"Date\",\"RegExp\",\"Undefined\",\"Null\"])t[`[object ${e}]`]=e.toLowerCase();function type(e){return t[Object.prototype.toString.call(e)]||\"object\"}var unpack=(t,e=null)=>t.length>=3?Array.prototype.slice.call(t):type(t[0])==\"object\"&&e?e.split(\"\").filter((e=>t[0][e]!==void 0)).map((e=>t[0][e])):t[0];var last=t=>{if(t.length<2)return null;const e=t.length-1;return type(t[e])==\"string\"?t[e].toLowerCase():null};const{PI:e,min:r,max:n}=Math;const o=e*2;const s=e/3;const c=e/180;const l=180/e;var a={format:{},autodetect:[]};class Color{constructor(...t){const e=this;if(type(t[0])===\"object\"&&t[0].constructor&&t[0].constructor===this.constructor)return t[0];let r=last(t);let n=false;if(!r){n=true;if(!a.sorted){a.autodetect=a.autodetect.sort(((t,e)=>e.p-t.p));a.sorted=true}for(let e of a.autodetect){r=e.test(...t);if(r)break}}if(!a.format[r])throw new Error(\"unknown format: \"+t);{const o=a.format[r].apply(null,n?t:t.slice(0,-1));e._rgb=clip_rgb(o)}e._rgb.length===3&&e._rgb.push(1)}toString(){return type(this.hex)==\"function\"?this.hex():`[${this._rgb.join(\",\")}]`}}const u=\"2.6.0\";const chroma=(...t)=>new chroma.Color(...t);chroma.Color=Color;chroma.version=u;const cmyk2rgb=(...t)=>{t=unpack(t,\"cmyk\");const[e,r,n,o]=t;const s=t.length>4?t[4]:1;return o===1?[0,0,0,s]:[e>=1?0:255*(1-e)*(1-o),r>=1?0:255*(1-r)*(1-o),n>=1?0:255*(1-n)*(1-o),s]};const{max:i}=Math;const rgb2cmyk=(...t)=>{let[e,r,n]=unpack(t,\"rgb\");e/=255;r/=255;n/=255;const o=1-i(e,i(r,n));const s=o<1?1/(1-o):0;const c=(1-e-o)*s;const l=(1-r-o)*s;const a=(1-n-o)*s;return[c,l,a,o]};Color.prototype.cmyk=function(){return rgb2cmyk(this._rgb)};chroma.cmyk=(...t)=>new Color(...t,\"cmyk\");a.format.cmyk=cmyk2rgb;a.autodetect.push({p:2,test:(...t)=>{t=unpack(t,\"cmyk\");if(type(t)===\"array\"&&t.length===4)return\"cmyk\"}});const rnd=t=>Math.round(t*100)/100;const hsl2css=(...t)=>{const e=unpack(t,\"hsla\");let r=last(t)||\"lsa\";e[0]=rnd(e[0]||0);e[1]=rnd(e[1]*100)+\"%\";e[2]=rnd(e[2]*100)+\"%\";if(r===\"hsla\"||e.length>3&&e[3]<1){e[3]=e.length>3?e[3]:1;r=\"hsla\"}else e.length=3;return`${r}(${e.join(\",\")})`};const rgb2hsl$1=(...t)=>{t=unpack(t,\"rgba\");let[e,o,s]=t;e/=255;o/=255;s/=255;const c=r(e,o,s);const l=n(e,o,s);const a=(l+c)/2;let u,i;if(l===c){u=0;i=Number.NaN}else u=a<.5?(l-c)/(l+c):(l-c)/(2-l-c);e==l?i=(o-s)/(l-c):o==l?i=2+(s-e)/(l-c):s==l&&(i=4+(e-o)/(l-c));i*=60;i<0&&(i+=360);return t.length>3&&t[3]!==void 0?[i,u,a,t[3]]:[i,u,a]};const{round:b}=Math;const rgb2css=(...t)=>{const e=unpack(t,\"rgba\");let r=last(t)||\"rgb\";if(r.substr(0,3)==\"hsl\")return hsl2css(rgb2hsl$1(e),r);e[0]=b(e[0]);e[1]=b(e[1]);e[2]=b(e[2]);if(r===\"rgba\"||e.length>3&&e[3]<1){e[3]=e.length>3?e[3]:1;r=\"rgba\"}return`${r}(${e.slice(0,r===\"rgb\"?3:4).join(\",\")})`};const{round:h}=Math;const hsl2rgb=(...t)=>{t=unpack(t,\"hsl\");const[e,r,n]=t;let o,s,c;if(r===0)o=s=c=n*255;else{const t=[0,0,0];const l=[0,0,0];const a=n<.5?n*(1+r):n+r-n*r;const u=2*n-a;const i=e/360;t[0]=i+1/3;t[1]=i;t[2]=i-1/3;for(let e=0;e<3;e++){t[e]<0&&(t[e]+=1);t[e]>1&&(t[e]-=1);6*t[e]<1?l[e]=u+6*(a-u)*t[e]:2*t[e]<1?l[e]=a:3*t[e]<2?l[e]=u+(a-u)*(2/3-t[e])*6:l[e]=u}[o,s,c]=[h(l[0]*255),h(l[1]*255),h(l[2]*255)]}return t.length>3?[o,s,c,t[3]]:[o,s,c,1]};const d=/^rgb\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*\\)$/;const g=/^rgba\\(\\s*(-?\\d+),\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;const p=/^rgb\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;const m=/^rgba\\(\\s*(-?\\d+(?:\\.\\d+)?)%,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;const y=/^hsl\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*\\)$/;const w=/^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;const{round:k}=Math;const css2rgb=t=>{t=t.toLowerCase().trim();let e;if(a.format.named)try{return a.format.named(t)}catch(t){}if(e=t.match(d)){const t=e.slice(1,4);for(let e=0;e<3;e++)t[e]=+t[e];t[3]=1;return t}if(e=t.match(g)){const t=e.slice(1,5);for(let e=0;e<4;e++)t[e]=+t[e];return t}if(e=t.match(p)){const t=e.slice(1,4);for(let e=0;e<3;e++)t[e]=k(t[e]*2.55);t[3]=1;return t}if(e=t.match(m)){const t=e.slice(1,5);for(let e=0;e<3;e++)t[e]=k(t[e]*2.55);t[3]=+t[3];return t}if(e=t.match(y)){const t=e.slice(1,4);t[1]*=.01;t[2]*=.01;const r=hsl2rgb(t);r[3]=1;return r}if(e=t.match(w)){const t=e.slice(1,4);t[1]*=.01;t[2]*=.01;const r=hsl2rgb(t);r[3]=+e[4];return r}};css2rgb.test=t=>d.test(t)||g.test(t)||p.test(t)||m.test(t)||y.test(t)||w.test(t);Color.prototype.css=function(t){return rgb2css(this._rgb,t)};chroma.css=(...t)=>new Color(...t,\"css\");a.format.css=css2rgb;a.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&type(t)===\"string\"&&css2rgb.test(t))return\"css\"}});a.format.gl=(...t)=>{const e=unpack(t,\"rgba\");e[0]*=255;e[1]*=255;e[2]*=255;return e};chroma.gl=(...t)=>new Color(...t,\"gl\");Color.prototype.gl=function(){const t=this._rgb;return[t[0]/255,t[1]/255,t[2]/255,t[3]]};const{floor:C}=Math;const hcg2rgb=(...t)=>{t=unpack(t,\"hcg\");let[e,r,n]=t;let o,s,c;n*=255;const l=r*255;if(r===0)o=s=c=n;else{e===360&&(e=0);e>360&&(e-=360);e<0&&(e+=360);e/=60;const t=C(e);const a=e-t;const u=n*(1-r);const i=u+l*(1-a);const b=u+l*a;const h=u+l;switch(t){case 0:[o,s,c]=[h,b,u];break;case 1:[o,s,c]=[i,h,u];break;case 2:[o,s,c]=[u,h,b];break;case 3:[o,s,c]=[u,i,h];break;case 4:[o,s,c]=[b,u,h];break;case 5:[o,s,c]=[h,u,i];break}}return[o,s,c,t.length>3?t[3]:1]};const rgb2hcg=(...t)=>{const[e,o,s]=unpack(t,\"rgb\");const c=r(e,o,s);const l=n(e,o,s);const a=l-c;const u=a*100/255;const i=c/(255-a)*100;let b;if(a===0)b=Number.NaN;else{e===l&&(b=(o-s)/a);o===l&&(b=2+(s-e)/a);s===l&&(b=4+(e-o)/a);b*=60;b<0&&(b+=360)}return[b,u,i]};Color.prototype.hcg=function(){return rgb2hcg(this._rgb)};chroma.hcg=(...t)=>new Color(...t,\"hcg\");a.format.hcg=hcg2rgb;a.autodetect.push({p:1,test:(...t)=>{t=unpack(t,\"hcg\");if(type(t)===\"array\"&&t.length===3)return\"hcg\"}});const v=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;const _=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;const hex2rgb=t=>{if(t.match(v)){t.length!==4&&t.length!==7||(t=t.substr(1));if(t.length===3){t=t.split(\"\");t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]}const e=parseInt(t,16);const r=e>>16;const n=e>>8&255;const o=e&255;return[r,n,o,1]}if(t.match(_)){t.length!==5&&t.length!==9||(t=t.substr(1));if(t.length===4){t=t.split(\"\");t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]}const e=parseInt(t,16);const r=e>>24&255;const n=e>>16&255;const o=e>>8&255;const s=Math.round((e&255)/255*100)/100;return[r,n,o,s]}throw new Error(`unknown hex color: ${t}`)};const{round:N}=Math;const rgb2hex=(...t)=>{let[e,r,n,o]=unpack(t,\"rgba\");let s=last(t)||\"auto\";o===void 0&&(o=1);s===\"auto\"&&(s=o<1?\"rgba\":\"rgb\");e=N(e);r=N(r);n=N(n);const c=e<<16|r<<8|n;let l=\"000000\"+c.toString(16);l=l.substr(l.length-6);let a=\"0\"+N(o*255).toString(16);a=a.substr(a.length-2);switch(s.toLowerCase()){case\"rgba\":return`#${l}${a}`;case\"argb\":return`#${a}${l}`;default:return`#${l}`}};Color.prototype.hex=function(t){return rgb2hex(this._rgb,t)};chroma.hex=(...t)=>new Color(...t,\"hex\");a.format.hex=hex2rgb;a.autodetect.push({p:4,test:(t,...e)=>{if(!e.length&&type(t)===\"string\"&&[3,4,5,6,7,8,9].indexOf(t.length)>=0)return\"hex\"}});const{cos:M}=Math;const hsi2rgb=(...t)=>{t=unpack(t,\"hsi\");let[e,r,n]=t;let c,l,a;isNaN(e)&&(e=0);isNaN(r)&&(r=0);e>360&&(e-=360);e<0&&(e+=360);e/=360;if(e<1/3){a=(1-r)/3;c=(1+r*M(o*e)/M(s-o*e))/3;l=1-(a+c)}else if(e<2/3){e-=1/3;c=(1-r)/3;l=(1+r*M(o*e)/M(s-o*e))/3;a=1-(c+l)}else{e-=2/3;l=(1-r)/3;a=(1+r*M(o*e)/M(s-o*e))/3;c=1-(l+a)}c=limit(n*c*3);l=limit(n*l*3);a=limit(n*a*3);return[c*255,l*255,a*255,t.length>3?t[3]:1]};const{min:x,sqrt:A,acos:$}=Math;const rgb2hsi=(...t)=>{let[e,r,n]=unpack(t,\"rgb\");e/=255;r/=255;n/=255;let s;const c=x(e,r,n);const l=(e+r+n)/3;const a=l>0?1-c/l:0;if(a===0)s=NaN;else{s=(e-r+(e-n))/2;s/=A((e-r)*(e-r)+(e-n)*(r-n));s=$(s);n>r&&(s=o-s);s/=o}return[s*360,a,l]};Color.prototype.hsi=function(){return rgb2hsi(this._rgb)};chroma.hsi=(...t)=>new Color(...t,\"hsi\");a.format.hsi=hsi2rgb;a.autodetect.push({p:2,test:(...t)=>{t=unpack(t,\"hsi\");if(type(t)===\"array\"&&t.length===3)return\"hsi\"}});Color.prototype.hsl=function(){return rgb2hsl$1(this._rgb)};chroma.hsl=(...t)=>new Color(...t,\"hsl\");a.format.hsl=hsl2rgb;a.autodetect.push({p:2,test:(...t)=>{t=unpack(t,\"hsl\");if(type(t)===\"array\"&&t.length===3)return\"hsl\"}});const{floor:E}=Math;const hsv2rgb=(...t)=>{t=unpack(t,\"hsv\");let[e,r,n]=t;let o,s,c;n*=255;if(r===0)o=s=c=n;else{e===360&&(e=0);e>360&&(e-=360);e<0&&(e+=360);e/=60;const t=E(e);const l=e-t;const a=n*(1-r);const u=n*(1-r*l);const i=n*(1-r*(1-l));switch(t){case 0:[o,s,c]=[n,i,a];break;case 1:[o,s,c]=[u,n,a];break;case 2:[o,s,c]=[a,n,i];break;case 3:[o,s,c]=[a,u,n];break;case 4:[o,s,c]=[i,a,n];break;case 5:[o,s,c]=[n,a,u];break}}return[o,s,c,t.length>3?t[3]:1]};const{min:j,max:q}=Math;const rgb2hsl=(...t)=>{t=unpack(t,\"rgb\");let[e,r,n]=t;const o=j(e,r,n);const s=q(e,r,n);const c=s-o;let l,a,u;u=s/255;if(s===0){l=Number.NaN;a=0}else{a=c/s;e===s&&(l=(r-n)/c);r===s&&(l=2+(n-e)/c);n===s&&(l=4+(e-r)/c);l*=60;l<0&&(l+=360)}return[l,a,u]};Color.prototype.hsv=function(){return rgb2hsl(this._rgb)};chroma.hsv=(...t)=>new Color(...t,\"hsv\");a.format.hsv=hsv2rgb;a.autodetect.push({p:2,test:(...t)=>{t=unpack(t,\"hsv\");if(type(t)===\"array\"&&t.length===3)return\"hsv\"}});var L={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452};const{pow:O}=Math;const lab2rgb=(...t)=>{t=unpack(t,\"lab\");const[e,r,n]=t;let o,s,c,l,a,u;s=(e+16)/116;o=isNaN(r)?s:s+r/500;c=isNaN(n)?s:s-n/200;s=L.Yn*lab_xyz(s);o=L.Xn*lab_xyz(o);c=L.Zn*lab_xyz(c);l=xyz_rgb(3.2404542*o-1.5371385*s-.4985314*c);a=xyz_rgb(-.969266*o+1.8760108*s+.041556*c);u=xyz_rgb(.0556434*o-.2040259*s+1.0572252*c);return[l,a,u,t.length>3?t[3]:1]};const xyz_rgb=t=>255*(t<=.00304?12.92*t:1.055*O(t,1/2.4)-.055);const lab_xyz=t=>t>L.t1?t*t*t:L.t2*(t-L.t0);const{pow:P}=Math;const rgb2lab=(...t)=>{const[e,r,n]=unpack(t,\"rgb\");const[o,s,c]=rgb2xyz(e,r,n);const l=116*s-16;return[l<0?0:l,500*(o-s),200*(s-c)]};const rgb_xyz=t=>(t/=255)<=.04045?t/12.92:P((t+.055)/1.055,2.4);const xyz_lab=t=>t>L.t3?P(t,1/3):t/L.t2+L.t0;const rgb2xyz=(t,e,r)=>{t=rgb_xyz(t);e=rgb_xyz(e);r=rgb_xyz(r);const n=xyz_lab((.4124564*t+.3575761*e+.1804375*r)/L.Xn);const o=xyz_lab((.2126729*t+.7151522*e+.072175*r)/L.Yn);const s=xyz_lab((.0193339*t+.119192*e+.9503041*r)/L.Zn);return[n,o,s]};Color.prototype.lab=function(){return rgb2lab(this._rgb)};chroma.lab=(...t)=>new Color(...t,\"lab\");a.format.lab=lab2rgb;a.autodetect.push({p:2,test:(...t)=>{t=unpack(t,\"lab\");if(type(t)===\"array\"&&t.length===3)return\"lab\"}});const{sin:G,cos:B}=Math;const lch2lab=(...t)=>{let[e,r,n]=unpack(t,\"lch\");isNaN(n)&&(n=0);n*=c;return[e,B(n)*r,G(n)*r]};const lch2rgb=(...t)=>{t=unpack(t,\"lch\");const[e,r,n]=t;const[o,s,c]=lch2lab(e,r,n);const[l,a,u]=lab2rgb(o,s,c);return[l,a,u,t.length>3?t[3]:1]};const hcl2rgb=(...t)=>{const e=unpack(t,\"hcl\").reverse();return lch2rgb(...e)};const{sqrt:R,atan2:Y,round:S}=Math;const lab2lch=(...t)=>{const[e,r,n]=unpack(t,\"lab\");const o=R(r*r+n*n);let s=(Y(n,r)*l+360)%360;S(o*1e4)===0&&(s=Number.NaN);return[e,o,s]};const rgb2lch=(...t)=>{const[e,r,n]=unpack(t,\"rgb\");const[o,s,c]=rgb2lab(e,r,n);return lab2lch(o,s,c)};Color.prototype.lch=function(){return rgb2lch(this._rgb)};Color.prototype.hcl=function(){return rgb2lch(this._rgb).reverse()};chroma.lch=(...t)=>new Color(...t,\"lch\");chroma.hcl=(...t)=>new Color(...t,\"hcl\");a.format.lch=lch2rgb;a.format.hcl=hcl2rgb;[\"lch\",\"hcl\"].forEach((t=>a.autodetect.push({p:2,test:(...e)=>{e=unpack(e,t);if(type(e)===\"array\"&&e.length===3)return t}})));const z={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",laserlemon:\"#ffff54\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrod:\"#fafad2\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",maroon2:\"#7f0000\",maroon3:\"#b03060\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",purple2:\"#7f007f\",purple3:\"#a020f0\",rebeccapurple:\"#663399\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};Color.prototype.name=function(){const t=rgb2hex(this._rgb,\"rgb\");for(let e of Object.keys(z))if(z[e]===t)return e.toLowerCase();return t};a.format.named=t=>{t=t.toLowerCase();if(z[t])return hex2rgb(z[t]);throw new Error(\"unknown color name: \"+t)};a.autodetect.push({p:5,test:(t,...e)=>{if(!e.length&&type(t)===\"string\"&&z[t.toLowerCase()])return\"named\"}});const num2rgb=t=>{if(type(t)==\"number\"&&t>=0&&t<=16777215){const e=t>>16;const r=t>>8&255;const n=t&255;return[e,r,n,1]}throw new Error(\"unknown num color: \"+t)};const rgb2num=(...t)=>{const[e,r,n]=unpack(t,\"rgb\");return(e<<16)+(r<<8)+n};Color.prototype.num=function(){return rgb2num(this._rgb)};chroma.num=(...t)=>new Color(...t,\"num\");a.format.num=num2rgb;a.autodetect.push({p:5,test:(...t)=>{if(t.length===1&&type(t[0])===\"number\"&&t[0]>=0&&t[0]<=16777215)return\"num\"}});const{round:X}=Math;Color.prototype.rgb=function(t=true){return t===false?this._rgb.slice(0,3):this._rgb.slice(0,3).map(X)};Color.prototype.rgba=function(t=true){return this._rgb.slice(0,4).map(((e,r)=>r<3?t===false?e:X(e):e))};chroma.rgb=(...t)=>new Color(...t,\"rgb\");a.format.rgb=(...t)=>{const e=unpack(t,\"rgba\");e[3]===void 0&&(e[3]=1);return e};a.autodetect.push({p:3,test:(...t)=>{t=unpack(t,\"rgba\");if(type(t)===\"array\"&&(t.length===3||t.length===4&&type(t[3])==\"number\"&&t[3]>=0&&t[3]<=1))return\"rgb\"}});const{log:F}=Math;const temperature2rgb=t=>{const e=t/100;let r,n,o;if(e<66){r=255;n=e<6?0:-155.25485562709179-.44596950469579133*(n=e-2)+104.49216199393888*F(n);o=e<20?0:.8274096064007395*(o=e-10)-254.76935184120902+115.67994401066147*F(o)}else{r=351.97690566805693+.114206453784165*(r=e-55)-40.25366309332127*F(r);n=325.4494125711974+.07943456536662342*(n=e-50)-28.0852963507957*F(n);o=255}return[r,n,o,1]};const{round:I}=Math;const rgb2temperature=(...t)=>{const e=unpack(t,\"rgb\");const r=e[0],n=e[2];let o=1e3;let s=4e4;const c=.4;let l;while(s-o>c){l=(s+o)*.5;const t=temperature2rgb(l);t[2]/t[0]>=n/r?s=l:o=l}return I(l)};Color.prototype.temp=Color.prototype.kelvin=Color.prototype.temperature=function(){return rgb2temperature(this._rgb)};chroma.temp=chroma.kelvin=chroma.temperature=(...t)=>new Color(...t,\"temp\");a.format.temp=a.format.kelvin=a.format.temperature=temperature2rgb;const{pow:U,sign:V}=Math;const oklab2rgb=(...t)=>{t=unpack(t,\"lab\");const[e,r,n]=t;const o=U(e+.3963377774*r+.2158037573*n,3);const s=U(e-.1055613458*r-.0638541728*n,3);const c=U(e-.0894841775*r-1.291485548*n,3);return[255*lrgb2rgb(4.0767416621*o-3.3077115913*s+.2309699292*c),255*lrgb2rgb(-1.2684380046*o+2.6097574011*s-.3413193965*c),255*lrgb2rgb(-.0041960863*o-.7034186147*s+1.707614701*c),t.length>3?t[3]:1]};function lrgb2rgb(t){const e=Math.abs(t);return e>.0031308?(V(t)||1)*(1.055*U(e,1/2.4)-.055):t*12.92}const{cbrt:K,pow:Z,sign:D}=Math;const rgb2oklab=(...t)=>{const[e,r,n]=unpack(t,\"rgb\");const[o,s,c]=[rgb2lrgb(e/255),rgb2lrgb(r/255),rgb2lrgb(n/255)];const l=K(.4122214708*o+.5363325363*s+.0514459929*c);const a=K(.2119034982*o+.6806995451*s+.1073969566*c);const u=K(.0883024619*o+.2817188376*s+.6299787005*c);return[.2104542553*l+.793617785*a-.0040720468*u,1.9779984951*l-2.428592205*a+.4505937099*u,.0259040371*l+.7827717662*a-.808675766*u]};function rgb2lrgb(t){const e=Math.abs(t);return e<.04045?t/12.92:(D(t)||1)*Z((e+.055)/1.055,2.4)}Color.prototype.oklab=function(){return rgb2oklab(this._rgb)};chroma.oklab=(...t)=>new Color(...t,\"oklab\");a.format.oklab=oklab2rgb;a.autodetect.push({p:3,test:(...t)=>{t=unpack(t,\"oklab\");if(type(t)===\"array\"&&t.length===3)return\"oklab\"}});const oklch2rgb=(...t)=>{t=unpack(t,\"lch\");const[e,r,n]=t;const[o,s,c]=lch2lab(e,r,n);const[l,a,u]=oklab2rgb(o,s,c);return[l,a,u,t.length>3?t[3]:1]};const rgb2oklch=(...t)=>{const[e,r,n]=unpack(t,\"rgb\");const[o,s,c]=rgb2oklab(e,r,n);return lab2lch(o,s,c)};Color.prototype.oklch=function(){return rgb2oklch(this._rgb)};chroma.oklch=(...t)=>new Color(...t,\"oklch\");a.format.oklch=oklch2rgb;a.autodetect.push({p:3,test:(...t)=>{t=unpack(t,\"oklch\");if(type(t)===\"array\"&&t.length===3)return\"oklch\"}});Color.prototype.alpha=function(t,e=false){if(t!==void 0&&type(t)===\"number\"){if(e){this._rgb[3]=t;return this}return new Color([this._rgb[0],this._rgb[1],this._rgb[2],t],\"rgb\")}return this._rgb[3]};Color.prototype.clipped=function(){return this._rgb._clipped||false};Color.prototype.darken=function(t=1){const e=this;const r=e.lab();r[0]-=L.Kn*t;return new Color(r,\"lab\").alpha(e.alpha(),true)};Color.prototype.brighten=function(t=1){return this.darken(-t)};Color.prototype.darker=Color.prototype.darken;Color.prototype.brighter=Color.prototype.brighten;Color.prototype.get=function(t){const[e,r]=t.split(\".\");const n=this[e]();if(r){const t=e.indexOf(r)-(e.substr(0,2)===\"ok\"?2:0);if(t>-1)return n[t];throw new Error(`unknown channel ${r} in mode ${e}`)}return n};const{pow:H}=Math;const J=1e-7;const Q=20;Color.prototype.luminance=function(t,e=\"rgb\"){if(t!==void 0&&type(t)===\"number\"){if(t===0)return new Color([0,0,0,this._rgb[3]],\"rgb\");if(t===1)return new Color([255,255,255,this._rgb[3]],\"rgb\");let r=this.luminance();let n=Q;const test=(r,o)=>{const s=r.interpolate(o,.5,e);const c=s.luminance();return Math.abs(t-c)<J||!n--?s:c>t?test(r,s):test(s,o)};const o=(r>t?test(new Color([0,0,0]),this):test(this,new Color([255,255,255]))).rgb();return new Color([...o,this._rgb[3]])}return rgb2luminance(...this._rgb.slice(0,3))};const rgb2luminance=(t,e,r)=>{t=luminance_x(t);e=luminance_x(e);r=luminance_x(r);return.2126*t+.7152*e+.0722*r};const luminance_x=t=>{t/=255;return t<=.03928?t/12.92:H((t+.055)/1.055,2.4)};var T={};var mix=(t,e,r=.5,...n)=>{let o=n[0]||\"lrgb\";T[o]||n.length||(o=Object.keys(T)[0]);if(!T[o])throw new Error(`interpolation mode ${o} is not defined`);type(t)!==\"object\"&&(t=new Color(t));type(e)!==\"object\"&&(e=new Color(e));return T[o](t,e,r).alpha(t.alpha()+r*(e.alpha()-t.alpha()))};Color.prototype.mix=Color.prototype.interpolate=function(t,e=.5,...r){return mix(this,t,e,...r)};Color.prototype.premultiply=function(t=false){const e=this._rgb;const r=e[3];if(t){this._rgb=[e[0]*r,e[1]*r,e[2]*r,r];return this}return new Color([e[0]*r,e[1]*r,e[2]*r,r],\"rgb\")};Color.prototype.saturate=function(t=1){const e=this;const r=e.lch();r[1]+=L.Kn*t;r[1]<0&&(r[1]=0);return new Color(r,\"lch\").alpha(e.alpha(),true)};Color.prototype.desaturate=function(t=1){return this.saturate(-t)};Color.prototype.set=function(t,e,r=false){const[n,o]=t.split(\".\");const s=this[n]();if(o){const t=n.indexOf(o)-(n.substr(0,2)===\"ok\"?2:0);if(t>-1){if(type(e)==\"string\")switch(e.charAt(0)){case\"+\":s[t]+=+e;break;case\"-\":s[t]+=+e;break;case\"*\":s[t]*=+e.substr(1);break;case\"/\":s[t]/=+e.substr(1);break;default:s[t]=+e}else{if(type(e)!==\"number\")throw new Error(\"unsupported value for Color.set\");s[t]=e}const o=new Color(s,n);if(r){this._rgb=o._rgb;return this}return o}throw new Error(`unknown channel ${o} in mode ${n}`)}return s};Color.prototype.tint=function(t=.5,...e){return mix(this,\"white\",t,...e)};Color.prototype.shade=function(t=.5,...e){return mix(this,\"black\",t,...e)};const rgb=(t,e,r)=>{const n=t._rgb;const o=e._rgb;return new Color(n[0]+r*(o[0]-n[0]),n[1]+r*(o[1]-n[1]),n[2]+r*(o[2]-n[2]),\"rgb\")};T.rgb=rgb;const{sqrt:W,pow:tt}=Math;const lrgb=(t,e,r)=>{const[n,o,s]=t._rgb;const[c,l,a]=e._rgb;return new Color(W(tt(n,2)*(1-r)+tt(c,2)*r),W(tt(o,2)*(1-r)+tt(l,2)*r),W(tt(s,2)*(1-r)+tt(a,2)*r),\"rgb\")};T.lrgb=lrgb;const lab=(t,e,r)=>{const n=t.lab();const o=e.lab();return new Color(n[0]+r*(o[0]-n[0]),n[1]+r*(o[1]-n[1]),n[2]+r*(o[2]-n[2]),\"lab\")};T.lab=lab;var interpolate_hsx=(t,e,r,n)=>{let o,s;if(n===\"hsl\"){o=t.hsl();s=e.hsl()}else if(n===\"hsv\"){o=t.hsv();s=e.hsv()}else if(n===\"hcg\"){o=t.hcg();s=e.hcg()}else if(n===\"hsi\"){o=t.hsi();s=e.hsi()}else if(n===\"lch\"||n===\"hcl\"){n=\"hcl\";o=t.hcl();s=e.hcl()}else if(n===\"oklch\"){o=t.oklch().reverse();s=e.oklch().reverse()}let c,l,a,u,i,b;if(n.substr(0,1)===\"h\"||n===\"oklch\"){[c,a,i]=o;[l,u,b]=s}let h,d,g,p;if(isNaN(c)||isNaN(l))if(isNaN(c))if(isNaN(l))d=Number.NaN;else{d=l;i!=1&&i!=0||n==\"hsv\"||(h=u)}else{d=c;b!=1&&b!=0||n==\"hsv\"||(h=a)}else{p=l>c&&l-c>180?l-(c+360):l<c&&c-l>180?l+360-c:l-c;d=c+r*p}h===void 0&&(h=a+r*(u-a));g=i+r*(b-i);return new Color(n===\"oklch\"?[g,h,d]:[d,h,g],n)};const lch=(t,e,r)=>interpolate_hsx(t,e,r,\"lch\");T.lch=lch;T.hcl=lch;const num=(t,e,r)=>{const n=t.num();const o=e.num();return new Color(n+r*(o-n),\"num\")};T.num=num;const hcg=(t,e,r)=>interpolate_hsx(t,e,r,\"hcg\");T.hcg=hcg;const hsi=(t,e,r)=>interpolate_hsx(t,e,r,\"hsi\");T.hsi=hsi;const hsl=(t,e,r)=>interpolate_hsx(t,e,r,\"hsl\");T.hsl=hsl;const hsv=(t,e,r)=>interpolate_hsx(t,e,r,\"hsv\");T.hsv=hsv;const oklab=(t,e,r)=>{const n=t.oklab();const o=e.oklab();return new Color(n[0]+r*(o[0]-n[0]),n[1]+r*(o[1]-n[1]),n[2]+r*(o[2]-n[2]),\"oklab\")};T.oklab=oklab;const oklch=(t,e,r)=>interpolate_hsx(t,e,r,\"oklch\");T.oklch=oklch;const{pow:et,sqrt:rt,PI:nt,cos:ot,sin:st,atan2:ct}=Math;var average=(t,e=\"lrgb\",r=null)=>{const n=t.length;r||(r=Array.from(new Array(n)).map((()=>1)));const o=n/r.reduce((function(t,e){return t+e}));r.forEach(((t,e)=>{r[e]*=o}));t=t.map((t=>new Color(t)));if(e===\"lrgb\")return _average_lrgb(t,r);const s=t.shift();const c=s.get(e);const l=[];let a=0;let u=0;for(let t=0;t<c.length;t++){c[t]=(c[t]||0)*r[0];l.push(isNaN(c[t])?0:r[0]);if(e.charAt(t)===\"h\"&&!isNaN(c[t])){const e=c[t]/180*nt;a+=ot(e)*r[0];u+=st(e)*r[0]}}let i=s.alpha()*r[0];t.forEach(((t,n)=>{const o=t.get(e);i+=t.alpha()*r[n+1];for(let t=0;t<c.length;t++)if(!isNaN(o[t])){l[t]+=r[n+1];if(e.charAt(t)===\"h\"){const e=o[t]/180*nt;a+=ot(e)*r[n+1];u+=st(e)*r[n+1]}else c[t]+=o[t]*r[n+1]}}));for(let t=0;t<c.length;t++)if(e.charAt(t)===\"h\"){let e=ct(u/l[t],a/l[t])/nt*180;while(e<0)e+=360;while(e>=360)e-=360;c[t]=e}else c[t]=c[t]/l[t];i/=n;return new Color(c,e).alpha(i>.99999?1:i,true)};const _average_lrgb=(t,e)=>{const r=t.length;const n=[0,0,0,0];for(let o=0;o<t.length;o++){const s=t[o];const c=e[o]/r;const l=s._rgb;n[0]+=et(l[0],2)*c;n[1]+=et(l[1],2)*c;n[2]+=et(l[2],2)*c;n[3]+=l[3]*c}n[0]=rt(n[0]);n[1]=rt(n[1]);n[2]=rt(n[2]);n[3]>.9999999&&(n[3]=1);return new Color(clip_rgb(n))};const{pow:ft}=Math;function scale(t){let e=\"rgb\";let r=chroma(\"#ccc\");let n=0;let o=[0,1];let s=[];let c=[0,0];let l=false;let a=[];let u=false;let i=0;let b=1;let h=false;let d={};let g=true;let p=1;const setColors=function(t){t=t||[\"#fff\",\"#000\"];t&&type(t)===\"string\"&&chroma.brewer&&chroma.brewer[t.toLowerCase()]&&(t=chroma.brewer[t.toLowerCase()]);if(type(t)===\"array\"){t.length===1&&(t=[t[0],t[0]]);t=t.slice(0);for(let e=0;e<t.length;e++)t[e]=chroma(t[e]);s.length=0;for(let e=0;e<t.length;e++)s.push(e/(t.length-1))}resetCache();return a=t};const getClass=function(t){if(l!=null){const e=l.length-1;let r=0;while(r<e&&t>=l[r])r++;return r-1}return 0};let tMapLightness=t=>t;let tMapDomain=t=>t;const getColor=function(t,n){let o,u;n==null&&(n=false);if(isNaN(t)||t===null)return r;if(n)u=t;else if(l&&l.length>2){const e=getClass(t);u=e/(l.length-2)}else u=b!==i?(t-i)/(b-i):1;u=tMapDomain(u);n||(u=tMapLightness(u));p!==1&&(u=ft(u,p));u=c[0]+u*(1-c[0]-c[1]);u=limit(u,0,1);const h=Math.floor(u*1e4);if(g&&d[h])o=d[h];else{if(type(a)===\"array\")for(let t=0;t<s.length;t++){const r=s[t];if(u<=r){o=a[t];break}if(u>=r&&t===s.length-1){o=a[t];break}if(u>r&&u<s[t+1]){u=(u-r)/(s[t+1]-r);o=chroma.interpolate(a[t],a[t+1],u,e);break}}else type(a)===\"function\"&&(o=a(u));g&&(d[h]=o)}return o};var resetCache=()=>d={};setColors(t);const f=function(t){const e=chroma(getColor(t));return u&&e[u]?e[u]():e};f.classes=function(t){if(t!=null){if(type(t)===\"array\"){l=t;o=[t[0],t[t.length-1]]}else{const e=chroma.analyze(o);l=t===0?[e.min,e.max]:chroma.limits(e,\"e\",t)}return f}return l};f.domain=function(t){if(!arguments.length)return o;i=t[0];b=t[t.length-1];s=[];const e=a.length;if(t.length===e&&i!==b)for(let e of Array.from(t))s.push((e-i)/(b-i));else{for(let t=0;t<e;t++)s.push(t/(e-1));if(t.length>2){const e=t.map(((e,r)=>r/(t.length-1)));const r=t.map((t=>(t-i)/(b-i)));r.every(((t,r)=>e[r]===t))||(tMapDomain=t=>{if(t<=0||t>=1)return t;let n=0;while(t>=r[n+1])n++;const o=(t-r[n])/(r[n+1]-r[n]);const s=e[n]+o*(e[n+1]-e[n]);return s})}}o=[i,b];return f};f.mode=function(t){if(!arguments.length)return e;e=t;resetCache();return f};f.range=function(t,e){setColors(t,e);return f};f.out=function(t){u=t;return f};f.spread=function(t){if(!arguments.length)return n;n=t;return f};f.correctLightness=function(t){t==null&&(t=true);h=t;resetCache();tMapLightness=h?function(t){const e=getColor(0,true).lab()[0];const r=getColor(1,true).lab()[0];const n=e>r;let o=getColor(t,true).lab()[0];const s=e+(r-e)*t;let c=o-s;let l=0;let a=1;let u=20;while(Math.abs(c)>.01&&u-- >0)(function(){n&&(c*=-1);if(c<0){l=t;t+=.5*(a-t)}else{a=t;t+=.5*(l-t)}o=getColor(t,true).lab()[0];return c=o-s})();return t}:t=>t;return f};f.padding=function(t){if(t!=null){type(t)===\"number\"&&(t=[t,t]);c=t;return f}return c};f.colors=function(e,r){arguments.length<2&&(r=\"hex\");let n=[];if(arguments.length===0)n=a.slice(0);else if(e===1)n=[f(.5)];else if(e>1){const t=o[0];const r=o[1]-t;n=__range__(0,e,false).map((n=>f(t+n/(e-1)*r)))}else{t=[];let e=[];if(l&&l.length>2)for(let t=1,r=l.length,n=1<=r;n?t<r:t>r;n?t++:t--)e.push((l[t-1]+l[t])*.5);else e=o;n=e.map((t=>f(t)))}chroma[r]&&(n=n.map((t=>t[r]())));return n};f.cache=function(t){if(t!=null){g=t;return f}return g};f.gamma=function(t){if(t!=null){p=t;return f}return p};f.nodata=function(t){if(t!=null){r=chroma(t);return f}return r};return f}function __range__(t,e,r){let n=[];let o=t<e;let s=r?o?e+1:e-1:e;for(let e=t;o?e<s:e>s;o?e++:e--)n.push(e);return n}const binom_row=function(t){let e=[1,1];for(let r=1;r<t;r++){let t=[1];for(let r=1;r<=e.length;r++)t[r]=(e[r]||0)+e[r-1];e=t}return e};const bezier=function(t){let e,r,n,o;t=t.map((t=>new Color(t)));if(t.length===2){[r,n]=t.map((t=>t.lab()));e=function(t){const e=[0,1,2].map((e=>r[e]+t*(n[e]-r[e])));return new Color(e,\"lab\")}}else if(t.length===3){[r,n,o]=t.map((t=>t.lab()));e=function(t){const e=[0,1,2].map((e=>(1-t)*(1-t)*r[e]+2*(1-t)*t*n[e]+t*t*o[e]));return new Color(e,\"lab\")}}else if(t.length===4){let s;[r,n,o,s]=t.map((t=>t.lab()));e=function(t){const e=[0,1,2].map((e=>(1-t)*(1-t)*(1-t)*r[e]+3*(1-t)*(1-t)*t*n[e]+3*(1-t)*t*t*o[e]+t*t*t*s[e]));return new Color(e,\"lab\")}}else{if(!(t.length>=5))throw new RangeError(\"No point in running bezier with only one color.\");{let r,n,o;r=t.map((t=>t.lab()));o=t.length-1;n=binom_row(o);e=function(t){const e=1-t;const s=[0,1,2].map((s=>r.reduce(((r,c,l)=>r+n[l]*e**(o-l)*t**l*c[s]),0)));return new Color(s,\"lab\")}}}return e};var bezier$1=t=>{const e=bezier(t);e.scale=()=>scale(e);return e};const blend=(t,e,r)=>{if(!blend[r])throw new Error(\"unknown blend mode \"+r);return blend[r](t,e)};const blend_f=t=>(e,r)=>{const n=chroma(r).rgb();const o=chroma(e).rgb();return chroma.rgb(t(n,o))};const each=t=>(e,r)=>{const n=[];n[0]=t(e[0],r[0]);n[1]=t(e[1],r[1]);n[2]=t(e[2],r[2]);return n};const normal=t=>t;const multiply=(t,e)=>t*e/255;const darken=(t,e)=>t>e?e:t;const lighten=(t,e)=>t>e?t:e;const screen=(t,e)=>255*(1-(1-t/255)*(1-e/255));const overlay=(t,e)=>e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255));const burn=(t,e)=>255*(1-(1-e/255)/(t/255));const dodge=(t,e)=>{if(t===255)return 255;t=e/255*255/(1-t/255);return t>255?255:t};blend.normal=blend_f(each(normal));blend.multiply=blend_f(each(multiply));blend.screen=blend_f(each(screen));blend.overlay=blend_f(each(overlay));blend.darken=blend_f(each(darken));blend.lighten=blend_f(each(lighten));blend.dodge=blend_f(each(dodge));blend.burn=blend_f(each(burn));const{pow:lt,sin:at,cos:ut}=Math;function cubehelix(t=300,e=-1.5,r=1,n=1,s=[0,1]){let c,l=0;if(type(s)===\"array\")c=s[1]-s[0];else{c=0;s=[s,s]}const f=function(a){const u=o*((t+120)/360+e*a);const i=lt(s[0]+c*a,n);const b=l!==0?r[0]+a*l:r;const h=b*i*(1-i)/2;const d=ut(u);const g=at(u);const p=i+h*(-.14861*d+1.78277*g);const m=i+h*(-.29227*d-.90649*g);const y=i+h*(1.97294*d);return chroma(clip_rgb([p*255,m*255,y*255,1]))};f.start=function(e){if(e==null)return t;t=e;return f};f.rotations=function(t){if(t==null)return e;e=t;return f};f.gamma=function(t){if(t==null)return n;n=t;return f};f.hue=function(t){if(t==null)return r;r=t;if(type(r)===\"array\"){l=r[1]-r[0];l===0&&(r=r[1])}else l=0;return f};f.lightness=function(t){if(t==null)return s;if(type(t)===\"array\"){s=t;c=t[1]-t[0]}else{s=[t,t];c=0}return f};f.scale=()=>chroma.scale(f);f.hue(r);return f}const it=\"0123456789abcdef\";const{floor:bt,random:ht}=Math;var random$1=()=>{let t=\"#\";for(let e=0;e<6;e++)t+=it.charAt(bt(ht()*16));return new Color(t,\"hex\")};const{log:dt,pow:gt,floor:pt,abs:mt}=Math;function analyze(t,e=null){const r={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};type(t)===\"object\"&&(t=Object.values(t));t.forEach((t=>{e&&type(t)===\"object\"&&(t=t[e]);if(t!==void 0&&t!==null&&!isNaN(t)){r.values.push(t);r.sum+=t;t<r.min&&(r.min=t);t>r.max&&(r.max=t);r.count+=1}}));r.domain=[r.min,r.max];r.limits=(t,e)=>limits(r,t,e);return r}function limits(t,e=\"equal\",r=7){type(t)==\"array\"&&(t=analyze(t));const{min:n,max:o}=t;const s=t.values.sort(((t,e)=>t-e));if(r===1)return[n,o];const c=[];if(e.substr(0,1)===\"c\"){c.push(n);c.push(o)}if(e.substr(0,1)===\"e\"){c.push(n);for(let t=1;t<r;t++)c.push(n+t/r*(o-n));c.push(o)}else if(e.substr(0,1)===\"l\"){if(n<=0)throw new Error(\"Logarithmic scales are only possible for values > 0\");const t=Math.LOG10E*dt(n);const e=Math.LOG10E*dt(o);c.push(n);for(let n=1;n<r;n++)c.push(gt(10,t+n/r*(e-t)));c.push(o)}else if(e.substr(0,1)===\"q\"){c.push(n);for(let t=1;t<r;t++){const e=(s.length-1)*t/r;const n=pt(e);if(n===e)c.push(s[n]);else{const t=e-n;c.push(s[n]*(1-t)+s[n+1]*t)}}c.push(o)}else if(e.substr(0,1)===\"k\"){let t;const e=s.length;const l=new Array(e);const a=new Array(r);let u=true;let i=0;let b=null;b=[];b.push(n);for(let t=1;t<r;t++)b.push(n+t/r*(o-n));b.push(o);while(u){for(let t=0;t<r;t++)a[t]=0;for(let t=0;t<e;t++){const e=s[t];let n=Number.MAX_VALUE;let o;for(let s=0;s<r;s++){const r=mt(b[s]-e);if(r<n){n=r;o=s}a[o]++;l[t]=o}}const n=new Array(r);for(let t=0;t<r;t++)n[t]=null;for(let r=0;r<e;r++){t=l[r];n[t]===null?n[t]=s[r]:n[t]+=s[r]}for(let t=0;t<r;t++)n[t]*=1/a[t];u=false;for(let t=0;t<r;t++)if(n[t]!==b[t]){u=true;break}b=n;i++;i>200&&(u=false)}const h={};for(let t=0;t<r;t++)h[t]=[];for(let r=0;r<e;r++){t=l[r];h[t].push(s[r])}let d=[];for(let t=0;t<r;t++){d.push(h[t][0]);d.push(h[t][h[t].length-1])}d=d.sort(((t,e)=>t-e));c.push(d[0]);for(let t=1;t<d.length;t+=2){const e=d[t];isNaN(e)||c.indexOf(e)!==-1||c.push(e)}}return c}var contrast=(t,e)=>{t=new Color(t);e=new Color(e);const r=t.luminance();const n=e.luminance();return r>n?(r+.05)/(n+.05):(n+.05)/(r+.05)};const{sqrt:yt,pow:wt,min:kt,max:Ct,atan2:vt,abs:_t,cos:Nt,sin:Mt,exp:xt,PI:At}=Math;function deltaE(t,e,r=1,n=1,o=1){var rad2deg=function(t){return 360*t/(2*At)};var deg2rad=function(t){return 2*At*t/360};t=new Color(t);e=new Color(e);const[s,c,l]=Array.from(t.lab());const[a,u,i]=Array.from(e.lab());const b=(s+a)/2;const h=yt(wt(c,2)+wt(l,2));const d=yt(wt(u,2)+wt(i,2));const g=(h+d)/2;const p=.5*(1-yt(wt(g,7)/(wt(g,7)+wt(25,7))));const m=c*(1+p);const y=u*(1+p);const w=yt(wt(m,2)+wt(l,2));const k=yt(wt(y,2)+wt(i,2));const C=(w+k)/2;const v=rad2deg(vt(l,m));const _=rad2deg(vt(i,y));const N=v>=0?v:v+360;const M=_>=0?_:_+360;const x=_t(N-M)>180?(N+M+360)/2:(N+M)/2;const A=1-.17*Nt(deg2rad(x-30))+.24*Nt(deg2rad(2*x))+.32*Nt(deg2rad(3*x+6))-.2*Nt(deg2rad(4*x-63));let $=M-N;$=_t($)<=180?$:M<=N?$+360:$-360;$=2*yt(w*k)*Mt(deg2rad($)/2);const E=a-s;const j=k-w;const q=1+.015*wt(b-50,2)/yt(20+wt(b-50,2));const L=1+.045*C;const O=1+.015*C*A;const P=30*xt(-wt((x-275)/25,2));const G=2*yt(wt(C,7)/(wt(C,7)+wt(25,7)));const B=-G*Mt(2*deg2rad(P));const R=yt(wt(E/(r*q),2)+wt(j/(n*L),2)+wt($/(o*O),2)+B*(j/(n*L))*($/(o*O)));return Ct(0,kt(100,R))}function distance(t,e,r=\"lab\"){t=new Color(t);e=new Color(e);const n=t.get(r);const o=e.get(r);let s=0;for(let t in n){const e=(n[t]||0)-(o[t]||0);s+=e*e}return Math.sqrt(s)}var valid=(...t)=>{try{new Color(...t);return true}catch(t){return false}};var $t={cool(){return scale([chroma.hsl(180,1,.9),chroma.hsl(250,.7,.4)])},hot(){return scale([\"#000\",\"#f00\",\"#ff0\",\"#fff\"],[0,.25,.75,1]).mode(\"rgb\")}};const Et={OrRd:[\"#fff7ec\",\"#fee8c8\",\"#fdd49e\",\"#fdbb84\",\"#fc8d59\",\"#ef6548\",\"#d7301f\",\"#b30000\",\"#7f0000\"],PuBu:[\"#fff7fb\",\"#ece7f2\",\"#d0d1e6\",\"#a6bddb\",\"#74a9cf\",\"#3690c0\",\"#0570b0\",\"#045a8d\",\"#023858\"],BuPu:[\"#f7fcfd\",\"#e0ecf4\",\"#bfd3e6\",\"#9ebcda\",\"#8c96c6\",\"#8c6bb1\",\"#88419d\",\"#810f7c\",\"#4d004b\"],Oranges:[\"#fff5eb\",\"#fee6ce\",\"#fdd0a2\",\"#fdae6b\",\"#fd8d3c\",\"#f16913\",\"#d94801\",\"#a63603\",\"#7f2704\"],BuGn:[\"#f7fcfd\",\"#e5f5f9\",\"#ccece6\",\"#99d8c9\",\"#66c2a4\",\"#41ae76\",\"#238b45\",\"#006d2c\",\"#00441b\"],YlOrBr:[\"#ffffe5\",\"#fff7bc\",\"#fee391\",\"#fec44f\",\"#fe9929\",\"#ec7014\",\"#cc4c02\",\"#993404\",\"#662506\"],YlGn:[\"#ffffe5\",\"#f7fcb9\",\"#d9f0a3\",\"#addd8e\",\"#78c679\",\"#41ab5d\",\"#238443\",\"#006837\",\"#004529\"],Reds:[\"#fff5f0\",\"#fee0d2\",\"#fcbba1\",\"#fc9272\",\"#fb6a4a\",\"#ef3b2c\",\"#cb181d\",\"#a50f15\",\"#67000d\"],RdPu:[\"#fff7f3\",\"#fde0dd\",\"#fcc5c0\",\"#fa9fb5\",\"#f768a1\",\"#dd3497\",\"#ae017e\",\"#7a0177\",\"#49006a\"],Greens:[\"#f7fcf5\",\"#e5f5e0\",\"#c7e9c0\",\"#a1d99b\",\"#74c476\",\"#41ab5d\",\"#238b45\",\"#006d2c\",\"#00441b\"],YlGnBu:[\"#ffffd9\",\"#edf8b1\",\"#c7e9b4\",\"#7fcdbb\",\"#41b6c4\",\"#1d91c0\",\"#225ea8\",\"#253494\",\"#081d58\"],Purples:[\"#fcfbfd\",\"#efedf5\",\"#dadaeb\",\"#bcbddc\",\"#9e9ac8\",\"#807dba\",\"#6a51a3\",\"#54278f\",\"#3f007d\"],GnBu:[\"#f7fcf0\",\"#e0f3db\",\"#ccebc5\",\"#a8ddb5\",\"#7bccc4\",\"#4eb3d3\",\"#2b8cbe\",\"#0868ac\",\"#084081\"],Greys:[\"#ffffff\",\"#f0f0f0\",\"#d9d9d9\",\"#bdbdbd\",\"#969696\",\"#737373\",\"#525252\",\"#252525\",\"#000000\"],YlOrRd:[\"#ffffcc\",\"#ffeda0\",\"#fed976\",\"#feb24c\",\"#fd8d3c\",\"#fc4e2a\",\"#e31a1c\",\"#bd0026\",\"#800026\"],PuRd:[\"#f7f4f9\",\"#e7e1ef\",\"#d4b9da\",\"#c994c7\",\"#df65b0\",\"#e7298a\",\"#ce1256\",\"#980043\",\"#67001f\"],Blues:[\"#f7fbff\",\"#deebf7\",\"#c6dbef\",\"#9ecae1\",\"#6baed6\",\"#4292c6\",\"#2171b5\",\"#08519c\",\"#08306b\"],PuBuGn:[\"#fff7fb\",\"#ece2f0\",\"#d0d1e6\",\"#a6bddb\",\"#67a9cf\",\"#3690c0\",\"#02818a\",\"#016c59\",\"#014636\"],Viridis:[\"#440154\",\"#482777\",\"#3f4a8a\",\"#31678e\",\"#26838f\",\"#1f9d8a\",\"#6cce5a\",\"#b6de2b\",\"#fee825\"],Spectral:[\"#9e0142\",\"#d53e4f\",\"#f46d43\",\"#fdae61\",\"#fee08b\",\"#ffffbf\",\"#e6f598\",\"#abdda4\",\"#66c2a5\",\"#3288bd\",\"#5e4fa2\"],RdYlGn:[\"#a50026\",\"#d73027\",\"#f46d43\",\"#fdae61\",\"#fee08b\",\"#ffffbf\",\"#d9ef8b\",\"#a6d96a\",\"#66bd63\",\"#1a9850\",\"#006837\"],RdBu:[\"#67001f\",\"#b2182b\",\"#d6604d\",\"#f4a582\",\"#fddbc7\",\"#f7f7f7\",\"#d1e5f0\",\"#92c5de\",\"#4393c3\",\"#2166ac\",\"#053061\"],PiYG:[\"#8e0152\",\"#c51b7d\",\"#de77ae\",\"#f1b6da\",\"#fde0ef\",\"#f7f7f7\",\"#e6f5d0\",\"#b8e186\",\"#7fbc41\",\"#4d9221\",\"#276419\"],PRGn:[\"#40004b\",\"#762a83\",\"#9970ab\",\"#c2a5cf\",\"#e7d4e8\",\"#f7f7f7\",\"#d9f0d3\",\"#a6dba0\",\"#5aae61\",\"#1b7837\",\"#00441b\"],RdYlBu:[\"#a50026\",\"#d73027\",\"#f46d43\",\"#fdae61\",\"#fee090\",\"#ffffbf\",\"#e0f3f8\",\"#abd9e9\",\"#74add1\",\"#4575b4\",\"#313695\"],BrBG:[\"#543005\",\"#8c510a\",\"#bf812d\",\"#dfc27d\",\"#f6e8c3\",\"#f5f5f5\",\"#c7eae5\",\"#80cdc1\",\"#35978f\",\"#01665e\",\"#003c30\"],RdGy:[\"#67001f\",\"#b2182b\",\"#d6604d\",\"#f4a582\",\"#fddbc7\",\"#ffffff\",\"#e0e0e0\",\"#bababa\",\"#878787\",\"#4d4d4d\",\"#1a1a1a\"],PuOr:[\"#7f3b08\",\"#b35806\",\"#e08214\",\"#fdb863\",\"#fee0b6\",\"#f7f7f7\",\"#d8daeb\",\"#b2abd2\",\"#8073ac\",\"#542788\",\"#2d004b\"],Set2:[\"#66c2a5\",\"#fc8d62\",\"#8da0cb\",\"#e78ac3\",\"#a6d854\",\"#ffd92f\",\"#e5c494\",\"#b3b3b3\"],Accent:[\"#7fc97f\",\"#beaed4\",\"#fdc086\",\"#ffff99\",\"#386cb0\",\"#f0027f\",\"#bf5b17\",\"#666666\"],Set1:[\"#e41a1c\",\"#377eb8\",\"#4daf4a\",\"#984ea3\",\"#ff7f00\",\"#ffff33\",\"#a65628\",\"#f781bf\",\"#999999\"],Set3:[\"#8dd3c7\",\"#ffffb3\",\"#bebada\",\"#fb8072\",\"#80b1d3\",\"#fdb462\",\"#b3de69\",\"#fccde5\",\"#d9d9d9\",\"#bc80bd\",\"#ccebc5\",\"#ffed6f\"],Dark2:[\"#1b9e77\",\"#d95f02\",\"#7570b3\",\"#e7298a\",\"#66a61e\",\"#e6ab02\",\"#a6761d\",\"#666666\"],Paired:[\"#a6cee3\",\"#1f78b4\",\"#b2df8a\",\"#33a02c\",\"#fb9a99\",\"#e31a1c\",\"#fdbf6f\",\"#ff7f00\",\"#cab2d6\",\"#6a3d9a\",\"#ffff99\",\"#b15928\"],Pastel2:[\"#b3e2cd\",\"#fdcdac\",\"#cbd5e8\",\"#f4cae4\",\"#e6f5c9\",\"#fff2ae\",\"#f1e2cc\",\"#cccccc\"],Pastel1:[\"#fbb4ae\",\"#b3cde3\",\"#ccebc5\",\"#decbe4\",\"#fed9a6\",\"#ffffcc\",\"#e5d8bd\",\"#fddaec\",\"#f2f2f2\"]};for(let t of Object.keys(Et))Et[t.toLowerCase()]=Et[t];Object.assign(chroma,{average:average,bezier:bezier$1,blend:blend,cubehelix:cubehelix,mix:mix,interpolate:mix,random:random$1,scale:scale,analyze:analyze,contrast:contrast,deltaE:deltaE,distance:distance,limits:limits,valid:valid,scales:$t,input:a,colors:z,brewer:Et});export{chroma as default};\n//# sourceMappingURL=index.js.map\n","/* @license twgl.js 4.24.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.\nAvailable via the MIT license.\nsee: http://github.com/greggman/twgl.js for details */\nlet e=Float32Array;\n/**\n * A JavaScript array with 3 values or a Float32Array with 3 values.\n * When created by the library will create the default type which is `Float32Array`\n * but can be set by calling {@link module:twgl/v3.setDefaultType}.\n * @typedef {(number[]|Float32Array)} Vec3\n * @memberOf module:twgl/v3\n */\n/**\n * Sets the type this library creates for a Vec3\n * @param {constructor} ctor the constructor for the type. Either `Float32Array` or `Array`\n * @return {constructor} previous constructor for Vec3\n * @memberOf module:twgl/v3\n */function setDefaultType(t){const r=e;e=t;return r}\n/**\n * Creates a vec3; may be called with x, y, z to set initial values.\n * @param {number} [x] Initial x value.\n * @param {number} [y] Initial y value.\n * @param {number} [z] Initial z value.\n * @return {module:twgl/v3.Vec3} the created vector\n * @memberOf module:twgl/v3\n */function create(t,r,n){const o=new e(3);t&&(o[0]=t);r&&(o[1]=r);n&&(o[2]=n);return o}\n/**\n * Adds two vectors; assumes a and b have the same dimension.\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} A vector tha tis the sum of a and b.\n * @memberOf module:twgl/v3\n */function add(t,r,n){n=n||new e(3);n[0]=t[0]+r[0];n[1]=t[1]+r[1];n[2]=t[2]+r[2];return n}\n/**\n * Subtracts two vectors.\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} A vector that is the difference of a and b.\n * @memberOf module:twgl/v3\n */function subtract(t,r,n){n=n||new e(3);n[0]=t[0]-r[0];n[1]=t[1]-r[1];n[2]=t[2]-r[2];return n}\n/**\n * Performs linear interpolation on two vectors.\n * Given vectors a and b and interpolation coefficient t, returns\n * a + t * (b - a).\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {number} t Interpolation coefficient.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The linear interpolated result.\n * @memberOf module:twgl/v3\n */function lerp(t,r,n,o){o=o||new e(3);o[0]=t[0]+n*(r[0]-t[0]);o[1]=t[1]+n*(r[1]-t[1]);o[2]=t[2]+n*(r[2]-t[2]);return o}\n/**\n * Performs linear interpolation on two vectors.\n * Given vectors a and b and interpolation coefficient vector t, returns\n * a + t * (b - a).\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} t Interpolation coefficients vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} the linear interpolated result.\n * @memberOf module:twgl/v3\n */function lerpV(t,r,n,o){o=o||new e(3);o[0]=t[0]+n[0]*(r[0]-t[0]);o[1]=t[1]+n[1]*(r[1]-t[1]);o[2]=t[2]+n[2]*(r[2]-t[2]);return o}\n/**\n * Return max values of two vectors.\n * Given vectors a and b returns\n * [max(a[0], b[0]), max(a[1], b[1]), max(a[2], b[2])].\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The max components vector.\n * @memberOf module:twgl/v3\n */function max(t,r,n){n=n||new e(3);n[0]=Math.max(t[0],r[0]);n[1]=Math.max(t[1],r[1]);n[2]=Math.max(t[2],r[2]);return n}\n/**\n * Return min values of two vectors.\n * Given vectors a and b returns\n * [min(a[0], b[0]), min(a[1], b[1]), min(a[2], b[2])].\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The min components vector.\n * @memberOf module:twgl/v3\n */function min(t,r,n){n=n||new e(3);n[0]=Math.min(t[0],r[0]);n[1]=Math.min(t[1],r[1]);n[2]=Math.min(t[2],r[2]);return n}\n/**\n * Multiplies a vector by a scalar.\n * @param {module:twgl/v3.Vec3} v The vector.\n * @param {number} k The scalar.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The scaled vector.\n * @memberOf module:twgl/v3\n */function mulScalar(t,r,n){n=n||new e(3);n[0]=t[0]*r;n[1]=t[1]*r;n[2]=t[2]*r;return n}\n/**\n * Divides a vector by a scalar.\n * @param {module:twgl/v3.Vec3} v The vector.\n * @param {number} k The scalar.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The scaled vector.\n * @memberOf module:twgl/v3\n */function divScalar(t,r,n){n=n||new e(3);n[0]=t[0]/r;n[1]=t[1]/r;n[2]=t[2]/r;return n}\n/**\n * Computes the cross product of two vectors; assumes both vectors have\n * three entries.\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The vector of a cross b.\n * @memberOf module:twgl/v3\n */function cross(t,r,n){n=n||new e(3);const o=t[2]*r[0]-t[0]*r[2];const s=t[0]*r[1]-t[1]*r[0];n[0]=t[1]*r[2]-t[2]*r[1];n[1]=o;n[2]=s;return n}\n/**\n * Computes the dot product of two vectors; assumes both vectors have\n * three entries.\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @return {number} dot product\n * @memberOf module:twgl/v3\n */function dot(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}\n/**\n * Computes the length of vector\n * @param {module:twgl/v3.Vec3} v vector.\n * @return {number} length of vector.\n * @memberOf module:twgl/v3\n */function length$1(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])}\n/**\n * Computes the square of the length of vector\n * @param {module:twgl/v3.Vec3} v vector.\n * @return {number} square of the length of vector.\n * @memberOf module:twgl/v3\n */function lengthSq(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]}\n/**\n * Computes the distance between 2 points\n * @param {module:twgl/v3.Vec3} a vector.\n * @param {module:twgl/v3.Vec3} b vector.\n * @return {number} distance between a and b\n * @memberOf module:twgl/v3\n */function distance(e,t){const r=e[0]-t[0];const n=e[1]-t[1];const o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}\n/**\n * Computes the square of the distance between 2 points\n * @param {module:twgl/v3.Vec3} a vector.\n * @param {module:twgl/v3.Vec3} b vector.\n * @return {number} square of the distance between a and b\n * @memberOf module:twgl/v3\n */function distanceSq(e,t){const r=e[0]-t[0];const n=e[1]-t[1];const o=e[2]-t[2];return r*r+n*n+o*o}\n/**\n * Divides a vector by its Euclidean length and returns the quotient.\n * @param {module:twgl/v3.Vec3} a The vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The normalized vector.\n * @memberOf module:twgl/v3\n */function normalize(t,r){r=r||new e(3);const n=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];const o=Math.sqrt(n);if(o>1e-5){r[0]=t[0]/o;r[1]=t[1]/o;r[2]=t[2]/o}else{r[0]=0;r[1]=0;r[2]=0}return r}\n/**\n * Negates a vector.\n * @param {module:twgl/v3.Vec3} v The vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} -v.\n * @memberOf module:twgl/v3\n */function negate(t,r){r=r||new e(3);r[0]=-t[0];r[1]=-t[1];r[2]=-t[2];return r}\n/**\n * Copies a vector.\n * @param {module:twgl/v3.Vec3} v The vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} A copy of v.\n * @memberOf module:twgl/v3\n */function copy(t,r){r=r||new e(3);r[0]=t[0];r[1]=t[1];r[2]=t[2];return r}\n/**\n * Multiplies a vector by another vector (component-wise); assumes a and\n * b have the same length.\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The vector of products of entries of a and\n *     b.\n * @memberOf module:twgl/v3\n */function multiply(t,r,n){n=n||new e(3);n[0]=t[0]*r[0];n[1]=t[1]*r[1];n[2]=t[2]*r[2];return n}\n/**\n * Divides a vector by another vector (component-wise); assumes a and\n * b have the same length.\n * @param {module:twgl/v3.Vec3} a Operand vector.\n * @param {module:twgl/v3.Vec3} b Operand vector.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not new one is created.\n * @return {module:twgl/v3.Vec3} The vector of quotients of entries of a and\n *     b.\n * @memberOf module:twgl/v3\n */function divide(t,r,n){n=n||new e(3);n[0]=t[0]/r[0];n[1]=t[1]/r[1];n[2]=t[2]/r[2];return n}var t=Object.freeze({__proto__:null,add:add,copy:copy,create:create,cross:cross,distance:distance,distanceSq:distanceSq,divide:divide,divScalar:divScalar,dot:dot,lerp:lerp,lerpV:lerpV,length:length$1,lengthSq:lengthSq,max:max,min:min,mulScalar:mulScalar,multiply:multiply,negate:negate,normalize:normalize,setDefaultType:setDefaultType,subtract:subtract});let r=Float32Array;\n/**\n * A JavaScript array with 16 values or a Float32Array with 16 values.\n * When created by the library will create the default type which is `Float32Array`\n * but can be set by calling {@link module:twgl/m4.setDefaultType}.\n * @typedef {(number[]|Float32Array)} Mat4\n * @memberOf module:twgl/m4\n */\n/**\n * Sets the type this library creates for a Mat4\n * @param {constructor} ctor the constructor for the type. Either `Float32Array` or `Array`\n * @return {constructor} previous constructor for Mat4\n * @memberOf module:twgl/m4\n */function setDefaultType$1(e){const t=r;r=e;return t}\n/**\n * Negates a matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} -m.\n * @memberOf module:twgl/m4\n */function negate$1(e,t){t=t||new r(16);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];return t}function create$1(){return new r(16).fill(0)}\n/**\n * Copies a matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] The matrix. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} A copy of m.\n * @memberOf module:twgl/m4\n */function copy$1(e,t){t=t||new r(16);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];return t}\n/**\n * Creates an n-by-n identity matrix.\n *\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} An n-by-n identity matrix.\n * @memberOf module:twgl/m4\n */function identity(e){e=e||new r(16);e[0]=1;e[1]=0;e[2]=0;e[3]=0;e[4]=0;e[5]=1;e[6]=0;e[7]=0;e[8]=0;e[9]=0;e[10]=1;e[11]=0;e[12]=0;e[13]=0;e[14]=0;e[15]=1;return e}\n/**\n * Takes the transpose of a matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The transpose of m.\n * @memberOf module:twgl/m4\n */function transpose(e,t){t=t||new r(16);if(t===e){let r;r=e[1];e[1]=e[4];e[4]=r;r=e[2];e[2]=e[8];e[8]=r;r=e[3];e[3]=e[12];e[12]=r;r=e[6];e[6]=e[9];e[9]=r;r=e[7];e[7]=e[13];e[13]=r;r=e[11];e[11]=e[14];e[14]=r;return t}const n=e[0];const o=e[1];const s=e[2];const a=e[3];const c=e[4];const i=e[5];const u=e[6];const f=e[7];const l=e[8];const m=e[9];const d=e[10];const y=e[11];const p=e[12];const b=e[13];const g=e[14];const A=e[15];t[0]=n;t[1]=c;t[2]=l;t[3]=p;t[4]=o;t[5]=i;t[6]=m;t[7]=b;t[8]=s;t[9]=u;t[10]=d;t[11]=g;t[12]=a;t[13]=f;t[14]=y;t[15]=A;return t}\n/**\n * Computes the inverse of a 4-by-4 matrix.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The inverse of m.\n * @memberOf module:twgl/m4\n */function inverse(e,t){t=t||new r(16);const n=e[0];const o=e[1];const s=e[2];const a=e[3];const c=e[4];const i=e[5];const u=e[6];const f=e[7];const l=e[8];const m=e[9];const d=e[10];const y=e[11];const p=e[12];const b=e[13];const g=e[14];const A=e[15];const h=d*A;const x=g*y;const F=u*A;const T=g*f;const S=u*y;const P=d*f;const E=s*A;const w=g*a;const I=s*y;const v=d*a;const B=s*f;const C=u*a;const k=l*b;const _=p*m;const z=c*b;const U=p*i;const V=c*m;const M=l*i;const R=n*b;const O=p*o;const D=n*m;const L=l*o;const N=n*i;const G=c*o;const W=h*i+T*m+S*b-(x*i+F*m+P*b);const j=x*o+E*m+v*b-(h*o+w*m+I*b);const $=F*o+w*i+B*b-(T*o+E*i+C*b);const X=P*o+I*i+C*m-(S*o+v*i+B*m);const Y=1/(n*W+c*j+l*$+p*X);t[0]=Y*W;t[1]=Y*j;t[2]=Y*$;t[3]=Y*X;t[4]=Y*(x*c+F*l+P*p-(h*c+T*l+S*p));t[5]=Y*(h*n+w*l+I*p-(x*n+E*l+v*p));t[6]=Y*(T*n+E*c+C*p-(F*n+w*c+B*p));t[7]=Y*(S*n+v*c+B*l-(P*n+I*c+C*l));t[8]=Y*(k*f+U*y+V*A-(_*f+z*y+M*A));t[9]=Y*(_*a+R*y+L*A-(k*a+O*y+D*A));t[10]=Y*(z*a+O*f+N*A-(U*a+R*f+G*A));t[11]=Y*(M*a+D*f+G*y-(V*a+L*f+N*y));t[12]=Y*(z*d+M*g+_*u-(V*g+k*u+U*d));t[13]=Y*(D*g+k*s+O*d-(R*d+L*g+_*s));t[14]=Y*(R*u+G*g+U*s-(N*g+z*s+O*u));t[15]=Y*(N*d+V*s+L*u-(D*u+G*d+M*s));return t}\n/**\n * Multiplies two 4-by-4 matrices with a on the left and b on the right\n * @param {module:twgl/m4.Mat4} a The matrix on the left.\n * @param {module:twgl/m4.Mat4} b The matrix on the right.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The matrix product of a and b.\n * @memberOf module:twgl/m4\n */function multiply$1(e,t,n){n=n||new r(16);const o=e[0];const s=e[1];const a=e[2];const c=e[3];const i=e[4];const u=e[5];const f=e[6];const l=e[7];const m=e[8];const d=e[9];const y=e[10];const p=e[11];const b=e[12];const g=e[13];const A=e[14];const h=e[15];const x=t[0];const F=t[1];const T=t[2];const S=t[3];const P=t[4];const E=t[5];const w=t[6];const I=t[7];const v=t[8];const B=t[9];const C=t[10];const k=t[11];const _=t[12];const z=t[13];const U=t[14];const V=t[15];n[0]=o*x+i*F+m*T+b*S;n[1]=s*x+u*F+d*T+g*S;n[2]=a*x+f*F+y*T+A*S;n[3]=c*x+l*F+p*T+h*S;n[4]=o*P+i*E+m*w+b*I;n[5]=s*P+u*E+d*w+g*I;n[6]=a*P+f*E+y*w+A*I;n[7]=c*P+l*E+p*w+h*I;n[8]=o*v+i*B+m*C+b*k;n[9]=s*v+u*B+d*C+g*k;n[10]=a*v+f*B+y*C+A*k;n[11]=c*v+l*B+p*C+h*k;n[12]=o*_+i*z+m*U+b*V;n[13]=s*_+u*z+d*U+g*V;n[14]=a*_+f*z+y*U+A*V;n[15]=c*_+l*z+p*U+h*V;return n}\n/**\n * Sets the translation component of a 4-by-4 matrix to the given\n * vector.\n * @param {module:twgl/m4.Mat4} a The matrix.\n * @param {module:twgl/v3.Vec3} v The vector.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The matrix with translation set.\n * @memberOf module:twgl/m4\n */function setTranslation(e,t,r){r=r||identity();if(e!==r){r[0]=e[0];r[1]=e[1];r[2]=e[2];r[3]=e[3];r[4]=e[4];r[5]=e[5];r[6]=e[6];r[7]=e[7];r[8]=e[8];r[9]=e[9];r[10]=e[10];r[11]=e[11]}r[12]=t[0];r[13]=t[1];r[14]=t[2];r[15]=1;return r}\n/**\n * Returns the translation component of a 4-by-4 matrix as a vector with 3\n * entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} [dst] vector to hold result. If not passed a new one is created.\n * @return {module:twgl/v3.Vec3} The translation component of m.\n * @memberOf module:twgl/m4\n */function getTranslation(e,t){t=t||create();t[0]=e[12];t[1]=e[13];t[2]=e[14];return t}\n/**\n * Returns an axis of a 4x4 matrix as a vector with 3 entries\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} axis The axis 0 = x, 1 = y, 2 = z;\n * @return {module:twgl/v3.Vec3} [dst] vector.\n * @return {module:twgl/v3.Vec3} The axis component of m.\n * @memberOf module:twgl/m4\n */function getAxis(e,t,r){r=r||create();const n=4*t;r[0]=e[n+0];r[1]=e[n+1];r[2]=e[n+2];return r}\n/**\n * Sets an axis of a 4x4 matrix as a vector with 3 entries\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} v the axis vector\n * @param {number} axis The axis  0 = x, 1 = y, 2 = z;\n * @param {module:twgl/m4.Mat4} [dst] The matrix to set. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The matrix with axis set.\n * @memberOf module:twgl/m4\n */function setAxis(e,t,r,n){n!==e&&(n=copy$1(e,n));const o=4*r;n[o+0]=t[0];n[o+1]=t[1];n[o+2]=t[2];return n}\n/**\n * Computes a 4-by-4 perspective transformation matrix given the angular height\n * of the frustum, the aspect ratio, and the near and far clipping planes.  The\n * arguments define a frustum extending in the negative z direction.  The given\n * angle is the vertical angle of the frustum, and the horizontal angle is\n * determined to produce the given aspect ratio.  The arguments near and far are\n * the distances to the near and far clipping planes.  Note that near and far\n * are not z coordinates, but rather they are distances along the negative\n * z-axis.  The matrix generated sends the viewing frustum to the unit box.\n * We assume a unit box extending from -1 to 1 in the x and y dimensions and\n * from 0 to 1 in the z dimension.\n * @param {number} fieldOfViewYInRadians The camera angle from top to bottom (in radians).\n * @param {number} aspect The aspect ratio width / height.\n * @param {number} zNear The depth (negative z coordinate)\n *     of the near clipping plane.\n * @param {number} zFar The depth (negative z coordinate)\n *     of the far clipping plane.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The perspective matrix.\n * @memberOf module:twgl/m4\n */function perspective(e,t,n,o,s){s=s||new r(16);const a=Math.tan(.5*Math.PI-.5*e);const c=1/(n-o);s[0]=a/t;s[1]=0;s[2]=0;s[3]=0;s[4]=0;s[5]=a;s[6]=0;s[7]=0;s[8]=0;s[9]=0;s[10]=(n+o)*c;s[11]=-1;s[12]=0;s[13]=0;s[14]=n*o*c*2;s[15]=0;return s}\n/**\n * Computes a 4-by-4 orthogonal transformation matrix given the left, right,\n * bottom, and top dimensions of the near clipping plane as well as the\n * near and far clipping plane distances.\n * @param {number} left Left side of the near clipping plane viewport.\n * @param {number} right Right side of the near clipping plane viewport.\n * @param {number} bottom Bottom of the near clipping plane viewport.\n * @param {number} top Top of the near clipping plane viewport.\n * @param {number} near The depth (negative z coordinate)\n *     of the near clipping plane.\n * @param {number} far The depth (negative z coordinate)\n *     of the far clipping plane.\n * @param {module:twgl/m4.Mat4} [dst] Output matrix. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The perspective matrix.\n * @memberOf module:twgl/m4\n */function ortho(e,t,n,o,s,a,c){c=c||new r(16);c[0]=2/(t-e);c[1]=0;c[2]=0;c[3]=0;c[4]=0;c[5]=2/(o-n);c[6]=0;c[7]=0;c[8]=0;c[9]=0;c[10]=2/(s-a);c[11]=0;c[12]=(t+e)/(e-t);c[13]=(o+n)/(n-o);c[14]=(a+s)/(s-a);c[15]=1;return c}\n/**\n * Computes a 4-by-4 perspective transformation matrix given the left, right,\n * top, bottom, near and far clipping planes. The arguments define a frustum\n * extending in the negative z direction. The arguments near and far are the\n * distances to the near and far clipping planes. Note that near and far are not\n * z coordinates, but rather they are distances along the negative z-axis. The\n * matrix generated sends the viewing frustum to the unit box. We assume a unit\n * box extending from -1 to 1 in the x and y dimensions and from 0 to 1 in the z\n * dimension.\n * @param {number} left The x coordinate of the left plane of the box.\n * @param {number} right The x coordinate of the right plane of the box.\n * @param {number} bottom The y coordinate of the bottom plane of the box.\n * @param {number} top The y coordinate of the right plane of the box.\n * @param {number} near The negative z coordinate of the near plane of the box.\n * @param {number} far The negative z coordinate of the far plane of the box.\n * @param {module:twgl/m4.Mat4} [dst] Output matrix. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The perspective projection matrix.\n * @memberOf module:twgl/m4\n */function frustum(e,t,n,o,s,a,c){c=c||new r(16);const i=t-e;const u=o-n;const f=s-a;c[0]=2*s/i;c[1]=0;c[2]=0;c[3]=0;c[4]=0;c[5]=2*s/u;c[6]=0;c[7]=0;c[8]=(e+t)/i;c[9]=(o+n)/u;c[10]=a/f;c[11]=-1;c[12]=0;c[13]=0;c[14]=s*a/f;c[15]=0;return c}let n;let o;let s;\n/**\n * Computes a 4-by-4 look-at transformation.\n *\n * This is a matrix which positions the camera itself. If you want\n * a view matrix (a matrix which moves things in front of the camera)\n * take the inverse of this.\n *\n * @param {module:twgl/v3.Vec3} eye The position of the eye.\n * @param {module:twgl/v3.Vec3} target The position meant to be viewed.\n * @param {module:twgl/v3.Vec3} up A vector pointing up.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The look-at matrix.\n * @memberOf module:twgl/m4\n */function lookAt(e,t,a,c){c=c||new r(16);n=n||create();o=o||create();s=s||create();normalize(subtract(e,t,s),s);normalize(cross(a,s,n),n);normalize(cross(s,n,o),o);c[0]=n[0];c[1]=n[1];c[2]=n[2];c[3]=0;c[4]=o[0];c[5]=o[1];c[6]=o[2];c[7]=0;c[8]=s[0];c[9]=s[1];c[10]=s[2];c[11]=0;c[12]=e[0];c[13]=e[1];c[14]=e[2];c[15]=1;return c}\n/**\n * Creates a 4-by-4 matrix which translates by the given vector v.\n * @param {module:twgl/v3.Vec3} v The vector by\n *     which to translate.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The translation matrix.\n * @memberOf module:twgl/m4\n */function translation(e,t){t=t||new r(16);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]=e[0];t[13]=e[1];t[14]=e[2];t[15]=1;return t}\n/**\n * Translates the given 4-by-4 matrix by the given vector v.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} v The vector by\n *     which to translate.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The translated matrix.\n * @memberOf module:twgl/m4\n */function translate(e,t,n){n=n||new r(16);const o=t[0];const s=t[1];const a=t[2];const c=e[0];const i=e[1];const u=e[2];const f=e[3];const l=e[4];const m=e[5];const d=e[6];const y=e[7];const p=e[8];const b=e[9];const g=e[10];const A=e[11];const h=e[12];const x=e[13];const F=e[14];const T=e[15];if(e!==n){n[0]=c;n[1]=i;n[2]=u;n[3]=f;n[4]=l;n[5]=m;n[6]=d;n[7]=y;n[8]=p;n[9]=b;n[10]=g;n[11]=A}n[12]=c*o+l*s+p*a+h;n[13]=i*o+m*s+b*a+x;n[14]=u*o+d*s+g*a+F;n[15]=f*o+y*s+A*a+T;return n}\n/**\n * Creates a 4-by-4 matrix which rotates around the x-axis by the given angle.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotation matrix.\n * @memberOf module:twgl/m4\n */function rotationX(e,t){t=t||new r(16);const n=Math.cos(e);const o=Math.sin(e);t[0]=1;t[1]=0;t[2]=0;t[3]=0;t[4]=0;t[5]=n;t[6]=o;t[7]=0;t[8]=0;t[9]=-o;t[10]=n;t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return t}\n/**\n * Rotates the given 4-by-4 matrix around the x-axis by the given\n * angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotated matrix.\n * @memberOf module:twgl/m4\n */function rotateX(e,t,n){n=n||new r(16);const o=e[4];const s=e[5];const a=e[6];const c=e[7];const i=e[8];const u=e[9];const f=e[10];const l=e[11];const m=Math.cos(t);const d=Math.sin(t);n[4]=m*o+d*i;n[5]=m*s+d*u;n[6]=m*a+d*f;n[7]=m*c+d*l;n[8]=m*i-d*o;n[9]=m*u-d*s;n[10]=m*f-d*a;n[11]=m*l-d*c;if(e!==n){n[0]=e[0];n[1]=e[1];n[2]=e[2];n[3]=e[3];n[12]=e[12];n[13]=e[13];n[14]=e[14];n[15]=e[15]}return n}\n/**\n * Creates a 4-by-4 matrix which rotates around the y-axis by the given angle.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotation matrix.\n * @memberOf module:twgl/m4\n */function rotationY(e,t){t=t||new r(16);const n=Math.cos(e);const o=Math.sin(e);t[0]=n;t[1]=0;t[2]=-o;t[3]=0;t[4]=0;t[5]=1;t[6]=0;t[7]=0;t[8]=o;t[9]=0;t[10]=n;t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return t}\n/**\n * Rotates the given 4-by-4 matrix around the y-axis by the given\n * angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotated matrix.\n * @memberOf module:twgl/m4\n */function rotateY(e,t,n){n=n||new r(16);const o=e[0];const s=e[1];const a=e[2];const c=e[3];const i=e[8];const u=e[9];const f=e[10];const l=e[11];const m=Math.cos(t);const d=Math.sin(t);n[0]=m*o-d*i;n[1]=m*s-d*u;n[2]=m*a-d*f;n[3]=m*c-d*l;n[8]=m*i+d*o;n[9]=m*u+d*s;n[10]=m*f+d*a;n[11]=m*l+d*c;if(e!==n){n[4]=e[4];n[5]=e[5];n[6]=e[6];n[7]=e[7];n[12]=e[12];n[13]=e[13];n[14]=e[14];n[15]=e[15]}return n}\n/**\n * Creates a 4-by-4 matrix which rotates around the z-axis by the given angle.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotation matrix.\n * @memberOf module:twgl/m4\n */function rotationZ(e,t){t=t||new r(16);const n=Math.cos(e);const o=Math.sin(e);t[0]=n;t[1]=o;t[2]=0;t[3]=0;t[4]=-o;t[5]=n;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;return t}\n/**\n * Rotates the given 4-by-4 matrix around the z-axis by the given\n * angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotated matrix.\n * @memberOf module:twgl/m4\n */function rotateZ(e,t,n){n=n||new r(16);const o=e[0];const s=e[1];const a=e[2];const c=e[3];const i=e[4];const u=e[5];const f=e[6];const l=e[7];const m=Math.cos(t);const d=Math.sin(t);n[0]=m*o+d*i;n[1]=m*s+d*u;n[2]=m*a+d*f;n[3]=m*c+d*l;n[4]=m*i-d*o;n[5]=m*u-d*s;n[6]=m*f-d*a;n[7]=m*l-d*c;if(e!==n){n[8]=e[8];n[9]=e[9];n[10]=e[10];n[11]=e[11];n[12]=e[12];n[13]=e[13];n[14]=e[14];n[15]=e[15]}return n}\n/**\n * Creates a 4-by-4 matrix which rotates around the given axis by the given\n * angle.\n * @param {module:twgl/v3.Vec3} axis The axis\n *     about which to rotate.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} A matrix which rotates angle radians\n *     around the axis.\n * @memberOf module:twgl/m4\n */function axisRotation(e,t,n){n=n||new r(16);let o=e[0];let s=e[1];let a=e[2];const c=Math.sqrt(o*o+s*s+a*a);o/=c;s/=c;a/=c;const i=o*o;const u=s*s;const f=a*a;const l=Math.cos(t);const m=Math.sin(t);const d=1-l;n[0]=i+(1-i)*l;n[1]=o*s*d+a*m;n[2]=o*a*d-s*m;n[3]=0;n[4]=o*s*d-a*m;n[5]=u+(1-u)*l;n[6]=s*a*d+o*m;n[7]=0;n[8]=o*a*d+s*m;n[9]=s*a*d-o*m;n[10]=f+(1-f)*l;n[11]=0;n[12]=0;n[13]=0;n[14]=0;n[15]=1;return n}\n/**\n * Rotates the given 4-by-4 matrix around the given axis by the\n * given angle.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} axis The axis\n *     about which to rotate.\n * @param {number} angleInRadians The angle by which to rotate (in radians).\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The rotated matrix.\n * @memberOf module:twgl/m4\n */function axisRotate(e,t,n,o){o=o||new r(16);let s=t[0];let a=t[1];let c=t[2];const i=Math.sqrt(s*s+a*a+c*c);s/=i;a/=i;c/=i;const u=s*s;const f=a*a;const l=c*c;const m=Math.cos(n);const d=Math.sin(n);const y=1-m;const p=u+(1-u)*m;const b=s*a*y+c*d;const g=s*c*y-a*d;const A=s*a*y-c*d;const h=f+(1-f)*m;const x=a*c*y+s*d;const F=s*c*y+a*d;const T=a*c*y-s*d;const S=l+(1-l)*m;const P=e[0];const E=e[1];const w=e[2];const I=e[3];const v=e[4];const B=e[5];const C=e[6];const k=e[7];const _=e[8];const z=e[9];const U=e[10];const V=e[11];o[0]=p*P+b*v+g*_;o[1]=p*E+b*B+g*z;o[2]=p*w+b*C+g*U;o[3]=p*I+b*k+g*V;o[4]=A*P+h*v+x*_;o[5]=A*E+h*B+x*z;o[6]=A*w+h*C+x*U;o[7]=A*I+h*k+x*V;o[8]=F*P+T*v+S*_;o[9]=F*E+T*B+S*z;o[10]=F*w+T*C+S*U;o[11]=F*I+T*k+S*V;if(e!==o){o[12]=e[12];o[13]=e[13];o[14]=e[14];o[15]=e[15]}return o}\n/**\n * Creates a 4-by-4 matrix which scales in each dimension by an amount given by\n * the corresponding entry in the given vector; assumes the vector has three\n * entries.\n * @param {module:twgl/v3.Vec3} v A vector of\n *     three entries specifying the factor by which to scale in each dimension.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The scaling matrix.\n * @memberOf module:twgl/m4\n */function scaling(e,t){t=t||new r(16);t[0]=e[0];t[1]=0;t[2]=0;t[3]=0;t[4]=0;t[5]=e[1];t[6]=0;t[7]=0;t[8]=0;t[9]=0;t[10]=e[2];t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return t}\n/**\n * Scales the given 4-by-4 matrix in each dimension by an amount\n * given by the corresponding entry in the given vector; assumes the vector has\n * three entries.\n * @param {module:twgl/m4.Mat4} m The matrix to be modified.\n * @param {module:twgl/v3.Vec3} v A vector of three entries specifying the\n *     factor by which to scale in each dimension.\n * @param {module:twgl/m4.Mat4} [dst] matrix to hold result. If not passed a new one is created.\n * @return {module:twgl/m4.Mat4} The scaled matrix.\n * @memberOf module:twgl/m4\n */function scale(e,t,n){n=n||new r(16);const o=t[0];const s=t[1];const a=t[2];n[0]=o*e[0];n[1]=o*e[1];n[2]=o*e[2];n[3]=o*e[3];n[4]=s*e[4];n[5]=s*e[5];n[6]=s*e[6];n[7]=s*e[7];n[8]=a*e[8];n[9]=a*e[9];n[10]=a*e[10];n[11]=a*e[11];if(e!==n){n[12]=e[12];n[13]=e[13];n[14]=e[14];n[15]=e[15]}return n}\n/**\n * Takes a 4-by-4 matrix and a vector with 3 entries,\n * interprets the vector as a point, transforms that point by the matrix, and\n * returns the result as a vector with 3 entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} v The point.\n * @param {module:twgl/v3.Vec3} [dst] optional vec3 to store result. If not passed a new one is created.\n * @return {module:twgl/v3.Vec3} The transformed point.\n * @memberOf module:twgl/m4\n */function transformPoint(e,t,r){r=r||create();const n=t[0];const o=t[1];const s=t[2];const a=n*e[3]+o*e[7]+s*e[11]+e[15];r[0]=(n*e[0]+o*e[4]+s*e[8]+e[12])/a;r[1]=(n*e[1]+o*e[5]+s*e[9]+e[13])/a;r[2]=(n*e[2]+o*e[6]+s*e[10]+e[14])/a;return r}\n/**\n * Takes a 4-by-4 matrix and a vector with 3 entries, interprets the vector as a\n * direction, transforms that direction by the matrix, and returns the result;\n * assumes the transformation of 3-dimensional space represented by the matrix\n * is parallel-preserving, i.e. any combination of rotation, scaling and\n * translation, but not a perspective distortion. Returns a vector with 3\n * entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} v The direction.\n * @param {module:twgl/v3.Vec3} [dst] optional Vec3 to store result. If not passed a new one is created.\n * @return {module:twgl/v3.Vec3} The transformed direction.\n * @memberOf module:twgl/m4\n */function transformDirection(e,t,r){r=r||create();const n=t[0];const o=t[1];const s=t[2];r[0]=n*e[0]+o*e[4]+s*e[8];r[1]=n*e[1]+o*e[5]+s*e[9];r[2]=n*e[2]+o*e[6]+s*e[10];return r}\n/**\n * Takes a 4-by-4 matrix m and a vector v with 3 entries, interprets the vector\n * as a normal to a surface, and computes a vector which is normal upon\n * transforming that surface by the matrix. The effect of this function is the\n * same as transforming v (as a direction) by the inverse-transpose of m.  This\n * function assumes the transformation of 3-dimensional space represented by the\n * matrix is parallel-preserving, i.e. any combination of rotation, scaling and\n * translation, but not a perspective distortion.  Returns a vector with 3\n * entries.\n * @param {module:twgl/m4.Mat4} m The matrix.\n * @param {module:twgl/v3.Vec3} v The normal.\n * @param {module:twgl/v3.Vec3} [dst] The direction. If not passed a new one is created.\n * @return {module:twgl/v3.Vec3} The transformed normal.\n * @memberOf module:twgl/m4\n */function transformNormal(e,t,r){r=r||create();const n=inverse(e);const o=t[0];const s=t[1];const a=t[2];r[0]=o*n[0]+s*n[1]+a*n[2];r[1]=o*n[4]+s*n[5]+a*n[6];r[2]=o*n[8]+s*n[9]+a*n[10];return r}var a=Object.freeze({__proto__:null,axisRotate:axisRotate,axisRotation:axisRotation,copy:copy$1,create:create$1,frustum:frustum,getAxis:getAxis,getTranslation:getTranslation,identity:identity,inverse:inverse,lookAt:lookAt,multiply:multiply$1,negate:negate$1,ortho:ortho,perspective:perspective,rotateX:rotateX,rotateY:rotateY,rotateZ:rotateZ,rotationX:rotationX,rotationY:rotationY,rotationZ:rotationZ,scale:scale,scaling:scaling,setAxis:setAxis,setDefaultType:setDefaultType$1,setTranslation:setTranslation,transformDirection:transformDirection,transformNormal:transformNormal,transformPoint:transformPoint,translate:translate,translation:translation,transpose:transpose});const c=5120;const i=5121;const u=5122;const f=5123;const l=5124;const m=5125;const d=5126;const y=32819;const p=32820;const b=33635;const g=5131;const A=33640;const h=35899;const x=35902;const F=36269;const T=34042;const S={};{const e=S;e[c]=Int8Array;e[i]=Uint8Array;e[u]=Int16Array;e[f]=Uint16Array;e[l]=Int32Array;e[m]=Uint32Array;e[d]=Float32Array;e[y]=Uint16Array;e[p]=Uint16Array;e[b]=Uint16Array;e[g]=Uint16Array;e[A]=Uint32Array;e[h]=Uint32Array;e[x]=Uint32Array;e[F]=Uint32Array;e[T]=Uint32Array}\n/**\n * Get the GL type for a typedArray\n * @param {ArrayBufferView} typedArray a typedArray\n * @return {number} the GL type for array. For example pass in an `Int8Array` and `gl.BYTE` will\n *   be returned. Pass in a `Uint32Array` and `gl.UNSIGNED_INT` will be returned\n * @memberOf module:twgl/typedArray\n */function getGLTypeForTypedArray(e){if(e instanceof Int8Array)return c;if(e instanceof Uint8Array)return i;if(e instanceof Uint8ClampedArray)return i;if(e instanceof Int16Array)return u;if(e instanceof Uint16Array)return f;if(e instanceof Int32Array)return l;if(e instanceof Uint32Array)return m;if(e instanceof Float32Array)return d;throw new Error(\"unsupported typed array type\")}\n/**\n * Get the GL type for a typedArray type\n * @param {ArrayBufferView} typedArrayType a typedArray constructor\n * @return {number} the GL type for type. For example pass in `Int8Array` and `gl.BYTE` will\n *   be returned. Pass in `Uint32Array` and `gl.UNSIGNED_INT` will be returned\n * @memberOf module:twgl/typedArray\n */function getGLTypeForTypedArrayType(e){if(e===Int8Array)return c;if(e===Uint8Array)return i;if(e===Uint8ClampedArray)return i;if(e===Int16Array)return u;if(e===Uint16Array)return f;if(e===Int32Array)return l;if(e===Uint32Array)return m;if(e===Float32Array)return d;throw new Error(\"unsupported typed array type\")}\n/**\n * Get the typed array constructor for a given GL type\n * @param {number} type the GL type. (eg: `gl.UNSIGNED_INT`)\n * @return {function} the constructor for a the corresponding typed array. (eg. `Uint32Array`).\n * @memberOf module:twgl/typedArray\n */function getTypedArrayTypeForGLType(e){const t=S[e];if(!t)throw new Error(\"unknown gl type\");return t}const P=\"undefined\"!==typeof SharedArrayBuffer?function isArrayBufferOrSharedArrayBuffer(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function isArrayBuffer(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};var E=Object.freeze({__proto__:null,getGLTypeForTypedArray:getGLTypeForTypedArray,getGLTypeForTypedArrayType:getGLTypeForTypedArrayType,getTypedArrayTypeForGLType:getTypedArrayTypeForGLType,isArrayBuffer:P});\n/**\n * Copy named properties\n *\n * @param {string[]} names names of properties to copy\n * @param {object} src object to copy properties from\n * @param {object} dst object to copy properties to\n * @private\n */function copyNamedProperties(e,t,r){e.forEach((function(e){const n=t[e];void 0!==n&&(r[e]=n)}))}\n/**\n * Copies properties from source to dest only if a matching key is in dest\n *\n * @param {Object.<string, ?>} src the source\n * @param {Object.<string, ?>} dst the dest\n * @private\n */function copyExistingProperties(e,t){Object.keys(t).forEach((function(r){t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&(t[r]=e[r])}))}function error(...e){console.error(...e)}function warn(...e){console.warn(...e)}function isBuffer(e,t){return\"undefined\"!==typeof WebGLBuffer&&t instanceof WebGLBuffer}function isRenderbuffer(e,t){return\"undefined\"!==typeof WebGLRenderbuffer&&t instanceof WebGLRenderbuffer}function isShader(e,t){return\"undefined\"!==typeof WebGLShader&&t instanceof WebGLShader}function isTexture(e,t){return\"undefined\"!==typeof WebGLTexture&&t instanceof WebGLTexture}function isSampler(e,t){return\"undefined\"!==typeof WebGLSampler&&t instanceof WebGLSampler}const w=35044;const I=34962;const v=34963;const B=34660;const C=5120;const k=5121;const _=5122;const z=5123;const U=5124;const V=5125;const M=5126;const R={attribPrefix:\"\"};\n/**\n * Sets the default attrib prefix\n *\n * When writing shaders I prefer to name attributes with `a_`, uniforms with `u_` and varyings with `v_`\n * as it makes it clear where they came from. But, when building geometry I prefer using un-prefixed names.\n *\n * In other words I'll create arrays of geometry like this\n *\n *     var arrays = {\n *       position: ...\n *       normal: ...\n *       texcoord: ...\n *     };\n *\n * But need those mapped to attributes and my attributes start with `a_`.\n *\n * @deprecated see {@link module:twgl.setDefaults}\n * @param {string} prefix prefix for attribs\n * @memberOf module:twgl/attributes\n */function setAttributePrefix(e){R.attribPrefix=e}function setDefaults(e){copyExistingProperties(e,R)}function setBufferFromTypedArray(e,t,r,n,o){e.bindBuffer(t,r);e.bufferData(t,n,o||w)}\n/**\n * Given typed array creates a WebGLBuffer and copies the typed array\n * into it.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {ArrayBuffer|SharedArrayBuffer|ArrayBufferView|WebGLBuffer} typedArray the typed array. Note: If a WebGLBuffer is passed in it will just be returned. No action will be taken\n * @param {number} [type] the GL bind type for the buffer. Default = `gl.ARRAY_BUFFER`.\n * @param {number} [drawType] the GL draw type for the buffer. Default = 'gl.STATIC_DRAW`.\n * @return {WebGLBuffer} the created WebGLBuffer\n * @memberOf module:twgl/attributes\n */function createBufferFromTypedArray(e,t,r,n){if(isBuffer(e,t))return t;r=r||I;const o=e.createBuffer();setBufferFromTypedArray(e,r,o,t,n);return o}function isIndices(e){return\"indices\"===e}function getNormalizationForTypedArray(e){return e instanceof Int8Array||e instanceof Uint8Array}function getNormalizationForTypedArrayType(e){return e===Int8Array||e===Uint8Array}function getArray(e){return e.length?e:e.data}const O=/coord|texture/i;const D=/color|colour/i;function guessNumComponentsFromName(e,t){let r;r=O.test(e)?2:D.test(e)?4:3;if(t%r>0)throw new Error(`Can not guess numComponents for attribute '${e}'. Tried ${r} but ${t} values is not evenly divisible by ${r}. You should specify it.`);return r}function getNumComponents(e,t){return e.numComponents||e.size||guessNumComponentsFromName(t,getArray(e).length)}function makeTypedArray(e,t){if(P(e))return e;if(P(e.data))return e.data;Array.isArray(e)&&(e={data:e});let r=e.type;r||(r=isIndices(t)?Uint16Array:Float32Array);return new r(e.data)}\n/**\n * The info for an attribute. This is effectively just the arguments to `gl.vertexAttribPointer` plus the WebGLBuffer\n * for the attribute.\n *\n * @typedef {Object} AttribInfo\n * @property {number[]|ArrayBufferView} [value] a constant value for the attribute. Note: if this is set the attribute will be\n *    disabled and set to this constant value and all other values will be ignored.\n * @property {number} [numComponents] the number of components for this attribute.\n * @property {number} [size] synonym for `numComponents`.\n * @property {number} [type] the type of the attribute (eg. `gl.FLOAT`, `gl.UNSIGNED_BYTE`, etc...) Default = `gl.FLOAT`\n * @property {boolean} [normalize] whether or not to normalize the data. Default = false\n * @property {number} [offset] offset into buffer in bytes. Default = 0\n * @property {number} [stride] the stride in bytes per element. Default = 0\n * @property {number} [divisor] the divisor in instances. Default = undefined. Note: undefined = don't call gl.vertexAttribDivisor\n *    where as anything else = do call it with this value\n * @property {WebGLBuffer} buffer the buffer that contains the data for this attribute\n * @property {number} [drawType] the draw type passed to gl.bufferData. Default = gl.STATIC_DRAW\n * @memberOf module:twgl\n */\n/**\n * Use this type of array spec when TWGL can't guess the type or number of components of an array\n * @typedef {Object} FullArraySpec\n * @property {number[]|ArrayBufferView} [value] a constant value for the attribute. Note: if this is set the attribute will be\n *    disabled and set to this constant value and all other values will be ignored.\n * @property {(number|number[]|ArrayBufferView)} data The data of the array. A number alone becomes the number of elements of type.\n * @property {number} [numComponents] number of components for `vertexAttribPointer`. Default is based on the name of the array.\n *    If `coord` is in the name assumes `numComponents = 2`.\n *    If `color` is in the name assumes `numComponents = 4`.\n *    otherwise assumes `numComponents = 3`\n * @property {constructor} [type] type. This is only used if `data` is a JavaScript array. It is the constructor for the typedarray. (eg. `Uint8Array`).\n * For example if you want colors in a `Uint8Array` you might have a `FullArraySpec` like `{ type: Uint8Array, data: [255,0,255,255, ...], }`.\n * @property {number} [size] synonym for `numComponents`.\n * @property {boolean} [normalize] normalize for `vertexAttribPointer`. Default is true if type is `Int8Array` or `Uint8Array` otherwise false.\n * @property {number} [stride] stride for `vertexAttribPointer`. Default = 0\n * @property {number} [offset] offset for `vertexAttribPointer`. Default = 0\n * @property {number} [divisor] divisor for `vertexAttribDivisor`. Default = undefined. Note: undefined = don't call gl.vertexAttribDivisor\n *    where as anything else = do call it with this value\n * @property {string} [attrib] name of attribute this array maps to. Defaults to same name as array prefixed by the default attribPrefix.\n * @property {string} [name] synonym for `attrib`.\n * @property {string} [attribName] synonym for `attrib`.\n * @property {WebGLBuffer} [buffer] Buffer to use for this attribute. This lets you use your own buffer\n *    but you will need to supply `numComponents` and `type`. You can effectively pass an `AttribInfo`\n *    to provide this. Example:\n *\n *         const bufferInfo1 = twgl.createBufferInfoFromArrays(gl, {\n *           position: [1, 2, 3, ... ],\n *         });\n *         const bufferInfo2 = twgl.createBufferInfoFromArrays(gl, {\n *           position: bufferInfo1.attribs.position,  // use the same buffer from bufferInfo1\n *         });\n *\n * @memberOf module:twgl\n */\n/**\n * An individual array in {@link module:twgl.Arrays}\n *\n * When passed to {@link module:twgl.createBufferInfoFromArrays} if an ArraySpec is `number[]` or `ArrayBufferView`\n * the types will be guessed based on the name. `indices` will be `Uint16Array`, everything else will\n * be `Float32Array`. If an ArraySpec is a number it's the number of floats for an empty (zeroed) buffer.\n *\n * @typedef {(number|number[]|ArrayBufferView|module:twgl.FullArraySpec)} ArraySpec\n * @memberOf module:twgl\n */\n/**\n * This is a JavaScript object of arrays by name. The names should match your shader's attributes. If your\n * attributes have a common prefix you can specify it by calling {@link module:twgl.setAttributePrefix}.\n *\n *     Bare JavaScript Arrays\n *\n *         var arrays = {\n *            position: [-1, 1, 0],\n *            normal: [0, 1, 0],\n *            ...\n *         }\n *\n *     Bare TypedArrays\n *\n *         var arrays = {\n *            position: new Float32Array([-1, 1, 0]),\n *            color: new Uint8Array([255, 128, 64, 255]),\n *            ...\n *         }\n *\n * *   Will guess at `numComponents` if not specified based on name.\n *\n *     If `coord` is in the name assumes `numComponents = 2`\n *\n *     If `color` is in the name assumes `numComponents = 4`\n *\n *     otherwise assumes `numComponents = 3`\n *\n * Objects with various fields. See {@link module:twgl.FullArraySpec}.\n *\n *     var arrays = {\n *       position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n *       texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1],                 },\n *       normal:   { numComponents: 3, data: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],     },\n *       indices:  { numComponents: 3, data: [0, 1, 2, 1, 2, 3],                       },\n *     };\n *\n * @typedef {Object.<string, module:twgl.ArraySpec>} Arrays\n * @memberOf module:twgl\n */\n/**\n * Creates a set of attribute data and WebGLBuffers from set of arrays\n *\n * Given\n *\n *      var arrays = {\n *        position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n *        texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1],                 },\n *        normal:   { numComponents: 3, data: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],     },\n *        color:    { numComponents: 4, data: [255, 255, 255, 255, 255, 0, 0, 255, 0, 0, 255, 255], type: Uint8Array, },\n *        indices:  { numComponents: 3, data: [0, 1, 2, 1, 2, 3],                       },\n *      };\n *\n * returns something like\n *\n *      var attribs = {\n *        position: { numComponents: 3, type: gl.FLOAT,         normalize: false, buffer: WebGLBuffer, },\n *        texcoord: { numComponents: 2, type: gl.FLOAT,         normalize: false, buffer: WebGLBuffer, },\n *        normal:   { numComponents: 3, type: gl.FLOAT,         normalize: false, buffer: WebGLBuffer, },\n *        color:    { numComponents: 4, type: gl.UNSIGNED_BYTE, normalize: true,  buffer: WebGLBuffer, },\n *      };\n *\n * notes:\n *\n * *   Arrays can take various forms\n *\n *     Bare JavaScript Arrays\n *\n *         var arrays = {\n *            position: [-1, 1, 0],\n *            normal: [0, 1, 0],\n *            ...\n *         }\n *\n *     Bare TypedArrays\n *\n *         var arrays = {\n *            position: new Float32Array([-1, 1, 0]),\n *            color: new Uint8Array([255, 128, 64, 255]),\n *            ...\n *         }\n *\n * *   Will guess at `numComponents` if not specified based on name.\n *\n *     If `coord` is in the name assumes `numComponents = 2`\n *\n *     If `color` is in the name assumes `numComponents = 4`\n *\n *     otherwise assumes `numComponents = 3`\n *\n * @param {WebGLRenderingContext} gl The webgl rendering context.\n * @param {module:twgl.Arrays} arrays The arrays\n * @param {module:twgl.BufferInfo} [srcBufferInfo] a BufferInfo to copy from\n *   This lets you share buffers. Any arrays you supply will override\n *   the buffers from srcBufferInfo.\n * @return {Object.<string, module:twgl.AttribInfo>} the attribs\n * @memberOf module:twgl/attributes\n */function createAttribsFromArrays(e,t){const r={};Object.keys(t).forEach((function(n){if(!isIndices(n)){const o=t[n];const s=o.attrib||o.name||o.attribName||R.attribPrefix+n;if(o.value){if(!Array.isArray(o.value)&&!P(o.value))throw new Error(\"array.value is not array or typedarray\");r[s]={value:o.value}}else{let t;let a;let c;let i;if(o.buffer&&o.buffer instanceof WebGLBuffer){t=o.buffer;i=o.numComponents||o.size;a=o.type;c=o.normalize}else if(\"number\"===typeof o||\"number\"===typeof o.data){const r=o.data||o;const s=o.type||Float32Array;const u=r*s.BYTES_PER_ELEMENT;a=getGLTypeForTypedArrayType(s);c=void 0!==o.normalize?o.normalize:getNormalizationForTypedArrayType(s);i=o.numComponents||o.size||guessNumComponentsFromName(n,r);t=e.createBuffer();e.bindBuffer(I,t);e.bufferData(I,u,o.drawType||w)}else{const r=makeTypedArray(o,n);t=createBufferFromTypedArray(e,r,void 0,o.drawType);a=getGLTypeForTypedArray(r);c=void 0!==o.normalize?o.normalize:getNormalizationForTypedArray(r);i=getNumComponents(o,n)}r[s]={buffer:t,numComponents:i,type:a,normalize:c,stride:o.stride||0,offset:o.offset||0,divisor:void 0===o.divisor?void 0:o.divisor,drawType:o.drawType}}}}));e.bindBuffer(I,null);return r}\n/**\n * Sets the contents of a buffer attached to an attribInfo\n *\n * This is helper function to dynamically update a buffer.\n *\n * Let's say you make a bufferInfo\n *\n *     var arrays = {\n *        position: new Float32Array([0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0]),\n *        texcoord: new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]),\n *        normal:   new Float32Array([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]),\n *        indices:  new Uint16Array([0, 1, 2, 1, 2, 3]),\n *     };\n *     var bufferInfo = twgl.createBufferInfoFromArrays(gl, arrays);\n *\n *  And you want to dynamically update the positions. You could do this\n *\n *     // assuming arrays.position has already been updated with new data.\n *     twgl.setAttribInfoBufferFromArray(gl, bufferInfo.attribs.position, arrays.position);\n *\n * @param {WebGLRenderingContext} gl\n * @param {AttribInfo} attribInfo The attribInfo who's buffer contents to set. NOTE: If you have an attribute prefix\n *   the name of the attribute will include the prefix.\n * @param {ArraySpec} array Note: it is arguably inefficient to pass in anything but a typed array because anything\n *    else will have to be converted to a typed array before it can be used by WebGL. During init time that\n *    inefficiency is usually not important but if you're updating data dynamically best to be efficient.\n * @param {number} [offset] an optional offset into the buffer. This is only an offset into the WebGL buffer\n *    not the array. To pass in an offset into the array itself use a typed array and create an `ArrayBufferView`\n *    for the portion of the array you want to use.\n *\n *        var someArray = new Float32Array(1000); // an array with 1000 floats\n *        var someSubArray = new Float32Array(someArray.buffer, offsetInBytes, sizeInUnits); // a view into someArray\n *\n *    Now you can pass `someSubArray` into setAttribInfoBufferFromArray`\n * @memberOf module:twgl/attributes\n */function setAttribInfoBufferFromArray(e,t,r,n){r=makeTypedArray(r);if(void 0!==n){e.bindBuffer(I,t.buffer);e.bufferSubData(I,n,r)}else setBufferFromTypedArray(e,I,t.buffer,r,t.drawType)}function getBytesPerValueForGLType(e,t){return t===C||t===k?1:t===_||t===z?2:t===U||t===V||t===M?4:0}const L=[\"position\",\"positions\",\"a_position\"];function getNumElementsFromNonIndexedArrays(e){let t;let r;for(r=0;r<L.length;++r){t=L[r];if(t in e)break}r===L.length&&(t=Object.keys(e)[0]);const n=e[t];const o=getArray(n).length;if(void 0===o)return 1;const s=getNumComponents(n,t);const a=o/s;if(o%s>0)throw new Error(`numComponents ${s} not correct for length ${o}`);return a}function getNumElementsFromAttributes(e,t){let r;let n;for(n=0;n<L.length;++n){r=L[n];if(r in t)break;r=R.attribPrefix+r;if(r in t)break}n===L.length&&(r=Object.keys(t)[0]);const o=t[r];if(!o.buffer)return 1;e.bindBuffer(I,o.buffer);const s=e.getBufferParameter(I,B);e.bindBuffer(I,null);const a=getBytesPerValueForGLType(e,o.type);const c=s/a;const i=o.numComponents||o.size;const u=c/i;if(u%1!==0)throw new Error(`numComponents ${i} not correct for length ${length}`);return u}\n/**\n * @typedef {Object} BufferInfo\n * @property {number} numElements The number of elements to pass to `gl.drawArrays` or `gl.drawElements`.\n * @property {number} [elementType] The type of indices `UNSIGNED_BYTE`, `UNSIGNED_SHORT` etc..\n * @property {WebGLBuffer} [indices] The indices `ELEMENT_ARRAY_BUFFER` if any indices exist.\n * @property {Object.<string, module:twgl.AttribInfo>} [attribs] The attribs appropriate to call `setAttributes`\n * @memberOf module:twgl\n */\n/**\n * Creates a BufferInfo from an object of arrays.\n *\n * This can be passed to {@link module:twgl.setBuffersAndAttributes} and to\n * {@link module:twgl:drawBufferInfo}.\n *\n * Given an object like\n *\n *     var arrays = {\n *       position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n *       texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1],                 },\n *       normal:   { numComponents: 3, data: [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],     },\n *       indices:  { numComponents: 3, data: [0, 1, 2, 1, 2, 3],                       },\n *     };\n *\n *  Creates an BufferInfo like this\n *\n *     bufferInfo = {\n *       numElements: 4,        // or whatever the number of elements is\n *       indices: WebGLBuffer,  // this property will not exist if there are no indices\n *       attribs: {\n *         position: { buffer: WebGLBuffer, numComponents: 3, },\n *         normal:   { buffer: WebGLBuffer, numComponents: 3, },\n *         texcoord: { buffer: WebGLBuffer, numComponents: 2, },\n *       },\n *     };\n *\n *  The properties of arrays can be JavaScript arrays in which case the number of components\n *  will be guessed.\n *\n *     var arrays = {\n *        position: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0],\n *        texcoord: [0, 0, 0, 1, 1, 0, 1, 1],\n *        normal:   [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],\n *        indices:  [0, 1, 2, 1, 2, 3],\n *     };\n *\n *  They can also be TypedArrays\n *\n *     var arrays = {\n *        position: new Float32Array([0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0]),\n *        texcoord: new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]),\n *        normal:   new Float32Array([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]),\n *        indices:  new Uint16Array([0, 1, 2, 1, 2, 3]),\n *     };\n *\n *  Or AugmentedTypedArrays\n *\n *     var positions = createAugmentedTypedArray(3, 4);\n *     var texcoords = createAugmentedTypedArray(2, 4);\n *     var normals   = createAugmentedTypedArray(3, 4);\n *     var indices   = createAugmentedTypedArray(3, 2, Uint16Array);\n *\n *     positions.push([0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0]);\n *     texcoords.push([0, 0, 0, 1, 1, 0, 1, 1]);\n *     normals.push([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]);\n *     indices.push([0, 1, 2, 1, 2, 3]);\n *\n *     var arrays = {\n *        position: positions,\n *        texcoord: texcoords,\n *        normal:   normals,\n *        indices:  indices,\n *     };\n *\n * For the last example it is equivalent to\n *\n *     var bufferInfo = {\n *       attribs: {\n *         position: { numComponents: 3, buffer: gl.createBuffer(), },\n *         texcoord: { numComponents: 2, buffer: gl.createBuffer(), },\n *         normal: { numComponents: 3, buffer: gl.createBuffer(), },\n *       },\n *       indices: gl.createBuffer(),\n *       numElements: 6,\n *     };\n *\n *     gl.bindBuffer(gl.ARRAY_BUFFER, bufferInfo.attribs.position.buffer);\n *     gl.bufferData(gl.ARRAY_BUFFER, arrays.position, gl.STATIC_DRAW);\n *     gl.bindBuffer(gl.ARRAY_BUFFER, bufferInfo.attribs.texcoord.buffer);\n *     gl.bufferData(gl.ARRAY_BUFFER, arrays.texcoord, gl.STATIC_DRAW);\n *     gl.bindBuffer(gl.ARRAY_BUFFER, bufferInfo.attribs.normal.buffer);\n *     gl.bufferData(gl.ARRAY_BUFFER, arrays.normal, gl.STATIC_DRAW);\n *     gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferInfo.indices);\n *     gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, arrays.indices, gl.STATIC_DRAW);\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {module:twgl.Arrays} arrays Your data\n * @param {module:twgl.BufferInfo} [srcBufferInfo] An existing\n *        buffer info to start from. WebGLBuffers etc specified\n *        in the srcBufferInfo will be used in a new BufferInfo\n *        with any arrays specified overriding the ones in\n *        srcBufferInfo.\n * @return {module:twgl.BufferInfo} A BufferInfo\n * @memberOf module:twgl/attributes\n */function createBufferInfoFromArrays(e,t,r){const n=createAttribsFromArrays(e,t);const o=Object.assign({},r||{});o.attribs=Object.assign({},r?r.attribs:{},n);const s=t.indices;if(s){const t=makeTypedArray(s,\"indices\");o.indices=createBufferFromTypedArray(e,t,v);o.numElements=t.length;o.elementType=getGLTypeForTypedArray(t)}else o.numElements||(o.numElements=getNumElementsFromAttributes(e,o.attribs));return o}\n/**\n * Creates a buffer from an array, typed array, or array spec\n *\n * Given something like this\n *\n *     [1, 2, 3],\n *\n * or\n *\n *     new Uint16Array([1,2,3]);\n *\n * or\n *\n *     {\n *        data: [1, 2, 3],\n *        type: Uint8Array,\n *     }\n *\n * returns a WebGLBuffer that contains the given data.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext.\n * @param {module:twgl.ArraySpec} array an array, typed array, or array spec.\n * @param {string} arrayName name of array. Used to guess the type if type can not be derived otherwise.\n * @return {WebGLBuffer} a WebGLBuffer containing the data in array.\n * @memberOf module:twgl/attributes\n */function createBufferFromArray(e,t,r){const n=\"indices\"===r?v:I;const o=makeTypedArray(t,r);return createBufferFromTypedArray(e,o,n)}\n/**\n * Creates buffers from arrays or typed arrays\n *\n * Given something like this\n *\n *     var arrays = {\n *        positions: [1, 2, 3],\n *        normals: [0, 0, 1],\n *     }\n *\n * returns something like\n *\n *     buffers = {\n *       positions: WebGLBuffer,\n *       normals: WebGLBuffer,\n *     }\n *\n * If the buffer is named 'indices' it will be made an ELEMENT_ARRAY_BUFFER.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext.\n * @param {module:twgl.Arrays} arrays\n * @return {Object<string, WebGLBuffer>} returns an object with one WebGLBuffer per array\n * @memberOf module:twgl/attributes\n */function createBuffersFromArrays(e,t){const r={};Object.keys(t).forEach((function(n){r[n]=createBufferFromArray(e,t[n],n)}));if(t.indices){r.numElements=t.indices.length;r.elementType=getGLTypeForTypedArray(makeTypedArray(t.indices))}else r.numElements=getNumElementsFromNonIndexedArrays(t);return r}var N=Object.freeze({__proto__:null,createAttribsFromArrays:createAttribsFromArrays,createBuffersFromArrays:createBuffersFromArrays,createBufferFromArray:createBufferFromArray,createBufferFromTypedArray:createBufferFromTypedArray,createBufferInfoFromArrays:createBufferInfoFromArrays,setAttribInfoBufferFromArray:setAttribInfoBufferFromArray,setAttributePrefix:setAttributePrefix,setAttributeDefaults_:setDefaults,getNumComponents_:getNumComponents,getArray_:getArray});const G=getArray;const W=getNumComponents;\n/**\n * @typedef {(Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array)} TypedArray\n */\n/**\n * Add `push` to a typed array. It just keeps a 'cursor'\n * and allows use to `push` values into the array so we\n * don't have to manually compute offsets\n * @param {TypedArray} typedArray TypedArray to augment\n * @param {number} numComponents number of components.\n * @private\n */function augmentTypedArray(e,t){let r=0;e.push=function(){for(let t=0;t<arguments.length;++t){const n=arguments[t];if(n instanceof Array||P(n))for(let t=0;t<n.length;++t)e[r++]=n[t];else e[r++]=n}};e.reset=function(e){r=e||0};e.numComponents=t;Object.defineProperty(e,\"numElements\",{get:function(){return this.length/this.numComponents|0}});return e}\n/**\n * creates a typed array with a `push` function attached\n * so that you can easily *push* values.\n *\n * `push` can take multiple arguments. If an argument is an array each element\n * of the array will be added to the typed array.\n *\n * Example:\n *\n *     const array = createAugmentedTypedArray(3, 2);  // creates a Float32Array with 6 values\n *     array.push(1, 2, 3);\n *     array.push([4, 5, 6]);\n *     // array now contains [1, 2, 3, 4, 5, 6]\n *\n * Also has `numComponents` and `numElements` properties.\n *\n * @param {number} numComponents number of components\n * @param {number} numElements number of elements. The total size of the array will be `numComponents * numElements`.\n * @param {constructor} opt_type A constructor for the type. Default = `Float32Array`.\n * @return {ArrayBufferView} A typed array.\n * @memberOf module:twgl/primitives\n */function createAugmentedTypedArray(e,t,r){const n=r||Float32Array;return augmentTypedArray(new n(e*t),e)}function allButIndices(e){return\"indices\"!==e}\n/**\n * Given indexed vertices creates a new set of vertices un-indexed by expanding the indexed vertices.\n * @param {Object.<string, TypedArray>} vertices The indexed vertices to deindex\n * @return {Object.<string, TypedArray>} The deindexed vertices\n * @memberOf module:twgl/primitives\n */function deindexVertices(e){const t=e.indices;const r={};const n=t.length;function expandToUnindexed(o){const s=e[o];const a=s.numComponents;const c=createAugmentedTypedArray(a,n,s.constructor);for(let e=0;e<n;++e){const r=t[e];const n=r*a;for(let e=0;e<a;++e)c.push(s[n+e])}r[o]=c}Object.keys(e).filter(allButIndices).forEach(expandToUnindexed);return r}\n/**\n * flattens the normals of deindexed vertices in place.\n * @param {Object.<string, TypedArray>} vertices The deindexed vertices who's normals to flatten\n * @return {Object.<string, TypedArray>} The flattened vertices (same as was passed in)\n * @memberOf module:twgl/primitives\n */function flattenNormals(e){if(e.indices)throw new Error(\"can not flatten normals of indexed vertices. deindex them first\");const t=e.normal;const r=t.length;for(let e=0;e<r;e+=9){const r=t[e+0];const n=t[e+1];const o=t[e+2];const s=t[e+3];const a=t[e+4];const c=t[e+5];const i=t[e+6];const u=t[e+7];const f=t[e+8];let l=r+s+i;let m=n+a+u;let d=o+c+f;const y=Math.sqrt(l*l+m*m+d*d);l/=y;m/=y;d/=y;t[e+0]=l;t[e+1]=m;t[e+2]=d;t[e+3]=l;t[e+4]=m;t[e+5]=d;t[e+6]=l;t[e+7]=m;t[e+8]=d}return e}function applyFuncToV3Array(e,t,r){const n=e.length;const o=new Float32Array(3);for(let s=0;s<n;s+=3){r(t,[e[s],e[s+1],e[s+2]],o);e[s]=o[0];e[s+1]=o[1];e[s+2]=o[2]}}function transformNormal$1(e,t,r){r=r||create();const n=t[0];const o=t[1];const s=t[2];r[0]=n*e[0]+o*e[1]+s*e[2];r[1]=n*e[4]+o*e[5]+s*e[6];r[2]=n*e[8]+o*e[9]+s*e[10];return r}\n/**\n * Reorients directions by the given matrix..\n * @param {(number[]|TypedArray)} array The array. Assumes value floats per element.\n * @param {module:twgl/m4.Mat4} matrix A matrix to multiply by.\n * @return {(number[]|TypedArray)} the same array that was passed in\n * @memberOf module:twgl/primitives\n */function reorientDirections(e,t){applyFuncToV3Array(e,t,transformDirection);return e}\n/**\n * Reorients normals by the inverse-transpose of the given\n * matrix..\n * @param {(number[]|TypedArray)} array The array. Assumes value floats per element.\n * @param {module:twgl/m4.Mat4} matrix A matrix to multiply by.\n * @return {(number[]|TypedArray)} the same array that was passed in\n * @memberOf module:twgl/primitives\n */function reorientNormals(e,t){applyFuncToV3Array(e,inverse(t),transformNormal$1);return e}\n/**\n * Reorients positions by the given matrix. In other words, it\n * multiplies each vertex by the given matrix.\n * @param {(number[]|TypedArray)} array The array. Assumes value floats per element.\n * @param {module:twgl/m4.Mat4} matrix A matrix to multiply by.\n * @return {(number[]|TypedArray)} the same array that was passed in\n * @memberOf module:twgl/primitives\n */function reorientPositions(e,t){applyFuncToV3Array(e,t,transformPoint);return e}\n/**\n * @typedef {(number[]|TypedArray)} NativeArrayOrTypedArray\n */\n/**\n * Reorients arrays by the given matrix. Assumes arrays have\n * names that contains 'pos' could be reoriented as positions,\n * 'binorm' or 'tan' as directions, and 'norm' as normals.\n *\n * @param {Object.<string, NativeArrayOrTypedArray>} arrays The vertices to reorient\n * @param {module:twgl/m4.Mat4} matrix matrix to reorient by.\n * @return {Object.<string, NativeArrayOrTypedArray>} same arrays that were passed in.\n * @memberOf module:twgl/primitives\n */function reorientVertices(e,t){Object.keys(e).forEach((function(r){const n=e[r];r.indexOf(\"pos\")>=0?reorientPositions(n,t):r.indexOf(\"tan\")>=0||r.indexOf(\"binorm\")>=0?reorientDirections(n,t):r.indexOf(\"norm\")>=0&&reorientNormals(n,t)}));return e}\n/**\n * Creates XY quad BufferInfo\n *\n * The default with no parameters will return a 2x2 quad with values from -1 to +1.\n * If you want a unit quad with that goes from 0 to 1 you'd call it with\n *\n *     twgl.primitives.createXYQuadBufferInfo(gl, 1, 0.5, 0.5);\n *\n * If you want a unit quad centered above 0,0 you'd call it with\n *\n *     twgl.primitives.createXYQuadBufferInfo(gl, 1, 0, 0.5);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] the size across the quad. Defaults to 2 which means vertices will go from -1 to +1\n * @param {number} [xOffset] the amount to offset the quad in X\n * @param {number} [yOffset] the amount to offset the quad in Y\n * @return {Object.<string, WebGLBuffer>} the created XY Quad BufferInfo\n * @memberOf module:twgl/primitives\n * @function createXYQuadBuffers\n */\n/**\n * Creates XY quad Buffers\n *\n * The default with no parameters will return a 2x2 quad with values from -1 to +1.\n * If you want a unit quad with that goes from 0 to 1 you'd call it with\n *\n *     twgl.primitives.createXYQuadBufferInfo(gl, 1, 0.5, 0.5);\n *\n * If you want a unit quad centered above 0,0 you'd call it with\n *\n *     twgl.primitives.createXYQuadBufferInfo(gl, 1, 0, 0.5);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] the size across the quad. Defaults to 2 which means vertices will go from -1 to +1\n * @param {number} [xOffset] the amount to offset the quad in X\n * @param {number} [yOffset] the amount to offset the quad in Y\n * @return {module:twgl.BufferInfo} the created XY Quad buffers\n * @memberOf module:twgl/primitives\n * @function createXYQuadBufferInfo\n */\n/**\n * Creates XY quad vertices\n *\n * The default with no parameters will return a 2x2 quad with values from -1 to +1.\n * If you want a unit quad with that goes from 0 to 1 you'd call it with\n *\n *     twgl.primitives.createXYQuadVertices(1, 0.5, 0.5);\n *\n * If you want a unit quad centered above 0,0 you'd call it with\n *\n *     twgl.primitives.createXYQuadVertices(1, 0, 0.5);\n *\n * @param {number} [size] the size across the quad. Defaults to 2 which means vertices will go from -1 to +1\n * @param {number} [xOffset] the amount to offset the quad in X\n * @param {number} [yOffset] the amount to offset the quad in Y\n * @return {Object.<string, TypedArray>} the created XY Quad vertices\n * @memberOf module:twgl/primitives\n */function createXYQuadVertices(e,t,r){e=e||2;t=t||0;r=r||0;e*=.5;return{position:{numComponents:2,data:[t+-1*e,r+-1*e,t+1*e,r+-1*e,t+-1*e,r+1*e,t+1*e,r+1*e]},normal:[0,0,1,0,0,1,0,0,1,0,0,1],texcoord:[0,0,1,0,0,1,1,1],indices:[0,1,2,2,1,3]}}\n/**\n * Creates XZ plane BufferInfo.\n *\n * The created plane has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [width] Width of the plane. Default = 1\n * @param {number} [depth] Depth of the plane. Default = 1\n * @param {number} [subdivisionsWidth] Number of steps across the plane. Default = 1\n * @param {number} [subdivisionsDepth] Number of steps down the plane. Default = 1\n * @param {module:twgl/m4.Mat4} [matrix] A matrix by which to multiply all the vertices.\n * @return {module:twgl.BufferInfo} The created plane BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createPlaneBufferInfo\n */\n/**\n * Creates XZ plane buffers.\n *\n * The created plane has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [width] Width of the plane. Default = 1\n * @param {number} [depth] Depth of the plane. Default = 1\n * @param {number} [subdivisionsWidth] Number of steps across the plane. Default = 1\n * @param {number} [subdivisionsDepth] Number of steps down the plane. Default = 1\n * @param {module:twgl/m4.Mat4} [matrix] A matrix by which to multiply all the vertices.\n * @return {Object.<string, WebGLBuffer>} The created plane buffers.\n * @memberOf module:twgl/primitives\n * @function createPlaneBuffers\n */\n/**\n * Creates XZ plane vertices.\n *\n * The created plane has position, normal, and texcoord data\n *\n * @param {number} [width] Width of the plane. Default = 1\n * @param {number} [depth] Depth of the plane. Default = 1\n * @param {number} [subdivisionsWidth] Number of steps across the plane. Default = 1\n * @param {number} [subdivisionsDepth] Number of steps down the plane. Default = 1\n * @param {module:twgl/m4.Mat4} [matrix] A matrix by which to multiply all the vertices.\n * @return {Object.<string, TypedArray>} The created plane vertices.\n * @memberOf module:twgl/primitives\n */function createPlaneVertices(e,t,r,n,o){e=e||1;t=t||1;r=r||1;n=n||1;o=o||identity();const s=(r+1)*(n+1);const a=createAugmentedTypedArray(3,s);const c=createAugmentedTypedArray(3,s);const i=createAugmentedTypedArray(2,s);for(let o=0;o<=n;o++)for(let s=0;s<=r;s++){const u=s/r;const f=o/n;a.push(e*u-.5*e,0,t*f-.5*t);c.push(0,1,0);i.push(u,f)}const u=r+1;const f=createAugmentedTypedArray(3,r*n*2,Uint16Array);for(let e=0;e<n;e++)for(let t=0;t<r;t++){f.push((e+0)*u+t,(e+1)*u+t,(e+0)*u+t+1);f.push((e+1)*u+t,(e+1)*u+t+1,(e+0)*u+t+1)}const l=reorientVertices({position:a,normal:c,texcoord:i,indices:f},o);return l}\n/**\n * Creates sphere BufferInfo.\n *\n * The created sphere has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of the sphere.\n * @param {number} subdivisionsAxis number of steps around the sphere.\n * @param {number} subdivisionsHeight number of vertically on the sphere.\n * @param {number} [opt_startLatitudeInRadians] where to start the\n *     top of the sphere. Default = 0.\n * @param {number} [opt_endLatitudeInRadians] Where to end the\n *     bottom of the sphere. Default = Math.PI.\n * @param {number} [opt_startLongitudeInRadians] where to start\n *     wrapping the sphere. Default = 0.\n * @param {number} [opt_endLongitudeInRadians] where to end\n *     wrapping the sphere. Default = 2 * Math.PI.\n * @return {module:twgl.BufferInfo} The created sphere BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createSphereBufferInfo\n */\n/**\n * Creates sphere buffers.\n *\n * The created sphere has position, normal, and texcoord data\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of the sphere.\n * @param {number} subdivisionsAxis number of steps around the sphere.\n * @param {number} subdivisionsHeight number of vertically on the sphere.\n * @param {number} [opt_startLatitudeInRadians] where to start the\n *     top of the sphere. Default = 0.\n * @param {number} [opt_endLatitudeInRadians] Where to end the\n *     bottom of the sphere. Default = Math.PI.\n * @param {number} [opt_startLongitudeInRadians] where to start\n *     wrapping the sphere. Default = 0.\n * @param {number} [opt_endLongitudeInRadians] where to end\n *     wrapping the sphere. Default = 2 * Math.PI.\n * @return {Object.<string, WebGLBuffer>} The created sphere buffers.\n * @memberOf module:twgl/primitives\n * @function createSphereBuffers\n */\n/**\n * Creates sphere vertices.\n *\n * The created sphere has position, normal, and texcoord data\n *\n * @param {number} radius radius of the sphere.\n * @param {number} subdivisionsAxis number of steps around the sphere.\n * @param {number} subdivisionsHeight number of vertically on the sphere.\n * @param {number} [opt_startLatitudeInRadians] where to start the\n *     top of the sphere. Default = 0.\n * @param {number} [opt_endLatitudeInRadians] Where to end the\n *     bottom of the sphere. Default = Math.PI.\n * @param {number} [opt_startLongitudeInRadians] where to start\n *     wrapping the sphere. Default = 0.\n * @param {number} [opt_endLongitudeInRadians] where to end\n *     wrapping the sphere. Default = 2 * Math.PI.\n * @return {Object.<string, TypedArray>} The created sphere vertices.\n * @memberOf module:twgl/primitives\n */function createSphereVertices(e,t,r,n,o,s,a){if(t<=0||r<=0)throw new Error(\"subdivisionAxis and subdivisionHeight must be > 0\");n=n||0;o=o||Math.PI;s=s||0;a=a||2*Math.PI;const c=o-n;const i=a-s;const u=(t+1)*(r+1);const f=createAugmentedTypedArray(3,u);const l=createAugmentedTypedArray(3,u);const m=createAugmentedTypedArray(2,u);for(let o=0;o<=r;o++)for(let a=0;a<=t;a++){const u=a/t;const d=o/r;const y=i*u+s;const p=c*d+n;const b=Math.sin(y);const g=Math.cos(y);const A=Math.sin(p);const h=Math.cos(p);const x=g*A;const F=h;const T=b*A;f.push(e*x,e*F,e*T);l.push(x,F,T);m.push(1-u,d)}const d=t+1;const y=createAugmentedTypedArray(3,t*r*2,Uint16Array);for(let e=0;e<t;e++)for(let t=0;t<r;t++){y.push((t+0)*d+e,(t+0)*d+e+1,(t+1)*d+e);y.push((t+1)*d+e,(t+0)*d+e+1,(t+1)*d+e+1)}return{position:f,normal:l,texcoord:m,indices:y}}\n/**\n * Array of the indices of corners of each face of a cube.\n * @type {Array.<number[]>}\n * @private\n */const j=[[3,7,5,1],[6,2,0,4],[6,7,3,2],[0,1,5,4],[7,6,4,5],[2,3,1,0]];\n/**\n * Creates a BufferInfo for a cube.\n *\n * The cube is created around the origin. (-size / 2, size / 2).\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] width, height and depth of the cube.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCubeBufferInfo\n */\n/**\n * Creates the buffers and indices for a cube.\n *\n * The cube is created around the origin. (-size / 2, size / 2).\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} [size] width, height and depth of the cube.\n * @return {Object.<string, WebGLBuffer>} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createCubeBuffers\n */\n/**\n * Creates the vertices and indices for a cube.\n *\n * The cube is created around the origin. (-size / 2, size / 2).\n *\n * @param {number} [size] width, height and depth of the cube.\n * @return {Object.<string, TypedArray>} The created vertices.\n * @memberOf module:twgl/primitives\n */function createCubeVertices(e){e=e||1;const t=e/2;const r=[[-t,-t,-t],[+t,-t,-t],[-t,+t,-t],[+t,+t,-t],[-t,-t,+t],[+t,-t,+t],[-t,+t,+t],[+t,+t,+t]];const n=[[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]];const o=[[1,0],[0,0],[0,1],[1,1]];const s=24;const a=createAugmentedTypedArray(3,s);const c=createAugmentedTypedArray(3,s);const i=createAugmentedTypedArray(2,s);const u=createAugmentedTypedArray(3,12,Uint16Array);for(let e=0;e<6;++e){const t=j[e];for(let s=0;s<4;++s){const u=r[t[s]];const f=n[e];const l=o[s];a.push(u);c.push(f);i.push(l)}const s=4*e;u.push(s+0,s+1,s+2);u.push(s+0,s+2,s+3)}return{position:a,normal:c,texcoord:i,indices:u}}\n/**\n * Creates a BufferInfo for a truncated cone, which is like a cylinder\n * except that it has different top and bottom radii. A truncated cone\n * can also be used to create cylinders and regular cones. The\n * truncated cone will be created centered about the origin, with the\n * y axis as its vertical axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} bottomRadius Bottom radius of truncated cone.\n * @param {number} topRadius Top radius of truncated cone.\n * @param {number} height Height of truncated cone.\n * @param {number} radialSubdivisions The number of subdivisions around the\n *     truncated cone.\n * @param {number} verticalSubdivisions The number of subdivisions down the\n *     truncated cone.\n * @param {boolean} [opt_topCap] Create top cap. Default = true.\n * @param {boolean} [opt_bottomCap] Create bottom cap. Default = true.\n * @return {module:twgl.BufferInfo} The created cone BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createTruncatedConeBufferInfo\n */\n/**\n * Creates buffers for a truncated cone, which is like a cylinder\n * except that it has different top and bottom radii. A truncated cone\n * can also be used to create cylinders and regular cones. The\n * truncated cone will be created centered about the origin, with the\n * y axis as its vertical axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} bottomRadius Bottom radius of truncated cone.\n * @param {number} topRadius Top radius of truncated cone.\n * @param {number} height Height of truncated cone.\n * @param {number} radialSubdivisions The number of subdivisions around the\n *     truncated cone.\n * @param {number} verticalSubdivisions The number of subdivisions down the\n *     truncated cone.\n * @param {boolean} [opt_topCap] Create top cap. Default = true.\n * @param {boolean} [opt_bottomCap] Create bottom cap. Default = true.\n * @return {Object.<string, WebGLBuffer>} The created cone buffers.\n * @memberOf module:twgl/primitives\n * @function createTruncatedConeBuffers\n */\n/**\n * Creates vertices for a truncated cone, which is like a cylinder\n * except that it has different top and bottom radii. A truncated cone\n * can also be used to create cylinders and regular cones. The\n * truncated cone will be created centered about the origin, with the\n * y axis as its vertical axis. .\n *\n * @param {number} bottomRadius Bottom radius of truncated cone.\n * @param {number} topRadius Top radius of truncated cone.\n * @param {number} height Height of truncated cone.\n * @param {number} radialSubdivisions The number of subdivisions around the\n *     truncated cone.\n * @param {number} verticalSubdivisions The number of subdivisions down the\n *     truncated cone.\n * @param {boolean} [opt_topCap] Create top cap. Default = true.\n * @param {boolean} [opt_bottomCap] Create bottom cap. Default = true.\n * @return {Object.<string, TypedArray>} The created cone vertices.\n * @memberOf module:twgl/primitives\n */function createTruncatedConeVertices(e,t,r,n,o,s,a){if(n<3)throw new Error(\"radialSubdivisions must be 3 or greater\");if(o<1)throw new Error(\"verticalSubdivisions must be 1 or greater\");const c=void 0===s||s;const i=void 0===a||a;const u=(c?2:0)+(i?2:0);const f=(n+1)*(o+1+u);const l=createAugmentedTypedArray(3,f);const m=createAugmentedTypedArray(3,f);const d=createAugmentedTypedArray(2,f);const y=createAugmentedTypedArray(3,n*(o+u/2)*2,Uint16Array);const p=n+1;const b=Math.atan2(e-t,r);const g=Math.cos(b);const A=Math.sin(b);const h=c?-2:0;const x=o+(i?2:0);for(let s=h;s<=x;++s){let a=s/o;let c=r*a;let i;if(s<0){c=0;a=1;i=e}else if(s>o){c=r;a=1;i=t}else i=e+s/o*(t-e);if(-2===s||s===o+2){i=0;a=0}c-=r/2;for(let e=0;e<p;++e){const t=Math.sin(e*Math.PI*2/n);const r=Math.cos(e*Math.PI*2/n);l.push(t*i,c,r*i);s<0?m.push(0,-1,0):s>o?m.push(0,1,0):0===i?m.push(0,0,0):m.push(t*g,A,r*g);d.push(e/n,1-a)}}for(let e=0;e<o+u;++e)if(!(1===e&&c||e===o+u-2&&i))for(let t=0;t<n;++t){y.push(p*(e+0)+0+t,p*(e+0)+1+t,p*(e+1)+1+t);y.push(p*(e+0)+0+t,p*(e+1)+1+t,p*(e+1)+0+t)}return{position:l,normal:m,texcoord:d,indices:y}}\n/**\n * Expands RLE data\n * @param {number[]} rleData data in format of run-length, x, y, z, run-length, x, y, z\n * @param {number[]} [padding] value to add each entry with.\n * @return {number[]} the expanded rleData\n * @private\n */function expandRLEData(e,t){t=t||[];const r=[];for(let n=0;n<e.length;n+=4){const o=e[n];const s=e.slice(n+1,n+4);s.push.apply(s,t);for(let e=0;e<o;++e)r.push.apply(r,s)}return r}\n/**\n * Creates 3D 'F' BufferInfo.\n * An 'F' is useful because you can easily tell which way it is oriented.\n * The created 'F' has position, normal, texcoord, and color buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function create3DFBufferInfo\n */\n/**\n * Creates 3D 'F' buffers.\n * An 'F' is useful because you can easily tell which way it is oriented.\n * The created 'F' has position, normal, texcoord, and color buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @return {Object.<string, WebGLBuffer>} The created buffers.\n * @memberOf module:twgl/primitives\n * @function create3DFBuffers\n */function create3DFVertices(){const e=[0,0,0,0,150,0,30,0,0,0,150,0,30,150,0,30,0,0,30,0,0,30,30,0,100,0,0,30,30,0,100,30,0,100,0,0,30,60,0,30,90,0,67,60,0,30,90,0,67,90,0,67,60,0,0,0,30,30,0,30,0,150,30,0,150,30,30,0,30,30,150,30,30,0,30,100,0,30,30,30,30,30,30,30,100,0,30,100,30,30,30,60,30,67,60,30,30,90,30,30,90,30,67,60,30,67,90,30,0,0,0,100,0,0,100,0,30,0,0,0,100,0,30,0,0,30,100,0,0,100,30,0,100,30,30,100,0,0,100,30,30,100,0,30,30,30,0,30,30,30,100,30,30,30,30,0,100,30,30,100,30,0,30,30,0,30,60,30,30,30,30,30,30,0,30,60,0,30,60,30,30,60,0,67,60,30,30,60,30,30,60,0,67,60,0,67,60,30,67,60,0,67,90,30,67,60,30,67,60,0,67,90,0,67,90,30,30,90,0,30,90,30,67,90,30,30,90,0,67,90,30,67,90,0,30,90,0,30,150,30,30,90,30,30,90,0,30,150,0,30,150,30,0,150,0,0,150,30,30,150,30,0,150,0,30,150,30,30,150,0,0,0,0,0,0,30,0,150,30,0,0,0,0,150,30,0,150,0];const t=[.22,.19,.22,.79,.34,.19,.22,.79,.34,.79,.34,.19,.34,.19,.34,.31,.62,.19,.34,.31,.62,.31,.62,.19,.34,.43,.34,.55,.49,.43,.34,.55,.49,.55,.49,.43,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0];const r=expandRLEData([18,0,0,1,18,0,0,-1,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,-1,0,6,-1,0,0]);const n=expandRLEData([18,200,70,120,18,80,70,200,6,70,200,210,6,200,200,70,6,210,100,70,6,210,160,70,6,70,180,210,6,100,70,210,6,76,210,100,6,140,210,80,6,90,130,110,6,160,160,220],[255]);const o=e.length/3;const s={position:createAugmentedTypedArray(3,o),texcoord:createAugmentedTypedArray(2,o),normal:createAugmentedTypedArray(3,o),color:createAugmentedTypedArray(4,o,Uint8Array),indices:createAugmentedTypedArray(3,o/3,Uint16Array)};s.position.push(e);s.texcoord.push(t);s.normal.push(r);s.color.push(n);for(let e=0;e<o;++e)s.indices.push(e);return s}\n/**\n * Creates crescent BufferInfo.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} verticalRadius The vertical radius of the crescent.\n * @param {number} outerRadius The outer radius of the crescent.\n * @param {number} innerRadius The inner radius of the crescent.\n * @param {number} thickness The thickness of the crescent.\n * @param {number} subdivisionsDown number of steps around the crescent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCresentBufferInfo\n */\n/**\n * Creates crescent buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} verticalRadius The vertical radius of the crescent.\n * @param {number} outerRadius The outer radius of the crescent.\n * @param {number} innerRadius The inner radius of the crescent.\n * @param {number} thickness The thickness of the crescent.\n * @param {number} subdivisionsDown number of steps around the crescent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {Object.<string, WebGLBuffer>} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createCresentBuffers\n */\n/**\n * Creates crescent vertices.\n *\n * @param {number} verticalRadius The vertical radius of the crescent.\n * @param {number} outerRadius The outer radius of the crescent.\n * @param {number} innerRadius The inner radius of the crescent.\n * @param {number} thickness The thickness of the crescent.\n * @param {number} subdivisionsDown number of steps around the crescent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {Object.<string, TypedArray>} The created vertices.\n * @memberOf module:twgl/primitives\n * @function createCresentBuffers\n */\n/**\n * Creates crescent BufferInfo.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} verticalRadius The vertical radius of the crescent.\n * @param {number} outerRadius The outer radius of the crescent.\n * @param {number} innerRadius The inner radius of the crescent.\n * @param {number} thickness The thickness of the crescent.\n * @param {number} subdivisionsDown number of steps around the crescent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCrescentBufferInfo\n */\n/**\n * Creates crescent buffers.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} verticalRadius The vertical radius of the crescent.\n * @param {number} outerRadius The outer radius of the crescent.\n * @param {number} innerRadius The inner radius of the crescent.\n * @param {number} thickness The thickness of the crescent.\n * @param {number} subdivisionsDown number of steps around the crescent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {Object.<string, WebGLBuffer>} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createCrescentBuffers\n */\n/**\n * Creates crescent vertices.\n *\n * @param {number} verticalRadius The vertical radius of the crescent.\n * @param {number} outerRadius The outer radius of the crescent.\n * @param {number} innerRadius The inner radius of the crescent.\n * @param {number} thickness The thickness of the crescent.\n * @param {number} subdivisionsDown number of steps around the crescent.\n * @param {number} [startOffset] Where to start arc. Default 0.\n * @param {number} [endOffset] Where to end arg. Default 1.\n * @return {Object.<string, TypedArray>} The created vertices.\n * @memberOf module:twgl/primitives\n */function createCrescentVertices(e,t,r,n,o,s,a){if(o<=0)throw new Error(\"subdivisionDown must be > 0\");s=s||0;a=a||1;const c=2;const i=a-s;const u=2*(o+1)*(2+c);const f=createAugmentedTypedArray(3,u);const l=createAugmentedTypedArray(3,u);const m=createAugmentedTypedArray(2,u);function lerp(e,t,r){return e+(t-e)*r}function createArc(t,r,a,u,d,y){for(let p=0;p<=o;p++){const b=r/(c-1);const g=p/o;const A=2*(b-.5);const h=(s+g*i)*Math.PI;const x=Math.sin(h);const F=Math.cos(h);const T=lerp(e,t,x);const S=A*n;const P=F*e;const E=x*T;f.push(S,P,E);const w=add(multiply([0,x,F],a),u);l.push(w);m.push(b*d+y,g)}}for(let e=0;e<c;e++){const n=2*(e/(c-1)-.5);createArc(t,e,[1,1,1],[0,0,0],1,0);createArc(t,e,[0,0,0],[n,0,0],0,0);createArc(r,e,[1,1,1],[0,0,0],1,0);createArc(r,e,[0,0,0],[n,0,0],0,1)}const d=createAugmentedTypedArray(3,2*o*(2+c),Uint16Array);function createSurface(e,t){for(let r=0;r<o;++r){d.push(e+r+0,e+r+1,t+r+0);d.push(e+r+1,t+r+1,t+r+0)}}const y=o+1;createSurface(0*y,4*y);createSurface(5*y,7*y);createSurface(6*y,2*y);createSurface(3*y,1*y);return{position:f,normal:l,texcoord:m,indices:d}}\n/**\n * Creates cylinder BufferInfo. The cylinder will be created around the origin\n * along the y-axis.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of cylinder.\n * @param {number} height Height of cylinder.\n * @param {number} radialSubdivisions The number of subdivisions around the cylinder.\n * @param {number} verticalSubdivisions The number of subdivisions down the cylinder.\n * @param {boolean} [topCap] Create top cap. Default = true.\n * @param {boolean} [bottomCap] Create bottom cap. Default = true.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createCylinderBufferInfo\n */\n/**\n  * Creates cylinder buffers. The cylinder will be created around the origin\n  * along the y-axis.\n  *\n  * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n  * @param {number} radius Radius of cylinder.\n  * @param {number} height Height of cylinder.\n  * @param {number} radialSubdivisions The number of subdivisions around the cylinder.\n  * @param {number} verticalSubdivisions The number of subdivisions down the cylinder.\n  * @param {boolean} [topCap] Create top cap. Default = true.\n  * @param {boolean} [bottomCap] Create bottom cap. Default = true.\n  * @return {Object.<string, WebGLBuffer>} The created buffers.\n  * @memberOf module:twgl/primitives\n  * @function createCylinderBuffers\n  */\n/**\n  * Creates cylinder vertices. The cylinder will be created around the origin\n  * along the y-axis.\n  *\n  * @param {number} radius Radius of cylinder.\n  * @param {number} height Height of cylinder.\n  * @param {number} radialSubdivisions The number of subdivisions around the cylinder.\n  * @param {number} verticalSubdivisions The number of subdivisions down the cylinder.\n  * @param {boolean} [topCap] Create top cap. Default = true.\n  * @param {boolean} [bottomCap] Create bottom cap. Default = true.\n  * @return {Object.<string, TypedArray>} The created vertices.\n  * @memberOf module:twgl/primitives\n  */function createCylinderVertices(e,t,r,n,o,s){return createTruncatedConeVertices(e,e,t,r,n,o,s)}\n/**\n * Creates BufferInfo for a torus\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of center of torus circle.\n * @param {number} thickness radius of torus ring.\n * @param {number} radialSubdivisions The number of subdivisions around the torus.\n * @param {number} bodySubdivisions The number of subdivisions around the body torus.\n * @param {boolean} [startAngle] start angle in radians. Default = 0.\n * @param {boolean} [endAngle] end angle in radians. Default = Math.PI * 2.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createTorusBufferInfo\n */\n/**\n * Creates buffers for a torus\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius radius of center of torus circle.\n * @param {number} thickness radius of torus ring.\n * @param {number} radialSubdivisions The number of subdivisions around the torus.\n * @param {number} bodySubdivisions The number of subdivisions around the body torus.\n * @param {boolean} [startAngle] start angle in radians. Default = 0.\n * @param {boolean} [endAngle] end angle in radians. Default = Math.PI * 2.\n * @return {Object.<string, WebGLBuffer>} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createTorusBuffers\n */\n/**\n * Creates vertices for a torus\n *\n * @param {number} radius radius of center of torus circle.\n * @param {number} thickness radius of torus ring.\n * @param {number} radialSubdivisions The number of subdivisions around the torus.\n * @param {number} bodySubdivisions The number of subdivisions around the body torus.\n * @param {boolean} [startAngle] start angle in radians. Default = 0.\n * @param {boolean} [endAngle] end angle in radians. Default = Math.PI * 2.\n * @return {Object.<string, TypedArray>} The created vertices.\n * @memberOf module:twgl/primitives\n */function createTorusVertices(e,t,r,n,o,s){if(r<3)throw new Error(\"radialSubdivisions must be 3 or greater\");if(n<3)throw new Error(\"verticalSubdivisions must be 3 or greater\");o=o||0;s=s||2*Math.PI;const a=s-o;const c=r+1;const i=n+1;const u=c*i;const f=createAugmentedTypedArray(3,u);const l=createAugmentedTypedArray(3,u);const m=createAugmentedTypedArray(2,u);const d=createAugmentedTypedArray(3,r*n*2,Uint16Array);for(let s=0;s<i;++s){const i=s/n;const u=i*Math.PI*2;const d=Math.sin(u);const y=e+d*t;const p=Math.cos(u);const b=p*t;for(let e=0;e<c;++e){const t=e/r;const n=o+t*a;const s=Math.sin(n);const c=Math.cos(n);const u=s*y;const g=c*y;const A=s*d;const h=c*d;f.push(u,b,g);l.push(A,p,h);m.push(t,1-i)}}for(let e=0;e<n;++e)for(let t=0;t<r;++t){const r=1+t;const n=1+e;d.push(c*e+t,c*n+t,c*e+r);d.push(c*n+t,c*n+r,c*e+r)}return{position:f,normal:l,texcoord:m,indices:d}}\n/**\n * Creates a disc BufferInfo. The disc will be in the xz plane, centered at\n * the origin. When creating, at least 3 divisions, or pie\n * pieces, need to be specified, otherwise the triangles making\n * up the disc will be degenerate. You can also specify the\n * number of radial pieces `stacks`. A value of 1 for\n * stacks will give you a simple disc of pie pieces.  If you\n * want to create an annulus you can set `innerRadius` to a\n * value > 0. Finally, `stackPower` allows you to have the widths\n * increase or decrease as you move away from the center. This\n * is particularly useful when using the disc as a ground plane\n * with a fixed camera such that you don't need the resolution\n * of small triangles near the perimeter. For example, a value\n * of 2 will produce stacks whose outside radius increases with\n * the square of the stack index. A value of 1 will give uniform\n * stacks.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of the ground plane.\n * @param {number} divisions Number of triangles in the ground plane (at least 3).\n * @param {number} [stacks] Number of radial divisions (default=1).\n * @param {number} [innerRadius] Default 0.\n * @param {number} [stackPower] Power to raise stack size to for decreasing width.\n * @return {module:twgl.BufferInfo} The created BufferInfo.\n * @memberOf module:twgl/primitives\n * @function createDiscBufferInfo\n */\n/**\n * Creates disc buffers. The disc will be in the xz plane, centered at\n * the origin. When creating, at least 3 divisions, or pie\n * pieces, need to be specified, otherwise the triangles making\n * up the disc will be degenerate. You can also specify the\n * number of radial pieces `stacks`. A value of 1 for\n * stacks will give you a simple disc of pie pieces.  If you\n * want to create an annulus you can set `innerRadius` to a\n * value > 0. Finally, `stackPower` allows you to have the widths\n * increase or decrease as you move away from the center. This\n * is particularly useful when using the disc as a ground plane\n * with a fixed camera such that you don't need the resolution\n * of small triangles near the perimeter. For example, a value\n * of 2 will produce stacks whose outside radius increases with\n * the square of the stack index. A value of 1 will give uniform\n * stacks.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext.\n * @param {number} radius Radius of the ground plane.\n * @param {number} divisions Number of triangles in the ground plane (at least 3).\n * @param {number} [stacks] Number of radial divisions (default=1).\n * @param {number} [innerRadius] Default 0.\n * @param {number} [stackPower] Power to raise stack size to for decreasing width.\n * @return {Object.<string, WebGLBuffer>} The created buffers.\n * @memberOf module:twgl/primitives\n * @function createDiscBuffers\n */\n/**\n * Creates disc vertices. The disc will be in the xz plane, centered at\n * the origin. When creating, at least 3 divisions, or pie\n * pieces, need to be specified, otherwise the triangles making\n * up the disc will be degenerate. You can also specify the\n * number of radial pieces `stacks`. A value of 1 for\n * stacks will give you a simple disc of pie pieces.  If you\n * want to create an annulus you can set `innerRadius` to a\n * value > 0. Finally, `stackPower` allows you to have the widths\n * increase or decrease as you move away from the center. This\n * is particularly useful when using the disc as a ground plane\n * with a fixed camera such that you don't need the resolution\n * of small triangles near the perimeter. For example, a value\n * of 2 will produce stacks whose outside radius increases with\n * the square of the stack index. A value of 1 will give uniform\n * stacks.\n *\n * @param {number} radius Radius of the ground plane.\n * @param {number} divisions Number of triangles in the ground plane (at least 3).\n * @param {number} [stacks] Number of radial divisions (default=1).\n * @param {number} [innerRadius] Default 0.\n * @param {number} [stackPower] Power to raise stack size to for decreasing width.\n * @return {Object.<string, TypedArray>} The created vertices.\n * @memberOf module:twgl/primitives\n */function createDiscVertices(e,t,r,n,o){if(t<3)throw new Error(\"divisions must be at least 3\");r=r||1;o=o||1;n=n||0;const s=(t+1)*(r+1);const a=createAugmentedTypedArray(3,s);const c=createAugmentedTypedArray(3,s);const i=createAugmentedTypedArray(2,s);const u=createAugmentedTypedArray(3,r*t*2,Uint16Array);let f=0;const l=e-n;const m=t+1;for(let e=0;e<=r;++e){const s=n+l*Math.pow(e/r,o);for(let n=0;n<=t;++n){const o=2*Math.PI*n/t;const l=s*Math.cos(o);const d=s*Math.sin(o);a.push(l,0,d);c.push(0,1,0);i.push(1-n/t,e/r);if(e>0&&n!==t){const e=f+(n+1);const t=f+n;const r=f+n-m;const o=f+(n+1)-m;u.push(e,t,r);u.push(e,r,o)}}f+=t+1}return{position:a,normal:c,texcoord:i,indices:u}}\n/**\n * creates a random integer between 0 and range - 1 inclusive.\n * @param {number} range\n * @return {number} random value between 0 and range - 1 inclusive.\n * @private\n */function randInt(e){return Math.random()*e|0}\n/**\n * Used to supply random colors\n * @callback RandomColorFunc\n * @param {number} ndx index of triangle/quad if unindexed or index of vertex if indexed\n * @param {number} channel 0 = red, 1 = green, 2 = blue, 3 = alpha\n * @return {number} a number from 0 to 255\n * @memberOf module:twgl/primitives\n */\n/**\n * @typedef {Object} RandomVerticesOptions\n * @property {number} [vertsPerColor] Defaults to 3 for non-indexed vertices\n * @property {module:twgl/primitives.RandomColorFunc} [rand] A function to generate random numbers\n * @memberOf module:twgl/primitives\n */\n/**\n * Creates an augmentedTypedArray of random vertex colors.\n * If the vertices are indexed (have an indices array) then will\n * just make random colors. Otherwise assumes they are triangles\n * and makes one random color for every 3 vertices.\n * @param {Object.<string, AugmentedTypedArray>} vertices Vertices as returned from one of the createXXXVertices functions.\n * @param {module:twgl/primitives.RandomVerticesOptions} [options] options.\n * @return {Object.<string, AugmentedTypedArray>} same vertices as passed in with `color` added.\n * @memberOf module:twgl/primitives\n */function makeRandomVertexColors(e,t){t=t||{};const r=e.position.numElements;const n=createAugmentedTypedArray(4,r,Uint8Array);const o=t.rand||function(e,t){return t<3?randInt(256):255};e.color=n;if(e.indices)for(let e=0;e<r;++e)n.push(o(e,0),o(e,1),o(e,2),o(e,3));else{const e=t.vertsPerColor||3;const s=r/e;for(let t=0;t<s;++t){const r=[o(t,0),o(t,1),o(t,2),o(t,3)];for(let t=0;t<e;++t)n.push(r)}}return e}function createBufferFunc(e){return function(t){const r=e.apply(this,Array.prototype.slice.call(arguments,1));return createBuffersFromArrays(t,r)}}function createBufferInfoFunc(e){return function(t){const r=e.apply(null,Array.prototype.slice.call(arguments,1));return createBufferInfoFromArrays(t,r)}}const $=[\"numComponents\",\"size\",\"type\",\"normalize\",\"stride\",\"offset\",\"attrib\",\"name\",\"attribName\"];\n/**\n * Copy elements from one array to another\n *\n * @param {Array|TypedArray} src source array\n * @param {Array|TypedArray} dst dest array\n * @param {number} dstNdx index in dest to copy src\n * @param {number} [offset] offset to add to copied values\n * @private\n */function copyElements(e,t,r,n){n=n||0;const o=e.length;for(let s=0;s<o;++s)t[r+s]=e[s]+n}\n/**\n * Creates an array of the same time\n *\n * @param {(number[]|ArrayBufferView|module:twgl.FullArraySpec)} srcArray array who's type to copy\n * @param {number} length size of new array\n * @return {(number[]|ArrayBufferView|module:twgl.FullArraySpec)} array with same type as srcArray\n * @private\n */function createArrayOfSameType(e,t){const r=G(e);const n=new r.constructor(t);let o=n;r.numComponents&&r.numElements&&augmentTypedArray(n,r.numComponents);if(e.data){o={data:n};copyNamedProperties($,e,o)}return o}\n/**\n * Concatenates sets of vertices\n *\n * Assumes the vertices match in composition. For example\n * if one set of vertices has positions, normals, and indices\n * all sets of vertices must have positions, normals, and indices\n * and of the same type.\n *\n * Example:\n *\n *      const cubeVertices = twgl.primitives.createCubeVertices(2);\n *      const sphereVertices = twgl.primitives.createSphereVertices(1, 10, 10);\n *      // move the sphere 2 units up\n *      twgl.primitives.reorientVertices(\n *          sphereVertices, twgl.m4.translation([0, 2, 0]));\n *      // merge the sphere with the cube\n *      const cubeSphereVertices = twgl.primitives.concatVertices(\n *          [cubeVertices, sphereVertices]);\n *      // turn them into WebGL buffers and attrib data\n *      const bufferInfo = twgl.createBufferInfoFromArrays(gl, cubeSphereVertices);\n *\n * @param {module:twgl.Arrays[]} arrays Array of arrays of vertices\n * @return {module:twgl.Arrays} The concatenated vertices.\n * @memberOf module:twgl/primitives\n */function concatVertices(e){const t={};let r;for(let n=0;n<e.length;++n){const o=e[n];Object.keys(o).forEach((function(e){t[e]||(t[e]=[]);r||\"indices\"===e||(r=e);const n=o[e];const s=W(n,e);const a=G(n);const c=a.length/s;t[e].push(c)}))}function getLengthOfCombinedArrays(t){let r=0;let n;for(let o=0;o<e.length;++o){const s=e[o];const a=s[t];const c=G(a);r+=c.length;n&&!a.data||(n=a)}return{length:r,spec:n}}function copyArraysToNewArray(t,r,n){let o=0;let s=0;for(let a=0;a<e.length;++a){const c=e[a];const i=c[t];const u=G(i);if(\"indices\"===t){copyElements(u,n,s,o);o+=r[a]}else copyElements(u,n,s);s+=u.length}}const n=t[r];const o={};Object.keys(t).forEach((function(e){const t=getLengthOfCombinedArrays(e);const r=createArrayOfSameType(t.spec,t.length);copyArraysToNewArray(e,n,G(r));o[e]=r}));return o}\n/**\n * Creates a duplicate set of vertices\n *\n * This is useful for calling reorientVertices when you\n * also want to keep the original available\n *\n * @param {module:twgl.Arrays} arrays of vertices\n * @return {module:twgl.Arrays} The duplicated vertices.\n * @memberOf module:twgl/primitives\n */function duplicateVertices(e){const t={};Object.keys(e).forEach((function(r){const n=e[r];const o=G(n);const s=createArrayOfSameType(n,o.length);copyElements(o,G(s),0);t[r]=s}));return t}const X=createBufferInfoFunc(create3DFVertices);const Y=createBufferFunc(create3DFVertices);const q=createBufferInfoFunc(createCubeVertices);const H=createBufferFunc(createCubeVertices);const Q=createBufferInfoFunc(createPlaneVertices);const Z=createBufferFunc(createPlaneVertices);const K=createBufferInfoFunc(createSphereVertices);const J=createBufferFunc(createSphereVertices);const ee=createBufferInfoFunc(createTruncatedConeVertices);const te=createBufferFunc(createTruncatedConeVertices);const re=createBufferInfoFunc(createXYQuadVertices);const ne=createBufferFunc(createXYQuadVertices);const oe=createBufferInfoFunc(createCrescentVertices);const se=createBufferFunc(createCrescentVertices);const ae=createBufferInfoFunc(createCylinderVertices);const ce=createBufferFunc(createCylinderVertices);const ie=createBufferInfoFunc(createTorusVertices);const ue=createBufferFunc(createTorusVertices);const fe=createBufferInfoFunc(createDiscVertices);const le=createBufferFunc(createDiscVertices);const me=oe;const de=se;const ye=createCrescentVertices;var pe=Object.freeze({__proto__:null,create3DFBufferInfo:X,create3DFBuffers:Y,create3DFVertices:create3DFVertices,createAugmentedTypedArray:createAugmentedTypedArray,createCubeBufferInfo:q,createCubeBuffers:H,createCubeVertices:createCubeVertices,createPlaneBufferInfo:Q,createPlaneBuffers:Z,createPlaneVertices:createPlaneVertices,createSphereBufferInfo:K,createSphereBuffers:J,createSphereVertices:createSphereVertices,createTruncatedConeBufferInfo:ee,createTruncatedConeBuffers:te,createTruncatedConeVertices:createTruncatedConeVertices,createXYQuadBufferInfo:re,createXYQuadBuffers:ne,createXYQuadVertices:createXYQuadVertices,createCresentBufferInfo:me,createCresentBuffers:de,createCresentVertices:ye,createCrescentBufferInfo:oe,createCrescentBuffers:se,createCrescentVertices:createCrescentVertices,createCylinderBufferInfo:ae,createCylinderBuffers:ce,createCylinderVertices:createCylinderVertices,createTorusBufferInfo:ie,createTorusBuffers:ue,createTorusVertices:createTorusVertices,createDiscBufferInfo:fe,createDiscBuffers:le,createDiscVertices:createDiscVertices,deindexVertices:deindexVertices,flattenNormals:flattenNormals,makeRandomVertexColors:makeRandomVertexColors,reorientDirections:reorientDirections,reorientNormals:reorientNormals,reorientPositions:reorientPositions,reorientVertices:reorientVertices,concatVertices:concatVertices,duplicateVertices:duplicateVertices});\n/**\n * Gets the gl version as a number\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @return {number} version of gl\n * @private\n */\n/**\n * Check if context is WebGL 2.0\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @return {bool} true if it's WebGL 2.0\n * @memberOf module:twgl\n */function isWebGL2(e){return!!e.texStorage2D}\n/**\n * Check if context is WebGL 1.0\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @return {bool} true if it's WebGL 1.0\n * @memberOf module:twgl\n */function isWebGL1(e){return!e.texStorage2D}\n/**\n * Gets a string for WebGL enum\n *\n * Note: Several enums are the same. Without more\n * context (which function) it's impossible to always\n * give the correct enum. As it is, for matching values\n * it gives all enums. Checking the WebGL2RenderingContext\n * that means\n *\n *      0     = ZERO | POINT | NONE | NO_ERROR\n *      1     = ONE | LINES | SYNC_FLUSH_COMMANDS_BIT\n *      32777 = BLEND_EQUATION_RGB | BLEND_EQUATION_RGB\n *      36662 = COPY_READ_BUFFER | COPY_READ_BUFFER_BINDING\n *      36663 = COPY_WRITE_BUFFER | COPY_WRITE_BUFFER_BINDING\n *      36006 = FRAMEBUFFER_BINDING | DRAW_FRAMEBUFFER_BINDING\n *\n * It's also not useful for bits really unless you pass in individual bits.\n * In other words\n *\n *     const bits = gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT;\n *     twgl.glEnumToString(gl, bits);  // not going to work\n *\n * Note that some enums only exist on extensions. If you\n * want them to show up you need to pass the extension at least\n * once. For example\n *\n *     const ext = gl.getExtension('WEBGL_compressed_texture_s3tc');\n *     if (ext) {\n *        twgl.glEnumToString(ext, 0);  // just prime the function\n *\n *        ..later..\n *\n *        const internalFormat = ext.COMPRESSED_RGB_S3TC_DXT1_EXT;\n *        console.log(twgl.glEnumToString(gl, internalFormat));\n *\n * Notice I didn't have to pass the extension the second time. This means\n * you can have place that generically gets an enum for texture formats for example.\n * and as long as you primed the function with the extensions\n *\n * If you're using `twgl.addExtensionsToContext` to enable your extensions\n * then twgl will automatically get the extension's enums.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext or any extension object\n * @param {number} value the value of the enum you want to look up.\n * @return {string} enum string or hex value\n * @memberOf module:twgl\n * @function glEnumToString\n */const be=function(){const e={};const t={};function addEnums(r){const n=r.constructor.name;if(!e[n]){for(const e in r)if(\"number\"===typeof r[e]){const n=t[r[e]];t[r[e]]=n?`${n} | ${e}`:e}e[n]=true}}return function glEnumToString(e,r){addEnums(e);return t[r]||(\"number\"===typeof r?`0x${r.toString(16)}`:r)}}();var ge=Object.freeze({__proto__:null,glEnumToString:be,isWebGL1:isWebGL1,isWebGL2:isWebGL2});const Ae={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0};const he=P;const xe=function(){let e;return function getShared2DContext(){e=e||(\"undefined\"!==typeof document&&document.createElement?document.createElement(\"canvas\").getContext(\"2d\"):null);return e}}();const Fe=6406;const Te=6407;const Se=6408;const Pe=6409;const Ee=6410;const we=6402;const Ie=34041;const ve=33071;const Be=9728;const Ce=9729;const ke=3553;const _e=34067;const ze=32879;const Ue=35866;const Ve=34069;const Me=34070;const Re=34071;const Oe=34072;const De=34073;const Le=34074;const Ne=10241;const Ge=10240;const We=10242;const je=10243;const $e=32882;const Xe=33082;const Ye=33083;const qe=33084;const He=33085;const Qe=3317;const Ze=3314;const Ke=32878;const Je=3316;const et=3315;const tt=32877;const rt=37443;const nt=37441;const ot=37440;const st=33321;const at=36756;const ct=33325;const it=33326;const ut=33330;const ft=33329;const lt=33338;const mt=33337;const dt=33340;const yt=33339;const pt=33323;const bt=36757;const gt=33327;const At=33328;const ht=33336;const xt=33335;const Ft=33332;const Tt=33331;const St=33334;const Pt=33333;const Et=32849;const wt=35905;const It=36194;const vt=36758;const Bt=35898;const Ct=35901;const kt=34843;const _t=34837;const zt=36221;const Ut=36239;const Vt=36215;const Mt=36233;const Rt=36209;const Ot=36227;const Dt=32856;const Lt=35907;const Nt=36759;const Gt=32855;const Wt=32854;const jt=32857;const $t=34842;const Xt=34836;const Yt=36220;const qt=36238;const Ht=36975;const Qt=36214;const Zt=36232;const Kt=36226;const Jt=36208;const er=33189;const tr=33190;const rr=36012;const nr=36013;const or=35056;const sr=5120;const ar=5121;const cr=5122;const ir=5123;const ur=5124;const fr=5125;const lr=5126;const mr=32819;const dr=32820;const yr=33635;const pr=5131;const br=36193;const gr=33640;const Ar=35899;const hr=35902;const xr=36269;const Fr=34042;const Tr=33319;const Sr=33320;const Pr=6403;const Er=36244;const wr=36248;const Ir=36249;const vr={};{const e=vr;e[Fe]={numColorComponents:1};e[Pe]={numColorComponents:1};e[Ee]={numColorComponents:2};e[Te]={numColorComponents:3};e[Se]={numColorComponents:4};e[Pr]={numColorComponents:1};e[Er]={numColorComponents:1};e[Tr]={numColorComponents:2};e[Sr]={numColorComponents:2};e[Te]={numColorComponents:3};e[wr]={numColorComponents:3};e[Se]={numColorComponents:4};e[Ir]={numColorComponents:4};e[we]={numColorComponents:1};e[Ie]={numColorComponents:2}}\n/**\n * @typedef {Object} TextureFormatDetails\n * @property {number} textureFormat format to pass texImage2D and similar functions.\n * @property {boolean} colorRenderable true if you can render to this format of texture.\n * @property {boolean} textureFilterable true if you can filter the texture, false if you can ony use `NEAREST`.\n * @property {number[]} type Array of possible types you can pass to texImage2D and similar function\n * @property {Object.<number,number>} bytesPerElementMap A map of types to bytes per element\n * @private\n */let Br;function getTextureInternalFormatInfo(e){if(!Br){const e={};e[Fe]={textureFormat:Fe,colorRenderable:true,textureFilterable:true,bytesPerElement:[1,2,2,4],type:[ar,pr,br,lr]};e[Pe]={textureFormat:Pe,colorRenderable:true,textureFilterable:true,bytesPerElement:[1,2,2,4],type:[ar,pr,br,lr]};e[Ee]={textureFormat:Ee,colorRenderable:true,textureFilterable:true,bytesPerElement:[2,4,4,8],type:[ar,pr,br,lr]};e[Te]={textureFormat:Te,colorRenderable:true,textureFilterable:true,bytesPerElement:[3,6,6,12,2],type:[ar,pr,br,lr,yr]};e[Se]={textureFormat:Se,colorRenderable:true,textureFilterable:true,bytesPerElement:[4,8,8,16,2,2],type:[ar,pr,br,lr,mr,dr]};e[we]={textureFormat:we,colorRenderable:true,textureFilterable:false,bytesPerElement:[2,4],type:[fr,ir]};e[st]={textureFormat:Pr,colorRenderable:true,textureFilterable:true,bytesPerElement:[1],type:[ar]};e[at]={textureFormat:Pr,colorRenderable:false,textureFilterable:true,bytesPerElement:[1],type:[sr]};e[ct]={textureFormat:Pr,colorRenderable:false,textureFilterable:true,bytesPerElement:[4,2],type:[lr,pr]};e[it]={textureFormat:Pr,colorRenderable:false,textureFilterable:false,bytesPerElement:[4],type:[lr]};e[ut]={textureFormat:Er,colorRenderable:true,textureFilterable:false,bytesPerElement:[1],type:[ar]};e[ft]={textureFormat:Er,colorRenderable:true,textureFilterable:false,bytesPerElement:[1],type:[sr]};e[Ft]={textureFormat:Er,colorRenderable:true,textureFilterable:false,bytesPerElement:[2],type:[ir]};e[Tt]={textureFormat:Er,colorRenderable:true,textureFilterable:false,bytesPerElement:[2],type:[cr]};e[St]={textureFormat:Er,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[fr]};e[Pt]={textureFormat:Er,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[ur]};e[pt]={textureFormat:Tr,colorRenderable:true,textureFilterable:true,bytesPerElement:[2],type:[ar]};e[bt]={textureFormat:Tr,colorRenderable:false,textureFilterable:true,bytesPerElement:[2],type:[sr]};e[gt]={textureFormat:Tr,colorRenderable:false,textureFilterable:true,bytesPerElement:[8,4],type:[lr,pr]};e[At]={textureFormat:Tr,colorRenderable:false,textureFilterable:false,bytesPerElement:[8],type:[lr]};e[ht]={textureFormat:Sr,colorRenderable:true,textureFilterable:false,bytesPerElement:[2],type:[ar]};e[xt]={textureFormat:Sr,colorRenderable:true,textureFilterable:false,bytesPerElement:[2],type:[sr]};e[lt]={textureFormat:Sr,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[ir]};e[mt]={textureFormat:Sr,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[cr]};e[dt]={textureFormat:Sr,colorRenderable:true,textureFilterable:false,bytesPerElement:[8],type:[fr]};e[yt]={textureFormat:Sr,colorRenderable:true,textureFilterable:false,bytesPerElement:[8],type:[ur]};e[Et]={textureFormat:Te,colorRenderable:true,textureFilterable:true,bytesPerElement:[3],type:[ar]};e[wt]={textureFormat:Te,colorRenderable:false,textureFilterable:true,bytesPerElement:[3],type:[ar]};e[It]={textureFormat:Te,colorRenderable:true,textureFilterable:true,bytesPerElement:[3,2],type:[ar,yr]};e[vt]={textureFormat:Te,colorRenderable:false,textureFilterable:true,bytesPerElement:[3],type:[sr]};e[Bt]={textureFormat:Te,colorRenderable:false,textureFilterable:true,bytesPerElement:[12,6,4],type:[lr,pr,Ar]};e[Ct]={textureFormat:Te,colorRenderable:false,textureFilterable:true,bytesPerElement:[12,6,4],type:[lr,pr,hr]};e[kt]={textureFormat:Te,colorRenderable:false,textureFilterable:true,bytesPerElement:[12,6],type:[lr,pr]};e[_t]={textureFormat:Te,colorRenderable:false,textureFilterable:false,bytesPerElement:[12],type:[lr]};e[zt]={textureFormat:wr,colorRenderable:false,textureFilterable:false,bytesPerElement:[3],type:[ar]};e[Ut]={textureFormat:wr,colorRenderable:false,textureFilterable:false,bytesPerElement:[3],type:[sr]};e[Vt]={textureFormat:wr,colorRenderable:false,textureFilterable:false,bytesPerElement:[6],type:[ir]};e[Mt]={textureFormat:wr,colorRenderable:false,textureFilterable:false,bytesPerElement:[6],type:[cr]};e[Rt]={textureFormat:wr,colorRenderable:false,textureFilterable:false,bytesPerElement:[12],type:[fr]};e[Ot]={textureFormat:wr,colorRenderable:false,textureFilterable:false,bytesPerElement:[12],type:[ur]};e[Dt]={textureFormat:Se,colorRenderable:true,textureFilterable:true,bytesPerElement:[4],type:[ar]};e[Lt]={textureFormat:Se,colorRenderable:true,textureFilterable:true,bytesPerElement:[4],type:[ar]};e[Nt]={textureFormat:Se,colorRenderable:false,textureFilterable:true,bytesPerElement:[4],type:[sr]};e[Gt]={textureFormat:Se,colorRenderable:true,textureFilterable:true,bytesPerElement:[4,2,4],type:[ar,dr,gr]};e[Wt]={textureFormat:Se,colorRenderable:true,textureFilterable:true,bytesPerElement:[4,2],type:[ar,mr]};e[jt]={textureFormat:Se,colorRenderable:true,textureFilterable:true,bytesPerElement:[4],type:[gr]};e[$t]={textureFormat:Se,colorRenderable:false,textureFilterable:true,bytesPerElement:[16,8],type:[lr,pr]};e[Xt]={textureFormat:Se,colorRenderable:false,textureFilterable:false,bytesPerElement:[16],type:[lr]};e[Yt]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[ar]};e[qt]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[sr]};e[Ht]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[gr]};e[Qt]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[8],type:[ir]};e[Zt]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[8],type:[cr]};e[Kt]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[16],type:[ur]};e[Jt]={textureFormat:Ir,colorRenderable:true,textureFilterable:false,bytesPerElement:[16],type:[fr]};e[er]={textureFormat:we,colorRenderable:true,textureFilterable:false,bytesPerElement:[2,4],type:[ir,fr]};e[tr]={textureFormat:we,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[fr]};e[rr]={textureFormat:we,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[lr]};e[or]={textureFormat:Ie,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[Fr]};e[nr]={textureFormat:Ie,colorRenderable:true,textureFilterable:false,bytesPerElement:[4],type:[xr]};Object.keys(e).forEach((function(t){const r=e[t];r.bytesPerElementMap={};r.bytesPerElement.forEach((function(e,t){const n=r.type[t];r.bytesPerElementMap[n]=e}))}));Br=e}return Br[e]}\n/**\n * Gets the number of bytes per element for a given internalFormat / type\n * @param {number} internalFormat The internalFormat parameter from texImage2D etc..\n * @param {number} type The type parameter for texImage2D etc..\n * @return {number} the number of bytes per element for the given internalFormat, type combo\n * @memberOf module:twgl/textures\n */function getBytesPerElementForInternalFormat(e,t){const r=getTextureInternalFormatInfo(e);if(!r)throw\"unknown internal format\";const n=r.bytesPerElementMap[t];if(void 0===n)throw\"unknown internal format\";return n}\n/**\n * Info related to a specific texture internalFormat as returned\n * from {@link module:twgl/textures.getFormatAndTypeForInternalFormat}.\n *\n * @typedef {Object} TextureFormatInfo\n * @property {number} format Format to pass to texImage2D and related functions\n * @property {number} type Type to pass to texImage2D and related functions\n * @memberOf module:twgl/textures\n */\n/**\n * Gets the format and type for a given internalFormat\n *\n * @param {number} internalFormat The internal format\n * @return {module:twgl/textures.TextureFormatInfo} the corresponding format and type,\n * @memberOf module:twgl/textures\n */function getFormatAndTypeForInternalFormat(e){const t=getTextureInternalFormatInfo(e);if(!t)throw\"unknown internal format\";return{format:t.textureFormat,type:t.type[0]}}\n/**\n * Returns true if value is power of 2\n * @param {number} value number to check.\n * @return true if value is power of 2\n * @private\n */function isPowerOf2(e){return 0===(e&e-1)}\n/**\n * Gets whether or not we can generate mips for the given\n * internal format.\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {number} width The width parameter from texImage2D etc..\n * @param {number} height The height parameter from texImage2D etc..\n * @param {number} internalFormat The internalFormat parameter from texImage2D etc..\n * @return {boolean} true if we can generate mips\n * @memberOf module:twgl/textures\n */function canGenerateMipmap(e,t,r,n){if(!isWebGL2(e))return isPowerOf2(t)&&isPowerOf2(r);const o=getTextureInternalFormatInfo(n);if(!o)throw\"unknown internal format\";return o.colorRenderable&&o.textureFilterable}\n/**\n * Gets whether or not we can generate mips for the given format\n * @param {number} internalFormat The internalFormat parameter from texImage2D etc..\n * @return {boolean} true if we can generate mips\n * @memberOf module:twgl/textures\n */function canFilter(e){const t=getTextureInternalFormatInfo(e);if(!t)throw\"unknown internal format\";return t.textureFilterable}\n/**\n * Gets the number of components for a given image format.\n * @param {number} format the format.\n * @return {number} the number of components for the format.\n * @memberOf module:twgl/textures\n */function getNumComponentsForFormat(e){const t=vr[e];if(!t)throw\"unknown format: \"+e;return t.numColorComponents}\n/**\n * Gets the texture type for a given array type.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @return {number} the gl texture type\n * @private\n */function getTextureTypeForArrayType(e,t,r){return he(t)?getGLTypeForTypedArray(t):r||ar}function guessDimensions(e,t,r,n,o){if(o%1!==0)throw\"can't guess dimensions\";if(r||n)if(n){if(!r){r=o/n;if(r%1)throw\"can't guess dimensions\"}}else{n=o/r;if(n%1)throw\"can't guess dimensions\"}else{const e=Math.sqrt(o/(t===_e?6:1));if(e%1===0){r=e;n=e}else{r=o;n=1}}return{width:r,height:n}}\n/**\n * Sets the default texture color.\n *\n * The default texture color is used when loading textures from\n * urls. Because the URL will be loaded async we'd like to be\n * able to use the texture immediately. By putting a 1x1 pixel\n * color in the texture we can start using the texture before\n * the URL has loaded.\n *\n * @param {number[]} color Array of 4 values in the range 0 to 1\n * @deprecated see {@link module:twgl.setDefaults}\n * @memberOf module:twgl/textures\n */function setDefaultTextureColor(e){Ae.textureColor=new Uint8Array([255*e[0],255*e[1],255*e[2],255*e[3]])}function setDefaults$1(e){copyExistingProperties(e,Ae);e.textureColor&&setDefaultTextureColor(e.textureColor)}\n/**\n * A function to generate the source for a texture.\n * @callback TextureFunc\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {module:twgl.TextureOptions} options the texture options\n * @return {*} Returns any of the things documented for `src` for {@link module:twgl.TextureOptions}.\n * @memberOf module:twgl\n */\n/**\n * Texture options passed to most texture functions. Each function will use whatever options\n * are appropriate for its needs. This lets you pass the same options to all functions.\n *\n * Note: A `TexImageSource` is defined in the WebGL spec as a `HTMLImageElement`, `HTMLVideoElement`,\n * `HTMLCanvasElement`, `ImageBitmap`, or `ImageData`.\n *\n * @typedef {Object} TextureOptions\n * @property {number} [target] the type of texture `gl.TEXTURE_2D` or `gl.TEXTURE_CUBE_MAP`. Defaults to `gl.TEXTURE_2D`.\n * @property {number} [level] the mip level to affect. Defaults to 0. Note, if set auto will be considered false unless explicitly set to true.\n * @property {number} [width] the width of the texture. Only used if src is an array or typed array or null.\n * @property {number} [height] the height of a texture. Only used if src is an array or typed array or null.\n * @property {number} [depth] the depth of a texture. Only used if src is an array or type array or null and target is `TEXTURE_3D` .\n * @property {number} [min] the min filter setting (eg. `gl.LINEAR`). Defaults to `gl.NEAREST_MIPMAP_LINEAR`\n *     or if texture is not a power of 2 on both dimensions then defaults to `gl.LINEAR`.\n * @property {number} [mag] the mag filter setting (eg. `gl.LINEAR`). Defaults to `gl.LINEAR`\n * @property {number} [minMag] both the min and mag filter settings.\n * @property {number} [internalFormat] internal format for texture. Defaults to `gl.RGBA`\n * @property {number} [format] format for texture. Defaults to `gl.RGBA`.\n * @property {number} [type] type for texture. Defaults to `gl.UNSIGNED_BYTE` unless `src` is ArrayBufferView. If `src`\n *     is ArrayBufferView defaults to type that matches ArrayBufferView type.\n * @property {number} [wrap] Texture wrapping for both S and T (and R if TEXTURE_3D or WebGLSampler). Defaults to `gl.REPEAT` for 2D unless src is WebGL1 and src not npot and `gl.CLAMP_TO_EDGE` for cube\n * @property {number} [wrapS] Texture wrapping for S. Defaults to `gl.REPEAT` and `gl.CLAMP_TO_EDGE` for cube. If set takes precedence over `wrap`.\n * @property {number} [wrapT] Texture wrapping for T. Defaults to `gl.REPEAT` and `gl.CLAMP_TO_EDGE` for cube. If set takes precedence over `wrap`.\n * @property {number} [wrapR] Texture wrapping for R. Defaults to `gl.REPEAT` and `gl.CLAMP_TO_EDGE` for cube. If set takes precedence over `wrap`.\n * @property {number} [minLod] TEXTURE_MIN_LOD setting\n * @property {number} [maxLod] TEXTURE_MAX_LOD setting\n * @property {number} [baseLevel] TEXTURE_BASE_LEVEL setting\n * @property {number} [maxLevel] TEXTURE_MAX_LEVEL setting\n * @property {number} [unpackAlignment] The `gl.UNPACK_ALIGNMENT` used when uploading an array. Defaults to 1.\n * @property {number[]|ArrayBufferView} [color] Color to initialize this texture with if loading an image asynchronously.\n *     The default use a blue 1x1 pixel texture. You can set another default by calling `twgl.setDefaults`\n *     or you can set an individual texture's initial color by setting this property. Example: `[1, .5, .5, 1]` = pink\n * @property {number} [premultiplyAlpha] Whether or not to premultiply alpha. Defaults to whatever the current setting is.\n *     This lets you set it once before calling `twgl.createTexture` or `twgl.createTextures` and only override\n *     the current setting for specific textures.\n * @property {number} [flipY] Whether or not to flip the texture vertically on upload. Defaults to whatever the current setting is.\n *     This lets you set it once before calling `twgl.createTexture` or `twgl.createTextures` and only override\n *     the current setting for specific textures.\n * @property {number} [colorspaceConversion] Whether or not to let the browser do colorspace conversion of the texture on upload. Defaults to whatever the current setting is.\n *     This lets you set it once before calling `twgl.createTexture` or `twgl.createTextures` and only override\n *     the current setting for specific textures.\n * @property {boolean} [auto] If `undefined` or `true`, in WebGL1, texture filtering is set automatically for non-power of 2 images and\n *    mips are generated for power of 2 images. In WebGL2 mips are generated if they can be. Note: if `level` is set above\n *    then then `auto` is assumed to be `false` unless explicity set to `true`.\n * @property {number[]} [cubeFaceOrder] The order that cube faces are pulled out of an img or set of images. The default is\n *\n *     [gl.TEXTURE_CUBE_MAP_POSITIVE_X,\n *      gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\n *      gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\n *      gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n *      gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\n *      gl.TEXTURE_CUBE_MAP_NEGATIVE_Z]\n *\n * @property {(number[]|ArrayBufferView|TexImageSource|TexImageSource[]|string|string[]|module:twgl.TextureFunc)} [src] source for texture\n *\n *    If `string` then it's assumed to be a URL to an image. The image will be downloaded async. A usable\n *    1x1 pixel texture will be returned immediately. The texture will be updated once the image has downloaded.\n *    If `target` is `gl.TEXTURE_CUBE_MAP` will attempt to divide image into 6 square pieces. 1x6, 6x1, 3x2, 2x3.\n *    The pieces will be uploaded in `cubeFaceOrder`\n *\n *    If `string[]` or `TexImageSource[]` and target is `gl.TEXTURE_CUBE_MAP` then it must have 6 entries, one for each face of a cube map.\n *\n *    If `string[]` or `TexImageSource[]` and target is `gl.TEXTURE_2D_ARRAY` then each entry is a slice of the a 2d array texture\n *    and will be scaled to the specified width and height OR to the size of the first image that loads.\n *\n *    If `TexImageSource` then it wil be used immediately to create the contents of the texture. Examples `HTMLImageElement`,\n *    `HTMLCanvasElement`, `HTMLVideoElement`.\n *\n *    If `number[]` or `ArrayBufferView` it's assumed to be data for a texture. If `width` or `height` is\n *    not specified it is guessed as follows. First the number of elements is computed by `src.length / numComponents`\n *    where `numComponents` is derived from `format`. If `target` is `gl.TEXTURE_CUBE_MAP` then `numElements` is divided\n *    by 6. Then\n *\n *    *   If neither `width` nor `height` are specified and `sqrt(numElements)` is an integer then width and height\n *        are set to `sqrt(numElements)`. Otherwise `width = numElements` and `height = 1`.\n *\n *    *   If only one of `width` or `height` is specified then the other equals `numElements / specifiedDimension`.\n *\n * If `number[]` will be converted to `type`.\n *\n * If `src` is a function it will be called with a `WebGLRenderingContext` and these options.\n * Whatever it returns is subject to these rules. So it can return a string url, an `HTMLElement`\n * an array etc...\n *\n * If `src` is undefined then an empty texture will be created of size `width` by `height`.\n *\n * @property {string} [crossOrigin] What to set the crossOrigin property of images when they are downloaded.\n *    default: undefined. Also see {@link module:twgl.setDefaults}.\n *\n * @memberOf module:twgl\n */\n/**\n * Sets any packing state that will be set based on the options.\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @private\n */function setPackState(e,t){void 0!==t.colorspaceConversion&&e.pixelStorei(rt,t.colorspaceConversion);void 0!==t.premultiplyAlpha&&e.pixelStorei(nt,t.premultiplyAlpha);void 0!==t.flipY&&e.pixelStorei(ot,t.flipY)}\n/**\n * Set skip state to defaults\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @private\n */function setSkipStateToDefault(e){e.pixelStorei(Qe,4);if(isWebGL2(e)){e.pixelStorei(Ze,0);e.pixelStorei(Ke,0);e.pixelStorei(Je,0);e.pixelStorei(et,0);e.pixelStorei(tt,0)}}\n/**\n * Sets the parameters of a texture or sampler\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {number|WebGLSampler} target texture target or sampler\n * @param {function()} parameteriFn texParameteri or samplerParameteri fn\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @private\n */function setTextureSamplerParameters(e,t,r,n){if(n.minMag){r.call(e,t,Ne,n.minMag);r.call(e,t,Ge,n.minMag)}n.min&&r.call(e,t,Ne,n.min);n.mag&&r.call(e,t,Ge,n.mag);if(n.wrap){r.call(e,t,We,n.wrap);r.call(e,t,je,n.wrap);(t===ze||isSampler(e,t))&&r.call(e,t,$e,n.wrap)}n.wrapR&&r.call(e,t,$e,n.wrapR);n.wrapS&&r.call(e,t,We,n.wrapS);n.wrapT&&r.call(e,t,je,n.wrapT);n.minLod&&r.call(e,t,Xe,n.minLod);n.maxLod&&r.call(e,t,Ye,n.maxLod);n.baseLevel&&r.call(e,t,qe,n.baseLevel);n.maxLevel&&r.call(e,t,He,n.maxLevel)}\n/**\n * Sets the texture parameters of a texture.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n */function setTextureParameters(e,t,r){const n=r.target||ke;e.bindTexture(n,t);setTextureSamplerParameters(e,n,e.texParameteri,r)}\n/**\n * Sets the sampler parameters of a sampler.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLSampler} sampler the WebGLSampler to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @memberOf module:twgl/textures\n */function setSamplerParameters(e,t,r){setTextureSamplerParameters(e,t,e.samplerParameteri,r)}\n/**\n * Creates a new sampler object and sets parameters.\n *\n * Example:\n *\n *      const sampler = twgl.createSampler(gl, {\n *        minMag: gl.NEAREST,         // sets both TEXTURE_MIN_FILTER and TEXTURE_MAG_FILTER\n *        wrap: gl.CLAMP_TO_NEAREST,  // sets both TEXTURE_WRAP_S and TEXTURE_WRAP_T and TEXTURE_WRAP_R\n *      });\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {Object.<string,module:twgl.TextureOptions>} options A object of TextureOptions one per sampler.\n * @return {Object.<string,WebGLSampler>} the created samplers by name\n * @private\n */function createSampler(e,t){const r=e.createSampler();setSamplerParameters(e,r,t);return r}\n/**\n * Creates a multiple sampler objects and sets parameters on each.\n *\n * Example:\n *\n *      const samplers = twgl.createSamplers(gl, {\n *        nearest: {\n *          minMag: gl.NEAREST,\n *        },\n *        nearestClampS: {\n *          minMag: gl.NEAREST,\n *          wrapS: gl.CLAMP_TO_NEAREST,\n *        },\n *        linear: {\n *          minMag: gl.LINEAR,\n *        },\n *        nearestClamp: {\n *          minMag: gl.NEAREST,\n *          wrap: gl.CLAMP_TO_EDGE,\n *        },\n *        linearClamp: {\n *          minMag: gl.LINEAR,\n *          wrap: gl.CLAMP_TO_EDGE,\n *        },\n *        linearClampT: {\n *          minMag: gl.LINEAR,\n *          wrapT: gl.CLAMP_TO_EDGE,\n *        },\n *      });\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set on the sampler\n * @private\n */function createSamplers(e,t){const r={};Object.keys(t).forEach((function(n){r[n]=createSampler(e,t[n])}));return r}\n/**\n * Makes a 1x1 pixel\n * If no color is passed in uses the default color which can be set by calling `setDefaultTextureColor`.\n * @param {(number[]|ArrayBufferView)} [color] The color using 0-1 values\n * @return {Uint8Array} Unit8Array with color.\n * @private\n */function make1Pixel(e){e=e||Ae.textureColor;return he(e)?e:new Uint8Array([255*e[0],255*e[1],255*e[2],255*e[3]])}\n/**\n * Sets filtering or generates mips for texture based on width or height\n * If width or height is not passed in uses `options.width` and//or `options.height`\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @param {number} [width] width of texture\n * @param {number} [height] height of texture\n * @param {number} [internalFormat] The internalFormat parameter from texImage2D etc..\n * @memberOf module:twgl/textures\n */function setTextureFilteringForSize(e,t,r,n,o,s){r=r||Ae.textureOptions;s=s||Se;const a=r.target||ke;n=n||r.width;o=o||r.height;e.bindTexture(a,t);if(canGenerateMipmap(e,n,o,s))e.generateMipmap(a);else{const t=canFilter(s)?Ce:Be;e.texParameteri(a,Ne,t);e.texParameteri(a,Ge,t);e.texParameteri(a,We,ve);e.texParameteri(a,je,ve)}}function shouldAutomaticallySetTextureFilteringForSize(e){return true===e.auto||void 0===e.auto&&void 0===e.level}\n/**\n * Gets an array of cubemap face enums\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @return {number[]} cubemap face enums\n * @private\n */function getCubeFaceOrder(e,t){t=t||{};return t.cubeFaceOrder||[Ve,Me,Re,Oe,De,Le]}\n/**\n * @typedef {Object} FaceInfo\n * @property {number} face gl enum for texImage2D\n * @property {number} ndx face index (0 - 5) into source data\n * @ignore\n */\n/**\n * Gets an array of FaceInfos\n * There's a bug in some NVidia drivers that will crash the driver if\n * `gl.TEXTURE_CUBE_MAP_POSITIVE_X` is not uploaded first. So, we take\n * the user's desired order from his faces to WebGL and make sure we\n * do the faces in WebGL order\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @return {FaceInfo[]} cubemap face infos. Arguably the `face` property of each element is redundant but\n *    it's needed internally to sort the array of `ndx` properties by `face`.\n * @private\n */function getCubeFacesWithNdx(e,t){const r=getCubeFaceOrder(e,t);const n=r.map((function(e,t){return{face:e,ndx:t}}));n.sort((function(e,t){return e.face-t.face}));return n}\n/**\n * Set a texture from the contents of an element. Will also set\n * texture filtering or generate mips based on the dimensions of the element\n * unless `options.auto === false`. If `target === gl.TEXTURE_CUBE_MAP` will\n * attempt to slice image into 1x6, 2x3, 3x2, or 6x1 images, one for each face.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {HTMLElement} element a canvas, img, or video element.\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n * @kind function\n */function setTextureFromElement(e,t,r,n){n=n||Ae.textureOptions;const o=n.target||ke;const s=n.level||0;let a=r.width;let c=r.height;const i=n.internalFormat||n.format||Se;const u=getFormatAndTypeForInternalFormat(i);const f=n.format||u.format;const l=n.type||u.type;setPackState(e,n);e.bindTexture(o,t);if(o===_e){const u=r.width;const m=r.height;let d;let y;if(u/6===m){d=m;y=[0,0,1,0,2,0,3,0,4,0,5,0]}else if(m/6===u){d=u;y=[0,0,0,1,0,2,0,3,0,4,0,5]}else if(u/3===m/2){d=u/3;y=[0,0,1,0,2,0,0,1,1,1,2,1]}else{if(u/2!==m/3)throw\"can't figure out cube map from element: \"+(r.src?r.src:r.nodeName);d=u/2;y=[0,0,1,0,0,1,1,1,0,2,1,2]}const p=xe();if(p){p.canvas.width=d;p.canvas.height=d;a=d;c=d;getCubeFacesWithNdx(e,n).forEach((function(t){const n=y[2*t.ndx+0]*d;const o=y[2*t.ndx+1]*d;p.drawImage(r,n,o,d,d,0,0,d,d);e.texImage2D(t.face,s,i,f,l,p.canvas)}));p.canvas.width=1;p.canvas.height=1}else if(\"undefined\"!==typeof createImageBitmap){a=d;c=d;getCubeFacesWithNdx(e,n).forEach((function(u){const m=y[2*u.ndx+0]*d;const p=y[2*u.ndx+1]*d;e.texImage2D(u.face,s,i,d,d,0,f,l,null);createImageBitmap(r,m,p,d,d,{premultiplyAlpha:\"none\",colorSpaceConversion:\"none\"}).then((function(r){setPackState(e,n);e.bindTexture(o,t);e.texImage2D(u.face,s,i,f,l,r);shouldAutomaticallySetTextureFilteringForSize(n)&&setTextureFilteringForSize(e,t,n,a,c,i)}))}))}}else if(o===ze||o===Ue){const t=Math.min(r.width,r.height);const n=Math.max(r.width,r.height);const a=n/t;if(a%1!==0)throw\"can not compute 3D dimensions of element\";const c=r.width===n?1:0;const u=r.height===n?1:0;e.pixelStorei(Qe,1);e.pixelStorei(Ze,r.width);e.pixelStorei(Ke,0);e.pixelStorei(tt,0);e.texImage3D(o,s,i,t,t,t,0,f,l,null);for(let n=0;n<a;++n){const a=n*t*c;const i=n*t*u;e.pixelStorei(Je,a);e.pixelStorei(et,i);e.texSubImage3D(o,s,0,0,n,t,t,1,f,l,r)}setSkipStateToDefault(e)}else e.texImage2D(o,s,i,f,l,r);shouldAutomaticallySetTextureFilteringForSize(n)&&setTextureFilteringForSize(e,t,n,a,c,i);setTextureParameters(e,t,n)}function noop(){}\n/**\n * Checks whether the url's origin is the same so that we can set the `crossOrigin`\n * @param {string} url url to image\n * @returns {boolean} true if the window's origin is the same as image's url\n * @private\n */function urlIsSameOrigin(e){if(\"undefined\"!==typeof document){const t=document.createElement(\"a\");t.href=e;return t.hostname===location.hostname&&t.port===location.port&&t.protocol===location.protocol}{const t=new URL(location.href).origin;const r=new URL(e,location.href).origin;return r===t}}function setToAnonymousIfUndefinedAndURLIsNotSameOrigin(e,t){return void 0!==t||urlIsSameOrigin(e)?t:\"anonymous\"}\n/**\n * Loads an image\n * @param {string} url url to image\n * @param {string} crossOrigin\n * @param {function(err, img)} [callback] a callback that's passed an error and the image. The error will be non-null\n *     if there was an error\n * @return {HTMLImageElement} the image being loaded.\n * @private\n */function loadImage(e,t,r){r=r||noop;let n;t=void 0!==t?t:Ae.crossOrigin;t=setToAnonymousIfUndefinedAndURLIsNotSameOrigin(e,t);if(\"undefined\"!==typeof Image){n=new Image;void 0!==t&&(n.crossOrigin=t);const o=function clearEventHandlers(){n.removeEventListener(\"error\",s);n.removeEventListener(\"load\",a);n=null};const s=function onError(){const t=\"couldn't load image: \"+e;error(t);r(t,n);o()};const a=function onLoad(){r(null,n);o()};n.addEventListener(\"error\",s);n.addEventListener(\"load\",a);n.src=e;return n}if(\"undefined\"!==typeof ImageBitmap){let o;let s;const a=function cb(){r(o,s)};const c={};t&&(c.mode=\"cors\");fetch(e,c).then((function(e){if(!e.ok)throw e;return e.blob()})).then((function(e){return createImageBitmap(e,{premultiplyAlpha:\"none\",colorSpaceConversion:\"none\"})})).then((function(e){s=e;setTimeout(a)})).catch((function(e){o=e;setTimeout(a)}));n=null}return n}\n/**\n * check if object is a TexImageSource\n *\n * @param {Object} obj Object to test\n * @return {boolean} true if object is a TexImageSource\n * @private\n */function isTexImageSource(e){return\"undefined\"!==typeof ImageBitmap&&e instanceof ImageBitmap||\"undefined\"!==typeof ImageData&&e instanceof ImageData||\"undefined\"!==typeof HTMLElement&&e instanceof HTMLElement}\n/**\n * if obj is an TexImageSource then just\n * uses it otherwise if obj is a string\n * then load it first.\n *\n * @param {string|TexImageSource} obj\n * @param {string} crossOrigin\n * @param {function(err, img)} [callback] a callback that's passed an error and the image. The error will be non-null\n *     if there was an error\n * @private\n */function loadAndUseImage(e,t,r){if(isTexImageSource(e)){setTimeout((function(){r(null,e)}));return e}return loadImage(e,t,r)}\n/**\n * Sets a texture to a 1x1 pixel color. If `options.color === false` is nothing happens. If it's not set\n * the default texture color is used which can be set by calling `setDefaultTextureColor`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n * @private\n */function setTextureTo1PixelColor(e,t,r){r=r||Ae.textureOptions;const n=r.target||ke;e.bindTexture(n,t);if(false===r.color)return;const o=make1Pixel(r.color);if(n===_e)for(let t=0;t<6;++t)e.texImage2D(Ve+t,0,Se,1,1,0,Se,ar,o);else n===ze||n===Ue?e.texImage3D(n,0,Se,1,1,1,0,Se,ar,o):e.texImage2D(n,0,Se,1,1,0,Se,ar,o)}\n/**\n * The src image(s) used to create a texture.\n *\n * When you call {@link module:twgl.createTexture} or {@link module:twgl.createTextures}\n * you can pass in urls for images to load into the textures. If it's a single url\n * then this will be a single HTMLImageElement. If it's an array of urls used for a cubemap\n * this will be a corresponding array of images for the cubemap.\n *\n * @typedef {HTMLImageElement|HTMLImageElement[]} TextureSrc\n * @memberOf module:twgl\n */\n/**\n * A callback for when an image finished downloading and been uploaded into a texture\n * @callback TextureReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {WebGLTexture} texture the texture.\n * @param {module:twgl.TextureSrc} source image(s) used to as the src for the texture\n * @memberOf module:twgl\n */\n/**\n * A callback for when all images have finished downloading and been uploaded into their respective textures\n * @callback TexturesReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {Object.<string, WebGLTexture>} textures the created textures by name. Same as returned by {@link module:twgl.createTextures}.\n * @param {Object.<string, module:twgl.TextureSrc>} sources the image(s) used for the texture by name.\n * @memberOf module:twgl\n */\n/**\n * A callback for when an image finished downloading and been uploaded into a texture\n * @callback CubemapReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {WebGLTexture} tex the texture.\n * @param {HTMLImageElement[]} imgs the images for each face.\n * @memberOf module:twgl\n */\n/**\n * A callback for when an image finished downloading and been uploaded into a texture\n * @callback ThreeDReadyCallback\n * @param {*} err If truthy there was an error.\n * @param {WebGLTexture} tex the texture.\n * @param {HTMLImageElement[]} imgs the images for each slice.\n * @memberOf module:twgl\n */\n/**\n * Loads a texture from an image from a Url as specified in `options.src`\n * If `options.color !== false` will set the texture to a 1x1 pixel color so that the texture is\n * immediately useable. It will be updated with the contents of the image once the image has finished\n * downloading. Filtering options will be set as appropriate for image unless `options.auto === false`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.TextureReadyCallback} [callback] A function to be called when the image has finished loading. err will\n *    be non null if there was an error.\n * @return {HTMLImageElement} the image being downloaded.\n * @memberOf module:twgl/textures\n */function loadTextureFromUrl(e,t,r,n){n=n||noop;r=r||Ae.textureOptions;setTextureTo1PixelColor(e,t,r);r=Object.assign({},r);const o=loadAndUseImage(r.src,r.crossOrigin,(function(o,s){if(o)n(o,t,s);else{setTextureFromElement(e,t,s,r);n(null,t,s)}}));return o}\n/**\n * Loads a cubemap from 6 urls or TexImageSources as specified in `options.src`. Will set the cubemap to a 1x1 pixel color\n * so that it is usable immediately unless `option.color === false`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.CubemapReadyCallback} [callback] A function to be called when all the images have finished loading. err will\n *    be non null if there was an error.\n * @memberOf module:twgl/textures\n * @private\n */function loadCubemapFromUrls(e,t,r,n){n=n||noop;const o=r.src;if(6!==o.length)throw\"there must be 6 urls for a cubemap\";const s=r.level||0;const a=r.internalFormat||r.format||Se;const c=getFormatAndTypeForInternalFormat(a);const i=r.format||c.format;const u=r.type||ar;const f=r.target||ke;if(f!==_e)throw\"target must be TEXTURE_CUBE_MAP\";setTextureTo1PixelColor(e,t,r);r=Object.assign({},r);let l=6;const m=[];const d=getCubeFaceOrder(e,r);let y;function uploadImg(o){return function(c,d){--l;if(c)m.push(c);else if(d.width!==d.height)m.push(\"cubemap face img is not a square: \"+d.src);else{setPackState(e,r);e.bindTexture(f,t);5===l?getCubeFaceOrder().forEach((function(t){e.texImage2D(t,s,a,i,u,d)})):e.texImage2D(o,s,a,i,u,d);shouldAutomaticallySetTextureFilteringForSize(r)&&e.generateMipmap(f)}0===l&&n(m.length?m:void 0,t,y)}}y=o.map((function(e,t){return loadAndUseImage(e,r.crossOrigin,uploadImg(d[t]))}))}\n/**\n * Loads a 2d array or 3d texture from urls OR TexImageSources as specified in `options.src`.\n * Will set the texture to a 1x1 pixel color\n * so that it is usable immediately unless `option.color === false`.\n *\n * If the width and height is not specified the width and height of the first\n * image loaded will be used. Note that since images are loaded async\n * which image downloads first is unknown.\n *\n * If an image is not the same size as the width and height it will be scaled\n * to that width and height.\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.ThreeDReadyCallback} [callback] A function to be called when all the images have finished loading. err will\n *    be non null if there was an error.\n * @memberOf module:twgl/textures\n * @private\n */function loadSlicesFromUrls(e,t,r,n){n=n||noop;const o=r.src;const s=r.internalFormat||r.format||Se;const a=getFormatAndTypeForInternalFormat(s);const c=r.format||a.format;const i=r.type||ar;const u=r.target||Ue;if(u!==ze&&u!==Ue)throw\"target must be TEXTURE_3D or TEXTURE_2D_ARRAY\";setTextureTo1PixelColor(e,t,r);r=Object.assign({},r);let f=o.length;const l=[];let m;const d=r.level||0;let y=r.width;let p=r.height;const b=o.length;let g=true;function uploadImg(o){return function(a,A){--f;if(a)l.push(a);else{setPackState(e,r);e.bindTexture(u,t);if(g){g=false;y=r.width||A.width;p=r.height||A.height;e.texImage3D(u,d,s,y,p,b,0,c,i,null);for(let t=0;t<b;++t)e.texSubImage3D(u,d,0,0,t,y,p,1,c,i,A)}else{let t=A;let r;if(A.width!==y||A.height!==p){r=xe();t=r.canvas;r.canvas.width=y;r.canvas.height=p;r.drawImage(A,0,0,y,p)}e.texSubImage3D(u,d,0,0,o,y,p,1,c,i,t);if(r&&t===r.canvas){r.canvas.width=0;r.canvas.height=0}}shouldAutomaticallySetTextureFilteringForSize(r)&&e.generateMipmap(u)}0===f&&n(l.length?l:void 0,t,m)}}m=o.map((function(e,t){return loadAndUseImage(e,r.crossOrigin,uploadImg(t))}))}\n/**\n * Sets a texture from an array or typed array. If the width or height is not provided will attempt to\n * guess the size. See {@link module:twgl.TextureOptions}.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {(number[]|ArrayBufferView)} src An array or typed arry with texture data.\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n *   This is often the same options you passed in when you created the texture.\n * @memberOf module:twgl/textures\n */function setTextureFromArray(e,t,r,n){n=n||Ae.textureOptions;const o=n.target||ke;e.bindTexture(o,t);let s=n.width;let a=n.height;let c=n.depth;const i=n.level||0;const u=n.internalFormat||n.format||Se;const f=getFormatAndTypeForInternalFormat(u);const l=n.format||f.format;const m=n.type||getTextureTypeForArrayType(e,r,f.type);if(he(r))r instanceof Uint8ClampedArray&&(r=new Uint8Array(r.buffer));else{const e=getTypedArrayTypeForGLType(m);r=new e(r)}const d=getBytesPerElementForInternalFormat(u,m);const y=r.byteLength/d;if(y%1)throw\"length wrong size for format: \"+be(e,l);let p;if(o===ze||o===Ue)if(s||a||c)if(!s||a&&c)if(!a||s&&c){p=guessDimensions(e,o,s,a,y/c);s=p.width;a=p.height}else{p=guessDimensions(e,o,s,c,y/a);s=p.width;c=p.height}else{p=guessDimensions(e,o,a,c,y/s);a=p.width;c=p.height}else{const e=Math.cbrt(y);if(e%1!==0)throw\"can't guess cube size of array of numElements: \"+y;s=e;a=e;c=e}else{p=guessDimensions(e,o,s,a,y);s=p.width;a=p.height}setSkipStateToDefault(e);e.pixelStorei(Qe,n.unpackAlignment||1);setPackState(e,n);if(o===_e){const t=d/r.BYTES_PER_ELEMENT;const o=y/6*t;getCubeFacesWithNdx(e,n).forEach((t=>{const n=o*t.ndx;const c=r.subarray(n,n+o);e.texImage2D(t.face,i,u,s,a,0,l,m,c)}))}else o===ze||o===Ue?e.texImage3D(o,i,u,s,a,c,0,l,m,r):e.texImage2D(o,i,u,s,a,0,l,m,r);return{width:s,height:a,depth:c,type:m}}\n/**\n * Sets a texture with no contents of a certain size. In other words calls `gl.texImage2D` with `null`.\n * You must set `options.width` and `options.height`.\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the WebGLTexture to set parameters for\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @memberOf module:twgl/textures\n */function setEmptyTexture(e,t,r){const n=r.target||ke;e.bindTexture(n,t);const o=r.level||0;const s=r.internalFormat||r.format||Se;const a=getFormatAndTypeForInternalFormat(s);const c=r.format||a.format;const i=r.type||a.type;setPackState(e,r);if(n===_e)for(let t=0;t<6;++t)e.texImage2D(Ve+t,o,s,r.width,r.height,0,c,i,null);else n===ze||n===Ue?e.texImage3D(n,o,s,r.width,r.height,r.depth,0,c,i,null):e.texImage2D(n,o,s,r.width,r.height,0,c,i,null)}\n/**\n * Creates a texture based on the options passed in.\n *\n * Note: may reset UNPACK_ALIGNMENT, UNPACK_ROW_LENGTH, UNPACK_IMAGE_HEIGHT, UNPACK_SKIP_IMAGES\n * UNPACK_SKIP_PIXELS, and UNPACK_SKIP_ROWS\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.TextureOptions} [options] A TextureOptions object with whatever parameters you want set.\n * @param {module:twgl.TextureReadyCallback} [callback] A callback called when an image has been downloaded and uploaded to the texture.\n * @return {WebGLTexture} the created texture.\n * @memberOf module:twgl/textures\n */function createTexture(e,t,r){r=r||noop;t=t||Ae.textureOptions;const n=e.createTexture();const o=t.target||ke;let s=t.width||1;let a=t.height||1;const c=t.internalFormat||Se;e.bindTexture(o,n);if(o===_e){e.texParameteri(o,We,ve);e.texParameteri(o,je,ve)}let i=t.src;if(i){\"function\"===typeof i&&(i=i(e,t));if(\"string\"===typeof i)loadTextureFromUrl(e,n,t,r);else if(he(i)||Array.isArray(i)&&(\"number\"===typeof i[0]||Array.isArray(i[0])||he(i[0]))){const r=setTextureFromArray(e,n,i,t);s=r.width;a=r.height}else if(Array.isArray(i)&&(\"string\"===typeof i[0]||isTexImageSource(i[0])))o===_e?loadCubemapFromUrls(e,n,t,r):loadSlicesFromUrls(e,n,t,r);else{setTextureFromElement(e,n,i,t);s=i.width;a=i.height}}else setEmptyTexture(e,n,t);shouldAutomaticallySetTextureFilteringForSize(t)&&setTextureFilteringForSize(e,n,t,s,a,c);setTextureParameters(e,n,t);return n}\n/**\n * Resizes a texture based on the options passed in.\n *\n * Note: This is not a generic resize anything function.\n * It's mostly used by {@link module:twgl.resizeFramebufferInfo}\n * It will use `options.src` if it exists to try to determine a `type`\n * otherwise it will assume `gl.UNSIGNED_BYTE`. No data is provided\n * for the texture. Texture parameters will be set accordingly\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {WebGLTexture} tex the texture to resize\n * @param {module:twgl.TextureOptions} options A TextureOptions object with whatever parameters you want set.\n * @param {number} [width] the new width. If not passed in will use `options.width`\n * @param {number} [height] the new height. If not passed in will use `options.height`\n * @param {number} [depth] the new depth. If not passed in will use `options.depth`\n * @memberOf module:twgl/textures\n */function resizeTexture(e,t,r,n,o,s){n=n||r.width;o=o||r.height;s=s||r.depth;const a=r.target||ke;e.bindTexture(a,t);const c=r.level||0;const i=r.internalFormat||r.format||Se;const u=getFormatAndTypeForInternalFormat(i);const f=r.format||u.format;let l;const m=r.src;l=m&&(he(m)||Array.isArray(m)&&\"number\"===typeof m[0])?r.type||getTextureTypeForArrayType(e,m,u.type):r.type||u.type;if(a===_e)for(let t=0;t<6;++t)e.texImage2D(Ve+t,c,i,n,o,0,f,l,null);else a===ze||a===Ue?e.texImage3D(a,c,i,n,o,s,0,f,l,null):e.texImage2D(a,c,i,n,o,0,f,l,null)}\n/**\n * Check if a src is an async request.\n * if src is a string we're going to download an image\n * if src is an array of strings we're going to download cubemap images\n * @param {*} src The src from a TextureOptions\n * @returns {bool} true if src is async.\n * @private\n */function isAsyncSrc(e){return\"string\"===typeof e||Array.isArray(e)&&\"string\"===typeof e[0]}\n/**\n * Creates a bunch of textures based on the passed in options.\n *\n * Example:\n *\n *     const textures = twgl.createTextures(gl, {\n *       // a power of 2 image\n *       hftIcon: { src: \"images/hft-icon-16.png\", mag: gl.NEAREST },\n *       // a non-power of 2 image\n *       clover: { src: \"images/clover.jpg\" },\n *       // From a canvas\n *       fromCanvas: { src: ctx.canvas },\n *       // A cubemap from 6 images\n *       yokohama: {\n *         target: gl.TEXTURE_CUBE_MAP,\n *         src: [\n *           'images/yokohama/posx.jpg',\n *           'images/yokohama/negx.jpg',\n *           'images/yokohama/posy.jpg',\n *           'images/yokohama/negy.jpg',\n *           'images/yokohama/posz.jpg',\n *           'images/yokohama/negz.jpg',\n *         ],\n *       },\n *       // A cubemap from 1 image (can be 1x6, 2x3, 3x2, 6x1)\n *       goldengate: {\n *         target: gl.TEXTURE_CUBE_MAP,\n *         src: 'images/goldengate.jpg',\n *       },\n *       // A 2x2 pixel texture from a JavaScript array\n *       checker: {\n *         mag: gl.NEAREST,\n *         min: gl.LINEAR,\n *         src: [\n *           255,255,255,255,\n *           192,192,192,255,\n *           192,192,192,255,\n *           255,255,255,255,\n *         ],\n *       },\n *       // a 1x2 pixel texture from a typed array.\n *       stripe: {\n *         mag: gl.NEAREST,\n *         min: gl.LINEAR,\n *         format: gl.LUMINANCE,\n *         src: new Uint8Array([\n *           255,\n *           128,\n *           255,\n *           128,\n *           255,\n *           128,\n *           255,\n *           128,\n *         ]),\n *         width: 1,\n *       },\n *     });\n *\n * Now\n *\n * *   `textures.hftIcon` will be a 2d texture\n * *   `textures.clover` will be a 2d texture\n * *   `textures.fromCanvas` will be a 2d texture\n * *   `textures.yohohama` will be a cubemap texture\n * *   `textures.goldengate` will be a cubemap texture\n * *   `textures.checker` will be a 2d texture\n * *   `textures.stripe` will be a 2d texture\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {Object.<string,module:twgl.TextureOptions>} options A object of TextureOptions one per texture.\n * @param {module:twgl.TexturesReadyCallback} [callback] A callback called when all textures have been downloaded.\n * @return {Object.<string,WebGLTexture>} the created textures by name\n * @memberOf module:twgl/textures\n */function createTextures(e,t,r){r=r||noop;let n=0;const o=[];const s={};const a={};function callCallbackIfReady(){0===n&&setTimeout((function(){r(o.length?o:void 0,s,a)}),0)}Object.keys(t).forEach((function(r){const c=t[r];let i;if(isAsyncSrc(c.src)){i=function(e,t,s){a[r]=s;--n;e&&o.push(e);callCallbackIfReady()};++n}s[r]=createTexture(e,c,i)}));callCallbackIfReady();return s}var Cr=Object.freeze({__proto__:null,setTextureDefaults_:setDefaults$1,createSampler:createSampler,createSamplers:createSamplers,setSamplerParameters:setSamplerParameters,createTexture:createTexture,setEmptyTexture:setEmptyTexture,setTextureFromArray:setTextureFromArray,loadTextureFromUrl:loadTextureFromUrl,setTextureFromElement:setTextureFromElement,setTextureFilteringForSize:setTextureFilteringForSize,setTextureParameters:setTextureParameters,setDefaultTextureColor:setDefaultTextureColor,createTextures:createTextures,resizeTexture:resizeTexture,canGenerateMipmap:canGenerateMipmap,canFilter:canFilter,getNumComponentsForFormat:getNumComponentsForFormat,getBytesPerElementForInternalFormat:getBytesPerElementForInternalFormat,getFormatAndTypeForInternalFormat:getFormatAndTypeForInternalFormat});const kr=error;const _r=warn;function getElementById(e){return\"undefined\"!==typeof document&&document.getElementById?document.getElementById(e):null}const zr=33984;const Ur=35048;const Vr=34962;const Mr=34963;const Rr=35345;const Or=35982;const Dr=36386;const Lr=35713;const Nr=35714;const Gr=35632;const Wr=35633;const jr=35981;const $r=35718;const Xr=35721;const Yr=35971;const qr=35382;const Hr=35396;const Qr=35398;const Zr=35392;const Kr=35395;const Jr=5126;const en=35664;const tn=35665;const rn=35666;const nn=5124;const on=35667;const sn=35668;const an=35669;const cn=35670;const un=35671;const fn=35672;const ln=35673;const mn=35674;const dn=35675;const yn=35676;const pn=35678;const bn=35680;const gn=35679;const An=35682;const hn=35685;const xn=35686;const Fn=35687;const Tn=35688;const Sn=35689;const Pn=35690;const En=36289;const wn=36292;const In=36293;const vn=5125;const Bn=36294;const Cn=36295;const kn=36296;const _n=36298;const zn=36299;const Un=36300;const Vn=36303;const Mn=36306;const Rn=36307;const On=36308;const Dn=36311;const Ln=3553;const Nn=34067;const Gn=32879;const Wn=35866;const jn={};function getBindPointForSamplerType(e,t){return jn[t].bindPoint}function floatSetter(e,t){return function(r){e.uniform1f(t,r)}}function floatArraySetter(e,t){return function(r){e.uniform1fv(t,r)}}function floatVec2Setter(e,t){return function(r){e.uniform2fv(t,r)}}function floatVec3Setter(e,t){return function(r){e.uniform3fv(t,r)}}function floatVec4Setter(e,t){return function(r){e.uniform4fv(t,r)}}function intSetter(e,t){return function(r){e.uniform1i(t,r)}}function intArraySetter(e,t){return function(r){e.uniform1iv(t,r)}}function intVec2Setter(e,t){return function(r){e.uniform2iv(t,r)}}function intVec3Setter(e,t){return function(r){e.uniform3iv(t,r)}}function intVec4Setter(e,t){return function(r){e.uniform4iv(t,r)}}function uintSetter(e,t){return function(r){e.uniform1ui(t,r)}}function uintArraySetter(e,t){return function(r){e.uniform1uiv(t,r)}}function uintVec2Setter(e,t){return function(r){e.uniform2uiv(t,r)}}function uintVec3Setter(e,t){return function(r){e.uniform3uiv(t,r)}}function uintVec4Setter(e,t){return function(r){e.uniform4uiv(t,r)}}function floatMat2Setter(e,t){return function(r){e.uniformMatrix2fv(t,false,r)}}function floatMat3Setter(e,t){return function(r){e.uniformMatrix3fv(t,false,r)}}function floatMat4Setter(e,t){return function(r){e.uniformMatrix4fv(t,false,r)}}function floatMat23Setter(e,t){return function(r){e.uniformMatrix2x3fv(t,false,r)}}function floatMat32Setter(e,t){return function(r){e.uniformMatrix3x2fv(t,false,r)}}function floatMat24Setter(e,t){return function(r){e.uniformMatrix2x4fv(t,false,r)}}function floatMat42Setter(e,t){return function(r){e.uniformMatrix4x2fv(t,false,r)}}function floatMat34Setter(e,t){return function(r){e.uniformMatrix3x4fv(t,false,r)}}function floatMat43Setter(e,t){return function(r){e.uniformMatrix4x3fv(t,false,r)}}function samplerSetter(e,t,r,n){const o=getBindPointForSamplerType(e,t);return isWebGL2(e)?function(t){let s;let a;if(isTexture(e,t)){s=t;a=null}else{s=t.texture;a=t.sampler}e.uniform1i(n,r);e.activeTexture(zr+r);e.bindTexture(o,s);e.bindSampler(r,a)}:function(t){e.uniform1i(n,r);e.activeTexture(zr+r);e.bindTexture(o,t)}}function samplerArraySetter(e,t,r,n,o){const s=getBindPointForSamplerType(e,t);const a=new Int32Array(o);for(let e=0;e<o;++e)a[e]=r+e;return isWebGL2(e)?function(t){e.uniform1iv(n,a);t.forEach((function(t,n){e.activeTexture(zr+a[n]);let o;let c;if(isTexture(e,t)){o=t;c=null}else{o=t.texture;c=t.sampler}e.bindSampler(r,c);e.bindTexture(s,o)}))}:function(t){e.uniform1iv(n,a);t.forEach((function(t,r){e.activeTexture(zr+a[r]);e.bindTexture(s,t)}))}}jn[Jr]={Type:Float32Array,size:4,setter:floatSetter,arraySetter:floatArraySetter};jn[en]={Type:Float32Array,size:8,setter:floatVec2Setter,cols:2};jn[tn]={Type:Float32Array,size:12,setter:floatVec3Setter,cols:3};jn[rn]={Type:Float32Array,size:16,setter:floatVec4Setter,cols:4};jn[nn]={Type:Int32Array,size:4,setter:intSetter,arraySetter:intArraySetter};jn[on]={Type:Int32Array,size:8,setter:intVec2Setter,cols:2};jn[sn]={Type:Int32Array,size:12,setter:intVec3Setter,cols:3};jn[an]={Type:Int32Array,size:16,setter:intVec4Setter,cols:4};jn[vn]={Type:Uint32Array,size:4,setter:uintSetter,arraySetter:uintArraySetter};jn[Bn]={Type:Uint32Array,size:8,setter:uintVec2Setter,cols:2};jn[Cn]={Type:Uint32Array,size:12,setter:uintVec3Setter,cols:3};jn[kn]={Type:Uint32Array,size:16,setter:uintVec4Setter,cols:4};jn[cn]={Type:Uint32Array,size:4,setter:intSetter,arraySetter:intArraySetter};jn[un]={Type:Uint32Array,size:8,setter:intVec2Setter,cols:2};jn[fn]={Type:Uint32Array,size:12,setter:intVec3Setter,cols:3};jn[ln]={Type:Uint32Array,size:16,setter:intVec4Setter,cols:4};jn[mn]={Type:Float32Array,size:32,setter:floatMat2Setter,rows:2,cols:2};jn[dn]={Type:Float32Array,size:48,setter:floatMat3Setter,rows:3,cols:3};jn[yn]={Type:Float32Array,size:64,setter:floatMat4Setter,rows:4,cols:4};jn[hn]={Type:Float32Array,size:32,setter:floatMat23Setter,rows:2,cols:3};jn[xn]={Type:Float32Array,size:32,setter:floatMat24Setter,rows:2,cols:4};jn[Fn]={Type:Float32Array,size:48,setter:floatMat32Setter,rows:3,cols:2};jn[Tn]={Type:Float32Array,size:48,setter:floatMat34Setter,rows:3,cols:4};jn[Sn]={Type:Float32Array,size:64,setter:floatMat42Setter,rows:4,cols:2};jn[Pn]={Type:Float32Array,size:64,setter:floatMat43Setter,rows:4,cols:3};jn[pn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Ln};jn[bn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Nn};jn[gn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Gn};jn[An]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Ln};jn[En]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Wn};jn[wn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Wn};jn[In]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Nn};jn[_n]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Ln};jn[zn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Gn};jn[Un]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Nn};jn[Vn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Wn};jn[Mn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Ln};jn[Rn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Gn};jn[On]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Nn};jn[Dn]={Type:null,size:0,setter:samplerSetter,arraySetter:samplerArraySetter,bindPoint:Wn};function floatAttribSetter(e,t){return function(r){if(r.value){e.disableVertexAttribArray(t);switch(r.value.length){case 4:e.vertexAttrib4fv(t,r.value);break;case 3:e.vertexAttrib3fv(t,r.value);break;case 2:e.vertexAttrib2fv(t,r.value);break;case 1:e.vertexAttrib1fv(t,r.value);break;default:throw new Error(\"the length of a float constant value must be between 1 and 4!\")}}else{e.bindBuffer(Vr,r.buffer);e.enableVertexAttribArray(t);e.vertexAttribPointer(t,r.numComponents||r.size,r.type||Jr,r.normalize||false,r.stride||0,r.offset||0);void 0!==r.divisor&&e.vertexAttribDivisor(t,r.divisor)}}}function intAttribSetter(e,t){return function(r){if(r.value){e.disableVertexAttribArray(t);if(4!==r.value.length)throw new Error(\"The length of an integer constant value must be 4!\");e.vertexAttrib4iv(t,r.value)}else{e.bindBuffer(Vr,r.buffer);e.enableVertexAttribArray(t);e.vertexAttribIPointer(t,r.numComponents||r.size,r.type||nn,r.stride||0,r.offset||0);void 0!==r.divisor&&e.vertexAttribDivisor(t,r.divisor)}}}function uintAttribSetter(e,t){return function(r){if(r.value){e.disableVertexAttribArray(t);if(4!==r.value.length)throw new Error(\"The length of an unsigned integer constant value must be 4!\");e.vertexAttrib4uiv(t,r.value)}else{e.bindBuffer(Vr,r.buffer);e.enableVertexAttribArray(t);e.vertexAttribIPointer(t,r.numComponents||r.size,r.type||vn,r.stride||0,r.offset||0);void 0!==r.divisor&&e.vertexAttribDivisor(t,r.divisor)}}}function matAttribSetter(e,t,r){const n=r.size;const o=r.count;return function(r){e.bindBuffer(Vr,r.buffer);const s=r.size||r.numComponents||n;const a=s/o;const c=r.type||Jr;const i=jn[c];const u=i.size*s;const f=r.normalize||false;const l=r.offset||0;const m=u/o;for(let n=0;n<o;++n){e.enableVertexAttribArray(t+n);e.vertexAttribPointer(t+n,a,c,f,u,l+m*n);void 0!==r.divisor&&e.vertexAttribDivisor(t+n,r.divisor)}}}const $n={};$n[Jr]={size:4,setter:floatAttribSetter};$n[en]={size:8,setter:floatAttribSetter};$n[tn]={size:12,setter:floatAttribSetter};$n[rn]={size:16,setter:floatAttribSetter};$n[nn]={size:4,setter:intAttribSetter};$n[on]={size:8,setter:intAttribSetter};$n[sn]={size:12,setter:intAttribSetter};$n[an]={size:16,setter:intAttribSetter};$n[vn]={size:4,setter:uintAttribSetter};$n[Bn]={size:8,setter:uintAttribSetter};$n[Cn]={size:12,setter:uintAttribSetter};$n[kn]={size:16,setter:uintAttribSetter};$n[cn]={size:4,setter:intAttribSetter};$n[un]={size:8,setter:intAttribSetter};$n[fn]={size:12,setter:intAttribSetter};$n[ln]={size:16,setter:intAttribSetter};$n[mn]={size:4,setter:matAttribSetter,count:2};$n[dn]={size:9,setter:matAttribSetter,count:3};$n[yn]={size:16,setter:matAttribSetter,count:4};const Xn=/ERROR:\\s*\\d+:(\\d+)/gi;function addLineNumbersWithError(e,t=\"\",r=0){const n=[...t.matchAll(Xn)];const o=new Map(n.map(((e,r)=>{const o=parseInt(e[1]);const s=n[r+1];const a=s?s.index:t.length;const c=t.substring(e.index,a);return[o-1,c]})));return e.split(\"\\n\").map(((e,t)=>{const n=o.get(t);return`${t+1+r}: ${e}${n?`\\n\\n^^^ ${n}`:\"\"}`})).join(\"\\n\")}\n/**\n * Error Callback\n * @callback ErrorCallback\n * @param {string} msg error message.\n * @param {number} [lineOffset] amount to add to line number\n * @memberOf module:twgl\n */\n/**\n * Program Callback\n * @callback ProgramCallback\n * @param {string} [err] error message, falsy if no error\n * @param {WebGLProgram|module:twgl.ProgramInfo} [result] the program or programInfo\n */const Yn=/^[ \\t]*\\n/;\n/**\n * Remove the first end of line because WebGL 2.0 requires\n * #version 300 es\n * as the first line. No whitespace allowed before that line\n * so\n *\n * <script>\n * #version 300 es\n * <\\/script>\n *\n * Has one line before it which is invalid according to GLSL ES 3.00\n *\n * @param {string} shaderSource The source of the shader\n * @returns {{shaderSource: string, lineOffset: number}}\n * @private\n */function prepShaderSource(e){let t=0;if(Yn.test(e)){t=1;e=e.replace(Yn,\"\")}return{lineOffset:t,shaderSource:e}}\n/**\n * @param {module:twgl.ProgramOptions} progOptions\n * @param {string} msg\n * @return null\n * @private\n */function reportError(e,t){e.errorCallback(t);e.callback&&setTimeout((()=>{e.callback(`${t}\\n${e.errors.join(\"\\n\")}`)}));return null}\n/**\n * Loads a shader.\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {string} shaderSource The shader source.\n * @param {number} shaderType The type of shader.\n * @param {module:twgl.ProgramOptions} progOptions\n * @return {WebGLShader} The created shader.\n * @private\n */function loadShader(e,t,r,n){const o=e.createShader(r);e.shaderSource(o,prepShaderSource(t).shaderSource);e.compileShader(o);if(!n.callback&&!checkShaderStatus(e,r,o,n.errorCallback)){e.deleteShader(o);return null}return o}\n/**\n * Check Shader status\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {number} shaderType The shader type\n * @param {WebGLShader} shader The shader\n * @param {ErrorCallback} [errFn] function to receive error message.\n * @return {bool} true if shader is ok.\n * @private\n */function checkShaderStatus(e,t,r,n){n=n||kr;const o=e.getShaderParameter(r,Lr);if(!o){const o=e.getShaderInfoLog(r);const{lineOffset:s,shaderSource:a}=prepShaderSource(e.getShaderSource(r));n(`${addLineNumbersWithError(a,o,s)}\\nError compiling ${be(e,t)}: ${o}`)}return o}\n/**\n * @typedef {Object} ProgramOptions\n * @property {function(string)} [errorCallback] callback for errors\n * @property {Object.<string,number>} [attribLocations] a attribute name to location map\n * @property {(module:twgl.BufferInfo|Object.<string,module:twgl.AttribInfo>|string[])} [transformFeedbackVaryings] If passed\n *   a BufferInfo will use the attribs names inside. If passed an object of AttribInfos will use the names from that object. Otherwise\n *   you can pass an array of names.\n * @property {number} [transformFeedbackMode] the mode to pass `gl.transformFeedbackVaryings`. Defaults to `SEPARATE_ATTRIBS`.\n * @property {ProgramCallback} [callback] callback for async program compilation.\n * @memberOf module:twgl\n */\n/**\n * Gets the program options based on all these optional arguments\n * @param {module:twgl.ProgramOptions|string[]} [opt_attribs] Options for the program or an array of attribs names. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {module:twgl.ProgramOptions} an instance of ProgramOptions based on the arguments passed in\n * @private\n */function getProgramOptions(e,t,r){let n;let o;let s;if(\"function\"===typeof t){r=t;t=void 0}if(\"function\"===typeof e){r=e;e=void 0}else if(e&&!Array.isArray(e)){if(e.errorCallback&&e.errors)return e;const t=e;r=t.errorCallback;e=t.attribLocations;n=t.transformFeedbackVaryings;o=t.transformFeedbackMode;s=t.callback}const a=r||kr;const c=[];const i={errorCallback(e,...t){c.push(e);a(e,...t)},transformFeedbackVaryings:n,transformFeedbackMode:o,callback:s,errors:c};if(e){let r={};Array.isArray(e)?e.forEach((function(e,n){r[e]=t?t[n]:n})):r=e;i.attribLocations=r}return i}const qn=[\"VERTEX_SHADER\",\"FRAGMENT_SHADER\"];function getShaderTypeFromScriptType(e,t){return t.indexOf(\"frag\")>=0?Gr:t.indexOf(\"vert\")>=0?Wr:void 0}function deleteShaders(e,t){t.forEach((function(t){e.deleteShader(t)}))}const wait=(e=0)=>new Promise((t=>setTimeout(t,e)))\n/**\n * Creates a program, attaches (and/or compiles) shaders, binds attrib locations, links the\n * program.\n *\n * NOTE: There are 4 signatures for this function\n *\n *     twgl.createProgram(gl, [vs, fs], options);\n *     twgl.createProgram(gl, [vs, fs], opt_errFunc);\n *     twgl.createProgram(gl, [vs, fs], opt_attribs, opt_errFunc);\n *     twgl.createProgram(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLShader[]|string[]} shaders The shaders to attach, or element ids for their source, or strings that contain their source\n * @param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations|module:twgl.ErrorCallback] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {WebGLProgram?} the created program or null if error of a callback was provided.\n * @memberOf module:twgl/programs\n */;function createProgram(e,t,r,n,o){const s=getProgramOptions(r,n,o);const a=[];const c=[];for(let r=0;r<t.length;++r){let n=t[r];if(\"string\"===typeof n){const t=getElementById(n);const o=t?t.text:n;let a=e[qn[r]];t&&t.type&&(a=getShaderTypeFromScriptType(e,t.type)||a);n=loadShader(e,o,a,s);c.push(n)}isShader(e,n)&&a.push(n)}if(a.length!==t.length){deleteShaders(e,c);return reportError(s,\"not enough shaders for program\")}const i=e.createProgram();a.forEach((function(t){e.attachShader(i,t)}));s.attribLocations&&Object.keys(s.attribLocations).forEach((function(t){e.bindAttribLocation(i,s.attribLocations[t],t)}));let u=s.transformFeedbackVaryings;if(u){u.attribs&&(u=u.attribs);Array.isArray(u)||(u=Object.keys(u));e.transformFeedbackVaryings(i,u,s.transformFeedbackMode||jr)}e.linkProgram(i);if(s.callback){checkForProgramLinkCompletionAsync(e,i,s);return null}if(!checkProgramStatus(e,i,s.errorCallback)){e.deleteProgram(i);deleteShaders(e,c);return null}return i}\n/**\n * Same as createProgram but returns a promise\n *\n * NOTE: There are 4 signatures for this function\n *\n *     twgl.createProgramAsync(gl, [vs, fs], options);\n *     twgl.createProgramAsync(gl, [vs, fs], opt_errFunc);\n *     twgl.createProgramAsync(gl, [vs, fs], opt_attribs, opt_errFunc);\n *     twgl.createProgramAsync(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLShader[]|string[]} shaders The shaders to attach, or element ids for their source, or strings that contain their source\n * @param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations|module:twgl.ErrorCallback] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {Promise<WebGLProgram>} The created program\n * @memberOf module:twgl/programs\n */function createProgramAsync(e,t,...r){return new Promise(((n,o)=>{const s=getProgramOptions(...r);s.callback=(e,t)=>{e?o(e):n(t)};createProgram(e,t,s)}))}\n/**\n * Same as createProgramInfo but returns a promise\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n *        to use.\n * @param {string[]} shaderSources Array of sources for the\n *        shaders or ids. The first is assumed to be the vertex shader,\n *        the second the fragment shader.\n * @param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations|module:twgl.ErrorCallback] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {Promise<module:twgl.ProgramInfo>} The created ProgramInfo\n * @memberOf module:twgl/programs\n */function createProgramInfoAsync(e,t,...r){return new Promise(((n,o)=>{const s=getProgramOptions(...r);s.callback=(e,t)=>{e?o(e):n(t)};createProgramInfo(e,t,s)}))}\n/**\n * Asynchronously wait for program to link.\n * Note: if 'KHR_parallel_shader_compile' extension does not\n * exist then compilation will not be truly async.\n * @param {WebGLRenderingContext} gl The context\n * @param {WebGLProgram} program The program\n * @param {module:twgl.ProgramOptions} progOptions Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @private\n */async function checkForProgramLinkCompletionAsync(e,t,r){const n=e.getExtension(\"KHR_parallel_shader_compile\");const o=n?(e,t)=>e.getProgramParameter(t,n.COMPLETION_STATUS_KHR):()=>true;let s=0;do{await wait(s);s=1e3/60}while(!o(e,t));const a=checkProgramStatus(e,t,r.errorCallback);const c=a?void 0:r.errors.join(\"\\n\");if(!a){const n=r.errorCallback||kr;n(c);e.deleteProgram(t);t=null}r.callback(c,t)}\n/**\n * Check a program's link status\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLProgram} program Program to check\n * @param {ErrorCallback} [errFn] func for errors\n * @return {bool} true if program is ok\n * @private\n */function checkProgramStatus(e,t,r){r=r||kr;const n=e.getProgramParameter(t,Nr);if(!n){const n=e.getProgramInfoLog(t);r(`Error in program linking: ${n}`)}return n}\n/**\n * Loads a shader from a script tag.\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {string} scriptId The id of the script tag.\n * @param {number} [opt_shaderType] The type of shader. If not passed in it will\n *     be derived from the type of the script tag.\n * @param {module:twgl.ProgramOptions} [progOptions] callback for errors.\n * @return {WebGLShader?} The created shader or null if error.\n * @private\n */function createShaderFromScript(e,t,r,n){let o=\"\";const s=getElementById(t);if(!s)return reportError(n,`unknown script element: ${t}`);o=s.text;const a=r||getShaderTypeFromScriptType(e,s.type);return a?loadShader(e,o,a,n):reportError(n,\"unknown shader type\")}\n/**\n * Creates a program from 2 script tags.\n *\n * NOTE: There are 4 signatures for this function\n *\n *     twgl.createProgramFromScripts(gl, [vs, fs], opt_options);\n *     twgl.createProgramFromScripts(gl, [vs, fs], opt_errFunc);\n *     twgl.createProgramFromScripts(gl, [vs, fs], opt_attribs, opt_errFunc);\n *     twgl.createProgramFromScripts(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n *        to use.\n * @param {string[]} shaderScriptIds Array of ids of the script\n *        tags for the shaders. The first is assumed to be the\n *        vertex shader, the second the fragment shader.\n * @param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations|module:twgl.ErrorCallback] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {WebGLProgram?} the created program or null if error or a callback was provided.\n * @memberOf module:twgl/programs\n */function createProgramFromScripts(e,t,r,n,o){const s=getProgramOptions(r,n,o);const a=[];for(let r=0;r<t.length;++r){const n=createShaderFromScript(e,t[r],e[qn[r]],s);if(!n)return null;a.push(n)}return createProgram(e,a,s)}\n/**\n * Creates a program from 2 sources.\n *\n * NOTE: There are 4 signatures for this function\n *\n *     twgl.createProgramFromSource(gl, [vs, fs], opt_options);\n *     twgl.createProgramFromSource(gl, [vs, fs], opt_errFunc);\n *     twgl.createProgramFromSource(gl, [vs, fs], opt_attribs, opt_errFunc);\n *     twgl.createProgramFromSource(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n *        to use.\n * @param {string[]} shaderSources Array of sources for the\n *        shaders. The first is assumed to be the vertex shader,\n *        the second the fragment shader.\n * @param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations|module:twgl.ErrorCallback] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {WebGLProgram?} the created program or null if error or a callback was provided.\n * @memberOf module:twgl/programs\n */function createProgramFromSources(e,t,r,n,o){const s=getProgramOptions(r,n,o);const a=[];for(let r=0;r<t.length;++r){const n=loadShader(e,t[r],e[qn[r]],s);if(!s.callback&&!n)return null;a.push(n)}return createProgram(e,a,s)}\n/**\n * Returns true if attribute/uniform is a reserved/built in\n *\n * It makes no sense to me why GL returns these because it's\n * illegal to call `gl.getUniformLocation` and `gl.getAttribLocation`\n * with names that start with `gl_` (and `webgl_` in WebGL)\n *\n * I can only assume they are there because they might count\n * when computing the number of uniforms/attributes used when you want to\n * know if you are near the limit. That doesn't really make sense\n * to me but the fact that these get returned are in the spec.\n *\n * @param {WebGLActiveInfo} info As returned from `gl.getActiveUniform` or\n *    `gl.getActiveAttrib`.\n * @return {bool} true if it's reserved\n * @private\n */function isBuiltIn(e){const t=e.name;return t.startsWith(\"gl_\")||t.startsWith(\"webgl_\")}const Hn=/(\\.|\\[|]|\\w+)/g;const isDigit=e=>e>=\"0\"&&e<=\"9\";function addSetterToUniformTree(e,t,r,n){const o=e.split(Hn).filter((e=>\"\"!==e));let s=0;let a=\"\";for(;;){const e=o[s++];a+=e;const c=isDigit(e[0]);const i=c?parseInt(e):e;c&&(a+=o[s++]);const u=s===o.length;if(u){r[i]=t;break}{const e=o[s++];const t=\"[\"===e;const c=r[i]||(t?[]:{});r[i]=c;r=c;n[a]=n[a]||function(e){return function(t){setUniformTree(e,t)}}(c);a+=e}}}\n/**\n * Creates setter functions for all uniforms of a shader\n * program.\n *\n * @see {@link module:twgl.setUniforms}\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLProgram} program the program to create setters for.\n * @returns {Object.<string, function>} an object with a setter by name for each uniform\n * @memberOf module:twgl/programs\n */function createUniformSetters(e,t){let r=0;\n/**\n   * Creates a setter for a uniform of the given program with it's\n   * location embedded in the setter.\n   * @param {WebGLProgram} program\n   * @param {WebGLUniformInfo} uniformInfo\n   * @returns {function} the created setter.\n   */function createUniformSetter(t,n,o){const s=n.name.endsWith(\"[0]\");const a=n.type;const c=jn[a];if(!c)throw new Error(`unknown type: 0x${a.toString(16)}`);let i;if(c.bindPoint){const t=r;r+=n.size;i=s?c.arraySetter(e,a,t,o,n.size):c.setter(e,a,t,o,n.size)}else i=c.arraySetter&&s?c.arraySetter(e,o):c.setter(e,o);i.location=o;return i}const n={};const o={};const s=e.getProgramParameter(t,$r);for(let r=0;r<s;++r){const s=e.getActiveUniform(t,r);if(isBuiltIn(s))continue;let a=s.name;a.endsWith(\"[0]\")&&(a=a.substr(0,a.length-3));const c=e.getUniformLocation(t,s.name);if(c){const e=createUniformSetter(t,s,c);n[a]=e;addSetterToUniformTree(a,e,o,n)}}return n}\n/**\n * @typedef {Object} TransformFeedbackInfo\n * @property {number} index index of transform feedback\n * @property {number} type GL type\n * @property {number} size 1 - 4\n * @memberOf module:twgl\n */\n/**\n * Create TransformFeedbackInfo for passing to bindTransformFeedbackInfo.\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLProgram} program an existing WebGLProgram.\n * @return {Object<string, module:twgl.TransformFeedbackInfo>}\n * @memberOf module:twgl\n */function createTransformFeedbackInfo(e,t){const r={};const n=e.getProgramParameter(t,Yr);for(let o=0;o<n;++o){const n=e.getTransformFeedbackVarying(t,o);r[n.name]={index:o,type:n.type,size:n.size}}return r}\n/**\n * Binds buffers for transform feedback.\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {(module:twgl.ProgramInfo|Object<string, module:twgl.TransformFeedbackInfo>)} transformFeedbackInfo A ProgramInfo or TransformFeedbackInfo.\n * @param {(module:twgl.BufferInfo|Object<string, module:twgl.AttribInfo>)} [bufferInfo] A BufferInfo or set of AttribInfos.\n * @memberOf module:twgl\n */function bindTransformFeedbackInfo(e,t,r){t.transformFeedbackInfo&&(t=t.transformFeedbackInfo);r.attribs&&(r=r.attribs);for(const n in r){const o=t[n];if(o){const t=r[n];t.offset?e.bindBufferRange(Or,o.index,t.buffer,t.offset,t.size):e.bindBufferBase(Or,o.index,t.buffer)}}}\n/**\n * Creates a transform feedback and sets the buffers\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {module:twgl.ProgramInfo} programInfo A ProgramInfo as returned from {@link module:twgl.createProgramInfo}\n * @param {(module:twgl.BufferInfo|Object<string, module:twgl.AttribInfo>)} [bufferInfo] A BufferInfo or set of AttribInfos.\n * @return {WebGLTransformFeedback} the created transform feedback\n * @memberOf module:twgl\n */function createTransformFeedback(e,t,r){const n=e.createTransformFeedback();e.bindTransformFeedback(Dr,n);e.useProgram(t.program);bindTransformFeedbackInfo(e,t,r);e.bindTransformFeedback(Dr,null);return n}\n/**\n * @typedef {Object} UniformData\n * @property {string} name The name of the uniform\n * @property {number} type The WebGL type enum for this uniform\n * @property {number} size The number of elements for this uniform\n * @property {number} blockNdx The block index this uniform appears in\n * @property {number} offset The byte offset in the block for this uniform's value\n * @memberOf module:twgl\n */\n/**\n * The specification for one UniformBlockObject\n *\n * @typedef {Object} BlockSpec\n * @property {number} index The index of the block.\n * @property {number} size The size in bytes needed for the block\n * @property {number[]} uniformIndices The indices of the uniforms used by the block. These indices\n *    correspond to entries in a UniformData array in the {@link module:twgl.UniformBlockSpec}.\n * @property {bool} usedByVertexShader Self explanatory\n * @property {bool} usedByFragmentShader Self explanatory\n * @property {bool} used Self explanatory\n * @memberOf module:twgl\n */\n/**\n * A `UniformBlockSpec` represents the data needed to create and bind\n * UniformBlockObjects for a given program\n *\n * @typedef {Object} UniformBlockSpec\n * @property {Object.<string, module:twgl.BlockSpec>} blockSpecs The BlockSpec for each block by block name\n * @property {UniformData[]} uniformData An array of data for each uniform by uniform index.\n * @memberOf module:twgl\n */\n/**\n * Creates a UniformBlockSpec for the given program.\n *\n * A UniformBlockSpec represents the data needed to create and bind\n * UniformBlockObjects\n *\n * @param {WebGL2RenderingContext} gl A WebGL2 Rendering Context\n * @param {WebGLProgram} program A WebGLProgram for a successfully linked program\n * @return {module:twgl.UniformBlockSpec} The created UniformBlockSpec\n * @memberOf module:twgl/programs\n */function createUniformBlockSpecFromProgram(e,t){const r=e.getProgramParameter(t,$r);const n=[];const o=[];for(let s=0;s<r;++s){o.push(s);n.push({});const r=e.getActiveUniform(t,s);n[s].name=r.name}[[\"UNIFORM_TYPE\",\"type\"],[\"UNIFORM_SIZE\",\"size\"],[\"UNIFORM_BLOCK_INDEX\",\"blockNdx\"],[\"UNIFORM_OFFSET\",\"offset\"]].forEach((function(r){const s=r[0];const a=r[1];e.getActiveUniforms(t,o,e[s]).forEach((function(e,t){n[t][a]=e}))}));const s={};const a=e.getProgramParameter(t,qr);for(let r=0;r<a;++r){const n=e.getActiveUniformBlockName(t,r);const o={index:e.getUniformBlockIndex(t,n),usedByVertexShader:e.getActiveUniformBlockParameter(t,r,Hr),usedByFragmentShader:e.getActiveUniformBlockParameter(t,r,Qr),size:e.getActiveUniformBlockParameter(t,r,Zr),uniformIndices:e.getActiveUniformBlockParameter(t,r,Kr)};o.used=o.usedByVertexShader||o.usedByFragmentShader;s[n]=o}return{blockSpecs:s,uniformData:n}}const Qn=/\\[\\d+\\]\\.$/;const pad=(e,t)=>((e+(t-1))/t|0)*t;function createUniformBlockUniformSetter(e,t,r,n){if(t||r){n=n||1;const t=e.length;const r=t/4;return function(t){let o=0;let s=0;for(let a=0;a<r;++a){for(let r=0;r<n;++r)e[o++]=t[s++];o+=4-n}}}return function(t){t.length?e.set(t):e[0]=t}}\n/**\n * Represents a UniformBlockObject including an ArrayBuffer with all the uniform values\n * and a corresponding WebGLBuffer to hold those values on the GPU\n *\n * @typedef {Object} UniformBlockInfo\n * @property {string} name The name of the block\n * @property {ArrayBuffer} array The array buffer that contains the uniform values\n * @property {Float32Array} asFloat A float view on the array buffer. This is useful\n *    inspecting the contents of the buffer in the debugger.\n * @property {WebGLBuffer} buffer A WebGL buffer that will hold a copy of the uniform values for rendering.\n * @property {number} [offset] offset into buffer\n * @property {Object<string, ArrayBufferView>} uniforms A uniform name to ArrayBufferView map.\n *   each Uniform has a correctly typed `ArrayBufferView` into array at the correct offset\n *   and length of that uniform. So for example a float uniform would have a 1 float `Float32Array`\n *   view. A single mat4 would have a 16 element `Float32Array` view. An ivec2 would have an\n *   `Int32Array` view, etc.\n * @property {Object<string, function>} setters A setter for this uniform.\n *   The reason to use setters is elements of arrays are padded to vec4 sizes which\n *   means if you want to set an array of 4 floats you'd need to set 16 values\n *   (or set elements 0, 4, 8, 12). In other words\n *   `someBlockInfo.uniforms.some4FloatArrayUniform.set([0, , , , 1, , , , 2, , , , 3])`\n *   where as the setter handles just passing in [0, 1, 2, 3] either directly as in\n *   `someBlockInfo.setter.some4FloatArrayUniform.set([0, 1, 2, 3])` (not recommended)\n *   or via {@link module:twgl.setBlockUniforms}\n * @memberOf module:twgl\n */\n/**\n * Creates a `UniformBlockInfo` for the specified block\n *\n * Note: **If the blockName matches no existing blocks a warning is printed to the console and a dummy\n * `UniformBlockInfo` is returned**. This is because when debugging GLSL\n * it is common to comment out large portions of a shader or for example set\n * the final output to a constant. When that happens blocks get optimized out.\n * If this function did not create dummy blocks your code would crash when debugging.\n *\n * @param {WebGL2RenderingContext} gl A WebGL2RenderingContext\n * @param {WebGLProgram} program A WebGLProgram\n * @param {module:twgl.UniformBlockSpec} uniformBlockSpec. A UniformBlockSpec as returned\n *     from {@link module:twgl.createUniformBlockSpecFromProgram}.\n * @param {string} blockName The name of the block.\n * @return {module:twgl.UniformBlockInfo} The created UniformBlockInfo\n * @memberOf module:twgl/programs\n */function createUniformBlockInfoFromProgram(e,t,r,n){const o=r.blockSpecs;const s=r.uniformData;const a=o[n];if(!a){_r(\"no uniform block object named:\",n);return{name:n,uniforms:{}}}const c=new ArrayBuffer(a.size);const i=e.createBuffer();const u=a.index;e.bindBuffer(Rr,i);e.uniformBlockBinding(t,a.index,u);let f=n+\".\";Qn.test(f)&&(f=f.replace(Qn,\".\"));const l={};const m={};const d={};a.uniformIndices.forEach((function(e){const t=s[e];let r=t.name;r.startsWith(f)&&(r=r.substr(f.length));const n=r.endsWith(\"[0]\");n&&(r=r.substr(0,r.length-3));const o=jn[t.type];const a=o.Type;const i=n?pad(o.size,16)*t.size:o.size*t.size;const u=new a(c,t.offset,i/a.BYTES_PER_ELEMENT);l[r]=u;const y=createUniformBlockUniformSetter(u,n,o.rows,o.cols);m[r]=y;addSetterToUniformTree(r,y,d,m)}));return{name:n,array:c,asFloat:new Float32Array(c),buffer:i,uniforms:l,setters:m}}\n/**\n * Creates a `UniformBlockInfo` for the specified block\n *\n * Note: **If the blockName matches no existing blocks a warning is printed to the console and a dummy\n * `UniformBlockInfo` is returned**. This is because when debugging GLSL\n * it is common to comment out large portions of a shader or for example set\n * the final output to a constant. When that happens blocks get optimized out.\n * If this function did not create dummy blocks your code would crash when debugging.\n *\n * @param {WebGL2RenderingContext} gl A WebGL2RenderingContext\n * @param {module:twgl.ProgramInfo} programInfo a `ProgramInfo`\n *     as returned from {@link module:twgl.createProgramInfo}\n * @param {string} blockName The name of the block.\n * @return {module:twgl.UniformBlockInfo} The created UniformBlockInfo\n * @memberOf module:twgl/programs\n */function createUniformBlockInfo(e,t,r){return createUniformBlockInfoFromProgram(e,t.program,t.uniformBlockSpec,r)}\n/**\n * Binds a uniform block to the matching uniform block point.\n * Matches by blocks by name so blocks must have the same name not just the same\n * structure.\n *\n * If you have changed any values and you upload the values into the corresponding WebGLBuffer\n * call {@link module:twgl.setUniformBlock} instead.\n *\n * @param {WebGL2RenderingContext} gl A WebGL 2 rendering context.\n * @param {(module:twgl.ProgramInfo|module:twgl.UniformBlockSpec)} programInfo a `ProgramInfo`\n *     as returned from {@link module:twgl.createProgramInfo} or or `UniformBlockSpec` as\n *     returned from {@link module:twgl.createUniformBlockSpecFromProgram}.\n * @param {module:twgl.UniformBlockInfo} uniformBlockInfo a `UniformBlockInfo` as returned from\n *     {@link module:twgl.createUniformBlockInfo}.\n * @return {bool} true if buffer was bound. If the programInfo has no block with the same block name\n *     no buffer is bound.\n * @memberOf module:twgl/programs\n */function bindUniformBlock(e,t,r){const n=t.uniformBlockSpec||t;const o=n.blockSpecs[r.name];if(o){const t=o.index;e.bindBufferRange(Rr,t,r.buffer,r.offset||0,r.array.byteLength);return true}return false}\n/**\n * Uploads the current uniform values to the corresponding WebGLBuffer\n * and binds that buffer to the program's corresponding bind point for the uniform block object.\n *\n * If you haven't changed any values and you only need to bind the uniform block object\n * call {@link module:twgl.bindUniformBlock} instead.\n *\n * @param {WebGL2RenderingContext} gl A WebGL 2 rendering context.\n * @param {(module:twgl.ProgramInfo|module:twgl.UniformBlockSpec)} programInfo a `ProgramInfo`\n *     as returned from {@link module:twgl.createProgramInfo} or or `UniformBlockSpec` as\n *     returned from {@link module:twgl.createUniformBlockSpecFromProgram}.\n * @param {module:twgl.UniformBlockInfo} uniformBlockInfo a `UniformBlockInfo` as returned from\n *     {@link module:twgl.createUniformBlockInfo}.\n * @memberOf module:twgl/programs\n */function setUniformBlock(e,t,r){bindUniformBlock(e,t,r)&&e.bufferData(Rr,r.array,Ur)}\n/**\n * Sets values of a uniform block object\n *\n * @param {module:twgl.UniformBlockInfo} uniformBlockInfo A UniformBlockInfo as returned by {@link module:twgl.createUniformBlockInfo}.\n * @param {Object.<string, ?>} values A uniform name to value map where the value is correct for the given\n *    type of uniform. So for example given a block like\n *\n *       uniform SomeBlock {\n *         float someFloat;\n *         vec2 someVec2;\n *         vec3 someVec3Array[2];\n *         int someInt;\n *       }\n *\n *  You can set the values of the uniform block with\n *\n *       twgl.setBlockUniforms(someBlockInfo, {\n *          someFloat: 12.3,\n *          someVec2: [1, 2],\n *          someVec3Array: [1, 2, 3, 4, 5, 6],\n *          someInt: 5,\n *       }\n *\n *  Arrays can be JavaScript arrays or typed arrays\n *\n *  You can also fill out structure and array values either via\n *  shortcut. Example\n *\n *     // -- in shader --\n *     struct Light {\n *       float intensity;\n *       vec4 color;\n *       float nearFar[2];\n *     };\n *     uniform Lights {\n *       Light lights[2];\n *     };\n *\n *     // in JavaScript\n *\n *     twgl.setBlockUniforms(someBlockInfo, {\n *       lights: [\n *         { intensity: 5.0, color: [1, 0, 0, 1], nearFar[0.1, 10] },\n *         { intensity: 2.0, color: [0, 0, 1, 1], nearFar[0.2, 15] },\n *       ],\n *     });\n *\n *   or the more traditional way\n *\n *     twgl.setBlockUniforms(someBlockInfo, {\n *       \"lights[0].intensity\": 5.0,\n *       \"lights[0].color\": [1, 0, 0, 1],\n *       \"lights[0].nearFar\": [0.1, 10],\n *       \"lights[1].intensity\": 2.0,\n *       \"lights[1].color\": [0, 0, 1, 1],\n *       \"lights[1].nearFar\": [0.2, 15],\n *     });\n *\n *   You can also specify partial paths\n *\n *     twgl.setBlockUniforms(someBlockInfo, {\n *       'lights[1]': { intensity: 5.0, color: [1, 0, 0, 1], nearFar[0.2, 15] },\n *     });\n *\n *   But you can not specify leaf array indices.\n *\n *     twgl.setBlockUniforms(someBlockInfo, {\n *       'lights[1].nearFar[1]': 15,     // BAD! nearFar is a leaf\n *       'lights[1].nearFar': [0.2, 15], // GOOD\n *     });\n *\n *  **IMPORTANT!**, packing in a UniformBlock is unintuitive.\n *  For example the actual layout of `someVec3Array` above in memory\n *  is `1, 2, 3, unused, 4, 5, 6, unused`. twgl takes in 6 values\n *  as shown about and copies them, skipping the padding. This might\n *  be confusing if you're already familiar with Uniform blocks.\n *\n *  If you want to deal with the padding yourself you can access the array\n *  buffer views directly. eg:\n *\n *      someBlockInfo.someVec3Array.set([1, 2, 3, 0, 4, 5, 6, 0]);\n *\n *  Any name that doesn't match will be ignored\n * @memberOf module:twgl/programs\n */function setBlockUniforms(e,t){const r=e.setters;for(const e in t){const n=r[e];if(n){const r=t[e];n(r)}}}function setUniformTree(e,t){for(const r in t){const n=e[r];\"function\"===typeof n?n(t[r]):setUniformTree(e[r],t[r])}}\n/**\n * Set uniforms and binds related textures.\n *\n * example:\n *\n *     const programInfo = createProgramInfo(\n *         gl, [\"some-vs\", \"some-fs\"]);\n *\n *     const tex1 = gl.createTexture();\n *     const tex2 = gl.createTexture();\n *\n *     ... assume we setup the textures with data ...\n *\n *     const uniforms = {\n *       u_someSampler: tex1,\n *       u_someOtherSampler: tex2,\n *       u_someColor: [1,0,0,1],\n *       u_somePosition: [0,1,1],\n *       u_someMatrix: [\n *         1,0,0,0,\n *         0,1,0,0,\n *         0,0,1,0,\n *         0,0,0,0,\n *       ],\n *     };\n *\n *     gl.useProgram(program);\n *\n * This will automatically bind the textures AND set the\n * uniforms.\n *\n *     twgl.setUniforms(programInfo, uniforms);\n *\n * For the example above it is equivalent to\n *\n *     var texUnit = 0;\n *     gl.activeTexture(gl.TEXTURE0 + texUnit);\n *     gl.bindTexture(gl.TEXTURE_2D, tex1);\n *     gl.uniform1i(u_someSamplerLocation, texUnit++);\n *     gl.activeTexture(gl.TEXTURE0 + texUnit);\n *     gl.bindTexture(gl.TEXTURE_2D, tex2);\n *     gl.uniform1i(u_someSamplerLocation, texUnit++);\n *     gl.uniform4fv(u_someColorLocation, [1, 0, 0, 1]);\n *     gl.uniform3fv(u_somePositionLocation, [0, 1, 1]);\n *     gl.uniformMatrix4fv(u_someMatrix, false, [\n *         1,0,0,0,\n *         0,1,0,0,\n *         0,0,1,0,\n *         0,0,0,0,\n *       ]);\n *\n * Note it is perfectly reasonable to call `setUniforms` multiple times. For example\n *\n *     const uniforms = {\n *       u_someSampler: tex1,\n *       u_someOtherSampler: tex2,\n *     };\n *\n *     const moreUniforms {\n *       u_someColor: [1,0,0,1],\n *       u_somePosition: [0,1,1],\n *       u_someMatrix: [\n *         1,0,0,0,\n *         0,1,0,0,\n *         0,0,1,0,\n *         0,0,0,0,\n *       ],\n *     };\n *\n *     twgl.setUniforms(programInfo, uniforms);\n *     twgl.setUniforms(programInfo, moreUniforms);\n *\n * You can also add WebGLSamplers to uniform samplers as in\n *\n *     const uniforms = {\n *       u_someSampler: {\n *         texture: someWebGLTexture,\n *         sampler: someWebGLSampler,\n *       },\n *     };\n *\n * In which case both the sampler and texture will be bound to the\n * same unit.\n *\n * @param {(module:twgl.ProgramInfo|Object.<string, function>)} setters a `ProgramInfo` as returned from `createProgramInfo` or the setters returned from\n *        `createUniformSetters`.\n * @param {Object.<string, ?>} values an object with values for the\n *        uniforms.\n *   You can pass multiple objects by putting them in an array or by calling with more arguments.For example\n *\n *     const sharedUniforms = {\n *       u_fogNear: 10,\n *       u_projection: ...\n *       ...\n *     };\n *\n *     const localUniforms = {\n *       u_world: ...\n *       u_diffuseColor: ...\n *     };\n *\n *     twgl.setUniforms(programInfo, sharedUniforms, localUniforms);\n *\n *     // is the same as\n *\n *     twgl.setUniforms(programInfo, [sharedUniforms, localUniforms]);\n *\n *     // is the same as\n *\n *     twgl.setUniforms(programInfo, sharedUniforms);\n *     twgl.setUniforms(programInfo, localUniforms};\n *\n *   You can also fill out structure and array values either via\n *   shortcut. Example\n *\n *     // -- in shader --\n *     struct Light {\n *       float intensity;\n *       vec4 color;\n *       float nearFar[2];\n *     };\n *     uniform Light lights[2];\n *\n *     // in JavaScript\n *\n *     twgl.setUniforms(programInfo, {\n *       lights: [\n *         { intensity: 5.0, color: [1, 0, 0, 1], nearFar[0.1, 10] },\n *         { intensity: 2.0, color: [0, 0, 1, 1], nearFar[0.2, 15] },\n *       ],\n *     });\n *\n *   or the more traditional way\n *\n *     twgl.setUniforms(programInfo, {\n *       \"lights[0].intensity\": 5.0,\n *       \"lights[0].color\": [1, 0, 0, 1],\n *       \"lights[0].nearFar\": [0.1, 10],\n *       \"lights[1].intensity\": 2.0,\n *       \"lights[1].color\": [0, 0, 1, 1],\n *       \"lights[1].nearFar\": [0.2, 15],\n *     });\n *\n *   You can also specify partial paths\n *\n *     twgl.setUniforms(programInfo, {\n *       'lights[1]': { intensity: 5.0, color: [1, 0, 0, 1], nearFar[0.2, 15] },\n *     });\n *\n *   But you can not specify leaf array indices\n *\n *     twgl.setUniforms(programInfo, {\n *       'lights[1].nearFar[1]': 15,     // BAD! nearFar is a leaf\n *       'lights[1].nearFar': [0.2, 15], // GOOD\n *     });\n *\n * @memberOf module:twgl/programs\n */function setUniforms(e,...t){const r=e.uniformSetters||e;const n=t.length;for(let e=0;e<n;++e){const n=t[e];if(Array.isArray(n)){const e=n.length;for(let t=0;t<e;++t)setUniforms(r,n[t])}else for(const e in n){const t=r[e];t&&t(n[e])}}}\n/**\n * Alias for `setUniforms`\n * @function\n * @param {(module:twgl.ProgramInfo|Object.<string, function>)} setters a `ProgramInfo` as returned from `createProgramInfo` or the setters returned from\n *        `createUniformSetters`.\n * @param {Object.<string, ?>} values an object with values for the\n * @memberOf module:twgl/programs\n */const Zn=setUniforms;\n/**\n * Creates setter functions for all attributes of a shader\n * program. You can pass this to {@link module:twgl.setBuffersAndAttributes} to set all your buffers and attributes.\n *\n * @see {@link module:twgl.setAttributes} for example\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {WebGLProgram} program the program to create setters for.\n * @return {Object.<string, function>} an object with a setter for each attribute by name.\n * @memberOf module:twgl/programs\n */function createAttributeSetters(e,t){const r={};const n=e.getProgramParameter(t,Xr);for(let o=0;o<n;++o){const n=e.getActiveAttrib(t,o);if(isBuiltIn(n))continue;const s=e.getAttribLocation(t,n.name);const a=$n[n.type];const c=a.setter(e,s,a);c.location=s;r[n.name]=c}return r}\n/**\n * Sets attributes and binds buffers (deprecated... use {@link module:twgl.setBuffersAndAttributes})\n *\n * Example:\n *\n *     const program = createProgramFromScripts(\n *         gl, [\"some-vs\", \"some-fs\");\n *\n *     const attribSetters = createAttributeSetters(program);\n *\n *     const positionBuffer = gl.createBuffer();\n *     const texcoordBuffer = gl.createBuffer();\n *\n *     const attribs = {\n *       a_position: {buffer: positionBuffer, numComponents: 3},\n *       a_texcoord: {buffer: texcoordBuffer, numComponents: 2},\n *     };\n *\n *     gl.useProgram(program);\n *\n * This will automatically bind the buffers AND set the\n * attributes.\n *\n *     setAttributes(attribSetters, attribs);\n *\n * Properties of attribs. For each attrib you can add\n * properties:\n *\n * *   type: the type of data in the buffer. Default = gl.FLOAT\n * *   normalize: whether or not to normalize the data. Default = false\n * *   stride: the stride. Default = 0\n * *   offset: offset into the buffer. Default = 0\n * *   divisor: the divisor for instances. Default = undefined\n *\n * For example if you had 3 value float positions, 2 value\n * float texcoord and 4 value uint8 colors you'd setup your\n * attribs like this\n *\n *     const attribs = {\n *       a_position: {buffer: positionBuffer, numComponents: 3},\n *       a_texcoord: {buffer: texcoordBuffer, numComponents: 2},\n *       a_color: {\n *         buffer: colorBuffer,\n *         numComponents: 4,\n *         type: gl.UNSIGNED_BYTE,\n *         normalize: true,\n *       },\n *     };\n *\n * @param {Object.<string, function>} setters Attribute setters as returned from createAttributeSetters\n * @param {Object.<string, module:twgl.AttribInfo>} buffers AttribInfos mapped by attribute name.\n * @memberOf module:twgl/programs\n * @deprecated use {@link module:twgl.setBuffersAndAttributes}\n * @private\n */function setAttributes(e,t){for(const r in t){const n=e[r];n&&n(t[r])}}\n/**\n * Sets attributes and buffers including the `ELEMENT_ARRAY_BUFFER` if appropriate\n *\n * Example:\n *\n *     const programInfo = createProgramInfo(\n *         gl, [\"some-vs\", \"some-fs\");\n *\n *     const arrays = {\n *       position: { numComponents: 3, data: [0, 0, 0, 10, 0, 0, 0, 10, 0, 10, 10, 0], },\n *       texcoord: { numComponents: 2, data: [0, 0, 0, 1, 1, 0, 1, 1],                 },\n *     };\n *\n *     const bufferInfo = createBufferInfoFromArrays(gl, arrays);\n *\n *     gl.useProgram(programInfo.program);\n *\n * This will automatically bind the buffers AND set the\n * attributes.\n *\n *     setBuffersAndAttributes(gl, programInfo, bufferInfo);\n *\n * For the example above it is equivalent to\n *\n *     gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n *     gl.enableVertexAttribArray(a_positionLocation);\n *     gl.vertexAttribPointer(a_positionLocation, 3, gl.FLOAT, false, 0, 0);\n *     gl.bindBuffer(gl.ARRAY_BUFFER, texcoordBuffer);\n *     gl.enableVertexAttribArray(a_texcoordLocation);\n *     gl.vertexAttribPointer(a_texcoordLocation, 4, gl.FLOAT, false, 0, 0);\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext.\n * @param {(module:twgl.ProgramInfo|Object.<string, function>)} setters A `ProgramInfo` as returned from {@link module:twgl.createProgramInfo} or Attribute setters as returned from {@link module:twgl.createAttributeSetters}\n * @param {(module:twgl.BufferInfo|module:twgl.VertexArrayInfo)} buffers a `BufferInfo` as returned from {@link module:twgl.createBufferInfoFromArrays}.\n *   or a `VertexArrayInfo` as returned from {@link module:twgl.createVertexArrayInfo}\n * @memberOf module:twgl/programs\n */function setBuffersAndAttributes(e,t,r){if(r.vertexArrayObject)e.bindVertexArray(r.vertexArrayObject);else{setAttributes(t.attribSetters||t,r.attribs);r.indices&&e.bindBuffer(Mr,r.indices)}}\n/**\n * @typedef {Object} ProgramInfo\n * @property {WebGLProgram} program A shader program\n * @property {Object<string, function>} uniformSetters object of setters as returned from createUniformSetters,\n * @property {Object<string, function>} attribSetters object of setters as returned from createAttribSetters,\n * @property {module:twgl.UniformBlockSpec} [uniformBlockSpec] a uniform block spec for making UniformBlockInfos with createUniformBlockInfo etc..\n * @property {Object<string, module:twgl.TransformFeedbackInfo>} [transformFeedbackInfo] info for transform feedbacks\n * @memberOf module:twgl\n */\n/**\n * Creates a ProgramInfo from an existing program.\n *\n * A ProgramInfo contains\n *\n *     programInfo = {\n *        program: WebGLProgram,\n *        uniformSetters: object of setters as returned from createUniformSetters,\n *        attribSetters: object of setters as returned from createAttribSetters,\n *     }\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n *        to use.\n * @param {WebGLProgram} program an existing WebGLProgram.\n * @return {module:twgl.ProgramInfo} The created ProgramInfo.\n * @memberOf module:twgl/programs\n */function createProgramInfoFromProgram(e,t){const r=createUniformSetters(e,t);const n=createAttributeSetters(e,t);const o={program:t,uniformSetters:r,attribSetters:n};if(isWebGL2(e)){o.uniformBlockSpec=createUniformBlockSpecFromProgram(e,t);o.transformFeedbackInfo=createTransformFeedbackInfo(e,t)}return o}const Kn=/\\s|{|}|;/;\n/**\n * Creates a ProgramInfo from 2 sources.\n *\n * A ProgramInfo contains\n *\n *     programInfo = {\n *        program: WebGLProgram,\n *        uniformSetters: object of setters as returned from createUniformSetters,\n *        attribSetters: object of setters as returned from createAttribSetters,\n *     }\n *\n * NOTE: There are 4 signatures for this function\n *\n *     twgl.createProgramInfo(gl, [vs, fs], options);\n *     twgl.createProgramInfo(gl, [vs, fs], opt_errFunc);\n *     twgl.createProgramInfo(gl, [vs, fs], opt_attribs, opt_errFunc);\n *     twgl.createProgramInfo(gl, [vs, fs], opt_attribs, opt_locations, opt_errFunc);\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n *        to use.\n * @param {string[]} shaderSources Array of sources for the\n *        shaders or ids. The first is assumed to be the vertex shader,\n *        the second the fragment shader.\n * @param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in\n * @param {number[]} [opt_locations|module:twgl.ErrorCallback] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.\n * @param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors. By default it just prints an error to the console\n *        on error. If you want something else pass an callback. It's passed an error message.\n * @return {module:twgl.ProgramInfo?} The created ProgramInfo or null if it failed to link or compile\n * @memberOf module:twgl/programs\n */function createProgramInfo(e,t,r,n,o){const s=getProgramOptions(r,n,o);const a=[];t=t.map((function(e){if(!Kn.test(e)){const t=getElementById(e);if(t)e=t.text;else{const t=`no element with id: ${e}`;s.errorCallback(t);a.push(t)}}return e}));if(a.length)return reportError(s,\"\");const c=s.callback;c&&(s.callback=(t,r)=>{let n;t||(n=createProgramInfoFromProgram(e,r));c(t,n)});const i=createProgramFromSources(e,t,s);return i?createProgramInfoFromProgram(e,i):null}var Jn=Object.freeze({__proto__:null,createAttributeSetters:createAttributeSetters,createProgram:createProgram,createProgramAsync:createProgramAsync,createProgramFromScripts:createProgramFromScripts,createProgramFromSources:createProgramFromSources,createProgramInfo:createProgramInfo,createProgramInfoAsync:createProgramInfoAsync,createProgramInfoFromProgram:createProgramInfoFromProgram,createUniformSetters:createUniformSetters,createUniformBlockSpecFromProgram:createUniformBlockSpecFromProgram,createUniformBlockInfoFromProgram:createUniformBlockInfoFromProgram,createUniformBlockInfo:createUniformBlockInfo,createTransformFeedback:createTransformFeedback,createTransformFeedbackInfo:createTransformFeedbackInfo,bindTransformFeedbackInfo:bindTransformFeedbackInfo,setAttributes:setAttributes,setBuffersAndAttributes:setBuffersAndAttributes,setUniforms:setUniforms,setUniformsAndBindTextures:Zn,setUniformBlock:setUniformBlock,setBlockUniforms:setBlockUniforms,bindUniformBlock:bindUniformBlock});const eo=4;const to=5123;\n/**\n * Calls `gl.drawElements` or `gl.drawArrays`, whichever is appropriate\n *\n * normally you'd call `gl.drawElements` or `gl.drawArrays` yourself\n * but calling this means if you switch from indexed data to non-indexed\n * data you don't have to remember to update your draw call.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {(module:twgl.BufferInfo|module:twgl.VertexArrayInfo)} bufferInfo A BufferInfo as returned from {@link module:twgl.createBufferInfoFromArrays} or\n *   a VertexArrayInfo as returned from {@link module:twgl.createVertexArrayInfo}\n * @param {number} [type] eg (gl.TRIANGLES, gl.LINES, gl.POINTS, gl.TRIANGLE_STRIP, ...). Defaults to `gl.TRIANGLES`\n * @param {number} [count] An optional count. Defaults to bufferInfo.numElements\n * @param {number} [offset] An optional offset. Defaults to 0.\n * @param {number} [instanceCount] An optional instanceCount. if set then `drawArraysInstanced` or `drawElementsInstanced` will be called\n * @memberOf module:twgl/draw\n */function drawBufferInfo(e,t,r,n,o,s){r=void 0===r?eo:r;const a=t.indices;const c=t.elementType;const i=void 0===n?t.numElements:n;o=void 0===o?0:o;c||a?void 0!==s?e.drawElementsInstanced(r,i,void 0===c?to:t.elementType,o,s):e.drawElements(r,i,void 0===c?to:t.elementType,o):void 0!==s?e.drawArraysInstanced(r,o,i,s):e.drawArrays(r,o,i)}\n/**\n * A DrawObject is useful for putting objects in to an array and passing them to {@link module:twgl.drawObjectList}.\n *\n * You need either a `BufferInfo` or a `VertexArrayInfo`.\n *\n * @typedef {Object} DrawObject\n * @property {boolean} [active] whether or not to draw. Default = `true` (must be `false` to be not true). In other words `undefined` = `true`\n * @property {number} [type] type to draw eg. `gl.TRIANGLES`, `gl.LINES`, etc...\n * @property {module:twgl.ProgramInfo} programInfo A ProgramInfo as returned from {@link module:twgl.createProgramInfo}\n * @property {module:twgl.BufferInfo} [bufferInfo] A BufferInfo as returned from {@link module:twgl.createBufferInfoFromArrays}\n * @property {module:twgl.VertexArrayInfo} [vertexArrayInfo] A VertexArrayInfo as returned from {@link module:twgl.createVertexArrayInfo}\n * @property {Object<string, ?>} uniforms The values for the uniforms.\n *   You can pass multiple objects by putting them in an array. For example\n *\n *     var sharedUniforms = {\n *       u_fogNear: 10,\n *       u_projection: ...\n *       ...\n *     };\n *\n *     var localUniforms = {\n *       u_world: ...\n *       u_diffuseColor: ...\n *     };\n *\n *     var drawObj = {\n *       ...\n *       uniforms: [sharedUniforms, localUniforms],\n *     };\n *\n * @property {number} [offset] the offset to pass to `gl.drawArrays` or `gl.drawElements`. Defaults to 0.\n * @property {number} [count] the count to pass to `gl.drawArrays` or `gl.drawElements`. Defaults to bufferInfo.numElements.\n * @property {number} [instanceCount] the number of instances. Defaults to undefined.\n * @memberOf module:twgl\n */\n/**\n * Draws a list of objects\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {DrawObject[]} objectsToDraw an array of objects to draw.\n * @memberOf module:twgl/draw\n */function drawObjectList(e,t){let r=null;let n=null;t.forEach((function(t){if(false===t.active)return;const o=t.programInfo;const s=t.vertexArrayInfo||t.bufferInfo;let a=false;const c=void 0===t.type?eo:t.type;if(o!==r){r=o;e.useProgram(o.program);a=true}if(a||s!==n){n&&n.vertexArrayObject&&!s.vertexArrayObject&&e.bindVertexArray(null);n=s;setBuffersAndAttributes(e,o,s)}setUniforms(o,t.uniforms);drawBufferInfo(e,s,c,t.count,t.offset,t.instanceCount)}));n&&n.vertexArrayObject&&e.bindVertexArray(null)}var ro=Object.freeze({__proto__:null,drawBufferInfo:drawBufferInfo,drawObjectList:drawObjectList});const no=36160;const oo=36161;const so=3553;const ao=5121;const co=6402;const io=6408;const uo=33190;const fo=36012;const lo=35056;const mo=36013;const yo=32854;const po=32855;const bo=36194;const go=33189;const Ao=6401;const ho=36168;const xo=34041;const Fo=36064;const To=36096;const So=36128;const Po=33306;const Eo=33071;const wo=9729;\n/**\n * The options for a framebuffer attachment.\n *\n * Note: For a `format` that is a texture include all the texture\n * options from {@link module:twgl.TextureOptions} for example\n * `min`, `mag`, `clamp`, etc... Note that unlike {@link module:twgl.TextureOptions}\n * `auto` defaults to `false` for attachment textures but `min` and `mag` default\n * to `gl.LINEAR` and `wrap` defaults to `CLAMP_TO_EDGE`\n *\n * @typedef {Object} AttachmentOptions\n * @property {number} [attachmentPoint] The attachment point. Defaults\n *   to `gl.COLOR_ATTACHMENT0 + ndx` unless type is a depth or stencil type\n *   then it's gl.DEPTH_ATTACHMENT or `gl.DEPTH_STENCIL_ATTACHMENT` depending\n *   on the format or attachment type.\n * @property {number} [format] The format. If one of `gl.RGBA4`,\n *   `gl.RGB565`, `gl.RGB5_A1`, `gl.DEPTH_COMPONENT16`,\n *   `gl.STENCIL_INDEX8` or `gl.DEPTH_STENCIL` then will create a\n *   renderbuffer. Otherwise will create a texture. Default = `gl.RGBA`\n * @property {number} [type] The type. Used for texture. Default = `gl.UNSIGNED_BYTE`.\n * @property {number} [target] The texture target for `gl.framebufferTexture2D`.\n *   Defaults to `gl.TEXTURE_2D`. Set to appropriate face for cube maps.\n * @property {number} [samples] The number of samples. Default = 1\n * @property {number} [level] level for `gl.framebufferTexture2D`. Defaults to 0.\n * @property {number} [layer] layer for `gl.framebufferTextureLayer`. Defaults to undefined.\n *   If set then `gl.framebufferTextureLayer` is called, if not then `gl.framebufferTexture2D`\n * @property {(WebGLRenderbuffer | WebGLTexture)} [attachment] An existing renderbuffer or texture.\n *    If provided will attach this Object. This allows you to share\n *    attachments across framebuffers.\n * @memberOf module:twgl\n * @mixes module:twgl.TextureOptions\n */const Io=[{format:io,type:ao,min:wo,wrap:Eo},{format:xo}];const vo={};vo[xo]=Po;vo[Ao]=So;vo[ho]=So;vo[co]=To;vo[go]=To;vo[uo]=To;vo[fo]=To;vo[lo]=Po;vo[mo]=Po;function getAttachmentPointForFormat(e,t){return vo[e]||vo[t]}const Bo={};Bo[yo]=true;Bo[po]=true;Bo[bo]=true;Bo[xo]=true;Bo[go]=true;Bo[Ao]=true;Bo[ho]=true;function isRenderbufferFormat(e){return Bo[e]}const Co=32;function isColorAttachmentPoint(e){return e>=Fo&&e<Fo+Co}\n/**\n * @typedef {Object} FramebufferInfo\n * @property {WebGLFramebuffer} framebuffer The WebGLFramebuffer for this framebufferInfo\n * @property {Array.<(WebGLRenderbuffer | WebGLTexture)>} attachments The created attachments in the same order as passed in to {@link module:twgl.createFramebufferInfo}.\n * @property {number} width The width of the framebuffer and its attachments\n * @property {number} height The width of the framebuffer and its attachments\n * @memberOf module:twgl\n */\n/**\n * Creates a framebuffer and attachments.\n *\n * This returns a {@link module:twgl.FramebufferInfo} because it needs to return the attachments as well as the framebuffer.\n * It also leaves the framebuffer it just created as the currently bound `FRAMEBUFFER`.\n * Note: If this is WebGL2 or if you called {@link module:twgl.addExtensionsToContext} then it will set the drawBuffers\n * to `[COLOR_ATTACHMENT0, COLOR_ATTACHMENT1, ...]` for how ever many color attachments were created.\n *\n * The simplest usage\n *\n *     // create an RGBA/UNSIGNED_BYTE texture and DEPTH_STENCIL renderbuffer\n *     const fbi = twgl.createFramebufferInfo(gl);\n *\n * More complex usage\n *\n *     // create an RGB565 renderbuffer and a STENCIL_INDEX8 renderbuffer\n *     const attachments = [\n *       { format: RGB565, mag: NEAREST },\n *       { format: STENCIL_INDEX8 },\n *     ]\n *     const fbi = twgl.createFramebufferInfo(gl, attachments);\n *\n * Passing in a specific size\n *\n *     const width = 256;\n *     const height = 256;\n *     const fbi = twgl.createFramebufferInfo(gl, attachments, width, height);\n *\n * **Note!!** It is up to you to check if the framebuffer is renderable by calling `gl.checkFramebufferStatus`.\n * [WebGL1 only guarantees 3 combinations of attachments work](https://www.khronos.org/registry/webgl/specs/latest/1.0/#6.6).\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.AttachmentOptions[]} [attachments] which attachments to create. If not provided the default is a framebuffer with an\n *    `RGBA`, `UNSIGNED_BYTE` texture `COLOR_ATTACHMENT0` and a `DEPTH_STENCIL` renderbuffer `DEPTH_STENCIL_ATTACHMENT`.\n * @param {number} [width] the width for the attachments. Default = size of drawingBuffer\n * @param {number} [height] the height for the attachments. Default = size of drawingBuffer\n * @return {module:twgl.FramebufferInfo} the framebuffer and attachments.\n * @memberOf module:twgl/framebuffers\n */function createFramebufferInfo(e,t,r,n){const o=no;const s=e.createFramebuffer();e.bindFramebuffer(o,s);r=r||e.drawingBufferWidth;n=n||e.drawingBufferHeight;t=t||Io;const a=[];const c={framebuffer:s,attachments:[],width:r,height:n};t.forEach((function(t,s){let i=t.attachment;const u=t.samples;const f=t.format;let l=t.attachmentPoint||getAttachmentPointForFormat(f,t.internalFormat);l||(l=Fo+s);isColorAttachmentPoint(l)&&a.push(l);if(!i)if(void 0!==u||isRenderbufferFormat(f)){i=e.createRenderbuffer();e.bindRenderbuffer(oo,i);u>1?e.renderbufferStorageMultisample(oo,u,f,r,n):e.renderbufferStorage(oo,f,r,n)}else{const o=Object.assign({},t);o.width=r;o.height=n;if(void 0===o.auto){o.auto=false;o.min=o.min||o.minMag||wo;o.mag=o.mag||o.minMag||wo;o.wrapS=o.wrapS||o.wrap||Eo;o.wrapT=o.wrapT||o.wrap||Eo}i=createTexture(e,o)}if(isRenderbuffer(e,i))e.framebufferRenderbuffer(o,l,oo,i);else{if(!isTexture(e,i))throw new Error(\"unknown attachment type\");void 0!==t.layer?e.framebufferTextureLayer(o,l,i,t.level||0,t.layer):e.framebufferTexture2D(o,l,t.target||so,i,t.level||0)}c.attachments.push(i)}));e.drawBuffers&&e.drawBuffers(a);return c}\n/**\n * Resizes the attachments of a framebuffer.\n *\n * You need to pass in the same `attachments` as you passed in {@link module:twgl.createFramebufferInfo}\n * because TWGL has no idea the format/type of each attachment.\n *\n * The simplest usage\n *\n *     // create an RGBA/UNSIGNED_BYTE texture and DEPTH_STENCIL renderbuffer\n *     const fbi = twgl.createFramebufferInfo(gl);\n *\n *     ...\n *\n *     function render() {\n *       if (twgl.resizeCanvasToDisplaySize(gl.canvas)) {\n *         // resize the attachments\n *         twgl.resizeFramebufferInfo(gl, fbi);\n *       }\n *\n * More complex usage\n *\n *     // create an RGB565 renderbuffer and a STENCIL_INDEX8 renderbuffer\n *     const attachments = [\n *       { format: RGB565, mag: NEAREST },\n *       { format: STENCIL_INDEX8 },\n *     ]\n *     const fbi = twgl.createFramebufferInfo(gl, attachments);\n *\n *     ...\n *\n *     function render() {\n *       if (twgl.resizeCanvasToDisplaySize(gl.canvas)) {\n *         // resize the attachments to match\n *         twgl.resizeFramebufferInfo(gl, fbi, attachments);\n *       }\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.FramebufferInfo} framebufferInfo a framebufferInfo as returned from {@link module:twgl.createFramebufferInfo}.\n * @param {module:twgl.AttachmentOptions[]} [attachments] the same attachments options as passed to {@link module:twgl.createFramebufferInfo}.\n * @param {number} [width] the width for the attachments. Default = size of drawingBuffer\n * @param {number} [height] the height for the attachments. Default = size of drawingBuffer\n * @memberOf module:twgl/framebuffers\n */function resizeFramebufferInfo(e,t,r,n,o){n=n||e.drawingBufferWidth;o=o||e.drawingBufferHeight;t.width=n;t.height=o;r=r||Io;r.forEach((function(r,s){const a=t.attachments[s];const c=r.format;const i=r.samples;if(void 0!==i||isRenderbuffer(e,a)){e.bindRenderbuffer(oo,a);i>1?e.renderbufferStorageMultisample(oo,i,c,n,o):e.renderbufferStorage(oo,c,n,o)}else{if(!isTexture(e,a))throw new Error(\"unknown attachment type\");resizeTexture(e,a,r,n,o)}}))}\n/**\n * Binds a framebuffer\n *\n * This function pretty much solely exists because I spent hours\n * trying to figure out why something I wrote wasn't working only\n * to realize I forget to set the viewport dimensions.\n * My hope is this function will fix that.\n *\n * It is effectively the same as\n *\n *     gl.bindFramebuffer(gl.FRAMEBUFFER, someFramebufferInfo.framebuffer);\n *     gl.viewport(0, 0, someFramebufferInfo.width, someFramebufferInfo.height);\n *\n * @param {WebGLRenderingContext} gl the WebGLRenderingContext\n * @param {module:twgl.FramebufferInfo|null} [framebufferInfo] a framebufferInfo as returned from {@link module:twgl.createFramebufferInfo}.\n *   If falsy will bind the canvas.\n * @param {number} [target] The target. If not passed `gl.FRAMEBUFFER` will be used.\n * @memberOf module:twgl/framebuffers\n */function bindFramebufferInfo(e,t,r){r=r||no;if(t){e.bindFramebuffer(r,t.framebuffer);e.viewport(0,0,t.width,t.height)}else{e.bindFramebuffer(r,null);e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight)}}var ko=Object.freeze({__proto__:null,bindFramebufferInfo:bindFramebufferInfo,createFramebufferInfo:createFramebufferInfo,resizeFramebufferInfo:resizeFramebufferInfo});const _o=34963;\n/**\n * @typedef {Object} VertexArrayInfo\n * @property {number} numElements The number of elements to pass to `gl.drawArrays` or `gl.drawElements`.\n * @property {number} [elementType] The type of indices `UNSIGNED_BYTE`, `UNSIGNED_SHORT` etc..\n * @property {WebGLVertexArrayObject} [vertexArrayObject] a vertex array object\n * @memberOf module:twgl\n */\n/**\n * Creates a VertexArrayInfo from a BufferInfo and one or more ProgramInfos\n *\n * This can be passed to {@link module:twgl.setBuffersAndAttributes} and to\n * {@link module:twgl:drawBufferInfo}.\n *\n * > **IMPORTANT:** Vertex Array Objects are **not** a direct analog for a BufferInfo. Vertex Array Objects\n *   assign buffers to specific attributes at creation time. That means they can only be used with programs\n *   who's attributes use the same attribute locations for the same purposes.\n *\n * > Bind your attribute locations by passing an array of attribute names to {@link module:twgl.createProgramInfo}\n *   or use WebGL 2's GLSL ES 3's `layout(location = <num>)` to make sure locations match.\n *\n * also\n *\n * > **IMPORTANT:** After calling twgl.setBuffersAndAttribute with a BufferInfo that uses a Vertex Array Object\n *   that Vertex Array Object will be bound. That means **ANY MANIPULATION OF ELEMENT_ARRAY_BUFFER or ATTRIBUTES**\n *   will affect the Vertex Array Object state.\n *\n * > Call `gl.bindVertexArray(null)` to get back manipulating the global attributes and ELEMENT_ARRAY_BUFFER.\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @param {module:twgl.ProgramInfo|module:twgl.ProgramInfo[]} programInfo a programInfo or array of programInfos\n * @param {module:twgl.BufferInfo} bufferInfo BufferInfo as returned from createBufferInfoFromArrays etc...\n *\n *    You need to make sure every attribute that will be used is bound. So for example assume shader 1\n *    uses attributes A, B, C and shader 2 uses attributes A, B, D. If you only pass in the programInfo\n *    for shader 1 then only attributes A, B, and C will have their attributes set because TWGL doesn't\n *    now attribute D's location.\n *\n *    So, you can pass in both shader 1 and shader 2's programInfo\n *\n * @return {module:twgl.VertexArrayInfo} The created VertexArrayInfo\n *\n * @memberOf module:twgl/vertexArrays\n */function createVertexArrayInfo(e,t,r){const n=e.createVertexArray();e.bindVertexArray(n);t.length||(t=[t]);t.forEach((function(t){setBuffersAndAttributes(e,t,r)}));e.bindVertexArray(null);return{numElements:r.numElements,elementType:r.elementType,vertexArrayObject:n}}\n/**\n * Creates a vertex array object and then sets the attributes on it\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.\n * @param {Object.<string, function>} setters Attribute setters as returned from createAttributeSetters\n * @param {Object.<string, module:twgl.AttribInfo>} attribs AttribInfos mapped by attribute name.\n * @param {WebGLBuffer} [indices] an optional ELEMENT_ARRAY_BUFFER of indices\n *\n * @return {WebGLVertexArrayObject|null} The created WebGLVertexArrayObject\n *\n * @memberOf module:twgl/vertexArrays\n */function createVAOAndSetAttributes(e,t,r,n){const o=e.createVertexArray();e.bindVertexArray(o);setAttributes(t,r);n&&e.bindBuffer(_o,n);e.bindVertexArray(null);return o}\n/**\n * Creates a vertex array object and then sets the attributes\n * on it\n *\n * @param {WebGLRenderingContext} gl The WebGLRenderingContext\n *        to use.\n * @param {Object.<string, function>| module:twgl.ProgramInfo} programInfo as returned from createProgramInfo or Attribute setters as returned from createAttributeSetters\n * @param {module:twgl.BufferInfo} bufferInfo BufferInfo as returned from createBufferInfoFromArrays etc...\n * @param {WebGLBuffer} [indices] an optional ELEMENT_ARRAY_BUFFER of indices\n *\n * @return {WebGLVertexArrayObject|null} The created WebGLVertexArrayObject\n *\n * @memberOf module:twgl/vertexArrays\n */function createVAOFromBufferInfo(e,t,r){return createVAOAndSetAttributes(e,t.attribSetters||t,r.attribs,r.indices)}var zo=Object.freeze({__proto__:null,createVertexArrayInfo:createVertexArrayInfo,createVAOAndSetAttributes:createVAOAndSetAttributes,createVAOFromBufferInfo:createVAOFromBufferInfo});const Uo={addExtensionsToContext:true};\n/**\n * Various default settings for twgl.\n *\n * Note: You can call this any number of times. Example:\n *\n *     twgl.setDefaults({ textureColor: [1, 0, 0, 1] });\n *     twgl.setDefaults({ attribPrefix: 'a_' });\n *\n * is equivalent to\n *\n *     twgl.setDefaults({\n *       textureColor: [1, 0, 0, 1],\n *       attribPrefix: 'a_',\n *     });\n *\n * @typedef {Object} Defaults\n * @property {string} [attribPrefix] The prefix to stick on attributes\n *\n *   When writing shaders I prefer to name attributes with `a_`, uniforms with `u_` and varyings with `v_`\n *   as it makes it clear where they came from. But, when building geometry I prefer using un-prefixed names.\n *\n *   In other words I'll create arrays of geometry like this\n *\n *       const arrays = {\n *         position: ...\n *         normal: ...\n *         texcoord: ...\n *       };\n *\n *   But need those mapped to attributes and my attributes start with `a_`.\n *\n *   Default: `\"\"`\n *\n * @property {number[]} [textureColor] Array of 4 values in the range 0 to 1\n *\n *   The default texture color is used when loading textures from\n *   urls. Because the URL will be loaded async we'd like to be\n *   able to use the texture immediately. By putting a 1x1 pixel\n *   color in the texture we can start using the texture before\n *   the URL has loaded.\n *\n *   Default: `[0.5, 0.75, 1, 1]`\n *\n * @property {string} [crossOrigin]\n *\n *   If not undefined sets the crossOrigin attribute on images\n *   that twgl creates when downloading images for textures.\n *\n *   Also see {@link module:twgl.TextureOptions}.\n *\n * @property {bool} [addExtensionsToContext]\n *\n *   If true, then, when twgl will try to add any supported WebGL extensions\n *   directly to the context under their normal GL names. For example\n *   if ANGLE_instances_arrays exists then twgl would enable it,\n *   add the functions `vertexAttribDivisor`, `drawArraysInstanced`,\n *   `drawElementsInstanced`, and the constant `VERTEX_ATTRIB_ARRAY_DIVISOR`\n *   to the `WebGLRenderingContext`.\n *\n * @memberOf module:twgl\n */\n/**\n * Sets various defaults for twgl.\n *\n * In the interest of terseness which is kind of the point\n * of twgl I've integrated a few of the older functions here\n *\n * @param {module:twgl.Defaults} newDefaults The default settings.\n * @memberOf module:twgl\n */function setDefaults$2(e){copyExistingProperties(e,Uo);setDefaults(e);setDefaults$1(e)}const Vo=/^(.*?)_/;function addExtensionToContext(e,t){be(e,0);const r=e.getExtension(t);if(r){const n={};const o=Vo.exec(t)[1];const s=\"_\"+o;for(const t in r){const a=r[t];const c=\"function\"===typeof a;const i=c?o:s;let u=t;t.endsWith(i)&&(u=t.substring(0,t.length-i.length));if(void 0!==e[u])c||e[u]===a||warn(u,e[u],a,t);else if(c)e[u]=function(e){return function(){return e.apply(r,arguments)}}(a);else{e[u]=a;n[u]=a}}n.constructor={name:r.constructor.name};be(n,0)}return r}const Mo=[\"ANGLE_instanced_arrays\",\"EXT_blend_minmax\",\"EXT_color_buffer_float\",\"EXT_color_buffer_half_float\",\"EXT_disjoint_timer_query\",\"EXT_disjoint_timer_query_webgl2\",\"EXT_frag_depth\",\"EXT_sRGB\",\"EXT_shader_texture_lod\",\"EXT_texture_filter_anisotropic\",\"OES_element_index_uint\",\"OES_standard_derivatives\",\"OES_texture_float\",\"OES_texture_float_linear\",\"OES_texture_half_float\",\"OES_texture_half_float_linear\",\"OES_vertex_array_object\",\"WEBGL_color_buffer_float\",\"WEBGL_compressed_texture_atc\",\"WEBGL_compressed_texture_etc1\",\"WEBGL_compressed_texture_pvrtc\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_compressed_texture_s3tc_srgb\",\"WEBGL_depth_texture\",\"WEBGL_draw_buffers\"];\n/**\n * Attempts to enable all of the following extensions\n * and add their functions and constants to the\n * `WebGLRenderingContext` using their normal non-extension like names.\n *\n *      ANGLE_instanced_arrays\n *      EXT_blend_minmax\n *      EXT_color_buffer_float\n *      EXT_color_buffer_half_float\n *      EXT_disjoint_timer_query\n *      EXT_disjoint_timer_query_webgl2\n *      EXT_frag_depth\n *      EXT_sRGB\n *      EXT_shader_texture_lod\n *      EXT_texture_filter_anisotropic\n *      OES_element_index_uint\n *      OES_standard_derivatives\n *      OES_texture_float\n *      OES_texture_float_linear\n *      OES_texture_half_float\n *      OES_texture_half_float_linear\n *      OES_vertex_array_object\n *      WEBGL_color_buffer_float\n *      WEBGL_compressed_texture_atc\n *      WEBGL_compressed_texture_etc1\n *      WEBGL_compressed_texture_pvrtc\n *      WEBGL_compressed_texture_s3tc\n *      WEBGL_compressed_texture_s3tc_srgb\n *      WEBGL_depth_texture\n *      WEBGL_draw_buffers\n *\n * For example if `ANGLE_instanced_arrays` exists then the functions\n * `drawArraysInstanced`, `drawElementsInstanced`, `vertexAttribDivisor`\n * and the constant `VERTEX_ATTRIB_ARRAY_DIVISOR` are added to the\n * `WebGLRenderingContext`.\n *\n * Note that if you want to know if the extension exists you should\n * probably call `gl.getExtension` for each extension. Alternatively\n * you can check for the existence of the functions or constants that\n * are expected to be added. For example\n *\n *    if (gl.drawBuffers) {\n *      // Either WEBGL_draw_buffers was enabled OR you're running in WebGL2\n *      ....\n *\n * @param {WebGLRenderingContext} gl A WebGLRenderingContext\n * @memberOf module:twgl\n */function addExtensionsToContext(e){for(let t=0;t<Mo.length;++t)addExtensionToContext(e,Mo[t])}\n/**\n * Creates a webgl context.\n * @param {HTMLCanvasElement} canvas The canvas tag to get\n *     context from. If one is not passed in one will be\n *     created.\n * @return {WebGLRenderingContext} The created context.\n * @private\n */function create3DContext(e,t){const r=[\"webgl\",\"experimental-webgl\"];let n=null;for(let o=0;o<r.length;++o){n=e.getContext(r[o],t);if(n){Uo.addExtensionsToContext&&addExtensionsToContext(n);break}}return n}\n/**\n * Gets a WebGL1 context.\n *\n * Note: Will attempt to enable Vertex Array Objects\n * and add WebGL2 entry points. (unless you first set defaults with\n * `twgl.setDefaults({enableVertexArrayObjects: false})`;\n *\n * @param {HTMLCanvasElement} canvas a canvas element.\n * @param {WebGLContextAttributes} [opt_attribs] optional webgl context creation attributes\n * @return {WebGLRenderingContext} The created context.\n * @memberOf module:twgl\n * @deprecated\n * @private\n */function getWebGLContext(e,t){const r=create3DContext(e,t);return r}\n/**\n * Creates a webgl context.\n *\n * Will return a WebGL2 context if possible.\n *\n * You can check if it's WebGL2 with\n *\n *     twgl.isWebGL2(gl);\n *\n * @param {HTMLCanvasElement} canvas The canvas tag to get\n *     context from. If one is not passed in one will be\n *     created.\n * @return {WebGLRenderingContext} The created context.\n */function createContext(e,t){const r=[\"webgl2\",\"webgl\",\"experimental-webgl\"];let n=null;for(let o=0;o<r.length;++o){n=e.getContext(r[o],t);if(n){Uo.addExtensionsToContext&&addExtensionsToContext(n);break}}return n}\n/**\n * Gets a WebGL context.  Will create a WebGL2 context if possible.\n *\n * You can check if it's WebGL2 with\n *\n *    function isWebGL2(gl) {\n *      return gl.getParameter(gl.VERSION).indexOf(\"WebGL 2.0 \") == 0;\n *    }\n *\n * Note: For a WebGL1 context will attempt to enable Vertex Array Objects\n * and add WebGL2 entry points. (unless you first set defaults with\n * `twgl.setDefaults({enableVertexArrayObjects: false})`;\n *\n * @param {HTMLCanvasElement} canvas a canvas element.\n * @param {WebGLContextAttributes} [opt_attribs] optional webgl context creation attributes\n * @return {WebGLRenderingContext} The created context.\n * @memberOf module:twgl\n */function getContext(e,t){const r=createContext(e,t);return r}\n/**\n * Resize a canvas to match the size it's displayed.\n * @param {HTMLCanvasElement} canvas The canvas to resize.\n * @param {number} [multiplier] So you can pass in `window.devicePixelRatio` or other scale value if you want to.\n * @return {boolean} true if the canvas was resized.\n * @memberOf module:twgl\n */function resizeCanvasToDisplaySize(e,t){t=t||1;t=Math.max(0,t);const r=e.clientWidth*t|0;const n=e.clientHeight*t|0;if(e.width!==r||e.height!==n){e.width=r;e.height=n;return true}return false}export{addExtensionsToContext,N as attributes,bindFramebufferInfo,bindTransformFeedbackInfo,bindUniformBlock,canFilter,canGenerateMipmap,createAttribsFromArrays,createAttributeSetters,createBufferFromArray,createBufferFromTypedArray,createBufferInfoFromArrays,createBuffersFromArrays,createFramebufferInfo,createProgram,createProgramAsync,createProgramFromScripts,createProgramFromSources,createProgramInfo,createProgramInfoAsync,createProgramInfoFromProgram,createSampler,createSamplers,createTexture,createTextures,createTransformFeedback,createTransformFeedbackInfo,createUniformBlockInfo,createUniformBlockInfoFromProgram,createUniformBlockSpecFromProgram,createUniformSetters,createVAOAndSetAttributes,createVAOFromBufferInfo,createVertexArrayInfo,ro as draw,drawBufferInfo,drawObjectList,ko as framebuffers,getArray as getArray_,getBytesPerElementForInternalFormat,getContext,getFormatAndTypeForInternalFormat,getGLTypeForTypedArray,getGLTypeForTypedArrayType,getNumComponentsForFormat,getNumComponents as getNumComponents_,getTypedArrayTypeForGLType,getWebGLContext,be as glEnumToString,P as isArrayBuffer,isWebGL1,isWebGL2,loadTextureFromUrl,a as m4,pe as primitives,Jn as programs,resizeCanvasToDisplaySize,resizeFramebufferInfo,resizeTexture,setAttribInfoBufferFromArray,setDefaults as setAttributeDefaults_,setAttributePrefix,setAttributes,setBlockUniforms,setBuffersAndAttributes,setDefaultTextureColor,setDefaults$2 as setDefaults,setEmptyTexture,setSamplerParameters,setDefaults$1 as setTextureDefaults_,setTextureFilteringForSize,setTextureFromArray,setTextureFromElement,setTextureParameters,setUniformBlock,setUniforms,Zn as setUniformsAndBindTextures,Cr as textures,E as typedarrays,ge as utils,t as v3,zo as vertexArrays};\n\n//# sourceMappingURL=twgl-full.module.js.map","import n,{useRef as e,useEffect as o}from\"react\";import t from\"chroma-js\";import*as r from\"twgl.js\";const a=({baseColor:a=\"#FFFFFF\",noise:i=10,colors:s=[{color:\"rgb(255,0,0)\",x:0,y:0,radius:10},{color:\"rgb(0,255,0)\",x:80,y:20,radius:10},{color:\"rgb(0,0,255)\",x:50,y:50,radius:10}],animate:l=false,style:v,className:u})=>{const d=e(null);const p=e(null);o((()=>{const n=d.current;if(!n)return;const e=n.getContext(\"webgl\");if(!e){console.error(\"WebGL not supported.\");return}const o=\"attribute vec4 position; void main() { gl_Position = position; }\";const v=c(s.length);const u=r.createProgramInfo(e,[o,v]);const f={position:[-1,-1,0,1,-1,0,-1,1,0,-1,1,0,1,-1,0,1,1,0]};const m=r.createBufferInfoFromArrays(e,f);const g=n=>{r.resizeCanvasToDisplaySize(e.canvas);e.viewport(0,0,e.canvas.width,e.canvas.height);const o=t(a).gl();const c={r:o[0],g:o[1],b:o[2],a:o[3]};const v=s.map((n=>{const e=t(n.color).gl();return[e[0],e[1],e[2],e[3]]})).flat();const d=s.map(((e,o)=>{const t=l?Math.sin(n*.001+o)*.1:0;return[e.x/100+t,1-e.y/100+t]})).flat();const f=s.map((n=>n.radius/10));const x={u_resolution:[e.canvas.width,e.canvas.height],u_baseColor:[c.r,c.g,c.b,c.a],u_noise:i,u_colors:new Float32Array(v),u_positions:new Float32Array(d),u_radius:new Float32Array(f),u_time:l?n*.001:1};e.useProgram(u.program);r.setBuffersAndAttributes(e,u,m);r.setUniforms(u,x);r.drawBufferInfo(e,m);l&&(p.current=requestAnimationFrame(g))};g(0);return()=>{p.current&&cancelAnimationFrame(p.current)}}),[a,i,l,JSON.stringify(s)]);return n.createElement(\"canvas\",{ref:d,style:Object.assign({width:\"100%\",height:\"100%\",display:\"block\"},v),className:u})};function c(n){return`\\n        precision mediump float;\\n\\n        uniform vec2 u_resolution;\\n        uniform vec4 u_baseColor;\\n        uniform float u_noise;\\n        uniform vec4 u_colors[${Math.max(1,n)}];\\n        uniform vec2 u_positions[${Math.max(1,n)}];\\n        uniform float u_radius[${Math.max(1,n)}];\\n        uniform float u_time;\\n\\n        vec3 mod289(vec3 x) {\\n            return x - floor(x * (1.0 / 289.0)) * 289.0;\\n        }\\n        float mod289(float x) {\\n            return x - floor(x * (1.0 / 289.0)) * 289.0;\\n        }\\n        float permute(float x) {\\n            return mod289(((x * 34.0) + 10.0) * x);\\n        }\\n        vec2 rgrad2(vec2 p, float rot) {\\n            float u = permute(permute(p.x) + p.y) * 0.0243902439 + rot;\\n            u = fract(u) * 6.28318530718;\\n            return vec2(cos(u), sin(u));\\n        }\\n        vec3 psrdnoise(vec2 pos, vec2 per, float rot) {\\n            pos.y += 0.01;\\n            vec2 uv = vec2(pos.x + pos.y * 0.5, pos.y);\\n            vec2 i0 = floor(uv);\\n            vec2 f0 = fract(uv);\\n            vec2 i1 = (f0.x > f0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\\n            vec2 p0 = vec2(i0.x - i0.y * 0.5, i0.y);\\n            vec2 p1 = vec2(p0.x + i1.x - i1.y * 0.5, p0.y + i1.y);\\n            vec2 p2 = vec2(p0.x + 0.5, p0.y + 1.0);\\n            vec2 d0 = pos - p0;\\n            vec2 d1 = pos - p1;\\n            vec2 d2 = pos - p2;\\n            vec3 xw = mod(vec3(p0.x, p1.x, p2.x), per.x);\\n            vec3 yw = mod(vec3(p0.y, p1.y, p2.y), per.y);\\n            vec3 iuw = xw + 0.5 * yw;\\n            vec3 ivw = yw;\\n            vec2 g0 = rgrad2(vec2(iuw.x, ivw.x), rot);\\n            vec2 g1 = rgrad2(vec2(iuw.y, ivw.y), rot);\\n            vec2 g2 = rgrad2(vec2(iuw.z, ivw.z), rot);\\n            vec3 w = vec3(dot(g0, d0), dot(g1, d1), dot(g2, d2));\\n            vec3 t = 0.8 - vec3(dot(d0, d0), dot(d1, d1), dot(d2, d2));\\n            t = max(t, 0.0);\\n            vec3 t4 = t * t * t * t;\\n            return 11.0 * vec3(dot(t4, w));\\n        }\\n\\n        vec4 blendAverage(vec4 base, vec4 blend) {\\n            return (base + blend) / 2.0;\\n        }\\n\\n        // Elliptical distance calculation\\n        float ellipticalDistance(vec2 uv, vec2 center, vec2 radii, float angle) {\\n            vec2 toUV = uv - center;\\n\\n            // Rotate UV coordinates by the angle\\n            float cosA = cos(angle);\\n            float sinA = sin(angle);\\n            vec2 rotated = vec2(cosA * toUV.x + sinA * toUV.y, -sinA * toUV.x + cosA * toUV.y);\\n            // Scale coordinates to create an ellipse\\n            vec2 scaled = rotated / radii;\\n\\n            // Return the distance in elliptical space\\n            return length(scaled);\\n        }\\n        void main() {\\n            vec2 uv = gl_FragCoord.xy / u_resolution;\\n            vec4 color = u_baseColor;\\n            vec2 canvasCenter = vec2(0.5, 0.5);\\n            for (int i = 0; i < ${Math.max(1,n)}; i++) {\\n                vec2 position = u_positions[i];\\n                vec4 gradientColor = u_colors[i];\\n                float radius = u_radius[i];\\n\\n                 // Calculate the angle pointing towards the center\\n                vec2 toCenter = canvasCenter - position;\\n                toCenter.y = -toCenter.y;\\n                float angle = atan(toCenter.x, toCenter.y);\\n                for (float dx = -2.0; dx <= 2.0; dx++) {\\n                    for (float dy = -2.0; dy <= 2.0; dy++) {\\n                        float noise = psrdnoise(uv * u_noise, vec2(10.0), 0.0).x;\\n                        vec2 samplePos = position + vec2(dx, dy) * 0.005 + vec2(noise) * 0.01;\\n                        float eDist = ellipticalDistance(uv, samplePos, vec2(radius), angle);\\n                        float dist = eDist > 0.0 ? eDist : distance(uv, position);\\n                        float weight = 1.0 - smoothstep(0.001, 0.5, dist);\\n                        color = mix(color, blendAverage(color, gradientColor), weight * 0.1);\\n                    }\\n                }\\n            }\\n            gl_FragColor = color;\\n        }\\n    `}export{a as default};\n//# sourceMappingURL=meshgradient.js.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import MeshGradientComponent from\"mesh-gradient\";/** @framerDisableUnlink\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n */export default function MeshGradient(props){const{baseColor,noise,animate}=props;const colors=props.colors.length!==0?props.colors:[{color:\"rgb(255,0,0)\",x:0,y:0,radius:10},{color:\"rgb(0,255,0)\",x:80,y:20,radius:10},{color:\"rgb(0,0,255)\",x:50,y:50,radius:10}];return /*#__PURE__*/_jsx(MeshGradientComponent,{style:{width:\"100%\",height:\"100%\",display:\"block\"},baseColor:baseColor,noise:noise,colors:colors,animate:animate});}// ---------- Framer controls ----------\naddPropertyControls(MeshGradient,{baseColor:{title:\"Base Color\",type:ControlType.Color,defaultValue:\"#FFFFFF\"},noise:{title:\"Noise\",type:ControlType.Number,min:0,max:100,defaultValue:10},colors:{title:\"Colors\",type:ControlType.Array,defaultValue:[{color:\"#FF0000\",x:0,y:0,radius:10},{color:\"#00FF00\",x:80,y:20,radius:10},{color:\"#0000FF\",x:50,y:50,radius:10}],propertyControl:{title:\"Mesh Color\",type:ControlType.Object,controls:{color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#FFF\"},x:{title:\"X Position\",type:ControlType.Number,min:0,max:100,defaultValue:50},y:{title:\"Y Position\",type:ControlType.Number,min:0,max:100,defaultValue:50},radius:{title:\"Radius\",type:ControlType.Number,min:0,max:100,defaultValue:10}}}},animate:{title:\"Animate\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"}});MeshGradient.defaultProps={baseColor:\"#FFFFFF\",noise:10,colors:[{color:\"rgb(255,0,0)\",x:0,y:0,radius:10},{color:\"rgb(0,255,0)\",x:80,y:20,radius:10},{color:\"rgb(0,0,255)\",x:50,y:50,radius:10}],animate:false};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MeshGradient\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MeshGradient.map","// Generated by Framer (9f612b6)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-3ilFi .framer-styles-preset-1ljlzbp:not(.rich-text-wrapper), .framer-3ilFi .framer-styles-preset-1ljlzbp.rich-text-wrapper a { --framer-link-current-text-decoration: none; --framer-link-hover-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-73b9004d-2064-4ac1-849a-817e46b0888c, #6f6f6f); --framer-link-text-decoration: none; }\"];export const className=\"framer-3ilFi\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b3492b4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/Bo5CNzBv77CafbxOtKIkpw9egw.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-RLkVC .framer-styles-preset-cix8kf:not(.rich-text-wrapper), .framer-RLkVC .framer-styles-preset-cix8kf.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.02em; --framer-line-height: 150%; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-background-radius: 0px; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-RLkVC .framer-styles-preset-cix8kf:not(.rich-text-wrapper), .framer-RLkVC .framer-styles-preset-cix8kf.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.02em; --framer-line-height: 150%; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-background-radius: 0px; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-RLkVC .framer-styles-preset-cix8kf:not(.rich-text-wrapper), .framer-RLkVC .framer-styles-preset-cix8kf.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.02em; --framer-line-height: 150%; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-background-radius: 0px; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-RLkVC\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","var t,e=Object.create,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(t,e,n)=>e in t?r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>function(){return e||(0,t[i(t)[0]])((e={exports:{}}).exports,e),e.exports;},l=(t,e,s,o)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let u of i(e))a.call(t,u)||u===s||r(t,u,{get:()=>e[u],enumerable:!(o=n(e,u))||o.enumerable});return t;},h=(t,n,i)=>(i=null!=t?e(s(t)):{},l(// If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    !n&&t&&t.__esModule?i:r(i,\"default\",{value:t,enumerable:!0}),t)),c=(t,e,r)=>o(t,\"symbol\"!=typeof e?e+\"\":e,r),f=u({\"../../../node_modules/dataloader/index.js\"(t,e){var r,n=/* @__PURE__ */function(){function t(t,e){if(\"function\"!=typeof t)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: \"+t+\".\");this._batchLoadFn=t,this._maxBatchSize=function(t){if(!(!t||!1!==t.batch))return 1;var e=t&&t.maxBatchSize;if(void 0===e)return 1/0;if(\"number\"!=typeof e||e<1)throw TypeError(\"maxBatchSize must be a positive number: \"+e);return e;}(e),this._batchScheduleFn=function(t){var e=t&&t.batchScheduleFn;if(void 0===e)return i;if(\"function\"!=typeof e)throw TypeError(\"batchScheduleFn must be a function: \"+e);return e;}(e),this._cacheKeyFn=function(t){var e=t&&t.cacheKeyFn;if(void 0===e)return function(t){return t;};if(\"function\"!=typeof e)throw TypeError(\"cacheKeyFn must be a function: \"+e);return e;}(e),this._cacheMap=function(t){if(!(!t||!1!==t.cache))return null;var e=t&&t.cacheMap;if(void 0===e)return /* @__PURE__ */new Map;if(null!==e){var r=[\"get\",\"set\",\"delete\",\"clear\"].filter(function(t){return e&&\"function\"!=typeof e[t];});if(0!==r.length)throw TypeError(\"Custom cacheMap missing methods: \"+r.join(\", \"));}return e;}(e),this._batch=null,this.name=e&&e.name?e.name:null;}var e=t.prototype;return e.load=function(t){if(null==t)throw TypeError(\"The loader.load() function must be called with a value, but got: \"+String(t)+\".\");var e=function(t){var e=t._batch;if(null!==e&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;var r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(function(){(function(t,e){var r;if(e.hasDispatched=!0,0===e.keys.length){a(e);return;}try{r=t._batchLoadFn(e.keys);}catch(r){return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: \"+String(r)+\".\"));}if(!r||\"function\"!=typeof r.then)return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: \"+String(r)+\".\"));r.then(function(t){if(!o(t))throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: \"+String(t)+\".\");if(t.length!==e.keys.length)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\\n\\nKeys:\\n\"+String(e.keys)+\"\\n\\nValues:\\n\"+String(t));a(e);for(var r=0;r<e.callbacks.length;r++){var n=t[r];n instanceof Error?e.callbacks[r].reject(n):e.callbacks[r].resolve(n);}}).catch(function(r){s(t,e,r);});})(t,r);}),r;}(this),r=this._cacheMap,n=this._cacheKeyFn(t);if(r){var i=r.get(n);if(i){var u=e.cacheHits||(e.cacheHits=[]);return new Promise(function(t){u.push(function(){t(i);});});}}e.keys.push(t);var l=new Promise(function(t,r){e.callbacks.push({resolve:t,reject:r});});return r&&r.set(n,l),l;},e.loadMany=function(t){if(!o(t))throw TypeError(\"The loader.loadMany() function must be called with Array<key> but got: \"+t+\".\");for(var e=[],r=0;r<t.length;r++)e.push(this.load(t[r]).catch(function(t){return t;}));return Promise.all(e);},e.clear=function(t){var e=this._cacheMap;if(e){var r=this._cacheKeyFn(t);e.delete(r);}return this;},e.clearAll=function(){var t=this._cacheMap;return t&&t.clear(),this;},e.prime=function(t,e){var r=this._cacheMap;if(r){var n,i=this._cacheKeyFn(t);void 0===r.get(i)&&(e instanceof Error?(n=Promise.reject(e)).catch(function(){}):n=Promise.resolve(e),r.set(i,n));}return this;},t;}(),i=\"object\"==typeof process&&\"function\"==typeof process.nextTick?function(t){r||(r=Promise.resolve()),r.then(function(){process.nextTick(t);});}:\"function\"==typeof setImmediate?function(t){setImmediate(t);}:function(t){setTimeout(t);};function s(t,e,r){a(e);for(var n=0;n<e.keys.length;n++)t.clear(e.keys[n]),e.callbacks[n].reject(r);}function a(t){if(t.cacheHits)for(var e=0;e<t.cacheHits.length;e++)t.cacheHits[e]();}function o(t){return\"object\"==typeof t&&null!==t&&\"number\"==typeof t.length&&(0===t.length||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1));}e.exports=n;}}),d=h(f(),1),g={Uint8:1,Uint16:2,Uint32:4,BigUint64:8,Int8:1,Int16:2,Int32:4,BigInt64:8,Float32:4,Float64:8},p=class{getOffset(){return this.offset;}ensureLength(t){let e=this.bytes.length;if(!(this.offset+t<=e))throw Error(\"Reading out of bounds\");}readUint8(){let t=g.Uint8;this.ensureLength(t);let e=this.view.getUint8(this.offset);return this.offset+=t,e;}readUint16(){let t=g.Uint16;this.ensureLength(t);let e=this.view.getUint16(this.offset);return this.offset+=t,e;}readUint32(){let t=g.Uint32;this.ensureLength(t);let e=this.view.getUint32(this.offset);return this.offset+=t,e;}readUint64(){let t=this.readBigUint64();return Number(t);}readBigUint64(){let t=g.BigUint64;this.ensureLength(t);let e=this.view.getBigUint64(this.offset);return this.offset+=t,e;}readInt8(){let t=g.Int8;this.ensureLength(t);let e=this.view.getInt8(this.offset);return this.offset+=t,e;}readInt16(){let t=g.Int16;this.ensureLength(t);let e=this.view.getInt16(this.offset);return this.offset+=t,e;}readInt32(){let t=g.Int32;this.ensureLength(t);let e=this.view.getInt32(this.offset);return this.offset+=t,e;}readInt64(){let t=this.readBigInt64();return Number(t);}readBigInt64(){let t=g.BigInt64;this.ensureLength(t);let e=this.view.getBigInt64(this.offset);return this.offset+=t,e;}readFloat32(){let t=g.Float32;this.ensureLength(t);let e=this.view.getFloat32(this.offset);return this.offset+=t,e;}readFloat64(){let t=g.Float64;this.ensureLength(t);let e=this.view.getFloat64(this.offset);return this.offset+=t,e;}readBytes(t){let e=this.offset,r=e+t,n=this.bytes.subarray(e,r);return this.offset=r,n;}readString(){let t=this.readUint32(),e=this.readBytes(t);return this.decoder.decode(e);}readJson(){let t=this.readString();return JSON.parse(t);}constructor(t){this.bytes=t,c(this,\"offset\",0),c(this,\"view\"),c(this,\"decoder\",new TextDecoder),this.view=v(this.bytes);}};function v(t){return new DataView(t.buffer,t.byteOffset,t.byteLength);}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nimport{ControlType as y}from\"framer\";// ../../library/src/utils/utils.ts\nvar m=\"undefined\"!=typeof window,w=m&&\"function\"==typeof window.requestIdleCallback;// src/code-generation/components/cms/bundled/assert.ts\nfunction I(t,...e){if(!t)throw Error(\"Assertion Error\"+(e.length>0?\": \"+e.join(\" \"):\"\"));}function b(t){throw Error(`Unexpected value: ${t}`);}// src/code-generation/components/cms/bundled/BufferWriter.ts\nvar U=1024,S=1.5,k=t=>2**t-1,L=t=>-(2**(t-1)),B=t=>2**(t-1)-1,E={Uint8:0,Uint16:0,Uint32:0,Uint64:0,BigUint64:0,Int8:L(8),Int16:L(16),Int32:L(32),Int64:Number.MIN_SAFE_INTEGER,BigInt64:-(BigInt(2)**BigInt(63))},M={Uint8:k(8),Uint16:k(16),Uint32:k(32),Uint64:Number.MAX_SAFE_INTEGER,BigUint64:BigInt(2)**BigInt(64)-BigInt(1),Int8:B(8),Int16:B(16),Int32:B(32),Int64:Number.MAX_SAFE_INTEGER,BigInt64:BigInt(2)**BigInt(63)-BigInt(1)};function T(t,e,r,n){I(t>=e,t,\"outside lower bound for\",n),I(t<=r,t,\"outside upper bound for\",n);}var F=class{getOffset(){return this.offset;}slice(t=0,e=this.offset){return this.bytes.slice(t,e);}subarray(t=0,e=this.offset){return this.bytes.subarray(t,e);}ensureLength(t){let e=this.bytes.length;if(this.offset+t<=e)return;let r=new Uint8Array(Math.ceil(e*S)+t);r.set(this.bytes),this.bytes=r,this.view=v(r);}writeUint8(t){T(t,E.Uint8,M.Uint8,\"Uint8\");let e=g.Uint8;this.ensureLength(e),this.view.setUint8(this.offset,t),this.offset+=e;}writeUint16(t){T(t,E.Uint16,M.Uint16,\"Uint16\");let e=g.Uint16;this.ensureLength(e),this.view.setUint16(this.offset,t),this.offset+=e;}writeUint32(t){T(t,E.Uint32,M.Uint32,\"Uint32\");let e=g.Uint32;this.ensureLength(e),this.view.setUint32(this.offset,t),this.offset+=e;}writeUint64(t){T(t,E.Uint64,M.Uint64,\"Uint64\");let e=BigInt(t);this.writeBigUint64(e);}writeBigUint64(t){T(t,E.BigUint64,M.BigUint64,\"BigUint64\");let e=g.BigUint64;this.ensureLength(e),this.view.setBigUint64(this.offset,t),this.offset+=e;}writeInt8(t){T(t,E.Int8,M.Int8,\"Int8\");let e=g.Int8;this.ensureLength(e),this.view.setInt8(this.offset,t),this.offset+=e;}writeInt16(t){T(t,E.Int16,M.Int16,\"Int16\");let e=g.Int16;this.ensureLength(e),this.view.setInt16(this.offset,t),this.offset+=e;}writeInt32(t){T(t,E.Int32,M.Int32,\"Int32\");let e=g.Int32;this.ensureLength(e),this.view.setInt32(this.offset,t),this.offset+=e;}writeInt64(t){T(t,E.Int64,M.Int64,\"Int64\");let e=BigInt(t);this.writeBigInt64(e);}writeBigInt64(t){T(t,E.BigInt64,M.BigInt64,\"BigInt64\");let e=g.BigInt64;this.ensureLength(e),this.view.setBigInt64(this.offset,t),this.offset+=e;}writeFloat32(t){let e=g.Float32;this.ensureLength(e),this.view.setFloat32(this.offset,t),this.offset+=e;}writeFloat64(t){let e=g.Float64;this.ensureLength(e),this.view.setFloat64(this.offset,t),this.offset+=e;}writeBytes(t){let e=t.length;this.ensureLength(e),this.bytes.set(t,this.offset),this.offset+=e;}encodeString(t){let e=this.encodedStrings.get(t);if(e)return e;let r=this.encoder.encode(t);return this.encodedStrings.set(t,r),r;}writeString(t){let e=this.encodeString(t),r=e.length;this.writeUint32(r),this.writeBytes(e);}writeJson(t){let e=JSON.stringify(t);this.writeString(e);}constructor(){c(this,\"offset\",0),c(this,\"bytes\",new Uint8Array(U)),c(this,\"view\",v(this.bytes)),c(this,\"encoder\",new TextEncoder),c(this,\"encodedStrings\",/* @__PURE__ */new Map);}};// src/utils/typeChecks.ts\nfunction x(t){return\"string\"==typeof t;}function N(t){return Number.isFinite(t);}function A(t){return null===t;}// src/code-generation/components/cms/bundled/models/DatabaseItemPointerModel.ts\nvar O=class t{static fromString(e){let[r,n,i]=e.split(\"/\").map(Number);return I(N(r),\"Invalid chunkId\"),I(N(n),\"Invalid offset\"),I(N(i),\"Invalid length\"),new t(r,n,i);}toString(){return`${this.chunkId}/${this.offset}/${this.length}`;}static read(e){let r=e.readUint16(),n=e.readUint32(),i=e.readUint32();return new t(r,n,i);}write(t){t.writeUint16(this.chunkId),t.writeUint32(this.offset),t.writeUint32(this.length);}compare(t){return this.chunkId<t.chunkId?-1:this.chunkId>t.chunkId?1:this.offset<t.offset?-1:this.offset>t.offset?1:(I(this.length===t.length),0);}constructor(t,e,r){this.chunkId=t,this.offset=e,this.length=r;}};// src/code-generation/components/cms/bundled/models/DatabaseValueModel.ts\nimport{ControlType as P}from\"framer\";function R(t){if(A(t))return 0/* Null */;switch(t.type){case P.Array:return 1/* Array */;case P.Boolean:return 2/* Boolean */;case P.Color:return 3/* Color */;case P.Date:return 4/* Date */;case P.Enum:return 5/* Enum */;case P.File:return 6/* File */;case P.ResponsiveImage:return 10/* ResponsiveImage */;case P.Link:return 7/* Link */;case P.Number:return 8/* Number */;case P.Object:return 9/* Object */;case P.RichText:return 11/* RichText */;case P.String:return 12/* String */;case P.VectorSetItem:return 13/* VectorSetItem */;default:b(t);}}function q(e){let r=e.readUint16(),n=[];for(let i=0;i<r;i++){let r=t.read(e);n.push(r);}return{type:P.Array,value:n};}function _(e,r){for(let n of(e.writeUint16(r.value.length),r.value))t.write(e,n);}function D(e,r,n){let i=e.value.length,s=r.value.length;if(i<s)return -1;if(i>s)return 1;for(let s=0;s<i;s++){let i=e.value[s],a=r.value[s],o=t.compare(i,a,n);if(0!==o)return o;}return 0;}function j(t){return{type:P.Boolean,value:0!==t.readUint8()};}function C(t,e){t.writeUint8(e.value?1:0);}function J(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function V(t){return{type:P.Color,value:t.readString()};}function W(t,e){t.writeString(e.value);}function $(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function z(t){let e=t.readInt64(),r=new Date(e);return{type:P.Date,value:r.toISOString()};}function G(t,e){let r=new Date(e.value),n=r.getTime();t.writeInt64(n);}function K(t,e){let r=new Date(t.value),n=new Date(e.value);return r<n?-1:r>n?1:0;}function H(t){return{type:P.Enum,value:t.readString()};}function X(t,e){t.writeString(e.value);}function Q(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function Y(t){return{type:P.File,value:t.readString()};}function Z(t,e){t.writeString(e.value);}function tt(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function te(t){return{type:P.Link,value:t.readJson()};}function tr(t,e){t.writeJson(e.value);}function tn(t,e){let r=JSON.stringify(t.value),n=JSON.stringify(e.value);return r<n?-1:r>n?1:0;}function ti(t){return{type:P.Number,value:t.readFloat64()};}function ts(t,e){t.writeFloat64(e.value);}function ta(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function to(e){let r=e.readUint16(),n={};for(let i=0;i<r;i++){let r=e.readString();n[r]=t.read(e);}return{type:P.Object,value:n};}function tu(e,r){let n=Object.entries(r.value);for(let[r,i]of(e.writeUint16(n.length),n))e.writeString(r),t.write(e,i);}function tl(e,r,n){let i=Object.keys(e.value).sort(),s=Object.keys(r.value).sort();if(i.length<s.length)return -1;if(i.length>s.length)return 1;for(let a=0;a<i.length;a++){let o=i[a],u=s[a];if(o<u)return -1;if(o>u)return 1;let l=e.value[o]??null,h=r.value[u]??null,c=t.compare(l,h,n);if(0!==c)return c;}return 0;}function th(t){return{type:P.ResponsiveImage,value:t.readJson()};}function tc(t,e){t.writeJson(e.value);}function tf(t,e){let r=JSON.stringify(t.value),n=JSON.stringify(e.value);return r<n?-1:r>n?1:0;}function td(t){let e=t.readInt8();if(0===e)return{type:P.RichText,value:t.readUint32()};if(1===e)return{type:P.RichText,value:t.readString()};throw Error(\"Invalid rich text pointer\");}function tg(t,e){if(N(e.value)){t.writeInt8(0),t.writeUint32(e.value);return;}if(x(e.value)){t.writeInt8(1),t.writeString(e.value);return;}throw Error(\"Invalid rich text pointer\");}function tp(t,e){let r=t.value,n=e.value;if(N(r)&&N(n)||x(r)&&x(n))return r<n?-1:r>n?1:0;throw Error(\"Invalid rich text pointer\");}function tv(t){return{type:P.String,value:t.readString()};}function ty(t,e){t.writeString(e.value);}function tm(t,e,r){let n=t.value,i=e.value;return(0/* CaseInsensitive */===r.type&&(n=t.value.toLowerCase(),i=e.value.toLowerCase()),n<i)?-1:n>i?1:0;}function tw(t){return{type:P.VectorSetItem,value:t.readUint32()};}function tI(t,e){t.writeUint32(e.value);}function tb(t,e){let r=t.value,n=e.value;return r<n?-1:r>n?1:0;}(t=>{t.read=function(t){let e=t.readUint8();switch(e){case 0/* Null */:return null;case 1/* Array */:return q(t);case 2/* Boolean */:return j(t);case 3/* Color */:return V(t);case 4/* Date */:return z(t);case 5/* Enum */:return H(t);case 6/* File */:return Y(t);case 7/* Link */:return te(t);case 8/* Number */:return ti(t);case 9/* Object */:return to(t);case 10/* ResponsiveImage */:return th(t);case 11/* RichText */:return td(t);case 12/* String */:return tv(t);case 13/* VectorSetItem */:return tw(t);default:b(e);}},t.write=function(t,e){let r=R(e);if(t.writeUint8(r),!A(e))switch(e.type){case P.Array:return _(t,e);case P.Boolean:return C(t,e);case P.Color:return W(t,e);case P.Date:return G(t,e);case P.Enum:return X(t,e);case P.File:return Z(t,e);case P.Link:return tr(t,e);case P.Number:return ts(t,e);case P.Object:return tu(t,e);case P.ResponsiveImage:return tc(t,e);case P.RichText:return tg(t,e);case P.VectorSetItem:return tI(t,e);case P.String:return ty(t,e);default:b(e);}},t.compare=function(t,e,r){let n=R(t),i=R(e);if(n<i)return -1;if(n>i)return 1;if(A(t)||A(e))return 0;switch(t.type){case P.Array:return I(e.type===P.Array),D(t,e,r);case P.Boolean:return I(e.type===P.Boolean),J(t,e);case P.Color:return I(e.type===P.Color),$(t,e);case P.Date:return I(e.type===P.Date),K(t,e);case P.Enum:return I(e.type===P.Enum),Q(t,e);case P.File:return I(e.type===P.File),tt(t,e);case P.Link:return I(e.type===P.Link),tn(t,e);case P.Number:return I(e.type===P.Number),ta(t,e);case P.Object:return I(e.type===P.Object),tl(t,e,r);case P.ResponsiveImage:return I(e.type===P.ResponsiveImage),tf(t,e);case P.RichText:return I(e.type===P.RichText),tp(t,e);case P.VectorSetItem:return I(e.type===P.VectorSetItem),tb(t,e);case P.String:return I(e.type===P.String),tm(t,e,r);default:b(t);}};})(t||(t={}));// src/code-generation/components/cms/bundled/models/DatabaseDictionaryIndexModel.ts\nvar tU=class e{sortEntries(){this.entries.sort((e,r)=>{for(let n=0;n<this.fieldNames.length;n++){let i=e.values[n],s=r.values[n],a=t.compare(i,s,this.options.collation);if(0!==a)return a;}return e.pointer.compare(r.pointer);});}static deserialize(r){let n=new p(r),i=n.readJson(),s=n.readUint8(),a=[];for(let t=0;t<s;t++){let t=n.readString();a.push(t);}let o=new e(a,{collation:i}),u=n.readUint32();for(let e=0;e<u;e++){let e=[];for(let r=0;r<s;r++){let r=t.read(n);e.push(r);}let r=O.read(n);o.entries.push({values:e,pointer:r});}return o;}serialize(){let e=new F;for(let t of(e.writeJson(this.options.collation),e.writeUint8(this.fieldNames.length),this.fieldNames))e.writeString(t);for(let r of(this.sortEntries(),e.writeUint32(this.entries.length),this.entries)){let{values:n,pointer:i}=r;for(let r of n)t.write(e,r);i.write(e);}return e.subarray();}addItem(t,e){let r=this.fieldNames.map(e=>t.getField(e)??null);this.entries.push({values:r,pointer:e});}constructor(t,e){this.fieldNames=t,this.options=e,c(this,\"entries\",[]);}},tS=3,tk=250,tL=[408,// Request Timeout\n429,// Too Many Requests\n500,// Internal Server Error\n502,// Bad Gateway\n503,// Service Unavailable\n504],tB=async(t,e)=>{let r=0;for(;;){try{let n=await fetch(t,e);if(!tL.includes(n.status)||++r>tS)return n;}catch(t){if(e?.signal?.aborted||++r>tS)throw t;}await tE(r);}};async function tE(t){let e=Math.floor(tk*(Math.random()+1)*2**(t-1));await new Promise(t=>{setTimeout(t,e);});}// src/code-generation/components/cms/bundled/rangeRequest.ts\nasync function tM(t,e){let r=tx(e),n=[],i=0;for(let t of r)n.push(`${t.from}-${t.to-1}`),i+=t.to-t.from;let s=new URL(t),a=n.join(\",\");s.searchParams.set(\"range\",a);let o=await tB(s);if(200!==o.status)throw Error(`Request failed: ${o.status} ${o.statusText}`);let u=await o.arrayBuffer(),l=new Uint8Array(u);if(l.length!==i)throw Error(\"Request failed: Unexpected response length\");let h=new tT,c=0;for(let t of r){let e=t.to-t.from,r=c+e,n=l.subarray(c,r);h.write(t.from,n),c=r;}return e.map(t=>h.read(t.from,t.to-t.from));}var tT=class{read(t,e){for(let r of this.chunks){if(t<r.start)break;if(t>r.end)continue;if(t+e>r.end)break;let n=t-r.start,i=n+e;return r.data.slice(n,i);}throw Error(\"Missing data\");}write(t,e){let r=t,n=r+e.length,i=0,s=this.chunks.length;for(;i<s;i++){let t=this.chunks[i];if(I(t,\"Missing chunk\"),!(r>t.end)){if(r>t.start){let n=r-t.start,i=t.data.subarray(0,n);e=tF(i,e),r=t.start;}break;}}for(;s>i;s--){let t=this.chunks[s-1];if(I(t,\"Missing chunk\"),!(n<t.start)){if(n<t.end){let r=n-t.start,i=t.data.subarray(r);e=tF(e,i),n=t.end;}break;}}let a={start:r,end:n,data:e},o=s-i;this.chunks.splice(i,o,a);}constructor(){c(this,\"chunks\",[]);}};function tF(t,e){let r=t.length+e.length,n=new Uint8Array(r);return n.set(t,0),n.set(e,t.length),n;}function tx(t){I(t.length>0,\"Must have at least one range\");let e=[...t].sort((t,e)=>t.from-e.from),r=[];for(let t of e){let e=r.length-1,n=r[e];n&&t.from<=n.to?r[e]={from:n.from,to:Math.max(n.to,t.to)}:r.push(t);}return r;}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nvar tN=class{async loadModel(){let[t]=await tM(this.options.url,[this.options.range]);return I(t,\"Failed to load model\"),tU.deserialize(t);}async getModel(){return this.modelPromise??=this.loadModel(),this.model??=await this.modelPromise,this.model;}async lookupItems(t){I(t.length===this.fields.length,\"Invalid query length\");let e=await this.getModel(),r=t.reduce((t,e,r)=>t.flatMap(t=>{switch(e.type){case\"All\"/* All */:return[t];case\"Equals\"/* Equals */:return this.queryEquals(t,e,r);case\"NotEquals\"/* NotEquals */:return this.queryNotEquals(t,e,r);case\"LessThan\"/* LessThan */:return this.queryLessThan(t,e,r);case\"GreaterThan\"/* GreaterThan */:return this.queryGreaterThan(t,e,r);case\"Contains\"/* Contains */:return this.queryContains(t,e,r);case\"StartsWith\"/* StartsWith */:return this.queryStartsWith(t,e,r);case\"EndsWith\"/* EndsWith */:return this.queryEndsWith(t,e,r);default:b(e);}}),[e.entries]),n=[];for(let t of r)for(let e of t){let t={};for(let r=0;r<this.options.fieldNames.length;r++){let n=this.options.fieldNames[r],i=e.values[r];t[n]=i;}n.push({pointer:e.pointer.toString(),data:t});}return n;}queryEquals(t,e,r){let n=this.getLeftMost(t,r,e.value),i=this.getRightMost(t,r,e.value),s=t.slice(n,i+1);return s.length>0?[s]:[];}queryNotEquals(t,e,r){let n=this.getLeftMost(t,r,e.value),i=this.getRightMost(t,r,e.value),s=[],a=t.slice(0,n);a.length>0&&s.push(a);let o=t.slice(i+1);return o.length>0&&s.push(o),s;}queryLessThan(t,e,r){let n=this.getRightMost(t,r,null);if(t=t.slice(n+1),e.inclusive){let n=this.getRightMost(t,r,e.value),i=t.slice(0,n+1);return i.length>0?[i]:[];}let i=this.getLeftMost(t,r,e.value),s=t.slice(0,i);return s.length>0?[s]:[];}queryGreaterThan(t,e,r){let n=this.getRightMost(t,r,null);if(t=t.slice(n+1),e.inclusive){let n=this.getLeftMost(t,r,e.value),i=t.slice(n);return i.length>0?[i]:[];}let i=this.getRightMost(t,r,e.value),s=t.slice(i+1);return s.length>0?[s]:[];}queryContains(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.includes(n);});}queryStartsWith(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.startsWith(n);});}queryEndsWith(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.endsWith(n);});}/**\n   * Returns the index of the left most entry that is equal to the target.\n   *\n   * ```text\n   *   Left most\n   *       ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the left most entry that is equal to the target.\n   */getLeftMost(e,r,n){let i=0,s=e.length;for(;i<s;){let a=i+s>>1,o=e[a],u=o.values[r];0>t.compare(u,n,this.collation)?i=a+1:s=a;}return i;}/**\n   * Returns the index of the right most entry that is equal to the target.\n   *\n   * ```text\n   *              Right most\n   *                   ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the right most entry that is equal to the target.\n   */getRightMost(e,r,n){let i=0,s=e.length;for(;i<s;){let a=i+s>>1,o=e[a],u=o.values[r];t.compare(u,n,this.collation)>0?s=a:i=a+1;}return s-1;}/**\n   * Finds all items that are matching the predicate and groups adjacent items together.\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param predicate The predicate to match the values against.\n   * @returns An array of chunks that match the predicate.\n   */findItems(t,e,r){let n=[],i=0;for(let s=0;s<t.length;s++){let a=t[s],o=a.values[e],u=r(o);if(!u){if(i<s){let e=t.slice(i,s);n.push(e);}i=s+1;}}if(i<t.length){let e=t.slice(i);n.push(e);}return n;}constructor(t){this.options=t,c(this,\"schema\"),c(this,\"fields\"),c(this,\"supportedLookupTypes\",[\"All\"/* All */,\"Equals\"/* Equals */,\"NotEquals\"/* NotEquals */,\"LessThan\"/* LessThan */,\"GreaterThan\"/* GreaterThan */,\"Contains\"/* Contains */,\"StartsWith\"/* StartsWith */,\"EndsWith\"/* EndsWith */]),c(this,\"modelPromise\"),c(this,\"model\"),c(this,\"collation\");let e={},r=[];for(let t of this.options.fieldNames){let n=this.options.collectionSchema[t];I(n,\"Missing definition for field\",t),e[t]=n,r.push({type:\"Identifier\",name:t});}this.schema=e,this.fields=r,this.collation=this.options.collation;}},tA=class e{static read(r){let n=new e,i=r.readUint16();for(let e=0;e<i;e++){let e=r.readString(),i=t.read(r);n.setField(e,i);}return n;}write(e){for(let[r,n]of(e.writeUint16(this.fields.size),this.fields))e.writeString(r),t.write(e,n);}getData(){let t={};for(let[e,r]of this.fields)t[e]=r;return t;}setField(t,e){this.fields.set(t,e);}getField(t){return this.fields.get(t);}constructor(){c(this,\"fields\",/* @__PURE__ */new Map);}},tO=class{scanItems(){return this.itemsPromise??=tB(this.url).then(async t=>{if(!t.ok)throw Error(`Request failed: ${t.status} ${t.statusText}`);let e=await t.arrayBuffer(),r=new Uint8Array(e),n=new p(r),i=[],s=n.readUint32();for(let t=0;t<s;t++){let t=n.getOffset(),e=tA.read(n),r=n.getOffset()-t,s=new O(this.id,t,r),a=s.toString(),o={pointer:a,data:e.getData()};this.itemLoader.prime(a,o),i.push(o);}return i;}),this.itemsPromise;}resolveItem(t){return this.itemLoader.load(t);}constructor(t,e){this.id=t,this.url=e,c(this,\"itemsPromise\"),c(this,\"itemLoader\",new d.default(async t=>{let e=t.map(t=>{let e=O.fromString(t);return{from:e.offset,to:e.offset+e.length};}),r=await tM(this.url,e);return r.map((e,r)=>{let n=new p(e),i=tA.read(n),s=t[r];return I(s,\"Missing pointer\"),{pointer:s,data:i.getData()};});},{maxBatchSize:250}));}},tP=class{async scanItems(){let t=await Promise.all(this.chunks.map(async t=>t.scanItems()));return t.flat();}resolveItems(t){return Promise.all(t.map(t=>{let e=O.fromString(t),r=this.chunks[e.chunkId];return I(r,\"Missing chunk\"),r.resolveItem(t);}));}compareItems(t,e){let r=O.fromString(t.pointer),n=O.fromString(e.pointer);return r.compare(n);}compareValues(e,r,n){return t.compare(e,r,n);}constructor(t){this.options=t,c(this,\"id\"),c(this,\"schema\"),c(this,\"indexes\"),c(this,\"resolveRichText\"),c(this,\"resolveVectorSetItem\"),c(this,\"chunks\"),this.chunks=this.options.chunks.map((t,e)=>new tO(e,t)),this.schema=t.schema,this.indexes=t.indexes,this.resolveRichText=t.resolveRichText,this.resolveVectorSetItem=t.resolveVectorSetItem,this.id=t.id;}};export{tP as DatabaseCollection,tN as DatabaseDictionaryIndex};\nexport const __FramerMetadata__ = {\"exports\":{\"DatabaseCollection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DatabaseDictionaryIndex\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{jsx as e}from\"react/jsx-runtime\";import{AutoBreakpointVariant as t,ComponentPresetsConsumer as r,Link as n,motion as o}from\"framer\";// ../../library/src/router/lazy.tsx\nimport{isValidElement as i}from\"react\";// ../../library/src/utils/utils.ts\nvar a,l=\"undefined\"!=typeof window,f=l&&\"function\"==typeof window.requestIdleCallback,u=\"preload\";function c(e){return\"object\"==typeof e&&null!==e&&!/*#__PURE__*/i(e)&&u in e;}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{Fragment as p,createElement as s}from\"react\";// src/code-generation/components/cms/bundled/assert.ts\nfunction m(e,...t){if(!e)throw Error(\"Assertion Error\"+(t.length>0?\": \"+t.join(\" \"):\"\"));}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nvar d=((a=d||{})[a.Fragment=1]=\"Fragment\",a[a.Link=2]=\"Link\",a[a.Module=3]=\"Module\",a[a.Tag=4]=\"Tag\",a[a.Text=5]=\"Text\",a);function g(i){let a=/* @__PURE__ */new Map;return l=>{let f=a.get(l);if(f)return f;let u=JSON.parse(l),d=function a(l){switch(l[0]){case 1/* Fragment */:{let[,...e]=l,t=e.map(a);return /*#__PURE__*/s(p,void 0,...t);}case 2/* Link */:{let[,e,...t]=l,r=t.map(a);return /*#__PURE__*/s(n,e,...r);}case 3/* Module */:{let[,n,o,f,u]=l;for(let e of f){let t=o[e];t&&(o[e]=a(t));}for(let e of u){let t=o[e];if(\"string\"!=typeof t)continue;let r=i[t];r&&(c(r)&&r.preload(),o[e]=r);}let p=i[n];return m(p,\"Module not found\"),c(p)&&p.preload(),/*#__PURE__*/e(r,{componentIdentifier:n,children:r=>/*#__PURE__*/e(t,{component:p,props:{...r,...o}})});}case 4/* Tag */:{let[,e,t,...r]=l,n=r.map(a);if(\"a\"===e)return /*#__PURE__*/s(o.a,t,...n);return /*#__PURE__*/s(e,t,...n);}case 5/* Text */:{let[,e]=l;return e;}}}(u);return a.set(l,d),d;};}export{d as RichTextJsonType,g as getRichTextJsonResolver};\nexport const __FramerMetadata__ = {\"exports\":{\"RichTextJsonType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRichTextJsonResolver\":{\"type\":\"reactComponent\",\"name\":\"getRichTextJsonResolver\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (80b8aa5)\nimport{addPropertyControls as e,ControlType as l,lazy as t,QueryEngine as a}from\"framer\";import{DatabaseCollection as r,DatabaseDictionaryIndex as o}from\"./r7PxWcs2v-0.js\";import{getRichTextJsonResolver as i}from\"./r7PxWcs2v-1.js\";let m=t(()=>import(\"https://framerusercontent.com/modules/saZuWMICab3TKMs1DNmA/A1Ev6y0adbgLTy62s8Jc/beiblHvVn.js\")),c=t(()=>import(\"https://framerusercontent.com/modules/saVsH8TUhs4DvGddQu2Z/XRcx3A1qCIDbZw871nfP/f9nguGFEa.js\")),n=t(()=>import(\"https://framerusercontent.com/modules/2WWOIoHUjPdybLsnU08o/EzYShTpVKtpkv0EaUq7t/g0NVrfFMl.js\")),s=t(()=>import(\"https://framerusercontent.com/modules/rgAwgZFgU5OOeFy2u2Eb/uL0FvhjL4DRLCtQlU1Ql/h02PctQeP.js\")),u={cqrwn7agJ:{isNullable:!0,type:l.String},createdAt:{isNullable:!0,type:l.Date},dKpyqCmNn:{isNullable:!0,type:l.Boolean},E9iXRl4lE:{isNullable:!0,type:l.String},hcUUNFjJ3:{isNullable:!0,type:l.String},id:{isNullable:!1,type:l.String},iTylXDINq:{isNullable:!0,type:l.String},IWScfuIhY:{isNullable:!0,type:l.ResponsiveImage},k4kijZ9DS:{isNullable:!0,type:l.ResponsiveImage},luU2N0bHa:{isNullable:!0,type:l.String},mxN_w9cQJ:{isNullable:!0,type:l.String},nextItemId:{isNullable:!0,type:l.String},previousItemId:{isNullable:!0,type:l.String},QnLwm1_6A:{isNullable:!0,type:l.ResponsiveImage},TcqQJh6y5:{definition:{isNullable:!0,type:l.String},isNullable:!0,type:l.Array},tLmDaPV8p:{isNullable:!0,type:l.String},updatedAt:{isNullable:!0,type:l.Date},xVGLhY1lq:{isNullable:!0,type:l.RichText},Y3H8JA5DA:{isNullable:!0,type:l.String},ZoL2d3fi8:{isNullable:!0,type:l.String}},d=[\"id\"],f={type:1},p=[\"previousItemId\"],y=[\"nextItemId\"],g=[\"id\",\"Y3H8JA5DA\"],h=[\"Y3H8JA5DA\",\"id\"],x=[\"cqrwn7agJ\"],N={type:0},w=[\"Y3H8JA5DA\"],v=[\"ZoL2d3fi8\"],S=[\"dKpyqCmNn\"],I=[\"E9iXRl4lE\"],L=[\"luU2N0bHa\"],R=[\"TcqQJh6y5\"],P=[\"IWScfuIhY\"],b=[\"QnLwm1_6A\"],U=[\"k4kijZ9DS\"],W=[\"xVGLhY1lq\"],A=[\"tLmDaPV8p\"],C=[\"mxN_w9cQJ\"],D=[\"hcUUNFjJ3\"],V=[\"iTylXDINq\"],J=[],q=e=>{let l=J[e];if(l)return l().then(e=>e.default);},Y={\"local-module:canvasComponent/beiblHvVn:default\":m,\"local-module:canvasComponent/f9nguGFEa:default\":c,\"local-module:canvasComponent/g0NVrfFMl:default\":n,\"local-module:canvasComponent/h02PctQeP:default\":s},H=i(Y),T=new a,F={collectionByLocaleId:{default:new r({chunks:[new URL(\"./r7PxWcs2v-chunk-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")],id:\"866f16e6-c294-4219-ab56-74ad831d2b06default\",indexes:[new o({collation:f,collectionSchema:u,fieldNames:d,range:{from:0,to:121},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:f,collectionSchema:u,fieldNames:p,range:{from:121,to:241},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:f,collectionSchema:u,fieldNames:y,range:{from:241,to:357},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:f,collectionSchema:u,fieldNames:g,range:{from:357,to:714},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:f,collectionSchema:u,fieldNames:h,range:{from:714,to:1071},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:x,range:{from:1071,to:1409},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:w,range:{from:1409,to:1704},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:v,range:{from:1704,to:2389},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:S,range:{from:2389,to:2469},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:I,range:{from:2469,to:2571},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:L,range:{from:2571,to:2647},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:R,range:{from:2647,to:2829},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:P,range:{from:2829,to:4589},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:b,range:{from:4589,to:6342},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:U,range:{from:6342,to:6966},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:W,range:{from:6966,to:177144},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:A,range:{from:177144,to:254302},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:C,range:{from:254302,to:254498},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:D,range:{from:254498,to:255015},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")}),new o({collation:N,collectionSchema:u,fieldNames:V,range:{from:255015,to:255166},url:new URL(\"./r7PxWcs2v-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/MLEA4OUaaTUrX59KP3Az/ICKOTvU8OaU7cfATxppI/r7PxWcs2v.js\").href.replace(\"/modules/\",\"/cms/\")})],resolveRichText:H,resolveVectorSetItem:q,schema:u})},displayName:\"Guides\",id:\"866f16e6-c294-4219-ab56-74ad831d2b06\"};export default F;e(F,{cqrwn7agJ:{defaultValue:\"\",title:\"Title\",type:l.String},Y3H8JA5DA:{preventLocalization:!0,title:\"Slug\",type:l.String},ZoL2d3fi8:{defaultValue:\"\",title:\"Description\",type:l.String},dKpyqCmNn:{defaultValue:!0,title:\"Featured\",type:l.Boolean},E9iXRl4lE:{dataIdentifier:\"local-module:collection/Yzq0FGXms:default\",title:\"Team\",type:l.CollectionReference},luU2N0bHa:{dataIdentifier:\"local-module:collection/IWsBkT3Hw:default\",title:\"Industry\",type:l.CollectionReference},TcqQJh6y5:{dataIdentifier:\"local-module:collection/zW0VB24gC:default\",title:\"Category\",type:l.MultiCollectionReference},IWScfuIhY:{title:\"Book cover\",type:l.ResponsiveImage},QnLwm1_6A:{title:\"Image\",type:l.ResponsiveImage},k4kijZ9DS:{title:\"Popup image\",type:l.ResponsiveImage},xVGLhY1lq:{defaultValue:\"\",title:\"Content\",type:l.RichText},tLmDaPV8p:{defaultValue:\"\",title:\"Add text (calc read time)\",type:l.String},mxN_w9cQJ:{defaultValue:\"\",title:\"Form Title\",type:l.String},hcUUNFjJ3:{defaultValue:\"\",title:\"Form description\",type:l.String},iTylXDINq:{defaultValue:\"\",title:\"CTA button\",type:l.String},createdAt:{title:\"Created\",type:l.Date},updatedAt:{title:\"Updated\",type:l.Date},previousItemId:{dataIdentifier:\"local-module:collection/r7PxWcs2v:default\",title:\"Previous\",type:l.CollectionReference},nextItemId:{dataIdentifier:\"local-module:collection/r7PxWcs2v:default\",title:\"Next\",type:l.CollectionReference}});export const enumToDisplayNameFunctions={};export const utils={async getSlugByRecordId(e,l){let[t]=await T.query({from:{data:F,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"Y3H8JA5DA\",type:\"Identifier\"}],where:{left:{name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},l);return t?.Y3H8JA5DA;},async getRecordIdBySlug(e,l){let[t]=await T.query({from:{data:F,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"id\",type:\"Identifier\"}],where:{left:{name:\"Y3H8JA5DA\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},l);return t?.id;}};\nexport const __FramerMetadata__ = {\"exports\":{\"utils\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"enumToDisplayNameFunctions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"data\",\"name\":\"data\",\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerEnumToDisplayNameUtils\":\"2\",\"framerSlug\":\"Y3H8JA5DA\",\"framerCollectionId\":\"r7PxWcs2v\",\"framerRecordIdKey\":\"id\",\"framerData\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"false\",\"framerCollectionUtils\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b3492b4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-SemiBold\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-SemiBoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/yDtI2UI8XcEg1W2je9XPN3Noo.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/vxBnBhH8768IFAXAb4Qf6wQHKs.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zSsEuoJdh8mcFVk976C05ZfQr8.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/b8ezwLrN7h2AUoPEENcsTMVJ0.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/mvNEIBLyHbscgHtwfsByjXUz3XY.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/6FI2EneKzM3qBy5foOZXey7coCA.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/fuyXZpVvOjq8NesCOfgirHCWyg.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/NHHeAKJVP0ZWHk5YZnQQChIsBM.woff2\",weight:\"600\"}]}];export const css=['.framer-qhWN1 .framer-styles-preset-wm11v2:not(.rich-text-wrapper), .framer-qhWN1 .framer-styles-preset-wm11v2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: -0.02em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: capitalize; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-qhWN1 .framer-styles-preset-wm11v2:not(.rich-text-wrapper), .framer-qhWN1 .framer-styles-preset-wm11v2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: -0.02em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: capitalize; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-qhWN1 .framer-styles-preset-wm11v2:not(.rich-text-wrapper), .framer-qhWN1 .framer-styles-preset-wm11v2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: -0.02em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: capitalize; } }'];export const className=\"framer-qhWN1\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (9f612b6)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-f2aNv .framer-styles-preset-1wicq5s:not(.rich-text-wrapper), .framer-f2aNv .framer-styles-preset-1wicq5s.rich-text-wrapper a { --framer-link-current-text-decoration: none; --framer-link-hover-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-link-text-decoration: none; }\"];export const className=\"framer-f2aNv\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a1faaee)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,SVG,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOnVariantChange,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"YBdZzCGA3\",\"c8J1kE7_B\"];const serializationHash=\"framer-vGCvs\";const variantClassNames={c8J1kE7_B:\"framer-v-eehs0m\",YBdZzCGA3:\"framer-v-qxfc98\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Variant 1\":\"YBdZzCGA3\",\"Variant 2\":\"c8J1kE7_B\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"YBdZzCGA3\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"YBdZzCGA3\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onAppear1m4d55t=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(\"c8J1kE7_B\",true),200);});useOnVariantChange(baseVariant,{default:onAppear1m4d55t});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-qxfc98\",className,classNames),\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"YBdZzCGA3\",ref:refBinding,style:{...style},...addPropertyOverrides({c8J1kE7_B:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(SVG,{className:\"framer-ja015i\",layoutDependency:layoutDependency,layoutId:\"XV2RlBqYT\",requiresOverflowVisible:false,style:{rotate:-4},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16 15.2\" overflow=\"visible\"><path d=\"M 0 0.8 C 0 0.358 0.364 0 0.794 0 L 15.206 0 C 15.645 0 16 0.356 16 0.8 L 16 12 C 16 12.442 15.636 12.8 15.206 12.8 L 0.794 12.8 C 0.582 12.8 0.38 12.715 0.231 12.565 C 0.082 12.415 -0.001 12.211 0 12 Z M 1.6 1.6 L 1.6 11.2 L 14.4 11.2 L 14.4 1.6 Z M 2.4 13.6 L 13.6 13.6 L 13.6 15.2 L 2.4 15.2 Z\" fill=\"var(--token-00f38972-763d-4c85-83cc-eab75f029d41, rgb(63, 63, 63)) /* {&quot;name&quot;:&quot;Text Strong&quot;} */\"></path></svg>',variants:{c8J1kE7_B:{rotate:undefined}},withExternalLayout:true,children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-db7mq5\",layoutDependency:layoutDependency,layoutId:\"DUHJkUGaY\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16 12.8\" overflow=\"visible\"><path d=\"M 0 0.8 C 0 0.358 0.364 0 0.794 0 L 15.206 0 C 15.645 0 16 0.356 16 0.8 L 16 12 C 16 12.442 15.636 12.8 15.206 12.8 L 0.794 12.8 C 0.582 12.8 0.38 12.715 0.231 12.565 C 0.082 12.415 -0.001 12.211 0 12 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1licdcm\",layoutDependency:layoutDependency,layoutId:\"hVHBO1WNh\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12.8 9.6\" overflow=\"visible\"><path d=\"M 0 0 L 0 9.6 L 12.8 9.6 L 12.8 0 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-grcr2x\",layoutDependency:layoutDependency,layoutId:\"TOcZ7TW2N\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 11.2 1.6\" overflow=\"visible\"><path d=\"M 0 0 L 11.2 0 L 11.2 1.6 L 0 1.6 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true})]}),/*#__PURE__*/_jsxs(SVG,{className:\"framer-1362ag0\",layoutDependency:layoutDependency,layoutId:\"Gycu9ycAv\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16 15.2\" overflow=\"visible\"><path d=\"M 0 0.8 C 0 0.358 0.364 0 0.794 0 L 15.206 0 C 15.645 0 16 0.356 16 0.8 L 16 12 C 16 12.442 15.636 12.8 15.206 12.8 L 0.794 12.8 C 0.582 12.8 0.38 12.715 0.231 12.565 C 0.082 12.415 -0.001 12.211 0 12 Z M 1.6 1.6 L 1.6 11.2 L 14.4 11.2 L 14.4 1.6 Z M 2.4 13.6 L 13.6 13.6 L 13.6 15.2 L 2.4 15.2 Z\" fill=\"var(--token-00f38972-763d-4c85-83cc-eab75f029d41, rgb(63, 63, 63)) /* {&quot;name&quot;:&quot;Text Strong&quot;} */\"></path></svg>',withExternalLayout:true,children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-dh28f3\",layoutDependency:layoutDependency,layoutId:\"AZwBU0a8o\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16 12.8\" overflow=\"visible\"><path d=\"M 0 0.8 C 0 0.358 0.364 0 0.794 0 L 15.206 0 C 15.645 0 16 0.356 16 0.8 L 16 12 C 16 12.442 15.636 12.8 15.206 12.8 L 0.794 12.8 C 0.582 12.8 0.38 12.715 0.231 12.565 C 0.082 12.415 -0.001 12.211 0 12 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1ec0usq\",layoutDependency:layoutDependency,layoutId:\"QimQ6Vgoy\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12.8 9.6\" overflow=\"visible\"><path d=\"M 0 0 L 0 9.6 L 12.8 9.6 L 12.8 0 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1g65b7p\",layoutDependency:layoutDependency,layoutId:\"yTVrqvKn1\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 11.2 1.6\" overflow=\"visible\"><path d=\"M 0 0 L 11.2 0 L 11.2 1.6 L 0 1.6 Z\" fill=\"transparent\"></path></svg>',withExternalLayout:true})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-vGCvs.framer-1an3ypo, .framer-vGCvs .framer-1an3ypo { display: block; }\",\".framer-vGCvs.framer-qxfc98 { height: 20px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 20px; }\",\".framer-vGCvs .framer-ja015i { height: 15px; left: 2px; position: absolute; top: 22px; width: 16px; }\",\".framer-vGCvs .framer-db7mq5, .framer-vGCvs .framer-dh28f3 { height: 13px; left: 0px; position: absolute; top: 0px; width: 16px; }\",\".framer-vGCvs .framer-1licdcm, .framer-vGCvs .framer-1ec0usq { height: 10px; left: 2px; position: absolute; top: 2px; width: 13px; }\",\".framer-vGCvs .framer-grcr2x, .framer-vGCvs .framer-1g65b7p { height: 2px; left: 3px; position: absolute; top: 14px; width: 11px; }\",\".framer-vGCvs .framer-1362ag0 { height: 15px; left: 2px; position: absolute; top: 2px; width: 16px; }\",\".framer-vGCvs.framer-v-eehs0m .framer-ja015i { top: 2px; }\",\".framer-vGCvs.framer-v-eehs0m .framer-1362ag0 { top: -18px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 20\n * @framerIntrinsicWidth 20\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"c8J1kE7_B\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerIZANoJeBS=withCSS(Component,css,\"framer-vGCvs\");export default FramerIZANoJeBS;FramerIZANoJeBS.displayName=\"Watch Icon\";FramerIZANoJeBS.defaultProps={height:20,width:20};addPropertyControls(FramerIZANoJeBS,{variant:{options:[\"YBdZzCGA3\",\"c8J1kE7_B\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerIZANoJeBS,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerIZANoJeBS\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"20\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"20\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"c8J1kE7_B\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./IZANoJeBS.map","// Generated by Framer (c78d32d)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"a2Pfl8NT8\",\"QPwKrwcEj\"];const serializationHash=\"framer-bRYu8\";const variantClassNames={a2Pfl8NT8:\"framer-v-1ycbk88\",QPwKrwcEj:\"framer-v-1ue4may\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Variant 1\":\"a2Pfl8NT8\",\"Variant 2\":\"QPwKrwcEj\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"a2Pfl8NT8\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"a2Pfl8NT8\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1ycbk88\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"a2Pfl8NT8\",ref:refBinding,style:{...style},...addPropertyOverrides({QPwKrwcEj:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-mo1u4v\",layoutDependency:layoutDependency,layoutId:\"r_fffvBiT\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12 12.001\" overflow=\"visible\"><path d=\"M 10.004 3.408 L 1.412 12.001 L 0 10.589 L 8.593 1.997 L 1.018 1.997 L 1.018 0 L 12 0 L 12 10.982 L 10.003 10.982 L 10.003 3.408 Z\" fill=\"rgb(255, 255, 255)\"></path></svg>',withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1rhihmg\",layoutDependency:layoutDependency,layoutId:\"SeFU_RAfq\",requiresOverflowVisible:false,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12 12.001\" overflow=\"visible\"><path d=\"M 10.004 3.408 L 1.412 12.001 L 0 10.589 L 8.593 1.997 L 1.018 1.997 L 1.018 0 L 12 0 L 12 10.982 L 10.003 10.982 L 10.003 3.408 Z\" fill=\"rgb(255, 255, 255)\"></path></svg>',withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-bRYu8.framer-fe8ewu, .framer-bRYu8 .framer-fe8ewu { display: block; }\",\".framer-bRYu8.framer-1ycbk88 { gap: 40px; height: 16px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 16px; }\",\".framer-bRYu8 .framer-mo1u4v { height: 12px; left: 2px; position: absolute; top: 2px; width: 12px; }\",\".framer-bRYu8 .framer-1rhihmg { height: 12px; left: -18px; position: absolute; top: 22px; width: 12px; }\",\".framer-bRYu8.framer-v-1ue4may .framer-mo1u4v { left: 22px; top: -18px; }\",\".framer-bRYu8.framer-v-1ue4may .framer-1rhihmg { left: 2px; top: 2px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 16\n * @framerIntrinsicWidth 16\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"QPwKrwcEj\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerVvCMTUFh2=withCSS(Component,css,\"framer-bRYu8\");export default FramerVvCMTUFh2;FramerVvCMTUFh2.displayName=\"Animated Arrow - btn\";FramerVvCMTUFh2.defaultProps={height:16,width:16};addPropertyControls(FramerVvCMTUFh2,{variant:{options:[\"a2Pfl8NT8\",\"QPwKrwcEj\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerVvCMTUFh2,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerVvCMTUFh2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"16\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"16\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"QPwKrwcEj\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VvCMTUFh2.map","// Generated by Framer (9f612b6)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,Link,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/uAweu5N4lti6lvETib5W/1FpyBnDLkjpPvO81jNWF/beG6djMXw.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/AcBzTUpxFDj19bXy52eh/5wxypHwCghbsh9ijI8Z0/ro7OPezbn.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/YEuOQ8drct6GDtm1bppw/EJOJd1JXqZW3AfRsVEa7/Va4vzXXno.js\";import WatchIcon from\"https://framerusercontent.com/modules/0eUFfTGEHpx6xBSQb0BY/8EeuXqItirFGp5o24ogk/IZANoJeBS.js\";import AnimatedArrowBtn from\"https://framerusercontent.com/modules/yXiwKRHULqgQ6yq40ppL/BZt1kuGVDiP3z77vrKjp/VvCMTUFh2.js\";const AnimatedArrowBtnFonts=getFonts(AnimatedArrowBtn);const WatchIconFonts=getFonts(WatchIcon);const enabledGestures={gnZTy_eoo:{hover:true},J3HdLX0T8:{hover:true}};const cycleOrder=[\"J3HdLX0T8\",\"gnZTy_eoo\"];const serializationHash=\"framer-4gvgj\";const variantClassNames={gnZTy_eoo:\"framer-v-k6inkz\",J3HdLX0T8:\"framer-v-jsc8hs\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const aAdyma8aG=undefined;const fNBeDUExE=undefined;const tr3Vhrj1U=undefined;const transition1={delay:0,duration:.4,ease:[.44,0,.56,1],type:\"tween\"};const transition2={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Large:\"J3HdLX0T8\",Secondary:\"gnZTy_eoo\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,link,newTab,title,width,...props})=>{return{...props,aAdyma8aG:link??props.aAdyma8aG,fNBeDUExE:newTab??props.fNBeDUExE,tr3Vhrj1U:title??props.tr3Vhrj1U??\"Request Access\",variant:humanReadableVariantMap[props.variant]??props.variant??\"J3HdLX0T8\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,tr3Vhrj1U,aAdyma8aG,fNBeDUExE,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"J3HdLX0T8\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapd3nuad=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"gnZTy_eoo\");});const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"gnZTy_eoo-hover\")return false;if(baseVariant===\"gnZTy_eoo\")return false;return true;};const isDisplayed1=()=>{if(gestureVariant===\"gnZTy_eoo-hover\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({gnZTy_eoo:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:aAdyma8aG,motionChild:true,nodeId:\"J3HdLX0T8\",openInNewTab:fNBeDUExE,scopeId:\"S574DveTT\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-jsc8hs\",className,classNames)} framer-pw0zmt`,\"data-framer-name\":\"Large\",layoutDependency:layoutDependency,layoutId:\"J3HdLX0T8\",ref:refBinding,style:{background:\"linear-gradient(0deg, rgb(30, 30, 30) 0%, rgb(63, 63, 63) 100%)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,boxShadow:\"0px 0.7113342898827977px 0.7113342898827977px -0.6000000000000001px rgba(0, 0, 0, 0.19), 0px 1.9371521717053837px 1.9371521717053837px -1.2000000000000002px rgba(0, 0, 0, 0.19), 0px 4.253285051195417px 4.253285051195417px -1.7999999999999998px rgba(0, 0, 0, 0.18), 0px 9.4413216807344px 9.4413216807344px -2.4000000000000004px rgba(0, 0, 0, 0.17), 0px 24px 24px -3px rgba(0, 0, 0, 0.13)\",...style},variants:{\"J3HdLX0T8-hover\":{boxShadow:\"inset 2px 4px 6px 0px rgb(30, 30, 30)\"},gnZTy_eoo:{background:\"rgba(0, 0, 0, 0)\",boxShadow:\"none\"}},...addPropertyOverrides({\"gnZTy_eoo-hover\":{\"data-framer-name\":undefined},\"J3HdLX0T8-hover\":{\"data-framer-name\":undefined},gnZTy_eoo:{\"data-framer-name\":\"Secondary\",\"data-highlight\":true,onTap:onTapd3nuad}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-wm11v2\",\"data-styles-preset\":\"beG6djMXw\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Request Access\"})}),className:\"framer-1gt2s1b\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"XhEAkyacA\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},text:tr3Vhrj1U,variants:{\"gnZTy_eoo-hover\":{\"--extracted-r6o4lv\":\"var(--token-00f38972-763d-4c85-83cc-eab75f029d41, rgb(63, 63, 63))\"},gnZTy_eoo:{\"--extracted-r6o4lv\":\"var(--token-73b9004d-2064-4ac1-849a-817e46b0888c, rgb(111, 111, 111))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"gnZTy_eoo-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-wm11v2\",\"data-styles-preset\":\"beG6djMXw\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-00f38972-763d-4c85-83cc-eab75f029d41, rgb(63, 63, 63)))\"},children:/*#__PURE__*/_jsx(Link,{href:aAdyma8aG,motionChild:true,nodeId:\"XhEAkyacA\",openInNewTab:false,relValues:[],scopeId:\"S574DveTT\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1wicq5s\",\"data-styles-preset\":\"ro7OPezbn\",children:\"Request Access\"})})})})},gnZTy_eoo:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-wm11v2\",\"data-styles-preset\":\"beG6djMXw\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-73b9004d-2064-4ac1-849a-817e46b0888c, rgb(111, 111, 111)))\"},children:/*#__PURE__*/_jsx(Link,{href:aAdyma8aG,motionChild:true,nodeId:\"XhEAkyacA\",openInNewTab:false,relValues:[],scopeId:\"S574DveTT\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1ljlzbp\",\"data-styles-preset\":\"Va4vzXXno\",children:\"Request Access\"})})})})}},baseVariant,gestureVariant)}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:16,width:\"16px\",y:(componentViewport?.y||0)+(13+((componentViewport?.height||48)-26-16)/2),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1m122n5-container\",layoutDependency:layoutDependency,layoutId:\"KwHo06esD-container\",nodeId:\"KwHo06esD\",rendersWithMotion:true,scopeId:\"S574DveTT\",children:/*#__PURE__*/_jsx(AnimatedArrowBtn,{height:\"100%\",id:\"KwHo06esD\",layoutId:\"KwHo06esD\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"a2Pfl8NT8\"),width:\"100%\",...addPropertyOverrides({\"J3HdLX0T8-hover\":{variant:matchVariant(\"QPwKrwcEj\")}},baseVariant,gestureVariant)})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({\"gnZTy_eoo-hover\":{height:20,width:\"20px\",y:(componentViewport?.y||0)+(13+((componentViewport?.height||48)-26-20)/2)}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ye086j-container\",layoutDependency:layoutDependency,layoutId:\"UfzcEE9ti-container\",nodeId:\"UfzcEE9ti\",rendersWithMotion:true,scopeId:\"S574DveTT\",style:{opacity:0},variants:{\"gnZTy_eoo-hover\":{opacity:1}},children:/*#__PURE__*/_jsx(WatchIcon,{height:\"100%\",id:\"UfzcEE9ti\",layoutId:\"UfzcEE9ti\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"c8J1kE7_B\"),width:\"100%\",...addPropertyOverrides({\"gnZTy_eoo-hover\":{variant:matchVariant(\"YBdZzCGA3\")}},baseVariant,gestureVariant)})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-4gvgj.framer-pw0zmt, .framer-4gvgj .framer-pw0zmt { display: block; }\",\".framer-4gvgj.framer-jsc8hs { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 13px 24px 13px 24px; position: relative; text-decoration: none; width: min-content; }\",\".framer-4gvgj .framer-1gt2s1b { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-4gvgj .framer-1m122n5-container { flex: none; height: 16px; position: relative; width: 16px; }\",\".framer-4gvgj .framer-1ye086j-container { flex: none; height: 20px; position: relative; width: 20px; }\",\".framer-4gvgj.framer-v-k6inkz.framer-jsc8hs { gap: 12px; justify-content: flex-start; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 48\n * @framerIntrinsicWidth 200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"gnZTy_eoo\":{\"layout\":[\"auto\",\"auto\"]},\"Hk3mSC2nT\":{\"layout\":[\"auto\",\"auto\"]},\"N3FuP87Sn\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"tr3Vhrj1U\":\"title\",\"aAdyma8aG\":\"link\",\"fNBeDUExE\":\"newTab\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerS574DveTT=withCSS(Component,css,\"framer-4gvgj\");export default FramerS574DveTT;FramerS574DveTT.displayName=\"Primary button\";FramerS574DveTT.defaultProps={height:48,width:200};addPropertyControls(FramerS574DveTT,{variant:{options:[\"J3HdLX0T8\",\"gnZTy_eoo\"],optionTitles:[\"Large\",\"Secondary\"],title:\"Variant\",type:ControlType.Enum},tr3Vhrj1U:{defaultValue:\"Request Access\",displayTextArea:false,title:\"Title\",type:ControlType.String},ontr3Vhrj1UChange:{changes:\"tr3Vhrj1U\",type:ControlType.ChangeHandler},aAdyma8aG:{title:\"Link\",type:ControlType.Link},fNBeDUExE:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},onfNBeDUExEChange:{changes:\"fNBeDUExE\",type:ControlType.ChangeHandler}});addFonts(FramerS574DveTT,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...AnimatedArrowBtnFonts,...WatchIconFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});FramerS574DveTT.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(AnimatedArrowBtn,{},context),forwardLoader(WatchIcon,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerS574DveTT\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"tr3Vhrj1U\\\":\\\"title\\\",\\\"aAdyma8aG\\\":\\\"link\\\",\\\"fNBeDUExE\\\":\\\"newTab\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"48\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"gnZTy_eoo\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Hk3mSC2nT\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"N3FuP87Sn\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"200\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./S574DveTT.map","// Generated by Framer (b3492b4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Bold\",\"Inter-Bold\",\"Inter-ExtraBoldItalic\",\"Inter-BoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/if4nAQEfO1l3iBiurvlUSTaMA.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/GdJ7SQjcmkU1sz7lk5lMpKUlKY.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/sOA6LVskcCqlqggyjIZe0Zh39UQ.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/zUCSsMbWBcHOQoATrhsPVigkc.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/6eYp9yIAUvPZY7o0yfI4e2OP6g.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/8AYN209PzikkmqPEbOGJlpgu6M.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/L9nHaKi7ULzGWchEehsfwttxOwM.woff2\",weight:\"800\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"}]}];export const css=['.framer-qCkX0 .framer-styles-preset-13elaic:not(.rich-text-wrapper), .framer-qCkX0 .framer-styles-preset-13elaic.rich-text-wrapper h1 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 56px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: capitalize; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-qCkX0 .framer-styles-preset-13elaic:not(.rich-text-wrapper), .framer-qCkX0 .framer-styles-preset-13elaic.rich-text-wrapper h1 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 48px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: capitalize; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-qCkX0 .framer-styles-preset-13elaic:not(.rich-text-wrapper), .framer-qCkX0 .framer-styles-preset-13elaic.rich-text-wrapper h1 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 40px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.05em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-00f38972-763d-4c85-83cc-eab75f029d41, #3f3f3f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: capitalize; } }'];export const className=\"framer-qCkX0\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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U,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,QAAQ,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,MAAM,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,MAAM,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,QAAQ,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,SAAS,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAA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,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,CAAOC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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"}