{"version":3,"file":"Infrastructure_Synchronization.DugF-FSI.mjs","names":["useRef","useState","_Fragment","p"],"sources":["https:/framerusercontent.com/modules/PSlTJP5r332Vdl6pYbsQ/KYUgSz0rw1Ni2hrdEdPW/Infrastructure_Synchronization.js"],"sourcesContent":["/**\n * Concept D — Event Flow Diagram V2\n * Retail 1: Infrastructure Synchronization\n *\n * Full animated sequence:\n *   1. Message streak travels down to STREAM\n *   2. STREAM border flashes blue\n *   3. Three blue streaks fan out to consumer cards\n *   4. Cards expand when streaks arrive\n *   5. Loop with pause\n *\n * Streak technique: two identical SVG paths (base + animated dash).\n */import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";const C={bgPrimary:\"#FFFFFF\",border:\"#E9EAEB\",borderMid:\"#D5D7DA\",textPrimary:\"#181D27\",textSecondary:\"#414651\",textMuted:\"#717680\",blue:\"#0BA5EC\",blueBg:\"#F0F9FF\",blueBorder:\"#B9E6FE\",blueText:\"#0369A1\",successBg:\"#ECFDF3\",successBorder:\"#ABEFC6\",successText:\"#067647\",warnBg:\"#FFFAEB\",warnBorder:\"#FEDF89\",warnText:\"#B54708\",shadow:\"0px 1px 2px rgba(10,13,18,0.05)\"};const font='-apple-system, \"Inter\", \"Geist\", ui-sans-serif, sans-serif';const mono='\"Geist Mono\", \"JetBrains Mono\", ui-monospace, monospace';export const meta={name:\"Event Flow V2\",width:480};// ─── Layout ──────────────────────────────────────────────────────────────────\nconst W=480;const CX=W/2;const SOURCE_W=250;const SOURCE_H=50;const SOURCE_Y=28;const NODE_W=90;const NODE_H=34;const NODE_Y=SOURCE_Y+SOURCE_H+52;const PARTNER_W=144;const PARTNER_BASE_H=52;const PARTNER_FULL_H=92;const PARTNER_GAP=8;const PARTNER_Y=NODE_Y+NODE_H/2+64;const totalPartnersW=PARTNER_W*3+PARTNER_GAP*2;const PX0=(W-totalPartnersW)/2;const PARTNER_X=[PX0,PX0+PARTNER_W+PARTNER_GAP,PX0+(PARTNER_W+PARTNER_GAP)*2];// ─── Timeline (ms) ──────────────────────────────────────────────────────────\nconst T_INCOMING_START=200;const T_INCOMING_DUR=800// incoming streak travel time\n;const T_PULSE=T_INCOMING_START+T_INCOMING_DUR// 1000ms — stream flashes\n;const T_OUTGOING_START=T_PULSE// outgoing streaks start with the flash\n;const T_OUTGOING_DUR=1200// outgoing streak travel time\n;const T_ARRIVE=T_OUTGOING_START+T_OUTGOING_DUR// 2400ms — cards expand\n;const T_HOLD=1200// hold expanded state\n;const T_LOOP=T_ARRIVE+T_HOLD// 3600ms — full cycle\n;// ─── Streak config ───────────────────────────────────────────────────────────\nconst STREAK_FRAC=.22;// ─── SVG arc path ────────────────────────────────────────────────────────────\nfunction arcPath(fromX,fromY,toX,toY){const dy=toY-fromY;const dx=toX-fromX;return`M${fromX},${fromY} C${fromX+dx*.1},${fromY+dy*.5} ${toX-dx*.1},${toY-dy*.3} ${toX},${toY}`;}// ─── Server icon ─────────────────────────────────────────────────────────────\nconst ServerIcon=()=>/*#__PURE__*/_jsxs(\"svg\",{width:14,height:14,viewBox:\"0 0 20 20\",fill:\"none\",style:{flexShrink:0},children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12.014 8.667V11.333c0 1.105-.894 2-1.997 2-.552 0-1.052.224-1.413.586-.362.362-.586.862-.586 1.414V18c0 1.105-.894 2-1.997 2s-1.997-.895-1.997-2v-2.667c0-1.105.894-2 1.997-2 1.103 0 1.997-.895 1.997-2V8.667c0-.552-.224-1.052-.586-1.414A1.989 1.989 0 006.025 6.667c-1.103 0-1.997-.896-1.997-2V2c0-1.105.894-2 1.997-2 .551 0 1.051.224 1.412.586.362.362.586.862.586 1.414v2.667c0 1.104.894 2 1.997 2 .551 0 1.051.224 1.412.586.362.362.586.862.586 1.414z\",fill:\"#2E90FA\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M20 8.667V11.333c0 1.105-.894 2-1.997 2-1.102 0-1.996.895-1.996 2V18c0 1.105-.894 2-1.997 2s-1.997-.895-1.997-2v-2.667c0-1.105.894-2 1.997-2 1.102 0 1.996-.895 1.996-2V8.667c0-.552-.223-1.052-.585-1.414A1.989 1.989 0 0014.01 6.667c-1.103 0-1.997-.896-1.997-2V2c0-1.105.894-2 1.997-2 .551 0 1.051.224 1.412.586.362.362.586.862.586 1.414v2.667c0 1.104.894 2 1.997 2 .551 0 1.051.224 1.412.586.362.362.586.862.586 1.414z\",fill:\"#2E90FA\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.993 8.667c0-1.105-.894-2-1.997-2C.894 6.667 0 7.562 0 8.667v2.666c0 1.105.894 2 1.996 2 1.103 0 1.997-.895 1.997-2V8.667z\",fill:\"#2E90FA\"})]});// ─── Spinner ─────────────────────────────────────────────────────────────────\nconst Spinner=({color,size=10})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 16 16\",fill:\"none\",style:{animation:\"bvg-spin 1s linear infinite\",flexShrink:0},children:[/*#__PURE__*/_jsx(\"circle\",{cx:8,cy:8,r:6,stroke:color,strokeWidth:2,opacity:.25}),/*#__PURE__*/_jsx(\"path\",{d:\"M14 8a6 6 0 00-6-6\",stroke:color,strokeWidth:2,strokeLinecap:\"round\"})]});const PARTNERS=[{name:\"Search Index\",detail:\"60M products\",latency:\"+12ms\",status:\"delivered\",impact:\"Price live\",color:C.successText},{name:\"Partner Feed\",detail:\"7,012 partners\",latency:\"+1.8s\",status:\"processing\",impact:\"Syncing\",color:C.blue},{name:\"Mobile Push\",detail:\"12.8k watchers\",latency:\"+3.0s\",status:\"queued\",impact:\"Alert pending\",color:C.warnText}];const STATUS_STYLE={delivered:{bg:C.successBg,border:C.successBorder,color:C.successText},processing:{bg:C.blueBg,border:C.blueBorder,color:C.blueText},queued:{bg:C.warnBg,border:C.warnBorder,color:C.warnText}};// ─── Streak on a line (two-path technique) ───────────────────────────────────\nfunction Streak({d,gradientId,color,startDelay,travelDur,loop}){const measureRef=useRef(null);const[len,setLen]=useState(0);useEffect(()=>{if(measureRef.current)setLen(measureRef.current.getTotalLength());},[d]);const streakLen=len*STREAK_FRAC;const animName=`streak-${gradientId}`;// Travel portion of the loop (fraction of total loop time)\nconst travelFrac=travelDur/loop;// Streak travels during [startDelay/loop .. (startDelay+travelDur)/loop]\nconst startPct=startDelay/loop*100;const endPct=(startDelay+travelDur)/loop*100;const keyframes=len>0?`\n    @keyframes ${animName} {\n      0%        { stroke-dashoffset: ${len}; }\n      ${startPct}%  { stroke-dashoffset: ${len}; }\n      ${endPct}%    { stroke-dashoffset: ${-len}; }\n      100%      { stroke-dashoffset: ${-len}; }\n    }\n  `:\"\";return /*#__PURE__*/_jsxs(\"g\",{children:[len>0&&/*#__PURE__*/_jsx(\"style\",{children:keyframes}),/*#__PURE__*/_jsx(\"path\",{ref:measureRef,d:d,fill:\"none\",stroke:C.borderMid,strokeWidth:1.5,strokeDasharray:\"4 3\",opacity:.5}),len>0&&/*#__PURE__*/_jsx(\"path\",{d:d,fill:\"none\",stroke:color,strokeWidth:2.5,strokeLinecap:\"round\",strokeDasharray:`${streakLen} ${2*len}`,strokeDashoffset:len,style:{animation:`${animName} ${loop/1e3}s linear infinite`}})]});}// ─── Source card ──────────────────────────────────────────────────────────────\nfunction SourceCard(){return /*#__PURE__*/_jsx(\"foreignObject\",{x:CX-SOURCE_W/2,y:SOURCE_Y,width:SOURCE_W,height:SOURCE_H+4,children:/*#__PURE__*/_jsxs(\"div\",{style:{background:C.bgPrimary,border:`1px solid ${C.border}`,borderRadius:8,padding:\"8px 14px 10px\",boxShadow:C.shadow,fontFamily:font},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:6},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,fontWeight:600,color:C.textPrimary},children:\"PriceUpdated\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,fontFamily:mono,color:C.textMuted},children:\"0ms\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:11,fontFamily:mono,color:C.textSecondary,marginTop:3,whiteSpace:\"nowrap\"},children:\"SKU-8821 \\xb7 €29.99 → €24.99\"})]})});}// ─── Stream node (with pulse) ────────────────────────────────────────────────\nfunction StreamNode(){// Pulse: border flashes blue at T_PULSE, returns to gray\n// Timed via CSS animation synced to the same T_LOOP\n// Flash: gray → blue at T_PULSE, hold 1s, blue → gray\nconst flashOnPct=T_PULSE/T_LOOP*100;const flashOffPct=(T_PULSE+1e3)/T_LOOP*100;const pulseKeyframes=`\n    @keyframes stream-pulse {\n      0%                   { border-color: ${C.borderMid}; }\n      ${flashOnPct-.1}%  { border-color: ${C.borderMid}; }\n      ${flashOnPct}%       { border-color: ${C.blue}; }\n      ${flashOffPct-.1}% { border-color: ${C.blue}; }\n      ${flashOffPct}%      { border-color: ${C.borderMid}; }\n      100%                 { border-color: ${C.borderMid}; }\n    }\n  `;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:pulseKeyframes}),/*#__PURE__*/_jsx(\"foreignObject\",{x:CX-NODE_W/2,y:NODE_Y-NODE_H/2,width:NODE_W,height:NODE_H,children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",background:C.bgPrimary,border:`1.5px solid ${C.borderMid}`,borderRadius:8,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:5,fontFamily:mono,fontSize:9,fontWeight:700,color:C.blueText,boxShadow:C.shadow,animation:`stream-pulse ${T_LOOP/1e3}s cubic-bezier(0.7, 0, 0.3, 1) infinite`},children:[/*#__PURE__*/_jsx(ServerIcon,{}),\"STREAM\"]})})]});}// ─── Partner card (expands on arrival, collapses on loop reset) ──────────────\nfunction PartnerCard({partner,index}){const st=STATUS_STYLE[partner.status];// Card expand/collapse synced to T_LOOP via CSS animation\n// Collapsed from 0% → arrival, expanded from arrival → end, then reset\nconst arrivePct=T_ARRIVE/T_LOOP*100;// Expand over ~8% of loop, collapse over ~8%\nconst expandEnd=arrivePct+8;const collapseStart=90;const collapseEnd=98;const midH=PARTNER_BASE_H+(PARTNER_FULL_H-PARTNER_BASE_H)*.7// ease-out feel\n;const expandKeyframes=`\n    @keyframes card-expand-${index} {\n      0%               { height: ${PARTNER_BASE_H}px; border-color: ${C.border}; }\n      ${arrivePct}%    { height: ${PARTNER_BASE_H}px; border-color: ${C.border}; }\n      ${arrivePct+3}% { height: ${midH}px; border-color: ${st.border}; }\n      ${expandEnd}%    { height: ${PARTNER_FULL_H}px; border-color: ${st.border}; }\n      ${collapseStart}% { height: ${PARTNER_FULL_H}px; border-color: ${st.border}; }\n      ${collapseStart+3}% { height: ${midH}px; border-color: ${C.border}; }\n      ${collapseEnd}%  { height: ${PARTNER_BASE_H}px; border-color: ${C.border}; }\n      100%             { height: ${PARTNER_BASE_H}px; border-color: ${C.border}; }\n    }\n  `;// Content opacity: hidden until arrival\nconst contentKeyframes=`\n    @keyframes card-content-${index} {\n      0%               { opacity: 0; }\n      ${arrivePct+4}% { opacity: 0; }\n      ${expandEnd}%    { opacity: 1; }\n      ${collapseStart}% { opacity: 1; }\n      ${collapseStart+3}% { opacity: 0; }\n      100%             { opacity: 0; }\n    }\n  `;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"style\",{children:[expandKeyframes,contentKeyframes]}),/*#__PURE__*/_jsx(\"foreignObject\",{x:PARTNER_X[index],y:PARTNER_Y,width:PARTNER_W,height:PARTNER_FULL_H,children:/*#__PURE__*/_jsxs(\"div\",{style:{background:C.bgPrimary,border:`1px solid ${C.border}`,borderRadius:8,boxShadow:C.shadow,fontFamily:font,height:PARTNER_BASE_H,overflow:\"hidden\",animation:`card-expand-${index} ${T_LOOP/1e3}s linear infinite`},children:[/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"10px 10px 0\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:4},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:11,fontWeight:600,color:C.textPrimary,flex:1},children:partner.name}),partner.status===\"processing\"&&/*#__PURE__*/_jsx(Spinner,{color:st.color,size:11})]}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:10,color:C.textMuted,marginTop:2},children:partner.detail})]}),/*#__PURE__*/_jsxs(\"div\",{style:{opacity:0,animation:`card-content-${index} ${T_LOOP/1e3}s linear infinite`},children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:\"4px 10px 0\"},children:/*#__PURE__*/_jsx(\"div\",{style:{fontSize:10,fontFamily:mono,fontWeight:500,color:partner.color},children:partner.latency})}),/*#__PURE__*/_jsxs(\"div\",{style:{borderTop:`1px solid ${C.border}`,margin:\"8px 0 0\",padding:\"8px 10px\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10,fontWeight:500,color:st.color},children:partner.impact}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:8,fontWeight:600,padding:\"1px 6px\",borderRadius:999,background:st.bg,border:`1px solid ${st.border}`,color:st.color},children:partner.status})]})]})]})})]});}// ─── Main ────────────────────────────────────────────────────────────────────\nexport default function ConceptD(){const containerRef=useRef(null);const[animKey,setAnimKey]=useState(0);useEffect(()=>{const el=containerRef.current;if(!el)return;const obs=new IntersectionObserver(([entry])=>{if(entry.isIntersecting)setAnimKey(k=>k+1);},{threshold:.8});obs.observe(el);return()=>obs.disconnect();},[]);const inFromY=SOURCE_Y+SOURCE_H+4;const inToY=NODE_Y-NODE_H/2;const incomingD=`M${CX},${inFromY} L${CX},${inToY}`;const arcStartY=NODE_Y+NODE_H/2;const arcDs=PARTNERS.map((_,i)=>arcPath(CX,arcStartY,PARTNER_X[i]+PARTNER_W/2,PARTNER_Y));const totalH=PARTNER_Y+PARTNER_FULL_H+20;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,onClick:()=>setAnimKey(k=>k+1),style:{width:W,fontFamily:font,background:C.bgPrimary,border:`1px solid ${C.border}`,borderRadius:12,boxShadow:C.shadow,overflow:\"hidden\",cursor:\"default\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`@keyframes bvg-spin { to { transform: rotate(360deg); } }`}),/*#__PURE__*/_jsxs(\"svg\",{width:W,height:totalH,style:{display:\"block\"},children:[/*#__PURE__*/_jsx(Streak,{d:incomingD,gradientId:\"streak-incoming\",color:C.borderMid,startDelay:T_INCOMING_START,travelDur:T_INCOMING_DUR,loop:T_LOOP}),arcDs.map((d,i)=>/*#__PURE__*/_jsx(Streak,{d:d,gradientId:`streak-out-${i}`,color:C.blue,startDelay:T_OUTGOING_START,travelDur:T_OUTGOING_DUR,loop:T_LOOP},`arc-${i}`)),arcDs.map((d,i)=>/*#__PURE__*/_jsx(ArcArrowhead,{d:d},`arrow-${i}`)),/*#__PURE__*/_jsx(StreamNode,{}),/*#__PURE__*/_jsx(SourceCard,{}),PARTNERS.map((p,i)=>/*#__PURE__*/_jsx(PartnerCard,{partner:p,index:i},p.name))]},animKey)]});}// ─── Static arrowhead at path endpoint ───────────────────────────────────────\nfunction ArcArrowhead({d}){const ref=useRef(null);const[transform,setTransform]=useState(\"\");useEffect(()=>{if(!ref.current)return;const len=ref.current.getTotalLength();const endPt=ref.current.getPointAtLength(len);const prePt=ref.current.getPointAtLength(len-2);const angle=Math.atan2(endPt.y-prePt.y,endPt.x-prePt.x)*180/Math.PI;setTransform(`translate(${endPt.x},${endPt.y}) rotate(${angle})`);},[d]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{ref:ref,d:d,fill:\"none\",stroke:\"none\"}),transform&&/*#__PURE__*/_jsx(\"polygon\",{points:\"0,0 -7,-3.5 -7,3.5\",fill:C.borderMid,transform:transform})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ConceptD\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"meta\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Infrastructure_Synchronization.map"],"mappings":"8IAuBA,SAAS,EAAQ,EAAM,EAAM,EAAI,EAAI,CAAC,IAAM,EAAG,EAAI,EAAY,EAAG,EAAI,EAAM,MAAM,IAAI,EAAM,GAAG,EAAM,IAAI,EAAM,EAAG,GAAG,GAAG,EAAM,EAAG,GAAG,GAAG,EAAI,EAAG,GAAG,GAAG,EAAI,EAAG,GAAG,GAAG,EAAI,GAAG,GAAM,CAG9K,SAAS,EAAO,CAAC,IAAE,aAAW,QAAM,aAAW,YAAU,QAAM,CAAC,IAAM,EAAWA,EAAO,IAAI,EAAO,CAAC,EAAI,GAAQC,EAAS,CAAC,EAAE,MAAc,CAAI,EAAW,SAAQ,EAAO,EAAW,QAAQ,eAAe,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAM,EAAU,EAAI,EAAkB,EAAS,UAAU,IAC5P,EAAU,EAC3B,IAAM,EAAS,EAAW,EAAK,IAAU,GAAQ,EAAW,GAAW,EAAK,IAAU,EAAU,EAAI,EAAE;iBACrF,EAAS;uCACa,EAAI;QACnC,EAAS,0BAA0B,EAAI;QACvC,EAAO,4BAA4B,CAAC,EAAI;uCACT,CAAC,EAAI;;IAExC,GAAG,OAAoB,EAAM,IAAI,CAAC,SAAS,CAAC,EAAI,GAAgB,EAAK,QAAQ,CAAC,SAAS,CAAS,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAa,IAAE,KAAK,OAAO,OAAO,EAAE,UAAU,YAAY,IAAI,gBAAgB,MAAM,QAAQ,EAAE,CAAC,EAAE,EAAI,GAAgB,EAAK,OAAO,CAAG,IAAE,KAAK,OAAO,OAAO,EAAM,YAAY,IAAI,cAAc,QAAQ,gBAAgB,GAAG,EAAU,GAAG,EAAE,IAAM,iBAAiB,EAAI,MAAM,CAAC,UAAU,GAAG,EAAS,GAAG,EAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACzc,SAAS,GAAY,CAAC,OAAoB,EAAK,gBAAgB,CAAC,EAAE,EAAG,EAAS,EAAE,EAAE,EAAS,MAAM,EAAS,OAAO,GAAW,SAAsB,EAAM,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,OAAO,aAAa,EAAE,SAAS,aAAa,EAAE,QAAQ,gBAAgB,UAAU,EAAE,OAAO,WAAW,CAAI,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,CAAC,EAAE,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,IAAI,MAAM,EAAE,WAAW,EAAE,SAAS,cAAc,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,EAAK,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,EAAK,MAAM,EAAE,cAAc,UAAU,EAAE,WAAW,QAAQ,EAAE,SAAS,4BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACxvB,SAAS,GAAY,CAGrB,IAAM,EAAW,EAAQ,EAAO,IAAU,EAAa,IAAa,EAAO,IASvE,OAAoB,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS;;6CAP1C,EAAE,UAAU;QACjD,EAAW,GAAG,qBAAqB,EAAE,UAAU;QAC/C,EAAW,0BAA0B,EAAE,KAAK;QAC5C,EAAY,GAAG,oBAAoB,EAAE,KAAK;QAC1C,EAAY,yBAAyB,EAAE,UAAU;6CACZ,EAAE,UAAU;;GAE4C,CAAC,EAAe,EAAK,gBAAgB,CAAC,EAAE,EAAG,EAAO,EAAE,EAAE,EAAO,EAAO,EAAE,MAAM,EAAO,OAAO,EAAO,SAAsB,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,WAAW,EAAE,UAAU,OAAO,eAAe,EAAE,YAAY,aAAa,EAAE,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,IAAI,EAAE,WAAW,EAAK,SAAS,EAAE,WAAW,IAAI,MAAM,EAAE,SAAS,UAAU,EAAE,OAAO,UAAU,gBAAgB,EAAO,IAAI,wCAAwC,EAAE,SAAS,CAAc,EAAK,EAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAC/mB,SAAS,EAAY,CAAC,UAAQ,SAAO,CAAC,IAAM,EAAG,EAAa,EAAQ,QAE9D,EAAU,EAAS,EAAO,IAC1B,EAAU,kBAsBZ,OAAoB,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAM,QAAQ,CAAC,SAAS,CAAC;6BApB5D,EAAM;mCACA,EAAe,oBAAoB,EAAE,OAAO;QACvE,EAAU,iBAAiB,EAAe,oBAAoB,EAAE,OAAO;yDACpB,EAAG,OAAO;QAC7D,EAAU,iBAAiB,EAAe,oBAAoB,EAAG,OAAO;sBAC5C,EAAe,oBAAoB,EAAG,OAAO;0CAClB,EAAE,OAAO;uBACrC,EAAe,oBAAoB,EAAE,OAAO;mCAC5C,EAAe,oBAAoB,EAAE,OAAO;;IAY0B;8BAR3E,EAAM;;;QAG5B,EAAU;;;;;GAKuG,CAAC,CAAC,EAAe,EAAK,gBAAgB,CAAC,EAAE,EAAU,GAAO,EAAE,EAAU,MAAM,EAAU,OAAO,EAAe,SAAsB,EAAM,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,OAAO,aAAa,EAAE,SAAS,aAAa,EAAE,UAAU,EAAE,OAAO,WAAW,EAAK,OAAO,EAAe,SAAS,SAAS,UAAU,eAAe,EAAM,GAAG,EAAO,IAAI,kBAAkB,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,aAAa,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,CAAC,EAAE,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,IAAI,MAAM,EAAE,YAAY,KAAK,CAAC,EAAE,SAAS,EAAQ,IAAI,CAAC,EAAE,EAAQ,SAAS,cAA2B,EAAK,EAAQ,CAAC,MAAM,EAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,UAAU,UAAU,CAAC,EAAE,SAAS,EAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,gBAAgB,EAAM,GAAG,EAAO,IAAI,kBAAkB,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,YAAY,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,EAAK,WAAW,IAAI,MAAM,EAAQ,KAAK,EAAE,SAAS,EAAQ,OAAO,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,UAAU,aAAa,EAAE,SAAS,OAAO,UAAU,QAAQ,WAAW,QAAQ,OAAO,WAAW,SAAS,eAAe,eAAe,EAAE,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,IAAI,MAAM,EAAG,KAAK,EAAE,SAAS,EAAQ,MAAM,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,IAAI,QAAQ,UAAU,aAAa,IAAI,WAAW,EAAG,GAAG,OAAO,aAAa,EAAG,SAAS,MAAM,EAAG,KAAK,EAAE,SAAS,EAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACnsD,SAAwB,GAAU,CAAC,IAAM,EAAaF,EAAO,IAAI,EAAO,CAAC,EAAQ,GAAYC,EAAS,CAAC,EAAE,MAAc,CAAC,IAAM,EAAG,EAAa,QAAQ,GAAG,CAAC,EAAG,OAAO,IAAM,EAAI,IAAI,sBAAsB,CAAC,KAAS,CAAI,EAAM,gBAAe,EAAW,GAAG,EAAE,CAAC,CAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAkB,OAAhB,EAAI,QAAQ,CAAE,MAAY,EAAI,WAAW,CAAE,EAAE,CAAC,CAAC,EAAgE,IAAM,EAAU,IAAI,EAAG,OAAe,EAAG,GAAzD,EAAO,EAAO,IAA4F,EAAM,EAAS,KAAK,EAAE,IAAI,EAAQ,EAAG,IAAU,EAAU,GAAG,EAAU,EAAE,CAAS,CAAC,EAA2C,OAAoB,EAAM,MAAM,CAAC,IAAI,EAAa,YAAY,EAAW,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAK,WAAW,EAAE,UAAU,OAAO,aAAa,EAAE,SAAS,aAAa,GAAG,UAAU,EAAE,OAAO,SAAS,SAAS,OAAO,SAAS,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,2DAA2D,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,EAAE,OAAO,IAAO,MAAM,CAAC,QAAQ,OAAO,EAAE,SAAS,CAAc,EAAK,EAAO,CAAC,EAAE,EAAU,WAAW,kBAAkB,MAAM,EAAE,UAAU,WAAW,EAAiB,UAAU,EAAe,KAAK,CAAM,CAAC,EAAE,EAAM,KAAK,EAAE,IAAiB,EAAK,EAAO,CAAG,IAAE,WAAW,cAAc,IAAI,MAAM,EAAE,KAAK,WAAW,EAAiB,UAAU,EAAe,KAAK,CAAM,EAAE,OAAO,GAAG,CAAC,EAAE,EAAM,KAAK,EAAE,IAAiB,EAAK,EAAa,CAAG,GAAC,EAAE,SAAS,GAAG,CAAC,EAAe,EAAK,EAAW,CAAC,CAAC,EAAe,EAAK,EAAW,CAAC,CAAC,EAAE,EAAS,KAAK,EAAE,IAAiB,EAAK,EAAY,CAAC,QAAQE,EAAE,MAAM,CAAC,EAAEA,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAO,CAAC,CAAC,CAAC,CAAE,CACriD,SAAS,EAAa,CAAC,KAAG,CAAC,IAAM,EAAIH,EAAO,IAAI,EAAO,CAAC,EAAU,GAAcC,EAAS,EAAE,EAA0T,OAAxT,MAAc,CAAC,GAAG,CAAC,EAAI,QAAQ,OAAO,IAAM,EAAI,EAAI,QAAQ,eAAe,EAAQ,EAAM,EAAI,QAAQ,iBAAiB,CAAG,EAAQ,EAAM,EAAI,QAAQ,iBAAiB,EAAI,CAAC,EAAQ,EAAM,KAAK,MAAM,EAAM,EAAE,EAAM,EAAE,EAAM,EAAE,EAAM,CAAC,EAAE,IAAI,KAAK,GAAG,EAAa,aAAa,EAAM,EAAE,GAAG,EAAM,EAAE,WAAW,EAAM,EAAE,CAAE,EAAE,CAAC,CAAC,CAAC,EAAsB,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,OAAO,CAAK,MAAM,IAAE,KAAK,OAAO,OAAO,MAAM,CAAC,EAAE,GAAwB,EAAK,UAAU,CAAC,OAAO,qBAAqB,KAAK,EAAE,UAAoB,WAAS,CAAC,CAAC,CAAC,CAAC,CAAE,uEAjEniB,IAA6C,EAAO,EAAE,CAAC,UAAU,UAAU,OAAO,UAAU,UAAU,UAAU,YAAY,UAAU,cAAc,UAAU,UAAU,UAAU,KAAK,UAAU,OAAO,UAAU,WAAW,UAAU,SAAS,UAAU,UAAU,UAAU,cAAc,UAAU,YAAY,UAAU,OAAO,UAAU,WAAW,UAAU,SAAS,UAAU,OAAO,iCAAiC,EAAQ,EAAK,6DAAmE,EAAK,0DAC7jB,EAAE,IAAU,EAAG,EAAE,EAAQ,EAAS,IAA4B,EAAS,GAAS,EAAO,GAAS,EAAO,GAAS,EAAO,IAA2B,EAAU,IAAU,EAAe,GAAS,EAAe,GAA6B,EAAU,IAAuG,EAAU,EAApC,EAAE,KAAgB,EAAuB,IAA0B,GAA6B,EACja,EAAiB,IAAU,EAAe,IACzC,EAAQ,IACR,EAAiB,EACjB,EAAe,KACf,EAAS,KAET,EAAO,KAER,EAAY,IAEZ,MAA4B,EAAM,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,YAAY,KAAK,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,scAAsc,KAAK,SAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,oaAAoa,KAAK,SAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,+HAA+H,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAC5uC,GAAS,CAAC,QAAM,OAAK,MAAmB,EAAM,MAAM,CAAC,MAAM,EAAK,OAAO,EAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,CAAC,UAAU,8BAA8B,WAAW,CAAC,EAAE,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAM,YAAY,EAAE,QAAQ,GAAG,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,qBAAqB,OAAO,EAAM,YAAY,EAAE,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,EAAQ,EAAS,CAAC,CAAC,KAAK,eAAe,OAAO,eAAe,QAAQ,QAAQ,OAAO,YAAY,OAAO,aAAa,MAAM,EAAE,WAAW,EAAE,CAAC,KAAK,eAAe,OAAO,iBAAiB,QAAQ,QAAQ,OAAO,aAAa,OAAO,UAAU,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,cAAc,OAAO,iBAAiB,QAAQ,QAAQ,OAAO,SAAS,OAAO,gBAAgB,MAAM,EAAE,QAAQ,CAAC,EAAQ,EAAa,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,OAAO,EAAE,cAAc,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,EAAE,OAAO,OAAO,EAAE,WAAW,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,OAAO,EAAE,WAAW,MAAM,EAAE,QAAQ,CAAC"}