"use strict";(self.webpackChunkalvanon_analytics_platform_frontend=self.webpackChunkalvanon_analytics_platform_frontend||[]).push([[2709],{60713(e,t,n){n.d(t,{Do:()=>a,Fh:()=>d});var r=n(39437),i=n(24922);const a=/\bvoid\s+main\s*\(\s*\)\s*{/g;function o(e){return e.replace(/^[ \t]*#include +<([\w\d./]+)>/gm,function(e,t){let n=r.ShaderChunk[t];return n?o(n):e})}const s=[];for(let e=0;e<256;e++)s[e]=(e<16?"0":"")+e.toString(16);const l=Object.assign||function(){let e=arguments[0];for(let t=1,n=arguments.length;t/gm,"\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n"))),p){let e=p({vertexShader:t,fragmentShader:n});t=e.vertexShader,n=e.fragmentShader}if(d){let e=[];n=n.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,t=>(e.push(t),"")),m=`${d}\n${e.join("\n")}\n${m}`}if(v){const e=`\nuniform float ${v};\n`;a=e+a,u=e+u}return c&&(a=`${a}\nvoid troikaVertexTransform${i}(inout vec3 position, inout vec3 normal, inout vec2 uv) {\n ${c}\n}\n`,s=`\ntroika_position_${i} = vec3(position);\ntroika_normal_${i} = vec3(normal);\ntroika_uv_${i} = vec2(uv);\ntroikaVertexTransform${i}(troika_position_${i}, troika_normal_${i}, troika_uv_${i});\n${s}\n`,t=(t=`vec3 troika_position_${i};\nvec3 troika_normal_${i};\nvec2 troika_uv_${i};\n${t}\n`).replace(/\b(position|normal|uv)\b/g,(e,t,n,r)=>/\battribute\s+vec[23]\s+$/.test(r.substr(0,n))?t:`troika_${t}_${i}`),e.map&&e.map.channel>0||(t=t.replace(/\bMAP_UV\b/g,`troika_uv_${i}`))),{vertexShader:t=h(t,i,a,s,l),fragmentShader:n=h(n,i,u,f,m)}}(this,r,t,n);u=f[s]=e}r.vertexShader=u.vertexShader,r.fragmentShader=u.fragmentShader,l(r.uniforms,this.uniforms),t.timeUniform&&(r.uniforms[t.timeUniform]={get value(){return Date.now()-c}}),this[a]&&this[a](r)},M=function(){return $(t.chained?e:e.clone())},$=function(r){const i=Object.create(r,b);return Object.defineProperty(i,"baseMaterial",{value:e}),Object.defineProperty(i,"id",{value:m++}),i.uuid=function(){const e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,n=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return(s[255&e]+s[e>>8&255]+s[e>>16&255]+s[e>>24&255]+"-"+s[255&t]+s[t>>8&255]+"-"+s[t>>16&15|64]+s[t>>24&255]+"-"+s[63&n|128]+s[n>>8&255]+"-"+s[n>>16&255]+s[n>>24&255]+s[255&r]+s[r>>8&255]+s[r>>16&255]+s[r>>24&255]).toUpperCase()}(),i.uniforms=l({},r.uniforms,t.uniforms),i.defines=l({},r.defines,t.defines),i.defines[`TROIKA_DERIVED_MATERIAL_${n}`]="",i.extensions=l({},r.extensions,t.extensions),i._listeners=void 0,i},b={constructor:{value:M},isDerivedMaterial:{value:!0},type:{get:()=>e.type,set:t=>{e.type=t}},isDerivedFrom:{writable:!0,configurable:!0,value:function(e){const t=this.baseMaterial;return e===t||t.isDerivedMaterial&&t.isDerivedFrom(e)||!1}},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return e.customProgramCacheKey()+"|"+n}},onBeforeCompile:{get:()=>g,set(e){this[a]=e}},copy:{writable:!0,configurable:!0,value:function(t){return e.copy.call(this,t),e.isShaderMaterial||e.isDerivedMaterial||(l(this.extensions,t.extensions),l(this.defines,t.defines),l(this.uniforms,i.LlO.clone(t.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){const t=new e.constructor;return $(t).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let n=this._depthMaterial;return n||(n=this._depthMaterial=d(e.isDerivedMaterial?e.getDepthMaterial():new i.CSG({depthPacking:i.N5j}),t),n.defines.IS_DEPTH_MATERIAL="",n.uniforms=this.uniforms),n}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let n=this._distanceMaterial;return n||(n=this._distanceMaterial=d(e.isDerivedMaterial?e.getDistanceMaterial():new i.aVO,t),n.defines.IS_DISTANCE_MATERIAL="",n.uniforms=this.uniforms),n}},dispose:{writable:!0,configurable:!0,value(){const{_depthMaterial:t,_distanceMaterial:n}=this;t&&t.dispose(),n&&n.dispose(),e.dispose.call(this)}}};return r[n]=M,new M}function h(e,t,n,r,i){return(r||i||n)&&(e=e.replace(a,`\n${n}\nvoid troikaOrigMain${t}() {`),e+=`\nvoid main() {\n ${r}\n troikaOrigMain${t}();\n ${i}\n}`),e}function p(e,t){return"uniforms"===e?void 0:"function"==typeof t?t.toString():t}let v=0;const _=new Map;i.$EB,i.eaF}}]);