{"version":3,"file":"PostFigure.gitb_N2m.mjs","names":["useRef","useState","useMemo","_Fragment","p"],"sources":["https:/framerusercontent.com/modules/7kyqN4SFlYMkxqXG9ABd/YYGz6uTXEPbOYz2S5rvv/PostFigure.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useMemo,useRef,useState}from\"react\";/**\n * Interactive figures for writing posts. `figure` selects one of:\n * before-after · migration-loop · droplet · delivery-cycle (hover/tap graphs),\n * proration (live billing calculator), invoice-states (state simulator).\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerDisableUnlink\n */export default function PostFigure(props){const{figure=\"before-after\",style}=props;const ref=useRef(null);const[width,setWidth]=useState(0);useEffect(()=>{if(!ref.current||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(en=>setWidth(Math.round(en[0].contentRect.width)));ro.observe(ref.current);return()=>ro.disconnect();},[]);const key=(figure||\"\").trim().toLowerCase();let body=null,kicker=\"FIGURE\",title=\"\";if(key===\"proration\"){kicker=\"INTERACTIVE\";title=\"Proration, computed live\";body=/*#__PURE__*/_jsx(Proration,{accent:\"129,140,248\",width:width});}else if(key===\"invoice-states\"){kicker=\"INTERACTIVE\";title=\"Invoice states, simulated\";body=/*#__PURE__*/_jsx(InvoiceStates,{accent:\"129,140,248\"});}else if(GRAPHS[key]){const g=GRAPHS[key];kicker=\"INTERACTIVE FIGURE\";title=g.title;body=/*#__PURE__*/_jsx(Graph,{g:g,width:width});}else return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,minHeight:1}});return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{...shell,...style},children:[/*#__PURE__*/_jsx(\"div\",{style:head,children:/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{style:kickerS,children:kicker}),/*#__PURE__*/_jsx(\"div\",{style:titleS,children:title})]})}),width===0?/*#__PURE__*/_jsx(\"div\",{style:{height:240}}):body]});}function Graph({g,width}){const[active,setActive]=useState(null);const[pinned,setPinned]=useState(null);const[toggled,setToggled]=useState(false);const current=pinned||active;const narrow=width<560;const related=useMemo(()=>{const s=new Set;if(!current)return s;for(const e of g.e){if(e.from===current)s.add(e.to);if(e.to===current)s.add(e.from);}return s;},[g,current]);const node=id=>g.n.find(n=>n.id===id);useEffect(()=>{if(typeof window===\"undefined\")return;const k=e=>{if(e.key===\"Escape\"){setPinned(null);setActive(null);}};window.addEventListener(\"keydown\",k);return()=>window.removeEventListener(\"keydown\",k);},[]);const isDim=n=>current&&current!==n.id&&!related.has(n.id)||toggled&&!n.pub;const explain=n=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:tipWhy,children:n.why}),related.size>0&&current===n.id&&/*#__PURE__*/_jsxs(\"div\",{style:tipRel,children:[\"Connects to: \",Array.from(related).map(id=>node(id)?.l).filter(Boolean).join(\" \\xb7 \")]})]});const toggleBtn=g.toggle&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>setToggled(t=>!t),style:{...smallBtn,background:toggled?`rgba(${g.accent},0.18)`:\"rgb(31,31,31)\",borderColor:toggled?`rgba(${g.accent},0.7)`:\"rgb(41,41,41)\"},\"aria-pressed\":toggled,children:g.toggle.label});if(narrow){return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:14},children:[toggleBtn&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,alignItems:\"center\",flexWrap:\"wrap\"},children:[toggleBtn,toggled&&/*#__PURE__*/_jsx(\"span\",{style:hintS,children:g.toggle.note})]}),g.rows.map((row,ri)=>/*#__PURE__*/_jsxs(\"div\",{children:[row.t&&/*#__PURE__*/_jsx(\"div\",{style:{...rowLabel,position:\"static\",marginBottom:8},children:row.t.toUpperCase()}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:6},children:g.n.filter(n=>n.r===ri).sort((a,b)=>a.c-b.c).map(n=>{const open=current===n.id;return /*#__PURE__*/_jsxs(\"div\",{role:\"button\",tabIndex:0,\"aria-expanded\":open,onClick:()=>setPinned(p=>p===n.id?null:n.id),onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();setPinned(p=>p===n.id?null:n.id);}},style:{...nodeBox(n.k,g.accent),position:\"relative\",opacity:isDim(n)&&!open?.4:1,boxShadow:open?`0 0 0 2px rgba(${g.accent},0.55)`:related.has(n.id)?`0 0 0 1px rgba(${g.accent},0.5)`:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:nodeLabel,children:n.l}),n.s&&/*#__PURE__*/_jsx(\"div\",{style:nodeSub,children:n.s}),open&&/*#__PURE__*/_jsx(\"div\",{style:{marginTop:8,paddingTop:8,borderTop:\"1px solid rgba(255,255,255,0.08)\"},children:explain(n)})]},n.id);})})]},ri))]});}// wide: grid positions\nconst PAD=6,GAP=12,NH=60,RH=NH+26,TOPPAD=6;const colW=width/g.cols;const pos={};for(const n of g.n){const span=n.span||1;pos[n.id]={x:n.c*colW+PAD,y:TOPPAD+n.r*RH+(g.rows[n.r]?.t?18:0)+rowOffset(g,n.r),w:span*colW-PAD*2,h:NH};}function rowOffset(gg,r){let o=0;for(let i=0;i<r;i++)if(gg.rows[i]?.t)o+=18;return o;}const contentBottom=Math.max(...Object.values(pos).map(p=>p.y+p.h));const hasBelow=g.e.some(e=>e.via===\"below\");const height=contentBottom+(hasBelow?34:14);const edges=g.e.map(e=>{const A=pos[e.from],B=pos[e.to];if(!A||!B)return null;let d=\"\",lx=0,ly=0;if(e.via===\"below\"){const ch=height-10;const x1=A.x+A.w/2,x2=B.x+B.w/2;d=`M${x1},${A.y+A.h} V${ch} H${x2} V${B.y+B.h}`;lx=(x1+x2)/2;ly=ch-6;}else if(Math.abs(A.y-B.y)<1){const ltr=B.x>A.x;const x1=ltr?A.x+A.w:A.x,x2=ltr?B.x:B.x+B.w,y=A.y+A.h/2;d=`M${x1},${y} L${x2},${y}`;lx=(x1+x2)/2;ly=y-7;}else if(Math.abs(A.x-B.x)<1&&A.w===B.w){const down=B.y>A.y;const x=A.x+A.w/2;d=`M${x},${down?A.y+A.h:A.y} L${x},${down?B.y:B.y+B.h}`;lx=x+8;ly=(A.y+B.y+A.h)/2;}else{const ltr=B.x+B.w/2>A.x+A.w/2;const x1=ltr?A.x+A.w:A.x,y1=A.y+A.h/2,x2=ltr?B.x:B.x+B.w,y2=B.y+B.h/2;const c=Math.abs(x2-x1)*.5*(ltr?1:-1);d=`M${x1},${y1} C${x1+c},${y1} ${x2-c},${y2} ${x2},${y2}`;lx=(x1+x2)/2;ly=(y1+y2)/2-6;}return{...e,d,lx,ly};}).filter(Boolean);const tipN=current?node(current):null,tipP=current?pos[current]:null;const tipW=Math.min(300,width-12);return /*#__PURE__*/_jsxs(\"div\",{children:[toggleBtn&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:10,alignItems:\"center\",flexWrap:\"wrap\",marginBottom:10},children:[toggleBtn,/*#__PURE__*/_jsx(\"span\",{style:hintS,children:toggled?g.toggle.note:\"Hover a part to see why it is there \\xb7 click to pin\"})]}),!toggleBtn&&/*#__PURE__*/_jsx(\"div\",{style:{...hintS,marginBottom:8},children:pinned?/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:smallBtn,onClick:()=>{setPinned(null);setActive(null);},children:\"Reset ↺\"}):\"Hover a part to see why it is there \\xb7 click to pin\"}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height},onMouseLeave:()=>setActive(null),children:[/*#__PURE__*/_jsxs(\"svg\",{width:width,height:height,viewBox:`0 0 ${width} ${height}`,style:{position:\"absolute\",inset:0,pointerEvents:\"none\"},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsx(\"marker\",{id:`pf-${g.title.length}`,viewBox:\"0 0 10 10\",refX:\"9\",refY:\"5\",markerWidth:\"7\",markerHeight:\"7\",orient:\"auto-start-reverse\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M0,0 L10,5 L0,10 z\",fill:`rgb(${g.accent})`})}),/*#__PURE__*/_jsx(\"style\",{children:`@keyframes pfdash { to { stroke-dashoffset: -24; } }`})]}),edges.map((e,i)=>{const on=current?e.from===current||e.to===current:false;const dim=current&&!on;return /*#__PURE__*/_jsx(\"path\",{d:e.d,fill:\"none\",stroke:`rgba(${g.accent},${on?1:.7})`,strokeWidth:on?2.5:1.75,markerEnd:`url(#pf-${g.title.length})`,strokeDasharray:on?\"8 6\":undefined,style:{opacity:dim?.12:1,transition:\"opacity 0.25s ease\",animation:on?\"pfdash 0.9s linear infinite\":undefined}},i);})]}),g.rows.map((row,ri)=>row.t&&/*#__PURE__*/_jsx(\"div\",{style:{...rowLabel,left:PAD,top:TOPPAD+ri*RH+rowOffset(g,ri)},children:row.t.toUpperCase()},ri)),g.n.map(n=>{const p=pos[n.id],cur=current===n.id,rel=related.has(n.id);return /*#__PURE__*/_jsxs(\"div\",{role:\"button\",tabIndex:0,\"aria-label\":`${n.l}: ${n.why}`,\"aria-pressed\":pinned===n.id,onMouseEnter:()=>setActive(n.id),onFocus:()=>setActive(n.id),onClick:()=>setPinned(pp=>pp===n.id?null:n.id),onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();setPinned(pp=>pp===n.id?null:n.id);}},style:{...nodeBox(n.k,g.accent),left:p.x,top:p.y,width:p.w,height:p.h,opacity:isDim(n)&&!cur?.3:1,boxShadow:cur?`0 0 0 2px rgba(${g.accent},0.55), 0 12px 30px rgba(0,0,0,0.45)`:rel?`0 0 0 1px rgba(${g.accent},0.5)`:\"none\",zIndex:cur?3:1},children:[/*#__PURE__*/_jsx(\"div\",{style:nodeLabel,children:n.l}),n.s&&/*#__PURE__*/_jsx(\"div\",{style:nodeSub,children:n.s})]},n.id);}),/*#__PURE__*/_jsx(\"svg\",{width:width,height:height,viewBox:`0 0 ${width} ${height}`,style:{position:\"absolute\",inset:0,pointerEvents:\"none\",zIndex:4},\"aria-hidden\":\"true\",children:current&&edges.filter(e=>e.label&&(e.from===current||e.to===current)).map((e,i)=>/*#__PURE__*/_jsx(\"text\",{x:e.lx,y:e.ly,textAnchor:\"middle\",style:{fontFamily:FONT,fontSize:11,fontWeight:500,fill:\"#f5f5f5\",paintOrder:\"stroke\",stroke:\"#141414\",strokeWidth:6,strokeLinejoin:\"round\"},children:e.label},i))}),tipN&&tipP&&/*#__PURE__*/_jsxs(\"div\",{style:{...tooltip,width:tipW,left:Math.min(Math.max(tipP.x,4),width-tipW-4),top:tipP.y>height*.55?undefined:tipP.y+tipP.h+10,bottom:tipP.y>height*.55?height-tipP.y+10:undefined},children:[/*#__PURE__*/_jsx(\"div\",{style:tipTitle,children:tipN.l}),tipN.s&&/*#__PURE__*/_jsx(\"div\",{style:tipSub,children:tipN.s}),explain(tipN)]})]})]});}const GRAPHS={\"before-after\":{title:\"Before and after: where a page comes from\",accent:\"52,211,153\",cols:4,rows:[{t:\"Before \\xb7 WordPress\"},{t:\"After \\xb7 Next.js + git-based CMS\"},{}],n:[{id:\"ed1\",l:\"Editors\",s:\"WP admin, plugins\",k:\"ext\",c:0,r:0,why:\"Staff published through the WordPress admin, which also meant every plugin update was their problem.\"},{id:\"php\",l:\"PHP theme + plugins\",s:\"runs on every request\",k:\"bad\",c:1,r:0,why:\"Every visitor triggered PHP, the theme, and a stack of plugins — the source of both the slowness and the attack surface.\"},{id:\"sql\",l:\"MySQL\",s:\"content + settings\",k:\"data\",c:2,r:0,why:\"Content lived in a database only reachable through WordPress; rollback meant a database restore.\"},{id:\"vis1\",l:\"Visitors\",s:\"wait for PHP → DB → HTML\",k:\"ext\",c:3,r:0,why:\"Each page was assembled on demand, so page speed depended on server load.\"},{id:\"ed2\",l:\"Editors\",s:\"visual editing UI\",k:\"ext\",c:0,r:1,why:\"The same staff, a similar editing experience — the requirement that shaped the whole design.\"},{id:\"tina\",l:\"TinaCMS\",s:\"commits on their behalf\",k:\"app\",c:1,r:1,why:\"A visual editor that writes files into Git; editors never see a commit.\"},{id:\"git\",l:\"Git repository\",s:\"content + code, versioned\",k:\"data\",c:2,r:1,why:\"Content and code in one repository: every change reviewed, every rollback a revert.\"},{id:\"ci\",l:\"CI build\",s:\"Next.js static output\",k:\"app\",c:3,r:1,why:\"A push triggers a build that turns content into static pages — the only deployment path.\"},{id:\"vis2\",l:\"Visitors\",s:\"static HTML + optimized images\",k:\"ext\",c:2,r:2,why:\"Visitors receive files, not the output of a running program.\"},{id:\"ng\",l:\"Nginx\",s:\"serves files, TLS\",k:\"app\",c:3,r:2,why:\"The only public process — it serves files and terminates TLS, nothing else.\"}],e:[{from:\"ed1\",to:\"php\"},{from:\"php\",to:\"sql\"},{from:\"vis1\",to:\"sql\",label:\"each request\"},{from:\"ed2\",to:\"tina\"},{from:\"tina\",to:\"git\",label:\"commit\"},{from:\"git\",to:\"ci\",label:\"on push\"},{from:\"ci\",to:\"ng\"},{from:\"ng\",to:\"vis2\"}]},\"migration-loop\":{title:\"The idempotent migration loop\",accent:\"52,211,153\",cols:4,rows:[{t:\"Run as often as needed\"},{t:\"Cut-over\"}],n:[{id:\"ex\",l:\"Export\",s:\"fresh WordPress export\",k:\"app\",c:0,r:0,why:\"Every run starts from a fresh export, so anything published since the last run comes along.\"},{id:\"map\",l:\"Map fields\",s:\"post type → content type\",k:\"app\",c:1,r:0,why:\"The mapping from WordPress post types and custom fields into the new content types — written once, run many times.\"},{id:\"wr\",l:\"Write files\",s:\"markdown + mirrored media\",k:\"app\",c:2,r:0,why:\"Content becomes files in the repository; media is mirrored and re-linked.\"},{id:\"ver\",l:\"Verify\",s:\"diff page inventory\",k:\"app\",c:3,r:0,why:\"Compare page inventories between old and new; anything missing sends you back around the loop.\"},{id:\"red\",l:\"Redirect map\",s:\"old permalink → new route\",k:\"data\",c:0,r:1,why:\"Generated from the old permalinks and checked against a crawl — no indexed URL may 404.\"},{id:\"stg\",l:\"Staging host\",s:\"full migrated site\",k:\"data\",c:1,r:1,why:\"Editors spot-checked the pages they cared about on a real host before anything switched.\"},{id:\"dns\",l:\"DNS cut-over\",s:\"old site kept a week\",k:\"data\",c:2,r:1,why:\"The switch itself is boring by design; the old site stays reachable as a fallback.\"}],e:[{from:\"ex\",to:\"map\"},{from:\"map\",to:\"wr\"},{from:\"wr\",to:\"ver\"},{from:\"ver\",to:\"ex\",via:\"below\",label:\"run again — nothing is overwritten\"},{from:\"red\",to:\"stg\"},{from:\"stg\",to:\"dns\"}]},\"droplet\":{title:\"What a hardened droplet exposes — and what it hides\",accent:\"251,146,60\",cols:4,rows:[{},{},{},{}],toggle:{label:\"Show only what the internet can reach\",note:\"Highlighted: the four things a stranger can connect to. Everything else answers only on localhost or inside the tunnel.\"},n:[{id:\"net\",l:\"Internet\",s:\"everyone, bots included\",k:\"ext\",c:0,r:0,pub:true,why:\"Assume every port is being scanned within minutes of the droplet existing.\"},{id:\"ng\",l:\"Nginx :80 / :443\",s:\"the only public face\",k:\"app\",c:1,r:0,pub:true,why:\"TLS terminates here and every public request passes through it — one process to keep patched.\"},{id:\"app\",l:\"App containers\",s:\"Docker \\xb7 127.0.0.1 only\",k:\"data\",c:2,r:0,why:\"Containers publish ports on localhost only; Docker's iptables rules cannot expose them by accident.\"},{id:\"ssh\",l:\"sshd :22\",s:\"keys only \\xb7 no root\",k:\"app\",c:1,r:1,pub:true,why:\"Password login is off and root cannot log in; fail2ban bans the bots that try anyway.\"},{id:\"db\",l:\"Database container\",s:\"no public port at all\",k:\"data\",c:2,r:1,why:\"Reachable only on the Docker network; there is no port for the internet to find.\"},{id:\"wg\",l:\"WireGuard :51820/udp\",s:\"one peer per team member\",k:\"app\",c:1,r:2,pub:true,why:\"The tunnel that moves every administrative surface off the public internet.\"},{id:\"adm\",l:\"Admin surfaces\",s:\"Beszel \\xb7 DB tools\",k:\"data\",c:3,r:2,why:\"Dashboards and database tools exist only on the tunnel address — no public login page to attack.\"},{id:\"bz\",l:\"Beszel agent\",s:\"CPU \\xb7 RAM \\xb7 disk \\xb7 alerts\",k:\"app\",c:2,r:3,why:\"One page that turns red is enough monitoring for a team that has no time to babysit dashboards.\"},{id:\"cb\",l:\"certbot timer\",s:\"renewal is a systemd timer\",k:\"app\",c:3,r:3,why:\"Certificate expiry is the most common self-inflicted outage; a timer removes the human from it.\"}],e:[{from:\"net\",to:\"ng\"},{from:\"ng\",to:\"app\",label:\"proxy_pass\"},{from:\"app\",to:\"db\",label:\"docker network\"},{from:\"net\",to:\"ssh\"},{from:\"net\",to:\"wg\"},{from:\"wg\",to:\"adm\",label:\"only over the tunnel\"}]},\"delivery-cycle\":{title:\"The delivery cycle, with what the client signs at each stage\",accent:\"96,165,250\",cols:5,rows:[{t:\"Five stages, five sign-offs\"},{t:\"Feature vs. scope\"}],n:[{id:\"s1\",l:\"Scoping\",s:\"flows, owners, what is out\",k:\"app\",c:0,r:0,why:\"Signed deliverable: a scope written as flows with owners — who does what, what changes, who is notified.\"},{id:\"s2\",l:\"Architecture\",s:\"stack \\xb7 content model \\xb7 hosting\",k:\"app\",c:1,r:0,why:\"Signed deliverable: the architecture note with its trade-offs written down, before code exists.\"},{id:\"s3\",l:\"Development\",s:\"weekly demo on staging\",k:\"app\",c:2,r:0,why:\"Signed deliverable: the weekly staging URL — never a screenshot — so the client clicks the real thing.\"},{id:\"s4\",l:\"Deployment\",s:\"Docker \\xb7 Nginx \\xb7 CI/CD\",k:\"app\",c:3,r:0,why:\"The same pipeline on every project, so deployment is never the surprise at the end.\"},{id:\"s5\",l:\"Handover\",s:\"the client publishes\",k:\"app\",c:4,r:0,why:\"Done means the client's own team has published something without us.\"},{id:\"f\",l:\"‘Patients book online’\",s:\"a feature — not estimable\",k:\"bad\",c:0,r:1,span:2,why:\"No subject, no owner, no state change. It sounds finished and cannot be built once.\"},{id:\"sc\",l:\"‘A patient picks a slot; the front desk confirms it; the patient gets an email’\",s:\"a scope — subject, verb, owner\",k:\"app\",c:2,r:1,span:3,why:\"Three sentences, three owners, three state changes — this can be estimated, built, and demoed.\"}],e:[{from:\"s1\",to:\"s2\"},{from:\"s2\",to:\"s3\"},{from:\"s3\",to:\"s4\"},{from:\"s4\",to:\"s5\"},{from:\"f\",to:\"sc\",label:\"rewrite until it has an owner\"}]}};// ============================================================ proration calculator\nfunction Proration({accent,width}){const[join,setJoin]=useState(12),[leave,setLeave]=useState(30),[fs,setFs]=useState(20),[fe,setFe]=useState(23),[freeze,setFreeze]=useState(true),[fee,setFee]=useState(120);const DIM=30;const start=Math.max(join,1),end=Math.min(leave,DIM);const memberDays=Math.max(0,end-start+1);const f1=Math.max(fs,start),f2=Math.min(fe,end);const frozen=freeze&&f2>=f1?f2-f1+1:0;const billable=Math.max(0,memberDays-frozen);const amount=Math.round(fee*billable/DIM*100)/100;const line=billable===DIM?\"Full month\":billable===0?\"Nothing to bill\":`${join>1?\"Prorated join\":\"Prorated\"}${leave<DIM?\" \\xb7 leave\":\"\"}${frozen?\" \\xb7 freeze\":\"\"} \\xb7 ${billable} of ${DIM} days`;const x0=0,x1=width-12,dw=(x1-x0)/DIM;const bar=(a,b,color,stroke)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:x0+(a-1)*dw,width:Math.max(0,(b-a+1)*dw),top:6,height:30,borderRadius:6,background:color,border:`1px solid ${stroke}`,boxSizing:\"border-box\"}});const Slider=({label,v,set,min,max})=>/*#__PURE__*/_jsxs(\"label\",{style:sliderRow,children:[/*#__PURE__*/_jsx(\"span\",{style:sliderLbl,children:label}),/*#__PURE__*/_jsx(\"input\",{type:\"range\",min:min,max:max,value:v,onChange:e=>set(parseInt(e.target.value,10)),style:{...range,accentColor:`rgb(${accent})`}}),/*#__PURE__*/_jsx(\"span\",{style:sliderVal,children:v})]});return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:14},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",height:66},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:x0,width:x1-x0,top:6,height:30,borderRadius:6,background:\"#191919\",border:\"1px solid #2a2a2a\",boxSizing:\"border-box\"}}),memberDays>0&&bar(start,end,`rgba(${accent},0.35)`,`rgba(${accent},0.9)`),frozen>0&&bar(f1,f2,\"rgba(248,113,113,0.35)\",\"rgba(248,113,113,0.9)\"),[1,5,10,15,20,25,30].map(d=>/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",left:x0+(d-1)*dw+dw/2,top:42,transform:\"translateX(-50%)\",fontSize:10.5,color:\"#8f8f8f\"},children:d},d))]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"grid\",gridTemplateColumns:width<520?\"1fr\":\"1fr 1fr\",gap:\"8px 20px\"},children:[/*#__PURE__*/_jsx(Slider,{label:\"Joins on day\",v:join,set:n=>{setJoin(n);if(n>leave)setLeave(n);},min:1,max:30}),/*#__PURE__*/_jsx(Slider,{label:\"Leaves on day\",v:leave,set:n=>{setLeave(n);if(n<join)setJoin(n);},min:1,max:30}),/*#__PURE__*/_jsx(Slider,{label:\"Freeze from\",v:fs,set:n=>{setFs(n);if(n>fe)setFe(n);},min:1,max:30}),/*#__PURE__*/_jsx(Slider,{label:\"Freeze to\",v:fe,set:n=>{setFe(n);if(n<fs)setFs(n);},min:1,max:30})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:14,alignItems:\"center\",flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsxs(\"label\",{style:{...sliderRow,width:\"auto\",gap:8},children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:freeze,onChange:e=>setFreeze(e.target.checked),style:{accentColor:`rgb(${accent})`}}),/*#__PURE__*/_jsx(\"span\",{style:sliderLbl,children:\"Apply freeze\"})]}),/*#__PURE__*/_jsxs(\"label\",{style:{...sliderRow,width:\"auto\",gap:8},children:[/*#__PURE__*/_jsx(\"span\",{style:sliderLbl,children:\"Monthly fee\"}),/*#__PURE__*/_jsx(\"input\",{type:\"number\",min:0,value:fee,onChange:e=>setFee(Math.max(0,parseFloat(e.target.value)||0)),style:numInput}),/*#__PURE__*/_jsx(\"span\",{style:sliderLbl,children:\"₾\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:codeBox,children:[/*#__PURE__*/_jsxs(\"div\",{children:[\"billable = \",memberDays,\" member day\",memberDays===1?\"\":\"s\",frozen?` − ${frozen} frozen`:\"\",\" = \",/*#__PURE__*/_jsx(\"strong\",{style:{color:\"#f5f5f5\"},children:billable})]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"fee = round(\",fee,\" \\xd7 \",billable,\" / \",DIM,\", 2) = \",/*#__PURE__*/_jsxs(\"strong\",{style:{color:\"#f5f5f5\"},children:[amount.toFixed(2),\" ₾\"]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#8f8f8f\"},children:[\"invoice line → “\",line,\"”\"]})]}),/*#__PURE__*/_jsx(\"div\",{style:hintS,children:\"Move the sliders: join, leave, and freeze never become special cases — only the number of days changes.\"})]});}// ============================================================ invoice states\nfunction InvoiceStates({accent}){const AMOUNT=120;const[paid,setPaid]=useState(0),[waived,setWaived]=useState(null),[pastDue,setPastDue]=useState(false),[log,setLog]=useState([\"Invoice generated from membership intervals \\xb7 120 ₾\"]);const state=waived?\"waived\":paid>=AMOUNT?\"paid\":pastDue?\"overdue\":paid>0?\"partial\":\"open\";const color={paid:\"52,211,153\",partial:\"251,146,60\",overdue:\"248,113,113\",waived:\"148,163,184\",open:\"173,173,173\"};const rule={paid:\"payments ≥ amount\",partial:\"0 < payments < amount\",overdue:\"unpaid past the due date — derived from the date, never stored\",waived:\"explicit, with a reason; the original amount is kept for reporting\",open:\"no payments yet, not past due\"};const add=s=>setLog(l=>[...l,s]);const pay=n=>{if(waived)return;const v=Math.min(n,AMOUNT-paid);if(v<=0)return;setPaid(p=>p+v);add(`Payment recorded \\xb7 ${v} ₾`);};return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:14},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:14,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...stateBadge,background:`rgba(${color[state]},0.14)`,borderColor:`rgba(${color[state]},0.7)`,color:`rgb(${color[state]})`},children:state.toUpperCase()}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:13,color:\"#cccccc\"},children:[paid,\" of \",AMOUNT,\" ₾ paid\",pastDue?\" \\xb7 past due date\":\"\",waived?` \\xb7 waived: ${waived}`:\"\"]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:12,color:\"#8f8f8f\"},children:[\"Rule: \",rule[state]]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:smallBtn,onClick:()=>pay(40),disabled:!!waived||paid>=AMOUNT,children:\"Record 40 ₾\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:smallBtn,onClick:()=>pay(AMOUNT),disabled:!!waived||paid>=AMOUNT,children:\"Record the rest\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:smallBtn,onClick:()=>{setPastDue(true);add(\"Due date passed\");},disabled:pastDue,children:\"Move past due date\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:smallBtn,onClick:()=>{setWaived(\"scholarship\");add(\"Waived \\xb7 reason: scholarship\");},disabled:!!waived,children:\"Waive (scholarship)\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:{...smallBtn,color:\"#8f8f8f\"},onClick:()=>{setPaid(0);setWaived(null);setPastDue(false);setLog([\"Invoice regenerated from membership intervals \\xb7 120 ₾\"]);},children:\"Regenerate ↺\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{...codeBox,maxHeight:132,overflowY:\"auto\"},children:log.map((l,i)=>/*#__PURE__*/_jsxs(\"div\",{children:[i+1,\". \",l]},i))}),/*#__PURE__*/_jsx(\"div\",{style:hintS,children:\"Nothing here edits the invoice. Payments and waivers are events; the state is derived from them and from today’s date.\"})]});}// ============================================================ styles\nconst FONT=\"'Cabinet Grotesk', 'Inter', system-ui, sans-serif\";const shell={position:\"relative\",width:\"100%\",boxSizing:\"border-box\",padding:\"16px 16px 14px\",borderRadius:12,border:\"1px solid rgb(41, 41, 41)\",background:\"#141414 linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px)\",backgroundSize:\"40px 40px, 40px 40px\",fontFamily:FONT,color:\"#f5f5f5\",overflow:\"hidden\",margin:\"8px 0\"};const head={display:\"flex\",justifyContent:\"space-between\",alignItems:\"flex-end\",gap:12,flexWrap:\"wrap\",marginBottom:10};const kickerS={fontSize:10.5,fontWeight:500,letterSpacing:\"0.14em\",color:\"#8f8f8f\"};const titleS={fontSize:17,fontWeight:700,color:\"#f5f5f5\",marginTop:2};const hintS={fontSize:11.5,fontWeight:500,color:\"#8f8f8f\"};const rowLabel={position:\"absolute\",fontSize:10,fontWeight:500,letterSpacing:\"0.14em\",color:\"#8f8f8f\",pointerEvents:\"none\"};const smallBtn={appearance:\"none\",background:\"rgb(31,31,31)\",color:\"#e6e6e6\",border:\"1px solid rgb(41,41,41)\",borderRadius:6,padding:\"6px 10px\",fontFamily:FONT,fontSize:12,fontWeight:500,cursor:\"pointer\"};function nodeBox(k,accent){const base={position:\"absolute\",boxSizing:\"border-box\",padding:\"9px 11px\",borderRadius:10,background:\"#191919\",border:\"1.5px solid #2a2a2a\",cursor:\"pointer\",transition:\"opacity 0.25s ease, box-shadow 0.2s ease\",overflow:\"hidden\",outline:\"none\"};if(k===\"app\")return{...base,background:`rgba(${accent},0.08)`,borderColor:`rgba(${accent},0.7)`};if(k===\"data\")return{...base,background:\"#151515\",borderColor:\"#3a3a3a\"};if(k===\"ext\")return{...base,borderStyle:\"dashed\"};if(k===\"bad\")return{...base,background:\"rgba(248,113,113,0.06)\",borderColor:\"rgba(248,113,113,0.6)\"};return{...base,background:\"#1a1a1a\",borderColor:\"#2f2f2f\"};}const nodeLabel={fontSize:12.5,fontWeight:500,color:\"#f5f5f5\",whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:1.25};const nodeSub={fontSize:10.5,fontWeight:400,color:\"#adadad\",whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",marginTop:3,lineHeight:1.3};const tooltip={position:\"absolute\",zIndex:5,boxSizing:\"border-box\",padding:\"12px 14px\",borderRadius:10,background:\"rgb(20,20,20)\",border:\"1px solid rgb(41,41,41)\",boxShadow:\"0 16px 40px rgba(0,0,0,0.5)\",pointerEvents:\"none\"};const tipTitle={fontSize:13.5,fontWeight:500,color:\"#f5f5f5\"};const tipSub={fontSize:11,color:\"#8f8f8f\",marginTop:2};const tipWhy={fontSize:12.5,color:\"#cccccc\",lineHeight:1.5,marginTop:8};const tipRel={fontSize:11,color:\"#8f8f8f\",marginTop:8};const sliderRow={display:\"flex\",alignItems:\"center\",gap:10,width:\"100%\"};const sliderLbl={fontSize:12,color:\"#adadad\",whiteSpace:\"nowrap\",minWidth:92};const sliderVal={fontSize:12,color:\"#f5f5f5\",minWidth:22,textAlign:\"right\"};const range={flex:1,minWidth:80};const numInput={width:72,background:\"#191919\",border:\"1px solid #2a2a2a\",borderRadius:6,color:\"#f5f5f5\",fontFamily:FONT,fontSize:12,padding:\"4px 8px\"};const codeBox={fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",fontSize:12.5,lineHeight:1.7,color:\"#cccccc\",background:\"#191919\",border:\"1px solid #2a2a2a\",borderRadius:8,padding:\"10px 12px\"};const stateBadge={fontSize:12,fontWeight:700,letterSpacing:\"0.1em\",padding:\"6px 10px\",borderRadius:6,border:\"1px solid\"};addPropertyControls(PostFigure,{figure:{type:ControlType.Enum,title:\"Figure\",options:[\"before-after\",\"migration-loop\",\"proration\",\"invoice-states\",\"droplet\",\"delivery-cycle\"],defaultValue:\"before-after\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PostFigure\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PostFigure.map"],"mappings":"2NAQG,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,SAAO,eAAe,SAAO,EAAY,EAAIA,EAAO,IAAI,EAAO,CAAC,EAAM,GAAUC,EAAS,CAAC,EAAE,MAAc,CAAC,GAAG,CAAC,EAAI,SAAS,OAAO,eAAiB,IAAY,OAAO,IAAM,EAAG,IAAI,eAAe,GAAI,EAAS,KAAK,MAAM,EAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,EAA0B,OAAxB,EAAG,QAAQ,EAAI,OAAO,MAAY,EAAG,WAAW,CAAE,EAAE,CAAC,CAAC,EAAE,IAAM,GAAK,GAAQ,GAAA,CAAI,KAAK,CAAC,CAAC,YAAY,EAAM,EAAK,KAAK,EAAO,SAAS,EAAM,GAAG,GAAG,IAAM,YAAa,EAAO,cAAc,EAAM,2BAA2B,EAAkB,EAAK,EAAU,CAAC,OAAO,cAAoB,OAAK,CAAC,OAAQ,GAAG,IAAM,iBAAkB,EAAO,cAAc,EAAM,4BAA4B,EAAkB,EAAK,EAAc,CAAC,OAAO,aAAa,CAAC,OAAQ,GAAG,EAAO,GAAK,CAAC,IAAM,EAAE,EAAO,GAAK,EAAO,qBAAqB,EAAM,EAAE,MAAM,EAAkB,EAAK,EAAM,CAAG,IAAQ,OAAK,CAAC,CAAE,MAAM,OAAoB,EAAK,MAAM,CAAK,MAAI,MAAM,CAAC,GAAG,EAAM,UAAU,CAAC,CAAC,CAAC,EAAE,OAAoB,EAAM,MAAM,CAAK,MAAI,MAAM,CAAC,GAAG,EAAM,GAAG,CAAK,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAK,SAAsB,EAAM,MAAM,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAQ,SAAS,CAAM,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,EAAO,SAAS,CAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAQ,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAI,CAAC,CAAC,CAAE,CAAC,SAAS,EAAM,CAAC,IAAE,SAAO,CAAC,GAAK,CAAC,EAAO,GAAWA,EAAS,IAAI,EAAO,CAAC,EAAO,GAAWA,EAAS,IAAI,EAAO,CAAC,EAAQ,GAAYA,EAAS,EAAK,EAAQ,EAAQ,GAAQ,EAAa,EAAO,EAAM,IAAU,EAAQC,MAAY,CAAC,IAAM,EAAE,IAAI,IAAI,GAAG,CAAC,EAAQ,OAAO,EAAE,IAAI,IAAM,KAAK,EAAE,EAAM,EAAE,OAAO,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAK,EAAE,KAAK,GAAQ,EAAE,IAAI,EAAE,IAAI,EAAG,OAAO,CAAE,EAAE,CAAC,EAAE,CAAO,CAAC,EAAQ,EAAK,GAAI,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,CAAE,EAAE,MAAc,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,EAAE,GAAG,CAAI,EAAE,MAAM,WAAU,EAAU,IAAI,EAAE,EAAU,IAAI,EAAG,EAAuC,OAArC,EAAO,iBAAiB,UAAU,CAAC,MAAY,EAAO,oBAAoB,UAAU,CAAC,CAAE,EAAE,CAAC,CAAC,EAAE,IAAM,EAAM,GAAG,GAAS,IAAU,EAAE,IAAI,CAAC,EAAQ,IAAI,EAAE,EAAE,GAAG,GAAS,CAAC,EAAE,IAAU,EAAQ,GAAgB,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAO,SAAS,EAAE,GAAG,CAAC,EAAE,EAAQ,KAAK,GAAG,IAAU,EAAE,IAAiB,EAAM,MAAM,CAAC,MAAM,EAAO,SAAS,CAAC,gBAAgB,MAAM,KAAK,CAAO,CAAC,CAAC,IAAI,GAAI,EAAK,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,KAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAQ,EAAU,EAAE,QAAqB,EAAK,SAAS,CAAC,KAAK,SAAS,YAAY,EAAW,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAS,WAAW,EAAQ,QAAQ,EAAE,OAAO,QAAQ,gBAAgB,YAAY,EAAQ,QAAQ,EAAE,OAAO,OAAO,eAAe,EAAE,eAAe,EAAQ,SAAS,EAAE,OAAO,KAAK,CAAC,EAAE,GAAG,EAAQ,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,EAAE,SAAS,CAAC,GAAwB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI,EAAE,WAAW,SAAS,SAAS,MAAM,EAAE,SAAS,CAAC,EAAU,GAAsB,EAAK,OAAO,CAAC,MAAM,EAAM,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,EAAI,IAAkB,EAAM,MAAM,CAAC,SAAS,CAAC,EAAI,GAAgB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAS,SAAS,SAAS,aAAa,CAAC,EAAE,SAAS,EAAI,EAAE,YAAY,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,CAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAM,EAAK,IAAU,EAAE,GAAG,OAAoB,EAAM,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,gBAAgB,EAAK,YAAY,EAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,GAAG,EAAI,EAAE,MAAM,SAAS,EAAE,MAAM,OAAK,EAAE,eAAe,EAAE,EAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAG,EAAE,MAAM,CAAC,GAAG,EAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,WAAW,QAAQ,EAAM,CAAC,GAAG,CAAC,EAAK,GAAG,EAAE,UAAU,EAAK,kBAAkB,EAAE,OAAO,QAAQ,EAAQ,IAAI,EAAE,EAAE,EAAE,kBAAkB,EAAE,OAAO,OAAO,MAAM,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAU,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,GAAgB,EAAK,MAAM,CAAC,MAAM,EAAQ,SAAS,EAAE,CAAC,CAAC,EAAE,GAAmB,EAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,kCAAkC,EAAE,SAAS,EAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC,CAAC,EAChzH,IAAiD,EAAK,EAAM,EAAE,KAAW,EAAI,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,EAAE,CAAC,IAAM,EAAK,EAAE,MAAM,EAAE,EAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAK,EAAI,EAAE,EAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAAK,EAAK,GAAM,EAAE,EAAE,CAAE,CAAC,SAAS,EAAU,EAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAO,EAAG,KAAK,EAAE,EAAE,IAAE,GAAG,IAAG,OAAO,CAAE,CAAiH,IAAM,EAAlG,KAAK,IAAI,GAAG,OAAO,OAAO,CAAG,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,CAAwE,GAAtD,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,OAA4C,EAAE,GAAG,IAAU,EAAM,EAAE,EAAE,IAAI,GAAG,CAAC,IAAM,EAAE,EAAI,EAAE,MAAM,EAAE,EAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,EAAE,GAAG,EAAG,EAAE,EAAG,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,IAAM,EAAG,EAAO,GAAS,EAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,IAAI,EAAG,IAAI,EAAE,EAAE,EAAE,IAAI,GAAI,EAAG,GAAI,EAAE,EAAG,EAAG,CAAE,MAAM,GAAG,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAM,EAAI,EAAE,EAAE,EAAE,EAAQ,EAAG,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,GAAG,EAAE,IAAI,EAAG,GAAG,IAAI,GAAI,EAAG,GAAI,EAAE,EAAG,EAAE,CAAE,MAAM,GAAG,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAM,EAAK,EAAE,EAAE,EAAE,EAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,EAAE,EAAE,GAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,KAAK,CAAC,IAAM,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAQ,EAAG,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAQ,EAAE,KAAK,IAAI,EAAG,CAAE,EAAE,IAAI,EAAI,EAAE,IAAI,EAAE,IAAI,EAAG,GAAG,EAAG,IAAI,EAAG,EAAE,GAAG,EAAG,GAAG,EAAG,EAAE,GAAG,EAAG,GAAG,EAAG,GAAG,IAAK,GAAI,EAAG,GAAI,EAAE,GAAI,EAAG,GAAI,EAAE,CAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAE,KAAG,IAAE,CAAE,CAAC,CAAC,CAAC,OAAO,OAAO,EAAQ,EAAK,EAAQ,EAAK,CAAO,EAAE,KAAK,EAAK,EAAQ,EAAI,GAAS,KAAW,EAAK,KAAK,IAAI,IAAI,EAAM,EAAE,EAAE,OAAoB,EAAM,MAAM,CAAC,SAAS,CAAC,GAAwB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI,GAAG,WAAW,SAAS,SAAS,OAAO,aAAa,EAAE,EAAE,SAAS,CAAC,EAAuB,EAAK,OAAO,CAAC,MAAM,EAAM,SAAS,EAAQ,EAAE,OAAO,KAAK,oDAAuD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAwB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,aAAa,CAAC,EAAE,SAAS,EAAoB,EAAK,SAAS,CAAC,KAAK,SAAS,MAAM,EAAS,YAAY,CAAC,EAAU,IAAI,EAAE,EAAU,IAAI,CAAE,EAAE,SAAS,SAAS,CAAC,EAAE,oDAAuD,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,QAAM,EAAE,iBAAiB,EAAU,IAAI,EAAE,SAAS,CAAc,EAAM,MAAM,CAAO,QAAa,SAAO,QAAQ,OAAO,EAAM,GAAG,IAAS,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,cAAc,MAAM,EAAE,cAAc,OAAO,SAAS,CAAc,EAAM,OAAO,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,MAAM,EAAE,MAAM,SAAS,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,YAAY,IAAI,aAAa,IAAI,OAAO,qBAAqB,SAAsB,EAAK,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAe,EAAK,QAAQ,CAAC,SAAS,sDAAsD,CAAC,CAAC,CAAC,CAAC,EAAE,EAAM,KAAK,EAAE,IAAI,CAAC,IAAM,EAAG,EAAQ,EAAE,OAAO,GAAS,EAAE,KAAK,EAAQ,GAAY,EAAI,GAAS,CAAC,EAAG,OAAoB,EAAK,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,OAAO,QAAQ,EAAE,OAAO,GAAG,EAAG,EAAE,GAAG,GAAG,YAAY,EAAG,IAAI,KAAK,UAAU,WAAW,EAAE,MAAM,OAAO,GAAG,gBAAgB,EAAG,MAAM,IAAA,GAAU,MAAM,CAAC,QAAQ,EAAI,IAAI,EAAE,WAAW,qBAAqB,UAAU,EAAG,8BAA8B,IAAA,EAAS,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,EAAI,IAAK,EAAI,GAAgB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAS,KAAK,EAAI,IAAI,EAAO,EAAG,GAAG,EAAU,EAAE,CAAE,CAAC,EAAE,SAAS,EAAI,EAAE,YAAY,CAAC,EAAE,CAAE,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,IAAMC,EAAE,EAAI,EAAE,IAAI,EAAI,IAAU,EAAE,GAAG,EAAI,EAAQ,IAAI,EAAE,EAAE,EAAE,OAAoB,EAAM,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,aAAa,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,eAAe,IAAS,EAAE,GAAG,iBAAiB,EAAU,EAAE,EAAE,EAAE,YAAY,EAAU,EAAE,EAAE,EAAE,YAAY,EAAU,GAAI,IAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,GAAG,EAAI,EAAE,MAAM,SAAS,EAAE,MAAM,OAAK,EAAE,eAAe,EAAE,EAAU,GAAI,IAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAG,EAAE,MAAM,CAAC,GAAG,EAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAKA,EAAE,EAAE,IAAIA,EAAE,EAAE,MAAMA,EAAE,EAAE,OAAOA,EAAE,EAAE,QAAQ,EAAM,CAAC,GAAG,CAAC,EAAI,GAAG,EAAE,UAAU,EAAI,kBAAkB,EAAE,OAAO,sCAAsC,EAAI,kBAAkB,EAAE,OAAO,OAAO,OAAO,OAAO,EAAI,EAAE,CAAC,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAU,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,GAAgB,EAAK,MAAM,CAAC,MAAM,EAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,CAAC,EAAe,EAAK,MAAM,CAAO,QAAa,SAAO,QAAQ,OAAO,EAAM,GAAG,IAAS,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,cAAc,OAAO,OAAO,CAAC,EAAE,cAAc,OAAO,SAAS,GAAS,EAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAS,EAAE,KAAK,EAAQ,CAAC,CAAC,KAAK,EAAE,IAAiB,EAAK,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,WAAW,SAAS,MAAM,CAAC,WAAW,EAAK,SAAS,GAAG,WAAW,IAAI,KAAK,UAAU,WAAW,SAAS,OAAO,UAAU,YAAY,EAAE,eAAe,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAM,GAAmB,EAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAQ,MAAM,EAAK,KAAK,KAAK,IAAI,KAAK,IAAI,EAAK,EAAE,CAAC,EAAE,EAAM,EAAK,CAAC,EAAE,IAAI,EAAK,EAAE,EAAO,IAAI,IAAA,GAAU,EAAK,EAAE,EAAK,EAAE,GAAG,OAAO,EAAK,EAAE,EAAO,IAAI,EAAO,EAAK,EAAE,GAAG,IAAA,EAAS,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAS,SAAS,EAAK,CAAC,CAAC,EAAE,EAAK,GAAgB,EAAK,MAAM,CAAC,MAAM,EAAO,SAAS,EAAK,CAAC,CAAC,EAAE,EAAQ,CAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACrtJ,SAAS,EAAU,CAAC,SAAO,SAAO,CAAC,GAAK,CAAC,EAAK,GAASH,EAAS,EAAE,EAAE,CAAC,EAAM,GAAUA,EAAS,EAAE,EAAE,CAAC,EAAG,GAAOA,EAAS,EAAE,EAAE,CAAC,EAAG,GAAOA,EAAS,EAAE,EAAE,CAAC,EAAO,GAAWA,EAAS,EAAI,EAAE,CAAC,EAAI,GAAQA,EAAS,GAAG,EAAqB,EAAM,KAAK,IAAI,EAAK,CAAC,EAAE,EAAI,KAAK,IAAI,EAAM,EAAG,EAAQ,EAAW,KAAK,IAAI,EAAE,EAAI,EAAM,CAAC,EAAQ,EAAG,KAAK,IAAI,EAAG,CAAK,EAAE,EAAG,KAAK,IAAI,EAAG,CAAG,EAAQ,EAAO,GAAQ,GAAI,EAAG,EAAG,EAAG,EAAE,EAAQ,EAAS,KAAK,IAAI,EAAE,EAAW,CAAM,EAAQ,EAAO,KAAK,MAAM,EAAI,EAAS,GAAI,GAAG,EAAE,IAAU,EAAK,IAAW,GAAI,aAAa,IAAW,EAAE,kBAAkB,GAAG,EAAK,EAAE,gBAAgB,aAAa,EAAM,GAAI,WAAc,KAAK,EAAO,YAAe,GAAG,QAAQ,EAAS,aAA4B,EAAG,EAAM,GAAG,GAAI,EAAG,GAAI,GAAU,GAAK,EAAE,EAAE,EAAM,IAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,GAAI,EAAE,GAAG,EAAG,MAAM,KAAK,IAAI,GAAG,EAAE,EAAE,GAAG,CAAE,EAAE,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,WAAW,EAAM,OAAO,aAAa,IAAS,UAAU,YAAY,CAAC,CAAC,EAAQ,GAAQ,CAAC,QAAM,IAAE,MAAI,MAAI,SAAoB,EAAM,QAAQ,CAAC,MAAM,EAAU,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,EAAU,SAAS,CAAK,CAAC,EAAe,EAAK,QAAQ,CAAC,KAAK,QAAY,MAAQ,MAAI,MAAM,EAAE,SAAS,GAAG,EAAI,SAAS,EAAE,OAAO,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAM,YAAY,OAAO,EAAO,EAAE,CAAC,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,EAAU,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,OAAO,EAAE,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,EAAG,MAAM,EAAG,EAAG,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,WAAW,UAAU,OAAO,oBAAoB,UAAU,YAAY,CAAC,CAAC,EAAE,EAAW,GAAG,EAAI,EAAM,EAAI,QAAQ,EAAO,QAAQ,QAAQ,EAAO,MAAM,EAAE,EAAO,GAAG,EAAI,EAAG,EAAG,yBAAyB,uBAAuB,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,GAAgB,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,GAAI,EAAE,GAAG,EAAG,EAAG,EAAE,IAAI,GAAG,UAAU,mBAAmB,SAAS,KAAK,MAAM,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,oBAAoB,EAAM,IAAI,MAAM,UAAU,IAAI,UAAU,EAAE,SAAS,CAAc,EAAK,EAAO,CAAC,MAAM,eAAe,EAAE,EAAK,IAAI,GAAG,CAAC,EAAQ,CAAC,EAAK,EAAE,GAAM,EAAS,CAAC,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAe,EAAK,EAAO,CAAC,MAAM,gBAAgB,EAAE,EAAM,IAAI,GAAG,CAAC,EAAS,CAAC,EAAK,EAAE,GAAK,EAAQ,CAAC,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAe,EAAK,EAAO,CAAC,MAAM,cAAc,EAAE,EAAG,IAAI,GAAG,CAAC,EAAM,CAAC,EAAK,EAAE,GAAG,EAAM,CAAC,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAe,EAAK,EAAO,CAAC,MAAM,YAAY,EAAE,EAAG,IAAI,GAAG,CAAC,EAAM,CAAC,EAAK,EAAE,GAAG,EAAM,CAAC,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI,GAAG,WAAW,SAAS,SAAS,MAAM,EAAE,SAAS,CAAc,EAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAU,MAAM,OAAO,IAAI,CAAC,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,KAAK,WAAW,QAAQ,EAAO,SAAS,GAAG,EAAU,EAAE,OAAO,OAAO,EAAE,MAAM,CAAC,YAAY,OAAO,EAAO,EAAE,CAAC,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,EAAU,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAU,MAAM,OAAO,IAAI,CAAC,EAAE,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,EAAU,SAAS,aAAa,CAAC,EAAe,EAAK,QAAQ,CAAC,KAAK,SAAS,IAAI,EAAE,MAAM,EAAI,SAAS,GAAG,EAAO,KAAK,IAAI,EAAE,WAAW,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,CAAQ,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,EAAU,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,EAAQ,SAAS,CAAc,EAAM,MAAM,CAAC,SAAS,CAAC,cAAc,EAAW,cAAc,IAAa,EAAE,GAAG,IAAI,EAAO,MAAM,EAAO,SAAS,GAAG,MAAmB,EAAK,SAAS,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE,SAAS,CAAQ,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAI,MAAS,EAAS,MAAM,GAAI,UAAuB,EAAM,SAAS,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE,SAAS,CAAC,EAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE,SAAS,CAAC,mBAAmB,EAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,EAAM,SAAS,yGAAyG,CAAC,CAAC,CAAC,CAAC,CAAE,CACn5H,SAAS,EAAc,CAAC,UAAQ,CAAC,GAAsB,CAAC,EAAK,GAASA,EAAS,CAAC,EAAE,CAAC,EAAO,GAAWA,EAAS,IAAI,EAAE,CAAC,EAAQ,GAAYA,EAAS,EAAK,EAAE,CAAC,EAAI,GAAQA,EAAS,CAAC,qDAAwD,CAAC,EAAQ,EAAM,EAAO,SAAS,GAAM,IAAO,OAAO,EAAQ,UAAU,EAAK,EAAE,UAAU,OAAa,EAAM,CAAC,KAAK,aAAa,QAAQ,aAAa,QAAQ,cAAc,OAAO,cAAc,KAAK,aAAa,EAAQ,EAAK,CAAC,KAAK,oBAAoB,QAAQ,wBAAwB,QAAQ,iEAAiE,OAAO,qEAAqE,KAAK,+BAA+B,EAAQ,EAAI,GAAG,EAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAQ,EAAI,GAAG,CAAC,GAAG,EAAO,OAAO,IAAM,EAAE,KAAK,IAAI,EAAE,IAAO,CAAI,EAAK,GAAG,IAAS,EAAQ,GAAG,EAAE,CAAC,EAAE,EAAI,yBAAyB,EAAE,GAAG,EAAE,EAAE,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,GAAG,SAAS,MAAM,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAW,WAAW,QAAQ,EAAM,GAAO,QAAQ,YAAY,QAAQ,EAAM,GAAO,OAAO,MAAM,OAAO,EAAM,GAAO,EAAE,EAAE,SAAS,EAAM,YAAY,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,SAAS,EAAE,SAAS,CAAC,EAAK,OAAO,IAAO,UAAU,EAAQ,mBAAsB,GAAG,EAAO,iBAAiB,IAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,SAAS,EAAE,SAAS,CAAC,SAAS,EAAK,EAAM,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI,EAAE,SAAS,MAAM,EAAE,SAAS,CAAc,EAAK,SAAS,CAAC,KAAK,SAAS,MAAM,EAAS,YAAY,EAAI,EAAE,EAAE,SAAS,CAAC,CAAC,GAAQ,GAAM,IAAO,SAAS,aAAa,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,MAAM,EAAS,YAAY,EAAI,GAAM,EAAE,SAAS,CAAC,CAAC,GAAQ,GAAM,IAAO,SAAS,iBAAiB,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,MAAM,EAAS,YAAY,CAAC,EAAW,EAAI,EAAE,EAAI,iBAAiB,CAAE,EAAE,SAAS,EAAQ,SAAS,oBAAoB,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,MAAM,EAAS,YAAY,CAAC,EAAU,aAAa,EAAE,EAAI,8BAAiC,CAAE,EAAE,SAAS,CAAC,CAAC,EAAO,SAAS,qBAAqB,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,EAAS,MAAM,SAAS,EAAE,YAAY,CAAC,EAAQ,CAAC,EAAE,EAAU,IAAI,EAAE,EAAW,EAAK,EAAE,EAAO,CAAC,uDAA0D,CAAC,CAAE,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAQ,UAAU,IAAI,UAAU,MAAM,EAAE,SAAS,EAAI,KAAK,EAAE,IAAiB,EAAM,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,EAAM,SAAS,wHAAwH,CAAC,CAAC,CAAC,CAAC,CAAE,CAC1nD,SAAS,EAAQ,EAAE,EAAO,CAAC,IAAM,EAAK,CAAC,SAAS,WAAW,UAAU,aAAa,QAAQ,WAAW,aAAa,GAAG,WAAW,UAAU,OAAO,sBAAsB,OAAO,UAAU,WAAW,2CAA2C,SAAS,SAAS,QAAQ,MAAM,EAAmU,OAA9T,IAAI,MAAY,CAAC,GAAG,EAAK,WAAW,QAAQ,EAAO,QAAQ,YAAY,QAAQ,EAAO,MAAM,EAAK,IAAI,OAAa,CAAC,GAAG,EAAK,WAAW,UAAU,YAAY,SAAS,EAAK,IAAI,MAAY,CAAC,GAAG,EAAK,YAAY,QAAQ,EAAK,IAAI,MAAY,CAAC,GAAG,EAAK,WAAW,yBAAyB,YAAY,uBAAuB,EAAQ,CAAC,GAAG,EAAK,WAAW,UAAU,YAAY,SAAS,CAAE,mEAZrqD,IAAoD,IAAqD,EASqiJ,EAAO,CAAC,eAAe,CAAC,MAAM,4CAA4C,OAAO,aAAa,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,oBAAuB,EAAE,CAAC,EAAE,iCAAoC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,sGAAsG,EAAE,CAAC,GAAG,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,0HAA0H,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,kGAAkG,EAAE,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,2EAA2E,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,8FAA8F,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,yEAAyE,EAAE,CAAC,GAAG,MAAM,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,qFAAqF,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,0FAA0F,EAAE,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,8DAA8D,EAAE,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,6EAA6E,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,MAAM,cAAc,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,MAAM,QAAQ,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,MAAM,SAAS,EAAE,CAAC,KAAK,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,gCAAgC,OAAO,aAAa,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,6FAA6F,EAAE,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,oHAAoH,EAAE,CAAC,GAAG,KAAK,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,2EAA2E,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,gGAAgG,EAAE,CAAC,GAAG,MAAM,EAAE,eAAe,EAAE,4BAA4B,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,yFAAyF,EAAE,CAAC,GAAG,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,0FAA0F,EAAE,CAAC,GAAG,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,oFAAoF,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,IAAI,QAAQ,MAAM,oCAAoC,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,QAAU,CAAC,MAAM,sDAAsD,OAAO,aAAa,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,wCAAwC,KAAK,yHAAyH,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,GAAK,IAAI,4EAA4E,EAAE,CAAC,GAAG,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,GAAK,IAAI,+FAA+F,EAAE,CAAC,GAAG,MAAM,EAAE,iBAAiB,EAAE,0BAA6B,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,qGAAqG,EAAE,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,sBAAyB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,GAAK,IAAI,uFAAuF,EAAE,CAAC,GAAG,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,kFAAkF,EAAE,CAAC,GAAG,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,GAAK,IAAI,6EAA6E,EAAE,CAAC,GAAG,MAAM,EAAE,iBAAiB,EAAE,oBAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,kGAAkG,EAAE,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,4BAAqC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,iGAAiG,EAAE,CAAC,GAAG,KAAK,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,iGAAiG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,MAAM,MAAM,YAAY,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,MAAM,gBAAgB,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,+DAA+D,OAAO,aAAa,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,6BAA6B,EAAE,CAAC,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,6BAA6B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,0GAA0G,EAAE,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,kCAAwC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,iGAAiG,EAAE,CAAC,GAAG,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,wGAAwG,EAAE,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,yBAA+B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,qFAAqF,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,sEAAsE,EAAE,CAAC,GAAG,IAAI,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,qFAAqF,EAAE,CAAC,GAAG,KAAK,EAAE,kFAAkF,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,gGAAgG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,MAAM,+BAA+B,CAAC,CAAC,CAAC,EAG9tX,EAAK,oDAA0D,EAAM,CAAC,SAAS,WAAW,MAAM,OAAO,UAAU,aAAa,QAAQ,iBAAiB,aAAa,GAAG,OAAO,4BAA4B,WAAW,8IAA8I,eAAe,uBAAuB,WAAW,EAAK,MAAM,UAAU,SAAS,SAAS,OAAO,OAAO,EAAQ,EAAK,CAAC,QAAQ,OAAO,eAAe,gBAAgB,WAAW,WAAW,IAAI,GAAG,SAAS,OAAO,aAAa,EAAE,EAAQ,EAAQ,CAAC,SAAS,KAAK,WAAW,IAAI,cAAc,SAAS,MAAM,SAAS,EAAQ,EAAO,CAAC,SAAS,GAAG,WAAW,IAAI,MAAM,UAAU,UAAU,CAAC,EAAQ,EAAM,CAAC,SAAS,KAAK,WAAW,IAAI,MAAM,SAAS,EAAQ,EAAS,CAAC,SAAS,WAAW,SAAS,GAAG,WAAW,IAAI,cAAc,SAAS,MAAM,UAAU,cAAc,MAAM,EAAQ,EAAS,CAAC,WAAW,OAAO,WAAW,gBAAgB,MAAM,UAAU,OAAO,0BAA0B,aAAa,EAAE,QAAQ,WAAW,WAAW,EAAK,SAAS,GAAG,WAAW,IAAI,OAAO,SAAS,EAAqpB,EAAU,CAAC,SAAS,KAAK,WAAW,IAAI,MAAM,UAAU,WAAW,SAAS,SAAS,SAAS,aAAa,WAAW,WAAW,IAAI,EAAQ,EAAQ,CAAC,SAAS,KAAK,WAAW,IAAI,MAAM,UAAU,WAAW,SAAS,SAAS,SAAS,aAAa,WAAW,UAAU,EAAE,WAAW,GAAG,EAAQ,EAAQ,CAAC,SAAS,WAAW,OAAO,EAAE,UAAU,aAAa,QAAQ,YAAY,aAAa,GAAG,WAAW,gBAAgB,OAAO,0BAA0B,UAAU,8BAA8B,cAAc,MAAM,EAAQ,EAAS,CAAC,SAAS,KAAK,WAAW,IAAI,MAAM,SAAS,EAAQ,EAAO,CAAC,SAAS,GAAG,MAAM,UAAU,UAAU,CAAC,EAAQ,EAAO,CAAC,SAAS,KAAK,MAAM,UAAU,WAAW,IAAI,UAAU,CAAC,EAAQ,EAAO,CAAC,SAAS,GAAG,MAAM,UAAU,UAAU,CAAC,EAAQ,EAAU,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,GAAG,MAAM,MAAM,EAAQ,EAAU,CAAC,SAAS,GAAG,MAAM,UAAU,WAAW,SAAS,SAAS,EAAE,EAAQ,EAAU,CAAC,SAAS,GAAG,MAAM,UAAU,SAAS,GAAG,UAAU,OAAO,EAAQ,EAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAQ,EAAS,CAAC,MAAM,GAAG,WAAW,UAAU,OAAO,oBAAoB,aAAa,EAAE,MAAM,UAAU,WAAW,EAAK,SAAS,GAAG,QAAQ,SAAS,EAAQ,EAAQ,CAAC,WAAW,iDAAiD,SAAS,KAAK,WAAW,IAAI,MAAM,UAAU,WAAW,UAAU,OAAO,oBAAoB,aAAa,EAAE,QAAQ,WAAW,EAAQ,EAAW,CAAC,SAAS,GAAG,WAAW,IAAI,cAAc,QAAQ,QAAQ,WAAW,aAAa,EAAE,OAAO,WAAW,EAAE,EAAoB,EAAW,CAAC,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,eAAe,iBAAiB,YAAY,iBAAiB,UAAU,gBAAgB,EAAE,aAAa,cAAc,CAAC,CAAC,EAC34G,EAAqB,CAAC,QAAU,CAAC,QAAU,CAAC,KAAO,iBAAiB,KAAO,aAAa,MAAQ,CAAC,EAAE,YAAc,CAAC,oBAAsB,GAAG,4BAA8B,OAAO,2BAA6B,MAAM,sBAAwB,GAAG,CAAC,EAAE,mBAAqB,CAAC,KAAO,UAAU,CAAC,CAAC"}