{"version":3,"file":"ScanCode.D-gUGUQV.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/mlwG6MuWg44LHYBRCS3v/4UeHrMZAXRUtrEJ40V3o/ScanCode.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Scan code\n *\n * Draws a QR code from a link, so someone reading on a computer can point their\n * phone at the screen and land on the App Store page. Type the link; the code\n * redraws itself. Nothing is fetched and no image is needed.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 148\n * @framerIntrinsicHeight 148\n */// ---- QR encoder: byte mode, error correction level M, versions 1 to 10\nconst EXP=new Uint8Array(512);const LOG=new Uint8Array(256);(()=>{let x=1;for(let i=0;i<255;i++){EXP[i]=x;LOG[x]=i;x<<=1;if(x&256)x^=285;}for(let i=255;i<512;i++)EXP[i]=EXP[i-255];})();const mul=(a,b)=>a&&b?EXP[LOG[a]+LOG[b]]:0;function remainder(data,ec){let gen=[1];for(let i=0;i<ec;i++){const next=new Array(gen.length+1).fill(0);for(let j=0;j<gen.length;j++){next[j]^=gen[j];next[j+1]^=mul(gen[j],EXP[i]);}gen=next;}const res=new Array(ec).fill(0);for(const d of data){const f=d^res[0];res.shift();res.push(0);for(let j=0;j<ec;j++)res[j]^=mul(gen[j+1],f);}return res;}// version: [error correction codewords per block, blocks in group 1, data codewords in each, blocks in group 2]\nconst BLOCKS=[[],[10,1,16,0],[16,1,28,0],[26,1,44,0],[18,2,32,0],[24,2,43,0],[16,4,27,0],[18,4,31,0],[22,2,38,2],[22,3,36,2],[26,4,43,1]];const ALIGN=[[],[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50]];export function qrMatrix(text){const bytes=[];for(const ch of unescape(encodeURIComponent(text)))bytes.push(ch.charCodeAt(0));let version=0;for(let v=1;v<=10;v++){const[,g1,d1,g2]=BLOCKS[v];const capacity=g1*d1+g2*(d1+1);if(bytes.length+(v<10?2:3)<=capacity){version=v;break;}}if(!version)return null;const[ec,g1,d1,g2]=BLOCKS[version];const capacity=g1*d1+g2*(d1+1);// bit stream\nconst bits=[];const push=(val,len)=>{for(let i=len-1;i>=0;i--)bits.push(val>>>i&1);};push(4,4);push(bytes.length,version<10?8:16);for(const b of bytes)push(b,8);push(0,Math.min(4,capacity*8-bits.length));while(bits.length%8)bits.push(0);const data=[];for(let i=0;i<bits.length;i+=8)data.push(bits.slice(i,i+8).reduce((a,b)=>a<<1|b,0));for(let pad=236;data.length<capacity;pad^=236^17)data.push(pad);// blocks and interleaving\nconst blocks=[];const ecs=[];let at=0;for(let b=0;b<g1+g2;b++){const len=d1+(b<g1?0:1);const blk=data.slice(at,at+len);at+=len;blocks.push(blk);ecs.push(remainder(blk,ec));}const all=[];for(let i=0;i<=d1;i++)for(const blk of blocks)if(i<blk.length)all.push(blk[i]);for(let i=0;i<ec;i++)for(const e of ecs)all.push(e[i]);// matrix\nconst size=17+4*version;const m=Array.from({length:size},()=>new Array(size).fill(false));const fn=Array.from({length:size},()=>new Array(size).fill(false));const set=(x,y,dark)=>{if(x<0||y<0||x>=size||y>=size)return;m[y][x]=dark;fn[y][x]=true;};for(let i=0;i<size;i++){set(6,i,i%2===0);set(i,6,i%2===0);}const finder=(cx,cy)=>{for(let dy=-4;dy<=4;dy++)for(let dx=-4;dx<=4;dx++){const d=Math.max(Math.abs(dx),Math.abs(dy));set(cx+dx,cy+dy,d!==2&&d!==4);}};finder(3,3);finder(size-4,3);finder(3,size-4);const al=ALIGN[version];for(let i=0;i<al.length;i++)for(let j=0;j<al.length;j++){if(i===0&&j===0||i===0&&j===al.length-1||i===al.length-1&&j===0)continue;for(let dy=-2;dy<=2;dy++)for(let dx=-2;dx<=2;dx++)set(al[i]+dx,al[j]+dy,Math.max(Math.abs(dx),Math.abs(dy))!==1);}const format=mask=>{const d=mask// level M has format bits 00\n;let rem=d;for(let i=0;i<10;i++)rem=rem<<1^(rem>>>9)*1335;const f=(d<<10|rem)^21522;const bit=i=>(f>>>i&1)===1;for(let i=0;i<=5;i++)set(8,i,bit(i));set(8,7,bit(6));set(8,8,bit(7));set(7,8,bit(8));for(let i=9;i<15;i++)set(14-i,8,bit(i));for(let i=0;i<8;i++)set(size-1-i,8,bit(i));for(let i=8;i<15;i++)set(8,size-15+i,bit(i));set(8,size-8,true);};format(0);if(version>=7){let rem=version;for(let i=0;i<12;i++)rem=rem<<1^(rem>>>11)*7973;const v=version<<12|rem;for(let i=0;i<18;i++){const dark=(v>>>i&1)===1;const a=size-11+i%3;const b=Math.floor(i/3);set(a,b,dark);set(b,a,dark);}}let k=0;for(let right=size-1;right>=1;right-=2){if(right===6)right=5;for(let vert=0;vert<size;vert++)for(let j=0;j<2;j++){const x=right-j;const up=(right+1&2)===0;const y=up?size-1-vert:vert;if(!fn[y][x]&&k<all.length*8){m[y][x]=(all[k>>>3]>>>7-(k&7)&1)===1;k++;}}}const masks=[(x,y)=>(x+y)%2===0,(_x,y)=>y%2===0,x=>x%3===0,(x,y)=>(x+y)%3===0,(x,y)=>(Math.floor(x/3)+Math.floor(y/2))%2===0,(x,y)=>x*y%2+x*y%3===0,(x,y)=>(x*y%2+x*y%3)%2===0,(x,y)=>((x+y)%2+x*y%3)%2===0];const apply=mask=>{for(let y=0;y<size;y++)for(let x=0;x<size;x++)if(!fn[y][x]&&masks[mask](x,y))m[y][x]=!m[y][x];};const penalty=()=>{let p=0;let dark=0;for(let y=0;y<size;y++){let runR=1;let runC=1;for(let x=0;x<size;x++){if(m[y][x])dark++;if(x>0){runR=m[y][x]===m[y][x-1]?runR+1:1;if(runR===5)p+=3;else if(runR>5)p++;runC=m[x][y]===m[x-1][y]?runC+1:1;if(runC===5)p+=3;else if(runC>5)p++;}if(x>0&&y>0&&m[y][x]===m[y][x-1]&&m[y][x]===m[y-1][x]&&m[y][x]===m[y-1][x-1])p+=3;}}return p+Math.floor(Math.abs(dark*20/(size*size)-10))*10;};let best=0;let low=Infinity;for(let mask=0;mask<8;mask++){apply(mask);format(mask);const p=penalty();if(p<low){low=p;best=mask;}apply(mask);}apply(best);format(best);return m;}export default function ScanCode(props){const{link,sitePage,quiet,codeColour,groundColour,corner,label}=props;// With a Site page set, the code points at that page of this site (worked out in the browser, where the address is known).\nconst[origin,setOrigin]=useState(\"\");useEffect(()=>{if(String(sitePage||\"\").trim())setOrigin(window.location.origin);},[sitePage]);const page=String(sitePage||\"\").trim();const target=page&&origin?origin+(page.startsWith(\"/\")?page:\"/\"+page):String(link||\"\").trim();const m=qrMatrix(target||\"https://example.com\");if(!m)return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"grid\",placeItems:\"center\",fontSize:12,textAlign:\"center\"},children:\"This link is too long for a scan code.\"});const n=m.length;const q=Math.max(0,Math.round(quiet));let d=\"\";for(let y=0;y<n;y++){let x=0;while(x<n){if(!m[y][x]){x++;continue;}let w=1;while(x+w<n&&m[y][x+w])w++;d+=`M${x+q} ${y+q}h${w}v1h-${w}z`;x+=w;}}const full=n+q*2;return /*#__PURE__*/_jsx(\"svg\",{role:\"img\",\"aria-label\":label,viewBox:`0 0 ${full} ${full}`,width:\"100%\",height:\"100%\",shapeRendering:\"crispEdges\",style:{display:\"block\",borderRadius:corner,background:groundColour},children:/*#__PURE__*/_jsx(\"path\",{d:d,fill:codeColour})});}ScanCode.defaultProps={link:\"https://example.com/your-app-store-link\",sitePage:\"\",quiet:2,codeColour:\"#0C0E11\",groundColour:\"#FFFFFF\",corner:0,label:\"Scan to open the App Store page\"};addPropertyControls(ScanCode,{link:{type:ControlType.String,title:\"Link\",description:\"Your App Store address. The code is drawn from it.\"},sitePage:{type:ControlType.String,title:\"Site page\",placeholder:\"/get\",description:\"Optional. A page of this site to point at instead, such as /get, which sends each phone to its own store.\"},label:{type:ControlType.String,title:\"Alt text\",description:\"What the code is for, for screen readers.\"},quiet:{type:ControlType.Number,title:\"Margin\",min:0,max:6,step:1,description:\"Empty squares round the code. Phones read it more easily with two or more.\"},corner:{type:ControlType.Number,title:\"Corner\",min:0,max:40,step:1,unit:\"px\"},codeColour:{type:ControlType.Color,title:\"Code colour\"},groundColour:{type:ControlType.Color,title:\"Ground colour\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScanCode\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"qrMatrix\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScanCode.map"],"mappings":"+LAYoO,SAAS,EAAU,EAAK,EAAG,CAAC,IAAI,EAAI,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,IAAI,CAAC,IAAM,EAAS,MAAM,EAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,IAAK,EAAK,IAAI,EAAI,GAAG,EAAK,EAAE,IAAI,EAAI,EAAI,GAAG,EAAI,EAAE,EAAG,EAAI,CAAK,CAAC,IAAM,EAAQ,MAAM,CAAE,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,IAAM,KAAK,EAAK,CAAC,IAAM,EAAE,EAAE,EAAI,GAAG,EAAI,MAAM,EAAE,EAAI,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,IAAI,EAAI,IAAI,EAAI,EAAI,EAAE,GAAG,CAAC,CAAE,CAAC,OAAO,CAAI,CAClV,SAAgB,EAAS,EAAK,CAAC,IAAM,EAAM,CAAC,EAAE,IAAI,IAAM,KAAM,SAAS,mBAAmB,CAAI,CAAC,EAAE,EAAM,KAAK,EAAG,WAAW,CAAC,CAAC,EAAE,IAAI,EAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,GAAK,EAAE,EAAG,EAAG,GAAI,EAAO,GAAS,EAAS,EAAG,EAAG,GAAI,EAAG,GAAG,GAAG,EAAM,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAS,CAAC,EAAQ,EAAE,KAAM,CAAC,CAAC,GAAG,CAAC,EAAQ,OAAO,KAAK,GAAK,CAAC,EAAG,EAAG,EAAG,GAAI,EAAO,GAAe,EAAS,EAAG,EAAG,GAAI,EAAG,GAC/kB,EAAK,CAAC,EAAQ,GAAM,EAAI,IAAM,CAAC,IAAI,IAAI,EAAE,EAAI,EAAE,GAAG,EAAE,IAAI,EAAK,KAAK,IAAM,EAAE,CAAC,CAAE,EAAE,EAAK,EAAE,CAAC,EAAE,EAAK,EAAM,OAAO,EAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,IAAM,KAAK,EAAM,EAAK,EAAE,CAAC,EAA6C,IAA3C,EAAK,EAAE,KAAK,IAAI,EAAE,EAAS,EAAE,EAAK,MAAM,CAAC,EAAQ,EAAK,OAAO,GAAE,EAAK,KAAK,CAAC,EAAE,IAAM,EAAK,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,OAAO,GAAG,EAAE,EAAK,KAAK,EAAK,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,EAAI,IAAI,EAAK,OAAO,EAAS,GAAK,IAAO,EAAK,KAAK,CAAG,EAC7Y,IAAM,EAAO,CAAC,EAAQ,EAAI,CAAC,EAAM,EAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,EAAG,IAAI,CAAC,IAAM,EAAI,GAAI,EAAE,EAAG,EAAE,GAAS,EAAI,EAAK,MAAM,EAAG,EAAG,CAAG,EAAE,GAAI,EAAI,EAAO,KAAK,CAAG,EAAE,EAAI,KAAK,EAAU,EAAI,CAAE,CAAC,CAAE,CAAC,IAAM,EAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAG,IAAI,IAAI,IAAM,KAAO,EAAU,EAAE,EAAI,QAAO,EAAI,KAAK,EAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,IAAI,IAAI,IAAM,KAAK,EAAI,EAAI,KAAK,EAAE,EAAE,EAC9T,IAAM,EAAK,GAAG,EAAE,EAAc,EAAE,MAAM,KAAK,CAAC,OAAO,CAAI,MAAU,MAAM,CAAI,CAAC,CAAC,KAAK,EAAK,CAAC,EAAQ,EAAG,MAAM,KAAK,CAAC,OAAO,CAAI,MAAU,MAAM,CAAI,CAAC,CAAC,KAAK,EAAK,CAAC,EAAQ,GAAK,EAAE,EAAE,IAAO,CAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAM,GAAG,IAAY,EAAE,EAAE,CAAC,GAAG,EAAK,EAAG,EAAE,CAAC,GAAG,GAAK,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAK,EAAI,EAAE,EAAE,EAAE,GAAI,CAAC,EAAE,EAAI,EAAE,EAAE,EAAE,GAAI,CAAC,EAAG,IAAM,GAAQ,EAAG,IAAK,CAAC,IAAI,IAAI,EAAG,GAAG,GAAI,EAAE,IAAK,IAAI,IAAI,EAAG,GAAG,GAAI,EAAE,IAAK,CAAC,IAAM,EAAE,KAAK,IAAI,KAAK,IAAI,CAAE,EAAE,KAAK,IAAI,CAAE,CAAC,EAAE,EAAI,EAAG,EAAG,EAAG,EAAG,IAAI,GAAG,IAAI,CAAC,CAAE,CAAC,EAAE,EAAO,EAAE,CAAC,EAAE,EAAO,EAAK,EAAE,CAAC,EAAE,EAAO,EAAE,EAAK,CAAC,EAAE,IAAM,EAAG,EAAM,GAAS,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,OAAO,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,OAAO,IAAQ,SAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAG,OAAO,GAAG,IAAI,EAAG,OAAO,GAAG,IAAI,GAAW,IAAI,IAAI,EAAG,GAAG,GAAI,EAAE,IAAK,IAAI,IAAI,EAAG,GAAG,GAAI,EAAE,IAAK,EAAI,EAAG,GAAG,EAAG,EAAG,GAAG,EAAG,KAAK,IAAI,KAAK,IAAI,CAAE,EAAE,KAAK,IAAI,CAAE,CAAC,IAAI,CAAC,EAAG,IAAM,EAAO,GAAM,CAAC,IAAM,EAAE,EACzxB,EAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAI,GAAK,GAAG,IAAM,GAAG,KAAK,IAAM,GAAG,GAAG,GAAG,GAAK,MAAY,EAAI,IAAI,IAAI,EAAE,IAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAI,EAAE,EAAE,EAAI,CAAC,CAAC,EAAE,EAAI,EAAE,EAAE,EAAI,CAAC,CAAC,EAAE,EAAI,EAAE,EAAE,EAAI,CAAC,CAAC,EAAE,EAAI,EAAE,EAAE,EAAI,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAI,GAAG,EAAE,EAAE,EAAI,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAI,EAAK,EAAE,EAAE,EAAE,EAAI,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAI,EAAE,EAAK,GAAG,EAAE,EAAI,CAAC,CAAC,EAAE,EAAI,EAAE,EAAK,EAAE,EAAI,CAAE,EAAY,GAAV,EAAO,CAAC,EAAK,GAAS,EAAE,CAAC,IAAI,EAAI,EAAQ,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAI,GAAK,GAAG,IAAM,IAAI,KAAK,IAAM,EAAE,GAAS,GAAG,EAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAM,GAAM,IAAI,EAAE,IAAK,EAAQ,EAAE,EAAK,GAAG,EAAE,EAAQ,EAAE,KAAK,MAAM,EAAE,CAAC,EAAE,EAAI,EAAE,EAAE,CAAI,EAAE,EAAI,EAAE,EAAE,CAAI,CAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,EAAM,EAAK,EAAE,GAAO,EAAE,GAAO,EAAE,CAAI,IAAQ,IAAE,EAAM,GAAE,IAAI,IAAI,EAAK,EAAE,EAAK,EAAK,IAAO,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAM,EAAiC,EAArB,EAAM,EAAE,EAA8B,EAAZ,EAAK,EAAE,EAAa,CAAC,EAAG,EAAE,CAAC,IAAI,EAAE,EAAI,OAAO,IAAG,EAAE,EAAE,CAAC,IAAI,EAAI,IAAI,KAAK,GAAG,EAAE,GAAG,IAAK,EAAE,IAAK,CAAC,CAAC,IAAM,EAAM,EAAE,EAAE,KAAK,EAAE,GAAG,GAAI,GAAG,EAAG,IAAI,EAAE,GAAI,EAAE,GAAG,EAAE,GAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAI,GAAG,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,GAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAI,CAAC,EAAQ,EAAM,GAAM,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAO,CAAC,EAAG,EAAE,CAAC,IAAI,EAAM,EAAK,CAAC,EAAE,CAAC,IAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAQ,MAAY,CAAC,IAAI,EAAE,EAAM,EAAK,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAI,CAAC,IAAI,EAAK,EAAM,EAAK,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAQ,EAAE,EAAE,CAAC,IAAG,IAAU,EAAE,IAAG,EAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAK,EAAE,EAAK,IAAO,EAAE,GAAG,EAAU,EAAK,GAAE,IAAI,EAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,EAAK,EAAE,EAAK,IAAO,EAAE,GAAG,EAAU,EAAK,GAAE,KAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,KAAG,GAAG,EAAG,CAAC,OAAO,EAAE,KAAK,MAAM,KAAK,IAAI,EAAK,IAAI,EAAK,GAAM,EAAE,CAAC,EAAE,EAAG,EAAM,EAAK,EAAM,EAAI,IAAS,IAAI,IAAI,EAAK,EAAE,EAAK,EAAE,IAAO,CAAC,EAAM,CAAI,EAAE,EAAO,CAAI,EAAE,IAAM,EAAE,EAAQ,EAAK,EAAE,IAAK,EAAI,EAAE,EAAK,GAAM,EAAM,CAAI,CAAE,CAA0B,OAAzB,EAAM,CAAI,EAAE,EAAO,CAAI,EAAS,CAAE,CAAC,SAAwB,EAAS,EAAM,CAAC,GAAK,CAAC,OAAK,WAAS,QAAM,aAAW,eAAa,SAAO,SAAO,EACj0D,CAAC,EAAO,GAAWA,EAAS,EAAE,EAAE,MAAc,CAAI,OAAO,GAAU,EAAE,CAAC,CAAC,KAAK,GAAE,EAAU,EAAO,SAAS,MAAM,CAAE,EAAE,CAAC,CAAQ,CAAC,EAAE,IAAM,EAAK,OAAO,GAAU,EAAE,CAAC,CAAC,KAAK,EAAsG,EAAE,GAAzF,GAAM,EAAO,GAAQ,EAAK,WAAW,GAAG,EAAE,EAAK,IAAI,GAAM,OAAO,GAAM,EAAE,CAAC,CAAC,KAAK,IAA2B,qBAAqB,EAAE,GAAG,CAAC,EAAE,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,QAAQ,OAAO,WAAW,SAAS,SAAS,GAAG,UAAU,QAAQ,EAAE,SAAS,wCAAwC,CAAC,EAAE,IAAM,EAAE,EAAE,OAAa,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,CAAK,CAAC,EAAM,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAM,EAAE,GAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,QAAS,CAAC,IAAI,EAAE,EAAE,KAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,IAAG,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,CAAE,CAAC,CAAC,IAAM,EAAK,EAAE,EAAE,EAAE,OAAoB,EAAK,MAAM,CAAC,KAAK,MAAM,aAAa,EAAM,QAAQ,OAAO,EAAK,GAAG,IAAO,MAAM,OAAO,OAAO,OAAO,eAAe,aAAa,MAAM,CAAC,QAAQ,QAAQ,aAAa,EAAO,WAAW,CAAY,EAAE,SAAsB,EAAK,OAAO,CAAG,IAAE,KAAK,CAAU,CAAC,CAAC,CAAC,CAAE,+BAlB/7B,IAAsC,IAAoD,EAY9H,EAAI,IAAI,WAAW,GAAG,EAAQ,EAAI,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,IAAK,EAAI,GAAG,EAAE,EAAI,GAAG,EAAE,IAAI,EAAK,EAAE,MAAI,GAAG,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAI,GAAG,EAAI,EAAE,IAAK,EAAA,CAAG,EAAQ,GAAK,EAAE,IAAI,GAAG,EAAE,EAAI,EAAI,GAAG,EAAI,IAAI,EAC5N,EAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAQ,EAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAKmwB,EAAS,aAAa,CAAC,KAAK,0CAA0C,SAAS,GAAG,MAAM,EAAE,WAAW,UAAU,aAAa,UAAU,OAAO,EAAE,MAAM,iCAAiC,EAAE,EAAoB,EAAS,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,YAAY,oDAAoD,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,YAAY,OAAO,YAAY,2GAA2G,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,YAAY,2CAA2C,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,4EAA4E,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,EAAE,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,CAAC,CAAC"}