{"version":3,"file":"Counter_FX.DDdicjdD.mjs","names":["React.useRef","React.useState"],"sources":["https:/framerusercontent.com/modules/MVsoWSPVAKz64kC3ydwh/i6tdEH7TCR41UZ5JwOJw/Counter_FX.js"],"sourcesContent":["// ═══════════════════════════════════════════════════════════════════════════\n// COUNTER FX — ODOMETER-STYLE ANIMATED NUMBER COUNTER\n// ═══════════════════════════════════════════════════════════════════════════\n//\n//\n// WHAT THIS COMPONENT DOES:\n// Animates a number from a start value to an end value using true\n// odometer-style rolling digit wheels. Each digit position is an\n// independent vertical strip that scrolls through all intermediate\n// values (0–9), creating the mechanical feel of a real odometer.\n//\n// WHY CODE IS REQUIRED:\n// - Per-digit sequence generation with automatic wrap-around (9→0, 0→9).\n// - Zero-padded layout ensures stable width — digit positions never shift.\n// - Framer Motion animate() drives each wheel's translateY independently.\n// - Gradient mask on each wheel creates depth (digits fade at edges).\n// - Scroll-linked mode maps scroll position directly to wheel progress\n//   via passive scroll listener — no React re-renders during scroll.\n// - IntersectionObserver for Layer in View / Section in View triggers.\n// - Section in View resolves a named Framer Scroll Section by ID.\n//\n// TRIGGER MODES:\n// - On Appear    — fires immediately on page load\n// - On Scroll    — counter progress tied 1:1 to scroll position\n// - Layer in View — fires when this component enters the viewport\n// - Section in View — fires when a named Scroll Section enters viewport\n//\n// EASING CURVES:\n// - Linear  — constant speed\n// - Smooth  — cubic ease-out deceleration\n// - Spring  — overshoot + settle\n// - Bounce  — dramatic overshoot\n//\n// ═══════════════════════════════════════════════════════════════════════════\n// Created by AliThemes.com\n// Powered by Framer Motion\n// ═══════════════════════════════════════════════════════════════════════════\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */function parseFontSize(font){if(!font?.fontSize)return 60;const raw=font.fontSize;if(typeof raw===\"number\")return raw;return parseFloat(String(raw))||60;}export default function CounterFX(props){const{from,to,duration,easing,decimals,prefix,suffix,showThousandSep,tint,font,triggerMode,sectionName,htmlTag}=props;const Tag=htmlTag||\"div\";const containerRef=React.useRef(null);const[started,setStarted]=React.useState(false);const[scrollProgress,setScrollProgress]=React.useState(0);const isCountingUp=to>=from;const isScrollMode=triggerMode===\"onScroll\";const fontSize=parseFontSize(font);const fontStyles=font||{};React.useEffect(()=>{setStarted(false);setScrollProgress(0);},[from,to,duration,easing,decimals]);React.useEffect(()=>{const el=containerRef.current;if(!el)return;if(isScrollMode)return;const trigger=()=>{setStarted(false);requestAnimationFrame(()=>setStarted(true));};if(triggerMode===\"onAppear\"){trigger();return;}let target=el;if(triggerMode===\"sectionInView\"&&sectionName){const id=sectionName.replace(/^#/,\"\").trim();target=document.getElementById(id)||el;}const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){trigger();observer.disconnect();}},{threshold:0,rootMargin:\"0px 0px -5% 0px\"});observer.observe(target);return()=>observer.disconnect();},[from,to,duration,easing,decimals,triggerMode,isScrollMode,sectionName]);React.useEffect(()=>{if(!isScrollMode)return;const el=containerRef.current;if(!el)return;const onScroll=()=>{const rect=el.getBoundingClientRect();const vh=window.innerHeight;const progress=(vh-rect.top)/(vh+rect.height);setScrollProgress(Math.min(1,Math.max(0,progress)));};window.addEventListener(\"scroll\",onScroll,{passive:true});onScroll();return()=>window.removeEventListener(\"scroll\",onScroll);},[isScrollMode]);const layout=buildOdometerLayout(from,to,decimals,showThousandSep);const digitEntries=layout.filter(e=>e.type===\"digit\");const sequences=digitEntries.map(d=>getDigitSequence(d.fromDigit,d.toDigit,isCountingUp));const timings=digitEntries.map(()=>({delay:0,dur:duration}));const digitHeight=fontSize*1.2;const digitWidth=fontSize*.62;let digitIdx=0;return /*#__PURE__*/_jsxs(Tag,{ref:containerRef,style:{display:\"inline-flex\",alignItems:\"center\",...fontStyles,color:tint,fontVariantNumeric:\"tabular-nums\"},children:[prefix&&/*#__PURE__*/_jsx(\"span\",{style:{lineHeight:1,marginRight:fontSize*.08},children:prefix}),/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\"},children:layout.map((entry,i)=>{if(entry.type===\"sep\"){return /*#__PURE__*/_jsx(\"span\",{style:{lineHeight:1,opacity:entry.char===\",\"?.4:1},children:entry.char},`s${i}`);}const idx=digitIdx++;return /*#__PURE__*/_jsx(OdometerWheel,{sequence:sequences[idx],delay:timings[idx].delay,digitDuration:timings[idx].dur,started:started,scrollProgress:scrollProgress,isScrollMode:isScrollMode,digitHeight:digitHeight,digitWidth:digitWidth,tint:tint,easing:easing},`d${i}`);})}),suffix&&/*#__PURE__*/_jsx(\"span\",{style:{lineHeight:1,marginLeft:fontSize*.08},children:suffix})]});}CounterFX.defaultProps={font:{fontFamily:\"Inter\",fontWeight:700,fontSize:60,lineHeight:\"1em\"},tint:\"#FFFFFF\"};/* --- ODOMETER WHEEL --- */const EASING_MAP={linear:\"linear\",smooth:[0,0,.2,1],spring:[.34,1.56,.64,1],bounce:[.22,1.8,.5,1]};function OdometerWheel({sequence,delay,digitDuration,started,scrollProgress,isScrollMode,digitHeight,digitWidth,tint,easing}){const endY=-(sequence.length-1)*digitHeight;const hasMotion=sequence.length>1;const y=isScrollMode?(scrollProgress||0)*endY:started?endY:0;const transition=isScrollMode?{duration:.08,ease:\"linear\"}:started?{delay,duration:digitDuration,ease:EASING_MAP[easing]||EASING_MAP.smooth}:{duration:0};return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",height:digitHeight,minHeight:digitHeight,width:digitWidth,minWidth:digitWidth,overflow:\"hidden\",display:\"inline-flex\",justifyContent:\"center\",...hasMotion?{maskImage:\"linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%)\",WebkitMaskImage:\"linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%)\"}:{}},children:/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",width:\"100%\"},animate:{y},transition:transition,children:sequence.map((digit,i)=>/*#__PURE__*/_jsx(\"div\",{style:{height:digitHeight,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:tint,lineHeight:1,fontWeight:\"inherit\",fontVariantNumeric:\"tabular-nums\"},children:digit},i))})});}/* --- HELPERS --- */function getDigitSequence(fromDigit,toDigit,countingUp){if(fromDigit===toDigit)return[fromDigit];const seq=[];if(countingUp){if(toDigit>=fromDigit){for(let i=fromDigit;i<=toDigit;i++)seq.push(i);}else{for(let i=fromDigit;i<=9;i++)seq.push(i);for(let i=0;i<=toDigit;i++)seq.push(i);}}else{if(toDigit<=fromDigit){for(let i=fromDigit;i>=toDigit;i--)seq.push(i);}else{for(let i=fromDigit;i>=0;i--)seq.push(i);for(let i=9;i>=toDigit;i--)seq.push(i);}}return seq;}function buildOdometerLayout(from,to,decimals,showThousandSep){const fromAbs=Math.abs(from);const toAbs=Math.abs(to);const fromStr=decimals>0?fromAbs.toFixed(decimals):Math.round(fromAbs).toString();const toStr=decimals>0?toAbs.toFixed(decimals):Math.round(toAbs).toString();const[fromInt,fromDec]=fromStr.split(\".\");const[toInt,toDec]=toStr.split(\".\");const maxLen=Math.max(fromInt.length,toInt.length);const fromPad=fromInt.padStart(maxLen,\"0\");const toPad=toInt.padStart(maxLen,\"0\");const result=[];if(showThousandSep){const template=toPad.replace(/\\B(?=(\\d{3})+(?!\\d))/g,\",\");let di=0;for(const ch of template){if(ch===\",\"){result.push({type:\"sep\",char:\",\"});}else{result.push({type:\"digit\",fromDigit:+fromPad[di],toDigit:+toPad[di]});di++;}}}else{for(let i=0;i<maxLen;i++){result.push({type:\"digit\",fromDigit:+fromPad[i],toDigit:+toPad[i]});}}if(fromDec&&toDec){result.push({type:\"sep\",char:\".\"});for(let i=0;i<fromDec.length;i++){result.push({type:\"digit\",fromDigit:+fromDec[i],toDigit:+toDec[i]});}}return result;}/* --- PROPERTY CONTROLS --- */addPropertyControls(CounterFX,{from:{type:ControlType.Number,title:\"From\",defaultValue:0},to:{type:ControlType.Number,title:\"To\",defaultValue:1e3},duration:{type:ControlType.Number,title:\"Duration (s)\",defaultValue:2,min:.3,max:10,step:.1,hidden:p=>p.triggerMode===\"onScroll\"},easing:{type:ControlType.Enum,title:\"Easing\",defaultValue:\"smooth\",options:[\"linear\",\"smooth\",\"spring\",\"bounce\"],optionTitles:[\"Linear\",\"Smooth\",\"Spring\",\"Bounce\"],hidden:p=>p.triggerMode===\"onScroll\"},triggerMode:{type:ControlType.Enum,title:\"Trigger\",defaultValue:\"layerInView\",options:[\"onAppear\",\"onScroll\",\"layerInView\",\"sectionInView\"],optionTitles:[\"On Appear\",\"On Scroll\",\"Layer in View\",\"Section in View\"]},sectionName:{type:ControlType.String,title:\"Section Name\",defaultValue:\"\",placeholder:\"# name\",hidden:p=>p.triggerMode!==\"sectionInView\"},decimals:{type:ControlType.Number,title:\"Decimals\",defaultValue:0,min:0,max:4,step:1},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\",placeholder:\"$ € \\xa3\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\",placeholder:\"% + k\"},showThousandSep:{type:ControlType.Boolean,title:\"Thousands Sep\",defaultValue:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontFamily:\"Inter\",fontWeight:700,fontSize:\"60px\",lineHeight:\"1em\"}},tint:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"},htmlTag:{type:ControlType.Enum,title:\"HTML Tag\",defaultValue:\"div\",options:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"div\",\"span\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\",\"P\",\"DIV\",\"SPAN\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CounterFX\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Counter_FX.map"],"mappings":"8PAwCG,SAAS,EAAc,EAAK,CAAC,GAAG,CAAC,GAAM,SAAS,MAAO,IAAG,IAAM,EAAI,EAAK,SAA6C,OAAjC,OAAO,GAAM,SAAgB,EAAW,WAAW,OAAO,CAAG,CAAC,GAAG,EAAG,CAAC,SAAwB,EAAU,EAAM,CAAC,GAAK,CAAC,OAAK,KAAG,WAAS,SAAO,WAAS,SAAO,SAAO,kBAAgB,OAAK,OAAK,cAAY,cAAY,WAAS,EAAY,EAAI,GAAS,MAAY,EAAaA,EAAa,IAAI,EAAO,CAAC,EAAQ,GAAYC,EAAe,EAAK,EAAO,CAAC,EAAe,GAAmBA,EAAe,CAAC,EAAQ,EAAa,GAAI,EAAW,EAAa,IAAc,WAAiB,EAAS,EAAc,CAAI,EAAQ,EAAW,GAAM,CAAC,EAAE,MAAoB,CAAC,EAAW,EAAK,EAAE,EAAkB,CAAC,CAAE,EAAE,CAAC,EAAK,EAAG,EAAS,EAAO,CAAQ,CAAC,EAAE,MAAoB,CAAC,IAAM,EAAG,EAAa,QAAsB,GAAX,CAAC,GAAa,EAAa,OAAO,IAAM,MAAY,CAAC,EAAW,EAAK,EAAE,0BAA0B,EAAW,EAAI,CAAC,CAAE,EAAE,GAAG,IAAc,WAAW,CAAC,EAAQ,EAAE,MAAO,CAAC,IAAI,EAAO,EAAG,GAAG,IAAc,iBAAiB,EAAY,CAAC,IAAM,EAAG,EAAY,QAAQ,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAO,SAAS,eAAe,CAAE,GAAG,CAAG,CAAC,IAAM,EAAS,IAAI,sBAAsB,CAAC,KAAS,CAAI,EAAM,iBAAgB,EAAQ,EAAE,EAAS,WAAW,EAAG,EAAE,CAAC,UAAU,EAAE,WAAW,iBAAiB,CAAC,EAA2B,OAAzB,EAAS,QAAQ,CAAM,MAAY,EAAS,WAAW,CAAE,EAAE,CAAC,EAAK,EAAG,EAAS,EAAO,EAAS,EAAY,EAAa,CAAW,CAAC,EAAE,MAAoB,CAAC,GAAG,CAAC,EAAa,OAAO,IAAM,EAAG,EAAa,QAAQ,GAAG,CAAC,EAAG,OAAO,IAAM,MAAa,CAAC,IAAM,EAAK,EAAG,sBAAsB,EAAQ,EAAG,EAAO,YAAkB,GAAU,EAAG,EAAK,MAAM,EAAG,EAAK,QAAQ,EAAkB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,CAAQ,CAAC,CAAC,CAAE,EAAuE,OAArE,EAAO,iBAAiB,SAAS,EAAS,CAAC,QAAQ,EAAI,CAAC,EAAE,EAAS,MAAY,EAAO,oBAAoB,SAAS,CAAQ,CAAE,EAAE,CAAC,CAAY,CAAC,EAAE,IAAM,EAAO,EAAoB,EAAK,EAAG,EAAS,CAAe,EAAQ,EAAa,EAAO,OAAO,GAAG,EAAE,OAAO,OAAO,EAAQ,EAAU,EAAa,IAAI,GAAG,EAAiB,EAAE,UAAU,EAAE,QAAQ,CAAY,CAAC,EAAQ,EAAQ,EAAa,SAAS,CAAC,MAAM,EAAE,IAAI,CAAQ,EAAE,EAAQ,EAAY,EAAS,IAAU,EAAW,EAAS,IAAQ,EAAS,EAAE,OAAoB,EAAM,EAAI,CAAC,IAAI,EAAa,MAAM,CAAC,QAAQ,cAAc,WAAW,SAAS,GAAG,EAAW,MAAM,EAAK,mBAAmB,cAAc,EAAE,SAAS,CAAC,GAAqB,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,EAAS,GAAG,EAAE,SAAS,CAAM,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,cAAc,WAAW,QAAQ,EAAE,SAAS,EAAO,KAAK,EAAM,IAAI,CAAC,GAAG,EAAM,OAAO,MAAO,OAAoB,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAM,OAAO,IAAI,GAAG,CAAC,EAAE,SAAS,EAAM,IAAI,EAAE,IAAI,GAAG,EAAG,IAAM,EAAI,IAAW,OAAoB,EAAK,EAAc,CAAC,SAAS,EAAU,GAAK,MAAM,EAAQ,EAAI,CAAC,MAAM,cAAc,EAAQ,EAAI,CAAC,IAAY,UAAuB,iBAA4B,eAAyB,cAAuB,aAAgB,OAAY,QAAM,EAAE,IAAI,GAAG,CAAE,CAAC,CAAC,CAAC,EAAE,GAAqB,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAS,GAAG,EAAE,SAAS,CAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAA8O,SAAS,EAAc,CAAC,WAAS,QAAM,gBAAc,UAAQ,iBAAe,eAAa,cAAY,aAAW,OAAK,UAAQ,CAAC,IAAM,EAAK,EAAE,EAAS,OAAO,GAAG,EAAkB,EAAU,EAAS,OAAO,EAAQ,EAAE,GAAc,GAAgB,GAAG,EAAK,EAAQ,EAAK,EAAQ,EAAW,EAAa,CAAC,SAAS,IAAI,KAAK,QAAQ,EAAE,EAAQ,CAAC,QAAM,SAAS,EAAc,KAAK,EAAW,IAAS,EAAW,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,OAAO,EAAY,UAAU,EAAY,MAAM,EAAW,SAAS,EAAW,SAAS,SAAS,QAAQ,cAAc,eAAe,SAAS,GAAG,EAAU,CAAC,UAAU,qFAAqF,gBAAgB,oFAAoF,EAAE,CAAC,CAAC,EAAE,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,MAAM,EAAE,QAAQ,CAAC,GAAC,EAAa,aAAW,SAAS,EAAS,KAAK,EAAM,IAAiB,EAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAY,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,MAAM,EAAK,WAAW,EAAE,WAAW,UAAU,mBAAmB,cAAc,EAAE,SAAS,CAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAsB,SAAS,EAAiB,EAAU,EAAQ,EAAW,CAAC,GAAG,IAAY,EAAQ,MAAM,CAAC,CAAS,EAAE,IAAM,EAAI,CAAC,EAAE,GAAG,EAAY,GAAG,GAAS,EAAW,IAAI,IAAI,EAAE,EAAU,GAAG,EAAQ,IAAI,EAAI,KAAK,CAAC,MAAO,CAAC,IAAI,IAAI,EAAE,EAAU,GAAG,EAAE,IAAI,EAAI,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAQ,IAAI,EAAI,KAAK,CAAC,CAAE,MAAO,GAAG,GAAS,EAAW,IAAI,IAAI,EAAE,EAAU,GAAG,EAAQ,IAAI,EAAI,KAAK,CAAC,MAAO,CAAC,IAAI,IAAI,EAAE,EAAU,GAAG,EAAE,IAAI,EAAI,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAQ,IAAI,EAAI,KAAK,CAAC,CAAE,CAAE,OAAO,CAAI,CAAC,SAAS,EAAoB,EAAK,EAAG,EAAS,EAAgB,CAAC,IAAM,EAAQ,KAAK,IAAI,CAAI,EAAQ,EAAM,KAAK,IAAI,CAAE,EAAQ,EAAQ,EAAS,EAAE,EAAQ,QAAQ,CAAQ,EAAE,KAAK,MAAM,CAAO,CAAC,CAAC,SAAS,EAAQ,EAAM,EAAS,EAAE,EAAM,QAAQ,CAAQ,EAAE,KAAK,MAAM,CAAK,CAAC,CAAC,SAAS,EAAO,CAAC,EAAQ,GAAS,EAAQ,MAAM,GAAG,EAAO,CAAC,EAAM,GAAO,EAAM,MAAM,GAAG,EAAQ,EAAO,KAAK,IAAI,EAAQ,OAAO,EAAM,MAAM,EAAQ,EAAQ,EAAQ,SAAS,EAAO,GAAG,EAAQ,EAAM,EAAM,SAAS,EAAO,GAAG,EAAQ,EAAO,CAAC,EAAE,GAAG,EAAgB,CAAC,IAAM,EAAS,EAAM,QAAQ,wBAAwB,GAAG,EAAM,EAAG,EAAE,IAAI,IAAM,KAAM,EAAa,IAAK,IAAK,EAAO,KAAK,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAO,KAAK,CAAC,KAAK,QAAQ,UAAU,CAAC,EAAQ,GAAI,QAAQ,CAAC,EAAM,EAAG,CAAC,EAAE,IAAO,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,EAAO,IAAK,EAAO,KAAK,CAAC,KAAK,QAAQ,UAAU,CAAC,EAAQ,GAAG,QAAQ,CAAC,EAAM,EAAE,CAAC,EAAI,GAAG,GAAS,EAAM,CAAC,EAAO,KAAK,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAQ,OAAO,IAAK,EAAO,KAAK,CAAC,KAAK,QAAQ,UAAU,CAAC,EAAQ,GAAG,QAAQ,CAAC,EAAM,EAAE,CAAC,CAAG,CAAC,OAAO,CAAO,uBAHjyL,IAA4B,IAAoD,IAAkC,EAG0zF,EAAU,aAAa,CAAC,KAAK,CAAC,WAAW,QAAQ,WAAW,IAAI,SAAS,GAAG,WAAW,KAAK,EAAE,KAAK,SAAS,EAAoC,EAAW,CAAC,OAAO,SAAS,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EAA0qF,EAAoB,EAAU,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,CAAC,EAAE,GAAG,CAAC,KAAK,EAAY,OAAO,MAAM,KAAK,aAAa,GAAG,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,EAAE,cAAc,UAAU,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,aAAa,SAAS,QAAQ,CAAC,SAAS,SAAS,SAAS,QAAQ,EAAE,aAAa,CAAC,SAAS,SAAS,SAAS,QAAQ,EAAE,OAAO,GAAG,EAAE,cAAc,UAAU,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,aAAa,cAAc,QAAQ,CAAC,WAAW,WAAW,cAAc,eAAe,EAAE,aAAa,CAAC,YAAY,YAAY,gBAAgB,iBAAiB,CAAC,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,YAAY,SAAS,OAAO,GAAG,EAAE,cAAc,eAAe,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,YAAY,OAAU,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,YAAY,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,EAAI,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,WAAW,QAAQ,WAAW,IAAI,SAAS,OAAO,WAAW,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,aAAa,MAAM,QAAQ,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,EAAE,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC"}