@oracle-agent/oracle 0.24.8 → 0.24.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -49
- package/SECURITY.md +1 -1
- package/SETUP.md +16 -13
- package/dist/assets/profiles/_template/SOUL.md +2 -2
- package/dist/assets/profiles/oracle/SOUL.md +11 -13
- package/dist/assets/profiles/profile.schema.json +1 -1
- package/dist/assets/profiles/robinhood-agent/SOUL.md +5 -5
- package/dist/assets/skills/multi-venue-prepare-only-ranking/SKILL.md +1 -1
- package/dist/assets/skills/oracle-action-semantics/SKILL.md +5 -5
- package/dist/assets/skills/oracle-chat/SKILL.md +8 -8
- package/dist/assets/skills/oracle-desk-product/SKILL.md +3 -3
- package/dist/assets/skills/oracle-receipts/SKILL.md +2 -2
- package/dist/bin/desk-server.mjs +78 -34
- package/dist/bin/oracle-data-mcp.mjs +51 -7
- package/dist/bin/oracle-gateway.mjs +13 -15
- package/dist/bin/oracle-init.mjs +9 -9
- package/dist/bin/oracle-public-server.mjs +48 -4
- package/dist/bin/oracle-route.mjs +66 -22
- package/dist/bin/oracle-scan.mjs +58 -14
- package/dist/bin/oracle-upgrade.mjs +9 -9
- package/dist/bin/oracle.mjs +6 -6
- package/dist/cli/commands/chat.mjs +140 -96
- package/dist/cli/commands/doctor.mjs +5 -5
- package/dist/cli/commands/eval.mjs +17 -17
- package/dist/cli/commands/farm.mjs +72 -28
- package/dist/cli/commands/follow.mjs +61 -17
- package/dist/cli/commands/model.mjs +147 -103
- package/dist/cli/commands/receipt.mjs +3 -3
- package/dist/cli/commands/resolve.mjs +55 -11
- package/dist/cli/commands/setup.mjs +27 -27
- package/dist/cli/commands/sign.mjs +14 -13
- package/dist/cli/commands/signer.mjs +14 -17
- package/dist/cli/commands/strategy.mjs +50 -6
- package/dist/cli/commands/swap.mjs +72 -29
- package/dist/cli/commands/venues.mjs +3 -3
- package/dist/data/desk-data.mjs +78 -34
- package/dist/data/names.mjs +46 -2
- package/dist/data/providers/farming.mjs +46 -2
- package/dist/index.mjs +80 -36
- package/dist/local-signer/index.mjs +3 -1
- package/dist/router/index.mjs +46 -2
- package/dist/router/prepare-bridge.mjs +46 -2
- package/dist/scanner/index.mjs +48 -4
- package/dist/strategy/index.mjs +47 -3
- package/package.json +6 -3
- package/public/install.ps1 +1 -1
- package/public/install.sh +5 -4
- package/public/oracle-splash/_variants/ice.html +3 -3
- package/public/oracle-splash/_variants/ivory.html +3 -3
- package/public/oracle-splash/downloads/index.html +5 -5
- package/public/oracle-splash/index.html +7 -7
- package/public/oracle-splash/install.ps1 +1 -1
- package/public/oracle-splash/install.sh +5 -4
|
@@ -1,2 +1,46 @@
|
|
|
1
|
-
var je=Object.defineProperty;var S=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var re=(e,t)=>{for(var r in t)je(e,r,{get:t[r],enumerable:!0})};import{createHash as ze}from"node:crypto";function Ye(e){let t=String(e||"").toLowerCase();return le.includes(t)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(t)}function Qe(e){let t={};for(let[r,n]of Object.entries(e||{}))Ye(r)||(t[r]=n);return t}function We(e,t){if(!e)throw new Error(`HTTP redirect from ${t} missing Location`);let r=new URL(String(e),String(t));if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(`HTTP redirect from ${t} used unsupported protocol ${r.protocol}`);return r.toString()}function Je(e,t){return new URL(String(e)).origin===new URL(String(t)).origin}function Ze(e,t,r){let n={};for(let[s,l]of Object.entries(r||{}))n[s.toLowerCase()]=l;let o=Object.keys(n).filter(s=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(s)),i=[...new Set([...le,...o])].sort().map(s=>`${s}=${n[s]??""}`).join(`
|
|
2
|
-
`),c=ze("sha256").update(i).digest("hex").slice(0,32);return`${e} ${t} ${c}`}function et(e,t){let r=Number(t);return Number.isFinite(r)&&r>0?Math.min(r*1e3,ce):Math.min(250*2**e,ce)+Math.floor(Math.random()*100)}async function rt(e,{fetchImpl:t,method:r,headers:n,body:o,timeoutMs:a}){let i=new AbortController,c=setTimeout(()=>i.abort(),a);try{let s=String(e),l={...n||{}};for(let d=0;d<=ue;d+=1){let u=await t(s,{method:r,headers:l,body:o,signal:i.signal,redirect:"manual"}),p=await u.text(),m=null;if(p)try{m=JSON.parse(p)}catch{m=null}if(Ke.has(u.status)){if(r!=="GET"&&r!=="HEAD"){let b=new Error(`HTTP ${u.status} ${r} ${s} redirected non-idempotent request`);throw b.status=u.status,b.body=m??p.slice(0,300),b}if(d===ue)throw new Error(`HTTP redirect loop for ${e}`);let w=We(u.headers?.get?.("location"),s);Je(w,s)||(l=Qe(l)),s=w;continue}if(!u.ok){let w=new Error(`HTTP ${u.status} ${r} ${s}`);throw w.status=u.status,w.retryAfter=u.headers?.get?.("retry-after")??null,w.body=m??p.slice(0,300),w}return m??p}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(c)}}async function E(e,t={}){let r=t.fetchImpl||globalThis.fetch;if(typeof r!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let n=t.timeoutMs??12e3,o=(t.method||"GET").toUpperCase(),a={Accept:"application/json",...t.headers||{}},i=t.body;i!=null&&typeof i!="string"&&(a["Content-Type"]=a["Content-Type"]||"application/json",i=JSON.stringify(i));let c=Number.isInteger(t.retries)?Math.max(t.retries,0):Xe,s=async()=>{let m;for(let w=0;w<=c;w++)try{return await rt(e,{fetchImpl:r,method:o,headers:a,body:i,timeoutMs:n})}catch(b){m=b;let f=b?.status,h=b?.name==="AbortError",g=new Set([408,425,429]),y=f!=null?g.has(f)||Ge.has(f)&&se.has(o):!h&&se.has(o);if(w===c||!y)throw b;await tt(et(w,b?.retryAfter))}throw m};if(!(t.dedupe!==!1&&o==="GET"&&i==null))return s();let d=Ze(o,e,a),u=j.get(d);if(u)return u;let p=s().finally(()=>j.delete(d));return j.set(d,p),p}var Ge,se,Xe,ce,le,Ke,ue,j,tt,I=S(()=>{Ge=new Set([408,425,429,500,502,503,504]),se=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),Xe=2,ce=4e3,le=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],Ke=new Set([301,302,303,307,308]),ue=3;j=new Map;tt=e=>new Promise(t=>setTimeout(t,e))});import{readFileSync as nt}from"node:fs";import{homedir as ot}from"node:os";import{join as U}from"node:path";function at(){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){let r=(process.env.ORACLE_EXEC_ENV_FILE||"").trim();return r?[r]:[]}let e=(process.env.ORACLE_EXEC_ENV_FILE||process.env.MAD_EXEC_ENV_FILE||"").trim(),t=ot();if(process.env.ORACLE_PUBLIC_DESKTOP==="1"){let r=(process.env.ORACLE_CONFIG_DIR||U(t,".config","oracle")).trim();return[e,U(r,"exec.env")].filter(Boolean)}return[e,U(t,".config","oracle","exec.env"),U(t,".config","mad-desk","exec.env")].filter(Boolean)}function de(e,t,r){let n=e??process.env[t]??process.env[r];if(!String(n||"").trim())for(let o of at())try{let a=nt(o,"utf8"),i=a.match(new RegExp(`^${t}=(.*)$`,"m"))||a.match(new RegExp(`^${r}=(.*)$`,"m"));if(i&&(n=i[1].trim(),n))break}catch{}if(!String(n||"").trim())throw new Error(`${t} required for attestation. Set it in the environment, or place ${t}=<value> in ~/.config/oracle/exec.env`);return n}var pe=S(()=>{});var me=S(()=>{});import{createHash as it,createHmac as st,timingSafeEqual as $r}from"node:crypto";function G(e){return Array.isArray(e)?`[${e.map(G).join(",")}]`:e&&typeof e=="object"?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${G(e[t])}`).join(",")}}`:JSON.stringify(e??null)}function ct(e,{required:t=!1}={}){try{return de(e,"ORACLE_ROUTE_ATTESTATION_SECRET","MAD_ROUTE_ATTESTATION_SECRET")}catch(r){if(t)throw r;return null}}function we(e){let{signature:t,...r}=e;return r}function ge(e,{secret:t}={}){let r=ct(t);return r?{...e,signature:st("sha256",r).update(G(we(e))).digest("hex")}:e}function ut(e){let t=String(e||"").toLowerCase();if(!/^0x[0-9a-f]+$/.test(t)||t.length<10||t.length%2!==0)throw new Error("auto-slippage calldata must be even-length hex with a selector");return it("sha256").update(Buffer.from(t.slice(2),"hex")).digest("hex")}function B(e,{chainId:t,venue:r,data:n,secret:o}={}){if(!e||e.mode!=="auto")throw new Error("bounded auto-slippage guard required");if(Number(e.chainId)!==Number(t))throw new Error("auto-slippage guard chain mismatch");if(String(e.venue).toLowerCase()!==String(r||"").toLowerCase())throw new Error("auto-slippage guard venue mismatch");return ge({...we(e),calldataHash:ut(n)},{secret:o})}function z(e,t=0){let r=Number(e);return Number.isFinite(r)?r:t}function lt(e){let t=e==null?fe:Number(e);if(!Number.isInteger(t)||t<0)throw new Error("auto-slippage cap must be a non-negative integer bps value");return Math.min(t,fe)}function T({liquidityUsd:e,priceChange5m:t=0,quoteAgeMs:r=0,crossChain:n=!1,requestedCapBps:o}={}){let a=z(e,0),i=a>0?a>=25e4?5:a>=1e5?10:a>=5e4?20:a>=1e4?40:70:n?30:10,c=Math.min(60,Math.abs(z(t,0))*2),s=Math.min(40,Math.floor(Math.max(0,z(r,0))/5e3)*5),l=Math.max(25,Math.ceil(20+i+c+s)),d=lt(o);return{mode:"auto",requiredBps:l,selectedBps:Math.min(l,d),capBps:d,executable:l<=d}}function dt({chainId:e,venue:t,quoteAmountOut:r,liquidityUsd:n,priceChange5m:o=0,quoteAgeMs:a=0,crossChain:i=!1,requestedCapBps:c,quotedAtMs:s=Date.now(),ttlMs:l=he,secret:d}={}){let u=BigInt(r??0);if(u<=0n)throw new Error("auto-slippage guard requires positive quoteAmountOut");let p=T({liquidityUsd:n,priceChange5m:o,quoteAgeMs:a,crossChain:i,requestedCapBps:c});if(!p.executable)throw new Error(`auto-slippage requires ${p.requiredBps} bps above hard/requested cap ${p.capBps}; route blocked`);let m=Number(s);if(!Number.isFinite(m))throw new Error("auto-slippage: quotedAtMs must be a finite number");let w=Math.min(3e4,Math.max(1e3,Number(l)||he)),b=u*BigInt(1e4-p.selectedBps),f=b/10000n;if(b%10000n!==0n&&(f+=1n),f>u&&(f=u),u>0n&&f<=0n)throw new Error(`auto-slippage: quote ${u} is too small to express a ${p.selectedBps} bps floor without rounding to zero`);let h=Number((u-f)*10000n/(u===0n?1n:u));if(h>p.capBps)throw new Error(`auto-slippage: realised floor implies ${h} bps, above cap ${p.capBps} \u2014 refusing to issue a guard weaker than advertised`);return ge({mode:"auto",chainId:Number(e),venue:String(t||"unknown"),quoteAmountOut:u.toString(),minAmountOut:f.toString(),requiredBps:p.requiredBps,selectedBps:p.selectedBps,capBps:p.capBps,quotedAtMs:m,expiresAtMs:m+w},{secret:d})}function x(e,{chainId:t,venue:r,amountOut:n,liquidityUsd:o,priceChange5m:a,crossChain:i,requestedCapBps:c,quotedAtMs:s=Date.now(),ttlMs:l}={}){let d=dt({chainId:t,venue:r,quoteAmountOut:n,liquidityUsd:o,priceChange5m:a,crossChain:i,requestedCapBps:c,quotedAtMs:s,ttlMs:l});return{...e,autoSlippage:d,amountOutMinimum:d.minAmountOut}}var fe,he,k=S(()=>{pe();me();fe=100,he=2e4});var P,L=S(()=>{P="0x000000000000000000000000000000000000dEaD"});import{createHash as pt,createHmac as mt,timingSafeEqual as Mr}from"node:crypto";function X(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(X).join(",")}]`:`{${Object.keys(e).sort().map(r=>`${JSON.stringify(r)}:${X(e[r])}`).join(",")}}`}function be(e){let t=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return t.length>=16?t:""}function Ee(e=process.env){return be(process.env)||be(e)}function wt(e){let{oraclePrepared:t,prepareHash:r,prepareMac:n,note:o,...a}=e||{};return a}function gt(e){let t=wt(e);return pt("sha256").update(X(t)).digest("hex")}function bt(e,t=Ee()){return t?mt("sha256",t).update(String(e)).digest("hex"):""}function A(e,{provider:t,kind:r,env:n=process.env}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let o={...e,provider:e.provider||t,kind:e.kind||r,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1};if(!o.provider)throw new Error("stampPrepared: provider required");if(!o.kind)throw new Error("stampPrepared: kind required");let a=Date.now(),i=a+ht,s={...o,preparedAt:a,expiresAt:i,prepareVersion:ft},l=gt(s),d=Ee(n),u=d?bt(l,d):void 0,p={...s,oraclePrepared:!0,prepareHash:l};return u&&(p.prepareMac=u),p}var ft,ht,qr,C=S(()=>{ft=2,ht=300*1e3,qr=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});import{Contract as Et,JsonRpcProvider as yt}from"ethers";function vt(e){return Ct.test(String(e||""))}async function ye(e,{contract:t=At,rpc:r=St,chainId:n=xt,balanceOf:o}={}){if(!vt(e))throw new Error("invalid-address");if(o)return BigInt(await o(e));let a=new yt(r,n,{staticNetwork:!0}),i=new Et(t,It,a);return BigInt(await i.balanceOf(e))}var At,xt,St,It,Ct,Ae=S(()=>{At="0x62FCFAf7573AD8B41a0FBF347AfEb85e06599A75",xt=999,St="https://rpc.hyperliquid.xyz/evm",It=["function balanceOf(address owner) view returns (uint256)"],Ct=/^0x[a-fA-F0-9]{40}$/});import{existsSync as kt,readFileSync as Ot}from"node:fs";import{homedir as _t}from"node:os";import{join as xe}from"node:path";function Tt(e){let t=String(e||"swap").toLowerCase();return Object.prototype.hasOwnProperty.call(Se,t)?Se[t]:Bt}function Lt(e=process.env){if(e[Ie])return String(e[Ie]);let t=e.ORACLE_CONFIG_DIR||xe(_t(),".config","oracle");return xe(t,"fee-recipient")}function Dt(e=process.env){try{let t=Lt(e);if(!kt(t))return"";let r=Ot(t,"utf8").trim().toLowerCase();return/^0x[a-f0-9]{40}$/.test(r)?r:""}catch{return""}}function Ft(e,{fallback:t=0}={}){if(e==null)return t;if(String(e).trim()==="")return 0;let r=Number(e);return!Number.isFinite(r)||r<=0?0:Math.min(Math.floor(r),Rt)}function Mt({env:e=process.env,action:t="swap",admin:r=!1}={}){let n=String(e[$t]||"").trim(),o=String(e[Pt]||Ut).trim();if(r===!0)return{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"admin-oracle"};let a=Tt(t),i=Ft(e[Nt],{fallback:n?a:0}),c=Math.min(i,a);if(!c)return{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"not-configured"};if(!/^0x[a-fA-F0-9]{40}$/.test(n))return{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"no-recipient"};let s=Dt(e);return!s||s!==n.toLowerCase()?{bps:0,recipient:"",integrator:o,action:t,applies:!1,reason:"recipient-not-pinned"}:{bps:c,recipient:n,integrator:o,action:t,applies:!0,reason:"configured"}}async function K({wallet:e,env:t=process.env,action:r="swap",holderCheck:n={},admin:o=!1}={}){let a=Mt({env:t,action:r,admin:o});if(o===!0)return{...a,holderVerificationStatus:"admin-oracle"};let i=String(e||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(i))return{...a,holderVerificationStatus:"wallet-required"};try{return BigInt(await ye(i,n))>0n?{...a,bps:0,applies:!1,reason:"locals-only-holder",holderVerificationStatus:"holder"}:{...a,holderVerificationStatus:"non-holder"}}catch{return{...a,holderVerificationStatus:"unavailable"}}}function Ce(e){return e?.applies?`Oracle routing fee ${e.bps} bps (${(e.bps/100).toFixed(2)}%) to ${e.recipient}.`:e?.reason==="admin-oracle"?"No Oracle fee (admin Oracle).":e?.reason==="locals-only-holder"?"No Oracle fee (Locals Only holder).":"No Oracle fee."}function ve(e){return e?.applies?{integrator:e.integrator,fee:String(e.bps/1e4)}:{}}var Rt,Bt,Se,Nt,$t,Pt,Ie,Ut,D=S(()=>{Ae();Rt=100,Bt=5,Se=Object.freeze({swap:5,bridge:5,perps:0,nft:0});Nt="ORACLE_INTEGRATOR_FEE_BPS",$t="ORACLE_INTEGRATOR_FEE_RECIPIENT",Pt="ORACLE_INTEGRATOR_ID",Ie="ORACLE_INTEGRATOR_FEE_RECIPIENT_PIN",Ut="oracle"});var _e={};re(_e,{LIFI_API:()=>Oe,lifiChains:()=>zt,lifiHealth:()=>Vt,lifiPrepare:()=>jt,lifiQuote:()=>F});function Q(e={}){return(e.baseUrl||process.env.LIFI_API_URL||Oe).replace(/\/$/,"")}function Ht(e){let t=String(e||Y).toLowerCase();return t===Y.toLowerCase()||t===qt}function ke(e,t){let r=String(e||"").trim();if(!/^0x[0-9a-fA-F]{40}$/.test(r))throw new Error(`lifi: ${t} must be a 20-byte address`);return r.toLowerCase()}async function Vt(e={}){let t=await E(`${Q(e)}/chains`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??12e3}),r=Array.isArray(t)?t.length:t?.chains?.length||0;return{ok:r>0,chainCount:r}}async function F(e={},t={}){let{fromChain:r,toChain:n=r,fromToken:o=Y,toToken:a,fromAmount:i,fromAddress:c=P}=e;if(r==null||!a||!i)throw new Error("lifiQuote requires fromChain, toToken, fromAmount");let s=new URLSearchParams({fromChain:String(r),toChain:String(n),fromToken:o,toToken:a,fromAmount:String(i),fromAddress:c}),l=T({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(r),requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!l.executable)throw new Error(`lifi: route requires ${l.requiredBps} bps above cap ${l.capBps}`);s.set("slippage",String(l.selectedBps/1e4));let d=await K({wallet:e.fromAddress,env:t.env,action:e.feeAction||"swap",holderCheck:t.holderCheck});for(let[f,h]of Object.entries(ve(d)))s.set(f,h);let u=await E(`${Q(t)}/quote?${s}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??2e4}),p=u?.estimate?.toAmount||u?.toAmount;if(!p)return{...u,autoSlippagePolicy:l,oracleFee:d};let m=u?.transactionRequest?.to||u?.estimate?.approvalAddress||"lifi",w=x(u,{chainId:Number(r),venue:m,amountOut:p,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(r),requestedCapBps:e.maxSlippageBps??e.slippageBps}),b=u?.estimate?.toAmountMin||u?.toAmountMin;if(b!=null&&BigInt(b)<BigInt(w.amountOutMinimum))throw new Error("lifi: provider transaction is under-protected versus bounded auto-slippage floor");return{...w,oracleFee:d}}async function jt(e={},t={}){let r=await F(e,t),n=r?.transactionRequest;if(!n?.to||!n?.data)throw new Error("lifi: quote did not return an executable transactionRequest");let o=Number(e.fromChain);if(n.chainId!=null&&Number(n.chainId)!==o)throw new Error("lifi: transaction chain mismatch");if(e.fromAddress&&n.from&&String(n.from).toLowerCase()!==String(e.fromAddress).toLowerCase())throw new Error("lifi: transaction sender mismatch");let a=null;if(!Ht(e.fromToken)){let i=r?.estimate?.approvalAddress||r?.approvalAddress;if(!i)throw new Error("lifi: ERC20 route missing approvalAddress");let c=r?.action?.fromToken?.address||r?.estimate?.fromToken?.address||e.fromToken;a={token:ke(c,"approval token"),spender:ke(i,"approval spender"),amount:String(e.fromAmount)}}return A({provider:"lifi",calldataReady:!0,requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,chainId:o,quote:r,autoSlippage:r.autoSlippage,requiresApproval:a,transaction:{chainId:o,from:n.from||e.fromAddress,to:n.to,data:n.data,value:n.value??"0x0",...n.gasLimit!=null?{gasLimit:n.gasLimit}:{},slippageGuard:B(r.autoSlippage,{chainId:o,venue:n.to,data:n.data})}},{provider:"lifi",kind:"lifi-tx"})}async function zt(e={}){return E(`${Q(e)}/chains`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??12e3})}var Oe,Y,qt,W=S(()=>{I();k();L();C();D();Oe="https://li.quest/v1";Y="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",qt="0x0000000000000000000000000000000000000000"});var M={};re(M,{ACROSS_API:()=>$e,HOP_API:()=>Pe,RELAY_API:()=>Ue,acrossHealth:()=>nr,acrossSuggestedFees:()=>Le,hopHealth:()=>or,hopQuote:()=>De,relayHealth:()=>ar,relayPrepare:()=>ir,relayQuote:()=>Z});async function nr(e={}){try{return{ok:!0,estimatedFillTimeSec:(await Le({token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",destinationToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",originChainId:1,destinationChainId:42161,amount:"1000000000000000"},e)).estimatedFillTimeSec}}catch(t){return{ok:!1,error:String(t.message||t).slice(0,160)}}}async function Le(e={},t={}){let{token:r,destinationToken:n=r,originChainId:o,destinationChainId:a,amount:i}=e;if(!r||o==null||a==null||!i)throw new Error("acrossSuggestedFees requires token, originChainId, destinationChainId, amount");let c=new URLSearchParams({token:r,destinationToken:n,originChainId:String(o),destinationChainId:String(a),amount:String(i)}),s=(t.baseUrl||process.env.ACROSS_API_URL||$e).replace(/\/$/,"");return E(`${s}/suggested-fees?${c}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3})}async function or(e={}){try{let t=await De({amount:"1000000000000000",token:"ETH",fromChain:"ethereum",toChain:"arbitrum",slippage:.5},e);return{ok:!0,estimatedRecieved:t.estimatedRecieved||t.estimatedReceived}}catch(t){return{ok:!1,error:String(t.message||t).slice(0,160)}}}async function De(e={},t={}){let{amount:r,token:n="ETH",fromChain:o="ethereum",toChain:a="arbitrum"}=e;if(!r)throw new Error("hopQuote requires amount");let i=e.slippage==null?void 0:Math.round(Number(e.slippage)*100),c=T({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:o!==a,requestedCapBps:e.maxSlippageBps??e.slippageBps??i});if(!c.executable)throw new Error(`hop: route requires ${c.requiredBps} bps above cap ${c.capBps}`);let s=new URLSearchParams({amount:String(r),token:n,fromChain:o,toChain:a,slippage:String(c.selectedBps/100)}),l=(t.baseUrl||process.env.HOP_API_URL||Pe).replace(/\/$/,""),d=await E(`${l}/quote?${s}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??15e3}),u=d?.estimatedRecieved||d?.estimatedReceived;return u?x(d,{chainId:Number(e.originChainId||e.chainId||rr[o]||0),venue:d?.tx?.to||"hop",amountOut:u,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:o!==a,requestedCapBps:e.maxSlippageBps??e.slippageBps??i}):{...d,autoSlippagePolicy:c}}async function ar(e={}){try{let t=await Z({user:P,originChainId:1,destinationChainId:8453,originCurrency:"0x0000000000000000000000000000000000000000",destinationCurrency:"0x0000000000000000000000000000000000000000",amount:"1000000000000000",tradeType:"EXACT_INPUT"},e);return{ok:!0,hasSteps:Array.isArray(t.steps),stepCount:t.steps?.length||0}}catch(t){return{ok:!1,error:String(t.message||t).slice(0,160)}}}async function Z(e={},t={}){let{user:r=P,originChainId:n,destinationChainId:o,originCurrency:a="0x0000000000000000000000000000000000000000",destinationCurrency:i="0x0000000000000000000000000000000000000000",amount:c,tradeType:s="EXACT_INPUT"}=e;if(n==null||o==null||!c)throw new Error("relayQuote requires originChainId, destinationChainId, amount");let l=T({liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(o),requestedCapBps:e.maxSlippageBps??e.slippageBps});if(!l.executable)throw new Error(`relay: route requires ${l.requiredBps} bps above cap ${l.capBps}`);let d=(t.baseUrl||process.env.RELAY_API_URL||Ue).replace(/\/$/,""),u=await E(`${d}/quote`,{method:"POST",body:{user:r,originChainId:Number(n),destinationChainId:Number(o),originCurrency:a,destinationCurrency:i,amount:String(c),tradeType:s,slippageTolerance:String(l.selectedBps)},fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??2e4}),p=u?.details?.currencyOut?.amount;return!p||!/^\d+$/.test(String(p))?{...u,autoSlippagePolicy:l}:x(u,{chainId:Number(n),venue:u?.steps?.[0]?.items?.[0]?.data?.to||"relay",amountOut:p,liquidityUsd:e.liquidityUsd,priceChange5m:e.priceChange5m,crossChain:Number(n)!==Number(o),requestedCapBps:e.maxSlippageBps??e.slippageBps})}async function ir(e={},t={}){let r=await Z(e,t),n=Number(e.originChainId),o=(r.steps||[]).flatMap(c=>(c.items||[]).filter(s=>s?.data?.to&&s?.data?.data).map(s=>({stepId:c.id,...s.data})));if(!o.length)throw new Error("relay: quote returned no executable transaction items");let a=String(r?.autoSlippage?.venue||"").toLowerCase();if(o.some(c=>String(c.to).toLowerCase()!==a))throw new Error("relay: route includes a separate approval/transaction that is not yet safely bound");let i=o.map(c=>({chainId:n,from:c.from||e.user,to:c.to,data:c.data,value:c.value??"0x0",...c.gasLimit!=null||c.gas!=null?{gasLimit:c.gasLimit??c.gas}:{},slippageGuard:B(r.autoSlippage,{chainId:n,venue:c.to,data:c.data})}));return A({provider:"relay",calldataReady:!0,requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,chainId:n,quote:r,autoSlippage:r.autoSlippage,transactions:i},{provider:"relay",kind:"relay-tx"})}var $e,Pe,Ue,rr,q=S(()=>{I();k();L();C();$e="https://across.to/api",Pe="https://api.hop.exchange/v1",Ue="https://api.relay.link",rr={ethereum:1,optimism:10,bsc:56,polygon:137,arbitrum:42161,avalanche:43114,base:8453}});var br=Object.freeze(["blockNumber","nativeBalance","tokenBalance","resolveToken","resolvePools","scanBlocks","scoreRisk","quote","sellSimulation","prepareUnsignedTx"]),Er=Object.freeze({LIVE:"LIVE",CACHED:"CACHED",STALE:"STALE",UNKNOWN:"UNKNOWN",UNAVAILABLE:"UNAVAILABLE"}),yr=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"});var R=Object.freeze({FULL:"FULL",NO_GAS:"NO_GAS",FAILED:"FAILED"});var ne=e=>{try{return e==null||e===""?null:BigInt(String(e).split(".")[0])}catch{return null}};function oe(e){let{source:t,amountOut:r,minOut:n=null,gasUsd:o=null,feeUsd:a=null,oracleFeeBps:i=0,estimatedGas:c=null,liquidityUsd:s=null,error:l=null,executionReady:d=!1,meta:u={}}=e||{};if(l||r==null)return{source:t,quality:R.FAILED,amountOut:null,error:l||"no amountOut returned"};let p=ne(r);if(p==null||p<=0n)return{source:t,quality:R.FAILED,amountOut:null,error:"non-positive amountOut"};let m=Number(i);return{source:t,quality:o==null?R.NO_GAS:R.FULL,amountOut:p.toString(),minOut:ne(n)?.toString()??null,gasUsd:o,feeUsd:a,oracleFeeBps:Number.isFinite(m)&&m>0?Math.floor(m):0,estimatedGas:c==null?null:String(c),liquidityUsd:s==null?null:Number(s),executionReady:d,meta:u}}function ae(e,{destPriceUsd:t=null,destDecimals:r=null,liquidityFirst:n=!0,liquidityBandBps:o=50}={}){let a=e.filter(h=>h.quality!==R.FAILED),i=e.filter(h=>h.quality===R.FAILED),c=t!=null&&t>0&&r!=null&&r>=0,s=a.map(h=>{let g=BigInt(h.amountOut),y=0n,v=!1,O=BigInt(h.oracleFeeBps??0),_=O>0n?g*O/10000n:0n;if(c){let te=(h.gasUsd??0)+(h.feeUsd??0);if(te>0){let V=te/t*10**r;Number.isFinite(V)&&V>=0&&(y=BigInt(Math.floor(V)),v=!0)}else h.gasUsd===0&&(v=!0)}let ee=y+_,Ve=g>ee?g-ee:0n;return{...h,grossOut:g.toString(),netOut:Ve.toString(),costInDest:y.toString(),oracleFeeInDest:_.toString(),costAccounted:v}}),l=Number(o)>0?Number(o):0,d=s.reduce((h,g)=>BigInt(g.netOut)>h?BigInt(g.netOut):h,0n),u=h=>d>0n?Number((d-BigInt(h))*10000n/d):0,p=[],m=s.slice().sort((h,g)=>BigInt(g.netOut)>BigInt(h.netOut)?1:-1)[0]??null;s.sort((h,g)=>{let y=u(h.netOut)<=l?0:1,v=u(g.netOut)<=l?0:1;if(n&&l>0&&y!==v)return y-v;if(n&&l>0){let O=h.liquidityUsd??-1,_=g.liquidityUsd??-1;if(O!==_)return _-O}return BigInt(g.netOut)>BigInt(h.netOut)?1:-1}),n&&l>0&&m&&s[0]&&s[0].source!==m.source&&p.push(`liquidity-first: chose ${s[0].source} (liquidity $${s[0].liquidityUsd??"unknown"}) over best-price ${m.source} within ${l} bps`);let w=s.filter(h=>!h.costAccounted).map(h=>h.source);c?w.length&&p.push(`gas not reported by: ${w.join(", ")}. These are ranked on gross output and may be overstated relative to gas-measured routes.`):p.push("destination price/decimals unavailable: ranked on GROSS output. Gas is not included, so a cheap-looking route may cost more to execute.");let b=null,f=null;if(s.length>=2&&s[0].costAccounted&&s[1].costAccounted){let h=BigInt(s[0].netOut),g=BigInt(s[1].netOut);g>0n&&(b=Number((h-g)*10000n/g),f=`${s[0].source} vs ${s[1].source}`)}return{best:s[0]??null,routes:s,failed:i,improvementBps:b,spreadBasis:f,rankedOn:c?"net-of-cost":"gross",warnings:p}}async function ie(e,{timeoutMs:t=12e3}={}){let r=(o,a)=>Promise.race([o,new Promise((i,c)=>setTimeout(()=>c(new Error(`${a}: timeout`)),t))]);return(await Promise.allSettled(e.map(o=>r(Promise.resolve().then(o.run),o.source)))).map((o,a)=>{let i=e[a].source;return o.status==="rejected"?oe({source:i,error:String(o.reason?.message||o.reason)}):oe({source:i,...o.value})})}W();I();k();C();D();I();k();C();I();k();C();I();k();import{TypedDataEncoder as Cn,getAddress as vn,isAddress as kn}from"ethers";var yn=Object.freeze({READ:"read",PREPARE:"prepare",EXECUTE:"execute",AUTONOMOUS:"autonomous"});L();C();var $n=Object.freeze({1:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",100:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",42161:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",8453:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41"}),Pn=Object.freeze({1:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",100:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",42161:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",8453:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"});var Un=Object.freeze({Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}),Ln=Object.freeze({OrderCancellations:[{name:"orderUids",type:"bytes[]"}]});import{Interface as Be,getAddress as eo,isAddress as to}from"ethers";I();var Re={robinhood:{chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC"],evm:!0},ethereum:{chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],evm:!0},polygon:{chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],evm:!0},arbitrum:{chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],evm:!0},base:{chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],evm:!0},hyperevm:{chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],evm:!0},bsc:{chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],evm:!0},avalanche:{chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],evm:!0},optimism:{chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],evm:!0},abstract:{chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],evm:!0},stable:{chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],evm:!0}},Fn=new Map(Object.values(Re).map(e=>[e.chainId,e]));import{Interface as Kt,getAddress as Xn}from"ethers";var Kn=new Kt(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);I();var Wn=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"});k();C();var io=new Be(["function quoteExactInputSingle((address tokenIn, address tokenOut, uint256 amountIn, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)","function quoteExactInput(bytes path, uint256 amountIn) returns (uint256 amountOut, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)"]),so=new Be(["function exactInputSingle((address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)","function multicall(uint256 deadline,bytes[] data) payable returns (bytes[] results)"]);import{AbiCoder as Wt,Interface as Te,getAddress as lo,isAddress as po,keccak256 as mo}from"ethers";k();C();var bo=Wt.defaultAbiCoder();var Eo=new Te(["function quoteExactInputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut, uint256 gasEstimate)"]),yo=new Te(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]);I();var Jt="https://coins.llama.fi",Zt="https://api.llama.fi";function er(e={}){return(e.baseUrl||process.env.DEFILLAMA_COINS_URL||Jt).replace(/\/$/,"")}function tr(e={}){return(e.baseUrl||process.env.DEFILLAMA_API_URL||Zt).replace(/\/$/,"")}async function J(e,t={}){if(!Array.isArray(e)||!e.length)throw new Error("llamaPrices requires coins[]");let r=e.map(encodeURIComponent).join(",");return E(`${er(t)}/prices/current/${r}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs})}async function Ne(e={}){return E(`${tr(e)}/protocols`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??2e4})}var $=e=>{let t=Number(e);return Number.isFinite(t)?t:null};function Fe(e){if(!Array.isArray(e))return null;let t=0,r=!1;for(let n of e){let o=$(n?.amountUSD);o!=null&&(t+=o,r=!0)}return r?t:null}var N=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]/g,""),Me=Object.freeze({across:["across"],relay:["relaychain","relay"],lifi:["jumper-(li.fi-powered)","lifi"],stargate:["stargate-v2","stargate-v1","stargate"],hop:["hop-protocol","hop"],debridge:["debridge"],synapse:["synapse"],connext:["connext"],cbridge:["celer-bridge","celer-cbridge","cbridge"],celer:["celer-bridge","celer-cbridge","cbridge"],squid:["squid"],symbiosis:["symbiosis"],wormhole:["wormhole"],mayan:["mayan"],allbridge:["allbridge"],thorchain:["thorchain"]});async function sr(e={}){try{let t=await Ne({...e,baseUrl:e.defillamaApiBaseUrl,timeoutMs:e.defillamaTimeoutMs??Math.min(Number(e.timeoutMs??5e3),5e3)});return Array.isArray(t)?t:[]}catch{return[]}}function cr(e,t={}){let r=N(t.tool||t.provider||t.bridge||t.protocol),n=[];return e==="lifi"&&r&&r!=="lifi"&&n.push(...Me[r]||[r]),n.push(...Me[N(e)]||[e]),n}function ur(e,t,r={}){let n=Array.isArray(e)?e:[],o=cr(t,r).map(N).filter(Boolean);for(let a of o){let i=n.find(s=>N(s?.slug)===a||N(s?.name)===a),c=$(i?.tvl);if(c!=null)return{liquidityUsd:c,protocol:i?.name??i?.slug??a}}for(let a of o){let i=n.find(s=>{let l=N(s?.category);return!l.includes("bridge")&&!l.includes("crosschain")?!1:N(s?.slug).includes(a)||N(s?.name).includes(a)}),c=$(i?.tvl);if(c!=null)return{liquidityUsd:c,protocol:i?.name??i?.slug??a}}return null}function qe({fromChainId:e,toChainId:t,tokenIn:r,tokenOut:n,amountIn:o,taker:a,opts:i={}}){let c=[],s=null,l=async(d,u={})=>(s||=sr(i),ur(await s,d,u));return c.push({source:"lifi",run:async()=>{let d=await F({fromChain:e,toChain:t,fromToken:r,toToken:n,fromAmount:o},i),u=d?.estimate??d?.[0]?.estimate,p={tool:d?.tool??d?.toolDetails?.name,durationSeconds:$(u?.executionDuration)},m=await l("lifi",p);return{amountOut:u?.toAmount,minOut:u?.toAmountMin,gasUsd:Fe(u?.gasCosts),feeUsd:Fe(u?.feeCosts),oracleFeeBps:d?.oracleFee?.applies?d.oracleFee.bps:0,liquidityUsd:m?.liquidityUsd??null,meta:{...p,liquidityProtocol:m?.protocol,oracleFee:d?.oracleFee??null}}}}),c.push({source:"relay",run:async()=>{let{relayQuote:d}=await Promise.resolve().then(()=>(q(),M)),p=(await d({user:a,originChainId:e,destinationChainId:t,originCurrency:r,destinationCurrency:n,amount:String(o)},i))?.details,m={durationSeconds:$(p?.timeEstimate),rate:p?.rate},w=await l("relay",m);return{amountOut:p?.currencyOut?.amount,minOut:p?.currencyOut?.minimumAmount,gasUsd:$(p?.totalImpact?.usd)!=null?Math.abs($(p.totalImpact.usd)):null,liquidityUsd:w?.liquidityUsd??null,meta:{...m,liquidityProtocol:w?.protocol}}}}),c.push({source:"across",run:async()=>{let{acrossSuggestedFees:d}=await Promise.resolve().then(()=>(q(),M)),u=await d({token:r,destinationToken:n,originChainId:e,destinationChainId:t,amount:String(o)},i),p=u?.totalRelayFee?.total,m=null;if(p!=null)try{let b=BigInt(String(o))-BigInt(String(p));b>0n&&(m=b.toString())}catch{}let w=await l("across");return{amountOut:m,gasUsd:null,liquidityUsd:w?.liquidityUsd??null,meta:{derivedFromFees:!0,durationSeconds:$(u?.estimatedFillTimeSec),limits:u?.limits?{min:u.limits.minDeposit,max:u.limits.maxDeposit}:void 0,liquidityProtocol:w?.protocol}}}}),c}D();var lr={1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avax"};async function dr(e,t,r){let n=lr[Number(e)];if(!n)return{priceUsd:null,decimals:null};let o=`${n}:${t}`;try{let i=(await J([o],r))?.coins?.[o],c=Number(i?.price),s=Number(i?.decimals);return{priceUsd:Number.isFinite(c)?c:null,decimals:Number.isFinite(s)?s:null}}catch{return{priceUsd:null,decimals:null}}}async function He(e,t={}){let{fromChainId:r,toChainId:n,tokenIn:o,tokenOut:a,amountIn:i}=e;if(r==null||n==null||!o||!a||i==null)throw new Error("bestBridgeRoute requires fromChainId, toChainId, tokenIn, tokenOut, amountIn");if(Number(r)===Number(n))throw new Error("bestBridgeRoute is for cross-chain; use bestSwapRoute for same-chain");let c=dr(n,a,t),s=qe({...e,opts:t}),[l,d]=await Promise.all([ie(s,{timeoutMs:t.timeoutMs??15e3}),c]),u=ae(l,{destPriceUsd:d.priceUsd,destDecimals:e.decimalsOut??d.decimals,liquidityBandBps:t.liquidityBandBps??50}),p=u.routes.map(m=>({source:m.source,seconds:m.meta?.durationSeconds??null})).filter(m=>m.seconds!=null);return{kind:"bridge",fromChainId:r,toChainId:n,tokenIn:o,tokenOut:a,amountIn:String(i),...u,durations:p,sourcesTried:s.length,sourcesAnswered:l.filter(m=>m.quality!==R.FAILED).length,note:mr(u,s.length)}}function pr(e){let t=e?.meta?.oracleFee;return t?.applies?` \xB7 ${Ce(t)}`:""}function mr(e,t){if(!e.best)return"no source returned a usable route";let r=e.routes.length,n=pr(e.best);if(r===1)return`only 1 of ${t} sources answered, so this is the ONLY route, not a proven best one. Treat it as unbenchmarked.`+n;if(e.improvementBps!=null){let o=e.improvementBps,a=o/100;if(o<.01)return`best of ${r} routes, ranked on ${e.rankedOn}: effectively tied with the runner-up (${e.spreadBasis}), inside quote noise. Re-quote before you size up.`+n;let i=a>=.01?`${a.toFixed(2)}%`:`${o.toFixed(2)}bps`;return`best of ${r} routes, ranked on ${e.rankedOn}: ${i} better than the runner-up (${e.spreadBasis})`+n}return`best of ${r} routes, ranked on ${e.rankedOn}. No spread quoted: the top routes report cost differently, so the margin is not comparable.`+n}C();var fr=/^0x[0-9a-fA-F]{40}$/,hr=new Set(["0x0000000000000000000000000000000000000000","0x000000000000000000000000000000000000dead","0x0000000000000000000000000000000000000001","0x00000000000000000000000000000000000a1ce5"].map(e=>e.toLowerCase())),wr=100,H={relay:async({fromChainId:e,toChainId:t,tokenIn:r,tokenOut:n,amountIn:o,taker:a},i)=>{let{relayPrepare:c}=await Promise.resolve().then(()=>(q(),M)),s=await c({user:a,originChainId:e,destinationChainId:t,originCurrency:r,destinationCurrency:n,amount:String(o)},i);return{transactions:s.transactions||[],amountOut:s.quote?.details?.currencyOut?.amount??null,minOut:s.quote?.details?.currencyOut?.minimumAmount??null,durationSeconds:s.quote?.details?.timeEstimate??null}},lifi:async({fromChainId:e,toChainId:t,tokenIn:r,tokenOut:n,amountIn:o,taker:a,isHolder:i},c)=>{let{lifiPrepare:s}=await Promise.resolve().then(()=>(W(),_e)),l=await s({fromChain:e,toChain:t,fromToken:r,toToken:n,fromAmount:o,fromAddress:a,isHolder:i,feeAction:"bridge"},c);return{transactions:l.transaction?[l.transaction]:[],requiresApproval:l.requiresApproval??null,amountOut:l.quote?.estimate?.toAmount??null,minOut:l.quote?.estimate?.toAmountMin??null,durationSeconds:l.quote?.estimate?.executionDuration??null}}};function aa(){return Object.keys(H)}async function ia(e,t={}){let{taker:r,fromChainId:n,toChainId:o}=e;if(!r)throw new Error("prepareBestBridgeRoute requires taker: bridge transactions are built FOR an address, and the quote-only placeholder must never end up in one");if(!fr.test(r))throw new Error(`taker must be a valid 20-byte address, got "${r}"`);if(hr.has(r.toLowerCase()))throw new Error(`taker "${r}" is a placeholder/burn address. Bridging to it would send funds to an address nobody controls, on a chain where you cannot undo it.`);let a=await He(e,t);if(!a.best)return{ok:!1,reason:"no source returned a usable bridge route",comparison:a};let i=e.source||a.best.source,c=a.routes.find(f=>f.source===i);if(!c)return{ok:!1,reason:`source "${i}" returned no usable route`,comparison:a};let s=H[i];if(!s){let f=a.routes.find(h=>H[h.source]&&h.source!==i);return{ok:!1,reason:`${i} won the comparison but has no bridge prepare path in this build. `+(f?`Next preparable route is ${f.source}; pass source:"${f.source}".`:"No route in this comparison can be prepared."),failureKind:"no-prepare-path",...f?{alternative:f.source}:{},winner:i,comparison:a}}let l;try{l=await s(e,t)}catch(f){let h=typeof f?.body=="string"?f.body:f?.body?JSON.stringify(f.body):"",g=[String(f?.message||f),h].filter(Boolean).join(" :: "),y=/allowance/i.test(g),v=!y&&/not enough|insufficient|balance/i.test(g),O=a.routes.find(_=>H[_.source]&&_.source!==i);return{ok:!1,reason:y?`${i} will not build calldata until the token approval exists on-chain. Approve first, then prepare again. Underlying: ${g}`:v?`${i} refused to build: ${g}. Quoting works for any address; preparing needs the real funded wallet on chain ${n}.`:`${i} bridge prepare failed: ${g}`,failureKind:y?"approval-required-first":v?"taker-not-funded":"provider-error",...O?{alternative:O.source}:{},comparison:a}}let d=l.transactions||[];if(!d.length)return{ok:!1,reason:`${i} returned no executable transaction for this route`,failureKind:"provider-error",comparison:a};let u=d.filter(f=>f.chainId!=null&&Number(f.chainId)!==Number(n));if(u.length)return{ok:!1,reason:`${i} returned a transaction for chain ${u[0].chainId} but the origin chain is ${n}. Refusing to hand over a mismatched artifact.`,failureKind:"chain-mismatch",comparison:a};let p=e.driftToleranceBps??wr,m=null,w=null;if(l.amountOut!=null&&c.grossOut!=null)try{let f=BigInt(c.grossOut),h=BigInt(l.amountOut);f>0n&&(m=Number((h-f)*10000n/f),m<-p&&(w=`route moved ${(m/100).toFixed(2)}% against you since the comparison (tolerance ${(p/100).toFixed(2)}%). Re-compare before signing.`))}catch{}let b=[...w?[w]:[],...a.warnings||[],`Bridging is NOT atomic: the origin transaction succeeding does not mean funds arrived on chain ${o}. Expect ~${l.durationSeconds!=null?`${l.durationSeconds}s`:"minutes"} before the destination credits, and do not re-send if it is pending.`];return d.length>1&&b.push(`This route needs ${d.length} transactions signed IN ORDER. Signing only the first leaves funds approved but not bridged.`),A({ok:!0,chosen:{source:i,wasWinner:i===a.best.source,netOut:c.netOut,grossOut:c.grossOut,gasUsd:c.gasUsd},artifactKind:"unsigned-transaction-sequence",fromChainId:Number(n),toChainId:Number(o),transactionCount:d.length,transactions:d,requiresApproval:l.requiresApproval??null,minOut:l.minOut??null,durationSeconds:l.durationSeconds??null,destination:d[0]?.to??null,unsigned:!0,signedBy:"user-wallet",driftBps:m,warnings:b,runnersUp:a.routes.filter(f=>f.source!==i).map(f=>({source:f.source,netOut:f.netOut,gasUsd:f.gasUsd})),comparison:{rankedOn:a.rankedOn,sourcesAnswered:a.sourcesAnswered,sourcesTried:a.sourcesTried,improvementBps:a.improvementBps},note:`UNSIGNED. ${d.length} transaction(s) on chain ${n}, crediting chain ${o}. Verify every destination address before signing.`},{provider:"router",kind:"best-bridge"})}export{ia as prepareBestBridgeRoute,aa as supportedBridgePreparers};
|
|
1
|
+
var Ld=Object.create;var Uo=Object.defineProperty;var Td=Object.getOwnPropertyDescriptor;var xd=Object.getOwnPropertyNames;var Yd=Object.getPrototypeOf,Gd=Object.prototype.hasOwnProperty;var d=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')});var qe=(A,e,t)=>()=>{if(t)throw t[0];try{return A&&(e=A(A=0)),e}catch(r){throw t=[r],r}};var f=(A,e)=>()=>{try{return e||A((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},Cg=(A,e)=>{for(var t in e)Uo(A,t,{get:e[t],enumerable:!0})},Jd=(A,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of xd(e))!Gd.call(A,n)&&n!==t&&Uo(A,n,{get:()=>e[n],enumerable:!(r=Td(e,n))||r.enumerable});return A};var vd=(A,e,t)=>(t=A!=null?Ld(Yd(A)):{},Jd(e||!A||!A.__esModule?Uo(t,"default",{value:A,enumerable:!0}):t,A));var $=f((UM,wg)=>{wg.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var v=f((MM,_g)=>{"use strict";var mg=Symbol.for("undici.error.UND_ERR"),j=class extends Error{constructor(e){super(e),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](e){return e&&e[mg]===!0}[mg]=!0},yg=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),Mo=class extends j{constructor(e){super(e),this.name="ConnectTimeoutError",this.message=e||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[yg]===!0}[yg]=!0},Dg=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),Lo=class extends j{constructor(e){super(e),this.name="HeadersTimeoutError",this.message=e||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[Dg]===!0}[Dg]=!0},bg=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),To=class extends j{constructor(e){super(e),this.name="HeadersOverflowError",this.message=e||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](e){return e&&e[bg]===!0}[bg]=!0},kg=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),xo=class extends j{constructor(e){super(e),this.name="BodyTimeoutError",this.message=e||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[kg]===!0}[kg]=!0},Rg=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),Yo=class extends j{constructor(e,t,r,n){super(e),this.name="ResponseStatusCodeError",this.message=e||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=n,this.status=t,this.statusCode=t,this.headers=r}static[Symbol.hasInstance](e){return e&&e[Rg]===!0}[Rg]=!0},Fg=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),Go=class extends j{constructor(e){super(e),this.name="InvalidArgumentError",this.message=e||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](e){return e&&e[Fg]===!0}[Fg]=!0},Sg=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),Jo=class extends j{constructor(e){super(e),this.name="InvalidReturnValueError",this.message=e||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](e){return e&&e[Sg]===!0}[Sg]=!0},Ng=Symbol.for("undici.error.UND_ERR_ABORT"),bn=class extends j{constructor(e){super(e),this.name="AbortError",this.message=e||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](e){return e&&e[Ng]===!0}[Ng]=!0},Ug=Symbol.for("undici.error.UND_ERR_ABORTED"),vo=class extends bn{constructor(e){super(e),this.name="AbortError",this.message=e||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](e){return e&&e[Ug]===!0}[Ug]=!0},Mg=Symbol.for("undici.error.UND_ERR_INFO"),Ho=class extends j{constructor(e){super(e),this.name="InformationalError",this.message=e||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](e){return e&&e[Mg]===!0}[Mg]=!0},Lg=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),Vo=class extends j{constructor(e){super(e),this.name="RequestContentLengthMismatchError",this.message=e||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](e){return e&&e[Lg]===!0}[Lg]=!0},Tg=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),qo=class extends j{constructor(e){super(e),this.name="ResponseContentLengthMismatchError",this.message=e||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](e){return e&&e[Tg]===!0}[Tg]=!0},xg=Symbol.for("undici.error.UND_ERR_DESTROYED"),Oo=class extends j{constructor(e){super(e),this.name="ClientDestroyedError",this.message=e||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](e){return e&&e[xg]===!0}[xg]=!0},Yg=Symbol.for("undici.error.UND_ERR_CLOSED"),Wo=class extends j{constructor(e){super(e),this.name="ClientClosedError",this.message=e||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](e){return e&&e[Yg]===!0}[Yg]=!0},Gg=Symbol.for("undici.error.UND_ERR_SOCKET"),Po=class extends j{constructor(e,t){super(e),this.name="SocketError",this.message=e||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}static[Symbol.hasInstance](e){return e&&e[Gg]===!0}[Gg]=!0},Jg=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),_o=class extends j{constructor(e){super(e),this.name="NotSupportedError",this.message=e||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](e){return e&&e[Jg]===!0}[Jg]=!0},vg=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),Zo=class extends j{constructor(e){super(e),this.name="MissingUpstreamError",this.message=e||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](e){return e&&e[vg]===!0}[vg]=!0},Hg=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),zo=class extends Error{constructor(e,t,r){super(e),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}static[Symbol.hasInstance](e){return e&&e[Hg]===!0}[Hg]=!0},Vg=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),Ko=class extends j{constructor(e){super(e),this.name="ResponseExceededMaxSizeError",this.message=e||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](e){return e&&e[Vg]===!0}[Vg]=!0},qg=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),Xo=class extends j{constructor(e,t,{headers:r,data:n}){super(e),this.name="RequestRetryError",this.message=e||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](e){return e&&e[qg]===!0}[qg]=!0},Og=Symbol.for("undici.error.UND_ERR_RESPONSE"),$o=class extends j{constructor(e,t,{headers:r,data:n}){super(e),this.name="ResponseError",this.message=e||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](e){return e&&e[Og]===!0}[Og]=!0},Wg=Symbol.for("undici.error.UND_ERR_PRX_TLS"),jo=class extends j{constructor(e,t,r){super(t,{cause:e,...r??{}}),this.name="SecureProxyConnectionError",this.message=t||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=e}static[Symbol.hasInstance](e){return e&&e[Wg]===!0}[Wg]=!0},Pg=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),ei=class extends j{constructor(e){super(e),this.name="MessageSizeExceededError",this.message=e||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](e){return e&&e[Pg]===!0}get[Pg](){return!0}};_g.exports={AbortError:bn,HTTPParserError:zo,UndiciError:j,HeadersTimeoutError:Lo,HeadersOverflowError:To,BodyTimeoutError:xo,RequestContentLengthMismatchError:Vo,ConnectTimeoutError:Mo,ResponseStatusCodeError:Yo,InvalidArgumentError:Go,InvalidReturnValueError:Jo,RequestAbortedError:vo,ClientDestroyedError:Oo,ClientClosedError:Wo,InformationalError:Ho,SocketError:Po,NotSupportedError:_o,ResponseContentLengthMismatchError:qo,BalancedPoolMissingUpstreamError:Zo,ResponseExceededMaxSizeError:Ko,RequestRetryError:Xo,ResponseError:$o,SecureProxyConnectionError:jo,MessageSizeExceededError:ei}});var Rn=f((LM,Zg)=>{"use strict";var kn={},Ai=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let A=0;A<Ai.length;++A){let e=Ai[A],t=e.toLowerCase();kn[e]=kn[t]=t}Object.setPrototypeOf(kn,null);Zg.exports={wellknownHeaderNames:Ai,headerNameLowerCasedRecord:kn}});var $g=f((TM,Xg)=>{"use strict";var{wellknownHeaderNames:zg,headerNameLowerCasedRecord:Hd}=Rn(),ti=class A{value=null;left=null;middle=null;right=null;code;constructor(e,t,r){if(r===void 0||r>=e.length)throw new TypeError("Unreachable");if((this.code=e.charCodeAt(r))>127)throw new TypeError("key must be ascii string");e.length!==++r?this.middle=new A(e,t,r):this.value=t}add(e,t){let r=e.length;if(r===0)throw new TypeError("Unreachable");let n=0,s=this;for(;;){let o=e.charCodeAt(n);if(o>127)throw new TypeError("key must be ascii string");if(s.code===o)if(r===++n){s.value=t;break}else if(s.middle!==null)s=s.middle;else{s.middle=new A(e,t,n);break}else if(s.code<o)if(s.left!==null)s=s.left;else{s.left=new A(e,t,n);break}else if(s.right!==null)s=s.right;else{s.right=new A(e,t,n);break}}}search(e){let t=e.length,r=0,n=this;for(;n!==null&&r<t;){let s=e[r];for(s<=90&&s>=65&&(s|=32);n!==null;){if(s===n.code){if(t===++r)return n;n=n.middle;break}n=n.code<s?n.left:n.right}}return null}},Fn=class{node=null;insert(e,t){this.node===null?this.node=new ti(e,t,0):this.node.add(e,t)}lookup(e){return this.node?.search(e)?.value??null}},Kg=new Fn;for(let A=0;A<zg.length;++A){let e=Hd[zg[A]];Kg.insert(e,e)}Xg.exports={TernarySearchTree:Fn,tree:Kg}});var T=f((xM,Qu)=>{"use strict";var yr=d("node:assert"),{kDestroyed:eu,kBodyUsed:bt,kListeners:ri,kBody:jg}=$(),{IncomingMessage:Vd}=d("node:http"),Un=d("node:stream"),qd=d("node:net"),{Blob:Od}=d("node:buffer"),Wd=d("node:util"),{stringify:Pd}=d("node:querystring"),{EventEmitter:_d}=d("node:events"),{InvalidArgumentError:ae}=v(),{headerNameLowerCasedRecord:Zd}=Rn(),{tree:Au}=$g(),[zd,Kd]=process.versions.node.split(".").map(A=>Number(A)),Nn=class{constructor(e){this[jg]=e,this[bt]=!1}async*[Symbol.asyncIterator](){yr(!this[bt],"disturbed"),this[bt]=!0,yield*this[jg]}};function Xd(A){return Mn(A)?(ou(A)===0&&A.on("data",function(){yr(!1)}),typeof A.readableDidRead!="boolean"&&(A[bt]=!1,_d.prototype.on.call(A,"data",function(){this[bt]=!0})),A):A&&typeof A.pipeTo=="function"?new Nn(A):A&&typeof A!="string"&&!ArrayBuffer.isView(A)&&su(A)?new Nn(A):A}function $d(){}function Mn(A){return A&&typeof A=="object"&&typeof A.pipe=="function"&&typeof A.on=="function"}function tu(A){if(A===null)return!1;if(A instanceof Od)return!0;if(typeof A!="object")return!1;{let e=A[Symbol.toStringTag];return(e==="Blob"||e==="File")&&("stream"in A&&typeof A.stream=="function"||"arrayBuffer"in A&&typeof A.arrayBuffer=="function")}}function jd(A,e){if(A.includes("?")||A.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=Pd(e);return t&&(A+="?"+t),A}function ru(A){let e=parseInt(A,10);return e===Number(A)&&e>=0&&e<=65535}function Sn(A){return A!=null&&A[0]==="h"&&A[1]==="t"&&A[2]==="t"&&A[3]==="p"&&(A[4]===":"||A[4]==="s"&&A[5]===":")}function nu(A){if(typeof A=="string"){if(A=new URL(A),!Sn(A.origin||A.protocol))throw new ae("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}if(!A||typeof A!="object")throw new ae("Invalid URL: The URL argument must be a non-null object.");if(!(A instanceof URL)){if(A.port!=null&&A.port!==""&&ru(A.port)===!1)throw new ae("Invalid URL: port must be a valid integer or a string representation of an integer.");if(A.path!=null&&typeof A.path!="string")throw new ae("Invalid URL path: the path must be a string or null/undefined.");if(A.pathname!=null&&typeof A.pathname!="string")throw new ae("Invalid URL pathname: the pathname must be a string or null/undefined.");if(A.hostname!=null&&typeof A.hostname!="string")throw new ae("Invalid URL hostname: the hostname must be a string or null/undefined.");if(A.origin!=null&&typeof A.origin!="string")throw new ae("Invalid URL origin: the origin must be a string or null/undefined.");if(!Sn(A.origin||A.protocol))throw new ae("Invalid URL protocol: the URL must start with `http:` or `https:`.");let e=A.port!=null?A.port:A.protocol==="https:"?443:80,t=A.origin!=null?A.origin:`${A.protocol||""}//${A.hostname||""}:${e}`,r=A.path!=null?A.path:`${A.pathname||""}${A.search||""}`;return t[t.length-1]==="/"&&(t=t.slice(0,t.length-1)),r&&r[0]!=="/"&&(r=`/${r}`),new URL(`${t}${r}`)}if(!Sn(A.origin||A.protocol))throw new ae("Invalid URL protocol: the URL must start with `http:` or `https:`.");return A}function ef(A){if(A=nu(A),A.pathname!=="/"||A.search||A.hash)throw new ae("invalid url");return A}function Af(A){if(A[0]==="["){let t=A.indexOf("]");return yr(t!==-1),A.substring(1,t)}let e=A.indexOf(":");return e===-1?A:A.substring(0,e)}function tf(A){if(!A)return null;yr(typeof A=="string");let e=Af(A);return qd.isIP(e)?"":e}function rf(A){return JSON.parse(JSON.stringify(A))}function nf(A){return A!=null&&typeof A[Symbol.asyncIterator]=="function"}function su(A){return A!=null&&(typeof A[Symbol.iterator]=="function"||typeof A[Symbol.asyncIterator]=="function")}function ou(A){if(A==null)return 0;if(Mn(A)){let e=A._readableState;return e&&e.objectMode===!1&&e.ended===!0&&Number.isFinite(e.length)?e.length:null}else{if(tu(A))return A.size!=null?A.size:null;if(cu(A))return A.byteLength}return null}function iu(A){return A&&!!(A.destroyed||A[eu]||Un.isDestroyed?.(A))}function sf(A,e){A==null||!Mn(A)||iu(A)||(typeof A.destroy=="function"?(Object.getPrototypeOf(A).constructor===Vd&&(A.socket=null),A.destroy(e)):e&&queueMicrotask(()=>{A.emit("error",e)}),A.destroyed!==!0&&(A[eu]=!0))}var of=/timeout=(\d+)/;function af(A){let e=A.toString().match(of);return e?parseInt(e[1],10)*1e3:null}function au(A){return typeof A=="string"?Zd[A]??A.toLowerCase():Au.lookup(A)??A.toString("latin1").toLowerCase()}function cf(A){return Au.lookup(A)??A.toString("latin1").toLowerCase()}function gf(A,e){e===void 0&&(e={});for(let t=0;t<A.length;t+=2){let r=au(A[t]),n=e[r];if(n)typeof n=="string"&&(n=[n],e[r]=n),n.push(A[t+1].toString("utf8"));else{let s=A[t+1];typeof s=="string"?e[r]=s:e[r]=Array.isArray(s)?s.map(o=>o.toString("utf8")):s.toString("utf8")}}return"content-length"in e&&"content-disposition"in e&&(e["content-disposition"]=Buffer.from(e["content-disposition"]).toString("latin1")),e}function uf(A){let e=A.length,t=new Array(e),r=!1,n=-1,s,o,i=0;for(let a=0;a<A.length;a+=2)s=A[a],o=A[a+1],typeof s!="string"&&(s=s.toString()),typeof o!="string"&&(o=o.toString("utf8")),i=s.length,i===14&&s[7]==="-"&&(s==="content-length"||s.toLowerCase()==="content-length")?r=!0:i===19&&s[7]==="-"&&(s==="content-disposition"||s.toLowerCase()==="content-disposition")&&(n=a+1),t[a]=s,t[a+1]=o;return r&&n!==-1&&(t[n]=Buffer.from(t[n]).toString("latin1")),t}function cu(A){return A instanceof Uint8Array||Buffer.isBuffer(A)}function lf(A,e,t){if(!A||typeof A!="object")throw new ae("handler must be an object");if(typeof A.onConnect!="function")throw new ae("invalid onConnect method");if(typeof A.onError!="function")throw new ae("invalid onError method");if(typeof A.onBodySent!="function"&&A.onBodySent!==void 0)throw new ae("invalid onBodySent method");if(t||e==="CONNECT"){if(typeof A.onUpgrade!="function")throw new ae("invalid onUpgrade method")}else{if(typeof A.onHeaders!="function")throw new ae("invalid onHeaders method");if(typeof A.onData!="function")throw new ae("invalid onData method");if(typeof A.onComplete!="function")throw new ae("invalid onComplete method")}}function Ef(A){return!!(A&&(Un.isDisturbed(A)||A[bt]))}function Qf(A){return!!(A&&Un.isErrored(A))}function Bf(A){return!!(A&&Un.isReadable(A))}function If(A){return{localAddress:A.localAddress,localPort:A.localPort,remoteAddress:A.remoteAddress,remotePort:A.remotePort,remoteFamily:A.remoteFamily,timeout:A.timeout,bytesWritten:A.bytesWritten,bytesRead:A.bytesRead}}function Cf(A){let e;return new ReadableStream({async start(){e=A[Symbol.asyncIterator]()},async pull(t){let{done:r,value:n}=await e.next();if(r)queueMicrotask(()=>{t.close(),t.byobRequest?.respond(0)});else{let s=Buffer.isBuffer(n)?n:Buffer.from(n);s.byteLength&&t.enqueue(new Uint8Array(s))}return t.desiredSize>0},async cancel(t){await e.return()},type:"bytes"})}function hf(A){return A&&typeof A=="object"&&typeof A.append=="function"&&typeof A.delete=="function"&&typeof A.get=="function"&&typeof A.getAll=="function"&&typeof A.has=="function"&&typeof A.set=="function"&&A[Symbol.toStringTag]==="FormData"}function df(A,e){return"addEventListener"in A?(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)):(A.addListener("abort",e),()=>A.removeListener("abort",e))}var ff=typeof String.prototype.toWellFormed=="function",pf=typeof String.prototype.isWellFormed=="function";function gu(A){return ff?`${A}`.toWellFormed():Wd.toUSVString(A)}function wf(A){return pf?`${A}`.isWellFormed():gu(A)===`${A}`}function uu(A){switch(A){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return A>=33&&A<=126}}function mf(A){if(A.length===0)return!1;for(let e=0;e<A.length;++e)if(!uu(A.charCodeAt(e)))return!1;return!0}var yf=/[^\t\x20-\x7e\x80-\xff]/;function Df(A){return!yf.test(A)}function bf(A){if(A==null||A==="")return{start:0,end:null,size:null};let e=A?A.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return e?{start:parseInt(e[1]),end:e[2]?parseInt(e[2]):null,size:e[3]?parseInt(e[3]):null}:null}function kf(A,e,t){return(A[ri]??=[]).push([e,t]),A.on(e,t),A}function Rf(A){for(let[e,t]of A[ri]??[])A.removeListener(e,t);A[ri]=null}function Ff(A,e,t){try{e.onError(t),yr(e.aborted)}catch(r){A.emit("error",r)}}var lu=Object.create(null);lu.enumerable=!0;var ni={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},Eu={...ni,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(ni,null);Object.setPrototypeOf(Eu,null);Qu.exports={kEnumerableProperty:lu,nop:$d,isDisturbed:Ef,isErrored:Qf,isReadable:Bf,toUSVString:gu,isUSVString:wf,isBlobLike:tu,parseOrigin:ef,parseURL:nu,getServerName:tf,isStream:Mn,isIterable:su,isAsyncIterable:nf,isDestroyed:iu,headerNameToString:au,bufferToLowerCasedHeaderName:cf,addListener:kf,removeAllListeners:Rf,errorRequest:Ff,parseRawHeaders:uf,parseHeaders:gf,parseKeepAliveTimeout:af,destroy:sf,bodyLength:ou,deepClone:rf,ReadableStreamFrom:Cf,isBuffer:cu,validateHandler:lf,getSocketInfo:If,isFormDataLike:hf,buildURL:jd,addAbortListener:df,isValidHTTPToken:mf,isValidHeaderValue:Df,isTokenCharCode:uu,parseRangeHeader:bf,normalizedMethodRecordsBase:ni,normalizedMethodRecords:Eu,isValidPort:ru,isHttpOrHttpsPrefixed:Sn,nodeMajor:zd,nodeMinor:Kd,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"],wrapRequestBody:Xd}});var kt=f((YM,Iu)=>{"use strict";var q=d("node:diagnostics_channel"),oi=d("node:util"),Ln=oi.debuglog("undici"),si=oi.debuglog("fetch"),$A=oi.debuglog("websocket"),Bu=!1,Sf={beforeConnect:q.channel("undici:client:beforeConnect"),connected:q.channel("undici:client:connected"),connectError:q.channel("undici:client:connectError"),sendHeaders:q.channel("undici:client:sendHeaders"),create:q.channel("undici:request:create"),bodySent:q.channel("undici:request:bodySent"),headers:q.channel("undici:request:headers"),trailers:q.channel("undici:request:trailers"),error:q.channel("undici:request:error"),open:q.channel("undici:websocket:open"),close:q.channel("undici:websocket:close"),socketError:q.channel("undici:websocket:socket_error"),ping:q.channel("undici:websocket:ping"),pong:q.channel("undici:websocket:pong")};if(Ln.enabled||si.enabled){let A=si.enabled?si:Ln;q.channel("undici:client:beforeConnect").subscribe(e=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=e;A("connecting to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),q.channel("undici:client:connected").subscribe(e=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=e;A("connected to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),q.channel("undici:client:connectError").subscribe(e=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:o}=e;A("connection to %s using %s%s errored - %s",`${s}${n?`:${n}`:""}`,r,t,o.message)}),q.channel("undici:client:sendHeaders").subscribe(e=>{let{request:{method:t,path:r,origin:n}}=e;A("sending request to %s %s/%s",t,n,r)}),q.channel("undici:request:headers").subscribe(e=>{let{request:{method:t,path:r,origin:n},response:{statusCode:s}}=e;A("received response to %s %s/%s - HTTP %d",t,n,r,s)}),q.channel("undici:request:trailers").subscribe(e=>{let{request:{method:t,path:r,origin:n}}=e;A("trailers received from %s %s/%s",t,n,r)}),q.channel("undici:request:error").subscribe(e=>{let{request:{method:t,path:r,origin:n},error:s}=e;A("request to %s %s/%s errored - %s",t,n,r,s.message)}),Bu=!0}if($A.enabled){if(!Bu){let A=Ln.enabled?Ln:$A;q.channel("undici:client:beforeConnect").subscribe(e=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=e;A("connecting to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),q.channel("undici:client:connected").subscribe(e=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=e;A("connected to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),q.channel("undici:client:connectError").subscribe(e=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:o}=e;A("connection to %s%s using %s%s errored - %s",s,n?`:${n}`:"",r,t,o.message)}),q.channel("undici:client:sendHeaders").subscribe(e=>{let{request:{method:t,path:r,origin:n}}=e;A("sending request to %s %s/%s",t,n,r)})}q.channel("undici:websocket:open").subscribe(A=>{let{address:{address:e,port:t}}=A;$A("connection opened %s%s",e,t?`:${t}`:"")}),q.channel("undici:websocket:close").subscribe(A=>{let{websocket:e,code:t,reason:r}=A;$A("closed connection to %s - %s %s",e.url,t,r)}),q.channel("undici:websocket:socket_error").subscribe(A=>{$A("connection errored - %s",A.message)}),q.channel("undici:websocket:ping").subscribe(A=>{$A("ping received")}),q.channel("undici:websocket:pong").subscribe(A=>{$A("pong received")})}Iu.exports={channels:Sf}});var fu=f((GM,du)=>{"use strict";var{InvalidArgumentError:W,NotSupportedError:Nf}=v(),QA=d("node:assert"),{isValidHTTPToken:hu,isValidHeaderValue:Dr,isStream:Uf,destroy:Mf,isBuffer:Lf,isFormDataLike:Tf,isIterable:xf,isBlobLike:Yf,buildURL:Gf,validateHandler:Jf,getServerName:vf,normalizedMethodRecords:Hf}=T(),{channels:AA}=kt(),{headerNameLowerCasedRecord:Cu}=Rn(),Vf=/[^\u0021-\u00ff]/,xe=Symbol("handler"),ii=class{constructor(e,{path:t,method:r,body:n,headers:s,query:o,idempotent:i,blocking:a,upgrade:c,headersTimeout:u,bodyTimeout:g,reset:l,throwOnError:E,expectContinue:B,servername:C},I){if(typeof t!="string")throw new W("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new W("path must be an absolute URL or start with a slash");if(Vf.test(t))throw new W("invalid request path");if(typeof r!="string")throw new W("method must be a string");if(Hf[r]===void 0&&!hu(r))throw new W("invalid request method");if(c&&typeof c!="string")throw new W("upgrade must be a string");if(c&&!Dr(c))throw new W("invalid upgrade header");if(u!=null&&(!Number.isFinite(u)||u<0))throw new W("invalid headersTimeout");if(g!=null&&(!Number.isFinite(g)||g<0))throw new W("invalid bodyTimeout");if(l!=null&&typeof l!="boolean")throw new W("invalid reset");if(B!=null&&typeof B!="boolean")throw new W("invalid expectContinue");if(this.headersTimeout=u,this.bodyTimeout=g,this.throwOnError=E===!0,this.method=r,this.abort=null,n==null)this.body=null;else if(Uf(n)){this.body=n;let Q=this.body._readableState;(!Q||!Q.autoDestroy)&&(this.endHandler=function(){Mf(this)},this.body.on("end",this.endHandler)),this.errorHandler=h=>{this.abort?this.abort(h):this.error=h},this.body.on("error",this.errorHandler)}else if(Lf(n))this.body=n.byteLength?n:null;else if(ArrayBuffer.isView(n))this.body=n.buffer.byteLength?Buffer.from(n.buffer,n.byteOffset,n.byteLength):null;else if(n instanceof ArrayBuffer)this.body=n.byteLength?Buffer.from(n):null;else if(typeof n=="string")this.body=n.length?Buffer.from(n):null;else if(Tf(n)||xf(n)||Yf(n))this.body=n;else throw new W("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=c||null,this.path=o?Gf(t,o):t,this.origin=e,this.idempotent=i??(r==="HEAD"||r==="GET"),this.blocking=a??!1,this.reset=l??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=B??!1,Array.isArray(s)){if(s.length%2!==0)throw new W("headers array must be even");for(let Q=0;Q<s.length;Q+=2)Tn(this,s[Q],s[Q+1])}else if(s&&typeof s=="object")if(s[Symbol.iterator])for(let Q of s){if(!Array.isArray(Q)||Q.length!==2)throw new W("headers must be in key-value pair format");Tn(this,Q[0],Q[1])}else{let Q=Object.keys(s);for(let h=0;h<Q.length;++h)Tn(this,Q[h],s[Q[h]])}else if(s!=null)throw new W("headers must be an object or an array");Jf(I,r,c),this.servername=C||vf(this.host),this[xe]=I,AA.create.hasSubscribers&&AA.create.publish({request:this})}onBodySent(e){if(this[xe].onBodySent)try{return this[xe].onBodySent(e)}catch(t){this.abort(t)}}onRequestSent(){if(AA.bodySent.hasSubscribers&&AA.bodySent.publish({request:this}),this[xe].onRequestSent)try{return this[xe].onRequestSent()}catch(e){this.abort(e)}}onConnect(e){if(QA(!this.aborted),QA(!this.completed),this.error)e(this.error);else return this.abort=e,this[xe].onConnect(e)}onResponseStarted(){return this[xe].onResponseStarted?.()}onHeaders(e,t,r,n){QA(!this.aborted),QA(!this.completed),AA.headers.hasSubscribers&&AA.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:n}});try{return this[xe].onHeaders(e,t,r,n)}catch(s){this.abort(s)}}onData(e){QA(!this.aborted),QA(!this.completed);try{return this[xe].onData(e)}catch(t){return this.abort(t),!1}}onUpgrade(e,t,r){return QA(!this.aborted),QA(!this.completed),this[xe].onUpgrade(e,t,r)}onComplete(e){this.onFinally(),QA(!this.aborted),this.completed=!0,AA.trailers.hasSubscribers&&AA.trailers.publish({request:this,trailers:e});try{return this[xe].onComplete(e)}catch(t){this.onError(t)}}onError(e){if(this.onFinally(),AA.error.hasSubscribers&&AA.error.publish({request:this,error:e}),!this.aborted)return this.aborted=!0,this[xe].onError(e)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(e,t){return Tn(this,e,t),this}};function Tn(A,e,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new W(`invalid ${e} header`);if(t===void 0)return;let r=Cu[e];if(r===void 0&&(r=e.toLowerCase(),Cu[r]===void 0&&!hu(r)))throw new W("invalid header key");if(Array.isArray(t)){let n=[];for(let s=0;s<t.length;s++)if(typeof t[s]=="string"){if(!Dr(t[s]))throw new W(`invalid ${e} header`);n.push(t[s])}else if(t[s]===null)n.push("");else{if(typeof t[s]=="object")throw new W(`invalid ${e} header`);{let o=`${t[s]}`;if(!Dr(o))throw new W(`invalid ${e} header`);n.push(o)}}t=n}else if(typeof t=="string"){if(!Dr(t))throw new W(`invalid ${e} header`)}else if(t===null)t="";else if(t=`${t}`,!Dr(t))throw new W(`invalid ${e} header`);if(r==="host"){if(A.host!==null)throw new W("duplicate host header");if(typeof t!="string")throw new W("invalid host header");A.host=t}else if(r==="content-length"){if(A.contentLength!==null)throw new W("duplicate content-length header");if(A.contentLength=parseInt(t,10),!Number.isFinite(A.contentLength))throw new W("invalid content-length header")}else if(A.contentType===null&&r==="content-type")A.contentType=t,A.headers.push(e,t);else{if(r==="transfer-encoding"||r==="keep-alive"||r==="upgrade")throw new W(`invalid ${r} header`);if(r==="connection"){let n=typeof t=="string"?t.toLowerCase():null;if(n!=="close"&&n!=="keep-alive")throw new W("invalid connection header");n==="close"&&(A.reset=!0)}else{if(r==="expect")throw new Nf("expect header not supported");A.headers.push(e,t)}}}du.exports=ii});var br=f((JM,pu)=>{"use strict";var qf=d("node:events"),xn=class extends qf{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...e){let t=Array.isArray(e[0])?e[0]:e,r=this.dispatch.bind(this);for(let n of t)if(n!=null){if(typeof n!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof n}`);if(r=n(r),r==null||typeof r!="function"||r.length!==2)throw new TypeError("invalid interceptor")}return new ai(this,r)}},ai=class extends xn{#e=null;#A=null;constructor(e,t){super(),this.#e=e,this.#A=t}dispatch(...e){this.#A(...e)}close(...e){return this.#e.close(...e)}destroy(...e){return this.#e.destroy(...e)}};pu.exports=xn});var Nt=f((vM,wu)=>{"use strict";var Of=br(),{ClientDestroyedError:ci,ClientClosedError:Wf,InvalidArgumentError:Rt}=v(),{kDestroy:Pf,kClose:_f,kClosed:kr,kDestroyed:Ft,kDispatch:gi,kInterceptors:jA}=$(),BA=Symbol("onDestroyed"),St=Symbol("onClosed"),Yn=Symbol("Intercepted Dispatch"),ui=Symbol("webSocketOptions"),li=class extends Of{constructor(e){super(),this[Ft]=!1,this[BA]=null,this[kr]=!1,this[St]=[],this[ui]=e?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[ui].maxFragments??131072,maxPayloadSize:this[ui].maxPayloadSize??128*1024*1024}}get destroyed(){return this[Ft]}get closed(){return this[kr]}get interceptors(){return this[jA]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--)if(typeof this[jA][t]!="function")throw new Rt("interceptor must be an function")}this[jA]=e}close(e){if(e===void 0)return new Promise((r,n)=>{this.close((s,o)=>s?n(s):r(o))});if(typeof e!="function")throw new Rt("invalid callback");if(this[Ft]){queueMicrotask(()=>e(new ci,null));return}if(this[kr]){this[St]?this[St].push(e):queueMicrotask(()=>e(null,null));return}this[kr]=!0,this[St].push(e);let t=()=>{let r=this[St];this[St]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[_f]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(e,t){if(typeof e=="function"&&(t=e,e=null),t===void 0)return new Promise((n,s)=>{this.destroy(e,(o,i)=>o?s(o):n(i))});if(typeof t!="function")throw new Rt("invalid callback");if(this[Ft]){this[BA]?this[BA].push(t):queueMicrotask(()=>t(null,null));return}e||(e=new ci),this[Ft]=!0,this[BA]=this[BA]||[],this[BA].push(t);let r=()=>{let n=this[BA];this[BA]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[Pf](e).then(()=>{queueMicrotask(r)})}[Yn](e,t){if(!this[jA]||this[jA].length===0)return this[Yn]=this[gi],this[gi](e,t);let r=this[gi].bind(this);for(let n=this[jA].length-1;n>=0;n--)r=this[jA][n](r);return this[Yn]=r,r(e,t)}dispatch(e,t){if(!t||typeof t!="object")throw new Rt("handler must be an object");try{if(!e||typeof e!="object")throw new Rt("opts must be an object.");if(this[Ft]||this[BA])throw new ci;if(this[kr])throw new Wf;return this[Yn](e,t)}catch(r){if(typeof t.onError!="function")throw new Rt("invalid onError method");return t.onError(r),!1}}};wu.exports=li});var di=f((HM,bu)=>{"use strict";var Ut=0,Ei=1e3,Qi=(Ei>>1)-1,IA,Bi=Symbol("kFastTimer"),CA=[],Ii=-2,Ci=-1,yu=0,mu=1;function hi(){Ut+=Qi;let A=0,e=CA.length;for(;A<e;){let t=CA[A];t._state===yu?(t._idleStart=Ut-Qi,t._state=mu):t._state===mu&&Ut>=t._idleStart+t._idleTimeout&&(t._state=Ci,t._idleStart=-1,t._onTimeout(t._timerArg)),t._state===Ci?(t._state=Ii,--e!==0&&(CA[A]=CA[e])):++A}CA.length=e,CA.length!==0&&Du()}function Du(){IA?IA.refresh():(clearTimeout(IA),IA=setTimeout(hi,Qi),IA.unref&&IA.unref())}var Gn=class{[Bi]=!0;_state=Ii;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,t,r){this._onTimeout=e,this._idleTimeout=t,this._timerArg=r,this.refresh()}refresh(){this._state===Ii&&CA.push(this),(!IA||CA.length===1)&&Du(),this._state=yu}clear(){this._state=Ci,this._idleStart=-1}};bu.exports={setTimeout(A,e,t){return e<=Ei?setTimeout(A,e,t):new Gn(A,e,t)},clearTimeout(A){A[Bi]?A.clear():clearTimeout(A)},setFastTimeout(A,e,t){return new Gn(A,e,t)},clearFastTimeout(A){A.clear()},now(){return Ut},tick(A=0){Ut+=A-Ei+1,hi(),hi()},reset(){Ut=0,CA.length=0,clearTimeout(IA),IA=null},kFastTimer:Bi}});var Rr=f((OM,Nu)=>{"use strict";var Zf=d("node:net"),ku=d("node:assert"),Su=T(),{InvalidArgumentError:zf,ConnectTimeoutError:Kf}=v(),Jn=di();function Ru(){}var fi,pi;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?pi=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){this._maxCachedSessions!==0&&(this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e))}}:pi=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map}get(e){return this._sessionCache.get(e)}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(e,t)}}};function Xf({allowH2:A,maxCachedSessions:e,socketPath:t,timeout:r,session:n,...s}){if(e!=null&&(!Number.isInteger(e)||e<0))throw new zf("maxCachedSessions must be a positive integer or zero");let o={path:t,...s},i=new pi(e??100);return r=r??1e4,A=A??!1,function({hostname:c,host:u,protocol:g,port:l,servername:E,localAddress:B,httpSocket:C},I){let Q;if(g==="https:"){fi||(fi=d("node:tls")),E=E||o.servername||Su.getServerName(u)||null;let y=E||c;ku(y);let m=n||i.get(y)||null;l=l||443,Q=fi.connect({highWaterMark:16384,...o,servername:E,session:m,localAddress:B,ALPNProtocols:A?["http/1.1","h2"]:["http/1.1"],socket:C,port:l,host:c}),Q.on("session",function(x){i.set(y,x)})}else ku(!C,"httpSocket can only be sent on TLS update"),l=l||80,Q=Zf.connect({highWaterMark:64*1024,...o,localAddress:B,port:l,host:c});if(o.keepAlive==null||o.keepAlive){let y=o.keepAliveInitialDelay===void 0?6e4:o.keepAliveInitialDelay;Q.setKeepAlive(!0,y)}let h=$f(new WeakRef(Q),{timeout:r,hostname:c,port:l});return Q.setNoDelay(!0).once(g==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(h),I){let y=I;I=null,y(null,this)}}).on("error",function(y){if(queueMicrotask(h),I){let m=I;I=null,m(y)}}),Q}}var $f=process.platform==="win32"?(A,e)=>{if(!e.timeout)return Ru;let t=null,r=null,n=Jn.setFastTimeout(()=>{t=setImmediate(()=>{r=setImmediate(()=>Fu(A.deref(),e))})},e.timeout);return()=>{Jn.clearFastTimeout(n),clearImmediate(t),clearImmediate(r)}}:(A,e)=>{if(!e.timeout)return Ru;let t=null,r=Jn.setFastTimeout(()=>{t=setImmediate(()=>{Fu(A.deref(),e)})},e.timeout);return()=>{Jn.clearFastTimeout(r),clearImmediate(t)}};function Fu(A,e){if(A==null)return;let t="Connect Timeout Error";Array.isArray(A.autoSelectFamilyAttemptedAddresses)?t+=` (attempted addresses: ${A.autoSelectFamilyAttemptedAddresses.join(", ")},`:t+=` (attempted address: ${e.hostname}:${e.port},`,t+=` timeout: ${e.timeout}ms)`,Su.destroy(A,new Kf(t))}Nu.exports=Xf});var Uu=f(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.enumToMap=void 0;function jf(A){let e={};return Object.keys(A).forEach(t=>{let r=A[t];typeof r=="number"&&(e[t]=r)}),e}vn.enumToMap=jf});var Mu=f(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.SPECIAL_HEADERS=w.HEADER_STATE=w.MINOR=w.MAJOR=w.CONNECTION_TOKEN_CHARS=w.HEADER_CHARS=w.TOKEN=w.STRICT_TOKEN=w.HEX=w.URL_CHAR=w.STRICT_URL_CHAR=w.USERINFO_CHARS=w.MARK=w.ALPHANUM=w.NUM=w.HEX_MAP=w.NUM_MAP=w.ALPHA=w.FINISH=w.H_METHOD_MAP=w.METHOD_MAP=w.METHODS_RTSP=w.METHODS_ICE=w.METHODS_HTTP=w.METHODS=w.LENIENT_FLAGS=w.FLAGS=w.TYPE=w.ERROR=void 0;var e0=Uu(),A0;(function(A){A[A.OK=0]="OK",A[A.INTERNAL=1]="INTERNAL",A[A.STRICT=2]="STRICT",A[A.LF_EXPECTED=3]="LF_EXPECTED",A[A.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",A[A.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",A[A.INVALID_METHOD=6]="INVALID_METHOD",A[A.INVALID_URL=7]="INVALID_URL",A[A.INVALID_CONSTANT=8]="INVALID_CONSTANT",A[A.INVALID_VERSION=9]="INVALID_VERSION",A[A.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",A[A.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",A[A.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",A[A.INVALID_STATUS=13]="INVALID_STATUS",A[A.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",A[A.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",A[A.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",A[A.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",A[A.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",A[A.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",A[A.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",A[A.PAUSED=21]="PAUSED",A[A.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",A[A.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",A[A.USER=24]="USER"})(A0=w.ERROR||(w.ERROR={}));var t0;(function(A){A[A.BOTH=0]="BOTH",A[A.REQUEST=1]="REQUEST",A[A.RESPONSE=2]="RESPONSE"})(t0=w.TYPE||(w.TYPE={}));var r0;(function(A){A[A.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",A[A.CHUNKED=8]="CHUNKED",A[A.UPGRADE=16]="UPGRADE",A[A.CONTENT_LENGTH=32]="CONTENT_LENGTH",A[A.SKIPBODY=64]="SKIPBODY",A[A.TRAILING=128]="TRAILING",A[A.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(r0=w.FLAGS||(w.FLAGS={}));var n0;(function(A){A[A.HEADERS=1]="HEADERS",A[A.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",A[A.KEEP_ALIVE=4]="KEEP_ALIVE"})(n0=w.LENIENT_FLAGS||(w.LENIENT_FLAGS={}));var R;(function(A){A[A.DELETE=0]="DELETE",A[A.GET=1]="GET",A[A.HEAD=2]="HEAD",A[A.POST=3]="POST",A[A.PUT=4]="PUT",A[A.CONNECT=5]="CONNECT",A[A.OPTIONS=6]="OPTIONS",A[A.TRACE=7]="TRACE",A[A.COPY=8]="COPY",A[A.LOCK=9]="LOCK",A[A.MKCOL=10]="MKCOL",A[A.MOVE=11]="MOVE",A[A.PROPFIND=12]="PROPFIND",A[A.PROPPATCH=13]="PROPPATCH",A[A.SEARCH=14]="SEARCH",A[A.UNLOCK=15]="UNLOCK",A[A.BIND=16]="BIND",A[A.REBIND=17]="REBIND",A[A.UNBIND=18]="UNBIND",A[A.ACL=19]="ACL",A[A.REPORT=20]="REPORT",A[A.MKACTIVITY=21]="MKACTIVITY",A[A.CHECKOUT=22]="CHECKOUT",A[A.MERGE=23]="MERGE",A[A["M-SEARCH"]=24]="M-SEARCH",A[A.NOTIFY=25]="NOTIFY",A[A.SUBSCRIBE=26]="SUBSCRIBE",A[A.UNSUBSCRIBE=27]="UNSUBSCRIBE",A[A.PATCH=28]="PATCH",A[A.PURGE=29]="PURGE",A[A.MKCALENDAR=30]="MKCALENDAR",A[A.LINK=31]="LINK",A[A.UNLINK=32]="UNLINK",A[A.SOURCE=33]="SOURCE",A[A.PRI=34]="PRI",A[A.DESCRIBE=35]="DESCRIBE",A[A.ANNOUNCE=36]="ANNOUNCE",A[A.SETUP=37]="SETUP",A[A.PLAY=38]="PLAY",A[A.PAUSE=39]="PAUSE",A[A.TEARDOWN=40]="TEARDOWN",A[A.GET_PARAMETER=41]="GET_PARAMETER",A[A.SET_PARAMETER=42]="SET_PARAMETER",A[A.REDIRECT=43]="REDIRECT",A[A.RECORD=44]="RECORD",A[A.FLUSH=45]="FLUSH"})(R=w.METHODS||(w.METHODS={}));w.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];w.METHODS_ICE=[R.SOURCE];w.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];w.METHOD_MAP=e0.enumToMap(R);w.H_METHOD_MAP={};Object.keys(w.METHOD_MAP).forEach(A=>{/^H/.test(A)&&(w.H_METHOD_MAP[A]=w.METHOD_MAP[A])});var s0;(function(A){A[A.SAFE=0]="SAFE",A[A.SAFE_WITH_CB=1]="SAFE_WITH_CB",A[A.UNSAFE=2]="UNSAFE"})(s0=w.FINISH||(w.FINISH={}));w.ALPHA=[];for(let A=65;A<=90;A++)w.ALPHA.push(String.fromCharCode(A)),w.ALPHA.push(String.fromCharCode(A+32));w.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};w.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};w.NUM=["0","1","2","3","4","5","6","7","8","9"];w.ALPHANUM=w.ALPHA.concat(w.NUM);w.MARK=["-","_",".","!","~","*","'","(",")"];w.USERINFO_CHARS=w.ALPHANUM.concat(w.MARK).concat(["%",";",":","&","=","+","$",","]);w.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(w.ALPHANUM);w.URL_CHAR=w.STRICT_URL_CHAR.concat([" ","\f"]);for(let A=128;A<=255;A++)w.URL_CHAR.push(A);w.HEX=w.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);w.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(w.ALPHANUM);w.TOKEN=w.STRICT_TOKEN.concat([" "]);w.HEADER_CHARS=[" "];for(let A=32;A<=255;A++)A!==127&&w.HEADER_CHARS.push(A);w.CONNECTION_TOKEN_CHARS=w.HEADER_CHARS.filter(A=>A!==44);w.MAJOR=w.NUM_MAP;w.MINOR=w.MAJOR;var Mt;(function(A){A[A.GENERAL=0]="GENERAL",A[A.CONNECTION=1]="CONNECTION",A[A.CONTENT_LENGTH=2]="CONTENT_LENGTH",A[A.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",A[A.UPGRADE=4]="UPGRADE",A[A.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",A[A.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",A[A.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",A[A.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Mt=w.HEADER_STATE||(w.HEADER_STATE={}));w.SPECIAL_HEADERS={connection:Mt.CONNECTION,"content-length":Mt.CONTENT_LENGTH,"proxy-connection":Mt.CONNECTION,"transfer-encoding":Mt.TRANSFER_ENCODING,upgrade:Mt.UPGRADE}});var wi=f((_M,Lu)=>{"use strict";var{Buffer:o0}=d("node:buffer");Lu.exports=o0.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg2AgwMoAELIAJBADYCACAGQQFqIQEgAi0AKUEhRg0DIAJBADYCHCACIAE2AhQgAkGbCjYCECACQQg2AgxBACEDDJ8BCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJBkDM2AhAgAkEINgIMDJ0BCyACQQA2AgAgBkEBaiEBIAItAClBI0kNACACQQA2AhwgAiABNgIUIAJB0wk2AhAgAkEINgIMQQAhAwycAQtB0QAhAwyCAQsgAS0AAEEwayIAQf8BcUEKSQRAIAIgADoAKiABQQFqIQFBzwAhAwyCAQsgAigCBCEAIAJBADYCBCACIAAgARAoIgBFDYYBIAJB3gA2AhwgAiABNgIUIAIgADYCDEEAIQMMmgELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ2GASACQdwANgIcIAIgATYCFCACIAA2AgxBACEDDJkBCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMhwELIAJB2gA2AhwgAiAFNgIUIAIgADYCDAyYAQtBACEBQQEhAwsgAiADOgArIAVBAWohAwJAAkACQCACLQAtQRBxDQACQAJAAkAgAi0AKg4DAQACBAsgBkUNAwwCCyAADQEMAgsgAUUNAQsgAigCBCEAIAJBADYCBCACIAAgAxAoIgBFBEAgAyEBDAILIAJB2AA2AhwgAiADNgIUIAIgADYCDEEAIQMMmAELIAIoAgQhACACQQA2AgQgAiAAIAMQKCIARQRAIAMhAQyHAQsgAkHZADYCHCACIAM2AhQgAiAANgIMQQAhAwyXAQtBzAAhAwx9CyAAQRVHBEAgAkEANgIcIAIgATYCFCACQZQNNgIQIAJBITYCDEEAIQMMlgELIAJB1wA2AhwgAiABNgIUIAJByRc2AhAgAkEVNgIMQQAhAwyVAQtBACEDIAJBADYCHCACIAE2AhQgAkGAETYCECACQQk2AgwMlAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0AIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMkwELQckAIQMMeQsgAkEANgIcIAIgATYCFCACQcEoNgIQIAJBBzYCDCACQQA2AgBBACEDDJEBCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAlIgBFDQAgAkHSADYCHCACIAE2AhQgAiAANgIMDJABC0HIACEDDHYLIAJBADYCACAFIQELIAJBgBI7ASogAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANAQtBxwAhAwxzCyAAQRVGBEAgAkHRADYCHCACIAE2AhQgAkHjFzYCECACQRU2AgxBACEDDIwBC0EAIQMgAkEANgIcIAIgATYCFCACQbkNNgIQIAJBGjYCDAyLAQtBACEDIAJBADYCHCACIAE2AhQgAkGgGTYCECACQR42AgwMigELIAEtAABBOkYEQCACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgBFDQEgAkHDADYCHCACIAA2AgwgAiABQQFqNgIUDIoBC0EAIQMgAkEANgIcIAIgATYCFCACQbERNgIQIAJBCjYCDAyJAQsgAUEBaiEBQTshAwxvCyACQcMANgIcIAIgADYCDCACIAFBAWo2AhQMhwELQQAhAyACQQA2AhwgAiABNgIUIAJB8A42AhAgAkEcNgIMDIYBCyACIAIvATBBEHI7ATAMZgsCQCACLwEwIgBBCHFFDQAgAi0AKEEBRw0AIAItAC1BCHFFDQMLIAIgAEH3+wNxQYAEcjsBMAwECyABIARHBEACQANAIAEtAABBMGsiAEH/AXFBCk8EQEE1IQMMbgsgAikDICIKQpmz5syZs+bMGVYNASACIApCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAIgCiALfDcDICAEIAFBAWoiAUcNAAtBOSEDDIUBCyACKAIEIQBBACEDIAJBADYCBCACIAAgAUEBaiIBECoiAA0MDHcLQTkhAwyDAQsgAi0AMEEgcQ0GQcUBIQMMaQtBACEDIAJBADYCBCACIAEgARAqIgBFDQQgAkE6NgIcIAIgADYCDCACIAFBAWo2AhQMgQELIAItAChBAUcNACACLQAtQQhxRQ0BC0E3IQMMZgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIABEAgAkE7NgIcIAIgADYCDCACIAFBAWo2AhQMfwsgAUEBaiEBDG4LIAJBCDoALAwECyABQQFqIQEMbQtBACEDIAJBADYCHCACIAE2AhQgAkHkEjYCECACQQQ2AgwMewsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ1sIAJBNzYCHCACIAE2AhQgAiAANgIMDHoLIAIgAi8BMEEgcjsBMAtBMCEDDF8LIAJBNjYCHCACIAE2AhQgAiAANgIMDHcLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCACLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIAJBAToALCACIAIvATAgAXI7ATAgACEBDAELIAIgAi8BMEEIcjsBMCAAIQELQTkhAwxcCyACQQA6ACwLQTQhAwxaCyABIARGBEBBLSEDDHMLAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0EtIQMMdAsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ0CIAJBLDYCHCACIAE2AhQgAiAANgIMDHMLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAS0AAEENRgRAIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAi0ALUEBcQRAQcQBIQMMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIADQEMZQtBLyEDDFcLIAJBLjYCHCACIAE2AhQgAiAANgIMDG8LQQAhAyACQQA2AhwgAiABNgIUIAJB8BQ2AhAgAkEDNgIMDG4LQQEhAwJAAkACQAJAIAItACxBBWsOBAMBAgAECyACIAIvATBBCHI7ATAMAwtBAiEDDAELQQQhAwsgAkEBOgAsIAIgAi8BMCADcjsBMAtBKiEDDFMLQQAhAyACQQA2AhwgAiABNgIUIAJB4Q82AhAgAkEKNgIMDGsLQQEhAwJAAkACQAJAAkACQCACLQAsQQJrDgcFBAQDAQIABAsgAiACLwEwQQhyOwEwDAMLQQIhAwwBC0EEIQMLIAJBAToALCACIAIvATAgA3I7ATALQSshAwxSC0EAIQMgAkEANgIcIAIgATYCFCACQasSNgIQIAJBCzYCDAxqC0EAIQMgAkEANgIcIAIgATYCFCACQf0NNgIQIAJBHTYCDAxpCyABIARHBEADQCABLQAAQSBHDUggBCABQQFqIgFHDQALQSUhAwxpC0ElIQMMaAsgAi0ALUEBcQRAQcMBIQMMTwsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKSIABEAgAkEmNgIcIAIgADYCDCACIAFBAWo2AhQMaAsgAUEBaiEBDFwLIAFBAWohASACLwEwIgBBgAFxBEBBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAEUNBiAAQRVHDR8gAkEFNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMZwsCQCAAQaAEcUGgBEcNACACLQAtQQJxDQBBACEDIAJBADYCHCACIAE2AhQgAkGWEzYCECACQQQ2AgwMZwsgAgJ/IAIvATBBFHFBFEYEQEEBIAItAChBAUYNARogAi8BMkHlAEYMAQsgAi0AKUEFRgs6AC5BACEAAkAgAigCOCIDRQ0AIAMoAiQiA0UNACACIAMRAAAhAAsCQAJAAkACQAJAIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyACQQE6AC4LIAIgAi8BMEHAAHI7ATALQSchAwxPCyACQSM2AhwgAiABNgIUIAJBpRY2AhAgAkEVNgIMQQAhAwxnC0EAIQMgAkEANgIcIAIgATYCFCACQdULNgIQIAJBETYCDAxmC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAADQELQQ4hAwxLCyAAQRVGBEAgAkECNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMZAtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMYwtBACEDIAJBADYCHCACIAE2AhQgAkGqHDYCECACQQ82AgwMYgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEgCqdqIgEQKyIARQ0AIAJBBTYCHCACIAE2AhQgAiAANgIMDGELQQ8hAwxHC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxfC0IBIQoLIAFBAWohAQJAIAIpAyAiC0L//////////w9YBEAgAiALQgSGIAqENwMgDAELQQAhAyACQQA2AhwgAiABNgIUIAJBrQk2AhAgAkEMNgIMDF4LQSQhAwxEC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxcCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAsIgBFBEAgAUEBaiEBDFILIAJBFzYCHCACIAA2AgwgAiABQQFqNgIUDFsLIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQRY2AhwgAiAANgIMIAIgAUEBajYCFAxbC0EfIQMMQQtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQLSIARQRAIAFBAWohAQxQCyACQRQ2AhwgAiAANgIMIAIgAUEBajYCFAxYCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABEC0iAEUEQCABQQFqIQEMAQsgAkETNgIcIAIgADYCDCACIAFBAWo2AhQMWAtBHiEDDD4LQQAhAyACQQA2AhwgAiABNgIUIAJBxgw2AhAgAkEjNgIMDFYLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABEC0iAEUEQCABQQFqIQEMTgsgAkERNgIcIAIgADYCDCACIAFBAWo2AhQMVQsgAkEQNgIcIAIgATYCFCACIAA2AgwMVAtBACEDIAJBADYCHCACIAE2AhQgAkHGDDYCECACQSM2AgwMUwtBACEDIAJBADYCHCACIAE2AhQgAkHAFTYCECACQQI2AgwMUgsgAigCBCEAQQAhAyACQQA2AgQCQCACIAAgARAtIgBFBEAgAUEBaiEBDAELIAJBDjYCHCACIAA2AgwgAiABQQFqNgIUDFILQRshAww4C0EAIQMgAkEANgIcIAIgATYCFCACQcYMNgIQIAJBIzYCDAxQCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABECwiAEUEQCABQQFqIQEMAQsgAkENNgIcIAIgADYCDCACIAFBAWo2AhQMUAtBGiEDDDYLQQAhAyACQQA2AhwgAiABNgIUIAJBmg82AhAgAkEiNgIMDE4LIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQQw2AhwgAiAANgIMIAIgAUEBajYCFAxOC0EZIQMMNAtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMTAsgAEEVRwRAQQAhAyACQQA2AhwgAiABNgIUIAJBgww2AhAgAkETNgIMDEwLIAJBCjYCHCACIAE2AhQgAkHkFjYCECACQRU2AgxBACEDDEsLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABIAqnaiIBECsiAARAIAJBBzYCHCACIAE2AhQgAiAANgIMDEsLQRMhAwwxCyAAQRVHBEBBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMSgsgAkEeNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMSQtBACEAAkAgAigCOCIDRQ0AIAMoAiwiA0UNACACIAMRAAAhAAsgAEUNQSAAQRVGBEAgAkEDNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMSQtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMSAtBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMRwtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMRgsgAkEAOgAvIAItAC1BBHFFDT8LIAJBADoALyACQQE6ADRBACEDDCsLQQAhAyACQQA2AhwgAkHkETYCECACQQc2AgwgAiABQQFqNgIUDEMLAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB3QEhAwxDCwJAAkAgAi0ANEEBRw0AQQAhAAJAIAIoAjgiA0UNACADKAJYIgNFDQAgAiADEQAAIQALIABFDQAgAEEVRw0BIAJB3AE2AhwgAiABNgIUIAJB1RY2AhAgAkEVNgIMQQAhAwxEC0HBASEDDCoLIAJBADYCHCACIAE2AhQgAkHpCzYCECACQR82AgxBACEDDEILAkACQCACLQAoQQFrDgIEAQALQcABIQMMKQtBuQEhAwwoCyACQQI6AC9BACEAAkAgAigCOCIDRQ0AIAMoAgAiA0UNACACIAMRAAAhAAsgAEUEQEHCASEDDCgLIABBFUcEQCACQQA2AhwgAiABNgIUIAJBpAw2AhAgAkEQNgIMQQAhAwxBCyACQdsBNgIcIAIgATYCFCACQfoWNgIQIAJBFTYCDEEAIQMMQAsgASAERgRAQdoBIQMMQAsgAS0AAEHIAEYNASACQQE6ACgLQawBIQMMJQtBvwEhAwwkCyABIARHBEAgAkEQNgIIIAIgATYCBEG+ASEDDCQLQdkBIQMMPAsgASAERgRAQdgBIQMMPAsgAS0AAEHIAEcNBCABQQFqIQFBvQEhAwwiCyABIARGBEBB1wEhAww7CwJAAkAgAS0AAEHFAGsOEAAFBQUFBQUFBQUFBQUFBQEFCyABQQFqIQFBuwEhAwwiCyABQQFqIQFBvAEhAwwhC0HWASEDIAEgBEYNOSACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGD0ABqLQAARw0DIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw6CyACKAIEIQAgAkIANwMAIAIgACAGQQFqIgEQJyIARQRAQcYBIQMMIQsgAkHVATYCHCACIAE2AhQgAiAANgIMQQAhAww5C0HUASEDIAEgBEYNOCACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGB0ABqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw5CyACQYEEOwEoIAIoAgQhACACQgA3AwAgAiAAIAZBAWoiARAnIgANAwwCCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB2Bs2AhAgAkEINgIMDDYLQboBIQMMHAsgAkHTATYCHCACIAE2AhQgAiAANgIMQQAhAww0C0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAARQ0AIABBFUYNASACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwwzC0HkACEDDBkLIAJB+AA2AhwgAiABNgIUIAJByhg2AhAgAkEVNgIMQQAhAwwxC0HSASEDIAQgASIARg0wIAQgAWsgAigCACIBaiEFIAAgAWtBBGohBgJAA0AgAC0AACABQfzPAGotAABHDQEgAUEERg0DIAFBAWohASAEIABBAWoiAEcNAAsgAiAFNgIADDELIAJBADYCHCACIAA2AhQgAkGQMzYCECACQQg2AgwgAkEANgIAQQAhAwwwCyABIARHBEAgAkEONgIIIAIgATYCBEG3ASEDDBcLQdEBIQMMLwsgAkEANgIAIAZBAWohAQtBuAEhAwwUCyABIARGBEBB0AEhAwwtCyABLQAAQTBrIgBB/wFxQQpJBEAgAiAAOgAqIAFBAWohAUG2ASEDDBQLIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0UIAJBzwE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAsgASAERgRAQc4BIQMMLAsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0VIAJBzQE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAtBtQEhAwwSCyAEIAEiBUYEQEHMASEDDCsLQQAhAEEBIQFBASEGQQAhAwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAUtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyEDQQAhAUEAIQYMAgtBCSEDQQEhAEEAIQFBACEGDAELQQAhAUEBIQMLIAIgAzoAKyAFQQFqIQMCQAJAIAItAC1BEHENAAJAAkACQCACLQAqDgMBAAIECyAGRQ0DDAILIAANAQwCCyABRQ0BCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMAwsgAkHJATYCHCACIAM2AhQgAiAANgIMQQAhAwwtCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMGAsgAkHKATYCHCACIAM2AhQgAiAANgIMQQAhAwwsCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMFgsgAkHLATYCHCACIAU2AhQgAiAANgIMDCsLQbQBIQMMEQtBACEAAkAgAigCOCIDRQ0AIAMoAjwiA0UNACACIAMRAAAhAAsCQCAABEAgAEEVRg0BIAJBADYCHCACIAE2AhQgAkGUDTYCECACQSE2AgxBACEDDCsLQbIBIQMMEQsgAkHIATYCHCACIAE2AhQgAkHJFzYCECACQRU2AgxBACEDDCkLIAJBADYCACAGQQFqIQFB9QAhAwwPCyACLQApQQVGBEBB4wAhAwwPC0HiACEDDA4LIAAhASACQQA2AgALIAJBADoALEEJIQMMDAsgAkEANgIAIAdBAWohAUHAACEDDAsLQQELOgAsIAJBADYCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhAiAAQYgEcUGABEYNACAAQShxRSECCyACC4wBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNACAALwEwIgFBAnFFDQEMAgsgAC8BMCIBQQFxRQ0BC0EBIQIgAC0AKEEBRg0AIAAvATIiAEHkAGtB5ABJDQAgAEHMAUYNACAAQbACRg0AIAFBwABxDQBBACECIAFBiARxQYAERg0AIAFBKHFBAEchAgsgAgtXACAAQRhqQgA3AwAgAEIANwMAIABBOGpCADcDACAAQTBqQgA3AwAgAEEoakIANwMAIABBIGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIABB3QE2AhwLBgAgABAyC5otAQt/IwBBEGsiCiQAQaTQACgCACIJRQRAQeTTACgCACIFRQRAQfDTAEJ/NwIAQejTAEKAgISAgIDAADcCAEHk0wAgCkEIakFwcUHYqtWqBXMiBTYCAEH40wBBADYCAEHI0wBBADYCAAtBzNMAQYDUBDYCAEGc0ABBgNQENgIAQbDQACAFNgIAQazQAEF/NgIAQdDTAEGArAM2AgADQCABQcjQAGogAUG80ABqIgI2AgAgAiABQbTQAGoiAzYCACABQcDQAGogAzYCACABQdDQAGogAUHE0ABqIgM2AgAgAyACNgIAIAFB2NAAaiABQczQAGoiAjYCACACIAM2AgAgAUHU0ABqIAI2AgAgAUEgaiIBQYACRw0AC0GM1ARBwasDNgIAQajQAEH00wAoAgA2AgBBmNAAQcCrAzYCAEGk0ABBiNQENgIAQcz/B0E4NgIAQYjUBCEJCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFNBEBBjNAAKAIAIgZBECAAQRNqQXBxIABBC0kbIgRBA3YiAHYiAUEDcQRAAkAgAUEBcSAAckEBcyICQQN0IgBBtNAAaiIBIABBvNAAaigCACIAKAIIIgNGBEBBjNAAIAZBfiACd3E2AgAMAQsgASADNgIIIAMgATYCDAsgAEEIaiEBIAAgAkEDdCICQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDBELQZTQACgCACIIIARPDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxaCIAQQN0IgJBtNAAaiIBIAJBvNAAaigCACICKAIIIgNGBEBBjNAAIAZBfiAAd3EiBjYCAAwBCyABIAM2AgggAyABNgIMCyACIARBA3I2AgQgAEEDdCIAIARrIQUgACACaiAFNgIAIAIgBGoiBCAFQQFyNgIEIAgEQCAIQXhxQbTQAGohAEGg0AAoAgAhAwJ/QQEgCEEDdnQiASAGcUUEQEGM0AAgASAGcjYCACAADAELIAAoAggLIgEgAzYCDCAAIAM2AgggAyAANgIMIAMgATYCCAsgAkEIaiEBQaDQACAENgIAQZTQACAFNgIADBELQZDQACgCACILRQ0BIAtoQQJ0QbzSAGooAgAiACgCBEF4cSAEayEFIAAhAgNAAkAgAigCECIBRQRAIAJBFGooAgAiAUUNAQsgASgCBEF4cSAEayIDIAVJIQIgAyAFIAIbIQUgASAAIAIbIQAgASECDAELCyAAKAIYIQkgACgCDCIDIABHBEBBnNAAKAIAGiADIAAoAggiATYCCCABIAM2AgwMEAsgAEEUaiICKAIAIgFFBEAgACgCECIBRQ0DIABBEGohAgsDQCACIQcgASIDQRRqIgIoAgAiAQ0AIANBEGohAiADKAIQIgENAAsgB0EANgIADA8LQX8hBCAAQb9/Sw0AIABBE2oiAUFwcSEEQZDQACgCACIIRQ0AQQAgBGshBQJAAkACQAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIARBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgZBAnRBvNIAaigCACICRQRAQQAhAUEAIQMMAQtBACEBIARBGSAGQQF2a0EAIAZBH0cbdCEAQQAhAwNAAkAgAigCBEF4cSAEayIHIAVPDQAgAiEDIAciBQ0AQQAhBSACIQEMAwsgASACQRRqKAIAIgcgByACIABBHXZBBHFqQRBqKAIAIgJGGyABIAcbIQEgAEEBdCEAIAINAAsLIAEgA3JFBEBBACEDQQIgBnQiAEEAIABrciAIcSIARQ0DIABoQQJ0QbzSAGooAgAhAQsgAUUNAQsDQCABKAIEQXhxIARrIgIgBUkhACACIAUgABshBSABIAMgABshAyABKAIQIgAEfyAABSABQRRqKAIACyIBDQALCyADRQ0AIAVBlNAAKAIAIARrTw0AIAMoAhghByADIAMoAgwiAEcEQEGc0AAoAgAaIAAgAygCCCIBNgIIIAEgADYCDAwOCyADQRRqIgIoAgAiAUUEQCADKAIQIgFFDQMgA0EQaiECCwNAIAIhBiABIgBBFGoiAigCACIBDQAgAEEQaiECIAAoAhAiAQ0ACyAGQQA2AgAMDQtBlNAAKAIAIgMgBE8EQEGg0AAoAgAhAQJAIAMgBGsiAkEQTwRAIAEgBGoiACACQQFyNgIEIAEgA2ogAjYCACABIARBA3I2AgQMAQsgASADQQNyNgIEIAEgA2oiACAAKAIEQQFyNgIEQQAhAEEAIQILQZTQACACNgIAQaDQACAANgIAIAFBCGohAQwPC0GY0AAoAgAiAyAESwRAIAQgCWoiACADIARrIgFBAXI2AgRBpNAAIAA2AgBBmNAAIAE2AgAgCSAEQQNyNgIEIAlBCGohAQwPC0EAIQEgBAJ/QeTTACgCAARAQezTACgCAAwBC0Hw0wBCfzcCAEHo0wBCgICEgICAwAA3AgBB5NMAIApBDGpBcHFB2KrVqgVzNgIAQfjTAEEANgIAQcjTAEEANgIAQYCABAsiACAEQccAaiIFaiIGQQAgAGsiB3EiAk8EQEH80wBBMDYCAAwPCwJAQcTTACgCACIBRQ0AQbzTACgCACIIIAJqIQAgACABTSAAIAhLcQ0AQQAhAUH80wBBMDYCAAwPC0HI0wAtAABBBHENBAJAAkAgCQRAQczTACEBA0AgASgCACIAIAlNBEAgACABKAIEaiAJSw0DCyABKAIIIgENAAsLQQAQMyIAQX9GDQUgAiEGQejTACgCACIBQQFrIgMgAHEEQCACIABrIAAgA2pBACABa3FqIQYLIAQgBk8NBSAGQf7///8HSw0FQcTTACgCACIDBEBBvNMAKAIAIgcgBmohASABIAdNDQYgASADSw0GCyAGEDMiASAARw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGEDMhACAAIAEoAgAgASgCBGpGDQMgACEBCwJAIAYgBEHIAGpPDQAgAUF/Rg0AQezTACgCACIAIAUgBmtqQQAgAGtxIgBB/v///wdLBEAgASEADAcLIAAQM0F/RwRAIAAgBmohBiABIQAMBwtBACAGaxAzGgwECyABIgBBf0cNBQwDC0EAIQMMDAtBACEADAoLIABBf0cNAgtByNMAQcjTACgCAEEEcjYCAAsgAkH+////B0sNASACEDMhAEEAEDMhASAAQX9GDQEgAUF/Rg0BIAAgAU8NASABIABrIgYgBEE4ak0NAQtBvNMAQbzTACgCACAGaiIBNgIAQcDTACgCACABSQRAQcDTACABNgIACwJAAkACQEGk0AAoAgAiAgRAQczTACEBA0AgACABKAIAIgMgASgCBCIFakYNAiABKAIIIgENAAsMAgtBnNAAKAIAIgFBAEcgACABT3FFBEBBnNAAIAA2AgALQQAhAUHQ0wAgBjYCAEHM0wAgADYCAEGs0ABBfzYCAEGw0ABB5NMAKAIANgIAQdjTAEEANgIAA0AgAUHI0ABqIAFBvNAAaiICNgIAIAIgAUG00ABqIgM2AgAgAUHA0ABqIAM2AgAgAUHQ0ABqIAFBxNAAaiIDNgIAIAMgAjYCACABQdjQAGogAUHM0ABqIgI2AgAgAiADNgIAIAFB1NAAaiACNgIAIAFBIGoiAUGAAkcNAAtBeCAAa0EPcSIBIABqIgIgBkE4ayIDIAFrIgFBAXI2AgRBqNAAQfTTACgCADYCAEGY0AAgATYCAEGk0AAgAjYCACAAIANqQTg2AgQMAgsgACACTQ0AIAIgA0kNACABKAIMQQhxDQBBeCACa0EPcSIAIAJqIgNBmNAAKAIAIAZqIgcgAGsiAEEBcjYCBCABIAUgBmo2AgRBqNAAQfTTACgCADYCAEGY0AAgADYCAEGk0AAgAzYCACACIAdqQTg2AgQMAQsgAEGc0AAoAgBJBEBBnNAAIAA2AgALIAAgBmohA0HM0wAhAQJAAkACQANAIAMgASgCAEcEQCABKAIIIgENAQwCCwsgAS0ADEEIcUUNAQtBzNMAIQEDQCABKAIAIgMgAk0EQCADIAEoAgRqIgUgAksNAwsgASgCCCEBDAALAAsgASAANgIAIAEgASgCBCAGajYCBCAAQXggAGtBD3FqIgkgBEEDcjYCBCADQXggA2tBD3FqIgYgBCAJaiIEayEBIAIgBkYEQEGk0AAgBDYCAEGY0ABBmNAAKAIAIAFqIgA2AgAgBCAAQQFyNgIEDAgLQaDQACgCACAGRgRAQaDQACAENgIAQZTQAEGU0AAoAgAgAWoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAgLIAYoAgQiBUEDcUEBRw0GIAVBeHEhCCAFQf8BTQRAIAVBA3YhAyAGKAIIIgAgBigCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBwsgAiAANgIIIAAgAjYCDAwGCyAGKAIYIQcgBiAGKAIMIgBHBEAgACAGKAIIIgI2AgggAiAANgIMDAULIAZBFGoiAigCACIFRQRAIAYoAhAiBUUNBCAGQRBqIQILA0AgAiEDIAUiAEEUaiICKAIAIgUNACAAQRBqIQIgACgCECIFDQALIANBADYCAAwEC0F4IABrQQ9xIgEgAGoiByAGQThrIgMgAWsiAUEBcjYCBCAAIANqQTg2AgQgAiAFQTcgBWtBD3FqQT9rIgMgAyACQRBqSRsiA0EjNgIEQajQAEH00wAoAgA2AgBBmNAAIAE2AgBBpNAAIAc2AgAgA0EQakHU0wApAgA3AgAgA0HM0wApAgA3AghB1NMAIANBCGo2AgBB0NMAIAY2AgBBzNMAIAA2AgBB2NMAQQA2AgAgA0EkaiEBA0AgAUEHNgIAIAUgAUEEaiIBSw0ACyACIANGDQAgAyADKAIEQX5xNgIEIAMgAyACayIFNgIAIAIgBUEBcjYCBCAFQf8BTQRAIAVBeHFBtNAAaiEAAn9BjNAAKAIAIgFBASAFQQN2dCIDcUUEQEGM0AAgASADcjYCACAADAELIAAoAggLIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCAwBC0EfIQEgBUH///8HTQRAIAVBJiAFQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAQsgAiABNgIcIAJCADcCECABQQJ0QbzSAGohAEGQ0AAoAgAiA0EBIAF0IgZxRQRAIAAgAjYCAEGQ0AAgAyAGcjYCACACIAA2AhggAiACNgIIIAIgAjYCDAwBCyAFQRkgAUEBdmtBACABQR9HG3QhASAAKAIAIQMCQANAIAMiACgCBEF4cSAFRg0BIAFBHXYhAyABQQF0IQEgACADQQRxakEQaiIGKAIAIgMNAAsgBiACNgIAIAIgADYCGCACIAI2AgwgAiACNgIIDAELIAAoAggiASACNgIMIAAgAjYCCCACQQA2AhggAiAANgIMIAIgATYCCAtBmNAAKAIAIgEgBE0NAEGk0AAoAgAiACAEaiICIAEgBGsiAUEBcjYCBEGY0AAgATYCAEGk0AAgAjYCACAAIARBA3I2AgQgAEEIaiEBDAgLQQAhAUH80wBBMDYCAAwHC0EAIQALIAdFDQACQCAGKAIcIgJBAnRBvNIAaiIDKAIAIAZGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAdBEEEUIAcoAhAgBkYbaiAANgIAIABFDQELIAAgBzYCGCAGKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAGQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAIaiEBIAYgCGoiBigCBCEFCyAGIAVBfnE2AgQgASAEaiABNgIAIAQgAUEBcjYCBCABQf8BTQRAIAFBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASABQQN2dCIBcUUEQEGM0AAgASACcjYCACAADAELIAAoAggLIgEgBDYCDCAAIAQ2AgggBCAANgIMIAQgATYCCAwBC0EfIQUgAUH///8HTQRAIAFBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQsgBCAFNgIcIARCADcCECAFQQJ0QbzSAGohAEGQ0AAoAgAiAkEBIAV0IgNxRQRAIAAgBDYCAEGQ0AAgAiADcjYCACAEIAA2AhggBCAENgIIIAQgBDYCDAwBCyABQRkgBUEBdmtBACAFQR9HG3QhBSAAKAIAIQACQANAIAAiAigCBEF4cSABRg0BIAVBHXYhACAFQQF0IQUgAiAAQQRxakEQaiIDKAIAIgANAAsgAyAENgIAIAQgAjYCGCAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgCUEIaiEBDAILAkAgB0UNAAJAIAMoAhwiAUECdEG80gBqIgIoAgAgA0YEQCACIAA2AgAgAA0BQZDQACAIQX4gAXdxIgg2AgAMAgsgB0EQQRQgBygCECADRhtqIAA2AgAgAEUNAQsgACAHNgIYIAMoAhAiAQRAIAAgATYCECABIAA2AhgLIANBFGooAgAiAUUNACAAQRRqIAE2AgAgASAANgIYCwJAIAVBD00EQCADIAQgBWoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARqIgIgBUEBcjYCBCADIARBA3I2AgQgAiAFaiAFNgIAIAVB/wFNBEAgBUF4cUG00ABqIQACf0GM0AAoAgAiAUEBIAVBA3Z0IgVxRQRAQYzQACABIAVyNgIAIAAMAQsgACgCCAsiASACNgIMIAAgAjYCCCACIAA2AgwgAiABNgIIDAELQR8hASAFQf///wdNBEAgBUEmIAVBCHZnIgBrdkEBcSAAQQF0a0E+aiEBCyACIAE2AhwgAkIANwIQIAFBAnRBvNIAaiEAQQEgAXQiBCAIcUUEQCAAIAI2AgBBkNAAIAQgCHI2AgAgAiAANgIYIAIgAjYCCCACIAI2AgwMAQsgBUEZIAFBAXZrQQAgAUEfRxt0IQEgACgCACEEAkADQCAEIgAoAgRBeHEgBUYNASABQR12IQQgAUEBdCEBIAAgBEEEcWpBEGoiBigCACIEDQALIAYgAjYCACACIAA2AhggAiACNgIMIAIgAjYCCAwBCyAAKAIIIgEgAjYCDCAAIAI2AgggAkEANgIYIAIgADYCDCACIAE2AggLIANBCGohAQwBCwJAIAlFDQACQCAAKAIcIgFBAnRBvNIAaiICKAIAIABGBEAgAiADNgIAIAMNAUGQ0AAgC0F+IAF3cTYCAAwCCyAJQRBBFCAJKAIQIABGG2ogAzYCACADRQ0BCyADIAk2AhggACgCECIBBEAgAyABNgIQIAEgAzYCGAsgAEEUaigCACIBRQ0AIANBFGogATYCACABIAM2AhgLAkAgBUEPTQRAIAAgBCAFaiIBQQNyNgIEIAAgAWoiASABKAIEQQFyNgIEDAELIAAgBGoiByAFQQFyNgIEIAAgBEEDcjYCBCAFIAdqIAU2AgAgCARAIAhBeHFBtNAAaiEBQaDQACgCACEDAn9BASAIQQN2dCICIAZxRQRAQYzQACACIAZyNgIAIAEMAQsgASgCCAsiAiADNgIMIAEgAzYCCCADIAE2AgwgAyACNgIIC0Gg0AAgBzYCAEGU0AAgBTYCAAsgAEEIaiEBCyAKQRBqJAAgAQtDACAARQRAPwBBEHQPCwJAIABB//8DcQ0AIABBAEgNACAAQRB2QAAiAEF/RgRAQfzTAEEwNgIAQX8PCyAAQRB0DwsACwvcPyIAQYAICwkBAAAAAgAAAAMAQZQICwUEAAAABQBBpAgLCQYAAAAHAAAACABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var xu=f((ZM,Tu)=>{"use strict";var{Buffer:i0}=d("node:buffer");Tu.exports=i0.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var Fr=f((zM,Ou)=>{"use strict";var Yu=["GET","HEAD","POST"],a0=new Set(Yu),c0=[101,204,205,304],Gu=[301,302,303,307,308],g0=new Set(Gu),Ju=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],u0=new Set(Ju),vu=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],l0=new Set(vu),E0=["follow","manual","error"],Hu=["GET","HEAD","OPTIONS","TRACE"],Q0=new Set(Hu),B0=["navigate","same-origin","no-cors","cors"],I0=["omit","same-origin","include"],C0=["default","no-store","reload","no-cache","force-cache","only-if-cached"],h0=["content-encoding","content-language","content-location","content-type","content-length"],d0=["half"],Vu=["CONNECT","TRACE","TRACK"],f0=new Set(Vu),qu=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],p0=new Set(qu);Ou.exports={subresource:qu,forbiddenMethods:Vu,requestBodyHeader:h0,referrerPolicy:vu,requestRedirect:E0,requestMode:B0,requestCredentials:I0,requestCache:C0,redirectStatus:Gu,corsSafeListedMethods:Yu,nullBodyStatus:c0,safeMethods:Hu,badPorts:Ju,requestDuplex:d0,subresourceSet:p0,badPortsSet:u0,redirectStatusSet:g0,corsSafeListedMethodsSet:a0,safeMethodsSet:Q0,forbiddenMethodsSet:f0,referrerPolicySet:l0}});var yi=f((KM,Wu)=>{"use strict";var mi=Symbol.for("undici.globalOrigin.1");function w0(){return globalThis[mi]}function m0(A){if(A===void 0){Object.defineProperty(globalThis,mi,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let e=new URL(A);if(e.protocol!=="http:"&&e.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${e.protocol}`);Object.defineProperty(globalThis,mi,{value:e,writable:!0,enumerable:!1,configurable:!1})}Wu.exports={getGlobalOrigin:w0,setGlobalOrigin:m0}});var he=f((XM,$u)=>{"use strict";var Vn=d("node:assert"),y0=new TextEncoder,Sr=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,D0=/[\u000A\u000D\u0009\u0020]/,b0=/[\u0009\u000A\u000C\u000D\u0020]/g,k0=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function R0(A){Vn(A.protocol==="data:");let e=Zu(A,!0);e=e.slice(5);let t={position:0},r=Lt(",",e,t),n=r.length;if(r=L0(r,!0,!0),t.position>=e.length)return"failure";t.position++;let s=e.slice(n+1),o=zu(s);if(/;(\u0020){0,}base64$/i.test(r)){let a=Xu(o);if(o=S0(a),o==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let i=Di(r);return i==="failure"&&(i=Di("text/plain;charset=US-ASCII")),{mimeType:i,body:o}}function Zu(A,e=!1){if(!e)return A.href;let t=A.href,r=A.hash.length,n=r===0?t:t.substring(0,t.length-r);return!r&&t.endsWith("#")?n.slice(0,-1):n}function qn(A,e,t){let r="";for(;t.position<e.length&&A(e[t.position]);)r+=e[t.position],t.position++;return r}function Lt(A,e,t){let r=e.indexOf(A,t.position),n=t.position;return r===-1?(t.position=e.length,e.slice(n)):(t.position=r,e.slice(n,t.position))}function zu(A){let e=y0.encode(A);return F0(e)}function Pu(A){return A>=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102}function _u(A){return A>=48&&A<=57?A-48:(A&223)-55}function F0(A){let e=A.length,t=new Uint8Array(e),r=0;for(let n=0;n<e;++n){let s=A[n];s!==37?t[r++]=s:s===37&&!(Pu(A[n+1])&&Pu(A[n+2]))?t[r++]=37:(t[r++]=_u(A[n+1])<<4|_u(A[n+2]),n+=2)}return e===r?t:t.subarray(0,r)}function Di(A){A=Hn(A,!0,!0);let e={position:0},t=Lt("/",A,e);if(t.length===0||!Sr.test(t)||e.position>A.length)return"failure";e.position++;let r=Lt(";",A,e);if(r=Hn(r,!1,!0),r.length===0||!Sr.test(r))return"failure";let n=t.toLowerCase(),s=r.toLowerCase(),o={type:n,subtype:s,parameters:new Map,essence:`${n}/${s}`};for(;e.position<A.length;){e.position++,qn(c=>D0.test(c),A,e);let i=qn(c=>c!==";"&&c!=="=",A,e);if(i=i.toLowerCase(),e.position<A.length){if(A[e.position]===";")continue;e.position++}if(e.position>A.length)break;let a=null;if(A[e.position]==='"')a=Ku(A,e,!0),Lt(";",A,e);else if(a=Lt(";",A,e),a=Hn(a,!1,!0),a.length===0)continue;i.length!==0&&Sr.test(i)&&(a.length===0||k0.test(a))&&!o.parameters.has(i)&&o.parameters.set(i,a)}return o}function S0(A){A=A.replace(b0,"");let e=A.length;if(e%4===0&&A.charCodeAt(e-1)===61&&(--e,A.charCodeAt(e-1)===61&&--e),e%4===1||/[^+/0-9A-Za-z]/.test(A.length===e?A:A.substring(0,e)))return"failure";let t=Buffer.from(A,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function Ku(A,e,t){let r=e.position,n="";for(Vn(A[e.position]==='"'),e.position++;n+=qn(o=>o!=='"'&&o!=="\\",A,e),!(e.position>=A.length);){let s=A[e.position];if(e.position++,s==="\\"){if(e.position>=A.length){n+="\\";break}n+=A[e.position],e.position++}else{Vn(s==='"');break}}return t?n:A.slice(r,e.position)}function N0(A){Vn(A!=="failure");let{parameters:e,essence:t}=A,r=t;for(let[n,s]of e.entries())r+=";",r+=n,r+="=",Sr.test(s)||(s=s.replace(/(\\|")/g,"\\$1"),s='"'+s,s+='"'),r+=s;return r}function U0(A){return A===13||A===10||A===9||A===32}function Hn(A,e=!0,t=!0){return bi(A,e,t,U0)}function M0(A){return A===13||A===10||A===9||A===12||A===32}function L0(A,e=!0,t=!0){return bi(A,e,t,M0)}function bi(A,e,t,r){let n=0,s=A.length-1;if(e)for(;n<A.length&&r(A.charCodeAt(n));)n++;if(t)for(;s>0&&r(A.charCodeAt(s));)s--;return n===0&&s===A.length-1?A:A.slice(n,s+1)}function Xu(A){let e=A.length;if(65535>e)return String.fromCharCode.apply(null,A);let t="",r=0,n=65535;for(;r<e;)r+n>e&&(n=e-r),t+=String.fromCharCode.apply(null,A.subarray(r,r+=n));return t}function T0(A){switch(A.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return A.subtype.endsWith("+json")?"application/json":A.subtype.endsWith("+xml")?"application/xml":""}$u.exports={dataURLProcessor:R0,URLSerializer:Zu,collectASequenceOfCodePoints:qn,collectASequenceOfCodePointsFast:Lt,stringPercentDecode:zu,parseMIMEType:Di,collectAnHTTPQuotedString:Ku,serializeAMimeType:N0,removeChars:bi,removeHTTPWhitespace:Hn,minimizeSupportedMimeType:T0,HTTP_TOKEN_CODEPOINTS:Sr,isomorphicDecode:Xu}});var ge=f(($M,ju)=>{"use strict";var{types:tA,inspect:x0}=d("node:util"),{markAsUncloneable:Y0}=d("node:worker_threads"),{toUSVString:G0}=T(),p={};p.converters={};p.util={};p.errors={};p.errors.exception=function(A){return new TypeError(`${A.header}: ${A.message}`)};p.errors.conversionFailed=function(A){let e=A.types.length===1?"":" one of",t=`${A.argument} could not be converted to${e}: ${A.types.join(", ")}.`;return p.errors.exception({header:A.prefix,message:t})};p.errors.invalidArgument=function(A){return p.errors.exception({header:A.prefix,message:`"${A.value}" is an invalid ${A.type}.`})};p.brandCheck=function(A,e,t){if(t?.strict!==!1){if(!(A instanceof e)){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}}else if(A?.[Symbol.toStringTag]!==e.prototype[Symbol.toStringTag]){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}};p.argumentLengthCheck=function({length:A},e,t){if(A<e)throw p.errors.exception({message:`${e} argument${e!==1?"s":""} required, but${A?" only":""} ${A} found.`,header:t})};p.illegalConstructor=function(){throw p.errors.exception({header:"TypeError",message:"Illegal constructor"})};p.util.Type=function(A){switch(typeof A){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return A===null?"Null":"Object"}};p.util.markAsUncloneable=Y0||(()=>{});p.util.ConvertToInt=function(A,e,t,r){let n,s;e===64?(n=Math.pow(2,53)-1,t==="unsigned"?s=0:s=Math.pow(-2,53)+1):t==="unsigned"?(s=0,n=Math.pow(2,e)-1):(s=Math.pow(-2,e)-1,n=Math.pow(2,e-1)-1);let o=Number(A);if(o===0&&(o=0),r?.enforceRange===!0){if(Number.isNaN(o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY)throw p.errors.exception({header:"Integer conversion",message:`Could not convert ${p.util.Stringify(A)} to an integer.`});if(o=p.util.IntegerPart(o),o<s||o>n)throw p.errors.exception({header:"Integer conversion",message:`Value must be between ${s}-${n}, got ${o}.`});return o}return!Number.isNaN(o)&&r?.clamp===!0?(o=Math.min(Math.max(o,s),n),Math.floor(o)%2===0?o=Math.floor(o):o=Math.ceil(o),o):Number.isNaN(o)||o===0&&Object.is(0,o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY?0:(o=p.util.IntegerPart(o),o=o%Math.pow(2,e),t==="signed"&&o>=Math.pow(2,e)-1?o-Math.pow(2,e):o)};p.util.IntegerPart=function(A){let e=Math.floor(Math.abs(A));return A<0?-1*e:e};p.util.Stringify=function(A){switch(p.util.Type(A)){case"Symbol":return`Symbol(${A.description})`;case"Object":return x0(A);case"String":return`"${A}"`;default:return`${A}`}};p.sequenceConverter=function(A){return(e,t,r,n)=>{if(p.util.Type(e)!=="Object")throw p.errors.exception({header:t,message:`${r} (${p.util.Stringify(e)}) is not iterable.`});let s=typeof n=="function"?n():e?.[Symbol.iterator]?.(),o=[],i=0;if(s===void 0||typeof s.next!="function")throw p.errors.exception({header:t,message:`${r} is not iterable.`});for(;;){let{done:a,value:c}=s.next();if(a)break;o.push(A(c,t,`${r}[${i++}]`))}return o}};p.recordConverter=function(A,e){return(t,r,n)=>{if(p.util.Type(t)!=="Object")throw p.errors.exception({header:r,message:`${n} ("${p.util.Type(t)}") is not an Object.`});let s={};if(!tA.isProxy(t)){let i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(let a of i){let c=A(a,r,n),u=e(t[a],r,n);s[c]=u}return s}let o=Reflect.ownKeys(t);for(let i of o)if(Reflect.getOwnPropertyDescriptor(t,i)?.enumerable){let c=A(i,r,n),u=e(t[i],r,n);s[c]=u}return s}};p.interfaceConverter=function(A){return(e,t,r,n)=>{if(n?.strict!==!1&&!(e instanceof A))throw p.errors.exception({header:t,message:`Expected ${r} ("${p.util.Stringify(e)}") to be an instance of ${A.name}.`});return e}};p.dictionaryConverter=function(A){return(e,t,r)=>{let n=p.util.Type(e),s={};if(n==="Null"||n==="Undefined")return s;if(n!=="Object")throw p.errors.exception({header:t,message:`Expected ${e} to be one of: Null, Undefined, Object.`});for(let o of A){let{key:i,defaultValue:a,required:c,converter:u}=o;if(c===!0&&!Object.hasOwn(e,i))throw p.errors.exception({header:t,message:`Missing required key "${i}".`});let g=e[i],l=Object.hasOwn(o,"defaultValue");if(l&&g!==null&&(g??=a()),c||l||g!==void 0){if(g=u(g,t,`${r}.${i}`),o.allowedValues&&!o.allowedValues.includes(g))throw p.errors.exception({header:t,message:`${g} is not an accepted type. Expected one of ${o.allowedValues.join(", ")}.`});s[i]=g}}return s}};p.nullableConverter=function(A){return(e,t,r)=>e===null?e:A(e,t,r)};p.converters.DOMString=function(A,e,t,r){if(A===null&&r?.legacyNullToEmptyString)return"";if(typeof A=="symbol")throw p.errors.exception({header:e,message:`${t} is a symbol, which cannot be converted to a DOMString.`});return String(A)};p.converters.ByteString=function(A,e,t){let r=p.converters.DOMString(A,e,t);for(let n=0;n<r.length;n++)if(r.charCodeAt(n)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${n} has a value of ${r.charCodeAt(n)} which is greater than 255.`);return r};p.converters.USVString=G0;p.converters.boolean=function(A){return!!A};p.converters.any=function(A){return A};p.converters["long long"]=function(A,e,t){return p.util.ConvertToInt(A,64,"signed",void 0,e,t)};p.converters["unsigned long long"]=function(A,e,t){return p.util.ConvertToInt(A,64,"unsigned",void 0,e,t)};p.converters["unsigned long"]=function(A,e,t){return p.util.ConvertToInt(A,32,"unsigned",void 0,e,t)};p.converters["unsigned short"]=function(A,e,t,r){return p.util.ConvertToInt(A,16,"unsigned",r,e,t)};p.converters.ArrayBuffer=function(A,e,t,r){if(p.util.Type(A)!=="Object"||!tA.isAnyArrayBuffer(A))throw p.errors.conversionFailed({prefix:e,argument:`${t} ("${p.util.Stringify(A)}")`,types:["ArrayBuffer"]});if(r?.allowShared===!1&&tA.isSharedArrayBuffer(A))throw p.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.resizable||A.growable)throw p.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};p.converters.TypedArray=function(A,e,t,r,n){if(p.util.Type(A)!=="Object"||!tA.isTypedArray(A)||A.constructor.name!==e.name)throw p.errors.conversionFailed({prefix:t,argument:`${r} ("${p.util.Stringify(A)}")`,types:[e.name]});if(n?.allowShared===!1&&tA.isSharedArrayBuffer(A.buffer))throw p.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.buffer.resizable||A.buffer.growable)throw p.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};p.converters.DataView=function(A,e,t,r){if(p.util.Type(A)!=="Object"||!tA.isDataView(A))throw p.errors.exception({header:e,message:`${t} is not a DataView.`});if(r?.allowShared===!1&&tA.isSharedArrayBuffer(A.buffer))throw p.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(A.buffer.resizable||A.buffer.growable)throw p.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return A};p.converters.BufferSource=function(A,e,t,r){if(tA.isAnyArrayBuffer(A))return p.converters.ArrayBuffer(A,e,t,{...r,allowShared:!1});if(tA.isTypedArray(A))return p.converters.TypedArray(A,A.constructor,e,t,{...r,allowShared:!1});if(tA.isDataView(A))return p.converters.DataView(A,e,t,{...r,allowShared:!1});throw p.errors.conversionFailed({prefix:e,argument:`${t} ("${p.util.Stringify(A)}")`,types:["BufferSource"]})};p.converters["sequence<ByteString>"]=p.sequenceConverter(p.converters.ByteString);p.converters["sequence<sequence<ByteString>>"]=p.sequenceConverter(p.converters["sequence<ByteString>"]);p.converters["record<ByteString, ByteString>"]=p.recordConverter(p.converters.ByteString,p.converters.ByteString);ju.exports={webidl:p}});var De=f((jM,El)=>{"use strict";var{Transform:J0}=d("node:stream"),el=d("node:zlib"),{redirectStatusSet:v0,referrerPolicySet:H0,badPortsSet:V0}=Fr(),{getGlobalOrigin:Al}=yi(),{collectASequenceOfCodePoints:et,collectAnHTTPQuotedString:q0,removeChars:O0,parseMIMEType:W0}=he(),{performance:P0}=d("node:perf_hooks"),{isBlobLike:_0,ReadableStreamFrom:Z0,isValidHTTPToken:tl,normalizedMethodRecordsBase:z0}=T(),At=d("node:assert"),{isUint8Array:K0}=d("node:util/types"),{webidl:Nr}=ge(),rl=[],Wn;try{Wn=d("node:crypto");let A=["sha256","sha384","sha512"];rl=Wn.getHashes().filter(e=>A.includes(e))}catch{}function nl(A){let e=A.urlList,t=e.length;return t===0?null:e[t-1].toString()}function X0(A,e){if(!v0.has(A.status))return null;let t=A.headersList.get("location",!0);return t!==null&&ol(t)&&(sl(t)||(t=$0(t)),t=new URL(t,nl(A))),t&&!t.hash&&(t.hash=e),t}function sl(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t>126||t<32)return!1}return!0}function $0(A){return Buffer.from(A,"binary").toString("utf8")}function Mr(A){return A.urlList[A.urlList.length-1]}function j0(A){let e=Mr(A);return ul(e)&&V0.has(e.port)?"blocked":"allowed"}function ep(A){return A instanceof Error||A?.constructor?.name==="Error"||A?.constructor?.name==="DOMException"}function Ap(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}var tp=tl;function ol(A){return(A[0]===" "||A[0]===" "||A[A.length-1]===" "||A[A.length-1]===" "||A.includes(`
|
|
2
|
+
`)||A.includes("\r")||A.includes("\0"))===!1}function rp(A,e){let{headersList:t}=e,r=(t.get("referrer-policy",!0)??"").split(","),n="";if(r.length>0)for(let s=r.length;s!==0;s--){let o=r[s-1].trim();if(H0.has(o)){n=o;break}}n!==""&&(A.referrerPolicy=n)}function np(){return"allowed"}function sp(){return"success"}function op(){return"success"}function ip(A){let e=null;e=A.mode,A.headersList.set("sec-fetch-mode",e,!0)}function ap(A){let e=A.origin;if(!(e==="client"||e===void 0)){if(A.responseTainting==="cors"||A.mode==="websocket")A.headersList.append("origin",e,!0);else if(A.method!=="GET"&&A.method!=="HEAD"){switch(A.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":A.origin&&Ri(A.origin)&&!Ri(Mr(A))&&(e=null);break;case"same-origin":Pn(A,Mr(A))||(e=null);break;default:}A.headersList.append("origin",e,!0)}}}function Tt(A,e){return A}function cp(A,e,t){return!A?.startTime||A.startTime<e?{domainLookupStartTime:e,domainLookupEndTime:e,connectionStartTime:e,connectionEndTime:e,secureConnectionStartTime:e,ALPNNegotiatedProtocol:A?.ALPNNegotiatedProtocol}:{domainLookupStartTime:Tt(A.domainLookupStartTime,t),domainLookupEndTime:Tt(A.domainLookupEndTime,t),connectionStartTime:Tt(A.connectionStartTime,t),connectionEndTime:Tt(A.connectionEndTime,t),secureConnectionStartTime:Tt(A.secureConnectionStartTime,t),ALPNNegotiatedProtocol:A.ALPNNegotiatedProtocol}}function gp(A){return Tt(P0.now(),A)}function up(A){return{startTime:A.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:A.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function il(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function lp(A){return{referrerPolicy:A.referrerPolicy}}function Ep(A){let e=A.referrerPolicy;At(e);let t=null;if(A.referrer==="client"){let i=Al();if(!i||i.origin==="null")return"no-referrer";t=new URL(i)}else A.referrer instanceof URL&&(t=A.referrer);let r=ki(t),n=ki(t,!0);r.toString().length>4096&&(r=n);let s=Pn(A,r),o=Ur(r)&&!Ur(A.url);switch(e){case"origin":return n??ki(t,!0);case"unsafe-url":return r;case"same-origin":return s?n:"no-referrer";case"origin-when-cross-origin":return s?r:n;case"strict-origin-when-cross-origin":{let i=Mr(A);return Pn(r,i)?r:Ur(r)&&!Ur(i)?"no-referrer":n}default:return o?"no-referrer":n}}function ki(A,e){return At(A instanceof URL),A=new URL(A),A.protocol==="file:"||A.protocol==="about:"||A.protocol==="blank:"?"no-referrer":(A.username="",A.password="",A.hash="",e&&(A.pathname="",A.search=""),A)}function Ur(A){if(!(A instanceof URL))return!1;if(A.href==="about:blank"||A.href==="about:srcdoc"||A.protocol==="data:"||A.protocol==="file:")return!0;return e(A.origin);function e(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function Qp(A,e){if(Wn===void 0)return!0;let t=al(e);if(t==="no metadata"||t.length===0)return!0;let r=Ip(t),n=Cp(t,r);for(let s of n){let o=s.algo,i=s.hash,a=Wn.createHash(o).update(A).digest("base64");if(a[a.length-1]==="="&&(a[a.length-2]==="="?a=a.slice(0,-2):a=a.slice(0,-1)),hp(a,i))return!0}return!1}var Bp=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function al(A){let e=[],t=!0;for(let r of A.split(" ")){t=!1;let n=Bp.exec(r);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();rl.includes(s)&&e.push(n.groups)}return t===!0?"no metadata":e}function Ip(A){let e=A[0].algo;if(e[3]==="5")return e;for(let t=1;t<A.length;++t){let r=A[t];if(r.algo[3]==="5"){e="sha512";break}else{if(e[3]==="3")continue;r.algo[3]==="3"&&(e="sha384")}}return e}function Cp(A,e){if(A.length===1)return A;let t=0;for(let r=0;r<A.length;++r)A[r].algo===e&&(A[t++]=A[r]);return A.length=t,A}function hp(A,e){if(A.length!==e.length)return!1;for(let t=0;t<A.length;++t)if(A[t]!==e[t]){if(A[t]==="+"&&e[t]==="-"||A[t]==="/"&&e[t]==="_")continue;return!1}return!0}function dp(A){}function Pn(A,e){return A.origin===e.origin&&A.origin==="null"||A.protocol===e.protocol&&A.hostname===e.hostname&&A.port===e.port}function fp(){let A,e;return{promise:new Promise((r,n)=>{A=r,e=n}),resolve:A,reject:e}}function pp(A){return A.controller.state==="aborted"}function wp(A){return A.controller.state==="aborted"||A.controller.state==="terminated"}function mp(A){return z0[A.toLowerCase()]??A}function yp(A){let e=JSON.stringify(A);if(e===void 0)throw new TypeError("Value is not JSON serializable");return At(typeof e=="string"),e}var Dp=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function cl(A,e,t=0,r=1){class n{#e;#A;#t;constructor(o,i){this.#e=o,this.#A=i,this.#t=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${A} Iterator.`);let o=this.#t,i=this.#e[e],a=i.length;if(o>=a)return{value:void 0,done:!0};let{[t]:c,[r]:u}=i[o];this.#t=o+1;let g;switch(this.#A){case"key":g=c;break;case"value":g=u;break;case"key+value":g=[c,u];break}return{value:g,done:!1}}}return delete n.prototype.constructor,Object.setPrototypeOf(n.prototype,Dp),Object.defineProperties(n.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${A} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(s,o){return new n(s,o)}}function bp(A,e,t,r=0,n=1){let s=cl(A,t,r,n),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Nr.brandCheck(this,e),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Nr.brandCheck(this,e),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Nr.brandCheck(this,e),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,c=globalThis){if(Nr.brandCheck(this,e),Nr.argumentLengthCheck(arguments,1,`${A}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${A}': parameter 1 is not of type 'Function'.`);for(let{0:u,1:g}of s(this,"key+value"))a.call(c,g,u,this)}}};return Object.defineProperties(e.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}async function kp(A,e,t){let r=e,n=t,s;try{s=A.stream.getReader()}catch(o){n(o);return}try{r(await gl(s))}catch(o){n(o)}}function Rp(A){return A instanceof ReadableStream||A[Symbol.toStringTag]==="ReadableStream"&&typeof A.tee=="function"}function Fp(A){try{A.close(),A.byobRequest?.respond(0)}catch(e){if(!e.message.includes("Controller is already closed")&&!e.message.includes("ReadableStream is already closed"))throw e}}var Sp=/[^\x00-\xFF]/;function On(A){return At(!Sp.test(A)),A}async function gl(A){let e=[],t=0;for(;;){let{done:r,value:n}=await A.read();if(r)return Buffer.concat(e,t);if(!K0(n))throw new TypeError("Received non-Uint8Array chunk");e.push(n),t+=n.length}}function Np(A){At("protocol"in A);let e=A.protocol;return e==="about:"||e==="blob:"||e==="data:"}function Ri(A){return typeof A=="string"&&A[5]===":"&&A[0]==="h"&&A[1]==="t"&&A[2]==="t"&&A[3]==="p"&&A[4]==="s"||A.protocol==="https:"}function ul(A){At("protocol"in A);let e=A.protocol;return e==="http:"||e==="https:"}function Up(A,e){let t=A;if(!t.startsWith("bytes"))return"failure";let r={position:5};if(e&&et(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==61)return"failure";r.position++,e&&et(a=>a===" "||a===" ",t,r);let n=et(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),s=n.length?Number(n):null;if(e&&et(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==45)return"failure";r.position++,e&&et(a=>a===" "||a===" ",t,r);let o=et(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),i=o.length?Number(o):null;return r.position<t.length||i===null&&s===null||s>i?"failure":{rangeStartValue:s,rangeEndValue:i}}function Mp(A,e,t){let r="bytes ";return r+=On(`${A}`),r+="-",r+=On(`${e}`),r+="/",r+=On(`${t}`),r}var Fi=class extends J0{#e;constructor(e){super(),this.#e=e}_transform(e,t,r){if(!this._inflateStream){if(e.length===0){r();return}this._inflateStream=(e[0]&15)===8?el.createInflate(this.#e):el.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",n=>this.destroy(n))}this._inflateStream.write(e,t,r)}_final(e){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),e()}};function Lp(A){return new Fi(A)}function Tp(A){let e=null,t=null,r=null,n=ll("content-type",A);if(n===null)return"failure";for(let s of n){let o=W0(s);o==="failure"||o.essence==="*/*"||(r=o,r.essence!==t?(e=null,r.parameters.has("charset")&&(e=r.parameters.get("charset")),t=r.essence):!r.parameters.has("charset")&&e!==null&&r.parameters.set("charset",e))}return r??"failure"}function xp(A){let e=A,t={position:0},r=[],n="";for(;t.position<e.length;){if(n+=et(s=>s!=='"'&&s!==",",e,t),t.position<e.length)if(e.charCodeAt(t.position)===34){if(n+=q0(e,t),t.position<e.length)continue}else At(e.charCodeAt(t.position)===44),t.position++;n=O0(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function ll(A,e){let t=e.get(A,!0);return t===null?null:xp(t)}var Yp=new TextDecoder;function Gp(A){return A.length===0?"":(A[0]===239&&A[1]===187&&A[2]===191&&(A=A.subarray(3)),Yp.decode(A))}var Si=class{get baseUrl(){return Al()}get origin(){return this.baseUrl?.origin}policyContainer=il()},Ni=class{settingsObject=new Si},Jp=new Ni;El.exports={isAborted:pp,isCancelled:wp,isValidEncodedURL:sl,createDeferredPromise:fp,ReadableStreamFrom:Z0,tryUpgradeRequestToAPotentiallyTrustworthyURL:dp,clampAndCoarsenConnectionTimingInfo:cp,coarsenedSharedCurrentTime:gp,determineRequestsReferrer:Ep,makePolicyContainer:il,clonePolicyContainer:lp,appendFetchMetadata:ip,appendRequestOriginHeader:ap,TAOCheck:op,corsCheck:sp,crossOriginResourcePolicyCheck:np,createOpaqueTimingInfo:up,setRequestReferrerPolicyOnRedirect:rp,isValidHTTPToken:tl,requestBadPort:j0,requestCurrentURL:Mr,responseURL:nl,responseLocationURL:X0,isBlobLike:_0,isURLPotentiallyTrustworthy:Ur,isValidReasonPhrase:Ap,sameOrigin:Pn,normalizeMethod:mp,serializeJavascriptValueToJSONString:yp,iteratorMixin:bp,createIterator:cl,isValidHeaderName:tp,isValidHeaderValue:ol,isErrorLike:ep,fullyReadBody:kp,bytesMatch:Qp,isReadableStreamLike:Rp,readableStreamClose:Fp,isomorphicEncode:On,urlIsLocal:Np,urlHasHttpsScheme:Ri,urlIsHttpHttpsScheme:ul,readAllBytes:gl,simpleRangeHeaderValue:Up,buildContentRange:Mp,parseMetadata:al,createInflate:Lp,extractMimeType:Tp,getDecodeSplit:ll,utf8DecodeBytes:Gp,environmentSettingsObject:Jp}});var SA=f((eL,Ql)=>{"use strict";Ql.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var Mi=f((AL,Bl)=>{"use strict";var{Blob:vp,File:Hp}=d("node:buffer"),{kState:hA}=SA(),{webidl:rA}=ge(),Ui=class A{constructor(e,t,r={}){let n=t,s=r.type,o=r.lastModified??Date.now();this[hA]={blobLike:e,name:n,type:s,lastModified:o}}stream(...e){return rA.brandCheck(this,A),this[hA].blobLike.stream(...e)}arrayBuffer(...e){return rA.brandCheck(this,A),this[hA].blobLike.arrayBuffer(...e)}slice(...e){return rA.brandCheck(this,A),this[hA].blobLike.slice(...e)}text(...e){return rA.brandCheck(this,A),this[hA].blobLike.text(...e)}get size(){return rA.brandCheck(this,A),this[hA].blobLike.size}get type(){return rA.brandCheck(this,A),this[hA].blobLike.type}get name(){return rA.brandCheck(this,A),this[hA].name}get lastModified(){return rA.brandCheck(this,A),this[hA].lastModified}get[Symbol.toStringTag](){return"File"}};rA.converters.Blob=rA.interfaceConverter(vp);function Vp(A){return A instanceof Hp||A&&(typeof A.stream=="function"||typeof A.arrayBuffer=="function")&&A[Symbol.toStringTag]==="File"}Bl.exports={FileLike:Ui,isFileLike:Vp}});var Tr=f((tL,fl)=>{"use strict";var{isBlobLike:_n,iteratorMixin:qp}=De(),{kState:Be}=SA(),{kEnumerableProperty:xt}=T(),{FileLike:Il,isFileLike:Op}=Mi(),{webidl:z}=ge(),{File:dl}=d("node:buffer"),Cl=d("node:util"),hl=globalThis.File??dl,Lr=class A{constructor(e){if(z.util.markAsUncloneable(this),e!==void 0)throw z.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[Be]=[]}append(e,t,r=void 0){z.brandCheck(this,A);let n="FormData.append";if(z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!_n(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");e=z.converters.USVString(e,n,"name"),t=_n(t)?z.converters.Blob(t,n,"value",{strict:!1}):z.converters.USVString(t,n,"value"),r=arguments.length===3?z.converters.USVString(r,n,"filename"):void 0;let s=Li(e,t,r);this[Be].push(s)}delete(e){z.brandCheck(this,A);let t="FormData.delete";z.argumentLengthCheck(arguments,1,t),e=z.converters.USVString(e,t,"name"),this[Be]=this[Be].filter(r=>r.name!==e)}get(e){z.brandCheck(this,A);let t="FormData.get";z.argumentLengthCheck(arguments,1,t),e=z.converters.USVString(e,t,"name");let r=this[Be].findIndex(n=>n.name===e);return r===-1?null:this[Be][r].value}getAll(e){z.brandCheck(this,A);let t="FormData.getAll";return z.argumentLengthCheck(arguments,1,t),e=z.converters.USVString(e,t,"name"),this[Be].filter(r=>r.name===e).map(r=>r.value)}has(e){z.brandCheck(this,A);let t="FormData.has";return z.argumentLengthCheck(arguments,1,t),e=z.converters.USVString(e,t,"name"),this[Be].findIndex(r=>r.name===e)!==-1}set(e,t,r=void 0){z.brandCheck(this,A);let n="FormData.set";if(z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!_n(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");e=z.converters.USVString(e,n,"name"),t=_n(t)?z.converters.Blob(t,n,"name",{strict:!1}):z.converters.USVString(t,n,"name"),r=arguments.length===3?z.converters.USVString(r,n,"name"):void 0;let s=Li(e,t,r),o=this[Be].findIndex(i=>i.name===e);o!==-1?this[Be]=[...this[Be].slice(0,o),s,...this[Be].slice(o+1).filter(i=>i.name!==e)]:this[Be].push(s)}[Cl.inspect.custom](e,t){let r=this[Be].reduce((s,o)=>(s[o.name]?Array.isArray(s[o.name])?s[o.name].push(o.value):s[o.name]=[s[o.name],o.value]:s[o.name]=o.value,s),{__proto__:null});t.depth??=e,t.colors??=!0;let n=Cl.formatWithOptions(t,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}};qp("FormData",Lr,Be,"name","value");Object.defineProperties(Lr.prototype,{append:xt,delete:xt,get:xt,getAll:xt,has:xt,set:xt,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Li(A,e,t){if(typeof e!="string"){if(Op(e)||(e=e instanceof Blob?new hl([e],"blob",{type:e.type}):new Il(e,"blob",{type:e.type})),t!==void 0){let r={type:e.type,lastModified:e.lastModified};e=e instanceof dl?new hl([e],t,r):new Il(e,t,r)}}return{name:A,value:e}}fl.exports={FormData:Lr,makeEntry:Li}});var bl=f((rL,Dl)=>{"use strict";var{isUSVString:pl,bufferToLowerCasedHeaderName:Wp}=T(),{utf8DecodeBytes:Pp}=De(),{HTTP_TOKEN_CODEPOINTS:_p,isomorphicDecode:wl}=he(),{isFileLike:Zp}=Mi(),{makeEntry:zp}=Tr(),Zn=d("node:assert"),{File:Kp}=d("node:buffer"),Xp=globalThis.File??Kp,$p=Buffer.from('form-data; name="'),ml=Buffer.from("; filename"),jp=Buffer.from("--"),ew=Buffer.from(`--\r
|
|
3
|
+
`);function Aw(A){for(let e=0;e<A.length;++e)if((A.charCodeAt(e)&-128)!==0)return!1;return!0}function tw(A){let e=A.length;if(e<27||e>70)return!1;for(let t=0;t<e;++t){let r=A.charCodeAt(t);if(!(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===39||r===45||r===95))return!1}return!0}function rw(A,e){Zn(e!=="failure"&&e.essence==="multipart/form-data");let t=e.parameters.get("boundary");if(t===void 0)return"failure";let r=Buffer.from(`--${t}`,"utf8"),n=[],s={position:0};for(;A[s.position]===13&&A[s.position+1]===10;)s.position+=2;let o=A.length;for(;A[o-1]===10&&A[o-2]===13;)o-=2;for(o!==A.length&&(A=A.subarray(0,o));;){if(A.subarray(s.position,s.position+r.length).equals(r))s.position+=r.length;else return"failure";if(s.position===A.length-2&&zn(A,jp,s)||s.position===A.length-4&&zn(A,ew,s))return n;if(A[s.position]!==13||A[s.position+1]!==10)return"failure";s.position+=2;let i=nw(A,s);if(i==="failure")return"failure";let{name:a,filename:c,contentType:u,encoding:g}=i;s.position+=2;let l;{let B=A.indexOf(r.subarray(2),s.position);if(B===-1)return"failure";l=A.subarray(s.position,B-4),s.position+=l.length,g==="base64"&&(l=Buffer.from(l.toString(),"base64"))}if(A[s.position]!==13||A[s.position+1]!==10)return"failure";s.position+=2;let E;c!==null?(u??="text/plain",Aw(u)||(u=""),E=new Xp([l],c,{type:u})):E=Pp(Buffer.from(l)),Zn(pl(a)),Zn(typeof E=="string"&&pl(E)||Zp(E)),n.push(zp(a,E,c))}}function nw(A,e){let t=null,r=null,n=null,s=null;for(;;){if(A[e.position]===13&&A[e.position+1]===10)return t===null?"failure":{name:t,filename:r,contentType:n,encoding:s};let o=Yt(i=>i!==10&&i!==13&&i!==58,A,e);if(o=Ti(o,!0,!0,i=>i===9||i===32),!_p.test(o.toString())||A[e.position]!==58)return"failure";switch(e.position++,Yt(i=>i===32||i===9,A,e),Wp(o)){case"content-disposition":{if(t=r=null,!zn(A,$p,e)||(e.position+=17,t=yl(A,e),t===null))return"failure";if(zn(A,ml,e)){let i=e.position+ml.length;if(A[i]===42&&(e.position+=1,i+=1),A[i]!==61||A[i+1]!==34||(e.position+=12,r=yl(A,e),r===null))return"failure"}break}case"content-type":{let i=Yt(a=>a!==10&&a!==13,A,e);i=Ti(i,!1,!0,a=>a===9||a===32),n=wl(i);break}case"content-transfer-encoding":{let i=Yt(a=>a!==10&&a!==13,A,e);i=Ti(i,!1,!0,a=>a===9||a===32),s=wl(i);break}default:Yt(i=>i!==10&&i!==13,A,e)}if(A[e.position]!==13&&A[e.position+1]!==10)return"failure";e.position+=2}}function yl(A,e){Zn(A[e.position-1]===34);let t=Yt(r=>r!==10&&r!==13&&r!==34,A,e);return A[e.position]!==34?null:(e.position++,t=new TextDecoder().decode(t).replace(/%0A/ig,`
|
|
4
|
+
`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),t)}function Yt(A,e,t){let r=t.position;for(;r<e.length&&A(e[r]);)++r;return e.subarray(t.position,t.position=r)}function Ti(A,e,t,r){let n=0,s=A.length-1;if(e)for(;n<A.length&&r(A[n]);)n++;if(t)for(;s>0&&r(A[s]);)s--;return n===0&&s===A.length-1?A:A.subarray(n,s+1)}function zn(A,e,t){if(A.length<e.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==A[t.position+r])return!1;return!0}Dl.exports={multipartFormDataParser:rw,validateBoundary:tw}});var vt=f((nL,xl)=>{"use strict";var xr=T(),{ReadableStreamFrom:sw,isBlobLike:kl,isReadableStreamLike:ow,readableStreamClose:iw,createDeferredPromise:aw,fullyReadBody:cw,extractMimeType:gw,utf8DecodeBytes:Sl}=De(),{FormData:Rl}=Tr(),{kState:Jt}=SA(),{webidl:uw}=ge(),{Blob:lw}=d("node:buffer"),xi=d("node:assert"),{isErrored:Nl,isDisturbed:Ew}=d("node:stream"),{isArrayBuffer:Qw}=d("node:util/types"),{serializeAMimeType:Bw}=he(),{multipartFormDataParser:Iw}=bl(),Yi;try{let A=d("node:crypto");Yi=e=>A.randomInt(0,e)}catch{Yi=A=>Math.floor(Math.random(A))}var Kn=new TextEncoder;function Cw(){}var Ul=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,Ml;Ul&&(Ml=new FinalizationRegistry(A=>{let e=A.deref();e&&!e.locked&&!Ew(e)&&!Nl(e)&&e.cancel("Response object has been garbage collected").catch(Cw)}));function Ll(A,e=!1){let t=null;A instanceof ReadableStream?t=A:kl(A)?t=A.stream():t=new ReadableStream({async pull(a){let c=typeof n=="string"?Kn.encode(n):n;c.byteLength&&a.enqueue(c),queueMicrotask(()=>iw(a))},start(){},type:"bytes"}),xi(ow(t));let r=null,n=null,s=null,o=null;if(typeof A=="string")n=A,o="text/plain;charset=UTF-8";else if(A instanceof URLSearchParams)n=A.toString(),o="application/x-www-form-urlencoded;charset=UTF-8";else if(Qw(A))n=new Uint8Array(A.slice());else if(ArrayBuffer.isView(A))n=new Uint8Array(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength));else if(xr.isFormDataLike(A)){let a=`----formdata-undici-0${`${Yi(1e11)}`.padStart(11,"0")}`,c=`--${a}\r
|
|
5
|
+
Content-Disposition: form-data`;let u=I=>I.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),g=I=>I.replace(/\r?\n|\r/g,`\r
|
|
6
|
+
`),l=[],E=new Uint8Array([13,10]);s=0;let B=!1;for(let[I,Q]of A)if(typeof Q=="string"){let h=Kn.encode(c+`; name="${u(g(I))}"\r
|
|
7
|
+
\r
|
|
8
|
+
${g(Q)}\r
|
|
9
|
+
`);l.push(h),s+=h.byteLength}else{let h=Kn.encode(`${c}; name="${u(g(I))}"`+(Q.name?`; filename="${u(Q.name)}"`:"")+`\r
|
|
10
|
+
Content-Type: ${Q.type||"application/octet-stream"}\r
|
|
11
|
+
\r
|
|
12
|
+
`);l.push(h,Q,E),typeof Q.size=="number"?s+=h.byteLength+Q.size+E.byteLength:B=!0}let C=Kn.encode(`--${a}--\r
|
|
13
|
+
`);l.push(C),s+=C.byteLength,B&&(s=null),n=A,r=async function*(){for(let I of l)I.stream?yield*I.stream():yield I},o=`multipart/form-data; boundary=${a}`}else if(kl(A))n=A,s=A.size,A.type&&(o=A.type);else if(typeof A[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(xr.isDisturbed(A)||A.locked)throw new TypeError("Response body object should not be disturbed or locked");t=A instanceof ReadableStream?A:sw(A)}if((typeof n=="string"||xr.isBuffer(n))&&(s=Buffer.byteLength(n)),r!=null){let a;t=new ReadableStream({async start(){a=r(A)[Symbol.asyncIterator]()},async pull(c){let{value:u,done:g}=await a.next();if(g)queueMicrotask(()=>{c.close(),c.byobRequest?.respond(0)});else if(!Nl(t)){let l=new Uint8Array(u);l.byteLength&&c.enqueue(l)}return c.desiredSize>0},async cancel(c){await a.return()},type:"bytes"})}return[{stream:t,source:n,length:s},o]}function hw(A,e=!1){return A instanceof ReadableStream&&(xi(!xr.isDisturbed(A),"The body has already been consumed."),xi(!A.locked,"The stream is locked.")),Ll(A,e)}function dw(A,e){let[t,r]=e.stream.tee();return e.stream=t,{stream:r,length:e.length,source:e.source}}function fw(A){if(A.aborted)throw new DOMException("The operation was aborted.","AbortError")}function pw(A){return{blob(){return Gt(this,t=>{let r=Fl(this);return r===null?r="":r&&(r=Bw(r)),new lw([t],{type:r})},A)},arrayBuffer(){return Gt(this,t=>new Uint8Array(t).buffer,A)},text(){return Gt(this,Sl,A)},json(){return Gt(this,mw,A)},formData(){return Gt(this,t=>{let r=Fl(this);if(r!==null)switch(r.essence){case"multipart/form-data":{let n=Iw(t,r);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new Rl;return s[Jt]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(t.toString()),s=new Rl;for(let[o,i]of n)s.append(o,i);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},A)},bytes(){return Gt(this,t=>new Uint8Array(t),A)}}}function ww(A){Object.assign(A.prototype,pw(A))}async function Gt(A,e,t){if(uw.brandCheck(A,t),Tl(A))throw new TypeError("Body is unusable: Body has already been read");fw(A[Jt]);let r=aw(),n=o=>r.reject(o),s=o=>{try{r.resolve(e(o))}catch(i){n(i)}};return A[Jt].body==null?(s(Buffer.allocUnsafe(0)),r.promise):(await cw(A[Jt].body,s,n),r.promise)}function Tl(A){let e=A[Jt].body;return e!=null&&(e.stream.locked||xr.isDisturbed(e.stream))}function mw(A){return JSON.parse(Sl(A))}function Fl(A){let e=A[Jt].headersList,t=gw(e);return t==="failure"?null:t}xl.exports={extractBody:Ll,safelyExtractBody:hw,cloneBody:dw,mixinBody:ww,streamRegistry:Ml,hasFinalizationRegistry:Ul,bodyUnusable:Tl}});var $l=f((sL,Xl)=>{"use strict";var k=d("node:assert"),F=T(),{channels:Yl}=kt(),Gi=di(),{RequestContentLengthMismatchError:tt,ResponseContentLengthMismatchError:Gl,RequestAbortedError:Pl,InvalidArgumentError:yw,HeadersTimeoutError:Dw,HeadersOverflowError:bw,SocketError:Ht,InformationalError:Vt,BodyTimeoutError:kw,HTTPParserError:Rw,ResponseExceededMaxSizeError:Fw}=v(),{kUrl:_l,kReset:de,kClient:es,kParser:K,kBlocking:Jr,kRunning:se,kPending:Zl,kSize:Jl,kWriting:NA,kQueue:Oe,kNoRef:Yr,kKeepAliveDefaultTimeout:Sw,kHostHeader:Nw,kPendingIdx:Uw,kRunningIdx:Ye,kError:Ie,kPipelining:As,kSocket:nt,kKeepAliveTimeoutValue:rs,kMaxHeadersSize:Ji,kKeepAliveMaxTimeout:Mw,kKeepAliveTimeoutThreshold:Lw,kHeadersTimeout:Tw,kBodyTimeout:xw,kStrictContentLength:Vi,kMaxRequests:vl,kCounter:Yw,kMaxResponseSize:Gw,kOnError:Hl,kResume:dA,kHTTPContext:zl}=$(),be=Mu(),Vl=Buffer.alloc(0),Xn=Buffer[Symbol.species],$n=F.addListener,Jw=F.removeAllListeners,st=Symbol("kIdleSocketValidation"),rt=Symbol("kIdleSocketValidationTimeout"),Pi=Symbol("kSocketUsed"),vi;async function vw(){let A=process.env.JEST_WORKER_ID?wi():void 0,e;try{e=await WebAssembly.compile(xu())}catch{e=await WebAssembly.compile(A||wi())}return await WebAssembly.instantiate(e,{env:{wasm_on_url:(t,r,n)=>0,wasm_on_status:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onStatus(new Xn(nA.buffer,s,n))||0},wasm_on_message_begin:t=>(k(Ae.ptr===t),Ae.onMessageBegin()||0),wasm_on_header_field:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onHeaderField(new Xn(nA.buffer,s,n))||0},wasm_on_header_value:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onHeaderValue(new Xn(nA.buffer,s,n))||0},wasm_on_headers_complete:(t,r,n,s)=>(k(Ae.ptr===t),Ae.onHeadersComplete(r,!!n,!!s)||0),wasm_on_body:(t,r,n)=>{k(Ae.ptr===t);let s=r-sA+nA.byteOffset;return Ae.onBody(new Xn(nA.buffer,s,n))||0},wasm_on_message_complete:t=>(k(Ae.ptr===t),Ae.onMessageComplete()||0)}})}var Hi=null,qi=vw();qi.catch();var Ae=null,nA=null,jn=0,sA=null,Hw=0,Gr=1,qt=2|Gr,ts=4|Gr,Oi=8|Hw,Wi=class{constructor(e,t,{exports:r}){k(Number.isFinite(e[Ji])&&e[Ji]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(be.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[Ji],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=e[Gw]}setTimeout(e,t){e!==this.timeoutValue||t&Gr^this.timeoutType&Gr?(this.timeout&&(Gi.clearTimeout(this.timeout),this.timeout=null),e&&(t&Gr?this.timeout=Gi.setFastTimeout(ql,e,new WeakRef(this)):(this.timeout=setTimeout(ql,e,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(k(this.ptr!=null),k(Ae==null),this.llhttp.llhttp_resume(this.ptr),k(this.timeoutType===ts),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Vl),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){k(this.ptr!=null),k(Ae==null),k(!this.paused);let{socket:t,llhttp:r}=this;e.length>jn&&(sA&&r.free(sA),jn=Math.ceil(e.length/4096)*4096,sA=r.malloc(jn)),new Uint8Array(r.memory.buffer,sA,jn).set(e);try{let n;try{nA=e,Ae=this,n=r.llhttp_execute(this.ptr,sA,e.length)}catch(o){throw o}finally{Ae=null,nA=null}let s=r.llhttp_get_error_pos(this.ptr)-sA;if(n!==be.ERROR.OK){let o=e.subarray(s);if(n===be.ERROR.PAUSED_UPGRADE)this.onUpgrade(o);else if(n===be.ERROR.PAUSED)this.paused=!0,t.unshift(o);else throw this.createError(n,o)}}catch(n){F.destroy(t,n)}}finish(){k(Ae===null),k(this.ptr!=null),k(!this.paused);let{llhttp:e}=this,t;try{Ae=this,t=e.llhttp_finish(this.ptr)}finally{Ae=null}return t===be.ERROR.OK?null:t===be.ERROR.PAUSED||t===be.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,Vl)}createError(e,t){let{llhttp:r,contentLength:n,bytesRead:s}=this;if(n&&s!==parseInt(n,10))return new Gl;let o=r.llhttp_get_error_reason(this.ptr),i="";if(o){let a=new Uint8Array(r.memory.buffer,o).indexOf(0);i="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,o,a).toString()+")"}return new Rw(i,be.ERROR[e],t)}destroy(){k(this.ptr!=null),k(Ae==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&Gi.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){this.statusText=e.toString()}onMessageBegin(){let{socket:e,client:t}=this;if(e.destroyed)return-1;if(t[se]===0)return F.destroy(e,new Ht("bad response",F.getSocketInfo(e))),-1;let r=t[Oe][t[Ye]];if(!r)return-1;r.onResponseStarted()}onHeaderField(e){let t=this.headers.length;(t&1)===0?this.headers.push(e):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]),this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;(t&1)===1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let r=this.headers[t-2];if(r.length===10){let n=F.bufferToLowerCasedHeaderName(r);n==="keep-alive"?this.keepAlive+=e.toString():n==="connection"&&(this.connection+=e.toString())}else r.length===14&&F.bufferToLowerCasedHeaderName(r)==="content-length"&&(this.contentLength+=e.toString());this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&F.destroy(this.socket,new bw)}onUpgrade(e){let{upgrade:t,client:r,socket:n,headers:s,statusCode:o}=this;k(t),k(r[nt]===n),k(!n.destroyed),k(!this.paused),k((s.length&1)===0);let i=r[Oe][r[Ye]];k(i),k(i.upgrade||i.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,n.unshift(e),n[K].destroy(),n[K]=null,n[es]=null,n[Ie]=null,Jw(n),r[nt]=null,r[zl]=null,r[Oe][r[Ye]++]=null,r.emit("disconnect",r[_l],[r],new Vt("upgrade"));try{i.onUpgrade(o,s,n)}catch(a){F.destroy(n,a)}r[dA]()}onHeadersComplete(e,t,r){let{client:n,socket:s,headers:o,statusText:i}=this;if(s.destroyed)return-1;if(n[se]===0)return F.destroy(s,new Ht("bad response",F.getSocketInfo(s))),-1;let a=n[Oe][n[Ye]];if(!a)return-1;if(k(!this.upgrade),k(this.statusCode<200),e===100)return F.destroy(s,new Ht("bad response",F.getSocketInfo(s))),-1;if(t&&!a.upgrade)return F.destroy(s,new Ht("bad upgrade",F.getSocketInfo(s))),-1;if(k(this.timeoutType===qt),this.statusCode=e,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[de]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let u=a.bodyTimeout!=null?a.bodyTimeout:n[xw];this.setTimeout(u,ts)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return k(n[se]===1),this.upgrade=!0,2;if(t)return k(n[se]===1),this.upgrade=!0,2;if(k((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[As]){let u=this.keepAlive?F.parseKeepAliveTimeout(this.keepAlive):null;if(u!=null){let g=Math.min(u-n[Lw],n[Mw]);g<=0?s[de]=!0:n[rs]=g}else n[rs]=n[Sw]}else s[de]=!0;let c=a.onHeaders(e,o,this.resume,i)===!1;return a.aborted?-1:a.method==="HEAD"||e<200?1:(s[Jr]&&(s[Jr]=!1,n[dA]()),c?be.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:r,statusCode:n,maxResponseSize:s}=this;if(r.destroyed)return-1;let o=t[Oe][t[Ye]];if(k(o),k(this.timeoutType===ts),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),k(n>=200),s>-1&&this.bytesRead+e.length>s)return F.destroy(r,new Fw),-1;if(this.bytesRead+=e.length,o.onData(e)===!1)return be.ERROR.PAUSED}onMessageComplete(){let{client:e,socket:t,statusCode:r,upgrade:n,headers:s,contentLength:o,bytesRead:i,shouldKeepAlive:a}=this;if(t.destroyed&&(!r||a))return-1;if(n)return;k(r>=100),k((this.headers.length&1)===0);let c=e[Oe][e[Ye]];if(k(c),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(r<200)){if(c.method!=="HEAD"&&o&&i!==parseInt(o,10))return F.destroy(t,new Gl),-1;if(c.onComplete(s),e[Oe][e[Ye]++]=null,t[Pi]=!0,t[NA])return k(e[se]===0),F.destroy(t,new Vt("reset")),be.ERROR.PAUSED;if(a){if(t[de]&&e[se]===0)return F.destroy(t,new Vt("reset")),be.ERROR.PAUSED;e[As]==null||e[As]===1?setImmediate(()=>e[dA]()):e[dA]()}else return F.destroy(t,new Vt("reset")),be.ERROR.PAUSED}}};function ql(A){let{socket:e,timeoutType:t,client:r,paused:n}=A.deref();t===qt?(!e[NA]||e.writableNeedDrain||r[se]>1)&&(k(!n,"cannot be paused while waiting for headers"),F.destroy(e,new Dw)):t===ts?n||F.destroy(e,new kw):t===Oi&&(k(r[se]===0&&r[rs]),F.destroy(e,new Vt("socket idle timeout")))}async function Vw(A,e){A[nt]=e,Hi||(Hi=await qi,qi=null),e[Yr]=!1,e[NA]=!1,e[de]=!1,e[Jr]=!1,e[st]=0,e[rt]=null,e[Pi]=!1,e[K]=new Wi(A,e,Hi),$n(e,"error",function(r){k(r.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let n=this[K];if(r.code==="ECONNRESET"&&n.statusCode&&!n.shouldKeepAlive){let s=n.finish();s&&(this[Ie]=s,this[es][Hl](s));return}this[Ie]=r,this[es][Hl](r)}),$n(e,"readable",function(){let r=this[K];r&&r.readMore()}),$n(e,"end",function(){let r=this[K];if(r.statusCode&&!r.shouldKeepAlive){let n=r.finish();n&&F.destroy(this,n);return}F.destroy(this,new Ht("other side closed",F.getSocketInfo(this)))}),$n(e,"close",function(){let r=this[es],n=this[K];Kl(this),n&&(!this[Ie]&&n.statusCode&&!n.shouldKeepAlive&&(this[Ie]=n.finish()||this[Ie]),this[K].destroy(),this[K]=null);let s=this[Ie]||new Ht("closed",F.getSocketInfo(this));if(r[nt]=null,r[zl]=null,r.destroyed){k(r[Zl]===0);let o=r[Oe].splice(r[Ye]);for(let i=0;i<o.length;i++){let a=o[i];F.errorRequest(r,a,s)}}else if(r[se]>0&&s.code!=="UND_ERR_INFO"){let o=r[Oe][r[Ye]];r[Oe][r[Ye]++]=null,F.errorRequest(r,o,s)}r[Uw]=r[Ye],k(r[se]===0),r.emit("disconnect",r[_l],[r],s),r[dA]()});let t=!1;return e.on("close",()=>{t=!0}),{version:"h1",defaultPipelining:1,write(...r){return Pw(A,...r)},resume(){Ow(A)},destroy(r,n){t?queueMicrotask(n):e.destroy(r).on("close",n)},get destroyed(){return e.destroyed},busy(r){return!!(e[NA]||e[de]||e[Jr]||e[st]===1||r&&(A[se]>0&&!r.idempotent||A[se]>0&&(r.upgrade||r.method==="CONNECT")||A[se]>0&&F.bodyLength(r.body)!==0&&(F.isStream(r.body)||F.isAsyncIterable(r.body)||F.isFormDataLike(r.body))))}}}function Kl(A){A[rt]&&(clearTimeout(A[rt]),A[rt]=null),A[st]=0}function qw(A,e){e[st]=1,e[rt]=setTimeout(()=>{e[rt]=null,e[st]=2,A[nt]===e&&!e.destroyed&&A[dA]()},0),e[rt].unref?.()}function Ow(A){let e=A[nt];if(e&&!e.destroyed){if(A[Jl]===0?!e[Yr]&&e.unref&&(e.unref(),e[Yr]=!0):e[Yr]&&e.ref&&(e.ref(),e[Yr]=!1),A[se]===0&&A[Zl]>0&&e[Pi]){if(e[st]===0)return qw(A,e),e[K].readMore(),e.destroyed,void 0;if(e[st]===1)return e[K].readMore(),e.destroyed,void 0}if(A[se]===0&&(e[K].readMore(),e.destroyed))return;if(A[Jl]===0)e[K].timeoutType!==Oi&&e[K].setTimeout(A[rs],Oi);else if(A[se]>0&&e[K].statusCode<200&&e[K].timeoutType!==qt){let t=A[Oe][A[Ye]],r=t.headersTimeout!=null?t.headersTimeout:A[Tw];e[K].setTimeout(r,qt)}}}function Ww(A){return A!=="GET"&&A!=="HEAD"&&A!=="OPTIONS"&&A!=="TRACE"&&A!=="CONNECT"}function Pw(A,e){let{method:t,path:r,host:n,upgrade:s,blocking:o,reset:i}=e,{body:a,headers:c,contentLength:u}=e,g=t==="PUT"||t==="POST"||t==="PATCH"||t==="QUERY"||t==="PROPFIND"||t==="PROPPATCH";if(F.isFormDataLike(a)){vi||(vi=vt().extractBody);let[I,Q]=vi(a);e.contentType==null&&c.push("content-type",Q),a=I.stream,u=I.length}else if(F.isBlobLike(a)&&e.contentType==null){let I=a.type;if(I){let Q=`${I}`;if(!F.isValidHeaderValue(Q))return F.errorRequest(A,e,new yw("invalid content-type header")),!1;c.push("content-type",Q)}}a&&typeof a.read=="function"&&a.read(0);let l=F.bodyLength(a);if(u=l??u,u===null&&(u=e.contentLength),u===0&&!g&&(u=null),Ww(t)&&u>0&&e.contentLength!==null&&e.contentLength!==u){if(A[Vi])return F.errorRequest(A,e,new tt),!1;process.emitWarning(new tt)}let E=A[nt];Kl(E);let B=I=>{e.aborted||e.completed||(F.errorRequest(A,e,I||new Pl),F.destroy(a),F.destroy(E,new Vt("aborted")))};try{e.onConnect(B)}catch(I){F.errorRequest(A,e,I)}if(e.aborted)return!1;t==="HEAD"&&(E[de]=!0),(s||t==="CONNECT")&&(E[de]=!0),i!=null&&(E[de]=i),A[vl]&&E[Yw]++>=A[vl]&&(E[de]=!0),o&&(E[Jr]=!0);let C=`${t} ${r} HTTP/1.1\r
|
|
14
|
+
`;if(typeof n=="string"?C+=`host: ${n}\r
|
|
15
|
+
`:C+=A[Nw],s?C+=`connection: upgrade\r
|
|
16
|
+
upgrade: ${s}\r
|
|
17
|
+
`:A[As]&&!E[de]?C+=`connection: keep-alive\r
|
|
18
|
+
`:C+=`connection: close\r
|
|
19
|
+
`,Array.isArray(c))for(let I=0;I<c.length;I+=2){let Q=c[I+0],h=c[I+1];if(Array.isArray(h))for(let y=0;y<h.length;y++)C+=`${Q}: ${h[y]}\r
|
|
20
|
+
`;else C+=`${Q}: ${h}\r
|
|
21
|
+
`}return Yl.sendHeaders.hasSubscribers&&Yl.sendHeaders.publish({request:e,headers:C,socket:E}),!a||l===0?Ol(B,null,A,e,E,u,C,g):F.isBuffer(a)?Ol(B,a,A,e,E,u,C,g):F.isBlobLike(a)?typeof a.stream=="function"?Wl(B,a.stream(),A,e,E,u,C,g):Zw(B,a,A,e,E,u,C,g):F.isStream(a)?_w(B,a,A,e,E,u,C,g):F.isIterable(a)?Wl(B,a,A,e,E,u,C,g):k(!1),!0}function _w(A,e,t,r,n,s,o,i){k(s!==0||t[se]===0,"stream body cannot be pipelined");let a=!1,c=new ns({abort:A,socket:n,request:r,contentLength:s,client:t,expectsPayload:i,header:o}),u=function(B){if(!a)try{!c.write(B)&&this.pause&&this.pause()}catch(C){F.destroy(this,C)}},g=function(){a||e.resume&&e.resume()},l=function(){if(queueMicrotask(()=>{e.removeListener("error",E)}),!a){let B=new Pl;queueMicrotask(()=>E(B))}},E=function(B){if(!a){if(a=!0,k(n.destroyed||n[NA]&&t[se]<=1),n.off("drain",g).off("error",E),e.removeListener("data",u).removeListener("end",E).removeListener("close",l),!B)try{c.end()}catch(C){B=C}c.destroy(B),B&&(B.code!=="UND_ERR_INFO"||B.message!=="reset")?F.destroy(e,B):F.destroy(e)}};e.on("data",u).on("end",E).on("error",E).on("close",l),e.resume&&e.resume(),n.on("drain",g).on("error",E),e.errorEmitted??e.errored?setImmediate(()=>E(e.errored)):(e.endEmitted??e.readableEnded)&&setImmediate(()=>E(null)),(e.closeEmitted??e.closed)&&setImmediate(l)}function Ol(A,e,t,r,n,s,o,i){try{e?F.isBuffer(e)&&(k(s===e.byteLength,"buffer body must have content length"),n.cork(),n.write(`${o}content-length: ${s}\r
|
|
22
|
+
\r
|
|
23
|
+
`,"latin1"),n.write(e),n.uncork(),r.onBodySent(e),!i&&r.reset!==!1&&(n[de]=!0)):s===0?n.write(`${o}content-length: 0\r
|
|
24
|
+
\r
|
|
25
|
+
`,"latin1"):(k(s===null,"no body must not have content length"),n.write(`${o}\r
|
|
26
|
+
`,"latin1")),r.onRequestSent(),t[dA]()}catch(a){A(a)}}async function Zw(A,e,t,r,n,s,o,i){k(s===e.size,"blob body must have content length");try{if(s!=null&&s!==e.size)throw new tt;let a=Buffer.from(await e.arrayBuffer());n.cork(),n.write(`${o}content-length: ${s}\r
|
|
27
|
+
\r
|
|
28
|
+
`,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!i&&r.reset!==!1&&(n[de]=!0),t[dA]()}catch(a){A(a)}}async function Wl(A,e,t,r,n,s,o,i){k(s!==0||t[se]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let l=a;a=null,l()}}let u=()=>new Promise((l,E)=>{k(a===null),n[Ie]?E(n[Ie]):a=l});n.on("close",c).on("drain",c);let g=new ns({abort:A,socket:n,request:r,contentLength:s,client:t,expectsPayload:i,header:o});try{for await(let l of e){if(n[Ie])throw n[Ie];g.write(l)||await u()}g.end()}catch(l){g.destroy(l)}finally{n.off("close",c).off("drain",c)}}var ns=class{constructor({abort:e,socket:t,request:r,contentLength:n,client:s,expectsPayload:o,header:i}){this.socket=t,this.request=r,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=o,this.header=i,this.abort=e,t[NA]=!0}write(e){let{socket:t,request:r,contentLength:n,client:s,bytesWritten:o,expectsPayload:i,header:a}=this;if(t[Ie])throw t[Ie];if(t.destroyed)return!1;let c=Buffer.byteLength(e);if(!c)return!0;if(n!==null&&o+c>n){if(s[Vi])throw new tt;process.emitWarning(new tt)}t.cork(),o===0&&(!i&&r.reset!==!1&&(t[de]=!0),n===null?t.write(`${a}transfer-encoding: chunked\r
|
|
29
|
+
`,"latin1"):t.write(`${a}content-length: ${n}\r
|
|
30
|
+
\r
|
|
31
|
+
`,"latin1")),n===null&&t.write(`\r
|
|
32
|
+
${c.toString(16)}\r
|
|
33
|
+
`,"latin1"),this.bytesWritten+=c;let u=t.write(e);return t.uncork(),r.onBodySent(e),u||t[K].timeout&&t[K].timeoutType===qt&&t[K].timeout.refresh&&t[K].timeout.refresh(),u}end(){let{socket:e,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:o,request:i}=this;if(i.onRequestSent(),e[NA]=!1,e[Ie])throw e[Ie];if(!e.destroyed){if(n===0?s?e.write(`${o}content-length: 0\r
|
|
34
|
+
\r
|
|
35
|
+
`,"latin1"):e.write(`${o}\r
|
|
36
|
+
`,"latin1"):t===null&&e.write(`\r
|
|
37
|
+
0\r
|
|
38
|
+
\r
|
|
39
|
+
`,"latin1"),t!==null&&n!==t){if(r[Vi])throw new tt;process.emitWarning(new tt)}e[K].timeout&&e[K].timeoutType===qt&&e[K].timeout.refresh&&e[K].timeout.refresh(),r[dA]()}}destroy(e){let{socket:t,client:r,abort:n}=this;t[NA]=!1,e&&(k(r[se]<=1,"pipeline should only contain this request"),n(e))}};Xl.exports=Vw});var oE=f((oL,sE)=>{"use strict";var Ge=d("node:assert"),{pipeline:zw}=d("node:stream"),Y=T(),{RequestContentLengthMismatchError:_i,RequestAbortedError:jl,SocketError:vr,InformationalError:Zi}=v(),{kUrl:ss,kReset:is,kClient:Ot,kRunning:as,kPending:Kw,kQueue:UA,kPendingIdx:zi,kRunningIdx:We,kError:_e,kSocket:ce,kStrictContentLength:Xw,kOnError:Ki,kMaxConcurrentStreams:nE,kHTTP2Session:Pe,kResume:MA,kSize:$w,kHTTPContext:jw}=$(),fA=Symbol("open streams"),eE,AE=!1,os;try{os=d("node:http2")}catch{os={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:em,HTTP2_HEADER_METHOD:Am,HTTP2_HEADER_PATH:tm,HTTP2_HEADER_SCHEME:rm,HTTP2_HEADER_CONTENT_LENGTH:nm,HTTP2_HEADER_EXPECT:sm,HTTP2_HEADER_STATUS:om}}=os;function im(A){let e=[];for(let[t,r]of Object.entries(A))if(Array.isArray(r))for(let n of r)e.push(Buffer.from(t),Buffer.from(n));else e.push(Buffer.from(t),Buffer.from(r));return e}async function am(A,e){A[ce]=e,AE||(AE=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let t=os.connect(A[ss],{createConnection:()=>e,peerMaxConcurrentStreams:A[nE]});t[fA]=0,t[Ot]=A,t[ce]=e,Y.addListener(t,"error",gm),Y.addListener(t,"frameError",um),Y.addListener(t,"end",lm),Y.addListener(t,"goaway",Em),Y.addListener(t,"close",function(){let{[Ot]:n}=this,{[ce]:s}=n,o=this[ce][_e]||this[_e]||new vr("closed",Y.getSocketInfo(s));if(n[Pe]=null,n.destroyed){Ge(n[Kw]===0);let i=n[UA].splice(n[We]);for(let a=0;a<i.length;a++){let c=i[a];Y.errorRequest(n,c,o)}}}),t.unref(),A[Pe]=t,e[Pe]=t,Y.addListener(e,"error",function(n){Ge(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[_e]=n,this[Ot][Ki](n)}),Y.addListener(e,"end",function(){Y.destroy(this,new vr("other side closed",Y.getSocketInfo(this)))}),Y.addListener(e,"close",function(){let n=this[_e]||new vr("closed",Y.getSocketInfo(this));A[ce]=null,this[Pe]!=null&&this[Pe].destroy(n),A[zi]=A[We],Ge(A[as]===0),A.emit("disconnect",A[ss],[A],n),A[MA]()});let r=!1;return e.on("close",()=>{r=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return Bm(A,...n)},resume(){cm(A)},destroy(n,s){r?queueMicrotask(s):e.destroy(n).on("close",s)},get destroyed(){return e.destroyed},busy(){return!1}}}function cm(A){let e=A[ce];e?.destroyed===!1&&(A[$w]===0&&A[nE]===0?(e.unref(),A[Pe].unref()):(e.ref(),A[Pe].ref()))}function gm(A){Ge(A.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[ce][_e]=A,this[Ot][Ki](A)}function um(A,e,t){if(t===0){let r=new Zi(`HTTP/2: "frameError" received - type ${A}, code ${e}`);this[ce][_e]=r,this[Ot][Ki](r)}}function lm(){let A=new vr("other side closed",Y.getSocketInfo(this[ce]));this.destroy(A),Y.destroy(this[ce],A)}function Em(A){let e=this[_e]||new vr(`HTTP/2: "GOAWAY" frame received with code ${A}`,Y.getSocketInfo(this)),t=this[Ot];if(t[ce]=null,t[jw]=null,this[Pe]!=null&&(this[Pe].destroy(e),this[Pe]=null),Y.destroy(this[ce],e),t[We]<t[UA].length){let r=t[UA][t[We]];t[UA][t[We]++]=null,Y.errorRequest(t,r,e),t[zi]=t[We]}Ge(t[as]===0),t.emit("disconnect",t[ss],[t],e),t[MA]()}function Qm(A){return A!=="GET"&&A!=="HEAD"&&A!=="OPTIONS"&&A!=="TRACE"&&A!=="CONNECT"}function Bm(A,e){let t=A[Pe],{method:r,path:n,host:s,upgrade:o,expectContinue:i,signal:a,headers:c}=e,{body:u}=e;if(o)return Y.errorRequest(A,e,new Error("Upgrade not supported for H2")),!1;let g={};for(let m=0;m<c.length;m+=2){let x=c[m+0],_=c[m+1];if(Array.isArray(_))for(let Z=0;Z<_.length;Z++)g[x]?g[x]+=`,${_[Z]}`:g[x]=_[Z];else g[x]=_}let l,{hostname:E,port:B}=A[ss];g[em]=s||`${E}${B?`:${B}`:""}`,g[Am]=r;let C=m=>{e.aborted||e.completed||(m=m||new jl,Y.errorRequest(A,e,m),l!=null&&Y.destroy(l,m),Y.destroy(u,m),A[UA][A[We]++]=null,A[MA]())};try{e.onConnect(C)}catch(m){Y.errorRequest(A,e,m)}if(e.aborted)return!1;if(r==="CONNECT")return t.ref(),l=t.request(g,{endStream:!1,signal:a}),l.id&&!l.pending?(e.onUpgrade(null,null,l),++t[fA],A[UA][A[We]++]=null):l.once("ready",()=>{e.onUpgrade(null,null,l),++t[fA],A[UA][A[We]++]=null}),l.once("close",()=>{t[fA]-=1,t[fA]===0&&t.unref()}),!0;g[tm]=n,g[rm]="https";let I=r==="PUT"||r==="POST"||r==="PATCH";u&&typeof u.read=="function"&&u.read(0);let Q=Y.bodyLength(u);if(Y.isFormDataLike(u)){eE??=vt().extractBody;let[m,x]=eE(u);g["content-type"]=x,u=m.stream,Q=m.length}if(Q==null&&(Q=e.contentLength),(Q===0||!I)&&(Q=null),Qm(r)&&Q>0&&e.contentLength!=null&&e.contentLength!==Q){if(A[Xw])return Y.errorRequest(A,e,new _i),!1;process.emitWarning(new _i)}Q!=null&&(Ge(u,"no body must not have content length"),g[nm]=`${Q}`),t.ref();let h=r==="GET"||r==="HEAD"||u===null;return i?(g[sm]="100-continue",l=t.request(g,{endStream:h,signal:a}),l.once("continue",y)):(l=t.request(g,{endStream:h,signal:a}),y()),++t[fA],l.once("response",m=>{let{[om]:x,..._}=m;if(e.onResponseStarted(),e.aborted){let Z=new jl;Y.errorRequest(A,e,Z),Y.destroy(l,Z);return}e.onHeaders(Number(x),im(_),l.resume.bind(l),"")===!1&&l.pause(),l.on("data",Z=>{e.onData(Z)===!1&&l.pause()})}),l.once("end",()=>{(l.state?.state==null||l.state.state<6)&&e.onComplete([]),t[fA]===0&&t.unref(),C(new Zi("HTTP/2: stream half-closed (remote)")),A[UA][A[We]++]=null,A[zi]=A[We],A[MA]()}),l.once("close",()=>{t[fA]-=1,t[fA]===0&&t.unref()}),l.once("error",function(m){C(m)}),l.once("frameError",(m,x)=>{C(new Zi(`HTTP/2: "frameError" received - type ${m}, code ${x}`))}),!0;function y(){!u||Q===0?tE(C,l,null,A,e,A[ce],Q,I):Y.isBuffer(u)?tE(C,l,u,A,e,A[ce],Q,I):Y.isBlobLike(u)?typeof u.stream=="function"?rE(C,l,u.stream(),A,e,A[ce],Q,I):Cm(C,l,u,A,e,A[ce],Q,I):Y.isStream(u)?Im(C,A[ce],I,l,u,A,e,Q):Y.isIterable(u)?rE(C,l,u,A,e,A[ce],Q,I):Ge(!1)}}function tE(A,e,t,r,n,s,o,i){try{t!=null&&Y.isBuffer(t)&&(Ge(o===t.byteLength,"buffer body must have content length"),e.cork(),e.write(t),e.uncork(),e.end(),n.onBodySent(t)),i||(s[is]=!0),n.onRequestSent(),r[MA]()}catch(a){A(a)}}function Im(A,e,t,r,n,s,o,i){Ge(i!==0||s[as]===0,"stream body cannot be pipelined");let a=zw(n,r,u=>{u?(Y.destroy(a,u),A(u)):(Y.removeAllListeners(a),o.onRequestSent(),t||(e[is]=!0),s[MA]())});Y.addListener(a,"data",c);function c(u){o.onBodySent(u)}}async function Cm(A,e,t,r,n,s,o,i){Ge(o===t.size,"blob body must have content length");try{if(o!=null&&o!==t.size)throw new _i;let a=Buffer.from(await t.arrayBuffer());e.cork(),e.write(a),e.uncork(),e.end(),n.onBodySent(a),n.onRequestSent(),i||(s[is]=!0),r[MA]()}catch(a){A(a)}}async function rE(A,e,t,r,n,s,o,i){Ge(o!==0||r[as]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let g=a;a=null,g()}}let u=()=>new Promise((g,l)=>{Ge(a===null),s[_e]?l(s[_e]):a=g});e.on("close",c).on("drain",c);try{for await(let g of t){if(s[_e])throw s[_e];let l=e.write(g);n.onBodySent(g),l||await u()}e.end(),n.onRequestSent(),i||(s[is]=!0),r[MA]()}catch(g){A(g)}finally{e.off("close",c).off("drain",c)}}sE.exports=am});var gs=f((iL,cE)=>{"use strict";var oA=T(),{kBodyUsed:Hr}=$(),$i=d("node:assert"),{InvalidArgumentError:hm}=v(),dm=d("node:events"),fm=[300,301,302,303,307,308],iE=Symbol("body"),cs=class{constructor(e){this[iE]=e,this[Hr]=!1}async*[Symbol.asyncIterator](){$i(!this[Hr],"disturbed"),this[Hr]=!0,yield*this[iE]}},Xi=class{constructor(e,t,r,n){if(t!=null&&(!Number.isInteger(t)||t<0))throw new hm("maxRedirections must be a positive number");oA.validateHandler(n,r.method,r.upgrade),this.dispatch=e,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=n,this.history=[],this.redirectionLimitReached=!1,oA.isStream(this.opts.body)?(oA.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){$i(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Hr]=!1,dm.prototype.on.call(this.opts.body,"data",function(){this[Hr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new cs(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&oA.isIterable(this.opts.body)&&(this.opts.body=new cs(this.opts.body))}onConnect(e){this.abort=e,this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,r){this.handler.onUpgrade(e,t,r)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,n){if(this.location=this.history.length>=this.maxRedirections||oA.isDisturbed(this.opts.body)?null:pm(e,t),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(e,t,r,n);let{origin:s,pathname:o,search:i}=oA.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=i?`${o}${i}`:o;this.opts.headers=wm(this.opts.headers,e===303,this.opts.origin!==s),this.opts.path=a,this.opts.origin=s,this.opts.maxRedirections=0,this.opts.query=null,e===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(e){if(!this.location)return this.handler.onData(e)}onComplete(e){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(e)}onBodySent(e){this.handler.onBodySent&&this.handler.onBodySent(e)}};function pm(A,e){if(fm.indexOf(A)===-1)return null;for(let t=0;t<e.length;t+=2)if(e[t].length===8&&oA.headerNameToString(e[t])==="location")return e[t+1]}function aE(A,e,t){if(A.length===4)return oA.headerNameToString(A)==="host";if(e&&oA.headerNameToString(A).startsWith("content-"))return!0;if(t&&(A.length===13||A.length===6||A.length===19)){let r=oA.headerNameToString(A);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function wm(A,e,t){let r=[];if(Array.isArray(A))for(let n=0;n<A.length;n+=2)aE(A[n],e,t)||r.push(A[n],A[n+1]);else if(A&&typeof A=="object")for(let n of Object.keys(A))aE(n,e,t)||r.push(n,A[n]);else $i(A==null,"headers must be an object or an array");return r}cE.exports=Xi});var us=f((aL,gE)=>{"use strict";var mm=gs();function ym({maxRedirections:A}){return e=>function(r,n){let{maxRedirections:s=A}=r;if(!s)return e(r,n);let o=new mm(e,s,r,n);return r={...r,maxRedirections:0},e(r,o)}}gE.exports=ym});var _t=f((cL,fE)=>{"use strict";var pA=d("node:assert"),IE=d("node:net"),Dm=d("node:http"),ot=T(),{channels:Wt}=kt(),bm=fu(),km=Nt(),{InvalidArgumentError:te,InformationalError:Rm,ClientDestroyedError:Fm}=v(),Sm=Rr(),{kUrl:iA,kServerName:LA,kClient:Nm,kBusy:ji,kConnect:Um,kResuming:it,kRunning:Pr,kPending:_r,kSize:Wr,kQueue:Ze,kConnected:Mm,kConnecting:Pt,kNeedDrain:xA,kKeepAliveDefaultTimeout:uE,kHostHeader:Lm,kPendingIdx:ze,kRunningIdx:wA,kError:Tm,kPipelining:ls,kKeepAliveTimeoutValue:xm,kMaxHeadersSize:Ym,kKeepAliveMaxTimeout:Gm,kKeepAliveTimeoutThreshold:Jm,kHeadersTimeout:vm,kBodyTimeout:Hm,kStrictContentLength:Vm,kConnector:Vr,kMaxRedirections:qm,kMaxRequests:ea,kCounter:Om,kClose:Wm,kDestroy:Pm,kDispatch:_m,kInterceptors:lE,kLocalAddress:qr,kMaxResponseSize:Zm,kOnError:zm,kHTTPContext:re,kMaxConcurrentStreams:Km,kResume:Or}=$(),Xm=$l(),$m=oE(),EE=!1,TA=Symbol("kClosedResolve"),QE=()=>{};function CE(A){return A[ls]??A[re]?.defaultPipelining??1}var Aa=class extends km{constructor(e,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:s,requestTimeout:o,connectTimeout:i,bodyTimeout:a,idleTimeout:c,keepAlive:u,keepAliveTimeout:g,maxKeepAliveTimeout:l,keepAliveMaxTimeout:E,keepAliveTimeoutThreshold:B,socketPath:C,pipelining:I,tls:Q,strictContentLength:h,maxCachedSessions:y,maxRedirections:m,connect:x,maxRequestsPerClient:_,localAddress:Z,maxResponseSize:M,autoSelectFamily:V,autoSelectFamilyAttemptTimeout:ye,maxConcurrentStreams:Qe,allowH2:ne,webSocket:Te}={}){if(super({webSocket:Te}),u!==void 0)throw new te("unsupported keepAlive, use pipelining=0 instead");if(s!==void 0)throw new te("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(o!==void 0)throw new te("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(c!==void 0)throw new te("unsupported idleTimeout, use keepAliveTimeout instead");if(l!==void 0)throw new te("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new te("invalid maxHeaderSize");if(C!=null&&typeof C!="string")throw new te("invalid socketPath");if(i!=null&&(!Number.isFinite(i)||i<0))throw new te("invalid connectTimeout");if(g!=null&&(!Number.isFinite(g)||g<=0))throw new te("invalid keepAliveTimeout");if(E!=null&&(!Number.isFinite(E)||E<=0))throw new te("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new te("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new te("headersTimeout must be a positive integer or zero");if(a!=null&&(!Number.isInteger(a)||a<0))throw new te("bodyTimeout must be a positive integer or zero");if(x!=null&&typeof x!="function"&&typeof x!="object")throw new te("connect must be a function or an object");if(m!=null&&(!Number.isInteger(m)||m<0))throw new te("maxRedirections must be a positive number");if(_!=null&&(!Number.isInteger(_)||_<0))throw new te("maxRequestsPerClient must be a positive number");if(Z!=null&&(typeof Z!="string"||IE.isIP(Z)===0))throw new te("localAddress must be valid string IP address");if(M!=null&&(!Number.isInteger(M)||M<-1))throw new te("maxResponseSize must be a positive number");if(ye!=null&&(!Number.isInteger(ye)||ye<-1))throw new te("autoSelectFamilyAttemptTimeout must be a positive number");if(ne!=null&&typeof ne!="boolean")throw new te("allowH2 must be a valid boolean value");if(Qe!=null&&(typeof Qe!="number"||Qe<1))throw new te("maxConcurrentStreams must be a positive integer, greater than 0");typeof x!="function"&&(x=Sm({...Q,maxCachedSessions:y,allowH2:ne,socketPath:C,timeout:i,...V?{autoSelectFamily:V,autoSelectFamilyAttemptTimeout:ye}:void 0,...x})),t?.Client&&Array.isArray(t.Client)?(this[lE]=t.Client,EE||(EE=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[lE]=[jm({maxRedirections:m})],this[iA]=ot.parseOrigin(e),this[Vr]=x,this[ls]=I??1,this[Ym]=r||Dm.maxHeaderSize,this[uE]=g??4e3,this[Gm]=E??6e5,this[Jm]=B??2e3,this[xm]=this[uE],this[LA]=null,this[qr]=Z??null,this[it]=0,this[xA]=0,this[Lm]=`host: ${this[iA].hostname}${this[iA].port?`:${this[iA].port}`:""}\r
|
|
40
|
+
`,this[Hm]=a??3e5,this[vm]=n??3e5,this[Vm]=h??!0,this[qm]=m,this[ea]=_,this[TA]=null,this[Zm]=M>-1?M:-1,this[Km]=Qe??100,this[re]=null,this[Ze]=[],this[wA]=0,this[ze]=0,this[Or]=EA=>ta(this,EA),this[zm]=EA=>hE(this,EA)}get pipelining(){return this[ls]}set pipelining(e){this[ls]=e,this[Or](!0)}get[_r](){return this[Ze].length-this[ze]}get[Pr](){return this[ze]-this[wA]}get[Wr](){return this[Ze].length-this[wA]}get[Mm](){return!!this[re]&&!this[Pt]&&!this[re].destroyed}get[ji](){return!!(this[re]?.busy(null)||this[Wr]>=(CE(this)||1)||this[_r]>0)}[Um](e){dE(this),this.once("connect",e)}[_m](e,t){let r=e.origin||this[iA].origin,n=new bm(r,e,t);return this[Ze].push(n),this[it]||(ot.bodyLength(n.body)==null&&ot.isIterable(n.body)?(this[it]=1,queueMicrotask(()=>ta(this))):this[Or](!0)),this[it]&&this[xA]!==2&&this[ji]&&(this[xA]=2),this[xA]<2}async[Wm](){return new Promise(e=>{this[Wr]?this[TA]=e:e(null)})}async[Pm](e){return new Promise(t=>{let r=this[Ze].splice(this[ze]);for(let s=0;s<r.length;s++){let o=r[s];ot.errorRequest(this,o,e)}let n=()=>{this[TA]&&(this[TA](),this[TA]=null),t(null)};this[re]?(this[re].destroy(e,n),this[re]=null):queueMicrotask(n),this[Or]()})}},jm=us();function hE(A,e){if(A[Pr]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){pA(A[ze]===A[wA]);let t=A[Ze].splice(A[wA]);for(let r=0;r<t.length;r++){let n=t[r];ot.errorRequest(A,n,e)}pA(A[Wr]===0)}}async function dE(A){pA(!A[Pt]),pA(!A[re]);let{host:e,hostname:t,protocol:r,port:n}=A[iA];if(t[0]==="["){let s=t.indexOf("]");pA(s!==-1);let o=t.substring(1,s);pA(IE.isIP(o)),t=o}A[Pt]=!0,Wt.beforeConnect.hasSubscribers&&Wt.beforeConnect.publish({connectParams:{host:e,hostname:t,protocol:r,port:n,version:A[re]?.version,servername:A[LA],localAddress:A[qr]},connector:A[Vr]});try{let s=await new Promise((o,i)=>{A[Vr]({host:e,hostname:t,protocol:r,port:n,servername:A[LA],localAddress:A[qr]},(a,c)=>{a?i(a):o(c)})});if(A.destroyed){ot.destroy(s.on("error",QE),new Fm);return}pA(s);try{A[re]=s.alpnProtocol==="h2"?await $m(A,s):await Xm(A,s)}catch(o){throw s.destroy().on("error",QE),o}A[Pt]=!1,s[Om]=0,s[ea]=A[ea],s[Nm]=A,s[Tm]=null,Wt.connected.hasSubscribers&&Wt.connected.publish({connectParams:{host:e,hostname:t,protocol:r,port:n,version:A[re]?.version,servername:A[LA],localAddress:A[qr]},connector:A[Vr],socket:s}),A.emit("connect",A[iA],[A])}catch(s){if(A.destroyed)return;if(A[Pt]=!1,Wt.connectError.hasSubscribers&&Wt.connectError.publish({connectParams:{host:e,hostname:t,protocol:r,port:n,version:A[re]?.version,servername:A[LA],localAddress:A[qr]},connector:A[Vr],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(pA(A[Pr]===0);A[_r]>0&&A[Ze][A[ze]].servername===A[LA];){let o=A[Ze][A[ze]++];ot.errorRequest(A,o,s)}else hE(A,s);A.emit("connectionError",A[iA],[A],s)}A[Or]()}function BE(A){A[xA]=0,A.emit("drain",A[iA],[A])}function ta(A,e){A[it]!==2&&(A[it]=2,ey(A,e),A[it]=0,A[wA]>256&&(A[Ze].splice(0,A[wA]),A[ze]-=A[wA],A[wA]=0))}function ey(A,e){for(;;){if(A.destroyed){pA(A[_r]===0);return}if(A[TA]&&!A[Wr]){A[TA](),A[TA]=null;return}if(A[re]&&A[re].resume(),A[ji])A[xA]=2;else if(A[xA]===2){e?(A[xA]=1,queueMicrotask(()=>BE(A))):BE(A);continue}if(A[_r]===0||A[Pr]>=(CE(A)||1))return;let t=A[Ze][A[ze]];if(A[iA].protocol==="https:"&&A[LA]!==t.servername){if(A[Pr]>0)return;A[LA]=t.servername,A[re]?.destroy(new Rm("servername changed"),()=>{A[re]=null,ta(A)})}if(A[Pt])return;if(!A[re]){dE(A);return}if(A[re].destroyed||A[re].busy(t))return;!t.aborted&&A[re].write(t)?A[ze]++:A[Ze].splice(A[ze],1)}}fE.exports=Aa});var ra=f((uL,pE)=>{"use strict";var Es=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&2047}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,e)}};pE.exports=class{constructor(){this.head=this.tail=new Es}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new Es),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next),t}}});var mE=f((lL,wE)=>{var{kFree:Ay,kConnected:ty,kPending:ry,kQueued:ny,kRunning:sy,kSize:oy}=$(),at=Symbol("pool"),na=class{constructor(e){this[at]=e}get connected(){return this[at][ty]}get free(){return this[at][Ay]}get pending(){return this[at][ry]}get queued(){return this[at][ny]}get running(){return this[at][sy]}get size(){return this[at][oy]}};wE.exports=na});var ga=f((EL,ME)=>{"use strict";var iy=Nt(),ay=ra(),{kConnected:sa,kSize:yE,kRunning:DE,kPending:bE,kQueued:Zr,kBusy:cy,kFree:gy,kUrl:uy,kClose:ly,kDestroy:Ey,kDispatch:Qy}=$(),By=mE(),fe=Symbol("clients"),Ce=Symbol("needDrain"),zr=Symbol("queue"),oa=Symbol("closed resolve"),ia=Symbol("onDrain"),kE=Symbol("onConnect"),RE=Symbol("onDisconnect"),FE=Symbol("onConnectionError"),aa=Symbol("get dispatcher"),NE=Symbol("add client"),UE=Symbol("remove client"),SE=Symbol("stats"),ca=class extends iy{constructor(e){super(e),this[zr]=new ay,this[fe]=[],this[Zr]=0;let t=this;this[ia]=function(n,s){let o=t[zr],i=!1;for(;!i;){let a=o.shift();if(!a)break;t[Zr]--,i=!this.dispatch(a.opts,a.handler)}this[Ce]=i,!this[Ce]&&t[Ce]&&(t[Ce]=!1,t.emit("drain",n,[t,...s])),t[oa]&&o.isEmpty()&&Promise.all(t[fe].map(a=>a.close())).then(t[oa])},this[kE]=(r,n)=>{t.emit("connect",r,[t,...n])},this[RE]=(r,n,s)=>{t.emit("disconnect",r,[t,...n],s)},this[FE]=(r,n,s)=>{t.emit("connectionError",r,[t,...n],s)},this[SE]=new By(this)}get[cy](){return this[Ce]}get[sa](){return this[fe].filter(e=>e[sa]).length}get[gy](){return this[fe].filter(e=>e[sa]&&!e[Ce]).length}get[bE](){let e=this[Zr];for(let{[bE]:t}of this[fe])e+=t;return e}get[DE](){let e=0;for(let{[DE]:t}of this[fe])e+=t;return e}get[yE](){let e=this[Zr];for(let{[yE]:t}of this[fe])e+=t;return e}get stats(){return this[SE]}async[ly](){this[zr].isEmpty()?await Promise.all(this[fe].map(e=>e.close())):await new Promise(e=>{this[oa]=e})}async[Ey](e){for(;;){let t=this[zr].shift();if(!t)break;t.handler.onError(e)}await Promise.all(this[fe].map(t=>t.destroy(e)))}[Qy](e,t){let r=this[aa]();return r?r.dispatch(e,t)||(r[Ce]=!0,this[Ce]=!this[aa]()):(this[Ce]=!0,this[zr].push({opts:e,handler:t}),this[Zr]++),!this[Ce]}[NE](e){return e.on("drain",this[ia]).on("connect",this[kE]).on("disconnect",this[RE]).on("connectionError",this[FE]),this[fe].push(e),this[Ce]&&queueMicrotask(()=>{this[Ce]&&this[ia](e[uy],[this,e])}),this}[UE](e){e.close(()=>{let t=this[fe].indexOf(e);t!==-1&&this[fe].splice(t,1)}),this[Ce]=this[fe].some(t=>!t[Ce]&&t.closed!==!0&&t.destroyed!==!0)}};ME.exports={PoolBase:ca,kClients:fe,kNeedDrain:Ce,kAddClient:NE,kRemoveClient:UE,kGetDispatcher:aa}});var Zt=f((QL,YE)=>{"use strict";var{PoolBase:Iy,kClients:Qs,kNeedDrain:Cy,kAddClient:hy,kGetDispatcher:dy}=ga(),fy=_t(),{InvalidArgumentError:ua}=v(),LE=T(),{kUrl:TE,kInterceptors:py}=$(),wy=Rr(),la=Symbol("options"),Ea=Symbol("connections"),xE=Symbol("factory");function my(A,e){return new fy(A,e)}var Qa=class extends Iy{constructor(e,{connections:t,factory:r=my,connect:n,connectTimeout:s,tls:o,maxCachedSessions:i,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:u,allowH2:g,...l}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new ua("invalid connections");if(typeof r!="function")throw new ua("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new ua("connect must be a function or an object");typeof n!="function"&&(n=wy({...o,maxCachedSessions:i,allowH2:g,socketPath:a,timeout:s,...c?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:u}:void 0,...n})),super(l),this[py]=l.interceptors?.Pool&&Array.isArray(l.interceptors.Pool)?l.interceptors.Pool:[],this[Ea]=t||null,this[TE]=LE.parseOrigin(e),this[la]={...LE.deepClone(l),connect:n,allowH2:g},this[la].interceptors=l.interceptors?{...l.interceptors}:void 0,this[xE]=r,this.on("connectionError",(E,B,C)=>{for(let I of B){let Q=this[Qs].indexOf(I);Q!==-1&&this[Qs].splice(Q,1)}})}[dy](){for(let e of this[Qs])if(!e[Cy])return e;if(!this[Ea]||this[Qs].length<this[Ea]){let e=this[xE](this[TE],this[la]);return this[hy](e),e}}};YE.exports=Qa});var VE=f((BL,HE)=>{"use strict";var{BalancedPoolMissingUpstreamError:yy,InvalidArgumentError:Dy}=v(),{PoolBase:by,kClients:le,kNeedDrain:Kr,kAddClient:ky,kRemoveClient:Ry,kGetDispatcher:Fy}=ga(),Sy=Zt(),{kUrl:Ba,kInterceptors:Ny}=$(),{parseOrigin:GE}=T(),JE=Symbol("factory"),Bs=Symbol("options"),vE=Symbol("kGreatestCommonDivisor"),ct=Symbol("kCurrentWeight"),gt=Symbol("kIndex"),Je=Symbol("kWeight"),Is=Symbol("kMaxWeightPerServer"),Cs=Symbol("kErrorPenalty");function Uy(A,e){if(A===0)return e;for(;e!==0;){let t=e;e=A%e,A=t}return A}function My(A,e){return new Sy(A,e)}var Ia=class extends by{constructor(e=[],{factory:t=My,...r}={}){if(super(),this[Bs]=r,this[gt]=-1,this[ct]=0,this[Is]=this[Bs].maxWeightPerServer||100,this[Cs]=this[Bs].errorPenalty||15,Array.isArray(e)||(e=[e]),typeof t!="function")throw new Dy("factory must be a function.");this[Ny]=r.interceptors?.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[JE]=t;for(let n of e)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(e){let t=GE(e).origin;if(this[le].find(n=>n[Ba].origin===t&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[JE](t,Object.assign({},this[Bs]));this[ky](r),r.on("connect",()=>{r[Je]=Math.min(this[Is],r[Je]+this[Cs])}),r.on("connectionError",()=>{r[Je]=Math.max(1,r[Je]-this[Cs]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[Je]=Math.max(1,r[Je]-this[Cs]),this._updateBalancedPoolStats())});for(let n of this[le])n[Je]=this[Is];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let t=0;t<this[le].length;t++)e=Uy(this[le][t][Je],e);this[vE]=e}removeUpstream(e){let t=GE(e).origin,r=this[le].find(n=>n[Ba].origin===t&&n.closed!==!0&&n.destroyed!==!0);return r&&this[Ry](r),this}get upstreams(){return this[le].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[Ba].origin)}[Fy](){if(this[le].length===0)throw new yy;if(!this[le].find(s=>!s[Kr]&&s.closed!==!0&&s.destroyed!==!0)||this[le].map(s=>s[Kr]).reduce((s,o)=>s&&o,!0))return;let r=0,n=this[le].findIndex(s=>!s[Kr]);for(;r++<this[le].length;){this[gt]=(this[gt]+1)%this[le].length;let s=this[le][this[gt]];if(s[Je]>this[le][n][Je]&&!s[Kr]&&(n=this[gt]),this[gt]===0&&(this[ct]=this[ct]-this[vE],this[ct]<=0&&(this[ct]=this[Is])),s[Je]>=this[ct]&&!s[Kr])return s}return this[ct]=this[le][n][Je],this[gt]=n,this[le][n]}};HE.exports=Ia});var zt=f((IL,zE)=>{"use strict";var{InvalidArgumentError:hs}=v(),{kClients:YA,kRunning:qE,kClose:Ly,kDestroy:Ty,kDispatch:xy,kInterceptors:Yy}=$(),Gy=Nt(),Jy=Zt(),vy=_t(),Hy=T(),Vy=us(),OE=Symbol("onConnect"),WE=Symbol("onDisconnect"),PE=Symbol("onConnectionError"),qy=Symbol("maxRedirections"),_E=Symbol("onDrain"),ZE=Symbol("factory"),Ca=Symbol("options");function Oy(A,e){return e&&e.connections===1?new vy(A,e):new Jy(A,e)}var ha=class extends Gy{constructor({factory:e=Oy,maxRedirections:t=0,connect:r,...n}={}){if(typeof e!="function")throw new hs("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new hs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new hs("maxRedirections must be a positive number");super(n),r&&typeof r!="function"&&(r={...r}),this[Yy]=n.interceptors?.Agent&&Array.isArray(n.interceptors.Agent)?n.interceptors.Agent:[Vy({maxRedirections:t})],this[Ca]={...Hy.deepClone(n),connect:r},this[Ca].interceptors=n.interceptors?{...n.interceptors}:void 0,this[qy]=t,this[ZE]=e,this[YA]=new Map,this[_E]=(s,o)=>{this.emit("drain",s,[this,...o])},this[OE]=(s,o)=>{this.emit("connect",s,[this,...o])},this[WE]=(s,o,i)=>{this.emit("disconnect",s,[this,...o],i)},this[PE]=(s,o,i)=>{this.emit("connectionError",s,[this,...o],i)}}get[qE](){let e=0;for(let t of this[YA].values())e+=t[qE];return e}[xy](e,t){let r;if(e.origin&&(typeof e.origin=="string"||e.origin instanceof URL))r=String(e.origin);else throw new hs("opts.origin must be a non-empty string or URL.");let n=this[YA].get(r);return n||(n=this[ZE](e.origin,this[Ca]).on("drain",this[_E]).on("connect",this[OE]).on("disconnect",this[WE]).on("connectionError",this[PE]),this[YA].set(r,n)),n.dispatch(e,t)}async[Ly](){let e=[];for(let t of this[YA].values())e.push(t.close());this[YA].clear(),await Promise.all(e)}async[Ty](e){let t=[];for(let r of this[YA].values())t.push(r.destroy(e));this[YA].clear(),await Promise.all(t)}};zE.exports=ha});var ma=f((CL,oQ)=>{"use strict";var{kProxy:da,kClose:AQ,kDestroy:tQ,kDispatch:KE,kInterceptors:Wy}=$(),{URL:ut}=d("node:url"),Py=zt(),rQ=Zt(),nQ=Nt(),{InvalidArgumentError:Kt,RequestAbortedError:_y,SecureProxyConnectionError:Zy}=v(),XE=Rr(),sQ=_t(),ds=Symbol("proxy agent"),fs=Symbol("proxy client"),GA=Symbol("proxy headers"),fa=Symbol("request tls settings"),$E=Symbol("proxy tls settings"),jE=Symbol("connect endpoint function"),eQ=Symbol("tunnel proxy");function zy(A){return A==="https:"?443:80}function Ky(A,e){return new rQ(A,e)}var Xy=()=>{};function $y(A,e){return e.connections===1?new sQ(A,e):new rQ(A,e)}var pa=class extends nQ{#e;constructor(e,{headers:t={},connect:r,factory:n}){if(super(),!e)throw new Kt("Proxy URL is mandatory");this[GA]=t,n?this.#e=n(e,{connect:r}):this.#e=new sQ(e,{connect:r})}[KE](e,t){let r=t.onHeaders;t.onHeaders=function(i,a,c){if(i===407){typeof t.onError=="function"&&t.onError(new Kt("Proxy Authentication Required (407)"));return}r&&r.call(this,i,a,c)};let{origin:n,path:s="/",headers:o={}}=e;if(e.path=n+s,!("host"in o)&&!("Host"in o)){let{host:i}=new ut(n);o.host=i}return e.headers={...this[GA],...o},this.#e[KE](e,t)}async[AQ](){return this.#e.close()}async[tQ](e){return this.#e.destroy(e)}},wa=class extends nQ{constructor(e){if(super(),!e||typeof e=="object"&&!(e instanceof ut)&&!e.uri)throw new Kt("Proxy uri is mandatory");let{clientFactory:t=Ky}=e;if(typeof t!="function")throw new Kt("Proxy opts.clientFactory must be a function.");let{proxyTunnel:r=!0}=e,n=this.#e(e),{href:s,origin:o,port:i,protocol:a,username:c,password:u,hostname:g}=n;if(this[da]={uri:s,protocol:a},this[Wy]=e.interceptors?.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[],this[fa]=e.requestTls,this[$E]=e.proxyTls,this[GA]=e.headers||{},this[eQ]=r,e.auth&&e.token)throw new Kt("opts.auth cannot be used in combination with opts.token");e.auth?this[GA]["proxy-authorization"]=`Basic ${e.auth}`:e.token?this[GA]["proxy-authorization"]=e.token:c&&u&&(this[GA]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(c)}:${decodeURIComponent(u)}`).toString("base64")}`);let l=XE({...e.proxyTls});this[jE]=XE({...e.requestTls});let E=e.factory||$y,B=(C,I)=>{let{protocol:Q}=new ut(C);return!this[eQ]&&Q==="http:"&&this[da].protocol==="http:"?new pa(this[da].uri,{headers:this[GA],connect:l,factory:E}):E(C,I)};this[fs]=t(n,{connect:l}),this[ds]=new Py({...e,factory:B,connect:async(C,I)=>{let Q=C.host;C.port||(Q+=`:${zy(C.protocol)}`);try{let{socket:h,statusCode:y}=await this[fs].connect({origin:o,port:i,path:Q,signal:C.signal,headers:{...this[GA],host:C.host},servername:this[$E]?.servername||g});if(y!==200&&(h.on("error",Xy).destroy(),I(new _y(`Proxy response (${y}) !== 200 when HTTP Tunneling`))),C.protocol!=="https:"){I(null,h);return}let m;this[fa]?m=this[fa].servername:m=C.servername,this[jE]({...C,servername:m,httpSocket:h},I)}catch(h){h.code==="ERR_TLS_CERT_ALTNAME_INVALID"?I(new Zy(h)):I(h)}}})}dispatch(e,t){let r=jy(e.headers);if(eD(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new ut(e.origin);r.host=n}return this[ds].dispatch({...e,headers:r},t)}#e(e){return typeof e=="string"?new ut(e):e instanceof ut?e:new ut(e.uri)}async[AQ](){await this[ds].close(),await this[fs].close()}async[tQ](){await this[ds].destroy(),await this[fs].destroy()}};function jy(A){if(Array.isArray(A)){let e={};for(let t=0;t<A.length;t+=2)e[A[t]]=A[t+1];return e}return A}function eD(A){if(A&&Object.keys(A).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Kt("Proxy-Authorization should be sent in ProxyAgent constructor")}oQ.exports=wa});var lQ=f((hL,uQ)=>{"use strict";var AD=Nt(),{kClose:tD,kDestroy:rD,kClosed:iQ,kDestroyed:aQ,kDispatch:nD,kNoProxyAgent:Xr,kHttpProxyAgent:JA,kHttpsProxyAgent:lt}=$(),cQ=ma(),sD=zt(),oD={"http:":80,"https:":443},gQ=!1,ya=class extends AD{#e=null;#A=null;#t=null;constructor(e={}){super(),this.#t=e,gQ||(gQ=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:t,httpsProxy:r,noProxy:n,...s}=e;this[Xr]=new sD(s);let o=t??process.env.http_proxy??process.env.HTTP_PROXY;o?this[JA]=new cQ({...s,uri:o}):this[JA]=this[Xr];let i=r??process.env.https_proxy??process.env.HTTPS_PROXY;i?this[lt]=new cQ({...s,uri:i}):this[lt]=this[JA],this.#r()}[nD](e,t){let r=new URL(e.origin);return this.#s(r).dispatch(e,t)}async[tD](){await this[Xr].close(),this[JA][iQ]||await this[JA].close(),this[lt][iQ]||await this[lt].close()}async[rD](e){await this[Xr].destroy(e),this[JA][aQ]||await this[JA].destroy(e),this[lt][aQ]||await this[lt].destroy(e)}#s(e){let{protocol:t,host:r,port:n}=e;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||oD[t]||0,this.#n(r,n)?t==="https:"?this[lt]:this[JA]:this[Xr]}#n(e,t){if(this.#o&&this.#r(),this.#A.length===0)return!0;if(this.#e==="*")return!1;for(let r=0;r<this.#A.length;r++){let n=this.#A[r];if(!(n.port&&n.port!==t)){if(/^[.*]/.test(n.hostname)){if(e.endsWith(n.hostname.replace(/^\*/,"")))return!1}else if(e===n.hostname)return!1}}return!0}#r(){let e=this.#t.noProxy??this.#i,t=e.split(/[,\s]/),r=[];for(let n=0;n<t.length;n++){let s=t[n];if(!s)continue;let o=s.match(/^(.+):(\d+)$/);r.push({hostname:(o?o[1]:s).toLowerCase(),port:o?Number.parseInt(o[2],10):0})}this.#e=e,this.#A=r}get#o(){return this.#t.noProxy!==void 0?!1:this.#e!==this.#i}get#i(){return process.env.no_proxy??process.env.NO_PROXY??""}};uQ.exports=ya});var ps=f((dL,CQ)=>{"use strict";var Xt=d("node:assert"),{kRetryHandlerDefaultRetry:EQ}=$(),{RequestRetryError:$t}=v(),{isDisturbed:QQ,parseHeaders:iD,parseRangeHeader:BQ,wrapRequestBody:aD}=T();function cD(A){let e=Date.now();return new Date(A).getTime()-e}function IQ(A,e,t,r){let n=A["content-length"];if(n==null||!Number.isFinite(e.start)||!Number.isFinite(e.end))return null;let s=Number(n),o=e.end-e.start+1;return!Number.isFinite(s)||s!==o?new $t("Content-Length mismatch",t,{headers:A,data:{count:r}}):null}var Da=class A{constructor(e,t){let{retryOptions:r,...n}=e,{retry:s,maxRetries:o,maxTimeout:i,minTimeout:a,timeoutFactor:c,methods:u,errorCodes:g,retryAfter:l,statusCodes:E}=r??{};this.dispatch=t.dispatch,this.handler=t.handler,this.opts={...n,body:aD(e.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:s??A[EQ],retryAfter:l??!0,maxTimeout:i??30*1e3,minTimeout:a??500,timeoutFactor:c??2,maxRetries:o??5,methods:u??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:E??[500,502,503,504,429],errorCodes:g??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(e,t,r){this.handler.onUpgrade&&this.handler.onUpgrade(e,t,r)}onConnect(e){this.aborted?e(this.reason):this.abort=e}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[EQ](e,{state:t,opts:r},n){let{statusCode:s,code:o,headers:i}=e,{method:a,retryOptions:c}=r,{maxRetries:u,minTimeout:g,maxTimeout:l,timeoutFactor:E,statusCodes:B,errorCodes:C,methods:I}=c,{counter:Q}=t;if(o&&o!=="UND_ERR_REQ_RETRY"&&!C.includes(o)){n(e);return}if(Array.isArray(I)&&!I.includes(a)){n(e);return}if(s!=null&&Array.isArray(B)&&!B.includes(s)){n(e);return}if(Q>u){n(e);return}let h=i?.["retry-after"];h&&(h=Number(h),h=Number.isNaN(h)?cD(h):h*1e3);let y=h>0?Math.min(h,l):Math.min(g*E**(Q-1),l);setTimeout(()=>n(null),y)}onHeaders(e,t,r,n){let s=iD(t);if(this.retryCount+=1,e>=300)return this.retryOpts.statusCodes.includes(e)===!1?this.handler.onHeaders(e,t,r,n):(this.abort(new $t("Request failed",e,{headers:s,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,e!==206&&(this.start>0||e!==200))return this.abort(new $t("server does not support the range header and the payload was partially consumed",e,{headers:s,data:{count:this.retryCount}})),!1;let i=BQ(s["content-range"]);if(!i)return this.abort(new $t("Content-Range mismatch",e,{headers:s,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==s.etag)return this.abort(new $t("ETag mismatch",e,{headers:s,data:{count:this.retryCount}})),!1;let a=IQ(s,i,e,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:u,end:g=u-1}=i;return Xt(this.start===c,"content-range mismatch"),Xt(this.end==null||this.end===g,"content-range mismatch"),this.resume=r,!0}if(this.end==null){if(e===206){let i=BQ(s["content-range"]);if(i==null)return this.handler.onHeaders(e,t,r,n);let a=IQ(s,i,e,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:u,end:g=u-1}=i;Xt(c!=null&&Number.isFinite(c),"content-range mismatch"),Xt(g!=null&&Number.isFinite(g),"invalid content-length"),this.start=c,this.end=g}if(this.end==null){let i=s["content-length"];this.end=i!=null?Number(i)-1:null}return Xt(Number.isFinite(this.start)),Xt(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=r,this.etag=s.etag!=null?s.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(e,t,r,n)}let o=new $t("Request failed",e,{headers:s,data:{count:this.retryCount}});return this.abort(o),!1}onData(e){return this.start+=e.length,this.handler.onData(e)}onComplete(e){return this.retryCount=0,this.handler.onComplete(e)}onError(e){if(this.aborted||QQ(this.opts.body))return this.handler.onError(e);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(e,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},t.bind(this));function t(r){if(r!=null||this.aborted||QQ(this.opts.body))return this.handler.onError(r);if(this.start!==0){let n={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(n["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...n}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(n){this.handler.onError(n)}}}};CQ.exports=Da});var dQ=f((fL,hQ)=>{"use strict";var gD=br(),uD=ps(),ba=class extends gD{#e=null;#A=null;constructor(e,t={}){super(t),this.#e=e,this.#A=t}dispatch(e,t){let r=new uD({...e,retryOptions:this.#A},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(e,r)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};hQ.exports=ba});var Ua=f((pL,RQ)=>{"use strict";var yQ=d("node:assert"),{Readable:lD}=d("node:stream"),{RequestAbortedError:DQ,NotSupportedError:ED,InvalidArgumentError:QD,AbortError:ka}=v(),bQ=T(),{ReadableStreamFrom:BD}=T(),ke=Symbol("kConsume"),$r=Symbol("kReading"),vA=Symbol("kBody"),fQ=Symbol("kAbort"),kQ=Symbol("kContentType"),pQ=Symbol("kContentLength"),ID=()=>{},Ra=class extends lD{constructor({resume:e,abort:t,contentType:r="",contentLength:n,highWaterMark:s=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:s}),this._readableState.dataEmitted=!1,this[fQ]=t,this[ke]=null,this[vA]=null,this[kQ]=r,this[pQ]=n,this[$r]=!1}destroy(e){return!e&&!this._readableState.endEmitted&&(e=new DQ),e&&this[fQ](),super.destroy(e)}_destroy(e,t){this[$r]?t(e):setImmediate(()=>{t(e)})}on(e,...t){return(e==="data"||e==="readable")&&(this[$r]=!0),super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){let r=super.off(e,...t);return(e==="data"||e==="readable")&&(this[$r]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(e,...t){return this.off(e,...t)}push(e){return this[ke]&&e!==null?(Sa(this[ke],e),this[$r]?super.push(e):!0):super.push(e)}async text(){return jr(this,"text")}async json(){return jr(this,"json")}async blob(){return jr(this,"blob")}async bytes(){return jr(this,"bytes")}async arrayBuffer(){return jr(this,"arrayBuffer")}async formData(){throw new ED}get bodyUsed(){return bQ.isDisturbed(this)}get body(){return this[vA]||(this[vA]=BD(this),this[ke]&&(this[vA].getReader(),yQ(this[vA].locked))),this[vA]}async dump(e){let t=Number.isFinite(e?.limit)?e.limit:131072,r=e?.signal;if(r!=null&&(typeof r!="object"||!("aborted"in r)))throw new QD("signal must be an AbortSignal");return r?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((n,s)=>{this[pQ]>t&&this.destroy(new ka);let o=()=>{this.destroy(r.reason??new ka)};r?.addEventListener("abort",o),this.on("close",function(){r?.removeEventListener("abort",o),r?.aborted?s(r.reason??new ka):n(null)}).on("error",ID).on("data",function(i){t-=i.length,t<=0&&this.destroy()}).resume()})}};function CD(A){return A[vA]&&A[vA].locked===!0||A[ke]}function hD(A){return bQ.isDisturbed(A)||CD(A)}async function jr(A,e){return yQ(!A[ke]),new Promise((t,r)=>{if(hD(A)){let n=A._readableState;n.destroyed&&n.closeEmitted===!1?A.on("error",s=>{r(s)}).on("close",()=>{r(new TypeError("unusable"))}):r(n.errored??new TypeError("unusable"))}else queueMicrotask(()=>{A[ke]={type:e,stream:A,resolve:t,reject:r,length:0,body:[]},A.on("error",function(n){Na(this[ke],n)}).on("close",function(){this[ke].body!==null&&Na(this[ke],new DQ)}),dD(A[ke])})})}function dD(A){if(A.body===null)return;let{_readableState:e}=A.stream;if(e.bufferIndex){let t=e.bufferIndex,r=e.buffer.length;for(let n=t;n<r;n++)Sa(A,e.buffer[n])}else for(let t of e.buffer)Sa(A,t);for(e.endEmitted?mQ(this[ke]):A.stream.on("end",function(){mQ(this[ke])}),A.stream.resume();A.stream.read()!=null;);}function Fa(A,e){if(A.length===0||e===0)return"";let t=A.length===1?A[0]:Buffer.concat(A,e),r=t.length,n=r>2&&t[0]===239&&t[1]===187&&t[2]===191?3:0;return t.utf8Slice(n,r)}function wQ(A,e){if(A.length===0||e===0)return new Uint8Array(0);if(A.length===1)return new Uint8Array(A[0]);let t=new Uint8Array(Buffer.allocUnsafeSlow(e).buffer),r=0;for(let n=0;n<A.length;++n){let s=A[n];t.set(s,r),r+=s.length}return t}function mQ(A){let{type:e,body:t,resolve:r,stream:n,length:s}=A;try{e==="text"?r(Fa(t,s)):e==="json"?r(JSON.parse(Fa(t,s))):e==="arrayBuffer"?r(wQ(t,s).buffer):e==="blob"?r(new Blob(t,{type:n[kQ]})):e==="bytes"&&r(wQ(t,s)),Na(A)}catch(o){n.destroy(o)}}function Sa(A,e){A.length+=e.length,A.body.push(e)}function Na(A,e){A.body!==null&&(e?A.reject(e):A.resolve(),A.type=null,A.stream=null,A.resolve=null,A.reject=null,A.length=0,A.body=null)}RQ.exports={Readable:Ra,chunksDecode:Fa}});var Ma=f((wL,MQ)=>{var fD=d("node:assert"),{ResponseStatusCodeError:FQ}=v(),{chunksDecode:SQ}=Ua(),pD=128*1024;async function wD({callback:A,body:e,contentType:t,statusCode:r,statusMessage:n,headers:s}){fD(e);let o=[],i=0;try{for await(let g of e)if(o.push(g),i+=g.length,i>pD){o=[],i=0;break}}catch{o=[],i=0}let a=`Response status code ${r}${n?`: ${n}`:""}`;if(r===204||!t||!i){queueMicrotask(()=>A(new FQ(a,r,s)));return}let c=Error.stackTraceLimit;Error.stackTraceLimit=0;let u;try{NQ(t)?u=JSON.parse(SQ(o,i)):UQ(t)&&(u=SQ(o,i))}catch{}finally{Error.stackTraceLimit=c}queueMicrotask(()=>A(new FQ(a,r,s,u)))}var NQ=A=>A.length>15&&A[11]==="/"&&A[0]==="a"&&A[1]==="p"&&A[2]==="p"&&A[3]==="l"&&A[4]==="i"&&A[5]==="c"&&A[6]==="a"&&A[7]==="t"&&A[8]==="i"&&A[9]==="o"&&A[10]==="n"&&A[12]==="j"&&A[13]==="s"&&A[14]==="o"&&A[15]==="n",UQ=A=>A.length>4&&A[4]==="/"&&A[0]==="t"&&A[1]==="e"&&A[2]==="x"&&A[3]==="t";MQ.exports={getResolveErrorBodyCallback:wD,isContentTypeApplicationJson:NQ,isContentTypeText:UQ}});var xQ=f((mL,La)=>{"use strict";var mD=d("node:assert"),{Readable:yD}=Ua(),{InvalidArgumentError:jt,RequestAbortedError:LQ}=v(),Re=T(),{getResolveErrorBodyCallback:DD}=Ma(),{AsyncResource:bD}=d("node:async_hooks"),ws=class extends bD{constructor(e,t){if(!e||typeof e!="object")throw new jt("invalid opts");let{signal:r,method:n,opaque:s,body:o,onInfo:i,responseHeaders:a,throwOnError:c,highWaterMark:u}=e;try{if(typeof t!="function")throw new jt("invalid callback");if(u&&(typeof u!="number"||u<0))throw new jt("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new jt("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new jt("invalid method");if(i&&typeof i!="function")throw new jt("invalid onInfo callback");super("UNDICI_REQUEST")}catch(g){throw Re.isStream(o)&&Re.destroy(o.on("error",Re.nop),g),g}this.method=n,this.responseHeaders=a||null,this.opaque=s||null,this.callback=t,this.res=null,this.abort=null,this.body=o,this.trailers={},this.context=null,this.onInfo=i||null,this.throwOnError=c,this.highWaterMark=u,this.signal=r,this.reason=null,this.removeAbortListener=null,Re.isStream(o)&&o.on("error",g=>{this.onError(g)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new LQ:this.removeAbortListener=Re.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new LQ,this.res?Re.destroy(this.res.on("error",Re.nop),this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(e,t){if(this.reason){e(this.reason);return}mD(this.callback),this.abort=e,this.context=t}onHeaders(e,t,r,n){let{callback:s,opaque:o,abort:i,context:a,responseHeaders:c,highWaterMark:u}=this,g=c==="raw"?Re.parseRawHeaders(t):Re.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:g});return}let l=c==="raw"?Re.parseHeaders(t):g,E=l["content-type"],B=l["content-length"],C=new yD({resume:r,abort:i,contentType:E,contentLength:this.method!=="HEAD"&&B?Number(B):null,highWaterMark:u});this.removeAbortListener&&C.on("close",this.removeAbortListener),this.callback=null,this.res=C,s!==null&&(this.throwOnError&&e>=400?this.runInAsyncScope(DD,null,{callback:s,body:C,contentType:E,statusCode:e,statusMessage:n,headers:g}):this.runInAsyncScope(s,null,null,{statusCode:e,headers:g,trailers:this.trailers,opaque:o,body:C,context:a}))}onData(e){return this.res.push(e)}onComplete(e){Re.parseHeaders(e,this.trailers),this.res.push(null)}onError(e){let{res:t,callback:r,body:n,opaque:s}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:s})})),t&&(this.res=null,queueMicrotask(()=>{Re.destroy(t,e)})),n&&(this.body=null,Re.destroy(n,e)),this.removeAbortListener&&(t?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function TQ(A,e){if(e===void 0)return new Promise((t,r)=>{TQ.call(this,A,(n,s)=>n?r(n):t(s))});try{this.dispatch(A,new ws(A,e))}catch(t){if(typeof e!="function")throw t;let r=A?.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}La.exports=TQ;La.exports.RequestHandler=ws});var en=f((yL,JQ)=>{var{addAbortListener:kD}=T(),{RequestAbortedError:RD}=v(),er=Symbol("kListener"),aA=Symbol("kSignal");function YQ(A){A.abort?A.abort(A[aA]?.reason):A.reason=A[aA]?.reason??new RD,GQ(A)}function FD(A,e){if(A.reason=null,A[aA]=null,A[er]=null,!!e){if(e.aborted){YQ(A);return}A[aA]=e,A[er]=()=>{YQ(A)},kD(A[aA],A[er])}}function GQ(A){A[aA]&&("removeEventListener"in A[aA]?A[aA].removeEventListener("abort",A[er]):A[aA].removeListener("abort",A[er]),A[aA]=null,A[er]=null)}JQ.exports={addSignal:FD,removeSignal:GQ}});var qQ=f((DL,VQ)=>{"use strict";var SD=d("node:assert"),{finished:ND,PassThrough:UD}=d("node:stream"),{InvalidArgumentError:Ar,InvalidReturnValueError:MD}=v(),Ke=T(),{getResolveErrorBodyCallback:LD}=Ma(),{AsyncResource:TD}=d("node:async_hooks"),{addSignal:xD,removeSignal:vQ}=en(),Ta=class extends TD{constructor(e,t,r){if(!e||typeof e!="object")throw new Ar("invalid opts");let{signal:n,method:s,opaque:o,body:i,onInfo:a,responseHeaders:c,throwOnError:u}=e;try{if(typeof r!="function")throw new Ar("invalid callback");if(typeof t!="function")throw new Ar("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Ar("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Ar("invalid method");if(a&&typeof a!="function")throw new Ar("invalid onInfo callback");super("UNDICI_STREAM")}catch(g){throw Ke.isStream(i)&&Ke.destroy(i.on("error",Ke.nop),g),g}this.responseHeaders=c||null,this.opaque=o||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=i,this.onInfo=a||null,this.throwOnError=u||!1,Ke.isStream(i)&&i.on("error",g=>{this.onError(g)}),xD(this,n)}onConnect(e,t){if(this.reason){e(this.reason);return}SD(this.callback),this.abort=e,this.context=t}onHeaders(e,t,r,n){let{factory:s,opaque:o,context:i,callback:a,responseHeaders:c}=this,u=c==="raw"?Ke.parseRawHeaders(t):Ke.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:u});return}this.factory=null;let g;if(this.throwOnError&&e>=400){let B=(c==="raw"?Ke.parseHeaders(t):u)["content-type"];g=new UD,this.callback=null,this.runInAsyncScope(LD,null,{callback:a,body:g,contentType:B,statusCode:e,statusMessage:n,headers:u})}else{if(s===null)return;if(g=this.runInAsyncScope(s,null,{statusCode:e,headers:u,opaque:o,context:i}),!g||typeof g.write!="function"||typeof g.end!="function"||typeof g.on!="function")throw new MD("expected Writable");ND(g,{readable:!1},E=>{let{callback:B,res:C,opaque:I,trailers:Q,abort:h}=this;this.res=null,(E||!C.readable)&&Ke.destroy(C,E),this.callback=null,this.runInAsyncScope(B,null,E||null,{opaque:I,trailers:Q}),E&&h()})}return g.on("drain",r),this.res=g,(g.writableNeedDrain!==void 0?g.writableNeedDrain:g._writableState?.needDrain)!==!0}onData(e){let{res:t}=this;return t?t.write(e):!0}onComplete(e){let{res:t}=this;vQ(this),t&&(this.trailers=Ke.parseHeaders(e),t.end())}onError(e){let{res:t,callback:r,opaque:n,body:s}=this;vQ(this),this.factory=null,t?(this.res=null,Ke.destroy(t,e)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})})),s&&(this.body=null,Ke.destroy(s,e))}};function HQ(A,e,t){if(t===void 0)return new Promise((r,n)=>{HQ.call(this,A,e,(s,o)=>s?n(s):r(o))});try{this.dispatch(A,new Ta(A,e,t))}catch(r){if(typeof t!="function")throw r;let n=A?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}VQ.exports=HQ});var _Q=f((bL,PQ)=>{"use strict";var{Readable:WQ,Duplex:YD,PassThrough:GD}=d("node:stream"),{InvalidArgumentError:An,InvalidReturnValueError:JD,RequestAbortedError:xa}=v(),ve=T(),{AsyncResource:vD}=d("node:async_hooks"),{addSignal:HD,removeSignal:VD}=en(),OQ=d("node:assert"),tr=Symbol("resume"),Ya=class extends WQ{constructor(){super({autoDestroy:!0}),this[tr]=null}_read(){let{[tr]:e}=this;e&&(this[tr]=null,e())}_destroy(e,t){this._read(),t(e)}},Ga=class extends WQ{constructor(e){super({autoDestroy:!0}),this[tr]=e}_read(){this[tr]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new xa),t(e)}},Ja=class extends vD{constructor(e,t){if(!e||typeof e!="object")throw new An("invalid opts");if(typeof t!="function")throw new An("invalid handler");let{signal:r,method:n,opaque:s,onInfo:o,responseHeaders:i}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new An("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new An("invalid method");if(o&&typeof o!="function")throw new An("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=s||null,this.responseHeaders=i||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=o||null,this.req=new Ya().on("error",ve.nop),this.ret=new YD({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,c,u)=>{let{req:g}=this;g.push(a,c)||g._readableState.destroyed?u():g[tr]=u},destroy:(a,c)=>{let{body:u,req:g,res:l,ret:E,abort:B}=this;!a&&!E._readableState.endEmitted&&(a=new xa),B&&a&&B(),ve.destroy(u,a),ve.destroy(g,a),ve.destroy(l,a),VD(this),c(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,HD(this,r)}onConnect(e,t){let{ret:r,res:n}=this;if(this.reason){e(this.reason);return}OQ(!n,"pipeline cannot be retried"),OQ(!r.destroyed),this.abort=e,this.context=t}onHeaders(e,t,r){let{opaque:n,handler:s,context:o}=this;if(e<200){if(this.onInfo){let a=this.responseHeaders==="raw"?ve.parseRawHeaders(t):ve.parseHeaders(t);this.onInfo({statusCode:e,headers:a})}return}this.res=new Ga(r);let i;try{this.handler=null;let a=this.responseHeaders==="raw"?ve.parseRawHeaders(t):ve.parseHeaders(t);i=this.runInAsyncScope(s,null,{statusCode:e,headers:a,opaque:n,body:this.res,context:o})}catch(a){throw this.res.on("error",ve.nop),a}if(!i||typeof i.on!="function")throw new JD("expected Readable");i.on("data",a=>{let{ret:c,body:u}=this;!c.push(a)&&u.pause&&u.pause()}).on("error",a=>{let{ret:c}=this;ve.destroy(c,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||ve.destroy(a,new xa)}),this.body=i}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;t.push(null)}onError(e){let{ret:t}=this;this.handler=null,ve.destroy(t,e)}};function qD(A,e){try{let t=new Ja(A,e);return this.dispatch({...A,body:t.req},t),t.ret}catch(t){return new GD().destroy(t)}}PQ.exports=qD});var jQ=f((kL,$Q)=>{"use strict";var{InvalidArgumentError:va,SocketError:OD}=v(),{AsyncResource:WD}=d("node:async_hooks"),ZQ=T(),{addSignal:PD,removeSignal:zQ}=en(),KQ=d("node:assert"),Ha=class extends WD{constructor(e,t){if(!e||typeof e!="object")throw new va("invalid opts");if(typeof t!="function")throw new va("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new va("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=s||null,this.opaque=n||null,this.callback=t,this.abort=null,this.context=null,PD(this,r)}onConnect(e,t){if(this.reason){e(this.reason);return}KQ(this.callback),this.abort=e,this.context=null}onHeaders(){throw new OD("bad upgrade",null)}onUpgrade(e,t,r){KQ(e===101);let{callback:n,opaque:s,context:o}=this;zQ(this),this.callback=null;let i=this.responseHeaders==="raw"?ZQ.parseRawHeaders(t):ZQ.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:i,socket:r,opaque:s,context:o})}onError(e){let{callback:t,opaque:r}=this;zQ(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function XQ(A,e){if(e===void 0)return new Promise((t,r)=>{XQ.call(this,A,(n,s)=>n?r(n):t(s))});try{let t=new Ha(A,e);this.dispatch({...A,method:A.method||"GET",upgrade:A.protocol||"Websocket"},t)}catch(t){if(typeof e!="function")throw t;let r=A?.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}$Q.exports=XQ});var nB=f((RL,rB)=>{"use strict";var _D=d("node:assert"),{AsyncResource:ZD}=d("node:async_hooks"),{InvalidArgumentError:Va,SocketError:zD}=v(),eB=T(),{addSignal:KD,removeSignal:AB}=en(),qa=class extends ZD{constructor(e,t){if(!e||typeof e!="object")throw new Va("invalid opts");if(typeof t!="function")throw new Va("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Va("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=t,this.abort=null,KD(this,r)}onConnect(e,t){if(this.reason){e(this.reason);return}_D(this.callback),this.abort=e,this.context=t}onHeaders(){throw new zD("bad connect",null)}onUpgrade(e,t,r){let{callback:n,opaque:s,context:o}=this;AB(this),this.callback=null;let i=t;i!=null&&(i=this.responseHeaders==="raw"?eB.parseRawHeaders(t):eB.parseHeaders(t)),this.runInAsyncScope(n,null,null,{statusCode:e,headers:i,socket:r,opaque:s,context:o})}onError(e){let{callback:t,opaque:r}=this;AB(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}};function tB(A,e){if(e===void 0)return new Promise((t,r)=>{tB.call(this,A,(n,s)=>n?r(n):t(s))});try{let t=new qa(A,e);this.dispatch({...A,method:"CONNECT"},t)}catch(t){if(typeof e!="function")throw t;let r=A?.opaque;queueMicrotask(()=>e(t,{opaque:r}))}}rB.exports=tB});var sB=f((FL,rr)=>{"use strict";rr.exports.request=xQ();rr.exports.stream=qQ();rr.exports.pipeline=_Q();rr.exports.upgrade=jQ();rr.exports.connect=nB()});var Wa=f((SL,iB)=>{"use strict";var{UndiciError:XD}=v(),oB=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),Oa=class A extends XD{constructor(e){super(e),Error.captureStackTrace(this,A),this.name="MockNotMatchedError",this.message=e||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](e){return e&&e[oB]===!0}[oB]=!0};iB.exports={MockNotMatchedError:Oa}});var nr=f((NL,aB)=>{"use strict";aB.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var tn=f((UL,dB)=>{"use strict";var{MockNotMatchedError:Et}=Wa(),{kDispatches:ms,kMockAgent:$D,kOriginalDispatch:jD,kOrigin:eb,kGetNetConnect:Ab}=nr(),{buildURL:tb}=T(),{STATUS_CODES:rb}=d("node:http"),{types:{isPromise:nb}}=d("node:util");function mA(A,e){return typeof A=="string"?A===e:A instanceof RegExp?A.test(e):typeof A=="function"?A(e)===!0:!1}function gB(A){return Object.fromEntries(Object.entries(A).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function uB(A,e){if(Array.isArray(A)){for(let t=0;t<A.length;t+=2)if(A[t].toLocaleLowerCase()===e.toLocaleLowerCase())return A[t+1];return}else return typeof A.get=="function"?A.get(e):gB(A)[e.toLocaleLowerCase()]}function Za(A){let e=A.slice(),t=[];for(let r=0;r<e.length;r+=2)t.push([e[r],e[r+1]]);return Object.fromEntries(t)}function lB(A,e){if(typeof A.headers=="function")return Array.isArray(e)&&(e=Za(e)),A.headers(e?gB(e):{});if(typeof A.headers>"u")return!0;if(typeof e!="object"||typeof A.headers!="object")return!1;for(let[t,r]of Object.entries(A.headers)){let n=uB(e,t);if(!mA(r,n))return!1}return!0}function cB(A){if(typeof A!="string")return A;let e=A.split("?");if(e.length!==2)return A;let t=new URLSearchParams(e.pop());return t.sort(),[...e,t.toString()].join("?")}function sb(A,{path:e,method:t,body:r,headers:n}){let s=mA(A.path,e),o=mA(A.method,t),i=typeof A.body<"u"?mA(A.body,r):!0,a=lB(A,n);return s&&o&&i&&a}function EB(A){return Buffer.isBuffer(A)||A instanceof Uint8Array||A instanceof ArrayBuffer?A:typeof A=="object"?JSON.stringify(A):A.toString()}function QB(A,e){let t=e.query?tb(e.path,e.query):e.path,r=typeof t=="string"?cB(t):t,n=A.filter(({consumed:s})=>!s).filter(({path:s})=>mA(cB(s),r));if(n.length===0)throw new Et(`Mock dispatch not matched for path '${r}'`);if(n=n.filter(({method:s})=>mA(s,e.method)),n.length===0)throw new Et(`Mock dispatch not matched for method '${e.method}' on path '${r}'`);if(n=n.filter(({body:s})=>typeof s<"u"?mA(s,e.body):!0),n.length===0)throw new Et(`Mock dispatch not matched for body '${e.body}' on path '${r}'`);if(n=n.filter(s=>lB(s,e.headers)),n.length===0){let s=typeof e.headers=="object"?JSON.stringify(e.headers):e.headers;throw new Et(`Mock dispatch not matched for headers '${s}' on path '${r}'`)}return n[0]}function ob(A,e,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},n=typeof t=="function"?{callback:t}:{...t},s={...r,...e,pending:!0,data:{error:null,...n}};return A.push(s),s}function Pa(A,e){let t=A.findIndex(r=>r.consumed?sb(r,e):!1);t!==-1&&A.splice(t,1)}function BB(A){let{path:e,method:t,body:r,headers:n,query:s}=A;return{path:e,method:t,body:r,headers:n,query:s}}function _a(A){let e=Object.keys(A),t=[];for(let r=0;r<e.length;++r){let n=e[r],s=A[n],o=Buffer.from(`${n}`);if(Array.isArray(s))for(let i=0;i<s.length;++i)t.push(o,Buffer.from(`${s[i]}`));else t.push(o,Buffer.from(`${s}`))}return t}function IB(A){return rb[A]||"unknown"}async function ib(A){let e=[];for await(let t of A)e.push(t);return Buffer.concat(e).toString("utf8")}function CB(A,e){let t=BB(A),r=QB(this[ms],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(A)});let{data:{statusCode:n,data:s,headers:o,trailers:i,error:a},delay:c,persist:u}=r,{timesInvoked:g,times:l}=r;if(r.consumed=!u&&g>=l,r.pending=g<l,a!==null)return Pa(this[ms],t),e.onError(a),!0;typeof c=="number"&&c>0?setTimeout(()=>{E(this[ms])},c):E(this[ms]);function E(C,I=s){let Q=Array.isArray(A.headers)?Za(A.headers):A.headers,h=typeof I=="function"?I({...A,headers:Q}):I;if(nb(h)){h.then(_=>E(C,_));return}let y=EB(h),m=_a(o),x=_a(i);e.onConnect?.(_=>e.onError(_),null),e.onHeaders?.(n,m,B,IB(n)),e.onData?.(Buffer.from(y)),e.onComplete?.(x),Pa(C,t)}function B(){}return!0}function ab(){let A=this[$D],e=this[eb],t=this[jD];return function(n,s){if(A.isMockActive)try{CB.call(this,n,s)}catch(o){if(o instanceof Et){let i=A[Ab]();if(i===!1)throw new Et(`${o.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)`);if(hB(i,e))t.call(this,n,s);else throw new Et(`${o.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)`)}else throw o}else t.call(this,n,s)}}function hB(A,e){let t=new URL(e);return A===!0?!0:!!(Array.isArray(A)&&A.some(r=>mA(r,t.host)))}function cb(A){if(A){let{agent:e,...t}=A;return t}}dB.exports={getResponseData:EB,getMockDispatch:QB,addMockDispatch:ob,deleteMockDispatch:Pa,buildKey:BB,generateKeyValues:_a,matchValue:mA,getResponse:ib,getStatusText:IB,mockDispatch:CB,buildMockDispatch:ab,checkNetConnect:hB,buildMockOptions:cb,getHeaderByName:uB,buildHeadersFromArray:Za}});var Ac=f((ML,ec)=>{"use strict";var{getResponseData:gb,buildKey:ub,addMockDispatch:za}=tn(),{kDispatches:ys,kDispatchKey:Ds,kDefaultHeaders:Ka,kDefaultTrailers:Xa,kContentLength:$a,kMockDispatch:bs}=nr(),{InvalidArgumentError:cA}=v(),{buildURL:lb}=T(),sr=class{constructor(e){this[bs]=e}delay(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new cA("waitInMs must be a valid integer > 0");return this[bs].delay=e,this}persist(){return this[bs].persist=!0,this}times(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new cA("repeatTimes must be a valid integer > 0");return this[bs].times=e,this}},ja=class{constructor(e,t){if(typeof e!="object")throw new cA("opts must be an object");if(typeof e.path>"u")throw new cA("opts.path must be defined");if(typeof e.method>"u"&&(e.method="GET"),typeof e.path=="string")if(e.query)e.path=lb(e.path,e.query);else{let r=new URL(e.path,"data://");e.path=r.pathname+r.search}typeof e.method=="string"&&(e.method=e.method.toUpperCase()),this[Ds]=ub(e),this[ys]=t,this[Ka]={},this[Xa]={},this[$a]=!1}createMockScopeDispatchData({statusCode:e,data:t,responseOptions:r}){let n=gb(t),s=this[$a]?{"content-length":n.length}:{},o={...this[Ka],...s,...r.headers},i={...this[Xa],...r.trailers};return{statusCode:e,data:t,headers:o,trailers:i}}validateReplyParameters(e){if(typeof e.statusCode>"u")throw new cA("statusCode must be defined");if(typeof e.responseOptions!="object"||e.responseOptions===null)throw new cA("responseOptions must be an object")}reply(e){if(typeof e=="function"){let s=i=>{let a=e(i);if(typeof a!="object"||a===null)throw new cA("reply options callback must return an object");let c={data:"",responseOptions:{},...a};return this.validateReplyParameters(c),{...this.createMockScopeDispatchData(c)}},o=za(this[ys],this[Ds],s);return new sr(o)}let t={statusCode:e,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let r=this.createMockScopeDispatchData(t),n=za(this[ys],this[Ds],r);return new sr(n)}replyWithError(e){if(typeof e>"u")throw new cA("error must be defined");let t=za(this[ys],this[Ds],{error:e});return new sr(t)}defaultReplyHeaders(e){if(typeof e>"u")throw new cA("headers must be defined");return this[Ka]=e,this}defaultReplyTrailers(e){if(typeof e>"u")throw new cA("trailers must be defined");return this[Xa]=e,this}replyContentLength(){return this[$a]=!0,this}};ec.exports.MockInterceptor=ja;ec.exports.MockScope=sr});var nc=f((LL,bB)=>{"use strict";var{promisify:Eb}=d("node:util"),Qb=_t(),{buildMockDispatch:Bb}=tn(),{kDispatches:fB,kMockAgent:pB,kClose:wB,kOriginalClose:mB,kOrigin:yB,kOriginalDispatch:Ib,kConnected:tc}=nr(),{MockInterceptor:Cb}=Ac(),DB=$(),{InvalidArgumentError:hb}=v(),rc=class extends Qb{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new hb("Argument opts.agent must implement Agent");this[pB]=t.agent,this[yB]=e,this[fB]=[],this[tc]=1,this[Ib]=this.dispatch,this[mB]=this.close.bind(this),this.dispatch=Bb.call(this),this.close=this[wB]}get[DB.kConnected](){return this[tc]}intercept(e){return new Cb(e,this[fB])}async[wB](){await Eb(this[mB])(),this[tc]=0,this[pB][DB.kClients].delete(this[yB])}};bB.exports=rc});var ic=f((TL,MB)=>{"use strict";var{promisify:db}=d("node:util"),fb=Zt(),{buildMockDispatch:pb}=tn(),{kDispatches:kB,kMockAgent:RB,kClose:FB,kOriginalClose:SB,kOrigin:NB,kOriginalDispatch:wb,kConnected:sc}=nr(),{MockInterceptor:mb}=Ac(),UB=$(),{InvalidArgumentError:yb}=v(),oc=class extends fb{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new yb("Argument opts.agent must implement Agent");this[RB]=t.agent,this[NB]=e,this[kB]=[],this[sc]=1,this[wb]=this.dispatch,this[SB]=this.close.bind(this),this.dispatch=pb.call(this),this.close=this[FB]}get[UB.kConnected](){return this[sc]}intercept(e){return new mb(e,this[kB])}async[FB](){await db(this[SB])(),this[sc]=0,this[RB][UB.kClients].delete(this[NB])}};MB.exports=oc});var TB=f((YL,LB)=>{"use strict";var Db={pronoun:"it",is:"is",was:"was",this:"this"},bb={pronoun:"they",is:"are",was:"were",this:"these"};LB.exports=class{constructor(e,t){this.singular=e,this.plural=t}pluralize(e){let t=e===1,r=t?Db:bb,n=t?this.singular:this.plural;return{...r,count:e,noun:n}}}});var YB=f((JL,xB)=>{"use strict";var{Transform:kb}=d("node:stream"),{Console:Rb}=d("node:console"),Fb=process.versions.icu?"\u2705":"Y ",Sb=process.versions.icu?"\u274C":"N ";xB.exports=class{constructor({disableColors:e}={}){this.transform=new kb({transform(t,r,n){n(null,t)}}),this.logger=new Rb({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:r,path:n,data:{statusCode:s},persist:o,times:i,timesInvoked:a,origin:c})=>({Method:r,Origin:c,Path:n,"Status code":s,Persistent:o?Fb:Sb,Invocations:a,Remaining:o?1/0:i-a}));return this.logger.table(t),this.transform.read().toString()}}});var HB=f((vL,vB)=>{"use strict";var{kClients:Qt}=$(),Nb=zt(),{kAgent:ac,kMockAgentSet:ks,kMockAgentGet:GB,kDispatches:cc,kIsMockActive:Rs,kNetConnect:Bt,kGetNetConnect:Ub,kOptions:Fs,kFactory:Ss}=nr(),Mb=nc(),Lb=ic(),{matchValue:Tb,buildMockOptions:xb}=tn(),{InvalidArgumentError:JB,UndiciError:Yb}=v(),Gb=br(),Jb=TB(),vb=YB(),gc=class extends Gb{constructor(e){if(super(e),this[Bt]=!0,this[Rs]=!0,e?.agent&&typeof e.agent.dispatch!="function")throw new JB("Argument opts.agent must implement Agent");let t=e?.agent?e.agent:new Nb(e);this[ac]=t,this[Qt]=t[Qt],this[Fs]=xb(e)}get(e){let t=this[GB](e);return t||(t=this[Ss](e),this[ks](e,t)),t}dispatch(e,t){return this.get(e.origin),this[ac].dispatch(e,t)}async close(){await this[ac].close(),this[Qt].clear()}deactivate(){this[Rs]=!1}activate(){this[Rs]=!0}enableNetConnect(e){if(typeof e=="string"||typeof e=="function"||e instanceof RegExp)Array.isArray(this[Bt])?this[Bt].push(e):this[Bt]=[e];else if(typeof e>"u")this[Bt]=!0;else throw new JB("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[Bt]=!1}get isMockActive(){return this[Rs]}[ks](e,t){this[Qt].set(e,t)}[Ss](e){let t=Object.assign({agent:this},this[Fs]);return this[Fs]&&this[Fs].connections===1?new Mb(e,t):new Lb(e,t)}[GB](e){let t=this[Qt].get(e);if(t)return t;if(typeof e!="string"){let r=this[Ss]("http://localhost:9999");return this[ks](e,r),r}for(let[r,n]of Array.from(this[Qt]))if(n&&typeof r!="string"&&Tb(r,e)){let s=this[Ss](e);return this[ks](e,s),s[cc]=n[cc],s}}[Ub](){return this[Bt]}pendingInterceptors(){let e=this[Qt];return Array.from(e.entries()).flatMap(([t,r])=>r[cc].map(n=>({...n,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new vb}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new Jb("interceptor","interceptors").pluralize(t.length);throw new Yb(`
|
|
41
|
+
${r.count} ${r.noun} ${r.is} pending:
|
|
42
|
+
|
|
43
|
+
${e.format(t)}
|
|
44
|
+
`.trim())}};vB.exports=gc});var Ns=f((HL,WB)=>{"use strict";var VB=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Hb}=v(),Vb=zt();OB()===void 0&&qB(new Vb);function qB(A){if(!A||typeof A.dispatch!="function")throw new Hb("Argument agent must implement Agent");Object.defineProperty(globalThis,VB,{value:A,writable:!0,enumerable:!1,configurable:!1})}function OB(){return globalThis[VB]}WB.exports={setGlobalDispatcher:qB,getGlobalDispatcher:OB}});var Us=f((qL,PB)=>{"use strict";PB.exports=class{#e;constructor(e){if(typeof e!="object"||e===null)throw new TypeError("handler must be an object");this.#e=e}onConnect(...e){return this.#e.onConnect?.(...e)}onError(...e){return this.#e.onError?.(...e)}onUpgrade(...e){return this.#e.onUpgrade?.(...e)}onResponseStarted(...e){return this.#e.onResponseStarted?.(...e)}onHeaders(...e){return this.#e.onHeaders?.(...e)}onData(...e){return this.#e.onData?.(...e)}onComplete(...e){return this.#e.onComplete?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}}});var ZB=f((OL,_B)=>{"use strict";var qb=gs();_B.exports=A=>{let e=A?.maxRedirections;return t=>function(n,s){let{maxRedirections:o=e,...i}=n;if(!o)return t(n,s);let a=new qb(t,o,n,s);return t(i,a)}}});var KB=f((WL,zB)=>{"use strict";var Ob=ps();zB.exports=A=>e=>function(r,n){return e(r,new Ob({...r,retryOptions:{...A,...r.retryOptions}},{handler:n,dispatch:e}))}});var $B=f((PL,XB)=>{"use strict";var Wb=T(),{InvalidArgumentError:Pb,RequestAbortedError:_b}=v(),Zb=Us(),uc=class extends Zb{#e=1024*1024;#A=null;#t=!1;#s=!1;#n=0;#r=null;#o=null;constructor({maxSize:e},t){if(super(t),e!=null&&(!Number.isFinite(e)||e<1))throw new Pb("maxSize must be a number greater than 0");this.#e=e??this.#e,this.#o=t}onConnect(e){this.#A=e,this.#o.onConnect(this.#i.bind(this))}#i(e){this.#s=!0,this.#r=e}onHeaders(e,t,r,n){let o=Wb.parseHeaders(t)["content-length"];if(o!=null&&o>this.#e)throw new _b(`Response size (${o}) larger than maxSize (${this.#e})`);return this.#s?!0:this.#o.onHeaders(e,t,r,n)}onError(e){this.#t||(e=this.#r??e,this.#o.onError(e))}onData(e){return this.#n=this.#n+e.length,this.#n>=this.#e&&(this.#t=!0,this.#s?this.#o.onError(this.#r):this.#o.onComplete([])),!0}onComplete(e){if(!this.#t){if(this.#s){this.#o.onError(this.reason);return}this.#o.onComplete(e)}}};function zb({maxSize:A}={maxSize:1024*1024}){return e=>function(r,n){let{dumpMaxSize:s=A}=r,o=new uc({maxSize:s},n);return e(r,o)}}XB.exports=zb});var AI=f((_L,eI)=>{"use strict";var{isIP:Kb}=d("node:net"),{lookup:Xb}=d("node:dns"),$b=Us(),{InvalidArgumentError:or,InformationalError:jb}=v(),jB=Math.pow(2,31)-1,lc=class{#e=0;#A=0;#t=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(e){this.#e=e.maxTTL,this.#A=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#s,this.pick=e.pick??this.#n}get full(){return this.#t.size===this.#A}runLookup(e,t,r){let n=this.#t.get(e.hostname);if(n==null&&this.full){r(null,e.origin);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#A};if(n==null)this.lookup(e,s,(o,i)=>{if(o||i==null||i.length===0){r(o??new jb("No DNS entries found"));return}this.setRecords(e,i);let a=this.#t.get(e.hostname),c=this.pick(e,a,s.affinity),u;typeof c.port=="number"?u=`:${c.port}`:e.port!==""?u=`:${e.port}`:u="",r(null,`${e.protocol}//${c.family===6?`[${c.address}]`:c.address}${u}`)});else{let o=this.pick(e,n,s.affinity);if(o==null){this.#t.delete(e.hostname),this.runLookup(e,t,r);return}let i;typeof o.port=="number"?i=`:${o.port}`:e.port!==""?i=`:${e.port}`:i="",r(null,`${e.protocol}//${o.family===6?`[${o.address}]`:o.address}${i}`)}}#s(e,t,r){Xb(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return r(n);let o=new Map;for(let i of s)o.set(`${i.address}:${i.family}`,i);r(null,o.values())})}#n(e,t,r){let n=null,{records:s,offset:o}=t,i;if(this.dualStack?(r==null&&(o==null||o===jB?(t.offset=0,r=4):(t.offset++,r=(t.offset&1)===1?6:4)),s[r]!=null&&s[r].ips.length>0?i=s[r]:i=s[r===4?6:4]):i=s[r],i==null||i.ips.length===0)return n;i.offset==null||i.offset===jB?i.offset=0:i.offset++;let a=i.offset%i.ips.length;return n=i.ips[a]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(i.ips.splice(a,1),this.pick(e,t,r)):n}setRecords(e,t){let r=Date.now(),n={records:{4:null,6:null}};for(let s of t){s.timestamp=r,typeof s.ttl=="number"?s.ttl=Math.min(s.ttl,this.#e):s.ttl=this.#e;let o=n.records[s.family]??{ips:[]};o.ips.push(s),n.records[s.family]=o}this.#t.set(e.hostname,n)}getHandler(e,t){return new Ec(this,e,t)}},Ec=class extends $b{#e=null;#A=null;#t=null;#s=null;#n=null;constructor(e,{origin:t,handler:r,dispatch:n},s){super(r),this.#n=t,this.#s=r,this.#A={...s},this.#e=e,this.#t=n}onError(e){switch(e.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){this.#e.runLookup(this.#n,this.#A,(t,r)=>{if(t)return this.#s.onError(t);let n={...this.#A,origin:r};this.#t(n,this)});return}this.#s.onError(e);return}case"ENOTFOUND":this.#e.deleteRecord(this.#n);default:this.#s.onError(e);break}}};eI.exports=A=>{if(A?.maxTTL!=null&&(typeof A?.maxTTL!="number"||A?.maxTTL<0))throw new or("Invalid maxTTL. Must be a positive number");if(A?.maxItems!=null&&(typeof A?.maxItems!="number"||A?.maxItems<1))throw new or("Invalid maxItems. Must be a positive number and greater than zero");if(A?.affinity!=null&&A?.affinity!==4&&A?.affinity!==6)throw new or("Invalid affinity. Must be either 4 or 6");if(A?.dualStack!=null&&typeof A?.dualStack!="boolean")throw new or("Invalid dualStack. Must be a boolean");if(A?.lookup!=null&&typeof A?.lookup!="function")throw new or("Invalid lookup. Must be a function");if(A?.pick!=null&&typeof A?.pick!="function")throw new or("Invalid pick. Must be a function");let e=A?.dualStack??!0,t;e?t=A?.affinity??null:t=A?.affinity??4;let r={maxTTL:A?.maxTTL??1e4,lookup:A?.lookup??null,pick:A?.pick??null,dualStack:e,affinity:t,maxItems:A?.maxItems??1/0},n=new lc(r);return s=>function(i,a){let c=i.origin.constructor===URL?i.origin:new URL(i.origin);return Kb(c.hostname)!==0?s(i,a):(n.runLookup(c,i,(u,g)=>{if(u)return a.onError(u);let l=null;l={...i,servername:c.hostname,origin:g,headers:{host:c.hostname,...i.headers}},s(l,n.getHandler({origin:c,dispatch:s,handler:a},i))}),!0)}}});var It=f((ZL,aI)=>{"use strict";var{kConstruct:ek}=$(),{kEnumerableProperty:ir}=T(),{iteratorMixin:Ak,isValidHeaderName:rn,isValidHeaderValue:rI}=De(),{webidl:J}=ge(),Qc=d("node:assert"),Ms=d("node:util"),oe=Symbol("headers map"),Fe=Symbol("headers map sorted");function tI(A){return A===10||A===13||A===9||A===32}function nI(A){let e=0,t=A.length;for(;t>e&&tI(A.charCodeAt(t-1));)--t;for(;t>e&&tI(A.charCodeAt(e));)++e;return e===0&&t===A.length?A:A.substring(e,t)}function sI(A,e){if(Array.isArray(e))for(let t=0;t<e.length;++t){let r=e[t];if(r.length!==2)throw J.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});Bc(A,r[0],r[1])}else if(typeof e=="object"&&e!==null){let t=Object.keys(e);for(let r=0;r<t.length;++r)Bc(A,t[r],e[t[r]])}else throw J.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function Bc(A,e,t){if(t=nI(t),rn(e)){if(!rI(t))throw J.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw J.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(iI(A)==="immutable")throw new TypeError("immutable");return Ic(A).append(e,t,!1)}function oI(A,e){return A[0]<e[0]?-1:1}var Ls=class A{cookies=null;constructor(e){e instanceof A?(this[oe]=new Map(e[oe]),this[Fe]=e[Fe],this.cookies=e.cookies===null?null:[...e.cookies]):(this[oe]=new Map(e),this[Fe]=null)}contains(e,t){return this[oe].has(t?e:e.toLowerCase())}clear(){this[oe].clear(),this[Fe]=null,this.cookies=null}append(e,t,r){this[Fe]=null;let n=r?e:e.toLowerCase(),s=this[oe].get(n);if(s){let o=n==="cookie"?"; ":", ";this[oe].set(n,{name:s.name,value:`${s.value}${o}${t}`})}else this[oe].set(n,{name:e,value:t});n==="set-cookie"&&(this.cookies??=[]).push(t)}set(e,t,r){this[Fe]=null;let n=r?e:e.toLowerCase();n==="set-cookie"&&(this.cookies=[t]),this[oe].set(n,{name:e,value:t})}delete(e,t){this[Fe]=null,t||(e=e.toLowerCase()),e==="set-cookie"&&(this.cookies=null),this[oe].delete(e)}get(e,t){return this[oe].get(t?e:e.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:e,1:{value:t}}of this[oe])yield[e,t]}get entries(){let e={};if(this[oe].size!==0)for(let{name:t,value:r}of this[oe].values())e[t]=r;return e}rawValues(){return this[oe].values()}get entriesList(){let e=[];if(this[oe].size!==0)for(let{0:t,1:{name:r,value:n}}of this[oe])if(t==="set-cookie")for(let s of this.cookies)e.push([r,s]);else e.push([r,n]);return e}toSortedArray(){let e=this[oe].size,t=new Array(e);if(e<=32){if(e===0)return t;let r=this[oe][Symbol.iterator](),n=r.next().value;t[0]=[n[0],n[1].value],Qc(n[1].value!==null);for(let s=1,o=0,i=0,a=0,c=0,u,g;s<e;++s){for(g=r.next().value,u=t[s]=[g[0],g[1].value],Qc(u[1]!==null),a=0,i=s;a<i;)c=a+(i-a>>1),t[c][0]<=u[0]?a=c+1:i=c;if(s!==c){for(o=s;o>a;)t[o]=t[--o];t[a]=u}}if(!r.next().done)throw new TypeError("Unreachable");return t}else{let r=0;for(let{0:n,1:{value:s}}of this[oe])t[r++]=[n,s],Qc(s!==null);return t.sort(oI)}}},Xe=class A{#e;#A;constructor(e=void 0){J.util.markAsUncloneable(this),e!==ek&&(this.#A=new Ls,this.#e="none",e!==void 0&&(e=J.converters.HeadersInit(e,"Headers contructor","init"),sI(this,e)))}append(e,t){J.brandCheck(this,A),J.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return e=J.converters.ByteString(e,r,"name"),t=J.converters.ByteString(t,r,"value"),Bc(this,e,t)}delete(e){if(J.brandCheck(this,A),J.argumentLengthCheck(arguments,1,"Headers.delete"),e=J.converters.ByteString(e,"Headers.delete","name"),!rn(e))throw J.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.contains(e,!1)&&this.#A.delete(e,!1)}get(e){J.brandCheck(this,A),J.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(e=J.converters.ByteString(e,t,"name"),!rn(e))throw J.errors.invalidArgument({prefix:t,value:e,type:"header name"});return this.#A.get(e,!1)}has(e){J.brandCheck(this,A),J.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(e=J.converters.ByteString(e,t,"name"),!rn(e))throw J.errors.invalidArgument({prefix:t,value:e,type:"header name"});return this.#A.contains(e,!1)}set(e,t){J.brandCheck(this,A),J.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(e=J.converters.ByteString(e,r,"name"),t=J.converters.ByteString(t,r,"value"),t=nI(t),rn(e)){if(!rI(t))throw J.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw J.errors.invalidArgument({prefix:r,value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.set(e,t,!1)}getSetCookie(){J.brandCheck(this,A);let e=this.#A.cookies;return e?[...e]:[]}get[Fe](){if(this.#A[Fe])return this.#A[Fe];let e=[],t=this.#A.toSortedArray(),r=this.#A.cookies;if(r===null||r.length===1)return this.#A[Fe]=t;for(let n=0;n<t.length;++n){let{0:s,1:o}=t[n];if(s==="set-cookie")for(let i=0;i<r.length;++i)e.push([s,r[i]]);else e.push([s,o])}return this.#A[Fe]=e}[Ms.inspect.custom](e,t){return t.depth??=e,`Headers ${Ms.formatWithOptions(t,this.#A.entries)}`}static getHeadersGuard(e){return e.#e}static setHeadersGuard(e,t){e.#e=t}static getHeadersList(e){return e.#A}static setHeadersList(e,t){e.#A=t}},{getHeadersGuard:iI,setHeadersGuard:tk,getHeadersList:Ic,setHeadersList:rk}=Xe;Reflect.deleteProperty(Xe,"getHeadersGuard");Reflect.deleteProperty(Xe,"setHeadersGuard");Reflect.deleteProperty(Xe,"getHeadersList");Reflect.deleteProperty(Xe,"setHeadersList");Ak("Headers",Xe,Fe,0,1);Object.defineProperties(Xe.prototype,{append:ir,delete:ir,get:ir,has:ir,set:ir,getSetCookie:ir,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[Ms.inspect.custom]:{enumerable:!1}});J.converters.HeadersInit=function(A,e,t){if(J.util.Type(A)==="Object"){let r=Reflect.get(A,Symbol.iterator);if(!Ms.types.isProxy(A)&&r===Xe.prototype.entries)try{return Ic(A).entriesList}catch{}return typeof r=="function"?J.converters["sequence<sequence<ByteString>>"](A,e,t,r.bind(A)):J.converters["record<ByteString, ByteString>"](A,e,t)}throw J.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};aI.exports={fill:sI,compareHeaderName:oI,Headers:Xe,HeadersList:Ls,getHeadersGuard:iI,setHeadersGuard:tk,setHeadersList:rk,getHeadersList:Ic}});var sn=f((zL,fI)=>{"use strict";var{Headers:QI,HeadersList:cI,fill:nk,getHeadersGuard:sk,setHeadersGuard:BI,setHeadersList:II}=It(),{extractBody:gI,cloneBody:ok,mixinBody:ik,hasFinalizationRegistry:CI,streamRegistry:hI,bodyUnusable:ak}=vt(),Cc=T(),uI=d("node:util"),{kEnumerableProperty:Se}=Cc,{isValidReasonPhrase:ck,isCancelled:gk,isAborted:uk,isBlobLike:lk,serializeJavascriptValueToJSONString:Ek,isErrorLike:Qk,isomorphicEncode:Bk,environmentSettingsObject:Ik}=De(),{redirectStatusSet:Ck,nullBodyStatus:hk}=Fr(),{kState:ee,kHeaders:yA}=SA(),{webidl:L}=ge(),{FormData:dk}=Tr(),{URLSerializer:lI}=he(),{kConstruct:xs}=$(),hc=d("node:assert"),{types:fk}=d("node:util"),pk=new TextEncoder("utf-8"),Ct=class A{static error(){return nn(Ys(),"immutable")}static json(e,t={}){L.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=L.converters.ResponseInit(t));let r=pk.encode(Ek(e)),n=gI(r),s=nn(ar({}),"response");return EI(s,t,{body:n[0],type:"application/json"}),s}static redirect(e,t=302){L.argumentLengthCheck(arguments,1,"Response.redirect"),e=L.converters.USVString(e),t=L.converters["unsigned short"](t);let r;try{r=new URL(e,Ik.settingsObject.baseUrl)}catch(o){throw new TypeError(`Failed to parse URL from ${e}`,{cause:o})}if(!Ck.has(t))throw new RangeError(`Invalid status code ${t}`);let n=nn(ar({}),"immutable");n[ee].status=t;let s=Bk(lI(r));return n[ee].headersList.append("location",s,!0),n}constructor(e=null,t={}){if(L.util.markAsUncloneable(this),e===xs)return;e!==null&&(e=L.converters.BodyInit(e)),t=L.converters.ResponseInit(t),this[ee]=ar({}),this[yA]=new QI(xs),BI(this[yA],"response"),II(this[yA],this[ee].headersList);let r=null;if(e!=null){let[n,s]=gI(e);r={body:n,type:s}}EI(this,t,r)}get type(){return L.brandCheck(this,A),this[ee].type}get url(){L.brandCheck(this,A);let e=this[ee].urlList,t=e[e.length-1]??null;return t===null?"":lI(t,!0)}get redirected(){return L.brandCheck(this,A),this[ee].urlList.length>1}get status(){return L.brandCheck(this,A),this[ee].status}get ok(){return L.brandCheck(this,A),this[ee].status>=200&&this[ee].status<=299}get statusText(){return L.brandCheck(this,A),this[ee].statusText}get headers(){return L.brandCheck(this,A),this[yA]}get body(){return L.brandCheck(this,A),this[ee].body?this[ee].body.stream:null}get bodyUsed(){return L.brandCheck(this,A),!!this[ee].body&&Cc.isDisturbed(this[ee].body.stream)}clone(){if(L.brandCheck(this,A),ak(this))throw L.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=dc(this[ee]);return CI&&this[ee].body?.stream&&hI.register(this,new WeakRef(this[ee].body.stream)),nn(e,sk(this[yA]))}[uI.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${uI.formatWithOptions(t,r)}`}};ik(Ct);Object.defineProperties(Ct.prototype,{type:Se,url:Se,status:Se,ok:Se,redirected:Se,statusText:Se,headers:Se,clone:Se,body:Se,bodyUsed:Se,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Ct,{json:Se,redirect:Se,error:Se});function dc(A){if(A.internalResponse)return dI(dc(A.internalResponse),A.type);let e=ar({...A,body:null});return A.body!=null&&(e.body=ok(e,A.body)),e}function ar(A){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...A,headersList:A?.headersList?new cI(A?.headersList):new cI,urlList:A?.urlList?[...A.urlList]:[]}}function Ys(A){let e=Qk(A);return ar({type:"error",status:0,error:e?A:new Error(A&&String(A)),aborted:A&&A.name==="AbortError"})}function wk(A){return A.type==="error"&&A.status===0}function Ts(A,e){return e={internalResponse:A,...e},new Proxy(A,{get(t,r){return r in e?e[r]:t[r]},set(t,r,n){return hc(!(r in e)),t[r]=n,!0}})}function dI(A,e){if(e==="basic")return Ts(A,{type:"basic",headersList:A.headersList});if(e==="cors")return Ts(A,{type:"cors",headersList:A.headersList});if(e==="opaque")return Ts(A,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(e==="opaqueredirect")return Ts(A,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});hc(!1)}function mk(A,e=null){return hc(gk(A)),uk(A)?Ys(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:e})):Ys(Object.assign(new DOMException("Request was cancelled."),{cause:e}))}function EI(A,e,t){if(e.status!==null&&(e.status<200||e.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in e&&e.statusText!=null&&!ck(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(A[ee].status=e.status),"statusText"in e&&e.statusText!=null&&(A[ee].statusText=e.statusText),"headers"in e&&e.headers!=null&&nk(A[yA],e.headers),t){if(hk.includes(A.status))throw L.errors.exception({header:"Response constructor",message:`Invalid response status code ${A.status}`});A[ee].body=t.body,t.type!=null&&!A[ee].headersList.contains("content-type",!0)&&A[ee].headersList.append("content-type",t.type,!0)}}function nn(A,e){let t=new Ct(xs);return t[ee]=A,t[yA]=new QI(xs),II(t[yA],A.headersList),BI(t[yA],e),CI&&A.body?.stream&&hI.register(t,new WeakRef(A.body.stream)),t}L.converters.ReadableStream=L.interfaceConverter(ReadableStream);L.converters.FormData=L.interfaceConverter(dk);L.converters.URLSearchParams=L.interfaceConverter(URLSearchParams);L.converters.XMLHttpRequestBodyInit=function(A,e,t){return typeof A=="string"?L.converters.USVString(A,e,t):lk(A)?L.converters.Blob(A,e,t,{strict:!1}):ArrayBuffer.isView(A)||fk.isArrayBuffer(A)?L.converters.BufferSource(A,e,t):Cc.isFormDataLike(A)?L.converters.FormData(A,e,t,{strict:!1}):A instanceof URLSearchParams?L.converters.URLSearchParams(A,e,t):L.converters.DOMString(A,e,t)};L.converters.BodyInit=function(A,e,t){return A instanceof ReadableStream?L.converters.ReadableStream(A,e,t):A?.[Symbol.asyncIterator]?A:L.converters.XMLHttpRequestBodyInit(A,e,t)};L.converters.ResponseInit=L.dictionaryConverter([{key:"status",converter:L.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:L.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:L.converters.HeadersInit}]);fI.exports={isNetworkError:wk,makeNetworkError:Ys,makeResponse:ar,makeAppropriateNetworkError:mk,filterResponse:dI,Response:Ct,cloneResponse:dc,fromInnerResponse:nn}});var yI=f((KL,mI)=>{"use strict";var{kConnected:pI,kSize:wI}=$(),fc=class{constructor(e){this.value=e}deref(){return this.value[pI]===0&&this.value[wI]===0?void 0:this.value}},pc=class{constructor(e){this.finalizer=e}register(e,t){e.on&&e.on("disconnect",()=>{e[pI]===0&&e[wI]===0&&this.finalizer(t)})}unregister(e){}};mI.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:fc,FinalizationRegistry:pc}):{WeakRef,FinalizationRegistry}}});var cr=f((XL,JI)=>{"use strict";var{extractBody:yk,mixinBody:Dk,cloneBody:bk,bodyUnusable:DI}=vt(),{Headers:LI,fill:kk,HeadersList:Hs,setHeadersGuard:mc,getHeadersGuard:Rk,setHeadersList:TI,getHeadersList:bI}=It(),{FinalizationRegistry:Fk}=yI()(),Js=T(),kI=d("node:util"),{isValidHTTPToken:Sk,sameOrigin:RI,environmentSettingsObject:Gs}=De(),{forbiddenMethodsSet:Nk,corsSafeListedMethodsSet:Uk,referrerPolicy:Mk,requestRedirect:Lk,requestMode:Tk,requestCredentials:xk,requestCache:Yk,requestDuplex:Gk}=Fr(),{kEnumerableProperty:ie,normalizedMethodRecordsBase:Jk,normalizedMethodRecords:vk}=Js,{kHeaders:Ne,kSignal:vs,kState:X,kDispatcher:wc}=SA(),{webidl:S}=ge(),{URLSerializer:Hk}=he(),{kConstruct:Vs}=$(),Vk=d("node:assert"),{getMaxListeners:FI,setMaxListeners:SI,getEventListeners:qk,defaultMaxListeners:NI}=d("node:events"),Ok=Symbol("abortController"),xI=new Fk(({signal:A,abort:e})=>{A.removeEventListener("abort",e)}),qs=new WeakMap;function UI(A){return e;function e(){let t=A.deref();if(t!==void 0){xI.unregister(e),this.removeEventListener("abort",e),t.abort(this.reason);let r=qs.get(t.signal);if(r!==void 0){if(r.size!==0){for(let n of r){let s=n.deref();s!==void 0&&s.abort(this.reason)}r.clear()}qs.delete(t.signal)}}}}var MI=!1,HA=class A{constructor(e,t={}){if(S.util.markAsUncloneable(this),e===Vs)return;let r="Request constructor";S.argumentLengthCheck(arguments,1,r),e=S.converters.RequestInfo(e,r,"input"),t=S.converters.RequestInit(t,r,"init");let n=null,s=null,o=Gs.settingsObject.baseUrl,i=null;if(typeof e=="string"){this[wc]=t.dispatcher;let Q;try{Q=new URL(e,o)}catch(h){throw new TypeError("Failed to parse URL from "+e,{cause:h})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);n=Os({urlList:[Q]}),s="cors"}else this[wc]=t.dispatcher||e[wc],Vk(e instanceof A),n=e[X],i=e[vs];let a=Gs.settingsObject.origin,c="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&RI(n.window,a)&&(c=n.window),t.window!=null)throw new TypeError(`'window' option '${c}' must be null`);"window"in t&&(c="no-window"),n=Os({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:Gs.settingsObject,window:c,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let u=Object.keys(t).length!==0;if(u&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),t.referrer!==void 0){let Q=t.referrer;if(Q==="")n.referrer="no-referrer";else{let h;try{h=new URL(Q,o)}catch(y){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:y})}h.protocol==="about:"&&h.hostname==="client"||a&&!RI(h,Gs.settingsObject.baseUrl)?n.referrer="client":n.referrer=h}}t.referrerPolicy!==void 0&&(n.referrerPolicy=t.referrerPolicy);let g;if(t.mode!==void 0?g=t.mode:g=s,g==="navigate")throw S.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(g!=null&&(n.mode=g),t.credentials!==void 0&&(n.credentials=t.credentials),t.cache!==void 0&&(n.cache=t.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(n.redirect=t.redirect),t.integrity!=null&&(n.integrity=String(t.integrity)),t.keepalive!==void 0&&(n.keepalive=!!t.keepalive),t.method!==void 0){let Q=t.method,h=vk[Q];if(h!==void 0)n.method=h;else{if(!Sk(Q))throw new TypeError(`'${Q}' is not a valid HTTP method.`);let y=Q.toUpperCase();if(Nk.has(y))throw new TypeError(`'${Q}' HTTP method is unsupported.`);Q=Jk[y]??Q,n.method=Q}!MI&&n.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),MI=!0)}t.signal!==void 0&&(i=t.signal),this[X]=n;let l=new AbortController;if(this[vs]=l.signal,i!=null){if(!i||typeof i.aborted!="boolean"||typeof i.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(i.aborted)l.abort(i.reason);else{this[Ok]=l;let Q=new WeakRef(l),h=UI(Q);try{(typeof FI=="function"&&FI(i)===NI||qk(i,"abort").length>=NI)&&SI(1500,i)}catch{}Js.addAbortListener(i,h),xI.register(l,{signal:i,abort:h},h)}}if(this[Ne]=new LI(Vs),TI(this[Ne],n.headersList),mc(this[Ne],"request"),g==="no-cors"){if(!Uk.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);mc(this[Ne],"request-no-cors")}if(u){let Q=bI(this[Ne]),h=t.headers!==void 0?t.headers:new Hs(Q);if(Q.clear(),h instanceof Hs){for(let{name:y,value:m}of h.rawValues())Q.append(y,m,!1);Q.cookies=h.cookies}else kk(this[Ne],h)}let E=e instanceof A?e[X].body:null;if((t.body!=null||E!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let B=null;if(t.body!=null){let[Q,h]=yk(t.body,n.keepalive);B=Q,h&&!bI(this[Ne]).contains("content-type",!0)&&this[Ne].append("content-type",h)}let C=B??E;if(C!=null&&C.source==null){if(B!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let I=C;if(B==null&&E!=null){if(DI(e))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let Q=new TransformStream;E.stream.pipeThrough(Q),I={source:E.source,length:E.length,stream:Q.readable}}this[X].body=I}get method(){return S.brandCheck(this,A),this[X].method}get url(){return S.brandCheck(this,A),Hk(this[X].url)}get headers(){return S.brandCheck(this,A),this[Ne]}get destination(){return S.brandCheck(this,A),this[X].destination}get referrer(){return S.brandCheck(this,A),this[X].referrer==="no-referrer"?"":this[X].referrer==="client"?"about:client":this[X].referrer.toString()}get referrerPolicy(){return S.brandCheck(this,A),this[X].referrerPolicy}get mode(){return S.brandCheck(this,A),this[X].mode}get credentials(){return this[X].credentials}get cache(){return S.brandCheck(this,A),this[X].cache}get redirect(){return S.brandCheck(this,A),this[X].redirect}get integrity(){return S.brandCheck(this,A),this[X].integrity}get keepalive(){return S.brandCheck(this,A),this[X].keepalive}get isReloadNavigation(){return S.brandCheck(this,A),this[X].reloadNavigation}get isHistoryNavigation(){return S.brandCheck(this,A),this[X].historyNavigation}get signal(){return S.brandCheck(this,A),this[vs]}get body(){return S.brandCheck(this,A),this[X].body?this[X].body.stream:null}get bodyUsed(){return S.brandCheck(this,A),!!this[X].body&&Js.isDisturbed(this[X].body.stream)}get duplex(){return S.brandCheck(this,A),"half"}clone(){if(S.brandCheck(this,A),DI(this))throw new TypeError("unusable");let e=YI(this[X]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=qs.get(this.signal);r===void 0&&(r=new Set,qs.set(this.signal,r));let n=new WeakRef(t);r.add(n),Js.addAbortListener(t.signal,UI(n))}return GI(e,t.signal,Rk(this[Ne]))}[kI.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${kI.formatWithOptions(t,r)}`}};Dk(HA);function Os(A){return{method:A.method??"GET",localURLsOnly:A.localURLsOnly??!1,unsafeRequest:A.unsafeRequest??!1,body:A.body??null,client:A.client??null,reservedClient:A.reservedClient??null,replacesClientId:A.replacesClientId??"",window:A.window??"client",keepalive:A.keepalive??!1,serviceWorkers:A.serviceWorkers??"all",initiator:A.initiator??"",destination:A.destination??"",priority:A.priority??null,origin:A.origin??"client",policyContainer:A.policyContainer??"client",referrer:A.referrer??"client",referrerPolicy:A.referrerPolicy??"",mode:A.mode??"no-cors",useCORSPreflightFlag:A.useCORSPreflightFlag??!1,credentials:A.credentials??"same-origin",useCredentials:A.useCredentials??!1,cache:A.cache??"default",redirect:A.redirect??"follow",integrity:A.integrity??"",cryptoGraphicsNonceMetadata:A.cryptoGraphicsNonceMetadata??"",parserMetadata:A.parserMetadata??"",reloadNavigation:A.reloadNavigation??!1,historyNavigation:A.historyNavigation??!1,userActivation:A.userActivation??!1,taintedOrigin:A.taintedOrigin??!1,redirectCount:A.redirectCount??0,responseTainting:A.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:A.preventNoCacheCacheControlHeaderModification??!1,done:A.done??!1,timingAllowFailed:A.timingAllowFailed??!1,urlList:A.urlList,url:A.urlList[0],headersList:A.headersList?new Hs(A.headersList):new Hs}}function YI(A){let e=Os({...A,body:null});return A.body!=null&&(e.body=bk(e,A.body)),e}function GI(A,e,t){let r=new HA(Vs);return r[X]=A,r[vs]=e,r[Ne]=new LI(Vs),TI(r[Ne],A.headersList),mc(r[Ne],t),r}Object.defineProperties(HA.prototype,{method:ie,url:ie,headers:ie,redirect:ie,clone:ie,signal:ie,duplex:ie,destination:ie,body:ie,bodyUsed:ie,isHistoryNavigation:ie,isReloadNavigation:ie,keepalive:ie,integrity:ie,cache:ie,credentials:ie,attribute:ie,referrerPolicy:ie,referrer:ie,mode:ie,[Symbol.toStringTag]:{value:"Request",configurable:!0}});S.converters.Request=S.interfaceConverter(HA);S.converters.RequestInfo=function(A,e,t){return typeof A=="string"?S.converters.USVString(A,e,t):A instanceof HA?S.converters.Request(A,e,t):S.converters.USVString(A,e,t)};S.converters.AbortSignal=S.interfaceConverter(AbortSignal);S.converters.RequestInit=S.dictionaryConverter([{key:"method",converter:S.converters.ByteString},{key:"headers",converter:S.converters.HeadersInit},{key:"body",converter:S.nullableConverter(S.converters.BodyInit)},{key:"referrer",converter:S.converters.USVString},{key:"referrerPolicy",converter:S.converters.DOMString,allowedValues:Mk},{key:"mode",converter:S.converters.DOMString,allowedValues:Tk},{key:"credentials",converter:S.converters.DOMString,allowedValues:xk},{key:"cache",converter:S.converters.DOMString,allowedValues:Yk},{key:"redirect",converter:S.converters.DOMString,allowedValues:Lk},{key:"integrity",converter:S.converters.DOMString},{key:"keepalive",converter:S.converters.boolean},{key:"signal",converter:S.nullableConverter(A=>S.converters.AbortSignal(A,"RequestInit","signal",{strict:!1}))},{key:"window",converter:S.converters.any},{key:"duplex",converter:S.converters.DOMString,allowedValues:Gk},{key:"dispatcher",converter:S.converters.any}]);JI.exports={Request:HA,makeRequest:Os,fromInnerRequest:GI,cloneRequest:YI}});var an=f(($L,eC)=>{"use strict";var{makeNetworkError:O,makeAppropriateNetworkError:Ws,filterResponse:yc,makeResponse:Ps,fromInnerResponse:Wk}=sn(),{HeadersList:vI}=It(),{Request:Pk,cloneRequest:_k}=cr(),VA=d("node:zlib"),{bytesMatch:Zk,makePolicyContainer:zk,clonePolicyContainer:Kk,requestBadPort:Xk,TAOCheck:$k,appendRequestOriginHeader:jk,responseLocationURL:eR,requestCurrentURL:gA,setRequestReferrerPolicyOnRedirect:AR,tryUpgradeRequestToAPotentiallyTrustworthyURL:tR,createOpaqueTimingInfo:Fc,appendFetchMetadata:rR,corsCheck:nR,crossOriginResourcePolicyCheck:sR,determineRequestsReferrer:oR,coarsenedSharedCurrentTime:on,createDeferredPromise:iR,isBlobLike:aR,sameOrigin:Rc,isCancelled:ht,isAborted:HI,isErrorLike:cR,fullyReadBody:gR,readableStreamClose:uR,isomorphicEncode:_s,urlIsLocal:lR,urlIsHttpHttpsScheme:Sc,urlHasHttpsScheme:ER,clampAndCoarsenConnectionTimingInfo:QR,simpleRangeHeaderValue:BR,buildContentRange:IR,createInflate:CR,extractMimeType:hR}=De(),{kState:WI,kDispatcher:dR}=SA(),dt=d("node:assert"),{safelyExtractBody:Nc,extractBody:VI}=vt(),{redirectStatusSet:PI,nullBodyStatus:_I,safeMethodsSet:fR,requestBodyHeader:pR,subresourceSet:wR}=Fr(),mR=d("node:events"),{Readable:yR,pipeline:DR,finished:bR}=d("node:stream"),{addAbortListener:kR,isErrored:RR,isReadable:Zs,bufferToLowerCasedHeaderName:qI}=T(),{dataURLProcessor:FR,serializeAMimeType:SR,minimizeSupportedMimeType:NR}=he(),{getGlobalDispatcher:UR}=Ns(),{webidl:MR}=ge(),{STATUS_CODES:LR}=d("node:http"),TR=["GET","HEAD"],xR=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Dc,zs=class extends mR{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(e){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(e),this.emit("terminated",e))}abort(e){this.state==="ongoing"&&(this.state="aborted",e||(e=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit("terminated",e))}};function YR(A){ZI(A,"fetch")}function GR(A,e=void 0){MR.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=iR(),r;try{r=new Pk(A,e)}catch(u){return t.reject(u),t.promise}let n=r[WI];if(r.signal.aborted)return bc(t,n,null,r.signal.reason),t.promise;n.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(n.serviceWorkers="none");let o=null,i=!1,a=null;return kR(r.signal,()=>{i=!0,dt(a!=null),a.abort(r.signal.reason);let u=o?.deref();bc(t,n,u,r.signal.reason)}),a=KI({request:n,processResponseEndOfBody:YR,processResponse:u=>{if(!i){if(u.aborted){bc(t,n,o,a.serializedAbortReason);return}if(u.type==="error"){t.reject(new TypeError("fetch failed",{cause:u.error}));return}o=new WeakRef(Wk(u,"immutable")),t.resolve(o.deref()),t=null}},dispatcher:r[dR]}),t.promise}function ZI(A,e="other"){if(A.type==="error"&&A.aborted||!A.urlList?.length)return;let t=A.urlList[0],r=A.timingInfo,n=A.cacheState;Sc(t)&&r!==null&&(A.timingAllowPassed||(r=Fc({startTime:r.startTime}),n=""),r.endTime=on(),A.timingInfo=r,zI(r,t.href,e,globalThis,n))}var zI=performance.markResourceTiming;function bc(A,e,t,r){if(A&&A.reject(r),e.body!=null&&Zs(e.body?.stream)&&e.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),t==null)return;let n=t[WI];n.body!=null&&Zs(n.body?.stream)&&n.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s})}function KI({request:A,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:o=!1,dispatcher:i=UR()}){dt(i);let a=null,c=!1;A.client!=null&&(a=A.client.globalObject,c=A.client.crossOriginIsolatedCapability);let u=on(c),g=Fc({startTime:u}),l={controller:new zs(i),request:A,timingInfo:g,processRequestBodyChunkLength:e,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};return dt(!A.body||A.body.stream),A.window==="client"&&(A.window=A.client?.globalObject?.constructor?.name==="Window"?A.client:"no-window"),A.origin==="client"&&(A.origin=A.client.origin),A.policyContainer==="client"&&(A.client!=null?A.policyContainer=Kk(A.client.policyContainer):A.policyContainer=zk()),A.headersList.contains("accept",!0)||A.headersList.append("accept","*/*",!0),A.headersList.contains("accept-language",!0)||A.headersList.append("accept-language","*",!0),A.priority,wR.has(A.destination),XI(l).catch(E=>{l.controller.terminate(E)}),l.controller}async function XI(A,e=!1){let t=A.request,r=null;if(t.localURLsOnly&&!lR(gA(t))&&(r=O("local URLs only")),tR(t),Xk(t)==="blocked"&&(r=O("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=oR(t)),r===null&&(r=await(async()=>{let s=gA(t);return Rc(s,t.url)&&t.responseTainting==="basic"||s.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await OI(A)):t.mode==="same-origin"?O('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?O('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await OI(A)):Sc(gA(t))?(t.responseTainting="cors",await $I(A)):O("URL scheme must be a HTTP(S) scheme")})()),e)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=yc(r,"basic"):t.responseTainting==="cors"?r=yc(r,"cors"):t.responseTainting==="opaque"?r=yc(r,"opaque"):dt(!1));let n=r.status===0?r:r.internalResponse;if(n.urlList.length===0&&n.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&n.status===206&&n.rangeRequested&&!t.headers.contains("range",!0)&&(r=n=O()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||_I.includes(n.status))&&(n.body=null,A.controller.dump=!0),t.integrity){let s=i=>kc(A,O(i));if(t.responseTainting==="opaque"||r.body==null){s(r.error);return}let o=i=>{if(!Zk(i,t.integrity)){s("integrity mismatch");return}r.body=Nc(i)[0],kc(A,r)};await gR(r.body,o,s)}else kc(A,r)}function OI(A){if(ht(A)&&A.request.redirectCount===0)return Promise.resolve(Ws(A));let{request:e}=A,{protocol:t}=gA(e);switch(t){case"about:":return Promise.resolve(O("about scheme is not supported"));case"blob:":{Dc||(Dc=d("node:buffer").resolveObjectURL);let r=gA(e);if(r.search.length!==0)return Promise.resolve(O("NetworkError when attempting to fetch resource."));let n=Dc(r.toString());if(e.method!=="GET"||!aR(n))return Promise.resolve(O("invalid method"));let s=Ps(),o=n.size,i=_s(`${o}`),a=n.type;if(e.headersList.contains("range",!0)){s.rangeRequested=!0;let c=e.headersList.get("range",!0),u=BR(c,!0);if(u==="failure")return Promise.resolve(O("failed to fetch the data URL"));let{rangeStartValue:g,rangeEndValue:l}=u;if(g===null)g=o-l,l=g+l-1;else{if(g>=o)return Promise.resolve(O("Range start is greater than the blob's size."));(l===null||l>=o)&&(l=o-1)}let E=n.slice(g,l,a),B=VI(E);s.body=B[0];let C=_s(`${E.size}`),I=IR(g,l,o);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",C,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",I,!0)}else{let c=VI(n);s.statusText="OK",s.body=c[0],s.headersList.set("content-length",i,!0),s.headersList.set("content-type",a,!0)}return Promise.resolve(s)}case"data:":{let r=gA(e),n=FR(r);if(n==="failure")return Promise.resolve(O("failed to fetch the data URL"));let s=SR(n.mimeType);return Promise.resolve(Ps({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:Nc(n.body)[0]}))}case"file:":return Promise.resolve(O("not implemented... yet..."));case"http:":case"https:":return $I(A).catch(r=>O(r));default:return Promise.resolve(O("unknown scheme"))}}function JR(A,e){A.request.done=!0,A.processResponseDone!=null&&queueMicrotask(()=>A.processResponseDone(e))}function kc(A,e){let t=A.timingInfo,r=()=>{let s=Date.now();A.request.destination==="document"&&(A.controller.fullTimingInfo=t),A.controller.reportTimingSteps=()=>{if(A.request.url.protocol!=="https:")return;t.endTime=s;let i=e.cacheState,a=e.bodyInfo;e.timingAllowPassed||(t=Fc(t),i="");let c=0;if(A.request.mode!=="navigator"||!e.hasCrossOriginRedirects){c=e.status;let u=hR(e.headersList);u!=="failure"&&(a.contentType=NR(u))}A.request.initiatorType!=null&&zI(t,A.request.url.href,A.request.initiatorType,globalThis,i,a,c)};let o=()=>{A.request.done=!0,A.processResponseEndOfBody!=null&&queueMicrotask(()=>A.processResponseEndOfBody(e)),A.request.initiatorType!=null&&A.controller.reportTimingSteps()};queueMicrotask(()=>o())};A.processResponse!=null&&queueMicrotask(()=>{A.processResponse(e),A.processResponse=null});let n=e.type==="error"?e:e.internalResponse??e;n.body==null?r():bR(n.body.stream,()=>{r()})}async function $I(A){let e=A.request,t=null,r=null,n=A.timingInfo;if(e.serviceWorkers,t===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),r=t=await jI(A),e.responseTainting==="cors"&&nR(e,t)==="failure")return O("cors failure");$k(e,t)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||t.type==="opaque")&&sR(e.origin,e.client,e.destination,r)==="blocked"?O("blocked"):(PI.has(r.status)&&(e.redirect!=="manual"&&A.controller.connection.destroy(void 0,!1),e.redirect==="error"?t=O("unexpected redirect"):e.redirect==="manual"?t=r:e.redirect==="follow"?t=await vR(A,t):dt(!1)),t.timingInfo=n,t)}function vR(A,e){let t=A.request,r=e.internalResponse?e.internalResponse:e,n;try{if(n=eR(r,gA(t).hash),n==null)return e}catch(o){return Promise.resolve(O(o))}if(!Sc(n))return Promise.resolve(O("URL scheme must be a HTTP(S) scheme"));if(t.redirectCount===20)return Promise.resolve(O("redirect count exceeded"));if(t.redirectCount+=1,t.mode==="cors"&&(n.username||n.password)&&!Rc(t,n))return Promise.resolve(O('cross origin not allowed for request mode "cors"'));if(t.responseTainting==="cors"&&(n.username||n.password))return Promise.resolve(O('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&t.body!=null&&t.body.source==null)return Promise.resolve(O());if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!TR.includes(t.method)){t.method="GET",t.body=null;for(let o of pR)t.headersList.delete(o)}Rc(gA(t),n)||(t.headersList.delete("authorization",!0),t.headersList.delete("proxy-authorization",!0),t.headersList.delete("cookie",!0),t.headersList.delete("host",!0)),t.body!=null&&(dt(t.body.source!=null),t.body=Nc(t.body.source)[0]);let s=A.timingInfo;return s.redirectEndTime=s.postRedirectStartTime=on(A.crossOriginIsolatedCapability),s.redirectStartTime===0&&(s.redirectStartTime=s.startTime),t.urlList.push(n),AR(t,r),XI(A,!0)}async function jI(A,e=!1,t=!1){let r=A.request,n=null,s=null,o=null,i=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(n=A,s=r):(s=_k(r),n={...A},n.request=s);let c=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",u=s.body?s.body.length:null,g=null;if(s.body==null&&["POST","PUT"].includes(s.method)&&(g="0"),u!=null&&(g=_s(`${u}`)),g!=null&&s.headersList.append("content-length",g,!0),u!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append("referer",_s(s.referrer.href),!0),jk(s),rR(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",xR),s.cache==="default"&&(s.headersList.contains("if-modified-since",!0)||s.headersList.contains("if-none-match",!0)||s.headersList.contains("if-unmodified-since",!0)||s.headersList.contains("if-match",!0)||s.headersList.contains("if-range",!0))&&(s.cache="no-store"),s.cache==="no-cache"&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains("cache-control",!0)&&s.headersList.append("cache-control","max-age=0",!0),(s.cache==="no-store"||s.cache==="reload")&&(s.headersList.contains("pragma",!0)||s.headersList.append("pragma","no-cache",!0),s.headersList.contains("cache-control",!0)||s.headersList.append("cache-control","no-cache",!0)),s.headersList.contains("range",!0)&&s.headersList.append("accept-encoding","identity",!0),s.headersList.contains("accept-encoding",!0)||(ER(gA(s))?s.headersList.append("accept-encoding","br, gzip, deflate",!0):s.headersList.append("accept-encoding","gzip, deflate",!0)),s.headersList.delete("host",!0),i==null&&(s.cache="no-store"),s.cache!=="no-store"&&s.cache,o==null){if(s.cache==="only-if-cached")return O("only if cached");let l=await HR(n,c,t);!fR.has(s.method)&&l.status>=200&&l.status<=399,a&&l.status,o==null&&(o=l)}if(o.urlList=[...s.urlList],s.headersList.contains("range",!0)&&(o.rangeRequested=!0),o.requestIncludesCredentials=c,o.status===407)return r.window==="no-window"?O():ht(A)?Ws(A):O("proxy authentication required");if(o.status===421&&!t&&(r.body==null||r.body.source!=null)){if(ht(A))return Ws(A);A.controller.connection.destroy(),o=await jI(A,e,!0)}return o}async function HR(A,e=!1,t=!1){dt(!A.controller.connection||A.controller.connection.destroyed),A.controller.connection={abort:null,destroyed:!1,destroy(B,C=!0){this.destroyed||(this.destroyed=!0,C&&this.abort?.(B??new DOMException("The operation was aborted.","AbortError")))}};let r=A.request,n=null,s=A.timingInfo;null==null&&(r.cache="no-store");let i=t?"yes":"no";r.mode;let a=null;if(r.body==null&&A.processRequestEndOfBody)queueMicrotask(()=>A.processRequestEndOfBody());else if(r.body!=null){let B=async function*(Q){ht(A)||(yield Q,A.processRequestBodyChunkLength?.(Q.byteLength))},C=()=>{ht(A)||A.processRequestEndOfBody&&A.processRequestEndOfBody()},I=Q=>{ht(A)||(Q.name==="AbortError"?A.controller.abort():A.controller.terminate(Q))};a=(async function*(){try{for await(let Q of r.body.stream)yield*B(Q);C()}catch(Q){I(Q)}})()}try{let{body:B,status:C,statusText:I,headersList:Q,socket:h}=await E({body:a});if(h)n=Ps({status:C,statusText:I,headersList:Q,socket:h});else{let y=B[Symbol.asyncIterator]();A.controller.next=()=>y.next(),n=Ps({status:C,statusText:I,headersList:Q})}}catch(B){return B.name==="AbortError"?(A.controller.connection.destroy(),Ws(A,B)):O(B)}let c=async()=>{await A.controller.resume()},u=B=>{ht(A)||A.controller.abort(B)},g=new ReadableStream({async start(B){A.controller.controller=B},async pull(B){await c(B)},async cancel(B){await u(B)},type:"bytes"});n.body={stream:g,source:null,length:null},A.controller.onAborted=l,A.controller.on("terminated",l),A.controller.resume=async()=>{for(;;){let B,C;try{let{done:Q,value:h}=await A.controller.next();if(HI(A))break;B=Q?void 0:h}catch(Q){A.controller.ended&&!s.encodedBodySize?B=void 0:(B=Q,C=!0)}if(B===void 0){uR(A.controller.controller),JR(A,n);return}if(s.decodedBodySize+=B?.byteLength??0,C){A.controller.terminate(B);return}let I=new Uint8Array(B);if(I.byteLength&&A.controller.controller.enqueue(I),RR(g)){A.controller.terminate();return}if(A.controller.controller.desiredSize<=0)return}};function l(B){HI(A)?(n.aborted=!0,Zs(g)&&A.controller.controller.error(A.controller.serializedAbortReason)):Zs(g)&&A.controller.controller.error(new TypeError("terminated",{cause:cR(B)?B:void 0})),A.controller.connection.destroy()}return n;function E({body:B}){let C=gA(r),I=A.controller.dispatcher;return new Promise((Q,h)=>I.dispatch({path:C.pathname+C.search,origin:C.origin,method:r.method,body:I.isMockActive?r.body&&(r.body.source||r.body.stream):B,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(y){let{connection:m}=A.controller;s.finalConnectionTimingInfo=QR(void 0,s.postRedirectStartTime,A.crossOriginIsolatedCapability),m.destroyed?y(new DOMException("The operation was aborted.","AbortError")):(A.controller.on("terminated",y),this.abort=m.abort=y),s.finalNetworkRequestStartTime=on(A.crossOriginIsolatedCapability)},onResponseStarted(){s.finalNetworkResponseStartTime=on(A.crossOriginIsolatedCapability)},onHeaders(y,m,x,_){if(y<200)return;let Z="",M=new vI;for(let ne=0;ne<m.length;ne+=2)M.append(qI(m[ne]),m[ne+1].toString("latin1"),!0);Z=M.get("location",!0),this.body=new yR({read:x});let V=[],ye=Z&&r.redirect==="follow"&&PI.has(y);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!_I.includes(y)&&!ye){let ne=M.get("content-encoding",!0),Te=ne?ne.toLowerCase().split(","):[],EA=5;if(Te.length>EA)return h(new Error(`too many content-encodings in response: ${Te.length}, maximum allowed is ${EA}`)),!0;for(let yt=Te.length-1;yt>=0;--yt){let Dt=Te[yt].trim();if(Dt==="x-gzip"||Dt==="gzip")V.push(VA.createGunzip({flush:VA.constants.Z_SYNC_FLUSH,finishFlush:VA.constants.Z_SYNC_FLUSH}));else if(Dt==="deflate")V.push(CR({flush:VA.constants.Z_SYNC_FLUSH,finishFlush:VA.constants.Z_SYNC_FLUSH}));else if(Dt==="br")V.push(VA.createBrotliDecompress({flush:VA.constants.BROTLI_OPERATION_FLUSH,finishFlush:VA.constants.BROTLI_OPERATION_FLUSH}));else{V.length=0;break}}}let Qe=this.onError.bind(this);return Q({status:y,statusText:_,headersList:M,body:V.length?DR(this.body,...V,ne=>{ne&&this.onError(ne)}).on("error",Qe):this.body.on("error",Qe)}),!0},onData(y){if(A.controller.dump)return;let m=y;return s.encodedBodySize+=m.byteLength,this.body.push(m)},onComplete(){this.abort&&A.controller.off("terminated",this.abort),A.controller.onAborted&&A.controller.off("terminated",A.controller.onAborted),A.controller.ended=!0,this.body.push(null)},onError(y){this.abort&&A.controller.off("terminated",this.abort),this.body?.destroy(y),A.controller.terminate(y),h(y)},onUpgrade(y,m,x){if(y!==101)return;let _=new vI;for(let Z=0;Z<m.length;Z+=2)_.append(qI(m[Z]),m[Z+1].toString("latin1"),!0);return Q({status:y,statusText:LR[y],headersList:_,socket:x}),!0}}))}}eC.exports={fetch:GR,Fetch:zs,fetching:KI,finalizeAndReportTiming:ZI}});var Uc=f((jL,AC)=>{"use strict";AC.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var rC=f((eT,tC)=>{"use strict";var{webidl:Ue}=ge(),Ks=Symbol("ProgressEvent state"),Mc=class A extends Event{constructor(e,t={}){e=Ue.converters.DOMString(e,"ProgressEvent constructor","type"),t=Ue.converters.ProgressEventInit(t??{}),super(e,t),this[Ks]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return Ue.brandCheck(this,A),this[Ks].lengthComputable}get loaded(){return Ue.brandCheck(this,A),this[Ks].loaded}get total(){return Ue.brandCheck(this,A),this[Ks].total}};Ue.converters.ProgressEventInit=Ue.dictionaryConverter([{key:"lengthComputable",converter:Ue.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:Ue.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:Ue.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:Ue.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Ue.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Ue.converters.boolean,defaultValue:()=>!1}]);tC.exports={ProgressEvent:Mc}});var sC=f((AT,nC)=>{"use strict";function VR(A){if(!A)return"failure";switch(A.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}nC.exports={getEncoding:VR}});var EC=f((tT,lC)=>{"use strict";var{kState:gr,kError:Lc,kResult:oC,kAborted:cn,kLastProgressEventFired:Tc}=Uc(),{ProgressEvent:qR}=rC(),{getEncoding:iC}=sC(),{serializeAMimeType:OR,parseMIMEType:aC}=he(),{types:WR}=d("node:util"),{StringDecoder:cC}=d("string_decoder"),{btoa:gC}=d("node:buffer"),PR={enumerable:!0,writable:!1,configurable:!1};function _R(A,e,t,r){if(A[gr]==="loading")throw new DOMException("Invalid state","InvalidStateError");A[gr]="loading",A[oC]=null,A[Lc]=null;let s=e.stream().getReader(),o=[],i=s.read(),a=!0;(async()=>{for(;!A[cn];)try{let{done:c,value:u}=await i;if(a&&!A[cn]&&queueMicrotask(()=>{qA("loadstart",A)}),a=!1,!c&&WR.isUint8Array(u))o.push(u),(A[Tc]===void 0||Date.now()-A[Tc]>=50)&&!A[cn]&&(A[Tc]=Date.now(),queueMicrotask(()=>{qA("progress",A)})),i=s.read();else if(c){queueMicrotask(()=>{A[gr]="done";try{let g=ZR(o,t,e.type,r);if(A[cn])return;A[oC]=g,qA("load",A)}catch(g){A[Lc]=g,qA("error",A)}A[gr]!=="loading"&&qA("loadend",A)});break}}catch(c){if(A[cn])return;queueMicrotask(()=>{A[gr]="done",A[Lc]=c,qA("error",A),A[gr]!=="loading"&&qA("loadend",A)});break}})()}function qA(A,e){let t=new qR(A,{bubbles:!1,cancelable:!1});e.dispatchEvent(t)}function ZR(A,e,t,r){switch(e){case"DataURL":{let n="data:",s=aC(t||"application/octet-stream");s!=="failure"&&(n+=OR(s)),n+=";base64,";let o=new cC("latin1");for(let i of A)n+=gC(o.write(i));return n+=gC(o.end()),n}case"Text":{let n="failure";if(r&&(n=iC(r)),n==="failure"&&t){let s=aC(t);s!=="failure"&&(n=iC(s.parameters.get("charset")))}return n==="failure"&&(n="UTF-8"),zR(A,n)}case"ArrayBuffer":return uC(A).buffer;case"BinaryString":{let n="",s=new cC("latin1");for(let o of A)n+=s.write(o);return n+=s.end(),n}}}function zR(A,e){let t=uC(A),r=KR(t),n=0;r!==null&&(e=r,n=r==="UTF-8"?3:2);let s=t.slice(n);return new TextDecoder(e).decode(s)}function KR(A){let[e,t,r]=A;return e===239&&t===187&&r===191?"UTF-8":e===254&&t===255?"UTF-16BE":e===255&&t===254?"UTF-16LE":null}function uC(A){let e=A.reduce((r,n)=>r+n.byteLength,0),t=0;return A.reduce((r,n)=>(r.set(n,t),t+=n.byteLength,r),new Uint8Array(e))}lC.exports={staticPropertyDescriptors:PR,readOperation:_R,fireAProgressEvent:qA}});var CC=f((rT,IC)=>{"use strict";var{staticPropertyDescriptors:ur,readOperation:Xs,fireAProgressEvent:QC}=EC(),{kState:ft,kError:BC,kResult:$s,kEvents:H,kAborted:XR}=Uc(),{webidl:P}=ge(),{kEnumerableProperty:pe}=T(),$e=class A extends EventTarget{constructor(){super(),this[ft]="empty",this[$s]=null,this[BC]=null,this[H]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){P.brandCheck(this,A),P.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),e=P.converters.Blob(e,{strict:!1}),Xs(this,e,"ArrayBuffer")}readAsBinaryString(e){P.brandCheck(this,A),P.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),e=P.converters.Blob(e,{strict:!1}),Xs(this,e,"BinaryString")}readAsText(e,t=void 0){P.brandCheck(this,A),P.argumentLengthCheck(arguments,1,"FileReader.readAsText"),e=P.converters.Blob(e,{strict:!1}),t!==void 0&&(t=P.converters.DOMString(t,"FileReader.readAsText","encoding")),Xs(this,e,"Text",t)}readAsDataURL(e){P.brandCheck(this,A),P.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),e=P.converters.Blob(e,{strict:!1}),Xs(this,e,"DataURL")}abort(){if(this[ft]==="empty"||this[ft]==="done"){this[$s]=null;return}this[ft]==="loading"&&(this[ft]="done",this[$s]=null),this[XR]=!0,QC("abort",this),this[ft]!=="loading"&&QC("loadend",this)}get readyState(){switch(P.brandCheck(this,A),this[ft]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return P.brandCheck(this,A),this[$s]}get error(){return P.brandCheck(this,A),this[BC]}get onloadend(){return P.brandCheck(this,A),this[H].loadend}set onloadend(e){P.brandCheck(this,A),this[H].loadend&&this.removeEventListener("loadend",this[H].loadend),typeof e=="function"?(this[H].loadend=e,this.addEventListener("loadend",e)):this[H].loadend=null}get onerror(){return P.brandCheck(this,A),this[H].error}set onerror(e){P.brandCheck(this,A),this[H].error&&this.removeEventListener("error",this[H].error),typeof e=="function"?(this[H].error=e,this.addEventListener("error",e)):this[H].error=null}get onloadstart(){return P.brandCheck(this,A),this[H].loadstart}set onloadstart(e){P.brandCheck(this,A),this[H].loadstart&&this.removeEventListener("loadstart",this[H].loadstart),typeof e=="function"?(this[H].loadstart=e,this.addEventListener("loadstart",e)):this[H].loadstart=null}get onprogress(){return P.brandCheck(this,A),this[H].progress}set onprogress(e){P.brandCheck(this,A),this[H].progress&&this.removeEventListener("progress",this[H].progress),typeof e=="function"?(this[H].progress=e,this.addEventListener("progress",e)):this[H].progress=null}get onload(){return P.brandCheck(this,A),this[H].load}set onload(e){P.brandCheck(this,A),this[H].load&&this.removeEventListener("load",this[H].load),typeof e=="function"?(this[H].load=e,this.addEventListener("load",e)):this[H].load=null}get onabort(){return P.brandCheck(this,A),this[H].abort}set onabort(e){P.brandCheck(this,A),this[H].abort&&this.removeEventListener("abort",this[H].abort),typeof e=="function"?(this[H].abort=e,this.addEventListener("abort",e)):this[H].abort=null}};$e.EMPTY=$e.prototype.EMPTY=0;$e.LOADING=$e.prototype.LOADING=1;$e.DONE=$e.prototype.DONE=2;Object.defineProperties($e.prototype,{EMPTY:ur,LOADING:ur,DONE:ur,readAsArrayBuffer:pe,readAsBinaryString:pe,readAsText:pe,readAsDataURL:pe,abort:pe,readyState:pe,result:pe,error:pe,onloadstart:pe,onprogress:pe,onload:pe,onabort:pe,onerror:pe,onloadend:pe,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties($e,{EMPTY:ur,LOADING:ur,DONE:ur});IC.exports={FileReader:$e}});var js=f((nT,hC)=>{"use strict";hC.exports={kConstruct:$().kConstruct}});var pC=f((sT,fC)=>{"use strict";var $R=d("node:assert"),{URLSerializer:dC}=he(),{isValidHeaderName:jR}=De();function eF(A,e,t=!1){let r=dC(A,t),n=dC(e,t);return r===n}function AF(A){$R(A!==null);let e=[];for(let t of A.split(","))t=t.trim(),jR(t)&&e.push(t);return e}fC.exports={urlEquals:eF,getFieldValues:AF}});var yC=f((oT,mC)=>{"use strict";var{kConstruct:tF}=js(),{urlEquals:rF,getFieldValues:xc}=pC(),{kEnumerableProperty:pt,isDisturbed:nF}=T(),{webidl:b}=ge(),{Response:sF,cloneResponse:oF,fromInnerResponse:iF}=sn(),{Request:DA,fromInnerRequest:aF}=cr(),{kState:je}=SA(),{fetching:cF}=an(),{urlIsHttpHttpsScheme:eo,createDeferredPromise:lr,readAllBytes:gF}=De(),Yc=d("node:assert"),Ao=class A{#e;constructor(){arguments[0]!==tF&&b.illegalConstructor(),b.util.markAsUncloneable(this),this.#e=arguments[1]}async match(e,t={}){b.brandCheck(this,A);let r="Cache.match";b.argumentLengthCheck(arguments,1,r),e=b.converters.RequestInfo(e,r,"request"),t=b.converters.CacheQueryOptions(t,r,"options");let n=this.#n(e,t,1);if(n.length!==0)return n[0]}async matchAll(e=void 0,t={}){b.brandCheck(this,A);let r="Cache.matchAll";return e!==void 0&&(e=b.converters.RequestInfo(e,r,"request")),t=b.converters.CacheQueryOptions(t,r,"options"),this.#n(e,t)}async add(e){b.brandCheck(this,A);let t="Cache.add";b.argumentLengthCheck(arguments,1,t),e=b.converters.RequestInfo(e,t,"request");let r=[e];return await this.addAll(r)}async addAll(e){b.brandCheck(this,A);let t="Cache.addAll";b.argumentLengthCheck(arguments,1,t);let r=[],n=[];for(let l of e){if(l===void 0)throw b.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(l=b.converters.RequestInfo(l),typeof l=="string")continue;let E=l[je];if(!eo(E.url)||E.method!=="GET")throw b.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let l of e){let E=new DA(l)[je];if(!eo(E.url))throw b.errors.exception({header:t,message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",n.push(E);let B=lr();s.push(cF({request:E,processResponse(C){if(C.type==="error"||C.status===206||C.status<200||C.status>299)B.reject(b.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(C.headersList.contains("vary")){let I=xc(C.headersList.get("vary"));for(let Q of I)if(Q==="*"){B.reject(b.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let h of s)h.abort();return}}},processResponseEndOfBody(C){if(C.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(C)}})),r.push(B.promise)}let i=await Promise.all(r),a=[],c=0;for(let l of i){let E={type:"put",request:n[c],response:l};a.push(E),c++}let u=lr(),g=null;try{this.#A(a)}catch(l){g=l}return queueMicrotask(()=>{g===null?u.resolve(void 0):u.reject(g)}),u.promise}async put(e,t){b.brandCheck(this,A);let r="Cache.put";b.argumentLengthCheck(arguments,2,r),e=b.converters.RequestInfo(e,r,"request"),t=b.converters.Response(t,r,"response");let n=null;if(e instanceof DA?n=e[je]:n=new DA(e)[je],!eo(n.url)||n.method!=="GET")throw b.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=t[je];if(s.status===206)throw b.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let E=xc(s.headersList.get("vary"));for(let B of E)if(B==="*")throw b.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(nF(s.body.stream)||s.body.stream.locked))throw b.errors.exception({header:r,message:"Response body is locked or disturbed"});let o=oF(s),i=lr();if(s.body!=null){let B=s.body.stream.getReader();gF(B).then(i.resolve,i.reject)}else i.resolve(void 0);let a=[],c={type:"put",request:n,response:o};a.push(c);let u=await i.promise;o.body!=null&&(o.body.source=u);let g=lr(),l=null;try{this.#A(a)}catch(E){l=E}return queueMicrotask(()=>{l===null?g.resolve():g.reject(l)}),g.promise}async delete(e,t={}){b.brandCheck(this,A);let r="Cache.delete";b.argumentLengthCheck(arguments,1,r),e=b.converters.RequestInfo(e,r,"request"),t=b.converters.CacheQueryOptions(t,r,"options");let n=null;if(e instanceof DA){if(n=e[je],n.method!=="GET"&&!t.ignoreMethod)return!1}else Yc(typeof e=="string"),n=new DA(e)[je];let s=[],o={type:"delete",request:n,options:t};s.push(o);let i=lr(),a=null,c;try{c=this.#A(s)}catch(u){a=u}return queueMicrotask(()=>{a===null?i.resolve(!!c?.length):i.reject(a)}),i.promise}async keys(e=void 0,t={}){b.brandCheck(this,A);let r="Cache.keys";e!==void 0&&(e=b.converters.RequestInfo(e,r,"request")),t=b.converters.CacheQueryOptions(t,r,"options");let n=null;if(e!==void 0)if(e instanceof DA){if(n=e[je],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(n=new DA(e)[je]);let s=lr(),o=[];if(e===void 0)for(let i of this.#e)o.push(i[0]);else{let i=this.#t(n,t);for(let a of i)o.push(a[0])}return queueMicrotask(()=>{let i=[];for(let a of o){let c=aF(a,new AbortController().signal,"immutable");i.push(c)}s.resolve(Object.freeze(i))}),s.promise}#A(e){let t=this.#e,r=[...t],n=[],s=[];try{for(let o of e){if(o.type!=="delete"&&o.type!=="put")throw b.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(o.type==="delete"&&o.response!=null)throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#t(o.request,o.options,n).length)throw new DOMException("???","InvalidStateError");let i;if(o.type==="delete"){if(i=this.#t(o.request,o.options),i.length===0)return[];for(let a of i){let c=t.indexOf(a);Yc(c!==-1),t.splice(c,1)}}else if(o.type==="put"){if(o.response==null)throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=o.request;if(!eo(a.url))throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(o.options!=null)throw b.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});i=this.#t(o.request);for(let c of i){let u=t.indexOf(c);Yc(u!==-1),t.splice(u,1)}t.push([o.request,o.response]),n.push([o.request,o.response])}s.push([o.request,o.response])}return s}catch(o){throw this.#e.length=0,this.#e=r,o}}#t(e,t,r){let n=[],s=r??this.#e;for(let o of s){let[i,a]=o;this.#s(e,i,a,t)&&n.push(o)}return n}#s(e,t,r=null,n){let s=new URL(e.url),o=new URL(t.url);if(n?.ignoreSearch&&(o.search="",s.search=""),!rF(s,o,!0))return!1;if(r==null||n?.ignoreVary||!r.headersList.contains("vary"))return!0;let i=xc(r.headersList.get("vary"));for(let a of i){if(a==="*")return!1;let c=t.headersList.get(a),u=e.headersList.get(a);if(c!==u)return!1}return!0}#n(e,t,r=1/0){let n=null;if(e!==void 0)if(e instanceof DA){if(n=e[je],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof e=="string"&&(n=new DA(e)[je]);let s=[];if(e===void 0)for(let i of this.#e)s.push(i[1]);else{let i=this.#t(n,t);for(let a of i)s.push(a[1])}let o=[];for(let i of s){let a=iF(i,"immutable");if(o.push(a.clone()),o.length>=r)break}return Object.freeze(o)}};Object.defineProperties(Ao.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:pt,matchAll:pt,add:pt,addAll:pt,put:pt,delete:pt,keys:pt});var wC=[{key:"ignoreSearch",converter:b.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:b.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:b.converters.boolean,defaultValue:()=>!1}];b.converters.CacheQueryOptions=b.dictionaryConverter(wC);b.converters.MultiCacheQueryOptions=b.dictionaryConverter([...wC,{key:"cacheName",converter:b.converters.DOMString}]);b.converters.Response=b.interfaceConverter(sF);b.converters["sequence<RequestInfo>"]=b.sequenceConverter(b.converters.RequestInfo);mC.exports={Cache:Ao}});var bC=f((iT,DC)=>{"use strict";var{kConstruct:gn}=js(),{Cache:to}=yC(),{webidl:Ee}=ge(),{kEnumerableProperty:un}=T(),ro=class A{#e=new Map;constructor(){arguments[0]!==gn&&Ee.illegalConstructor(),Ee.util.markAsUncloneable(this)}async match(e,t={}){if(Ee.brandCheck(this,A),Ee.argumentLengthCheck(arguments,1,"CacheStorage.match"),e=Ee.converters.RequestInfo(e),t=Ee.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let r=this.#e.get(t.cacheName);return await new to(gn,r).match(e,t)}}else for(let r of this.#e.values()){let s=await new to(gn,r).match(e,t);if(s!==void 0)return s}}async has(e){Ee.brandCheck(this,A);let t="CacheStorage.has";return Ee.argumentLengthCheck(arguments,1,t),e=Ee.converters.DOMString(e,t,"cacheName"),this.#e.has(e)}async open(e){Ee.brandCheck(this,A);let t="CacheStorage.open";if(Ee.argumentLengthCheck(arguments,1,t),e=Ee.converters.DOMString(e,t,"cacheName"),this.#e.has(e)){let n=this.#e.get(e);return new to(gn,n)}let r=[];return this.#e.set(e,r),new to(gn,r)}async delete(e){Ee.brandCheck(this,A);let t="CacheStorage.delete";return Ee.argumentLengthCheck(arguments,1,t),e=Ee.converters.DOMString(e,t,"cacheName"),this.#e.delete(e)}async keys(){return Ee.brandCheck(this,A),[...this.#e.keys()]}};Object.defineProperties(ro.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:un,has:un,open:un,delete:un,keys:un});DC.exports={CacheStorage:ro}});var RC=f((aT,kC)=>{"use strict";kC.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var vc=f((cT,UC)=>{"use strict";function uF(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!0}return!1}function Gc(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t<33||t>126||t===34||t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===47||t===91||t===93||t===63||t===61||t===123||t===125)throw new Error("Invalid cookie name")}}function Jc(A){let e=A.length,t=0;if(A[0]==='"'){if(e===1||A[e-1]!=='"')throw new Error("Invalid cookie value");--e,++t}for(;t<e;){let r=A.charCodeAt(t++);if(r<33||r>126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function SC(A){for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t<32||t>126||t===59)throw new Error("Invalid cookie path")}}function FC(A){return A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122}function lF(A){if(A===" ")return;if(A.length>255)throw new Error("Invalid cookie domain");let e=0;for(let t=0;t<A.length;++t){let r=A.charCodeAt(t);if(r===46){if(e===0)throw new Error("Invalid cookie domain");if(A.charCodeAt(t-1)===45)throw new Error("Invalid cookie domain");e=0;continue}if(e===0&&!FC(r))throw new Error("Invalid cookie domain");if(!FC(r)&&r!==45)throw new Error("Invalid cookie domain");if(++e>63)throw new Error("Invalid cookie domain")}if(e===0||A.charCodeAt(A.length-1)===45)throw new Error("Invalid cookie domain")}var EF=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],QF=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],no=Array(61).fill(0).map((A,e)=>e.toString().padStart(2,"0"));function NC(A){return typeof A=="number"&&(A=new Date(A)),`${EF[A.getUTCDay()]}, ${no[A.getUTCDate()]} ${QF[A.getUTCMonth()]} ${A.getUTCFullYear()} ${no[A.getUTCHours()]}:${no[A.getUTCMinutes()]}:${no[A.getUTCSeconds()]} GMT`}function BF(A){if(A<0)throw new Error("Invalid cookie max-age")}function IF(A){if(A.name.length===0)return null;Gc(A.name),Jc(A.value);let e=[`${A.name}=${A.value}`];A.name.startsWith("__Secure-")&&(A.secure=!0),A.name.startsWith("__Host-")&&(A.secure=!0,A.domain=null,A.path="/"),A.secure&&e.push("Secure"),A.httpOnly&&e.push("HttpOnly"),typeof A.maxAge=="number"&&(BF(A.maxAge),e.push(`Max-Age=${A.maxAge}`)),A.domain&&(lF(A.domain),e.push(`Domain=${A.domain}`)),A.path&&(SC(A.path),e.push(`Path=${A.path}`)),A.expires&&A.expires.toString()!=="Invalid Date"&&e.push(`Expires=${NC(A.expires)}`),A.sameSite&&e.push(`SameSite=${A.sameSite}`);for(let t of A.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...n]=t.split("="),s=r.trim(),o=n.join("=");Gc(s),Jc(o),e.push(`${s}=${o}`)}return e.join("; ")}UC.exports={isCTLExcludingHtab:uF,validateCookieName:Gc,validateCookiePath:SC,validateCookieValue:Jc,toIMFDate:NC,stringify:IF}});var LC=f((gT,MC)=>{"use strict";var{maxNameValuePairSize:CF,maxAttributeValueSize:hF}=RC(),{isCTLExcludingHtab:dF}=vc(),{collectASequenceOfCodePointsFast:so}=he(),fF=d("node:assert");function pF(A){if(dF(A))return null;let e="",t="",r="",n="";if(A.includes(";")){let s={position:0};e=so(";",A,s),t=A.slice(s.position)}else e=A;if(!e.includes("="))n=e;else{let s={position:0};r=so("=",e,s),n=e.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>CF?null:{name:r,value:n,...Er(t)}}function Er(A,e={}){if(A.length===0)return e;fF(A[0]===";"),A=A.slice(1);let t="";A.includes(";")?(t=so(";",A,{position:0}),A=A.slice(t.length)):(t=A,A="");let r="",n="";if(t.includes("=")){let o={position:0};r=so("=",t,o),n=t.slice(o.position+1)}else r=t;if(r=r.trim(),n=n.trim(),n.length>hF)return Er(A,e);let s=r.toLowerCase();if(s==="expires"){let o=new Date(n);e.expires=o}else if(s==="max-age"){let o=n.charCodeAt(0);if((o<48||o>57)&&n[0]!=="-"||!/^\d+$/.test(n))return Er(A,e);let i=Number(n);e.maxAge=i}else if(s==="domain"){let o=n;o[0]==="."&&(o=o.slice(1)),o=o.toLowerCase(),e.domain=o}else if(s==="path"){let o="";n.length===0||n[0]!=="/"?o="/":o=n,e.path=o}else if(s==="secure")e.secure=!0;else if(s==="httponly")e.httpOnly=!0;else if(s==="samesite"){let o=n.toLowerCase();o==="none"?e.sameSite="None":o==="strict"?e.sameSite="Strict":o==="lax"&&(e.sameSite="Lax")}else e.unparsed??=[],e.unparsed.push(`${r}=${n}`);return Er(A,e)}MC.exports={parseSetCookie:pF,parseUnparsedAttributes:Er}});var YC=f((uT,xC)=>{"use strict";var{parseSetCookie:wF}=LC(),{stringify:mF}=vc(),{webidl:G}=ge(),{Headers:oo}=It();function yF(A){G.argumentLengthCheck(arguments,1,"getCookies"),G.brandCheck(A,oo,{strict:!1});let e=A.get("cookie"),t={};if(!e)return t;for(let r of e.split(";")){let[n,...s]=r.split("=");t[n.trim()]=s.join("=")}return t}function DF(A,e,t){G.brandCheck(A,oo,{strict:!1});let r="deleteCookie";G.argumentLengthCheck(arguments,2,r),e=G.converters.DOMString(e,r,"name"),t=G.converters.DeleteCookieAttributes(t),TC(A,{name:e,value:"",expires:new Date(0),...t})}function bF(A){G.argumentLengthCheck(arguments,1,"getSetCookies"),G.brandCheck(A,oo,{strict:!1});let e=A.getSetCookie();return e?e.map(t=>wF(t)):[]}function TC(A,e){G.argumentLengthCheck(arguments,2,"setCookie"),G.brandCheck(A,oo,{strict:!1}),e=G.converters.Cookie(e);let t=mF(e);t&&A.append("Set-Cookie",t)}G.converters.DeleteCookieAttributes=G.dictionaryConverter([{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:()=>null}]);G.converters.Cookie=G.dictionaryConverter([{converter:G.converters.DOMString,key:"name"},{converter:G.converters.DOMString,key:"value"},{converter:G.nullableConverter(A=>typeof A=="number"?G.converters["unsigned long long"](A):new Date(A)),key:"expires",defaultValue:()=>null},{converter:G.nullableConverter(G.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.DOMString),key:"path",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.boolean),key:"secure",defaultValue:()=>null},{converter:G.nullableConverter(G.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:G.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:G.sequenceConverter(G.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);xC.exports={getCookies:yF,deleteCookie:DF,getSetCookies:bF,setCookie:TC}});var Br=f((lT,JC)=>{"use strict";var{webidl:D}=ge(),{kEnumerableProperty:we}=T(),{kConstruct:GC}=$(),{MessagePort:kF}=d("node:worker_threads"),Qr=class A extends Event{#e;constructor(e,t={}){if(e===GC){super(arguments[1],arguments[2]),D.util.markAsUncloneable(this);return}let r="MessageEvent constructor";D.argumentLengthCheck(arguments,1,r),e=D.converters.DOMString(e,r,"type"),t=D.converters.MessageEventInit(t,r,"eventInitDict"),super(e,t),this.#e=t,D.util.markAsUncloneable(this)}get data(){return D.brandCheck(this,A),this.#e.data}get origin(){return D.brandCheck(this,A),this.#e.origin}get lastEventId(){return D.brandCheck(this,A),this.#e.lastEventId}get source(){return D.brandCheck(this,A),this.#e.source}get ports(){return D.brandCheck(this,A),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(e,t=!1,r=!1,n=null,s="",o="",i=null,a=[]){return D.brandCheck(this,A),D.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new A(e,{bubbles:t,cancelable:r,data:n,origin:s,lastEventId:o,source:i,ports:a})}static createFastMessageEvent(e,t){let r=new A(GC,e,t);return r.#e=t,r.#e.data??=null,r.#e.origin??="",r.#e.lastEventId??="",r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:RF}=Qr;delete Qr.createFastMessageEvent;var io=class A extends Event{#e;constructor(e,t={}){let r="CloseEvent constructor";D.argumentLengthCheck(arguments,1,r),e=D.converters.DOMString(e,r,"type"),t=D.converters.CloseEventInit(t),super(e,t),this.#e=t,D.util.markAsUncloneable(this)}get wasClean(){return D.brandCheck(this,A),this.#e.wasClean}get code(){return D.brandCheck(this,A),this.#e.code}get reason(){return D.brandCheck(this,A),this.#e.reason}},ao=class A extends Event{#e;constructor(e,t){let r="ErrorEvent constructor";D.argumentLengthCheck(arguments,1,r),super(e,t),D.util.markAsUncloneable(this),e=D.converters.DOMString(e,r,"type"),t=D.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return D.brandCheck(this,A),this.#e.message}get filename(){return D.brandCheck(this,A),this.#e.filename}get lineno(){return D.brandCheck(this,A),this.#e.lineno}get colno(){return D.brandCheck(this,A),this.#e.colno}get error(){return D.brandCheck(this,A),this.#e.error}};Object.defineProperties(Qr.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:we,origin:we,lastEventId:we,source:we,ports:we,initMessageEvent:we});Object.defineProperties(io.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:we,code:we,wasClean:we});Object.defineProperties(ao.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:we,filename:we,lineno:we,colno:we,error:we});D.converters.MessagePort=D.interfaceConverter(kF);D.converters["sequence<MessagePort>"]=D.sequenceConverter(D.converters.MessagePort);var Hc=[{key:"bubbles",converter:D.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:D.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:D.converters.boolean,defaultValue:()=>!1}];D.converters.MessageEventInit=D.dictionaryConverter([...Hc,{key:"data",converter:D.converters.any,defaultValue:()=>null},{key:"origin",converter:D.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:D.converters.DOMString,defaultValue:()=>""},{key:"source",converter:D.nullableConverter(D.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:D.converters["sequence<MessagePort>"],defaultValue:()=>new Array(0)}]);D.converters.CloseEventInit=D.dictionaryConverter([...Hc,{key:"wasClean",converter:D.converters.boolean,defaultValue:()=>!1},{key:"code",converter:D.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:D.converters.USVString,defaultValue:()=>""}]);D.converters.ErrorEventInit=D.dictionaryConverter([...Hc,{key:"message",converter:D.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:D.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:D.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:D.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:D.converters.any}]);JC.exports={MessageEvent:Qr,CloseEvent:io,ErrorEvent:ao,createFastMessageEvent:RF}});var wt=f((ET,vC)=>{"use strict";var FF="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",SF={enumerable:!0,writable:!1,configurable:!1},NF={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},UF={NOT_SENT:0,PROCESSING:1,SENT:2},MF={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},LF=2**16-1,TF={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},xF=Buffer.allocUnsafe(0),YF={string:1,typedArray:2,arrayBuffer:3,blob:4};vC.exports={uid:FF,sentCloseFrameState:UF,staticPropertyDescriptors:SF,states:NF,opcodes:MF,maxUnsigned16Bit:LF,parserStates:TF,emptyBuffer:xF,sendHints:YF}});var ln=f((QT,HC)=>{"use strict";HC.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var Bn=f((BT,KC)=>{"use strict";var{kReadyState:En,kController:GF,kResponse:JF,kBinaryType:vF,kWebSocketURL:HF}=ln(),{states:Qn,opcodes:OA}=wt(),{ErrorEvent:VF,createFastMessageEvent:qF}=Br(),{isUtf8:OF}=d("node:buffer"),{collectASequenceOfCodePointsFast:WF,removeHTTPWhitespace:VC}=he();function PF(A){return A[En]===Qn.CONNECTING}function _F(A){return A[En]===Qn.OPEN}function ZF(A){return A[En]===Qn.CLOSING}function zF(A){return A[En]===Qn.CLOSED}function Vc(A,e,t=(n,s)=>new Event(n,s),r={}){let n=t(A,r);e.dispatchEvent(n)}function KF(A,e,t){if(A[En]!==Qn.OPEN)return;let r;if(e===OA.TEXT)try{r=zC(t)}catch{OC(A,"Received invalid UTF-8 in text frame.");return}else e===OA.BINARY&&(A[vF]==="blob"?r=new Blob([t]):r=XF(t));Vc("message",A,qF,{origin:A[HF].origin,data:r})}function XF(A){return A.byteLength===A.buffer.byteLength?A.buffer:A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)}function $F(A){if(A.length===0)return!1;for(let e=0;e<A.length;++e){let t=A.charCodeAt(e);if(t<33||t>126||t===34||t===40||t===41||t===44||t===47||t===58||t===59||t===60||t===61||t===62||t===63||t===64||t===91||t===92||t===93||t===123||t===125)return!1}return!0}function jF(A){return A>=1e3&&A<1015?A!==1004&&A!==1005&&A!==1006:A>=3e3&&A<=4999}function OC(A,e){let{[GF]:t,[JF]:r}=A;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),e&&Vc("error",A,(n,s)=>new VF(n,s),{error:new Error(e),message:e})}function WC(A){return A===OA.CLOSE||A===OA.PING||A===OA.PONG}function PC(A){return A===OA.CONTINUATION}function _C(A){return A===OA.TEXT||A===OA.BINARY}function eS(A){return _C(A)||PC(A)||WC(A)}function AS(A){let e={position:0},t=new Map;for(;e.position<A.length;){let r=WF(";",A,e),[n,s=""]=r.split("=");t.set(VC(n,!0,!1),VC(s,!1,!0)),e.position++}return t}function tS(A){if(A.length===0)return!1;for(let t=0;t<A.length;t++){let r=A.charCodeAt(t);if(r<48||r>57)return!1}let e=Number.parseInt(A,10);return e>=8&&e<=15}var ZC=typeof process.versions.icu=="string",qC=ZC?new TextDecoder("utf-8",{fatal:!0}):void 0,zC=ZC?qC.decode.bind(qC):function(A){if(OF(A))return A.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};KC.exports={isConnecting:PF,isEstablished:_F,isClosing:ZF,isClosed:zF,fireEvent:Vc,isValidSubprotocol:$F,isValidStatusCode:jF,failWebsocketConnection:OC,websocketMessageReceived:KF,utf8Decode:zC,isControlFrame:WC,isContinuationFrame:PC,isTextBinaryFrame:_C,isValidOpcode:eS,parseExtensions:AS,isValidClientWindowBits:tS}});var go=f((IT,XC)=>{"use strict";var{maxUnsigned16Bit:rS}=wt(),co=16386,qc,In=null,Ir=co;try{qc=d("node:crypto")}catch{qc={randomFillSync:function(e,t,r){for(let n=0;n<e.length;++n)e[n]=Math.random()*255|0;return e}}}function nS(){return Ir===co&&(Ir=0,qc.randomFillSync(In??=Buffer.allocUnsafe(co),0,co)),[In[Ir++],In[Ir++],In[Ir++],In[Ir++]]}var Oc=class{constructor(e){this.frameData=e}createFrame(e){let t=this.frameData,r=nS(),n=t?.byteLength??0,s=n,o=6;n>rS?(o+=8,s=127):n>125&&(o+=2,s=126);let i=Buffer.allocUnsafe(n+o);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+e;i[o-4]=r[0],i[o-3]=r[1],i[o-2]=r[2],i[o-1]=r[3],i[1]=s,s===126?i.writeUInt16BE(n,2):s===127&&(i[2]=i[3]=0,i.writeUIntBE(n,4,6)),i[1]|=128;for(let a=0;a<n;++a)i[o+a]=t[a]^r[a&3];return i}};XC.exports={WebsocketFrameSend:Oc}});var Pc=f((CT,nh)=>{"use strict";var{uid:sS,states:Cn,sentCloseFrameState:uo,emptyBuffer:oS,opcodes:iS}=wt(),{kReadyState:hn,kSentClose:lo,kByteParser:jC,kReceivedClose:$C,kResponse:eh}=ln(),{fireEvent:aS,failWebsocketConnection:WA,isClosing:cS,isClosed:gS,isEstablished:uS,parseExtensions:lS}=Bn(),{channels:Cr}=kt(),{CloseEvent:ES}=Br(),{makeRequest:QS}=cr(),{fetching:BS}=an(),{Headers:IS,getHeadersList:CS}=It(),{getDecodeSplit:hS}=De(),{WebsocketFrameSend:dS}=go(),Wc;try{Wc=d("node:crypto")}catch{}function fS(A,e,t,r,n,s){let o=A;o.protocol=A.protocol==="ws:"?"http:":"https:";let i=QS({urlList:[o],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let g=CS(new IS(s.headers));i.headersList=g}let a=Wc.randomBytes(16).toString("base64");i.headersList.append("sec-websocket-key",a),i.headersList.append("sec-websocket-version","13");for(let g of e)i.headersList.append("sec-websocket-protocol",g);return i.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),BS({request:i,useParallelQueue:!0,dispatcher:s.dispatcher,processResponse(g){if(g.type==="error"||g.status!==101){WA(r,"Received network error or non-101 status code.");return}if(e.length!==0&&!g.headersList.get("Sec-WebSocket-Protocol")){WA(r,"Server did not respond with sent protocols.");return}if(g.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){WA(r,'Server did not set Upgrade header to "websocket".');return}if(g.headersList.get("Connection")?.toLowerCase()!=="upgrade"){WA(r,'Server did not set Connection header to "upgrade".');return}let l=g.headersList.get("Sec-WebSocket-Accept"),E=Wc.createHash("sha1").update(a+sS).digest("base64");if(l!==E){WA(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=g.headersList.get("Sec-WebSocket-Extensions"),C;if(B!==null&&(C=lS(B),!C.has("permessage-deflate"))){WA(r,"Sec-WebSocket-Extensions header does not match.");return}let I=g.headersList.get("Sec-WebSocket-Protocol");if(I!==null&&!hS("sec-websocket-protocol",i.headersList).includes(I)){WA(r,"Protocol was not set in the opening handshake.");return}g.socket.on("data",Ah),g.socket.on("close",th),g.socket.on("error",rh),Cr.open.hasSubscribers&&Cr.open.publish({address:g.socket.address(),protocol:I,extensions:B}),n(g,C)}})}function pS(A,e,t,r){if(!(cS(A)||gS(A)))if(!uS(A))WA(A,"Connection was closed before it was established."),A[hn]=Cn.CLOSING;else if(A[lo]===uo.NOT_SENT){A[lo]=uo.PROCESSING;let n=new dS;e!==void 0&&t===void 0?(n.frameData=Buffer.allocUnsafe(2),n.frameData.writeUInt16BE(e,0)):e!==void 0&&t!==void 0?(n.frameData=Buffer.allocUnsafe(2+r),n.frameData.writeUInt16BE(e,0),n.frameData.write(t,2,"utf-8")):n.frameData=oS,A[eh].socket.write(n.createFrame(iS.CLOSE)),A[lo]=uo.SENT,A[hn]=Cn.CLOSING}else A[hn]=Cn.CLOSING}function Ah(A){this.ws[jC].write(A)||this.pause()}function th(){let{ws:A}=this,{[eh]:e}=A;e.socket.off("data",Ah),e.socket.off("close",th),e.socket.off("error",rh);let t=A[lo]===uo.SENT&&A[$C],r=1005,n="",s=A[jC].closingInfo;s&&!s.error?(r=s.code??1005,n=s.reason):A[$C]||(r=1006),A[hn]=Cn.CLOSED,aS("close",A,(o,i)=>new ES(o,i),{wasClean:t,code:r,reason:n}),Cr.close.hasSubscribers&&Cr.close.publish({websocket:A,code:r,reason:n})}function rh(A){let{ws:e}=this;e[hn]=Cn.CLOSING,Cr.socketError.hasSubscribers&&Cr.socketError.publish(A),this.destroy()}nh.exports={establishWebSocketConnection:fS,closeWebSocketConnection:pS}});var oh=f((hT,sh)=>{"use strict";var{createInflateRaw:wS,Z_DEFAULT_WINDOWBITS:mS}=d("node:zlib"),{isValidClientWindowBits:yS}=Bn(),{MessageSizeExceededError:DS}=v(),bS=Buffer.from([0,0,255,255]),Eo=Symbol("kBuffer"),dn=Symbol("kLength"),_c=class{#e;#A={};#t=0;constructor(e,t){this.#A.serverNoContextTakeover=e.has("server_no_context_takeover"),this.#A.serverMaxWindowBits=e.get("server_max_window_bits"),this.#t=t.maxPayloadSize}decompress(e,t,r){if(!this.#e){let n=mS;if(this.#A.serverMaxWindowBits){if(!yS(this.#A.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#A.serverMaxWindowBits)}try{this.#e=wS({windowBits:n})}catch(s){r(s);return}this.#e[Eo]=[],this.#e[dn]=0,this.#e.on("data",s=>{if(this.#e[dn]+=s.length,this.#t>0&&this.#e[dn]>this.#t){r(new DS),this.#e.removeAllListeners(),this.#e=null;return}this.#e[Eo].push(s)}),this.#e.on("error",s=>{this.#e=null,r(s)})}this.#e.write(e),t&&this.#e.write(bS),this.#e.flush(()=>{if(!this.#e)return;let n=Buffer.concat(this.#e[Eo],this.#e[dn]);this.#e[Eo].length=0,this.#e[dn]=0,r(null,n)})}};sh.exports={PerMessageDeflate:_c}});var Ih=f((dT,Bh)=>{"use strict";var{Writable:kS}=d("node:stream"),RS=d("node:assert"),{parserStates:me,opcodes:hr,states:FS,emptyBuffer:ih,sentCloseFrameState:ah}=wt(),{kReadyState:SS,kSentClose:ch,kResponse:gh,kReceivedClose:uh}=ln(),{channels:Qo}=kt(),{isValidStatusCode:NS,isValidOpcode:US,failWebsocketConnection:Me,websocketMessageReceived:lh,utf8Decode:MS,isControlFrame:Zc,isTextBinaryFrame:zc,isContinuationFrame:LS}=Bn(),{WebsocketFrameSend:Eh}=go(),{closeWebSocketConnection:Qh}=Pc(),{PerMessageDeflate:TS}=oh(),{MessageSizeExceededError:Kc}=v();function fn(A,e,t){Qh(A,e,t,Buffer.byteLength(t)),Me(A,t)}var Xc=class extends kS{#e=[];#A=0;#t=0;#s=!1;#n=me.INFO;#r={};#o=[];#i;#c;#a;constructor(e,t,r={}){super(),this.ws=e,this.#i=t??new Map,this.#c=r.maxFragments??0,this.#a=r.maxPayloadSize??0,this.#i.has("permessage-deflate")&&this.#i.set("permessage-deflate",new TS(t,r))}_write(e,t,r){this.#e.push(e),this.#t+=e.length,this.#s=!0,this.run(r)}#g(){return this.#a>0&&!Zc(this.#r.opcode)&&this.#r.payloadLength+this.#A>this.#a?(fn(this.ws,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(e){for(;this.#s;)if(this.#n===me.INFO){if(this.#t<2)return e();let t=this.consume(2),r=(t[0]&128)!==0,n=t[0]&15,s=(t[1]&128)===128,o=!r&&n!==hr.CONTINUATION,i=t[1]&127,a=t[0]&64,c=t[0]&32,u=t[0]&16;if(!US(n))return Me(this.ws,"Invalid opcode received"),e();if(s)return Me(this.ws,"Frame cannot be masked"),e();if(a!==0&&!this.#i.has("permessage-deflate")){Me(this.ws,"Expected RSV1 to be clear.");return}if(c!==0||u!==0){Me(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(o&&!zc(n)){Me(this.ws,"Invalid frame type was fragmented.");return}if(zc(n)&&this.#o.length>0){Me(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&o){Me(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((i>125||o)&&Zc(n)){Me(this.ws,"Control frame either too large or fragmented");return}if(LS(n)&&this.#o.length===0&&!this.#r.compressed){Me(this.ws,"Unexpected continuation frame");return}if(i<=125){if(this.#r.payloadLength=i,this.#n=me.READ_DATA,!this.#g())return}else i===126?this.#n=me.PAYLOADLENGTH_16:i===127&&(this.#n=me.PAYLOADLENGTH_64);zc(n)&&(this.#r.binaryType=n,this.#r.compressed=a!==0),this.#r.opcode=n,this.#r.masked=s,this.#r.fin=r,this.#r.fragmented=o}else if(this.#n===me.PAYLOADLENGTH_16){if(this.#t<2)return e();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#n=me.READ_DATA,!this.#g())return}else if(this.#n===me.PAYLOADLENGTH_64){if(this.#t<8)return e();let t=this.consume(8),r=t.readUInt32BE(0),n=t.readUInt32BE(4);if(r!==0||n>2**31-1){Me(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=n,this.#n=me.READ_DATA,!this.#g())return}else if(this.#n===me.READ_DATA){if(this.#t<this.#r.payloadLength)return e();let t=this.consume(this.#r.payloadLength);if(Zc(this.#r.opcode))this.#s=this.parseControlFrame(t),this.#n=me.INFO;else if(this.#r.compressed){this.#i.get("permessage-deflate").decompress(t,this.#r.fin,(r,n)=>{if(r){let s=r instanceof Kc?1009:1007;fn(this.ws,s,r.message);return}if(this.writeFragments(n)){if(this.#a>0&&this.#A>this.#a){fn(this.ws,1009,new Kc().message);return}if(!this.#r.fin){this.#n=me.INFO,this.#s=!0,this.run(e);return}lh(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=!0,this.#n=me.INFO,this.run(e)}}),this.#s=!1;break}else{if(!this.writeFragments(t))return;if(this.#a>0&&this.#A>this.#a){fn(this.ws,1009,new Kc().message);return}!this.#r.fragmented&&this.#r.fin&&lh(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=me.INFO}}}consume(e){if(e>this.#t)throw new Error("Called consume() before buffers satiated.");if(e===0)return ih;if(this.#e[0].length===e)return this.#t-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(e),r=0;for(;r!==e;){let n=this.#e[0],{length:s}=n;if(s+r===e){t.set(this.#e.shift(),r);break}else if(s+r>e){t.set(n.subarray(0,e-r),r),this.#e[0]=n.subarray(e-r);break}else t.set(this.#e.shift(),r),r+=n.length}return this.#t-=e,t}writeFragments(e){return this.#c>0&&this.#o.length===this.#c?(fn(this.ws,1008,"Too many message fragments"),!1):(this.#A+=e.length,this.#o.push(e),!0)}consumeFragments(){let e=this.#o;if(e.length===1)return this.#A=0,e.shift();let t=Buffer.concat(e,this.#A);return this.#o=[],this.#A=0,t}parseCloseBody(e){RS(e.length!==1);let t;if(e.length>=2&&(t=e.readUInt16BE(0)),t!==void 0&&!NS(t))return{code:1002,reason:"Invalid status code",error:!0};let r=e.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=MS(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:t,reason:r,error:!1}}parseControlFrame(e){let{opcode:t,payloadLength:r}=this.#r;if(t===hr.CLOSE){if(r===1)return Me(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#r.closeInfo=this.parseCloseBody(e),this.#r.closeInfo.error){let{code:n,reason:s}=this.#r.closeInfo;return Qh(this.ws,n,s,s.length),Me(this.ws,s),!1}if(this.ws[ch]!==ah.SENT){let n=ih;this.#r.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#r.closeInfo.code,0));let s=new Eh(n);this.ws[gh].socket.write(s.createFrame(hr.CLOSE),o=>{o||(this.ws[ch]=ah.SENT)})}return this.ws[SS]=FS.CLOSING,this.ws[uh]=!0,!1}else if(t===hr.PING){if(!this.ws[uh]){let n=new Eh(e);this.ws[gh].socket.write(n.createFrame(hr.PONG)),Qo.ping.hasSubscribers&&Qo.ping.publish({payload:e})}}else t===hr.PONG&&Qo.pong.hasSubscribers&&Qo.pong.publish({payload:e});return!0}get closingInfo(){return this.#r.closeInfo}};Bh.exports={ByteParser:Xc}});var ph=f((fT,fh)=>{"use strict";var{WebsocketFrameSend:xS}=go(),{opcodes:Ch,sendHints:dr}=wt(),YS=ra(),hh=Buffer[Symbol.species],$c=class{#e=new YS;#A=!1;#t;constructor(e){this.#t=e}add(e,t,r){if(r!==dr.blob){let s=dh(e,r);if(!this.#A)this.#t.write(s,t);else{let o={promise:null,callback:t,frame:s};this.#e.push(o)}return}let n={promise:e.arrayBuffer().then(s=>{n.promise=null,n.frame=dh(s,r)}),callback:t,frame:null};this.#e.push(n),this.#A||this.#s()}async#s(){this.#A=!0;let e=this.#e;for(;!e.isEmpty();){let t=e.shift();t.promise!==null&&await t.promise,this.#t.write(t.frame,t.callback),t.callback=t.frame=null}this.#A=!1}};function dh(A,e){return new xS(GS(A,e)).createFrame(e===dr.string?Ch.TEXT:Ch.BINARY)}function GS(A,e){switch(e){case dr.string:return Buffer.from(A);case dr.arrayBuffer:case dr.blob:return new hh(A);case dr.typedArray:return new hh(A.buffer,A.byteOffset,A.byteLength)}}fh.exports={SendQueue:$c}});var Nh=f((pT,Sh)=>{"use strict";var{webidl:U}=ge(),{URLSerializer:JS}=he(),{environmentSettingsObject:wh}=De(),{staticPropertyDescriptors:PA,states:pn,sentCloseFrameState:vS,sendHints:Bo}=wt(),{kWebSocketURL:mh,kReadyState:jc,kController:yh,kBinaryType:Io,kResponse:Dh,kSentClose:HS,kByteParser:VS}=ln(),{isConnecting:qS,isEstablished:OS,isClosing:WS,isValidSubprotocol:PS,fireEvent:bh}=Bn(),{establishWebSocketConnection:_S,closeWebSocketConnection:kh}=Pc(),{ByteParser:ZS}=Ih(),{kEnumerableProperty:He,isBlobLike:Rh}=T(),{getGlobalDispatcher:zS}=Ns(),{types:Fh}=d("node:util"),{ErrorEvent:KS,CloseEvent:XS}=Br(),{SendQueue:$S}=ph(),Le=class A extends EventTarget{#e={open:null,error:null,close:null,message:null};#A=0;#t="";#s="";#n;constructor(e,t=[]){super(),U.util.markAsUncloneable(this);let r="WebSocket constructor";U.argumentLengthCheck(arguments,1,r);let n=U.converters["DOMString or sequence<DOMString> or WebSocketInit"](t,r,"options");e=U.converters.USVString(e,r,"url"),t=n.protocols;let s=wh.settingsObject.baseUrl,o;try{o=new URL(e,s)}catch(a){throw new DOMException(a,"SyntaxError")}if(o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),o.protocol!=="ws:"&&o.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError");if(o.hash||o.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(a=>PS(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[mh]=new URL(o.href);let i=wh.settingsObject;this[yh]=_S(o,t,i,this,(a,c)=>this.#r(a,c),n),this[jc]=A.CONNECTING,this[HS]=vS.NOT_SENT,this[Io]="blob"}close(e=void 0,t=void 0){U.brandCheck(this,A);let r="WebSocket.close";if(e!==void 0&&(e=U.converters["unsigned short"](e,r,"code",{clamp:!0})),t!==void 0&&(t=U.converters.USVString(t,r,"reason")),e!==void 0&&e!==1e3&&(e<3e3||e>4999))throw new DOMException("invalid code","InvalidAccessError");let n=0;if(t!==void 0&&(n=Buffer.byteLength(t),n>123))throw new DOMException(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");kh(this,e,t,n)}send(e){U.brandCheck(this,A);let t="WebSocket.send";if(U.argumentLengthCheck(arguments,1,t),e=U.converters.WebSocketSendData(e,t,"data"),qS(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!OS(this)||WS(this)))if(typeof e=="string"){let r=Buffer.byteLength(e);this.#A+=r,this.#n.add(e,()=>{this.#A-=r},Bo.string)}else Fh.isArrayBuffer(e)?(this.#A+=e.byteLength,this.#n.add(e,()=>{this.#A-=e.byteLength},Bo.arrayBuffer)):ArrayBuffer.isView(e)?(this.#A+=e.byteLength,this.#n.add(e,()=>{this.#A-=e.byteLength},Bo.typedArray)):Rh(e)&&(this.#A+=e.size,this.#n.add(e,()=>{this.#A-=e.size},Bo.blob))}get readyState(){return U.brandCheck(this,A),this[jc]}get bufferedAmount(){return U.brandCheck(this,A),this.#A}get url(){return U.brandCheck(this,A),JS(this[mh])}get extensions(){return U.brandCheck(this,A),this.#s}get protocol(){return U.brandCheck(this,A),this.#t}get onopen(){return U.brandCheck(this,A),this.#e.open}set onopen(e){U.brandCheck(this,A),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof e=="function"?(this.#e.open=e,this.addEventListener("open",e)):this.#e.open=null}get onerror(){return U.brandCheck(this,A),this.#e.error}set onerror(e){U.brandCheck(this,A),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof e=="function"?(this.#e.error=e,this.addEventListener("error",e)):this.#e.error=null}get onclose(){return U.brandCheck(this,A),this.#e.close}set onclose(e){U.brandCheck(this,A),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof e=="function"?(this.#e.close=e,this.addEventListener("close",e)):this.#e.close=null}get onmessage(){return U.brandCheck(this,A),this.#e.message}set onmessage(e){U.brandCheck(this,A),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof e=="function"?(this.#e.message=e,this.addEventListener("message",e)):this.#e.message=null}get binaryType(){return U.brandCheck(this,A),this[Io]}set binaryType(e){U.brandCheck(this,A),e!=="blob"&&e!=="arraybuffer"?this[Io]="blob":this[Io]=e}#r(e,t){this[Dh]=e;let r=this[yh]?.dispatcher?.webSocketOptions,n=r?.maxFragments,s=r?.maxPayloadSize,o=new ZS(this,t,{maxFragments:n,maxPayloadSize:s});o.on("drain",jS),o.on("error",eN.bind(this)),e.socket.ws=this,this[VS]=o,this.#n=new $S(e.socket),this[jc]=pn.OPEN;let i=e.headersList.get("sec-websocket-extensions");i!==null&&(this.#s=i);let a=e.headersList.get("sec-websocket-protocol");a!==null&&(this.#t=a),bh("open",this)}};Le.CONNECTING=Le.prototype.CONNECTING=pn.CONNECTING;Le.OPEN=Le.prototype.OPEN=pn.OPEN;Le.CLOSING=Le.prototype.CLOSING=pn.CLOSING;Le.CLOSED=Le.prototype.CLOSED=pn.CLOSED;Object.defineProperties(Le.prototype,{CONNECTING:PA,OPEN:PA,CLOSING:PA,CLOSED:PA,url:He,readyState:He,bufferedAmount:He,onopen:He,onerror:He,onclose:He,close:He,onmessage:He,binaryType:He,send:He,extensions:He,protocol:He,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(Le,{CONNECTING:PA,OPEN:PA,CLOSING:PA,CLOSED:PA});U.converters["sequence<DOMString>"]=U.sequenceConverter(U.converters.DOMString);U.converters["DOMString or sequence<DOMString>"]=function(A,e,t){return U.util.Type(A)==="Object"&&Symbol.iterator in A?U.converters["sequence<DOMString>"](A):U.converters.DOMString(A,e,t)};U.converters.WebSocketInit=U.dictionaryConverter([{key:"protocols",converter:U.converters["DOMString or sequence<DOMString>"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:U.converters.any,defaultValue:()=>zS()},{key:"headers",converter:U.nullableConverter(U.converters.HeadersInit)}]);U.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(A){return U.util.Type(A)==="Object"&&!(Symbol.iterator in A)?U.converters.WebSocketInit(A):{protocols:U.converters["DOMString or sequence<DOMString>"](A)}};U.converters.WebSocketSendData=function(A){if(U.util.Type(A)==="Object"){if(Rh(A))return U.converters.Blob(A,{strict:!1});if(ArrayBuffer.isView(A)||Fh.isArrayBuffer(A))return U.converters.BufferSource(A)}return U.converters.USVString(A)};function jS(){this.ws[Dh].socket.resume()}function eN(A){let e,t;A instanceof XS?(e=A.reason,t=A.code):e=A.message,bh("error",this,()=>new KS("error",{error:A,message:e})),kh(this,t)}Sh.exports={WebSocket:Le}});var eg=f((wT,Uh)=>{"use strict";function AN(A){return A.indexOf("\0")===-1}function tN(A){if(A.length===0)return!1;for(let e=0;e<A.length;e++)if(A.charCodeAt(e)<48||A.charCodeAt(e)>57)return!1;return!0}function rN(A){return new Promise(e=>{setTimeout(e,A).unref()})}Uh.exports={isValidLastEventId:AN,isASCIINumber:tN,delay:rN}});var xh=f((mT,Th)=>{"use strict";var{Transform:nN}=d("node:stream"),{isASCIINumber:Mh,isValidLastEventId:Lh}=eg(),bA=[239,187,191],Ag=10,Co=13,sN=58,oN=32,tg=class extends nN{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},e.push&&(this.push=e.push)}_transform(e,t,r){if(e.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,e]):this.buffer=e,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===bA[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===bA[0]&&this.buffer[1]===bA[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===bA[0]&&this.buffer[1]===bA[1]&&this.buffer[2]===bA[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===bA[0]&&this.buffer[1]===bA[1]&&this.buffer[2]===bA[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===Ag){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Ag||this.buffer[this.pos]===Co){this.buffer[this.pos]===Co&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===Ag||this.buffer[this.pos]===Co){this.buffer[this.pos]===Co&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}r()}parseLine(e,t){if(e.length===0)return;let r=e.indexOf(sN);if(r===0)return;let n="",s="";if(r!==-1){n=e.subarray(0,r).toString("utf8");let o=r+1;e[o]===oN&&++o,s=e.subarray(o).toString("utf8")}else n=e.toString("utf8"),s="";switch(n){case"data":t[n]===void 0?t[n]=s:t[n]+=`
|
|
45
|
+
${s}`;break;case"retry":Mh(s)&&(t[n]=s);break;case"id":Lh(s)&&(t[n]=s);break;case"event":s.length>0&&(t[n]=s);break}}processEvent(e){e.retry&&Mh(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id&&Lh(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||"message",options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};Th.exports={EventSourceStream:tg}});var Oh=f((yT,qh)=>{"use strict";var{pipeline:iN}=d("node:stream"),{fetching:aN}=an(),{makeRequest:cN}=cr(),{webidl:kA}=ge(),{EventSourceStream:gN}=xh(),{parseMIMEType:uN}=he(),{createFastMessageEvent:lN}=Br(),{isNetworkError:Yh}=sn(),{delay:EN}=eg(),{kEnumerableProperty:mt}=T(),{environmentSettingsObject:Gh}=De(),Jh=!1,vh=3e3,wn=0,Hh=1,mn=2,QN="anonymous",BN="use-credentials",fr=class A extends EventTarget{#e={open:null,error:null,message:null};#A=null;#t=!1;#s=wn;#n=null;#r=null;#o;#i;constructor(e,t={}){super(),kA.util.markAsUncloneable(this);let r="EventSource constructor";kA.argumentLengthCheck(arguments,1,r),Jh||(Jh=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),e=kA.converters.USVString(e,r,"url"),t=kA.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#o=t.dispatcher,this.#i={lastEventId:"",reconnectionTime:vh};let n=Gh,s;try{s=new URL(e,n.settingsObject.baseUrl),this.#i.origin=s.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#A=s.href;let o=QN;t.withCredentials&&(o=BN,this.#t=!0);let i={redirect:"follow",keepalive:!0,mode:"cors",credentials:o==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};i.client=Gh.settingsObject,i.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],i.cache="no-store",i.initiator="other",i.urlList=[new URL(this.#A)],this.#n=cN(i),this.#c()}get readyState(){return this.#s}get url(){return this.#A}get withCredentials(){return this.#t}#c(){if(this.#s===mn)return;this.#s=wn;let e={request:this.#n,dispatcher:this.#o},t=r=>{Yh(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#a()};e.processResponseEndOfBody=t,e.processResponse=r=>{if(Yh(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#a();return}let n=r.headersList.get("content-type",!0),s=n!==null?uN(n):"failure",o=s!=="failure"&&s.essence==="text/event-stream";if(r.status!==200||o===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#s=Hh,this.dispatchEvent(new Event("open")),this.#i.origin=r.urlList[r.urlList.length-1].origin;let i=new gN({eventSourceSettings:this.#i,push:a=>{this.dispatchEvent(lN(a.type,a.options))}});iN(r.body.stream,i,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=aN(e)}async#a(){this.#s!==mn&&(this.#s=wn,this.dispatchEvent(new Event("error")),await EN(this.#i.reconnectionTime),this.#s===wn&&(this.#i.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#i.lastEventId,!0),this.#c()))}close(){kA.brandCheck(this,A),this.#s!==mn&&(this.#s=mn,this.#r.abort(),this.#n=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof e=="function"?(this.#e.open=e,this.addEventListener("open",e)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof e=="function"?(this.#e.message=e,this.addEventListener("message",e)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof e=="function"?(this.#e.error=e,this.addEventListener("error",e)):this.#e.error=null}},Vh={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:wn,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Hh,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:mn,writable:!1}};Object.defineProperties(fr,Vh);Object.defineProperties(fr.prototype,Vh);Object.defineProperties(fr.prototype,{close:mt,onerror:mt,onmessage:mt,onopen:mt,readyState:mt,url:mt,withCredentials:mt});kA.converters.EventSourceInitDict=kA.dictionaryConverter([{key:"withCredentials",converter:kA.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:kA.converters.any}]);qh.exports={EventSource:fr,defaultReconnectionTime:vh}});var Zh=f((DT,N)=>{"use strict";var IN=_t(),Wh=br(),CN=Zt(),hN=VE(),dN=zt(),fN=ma(),pN=lQ(),wN=dQ(),Ph=v(),fo=T(),{InvalidArgumentError:ho}=Ph,pr=sB(),mN=Rr(),yN=nc(),DN=HB(),bN=ic(),kN=Wa(),RN=ps(),{getGlobalDispatcher:_h,setGlobalDispatcher:FN}=Ns(),SN=Us(),NN=gs(),UN=us();Object.assign(Wh.prototype,pr);N.exports.Dispatcher=Wh;N.exports.Client=IN;N.exports.Pool=CN;N.exports.BalancedPool=hN;N.exports.Agent=dN;N.exports.ProxyAgent=fN;N.exports.EnvHttpProxyAgent=pN;N.exports.RetryAgent=wN;N.exports.RetryHandler=RN;N.exports.DecoratorHandler=SN;N.exports.RedirectHandler=NN;N.exports.createRedirectInterceptor=UN;N.exports.interceptors={redirect:ZB(),retry:KB(),dump:$B(),dns:AI()};N.exports.buildConnector=mN;N.exports.errors=Ph;N.exports.util={parseHeaders:fo.parseHeaders,headerNameToString:fo.headerNameToString};function yn(A){return(e,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new ho("invalid url");if(t!=null&&typeof t!="object")throw new ho("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new ho("invalid opts.path");let o=t.path;t.path.startsWith("/")||(o=`/${o}`),e=new URL(fo.parseOrigin(e).origin+o)}else t||(t=typeof e=="object"?e:{}),e=fo.parseURL(e);let{agent:n,dispatcher:s=_h()}=t;if(n)throw new ho("unsupported opts.agent. Did you mean opts.client?");return A.call(s,{...t,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}N.exports.setGlobalDispatcher=FN;N.exports.getGlobalDispatcher=_h;var MN=an().fetch;N.exports.fetch=async function(e,t=void 0){try{return await MN(e,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};N.exports.Headers=It().Headers;N.exports.Response=sn().Response;N.exports.Request=cr().Request;N.exports.FormData=Tr().FormData;N.exports.File=globalThis.File??d("node:buffer").File;N.exports.FileReader=CC().FileReader;var{setGlobalOrigin:LN,getGlobalOrigin:TN}=yi();N.exports.setGlobalOrigin=LN;N.exports.getGlobalOrigin=TN;var{CacheStorage:xN}=bC(),{kConstruct:YN}=js();N.exports.caches=new xN(YN);var{deleteCookie:GN,getCookies:JN,getSetCookies:vN,setCookie:HN}=YC();N.exports.deleteCookie=GN;N.exports.getCookies=JN;N.exports.getSetCookies=vN;N.exports.setCookie=HN;var{parseMIMEType:VN,serializeAMimeType:qN}=he();N.exports.parseMIMEType=VN;N.exports.serializeAMimeType=qN;var{CloseEvent:ON,ErrorEvent:WN,MessageEvent:PN}=Br();N.exports.WebSocket=Nh().WebSocket;N.exports.CloseEvent=ON;N.exports.ErrorEvent=WN;N.exports.MessageEvent=PN;N.exports.request=yn(pr.request);N.exports.stream=yn(pr.stream);N.exports.pipeline=yn(pr.pipeline);N.exports.connect=yn(pr.connect);N.exports.upgrade=yn(pr.upgrade);N.exports.MockClient=yN;N.exports.MockPool=bN;N.exports.MockAgent=DN;N.exports.mockErrors=kN;var{EventSource:_N}=Oh();N.exports.EventSource=_N});import wr from"node:net";import ZN from"node:dns";function po(A){let e=String(A).toLowerCase().split("%")[0];if((e.match(/::/g)||[]).length>1)return null;let t=u=>{if(!u)return[];let g=u.split(":"),l=g.at(-1);if(l?.includes(".")){let E=l.split(".").map(Number);if(E.length!==4||E.some(B=>!Number.isInteger(B)||B<0||B>255))return null;g.splice(g.length-1,1,(E[0]<<8|E[1]).toString(16),(E[2]<<8|E[3]).toString(16))}return g.some(E=>!/^[0-9a-f]{1,4}$/.test(E))?null:g.map(E=>Number.parseInt(E,16))},[r,n]=e.split("::"),s=t(r),o=t(n);if(!s||!o)return null;let i=e.includes("::"),a=8-s.length-o.length;if(!i&&a!==0||i&&a<1)return null;let c=[...s,...Array(Math.max(0,a)).fill(0),...o];return c.length!==8?null:Uint8Array.from(c.flatMap(u=>[u>>8,u&255]))}function rg(A,e,t){let r=Math.floor(t/8),n=t%8;for(let o=0;o<r;o+=1)if(A[o]!==e[o])return!1;if(!n)return!0;let s=255<<8-n;return(A[r]&s)===(e[r]&s)}function ng(A){if(wr.isIPv4(A)){let e=A.split(".").map(Number);return!(e[0]===0||e[0]===10||e[0]===127||e[0]>=224||e[0]===100&&e[1]>=64&&e[1]<=127||e[0]===169&&e[1]===254||e[0]===172&&e[1]>=16&&e[1]<=31||e[0]===192&&(e[1]===0||e[1]===2||e[1]===168)||e[0]===192&&e[1]===88&&e[2]===99||e[0]===198&&(e[1]===18||e[1]===19||e[1]===51)||e[0]===203&&e[1]===0&&e[2]===113)}if(wr.isIPv6(A)){let e=po(A);if(!e)return!1;let t=po("::ffff:0:0");return rg(e,t,96)?ng([...e.slice(12)].join(".")):rg(e,po("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([n,s])=>rg(e,po(n),s)):!1}return!1}function KN(A){let e;try{e=new URL(String(A))}catch{return{ok:!1,error:`not a valid URL: ${String(A).slice(0,120)}`}}if(e.protocol!=="http:"&&e.protocol!=="https:")return{ok:!1,error:`refused protocol ${e.protocol} (only http/https)`};let t=e.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(zN.has(t)||t.endsWith(".localhost")||t.endsWith(".internal"))return{ok:!1,error:`refused internal host ${t}`};let r=wr.isIP(t);return r!==0&&!ng(t)?{ok:!1,error:`refused private address ${t}`}:{ok:!0,url:e,host:t,isLiteralIp:r!==0}}async function zh(A,{lookupFn:e=ZN.promises.lookup}={}){let t=KN(A);if(!t.ok)return t;if(t.isLiteralIp)return{ok:!0,url:t.url};let r;try{r=await e(t.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${t.host} did not resolve`}}return!Array.isArray(r)||r.length===0||r.some(n=>!ng(n.address))?{ok:!1,error:`refused: ${t.host} resolves to a non-public address`}:{ok:!0,url:t.url,addresses:r}}async function Kh(){let A,e;try{let i=await Promise.resolve().then(()=>vd(Zh(),1));A=i.Agent,e=i.fetch}catch{return null}if(typeof A!="function"||typeof e!="function")return null;let t=i=>String(i).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),r=new Map,n=i=>(Array.isArray(i)?i:[i]).map(a=>typeof a=="string"?{address:a}:a).filter(a=>a&&a.address).map(a=>({address:a.address,family:a.family||(wr.isIPv6(a.address)?6:4)})),s=i=>{let a=t(i);if(wr.isIP(a))return[{address:a,family:wr.isIPv6(a)?6:4}];let c=r.get(a);if(!c||!c.length)throw new Error(`refused: unpinned host ${i} during pinned fetch`);return c},o=new A({connect:{lookup(i,a,c){let u;try{u=s(i)}catch(g){return c(g)}return a?.all?c(null,u):c(null,u[0].address,u[0].family)}}});return{dispatcher:o,fetch:(i,a={})=>e(i,{...a,dispatcher:o}),pin(i,a,c){r.set(t(i),n(typeof a=="string"?[{address:a,family:c}]:a))},resolve:s,async close(){try{await o.destroy()}catch{}}}}var zN,Xh=qe(()=>{zN=new Set(["localhost","metadata.google.internal","metadata.goog"])});import{createHash as XN}from"node:crypto";function AU(A){let e=String(A||"").toLowerCase();return Ad.includes(e)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(e)}function tU(A){let e={};for(let[t,r]of Object.entries(A||{}))AU(t)||(e[t]=r);return e}function rU(A,e){if(!A)throw new Error(`HTTP redirect from ${e} missing Location`);let t=new URL(String(A),String(e));if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error(`HTTP redirect from ${e} used unsupported protocol ${t.protocol}`);return t.toString()}function nU(A,e){return new URL(String(A)).origin===new URL(String(e)).origin}function sU(A,e,t){let r={};for(let[a,c]of Object.entries(t||{}))r[a.toLowerCase()]=c;let n=Object.keys(r).filter(a=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(a)),o=[...new Set([...Ad,...n])].sort().map(a=>`${a}=${r[a]??""}`).join(`
|
|
46
|
+
`),i=XN("sha256").update(o).digest("hex").slice(0,32);return`${A} ${e} ${i}`}function oU(A,e){let t=Number(e);return Number.isFinite(t)&&t>0?Math.min(t*1e3,jh):Math.min(250*2**A,jh)+Math.floor(Math.random()*100)}async function aU(A,{fetchImpl:e,method:t,headers:r,body:n,timeoutMs:s,lookupFn:o,realFetch:i}){let a=new AbortController,c=setTimeout(()=>a.abort(),s),u=null,g=e;try{let l=String(A),E={...r||{}};for(let B=0;B<=ed;B+=1){let C=await g(l,{method:t,headers:E,body:n,signal:a.signal,redirect:"manual"}),I=await C.text(),Q=null;if(I)try{Q=JSON.parse(I)}catch{Q=null}if(eU.has(C.status)){if(t!=="GET"&&t!=="HEAD"){let m=new Error(`HTTP ${C.status} ${t} ${l} redirected non-idempotent request`);throw m.status=C.status,m.body=Q??I.slice(0,300),m}if(B===ed)throw new Error(`HTTP redirect loop for ${A}`);let h=rU(C.headers?.get?.("location"),l);if(!nU(h,l)){let m=await zh(h,o?{lookupFn:o}:{});if(!m.ok){let x=new Error(`HTTP redirect from ${l} ${m.error}`);throw x.status=C.status,x}E=tU(E),i&&m.addresses?.length&&(u||(u=await Kh()),u&&(u.pin(new URL(h).hostname,m.addresses[0].address,m.addresses[0].family),g=u.fetch))}l=h;continue}if(!C.ok){let h=new Error(`HTTP ${C.status} ${t} ${l}`);throw h.status=C.status,h.retryAfter=C.headers?.get?.("retry-after")??null,h.body=Q??I.slice(0,300),h}return Q??I}throw new Error(`HTTP redirect loop for ${A}`)}finally{clearTimeout(c),u&&await u.close()}}async function ue(A,e={}){let t=e.fetchImpl||globalThis.fetch;if(typeof t!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let r=e.timeoutMs??12e3,n=(e.method||"GET").toUpperCase(),s={Accept:"application/json",...e.headers||{}},o=e.body;o!=null&&typeof o!="string"&&(s["Content-Type"]=s["Content-Type"]||"application/json",o=JSON.stringify(o));let i=Number.isInteger(e.retries)?Math.max(e.retries,0):jN,a=e.lookupFn,c=!e.fetchImpl,u=async()=>{let C;for(let I=0;I<=i;I++)try{return await aU(A,{fetchImpl:t,method:n,headers:s,body:o,timeoutMs:r,lookupFn:a,realFetch:c})}catch(Q){C=Q;let h=Q?.status,y=Q?.name==="AbortError",m=new Set([408,425,429]),x=h!=null?m.has(h)||$N.has(h)&&$h.has(n):!y&&$h.has(n);if(I===i||!x)throw Q;await iU(oU(I,Q?.retryAfter))}throw C};if(!(e.dedupe!==!1&&n==="GET"&&o==null))return u();let l=sU(n,A,s),E=sg.get(l);if(E)return E;let B=u().finally(()=>sg.delete(l));return sg.set(l,B),B}var $N,$h,jN,jh,Ad,eU,ed,sg,iU,uA=qe(()=>{Xh();$N=new Set([408,425,429,500,502,503,504]),$h=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),jN=2,jh=4e3,Ad=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],eU=new Set([301,302,303,307,308]),ed=3;sg=new Map;iU=A=>new Promise(e=>setTimeout(e,A))});import{readFileSync as cU}from"node:fs";import{homedir as gU}from"node:os";import{join as wo}from"node:path";function uU(){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){let t=(process.env.ORACLE_EXEC_ENV_FILE||"").trim();return t?[t]:[]}let A=(process.env.ORACLE_EXEC_ENV_FILE||process.env.MAD_EXEC_ENV_FILE||"").trim(),e=gU();if(process.env.ORACLE_PUBLIC_DESKTOP==="1"){let t=(process.env.ORACLE_CONFIG_DIR||wo(e,".config","oracle")).trim();return[A,wo(t,"exec.env")].filter(Boolean)}return[A,wo(e,".config","oracle","exec.env"),wo(e,".config","mad-desk","exec.env")].filter(Boolean)}function td(A,e,t){let r=A??process.env[e]??process.env[t];if(!String(r||"").trim())for(let n of uU())try{let s=cU(n,"utf8"),o=s.match(new RegExp(`^${e}=(.*)$`,"m"))||s.match(new RegExp(`^${t}=(.*)$`,"m"));if(o&&(r=o[1].trim(),r))break}catch{}if(!String(r||"").trim())throw new Error(`${e} required for attestation. Set it in the environment, or place ${e}=<value> in ~/.config/oracle/exec.env`);return r}var rd=qe(()=>{});var nd=qe(()=>{});import{createHash as lU,createHmac as od,timingSafeEqual as EU}from"node:crypto";function yo(A){return Array.isArray(A)?`[${A.map(yo).join(",")}]`:A&&typeof A=="object"?`{${Object.keys(A).sort().map(e=>`${JSON.stringify(e)}:${yo(A[e])}`).join(",")}}`:JSON.stringify(A??null)}function id(A,{required:e=!1}={}){try{return td(A,"ORACLE_ROUTE_ATTESTATION_SECRET","MAD_ROUTE_ATTESTATION_SECRET")}catch(t){if(e)throw t;return null}}function ig(A){let{signature:e,...t}=A;return t}function ad(A,{secret:e}={}){let t=id(e);return t?{...A,signature:od("sha256",t).update(yo(ig(A))).digest("hex")}:A}function QU(A){let e=String(A||"").toLowerCase();if(!/^0x[0-9a-f]+$/.test(e)||e.length<10||e.length%2!==0)throw new Error("auto-slippage calldata must be even-length hex with a selector");return lU("sha256").update(Buffer.from(e.slice(2),"hex")).digest("hex")}function _A(A,{chainId:e,venue:t,data:r,secret:n}={}){if(!A||A.mode!=="auto")throw new Error("bounded auto-slippage guard required");if(Number(A.chainId)!==Number(e))throw new Error("auto-slippage guard chain mismatch");if(String(A.venue).toLowerCase()!==String(t||"").toLowerCase())throw new Error("auto-slippage guard venue mismatch");let s=id(n);if(s){let E=od("sha256",s).update(yo(ig(A))).digest("hex");if(!BU(A.signature,E))throw new Error("auto-slippage guard signature mismatch \u2014 refusing to bind a guard this Oracle did not issue")}let o=Number(A.selectedBps),i=Number(A.capBps);if(!Number.isInteger(o)||o<0||o>mo||!Number.isInteger(i)||i<0||i>mo||o>i)throw new Error("auto-slippage guard bounds are invalid");let a=BigInt(A.quoteAmountOut??0),c=BigInt(A.minAmountOut??0);if(a<=0n||c<=0n)throw new Error("auto-slippage guard amounts must be positive");let u=a*BigInt(1e4-o),g=u/10000n;if(u%10000n!==0n&&(g+=1n),c<g)throw new Error("auto-slippage guard is under-protected relative to its quote");let l=hU(r);if(l!=null&&l!==c)throw new Error(`auto-slippage: calldata encodes floor ${l}, not the guard floor ${c} \u2014 refusing to bind`);return ad({...ig(A),calldataHash:QU(r)},{secret:n})}function BU(A,e){let t=Buffer.from(String(A??""),"utf8"),r=Buffer.from(String(e??""),"utf8");return t.length!==r.length||t.length===0?!1:EU(t,r)}function og(A,e=0){let t=Number(A);return Number.isFinite(t)?t:e}function IU(A){let e=A==null?mo:Number(A);if(!Number.isInteger(e)||e<0)throw new Error("auto-slippage cap must be a non-negative integer bps value");return Math.min(e,mo)}function ZA({liquidityUsd:A,priceChange5m:e=0,quoteAgeMs:t=0,crossChain:r=!1,requestedCapBps:n}={}){let s=og(A,0),o=s>0?s>=25e4?5:s>=1e5?10:s>=5e4?20:s>=1e4?40:70:r?30:10,i=Math.min(60,Math.abs(og(e,0))*2),a=Math.min(40,Math.floor(Math.max(0,og(t,0))/5e3)*5),c=Math.max(25,Math.ceil(20+o+i+a)),u=IU(n);return{mode:"auto",requiredBps:c,selectedBps:Math.min(c,u),capBps:u,executable:c<=u}}function CU({chainId:A,venue:e,quoteAmountOut:t,liquidityUsd:r,priceChange5m:n=0,quoteAgeMs:s=0,crossChain:o=!1,requestedCapBps:i,quotedAtMs:a=Date.now(),ttlMs:c=sd,secret:u}={}){let g=BigInt(t??0);if(g<=0n)throw new Error("auto-slippage guard requires positive quoteAmountOut");let l=ZA({liquidityUsd:r,priceChange5m:n,quoteAgeMs:s,crossChain:o,requestedCapBps:i});if(!l.executable)throw new Error(`auto-slippage requires ${l.requiredBps} bps above hard/requested cap ${l.capBps}; route blocked`);let E=Number(a);if(!Number.isFinite(E))throw new Error("auto-slippage: quotedAtMs must be a finite number");let B=Math.min(3e4,Math.max(1e3,Number(c)||sd)),C=g*BigInt(1e4-l.selectedBps),I=C/10000n;if(C%10000n!==0n&&(I+=1n),I>g&&(I=g),g>0n&&I<=0n)throw new Error(`auto-slippage: quote ${g} is too small to express a ${l.selectedBps} bps floor without rounding to zero`);let Q=Number((g-I)*10000n/(g===0n?1n:g));if(Q>l.capBps)throw new Error(`auto-slippage: realised floor implies ${Q} bps, above cap ${l.capBps} \u2014 refusing to issue a guard weaker than advertised`);return ad({mode:"auto",chainId:Number(A),venue:String(e||"unknown"),quoteAmountOut:g.toString(),minAmountOut:I.toString(),requiredBps:l.requiredBps,selectedBps:l.selectedBps,capBps:l.capBps,quotedAtMs:E,expiresAtMs:E+B},{secret:u})}function hU(A){let e=String(A||"");if(!/^0x[0-9a-fA-F]+$/.test(e)||e.length<10||e.length%2!==0)return null;let t=e.slice(0,10).toLowerCase(),r=[];for(let s=10;s+64<=e.length;s+=64)r.push(e.slice(s,s+64));let n=s=>r[s]==null?null:BigInt("0x"+r[s]);switch(t){case"0x414bf389":return n(6);case"0x04e45aaf":return n(5);case"0xc04b8d59":{let s=n(0);if(s==null)return null;let o=Number(s)/32;return!Number.isInteger(o)||o<0?null:n(o+4)}case"0xb858183f":{let s=n(0);if(s==null)return null;let o=Number(s)/32;return!Number.isInteger(o)||o<0?null:n(o+3)}case"0xa026383e":return n(6);case"0x38ed1739":case"0x5c11d795":return n(1);case"0x7ff36ab5":case"0xb6f9de95":return n(0);case"0x18cbafe5":case"0x791ac947":return n(1);default:return null}}function eA(A,{chainId:e,venue:t,amountOut:r,liquidityUsd:n,priceChange5m:s,crossChain:o,requestedCapBps:i,quotedAtMs:a=Date.now(),ttlMs:c}={}){let u=CU({chainId:e,venue:t,quoteAmountOut:r,liquidityUsd:n,priceChange5m:s,crossChain:o,requestedCapBps:i,quotedAtMs:a,ttlMs:c});return{...A,autoSlippage:u,amountOutMinimum:u.minAmountOut}}var mo,sd,RA=qe(()=>{rd();nd();mo=100,sd=2e4});var mr,Do=qe(()=>{mr="0x000000000000000000000000000000000000dEaD"});import{createHash as dU,createHmac as fU,timingSafeEqual as OT}from"node:crypto";function ag(A){return A===null||typeof A!="object"?JSON.stringify(A):Array.isArray(A)?`[${A.map(ag).join(",")}]`:`{${Object.keys(A).sort().map(t=>`${JSON.stringify(t)}:${ag(A[t])}`).join(",")}}`}function cd(A){let e=String(A?.ORACLE_STAMP_HMAC_SECRET||"").trim();return e.length>=16?e:""}function gd(A=process.env){return cd(process.env)||cd(A)}function mU(A){let{oraclePrepared:e,prepareHash:t,prepareMac:r,note:n,...s}=A||{};return s}function yU(A){let e=mU(A);return dU("sha256").update(ag(e)).digest("hex")}function DU(A,e=gd()){return e?fU("sha256",e).update(String(A)).digest("hex"):""}function Ve(A,{provider:e,kind:t,env:r=process.env}={}){if(!A||typeof A!="object")throw new Error("stampPrepared: payload object required");let n={...A,provider:A.provider||e,kind:A.kind||t,requiresUserSignature:A.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1};if(!n.provider)throw new Error("stampPrepared: provider required");if(!n.kind)throw new Error("stampPrepared: kind required");let s=Date.now(),o=s+wU,a={...n,preparedAt:s,expiresAt:o,prepareVersion:pU},c=yU(a),u=gd(r),g=u?DU(c,u):void 0,l={...a,oraclePrepared:!0,prepareHash:c};return g&&(l.prepareMac=g),l}var pU,wU,WT,lA=qe(()=>{pU=2,wU=300*1e3,WT=(()=>{let A=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(A)&&A>0?A:1800*1e3})()});import{Contract as bU,JsonRpcProvider as kU}from"ethers";function MU(A){return UU.test(String(A||""))}async function ud(A,{contract:e=RU,rpc:t=SU,chainId:r=FU,balanceOf:n}={}){if(!MU(A))throw new Error("invalid-address");if(n)return BigInt(await n(A));let s=new kU(t,r,{staticNetwork:!0}),o=new bU(e,NU,s);return BigInt(await o.balanceOf(A))}var RU,FU,SU,NU,UU,ld=qe(()=>{RU="0x62FCFAf7573AD8B41a0FBF347AfEb85e06599A75",FU=999,SU="https://rpc.hyperliquid.xyz/evm",NU=["function balanceOf(address owner) view returns (uint256)"],UU=/^0x[a-fA-F0-9]{40}$/});import{existsSync as LU,readFileSync as TU,lstatSync as xU}from"node:fs";import{homedir as Ed}from"node:os";import{join as cg}from"node:path";function JU(A){let e=String(A||"swap").toLowerCase();return Object.prototype.hasOwnProperty.call(Qd,e)?Qd[e]:GU}function OU(A=process.env){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){if(A[Bd])return String(A[Bd]);let e=A.ORACLE_CONFIG_DIR||cg(Ed(),".config","oracle");return cg(e,"fee-recipient")}return cg(Ed(),".config","oracle","fee-recipient")}function WU(A=process.env){try{let e=OU(A);if(!LU(e)||xU(e).isSymbolicLink())return"";let t=TU(e,"utf8").trim().toLowerCase();return/^0x[a-f0-9]{40}$/.test(t)?t:""}catch{return""}}function PU(A,{fallback:e=0}={}){if(A==null)return e;if(String(A).trim()==="")return 0;let t=Number(A);return!Number.isFinite(t)||t<=0?0:Math.min(Math.floor(t),YU)}function _U({env:A=process.env,action:e="swap",admin:t=!1}={}){let r=String(A[HU]||"").trim(),n=String(A[VU]||qU).trim();if(t===!0)return{bps:0,recipient:"",integrator:n,action:e,applies:!1,reason:"admin-oracle"};let s=JU(e),o=PU(A[vU],{fallback:r?s:0}),i=Math.min(o,s);if(!i)return{bps:0,recipient:"",integrator:n,action:e,applies:!1,reason:"not-configured"};if(!/^0x[a-fA-F0-9]{40}$/.test(r))return{bps:0,recipient:"",integrator:n,action:e,applies:!1,reason:"no-recipient"};let a=WU(A);return!a||a!==r.toLowerCase()?{bps:0,recipient:"",integrator:n,action:e,applies:!1,reason:"recipient-not-pinned"}:{bps:i,recipient:r,integrator:n,action:e,applies:!0,reason:"configured"}}async function gg({wallet:A,env:e=process.env,action:t="swap",holderCheck:r={},admin:n=!1}={}){let s=_U({env:e,action:t,admin:n});if(n===!0)return{...s,holderVerificationStatus:"admin-oracle"};let o=String(A||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(o))return{...s,holderVerificationStatus:"wallet-required"};try{return BigInt(await ud(o,r))>0n?{...s,bps:0,applies:!1,reason:"locals-only-holder",holderVerificationStatus:"holder"}:{...s,holderVerificationStatus:"non-holder"}}catch{return{...s,holderVerificationStatus:"unavailable"}}}function Id(A){return A?.applies?`Oracle routing fee ${A.bps} bps (${(A.bps/100).toFixed(2)}%) to ${A.recipient}.`:A?.reason==="admin-oracle"?"No Oracle fee (admin Oracle).":A?.reason==="locals-only-holder"?"No Oracle fee (Locals Only holder).":"No Oracle fee."}function Cd(A){return A?.applies?{integrator:A.integrator,fee:String(A.bps/1e4)}:{}}var YU,GU,Qd,vU,HU,VU,Bd,qU,bo=qe(()=>{ld();YU=100,GU=5,Qd=Object.freeze({swap:5,bridge:5,perps:0,nft:0});vU="ORACLE_INTEGRATOR_FEE_BPS",HU="ORACLE_INTEGRATOR_FEE_RECIPIENT",VU="ORACLE_INTEGRATOR_ID",Bd="ORACLE_INTEGRATOR_FEE_RECIPIENT_PIN",qU="oracle"});var fd={};Cg(fd,{LIFI_API:()=>dd,lifiChains:()=>$U,lifiHealth:()=>KU,lifiPrepare:()=>XU,lifiQuote:()=>ko});function lg(A={}){return(A.baseUrl||process.env.LIFI_API_URL||dd).replace(/\/$/,"")}function zU(A){let e=String(A||ug).toLowerCase();return e===ug.toLowerCase()||e===ZU}function hd(A,e){let t=String(A||"").trim();if(!/^0x[0-9a-fA-F]{40}$/.test(t))throw new Error(`lifi: ${e} must be a 20-byte address`);return t.toLowerCase()}async function KU(A={}){let e=await ue(`${lg(A)}/chains`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??12e3}),t=Array.isArray(e)?e.length:e?.chains?.length||0;return{ok:t>0,chainCount:t}}async function ko(A={},e={}){let{fromChain:t,toChain:r=t,fromToken:n=ug,toToken:s,fromAmount:o,fromAddress:i=mr}=A;if(t==null||!s||!o)throw new Error("lifiQuote requires fromChain, toToken, fromAmount");let a=new URLSearchParams({fromChain:String(t),toChain:String(r),fromToken:n,toToken:s,fromAmount:String(o),fromAddress:i}),c=ZA({liquidityUsd:A.liquidityUsd,priceChange5m:A.priceChange5m,crossChain:Number(r)!==Number(t),requestedCapBps:A.maxSlippageBps??A.slippageBps});if(!c.executable)throw new Error(`lifi: route requires ${c.requiredBps} bps above cap ${c.capBps}`);a.set("slippage",String(c.selectedBps/1e4));let u=await gg({wallet:A.fromAddress,env:e.env,action:A.feeAction||"swap",holderCheck:e.holderCheck});for(let[I,Q]of Object.entries(Cd(u)))a.set(I,Q);let g=await ue(`${lg(e)}/quote?${a}`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??2e4}),l=g?.estimate?.toAmount||g?.toAmount;if(!l)return{...g,autoSlippagePolicy:c,oracleFee:u};let E=g?.transactionRequest?.to||g?.estimate?.approvalAddress||"lifi",B=eA(g,{chainId:Number(t),venue:E,amountOut:l,liquidityUsd:A.liquidityUsd,priceChange5m:A.priceChange5m,crossChain:Number(r)!==Number(t),requestedCapBps:A.maxSlippageBps??A.slippageBps}),C=g?.estimate?.toAmountMin||g?.toAmountMin;if(C!=null&&BigInt(C)<BigInt(B.amountOutMinimum))throw new Error("lifi: provider transaction is under-protected versus bounded auto-slippage floor");return{...B,oracleFee:u}}async function XU(A={},e={}){let t=await ko(A,e),r=t?.transactionRequest;if(!r?.to||!r?.data)throw new Error("lifi: quote did not return an executable transactionRequest");let n=Number(A.fromChain);if(r.chainId!=null&&Number(r.chainId)!==n)throw new Error("lifi: transaction chain mismatch");if(A.fromAddress&&r.from&&String(r.from).toLowerCase()!==String(A.fromAddress).toLowerCase())throw new Error("lifi: transaction sender mismatch");let s=null;if(!zU(A.fromToken)){let o=t?.estimate?.approvalAddress||t?.approvalAddress;if(!o)throw new Error("lifi: ERC20 route missing approvalAddress");let i=t?.action?.fromToken?.address||t?.estimate?.fromToken?.address||A.fromToken;s={token:hd(i,"approval token"),spender:hd(o,"approval spender"),amount:String(A.fromAmount)}}return Ve({provider:"lifi",calldataReady:!0,requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,chainId:n,quote:t,autoSlippage:t.autoSlippage,requiresApproval:s,transaction:{chainId:n,from:r.from||A.fromAddress,to:r.to,data:r.data,value:r.value??"0x0",...r.gasLimit!=null?{gasLimit:r.gasLimit}:{},slippageGuard:_A(t.autoSlippage,{chainId:n,venue:r.to,data:r.data})}},{provider:"lifi",kind:"lifi-tx"})}async function $U(A={}){return ue(`${lg(A)}/chains`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??12e3})}var dd,ug,ZU,Eg=qe(()=>{uA();RA();Do();lA();bo();dd="https://li.quest/v1";ug="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ZU="0x0000000000000000000000000000000000000000"});var Ro={};Cg(Ro,{ACROSS_API:()=>Dd,HOP_API:()=>bd,RELAY_API:()=>kd,acrossHealth:()=>gM,acrossSuggestedFees:()=>Rd,hopHealth:()=>uM,hopQuote:()=>Fd,relayHealth:()=>lM,relayPrepare:()=>EM,relayQuote:()=>Bg});async function gM(A={}){try{return{ok:!0,estimatedFillTimeSec:(await Rd({token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",destinationToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",originChainId:1,destinationChainId:42161,amount:"1000000000000000"},A)).estimatedFillTimeSec}}catch(e){return{ok:!1,error:String(e.message||e).slice(0,160)}}}async function Rd(A={},e={}){let{token:t,destinationToken:r=t,originChainId:n,destinationChainId:s,amount:o}=A;if(!t||n==null||s==null||!o)throw new Error("acrossSuggestedFees requires token, originChainId, destinationChainId, amount");let i=new URLSearchParams({token:t,destinationToken:r,originChainId:String(n),destinationChainId:String(s),amount:String(o)}),a=(e.baseUrl||process.env.ACROSS_API_URL||Dd).replace(/\/$/,"");return ue(`${a}/suggested-fees?${i}`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??15e3})}async function uM(A={}){try{let e=await Fd({amount:"1000000000000000",token:"ETH",fromChain:"ethereum",toChain:"arbitrum",slippage:.5},A);return{ok:!0,estimatedRecieved:e.estimatedRecieved||e.estimatedReceived}}catch(e){return{ok:!1,error:String(e.message||e).slice(0,160)}}}async function Fd(A={},e={}){let{amount:t,token:r="ETH",fromChain:n="ethereum",toChain:s="arbitrum"}=A;if(!t)throw new Error("hopQuote requires amount");let o=A.slippage==null?void 0:Math.round(Number(A.slippage)*100),i=ZA({liquidityUsd:A.liquidityUsd,priceChange5m:A.priceChange5m,crossChain:n!==s,requestedCapBps:A.maxSlippageBps??A.slippageBps??o});if(!i.executable)throw new Error(`hop: route requires ${i.requiredBps} bps above cap ${i.capBps}`);let a=new URLSearchParams({amount:String(t),token:r,fromChain:n,toChain:s,slippage:String(i.selectedBps/100)}),c=(e.baseUrl||process.env.HOP_API_URL||bd).replace(/\/$/,""),u=await ue(`${c}/quote?${a}`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??15e3}),g=u?.estimatedRecieved||u?.estimatedReceived;return g?eA(u,{chainId:Number(A.originChainId||A.chainId||cM[n]||0),venue:u?.tx?.to||"hop",amountOut:g,liquidityUsd:A.liquidityUsd,priceChange5m:A.priceChange5m,crossChain:n!==s,requestedCapBps:A.maxSlippageBps??A.slippageBps??o}):{...u,autoSlippagePolicy:i}}async function lM(A={}){try{let e=await Bg({user:mr,originChainId:1,destinationChainId:8453,originCurrency:"0x0000000000000000000000000000000000000000",destinationCurrency:"0x0000000000000000000000000000000000000000",amount:"1000000000000000",tradeType:"EXACT_INPUT"},A);return{ok:!0,hasSteps:Array.isArray(e.steps),stepCount:e.steps?.length||0}}catch(e){return{ok:!1,error:String(e.message||e).slice(0,160)}}}async function Bg(A={},e={}){let{user:t=mr,originChainId:r,destinationChainId:n,originCurrency:s="0x0000000000000000000000000000000000000000",destinationCurrency:o="0x0000000000000000000000000000000000000000",amount:i,tradeType:a="EXACT_INPUT"}=A;if(r==null||n==null||!i)throw new Error("relayQuote requires originChainId, destinationChainId, amount");let c=ZA({liquidityUsd:A.liquidityUsd,priceChange5m:A.priceChange5m,crossChain:Number(r)!==Number(n),requestedCapBps:A.maxSlippageBps??A.slippageBps});if(!c.executable)throw new Error(`relay: route requires ${c.requiredBps} bps above cap ${c.capBps}`);let u=(e.baseUrl||process.env.RELAY_API_URL||kd).replace(/\/$/,""),g=await ue(`${u}/quote`,{method:"POST",body:{user:t,originChainId:Number(r),destinationChainId:Number(n),originCurrency:s,destinationCurrency:o,amount:String(i),tradeType:a,slippageTolerance:String(c.selectedBps)},fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??2e4}),l=g?.details?.currencyOut?.amount;return!l||!/^\d+$/.test(String(l))?{...g,autoSlippagePolicy:c}:eA(g,{chainId:Number(r),venue:g?.steps?.[0]?.items?.[0]?.data?.to||"relay",amountOut:l,liquidityUsd:A.liquidityUsd,priceChange5m:A.priceChange5m,crossChain:Number(r)!==Number(n),requestedCapBps:A.maxSlippageBps??A.slippageBps})}async function EM(A={},e={}){let t=await Bg(A,e),r=Number(A.originChainId),n=(t.steps||[]).flatMap(i=>(i.items||[]).filter(a=>a?.data?.to&&a?.data?.data).map(a=>({stepId:i.id,...a.data})));if(!n.length)throw new Error("relay: quote returned no executable transaction items");let s=String(t?.autoSlippage?.venue||"").toLowerCase();if(n.some(i=>String(i.to).toLowerCase()!==s))throw new Error("relay: route includes a separate approval/transaction that is not yet safely bound");let o=n.map(i=>({chainId:r,from:i.from||A.user,to:i.to,data:i.data,value:i.value??"0x0",...i.gasLimit!=null||i.gas!=null?{gasLimit:i.gasLimit??i.gas}:{},slippageGuard:_A(t.autoSlippage,{chainId:r,venue:i.to,data:i.data})}));return Ve({provider:"relay",calldataReady:!0,requiresUserSignature:!0,signingReady:!1,broadcastReady:!1,chainId:r,quote:t,autoSlippage:t.autoSlippage,transactions:o},{provider:"relay",kind:"relay-tx"})}var Dd,bd,kd,cM,Fo=qe(()=>{uA();RA();Do();lA();Dd="https://across.to/api",bd="https://api.hop.exchange/v1",kd="https://api.relay.link",cM={ethereum:1,optimism:10,bsc:56,polygon:137,arbitrum:42161,avalanche:43114,base:8453}});var DM=Object.freeze(["blockNumber","nativeBalance","tokenBalance","resolveToken","resolvePools","scanBlocks","scoreRisk","quote","sellSimulation","prepareUnsignedTx"]),bM=Object.freeze({LIVE:"LIVE",CACHED:"CACHED",STALE:"STALE",UNKNOWN:"UNKNOWN",UNAVAILABLE:"UNAVAILABLE"}),kM=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"});var FA=Object.freeze({FULL:"FULL",NO_GAS:"NO_GAS",FAILED:"FAILED"});var hg=A=>{try{return A==null||A===""?null:BigInt(String(A).split(".")[0])}catch{return null}};function dg(A){let{source:e,amountOut:t,minOut:r=null,gasUsd:n=null,feeUsd:s=null,oracleFeeBps:o=0,estimatedGas:i=null,liquidityUsd:a=null,error:c=null,executionReady:u=!1,meta:g={}}=A||{};if(c||t==null)return{source:e,quality:FA.FAILED,amountOut:null,error:c||"no amountOut returned"};let l=hg(t);if(l==null||l<=0n)return{source:e,quality:FA.FAILED,amountOut:null,error:"non-positive amountOut"};let E=Number(o);return{source:e,quality:n==null?FA.NO_GAS:FA.FULL,amountOut:l.toString(),minOut:hg(r)?.toString()??null,gasUsd:n,feeUsd:s,oracleFeeBps:Number.isFinite(E)&&E>0?Math.floor(E):0,estimatedGas:i==null?null:String(i),liquidityUsd:a==null?null:Number(a),executionReady:u,meta:g}}function fg(A,{destPriceUsd:e=null,destDecimals:t=null,liquidityFirst:r=!0,liquidityBandBps:n=50,gasPriceWei:s=null,nativePriceUsd:o=null}={}){let i=A.filter(M=>M.quality!==FA.FAILED),a=A.filter(M=>M.quality===FA.FAILED),c=e!=null&&e>0&&t!=null&&t>=0,u=Number(s),g=Number(o),l=Number.isFinite(u)&&u>0&&Number.isFinite(g)&&g>0,E=i.map(M=>{let V=BigInt(M.amountOut),ye=0n,Qe=!1,ne=!1,Te=BigInt(M.oracleFeeBps??0),EA=Te>0n?V*Te/10000n:0n;if(c){let Dn=M.gasUsd,No=Number(M.meta?.gasUnits??M.estimatedGas);if(Dn==null&&l&&Number.isFinite(No)&&No>0){let XA=No*u/1e18*g;Number.isFinite(XA)&&XA>=0&&(Dn=XA,ne=!0)}let Ig=(Dn??0)+(M.feeUsd??0);if(Ig>0){let XA=Ig/e*10**t;Number.isFinite(XA)&&XA>=0&&(ye=BigInt(Math.floor(XA)),Qe=!0)}else Dn===0&&(Qe=!0)}let yt=ye+EA,Dt=V>yt?V-yt:0n;return{...M,grossOut:V.toString(),netOut:Dt.toString(),costInDest:ye.toString(),oracleFeeInDest:EA.toString(),costAccounted:Qe,gasEstimated:ne}}),B=Number(n)>0?Number(n):0,C=E.reduce((M,V)=>BigInt(V.netOut)>M?BigInt(V.netOut):M,0n),I=M=>C>0n?Number((C-BigInt(M))*10000n/C):0,Q=[],h=E.slice().sort((M,V)=>BigInt(V.netOut)>BigInt(M.netOut)?1:-1)[0]??null;E.sort((M,V)=>{let ye=I(M.netOut)<=B?0:1,Qe=I(V.netOut)<=B?0:1;if(r&&B>0&&ye!==Qe)return ye-Qe;if(r&&B>0){let ne=M.liquidityUsd??-1,Te=V.liquidityUsd??-1;if(ne!==Te)return Te-ne}return BigInt(V.netOut)>BigInt(M.netOut)?1:-1}),r&&B>0&&h&&E[0]&&E[0].source!==h.source&&Q.push(`liquidity-first: chose ${E[0].source} (liquidity $${E[0].liquidityUsd??"unknown"}) over best-price ${h.source} within ${B} bps`);let y=E.filter(M=>!M.costAccounted).map(M=>M.source);c?y.length&&Q.push(`gas not reported by: ${y.join(", ")}. These are ranked on gross output and may be overstated relative to gas-measured routes.`):Q.push("destination price/decimals unavailable: ranked on GROSS output. Gas is not included, so a cheap-looking route may cost more to execute.");let m=E[0];if(c&&m&&m.costAccounted===!1){let M=E.find(V=>V.costAccounted&&I(V.netOut)<=B);M&&Q.push(`winner ${m.source} has UNMEASURED gas; gas-measured ${M.source} is within ${B} bps and may net more once ${m.source}'s real gas is paid \u2014 prefer it if unsure.`)}let x=E.filter(M=>M.gasEstimated).map(M=>M.source);x.length&&Q.push(`gas ESTIMATED (from gas units x current gas price, not measured) for: ${x.join(", ")}. Net includes this estimate so the ranking is gas-inclusive, but the on-chain gas may differ.`);let _=null,Z=null;if(E.length>=2&&E[0].costAccounted&&E[1].costAccounted){let M=BigInt(E[0].netOut),V=BigInt(E[1].netOut);V>0n&&(_=Number((M-V)*10000n/V),Z=`${E[0].source} vs ${E[1].source}`)}return{best:E[0]??null,routes:E,failed:a,improvementBps:_,spreadBasis:Z,rankedOn:c?"net-of-cost":"gross",warnings:Q}}async function pg(A,{timeoutMs:e=12e3}={}){let t=(n,s)=>Promise.race([n,new Promise((o,i)=>setTimeout(()=>i(new Error(`${s}: timeout`)),e))]);return(await Promise.allSettled(A.map(n=>t(Promise.resolve().then(n.run),n.source)))).map((n,s)=>{let o=A[s].source;return n.status==="rejected"?dg({source:o,error:String(n.reason?.message||n.reason)}):dg({source:o,...n.value})})}Eg();uA();RA();lA();bo();uA();RA();lA();uA();RA();lA();uA();RA();import{TypedDataEncoder as Rx,getAddress as Fx,isAddress as Sx}from"ethers";var mx=Object.freeze({READ:"read",PREPARE:"prepare",EXECUTE:"execute",AUTONOMOUS:"autonomous"});Do();lA();var Yx=Object.freeze({1:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",100:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",42161:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",8453:"0x9008D19f58AAbD9eD0D60971565AA8510560ab41"}),Gx=Object.freeze({1:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",100:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",42161:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110",8453:"0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"});var Jx=Object.freeze({Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}),vx=Object.freeze({OrderCancellations:[{name:"orderUids",type:"bytes[]"}]});import{Interface as wd,getAddress as r2,isAddress as n2}from"ethers";uA();var pd={robinhood:{chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC"],evm:!0},ethereum:{chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],evm:!0},polygon:{chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],evm:!0},arbitrum:{chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],evm:!0},base:{chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],evm:!0},hyperevm:{chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],evm:!0},bsc:{chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],evm:!0},avalanche:{chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],evm:!0},optimism:{chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],evm:!0},abstract:{chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],evm:!0},stable:{chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],evm:!0}},Vx=new Map(Object.values(pd).map(A=>[A.chainId,A]));import{Interface as AM,getAddress as Kx}from"ethers";var Xx=new AM(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);uA();var e2=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"});RA();lA();var c2=new wd(["function quoteExactInputSingle((address tokenIn, address tokenOut, uint256 amountIn, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)","function quoteExactInput(bytes path, uint256 amountIn) returns (uint256 amountOut, uint160[] sqrtPriceX96AfterList, uint32[] initializedTicksCrossedList, uint256 gasEstimate)"]),g2=new wd(["function exactInputSingle((address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96) params) payable returns (uint256 amountOut)","function multicall(uint256 deadline,bytes[] data) payable returns (bytes[] results)"]);import{AbiCoder as nM,Interface as md,getAddress as E2,isAddress as Q2,keccak256 as B2}from"ethers";RA();lA();var f2=nM.defaultAbiCoder();var p2=new md(["function quoteExactInputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut, uint256 gasEstimate)"]),w2=new md(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]);uA();var sM="https://coins.llama.fi",oM="https://api.llama.fi";function iM(A={}){return(A.baseUrl||process.env.DEFILLAMA_COINS_URL||sM).replace(/\/$/,"")}function aM(A={}){return(A.baseUrl||process.env.DEFILLAMA_API_URL||oM).replace(/\/$/,"")}async function Qg(A,e={}){if(!Array.isArray(A)||!A.length)throw new Error("llamaPrices requires coins[]");let t=A.map(encodeURIComponent).join(",");return ue(`${iM(e)}/prices/current/${t}`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs})}async function yd(A={}){return ue(`${aM(A)}/protocols`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??2e4})}var KA=A=>{let e=Number(A);return Number.isFinite(e)?e:null};function Sd(A){if(!Array.isArray(A))return null;let e=0,t=!1;for(let r of A){let n=KA(r?.amountUSD);n!=null&&(e+=n,t=!0)}return t?e:null}var zA=A=>String(A??"").toLowerCase().replace(/[^a-z0-9]/g,""),Nd=Object.freeze({across:["across"],relay:["relaychain","relay"],lifi:["jumper-(li.fi-powered)","lifi"],stargate:["stargate-v2","stargate-v1","stargate"],hop:["hop-protocol","hop"],debridge:["debridge"],synapse:["synapse"],connext:["connext"],cbridge:["celer-bridge","celer-cbridge","cbridge"],celer:["celer-bridge","celer-cbridge","cbridge"],squid:["squid"],symbiosis:["symbiosis"],wormhole:["wormhole"],mayan:["mayan"],allbridge:["allbridge"],thorchain:["thorchain"]});async function QM(A={}){try{let e=await yd({...A,baseUrl:A.defillamaApiBaseUrl,timeoutMs:A.defillamaTimeoutMs??Math.min(Number(A.timeoutMs??5e3),5e3)});return Array.isArray(e)?e:[]}catch{return[]}}function BM(A,e={}){let t=zA(e.tool||e.provider||e.bridge||e.protocol),r=[];return A==="lifi"&&t&&t!=="lifi"&&r.push(...Nd[t]||[t]),r.push(...Nd[zA(A)]||[A]),r}function IM(A,e,t={}){let r=Array.isArray(A)?A:[],n=BM(e,t).map(zA).filter(Boolean);for(let s of n){let o=r.find(a=>zA(a?.slug)===s||zA(a?.name)===s),i=KA(o?.tvl);if(i!=null)return{liquidityUsd:i,protocol:o?.name??o?.slug??s}}for(let s of n){let o=r.find(a=>{let c=zA(a?.category);return!c.includes("bridge")&&!c.includes("crosschain")?!1:zA(a?.slug).includes(s)||zA(a?.name).includes(s)}),i=KA(o?.tvl);if(i!=null)return{liquidityUsd:i,protocol:o?.name??o?.slug??s}}return null}function Ud({fromChainId:A,toChainId:e,tokenIn:t,tokenOut:r,amountIn:n,taker:s,opts:o={}}){let i=[],a=null,c=async(u,g={})=>(a||=QM(o),IM(await a,u,g));return i.push({source:"lifi",run:async()=>{let u=await ko({fromChain:A,toChain:e,fromToken:t,toToken:r,fromAmount:n},o),g=u?.estimate??u?.[0]?.estimate,l={tool:u?.tool??u?.toolDetails?.name,durationSeconds:KA(g?.executionDuration)},E=await c("lifi",l);return{amountOut:g?.toAmount,minOut:g?.toAmountMin,gasUsd:Sd(g?.gasCosts),feeUsd:Sd(g?.feeCosts),oracleFeeBps:u?.oracleFee?.applies?u.oracleFee.bps:0,liquidityUsd:E?.liquidityUsd??null,meta:{...l,liquidityProtocol:E?.protocol,oracleFee:u?.oracleFee??null}}}}),i.push({source:"relay",run:async()=>{let{relayQuote:u}=await Promise.resolve().then(()=>(Fo(),Ro)),l=(await u({user:s,originChainId:A,destinationChainId:e,originCurrency:t,destinationCurrency:r,amount:String(n)},o))?.details,E={durationSeconds:KA(l?.timeEstimate),rate:l?.rate},B=await c("relay",E);return{amountOut:l?.currencyOut?.amount,minOut:l?.currencyOut?.minimumAmount,gasUsd:KA(l?.totalImpact?.usd)!=null?Math.abs(KA(l.totalImpact.usd)):null,liquidityUsd:B?.liquidityUsd??null,meta:{...E,liquidityProtocol:B?.protocol}}}}),i.push({source:"across",run:async()=>{let{acrossSuggestedFees:u}=await Promise.resolve().then(()=>(Fo(),Ro)),g=await u({token:t,destinationToken:r,originChainId:A,destinationChainId:e,amount:String(n)},o),l=g?.totalRelayFee?.total,E=null;if(l!=null)try{let C=BigInt(String(n))-BigInt(String(l));C>0n&&(E=C.toString())}catch{}let B=await c("across");return{amountOut:E,gasUsd:null,liquidityUsd:B?.liquidityUsd??null,meta:{derivedFromFees:!0,durationSeconds:KA(g?.estimatedFillTimeSec),limits:g?.limits?{min:g.limits.minDeposit,max:g.limits.maxDeposit}:void 0,liquidityProtocol:B?.protocol}}}}),i}bo();var CM={1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avax"};async function hM(A,e,t){let r=CM[Number(A)];if(!r)return{priceUsd:null,decimals:null};let n=`${r}:${e}`;try{let o=(await Qg([n],t))?.coins?.[n],i=Number(o?.price),a=Number(o?.decimals);return{priceUsd:Number.isFinite(i)?i:null,decimals:Number.isFinite(a)?a:null}}catch{return{priceUsd:null,decimals:null}}}async function Md(A,e={}){let{fromChainId:t,toChainId:r,tokenIn:n,tokenOut:s,amountIn:o}=A;if(t==null||r==null||!n||!s||o==null)throw new Error("bestBridgeRoute requires fromChainId, toChainId, tokenIn, tokenOut, amountIn");if(Number(t)===Number(r))throw new Error("bestBridgeRoute is for cross-chain; use bestSwapRoute for same-chain");let i=hM(r,s,e),a=Ud({...A,opts:e}),[c,u]=await Promise.all([pg(a,{timeoutMs:e.timeoutMs??15e3}),i]),g=fg(c,{destPriceUsd:u.priceUsd,destDecimals:A.decimalsOut??u.decimals,liquidityBandBps:e.liquidityBandBps??50}),l=g.routes.map(E=>({source:E.source,seconds:E.meta?.durationSeconds??null})).filter(E=>E.seconds!=null);return{kind:"bridge",fromChainId:t,toChainId:r,tokenIn:n,tokenOut:s,amountIn:String(o),...g,durations:l,sourcesTried:a.length,sourcesAnswered:c.filter(E=>E.quality!==FA.FAILED).length,note:fM(g,a.length)}}function dM(A){let e=A?.meta?.oracleFee;return e?.applies?` \xB7 ${Id(e)}`:""}function fM(A,e){if(!A.best)return"no source returned a usable route";let t=A.routes.length,r=dM(A.best);if(t===1)return`only 1 of ${e} sources answered, so this is the ONLY route, not a proven best one. Treat it as unbenchmarked.`+r;if(A.improvementBps!=null){let n=A.improvementBps,s=n/100;if(n<.01)return`best of ${t} routes, ranked on ${A.rankedOn}: effectively tied with the runner-up (${A.spreadBasis}), inside quote noise. Re-quote before you size up.`+r;let o=s>=.01?`${s.toFixed(2)}%`:`${n.toFixed(2)}bps`;return`best of ${t} routes, ranked on ${A.rankedOn}: ${o} better than the runner-up (${A.spreadBasis})`+r}return`best of ${t} routes, ranked on ${A.rankedOn}. No spread quoted: the top routes report cost differently, so the margin is not comparable.`+r}lA();var pM=/^0x[0-9a-fA-F]{40}$/,wM=new Set(["0x0000000000000000000000000000000000000000","0x000000000000000000000000000000000000dead","0x0000000000000000000000000000000000000001","0x00000000000000000000000000000000000a1ce5"].map(A=>A.toLowerCase())),mM=100,So={relay:async({fromChainId:A,toChainId:e,tokenIn:t,tokenOut:r,amountIn:n,taker:s},o)=>{let{relayPrepare:i}=await Promise.resolve().then(()=>(Fo(),Ro)),a=await i({user:s,originChainId:A,destinationChainId:e,originCurrency:t,destinationCurrency:r,amount:String(n)},o);return{transactions:a.transactions||[],amountOut:a.quote?.details?.currencyOut?.amount??null,minOut:a.quote?.details?.currencyOut?.minimumAmount??null,durationSeconds:a.quote?.details?.timeEstimate??null}},lifi:async({fromChainId:A,toChainId:e,tokenIn:t,tokenOut:r,amountIn:n,taker:s,isHolder:o},i)=>{let{lifiPrepare:a}=await Promise.resolve().then(()=>(Eg(),fd)),c=await a({fromChain:A,toChain:e,fromToken:t,toToken:r,fromAmount:n,fromAddress:s,isHolder:o,feeAction:"bridge"},i);return{transactions:c.transaction?[c.transaction]:[],requiresApproval:c.requiresApproval??null,amountOut:c.quote?.estimate?.toAmount??null,minOut:c.quote?.estimate?.toAmountMin??null,durationSeconds:c.quote?.estimate?.executionDuration??null}}};function cY(){return Object.keys(So)}async function gY(A,e={}){let{taker:t,fromChainId:r,toChainId:n}=A;if(!t)throw new Error("prepareBestBridgeRoute requires taker: bridge transactions are built FOR an address, and the quote-only placeholder must never end up in one");if(!pM.test(t))throw new Error(`taker must be a valid 20-byte address, got "${t}"`);if(wM.has(t.toLowerCase()))throw new Error(`taker "${t}" is a placeholder/burn address. Bridging to it would send funds to an address nobody controls, on a chain where you cannot undo it.`);let s=await Md(A,e);if(!s.best)return{ok:!1,reason:"no source returned a usable bridge route",comparison:s};let o=A.source||s.best.source,i=s.routes.find(I=>I.source===o);if(!i)return{ok:!1,reason:`source "${o}" returned no usable route`,comparison:s};let a=So[o];if(!a){let I=s.routes.find(Q=>So[Q.source]&&Q.source!==o);return{ok:!1,reason:`${o} won the comparison but has no bridge prepare path in this build. `+(I?`Next preparable route is ${I.source}; pass source:"${I.source}".`:"No route in this comparison can be prepared."),failureKind:"no-prepare-path",...I?{alternative:I.source}:{},winner:o,comparison:s}}let c;try{c=await a(A,e)}catch(I){let Q=typeof I?.body=="string"?I.body:I?.body?JSON.stringify(I.body):"",h=[String(I?.message||I),Q].filter(Boolean).join(" :: "),y=/allowance/i.test(h),m=!y&&/not enough|insufficient|balance/i.test(h),x=s.routes.find(_=>So[_.source]&&_.source!==o);return{ok:!1,reason:y?`${o} will not build calldata until the token approval exists on-chain. Approve first, then prepare again. Underlying: ${h}`:m?`${o} refused to build: ${h}. Quoting works for any address; preparing needs the real funded wallet on chain ${r}.`:`${o} bridge prepare failed: ${h}`,failureKind:y?"approval-required-first":m?"taker-not-funded":"provider-error",...x?{alternative:x.source}:{},comparison:s}}let u=c.transactions||[];if(!u.length)return{ok:!1,reason:`${o} returned no executable transaction for this route`,failureKind:"provider-error",comparison:s};let g=u.filter(I=>I.chainId!=null&&Number(I.chainId)!==Number(r));if(g.length)return{ok:!1,reason:`${o} returned a transaction for chain ${g[0].chainId} but the origin chain is ${r}. Refusing to hand over a mismatched artifact.`,failureKind:"chain-mismatch",comparison:s};let l=A.driftToleranceBps??mM,E=null,B=null;if(c.amountOut!=null&&i.grossOut!=null)try{let I=BigInt(i.grossOut),Q=BigInt(c.amountOut);I>0n&&(E=Number((Q-I)*10000n/I),E<-l&&(B=`route moved ${(E/100).toFixed(2)}% against you since the comparison (tolerance ${(l/100).toFixed(2)}%). Re-compare before signing.`))}catch{}let C=[...B?[B]:[],...s.warnings||[],`Bridging is NOT atomic: the origin transaction succeeding does not mean funds arrived on chain ${n}. Expect ~${c.durationSeconds!=null?`${c.durationSeconds}s`:"minutes"} before the destination credits, and do not re-send if it is pending.`];return u.length>1&&C.push(`This route needs ${u.length} transactions signed IN ORDER. Signing only the first leaves funds approved but not bridged.`),Ve({ok:!0,chosen:{source:o,wasWinner:o===s.best.source,netOut:i.netOut,grossOut:i.grossOut,gasUsd:i.gasUsd},artifactKind:"unsigned-transaction-sequence",fromChainId:Number(r),toChainId:Number(n),transactionCount:u.length,transactions:u,requiresApproval:c.requiresApproval??null,minOut:c.minOut??null,durationSeconds:c.durationSeconds??null,destination:u[0]?.to??null,unsigned:!0,signedBy:"user-wallet",driftBps:E,warnings:C,runnersUp:s.routes.filter(I=>I.source!==o).map(I=>({source:I.source,netOut:I.netOut,gasUsd:I.gasUsd})),comparison:{rankedOn:s.rankedOn,sourcesAnswered:s.sourcesAnswered,sourcesTried:s.sourcesTried,improvementBps:s.improvementBps},note:`UNSIGNED. ${u.length} transaction(s) on chain ${r}, crediting chain ${n}. Verify every destination address before signing.`},{provider:"router",kind:"best-bridge"})}export{gY as prepareBestBridgeRoute,cY as supportedBridgePreparers};
|