{"version":3,"file":"ParticleEffect.CzILIP3W.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/Amp9mOmKMX5UAY8hxNvF/Vsq1g0xKVKBPh5QEN1Xy/ParticleEffect.js"],"sourcesContent":["// Particle component with customizable background, icon type, size, custom icon, speed, velocity and other properties\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ParticleEffect(props){const{id=\"particle-effect\",backgroundColor=\"#000000\",iconType=\"star\",customIcon={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Custom Icon\"},iconColor=\"#FFFFFF\",iconSize=20,particleCount=50,density={enabled:false,area:1e4,factor:.01},speed=1,velocity=.5,direction=45,pattern=\"none\",enableRotation=true,opacity=.8,fps=60,hover={enabled:false,mode:\"attract\",parallax:false,force:100,smooth:10,bubbleArea:150}}=props;const canvasRef=useRef(null);const particlesRef=useRef([]);const animationFrameRef=useRef();const isStatic=useIsStaticRenderer();const[imageLoaded,setImageLoaded]=useState(false);const imageRef=useRef();const lastFrameTimeRef=useRef(0);const mouseRef=useRef(null);useEffect(()=>{if(iconType===\"custom\"&&typeof window!==\"undefined\"){const img=new Image;img.crossOrigin=\"anonymous\";img.onload=()=>{imageRef.current=img;startTransition(()=>setImageLoaded(true));};img.onerror=()=>{startTransition(()=>setImageLoaded(false));};img.src=customIcon.src;}},[customIcon.src,iconType]);useEffect(()=>{if(isStatic)return;const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const resizeCanvas=()=>{const rect=canvas.getBoundingClientRect();canvas.width=rect.width;canvas.height=rect.height;};resizeCanvas();const initParticles=()=>{let count=particleCount;if(density.enabled){const area=canvas.width*canvas.height;count=Math.floor(area/density.area*density.factor*100);}// Convert direction from degrees to radians\nconst angle=direction*Math.PI/180;const baseVx=Math.cos(angle)*speed*velocity;const baseVy=Math.sin(angle)*speed*velocity;particlesRef.current=Array.from({length:count},(_,i)=>{const x=Math.random()*canvas.width;const y=Math.random()*canvas.height;const rotation=Math.random()*Math.PI*2;// Pattern-specific initialization\nlet vx=baseVx;let vy=baseVy;if(pattern===\"swirl\"){const centerX=canvas.width/2;const centerY=canvas.height/2;const dx=x-centerX;const dy=y-centerY;const dist=Math.sqrt(dx*dx+dy*dy);const angleToCenter=Math.atan2(dy,dx);vx=-Math.sin(angleToCenter)*speed*velocity;vy=Math.cos(angleToCenter)*speed*velocity;}else if(pattern===\"helix\"){const phase=i/count*Math.PI*2;vx=Math.cos(phase)*speed*velocity;vy=baseVy;}else if(pattern===\"wave\"){const phase=i/count*Math.PI*4;vx=baseVx;vy=Math.sin(phase)*speed*velocity*2;}else if(pattern===\"orbit\"){const centerX=canvas.width/2;const centerY=canvas.height/2;const dx=x-centerX;const dy=y-centerY;const angleToCenter=Math.atan2(dy,dx);vx=-Math.sin(angleToCenter)*speed*velocity*1.5;vy=Math.cos(angleToCenter)*speed*velocity*1.5;}else if(pattern===\"fountain\"){const spreadAngle=(Math.random()-.5)*Math.PI/3;const fountainAngle=-Math.PI/2+spreadAngle;vx=Math.cos(fountainAngle)*speed*velocity*(.5+Math.random());vy=Math.sin(fountainAngle)*speed*velocity*(.5+Math.random());}return{x,y,vx,vy,size:iconSize*(.5+Math.random()*.5),rotation,rotationSpeed:(Math.random()-.5)*.02*speed,originalVx:vx,originalVy:vy};});};initParticles();const drawStar=(ctx,x,y,size,rotation)=>{ctx.save();ctx.translate(x,y);ctx.rotate(rotation);ctx.beginPath();for(let i=0;i<5;i++){const angle=i*4*Math.PI/5-Math.PI/2;const radius=i%2===0?size:size/2;const px=Math.cos(angle)*radius;const py=Math.sin(angle)*radius;if(i===0)ctx.moveTo(px,py);else ctx.lineTo(px,py);}ctx.closePath();ctx.fillStyle=iconColor;ctx.globalAlpha=opacity;ctx.fill();ctx.restore();};const drawCircle=(ctx,x,y,size)=>{ctx.save();ctx.beginPath();ctx.arc(x,y,size/2,0,Math.PI*2);ctx.fillStyle=iconColor;ctx.globalAlpha=opacity;ctx.fill();ctx.restore();};const drawHeart=(ctx,x,y,size,rotation)=>{ctx.save();ctx.translate(x,y);ctx.rotate(rotation);ctx.beginPath();const topCurveHeight=size*.3;ctx.moveTo(0,topCurveHeight);ctx.bezierCurveTo(0,0,-size/2,0,-size/2,topCurveHeight);ctx.bezierCurveTo(-size/2,size*.5,0,size*.7,0,size);ctx.bezierCurveTo(0,size*.7,size/2,size*.5,size/2,topCurveHeight);ctx.bezierCurveTo(size/2,0,0,0,0,topCurveHeight);ctx.fillStyle=iconColor;ctx.globalAlpha=opacity;ctx.fill();ctx.restore();};const drawCustomIcon=(ctx,x,y,size,rotation)=>{if(!imageRef.current||!imageLoaded)return;ctx.save();ctx.translate(x,y);ctx.rotate(rotation);ctx.globalAlpha=opacity;ctx.drawImage(imageRef.current,-size/2,-size/2,size,size);ctx.restore();};const animate=()=>{const now=performance.now();const frameInterval=1e3/fps;const elapsed=now-lastFrameTimeRef.current;if(elapsed<frameInterval){animationFrameRef.current=requestAnimationFrame(animate);return;}lastFrameTimeRef.current=now-elapsed%frameInterval;ctx.clearRect(0,0,canvas.width,canvas.height);particlesRef.current.forEach((particle,index)=>{let targetVx=particle.originalVx*speed;let targetVy=particle.originalVy*speed;// Apply pattern-specific forces\nif(pattern===\"swirl\"){const centerX=canvas.width/2;const centerY=canvas.height/2;const dx=particle.x-centerX;const dy=particle.y-centerY;const angleToCenter=Math.atan2(dy,dx);targetVx=-Math.sin(angleToCenter)*speed*velocity;targetVy=Math.cos(angleToCenter)*speed*velocity;}else if(pattern===\"helix\"){const time=now*.001;const phase=index/particlesRef.current.length*Math.PI*2+time;targetVx=Math.cos(phase)*speed*velocity;}else if(pattern===\"wave\"){const time=now*.001;const phase=particle.x/canvas.width*Math.PI*4+time;targetVy=Math.sin(phase)*speed*velocity*2;}else if(pattern===\"orbit\"){const centerX=canvas.width/2;const centerY=canvas.height/2;const dx=particle.x-centerX;const dy=particle.y-centerY;const angleToCenter=Math.atan2(dy,dx);targetVx=-Math.sin(angleToCenter)*speed*velocity*1.5;targetVy=Math.cos(angleToCenter)*speed*velocity*1.5;}else if(pattern===\"fountain\"){targetVy+=.05*speed// Gravity effect\n;}if(hover.enabled&&mouseRef.current){const dx=mouseRef.current.x-particle.x;const dy=mouseRef.current.y-particle.y;const distance=Math.sqrt(dx*dx+dy*dy);const maxDistance=hover.force*2;if(distance<maxDistance){const angle=Math.atan2(dy,dx);const force=(1-distance/maxDistance)*hover.force;if(hover.mode===\"attract\"){targetVx+=Math.cos(angle)*force*.01;targetVy+=Math.sin(angle)*force*.01;}else if(hover.mode===\"repel\"){targetVx-=Math.cos(angle)*force*.01;targetVy-=Math.sin(angle)*force*.01;}else if(hover.mode===\"bubble\"){if(distance<hover.bubbleArea){targetVx-=Math.cos(angle)*force*.02;targetVy-=Math.sin(angle)*force*.02;}}}}const smoothFactor=hover.enabled?hover.smooth*.01:.15;particle.vx+=(targetVx-particle.vx)*smoothFactor;particle.vy+=(targetVy-particle.vy)*smoothFactor;particle.x+=particle.vx;particle.y+=particle.vy;if(enableRotation){particle.rotation+=particle.rotationSpeed;}// Wrapping behavior\nif(pattern===\"fountain\"){// Reset fountain particles when they go off screen\nif(particle.y>canvas.height+iconSize||particle.x<-iconSize||particle.x>canvas.width+iconSize){particle.x=canvas.width/2+(Math.random()-.5)*100;particle.y=canvas.height;const spreadAngle=(Math.random()-.5)*Math.PI/3;const fountainAngle=-Math.PI/2+spreadAngle;particle.vx=Math.cos(fountainAngle)*speed*velocity*(.5+Math.random());particle.vy=Math.sin(fountainAngle)*speed*velocity*(.5+Math.random());particle.originalVx=particle.vx;particle.originalVy=particle.vy;}}else{// Standard wrapping for other patterns\nif(particle.x<-iconSize)particle.x=canvas.width+iconSize;if(particle.x>canvas.width+iconSize)particle.x=-iconSize;if(particle.y<-iconSize)particle.y=canvas.height+iconSize;if(particle.y>canvas.height+iconSize)particle.y=-iconSize;}switch(iconType){case\"star\":drawStar(ctx,particle.x,particle.y,particle.size,particle.rotation);break;case\"circle\":drawCircle(ctx,particle.x,particle.y,particle.size);break;case\"heart\":drawHeart(ctx,particle.x,particle.y,particle.size,particle.rotation);break;case\"custom\":drawCustomIcon(ctx,particle.x,particle.y,particle.size,particle.rotation);break;}});animationFrameRef.current=requestAnimationFrame(animate);};animate();const handleResize=()=>{resizeCanvas();initParticles();};const handleMouseMove=e=>{if(!hover.enabled)return;const rect=canvas.getBoundingClientRect();if(hover.parallax){const centerX=rect.width/2;const centerY=rect.height/2;const mouseX=e.clientX-rect.left;const mouseY=e.clientY-rect.top;mouseRef.current={x:mouseX,y:mouseY};}else{mouseRef.current={x:e.clientX-rect.left,y:e.clientY-rect.top};}};const handleMouseLeave=()=>{mouseRef.current=null;};if(typeof window!==\"undefined\"){window.addEventListener(\"resize\",handleResize);if(hover.enabled){canvas.addEventListener(\"mousemove\",handleMouseMove);canvas.addEventListener(\"mouseleave\",handleMouseLeave);}}return()=>{if(animationFrameRef.current){cancelAnimationFrame(animationFrameRef.current);}if(typeof window!==\"undefined\"){window.removeEventListener(\"resize\",handleResize);canvas.removeEventListener(\"mousemove\",handleMouseMove);canvas.removeEventListener(\"mouseleave\",handleMouseLeave);}};},[particleCount,density,speed,velocity,direction,pattern,iconSize,iconColor,iconType,enableRotation,opacity,fps,hover,isStatic,imageLoaded]);if(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",backgroundColor,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:iconColor,fontSize:14,fontFamily:\"sans-serif\"},children:\"Particle Animation\"});}return /*#__PURE__*/_jsx(\"div\",{id:id,style:{width:\"100%\",height:\"100%\",position:\"relative\",backgroundColor,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}addPropertyControls(ParticleEffect,{id:{type:ControlType.String,title:\"ID\",defaultValue:\"particle-effect\",placeholder:\"unique-id\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},iconType:{type:ControlType.Enum,title:\"Icon Type\",options:[\"star\",\"circle\",\"heart\",\"custom\"],optionTitles:[\"Star\",\"Circle\",\"Heart\",\"Custom\"],defaultValue:\"star\",displaySegmentedControl:true},customIcon:{type:ControlType.ResponsiveImage,title:\"Custom Icon\",hidden:({iconType})=>iconType!==\"custom\"},iconColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#FFFFFF\",hidden:({iconType})=>iconType===\"custom\"},iconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:20,min:.1,max:100,step:1,unit:\"px\"},particleCount:{type:ControlType.Number,title:\"Particle Count\",defaultValue:50,min:1,max:500,step:1,hidden:({density})=>density?.enabled},density:{type:ControlType.Object,title:\"Density\",controls:{enabled:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},area:{type:ControlType.Number,title:\"Area\",defaultValue:1e4,min:1e3,max:5e4,step:1e3},factor:{type:ControlType.Number,title:\"Factor\",defaultValue:.01,min:.001,max:.1,step:.001}},defaultValue:{enabled:false,area:1e4,factor:.01}},pattern:{type:ControlType.Enum,title:\"Pattern\",options:[\"none\",\"swirl\",\"helix\",\"wave\",\"orbit\",\"fountain\"],optionTitles:[\"None\",\"Swirl\",\"Helix\",\"Wave\",\"Orbit\",\"Fountain\"],defaultValue:\"none\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.1,max:5,step:.1},velocity:{type:ControlType.Number,title:\"Velocity\",defaultValue:.5,min:.1,max:3,step:.1},direction:{type:ControlType.Number,title:\"Direction\",defaultValue:45,min:0,max:360,step:1,unit:\"\\xb0\",hidden:({pattern})=>pattern!==\"none\"},fps:{type:ControlType.Enum,title:\"FPS\",options:[30,60,120],optionTitles:[\"30\",\"60\",\"120\"],defaultValue:60,displaySegmentedControl:true},hover:{type:ControlType.Object,title:\"Hover\",controls:{enabled:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},mode:{type:ControlType.Enum,title:\"Mode\",options:[\"attract\",\"repel\",\"bubble\"],optionTitles:[\"Attract\",\"Repel\",\"Bubble\"],defaultValue:\"attract\",displaySegmentedControl:true},parallax:{type:ControlType.Boolean,title:\"Parallax\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},force:{type:ControlType.Number,title:\"Force\",defaultValue:100,min:10,max:500,step:10},smooth:{type:ControlType.Number,title:\"Smooth\",defaultValue:10,min:1,max:50,step:1},bubbleArea:{type:ControlType.Number,title:\"Bubble Area\",defaultValue:150,min:50,max:500,step:10,hidden:({mode})=>mode!==\"bubble\"}},defaultValue:{enabled:false,mode:\"attract\",parallax:false,force:100,smooth:10,bubbleArea:150}},enableRotation:{type:ControlType.Boolean,title:\"Rotation\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.8,min:0,max:1,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ParticleEffect\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ParticleEffect.map"],"mappings":"qNAIG,SAAwB,EAAe,EAAM,CAAC,GAAK,CAAC,KAAG,kBAAkB,kBAAgB,UAAU,WAAS,OAAO,aAAW,CAAC,IAAI,sEAAsE,IAAI,cAAc,CAAC,YAAU,UAAU,WAAS,GAAG,gBAAc,GAAG,UAAQ,CAAC,QAAQ,GAAM,KAAK,IAAI,OAAO,IAAI,CAAC,QAAM,EAAE,WAAS,GAAG,YAAU,GAAG,UAAQ,OAAO,iBAAe,GAAK,UAAQ,GAAG,MAAI,GAAG,QAAM,CAAC,QAAQ,GAAM,KAAK,UAAU,SAAS,GAAM,MAAM,IAAI,OAAO,GAAG,WAAW,IAAI,EAAE,EAAY,EAAUA,EAAO,KAAK,CAAO,EAAaA,EAAO,EAAE,CAAC,CAAO,EAAkBA,GAAQ,CAAO,EAAS,GAAqB,CAAM,CAAC,EAAY,GAAgBC,EAAS,GAAM,CAAO,EAASD,GAAQ,CAAO,EAAiBA,EAAO,EAAE,CAAO,EAASA,EAAO,KAAK,CAOysC,OAPxsC,MAAc,CAAC,GAAG,IAAW,UAAiB,IAAS,OAAY,CAAC,IAAM,EAAI,IAAI,MAAM,EAAI,YAAY,YAAY,EAAI,WAAW,CAAC,EAAS,QAAQ,EAAI,MAAoB,EAAe,GAAK,CAAC,EAAG,EAAI,YAAY,CAAC,MAAoB,EAAe,GAAM,CAAC,EAAG,EAAI,IAAI,EAAW,MAAO,CAAC,EAAW,IAAI,EAAS,CAAC,CAAC,MAAc,CAAC,GAAG,EAAS,OAAO,IAAM,EAAO,EAAU,QAAQ,GAAG,CAAC,EAAO,OAAO,IAAM,EAAI,EAAO,WAAW,KAAK,CAAC,GAAG,CAAC,EAAI,OAAO,IAAM,MAAiB,CAAC,IAAM,EAAK,EAAO,uBAAuB,CAAC,EAAO,MAAM,EAAK,MAAM,EAAO,OAAO,EAAK,QAAS,GAAc,CAAC,IAAM,MAAkB,CAAC,IAAI,EAAM,EAAc,GAAG,EAAQ,QAAQ,CAAC,IAAM,EAAK,EAAO,MAAM,EAAO,OAAO,EAAM,KAAK,MAAM,EAAK,EAAQ,KAAK,EAAQ,OAAO,IAAI,CAC19C,IAAM,EAAM,EAAU,KAAK,GAAG,IAAU,EAAO,KAAK,IAAI,EAAM,CAAC,EAAM,EAAe,EAAO,KAAK,IAAI,EAAM,CAAC,EAAM,EAAS,EAAa,QAAQ,MAAM,KAAK,CAAC,OAAO,EAAM,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,KAAK,QAAQ,CAAC,EAAO,MAAY,EAAE,KAAK,QAAQ,CAAC,EAAO,OAAa,EAAS,KAAK,QAAQ,CAAC,KAAK,GAAG,EACzR,EAAG,EAAW,EAAG,EAAO,GAAG,IAAU,QAAQ,CAAC,IAAM,EAAQ,EAAO,MAAM,EAAQ,EAAQ,EAAO,OAAO,EAAQ,EAAG,EAAE,EAAc,EAAG,EAAE,EAAmB,KAAK,KAAK,EAAG,EAAG,EAAG,EAAG,CAAC,IAAM,EAAc,KAAK,MAAM,EAAG,EAAG,CAAC,EAAG,CAAC,KAAK,IAAI,EAAc,CAAC,EAAM,EAAS,EAAG,KAAK,IAAI,EAAc,CAAC,EAAM,UAAkB,IAAU,QAAQ,CAAC,IAAM,EAAM,EAAE,EAAM,KAAK,GAAG,EAAE,EAAG,KAAK,IAAI,EAAM,CAAC,EAAM,EAAS,EAAG,UAAgB,IAAU,OAAO,CAAC,IAAM,EAAM,EAAE,EAAM,KAAK,GAAG,EAAE,EAAG,EAAO,EAAG,KAAK,IAAI,EAAM,CAAC,EAAM,EAAS,UAAW,IAAU,QAAQ,CAAC,IAAM,EAAQ,EAAO,MAAM,EAAQ,EAAQ,EAAO,OAAO,EAAQ,EAAG,EAAE,EAAc,EAAG,EAAE,EAAc,EAAc,KAAK,MAAM,EAAG,EAAG,CAAC,EAAG,CAAC,KAAK,IAAI,EAAc,CAAC,EAAM,EAAS,IAAI,EAAG,KAAK,IAAI,EAAc,CAAC,EAAM,EAAS,YAAa,IAAU,WAAW,CAAC,IAAM,GAAa,KAAK,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAQ,EAAc,CAAC,KAAK,GAAG,EAAE,EAAY,EAAG,KAAK,IAAI,EAAc,CAAC,EAAM,GAAU,GAAG,KAAK,QAAQ,EAAE,EAAG,KAAK,IAAI,EAAc,CAAC,EAAM,GAAU,GAAG,KAAK,QAAQ,EAAG,MAAM,CAAC,IAAE,IAAE,KAAG,KAAG,KAAK,GAAU,GAAG,KAAK,QAAQ,CAAC,IAAI,WAAS,eAAe,KAAK,QAAQ,CAAC,IAAI,IAAI,EAAM,WAAW,EAAG,WAAW,EAAG,EAAG,EAAG,GAAe,CAAC,IAAM,GAAU,EAAI,EAAE,EAAE,EAAK,IAAW,CAAC,EAAI,MAAM,CAAC,EAAI,UAAU,EAAE,EAAE,CAAC,EAAI,OAAO,EAAS,CAAC,EAAI,WAAW,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAM,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAQ,EAAO,EAAE,GAAI,EAAE,EAAK,EAAK,EAAQ,EAAG,KAAK,IAAI,EAAM,CAAC,EAAa,EAAG,KAAK,IAAI,EAAM,CAAC,EAAU,IAAI,EAAE,EAAI,OAAO,EAAG,EAAG,CAAM,EAAI,OAAO,EAAG,EAAG,CAAE,EAAI,WAAW,CAAC,EAAI,UAAU,EAAU,EAAI,YAAY,EAAQ,EAAI,MAAM,CAAC,EAAI,SAAS,EAAS,GAAY,EAAI,EAAE,EAAE,IAAO,CAAC,EAAI,MAAM,CAAC,EAAI,WAAW,CAAC,EAAI,IAAI,EAAE,EAAE,EAAK,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,EAAI,UAAU,EAAU,EAAI,YAAY,EAAQ,EAAI,MAAM,CAAC,EAAI,SAAS,EAAS,GAAW,EAAI,EAAE,EAAE,EAAK,IAAW,CAAC,EAAI,MAAM,CAAC,EAAI,UAAU,EAAE,EAAE,CAAC,EAAI,OAAO,EAAS,CAAC,EAAI,WAAW,CAAC,IAAM,EAAe,EAAK,GAAG,EAAI,OAAO,EAAE,EAAe,CAAC,EAAI,cAAc,EAAE,EAAE,CAAC,EAAK,EAAE,EAAE,CAAC,EAAK,EAAE,EAAe,CAAC,EAAI,cAAc,CAAC,EAAK,EAAE,EAAK,GAAG,EAAE,EAAK,GAAG,EAAE,EAAK,CAAC,EAAI,cAAc,EAAE,EAAK,GAAG,EAAK,EAAE,EAAK,GAAG,EAAK,EAAE,EAAe,CAAC,EAAI,cAAc,EAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAe,CAAC,EAAI,UAAU,EAAU,EAAI,YAAY,EAAQ,EAAI,MAAM,CAAC,EAAI,SAAS,EAAS,GAAgB,EAAI,EAAE,EAAE,EAAK,IAAW,CAAI,CAAC,EAAS,SAAS,CAAC,IAAmB,EAAI,MAAM,CAAC,EAAI,UAAU,EAAE,EAAE,CAAC,EAAI,OAAO,EAAS,CAAC,EAAI,YAAY,EAAQ,EAAI,UAAU,EAAS,QAAQ,CAAC,EAAK,EAAE,CAAC,EAAK,EAAE,EAAK,EAAK,CAAC,EAAI,SAAS,GAAS,MAAY,CAAC,IAAM,EAAI,YAAY,KAAK,CAAO,EAAc,IAAI,EAAU,EAAQ,EAAI,EAAiB,QAAQ,GAAG,EAAQ,EAAc,CAAC,EAAkB,QAAQ,sBAAsB,EAAQ,CAAC,OAAQ,EAAiB,QAAQ,EAAI,EAAQ,EAAc,EAAI,UAAU,EAAE,EAAE,EAAO,MAAM,EAAO,OAAO,CAAC,EAAa,QAAQ,SAAS,EAAS,IAAQ,CAAC,IAAI,EAAS,EAAS,WAAW,EAAU,EAAS,EAAS,WAAW,EACjzF,GAAG,IAAU,QAAQ,CAAC,IAAM,EAAQ,EAAO,MAAM,EAAQ,EAAQ,EAAO,OAAO,EAAQ,EAAG,EAAS,EAAE,EAAc,EAAG,EAAS,EAAE,EAAc,EAAc,KAAK,MAAM,EAAG,EAAG,CAAC,EAAS,CAAC,KAAK,IAAI,EAAc,CAAC,EAAM,EAAS,EAAS,KAAK,IAAI,EAAc,CAAC,EAAM,UAAkB,IAAU,QAAQ,CAAC,IAAM,EAAK,EAAI,KAAW,EAAM,EAAM,EAAa,QAAQ,OAAO,KAAK,GAAG,EAAE,EAAK,EAAS,KAAK,IAAI,EAAM,CAAC,EAAM,UAAkB,IAAU,OAAO,CAAC,IAAM,EAAK,EAAI,KAAW,EAAM,EAAS,EAAE,EAAO,MAAM,KAAK,GAAG,EAAE,EAAK,EAAS,KAAK,IAAI,EAAM,CAAC,EAAM,EAAS,UAAW,IAAU,QAAQ,CAAC,IAAM,EAAQ,EAAO,MAAM,EAAQ,EAAQ,EAAO,OAAO,EAAQ,EAAG,EAAS,EAAE,EAAc,EAAG,EAAS,EAAE,EAAc,EAAc,KAAK,MAAM,EAAG,EAAG,CAAC,EAAS,CAAC,KAAK,IAAI,EAAc,CAAC,EAAM,EAAS,IAAI,EAAS,KAAK,IAAI,EAAc,CAAC,EAAM,EAAS,SAAa,IAAU,aAAY,GAAU,IAAI,GAC13B,GAAG,EAAM,SAAS,EAAS,QAAQ,CAAC,IAAM,EAAG,EAAS,QAAQ,EAAE,EAAS,EAAQ,EAAG,EAAS,QAAQ,EAAE,EAAS,EAAQ,EAAS,KAAK,KAAK,EAAG,EAAG,EAAG,EAAG,CAAO,EAAY,EAAM,MAAM,EAAE,GAAG,EAAS,EAAY,CAAC,IAAM,EAAM,KAAK,MAAM,EAAG,EAAG,CAAO,GAAO,EAAE,EAAS,GAAa,EAAM,MAAS,EAAM,OAAO,WAAW,GAAU,KAAK,IAAI,EAAM,CAAC,EAAM,IAAI,GAAU,KAAK,IAAI,EAAM,CAAC,EAAM,KAAa,EAAM,OAAO,SAAS,GAAU,KAAK,IAAI,EAAM,CAAC,EAAM,IAAI,GAAU,KAAK,IAAI,EAAM,CAAC,EAAM,KAAa,EAAM,OAAO,UAAa,EAAS,EAAM,aAAY,GAAU,KAAK,IAAI,EAAM,CAAC,EAAM,IAAI,GAAU,KAAK,IAAI,EAAM,CAAC,EAAM,MAAQ,IAAM,EAAa,EAAM,QAAQ,EAAM,OAAO,IAAI,IACxqB,GAD4qB,EAAS,KAAK,EAAS,EAAS,IAAI,EAAa,EAAS,KAAK,EAAS,EAAS,IAAI,EAAa,EAAS,GAAG,EAAS,GAAG,EAAS,GAAG,EAAS,GAAM,IAAgB,EAAS,UAAU,EAAS,eAC12B,IAAU,eACV,EAAS,EAAE,EAAO,OAAO,GAAU,EAAS,EAAE,CAAC,GAAU,EAAS,EAAE,EAAO,MAAM,EAAS,CAAC,EAAS,EAAE,EAAO,MAAM,GAAG,KAAK,QAAQ,CAAC,IAAI,IAAI,EAAS,EAAE,EAAO,OAAO,IAAM,GAAa,KAAK,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAQ,EAAc,CAAC,KAAK,GAAG,EAAE,EAAY,EAAS,GAAG,KAAK,IAAI,EAAc,CAAC,EAAM,GAAU,GAAG,KAAK,QAAQ,EAAE,EAAS,GAAG,KAAK,IAAI,EAAc,CAAC,EAAM,GAAU,GAAG,KAAK,QAAQ,EAAE,EAAS,WAAW,EAAS,GAAG,EAAS,WAAW,EAAS,SACxc,EAAS,EAAE,CAAC,IAAS,EAAS,EAAE,EAAO,MAAM,GAAY,EAAS,EAAE,EAAO,MAAM,IAAS,EAAS,EAAE,CAAC,GAAY,EAAS,EAAE,CAAC,IAAS,EAAS,EAAE,EAAO,OAAO,GAAY,EAAS,EAAE,EAAO,OAAO,IAAS,EAAS,EAAE,CAAC,GAAU,OAAO,EAAP,CAAiB,IAAI,OAAO,EAAS,EAAI,EAAS,EAAE,EAAS,EAAE,EAAS,KAAK,EAAS,SAAS,CAAC,MAAM,IAAI,SAAS,EAAW,EAAI,EAAS,EAAE,EAAS,EAAE,EAAS,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAU,EAAI,EAAS,EAAE,EAAS,EAAE,EAAS,KAAK,EAAS,SAAS,CAAC,MAAM,IAAI,SAAS,EAAe,EAAI,EAAS,EAAE,EAAS,EAAE,EAAS,KAAK,EAAS,SAAS,CAAC,QAAS,CAAC,EAAkB,QAAQ,sBAAsB,EAAQ,EAAG,GAAS,CAAC,IAAM,MAAiB,CAAC,GAAc,CAAC,GAAe,EAAS,EAAgB,GAAG,CAAC,GAAG,CAAC,EAAM,QAAQ,OAAO,IAAM,EAAK,EAAO,uBAAuB,CAAI,EAAM,UAAwB,EAAK,MAAM,EAAgB,EAAK,OAAO,EAAmE,EAAS,QAAQ,CAAC,EAAtE,EAAE,QAAQ,EAAK,KAAgE,EAA9C,EAAE,QAAQ,EAAK,IAAwC,EAAO,EAAS,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAK,IAAI,EAAU,MAAqB,CAAC,EAAS,QAAQ,MAAsN,OAArM,IAAS,SAAa,EAAO,iBAAiB,SAAS,EAAa,CAAI,EAAM,UAAS,EAAO,iBAAiB,YAAY,EAAgB,CAAC,EAAO,iBAAiB,aAAa,EAAiB,OAAa,CAAI,EAAkB,SAAS,qBAAqB,EAAkB,QAAQ,CAAY,IAAS,SAAa,EAAO,oBAAoB,SAAS,EAAa,CAAC,EAAO,oBAAoB,YAAY,EAAgB,CAAC,EAAO,oBAAoB,aAAa,EAAiB,IAAM,CAAC,EAAc,EAAQ,EAAM,EAAS,EAAU,EAAQ,EAAS,EAAU,EAAS,EAAe,EAAQ,EAAI,EAAM,EAAS,EAAY,CAAC,CAAI,EAA8B,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,kBAAgB,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,MAAM,EAAU,SAAS,GAAG,WAAW,aAAa,CAAC,SAAS,qBAAqB,CAAC,CAAsB,EAAK,MAAM,CAAI,KAAG,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,kBAAgB,SAAS,SAAS,CAAC,SAAsB,EAAK,SAAS,CAAC,IAAI,EAAU,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAV7nE,IAA6D,IAAwE,CAU0/D,EAAoB,EAAe,CAAC,GAAG,CAAC,KAAK,EAAY,OAAO,MAAM,KAAK,aAAa,kBAAkB,YAAY,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,OAAO,SAAS,QAAQ,SAAS,CAAC,aAAa,CAAC,OAAO,SAAS,QAAQ,SAAS,CAAC,aAAa,OAAO,wBAAwB,GAAK,CAAC,WAAW,CAAC,KAAK,EAAY,gBAAgB,MAAM,cAAc,QAAQ,CAAC,cAAY,IAAW,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,QAAQ,CAAC,cAAY,IAAW,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,QAAQ,CAAC,aAAW,GAAS,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,GAAM,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,OAAO,QAAQ,QAAQ,OAAO,QAAQ,WAAW,CAAC,aAAa,CAAC,OAAO,QAAQ,QAAQ,OAAO,QAAQ,WAAW,CAAC,aAAa,OAAO,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAO,QAAQ,CAAC,aAAW,IAAU,OAAO,CAAC,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,MAAM,CAAC,aAAa,GAAG,wBAAwB,GAAK,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,UAAU,QAAQ,SAAS,CAAC,aAAa,CAAC,UAAU,QAAQ,SAAS,CAAC,aAAa,UAAU,wBAAwB,GAAK,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAQ,IAAO,SAAS,CAAC,CAAC,aAAa,CAAC,QAAQ,GAAM,KAAK,UAAU,SAAS,GAAM,MAAM,IAAI,OAAO,GAAG,WAAW,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC"}